<!-- SOLID CITY · part 3379 -->
,$n),di.name="DFG_LUT",di.minFilter=Kt,di.magFilter=Kt,di.wrapS=si,di.wrapT=si,di.generateMipmaps=!1,di.needsUpdate=!0),di}var Yl=class{constructor(e={}){let{canvas:t=Wd(),context:n=null,depth:s=!0,stencil:r=!1,alpha:a=!1,antialias:o=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:f=!1,reversedDepthBuffer:u=!1,outputBufferType:d=yn}=e;this.isWebGLRenderer=!0;let g;if(n!==null){if(typeof WebGLRenderingContext!="undefined"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");g=n.getContextAttributes().alpha}else g=a;let M=d,m=new Set([cl,ll,ol]),p=new Set([yn,Jn,ir,sr,sl,rl]),b=new Uint32Array(4),A=new Int32Array(4),v=new P,T=null,E=null,C=[],x=[],w=null;this.domElement=t,this.debug={checkShaderErrors:!0,diagnostics:{keywords:!1},onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=Zn,this.toneMappingExposure=1,this.transmissionResolutionScale=1;let I=this,D=!1,O=null,V=null,N=null,z=null;this._outputColorSpace=dn;let q=0,X=0,ie=null,Y=-1,j=null,ne=new Ct,Pe=new Ct,we=null,dt=new ge(0),tt=0,ot=t.width,$=t.height,ee=1,ve=null,Ve=null,be=new Ct(0,0,ot,$),Ge=new Ct(0,0,ot,$),xt=!1,te=new $s,re=!1,ae=!1,oe=new at,ue=new P,ze=new Ct,Fe={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},We=!1;function qe(){return ie===null?ee:1}let L=n;function pt(S,U){return t.getContext(S,U)}let nt,R,_,B,G,Z,ce,he,J,Q,de,Le,_e,fe,De,He,Ye,F,pe,K,me,Se,se;try{let S={alpha:!0,depth:s,stencil:r,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:f};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${"186"}`),t.addEventListener("webglcontextlost",Et,!1),t.addEventListener("webglcontextrestored",mt,!1),t.addEventListener("webglcontextcreationerror",kn,!1),L===null){let U="webgl2";if(L=pt(U,S),L===null)throw pt(U)?new Error("THREE.WebGLRenderer: Error creating WebGL context with your selected attributes."):new Error("THREE.WebGLRenderer: Error creating WebGL context.")}Ue()}catch(S){throw t.removeEventListener("webglcontextlost",Et,!1),t.removeEventListener("webglcontextrestored",mt,!1),t.removeEventListener("webglcontextcreationerror",kn,!1),ke("WebGLRenderer: "+S.message),S}function Ue(){nt=new I_(L),nt.init(),me=new gv(L,nt),R=new y_(L,nt,e,me),_=new pv(L,nt),R.reversedDepthBuffer&&u&&_.buffers.depth.setReversed(!0),V=L.createFramebuffer(),N=L.createFramebuffer(),z=L.createFramebuffer(),B=new D_(L),G=new ev,Z=new mv(L,nt,_,G,R,me,B),ce=new C_(I),he=new Um(L),Se=new x_(L,he),J=new P_(L,he,B,Se),Q=new U_(L,J,he,Se,B),F=new N_(L,R,Z),De=new M_(G),de=new Qx(I,ce,nt,R,Se,De),Le=new yv(I,G),_e=new nv,fe=new lv(nt),Ye=new __(I,ce,_,Q,g,l),He=new fv(I,Q,R),se=new Mv(L,B,R,_),pe=new v_(L,nt,B),K=new L_(L,nt,B),B.programs=de.programs,I.capabilities=R,I.extensions=nt,I.properties=G,I.renderLists=_e,I.shadowMap=He,I.state=_,I.info=B}M!==yn&&(w=new O_(M,t.width,t.height,o,s,r));let Ce=new Kh(I,L);this.xr=Ce,this.getContext=function(){return L},this.getContextAttributes=function(){return L.getContextAttributes()},this.forceContextLoss=function(){let S=nt.get("WEBGL_lose_context");S&&S.loseContext()},this.forceContextRestore=function(){let S=nt.get("WEBGL_lose_context");S&&S.restoreContext()},this.getPixelRatio=function(){return ee},this.setPixelRatio=function(S){S!==void 0&&(ee=S,this.setSize(ot,$,!1))},this.getSize=function(S){return S.set(ot,$)},this.setSize=function(S,U,W=!0){if(Ce.isPresenting){Be("WebGLRenderer: Can't change size while VR device is presenting.");return}ot=S,$=U,t.width=Math.floor(S*ee),t.height=Math.floor(U*ee),W===!0&&(t.style.width=S+"px",t.style.height=U+"px"),w!==null&&w.setSize(t.width,t.height),this.setViewport(0,0,S,U)},this.getDrawingBufferSize=function(S){return S.set(ot*ee,$*ee).floor()},this.setDrawingBufferSize=function(S,U,W){ot=S,$=U,ee=W,t.width=Math.floor(S*W),t.height=Math.floor(U*W),this.setViewport(0,0,S,U)},this.setEffects=function(S){if(M===yn){ke("WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(S){for(let U=0;U<S.length;U++)if(S[U].isOutputPass===!0){Be("WebGLRenderer: OutputPass is not needed in setEffects(). Tone mapping and color space conversion are applied automatically.");break}}w.setEffects(S||[])},this.getCurrentViewport=function(S){return S.copy(ne)},this.getViewport=function(S){return S.copy(be)},this.setViewport=function(S,U,W,H){S.isVector4?be.set(S.x,S.y,S.z,S.w):be.set(S,U,W,H),_.viewport(ne.copy(be).multiplyScalar(ee).round())},this.getScissor=function(S){return S.copy(Ge)},this.setScissor=function(S,U,W,H){S.isVector4?Ge.set(S.x,S.y,S.z,S.w):Ge.set(S,U,W,H),_.scissor(Pe.copy(Ge).multiplyScalar(ee).round())},this.getScissorTest=function(){return xt},th