schematic-renderer 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
- (function(Ze,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("three")):typeof define=="function"&&define.amd?define(["exports","three"],h):(Ze=typeof globalThis<"u"?globalThis:Ze||self,h(Ze.SchematicRenderer={},Ze.THREE))})(this,function(Ze,h){"use strict";var Wl=Object.defineProperty;var Ql=(Ze,h,mt)=>h in Ze?Wl(Ze,h,{enumerable:!0,configurable:!0,writable:!0,value:mt}):Ze[h]=mt;var Ce=(Ze,h,mt)=>(Ql(Ze,typeof h!="symbol"?h+"":h,mt),mt);function mt(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Ae=mt(h),Zr={type:"change"},lr={type:"start"},Jr={type:"end"},Ft=new h.Ray,qr=new h.Plane,ya=Math.cos(70*h.MathUtils.DEG2RAD);class Sa extends h.EventDispatcher{constructor(e,t){super(),this.object=e,this.domElement=t,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new h.Vector3,this.cursor=new h.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:h.MOUSE.ROTATE,MIDDLE:h.MOUSE.DOLLY,RIGHT:h.MOUSE.PAN},this.touches={ONE:h.TOUCH.ROTATE,TWO:h.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return s.phi},this.getAzimuthalAngle=function(){return s.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(L){L.addEventListener("keydown",l),this._domElementKeyEvents=L},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",l),this._domElementKeyEvents=null},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(Zr),n.update(),i=a.NONE},this.update=function(){const L=new h.Vector3,ce=new h.Quaternion().setFromUnitVectors(e.up,new h.Vector3(0,1,0)),Be=ce.clone().invert(),Ee=new h.Vector3,Re=new h.Quaternion,Ge=new h.Vector3,je=2*Math.PI;return function(tt=null){const vt=n.object.position;L.copy(vt).sub(n.target),L.applyQuaternion(ce),s.setFromVector3(L),n.autoRotate&&i===a.NONE&&P(Z(tt)),n.enableDamping?(s.theta+=c.theta*n.dampingFactor,s.phi+=c.phi*n.dampingFactor):(s.theta+=c.theta,s.phi+=c.phi);let Je=n.minAzimuthAngle,He=n.maxAzimuthAngle;isFinite(Je)&&isFinite(He)&&(Je<-Math.PI?Je+=je:Je>Math.PI&&(Je-=je),He<-Math.PI?He+=je:He>Math.PI&&(He-=je),Je<=He?s.theta=Math.max(Je,Math.min(He,s.theta)):s.theta=s.theta>(Je+He)/2?Math.max(Je,s.theta):Math.min(He,s.theta)),s.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,s.phi)),s.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(b,n.dampingFactor):n.target.add(b),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&T||n.object.isOrthographicCamera?s.radius=ge(s.radius):s.radius=ge(s.radius*m),L.setFromSpherical(s),L.applyQuaternion(Be),vt.copy(n.target).add(L),n.object.lookAt(n.target),n.enableDamping===!0?(c.theta*=1-n.dampingFactor,c.phi*=1-n.dampingFactor,b.multiplyScalar(1-n.dampingFactor)):(c.set(0,0,0),b.set(0,0,0));let lt=!1;if(n.zoomToCursor&&T){let et=null;if(n.object.isPerspectiveCamera){const at=L.length();et=ge(at*m);const ct=at-et;n.object.position.addScaledVector(B,ct),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const at=new h.Vector3(I.x,I.y,0);at.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/m)),n.object.updateProjectionMatrix(),lt=!0;const ct=new h.Vector3(I.x,I.y,0);ct.unproject(n.object),n.object.position.sub(ct).add(at),n.object.updateMatrixWorld(),et=L.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;et!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(et).add(n.object.position):(Ft.origin.copy(n.object.position),Ft.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Ft.direction))<ya?e.lookAt(n.target):(qr.setFromNormalAndCoplanarPoint(n.object.up,n.target),Ft.intersectPlane(qr,n.target))))}else n.object.isOrthographicCamera&&(lt=m!==1,lt&&(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/m)),n.object.updateProjectionMatrix()));return m=1,T=!1,lt||Ee.distanceToSquared(n.object.position)>o||8*(1-Re.dot(n.object.quaternion))>o||Ge.distanceToSquared(n.target)>0?(n.dispatchEvent(Zr),Ee.copy(n.object.position),Re.copy(n.object.quaternion),Ge.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",E),n.domElement.removeEventListener("pointerdown",z),n.domElement.removeEventListener("pointercancel",Q),n.domElement.removeEventListener("wheel",ue),n.domElement.removeEventListener("pointermove",R),n.domElement.removeEventListener("pointerup",Q),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",l),n._domElementKeyEvents=null)};const n=this,a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let i=a.NONE;const o=1e-6,s=new h.Spherical,c=new h.Spherical;let m=1;const b=new h.Vector3,v=new h.Vector2,w=new h.Vector2,d=new h.Vector2,g=new h.Vector2,p=new h.Vector2,y=new h.Vector2,x=new h.Vector2,S=new h.Vector2,D=new h.Vector2,B=new h.Vector3,I=new h.Vector2;let T=!1;const O=[],V={};let W=!1;function Z(L){return L!==null?2*Math.PI/60*n.autoRotateSpeed*L:2*Math.PI/60/60*n.autoRotateSpeed}function se(L){const ce=Math.abs(L*.01);return Math.pow(.95,n.zoomSpeed*ce)}function P(L){c.theta-=L}function X(L){c.phi-=L}const A=function(){const L=new h.Vector3;return function(Be,Ee){L.setFromMatrixColumn(Ee,0),L.multiplyScalar(-Be),b.add(L)}}(),J=function(){const L=new h.Vector3;return function(Be,Ee){n.screenSpacePanning===!0?L.setFromMatrixColumn(Ee,1):(L.setFromMatrixColumn(Ee,0),L.crossVectors(n.object.up,L)),L.multiplyScalar(Be),b.add(L)}}(),oe=function(){const L=new h.Vector3;return function(Be,Ee){const Re=n.domElement;if(n.object.isPerspectiveCamera){const Ge=n.object.position;L.copy(Ge).sub(n.target);let je=L.length();je*=Math.tan(n.object.fov/2*Math.PI/180),A(2*Be*je/Re.clientHeight,n.object.matrix),J(2*Ee*je/Re.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(A(Be*(n.object.right-n.object.left)/n.object.zoom/Re.clientWidth,n.object.matrix),J(Ee*(n.object.top-n.object.bottom)/n.object.zoom/Re.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function q(L){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?m/=L:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function fe(L){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?m*=L:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function ee(L,ce){if(!n.zoomToCursor)return;T=!0;const Be=n.domElement.getBoundingClientRect(),Ee=L-Be.left,Re=ce-Be.top,Ge=Be.width,je=Be.height;I.x=Ee/Ge*2-1,I.y=-(Re/je)*2+1,B.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function ge(L){return Math.max(n.minDistance,Math.min(n.maxDistance,L))}function j(L){v.set(L.clientX,L.clientY)}function U(L){ee(L.clientX,L.clientX),x.set(L.clientX,L.clientY)}function ve(L){g.set(L.clientX,L.clientY)}function de(L){w.set(L.clientX,L.clientY),d.subVectors(w,v).multiplyScalar(n.rotateSpeed);const ce=n.domElement;P(2*Math.PI*d.x/ce.clientHeight),X(2*Math.PI*d.y/ce.clientHeight),v.copy(w),n.update()}function te(L){S.set(L.clientX,L.clientY),D.subVectors(S,x),D.y>0?q(se(D.y)):D.y<0&&fe(se(D.y)),x.copy(S),n.update()}function Te(L){p.set(L.clientX,L.clientY),y.subVectors(p,g).multiplyScalar(n.panSpeed),oe(y.x,y.y),g.copy(p),n.update()}function Oe(L){ee(L.clientX,L.clientY),L.deltaY<0?fe(se(L.deltaY)):L.deltaY>0&&q(se(L.deltaY)),n.update()}function pe(L){let ce=!1;switch(L.code){case n.keys.UP:L.ctrlKey||L.metaKey||L.shiftKey?X(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):oe(0,n.keyPanSpeed),ce=!0;break;case n.keys.BOTTOM:L.ctrlKey||L.metaKey||L.shiftKey?X(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):oe(0,-n.keyPanSpeed),ce=!0;break;case n.keys.LEFT:L.ctrlKey||L.metaKey||L.shiftKey?P(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):oe(n.keyPanSpeed,0),ce=!0;break;case n.keys.RIGHT:L.ctrlKey||L.metaKey||L.shiftKey?P(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):oe(-n.keyPanSpeed,0),ce=!0;break}ce&&(L.preventDefault(),n.update())}function be(L){if(O.length===1)v.set(L.pageX,L.pageY);else{const ce=Me(L),Be=.5*(L.pageX+ce.x),Ee=.5*(L.pageY+ce.y);v.set(Be,Ee)}}function xe(L){if(O.length===1)g.set(L.pageX,L.pageY);else{const ce=Me(L),Be=.5*(L.pageX+ce.x),Ee=.5*(L.pageY+ce.y);g.set(Be,Ee)}}function $(L){const ce=Me(L),Be=L.pageX-ce.x,Ee=L.pageY-ce.y,Re=Math.sqrt(Be*Be+Ee*Ee);x.set(0,Re)}function he(L){n.enableZoom&&$(L),n.enablePan&&xe(L)}function re(L){n.enableZoom&&$(L),n.enableRotate&&be(L)}function u(L){if(O.length==1)w.set(L.pageX,L.pageY);else{const Be=Me(L),Ee=.5*(L.pageX+Be.x),Re=.5*(L.pageY+Be.y);w.set(Ee,Re)}d.subVectors(w,v).multiplyScalar(n.rotateSpeed);const ce=n.domElement;P(2*Math.PI*d.x/ce.clientHeight),X(2*Math.PI*d.y/ce.clientHeight),v.copy(w)}function K(L){if(O.length===1)p.set(L.pageX,L.pageY);else{const ce=Me(L),Be=.5*(L.pageX+ce.x),Ee=.5*(L.pageY+ce.y);p.set(Be,Ee)}y.subVectors(p,g).multiplyScalar(n.panSpeed),oe(y.x,y.y),g.copy(p)}function F(L){const ce=Me(L),Be=L.pageX-ce.x,Ee=L.pageY-ce.y,Re=Math.sqrt(Be*Be+Ee*Ee);S.set(0,Re),D.set(0,Math.pow(S.y/x.y,n.zoomSpeed)),q(D.y),x.copy(S);const Ge=(L.pageX+ce.x)*.5,je=(L.pageY+ce.y)*.5;ee(Ge,je)}function M(L){n.enableZoom&&F(L),n.enablePan&&K(L)}function k(L){n.enableZoom&&F(L),n.enableRotate&&u(L)}function z(L){n.enabled!==!1&&(O.length===0&&(n.domElement.setPointerCapture(L.pointerId),n.domElement.addEventListener("pointermove",R),n.domElement.addEventListener("pointerup",Q)),Y(L),L.pointerType==="touch"?f(L):G(L))}function R(L){n.enabled!==!1&&(L.pointerType==="touch"?C(L):ie(L))}function Q(L){switch(H(L),O.length){case 0:n.domElement.releasePointerCapture(L.pointerId),n.domElement.removeEventListener("pointermove",R),n.domElement.removeEventListener("pointerup",Q),n.dispatchEvent(Jr),i=a.NONE;break;case 1:const ce=O[0],Be=V[ce];f({pointerId:ce,pageX:Be.x,pageY:Be.y});break}}function G(L){let ce;switch(L.button){case 0:ce=n.mouseButtons.LEFT;break;case 1:ce=n.mouseButtons.MIDDLE;break;case 2:ce=n.mouseButtons.RIGHT;break;default:ce=-1}switch(ce){case h.MOUSE.DOLLY:if(n.enableZoom===!1)return;U(L),i=a.DOLLY;break;case h.MOUSE.ROTATE:if(L.ctrlKey||L.metaKey||L.shiftKey){if(n.enablePan===!1)return;ve(L),i=a.PAN}else{if(n.enableRotate===!1)return;j(L),i=a.ROTATE}break;case h.MOUSE.PAN:if(L.ctrlKey||L.metaKey||L.shiftKey){if(n.enableRotate===!1)return;j(L),i=a.ROTATE}else{if(n.enablePan===!1)return;ve(L),i=a.PAN}break;default:i=a.NONE}i!==a.NONE&&n.dispatchEvent(lr)}function ie(L){switch(i){case a.ROTATE:if(n.enableRotate===!1)return;de(L);break;case a.DOLLY:if(n.enableZoom===!1)return;te(L);break;case a.PAN:if(n.enablePan===!1)return;Te(L);break}}function ue(L){n.enabled===!1||n.enableZoom===!1||i!==a.NONE||(L.preventDefault(),n.dispatchEvent(lr),Oe(ae(L)),n.dispatchEvent(Jr))}function ae(L){const ce=L.deltaMode,Be={clientX:L.clientX,clientY:L.clientY,deltaY:L.deltaY};switch(ce){case 1:Be.deltaY*=16;break;case 2:Be.deltaY*=100;break}return L.ctrlKey&&!W&&(Be.deltaY*=10),Be}function _e(L){L.key==="Control"&&(W=!0,n.domElement.getRootNode().addEventListener("keyup",_,{passive:!0,capture:!0}))}function _(L){L.key==="Control"&&(W=!1,n.domElement.getRootNode().removeEventListener("keyup",_,{passive:!0,capture:!0}))}function l(L){n.enabled===!1||n.enablePan===!1||pe(L)}function f(L){switch(Se(L),O.length){case 1:switch(n.touches.ONE){case h.TOUCH.ROTATE:if(n.enableRotate===!1)return;be(L),i=a.TOUCH_ROTATE;break;case h.TOUCH.PAN:if(n.enablePan===!1)return;xe(L),i=a.TOUCH_PAN;break;default:i=a.NONE}break;case 2:switch(n.touches.TWO){case h.TOUCH.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;he(L),i=a.TOUCH_DOLLY_PAN;break;case h.TOUCH.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;re(L),i=a.TOUCH_DOLLY_ROTATE;break;default:i=a.NONE}break;default:i=a.NONE}i!==a.NONE&&n.dispatchEvent(lr)}function C(L){switch(Se(L),i){case a.TOUCH_ROTATE:if(n.enableRotate===!1)return;u(L),n.update();break;case a.TOUCH_PAN:if(n.enablePan===!1)return;K(L),n.update();break;case a.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;M(L),n.update();break;case a.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;k(L),n.update();break;default:i=a.NONE}}function E(L){n.enabled!==!1&&L.preventDefault()}function Y(L){O.push(L.pointerId)}function H(L){delete V[L.pointerId];for(let ce=0;ce<O.length;ce++)if(O[ce]==L.pointerId){O.splice(ce,1);return}}function Se(L){let ce=V[L.pointerId];ce===void 0&&(ce=new h.Vector2,V[L.pointerId]=ce),ce.set(L.pageX,L.pageY)}function Me(L){const ce=L.pointerId===O[0]?O[1]:O[0];return V[ce]}n.domElement.addEventListener("contextmenu",E),n.domElement.addEventListener("pointerdown",z),n.domElement.addEventListener("pointercancel",Q),n.domElement.addEventListener("wheel",ue,{passive:!1}),n.domElement.getRootNode().addEventListener("keydown",_e,{passive:!0,capture:!0}),this.update()}}var Nt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function cr(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var $r={exports:{}};(function(r){(function(){function e(w,d){let g={};return[w,d].forEach(function(p){for(let y in p)Object.prototype.hasOwnProperty.call(p,y)&&(g[y]=p[y])}),g}function t(w){if(typeof w!="string"||!w.match(/^data:image\/webp;base64,/i))throw new Error("Failed to decode WebP Base64 URL");return window.atob(w.substring(23))}function n(w,d){let g=typeof w=="string"&&/^data:image\/webp/.test(w)?w:w.toDataURL("image/webp",d);return t(g)}function a(w){let d=w.charCodeAt(0),g=w.charCodeAt(1),p=w.charCodeAt(2),y=w.charCodeAt(3);return(d|g<<8|p<<16|y<<24)>>>0}function i(w){let d=w.indexOf("VP8",12);if(d===-1)throw new Error("Bad image format, does this browser support WebP?");let g=!1;for(;d<w.length-8;){let p,y;switch(y=w.substring(d,d+4),d+=4,p=a(w.substring(d,d+4)),d+=4,y){case"VP8 ":return{frame:w.substring(d,d+p),hasAlpha:g};case"ALPH":g=!0;break}d+=p,p&1&&d++}throw new Error("Failed to find VP8 keyframe in WebP image, is this image mistakenly encoded in the Lossless WebP format?")}const o=-1,s=-2;function c(w){this.value=w}function m(w){this.value=w}function b(w,d,g){if(Array.isArray(g))for(let p=0;p<g.length;p++)b(w,d,g[p]);else if(typeof g=="string")w.writeString(g);else if(g instanceof Uint8Array)w.writeBytes(g);else if(g.id)if(g.offset=w.pos+d,w.writeUnsignedIntBE(g.id),Array.isArray(g.data)){let p,y,x;g.size===o?w.writeByte(255):g.size===s?(p=w.pos,w.writeBytes([15,255,255,255,255])):(p=w.pos,w.writeBytes([0,0,0,0])),y=w.pos,g.dataOffset=y+d,b(w,d,g.data),g.size!==o&&g.size!==s&&(x=w.pos,g.size=x-y,w.seek(p),w.writeEBMLVarIntWidth(g.size,4),w.seek(x))}else if(typeof g.data=="string")w.writeEBMLVarInt(g.data.length),g.dataOffset=w.pos+d,w.writeString(g.data);else if(typeof g.data=="number")g.size||(g.size=w.measureUnsignedInt(g.data)),w.writeEBMLVarInt(g.size),g.dataOffset=w.pos+d,w.writeUnsignedIntBE(g.data,g.size);else if(g.data instanceof m)w.writeEBMLVarInt(8),g.dataOffset=w.pos+d,w.writeDoubleBE(g.data.value);else if(g.data instanceof c)w.writeEBMLVarInt(4),g.dataOffset=w.pos+d,w.writeFloatBE(g.data.value);else if(g.data instanceof Uint8Array)w.writeEBMLVarInt(g.data.byteLength),g.dataOffset=w.pos+d,w.writeBytes(g.data);else throw new Error("Bad EBML datatype "+typeof g.data);else throw new Error("Bad EBML datatype "+typeof g.data)}let v=function(w,d){return function(g){let p=5e3,y=1,x=!1,S=0,D=0,B=null,I=null,T=null,O=[],V=0,W=0,Z={quality:.95,transparent:!1,alphaQuality:void 0,fileWriter:null,fd:null,frameDuration:null,frameRate:null},se={Cues:{id:new Uint8Array([28,83,187,107]),positionEBML:null},SegmentInfo:{id:new Uint8Array([21,73,169,102]),positionEBML:null},Tracks:{id:new Uint8Array([22,84,174,107]),positionEBML:null}},P,X={id:17545,data:new m(0)},A,J=[],oe=new d(g.fileWriter||g.fd);function q(re){return re-P.dataOffset}function fe(re){(B===null||B.width!==re.width||B.height!==re.height)&&(B=document.createElement("canvas"),B.width=re.width,B.height=re.height,I=B.getContext("2d"),T=I.createImageData(B.width,B.height));let u=re.getContext("2d"),K=u.getImageData(0,0,re.width,re.height).data,F=T.data,M=0,k=re.width*re.height*4;for(let z=3;z<k;z+=4){let R=K[z];F[M++]=R,F[M++]=R,F[M++]=R,F[M++]=255}return I.putImageData(T,0,0),B}function ee(){let re={id:21420,size:5,data:0},u={id:290298740,data:[]};for(let K in se){let F=se[K];F.positionEBML=Object.create(re),u.data.push({id:19899,data:[{id:21419,data:F.id},F.positionEBML]})}return u}function ge(){A=ee();let re={id:440786851,data:[{id:17030,data:1},{id:17143,data:1},{id:17138,data:4},{id:17139,data:8},{id:17026,data:"webm"},{id:17031,data:2},{id:17029,data:2}]},u={id:357149030,data:[{id:2807729,data:1e6},{id:19840,data:"webm-writer-js"},{id:22337,data:"webm-writer-js"},X]},K=[{id:176,data:S},{id:186,data:D}];g.transparent&&K.push({id:21440,data:1});let F={id:374648427,data:[{id:174,data:[{id:215,data:y},{id:29637,data:y},{id:156,data:0},{id:2274716,data:"und"},{id:134,data:"V_VP8"},{id:2459272,data:"VP8"},{id:131,data:1},{id:224,data:K}]}]};P={id:408125543,size:s,data:[A,u,F]};let M=new w(256);b(M,oe.pos,[re,P]),oe.write(M.getAsDataArray()),se.SegmentInfo.positionEBML.data=q(u.offset),se.Tracks.positionEBML.data=q(F.offset),x=!0}function j(re){let u,K,F=new w(4);if(!(re.trackNumber>0&&re.trackNumber<127))throw new Error("TrackNumber must be > 0 and < 127");return F.writeEBMLVarInt(re.trackNumber),F.writeU16BE(re.timecode),F.writeByte(0),u={id:161,data:[F.getAsDataArray(),re.frame]},K={id:30113,data:[{id:166,data:[{id:238,data:1},{id:165,data:re.alpha}]}]},{id:160,data:[u,K]}}function U(re){let u=new w(4);if(!(re.trackNumber>0&&re.trackNumber<127))throw new Error("TrackNumber must be > 0 and < 127");return u.writeEBMLVarInt(re.trackNumber),u.writeU16BE(re.timecode),u.writeByte(128),{id:163,data:[u.getAsDataArray(),re.frame]}}function ve(re){return re.alpha?j(re):U(re)}function de(re){return{id:524531317,data:[{id:231,data:Math.round(re.timecode)}]}}function te(re,u,K){J.push({id:187,data:[{id:179,data:u},{id:183,data:[{id:247,data:re},{id:241,data:q(K)}]}]})}function Te(){let re={id:475249515,data:J},u=new w(16+J.length*32);b(u,oe.pos,re),oe.write(u.getAsDataArray()),se.Cues.positionEBML.data=q(re.offset)}function Oe(){if(O.length===0)return;let re=0;for(let F=0;F<O.length;F++)re+=O[F].frame.length+(O[F].alpha?O[F].alpha.length:0);let u=new w(re+O.length*64),K=de({timecode:Math.round(V)});for(let F=0;F<O.length;F++)K.data.push(ve(O[F]));b(u,oe.pos,K),oe.write(u.getAsDataArray()),te(y,Math.round(V),K.offset),O=[],V+=W,W=0}function pe(){if(!g.frameDuration)if(g.frameRate)g.frameDuration=1e3/g.frameRate;else throw new Error("Missing required frameDuration or frameRate setting");g.quality=Math.max(Math.min(g.quality,.99999),0),g.alphaQuality===void 0?g.alphaQuality=g.quality:g.alphaQuality=Math.max(Math.min(g.alphaQuality,.99999),0)}function be(re){re.trackNumber=y,re.timecode=Math.round(W),O.push(re),W+=re.duration,W>=p&&Oe()}function xe(){let re=new w(A.size),u=oe.pos;b(re,A.dataOffset,A.data),oe.seek(A.dataOffset),oe.write(re.getAsDataArray()),oe.seek(u)}function $(){let re=new w(8),u=oe.pos;re.writeDoubleBE(V),oe.seek(X.dataOffset),oe.write(re.getAsDataArray()),oe.seek(u)}function he(){let re=new w(10),u=oe.pos;re.writeUnsignedIntBE(P.id),re.writeEBMLVarIntWidth(oe.pos-P.dataOffset,5),oe.seek(P.offset),oe.write(re.getAsDataArray()),oe.seek(u)}this.addFrame=function(re,u,K){x||(S=re.width||0,D=re.height||0,ge());let F=i(n(re,g.quality)),M,k=null;K?M=K:typeof u=="number"?M=u:M=g.frameDuration,g.transparent&&(u instanceof HTMLCanvasElement||typeof u=="string"?k=u:F.hasAlpha&&(k=fe(re))),be({frame:F.frame,duration:M,alpha:k?i(n(k,g.alphaQuality)).frame:null})},this.complete=function(){return x||ge(),Oe(),Te(),xe(),$(),he(),oe.complete("video/webm")},this.getWrittenSize=function(){return oe.length},g=e(Z,g||{}),pe()}};r.exports=v})()})($r);var ka=$r.exports,en={exports:{}};(function(r){(function(){let e=function(t){this.data=new Uint8Array(t),this.pos=0};e.prototype.seek=function(t){this.pos=t},e.prototype.writeBytes=function(t){for(let n=0;n<t.length;n++)this.data[this.pos++]=t[n]},e.prototype.writeByte=function(t){this.data[this.pos++]=t},e.prototype.writeU8=e.prototype.writeByte,e.prototype.writeU16BE=function(t){this.data[this.pos++]=t>>8,this.data[this.pos++]=t},e.prototype.writeDoubleBE=function(t){let n=new Uint8Array(new Float64Array([t]).buffer);for(let a=n.length-1;a>=0;a--)this.writeByte(n[a])},e.prototype.writeFloatBE=function(t){let n=new Uint8Array(new Float32Array([t]).buffer);for(let a=n.length-1;a>=0;a--)this.writeByte(n[a])},e.prototype.writeString=function(t){for(let n=0;n<t.length;n++)this.data[this.pos++]=t.charCodeAt(n)},e.prototype.writeEBMLVarIntWidth=function(t,n){switch(n){case 1:this.writeU8(128|t);break;case 2:this.writeU8(64|t>>8),this.writeU8(t);break;case 3:this.writeU8(32|t>>16),this.writeU8(t>>8),this.writeU8(t);break;case 4:this.writeU8(16|t>>24),this.writeU8(t>>16),this.writeU8(t>>8),this.writeU8(t);break;case 5:this.writeU8(8|t/4294967296&7),this.writeU8(t>>24),this.writeU8(t>>16),this.writeU8(t>>8),this.writeU8(t);break;default:throw new Error("Bad EBML VINT size "+n)}},e.prototype.measureEBMLVarInt=function(t){if(t<128-1)return 1;if(t<16384-1)return 2;if(t<(1<<21)-1)return 3;if(t<(1<<28)-1)return 4;if(t<34359738367)return 5;throw new Error("EBML VINT size not supported "+t)},e.prototype.writeEBMLVarInt=function(t){this.writeEBMLVarIntWidth(t,this.measureEBMLVarInt(t))},e.prototype.writeUnsignedIntBE=function(t,n){switch(n===void 0&&(n=this.measureUnsignedInt(t)),n){case 5:this.writeU8(Math.floor(t/4294967296));case 4:this.writeU8(t>>24);case 3:this.writeU8(t>>16);case 2:this.writeU8(t>>8);case 1:this.writeU8(t);break;default:throw new Error("Bad UINT size "+n)}},e.prototype.measureUnsignedInt=function(t){return t<256?1:t<65536?2:t<1<<24?3:t<4294967296?4:5},e.prototype.getAsDataArray=function(){if(this.pos<this.data.byteLength)return this.data.subarray(0,this.pos);if(this.pos==this.data.byteLength)return this.data;throw new Error("ArrayBufferDataStream's pos lies beyond end of buffer")},r.exports=e})()})(en);var Ca=en.exports,tn={exports:{}};(function(r){(function(){let e=function(t){return function(n){let a=[],i=Promise.resolve(),o=null,s=null;n&&n.constructor.name==="FileWriter"?o=n:t&&n&&(s=n),this.pos=0,this.length=0;function c(v){return new Promise(function(w,d){let g=new FileReader;g.addEventListener("loadend",function(){w(g.result)}),g.readAsArrayBuffer(v)})}function m(v){return new Promise(function(w,d){v instanceof Uint8Array?w(v):v instanceof ArrayBuffer||ArrayBuffer.isView(v)?w(new Uint8Array(v)):v instanceof Blob?w(c(v).then(function(g){return new Uint8Array(g)})):w(c(new Blob([v])).then(function(g){return new Uint8Array(g)}))})}function b(v){let w=v.byteLength||v.length||v.size;if(!Number.isInteger(w))throw new Error("Failed to determine size of element");return w}this.seek=function(v){if(v<0)throw new Error("Offset may not be negative");if(isNaN(v))throw new Error("Offset may not be NaN");if(v>this.length)throw new Error("Seeking beyond the end of file is not allowed");this.pos=v},this.write=function(v){let w={offset:this.pos,data:v,length:b(v)},d=w.offset>=this.length;this.pos+=w.length,this.length=Math.max(this.length,this.pos),i=i.then(function(){if(s)return new Promise(function(g,p){m(w.data).then(function(y){let x=0,S=Buffer.from(y.buffer),D=function(B,I,T){x+=I,x>=T.length?g():t.write(s,T,x,T.length-x,w.offset+x,D)};t.write(s,S,0,S.length,w.offset,D)})});if(o)return new Promise(function(g,p){o.onwriteend=g,o.seek(w.offset),o.write(new Blob([w.data]))});if(!d)for(let g=0;g<a.length;g++){let p=a[g];if(!(w.offset+w.length<=p.offset||w.offset>=p.offset+p.length)){if(w.offset<p.offset||w.offset+w.length>p.offset+p.length)throw new Error("Overwrite crosses blob boundaries");if(w.offset==p.offset&&w.length==p.length){p.data=w.data;return}else return m(p.data).then(function(y){return p.data=y,m(w.data)}).then(function(y){w.data=y,p.data.set(w.data,w.offset-p.offset)})}}a.push(w)})},this.complete=function(v){return s||o?i=i.then(function(){return null}):i=i.then(function(){let w=[];for(let d=0;d<a.length;d++)w.push(a[d].data);return new Blob(w,{type:v})}),i}}};r.exports=e})()})(tn);var Ma=tn.exports,Da=ka(Ca,Ma(null));const Ba=cr(Da);/*!
1
+ (function(Ze,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("three")):typeof define=="function"&&define.amd?define(["exports","three"],h):(Ze=typeof globalThis<"u"?globalThis:Ze||self,h(Ze.SchematicRenderer={},Ze.THREE))})(this,function(Ze,h){"use strict";var Ql=Object.defineProperty;var Yl=(Ze,h,mt)=>h in Ze?Ql(Ze,h,{enumerable:!0,configurable:!0,writable:!0,value:mt}):Ze[h]=mt;var Ce=(Ze,h,mt)=>(Yl(Ze,typeof h!="symbol"?h+"":h,mt),mt);function mt(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Ae=mt(h),Zr={type:"change"},lr={type:"start"},Jr={type:"end"},Nt=new h.Ray,qr=new h.Plane,ya=Math.cos(70*h.MathUtils.DEG2RAD);class Sa extends h.EventDispatcher{constructor(e,t){super(),this.object=e,this.domElement=t,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new h.Vector3,this.cursor=new h.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:h.MOUSE.ROTATE,MIDDLE:h.MOUSE.DOLLY,RIGHT:h.MOUSE.PAN},this.touches={ONE:h.TOUCH.ROTATE,TWO:h.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return s.phi},this.getAzimuthalAngle=function(){return s.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(L){L.addEventListener("keydown",l),this._domElementKeyEvents=L},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",l),this._domElementKeyEvents=null},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(Zr),n.update(),i=a.NONE},this.update=function(){const L=new h.Vector3,ce=new h.Quaternion().setFromUnitVectors(e.up,new h.Vector3(0,1,0)),Be=ce.clone().invert(),Ee=new h.Vector3,Re=new h.Quaternion,Ge=new h.Vector3,je=2*Math.PI;return function(tt=null){const vt=n.object.position;L.copy(vt).sub(n.target),L.applyQuaternion(ce),s.setFromVector3(L),n.autoRotate&&i===a.NONE&&P(Z(tt)),n.enableDamping?(s.theta+=c.theta*n.dampingFactor,s.phi+=c.phi*n.dampingFactor):(s.theta+=c.theta,s.phi+=c.phi);let Je=n.minAzimuthAngle,He=n.maxAzimuthAngle;isFinite(Je)&&isFinite(He)&&(Je<-Math.PI?Je+=je:Je>Math.PI&&(Je-=je),He<-Math.PI?He+=je:He>Math.PI&&(He-=je),Je<=He?s.theta=Math.max(Je,Math.min(He,s.theta)):s.theta=s.theta>(Je+He)/2?Math.max(Je,s.theta):Math.min(He,s.theta)),s.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,s.phi)),s.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(b,n.dampingFactor):n.target.add(b),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&T||n.object.isOrthographicCamera?s.radius=ge(s.radius):s.radius=ge(s.radius*m),L.setFromSpherical(s),L.applyQuaternion(Be),vt.copy(n.target).add(L),n.object.lookAt(n.target),n.enableDamping===!0?(c.theta*=1-n.dampingFactor,c.phi*=1-n.dampingFactor,b.multiplyScalar(1-n.dampingFactor)):(c.set(0,0,0),b.set(0,0,0));let lt=!1;if(n.zoomToCursor&&T){let et=null;if(n.object.isPerspectiveCamera){const at=L.length();et=ge(at*m);const ct=at-et;n.object.position.addScaledVector(B,ct),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const at=new h.Vector3(I.x,I.y,0);at.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/m)),n.object.updateProjectionMatrix(),lt=!0;const ct=new h.Vector3(I.x,I.y,0);ct.unproject(n.object),n.object.position.sub(ct).add(at),n.object.updateMatrixWorld(),et=L.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;et!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(et).add(n.object.position):(Nt.origin.copy(n.object.position),Nt.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Nt.direction))<ya?e.lookAt(n.target):(qr.setFromNormalAndCoplanarPoint(n.object.up,n.target),Nt.intersectPlane(qr,n.target))))}else n.object.isOrthographicCamera&&(lt=m!==1,lt&&(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/m)),n.object.updateProjectionMatrix()));return m=1,T=!1,lt||Ee.distanceToSquared(n.object.position)>o||8*(1-Re.dot(n.object.quaternion))>o||Ge.distanceToSquared(n.target)>0?(n.dispatchEvent(Zr),Ee.copy(n.object.position),Re.copy(n.object.quaternion),Ge.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",E),n.domElement.removeEventListener("pointerdown",z),n.domElement.removeEventListener("pointercancel",Q),n.domElement.removeEventListener("wheel",ue),n.domElement.removeEventListener("pointermove",R),n.domElement.removeEventListener("pointerup",Q),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",l),n._domElementKeyEvents=null)};const n=this,a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let i=a.NONE;const o=1e-6,s=new h.Spherical,c=new h.Spherical;let m=1;const b=new h.Vector3,v=new h.Vector2,w=new h.Vector2,d=new h.Vector2,g=new h.Vector2,p=new h.Vector2,y=new h.Vector2,x=new h.Vector2,S=new h.Vector2,D=new h.Vector2,B=new h.Vector3,I=new h.Vector2;let T=!1;const O=[],V={};let W=!1;function Z(L){return L!==null?2*Math.PI/60*n.autoRotateSpeed*L:2*Math.PI/60/60*n.autoRotateSpeed}function se(L){const ce=Math.abs(L*.01);return Math.pow(.95,n.zoomSpeed*ce)}function P(L){c.theta-=L}function X(L){c.phi-=L}const A=function(){const L=new h.Vector3;return function(Be,Ee){L.setFromMatrixColumn(Ee,0),L.multiplyScalar(-Be),b.add(L)}}(),J=function(){const L=new h.Vector3;return function(Be,Ee){n.screenSpacePanning===!0?L.setFromMatrixColumn(Ee,1):(L.setFromMatrixColumn(Ee,0),L.crossVectors(n.object.up,L)),L.multiplyScalar(Be),b.add(L)}}(),oe=function(){const L=new h.Vector3;return function(Be,Ee){const Re=n.domElement;if(n.object.isPerspectiveCamera){const Ge=n.object.position;L.copy(Ge).sub(n.target);let je=L.length();je*=Math.tan(n.object.fov/2*Math.PI/180),A(2*Be*je/Re.clientHeight,n.object.matrix),J(2*Ee*je/Re.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(A(Be*(n.object.right-n.object.left)/n.object.zoom/Re.clientWidth,n.object.matrix),J(Ee*(n.object.top-n.object.bottom)/n.object.zoom/Re.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function q(L){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?m/=L:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function fe(L){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?m*=L:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function ee(L,ce){if(!n.zoomToCursor)return;T=!0;const Be=n.domElement.getBoundingClientRect(),Ee=L-Be.left,Re=ce-Be.top,Ge=Be.width,je=Be.height;I.x=Ee/Ge*2-1,I.y=-(Re/je)*2+1,B.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function ge(L){return Math.max(n.minDistance,Math.min(n.maxDistance,L))}function j(L){v.set(L.clientX,L.clientY)}function U(L){ee(L.clientX,L.clientX),x.set(L.clientX,L.clientY)}function ve(L){g.set(L.clientX,L.clientY)}function de(L){w.set(L.clientX,L.clientY),d.subVectors(w,v).multiplyScalar(n.rotateSpeed);const ce=n.domElement;P(2*Math.PI*d.x/ce.clientHeight),X(2*Math.PI*d.y/ce.clientHeight),v.copy(w),n.update()}function te(L){S.set(L.clientX,L.clientY),D.subVectors(S,x),D.y>0?q(se(D.y)):D.y<0&&fe(se(D.y)),x.copy(S),n.update()}function Te(L){p.set(L.clientX,L.clientY),y.subVectors(p,g).multiplyScalar(n.panSpeed),oe(y.x,y.y),g.copy(p),n.update()}function Oe(L){ee(L.clientX,L.clientY),L.deltaY<0?fe(se(L.deltaY)):L.deltaY>0&&q(se(L.deltaY)),n.update()}function pe(L){let ce=!1;switch(L.code){case n.keys.UP:L.ctrlKey||L.metaKey||L.shiftKey?X(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):oe(0,n.keyPanSpeed),ce=!0;break;case n.keys.BOTTOM:L.ctrlKey||L.metaKey||L.shiftKey?X(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):oe(0,-n.keyPanSpeed),ce=!0;break;case n.keys.LEFT:L.ctrlKey||L.metaKey||L.shiftKey?P(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):oe(n.keyPanSpeed,0),ce=!0;break;case n.keys.RIGHT:L.ctrlKey||L.metaKey||L.shiftKey?P(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):oe(-n.keyPanSpeed,0),ce=!0;break}ce&&(L.preventDefault(),n.update())}function be(L){if(O.length===1)v.set(L.pageX,L.pageY);else{const ce=Me(L),Be=.5*(L.pageX+ce.x),Ee=.5*(L.pageY+ce.y);v.set(Be,Ee)}}function xe(L){if(O.length===1)g.set(L.pageX,L.pageY);else{const ce=Me(L),Be=.5*(L.pageX+ce.x),Ee=.5*(L.pageY+ce.y);g.set(Be,Ee)}}function $(L){const ce=Me(L),Be=L.pageX-ce.x,Ee=L.pageY-ce.y,Re=Math.sqrt(Be*Be+Ee*Ee);x.set(0,Re)}function he(L){n.enableZoom&&$(L),n.enablePan&&xe(L)}function re(L){n.enableZoom&&$(L),n.enableRotate&&be(L)}function u(L){if(O.length==1)w.set(L.pageX,L.pageY);else{const Be=Me(L),Ee=.5*(L.pageX+Be.x),Re=.5*(L.pageY+Be.y);w.set(Ee,Re)}d.subVectors(w,v).multiplyScalar(n.rotateSpeed);const ce=n.domElement;P(2*Math.PI*d.x/ce.clientHeight),X(2*Math.PI*d.y/ce.clientHeight),v.copy(w)}function K(L){if(O.length===1)p.set(L.pageX,L.pageY);else{const ce=Me(L),Be=.5*(L.pageX+ce.x),Ee=.5*(L.pageY+ce.y);p.set(Be,Ee)}y.subVectors(p,g).multiplyScalar(n.panSpeed),oe(y.x,y.y),g.copy(p)}function F(L){const ce=Me(L),Be=L.pageX-ce.x,Ee=L.pageY-ce.y,Re=Math.sqrt(Be*Be+Ee*Ee);S.set(0,Re),D.set(0,Math.pow(S.y/x.y,n.zoomSpeed)),q(D.y),x.copy(S);const Ge=(L.pageX+ce.x)*.5,je=(L.pageY+ce.y)*.5;ee(Ge,je)}function M(L){n.enableZoom&&F(L),n.enablePan&&K(L)}function k(L){n.enableZoom&&F(L),n.enableRotate&&u(L)}function z(L){n.enabled!==!1&&(O.length===0&&(n.domElement.setPointerCapture(L.pointerId),n.domElement.addEventListener("pointermove",R),n.domElement.addEventListener("pointerup",Q)),Y(L),L.pointerType==="touch"?f(L):G(L))}function R(L){n.enabled!==!1&&(L.pointerType==="touch"?C(L):ie(L))}function Q(L){switch(H(L),O.length){case 0:n.domElement.releasePointerCapture(L.pointerId),n.domElement.removeEventListener("pointermove",R),n.domElement.removeEventListener("pointerup",Q),n.dispatchEvent(Jr),i=a.NONE;break;case 1:const ce=O[0],Be=V[ce];f({pointerId:ce,pageX:Be.x,pageY:Be.y});break}}function G(L){let ce;switch(L.button){case 0:ce=n.mouseButtons.LEFT;break;case 1:ce=n.mouseButtons.MIDDLE;break;case 2:ce=n.mouseButtons.RIGHT;break;default:ce=-1}switch(ce){case h.MOUSE.DOLLY:if(n.enableZoom===!1)return;U(L),i=a.DOLLY;break;case h.MOUSE.ROTATE:if(L.ctrlKey||L.metaKey||L.shiftKey){if(n.enablePan===!1)return;ve(L),i=a.PAN}else{if(n.enableRotate===!1)return;j(L),i=a.ROTATE}break;case h.MOUSE.PAN:if(L.ctrlKey||L.metaKey||L.shiftKey){if(n.enableRotate===!1)return;j(L),i=a.ROTATE}else{if(n.enablePan===!1)return;ve(L),i=a.PAN}break;default:i=a.NONE}i!==a.NONE&&n.dispatchEvent(lr)}function ie(L){switch(i){case a.ROTATE:if(n.enableRotate===!1)return;de(L);break;case a.DOLLY:if(n.enableZoom===!1)return;te(L);break;case a.PAN:if(n.enablePan===!1)return;Te(L);break}}function ue(L){n.enabled===!1||n.enableZoom===!1||i!==a.NONE||(L.preventDefault(),n.dispatchEvent(lr),Oe(ae(L)),n.dispatchEvent(Jr))}function ae(L){const ce=L.deltaMode,Be={clientX:L.clientX,clientY:L.clientY,deltaY:L.deltaY};switch(ce){case 1:Be.deltaY*=16;break;case 2:Be.deltaY*=100;break}return L.ctrlKey&&!W&&(Be.deltaY*=10),Be}function _e(L){L.key==="Control"&&(W=!0,n.domElement.getRootNode().addEventListener("keyup",_,{passive:!0,capture:!0}))}function _(L){L.key==="Control"&&(W=!1,n.domElement.getRootNode().removeEventListener("keyup",_,{passive:!0,capture:!0}))}function l(L){n.enabled===!1||n.enablePan===!1||pe(L)}function f(L){switch(Se(L),O.length){case 1:switch(n.touches.ONE){case h.TOUCH.ROTATE:if(n.enableRotate===!1)return;be(L),i=a.TOUCH_ROTATE;break;case h.TOUCH.PAN:if(n.enablePan===!1)return;xe(L),i=a.TOUCH_PAN;break;default:i=a.NONE}break;case 2:switch(n.touches.TWO){case h.TOUCH.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;he(L),i=a.TOUCH_DOLLY_PAN;break;case h.TOUCH.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;re(L),i=a.TOUCH_DOLLY_ROTATE;break;default:i=a.NONE}break;default:i=a.NONE}i!==a.NONE&&n.dispatchEvent(lr)}function C(L){switch(Se(L),i){case a.TOUCH_ROTATE:if(n.enableRotate===!1)return;u(L),n.update();break;case a.TOUCH_PAN:if(n.enablePan===!1)return;K(L),n.update();break;case a.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;M(L),n.update();break;case a.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;k(L),n.update();break;default:i=a.NONE}}function E(L){n.enabled!==!1&&L.preventDefault()}function Y(L){O.push(L.pointerId)}function H(L){delete V[L.pointerId];for(let ce=0;ce<O.length;ce++)if(O[ce]==L.pointerId){O.splice(ce,1);return}}function Se(L){let ce=V[L.pointerId];ce===void 0&&(ce=new h.Vector2,V[L.pointerId]=ce),ce.set(L.pageX,L.pageY)}function Me(L){const ce=L.pointerId===O[0]?O[1]:O[0];return V[ce]}n.domElement.addEventListener("contextmenu",E),n.domElement.addEventListener("pointerdown",z),n.domElement.addEventListener("pointercancel",Q),n.domElement.addEventListener("wheel",ue,{passive:!1}),n.domElement.getRootNode().addEventListener("keydown",_e,{passive:!0,capture:!0}),this.update()}}var Ut=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function cr(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var $r={exports:{}};(function(r){(function(){function e(w,d){let g={};return[w,d].forEach(function(p){for(let y in p)Object.prototype.hasOwnProperty.call(p,y)&&(g[y]=p[y])}),g}function t(w){if(typeof w!="string"||!w.match(/^data:image\/webp;base64,/i))throw new Error("Failed to decode WebP Base64 URL");return window.atob(w.substring(23))}function n(w,d){let g=typeof w=="string"&&/^data:image\/webp/.test(w)?w:w.toDataURL("image/webp",d);return t(g)}function a(w){let d=w.charCodeAt(0),g=w.charCodeAt(1),p=w.charCodeAt(2),y=w.charCodeAt(3);return(d|g<<8|p<<16|y<<24)>>>0}function i(w){let d=w.indexOf("VP8",12);if(d===-1)throw new Error("Bad image format, does this browser support WebP?");let g=!1;for(;d<w.length-8;){let p,y;switch(y=w.substring(d,d+4),d+=4,p=a(w.substring(d,d+4)),d+=4,y){case"VP8 ":return{frame:w.substring(d,d+p),hasAlpha:g};case"ALPH":g=!0;break}d+=p,p&1&&d++}throw new Error("Failed to find VP8 keyframe in WebP image, is this image mistakenly encoded in the Lossless WebP format?")}const o=-1,s=-2;function c(w){this.value=w}function m(w){this.value=w}function b(w,d,g){if(Array.isArray(g))for(let p=0;p<g.length;p++)b(w,d,g[p]);else if(typeof g=="string")w.writeString(g);else if(g instanceof Uint8Array)w.writeBytes(g);else if(g.id)if(g.offset=w.pos+d,w.writeUnsignedIntBE(g.id),Array.isArray(g.data)){let p,y,x;g.size===o?w.writeByte(255):g.size===s?(p=w.pos,w.writeBytes([15,255,255,255,255])):(p=w.pos,w.writeBytes([0,0,0,0])),y=w.pos,g.dataOffset=y+d,b(w,d,g.data),g.size!==o&&g.size!==s&&(x=w.pos,g.size=x-y,w.seek(p),w.writeEBMLVarIntWidth(g.size,4),w.seek(x))}else if(typeof g.data=="string")w.writeEBMLVarInt(g.data.length),g.dataOffset=w.pos+d,w.writeString(g.data);else if(typeof g.data=="number")g.size||(g.size=w.measureUnsignedInt(g.data)),w.writeEBMLVarInt(g.size),g.dataOffset=w.pos+d,w.writeUnsignedIntBE(g.data,g.size);else if(g.data instanceof m)w.writeEBMLVarInt(8),g.dataOffset=w.pos+d,w.writeDoubleBE(g.data.value);else if(g.data instanceof c)w.writeEBMLVarInt(4),g.dataOffset=w.pos+d,w.writeFloatBE(g.data.value);else if(g.data instanceof Uint8Array)w.writeEBMLVarInt(g.data.byteLength),g.dataOffset=w.pos+d,w.writeBytes(g.data);else throw new Error("Bad EBML datatype "+typeof g.data);else throw new Error("Bad EBML datatype "+typeof g.data)}let v=function(w,d){return function(g){let p=5e3,y=1,x=!1,S=0,D=0,B=null,I=null,T=null,O=[],V=0,W=0,Z={quality:.95,transparent:!1,alphaQuality:void 0,fileWriter:null,fd:null,frameDuration:null,frameRate:null},se={Cues:{id:new Uint8Array([28,83,187,107]),positionEBML:null},SegmentInfo:{id:new Uint8Array([21,73,169,102]),positionEBML:null},Tracks:{id:new Uint8Array([22,84,174,107]),positionEBML:null}},P,X={id:17545,data:new m(0)},A,J=[],oe=new d(g.fileWriter||g.fd);function q(re){return re-P.dataOffset}function fe(re){(B===null||B.width!==re.width||B.height!==re.height)&&(B=document.createElement("canvas"),B.width=re.width,B.height=re.height,I=B.getContext("2d"),T=I.createImageData(B.width,B.height));let u=re.getContext("2d"),K=u.getImageData(0,0,re.width,re.height).data,F=T.data,M=0,k=re.width*re.height*4;for(let z=3;z<k;z+=4){let R=K[z];F[M++]=R,F[M++]=R,F[M++]=R,F[M++]=255}return I.putImageData(T,0,0),B}function ee(){let re={id:21420,size:5,data:0},u={id:290298740,data:[]};for(let K in se){let F=se[K];F.positionEBML=Object.create(re),u.data.push({id:19899,data:[{id:21419,data:F.id},F.positionEBML]})}return u}function ge(){A=ee();let re={id:440786851,data:[{id:17030,data:1},{id:17143,data:1},{id:17138,data:4},{id:17139,data:8},{id:17026,data:"webm"},{id:17031,data:2},{id:17029,data:2}]},u={id:357149030,data:[{id:2807729,data:1e6},{id:19840,data:"webm-writer-js"},{id:22337,data:"webm-writer-js"},X]},K=[{id:176,data:S},{id:186,data:D}];g.transparent&&K.push({id:21440,data:1});let F={id:374648427,data:[{id:174,data:[{id:215,data:y},{id:29637,data:y},{id:156,data:0},{id:2274716,data:"und"},{id:134,data:"V_VP8"},{id:2459272,data:"VP8"},{id:131,data:1},{id:224,data:K}]}]};P={id:408125543,size:s,data:[A,u,F]};let M=new w(256);b(M,oe.pos,[re,P]),oe.write(M.getAsDataArray()),se.SegmentInfo.positionEBML.data=q(u.offset),se.Tracks.positionEBML.data=q(F.offset),x=!0}function j(re){let u,K,F=new w(4);if(!(re.trackNumber>0&&re.trackNumber<127))throw new Error("TrackNumber must be > 0 and < 127");return F.writeEBMLVarInt(re.trackNumber),F.writeU16BE(re.timecode),F.writeByte(0),u={id:161,data:[F.getAsDataArray(),re.frame]},K={id:30113,data:[{id:166,data:[{id:238,data:1},{id:165,data:re.alpha}]}]},{id:160,data:[u,K]}}function U(re){let u=new w(4);if(!(re.trackNumber>0&&re.trackNumber<127))throw new Error("TrackNumber must be > 0 and < 127");return u.writeEBMLVarInt(re.trackNumber),u.writeU16BE(re.timecode),u.writeByte(128),{id:163,data:[u.getAsDataArray(),re.frame]}}function ve(re){return re.alpha?j(re):U(re)}function de(re){return{id:524531317,data:[{id:231,data:Math.round(re.timecode)}]}}function te(re,u,K){J.push({id:187,data:[{id:179,data:u},{id:183,data:[{id:247,data:re},{id:241,data:q(K)}]}]})}function Te(){let re={id:475249515,data:J},u=new w(16+J.length*32);b(u,oe.pos,re),oe.write(u.getAsDataArray()),se.Cues.positionEBML.data=q(re.offset)}function Oe(){if(O.length===0)return;let re=0;for(let F=0;F<O.length;F++)re+=O[F].frame.length+(O[F].alpha?O[F].alpha.length:0);let u=new w(re+O.length*64),K=de({timecode:Math.round(V)});for(let F=0;F<O.length;F++)K.data.push(ve(O[F]));b(u,oe.pos,K),oe.write(u.getAsDataArray()),te(y,Math.round(V),K.offset),O=[],V+=W,W=0}function pe(){if(!g.frameDuration)if(g.frameRate)g.frameDuration=1e3/g.frameRate;else throw new Error("Missing required frameDuration or frameRate setting");g.quality=Math.max(Math.min(g.quality,.99999),0),g.alphaQuality===void 0?g.alphaQuality=g.quality:g.alphaQuality=Math.max(Math.min(g.alphaQuality,.99999),0)}function be(re){re.trackNumber=y,re.timecode=Math.round(W),O.push(re),W+=re.duration,W>=p&&Oe()}function xe(){let re=new w(A.size),u=oe.pos;b(re,A.dataOffset,A.data),oe.seek(A.dataOffset),oe.write(re.getAsDataArray()),oe.seek(u)}function $(){let re=new w(8),u=oe.pos;re.writeDoubleBE(V),oe.seek(X.dataOffset),oe.write(re.getAsDataArray()),oe.seek(u)}function he(){let re=new w(10),u=oe.pos;re.writeUnsignedIntBE(P.id),re.writeEBMLVarIntWidth(oe.pos-P.dataOffset,5),oe.seek(P.offset),oe.write(re.getAsDataArray()),oe.seek(u)}this.addFrame=function(re,u,K){x||(S=re.width||0,D=re.height||0,ge());let F=i(n(re,g.quality)),M,k=null;K?M=K:typeof u=="number"?M=u:M=g.frameDuration,g.transparent&&(u instanceof HTMLCanvasElement||typeof u=="string"?k=u:F.hasAlpha&&(k=fe(re))),be({frame:F.frame,duration:M,alpha:k?i(n(k,g.alphaQuality)).frame:null})},this.complete=function(){return x||ge(),Oe(),Te(),xe(),$(),he(),oe.complete("video/webm")},this.getWrittenSize=function(){return oe.length},g=e(Z,g||{}),pe()}};r.exports=v})()})($r);var ka=$r.exports,en={exports:{}};(function(r){(function(){let e=function(t){this.data=new Uint8Array(t),this.pos=0};e.prototype.seek=function(t){this.pos=t},e.prototype.writeBytes=function(t){for(let n=0;n<t.length;n++)this.data[this.pos++]=t[n]},e.prototype.writeByte=function(t){this.data[this.pos++]=t},e.prototype.writeU8=e.prototype.writeByte,e.prototype.writeU16BE=function(t){this.data[this.pos++]=t>>8,this.data[this.pos++]=t},e.prototype.writeDoubleBE=function(t){let n=new Uint8Array(new Float64Array([t]).buffer);for(let a=n.length-1;a>=0;a--)this.writeByte(n[a])},e.prototype.writeFloatBE=function(t){let n=new Uint8Array(new Float32Array([t]).buffer);for(let a=n.length-1;a>=0;a--)this.writeByte(n[a])},e.prototype.writeString=function(t){for(let n=0;n<t.length;n++)this.data[this.pos++]=t.charCodeAt(n)},e.prototype.writeEBMLVarIntWidth=function(t,n){switch(n){case 1:this.writeU8(128|t);break;case 2:this.writeU8(64|t>>8),this.writeU8(t);break;case 3:this.writeU8(32|t>>16),this.writeU8(t>>8),this.writeU8(t);break;case 4:this.writeU8(16|t>>24),this.writeU8(t>>16),this.writeU8(t>>8),this.writeU8(t);break;case 5:this.writeU8(8|t/4294967296&7),this.writeU8(t>>24),this.writeU8(t>>16),this.writeU8(t>>8),this.writeU8(t);break;default:throw new Error("Bad EBML VINT size "+n)}},e.prototype.measureEBMLVarInt=function(t){if(t<128-1)return 1;if(t<16384-1)return 2;if(t<(1<<21)-1)return 3;if(t<(1<<28)-1)return 4;if(t<34359738367)return 5;throw new Error("EBML VINT size not supported "+t)},e.prototype.writeEBMLVarInt=function(t){this.writeEBMLVarIntWidth(t,this.measureEBMLVarInt(t))},e.prototype.writeUnsignedIntBE=function(t,n){switch(n===void 0&&(n=this.measureUnsignedInt(t)),n){case 5:this.writeU8(Math.floor(t/4294967296));case 4:this.writeU8(t>>24);case 3:this.writeU8(t>>16);case 2:this.writeU8(t>>8);case 1:this.writeU8(t);break;default:throw new Error("Bad UINT size "+n)}},e.prototype.measureUnsignedInt=function(t){return t<256?1:t<65536?2:t<1<<24?3:t<4294967296?4:5},e.prototype.getAsDataArray=function(){if(this.pos<this.data.byteLength)return this.data.subarray(0,this.pos);if(this.pos==this.data.byteLength)return this.data;throw new Error("ArrayBufferDataStream's pos lies beyond end of buffer")},r.exports=e})()})(en);var Ca=en.exports,tn={exports:{}};(function(r){(function(){let e=function(t){return function(n){let a=[],i=Promise.resolve(),o=null,s=null;n&&n.constructor.name==="FileWriter"?o=n:t&&n&&(s=n),this.pos=0,this.length=0;function c(v){return new Promise(function(w,d){let g=new FileReader;g.addEventListener("loadend",function(){w(g.result)}),g.readAsArrayBuffer(v)})}function m(v){return new Promise(function(w,d){v instanceof Uint8Array?w(v):v instanceof ArrayBuffer||ArrayBuffer.isView(v)?w(new Uint8Array(v)):v instanceof Blob?w(c(v).then(function(g){return new Uint8Array(g)})):w(c(new Blob([v])).then(function(g){return new Uint8Array(g)}))})}function b(v){let w=v.byteLength||v.length||v.size;if(!Number.isInteger(w))throw new Error("Failed to determine size of element");return w}this.seek=function(v){if(v<0)throw new Error("Offset may not be negative");if(isNaN(v))throw new Error("Offset may not be NaN");if(v>this.length)throw new Error("Seeking beyond the end of file is not allowed");this.pos=v},this.write=function(v){let w={offset:this.pos,data:v,length:b(v)},d=w.offset>=this.length;this.pos+=w.length,this.length=Math.max(this.length,this.pos),i=i.then(function(){if(s)return new Promise(function(g,p){m(w.data).then(function(y){let x=0,S=Buffer.from(y.buffer),D=function(B,I,T){x+=I,x>=T.length?g():t.write(s,T,x,T.length-x,w.offset+x,D)};t.write(s,S,0,S.length,w.offset,D)})});if(o)return new Promise(function(g,p){o.onwriteend=g,o.seek(w.offset),o.write(new Blob([w.data]))});if(!d)for(let g=0;g<a.length;g++){let p=a[g];if(!(w.offset+w.length<=p.offset||w.offset>=p.offset+p.length)){if(w.offset<p.offset||w.offset+w.length>p.offset+p.length)throw new Error("Overwrite crosses blob boundaries");if(w.offset==p.offset&&w.length==p.length){p.data=w.data;return}else return m(p.data).then(function(y){return p.data=y,m(w.data)}).then(function(y){w.data=y,p.data.set(w.data,w.offset-p.offset)})}}a.push(w)})},this.complete=function(v){return s||o?i=i.then(function(){return null}):i=i.then(function(){let w=[];for(let d=0;d<a.length;d++)w.push(a[d].data);return new Blob(w,{type:v})}),i}}};r.exports=e})()})(tn);var Ma=tn.exports,Da=ka(Ca,Ma(null));const Ba=cr(Da);/*!
2
2
  fflate - fast JavaScript compression/decompression
3
3
  <https://101arrowz.github.io/fflate>
4
4
  Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE
5
5
  version 0.6.9
6
- */var rn=function(r){return URL.createObjectURL(new Blob([r],{type:"text/javascript"}))};try{URL.revokeObjectURL(rn(""))}catch{rn=function(e){return"data:application/javascript;charset=UTF-8,"+encodeURI(e)}}var Xe=Uint8Array,Ke=Uint16Array,bt=Uint32Array,fr=new Xe([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ur=new Xe([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),nn=new Xe([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),an=function(r,e){for(var t=new Ke(31),n=0;n<31;++n)t[n]=e+=1<<r[n-1];for(var a=new bt(t[30]),n=1;n<30;++n)for(var i=t[n];i<t[n+1];++i)a[i]=i-t[n]<<5|n;return[t,a]},sn=an(fr,2),Ia=sn[0],hr=sn[1];Ia[28]=258,hr[258]=28;for(var Pa=an(ur,0),on=Pa[1],dr=new Ke(32768),Ue=0;Ue<32768;++Ue){var ut=(Ue&43690)>>>1|(Ue&21845)<<1;ut=(ut&52428)>>>2|(ut&13107)<<2,ut=(ut&61680)>>>4|(ut&3855)<<4,dr[Ue]=((ut&65280)>>>8|(ut&255)<<8)>>>1}for(var Ct=function(r,e,t){for(var n=r.length,a=0,i=new Ke(e);a<n;++a)++i[r[a]-1];var o=new Ke(e);for(a=0;a<e;++a)o[a]=o[a-1]+i[a-1]<<1;var s;if(t){s=new Ke(1<<e);var c=15-e;for(a=0;a<n;++a)if(r[a])for(var m=a<<4|r[a],b=e-r[a],v=o[r[a]-1]++<<b,w=v|(1<<b)-1;v<=w;++v)s[dr[v]>>>c]=m}else for(s=new Ke(n),a=0;a<n;++a)r[a]&&(s[a]=dr[o[r[a]-1]++]>>>15-r[a]);return s},gt=new Xe(288),Ue=0;Ue<144;++Ue)gt[Ue]=8;for(var Ue=144;Ue<256;++Ue)gt[Ue]=9;for(var Ue=256;Ue<280;++Ue)gt[Ue]=7;for(var Ue=280;Ue<288;++Ue)gt[Ue]=8;for(var Ut=new Xe(32),Ue=0;Ue<32;++Ue)Ut[Ue]=5;var Ta=Ct(gt,9,0),La=Ct(Ut,5,0),ln=function(r){return(r/8|0)+(r&7&&1)},cn=function(r,e,t){(e==null||e<0)&&(e=0),(t==null||t>r.length)&&(t=r.length);var n=new(r instanceof Ke?Ke:r instanceof bt?bt:Xe)(t-e);return n.set(r.subarray(e,t)),n},st=function(r,e,t){t<<=e&7;var n=e/8|0;r[n]|=t,r[n+1]|=t>>>8},Mt=function(r,e,t){t<<=e&7;var n=e/8|0;r[n]|=t,r[n+1]|=t>>>8,r[n+2]|=t>>>16},pr=function(r,e){for(var t=[],n=0;n<r.length;++n)r[n]&&t.push({s:n,f:r[n]});var a=t.length,i=t.slice();if(!a)return[gr,0];if(a==1){var o=new Xe(t[0].s+1);return o[t[0].s]=1,[o,1]}t.sort(function(I,T){return I.f-T.f}),t.push({s:-1,f:25001});var s=t[0],c=t[1],m=0,b=1,v=2;for(t[0]={s:-1,f:s.f+c.f,l:s,r:c};b!=a-1;)s=t[t[m].f<t[v].f?m++:v++],c=t[m!=b&&t[m].f<t[v].f?m++:v++],t[b++]={s:-1,f:s.f+c.f,l:s,r:c};for(var w=i[0].s,n=1;n<a;++n)i[n].s>w&&(w=i[n].s);var d=new Ke(w+1),g=mr(t[b-1],d,0);if(g>e){var n=0,p=0,y=g-e,x=1<<y;for(i.sort(function(T,O){return d[O.s]-d[T.s]||T.f-O.f});n<a;++n){var S=i[n].s;if(d[S]>e)p+=x-(1<<g-d[S]),d[S]=e;else break}for(p>>>=y;p>0;){var D=i[n].s;d[D]<e?p-=1<<e-d[D]++-1:++n}for(;n>=0&&p;--n){var B=i[n].s;d[B]==e&&(--d[B],++p)}g=e}return[new Xe(d),g]},mr=function(r,e,t){return r.s==-1?Math.max(mr(r.l,e,t+1),mr(r.r,e,t+1)):e[r.s]=t},fn=function(r){for(var e=r.length;e&&!r[--e];);for(var t=new Ke(++e),n=0,a=r[0],i=1,o=function(c){t[n++]=c},s=1;s<=e;++s)if(r[s]==a&&s!=e)++i;else{if(!a&&i>2){for(;i>138;i-=138)o(32754);i>2&&(o(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(o(a),--i;i>6;i-=6)o(8304);i>2&&(o(i-3<<5|8208),i=0)}for(;i--;)o(a);i=1,a=r[s]}return[t.subarray(0,n),e]},Dt=function(r,e){for(var t=0,n=0;n<e.length;++n)t+=r[n]*e[n];return t},Rt=function(r,e,t){var n=t.length,a=ln(e+2);r[a]=n&255,r[a+1]=n>>>8,r[a+2]=r[a]^255,r[a+3]=r[a+1]^255;for(var i=0;i<n;++i)r[a+i+4]=t[i];return(a+4+n)*8},un=function(r,e,t,n,a,i,o,s,c,m,b){st(e,b++,t),++a[256];for(var v=pr(a,15),w=v[0],d=v[1],g=pr(i,15),p=g[0],y=g[1],x=fn(w),S=x[0],D=x[1],B=fn(p),I=B[0],T=B[1],O=new Ke(19),V=0;V<S.length;++V)O[S[V]&31]++;for(var V=0;V<I.length;++V)O[I[V]&31]++;for(var W=pr(O,7),Z=W[0],se=W[1],P=19;P>4&&!Z[nn[P-1]];--P);var X=m+5<<3,A=Dt(a,gt)+Dt(i,Ut)+o,J=Dt(a,w)+Dt(i,p)+o+14+3*P+Dt(O,Z)+(2*O[16]+3*O[17]+7*O[18]);if(X<=A&&X<=J)return Rt(e,b,r.subarray(c,c+m));var oe,q,fe,ee;if(st(e,b,1+(J<A)),b+=2,J<A){oe=Ct(w,d,0),q=w,fe=Ct(p,y,0),ee=p;var ge=Ct(Z,se,0);st(e,b,D-257),st(e,b+5,T-1),st(e,b+10,P-4),b+=14;for(var V=0;V<P;++V)st(e,b+3*V,Z[nn[V]]);b+=3*P;for(var j=[S,I],U=0;U<2;++U)for(var ve=j[U],V=0;V<ve.length;++V){var de=ve[V]&31;st(e,b,ge[de]),b+=Z[de],de>15&&(st(e,b,ve[V]>>>5&127),b+=ve[V]>>>12)}}else oe=Ta,q=gt,fe=La,ee=Ut;for(var V=0;V<s;++V)if(n[V]>255){var de=n[V]>>>18&31;Mt(e,b,oe[de+257]),b+=q[de+257],de>7&&(st(e,b,n[V]>>>23&31),b+=fr[de]);var te=n[V]&31;Mt(e,b,fe[te]),b+=ee[te],te>3&&(Mt(e,b,n[V]>>>5&8191),b+=ur[te])}else Mt(e,b,oe[n[V]]),b+=q[n[V]];return Mt(e,b,oe[256]),b+q[256]},Ea=new bt([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),gr=new Xe(0),Oa=function(r,e,t,n,a,i){var o=r.length,s=new Xe(n+o+5*(1+Math.ceil(o/7e3))+a),c=s.subarray(n,s.length-a),m=0;if(!e||o<8)for(var b=0;b<=o;b+=65535){var v=b+65535;v<o?m=Rt(c,m,r.subarray(b,v)):(c[b]=i,m=Rt(c,m,r.subarray(b,o)))}else{for(var w=Ea[e-1],d=w>>>13,g=w&8191,p=(1<<t)-1,y=new Ke(32768),x=new Ke(p+1),S=Math.ceil(t/3),D=2*S,B=function(u){return(r[u]^r[u+1]<<S^r[u+2]<<D)&p},I=new bt(25e3),T=new Ke(288),O=new Ke(32),V=0,W=0,b=0,Z=0,se=0,P=0;b<o;++b){var X=B(b),A=b&32767,J=x[X];if(y[A]=J,x[X]=A,se<=b){var oe=o-b;if((V>7e3||Z>24576)&&oe>423){m=un(r,c,0,I,T,O,W,Z,P,b-P,m),Z=V=W=0,P=b;for(var q=0;q<286;++q)T[q]=0;for(var q=0;q<30;++q)O[q]=0}var fe=2,ee=0,ge=g,j=A-J&32767;if(oe>2&&X==B(b-j))for(var U=Math.min(d,oe)-1,ve=Math.min(32767,b),de=Math.min(258,oe);j<=ve&&--ge&&A!=J;){if(r[b+fe]==r[b+fe-j]){for(var te=0;te<de&&r[b+te]==r[b+te-j];++te);if(te>fe){if(fe=te,ee=j,te>U)break;for(var Te=Math.min(j,te-2),Oe=0,q=0;q<Te;++q){var pe=b-j+q+32768&32767,be=y[pe],xe=pe-be+32768&32767;xe>Oe&&(Oe=xe,J=pe)}}}A=J,J=y[A],j+=A-J+32768&32767}if(ee){I[Z++]=268435456|hr[fe]<<18|on[ee];var $=hr[fe]&31,he=on[ee]&31;W+=fr[$]+ur[he],++T[257+$],++O[he],se=b+fe,++V}else I[Z++]=r[b],++T[r[b]]}}m=un(r,c,i,I,T,O,W,Z,P,b-P,m),!i&&m&7&&(m=Rt(c,m+1,gr))}return cn(s,0,n+ln(m)+a)},za=function(){for(var r=new bt(256),e=0;e<256;++e){for(var t=e,n=9;--n;)t=(t&1&&3988292384)^t>>>1;r[e]=t}return r}(),Fa=function(){var r=-1;return{p:function(e){for(var t=r,n=0;n<e.length;++n)t=za[t&255^e[n]]^t>>>8;r=t},d:function(){return~r}}},Na=function(r,e,t,n,a){return Oa(r,e.level==null?6:e.level,e.mem==null?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):12+e.mem,t,n,!a)},hn=function(r,e){var t={};for(var n in r)t[n]=r[n];for(var n in e)t[n]=e[n];return t},Ve=function(r,e,t){for(;t;++e)r[e]=t,t>>>=8};function Ua(r,e){return Na(r,e||{},0,0)}var dn=function(r,e,t,n){for(var a in r){var i=r[a],o=e+a;i instanceof Xe?t[o]=[i,n]:Array.isArray(i)?t[o]=[i[0],hn(n,i[1])]:dn(i,o+"/",t,n)}},pn=typeof TextEncoder<"u"&&new TextEncoder,Ra=typeof TextDecoder<"u"&&new TextDecoder,ja=0;try{Ra.decode(gr,{stream:!0}),ja=1}catch{}function jt(r,e){if(e){for(var t=new Xe(r.length),n=0;n<r.length;++n)t[n]=r.charCodeAt(n);return t}if(pn)return pn.encode(r);for(var a=r.length,i=new Xe(r.length+(r.length>>1)),o=0,s=function(b){i[o++]=b},n=0;n<a;++n){if(o+5>i.length){var c=new Xe(o+8+(a-n<<1));c.set(i),i=c}var m=r.charCodeAt(n);m<128||e?s(m):m<2048?(s(192|m>>6),s(128|m&63)):m>55295&&m<57344?(m=65536+(m&1047552)|r.charCodeAt(++n)&1023,s(240|m>>18),s(128|m>>12&63),s(128|m>>6&63),s(128|m&63)):(s(224|m>>12),s(128|m>>6&63),s(128|m&63))}return cn(i,0,o)}var wr=function(r){var e=0;if(r)for(var t in r){var n=r[t].length;if(n>65535)throw"extra field too long";e+=n+4}return e},mn=function(r,e,t,n,a,i,o,s){var c=n.length,m=t.extra,b=s&&s.length,v=wr(m);Ve(r,e,o!=null?33639248:67324752),e+=4,o!=null&&(r[e++]=20,r[e++]=t.os),r[e]=20,e+=2,r[e++]=t.flag<<1|(i==null&&8),r[e++]=a&&8,r[e++]=t.compression&255,r[e++]=t.compression>>8;var w=new Date(t.mtime==null?Date.now():t.mtime),d=w.getFullYear()-1980;if(d<0||d>119)throw"date not in range 1980-2099";if(Ve(r,e,d<<25|w.getMonth()+1<<21|w.getDate()<<16|w.getHours()<<11|w.getMinutes()<<5|w.getSeconds()>>>1),e+=4,i!=null&&(Ve(r,e,t.crc),Ve(r,e+4,i),Ve(r,e+8,t.size)),Ve(r,e+12,c),Ve(r,e+14,v),e+=16,o!=null&&(Ve(r,e,b),Ve(r,e+6,t.attrs),Ve(r,e+10,o),e+=14),r.set(n,e),e+=c,v)for(var g in m){var p=m[g],y=p.length;Ve(r,e,+g),Ve(r,e+2,y),r.set(p,e+4),e+=4+y}return b&&(r.set(s,e),e+=b),e},Ga=function(r,e,t,n,a){Ve(r,e,101010256),Ve(r,e+8,t),Ve(r,e+10,t),Ve(r,e+12,n),Ve(r,e+16,a)};function Va(r,e){e||(e={});var t={},n=[];dn(r,"",t,e);var a=0,i=0;for(var o in t){var s=t[o],c=s[0],m=s[1],b=m.level==0?0:8,v=jt(o),w=v.length,d=m.comment,g=d&&jt(d),p=g&&g.length,y=wr(m.extra);if(w>65535)throw"filename too long";var x=b?Ua(c,m):c,S=x.length,D=Fa();D.p(c),n.push(hn(m,{size:c.length,crc:D.d(),c:x,f:v,m:g,u:w!=o.length||g&&d.length!=p,o:a,compression:b})),a+=30+w+y+S,i+=76+2*(w+y)+(p||0)+S}for(var B=new Xe(i+22),I=a,T=i-a,O=0;O<n.length;++O){var v=n[O];mn(B,v.o,v,v.f,v.u,v.c.length);var V=30+v.f.length+wr(v.extra);B.set(v.c,v.o+V),mn(B,a,v,v.f,v.u,v.c.length,v.o,v.m),a+=16+V+(v.m?v.m.length:0)}return Ga(B,a,n.length,T,I),B}let Bt,vr,xt,Gt;function Wa(r,e=1/0,t=null){vr||(vr=new h.PlaneGeometry(2,2,1,1)),xt||(xt=new h.ShaderMaterial({uniforms:{blitTexture:new h.Uniform(r)},vertexShader:`
6
+ */var rn=function(r){return URL.createObjectURL(new Blob([r],{type:"text/javascript"}))};try{URL.revokeObjectURL(rn(""))}catch{rn=function(e){return"data:application/javascript;charset=UTF-8,"+encodeURI(e)}}var Xe=Uint8Array,Ke=Uint16Array,bt=Uint32Array,fr=new Xe([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ur=new Xe([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),nn=new Xe([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),an=function(r,e){for(var t=new Ke(31),n=0;n<31;++n)t[n]=e+=1<<r[n-1];for(var a=new bt(t[30]),n=1;n<30;++n)for(var i=t[n];i<t[n+1];++i)a[i]=i-t[n]<<5|n;return[t,a]},sn=an(fr,2),Ia=sn[0],hr=sn[1];Ia[28]=258,hr[258]=28;for(var Pa=an(ur,0),on=Pa[1],dr=new Ke(32768),Ue=0;Ue<32768;++Ue){var ut=(Ue&43690)>>>1|(Ue&21845)<<1;ut=(ut&52428)>>>2|(ut&13107)<<2,ut=(ut&61680)>>>4|(ut&3855)<<4,dr[Ue]=((ut&65280)>>>8|(ut&255)<<8)>>>1}for(var Ct=function(r,e,t){for(var n=r.length,a=0,i=new Ke(e);a<n;++a)++i[r[a]-1];var o=new Ke(e);for(a=0;a<e;++a)o[a]=o[a-1]+i[a-1]<<1;var s;if(t){s=new Ke(1<<e);var c=15-e;for(a=0;a<n;++a)if(r[a])for(var m=a<<4|r[a],b=e-r[a],v=o[r[a]-1]++<<b,w=v|(1<<b)-1;v<=w;++v)s[dr[v]>>>c]=m}else for(s=new Ke(n),a=0;a<n;++a)r[a]&&(s[a]=dr[o[r[a]-1]++]>>>15-r[a]);return s},gt=new Xe(288),Ue=0;Ue<144;++Ue)gt[Ue]=8;for(var Ue=144;Ue<256;++Ue)gt[Ue]=9;for(var Ue=256;Ue<280;++Ue)gt[Ue]=7;for(var Ue=280;Ue<288;++Ue)gt[Ue]=8;for(var Rt=new Xe(32),Ue=0;Ue<32;++Ue)Rt[Ue]=5;var Ta=Ct(gt,9,0),La=Ct(Rt,5,0),ln=function(r){return(r/8|0)+(r&7&&1)},cn=function(r,e,t){(e==null||e<0)&&(e=0),(t==null||t>r.length)&&(t=r.length);var n=new(r instanceof Ke?Ke:r instanceof bt?bt:Xe)(t-e);return n.set(r.subarray(e,t)),n},st=function(r,e,t){t<<=e&7;var n=e/8|0;r[n]|=t,r[n+1]|=t>>>8},Mt=function(r,e,t){t<<=e&7;var n=e/8|0;r[n]|=t,r[n+1]|=t>>>8,r[n+2]|=t>>>16},pr=function(r,e){for(var t=[],n=0;n<r.length;++n)r[n]&&t.push({s:n,f:r[n]});var a=t.length,i=t.slice();if(!a)return[gr,0];if(a==1){var o=new Xe(t[0].s+1);return o[t[0].s]=1,[o,1]}t.sort(function(I,T){return I.f-T.f}),t.push({s:-1,f:25001});var s=t[0],c=t[1],m=0,b=1,v=2;for(t[0]={s:-1,f:s.f+c.f,l:s,r:c};b!=a-1;)s=t[t[m].f<t[v].f?m++:v++],c=t[m!=b&&t[m].f<t[v].f?m++:v++],t[b++]={s:-1,f:s.f+c.f,l:s,r:c};for(var w=i[0].s,n=1;n<a;++n)i[n].s>w&&(w=i[n].s);var d=new Ke(w+1),g=mr(t[b-1],d,0);if(g>e){var n=0,p=0,y=g-e,x=1<<y;for(i.sort(function(T,O){return d[O.s]-d[T.s]||T.f-O.f});n<a;++n){var S=i[n].s;if(d[S]>e)p+=x-(1<<g-d[S]),d[S]=e;else break}for(p>>>=y;p>0;){var D=i[n].s;d[D]<e?p-=1<<e-d[D]++-1:++n}for(;n>=0&&p;--n){var B=i[n].s;d[B]==e&&(--d[B],++p)}g=e}return[new Xe(d),g]},mr=function(r,e,t){return r.s==-1?Math.max(mr(r.l,e,t+1),mr(r.r,e,t+1)):e[r.s]=t},fn=function(r){for(var e=r.length;e&&!r[--e];);for(var t=new Ke(++e),n=0,a=r[0],i=1,o=function(c){t[n++]=c},s=1;s<=e;++s)if(r[s]==a&&s!=e)++i;else{if(!a&&i>2){for(;i>138;i-=138)o(32754);i>2&&(o(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(o(a),--i;i>6;i-=6)o(8304);i>2&&(o(i-3<<5|8208),i=0)}for(;i--;)o(a);i=1,a=r[s]}return[t.subarray(0,n),e]},Dt=function(r,e){for(var t=0,n=0;n<e.length;++n)t+=r[n]*e[n];return t},jt=function(r,e,t){var n=t.length,a=ln(e+2);r[a]=n&255,r[a+1]=n>>>8,r[a+2]=r[a]^255,r[a+3]=r[a+1]^255;for(var i=0;i<n;++i)r[a+i+4]=t[i];return(a+4+n)*8},un=function(r,e,t,n,a,i,o,s,c,m,b){st(e,b++,t),++a[256];for(var v=pr(a,15),w=v[0],d=v[1],g=pr(i,15),p=g[0],y=g[1],x=fn(w),S=x[0],D=x[1],B=fn(p),I=B[0],T=B[1],O=new Ke(19),V=0;V<S.length;++V)O[S[V]&31]++;for(var V=0;V<I.length;++V)O[I[V]&31]++;for(var W=pr(O,7),Z=W[0],se=W[1],P=19;P>4&&!Z[nn[P-1]];--P);var X=m+5<<3,A=Dt(a,gt)+Dt(i,Rt)+o,J=Dt(a,w)+Dt(i,p)+o+14+3*P+Dt(O,Z)+(2*O[16]+3*O[17]+7*O[18]);if(X<=A&&X<=J)return jt(e,b,r.subarray(c,c+m));var oe,q,fe,ee;if(st(e,b,1+(J<A)),b+=2,J<A){oe=Ct(w,d,0),q=w,fe=Ct(p,y,0),ee=p;var ge=Ct(Z,se,0);st(e,b,D-257),st(e,b+5,T-1),st(e,b+10,P-4),b+=14;for(var V=0;V<P;++V)st(e,b+3*V,Z[nn[V]]);b+=3*P;for(var j=[S,I],U=0;U<2;++U)for(var ve=j[U],V=0;V<ve.length;++V){var de=ve[V]&31;st(e,b,ge[de]),b+=Z[de],de>15&&(st(e,b,ve[V]>>>5&127),b+=ve[V]>>>12)}}else oe=Ta,q=gt,fe=La,ee=Rt;for(var V=0;V<s;++V)if(n[V]>255){var de=n[V]>>>18&31;Mt(e,b,oe[de+257]),b+=q[de+257],de>7&&(st(e,b,n[V]>>>23&31),b+=fr[de]);var te=n[V]&31;Mt(e,b,fe[te]),b+=ee[te],te>3&&(Mt(e,b,n[V]>>>5&8191),b+=ur[te])}else Mt(e,b,oe[n[V]]),b+=q[n[V]];return Mt(e,b,oe[256]),b+q[256]},Ea=new bt([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),gr=new Xe(0),Oa=function(r,e,t,n,a,i){var o=r.length,s=new Xe(n+o+5*(1+Math.ceil(o/7e3))+a),c=s.subarray(n,s.length-a),m=0;if(!e||o<8)for(var b=0;b<=o;b+=65535){var v=b+65535;v<o?m=jt(c,m,r.subarray(b,v)):(c[b]=i,m=jt(c,m,r.subarray(b,o)))}else{for(var w=Ea[e-1],d=w>>>13,g=w&8191,p=(1<<t)-1,y=new Ke(32768),x=new Ke(p+1),S=Math.ceil(t/3),D=2*S,B=function(u){return(r[u]^r[u+1]<<S^r[u+2]<<D)&p},I=new bt(25e3),T=new Ke(288),O=new Ke(32),V=0,W=0,b=0,Z=0,se=0,P=0;b<o;++b){var X=B(b),A=b&32767,J=x[X];if(y[A]=J,x[X]=A,se<=b){var oe=o-b;if((V>7e3||Z>24576)&&oe>423){m=un(r,c,0,I,T,O,W,Z,P,b-P,m),Z=V=W=0,P=b;for(var q=0;q<286;++q)T[q]=0;for(var q=0;q<30;++q)O[q]=0}var fe=2,ee=0,ge=g,j=A-J&32767;if(oe>2&&X==B(b-j))for(var U=Math.min(d,oe)-1,ve=Math.min(32767,b),de=Math.min(258,oe);j<=ve&&--ge&&A!=J;){if(r[b+fe]==r[b+fe-j]){for(var te=0;te<de&&r[b+te]==r[b+te-j];++te);if(te>fe){if(fe=te,ee=j,te>U)break;for(var Te=Math.min(j,te-2),Oe=0,q=0;q<Te;++q){var pe=b-j+q+32768&32767,be=y[pe],xe=pe-be+32768&32767;xe>Oe&&(Oe=xe,J=pe)}}}A=J,J=y[A],j+=A-J+32768&32767}if(ee){I[Z++]=268435456|hr[fe]<<18|on[ee];var $=hr[fe]&31,he=on[ee]&31;W+=fr[$]+ur[he],++T[257+$],++O[he],se=b+fe,++V}else I[Z++]=r[b],++T[r[b]]}}m=un(r,c,i,I,T,O,W,Z,P,b-P,m),!i&&m&7&&(m=jt(c,m+1,gr))}return cn(s,0,n+ln(m)+a)},za=function(){for(var r=new bt(256),e=0;e<256;++e){for(var t=e,n=9;--n;)t=(t&1&&3988292384)^t>>>1;r[e]=t}return r}(),Fa=function(){var r=-1;return{p:function(e){for(var t=r,n=0;n<e.length;++n)t=za[t&255^e[n]]^t>>>8;r=t},d:function(){return~r}}},Na=function(r,e,t,n,a){return Oa(r,e.level==null?6:e.level,e.mem==null?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):12+e.mem,t,n,!a)},hn=function(r,e){var t={};for(var n in r)t[n]=r[n];for(var n in e)t[n]=e[n];return t},Ve=function(r,e,t){for(;t;++e)r[e]=t,t>>>=8};function Ua(r,e){return Na(r,e||{},0,0)}var dn=function(r,e,t,n){for(var a in r){var i=r[a],o=e+a;i instanceof Xe?t[o]=[i,n]:Array.isArray(i)?t[o]=[i[0],hn(n,i[1])]:dn(i,o+"/",t,n)}},pn=typeof TextEncoder<"u"&&new TextEncoder,Ra=typeof TextDecoder<"u"&&new TextDecoder,ja=0;try{Ra.decode(gr,{stream:!0}),ja=1}catch{}function Gt(r,e){if(e){for(var t=new Xe(r.length),n=0;n<r.length;++n)t[n]=r.charCodeAt(n);return t}if(pn)return pn.encode(r);for(var a=r.length,i=new Xe(r.length+(r.length>>1)),o=0,s=function(b){i[o++]=b},n=0;n<a;++n){if(o+5>i.length){var c=new Xe(o+8+(a-n<<1));c.set(i),i=c}var m=r.charCodeAt(n);m<128||e?s(m):m<2048?(s(192|m>>6),s(128|m&63)):m>55295&&m<57344?(m=65536+(m&1047552)|r.charCodeAt(++n)&1023,s(240|m>>18),s(128|m>>12&63),s(128|m>>6&63),s(128|m&63)):(s(224|m>>12),s(128|m>>6&63),s(128|m&63))}return cn(i,0,o)}var wr=function(r){var e=0;if(r)for(var t in r){var n=r[t].length;if(n>65535)throw"extra field too long";e+=n+4}return e},mn=function(r,e,t,n,a,i,o,s){var c=n.length,m=t.extra,b=s&&s.length,v=wr(m);Ve(r,e,o!=null?33639248:67324752),e+=4,o!=null&&(r[e++]=20,r[e++]=t.os),r[e]=20,e+=2,r[e++]=t.flag<<1|(i==null&&8),r[e++]=a&&8,r[e++]=t.compression&255,r[e++]=t.compression>>8;var w=new Date(t.mtime==null?Date.now():t.mtime),d=w.getFullYear()-1980;if(d<0||d>119)throw"date not in range 1980-2099";if(Ve(r,e,d<<25|w.getMonth()+1<<21|w.getDate()<<16|w.getHours()<<11|w.getMinutes()<<5|w.getSeconds()>>>1),e+=4,i!=null&&(Ve(r,e,t.crc),Ve(r,e+4,i),Ve(r,e+8,t.size)),Ve(r,e+12,c),Ve(r,e+14,v),e+=16,o!=null&&(Ve(r,e,b),Ve(r,e+6,t.attrs),Ve(r,e+10,o),e+=14),r.set(n,e),e+=c,v)for(var g in m){var p=m[g],y=p.length;Ve(r,e,+g),Ve(r,e+2,y),r.set(p,e+4),e+=4+y}return b&&(r.set(s,e),e+=b),e},Ga=function(r,e,t,n,a){Ve(r,e,101010256),Ve(r,e+8,t),Ve(r,e+10,t),Ve(r,e+12,n),Ve(r,e+16,a)};function Va(r,e){e||(e={});var t={},n=[];dn(r,"",t,e);var a=0,i=0;for(var o in t){var s=t[o],c=s[0],m=s[1],b=m.level==0?0:8,v=Gt(o),w=v.length,d=m.comment,g=d&&Gt(d),p=g&&g.length,y=wr(m.extra);if(w>65535)throw"filename too long";var x=b?Ua(c,m):c,S=x.length,D=Fa();D.p(c),n.push(hn(m,{size:c.length,crc:D.d(),c:x,f:v,m:g,u:w!=o.length||g&&d.length!=p,o:a,compression:b})),a+=30+w+y+S,i+=76+2*(w+y)+(p||0)+S}for(var B=new Xe(i+22),I=a,T=i-a,O=0;O<n.length;++O){var v=n[O];mn(B,v.o,v,v.f,v.u,v.c.length);var V=30+v.f.length+wr(v.extra);B.set(v.c,v.o+V),mn(B,a,v,v.f,v.u,v.c.length,v.o,v.m),a+=16+V+(v.m?v.m.length:0)}return Ga(B,a,n.length,T,I),B}let Bt,vr,xt,Vt;function Wa(r,e=1/0,t=null){vr||(vr=new h.PlaneGeometry(2,2,1,1)),xt||(xt=new h.ShaderMaterial({uniforms:{blitTexture:new h.Uniform(r)},vertexShader:`
7
7
  varying vec2 vUv;
8
8
  void main(){
9
9
  vUv = uv;
@@ -20,7 +20,7 @@ version 0.6.9
20
20
  #else
21
21
  gl_FragColor = texture2D( blitTexture, vUv);
22
22
  #endif
23
- }`})),xt.uniforms.blitTexture.value=r,xt.defines.IS_SRGB=r.colorSpace==h.SRGBColorSpace,xt.needsUpdate=!0,Gt||(Gt=new h.Mesh(vr,xt),Gt.frustrumCulled=!1);const n=new h.PerspectiveCamera,a=new h.Scene;a.add(Gt),t===null&&(t=Bt=new h.WebGLRenderer({antialias:!1}));const i=Math.min(r.image.width,e),o=Math.min(r.image.height,e);t.setSize(i,o),t.clear(),t.render(a,n);const s=document.createElement("canvas"),c=s.getContext("2d");s.width=i,s.height=o,c.drawImage(t.domElement,0,0,i,o);const m=new h.CanvasTexture(s);return m.minFilter=r.minFilter,m.magFilter=r.magFilter,m.wrapS=r.wrapS,m.wrapT=r.wrapT,m.name=r.name,Bt&&(Bt.forceContextLoss(),Bt.dispose(),Bt=null),m}class Qa{async parse(e,t={}){t=Object.assign({ar:{anchoring:{type:"plane"},planeAnchoring:{alignment:"horizontal"}},quickLookCompatible:!1,maxTextureSize:1024},t);const n={},a="model.usda";n[a]=null;let i=gn();i+=Xa(t);const o={},s={};e.traverseVisible(m=>{if(m.isMesh){const b=m.geometry,v=m.material;if(v.isMeshStandardMaterial){const w="geometries/Geometry_"+b.id+".usda";if(!(w in n)){const d=Ja(b);n[w]=Ha(d)}v.uuid in o||(o[v.uuid]=v),i+=Za(m,b,v)}else console.warn("THREE.USDZExporter: Unsupported material type (USDZ only supports MeshStandardMaterial)",m)}else m.isCamera&&(i+=si(m))}),i+=Ka(),i+=ni(o,s,t.quickLookCompatible),n[a]=jt(i),i=null;for(const m in s){let b=s[m];b.isCompressedTexture===!0&&(b=Wa(b));const v=Ya(b.image,b.flipY,t.maxTextureSize),w=await new Promise(d=>v.toBlob(d,"image/png",1));n[`textures/Texture_${m}.png`]=new Uint8Array(await w.arrayBuffer())}let c=0;for(const m in n){const b=n[m],v=34+m.length;c+=v;const w=c&63;if(w!==4){const d=64-w,g=new Uint8Array(d);n[m]=[b,{extra:{12345:g}}]}c=b.length}return Va(n,{level:0})}}function Ya(r,e,t){if(typeof HTMLImageElement<"u"&&r instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&r instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&r instanceof OffscreenCanvas||typeof ImageBitmap<"u"&&r instanceof ImageBitmap){const n=t/Math.max(r.width,r.height),a=document.createElement("canvas");a.width=r.width*Math.min(1,n),a.height=r.height*Math.min(1,n);const i=a.getContext("2d");return e===!0&&(i.translate(0,a.height),i.scale(1,-1)),i.drawImage(r,0,0,a.width,a.height),a}else throw new Error("THREE.USDZExporter: No valid image data found. Unable to process texture.")}const Qe=7;function gn(){return`#usda 1.0
23
+ }`})),xt.uniforms.blitTexture.value=r,xt.defines.IS_SRGB=r.colorSpace==h.SRGBColorSpace,xt.needsUpdate=!0,Vt||(Vt=new h.Mesh(vr,xt),Vt.frustrumCulled=!1);const n=new h.PerspectiveCamera,a=new h.Scene;a.add(Vt),t===null&&(t=Bt=new h.WebGLRenderer({antialias:!1}));const i=Math.min(r.image.width,e),o=Math.min(r.image.height,e);t.setSize(i,o),t.clear(),t.render(a,n);const s=document.createElement("canvas"),c=s.getContext("2d");s.width=i,s.height=o,c.drawImage(t.domElement,0,0,i,o);const m=new h.CanvasTexture(s);return m.minFilter=r.minFilter,m.magFilter=r.magFilter,m.wrapS=r.wrapS,m.wrapT=r.wrapT,m.name=r.name,Bt&&(Bt.forceContextLoss(),Bt.dispose(),Bt=null),m}class Qa{async parse(e,t={}){t=Object.assign({ar:{anchoring:{type:"plane"},planeAnchoring:{alignment:"horizontal"}},quickLookCompatible:!1,maxTextureSize:1024},t);const n={},a="model.usda";n[a]=null;let i=gn();i+=Xa(t);const o={},s={};e.traverseVisible(m=>{if(m.isMesh){const b=m.geometry,v=m.material;if(v.isMeshStandardMaterial){const w="geometries/Geometry_"+b.id+".usda";if(!(w in n)){const d=Ja(b);n[w]=Ha(d)}v.uuid in o||(o[v.uuid]=v),i+=Za(m,b,v)}else console.warn("THREE.USDZExporter: Unsupported material type (USDZ only supports MeshStandardMaterial)",m)}else m.isCamera&&(i+=si(m))}),i+=Ka(),i+=ni(o,s,t.quickLookCompatible),n[a]=Gt(i),i=null;for(const m in s){let b=s[m];b.isCompressedTexture===!0&&(b=Wa(b));const v=Ya(b.image,b.flipY,t.maxTextureSize),w=await new Promise(d=>v.toBlob(d,"image/png",1));n[`textures/Texture_${m}.png`]=new Uint8Array(await w.arrayBuffer())}let c=0;for(const m in n){const b=n[m],v=34+m.length;c+=v;const w=c&63;if(w!==4){const d=64-w,g=new Uint8Array(d);n[m]=[b,{extra:{12345:g}}]}c=b.length}return Va(n,{level:0})}}function Ya(r,e,t){if(typeof HTMLImageElement<"u"&&r instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&r instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&r instanceof OffscreenCanvas||typeof ImageBitmap<"u"&&r instanceof ImageBitmap){const n=t/Math.max(r.width,r.height),a=document.createElement("canvas");a.width=r.width*Math.min(1,n),a.height=r.height*Math.min(1,n);const i=a.getContext("2d");return e===!0&&(i.translate(0,a.height),i.scale(1,-1)),i.drawImage(r,0,0,a.width,a.height),a}else throw new Error("THREE.USDZExporter: No valid image data found. Unable to process texture.")}const Qe=7;function gn(){return`#usda 1.0
24
24
  (
25
25
  customLayerData = {
26
26
  string creator = "Three.js USDZExporter"
@@ -52,7 +52,7 @@ version 0.6.9
52
52
  }
53
53
  }
54
54
 
55
- `}function Ha(r){let e=gn();return e+=r,jt(e)}function Za(r,e,t){const n="Object_"+r.id,a=wn(r.matrixWorld);return r.matrixWorld.determinant()<0&&console.warn("THREE.USDZExporter: USDZ does not support negative scales",r),`def Xform "${n}" (
55
+ `}function Ha(r){let e=gn();return e+=r,Gt(e)}function Za(r,e,t){const n="Object_"+r.id,a=wn(r.matrixWorld);return r.matrixWorld.determinant()<0&&console.warn("THREE.USDZExporter: USDZ does not support negative scales",r),`def Xform "${n}" (
56
56
  prepend references = @./geometries/Geometry_${e.id}.usda@</Geometry>
57
57
  prepend apiSchemas = ["MaterialBindingAPI"]
58
58
  )
@@ -63,7 +63,7 @@ version 0.6.9
63
63
  rel material:binding = </Materials/Material_${t.id}>
64
64
  }
65
65
 
66
- `}function wn(r){const e=r.elements;return`( ${Vt(e,0)}, ${Vt(e,4)}, ${Vt(e,8)}, ${Vt(e,12)} )`}function Vt(r,e){return`(${r[e+0]}, ${r[e+1]}, ${r[e+2]}, ${r[e+3]})`}function Ja(r){return`
66
+ `}function wn(r){const e=r.elements;return`( ${Wt(e,0)}, ${Wt(e,4)}, ${Wt(e,8)}, ${Wt(e,12)} )`}function Wt(r,e){return`(${r[e+0]}, ${r[e+1]}, ${r[e+2]}, ${r[e+3]})`}function Ja(r){return`
67
67
  def "Geometry"
68
68
  {
69
69
  ${qa(r)}
@@ -178,7 +178,7 @@ uniform lowp sampler2D inputBuffer;
178
178
  uniform float opacity;varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);gl_FragColor=opacity*texel;
179
179
  #include <colorspace_fragment>
180
180
  #include <dithering_fragment>
181
- }`,pi="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}",mi=class extends h.ShaderMaterial{constructor(){super({name:"CopyMaterial",uniforms:{inputBuffer:new h.Uniform(null),opacity:new h.Uniform(1)},blending:h.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:di,vertexShader:pi}),this.fragmentShader=_n(this.fragmentShader)}set inputBuffer(r){this.uniforms.inputBuffer.value=r}setInputBuffer(r){this.uniforms.inputBuffer.value=r}getOpacity(r){return this.uniforms.opacity.value}setOpacity(r){this.uniforms.opacity.value=r}},gi=class extends We{constructor(e,t=!0){super("CopyPass"),this.fullscreenMaterial=new mi,this.needsSwap=!1,this.renderTarget=e,e===void 0&&(this.renderTarget=new h.WebGLRenderTarget(1,1,{minFilter:h.LinearFilter,magFilter:h.LinearFilter,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="CopyPass.Target"),this.autoResize=t}get resize(){return this.autoResize}set resize(e){this.autoResize=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}setAutoResizeEnabled(e){this.autoResize=e}render(e,t,n,a,i){this.fullscreenMaterial.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){this.autoResize&&this.renderTarget.setSize(e,t)}initialize(e,t,n){n!==void 0&&(this.renderTarget.texture.type=n,n!==h.UnsignedByteType?this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1":e!==null&&e.outputColorSpace===h.SRGBColorSpace&&(this.renderTarget.texture.colorSpace=h.SRGBColorSpace))}},An=new h.Color,xr=class extends We{constructor(r=!0,e=!0,t=!1){super("ClearPass",null,null),this.needsSwap=!1,this.color=r,this.depth=e,this.stencil=t,this.overrideClearColor=null,this.overrideClearAlpha=-1}setClearFlags(r,e,t){this.color=r,this.depth=e,this.stencil=t}getOverrideClearColor(){return this.overrideClearColor}setOverrideClearColor(r){this.overrideClearColor=r}getOverrideClearAlpha(){return this.overrideClearAlpha}setOverrideClearAlpha(r){this.overrideClearAlpha=r}render(r,e,t,n,a){const i=this.overrideClearColor,o=this.overrideClearAlpha,s=r.getClearAlpha(),c=i!==null,m=o>=0;c?(r.getClearColor(An),r.setClearColor(i,m?o:s)):m&&r.setClearAlpha(o),r.setRenderTarget(this.renderToScreen?null:e),r.clear(this.color,this.depth,this.stencil),c?r.setClearColor(An,s):m&&r.setClearAlpha(s)}},wi=class extends We{constructor(r,e){super("MaskPass",r,e),this.needsSwap=!1,this.clearPass=new xr(!1,!1,!0),this.inverse=!1}set mainScene(r){this.scene=r}set mainCamera(r){this.camera=r}get inverted(){return this.inverse}set inverted(r){this.inverse=r}get clear(){return this.clearPass.enabled}set clear(r){this.clearPass.enabled=r}getClearPass(){return this.clearPass}isInverted(){return this.inverted}setInverted(r){this.inverted=r}render(r,e,t,n,a){const i=r.getContext(),o=r.state.buffers,s=this.scene,c=this.camera,m=this.clearPass,b=this.inverted?0:1,v=1-b;o.color.setMask(!1),o.depth.setMask(!1),o.color.setLocked(!0),o.depth.setLocked(!0),o.stencil.setTest(!0),o.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),o.stencil.setFunc(i.ALWAYS,b,4294967295),o.stencil.setClear(v),o.stencil.setLocked(!0),this.clearPass.enabled&&(this.renderToScreen?m.render(r,null):(m.render(r,e),m.render(r,t))),this.renderToScreen?(r.setRenderTarget(null),r.render(s,c)):(r.setRenderTarget(e),r.render(s,c),r.setRenderTarget(t),r.render(s,c)),o.color.setLocked(!1),o.depth.setLocked(!1),o.stencil.setLocked(!1),o.stencil.setFunc(i.EQUAL,1,4294967295),o.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),o.stencil.setLocked(!0)}},vi=class{constructor(r=null,{depthBuffer:e=!0,stencilBuffer:t=!1,multisampling:n=0,frameBufferType:a}={}){this.renderer=null,this.inputBuffer=this.createBuffer(e,t,a,n),this.outputBuffer=this.inputBuffer.clone(),this.copyPass=new gi,this.depthTexture=null,this.passes=[],this.timer=new li,this.autoRenderToScreen=!0,this.setRenderer(r)}get multisampling(){return this.inputBuffer.samples||0}set multisampling(r){const e=this.inputBuffer,t=this.multisampling;t>0&&r>0?(this.inputBuffer.samples=r,this.outputBuffer.samples=r,this.inputBuffer.dispose(),this.outputBuffer.dispose()):t!==r&&(this.inputBuffer.dispose(),this.outputBuffer.dispose(),this.inputBuffer=this.createBuffer(e.depthBuffer,e.stencilBuffer,e.texture.type,r),this.inputBuffer.depthTexture=this.depthTexture,this.outputBuffer=this.inputBuffer.clone())}getTimer(){return this.timer}getRenderer(){return this.renderer}setRenderer(r){if(this.renderer=r,r!==null){const e=r.getSize(new h.Vector2),t=r.getContext().getContextAttributes().alpha,n=this.inputBuffer.texture.type;n===h.UnsignedByteType&&r.outputColorSpace===h.SRGBColorSpace&&(this.inputBuffer.texture.colorSpace=h.SRGBColorSpace,this.outputBuffer.texture.colorSpace=h.SRGBColorSpace,this.inputBuffer.dispose(),this.outputBuffer.dispose()),r.autoClear=!1,this.setSize(e.width,e.height);for(const a of this.passes)a.initialize(r,t,n)}}replaceRenderer(r,e=!0){const t=this.renderer,n=t.domElement.parentNode;return this.setRenderer(r),e&&n!==null&&(n.removeChild(t.domElement),n.appendChild(r.domElement)),t}createDepthTexture(){const r=this.depthTexture=new h.DepthTexture;return this.inputBuffer.depthTexture=r,this.inputBuffer.dispose(),this.inputBuffer.stencilBuffer?(r.format=h.DepthStencilFormat,r.type=h.UnsignedInt248Type):r.type=h.UnsignedIntType,r}deleteDepthTexture(){if(this.depthTexture!==null){this.depthTexture.dispose(),this.depthTexture=null,this.inputBuffer.depthTexture=null,this.inputBuffer.dispose();for(const r of this.passes)r.setDepthTexture(null)}}createBuffer(r,e,t,n){const a=this.renderer,i=a===null?new h.Vector2:a.getDrawingBufferSize(new h.Vector2),o={minFilter:h.LinearFilter,magFilter:h.LinearFilter,stencilBuffer:e,depthBuffer:r,type:t},s=new h.WebGLRenderTarget(i.width,i.height,o);return n>0&&(s.ignoreDepthForMultisampleCopy=!1,s.samples=n),t===h.UnsignedByteType&&a!==null&&a.outputColorSpace===h.SRGBColorSpace&&(s.texture.colorSpace=h.SRGBColorSpace),s.texture.name="EffectComposer.Buffer",s.texture.generateMipmaps=!1,s}setMainScene(r){for(const e of this.passes)e.mainScene=r}setMainCamera(r){for(const e of this.passes)e.mainCamera=r}addPass(r,e){const t=this.passes,n=this.renderer,a=n.getDrawingBufferSize(new h.Vector2),i=n.getContext().getContextAttributes().alpha,o=this.inputBuffer.texture.type;if(r.setRenderer(n),r.setSize(a.width,a.height),r.initialize(n,i,o),this.autoRenderToScreen&&(t.length>0&&(t[t.length-1].renderToScreen=!1),r.renderToScreen&&(this.autoRenderToScreen=!1)),e!==void 0?t.splice(e,0,r):t.push(r),this.autoRenderToScreen&&(t[t.length-1].renderToScreen=!0),r.needsDepthTexture||this.depthTexture!==null)if(this.depthTexture===null){const s=this.createDepthTexture();for(r of t)r.setDepthTexture(s)}else r.setDepthTexture(this.depthTexture)}removePass(r){const e=this.passes,t=e.indexOf(r);if(t!==-1&&e.splice(t,1).length>0){if(this.depthTexture!==null){const i=(s,c)=>s||c.needsDepthTexture;e.reduce(i,!1)||(r.getDepthTexture()===this.depthTexture&&r.setDepthTexture(null),this.deleteDepthTexture())}this.autoRenderToScreen&&t===e.length&&(r.renderToScreen=!1,e.length>0&&(e[e.length-1].renderToScreen=!0))}}removeAllPasses(){const r=this.passes;this.deleteDepthTexture(),r.length>0&&(this.autoRenderToScreen&&(r[r.length-1].renderToScreen=!1),this.passes=[])}render(r){const e=this.renderer,t=this.copyPass;let n=this.inputBuffer,a=this.outputBuffer,i=!1,o,s,c;r===void 0&&(this.timer.update(),r=this.timer.getDelta());for(const m of this.passes)m.enabled&&(m.render(e,n,a,r,i),m.needsSwap&&(i&&(t.renderToScreen=m.renderToScreen,o=e.getContext(),s=e.state.buffers.stencil,s.setFunc(o.NOTEQUAL,1,4294967295),t.render(e,n,a,r,i),s.setFunc(o.EQUAL,1,4294967295)),c=n,n=a,a=c),m instanceof wi?i=!0:m instanceof ui&&(i=!1))}setSize(r,e,t){const n=this.renderer,a=n.getSize(new h.Vector2);(r===void 0||e===void 0)&&(r=a.width,e=a.height),(a.width!==r||a.height!==e)&&n.setSize(r,e,t);const i=n.getDrawingBufferSize(new h.Vector2);this.inputBuffer.setSize(i.width,i.height),this.outputBuffer.setSize(i.width,i.height);for(const o of this.passes)o.setSize(i.width,i.height)}reset(){this.dispose(),this.autoRenderToScreen=!0}dispose(){for(const r of this.passes)r.dispose();this.passes=[],this.inputBuffer!==null&&this.inputBuffer.dispose(),this.outputBuffer!==null&&this.outputBuffer.dispose(),this.deleteDepthTexture(),this.copyPass.dispose(),this.timer.dispose()}},ot={NONE:0,DEPTH:1,CONVOLUTION:2},ze={FRAGMENT_HEAD:"FRAGMENT_HEAD",FRAGMENT_MAIN_UV:"FRAGMENT_MAIN_UV",FRAGMENT_MAIN_IMAGE:"FRAGMENT_MAIN_IMAGE",VERTEX_HEAD:"VERTEX_HEAD",VERTEX_MAIN_SUPPORT:"VERTEX_MAIN_SUPPORT"},bi=class{constructor(){this.shaderParts=new Map([[ze.FRAGMENT_HEAD,null],[ze.FRAGMENT_MAIN_UV,null],[ze.FRAGMENT_MAIN_IMAGE,null],[ze.VERTEX_HEAD,null],[ze.VERTEX_MAIN_SUPPORT,null]]),this.defines=new Map,this.uniforms=new Map,this.blendModes=new Map,this.extensions=new Set,this.attributes=ot.NONE,this.varyings=new Set,this.uvTransformation=!1,this.readDepth=!1,this.colorSpace=h.LinearSRGBColorSpace}},_r=!1,yn=class{constructor(r=null){this.originalMaterials=new Map,this.material=null,this.materials=null,this.materialsBackSide=null,this.materialsDoubleSide=null,this.materialsFlatShaded=null,this.materialsFlatShadedBackSide=null,this.materialsFlatShadedDoubleSide=null,this.setMaterial(r),this.meshCount=0,this.replaceMaterial=e=>{if(e.isMesh){let t;if(e.material.flatShading)switch(e.material.side){case h.DoubleSide:t=this.materialsFlatShadedDoubleSide;break;case h.BackSide:t=this.materialsFlatShadedBackSide;break;default:t=this.materialsFlatShaded;break}else switch(e.material.side){case h.DoubleSide:t=this.materialsDoubleSide;break;case h.BackSide:t=this.materialsBackSide;break;default:t=this.materials;break}this.originalMaterials.set(e,e.material),e.isSkinnedMesh?e.material=t[2]:e.isInstancedMesh?e.material=t[1]:e.material=t[0],++this.meshCount}}}cloneMaterial(r){if(!(r instanceof h.ShaderMaterial))return r.clone();const e=r.uniforms,t=new Map;for(const a in e){const i=e[a].value;i.isRenderTargetTexture&&(e[a].value=null,t.set(a,i))}const n=r.clone();for(const a of t)e[a[0]].value=a[1],n.uniforms[a[0]].value=a[1];return n}setMaterial(r){if(this.disposeMaterials(),this.material=r,r!==null){const e=this.materials=[this.cloneMaterial(r),this.cloneMaterial(r),this.cloneMaterial(r)];for(const t of e)t.uniforms=Object.assign({},r.uniforms),t.side=h.FrontSide;e[2].skinning=!0,this.materialsBackSide=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.side=h.BackSide,n}),this.materialsDoubleSide=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.side=h.DoubleSide,n}),this.materialsFlatShaded=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n}),this.materialsFlatShadedBackSide=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n.side=h.BackSide,n}),this.materialsFlatShadedDoubleSide=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n.side=h.DoubleSide,n})}}render(r,e,t){const n=r.shadowMap.enabled;if(r.shadowMap.enabled=!1,_r){const a=this.originalMaterials;this.meshCount=0,e.traverse(this.replaceMaterial),r.render(e,t);for(const i of a)i[0].material=i[1];this.meshCount!==a.size&&a.clear()}else{const a=e.overrideMaterial;e.overrideMaterial=this.material,r.render(e,t),e.overrideMaterial=a}r.shadowMap.enabled=n}disposeMaterials(){if(this.material!==null){const r=this.materials.concat(this.materialsBackSide).concat(this.materialsDoubleSide).concat(this.materialsFlatShaded).concat(this.materialsFlatShadedBackSide).concat(this.materialsFlatShadedDoubleSide);for(const e of r)e.dispose()}}dispose(){this.originalMaterials.clear(),this.disposeMaterials()}static get workaroundEnabled(){return _r}static set workaroundEnabled(r){_r=r}},dt=-1,Ar=class extends h.EventDispatcher{constructor(r,e=dt,t=dt,n=1){super(),this.resizable=r,this.baseSize=new h.Vector2(1,1),this.preferredSize=new h.Vector2(e,t),this.target=this.preferredSize,this.s=n,this.effectiveSize=new h.Vector2,this.addEventListener("change",()=>this.updateEffectiveSize()),this.updateEffectiveSize()}updateEffectiveSize(){const r=this.baseSize,e=this.preferredSize,t=this.effectiveSize,n=this.scale;e.width!==dt?t.width=e.width:e.height!==dt?t.width=Math.round(e.height*(r.width/Math.max(r.height,1))):t.width=Math.round(r.width*n),e.height!==dt?t.height=e.height:e.width!==dt?t.height=Math.round(e.width/Math.max(r.width/Math.max(r.height,1),1)):t.height=Math.round(r.height*n)}get width(){return this.effectiveSize.width}set width(r){this.preferredWidth=r}get height(){return this.effectiveSize.height}set height(r){this.preferredHeight=r}getWidth(){return this.width}getHeight(){return this.height}get scale(){return this.s}set scale(r){this.s!==r&&(this.s=r,this.preferredSize.setScalar(dt),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getScale(){return this.scale}setScale(r){this.scale=r}get baseWidth(){return this.baseSize.width}set baseWidth(r){this.baseSize.width!==r&&(this.baseSize.width=r,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getBaseWidth(){return this.baseWidth}setBaseWidth(r){this.baseWidth=r}get baseHeight(){return this.baseSize.height}set baseHeight(r){this.baseSize.height!==r&&(this.baseSize.height=r,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getBaseHeight(){return this.baseHeight}setBaseHeight(r){this.baseHeight=r}setBaseSize(r,e){(this.baseSize.width!==r||this.baseSize.height!==e)&&(this.baseSize.set(r,e),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}get preferredWidth(){return this.preferredSize.width}set preferredWidth(r){this.preferredSize.width!==r&&(this.preferredSize.width=r,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getPreferredWidth(){return this.preferredWidth}setPreferredWidth(r){this.preferredWidth=r}get preferredHeight(){return this.preferredSize.height}set preferredHeight(r){this.preferredSize.height!==r&&(this.preferredSize.height=r,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getPreferredHeight(){return this.preferredHeight}setPreferredHeight(r){this.preferredHeight=r}setPreferredSize(r,e){(this.preferredSize.width!==r||this.preferredSize.height!==e)&&(this.preferredSize.set(r,e),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}copy(r){this.s=r.scale,this.baseSize.set(r.baseWidth,r.baseHeight),this.preferredSize.set(r.preferredWidth,r.preferredHeight),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height)}static get AUTO_SIZE(){return dt}},xi=class extends Set{constructor(r,e=10){super(),this.l=e,this.exclusive=!1,r!==void 0&&this.set(r)}get layer(){return this.l}set layer(r){const e=this.l;for(const t of this)t.layers.disable(e),t.layers.enable(r);this.l=r}getLayer(){return this.layer}setLayer(r){this.layer=r}isExclusive(){return this.exclusive}setExclusive(r){this.exclusive=r}clear(){const r=this.layer;for(const e of this)e.layers.disable(r);return super.clear()}set(r){this.clear();for(const e of r)this.add(e);return this}indexOf(r){return this.has(r)?0:-1}add(r){return this.exclusive?r.layers.set(this.layer):r.layers.enable(this.layer),super.add(r)}delete(r){return this.has(r)&&r.layers.disable(this.layer),super.delete(r)}toggle(r){let e;return this.has(r)?(this.delete(r),e=!1):(this.add(r),e=!0),e}setVisible(r){for(const e of this)r?e.layers.enable(0):e.layers.disable(0);return this}},Pe={SKIP:9,SET:30,ADD:0,ALPHA:1,AVERAGE:2,COLOR:3,COLOR_BURN:4,COLOR_DODGE:5,DARKEN:6,DIFFERENCE:7,DIVIDE:8,DST:9,EXCLUSION:10,HARD_LIGHT:11,HARD_MIX:12,HUE:13,INVERT:14,INVERT_RGB:15,LIGHTEN:16,LINEAR_BURN:17,LINEAR_DODGE:18,LINEAR_LIGHT:19,LUMINOSITY:20,MULTIPLY:21,NEGATION:22,NORMAL:23,OVERLAY:24,PIN_LIGHT:25,REFLECT:26,SATURATION:27,SCREEN:28,SOFT_LIGHT:29,SRC:30,SUBTRACT:31,VIVID_LIGHT:32},_i="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x+y,opacity);}",Ai="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y,min(y.a,opacity));}",yi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,(x+y)*0.5,opacity);}",Si="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(yHSL.rg,xHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",ki="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(step(0.0,y)*(1.0-min(vec4(1.0),(1.0-x)/y)),vec4(1.0),step(1.0,x));return mix(x,z,opacity);}",Ci="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=step(0.0,x)*mix(min(vec4(1.0),x/max(1.0-y,1e-9)),vec4(1.0),step(1.0,y));return mix(x,z,opacity);}",Mi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,min(x,y),opacity);}",Di="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,abs(x-y),opacity);}",Bi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x/max(y,1e-12),opacity);}",Ii="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,(x+y-2.0*x*y),opacity);}",Pi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 a=min(x,1.0),b=min(y,1.0);vec4 z=mix(2.0*a*b,1.0-2.0*(1.0-a)*(1.0-b),step(0.5,y));return mix(x,z,opacity);}",Ti="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,step(1.0,x+y),opacity);}",Li="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(yHSL.r,xHSL.gb));return vec4(mix(x.rgb,z,opacity),y.a);}",Ei="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,1.0-y,opacity);}",Oi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y*(1.0-x),opacity);}",zi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,max(x,y),opacity);}",Fi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,clamp(y+x-1.0,0.0,1.0),opacity);}",Ni="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,min(x+y,1.0),opacity);}",Ui="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,clamp(2.0*y+x-1.0,0.0,1.0),opacity);}",Ri="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(xHSL.rg,yHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",ji="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x*y,opacity);}",Gi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,1.0-abs(1.0-x-y),opacity);}",Vi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y,opacity);}",Wi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(2.0*y*x,1.0-2.0*(1.0-y)*(1.0-x),step(0.5,x));return mix(x,z,opacity);}",Qi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 y2=2.0*y;vec4 z=mix(mix(y2,x,step(0.5*x,y)),max(vec4(0.0),y2-1.0),step(x,(y2-1.0)));return mix(x,z,opacity);}",Yi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(min(x*x/max(1.0-y,1e-12),1.0),y,step(1.0,y));return mix(x,z,opacity);}",Xi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(xHSL.r,yHSL.g,xHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",Ki="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x+y-min(x*y,1.0),opacity);}",Hi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 y2=2.0*y;vec4 w=step(0.5,y);vec4 z=mix(x-(1.0-y2)*x*(1.0-x),mix(x+(y2-1.0)*(sqrt(x)-x),x+(y2-1.0)*x*((16.0*x-12.0)*x+3.0),w*(1.0-step(0.25,x))),w);return mix(x,z,opacity);}",Zi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return y;}",Ji="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,max(x+y-1.0,0.0),opacity);}",qi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(max(1.0-min((1.0-x)/(2.0*y),1.0),0.0),min(x/(2.0*(1.0-y)),1.0),step(0.5,y));return mix(x,z,opacity);}",$i=new Map([[Pe.ADD,_i],[Pe.ALPHA,Ai],[Pe.AVERAGE,yi],[Pe.COLOR,Si],[Pe.COLOR_BURN,ki],[Pe.COLOR_DODGE,Ci],[Pe.DARKEN,Mi],[Pe.DIFFERENCE,Di],[Pe.DIVIDE,Bi],[Pe.DST,null],[Pe.EXCLUSION,Ii],[Pe.HARD_LIGHT,Pi],[Pe.HARD_MIX,Ti],[Pe.HUE,Li],[Pe.INVERT,Ei],[Pe.INVERT_RGB,Oi],[Pe.LIGHTEN,zi],[Pe.LINEAR_BURN,Fi],[Pe.LINEAR_DODGE,Ni],[Pe.LINEAR_LIGHT,Ui],[Pe.LUMINOSITY,Ri],[Pe.MULTIPLY,ji],[Pe.NEGATION,Gi],[Pe.NORMAL,Vi],[Pe.OVERLAY,Wi],[Pe.PIN_LIGHT,Qi],[Pe.REFLECT,Yi],[Pe.SATURATION,Xi],[Pe.SCREEN,Ki],[Pe.SOFT_LIGHT,Hi],[Pe.SRC,Zi],[Pe.SUBTRACT,Ji],[Pe.VIVID_LIGHT,qi]]),es=class extends h.EventDispatcher{constructor(r,e=1){super(),this._blendFunction=r,this.opacity=new h.Uniform(e)}getOpacity(){return this.opacity.value}setOpacity(r){this.opacity.value=r}get blendFunction(){return this._blendFunction}set blendFunction(r){this._blendFunction=r,this.dispatchEvent({type:"change"})}getBlendFunction(){return this.blendFunction}setBlendFunction(r){this.blendFunction=r}getShaderCode(){return $i.get(this.blendFunction)}},Wt=class extends h.EventDispatcher{constructor(r,e,{attributes:t=ot.NONE,blendFunction:n=Pe.NORMAL,defines:a=new Map,uniforms:i=new Map,extensions:o=null,vertexShader:s=null}={}){super(),this.name=r,this.renderer=null,this.attributes=t,this.fragmentShader=e,this.vertexShader=s,this.defines=a,this.uniforms=i,this.extensions=o,this.blendMode=new es(n),this.blendMode.addEventListener("change",c=>this.setChanged()),this._inputColorSpace=h.LinearSRGBColorSpace,this._outputColorSpace=h.NoColorSpace}get inputColorSpace(){return this._inputColorSpace}set inputColorSpace(r){this._inputColorSpace=r,this.setChanged()}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(r){this._outputColorSpace=r,this.setChanged()}set mainScene(r){}set mainCamera(r){}getName(){return this.name}setRenderer(r){this.renderer=r}getDefines(){return this.defines}getUniforms(){return this.uniforms}getExtensions(){return this.extensions}getBlendMode(){return this.blendMode}getAttributes(){return this.attributes}setAttributes(r){this.attributes=r,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(r){this.fragmentShader=r,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(r){this.vertexShader=r,this.setChanged()}setChanged(){this.dispatchEvent({type:"change"})}setDepthTexture(r,e=h.BasicDepthPacking){}update(r,e,t){}setSize(r,e){}initialize(r,e,t){}dispose(){for(const r of Object.keys(this)){const e=this[r];(e instanceof h.WebGLRenderTarget||e instanceof h.Material||e instanceof h.Texture||e instanceof We)&&this[r].dispose()}}},Sn=class extends We{constructor(r,e="inputBuffer"){super("ShaderPass"),this.fullscreenMaterial=r,this.input=e}setInput(r){this.input=r}render(r,e,t,n,a){const i=this.fullscreenMaterial.uniforms;e!==null&&i!==void 0&&i[this.input]!==void 0&&(i[this.input].value=e.texture),r.setRenderTarget(this.renderToScreen?null:t),r.render(this.scene,this.camera)}initialize(r,e,t){t!==void 0&&t!==h.UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},_t=class extends We{constructor(r,e,t=null){super("RenderPass",r,e),this.needsSwap=!1,this.clearPass=new xr,this.overrideMaterialManager=t===null?null:new yn(t),this.ignoreBackground=!1,this.skipShadowMapUpdate=!1,this.selection=null}set mainScene(r){this.scene=r}set mainCamera(r){this.camera=r}get renderToScreen(){return super.renderToScreen}set renderToScreen(r){super.renderToScreen=r,this.clearPass.renderToScreen=r}get overrideMaterial(){const r=this.overrideMaterialManager;return r!==null?r.material:null}set overrideMaterial(r){const e=this.overrideMaterialManager;r!==null?e!==null?e.setMaterial(r):this.overrideMaterialManager=new yn(r):e!==null&&(e.dispose(),this.overrideMaterialManager=null)}getOverrideMaterial(){return this.overrideMaterial}setOverrideMaterial(r){this.overrideMaterial=r}get clear(){return this.clearPass.enabled}set clear(r){this.clearPass.enabled=r}getSelection(){return this.selection}setSelection(r){this.selection=r}isBackgroundDisabled(){return this.ignoreBackground}setBackgroundDisabled(r){this.ignoreBackground=r}isShadowMapDisabled(){return this.skipShadowMapUpdate}setShadowMapDisabled(r){this.skipShadowMapUpdate=r}getClearPass(){return this.clearPass}render(r,e,t,n,a){const i=this.scene,o=this.camera,s=this.selection,c=o.layers.mask,m=i.background,b=r.shadowMap.autoUpdate,v=this.renderToScreen?null:e;s!==null&&o.layers.set(s.getLayer()),this.skipShadowMapUpdate&&(r.shadowMap.autoUpdate=!1),(this.ignoreBackground||this.clearPass.overrideClearColor!==null)&&(i.background=null),this.clearPass.enabled&&this.clearPass.render(r,e),r.setRenderTarget(v),this.overrideMaterialManager!==null?this.overrideMaterialManager.render(r,i,o):r.render(i,o),o.layers.mask=c,i.background=m,r.shadowMap.autoUpdate=b}},kn={DEPTH:0,LUMA:1,COLOR:2},ts={DISABLED:0,DEPTH:1,CUSTOM:2},It={LOW:0,MEDIUM:1,HIGH:2,ULTRA:3},rs=`varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;
181
+ }`,pi="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}",mi=class extends h.ShaderMaterial{constructor(){super({name:"CopyMaterial",uniforms:{inputBuffer:new h.Uniform(null),opacity:new h.Uniform(1)},blending:h.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:di,vertexShader:pi}),this.fragmentShader=_n(this.fragmentShader)}set inputBuffer(r){this.uniforms.inputBuffer.value=r}setInputBuffer(r){this.uniforms.inputBuffer.value=r}getOpacity(r){return this.uniforms.opacity.value}setOpacity(r){this.uniforms.opacity.value=r}},gi=class extends We{constructor(e,t=!0){super("CopyPass"),this.fullscreenMaterial=new mi,this.needsSwap=!1,this.renderTarget=e,e===void 0&&(this.renderTarget=new h.WebGLRenderTarget(1,1,{minFilter:h.LinearFilter,magFilter:h.LinearFilter,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="CopyPass.Target"),this.autoResize=t}get resize(){return this.autoResize}set resize(e){this.autoResize=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}setAutoResizeEnabled(e){this.autoResize=e}render(e,t,n,a,i){this.fullscreenMaterial.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){this.autoResize&&this.renderTarget.setSize(e,t)}initialize(e,t,n){n!==void 0&&(this.renderTarget.texture.type=n,n!==h.UnsignedByteType?this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1":e!==null&&e.outputColorSpace===h.SRGBColorSpace&&(this.renderTarget.texture.colorSpace=h.SRGBColorSpace))}},An=new h.Color,xr=class extends We{constructor(r=!0,e=!0,t=!1){super("ClearPass",null,null),this.needsSwap=!1,this.color=r,this.depth=e,this.stencil=t,this.overrideClearColor=null,this.overrideClearAlpha=-1}setClearFlags(r,e,t){this.color=r,this.depth=e,this.stencil=t}getOverrideClearColor(){return this.overrideClearColor}setOverrideClearColor(r){this.overrideClearColor=r}getOverrideClearAlpha(){return this.overrideClearAlpha}setOverrideClearAlpha(r){this.overrideClearAlpha=r}render(r,e,t,n,a){const i=this.overrideClearColor,o=this.overrideClearAlpha,s=r.getClearAlpha(),c=i!==null,m=o>=0;c?(r.getClearColor(An),r.setClearColor(i,m?o:s)):m&&r.setClearAlpha(o),r.setRenderTarget(this.renderToScreen?null:e),r.clear(this.color,this.depth,this.stencil),c?r.setClearColor(An,s):m&&r.setClearAlpha(s)}},wi=class extends We{constructor(r,e){super("MaskPass",r,e),this.needsSwap=!1,this.clearPass=new xr(!1,!1,!0),this.inverse=!1}set mainScene(r){this.scene=r}set mainCamera(r){this.camera=r}get inverted(){return this.inverse}set inverted(r){this.inverse=r}get clear(){return this.clearPass.enabled}set clear(r){this.clearPass.enabled=r}getClearPass(){return this.clearPass}isInverted(){return this.inverted}setInverted(r){this.inverted=r}render(r,e,t,n,a){const i=r.getContext(),o=r.state.buffers,s=this.scene,c=this.camera,m=this.clearPass,b=this.inverted?0:1,v=1-b;o.color.setMask(!1),o.depth.setMask(!1),o.color.setLocked(!0),o.depth.setLocked(!0),o.stencil.setTest(!0),o.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),o.stencil.setFunc(i.ALWAYS,b,4294967295),o.stencil.setClear(v),o.stencil.setLocked(!0),this.clearPass.enabled&&(this.renderToScreen?m.render(r,null):(m.render(r,e),m.render(r,t))),this.renderToScreen?(r.setRenderTarget(null),r.render(s,c)):(r.setRenderTarget(e),r.render(s,c),r.setRenderTarget(t),r.render(s,c)),o.color.setLocked(!1),o.depth.setLocked(!1),o.stencil.setLocked(!1),o.stencil.setFunc(i.EQUAL,1,4294967295),o.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),o.stencil.setLocked(!0)}},vi=class{constructor(r=null,{depthBuffer:e=!0,stencilBuffer:t=!1,multisampling:n=0,frameBufferType:a}={}){this.renderer=null,this.inputBuffer=this.createBuffer(e,t,a,n),this.outputBuffer=this.inputBuffer.clone(),this.copyPass=new gi,this.depthTexture=null,this.passes=[],this.timer=new li,this.autoRenderToScreen=!0,this.setRenderer(r)}get multisampling(){return this.inputBuffer.samples||0}set multisampling(r){const e=this.inputBuffer,t=this.multisampling;t>0&&r>0?(this.inputBuffer.samples=r,this.outputBuffer.samples=r,this.inputBuffer.dispose(),this.outputBuffer.dispose()):t!==r&&(this.inputBuffer.dispose(),this.outputBuffer.dispose(),this.inputBuffer=this.createBuffer(e.depthBuffer,e.stencilBuffer,e.texture.type,r),this.inputBuffer.depthTexture=this.depthTexture,this.outputBuffer=this.inputBuffer.clone())}getTimer(){return this.timer}getRenderer(){return this.renderer}setRenderer(r){if(this.renderer=r,r!==null){const e=r.getSize(new h.Vector2),t=r.getContext().getContextAttributes().alpha,n=this.inputBuffer.texture.type;n===h.UnsignedByteType&&r.outputColorSpace===h.SRGBColorSpace&&(this.inputBuffer.texture.colorSpace=h.SRGBColorSpace,this.outputBuffer.texture.colorSpace=h.SRGBColorSpace,this.inputBuffer.dispose(),this.outputBuffer.dispose()),r.autoClear=!1,this.setSize(e.width,e.height);for(const a of this.passes)a.initialize(r,t,n)}}replaceRenderer(r,e=!0){const t=this.renderer,n=t.domElement.parentNode;return this.setRenderer(r),e&&n!==null&&(n.removeChild(t.domElement),n.appendChild(r.domElement)),t}createDepthTexture(){const r=this.depthTexture=new h.DepthTexture;return this.inputBuffer.depthTexture=r,this.inputBuffer.dispose(),this.inputBuffer.stencilBuffer?(r.format=h.DepthStencilFormat,r.type=h.UnsignedInt248Type):r.type=h.UnsignedIntType,r}deleteDepthTexture(){if(this.depthTexture!==null){this.depthTexture.dispose(),this.depthTexture=null,this.inputBuffer.depthTexture=null,this.inputBuffer.dispose();for(const r of this.passes)r.setDepthTexture(null)}}createBuffer(r,e,t,n){const a=this.renderer,i=a===null?new h.Vector2:a.getDrawingBufferSize(new h.Vector2),o={minFilter:h.LinearFilter,magFilter:h.LinearFilter,stencilBuffer:e,depthBuffer:r,type:t},s=new h.WebGLRenderTarget(i.width,i.height,o);return n>0&&(s.ignoreDepthForMultisampleCopy=!1,s.samples=n),t===h.UnsignedByteType&&a!==null&&a.outputColorSpace===h.SRGBColorSpace&&(s.texture.colorSpace=h.SRGBColorSpace),s.texture.name="EffectComposer.Buffer",s.texture.generateMipmaps=!1,s}setMainScene(r){for(const e of this.passes)e.mainScene=r}setMainCamera(r){for(const e of this.passes)e.mainCamera=r}addPass(r,e){const t=this.passes,n=this.renderer,a=n.getDrawingBufferSize(new h.Vector2),i=n.getContext().getContextAttributes().alpha,o=this.inputBuffer.texture.type;if(r.setRenderer(n),r.setSize(a.width,a.height),r.initialize(n,i,o),this.autoRenderToScreen&&(t.length>0&&(t[t.length-1].renderToScreen=!1),r.renderToScreen&&(this.autoRenderToScreen=!1)),e!==void 0?t.splice(e,0,r):t.push(r),this.autoRenderToScreen&&(t[t.length-1].renderToScreen=!0),r.needsDepthTexture||this.depthTexture!==null)if(this.depthTexture===null){const s=this.createDepthTexture();for(r of t)r.setDepthTexture(s)}else r.setDepthTexture(this.depthTexture)}removePass(r){const e=this.passes,t=e.indexOf(r);if(t!==-1&&e.splice(t,1).length>0){if(this.depthTexture!==null){const i=(s,c)=>s||c.needsDepthTexture;e.reduce(i,!1)||(r.getDepthTexture()===this.depthTexture&&r.setDepthTexture(null),this.deleteDepthTexture())}this.autoRenderToScreen&&t===e.length&&(r.renderToScreen=!1,e.length>0&&(e[e.length-1].renderToScreen=!0))}}removeAllPasses(){const r=this.passes;this.deleteDepthTexture(),r.length>0&&(this.autoRenderToScreen&&(r[r.length-1].renderToScreen=!1),this.passes=[])}render(r){const e=this.renderer,t=this.copyPass;let n=this.inputBuffer,a=this.outputBuffer,i=!1,o,s,c;r===void 0&&(this.timer.update(),r=this.timer.getDelta());for(const m of this.passes)m.enabled&&(m.render(e,n,a,r,i),m.needsSwap&&(i&&(t.renderToScreen=m.renderToScreen,o=e.getContext(),s=e.state.buffers.stencil,s.setFunc(o.NOTEQUAL,1,4294967295),t.render(e,n,a,r,i),s.setFunc(o.EQUAL,1,4294967295)),c=n,n=a,a=c),m instanceof wi?i=!0:m instanceof ui&&(i=!1))}setSize(r,e,t){const n=this.renderer,a=n.getSize(new h.Vector2);(r===void 0||e===void 0)&&(r=a.width,e=a.height),(a.width!==r||a.height!==e)&&n.setSize(r,e,t);const i=n.getDrawingBufferSize(new h.Vector2);this.inputBuffer.setSize(i.width,i.height),this.outputBuffer.setSize(i.width,i.height);for(const o of this.passes)o.setSize(i.width,i.height)}reset(){this.dispose(),this.autoRenderToScreen=!0}dispose(){for(const r of this.passes)r.dispose();this.passes=[],this.inputBuffer!==null&&this.inputBuffer.dispose(),this.outputBuffer!==null&&this.outputBuffer.dispose(),this.deleteDepthTexture(),this.copyPass.dispose(),this.timer.dispose()}},ot={NONE:0,DEPTH:1,CONVOLUTION:2},ze={FRAGMENT_HEAD:"FRAGMENT_HEAD",FRAGMENT_MAIN_UV:"FRAGMENT_MAIN_UV",FRAGMENT_MAIN_IMAGE:"FRAGMENT_MAIN_IMAGE",VERTEX_HEAD:"VERTEX_HEAD",VERTEX_MAIN_SUPPORT:"VERTEX_MAIN_SUPPORT"},bi=class{constructor(){this.shaderParts=new Map([[ze.FRAGMENT_HEAD,null],[ze.FRAGMENT_MAIN_UV,null],[ze.FRAGMENT_MAIN_IMAGE,null],[ze.VERTEX_HEAD,null],[ze.VERTEX_MAIN_SUPPORT,null]]),this.defines=new Map,this.uniforms=new Map,this.blendModes=new Map,this.extensions=new Set,this.attributes=ot.NONE,this.varyings=new Set,this.uvTransformation=!1,this.readDepth=!1,this.colorSpace=h.LinearSRGBColorSpace}},_r=!1,yn=class{constructor(r=null){this.originalMaterials=new Map,this.material=null,this.materials=null,this.materialsBackSide=null,this.materialsDoubleSide=null,this.materialsFlatShaded=null,this.materialsFlatShadedBackSide=null,this.materialsFlatShadedDoubleSide=null,this.setMaterial(r),this.meshCount=0,this.replaceMaterial=e=>{if(e.isMesh){let t;if(e.material.flatShading)switch(e.material.side){case h.DoubleSide:t=this.materialsFlatShadedDoubleSide;break;case h.BackSide:t=this.materialsFlatShadedBackSide;break;default:t=this.materialsFlatShaded;break}else switch(e.material.side){case h.DoubleSide:t=this.materialsDoubleSide;break;case h.BackSide:t=this.materialsBackSide;break;default:t=this.materials;break}this.originalMaterials.set(e,e.material),e.isSkinnedMesh?e.material=t[2]:e.isInstancedMesh?e.material=t[1]:e.material=t[0],++this.meshCount}}}cloneMaterial(r){if(!(r instanceof h.ShaderMaterial))return r.clone();const e=r.uniforms,t=new Map;for(const a in e){const i=e[a].value;i.isRenderTargetTexture&&(e[a].value=null,t.set(a,i))}const n=r.clone();for(const a of t)e[a[0]].value=a[1],n.uniforms[a[0]].value=a[1];return n}setMaterial(r){if(this.disposeMaterials(),this.material=r,r!==null){const e=this.materials=[this.cloneMaterial(r),this.cloneMaterial(r),this.cloneMaterial(r)];for(const t of e)t.uniforms=Object.assign({},r.uniforms),t.side=h.FrontSide;e[2].skinning=!0,this.materialsBackSide=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.side=h.BackSide,n}),this.materialsDoubleSide=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.side=h.DoubleSide,n}),this.materialsFlatShaded=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n}),this.materialsFlatShadedBackSide=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n.side=h.BackSide,n}),this.materialsFlatShadedDoubleSide=e.map(t=>{const n=this.cloneMaterial(t);return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n.side=h.DoubleSide,n})}}render(r,e,t){const n=r.shadowMap.enabled;if(r.shadowMap.enabled=!1,_r){const a=this.originalMaterials;this.meshCount=0,e.traverse(this.replaceMaterial),r.render(e,t);for(const i of a)i[0].material=i[1];this.meshCount!==a.size&&a.clear()}else{const a=e.overrideMaterial;e.overrideMaterial=this.material,r.render(e,t),e.overrideMaterial=a}r.shadowMap.enabled=n}disposeMaterials(){if(this.material!==null){const r=this.materials.concat(this.materialsBackSide).concat(this.materialsDoubleSide).concat(this.materialsFlatShaded).concat(this.materialsFlatShadedBackSide).concat(this.materialsFlatShadedDoubleSide);for(const e of r)e.dispose()}}dispose(){this.originalMaterials.clear(),this.disposeMaterials()}static get workaroundEnabled(){return _r}static set workaroundEnabled(r){_r=r}},dt=-1,Ar=class extends h.EventDispatcher{constructor(r,e=dt,t=dt,n=1){super(),this.resizable=r,this.baseSize=new h.Vector2(1,1),this.preferredSize=new h.Vector2(e,t),this.target=this.preferredSize,this.s=n,this.effectiveSize=new h.Vector2,this.addEventListener("change",()=>this.updateEffectiveSize()),this.updateEffectiveSize()}updateEffectiveSize(){const r=this.baseSize,e=this.preferredSize,t=this.effectiveSize,n=this.scale;e.width!==dt?t.width=e.width:e.height!==dt?t.width=Math.round(e.height*(r.width/Math.max(r.height,1))):t.width=Math.round(r.width*n),e.height!==dt?t.height=e.height:e.width!==dt?t.height=Math.round(e.width/Math.max(r.width/Math.max(r.height,1),1)):t.height=Math.round(r.height*n)}get width(){return this.effectiveSize.width}set width(r){this.preferredWidth=r}get height(){return this.effectiveSize.height}set height(r){this.preferredHeight=r}getWidth(){return this.width}getHeight(){return this.height}get scale(){return this.s}set scale(r){this.s!==r&&(this.s=r,this.preferredSize.setScalar(dt),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getScale(){return this.scale}setScale(r){this.scale=r}get baseWidth(){return this.baseSize.width}set baseWidth(r){this.baseSize.width!==r&&(this.baseSize.width=r,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getBaseWidth(){return this.baseWidth}setBaseWidth(r){this.baseWidth=r}get baseHeight(){return this.baseSize.height}set baseHeight(r){this.baseSize.height!==r&&(this.baseSize.height=r,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getBaseHeight(){return this.baseHeight}setBaseHeight(r){this.baseHeight=r}setBaseSize(r,e){(this.baseSize.width!==r||this.baseSize.height!==e)&&(this.baseSize.set(r,e),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}get preferredWidth(){return this.preferredSize.width}set preferredWidth(r){this.preferredSize.width!==r&&(this.preferredSize.width=r,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getPreferredWidth(){return this.preferredWidth}setPreferredWidth(r){this.preferredWidth=r}get preferredHeight(){return this.preferredSize.height}set preferredHeight(r){this.preferredSize.height!==r&&(this.preferredSize.height=r,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getPreferredHeight(){return this.preferredHeight}setPreferredHeight(r){this.preferredHeight=r}setPreferredSize(r,e){(this.preferredSize.width!==r||this.preferredSize.height!==e)&&(this.preferredSize.set(r,e),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}copy(r){this.s=r.scale,this.baseSize.set(r.baseWidth,r.baseHeight),this.preferredSize.set(r.preferredWidth,r.preferredHeight),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height)}static get AUTO_SIZE(){return dt}},xi=class extends Set{constructor(r,e=10){super(),this.l=e,this.exclusive=!1,r!==void 0&&this.set(r)}get layer(){return this.l}set layer(r){const e=this.l;for(const t of this)t.layers.disable(e),t.layers.enable(r);this.l=r}getLayer(){return this.layer}setLayer(r){this.layer=r}isExclusive(){return this.exclusive}setExclusive(r){this.exclusive=r}clear(){const r=this.layer;for(const e of this)e.layers.disable(r);return super.clear()}set(r){this.clear();for(const e of r)this.add(e);return this}indexOf(r){return this.has(r)?0:-1}add(r){return this.exclusive?r.layers.set(this.layer):r.layers.enable(this.layer),super.add(r)}delete(r){return this.has(r)&&r.layers.disable(this.layer),super.delete(r)}toggle(r){let e;return this.has(r)?(this.delete(r),e=!1):(this.add(r),e=!0),e}setVisible(r){for(const e of this)r?e.layers.enable(0):e.layers.disable(0);return this}},Pe={SKIP:9,SET:30,ADD:0,ALPHA:1,AVERAGE:2,COLOR:3,COLOR_BURN:4,COLOR_DODGE:5,DARKEN:6,DIFFERENCE:7,DIVIDE:8,DST:9,EXCLUSION:10,HARD_LIGHT:11,HARD_MIX:12,HUE:13,INVERT:14,INVERT_RGB:15,LIGHTEN:16,LINEAR_BURN:17,LINEAR_DODGE:18,LINEAR_LIGHT:19,LUMINOSITY:20,MULTIPLY:21,NEGATION:22,NORMAL:23,OVERLAY:24,PIN_LIGHT:25,REFLECT:26,SATURATION:27,SCREEN:28,SOFT_LIGHT:29,SRC:30,SUBTRACT:31,VIVID_LIGHT:32},_i="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x+y,opacity);}",Ai="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y,min(y.a,opacity));}",yi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,(x+y)*0.5,opacity);}",Si="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(yHSL.rg,xHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",ki="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(step(0.0,y)*(1.0-min(vec4(1.0),(1.0-x)/y)),vec4(1.0),step(1.0,x));return mix(x,z,opacity);}",Ci="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=step(0.0,x)*mix(min(vec4(1.0),x/max(1.0-y,1e-9)),vec4(1.0),step(1.0,y));return mix(x,z,opacity);}",Mi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,min(x,y),opacity);}",Di="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,abs(x-y),opacity);}",Bi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x/max(y,1e-12),opacity);}",Ii="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,(x+y-2.0*x*y),opacity);}",Pi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 a=min(x,1.0),b=min(y,1.0);vec4 z=mix(2.0*a*b,1.0-2.0*(1.0-a)*(1.0-b),step(0.5,y));return mix(x,z,opacity);}",Ti="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,step(1.0,x+y),opacity);}",Li="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(yHSL.r,xHSL.gb));return vec4(mix(x.rgb,z,opacity),y.a);}",Ei="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,1.0-y,opacity);}",Oi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y*(1.0-x),opacity);}",zi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,max(x,y),opacity);}",Fi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,clamp(y+x-1.0,0.0,1.0),opacity);}",Ni="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,min(x+y,1.0),opacity);}",Ui="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,clamp(2.0*y+x-1.0,0.0,1.0),opacity);}",Ri="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(xHSL.rg,yHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",ji="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x*y,opacity);}",Gi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,1.0-abs(1.0-x-y),opacity);}",Vi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y,opacity);}",Wi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(2.0*y*x,1.0-2.0*(1.0-y)*(1.0-x),step(0.5,x));return mix(x,z,opacity);}",Qi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 y2=2.0*y;vec4 z=mix(mix(y2,x,step(0.5*x,y)),max(vec4(0.0),y2-1.0),step(x,(y2-1.0)));return mix(x,z,opacity);}",Yi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(min(x*x/max(1.0-y,1e-12),1.0),y,step(1.0,y));return mix(x,z,opacity);}",Xi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(xHSL.r,yHSL.g,xHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",Ki="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x+y-min(x*y,1.0),opacity);}",Hi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 y2=2.0*y;vec4 w=step(0.5,y);vec4 z=mix(x-(1.0-y2)*x*(1.0-x),mix(x+(y2-1.0)*(sqrt(x)-x),x+(y2-1.0)*x*((16.0*x-12.0)*x+3.0),w*(1.0-step(0.25,x))),w);return mix(x,z,opacity);}",Zi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return y;}",Ji="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,max(x+y-1.0,0.0),opacity);}",qi="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(max(1.0-min((1.0-x)/(2.0*y),1.0),0.0),min(x/(2.0*(1.0-y)),1.0),step(0.5,y));return mix(x,z,opacity);}",$i=new Map([[Pe.ADD,_i],[Pe.ALPHA,Ai],[Pe.AVERAGE,yi],[Pe.COLOR,Si],[Pe.COLOR_BURN,ki],[Pe.COLOR_DODGE,Ci],[Pe.DARKEN,Mi],[Pe.DIFFERENCE,Di],[Pe.DIVIDE,Bi],[Pe.DST,null],[Pe.EXCLUSION,Ii],[Pe.HARD_LIGHT,Pi],[Pe.HARD_MIX,Ti],[Pe.HUE,Li],[Pe.INVERT,Ei],[Pe.INVERT_RGB,Oi],[Pe.LIGHTEN,zi],[Pe.LINEAR_BURN,Fi],[Pe.LINEAR_DODGE,Ni],[Pe.LINEAR_LIGHT,Ui],[Pe.LUMINOSITY,Ri],[Pe.MULTIPLY,ji],[Pe.NEGATION,Gi],[Pe.NORMAL,Vi],[Pe.OVERLAY,Wi],[Pe.PIN_LIGHT,Qi],[Pe.REFLECT,Yi],[Pe.SATURATION,Xi],[Pe.SCREEN,Ki],[Pe.SOFT_LIGHT,Hi],[Pe.SRC,Zi],[Pe.SUBTRACT,Ji],[Pe.VIVID_LIGHT,qi]]),es=class extends h.EventDispatcher{constructor(r,e=1){super(),this._blendFunction=r,this.opacity=new h.Uniform(e)}getOpacity(){return this.opacity.value}setOpacity(r){this.opacity.value=r}get blendFunction(){return this._blendFunction}set blendFunction(r){this._blendFunction=r,this.dispatchEvent({type:"change"})}getBlendFunction(){return this.blendFunction}setBlendFunction(r){this.blendFunction=r}getShaderCode(){return $i.get(this.blendFunction)}},It=class extends h.EventDispatcher{constructor(r,e,{attributes:t=ot.NONE,blendFunction:n=Pe.NORMAL,defines:a=new Map,uniforms:i=new Map,extensions:o=null,vertexShader:s=null}={}){super(),this.name=r,this.renderer=null,this.attributes=t,this.fragmentShader=e,this.vertexShader=s,this.defines=a,this.uniforms=i,this.extensions=o,this.blendMode=new es(n),this.blendMode.addEventListener("change",c=>this.setChanged()),this._inputColorSpace=h.LinearSRGBColorSpace,this._outputColorSpace=h.NoColorSpace}get inputColorSpace(){return this._inputColorSpace}set inputColorSpace(r){this._inputColorSpace=r,this.setChanged()}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(r){this._outputColorSpace=r,this.setChanged()}set mainScene(r){}set mainCamera(r){}getName(){return this.name}setRenderer(r){this.renderer=r}getDefines(){return this.defines}getUniforms(){return this.uniforms}getExtensions(){return this.extensions}getBlendMode(){return this.blendMode}getAttributes(){return this.attributes}setAttributes(r){this.attributes=r,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(r){this.fragmentShader=r,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(r){this.vertexShader=r,this.setChanged()}setChanged(){this.dispatchEvent({type:"change"})}setDepthTexture(r,e=h.BasicDepthPacking){}update(r,e,t){}setSize(r,e){}initialize(r,e,t){}dispose(){for(const r of Object.keys(this)){const e=this[r];(e instanceof h.WebGLRenderTarget||e instanceof h.Material||e instanceof h.Texture||e instanceof We)&&this[r].dispose()}}},Sn=class extends We{constructor(r,e="inputBuffer"){super("ShaderPass"),this.fullscreenMaterial=r,this.input=e}setInput(r){this.input=r}render(r,e,t,n,a){const i=this.fullscreenMaterial.uniforms;e!==null&&i!==void 0&&i[this.input]!==void 0&&(i[this.input].value=e.texture),r.setRenderTarget(this.renderToScreen?null:t),r.render(this.scene,this.camera)}initialize(r,e,t){t!==void 0&&t!==h.UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},_t=class extends We{constructor(r,e,t=null){super("RenderPass",r,e),this.needsSwap=!1,this.clearPass=new xr,this.overrideMaterialManager=t===null?null:new yn(t),this.ignoreBackground=!1,this.skipShadowMapUpdate=!1,this.selection=null}set mainScene(r){this.scene=r}set mainCamera(r){this.camera=r}get renderToScreen(){return super.renderToScreen}set renderToScreen(r){super.renderToScreen=r,this.clearPass.renderToScreen=r}get overrideMaterial(){const r=this.overrideMaterialManager;return r!==null?r.material:null}set overrideMaterial(r){const e=this.overrideMaterialManager;r!==null?e!==null?e.setMaterial(r):this.overrideMaterialManager=new yn(r):e!==null&&(e.dispose(),this.overrideMaterialManager=null)}getOverrideMaterial(){return this.overrideMaterial}setOverrideMaterial(r){this.overrideMaterial=r}get clear(){return this.clearPass.enabled}set clear(r){this.clearPass.enabled=r}getSelection(){return this.selection}setSelection(r){this.selection=r}isBackgroundDisabled(){return this.ignoreBackground}setBackgroundDisabled(r){this.ignoreBackground=r}isShadowMapDisabled(){return this.skipShadowMapUpdate}setShadowMapDisabled(r){this.skipShadowMapUpdate=r}getClearPass(){return this.clearPass}render(r,e,t,n,a){const i=this.scene,o=this.camera,s=this.selection,c=o.layers.mask,m=i.background,b=r.shadowMap.autoUpdate,v=this.renderToScreen?null:e;s!==null&&o.layers.set(s.getLayer()),this.skipShadowMapUpdate&&(r.shadowMap.autoUpdate=!1),(this.ignoreBackground||this.clearPass.overrideClearColor!==null)&&(i.background=null),this.clearPass.enabled&&this.clearPass.render(r,e),r.setRenderTarget(v),this.overrideMaterialManager!==null?this.overrideMaterialManager.render(r,i,o):r.render(i,o),o.layers.mask=c,i.background=m,r.shadowMap.autoUpdate=b}},kn={DEPTH:0,LUMA:1,COLOR:2},ts={DISABLED:0,DEPTH:1,CUSTOM:2},Pt={LOW:0,MEDIUM:1,HIGH:2,ULTRA:3},rs=`varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;
182
182
  #if EDGE_DETECTION_MODE != 0
183
183
  varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;
184
184
  #endif
@@ -255,7 +255,7 @@ vec2 d;vec3 coords;coords.x=searchXLeft(vOffset[0].xy,vOffset[2].x);coords.y=vOf
255
255
  #if !defined(DISABLE_DIAG_DETECTION)
256
256
  }else{e.r=0.0;}
257
257
  #endif
258
- }if(e.r>0.0){vec2 d;vec3 coords;coords.y=searchYUp(vOffset[1].xy,vOffset[2].z);coords.x=vOffset[0].x;d.x=coords.y;float e1=texture2D(inputBuffer,coords.xy).g;coords.z=searchYDown(vOffset[1].zw,vOffset[2].w);d.y=coords.z;d=round(resolution.yy*d-vPixCoord.yy);vec2 sqrtD=sqrt(abs(d));float e2=sampleLevelZeroOffset(inputBuffer,coords.xz,vec2(0,1)).g;weights.ba=area(sqrtD,e1,e2,subsampleIndices.x);coords.x=vUv.x;detectVerticalCornerPattern(weights.ba,coords.xyxz,d);}gl_FragColor=weights;}`,ss="uniform vec2 texelSize;uniform vec2 resolution;varying vec2 vUv;varying vec4 vOffset[3];varying vec2 vPixCoord;void main(){vUv=position.xy*0.5+0.5;vPixCoord=vUv*resolution;vOffset[0]=vUv.xyxy+texelSize.xyxy*vec4(-0.25,-0.125,1.25,-0.125);vOffset[1]=vUv.xyxy+texelSize.xyxy*vec4(-0.125,-0.25,-0.125,1.25);vOffset[2]=vec4(vOffset[0].xz,vOffset[1].yw)+vec4(-2.0,2.0,-2.0,2.0)*texelSize.xxyy*MAX_SEARCH_STEPS_FLOAT;gl_Position=vec4(position.xy,1.0,1.0);}",os=class extends h.ShaderMaterial{constructor(r=new h.Vector2,e=new h.Vector2){super({name:"SMAAWeightsMaterial",defines:{MAX_SEARCH_STEPS_INT:"16",MAX_SEARCH_STEPS_FLOAT:"16.0",MAX_SEARCH_STEPS_DIAG_INT:"8",MAX_SEARCH_STEPS_DIAG_FLOAT:"8.0",CORNER_ROUNDING:"25",CORNER_ROUNDING_NORM:"0.25",AREATEX_MAX_DISTANCE:"16.0",AREATEX_MAX_DISTANCE_DIAG:"20.0",AREATEX_PIXEL_SIZE:"(1.0 / vec2(160.0, 560.0))",AREATEX_SUBTEX_SIZE:"(1.0 / 7.0)",SEARCHTEX_SIZE:"vec2(66.0, 33.0)",SEARCHTEX_PACKED_SIZE:"vec2(64.0, 16.0)"},uniforms:{inputBuffer:new h.Uniform(null),searchTexture:new h.Uniform(null),areaTexture:new h.Uniform(null),resolution:new h.Uniform(e),texelSize:new h.Uniform(r)},blending:h.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:is,vertexShader:ss})}set inputBuffer(r){this.uniforms.inputBuffer.value=r}setInputBuffer(r){this.uniforms.inputBuffer.value=r}get searchTexture(){return this.uniforms.searchTexture.value}set searchTexture(r){this.uniforms.searchTexture.value=r}get areaTexture(){return this.uniforms.areaTexture.value}set areaTexture(r){this.uniforms.areaTexture.value=r}setLookupTextures(r,e){this.searchTexture=r,this.areaTexture=e}get orthogonalSearchSteps(){return Number(this.defines.MAX_SEARCH_STEPS_INT)}set orthogonalSearchSteps(r){const e=Math.min(Math.max(r,0),112);this.defines.MAX_SEARCH_STEPS_INT=e.toFixed("0"),this.defines.MAX_SEARCH_STEPS_FLOAT=e.toFixed("1"),this.needsUpdate=!0}setOrthogonalSearchSteps(r){this.orthogonalSearchSteps=r}get diagonalSearchSteps(){return Number(this.defines.MAX_SEARCH_STEPS_DIAG_INT)}set diagonalSearchSteps(r){const e=Math.min(Math.max(r,0),20);this.defines.MAX_SEARCH_STEPS_DIAG_INT=e.toFixed("0"),this.defines.MAX_SEARCH_STEPS_DIAG_FLOAT=e.toFixed("1"),this.needsUpdate=!0}setDiagonalSearchSteps(r){this.diagonalSearchSteps=r}get diagonalDetection(){return this.defines.DISABLE_DIAG_DETECTION===void 0}set diagonalDetection(r){r?delete this.defines.DISABLE_DIAG_DETECTION:this.defines.DISABLE_DIAG_DETECTION="1",this.needsUpdate=!0}isDiagonalDetectionEnabled(){return this.diagonalDetection}setDiagonalDetectionEnabled(r){this.diagonalDetection=r}get cornerRounding(){return Number(this.defines.CORNER_ROUNDING)}set cornerRounding(r){const e=Math.min(Math.max(r,0),100);this.defines.CORNER_ROUNDING=e.toFixed("4"),this.defines.CORNER_ROUNDING_NORM=(e/100).toFixed("4"),this.needsUpdate=!0}setCornerRounding(r){this.cornerRounding=r}get cornerDetection(){return this.defines.DISABLE_CORNER_DETECTION===void 0}set cornerDetection(r){r?delete this.defines.DISABLE_CORNER_DETECTION:this.defines.DISABLE_CORNER_DETECTION="1",this.needsUpdate=!0}isCornerRoundingEnabled(){return this.cornerDetection}setCornerRoundingEnabled(r){this.cornerDetection=r}setSize(r,e){const t=this.uniforms;t.texelSize.value.set(1/r,1/e),t.resolution.value.set(r,e)}},Cn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAYAAACm53kpAAAAeElEQVRYR+2XSwqAMAxEJ168ePEqwRSKhIIiuHjJqiU0gWE+1CQdApcVAMUAuARaMGCX1MIL/Ow13++9lW2s3mW9MWvsnWc/2fvGygwPAN4E8QzAA4CXAB6AHjG4JTHYI1ey3pcx6FHnEfhLDOIBKAmUBK6/ANUDTlROXAHd9EC1AAAAAElFTkSuQmCC",Mn="data:image/png;base64,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",ls="uniform sampler2D weightMap;varying vec2 vOffset0;varying vec2 vOffset1;void movec(const in bvec2 c,inout vec2 variable,const in vec2 value){if(c.x){variable.x=value.x;}if(c.y){variable.y=value.y;}}void movec(const in bvec4 c,inout vec4 variable,const in vec4 value){movec(c.xy,variable.xy,value.xy);movec(c.zw,variable.zw,value.zw);}void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 a;a.x=texture2D(weightMap,vOffset0).a;a.y=texture2D(weightMap,vOffset1).g;a.wz=texture2D(weightMap,uv).rb;vec4 color=inputColor;if(dot(a,vec4(1.0))>=1e-5){bool h=max(a.x,a.z)>max(a.y,a.w);vec4 blendingOffset=vec4(0.0,a.y,0.0,a.w);vec2 blendingWeight=a.yw;movec(bvec4(h),blendingOffset,vec4(a.x,0.0,a.z,0.0));movec(bvec2(h),blendingWeight,a.xz);blendingWeight/=dot(blendingWeight,vec2(1.0));vec4 blendingCoord=blendingOffset*vec4(texelSize,-texelSize)+uv.xyxy;color=blendingWeight.x*texture2D(inputBuffer,blendingCoord.xy);color+=blendingWeight.y*texture2D(inputBuffer,blendingCoord.zw);}outputColor=color;}",cs="varying vec2 vOffset0;varying vec2 vOffset1;void mainSupport(const in vec2 uv){vOffset0=uv+texelSize*vec2(1.0,0.0);vOffset1=uv+texelSize*vec2(0.0,1.0);}",fs=class extends Wt{constructor({blendFunction:r=Pe.SRC,preset:e=It.MEDIUM,edgeDetectionMode:t=kn.COLOR,predicationMode:n=ts.DISABLED}={}){super("SMAAEffect",ls,{vertexShader:cs,blendFunction:r,attributes:ot.CONVOLUTION|ot.DEPTH,uniforms:new Map([["weightMap",new h.Uniform(null)]])});let a,i;arguments.length>1&&(a=arguments[0],i=arguments[1],arguments.length>2&&(e=arguments[2]),arguments.length>3&&(t=arguments[3])),this.renderTargetEdges=new h.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetEdges.texture.name="SMAA.Edges",this.renderTargetWeights=this.renderTargetEdges.clone(),this.renderTargetWeights.texture.name="SMAA.Weights",this.uniforms.get("weightMap").value=this.renderTargetWeights.texture,this.clearPass=new xr(!0,!1,!1),this.clearPass.overrideClearColor=new h.Color(0),this.clearPass.overrideClearAlpha=1,this.edgeDetectionPass=new Sn(new as),this.edgeDetectionMaterial.edgeDetectionMode=t,this.edgeDetectionMaterial.predicationMode=n,this.weightsPass=new Sn(new os);const o=new h.LoadingManager;o.onLoad=()=>{const s=new h.Texture(a);s.name="SMAA.Search",s.magFilter=h.NearestFilter,s.minFilter=h.NearestFilter,s.generateMipmaps=!1,s.needsUpdate=!0,s.flipY=!0,this.weightsMaterial.searchTexture=s;const c=new h.Texture(i);c.name="SMAA.Area",c.magFilter=h.LinearFilter,c.minFilter=h.LinearFilter,c.generateMipmaps=!1,c.needsUpdate=!0,c.flipY=!1,this.weightsMaterial.areaTexture=c,this.dispatchEvent({type:"load"})},o.itemStart("search"),o.itemStart("area"),a!==void 0&&i!==void 0?(o.itemEnd("search"),o.itemEnd("area")):typeof Image<"u"&&(a=new Image,i=new Image,a.addEventListener("load",()=>o.itemEnd("search")),i.addEventListener("load",()=>o.itemEnd("area")),a.src=Cn,i.src=Mn),this.applyPreset(e)}get edgesTexture(){return this.renderTargetEdges.texture}getEdgesTexture(){return this.edgesTexture}get weightsTexture(){return this.renderTargetWeights.texture}getWeightsTexture(){return this.weightsTexture}get edgeDetectionMaterial(){return this.edgeDetectionPass.fullscreenMaterial}get colorEdgesMaterial(){return this.edgeDetectionMaterial}getEdgeDetectionMaterial(){return this.edgeDetectionMaterial}get weightsMaterial(){return this.weightsPass.fullscreenMaterial}getWeightsMaterial(){return this.weightsMaterial}setEdgeDetectionThreshold(r){this.edgeDetectionMaterial.edgeDetectionThreshold=r}setOrthogonalSearchSteps(r){this.weightsMaterial.orthogonalSearchSteps=r}applyPreset(r){const e=this.edgeDetectionMaterial,t=this.weightsMaterial;switch(r){case It.LOW:e.edgeDetectionThreshold=.15,t.orthogonalSearchSteps=4,t.diagonalDetection=!1,t.cornerDetection=!1;break;case It.MEDIUM:e.edgeDetectionThreshold=.1,t.orthogonalSearchSteps=8,t.diagonalDetection=!1,t.cornerDetection=!1;break;case It.HIGH:e.edgeDetectionThreshold=.1,t.orthogonalSearchSteps=16,t.diagonalSearchSteps=8,t.cornerRounding=25,t.diagonalDetection=!0,t.cornerDetection=!0;break;case It.ULTRA:e.edgeDetectionThreshold=.05,t.orthogonalSearchSteps=32,t.diagonalSearchSteps=16,t.cornerRounding=25,t.diagonalDetection=!0,t.cornerDetection=!0;break}}setDepthTexture(r,e=h.BasicDepthPacking){this.edgeDetectionMaterial.depthBuffer=r,this.edgeDetectionMaterial.depthPacking=e}update(r,e,t){this.clearPass.render(r,this.renderTargetEdges),this.edgeDetectionPass.render(r,e,this.renderTargetEdges),this.weightsPass.render(r,this.renderTargetEdges,this.renderTargetWeights)}setSize(r,e){this.edgeDetectionMaterial.setSize(r,e),this.weightsMaterial.setSize(r,e),this.renderTargetEdges.setSize(r,e),this.renderTargetWeights.setSize(r,e)}dispose(){const{searchTexture:r,areaTexture:e}=this.weightsMaterial;r!==null&&e!==null&&(r.dispose(),e.dispose()),super.dispose()}static get searchImageDataURL(){return Cn}static get areaImageDataURL(){return Mn}},us=`#include <common>
258
+ }if(e.r>0.0){vec2 d;vec3 coords;coords.y=searchYUp(vOffset[1].xy,vOffset[2].z);coords.x=vOffset[0].x;d.x=coords.y;float e1=texture2D(inputBuffer,coords.xy).g;coords.z=searchYDown(vOffset[1].zw,vOffset[2].w);d.y=coords.z;d=round(resolution.yy*d-vPixCoord.yy);vec2 sqrtD=sqrt(abs(d));float e2=sampleLevelZeroOffset(inputBuffer,coords.xz,vec2(0,1)).g;weights.ba=area(sqrtD,e1,e2,subsampleIndices.x);coords.x=vUv.x;detectVerticalCornerPattern(weights.ba,coords.xyxz,d);}gl_FragColor=weights;}`,ss="uniform vec2 texelSize;uniform vec2 resolution;varying vec2 vUv;varying vec4 vOffset[3];varying vec2 vPixCoord;void main(){vUv=position.xy*0.5+0.5;vPixCoord=vUv*resolution;vOffset[0]=vUv.xyxy+texelSize.xyxy*vec4(-0.25,-0.125,1.25,-0.125);vOffset[1]=vUv.xyxy+texelSize.xyxy*vec4(-0.125,-0.25,-0.125,1.25);vOffset[2]=vec4(vOffset[0].xz,vOffset[1].yw)+vec4(-2.0,2.0,-2.0,2.0)*texelSize.xxyy*MAX_SEARCH_STEPS_FLOAT;gl_Position=vec4(position.xy,1.0,1.0);}",os=class extends h.ShaderMaterial{constructor(r=new h.Vector2,e=new h.Vector2){super({name:"SMAAWeightsMaterial",defines:{MAX_SEARCH_STEPS_INT:"16",MAX_SEARCH_STEPS_FLOAT:"16.0",MAX_SEARCH_STEPS_DIAG_INT:"8",MAX_SEARCH_STEPS_DIAG_FLOAT:"8.0",CORNER_ROUNDING:"25",CORNER_ROUNDING_NORM:"0.25",AREATEX_MAX_DISTANCE:"16.0",AREATEX_MAX_DISTANCE_DIAG:"20.0",AREATEX_PIXEL_SIZE:"(1.0 / vec2(160.0, 560.0))",AREATEX_SUBTEX_SIZE:"(1.0 / 7.0)",SEARCHTEX_SIZE:"vec2(66.0, 33.0)",SEARCHTEX_PACKED_SIZE:"vec2(64.0, 16.0)"},uniforms:{inputBuffer:new h.Uniform(null),searchTexture:new h.Uniform(null),areaTexture:new h.Uniform(null),resolution:new h.Uniform(e),texelSize:new h.Uniform(r)},blending:h.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:is,vertexShader:ss})}set inputBuffer(r){this.uniforms.inputBuffer.value=r}setInputBuffer(r){this.uniforms.inputBuffer.value=r}get searchTexture(){return this.uniforms.searchTexture.value}set searchTexture(r){this.uniforms.searchTexture.value=r}get areaTexture(){return this.uniforms.areaTexture.value}set areaTexture(r){this.uniforms.areaTexture.value=r}setLookupTextures(r,e){this.searchTexture=r,this.areaTexture=e}get orthogonalSearchSteps(){return Number(this.defines.MAX_SEARCH_STEPS_INT)}set orthogonalSearchSteps(r){const e=Math.min(Math.max(r,0),112);this.defines.MAX_SEARCH_STEPS_INT=e.toFixed("0"),this.defines.MAX_SEARCH_STEPS_FLOAT=e.toFixed("1"),this.needsUpdate=!0}setOrthogonalSearchSteps(r){this.orthogonalSearchSteps=r}get diagonalSearchSteps(){return Number(this.defines.MAX_SEARCH_STEPS_DIAG_INT)}set diagonalSearchSteps(r){const e=Math.min(Math.max(r,0),20);this.defines.MAX_SEARCH_STEPS_DIAG_INT=e.toFixed("0"),this.defines.MAX_SEARCH_STEPS_DIAG_FLOAT=e.toFixed("1"),this.needsUpdate=!0}setDiagonalSearchSteps(r){this.diagonalSearchSteps=r}get diagonalDetection(){return this.defines.DISABLE_DIAG_DETECTION===void 0}set diagonalDetection(r){r?delete this.defines.DISABLE_DIAG_DETECTION:this.defines.DISABLE_DIAG_DETECTION="1",this.needsUpdate=!0}isDiagonalDetectionEnabled(){return this.diagonalDetection}setDiagonalDetectionEnabled(r){this.diagonalDetection=r}get cornerRounding(){return Number(this.defines.CORNER_ROUNDING)}set cornerRounding(r){const e=Math.min(Math.max(r,0),100);this.defines.CORNER_ROUNDING=e.toFixed("4"),this.defines.CORNER_ROUNDING_NORM=(e/100).toFixed("4"),this.needsUpdate=!0}setCornerRounding(r){this.cornerRounding=r}get cornerDetection(){return this.defines.DISABLE_CORNER_DETECTION===void 0}set cornerDetection(r){r?delete this.defines.DISABLE_CORNER_DETECTION:this.defines.DISABLE_CORNER_DETECTION="1",this.needsUpdate=!0}isCornerRoundingEnabled(){return this.cornerDetection}setCornerRoundingEnabled(r){this.cornerDetection=r}setSize(r,e){const t=this.uniforms;t.texelSize.value.set(1/r,1/e),t.resolution.value.set(r,e)}},Cn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAYAAACm53kpAAAAeElEQVRYR+2XSwqAMAxEJ168ePEqwRSKhIIiuHjJqiU0gWE+1CQdApcVAMUAuARaMGCX1MIL/Ow13++9lW2s3mW9MWvsnWc/2fvGygwPAN4E8QzAA4CXAB6AHjG4JTHYI1ey3pcx6FHnEfhLDOIBKAmUBK6/ANUDTlROXAHd9EC1AAAAAElFTkSuQmCC",Mn="data:image/png;base64,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",ls="uniform sampler2D weightMap;varying vec2 vOffset0;varying vec2 vOffset1;void movec(const in bvec2 c,inout vec2 variable,const in vec2 value){if(c.x){variable.x=value.x;}if(c.y){variable.y=value.y;}}void movec(const in bvec4 c,inout vec4 variable,const in vec4 value){movec(c.xy,variable.xy,value.xy);movec(c.zw,variable.zw,value.zw);}void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 a;a.x=texture2D(weightMap,vOffset0).a;a.y=texture2D(weightMap,vOffset1).g;a.wz=texture2D(weightMap,uv).rb;vec4 color=inputColor;if(dot(a,vec4(1.0))>=1e-5){bool h=max(a.x,a.z)>max(a.y,a.w);vec4 blendingOffset=vec4(0.0,a.y,0.0,a.w);vec2 blendingWeight=a.yw;movec(bvec4(h),blendingOffset,vec4(a.x,0.0,a.z,0.0));movec(bvec2(h),blendingWeight,a.xz);blendingWeight/=dot(blendingWeight,vec2(1.0));vec4 blendingCoord=blendingOffset*vec4(texelSize,-texelSize)+uv.xyxy;color=blendingWeight.x*texture2D(inputBuffer,blendingCoord.xy);color+=blendingWeight.y*texture2D(inputBuffer,blendingCoord.zw);}outputColor=color;}",cs="varying vec2 vOffset0;varying vec2 vOffset1;void mainSupport(const in vec2 uv){vOffset0=uv+texelSize*vec2(1.0,0.0);vOffset1=uv+texelSize*vec2(0.0,1.0);}",fs=class extends It{constructor({blendFunction:r=Pe.SRC,preset:e=Pt.MEDIUM,edgeDetectionMode:t=kn.COLOR,predicationMode:n=ts.DISABLED}={}){super("SMAAEffect",ls,{vertexShader:cs,blendFunction:r,attributes:ot.CONVOLUTION|ot.DEPTH,uniforms:new Map([["weightMap",new h.Uniform(null)]])});let a,i;arguments.length>1&&(a=arguments[0],i=arguments[1],arguments.length>2&&(e=arguments[2]),arguments.length>3&&(t=arguments[3])),this.renderTargetEdges=new h.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetEdges.texture.name="SMAA.Edges",this.renderTargetWeights=this.renderTargetEdges.clone(),this.renderTargetWeights.texture.name="SMAA.Weights",this.uniforms.get("weightMap").value=this.renderTargetWeights.texture,this.clearPass=new xr(!0,!1,!1),this.clearPass.overrideClearColor=new h.Color(0),this.clearPass.overrideClearAlpha=1,this.edgeDetectionPass=new Sn(new as),this.edgeDetectionMaterial.edgeDetectionMode=t,this.edgeDetectionMaterial.predicationMode=n,this.weightsPass=new Sn(new os);const o=new h.LoadingManager;o.onLoad=()=>{const s=new h.Texture(a);s.name="SMAA.Search",s.magFilter=h.NearestFilter,s.minFilter=h.NearestFilter,s.generateMipmaps=!1,s.needsUpdate=!0,s.flipY=!0,this.weightsMaterial.searchTexture=s;const c=new h.Texture(i);c.name="SMAA.Area",c.magFilter=h.LinearFilter,c.minFilter=h.LinearFilter,c.generateMipmaps=!1,c.needsUpdate=!0,c.flipY=!1,this.weightsMaterial.areaTexture=c,this.dispatchEvent({type:"load"})},o.itemStart("search"),o.itemStart("area"),a!==void 0&&i!==void 0?(o.itemEnd("search"),o.itemEnd("area")):typeof Image<"u"&&(a=new Image,i=new Image,a.addEventListener("load",()=>o.itemEnd("search")),i.addEventListener("load",()=>o.itemEnd("area")),a.src=Cn,i.src=Mn),this.applyPreset(e)}get edgesTexture(){return this.renderTargetEdges.texture}getEdgesTexture(){return this.edgesTexture}get weightsTexture(){return this.renderTargetWeights.texture}getWeightsTexture(){return this.weightsTexture}get edgeDetectionMaterial(){return this.edgeDetectionPass.fullscreenMaterial}get colorEdgesMaterial(){return this.edgeDetectionMaterial}getEdgeDetectionMaterial(){return this.edgeDetectionMaterial}get weightsMaterial(){return this.weightsPass.fullscreenMaterial}getWeightsMaterial(){return this.weightsMaterial}setEdgeDetectionThreshold(r){this.edgeDetectionMaterial.edgeDetectionThreshold=r}setOrthogonalSearchSteps(r){this.weightsMaterial.orthogonalSearchSteps=r}applyPreset(r){const e=this.edgeDetectionMaterial,t=this.weightsMaterial;switch(r){case Pt.LOW:e.edgeDetectionThreshold=.15,t.orthogonalSearchSteps=4,t.diagonalDetection=!1,t.cornerDetection=!1;break;case Pt.MEDIUM:e.edgeDetectionThreshold=.1,t.orthogonalSearchSteps=8,t.diagonalDetection=!1,t.cornerDetection=!1;break;case Pt.HIGH:e.edgeDetectionThreshold=.1,t.orthogonalSearchSteps=16,t.diagonalSearchSteps=8,t.cornerRounding=25,t.diagonalDetection=!0,t.cornerDetection=!0;break;case Pt.ULTRA:e.edgeDetectionThreshold=.05,t.orthogonalSearchSteps=32,t.diagonalSearchSteps=16,t.cornerRounding=25,t.diagonalDetection=!0,t.cornerDetection=!0;break}}setDepthTexture(r,e=h.BasicDepthPacking){this.edgeDetectionMaterial.depthBuffer=r,this.edgeDetectionMaterial.depthPacking=e}update(r,e,t){this.clearPass.render(r,this.renderTargetEdges),this.edgeDetectionPass.render(r,e,this.renderTargetEdges),this.weightsPass.render(r,this.renderTargetEdges,this.renderTargetWeights)}setSize(r,e){this.edgeDetectionMaterial.setSize(r,e),this.weightsMaterial.setSize(r,e),this.renderTargetEdges.setSize(r,e),this.renderTargetWeights.setSize(r,e)}dispose(){const{searchTexture:r,areaTexture:e}=this.weightsMaterial;r!==null&&e!==null&&(r.dispose(),e.dispose()),super.dispose()}static get searchImageDataURL(){return Cn}static get areaImageDataURL(){return Mn}},us=`#include <common>
259
259
  #include <packing>
260
260
  #include <dithering_pars_fragment>
261
261
  #define packFloatToRGBA(v) packDepthToRGBA(v)
@@ -402,7 +402,7 @@ lastWorldPos=screenSpaceToWorldSpace(dilatedReprojectedUv,dilatedLastDepth,prevC
402
402
 
403
403
  layout(location = ${c}) out vec4 gOutput${c};
404
404
  `;n=a+n.replaceAll("textureCount",e),n=Sr(n);const i=n.matchAll(/inputTexture\[\s*[0-9]+\s*]/g);for(const[c]of i){const m=c.replace(/[^0-9]/g,"");n=n.replace(c,"inputTexture"+m)}const o=n.matchAll(/accumulatedTexture\[\s*[0-9]+\s*]/g);for(const[c]of o){const m=c.replace(/[^0-9]/g,"");n=n.replace(c,"accumulatedTexture"+m)}const s=n.matchAll(/gOutput\[\s*[0-9]+\s*]/g);for(const[c]of s){const m=c.replace(/[^0-9]/g,"");n=n.replace(c,"gOutput"+m)}super({type:"TemporalReprojectMaterial",uniforms:{velocityTexture:new h.Uniform(null),depthTexture:new h.Uniform(null),lastDepthTexture:new h.Uniform(null),blend:new h.Uniform(0),neighborhoodClampIntensity:new h.Uniform(0),constantBlend:new h.Uniform(!1),fullAccumulate:new h.Uniform(!1),reset:new h.Uniform(!1),delta:new h.Uniform(0),invTexSize:new h.Uniform(new h.Vector2),projectionMatrix:new h.Uniform(new h.Matrix4),projectionMatrixInverse:new h.Uniform(new h.Matrix4),cameraMatrixWorld:new h.Uniform(new h.Matrix4),viewMatrix:new h.Uniform(new h.Matrix4),prevViewMatrix:new h.Uniform(new h.Matrix4),prevCameraMatrixWorld:new h.Uniform(new h.Matrix4),prevProjectionMatrix:new h.Uniform(new h.Matrix4),prevProjectionMatrixInverse:new h.Uniform(new h.Matrix4),cameraPos:new h.Uniform(new h.Vector3)},vertexShader:wt,fragmentShader:n,blending:h.NoBlending,depthWrite:!1,depthTest:!1,toneMapped:!1,glslVersion:h.GLSL3});for(let c=0;c<e;c++)this.uniforms["inputTexture"+c]=new h.Uniform(null),this.uniforms["accumulatedTexture"+c]=new h.Uniform(null);typeof t=="string"&&(this.defines.useTemporalReprojectCustomComposeShader="")}}const kr=1.324717957244746,Ds=1/kr,Bs=1/(kr*kr),Pn=1.1127756842787055,Is=r=>{const e=[];for(let t=0;t<r;t++)e.push([(Pn+Ds*t)%1,(Pn+Bs*t)%1]);return e},Tn={blend:.9,dilation:!1,constantBlend:!1,fullAccumulate:!1,neighborhoodClamp:!1,neighborhoodClampRadius:1,neighborhoodClampIntensity:1,logTransform:!1,depthDistance:.25,worldDistance:.375,reprojectSpecular:!1,temporalReprojectCustomComposeShader:null,renderTarget:null},Ln=new h.Matrix4,En=new h.Matrix4;class On extends We{constructor(e,t,n,a=1,i=Tn){super("TemporalReprojectPass"),this.needsSwap=!1,this.clock=new h.Clock,this.r2Sequence=[],this.pointsIndex=0,this.lastCameraTransform={position:new h.Vector3,quaternion:new h.Quaternion},this._scene=e,this._camera=t,this.textureCount=a,i={...Tn,...i},this.renderTarget=new h.WebGLMultipleRenderTargets(1,1,a,{minFilter:h.LinearFilter,magFilter:h.LinearFilter,type:h.HalfFloatType,depthBuffer:!1}),this.renderTarget.texture.map((o,s)=>o.name="TemporalReprojectPass.accumulatedTexture"+s),this.fullscreenMaterial=new Ms(a,i.temporalReprojectCustomComposeShader),this.fullscreenMaterial.defines.textureCount=a,i.dilation&&(this.fullscreenMaterial.defines.dilation=""),i.neighborhoodClamp&&(this.fullscreenMaterial.defines.neighborhoodClamp=""),i.logTransform&&(this.fullscreenMaterial.defines.logTransform=""),this.fullscreenMaterial.defines.neighborhoodClampRadius=parseInt(i.neighborhoodClampRadius),this.fullscreenMaterial.defines.depthDistance=i.depthDistance.toPrecision(5),this.fullscreenMaterial.defines.worldDistance=i.worldDistance.toPrecision(5),this.fullscreenMaterial.uniforms.blend.value=i.blend,this.fullscreenMaterial.uniforms.constantBlend.value=i.constantBlend,this.fullscreenMaterial.uniforms.fullAccumulate.value=i.fullAccumulate,this.fullscreenMaterial.uniforms.neighborhoodClampIntensity.value=i.neighborhoodClampIntensity,this.fullscreenMaterial.uniforms.projectionMatrix.value=t.projectionMatrix.clone(),this.fullscreenMaterial.uniforms.projectionMatrixInverse.value=t.projectionMatrixInverse.clone(),this.fullscreenMaterial.uniforms.cameraMatrixWorld.value=t.matrixWorld,this.fullscreenMaterial.uniforms.viewMatrix.value=t.matrixWorldInverse,this.fullscreenMaterial.uniforms.cameraPos.value=t.position,this.fullscreenMaterial.uniforms.prevViewMatrix.value=t.matrixWorldInverse.clone(),this.fullscreenMaterial.uniforms.prevCameraMatrixWorld.value=t.matrixWorld.clone(),this.fullscreenMaterial.uniforms.prevProjectionMatrix.value=t.projectionMatrix.clone(),this.fullscreenMaterial.uniforms.prevProjectionMatrixInverse.value=t.projectionMatrixInverse.clone(),this.copyPass=new Ss(a);for(let o=0;o<a;o++){const s=this.copyPass.renderTarget.texture[o];s.type=h.HalfFloatType,s.minFilter=h.LinearFilter,s.magFilter=h.LinearFilter,s.needsUpdate=!0}this.fullscreenMaterial.uniforms.velocityTexture.value=n.texture,this.fullscreenMaterial.uniforms.depthTexture.value=n.depthTexture;for(const o of["reprojectSpecular","neighborhoodClamp"]){let s=i[o];typeof s!="array"&&(s=Array(a).fill(s)),this.fullscreenMaterial.defines[o]=`bool[](${s.join(", ")})`}this.options=i,this.velocityDepthNormalPass=n}setTextures(e){Array.isArray(e)||(e=[e]);for(let t=0;t<e.length;t++){const n=e[t];this.fullscreenMaterial.uniforms["inputTexture"+t]=new h.Uniform(n)}}dispose(){super.dispose(),this.renderTarget.dispose(),this.copyPass.dispose(),this.fullscreenMaterial.dispose()}setSize(e,t){this.renderTarget.setSize(e,t),this.copyPass.setSize(e,t),this.fullscreenMaterial.uniforms.invTexSize.value.set(1/e,1/t)}get texture(){return this.renderTarget.texture[0]}reset(){this.fullscreenMaterial.uniforms.reset.value=!0}render(e){const t=Math.min(.1,this.clock.getDelta());this.fullscreenMaterial.uniforms.delta.value=t,Ln.copy(this._camera.projectionMatrix),En.copy(this._camera.projectionMatrixInverse),this._camera.view&&(this._camera.view.enabled=!1),this._camera.updateProjectionMatrix(),this.fullscreenMaterial.uniforms.projectionMatrix.value.copy(this._camera.projectionMatrix),this.fullscreenMaterial.uniforms.projectionMatrixInverse.value.copy(this._camera.projectionMatrixInverse),this.fullscreenMaterial.uniforms.lastDepthTexture.value=this.velocityDepthNormalPass.lastDepthTexture,this._camera.view&&(this._camera.view.enabled=!0),this._camera.projectionMatrix.copy(Ln),this._camera.projectionMatrixInverse.copy(En),e.setRenderTarget(this.renderTarget),e.render(this.scene,this.camera),this.fullscreenMaterial.uniforms.reset.value=!1;for(let n=0;n<this.textureCount;n++)this.copyPass.fullscreenMaterial.uniforms["inputTexture"+n].value=this.renderTarget.texture[n],this.fullscreenMaterial.uniforms["accumulatedTexture"+n].value=this.copyPass.renderTarget.texture[n];this.copyPass.render(e),this.fullscreenMaterial.uniforms.prevCameraMatrixWorld.value.copy(this._camera.matrixWorld),this.fullscreenMaterial.uniforms.prevViewMatrix.value.copy(this._camera.matrixWorldInverse),this.fullscreenMaterial.uniforms.prevProjectionMatrix.value.copy(this.fullscreenMaterial.uniforms.projectionMatrix.value),this.fullscreenMaterial.uniforms.prevProjectionMatrixInverse.value.copy(this.fullscreenMaterial.uniforms.projectionMatrixInverse.value)}jitter(e=1){this.unjitter(),this.r2Sequence.length===0&&(this.r2Sequence=Is(256).map(([o,s])=>[o-.5,s-.5])),this.pointsIndex=(this.pointsIndex+1)%this.r2Sequence.length;const[t,n]=this.r2Sequence[this.pointsIndex],{width:a,height:i}=this.renderTarget;this._camera.setViewOffset&&this._camera.setViewOffset(a,i,t*e,n*e,a,i)}unjitter(){this._camera.clearViewOffset&&this._camera.clearViewOffset()}}var Ps=`#define GLSLIFY 1
405
- uniform sampler2D inputTexture;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 accumulatedTexel=textureLod(inputTexture,vUv,0.);outputColor=vec4(accumulatedTexel.rgb,1.);}`;const Cr={blend:.8,constantBlend:!0,dilation:!0,logTransform:!1,neighborhoodClampRadius:2,depthDistance:10,worldDistance:5,neighborhoodClamp:!0};class zn extends Wt{constructor(e,t,n,a=Cr){super("TRAAEffect",Ps,{type:"FinalTRAAEffectMaterial",uniforms:new Map([["inputTexture",new h.Uniform(null)]])}),this._scene=e,this._camera=t,a={...Cr,...a},this.temporalReprojectPass=new On(e,t,n,1,a),this.uniforms.get("inputTexture").value=this.temporalReprojectPass.texture,this.setSize(a.width,a.height)}setSize(e,t){this.temporalReprojectPass.setSize(e,t)}dispose(){super.dispose(),this.temporalReprojectPass.dispose()}update(e,t){this.temporalReprojectPass.unjitter(),this.unjitteredProjectionMatrix=this._camera.projectionMatrix.clone(),this._camera.projectionMatrix.copy(this.unjitteredProjectionMatrix);const n=yr(this._scene).filter(a=>Bn(a));for(const a of n){const i=e.properties.get(a.material);if(!(i!=null&&i.programs))continue;const o=Array.from(i.programs.values())[0].getUniforms();if(!o._patchedProjectionMatrix){const s=o.setValue.bind(o);o._oldSetValue=s,o.setValue=(c,m,b,...v)=>{m==="projectionMatrix"&&(b=this.unjitteredProjectionMatrix),s(c,m,b,...v)},o._patchedProjectionMatrix=!0}cancelAnimationFrame(o._destroyPatchRAF),cancelAnimationFrame(o._destroyPatchRAF2),o._destroyPatchRAF=requestAnimationFrame(()=>{o._destroyPatchRAF2=requestAnimationFrame(()=>{o.setValue=o._oldSetValue,delete o._oldSetValue,delete o._patchedProjectionMatrix})})}this.temporalReprojectPass.fullscreenMaterial.uniforms.inputTexture0.value=t.texture,this.temporalReprojectPass.jitter(),this.temporalReprojectPass.render(e)}}zn.DefaultOptions=Cr;var Ts=`#define GLSLIFY 1
405
+ uniform sampler2D inputTexture;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 accumulatedTexel=textureLod(inputTexture,vUv,0.);outputColor=vec4(accumulatedTexel.rgb,1.);}`;const Cr={blend:.8,constantBlend:!0,dilation:!0,logTransform:!1,neighborhoodClampRadius:2,depthDistance:10,worldDistance:5,neighborhoodClamp:!0};class zn extends It{constructor(e,t,n,a=Cr){super("TRAAEffect",Ps,{type:"FinalTRAAEffectMaterial",uniforms:new Map([["inputTexture",new h.Uniform(null)]])}),this._scene=e,this._camera=t,a={...Cr,...a},this.temporalReprojectPass=new On(e,t,n,1,a),this.uniforms.get("inputTexture").value=this.temporalReprojectPass.texture,this.setSize(a.width,a.height)}setSize(e,t){this.temporalReprojectPass.setSize(e,t)}dispose(){super.dispose(),this.temporalReprojectPass.dispose()}update(e,t){this.temporalReprojectPass.unjitter(),this.unjitteredProjectionMatrix=this._camera.projectionMatrix.clone(),this._camera.projectionMatrix.copy(this.unjitteredProjectionMatrix);const n=yr(this._scene).filter(a=>Bn(a));for(const a of n){const i=e.properties.get(a.material);if(!(i!=null&&i.programs))continue;const o=Array.from(i.programs.values())[0].getUniforms();if(!o._patchedProjectionMatrix){const s=o.setValue.bind(o);o._oldSetValue=s,o.setValue=(c,m,b,...v)=>{m==="projectionMatrix"&&(b=this.unjitteredProjectionMatrix),s(c,m,b,...v)},o._patchedProjectionMatrix=!0}cancelAnimationFrame(o._destroyPatchRAF),cancelAnimationFrame(o._destroyPatchRAF2),o._destroyPatchRAF=requestAnimationFrame(()=>{o._destroyPatchRAF2=requestAnimationFrame(()=>{o.setValue=o._oldSetValue,delete o._oldSetValue,delete o._patchedProjectionMatrix})})}this.temporalReprojectPass.fullscreenMaterial.uniforms.inputTexture0.value=t.texture,this.temporalReprojectPass.jitter(),this.temporalReprojectPass.render(e)}}zn.DefaultOptions=Cr;var Ts=`#define GLSLIFY 1
406
406
  varying vec2 vUv;uniform sampler2D depthTexture;uniform sampler2D normalTexture;uniform sampler2D momentTexture;uniform vec2 invTexSize;uniform bool horizontal;uniform bool blurHorizontal;uniform float denoise[textureCount];uniform float depthPhi;uniform float normalPhi;uniform float roughnessPhi;uniform float denoiseKernel;uniform float stepSize;uniform mat4 projectionMatrixInverse;uniform mat4 projectionMatrix;uniform mat4 cameraMatrixWorld;uniform bool isFirstIteration;uniform bool isLastIteration;
407
407
  #include <packing>
408
408
  #define EPSILON 0.00001
@@ -880,7 +880,7 @@ vec3 specularLightingColor=denoisedColor[0];vec3 specularComponent=specularLight
880
880
  denoisedColor[0]+=directLight;
881
881
  #endif
882
882
  `,to=`#define GLSLIFY 1
883
- uniform sampler2D diffuseTexture;uniform sampler2D directLightTexture;vec3 getViewPosition(const float depth){float clipW=projectionMatrix[2][3]*depth+projectionMatrix[3][3];vec4 clipPosition=vec4((vec3(vUv,depth)-0.5)*2.0,1.0);clipPosition*=clipW;return(projectionMatrixInverse*clipPosition).xyz;}vec3 F_Schlick(const vec3 f0,const float theta){return f0+(1.-f0)*pow(1.0-theta,5.);}vec3 SampleGGXVNDF(const vec3 V,const float ax,const float ay,const float r1,const float r2){vec3 Vh=normalize(vec3(ax*V.x,ay*V.y,V.z));float lensq=Vh.x*Vh.x+Vh.y*Vh.y;vec3 T1=lensq>0. ? vec3(-Vh.y,Vh.x,0.)*inversesqrt(lensq): vec3(1.,0.,0.);vec3 T2=cross(Vh,T1);float r=sqrt(r1);float phi=2.0*PI*r2;float t1=r*cos(phi);float t2=r*sin(phi);float s=0.5*(1.0+Vh.z);t2=(1.0-s)*sqrt(1.0-t1*t1)+s*t2;vec3 Nh=t1*T1+t2*T2+sqrt(max(0.0,1.0-t1*t1-t2*t2))*Vh;return normalize(vec3(ax*Nh.x,ay*Nh.y,max(0.0,Nh.z)));}void Onb(const vec3 N,inout vec3 T,inout vec3 B){vec3 up=abs(N.z)<0.9999999 ? vec3(0,0,1): vec3(1,0,0);T=normalize(cross(up,N));B=cross(N,T);}vec3 ToLocal(const vec3 X,const vec3 Y,const vec3 Z,const vec3 V){return vec3(dot(V,X),dot(V,Y),dot(V,Z));}vec3 ToWorld(const vec3 X,const vec3 Y,const vec3 Z,const vec3 V){return V.x*X+V.y*Y+V.z*Z;}`;const Br={distance:10,thickness:10,autoThickness:!1,maxRoughness:1,blend:.9,denoiseIterations:1,denoiseKernel:2,denoiseDiffuse:10,denoiseSpecular:10,depthPhi:2,normalPhi:50,roughnessPhi:1,envBlur:.5,importanceSampling:!0,directLightMultiplier:1,steps:20,refineSteps:5,spp:1,resolutionScale:1,missedRays:!1},{render:Un}=_t.prototype,Rn=bs(),jn=vs();class ro extends Wt{constructor(e,t,n,a=Br){if(a={...Br,...a},super("SSGIEffect",$s,{type:"FinalSSGIMaterial",uniforms:new Map([["inputTexture",new h.Uniform(null)],["sceneTexture",new h.Uniform(null)],["depthTexture",new h.Uniform(null)],["toneMapping",new h.Uniform(h.NoToneMapping)]])}),this.selection=new xi,this.isUsingRenderPass=!0,!(t instanceof h.PerspectiveCamera))throw new Error(this.constructor.name+" doesn't support cameras of type '"+t.constructor.name+"' yet. Only cameras of type 'PerspectiveCamera' are supported.");this._scene=e,this._camera=t;let i;a.diffuseOnly?(i="ssdgi",a.reprojectSpecular=!1,a.roughnessDependent=!1,a.basicVariance=25e-5,a.neighborhoodClamp=!1):a.specularOnly?(i="ssr",a.reprojectSpecular=!0,a.roughnessDependent=!0,a.basicVariance=25e-5,a.neighborhoodClamp=!0):(i="ssgi",a.reprojectSpecular=[!1,!0],a.neighborhoodClamp=[!1,!0],a.roughnessDependent=[!1,!0],a.basicVariance=[25e-5,25e-5]),a.neighborhoodClampRadius=2,a.neighborhoodClampIntensity=.5;const o=a.diffuseOnly||a.specularOnly?1:2;a={...a,denoiseCustomComposeShader:eo,denoiseCustomComposeShaderFunctions:to},this.svgf=new Fs(e,t,n,o,a),i==="ssgi"?this.svgf.svgfTemporalReprojectPass.fullscreenMaterial.fragmentShader=this.svgf.svgfTemporalReprojectPass.fullscreenMaterial.fragmentShader.replace("accumulatedTexel[ 1 ].rgb = clampedColor;",`
883
+ uniform sampler2D diffuseTexture;uniform sampler2D directLightTexture;vec3 getViewPosition(const float depth){float clipW=projectionMatrix[2][3]*depth+projectionMatrix[3][3];vec4 clipPosition=vec4((vec3(vUv,depth)-0.5)*2.0,1.0);clipPosition*=clipW;return(projectionMatrixInverse*clipPosition).xyz;}vec3 F_Schlick(const vec3 f0,const float theta){return f0+(1.-f0)*pow(1.0-theta,5.);}vec3 SampleGGXVNDF(const vec3 V,const float ax,const float ay,const float r1,const float r2){vec3 Vh=normalize(vec3(ax*V.x,ay*V.y,V.z));float lensq=Vh.x*Vh.x+Vh.y*Vh.y;vec3 T1=lensq>0. ? vec3(-Vh.y,Vh.x,0.)*inversesqrt(lensq): vec3(1.,0.,0.);vec3 T2=cross(Vh,T1);float r=sqrt(r1);float phi=2.0*PI*r2;float t1=r*cos(phi);float t2=r*sin(phi);float s=0.5*(1.0+Vh.z);t2=(1.0-s)*sqrt(1.0-t1*t1)+s*t2;vec3 Nh=t1*T1+t2*T2+sqrt(max(0.0,1.0-t1*t1-t2*t2))*Vh;return normalize(vec3(ax*Nh.x,ay*Nh.y,max(0.0,Nh.z)));}void Onb(const vec3 N,inout vec3 T,inout vec3 B){vec3 up=abs(N.z)<0.9999999 ? vec3(0,0,1): vec3(1,0,0);T=normalize(cross(up,N));B=cross(N,T);}vec3 ToLocal(const vec3 X,const vec3 Y,const vec3 Z,const vec3 V){return vec3(dot(V,X),dot(V,Y),dot(V,Z));}vec3 ToWorld(const vec3 X,const vec3 Y,const vec3 Z,const vec3 V){return V.x*X+V.y*Y+V.z*Z;}`;const Br={distance:10,thickness:10,autoThickness:!1,maxRoughness:1,blend:.9,denoiseIterations:1,denoiseKernel:2,denoiseDiffuse:10,denoiseSpecular:10,depthPhi:2,normalPhi:50,roughnessPhi:1,envBlur:.5,importanceSampling:!0,directLightMultiplier:1,steps:20,refineSteps:5,spp:1,resolutionScale:1,missedRays:!1},{render:Un}=_t.prototype,Rn=bs(),jn=vs();class ro extends It{constructor(e,t,n,a=Br){if(a={...Br,...a},super("SSGIEffect",$s,{type:"FinalSSGIMaterial",uniforms:new Map([["inputTexture",new h.Uniform(null)],["sceneTexture",new h.Uniform(null)],["depthTexture",new h.Uniform(null)],["toneMapping",new h.Uniform(h.NoToneMapping)]])}),this.selection=new xi,this.isUsingRenderPass=!0,!(t instanceof h.PerspectiveCamera))throw new Error(this.constructor.name+" doesn't support cameras of type '"+t.constructor.name+"' yet. Only cameras of type 'PerspectiveCamera' are supported.");this._scene=e,this._camera=t;let i;a.diffuseOnly?(i="ssdgi",a.reprojectSpecular=!1,a.roughnessDependent=!1,a.basicVariance=25e-5,a.neighborhoodClamp=!1):a.specularOnly?(i="ssr",a.reprojectSpecular=!0,a.roughnessDependent=!0,a.basicVariance=25e-5,a.neighborhoodClamp=!0):(i="ssgi",a.reprojectSpecular=[!1,!0],a.neighborhoodClamp=[!1,!0],a.roughnessDependent=[!1,!0],a.basicVariance=[25e-5,25e-5]),a.neighborhoodClampRadius=2,a.neighborhoodClampIntensity=.5;const o=a.diffuseOnly||a.specularOnly?1:2;a={...a,denoiseCustomComposeShader:eo,denoiseCustomComposeShaderFunctions:to},this.svgf=new Fs(e,t,n,o,a),i==="ssgi"?this.svgf.svgfTemporalReprojectPass.fullscreenMaterial.fragmentShader=this.svgf.svgfTemporalReprojectPass.fullscreenMaterial.fragmentShader.replace("accumulatedTexel[ 1 ].rgb = clampedColor;",`
884
884
  float roughness = inputTexel[ 0 ].a;
885
885
  accumulatedTexel[ 1 ].rgb = mix(accumulatedTexel[ 1 ].rgb, clampedColor, 1. - sqrt(roughness));
886
886
  `):i==="ssr"&&(this.svgf.svgfTemporalReprojectPass.fullscreenMaterial.fragmentShader=this.svgf.svgfTemporalReprojectPass.fullscreenMaterial.fragmentShader.replace("accumulatedTexel[ 0 ].rgb = clampedColor;",`
@@ -946,7 +946,7 @@ gl_FragColor=vec4(denoised,1.);
946
946
  `}return t+=");",t}const Gn=ao.replace("#include <sampleBlueNoise>",Mr),Qt={iterations:1,radius:8,rings:5.625,lumaPhi:10,depthPhi:2,normalPhi:3.25,samples:16,normalTexture:null};class Ir extends We{constructor(e,t,n,a=Qt){super("PoissionBlurPass"),this.iterations=Qt.iterations,this.index=0,a={...Qt,...a},this.inputTexture=t,this.fullscreenMaterial=new h.ShaderMaterial({fragmentShader:Gn,vertexShader:wt,uniforms:{depthTexture:{value:null},inputTexture:{value:null},projectionMatrixInverse:{value:new h.Matrix4},cameraMatrixWorld:{value:new h.Matrix4},lumaPhi:{value:5},depthPhi:{value:5},normalPhi:{value:5},resolution:{value:new h.Vector2},blueNoiseTexture:{value:null},index:{value:0},blueNoiseRepeat:{value:new h.Vector2}}});const i={type:h.HalfFloatType,depthBuffer:!1};this.renderTargetA=new h.WebGLRenderTarget(1,1,i),this.renderTargetB=new h.WebGLRenderTarget(1,1,i);const{uniforms:o}=this.fullscreenMaterial;o.inputTexture.value=this.inputTexture,o.depthTexture.value=n,o.projectionMatrixInverse.value=e.projectionMatrixInverse,o.cameraMatrixWorld.value=e.matrixWorld,o.depthPhi.value=a.depthPhi,o.normalPhi.value=a.normalPhi,a.normalTexture?o.normalTexture.value=a.normalTexture:this.fullscreenMaterial.defines.NORMAL_IN_RGB="";for(const s of["radius","rings","samples"])Object.defineProperty(this,s,{get:()=>a[s],set:c=>{a[s]=c,this.setSize(this.renderTargetA.width,this.renderTargetA.height)}});new h.TextureLoader().load(Dr,s=>{s.minFilter=h.NearestFilter,s.magFilter=h.NearestFilter,s.wrapS=h.RepeatWrapping,s.wrapT=h.RepeatWrapping,s.colorSpace=h.NoColorSpace,this.fullscreenMaterial.uniforms.blueNoiseTexture.value=s})}setSize(e,t){this.renderTargetA.setSize(e,t),this.renderTargetB.setSize(e,t),this.fullscreenMaterial.uniforms.resolution.value.set(e,t);const n=io(this.samples,this.rings,this.radius,new h.Vector2(1/e,1/t)),a=`const int samples = ${this.samples};
947
947
  `,i=so(n);this.fullscreenMaterial.fragmentShader=a+i+`
948
948
  `+Gn,this.fullscreenMaterial.needsUpdate=!0}get texture(){return this.renderTargetB.texture}render(e){this.fullscreenMaterial.uniforms.index.value=0;const t=this.fullscreenMaterial.uniforms.blueNoiseTexture.value;if(t){const{width:n,height:a}=t.source.data;this.fullscreenMaterial.uniforms.blueNoiseRepeat.value.set(this.renderTargetA.width/n,this.renderTargetA.height/a)}for(let n=0;n<2*this.iterations;n++){const a=n%2===0,i=a?this.renderTargetB:this.renderTargetA;this.fullscreenMaterial.uniforms.inputTexture.value=n===0?this.inputTexture:i.texture;const o=a?this.renderTargetA:this.renderTargetB;e.setRenderTarget(o),e.render(this.scene,this.camera),this.fullscreenMaterial.uniforms.index.value=(this.fullscreenMaterial.uniforms.index.value+1)%4}}}Ir.DefaultOptions=Qt;class oo extends We{constructor(e,t,n){super(),this._camera=e,this._scene=t,this.renderTarget=new h.WebGLRenderTarget(1,1,{type:h.HalfFloatType,depthBuffer:!1});const a=n.replace("#include <sampleBlueNoise>",Mr);this.fullscreenMaterial=new h.ShaderMaterial({fragmentShader:a,vertexShader:wt,uniforms:{depthTexture:{value:null},normalTexture:{value:null},cameraNear:{value:0},cameraFar:{value:0},viewMatrix:{value:this._camera.matrixWorldInverse},projectionViewMatrix:{value:new h.Matrix4},projectionMatrixInverse:{value:this._camera.projectionMatrixInverse},cameraMatrixWorld:{value:this._camera.matrixWorld},texSize:{value:new h.Vector2},blueNoiseTexture:{value:null},blueNoiseRepeat:{value:new h.Vector2},aoDistance:{value:0},distancePower:{value:0},bias:{value:0},thickness:{value:0},power:{value:0},frame:{value:0}},blending:h.NoBlending,depthWrite:!1,depthTest:!1,toneMapped:!1}),new h.TextureLoader().load(Dr,i=>{i.minFilter=h.NearestFilter,i.magFilter=h.NearestFilter,i.wrapS=h.RepeatWrapping,i.wrapT=h.RepeatWrapping,i.colorSpace=h.NoColorSpace,this.fullscreenMaterial.uniforms.blueNoiseTexture.value=i})}get texture(){return this.renderTarget.texture}setSize(e,t){this.renderTarget.setSize(e,t),this.fullscreenMaterial.uniforms.texSize.value.set(this.renderTarget.width,this.renderTarget.height)}render(e){const t=+this.fullscreenMaterial.defines.spp;this.fullscreenMaterial.uniforms.frame.value=(this.fullscreenMaterial.uniforms.frame.value+t)%65536,this.fullscreenMaterial.uniforms.cameraNear.value=this._camera.near,this.fullscreenMaterial.uniforms.cameraFar.value=this._camera.far,this.fullscreenMaterial.uniforms.projectionViewMatrix.value.multiplyMatrices(this._camera.projectionMatrix,this._camera.matrixWorldInverse);const n=this.fullscreenMaterial.uniforms.blueNoiseTexture.value;if(n){const{width:a,height:i}=n.source.data;this.fullscreenMaterial.uniforms.blueNoiseRepeat.value.set(this.renderTarget.width/a,this.renderTarget.height/i)}e.setRenderTarget(this.renderTarget),e.render(this.scene,this.camera)}}var lo=`#define GLSLIFY 1
949
- uniform sampler2D inputTexture;uniform sampler2D depthTexture;uniform float power;uniform vec3 color;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){float unpackedDepth=textureLod(depthTexture,uv,0.).r;float ao=unpackedDepth>0.9999 ? 1.0 : textureLod(inputTexture,uv,0.0).a;ao=pow(ao,power);vec3 aoColor=mix(color,vec3(1.),ao);aoColor*=inputColor.rgb;outputColor=vec4(aoColor,inputColor.a);}`;const Pr={resolutionScale:1,spp:8,distance:2,distancePower:1,power:2,bias:40,thickness:.075,color:new h.Color("black"),useNormalPass:!1,velocityDepthNormalPass:null,normalTexture:null,...Ir.DefaultOptions};class Tr extends Wt{constructor(e,t,n,a,i=Pr){if(super("AOEffect",lo,{type:"FinalAOMaterial",uniforms:new Map([["inputTexture",new h.Uniform(null)],["depthTexture",new h.Uniform(null)],["power",new h.Uniform(0)],["color",new h.Uniform(new h.Color("black"))]])}),this.lastSize={width:0,height:0,resolutionScale:0},this.composer=e,this.aoPass=a,i={...Pr,...i},e.depthTexture||e.createDepthTexture(),this.aoPass.fullscreenMaterial.uniforms.depthTexture.value=e.depthTexture,this.uniforms.get("depthTexture").value=e.depthTexture,i.useNormalPass||i.normalTexture){var o;i.useNormalPass&&(this.normalPass=new gs(n,t));const s=(o=i.normalTexture)!==null&&o!==void 0?o:this.normalPass.texture;this.aoPass.fullscreenMaterial.uniforms.normalTexture.value=s,this.aoPass.fullscreenMaterial.defines.useNormalTexture=""}this.poissionDenoisePass=new Ir(t,this.aoPass.texture,e.depthTexture),this.makeOptionsReactive(i)}makeOptionsReactive(e){for(const t of Object.keys(e))Object.defineProperty(this,t,{get(){return e[t]},set(n){if(n!=null)switch(e[t]=n,t){case"spp":this.aoPass.fullscreenMaterial.defines.spp=n.toFixed(0),this.aoPass.fullscreenMaterial.needsUpdate=!0;break;case"distance":this.aoPass.fullscreenMaterial.uniforms.aoDistance.value=n;break;case"resolutionScale":this.setSize(this.lastSize.width,this.lastSize.height);break;case"power":this.uniforms.get("power").value=n;break;case"color":this.uniforms.get("color").value.copy(new h.Color(n));break;case"iterations":case"radius":case"rings":case"samples":this.poissionDenoisePass[t]=n;break;case"lumaPhi":case"depthPhi":case"normalPhi":this.poissionDenoisePass.fullscreenMaterial.uniforms[t].value=Math.max(n,1e-4);break;default:t in this.aoPass.fullscreenMaterial.uniforms&&(this.aoPass.fullscreenMaterial.uniforms[t].value=n)}},configurable:!0}),this[t]=e[t]}setSize(e,t){var n;e===void 0||t===void 0||e===this.lastSize.width&&t===this.lastSize.height&&this.resolutionScale===this.lastSize.resolutionScale||((n=this.normalPass)==null||n.setSize(e,t),this.aoPass.setSize(e*this.resolutionScale,t*this.resolutionScale),this.poissionDenoisePass.setSize(e,t),this.lastSize={width:e,height:t,resolutionScale:this.resolutionScale})}update(e){var t;const n=this.composer.passes.some(a=>{var i;return a.enabled&&!a.skipRendering&&((i=a.effects)==null?void 0:i.some(o=>o instanceof zn))});n&&!("animatedNoise"in this.aoPass.fullscreenMaterial.defines)?(this.aoPass.fullscreenMaterial.defines.animatedNoise="",this.aoPass.fullscreenMaterial.needsUpdate=!0):!n&&"animatedNoise"in this.aoPass.fullscreenMaterial.defines&&(delete this.aoPass.fullscreenMaterial.defines.animatedNoise,this.aoPass.fullscreenMaterial.needsUpdate=!0),this.iterations>0?this.uniforms.get("inputTexture").value=this.poissionDenoisePass.texture:this.uniforms.get("inputTexture").value=this.aoPass.texture,(t=this.normalPass)==null||t.render(e),this.aoPass.render(e),this.poissionDenoisePass.render(e)}}Tr.DefaultOptions=Pr;var co=`#define GLSLIFY 1
949
+ uniform sampler2D inputTexture;uniform sampler2D depthTexture;uniform float power;uniform vec3 color;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){float unpackedDepth=textureLod(depthTexture,uv,0.).r;float ao=unpackedDepth>0.9999 ? 1.0 : textureLod(inputTexture,uv,0.0).a;ao=pow(ao,power);vec3 aoColor=mix(color,vec3(1.),ao);aoColor*=inputColor.rgb;outputColor=vec4(aoColor,inputColor.a);}`;const Pr={resolutionScale:1,spp:8,distance:2,distancePower:1,power:2,bias:40,thickness:.075,color:new h.Color("black"),useNormalPass:!1,velocityDepthNormalPass:null,normalTexture:null,...Ir.DefaultOptions};class Tr extends It{constructor(e,t,n,a,i=Pr){if(super("AOEffect",lo,{type:"FinalAOMaterial",uniforms:new Map([["inputTexture",new h.Uniform(null)],["depthTexture",new h.Uniform(null)],["power",new h.Uniform(0)],["color",new h.Uniform(new h.Color("black"))]])}),this.lastSize={width:0,height:0,resolutionScale:0},this.composer=e,this.aoPass=a,i={...Pr,...i},e.depthTexture||e.createDepthTexture(),this.aoPass.fullscreenMaterial.uniforms.depthTexture.value=e.depthTexture,this.uniforms.get("depthTexture").value=e.depthTexture,i.useNormalPass||i.normalTexture){var o;i.useNormalPass&&(this.normalPass=new gs(n,t));const s=(o=i.normalTexture)!==null&&o!==void 0?o:this.normalPass.texture;this.aoPass.fullscreenMaterial.uniforms.normalTexture.value=s,this.aoPass.fullscreenMaterial.defines.useNormalTexture=""}this.poissionDenoisePass=new Ir(t,this.aoPass.texture,e.depthTexture),this.makeOptionsReactive(i)}makeOptionsReactive(e){for(const t of Object.keys(e))Object.defineProperty(this,t,{get(){return e[t]},set(n){if(n!=null)switch(e[t]=n,t){case"spp":this.aoPass.fullscreenMaterial.defines.spp=n.toFixed(0),this.aoPass.fullscreenMaterial.needsUpdate=!0;break;case"distance":this.aoPass.fullscreenMaterial.uniforms.aoDistance.value=n;break;case"resolutionScale":this.setSize(this.lastSize.width,this.lastSize.height);break;case"power":this.uniforms.get("power").value=n;break;case"color":this.uniforms.get("color").value.copy(new h.Color(n));break;case"iterations":case"radius":case"rings":case"samples":this.poissionDenoisePass[t]=n;break;case"lumaPhi":case"depthPhi":case"normalPhi":this.poissionDenoisePass.fullscreenMaterial.uniforms[t].value=Math.max(n,1e-4);break;default:t in this.aoPass.fullscreenMaterial.uniforms&&(this.aoPass.fullscreenMaterial.uniforms[t].value=n)}},configurable:!0}),this[t]=e[t]}setSize(e,t){var n;e===void 0||t===void 0||e===this.lastSize.width&&t===this.lastSize.height&&this.resolutionScale===this.lastSize.resolutionScale||((n=this.normalPass)==null||n.setSize(e,t),this.aoPass.setSize(e*this.resolutionScale,t*this.resolutionScale),this.poissionDenoisePass.setSize(e,t),this.lastSize={width:e,height:t,resolutionScale:this.resolutionScale})}update(e){var t;const n=this.composer.passes.some(a=>{var i;return a.enabled&&!a.skipRendering&&((i=a.effects)==null?void 0:i.some(o=>o instanceof zn))});n&&!("animatedNoise"in this.aoPass.fullscreenMaterial.defines)?(this.aoPass.fullscreenMaterial.defines.animatedNoise="",this.aoPass.fullscreenMaterial.needsUpdate=!0):!n&&"animatedNoise"in this.aoPass.fullscreenMaterial.defines&&(delete this.aoPass.fullscreenMaterial.defines.animatedNoise,this.aoPass.fullscreenMaterial.needsUpdate=!0),this.iterations>0?this.uniforms.get("inputTexture").value=this.poissionDenoisePass.texture:this.uniforms.get("inputTexture").value=this.aoPass.texture,(t=this.normalPass)==null||t.render(e),this.aoPass.render(e),this.poissionDenoisePass.render(e)}}Tr.DefaultOptions=Pr;var co=`#define GLSLIFY 1
950
950
  varying vec2 vUv;uniform sampler2D depthTexture;uniform sampler2D normalTexture;uniform mat4 projectionViewMatrix;uniform mat4 cameraMatrixWorld;uniform sampler2D blueNoiseTexture;uniform vec2 blueNoiseRepeat;uniform vec2 texSize;uniform mat4 projectionMatrixInverse;uniform float aoDistance;uniform float distancePower;uniform float cameraNear;uniform float cameraFar;uniform int frame;uniform vec3[spp]samples;uniform float[spp]samplesR;
951
951
  #include <common>
952
952
  #include <packing>
@@ -957,12 +957,19 @@ int seed=frame;
957
957
  #else
958
958
  int seed=0;
959
959
  #endif
960
- vec4 noise=sampleBlueNoise(blueNoiseTexture,seed,blueNoiseRepeat,texSize);vec3 randomVec=normalize(noise.rgb*2.0-1.0);vec3 tangent=normalize(randomVec-normal*dot(randomVec,normal));vec3 bitangent=cross(normal,tangent);mat3 tbn=mat3(tangent,bitangent,normal);float occluded=0.0;float totalWeight=0.0;vec3 samplePos;float sppF=float(spp);for(float i=0.0;i<sppF;i++){vec3 sampleDirection=tbn*samples[int(i)];if(dot(sampleDirection,normal)<0.0)sampleDirection*=-1.0;float moveAmt=samplesR[int(mod(i+noise.a*sppF,sppF))];samplePos=worldPos+aoDistance*moveAmt*sampleDirection;vec4 offset=projectionViewMatrix*vec4(samplePos,1.0);offset.xyz/=offset.w;offset.xyz=offset.xyz*0.5+0.5;float sampleDepth=textureLod(depthTexture,offset.xy,0.0).x;float distSample=linearize_depth(sampleDepth,cameraNear,cameraFar);float distWorld=linearize_depth(offset.z,cameraNear,cameraFar);float rangeCheck=smoothstep(0.0,1.0,aoDistance/(aoDistance*abs(distSample-distWorld)));rangeCheck=pow(rangeCheck,distancePower);float weight=dot(sampleDirection,normal);occluded+=rangeCheck*weight*(distSample<distWorld ? 1.0 : 0.0);totalWeight+=weight;}float occ=clamp(1.0-occluded/totalWeight,0.0,1.0);gl_FragColor=vec4(normal,occ);}`;class fo extends oo{constructor(e,t){super(e,t,co)}}function uo(r){const e=[],t=Math.PI*(3-Math.sqrt(5)),n=2/r;for(let a=0;a<r;a++){const i=a*n-1+n/2,o=Math.sqrt(1-i*i),s=a*t;e.push(new h.Vector3(Math.cos(s)*o,i,Math.sin(s)*o))}return e}class Yt extends Tr{constructor(e,t,n,a={}){Yt.DefaultOptions={...Tr.DefaultOptions,spp:16,distance:1,distancePower:.25,power:2},a={...Yt.DefaultOptions,...a};const i=new fo(t,n);super(e,t,n,i,a)}makeOptionsReactive(e){super.makeOptionsReactive(e);for(const t of["spp"])Object.defineProperty(this,t,{get(){return e[t]},set(n){if(n!=null)switch(e[t]=n,t){case"spp":this.aoPass.fullscreenMaterial.defines.spp=n.toFixed(0);const a=uo(n),i=[];for(let o=0;o<n;o++)i.push((o+1)/n);this.aoPass.fullscreenMaterial.uniforms.samples={value:a},this.aoPass.fullscreenMaterial.uniforms.samplesR={value:i},this.aoPass.fullscreenMaterial.needsUpdate=!0;break}},configurable:!0});this.spp=e.spp}}class ho{constructor(e,t){Ce(this,"canvas");Ce(this,"renderer");Ce(this,"scene");Ce(this,"camera");Ce(this,"controls");Ce(this,"composer");Ce(this,"schematic");this.canvas=e,this.renderer=new Ae.WebGLRenderer({depth:!1,canvas:this.canvas,alpha:!0}),this.renderer.setSize(this.canvas.clientWidth,this.canvas.clientHeight),this.scene=new Ae.Scene,this.camera=this.createCamera(),this.controls=new Sa(this.camera,this.canvas),this.composer=new vi(this.renderer),this.composer.addPass(new _t(this.scene,this.camera)),this.setupScene(t),this.setBackgroundColor("#000000",1)}addDebugCuboide(e,t,n){const a=new Ae.BoxGeometry(t.x,t.y,t.z),i=new Ae.MeshBasicMaterial({color:n}),o=new Ae.Mesh(a,i);o.position.copy(e),this.scene.add(o)}addDebugBoundingBox(e,t,n){const a=new Ae.BoxGeometry(t.x,t.y,t.z),i=new Ae.EdgesGeometry(a),o=new Ae.LineSegments(i,new Ae.LineBasicMaterial({color:n}));o.position.copy(e),this.scene.add(o)}addDebugText(e,t,n=0,a=16777215){const i=document.createElement("canvas"),o=i.getContext("2d");o&&(o.font="Bold 40px Arial",o.fillStyle="rgba("+a+", 1)",o.fillRect(0,0,o.measureText(e).width,50),o.fillStyle="rgba("+n+", 1)",o.fillText(e,0,40));const s=new Ae.CanvasTexture(i),c=new Ae.SpriteMaterial({map:s,transparent:!0}),m=new Ae.Sprite(c);m.position.copy(t),m.scale.set(5,2,1),this.scene.add(m)}getPerspectiveCamera(){const n=this.canvas.clientWidth/this.canvas.clientHeight,a=.1,i=1e3,o=new Ae.PerspectiveCamera(75,n,a,i);return o.position.set(20,3*20,20),o.lookAt(0,0,0),o}getIsometricCamera(){const e=this.canvas.clientWidth/this.canvas.clientHeight,t=20,n=new Ae.OrthographicCamera(-t*e,t*e,t,-t,1,1e3);return n.position.set(t,t,t),n}setBackgroundColor(e,t=1){this.renderer.setClearColor(e,t)}createCamera(){return this.getPerspectiveCamera()}getGridHelper(){const n=new Ae.GridHelper(100,100);return n.name="GridHelper",n}addGrid(){const e=this.getGridHelper();this.scene.add(e)}removeGrid(){const e=this.scene.getObjectByName("GridHelper");e&&this.scene.remove(e)}toggleGrid(){this.scene.getObjectByName("GridHelper")?this.removeGrid():this.addGrid()}setupScene(e){this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=Ae.PCFSoftShadowMap,this.createLights();const t=new Yt(this.composer,this.camera,this.scene),n=new fs,a=new ms(this.camera,t,n);this.composer.addPass(a)}createLights(){const e=new Ae.AmbientLight(16777215,.5);e.intensity=.9,this.scene.add(e);const t=new Ae.DirectionalLight(16777215,.5);t.position.set(20,20,-20),t.intensity=1,t.castShadow=!0,t.shadow.bias=-.01,this.scene.add(t)}render(){this.composer.render()}animate(){requestAnimationFrame(()=>this.animate()),this.controls.update(),this.render()}takeScreenshot(e,t){const n=this.canvas.clientWidth,a=this.canvas.clientHeight,i=this.camera.clone();if(i instanceof Ae.OrthographicCamera){const s=e/t;i.left=-s,i.right=s,i.top=1,i.bottom=-1}else i.aspect=e/t;i.updateProjectionMatrix(),this.renderer.setSize(e,t),this.composer.render();const o=this.renderer.domElement.toDataURL();return this.renderer.setSize(n,a),this.composer.render(),o}takeRotationWebM(e,t,n,a,i,o,s,c=360){const m=c*Math.PI/180,b=Math.atan2(this.camera.position.z-n.z,this.camera.position.x-n.x),v=this.canvas.clientWidth,w=this.canvas.clientHeight;this.renderer.setSize(e,t);const d=Math.floor(o*s),g=m/d,p=new Ba({frameRate:o,quality:1,transparent:!0});return new Promise((y,x)=>{const S=D=>{requestAnimationFrame(()=>{const B=g*D;this.camera.position.set(n.x+a*Math.cos(B+b),n.y+a*Math.sin(i),n.z+a*Math.sin(B+b)),this.camera.lookAt(n),this.composer.render();const I=this.canvas.getContext("2d");I==null||I.clearRect(0,0,e,t),I==null||I.drawImage(this.renderer.domElement,0,0),p.addFrame(this.canvas),D<d?S(D+1):(this.renderer.setSize(v,w),this.composer.render(),p.complete().then(T=>{y(T)}).catch(x))})};S(0)})}exportUsdz(){return new Qa().parse(this.scene)}updateZoom(e){this.camera.zoom=e,this.camera.updateProjectionMatrix()}}var po=function(e){return mo(e)&&!go(e)};function mo(r){return!!r&&typeof r=="object"}function go(r){var e=Object.prototype.toString.call(r);return e==="[object RegExp]"||e==="[object Date]"||bo(r)}var wo=typeof Symbol=="function"&&Symbol.for,vo=wo?Symbol.for("react.element"):60103;function bo(r){return r.$$typeof===vo}function xo(r){return Array.isArray(r)?[]:{}}function Pt(r,e){return e.clone!==!1&&e.isMergeableObject(r)?yt(xo(r),r,e):r}function _o(r,e,t){return r.concat(e).map(function(n){return Pt(n,t)})}function Ao(r,e){if(!e.customMerge)return yt;var t=e.customMerge(r);return typeof t=="function"?t:yt}function yo(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(e){return Object.propertyIsEnumerable.call(r,e)}):[]}function Vn(r){return Object.keys(r).concat(yo(r))}function Wn(r,e){try{return e in r}catch{return!1}}function So(r,e){return Wn(r,e)&&!(Object.hasOwnProperty.call(r,e)&&Object.propertyIsEnumerable.call(r,e))}function ko(r,e,t){var n={};return t.isMergeableObject(r)&&Vn(r).forEach(function(a){n[a]=Pt(r[a],t)}),Vn(e).forEach(function(a){So(r,a)||(Wn(r,a)&&t.isMergeableObject(e[a])?n[a]=Ao(a,t)(r[a],e[a],t):n[a]=Pt(e[a],t))}),n}function yt(r,e,t){t=t||{},t.arrayMerge=t.arrayMerge||_o,t.isMergeableObject=t.isMergeableObject||po,t.cloneUnlessOtherwiseSpecified=Pt;var n=Array.isArray(e),a=Array.isArray(r),i=n===a;return i?n?t.arrayMerge(r,e,t):ko(r,e,t):Pt(e,t)}yt.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(n,a){return yt(n,a,t)},{})};var Co=yt,Mo=Co;const Do=cr(Mo);var Qn={exports:{}},Xt={exports:{}};(function(){var r=[],e=3988292384;function t(){var o,s,c;for(s=0;s<256;s+=1){for(o=s,c=0;c<8;c+=1)o&1?o=e^o>>>1:o=o>>>1;r[s]=o>>>0}}function n(o){return Array.prototype.map.call(o,function(s){return s.charCodeAt(0)})}function a(o){var s=-1,c,m,b,v;for(c=0,b=o.length;c<b;c+=1){for(v=(s^o[c])&255,m=0;m<8;m+=1)(v&1)===1?v=v>>>1^e:v=v>>>1;s=s>>>8^v}return s^-1}function i(o,s){var c,m,b;if(!((typeof i.crc>"u"||!s||!o)&&(i.crc=-1,!o))){for(c=i.crc,m=0,b=o.length;m<b;m+=1)c=c>>>8^r[(c^o[m])&255];return i.crc=c,c^-1}}t(),Xt.exports=function(c,s){var c=typeof c=="string"?n(c):c,m=s?a(c):i(c);return(m>>>0).toString(16)},Xt.exports.direct=a,Xt.exports.table=i})();var Bo=Xt.exports,Yn={exports:{}},Xn={exports:{}};(function(){var r=32768,e=0,t=1,n=2,a=9,i=6,o,s,c=null,m,b,v,w,d,g,p,y,x,S,D,B,I,T,O,V=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],W=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Z=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,99,99],se=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],P=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],X=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function A(){this.next=null,this.list=null}function J(){this.e=0,this.b=0,this.n=0,this.t=null}function oe(pe,be,xe,$,he,re){this.BMAX=16,this.N_MAX=288,this.status=0,this.root=null,this.m=0;var u,K=[],F,M,k,z,R,Q,G,ie=[],ue,ae,_e,_=new J,l=[],f=[],C,E=[],Y,H,Se,Me,ye;for(ye=this.root=null,R=0;R<this.BMAX+1;R++)K[R]=0;for(R=0;R<this.BMAX+1;R++)ie[R]=0;for(R=0;R<this.BMAX;R++)l[R]=null;for(R=0;R<this.N_MAX;R++)f[R]=0;for(R=0;R<this.BMAX+1;R++)E[R]=0;F=be>256?pe[256]:this.BMAX,ue=pe,ae=0,R=be;do K[ue[ae]]++,ae++;while(--R>0);if(K[0]===be){this.root=null,this.m=0,this.status=0;return}for(Q=1;Q<=this.BMAX&&K[Q]===0;Q++);for(G=Q,re<Q&&(re=Q),R=this.BMAX;R!==0&&K[R]===0;R--);for(k=R,re>R&&(re=R),H=1<<Q;Q<R;Q++,H<<=1)if((H-=K[Q])<0){this.status=2,this.m=re;return}if((H-=K[R])<0){this.status=2,this.m=re;return}for(K[R]+=H,E[1]=Q=0,ue=K,ae=1,Y=2;--R>0;)E[Y++]=Q+=ue[ae++];ue=pe,ae=0,R=0;do(Q=ue[ae++])!==0&&(f[E[Q]++]=R);while(++R<be);for(be=E[k],E[0]=R=0,ue=f,ae=0,z=-1,C=ie[0]=0,_e=null,Se=0,null;G<=k;G++)for(u=K[G];u-- >0;){for(;G>C+ie[1+z];){if(C+=ie[1+z],z++,Se=(Se=k-C)>re?re:Se,(M=1<<(Q=G-C))>u+1)for(M-=u+1,Y=G;++Q<Se&&!((M<<=1)<=K[++Y]);)M-=K[Y];for(C+Q>F&&C<F&&(Q=F-C),Se=1<<Q,ie[1+z]=Q,_e=[],Me=0;Me<Se;Me++)_e[Me]=new J;ye?ye=ye.next=new A:ye=this.root=new A,ye.next=null,ye.list=_e,l[z]=_e,z>0&&(E[z]=R,_.b=ie[z],_.e=16+Q,_.t=_e,Q=(R&(1<<C)-1)>>C-ie[z],l[z-1][Q].e=_.e,l[z-1][Q].b=_.b,l[z-1][Q].n=_.n,l[z-1][Q].t=_.t)}for(_.b=G-C,ae>=be?_.e=99:ue[ae]<xe?(_.e=ue[ae]<256?16:15,_.n=ue[ae++]):(_.e=he[ue[ae]-xe],_.n=$[ue[ae++]-xe]),M=1<<G-C,Q=R>>C;Q<Se;Q+=M)_e[Q].e=_.e,_e[Q].b=_.b,_e[Q].n=_.n,_e[Q].t=_.t;for(Q=1<<G-1;R&Q;Q>>=1)R^=Q;for(R^=Q;(R&(1<<C)-1)!==E[z];)C-=ie[z],z--}this.m=ie[1],this.status=H!==0&&k!==1?1:0}function q(){return T.length===O?-1:T[O++]&255}function fe(pe){for(;d<pe;)w|=q()<<d,d+=8}function ee(pe){return w&V[pe]}function ge(pe){w>>=pe,d-=pe}function j(pe,be,xe){var $,he,re;if(xe===0)return 0;for(re=0;;){for(fe(B),he=S.list[ee(B)],$=he.e;$>16;){if($===99)return-1;ge(he.b),$-=16,fe($),he=he.t[ee($)],$=he.e}if(ge(he.b),$===16){if(s&=r-1,pe[be+re++]=o[s++]=he.n,re===xe)return xe;continue}if($===15)break;for(fe($),y=he.n+ee($),ge($),fe(I),he=D.list[ee(I)],$=he.e;$>16;){if($===99)return-1;ge(he.b),$-=16,fe($),he=he.t[ee($)],$=he.e}for(ge(he.b),fe($),x=s-he.n-ee($),ge($);y>0&&re<xe;)y--,x&=r-1,s&=r-1,pe[be+re++]=o[s++]=o[x++];if(re===xe)return xe}return g=-1,re}function U(pe,be,xe){var $;if($=d&7,ge($),fe(16),$=ee(16),ge(16),fe(16),$!==(~w&65535))return-1;for(ge(16),y=$,$=0;y>0&&$<xe;)y--,s&=r-1,fe(8),pe[be+$++]=o[s++]=ee(8),ge(8);return y===0&&(g=-1),$}function ve(pe,be,xe){if(!c){var $,he=[],re;for($=0;$<144;$++)he[$]=8;for(null;$<256;$++)he[$]=9;for(null;$<280;$++)he[$]=7;for(null;$<288;$++)he[$]=8;if(b=7,re=new oe(he,288,257,W,Z,b),re.status!==0)return console.error("HufBuild error: "+re.status),-1;for(c=re.root,b=re.m,$=0;$<30;$++)he[$]=5;if(v=5,re=new oe(he,30,0,se,P,v),re.status>1)return c=null,console.error("HufBuild error: "+re.status),-1;m=re.root,v=re.m}return S=c,D=m,B=b,I=v,j(pe,be,xe)}function de(pe,be,xe){var $,he,re,u,K,F,M,k,z=[],R;for($=0;$<286+30;$++)z[$]=0;if(fe(5),M=257+ee(5),ge(5),fe(5),k=1+ee(5),ge(5),fe(4),F=4+ee(4),ge(4),M>286||k>30)return-1;for(he=0;he<F;he++)fe(3),z[X[he]]=ee(3),ge(3);for(null;he<19;he++)z[X[he]]=0;if(B=7,R=new oe(z,19,19,null,null,B),R.status!==0)return-1;for(S=R.root,B=R.m,u=M+k,$=re=0;$<u;)if(fe(B),K=S.list[ee(B)],he=K.b,ge(he),he=K.n,he<16)z[$++]=re=he;else if(he===16){if(fe(2),he=3+ee(2),ge(2),$+he>u)return-1;for(;he-- >0;)z[$++]=re}else if(he===17){if(fe(3),he=3+ee(3),ge(3),$+he>u)return-1;for(;he-- >0;)z[$++]=0;re=0}else{if(fe(7),he=11+ee(7),ge(7),$+he>u)return-1;for(;he-- >0;)z[$++]=0;re=0}if(B=a,R=new oe(z,M,257,W,Z,B),B===0&&(R.status=1),R.status!==0&&R.status!==1)return-1;for(S=R.root,B=R.m,$=0;$<k;$++)z[$]=z[$+M];return I=i,R=new oe(z,k,0,se,P,I),D=R.root,I=R.m,I===0&&M>257||R.status!==0?-1:j(pe,be,xe)}function te(){o||(o=[]),s=0,w=0,d=0,g=-1,p=!1,y=x=0,S=null}function Te(pe,be,xe){var $,he;for($=0;$<xe;){if(p&&g===-1)return $;if(y>0){if(g!==e)for(;y>0&&$<xe;)y--,x&=r-1,s&=r-1,pe[be+$++]=o[s++]=o[x++];else{for(;y>0&&$<xe;)y--,s&=r-1,fe(8),pe[be+$++]=o[s++]=ee(8),ge(8);y===0&&(g=-1)}if($===xe)return $}if(g===-1){if(p)break;fe(1),ee(1)!==0&&(p=!0),ge(1),fe(2),g=ee(2),ge(2),S=null,y=0}switch(g){case e:he=U(pe,be+$,xe-$);break;case t:S?he=j(pe,be+$,xe-$):he=ve(pe,be+$,xe-$);break;case n:S?he=j(pe,be+$,xe-$):he=de(pe,be+$,xe-$);break;default:he=-1;break}if(he===-1)return p?0:-1;$+=he}return $}function Oe(pe){var be=[],xe;te(),T=pe,O=0;do xe=Te(be,be.length,1024);while(xe>0);return T=null,be}Xn.exports=Oe})();var Io=Xn.exports,Lr={exports:{}};(function(){var r=32768,e=0,t=1,n=2,a=6,i=1024*8,o=2*r,s=3,c=258,m=8192,b=15,v=m,w=1<<b,d=w-1,g=r-1,p=0,y=4096,x=c+s+1,S=r-x,D=1,B=15,I=7,T=29,O=256,V=256,W=O+1+T,Z=30,se=19,P=16,X=17,A=18,J=2*W+1,oe=parseInt((b+s-1)/s,10),q,fe,ee,ge,j=null,U,ve,de,te,Te,Oe,pe,be,xe,$,he,re,u,K,F,M,k,z,R,Q,G,ie,ue,ae,_e,_,l,f,C,E,Y,H,Se,Me,ye,L,ce,Be,Ee,Re,Ge,je,Lt,tt,vt,Je,He,lt,et,at,ct,Gr;function Et(){this.fc=0,this.dl=0}function Vr(){this.dyn_tree=null,this.static_tree=null,this.extra_bits=null,this.extra_base=0,this.elems=0,this.max_length=0,this.max_code=0}function it(N,ne,we,le){this.good_length=N,this.max_lazy=ne,this.nice_length=we,this.max_chain=le}function Dl(){this.next=null,this.len=0,this.ptr=[],this.off=0}var Wr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Ot=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Bl=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],oa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rr=[new it(0,0,0,0),new it(4,4,8,4),new it(4,5,16,8),new it(4,6,32,32),new it(4,4,16,16),new it(8,16,32,32),new it(8,16,128,128),new it(8,32,128,256),new it(32,128,258,1024),new it(32,258,258,4096)];function Il(N){var ne;if(N?N<1?N=1:N>9&&(N=9):N=a,ue=N,ge=!1,R=!1,j===null){for(q=fe=ee=null,j=[],te=[],Te=[],Oe=[],pe=[],_=[],ne=0;ne<J;ne++)_[ne]=new Et;for(l=[],ne=0;ne<2*Z+1;ne++)l[ne]=new Et;for(f=[],ne=0;ne<W+2;ne++)f[ne]=new Et;for(C=[],ne=0;ne<Z;ne++)C[ne]=new Et;for(E=[],ne=0;ne<2*se+1;ne++)E[ne]=new Et;Y=new Vr,H=new Vr,Se=new Vr,Me=[],ye=[],Be=[],Ee=[],Re=[],Ge=[],je=[],Lt=[]}}function Pl(N){N.next=q,q=N}function Tl(){var N;return q!==null?(N=q,q=q.next):N=new Dl,N.next=null,N.len=N.off=0,N}function la(N){return pe[r+N]}function ca(N,ne){return pe[r+N]=ne}function nr(N){j[ve+U++]=N,ve+U===i&&Gl()}function ar(N){N&=65535,ve+U<i-2?(j[ve+U++]=N&255,j[ve+U++]=N>>>8):(nr(N&255),nr(N>>>8))}function ir(){he=(he<<oe^te[k+s-1]&255)&d,re=la(he),pe[k&g]=re,ca(he,k)}function ft(N,ne){qe(ne[N].fc,ne[N].dl)}function fa(N){return(N<256?Re[N]:Re[256+(N>>7)])&255}function ua(N,ne,we){return N[ne].fc<N[we].fc||N[ne].fc===N[we].fc&&Be[ne]<=Be[we]}function ha(N,ne,we){var le;for(le=0;le<we&&Gr<ct.length;le++)N[ne+le]=ct[Gr++]&255;return le}function Ll(){var N;for(N=0;N<w;N++)pe[r+N]=0;if(ie=rr[ue].max_lazy,ae=rr[ue].good_length,_e=rr[ue].nice_length,G=rr[ue].max_chain,k=0,$=0,Q=ha(te,0,2*r),Q<=0){R=!0,Q=0;return}for(R=!1;Q<x&&!R;)Qr();for(he=0,N=0;N<s-1;N++)he=(he<<oe^te[N]&255)&d}function da(N){var ne=G,we=k,le,me,ke=M,Le=k>S?k-S:p,Fe=k+c,Ie=te[we+ke-1],Ye=te[we+ke],Ne,pt;M>=ae&&(ne>>=2);do if(le=N,!(te[le+ke]!==Ye||te[le+ke-1]!==Ie||te[le]!==te[we]||te[++le]!==te[we+1])){for(we+=2,le++;we<Fe;){for(pt=!1,Ne=0;Ne<8;Ne+=1)if(we+=1,le+=1,te[we]!==te[le]){pt=!0;break}if(pt)break}if(me=c-(Fe-we),we=Fe-c,me>ke){if(z=N,ke=me,me>=_e)break;Ie=te[we+ke-1],Ye=te[we+ke]}}while((N=pe[N&g])>Le&&--ne!==0);return ke}function Qr(){var N,ne,we=o-Q-k;if(we===-1)we--;else if(k>=r+S){for(N=0;N<r;N++)te[N]=te[N+r];for(z-=r,k-=r,$-=r,N=0;N<w;N++)ne=la(N),ca(N,ne>=r?ne-r:p);for(N=0;N<r;N++)ne=pe[N],pe[N]=ne>=r?ne-r:p;we+=r}R||(N=ha(te,k+Q,we),N<=0?R=!0:Q+=N)}function El(){for(;Q!==0&&fe===null;){var N;if(ir(),re!==p&&k-re<=S&&(F=da(re),F>Q&&(F=Q)),F>=s)if(N=zt(k-z,F-s),Q-=F,F<=ie){F--;do k++,ir();while(--F!==0);k++}else k+=F,F=0,he=te[k]&255,he=(he<<oe^te[k+1]&255)&d;else N=zt(0,te[k]&255),Q--,k++;for(N&&(sr(0),$=k);Q<x&&!R;)Qr()}}function Ol(){for(;Q!==0&&fe===null;){if(ir(),M=F,u=z,F=s-1,re!==p&&M<ie&&k-re<=S&&(F=da(re),F>Q&&(F=Q),F===s&&k-z>y&&F--),M>=s&&F<=M){var N;N=zt(k-1-u,M-s),Q-=M-1,M-=2;do k++,ir();while(--M!==0);K=!1,F=s-1,k++,N&&(sr(0),$=k)}else K?(zt(0,te[k-1]&255)&&(sr(0),$=k),k++,Q--):(K=!0,k++,Q--);for(;Q<x&&!R;)Qr()}}function zl(){R||(be=0,xe=0,Nl(),Ll(),fe=null,U=0,ve=0,ue<=3?(M=s-1,F=0):(F=s-1,K=!1),de=!1)}function Fl(N,ne,we){var le;return!ge&&(zl(),ge=!0,Q===0)?(de=!0,0):(le=pa(N,ne,we),le===we?we:de?le:(ue<=3?El():Ol(),Q===0&&(K&&zt(0,te[k-1]&255),sr(1),de=!0),le+pa(N,le+ne,we-le)))}function pa(N,ne,we){var le,me,ke;for(le=0;fe!==null&&le<we;){for(me=we-le,me>fe.len&&(me=fe.len),ke=0;ke<me;ke++)N[ne+le+ke]=fe.ptr[fe.off+ke];if(fe.off+=me,fe.len-=me,le+=me,fe.len===0){var Le;Le=fe,fe=fe.next,Pl(Le)}}if(le===we)return le;if(ve<U){for(me=we-le,me>U-ve&&(me=U-ve),ke=0;ke<me;ke++)N[ne+le+ke]=j[ve+ke];ve+=me,le+=me,U===ve&&(U=ve=0)}return le}function Nl(){var N,ne,we,le,me;if(C[0].dl===0){for(Y.dyn_tree=_,Y.static_tree=f,Y.extra_bits=Wr,Y.extra_base=O+1,Y.elems=W,Y.max_length=B,Y.max_code=0,H.dyn_tree=l,H.static_tree=C,H.extra_bits=Ot,H.extra_base=0,H.elems=Z,H.max_length=B,H.max_code=0,Se.dyn_tree=E,Se.static_tree=null,Se.extra_bits=Bl,Se.extra_base=0,Se.elems=se,Se.max_length=I,Se.max_code=0,we=0,le=0;le<T-1;le++)for(Ge[le]=we,N=0;N<1<<Wr[le];N++)Ee[we++]=le;for(Ee[we-1]=le,me=0,le=0;le<16;le++)for(je[le]=me,N=0;N<1<<Ot[le];N++)Re[me++]=le;for(me>>=7;le<Z;le++)for(je[le]=me<<7,N=0;N<1<<Ot[le]-7;N++)Re[256+me++]=le;for(ne=0;ne<=B;ne++)Me[ne]=0;for(N=0;N<=143;)f[N++].dl=8,Me[8]++;for(;N<=255;)f[N++].dl=9,Me[9]++;for(;N<=279;)f[N++].dl=7,Me[7]++;for(;N<=287;)f[N++].dl=8,Me[8]++;for(ga(f,W+1),N=0;N<Z;N++)C[N].dl=5,C[N].fc=xa(N,5);ma()}}function ma(){var N;for(N=0;N<W;N++)_[N].fc=0;for(N=0;N<Z;N++)l[N].fc=0;for(N=0;N<se;N++)E[N].fc=0;_[V].fc=1,et=at=0,tt=vt=Je=0,He=0,lt=1}function Yr(N,ne){for(var we=ye[ne],le=ne<<1;le<=L&&(le<L&&ua(N,ye[le+1],ye[le])&&le++,!ua(N,we,ye[le]));)ye[ne]=ye[le],ne=le,le<<=1;ye[ne]=we}function Ul(N){var ne=N.dyn_tree,we=N.extra_bits,le=N.extra_base,me=N.max_code,ke=N.max_length,Le=N.static_tree,Fe,Ie,Ye,Ne,pt,Hr,or=0;for(Ne=0;Ne<=B;Ne++)Me[Ne]=0;for(ne[ye[ce]].dl=0,Fe=ce+1;Fe<J;Fe++)Ie=ye[Fe],Ne=ne[ne[Ie].dl].dl+1,Ne>ke&&(Ne=ke,or++),ne[Ie].dl=Ne,!(Ie>me)&&(Me[Ne]++,pt=0,Ie>=le&&(pt=we[Ie-le]),Hr=ne[Ie].fc,et+=Hr*(Ne+pt),Le!==null&&(at+=Hr*(Le[Ie].dl+pt)));if(or!==0){do{for(Ne=ke-1;Me[Ne]===0;)Ne--;Me[Ne]--,Me[Ne+1]+=2,Me[ke]--,or-=2}while(or>0);for(Ne=ke;Ne!==0;Ne--)for(Ie=Me[Ne];Ie!==0;)Ye=ye[--Fe],!(Ye>me)&&(ne[Ye].dl!==Ne&&(et+=(Ne-ne[Ye].dl)*ne[Ye].fc,ne[Ye].fc=Ne),Ie--)}}function ga(N,ne){var we=[],le=0,me,ke;for(me=1;me<=B;me++)le=le+Me[me-1]<<1,we[me]=le;for(ke=0;ke<=ne;ke++){var Le=N[ke].dl;Le!==0&&(N[ke].fc=xa(we[Le]++,Le))}}function Xr(N){var ne=N.dyn_tree,we=N.static_tree,le=N.elems,me,ke,Le=-1,Fe=le;for(L=0,ce=J,me=0;me<le;me++)ne[me].fc!==0?(ye[++L]=Le=me,Be[me]=0):ne[me].dl=0;for(;L<2;){var Ie=ye[++L]=Le<2?++Le:0;ne[Ie].fc=1,Be[Ie]=0,et--,we!==null&&(at-=we[Ie].dl)}for(N.max_code=Le,me=L>>1;me>=1;me--)Yr(ne,me);do me=ye[D],ye[D]=ye[L--],Yr(ne,D),ke=ye[D],ye[--ce]=me,ye[--ce]=ke,ne[Fe].fc=ne[me].fc+ne[ke].fc,Be[me]>Be[ke]+1?Be[Fe]=Be[me]:Be[Fe]=Be[ke]+1,ne[me].dl=ne[ke].dl=Fe,ye[D]=Fe++,Yr(ne,D);while(L>=2);ye[--ce]=ye[D],Ul(N),ga(ne,Le)}function wa(N,ne){var we,le=-1,me,ke=N[0].dl,Le=0,Fe=7,Ie=4;for(ke===0&&(Fe=138,Ie=3),N[ne+1].dl=65535,we=0;we<=ne;we++)me=ke,ke=N[we+1].dl,!(++Le<Fe&&me===ke)&&(Le<Ie?E[me].fc+=Le:me!==0?(me!==le&&E[me].fc++,E[P].fc++):Le<=10?E[X].fc++:E[A].fc++,Le=0,le=me,ke===0?(Fe=138,Ie=3):me===ke?(Fe=6,Ie=3):(Fe=7,Ie=4))}function va(N,ne){var we,le=-1,me,ke=N[0].dl,Le=0,Fe=7,Ie=4;for(ke===0&&(Fe=138,Ie=3),we=0;we<=ne;we++)if(me=ke,ke=N[we+1].dl,!(++Le<Fe&&me===ke)){if(Le<Ie)do ft(me,E);while(--Le!==0);else me!==0?(me!==le&&(ft(me,E),Le--),ft(P,E),qe(Le-3,2)):Le<=10?(ft(X,E),qe(Le-3,3)):(ft(A,E),qe(Le-11,7));Le=0,le=me,ke===0?(Fe=138,Ie=3):me===ke?(Fe=6,Ie=3):(Fe=7,Ie=4)}}function Rl(){var N;for(wa(_,Y.max_code),wa(l,H.max_code),Xr(Se),N=se-1;N>=3&&E[oa[N]].dl===0;N--);return et+=3*(N+1)+5+5+4,N}function jl(N,ne,we){var le;for(qe(N-257,5),qe(ne-1,5),qe(we-4,4),le=0;le<we;le++)qe(E[oa[le]].dl,3);va(_,N-1),va(l,ne-1)}function sr(N){var ne,we,le,me,ke;if(me=k-$,Lt[Je]=He,Xr(Y),Xr(H),le=Rl(),ne=et+3+7>>3,we=at+3+7>>3,we<=ne&&(ne=we),me+4<=ne&&$>=0)for(qe((e<<1)+N,3),_a(),ar(me),ar(~me),ke=0;ke<me;ke++)nr(te[$+ke]);else we===ne?(qe((t<<1)+N,3),ba(f,C)):(qe((n<<1)+N,3),jl(Y.max_code+1,H.max_code+1,le+1),ba(_,l));ma(),N!==0&&_a()}function zt(N,ne){if(Oe[tt++]=ne,N===0?_[ne].fc++:(N--,_[Ee[ne]+O+1].fc++,l[fa(N)].fc++,Te[vt++]=N,He|=lt),lt<<=1,tt&7||(Lt[Je++]=He,He=0,lt=1),ue>2&&!(tt&4095)){var we=tt*8,le=k-$,me;for(me=0;me<Z;me++)we+=l[me].fc*(5+Ot[me]);if(we>>=3,vt<parseInt(tt/2,10)&&we<parseInt(le/2,10))return!0}return tt===m-1||vt===v}function ba(N,ne){var we,le,me=0,ke=0,Le=0,Fe=0,Ie,Ye;if(tt!==0)do me&7||(Fe=Lt[Le++]),le=Oe[me++]&255,Fe&1?(Ie=Ee[le],ft(Ie+O+1,N),Ye=Wr[Ie],Ye!==0&&(le-=Ge[Ie],qe(le,Ye)),we=Te[ke++],Ie=fa(we),ft(Ie,ne),Ye=Ot[Ie],Ye!==0&&(we-=je[Ie],qe(we,Ye))):ft(le,N),Fe>>=1;while(me<tt);ft(V,N)}var Kr=16;function qe(N,ne){xe>Kr-ne?(be|=N<<xe,ar(be),be=N>>Kr-xe,xe+=ne-Kr):(be|=N<<xe,xe+=ne)}function xa(N,ne){var we=0;do we|=N&1,N>>=1,we<<=1;while(--ne>0);return we>>1}function _a(){xe>8?ar(be):xe>0&&nr(be),be=0,xe=0}function Gl(){var N,ne;if(U!==0){for(N=Tl(),fe===null?fe=ee=N:ee=ee.next=N,N.len=U-ve,ne=0;ne<N.len;ne++)N.ptr[ne]=j[ve+ne];U=ve=0}}function Vl(N,ne){var we,le;ct=N,Gr=0,typeof ne>"u"&&(ne=a),Il(ne),le=[];do we=Fl(le,le.length,1024);while(we>0);return ct=null,le}Lr.exports=Vl,Lr.exports.DEFAULT_LEVEL=a})();var Po=Lr.exports;(function(){Yn.exports={inflate:Io,deflate:Po}})();var To=Yn.exports;(function(){var r=Bo,e=To,t=31,n=139,a={deflate:8},i={FTEXT:1,FHCRC:2,FEXTRA:4,FNAME:8,FCOMMENT:16},o={fat:0,amiga:1,vmz:2,unix:3,"vm/cms":4,atari:5,hpfs:6,macintosh:7,"z-system":8,cplm:9,"tops-20":10,ntfs:11,qdos:12,acorn:13,vfat:14,vms:15,beos:16,tandem:17,theos:18},s="unix",c=6;function m(B,I){I.push(B&255)}function b(B,I){I.push(B&255),I.push(B>>>8)}function v(B,I){b(B&65535,I),b(B>>>16,I)}function w(B,I){var T,O=B.length;for(T=0;T<O;T+=1)m(B.charCodeAt(T),I)}function d(B){return B.shift()}function g(B){return B.shift()|B.shift()<<8}function p(B){var I=g(B),T=g(B);return T>32768?(T-=32768,(T<<16|I)+32768*Math.pow(2,16)):T<<16|I}function y(B){for(var I=[];B[0]!==0;)I.push(String.fromCharCode(B.shift()));return B.shift(),I.join("")}function x(B,I){var T,O=[];for(T=0;T<I;T+=1)O.push(B.shift());return O}function S(B,I){var T=0,O,V=[];return I||(I={}),O=I.level||c,typeof B=="string"&&(B=Array.prototype.map.call(B,function(W){return W.charCodeAt(0)})),m(t,V),m(n,V),m(a.deflate,V),I.name&&(T|=i.FNAME),m(T,V),v(I.timestamp||parseInt(Date.now()/1e3,10),V),m(O===1?4:O===9?2:0,V),m(o[s],V),I.name&&(w(I.name.substring(I.name.lastIndexOf("/")+1),V),m(0,V)),e.deflate(B,O).forEach(function(W){m(W,V)}),v(parseInt(r(B),16),V),v(B.length,V),V}function D(B,I){var T=Array.prototype.slice.call(B,0),O,V,W,Z,se,P;if(d(T)!==t||d(T)!==n)throw"Not a GZIP file";if(O=d(T),O=Object.keys(a).some(function(X){return V=X,a[X]===O}),!O)throw"Unsupported compression method";if(W=d(T),p(T),d(T),O=d(T),Object.keys(o).some(function(X){if(o[X]===O)return!0}),W&i.FEXTRA&&(O=g(T),x(T,O)),W&i.FNAME&&y(T),W&i.FCOMMENT&&y(T),W&i.FHCRC&&g(T),V==="deflate"&&(P=e.inflate(T.splice(0,T.length-8))),W&i.FTEXT&&(P=Array.prototype.map.call(P,function(X){return String.fromCharCode(X)}).join("")),Z=p(T),Z!==parseInt(r(P),16))throw"Checksum does not match";if(se=p(T),se!==P.length)throw"Size of decompressed file not correct";return P}Qn.exports={zip:S,unzip:D,get DEFAULT_LEVEL(){return c}}})();var Lo=Qn.exports,De;(function(r){r[r.End=0]="End",r[r.Byte=1]="Byte",r[r.Short=2]="Short",r[r.Int=3]="Int",r[r.Long=4]="Long",r[r.Float=5]="Float",r[r.Double=6]="Double",r[r.ByteArray=7]="ByteArray",r[r.String=8]="String",r[r.List=9]="List",r[r.Compound=10]="Compound",r[r.IntArray=11]="IntArray",r[r.LongArray=12]="LongArray"})(De||(De={}));class Kn{constructor(e){this.value=e}valueOf(){return this.value}}class Hn{constructor(e){this.value=e}valueOf(){return this.value}}class Zn{constructor(e){this.value=e}valueOf(){return this.value}}class Jn{constructor(e){this.value=e}valueOf(){return this.value}}function Kt(r){if(r instanceof Kn)return De.Byte;if(r instanceof Hn)return De.Short;if(r instanceof Zn)return De.Int;if(typeof r=="bigint")return De.Long;if(r instanceof Jn)return De.Float;if(typeof r=="number")return De.Double;if(r instanceof Buffer||r instanceof Int8Array)return De.ByteArray;if(typeof r=="string")return De.String;if(r instanceof Array)return De.List;if(r.constructor==Object||r instanceof Map)return De.Compound;if(r instanceof Int32Array)return De.IntArray;if(r instanceof BigInt64Array)return De.LongArray;throw new Error("Invalid tag value")}function Eo(r,e={}){const t=r.readUInt8(0);if(t==De.End)return{name:null,value:null,length:1};let n=null,a=1;if(!e.unnamed){const o=r.readUInt16BE(a);a+=2,n=r.toString("utf-8",a,a+=o)}const i=Er(t,r,a,!!e.useMaps);return{name:n,value:i.value,length:i.offset}}function Er(r,e,t,n){let a;switch(r){case De.Byte:a=new Kn(e.readInt8((t+=1)-1));break;case De.Short:a=new Hn(e.readInt16BE((t+=2)-2));break;case De.Int:a=new Zn(e.readInt32BE((t+=4)-4));break;case De.Long:a=new DataView(e.buffer,e.byteOffset,e.byteLength).getBigInt64(t),t+=8;break;case De.Float:a=new Jn(e.readFloatBE((t+=4)-4));break;case De.Double:a=e.readDoubleBE((t+=8)-8);break;case De.ByteArray:{const i=e.readUInt32BE(t);t+=4,a=e.slice(t,t+=i);break}case De.String:{const i=e.readUInt16BE(t);a=(t+=2,e.toString("utf-8",t,t+=i));break}case De.List:{const i=e.readUInt8(t),o=e.readUInt32BE(t+1);t+=5;const s=[];for(let c=0;c<o;c++)({value:a,offset:t}=Er(i,e,t,n)),s.push(a);a=s;break}case De.Compound:{const i=n?new Map:{};for(;;){const o=e.readUInt8(t);if(t+=1,o==De.End)break;const s=e.readUInt16BE(t);t+=2;const c=e.toString("utf-8",t,t+=s);({value:a,offset:t}=Er(o,e,t,n)),n?i.set(c,a):i[c]=a}a=i;break}case De.IntArray:{const i=e.readUInt32BE(t);t+=4;const o=a=new Int32Array(i);for(let s=0;s<i;s++)o[s]=e.readInt32BE(t+s*4);t+=o.buffer.byteLength;break}case De.LongArray:{const i=e.readUInt32BE(t);t+=4;const o=new DataView(e.buffer,e.byteOffset,e.byteLength),s=a=new BigInt64Array(i);for(let c=0;c<i;c++)s[c]=o.getBigInt64(t+c*8);t+=s.buffer.byteLength;break}default:throw new Error(`Tag type ${r} not implemented`)}return{value:a,offset:t}}const Oo=["acacia_button","acacia_door","acacia_fence","acacia_fence_gate","acacia_leaves","acacia_pressure_plate","acacia_sapling","acacia_sign","acacia_slab","acacia_stairs","acacia_trapdoor","acacia_wall_sign","activator_rail","air","allium","amethyst_cluster","andesite_slab","andesite_stairs","andesite_wall","anvil","attached_melon_stem","attached_pumpkin_stem","azalea","azalea_leaves","azure_bluet","bamboo","bamboo_sapling","beacon","beetroots","bell","big_dripleaf","big_dripleaf_stem","birch_button","birch_door","birch_fence","birch_fence_gate","birch_leaves","birch_pressure_plate","birch_sapling","birch_sign","birch_slab","birch_stairs","birch_trapdoor","birch_wall_sign","black_banner","black_bed","black_candle","black_candle_cake","black_carpet","black_stained_glass","black_stained_glass_pane","black_wall_banner","blackstone_slab","blackstone_stairs","blackstone_wall","blue_banner","blue_bed","blue_candle","blue_candle_cake","blue_carpet","blue_orchid","blue_stained_glass","blue_stained_glass_pane","blue_wall_banner","brain_coral","brain_coral_fan","brain_coral_wall_fan","brewing_stand","brick_slab","brick_stairs","brick_wall","brown_banner","brown_bed","brown_candle","brown_candle_cake","brown_carpet","brown_mushroom","brown_stained_glass","brown_stained_glass_pane","brown_wall_banner","bubble_column","bubble_coral","bubble_coral_fan","bubble_coral_wall_fan","cactus","cake","campfire","candle","candle_cake","carrots","cave_air","cave_vines","cave_vines_plant","chain","chest","chipped_anvil","chorus_flower","chorus_plant","cobbled_deepslate_slab","cobbled_deepslate_stairs","cobbled_deepslate_wall","cobblestone_slab","cobblestone_stairs","cobblestone_wall","cobweb","cocoa","comparator","conduit","cornflower","creeper_head","creeper_wall_head","crimson_button","crimson_door","crimson_fence","crimson_fence_gate","crimson_fungus","crimson_pressure_plate","crimson_roots","crimson_sign","crimson_slab","crimson_stairs","crimson_trapdoor","crimson_wall_sign","cut_copper_slab","cut_copper_stairs","cut_red_sandstone_slab","cut_sandstone_slab","cyan_banner","cyan_bed","cyan_candle","cyan_candle_cake","cyan_carpet","cyan_stained_glass","cyan_stained_glass_pane","cyan_wall_banner","damaged_anvil","dandelion","dark_oak_button","dark_oak_door","dark_oak_fence","dark_oak_fence_gate","dark_oak_leaves","dark_oak_pressure_plate","dark_oak_sapling","dark_oak_sign","dark_oak_slab","dark_oak_stairs","dark_oak_trapdoor","dark_oak_wall_sign","dark_prismarine_slab","dark_prismarine_stairs","daylight_detector","dead_brain_coral","dead_brain_coral_fan","dead_brain_coral_wall_fan","dead_bubble_coral","dead_bubble_coral_fan","dead_bubble_coral_wall_fan","dead_bush","dead_fire_coral","dead_fire_coral_fan","dead_fire_coral_wall_fan","dead_horn_coral","dead_horn_coral_fan","dead_horn_coral_wall_fan","dead_tube_coral","dead_tube_coral_fan","dead_tube_coral_wall_fan","deepslate_brick_slab","deepslate_brick_stairs","deepslate_brick_wall","deepslate_tile_slab","deepslate_tile_stairs","deepslate_tile_wall","detector_rail","diorite_slab","diorite_stairs","diorite_wall","dirt_path","dragon_egg","dragon_head","dragon_wall_head","enchanting_table","end_gateway","end_portal","end_portal_frame","end_rod","end_stone_brick_slab","end_stone_brick_stairs","end_stone_brick_wall","ender_chest","exposed_cut_copper_slab","exposed_cut_copper_stairs","farmland","fern","fire","fire_coral","fire_coral_fan","fire_coral_wall_fan","flower_pot","flowering_azalea","flowering_azalea_leaves","frosted_ice","glass","glass_pane","glow_lichen","glowstone","granite_slab","granite_stairs","granite_wall","grass","gray_banner","gray_bed","gray_candle","gray_candle_cake","gray_carpet","gray_stained_glass","gray_stained_glass_pane","gray_wall_banner","green_banner","green_bed","green_candle","green_candle_cake","green_carpet","green_stained_glass","green_stained_glass_pane","green_wall_banner","grindstone","hanging_roots","heavy_weighted_pressure_plate","honey_block","horn_coral","horn_coral_fan","horn_coral_wall_fan","ice","iron_bars","iron_door","iron_trapdoor","jungle_button","jungle_door","jungle_fence","jungle_fence_gate","jungle_leaves","jungle_pressure_plate","jungle_sapling","jungle_sign","jungle_slab","jungle_stairs","jungle_trapdoor","jungle_wall_sign","kelp","kelp_plant","ladder","lantern","large_amethyst_bud","large_fern","lava","lectern","lever","light","light_blue_banner","light_blue_bed","light_blue_candle","light_blue_candle_cake","light_blue_carpet","light_blue_stained_glass","light_blue_stained_glass_pane","light_blue_wall_banner","light_gray_banner","light_gray_bed","light_gray_candle","light_gray_candle_cake","light_gray_carpet","light_gray_stained_glass","light_gray_stained_glass_pane","light_gray_wall_banner","light_weighted_pressure_plate","lightning_rod","lilac","lily_of_the_valley","lily_pad","lime_banner","lime_bed","lime_candle","lime_candle_cake","lime_carpet","lime_stained_glass","lime_stained_glass_pane","lime_wall_banner","magenta_banner","magenta_bed","magenta_candle","magenta_candle_cake","magenta_carpet","magenta_stained_glass","magenta_stained_glass_pane","magenta_wall_banner","medium_amethyst_bud","melon_stem","moss_carpet","mossy_cobblestone_slab","mossy_cobblestone_stairs","mossy_cobblestone_wall","mossy_stone_brick_slab","mossy_stone_brick_stairs","mossy_stone_brick_wall","moving_piston","nether_brick_fence","nether_brick_slab","nether_brick_stairs","nether_brick_wall","nether_portal","nether_sprouts","nether_wart","oak_button","oak_door","oak_fence","oak_fence_gate","oak_leaves","oak_pressure_plate","oak_sapling","oak_sign","oak_slab","oak_stairs","oak_trapdoor","oak_wall_sign","orange_banner","orange_bed","orange_candle","orange_candle_cake","orange_carpet","orange_stained_glass","orange_stained_glass_pane","orange_tulip","orange_wall_banner","oxeye_daisy","oxidized_cut_copper_slab","oxidized_cut_copper_stairs","peony","petrified_oak_slab","pink_banner","pink_bed","pink_candle","pink_candle_cake","pink_carpet","pink_stained_glass","pink_stained_glass_pane","pink_tulip","pink_wall_banner","piston_head","player_head","player_wall_head","pointed_dripstone","polished_andesite_slab","polished_andesite_stairs","polished_blackstone_brick_slab","polished_blackstone_brick_stairs","polished_blackstone_brick_wall","polished_blackstone_button","polished_blackstone_pressure_plate","polished_blackstone_slab","polished_blackstone_stairs","polished_blackstone_wall","polished_deepslate_slab","polished_deepslate_stairs","polished_deepslate_wall","polished_diorite_slab","polished_diorite_stairs","polished_granite_slab","polished_granite_stairs","poppy","potatoes","potted_acacia_sapling","potted_allium","potted_azalea_bush","potted_azure_bluet","potted_bamboo","potted_birch_sapling","potted_blue_orchid","potted_brown_mushroom","potted_cactus","potted_cornflower","potted_crimson_fungus","potted_crimson_roots","potted_dandelion","potted_dark_oak_sapling","potted_dead_bush","potted_fern","potted_flowering_azalea_bush","potted_jungle_sapling","potted_lily_of_the_valley","potted_oak_sapling","potted_orange_tulip","potted_oxeye_daisy","potted_pink_tulip","potted_poppy","potted_red_mushroom","potted_red_tulip","potted_spruce_sapling","potted_warped_fungus","potted_warped_roots","potted_white_tulip","potted_wither_rose","powder_snow","powered_rail","prismarine_brick_slab","prismarine_brick_stairs","prismarine_slab","prismarine_stairs","prismarine_wall","pumpkin_stem","purple_banner","purple_bed","purple_candle","purple_candle_cake","purple_carpet","purple_stained_glass","purple_stained_glass_pane","purple_wall_banner","purpur_slab","purpur_stairs","quartz_slab","quartz_stairs","rail","red_banner","red_bed","red_candle","red_candle_cake","red_carpet","red_mushroom","red_nether_brick_slab","red_nether_brick_stairs","red_nether_brick_wall","red_sandstone_slab","red_sandstone_stairs","red_sandstone_wall","red_stained_glass","red_stained_glass_pane","red_tulip","red_wall_banner","redstone_torch","redstone_wall_torch","redstone_wire","repeater","rose_bush","sandstone_slab","sandstone_stairs","sandstone_wall","scaffolding","sculk_sensor","sea_lantern","sea_pickle","seagrass","skeleton_skull","skeleton_wall_skull","small_amethyst_bud","small_dripleaf","smooth_quartz_slab","smooth_quartz_stairs","smooth_red_sandstone_slab","smooth_red_sandstone_stairs","smooth_sandstone_slab","smooth_sandstone_stairs","smooth_stone_slab","snow","soul_campfire","soul_fire","soul_lantern","soul_sand","soul_torch","soul_wall_torch","spore_blossom","spruce_button","spruce_door","spruce_fence","spruce_fence_gate","spruce_leaves","spruce_pressure_plate","spruce_sapling","spruce_sign","spruce_slab","spruce_stairs","spruce_trapdoor","spruce_wall_sign","stone_brick_slab","stone_brick_stairs","stone_brick_wall","stone_button","stone_pressure_plate","stone_slab","stone_stairs","stonecutter","structure_void","sugar_cane","sunflower","sweet_berry_bush","tall_grass","tall_seagrass","tinted_glass","tnt","torch","trapped_chest","tripwire","tripwire_hook","tube_coral","tube_coral_fan","tube_coral_wall_fan","turtle_egg","twisting_vines","twisting_vines_plant","vine","void_air","wall_torch","warped_button","warped_door","warped_fence","warped_fence_gate","warped_fungus","warped_pressure_plate","warped_roots","warped_sign","warped_slab","warped_stairs","warped_trapdoor","warped_wall_sign","water","waxed_cut_copper_slab","waxed_cut_copper_stairs","waxed_exposed_cut_copper_slab","waxed_exposed_cut_copper_stairs","waxed_oxidized_cut_copper_slab","waxed_oxidized_cut_copper_stairs","waxed_weathered_cut_copper_slab","waxed_weathered_cut_copper_stairs","weathered_cut_copper_slab","weathered_cut_copper_stairs","weeping_vines","weeping_vines_plant","wheat","white_banner","white_bed","white_candle","white_candle_cake","white_carpet","white_stained_glass","white_stained_glass_pane","white_tulip","white_wall_banner","wither_rose","wither_skeleton_skull","wither_skeleton_wall_skull","yellow_banner","yellow_bed","yellow_candle","yellow_candle_cake","yellow_carpet","yellow_stained_glass","yellow_stained_glass_pane","yellow_wall_banner","zombie_head","zombie_wall_head"],zo=["acacia_button","acacia_door","acacia_leaves","acacia_sapling","acacia_trapdoor","activator_rail","air","allium","attached_melon_stem","attached_pumpkin_stem","azalea","azalea_leaves","azure_bluet","beacon","beetroots","big_dripleaf","big_dripleaf_stem","birch_button","birch_door","birch_leaves","birch_sapling","birch_trapdoor","black_candle","black_carpet","black_stained_glass","black_stained_glass_pane","blue_candle","blue_carpet","blue_orchid","blue_stained_glass","blue_stained_glass_pane","brain_coral","brain_coral_fan","brain_coral_wall_fan","brown_candle","brown_carpet","brown_mushroom","brown_stained_glass","brown_stained_glass_pane","bubble_column","bubble_coral","bubble_coral_fan","bubble_coral_wall_fan","cactus","candle","carrots","cave_air","cave_vines","cave_vines_plant","chorus_flower","chorus_plant","cobweb","cocoa","comparator","conduit","cornflower","creeper_head","creeper_wall_head","crimson_button","crimson_door","crimson_fungus","crimson_roots","crimson_trapdoor","cyan_candle","cyan_carpet","cyan_stained_glass","cyan_stained_glass_pane","dandelion","dark_oak_button","dark_oak_door","dark_oak_leaves","dark_oak_sapling","dark_oak_trapdoor","dead_bush","detector_rail","dragon_head","dragon_wall_head","end_gateway","end_portal","end_rod","fern","fire","fire_coral","fire_coral_fan","fire_coral_wall_fan","flower_pot","flowering_azalea","flowering_azalea_leaves","frosted_ice","glass","glass_pane","glow_lichen","glowstone","grass","gray_candle","gray_carpet","gray_stained_glass","gray_stained_glass_pane","green_candle","green_carpet","green_stained_glass","green_stained_glass_pane","hanging_roots","horn_coral","horn_coral_fan","horn_coral_wall_fan","hopper","ice","iron_door","iron_trapdoor","jungle_button","jungle_door","jungle_leaves","jungle_sapling","jungle_trapdoor","kelp","kelp_plant","ladder","large_fern","lava","lever","light","light_blue_candle","light_blue_carpet","light_blue_stained_glass","light_blue_stained_glass_pane","light_gray_candle","light_gray_carpet","light_gray_stained_glass","light_gray_stained_glass_pane","lilac","lily_of_the_valley","lily_pad","lime_candle","lime_carpet","lime_stained_glass","lime_stained_glass_pane","magenta_candle","magenta_carpet","magenta_stained_glass","magenta_stained_glass_pane","melon_stem","moss_carpet","nether_portal","nether_sprouts","nether_wart","oak_button","oak_door","oak_leaves","oak_sapling","oak_trapdoor","orange_candle","orange_carpet","orange_stained_glass","orange_stained_glass_pane","orange_tulip","oxeye_daisy","peony","pink_candle","pink_carpet","pink_stained_glass","pink_stained_glass_pane","pink_tulip","player_head","player_wall_head","polished_blackstone_button","poppy","potatoes","potted_acacia_sapling","potted_allium","potted_azalea_bush","potted_azure_bluet","potted_bamboo","potted_birch_sapling","potted_blue_orchid","potted_brown_mushroom","potted_cactus","potted_cornflower","potted_crimson_fungus","potted_crimson_roots","potted_dandelion","potted_dark_oak_sapling","potted_dead_bush","potted_fern","potted_flowering_azalea_bush","potted_jungle_sapling","potted_lily_of_the_valley","potted_oak_sapling","potted_orange_tulip","potted_oxeye_daisy","potted_pink_tulip","potted_poppy","potted_red_mushroom","potted_red_tulip","potted_spruce_sapling","potted_warped_fungus","potted_warped_roots","potted_white_tulip","potted_wither_rose","powered_rail","pumpkin_stem","purple_candle","purple_carpet","purple_stained_glass","purple_stained_glass_pane","rail","red_candle","red_carpet","red_mushroom","red_stained_glass","red_stained_glass_pane","red_tulip","redstone_torch","redstone_wall_torch","redstone_wire","repeater","rose_bush","scaffolding","sea_lantern","sea_pickle","seagrass","skeleton_skull","skeleton_wall_skull","small_dripleaf","snow","soul_fire","soul_torch","soul_wall_torch","spore_blossom","spruce_button","spruce_door","spruce_leaves","spruce_sapling","spruce_trapdoor","stone_button","structure_void","sugar_cane","sunflower","sweet_berry_bush","tall_grass","tall_seagrass","tinted_glass","tnt","torch","tripwire","tripwire_hook","tube_coral","tube_coral_fan","tube_coral_wall_fan","twisting_vines","twisting_vines_plant","vine","void_air","wall_torch","warped_button","warped_door","warped_fungus","warped_roots","warped_trapdoor","water","weeping_vines","weeping_vines_plant","wheat","white_candle","white_carpet","white_stained_glass","white_stained_glass_pane","white_tulip","wither_rose","wither_skeleton_skull","wither_skeleton_wall_skull","yellow_candle","yellow_carpet","yellow_stained_glass","yellow_stained_glass_pane","zombie_head","zombie_wall_head","piston_head","sticky_piston"];var Or={},Ht={};Ht.byteLength=Uo,Ht.toByteArray=jo,Ht.fromByteArray=Wo;for(var rt=[],$e=[],Fo=typeof Uint8Array<"u"?Uint8Array:Array,zr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",St=0,No=zr.length;St<No;++St)rt[St]=zr[St],$e[zr.charCodeAt(St)]=St;$e["-".charCodeAt(0)]=62,$e["_".charCodeAt(0)]=63;function qn(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function Uo(r){var e=qn(r),t=e[0],n=e[1];return(t+n)*3/4-n}function Ro(r,e,t){return(e+t)*3/4-t}function jo(r){var e,t=qn(r),n=t[0],a=t[1],i=new Fo(Ro(r,n,a)),o=0,s=a>0?n-4:n,c;for(c=0;c<s;c+=4)e=$e[r.charCodeAt(c)]<<18|$e[r.charCodeAt(c+1)]<<12|$e[r.charCodeAt(c+2)]<<6|$e[r.charCodeAt(c+3)],i[o++]=e>>16&255,i[o++]=e>>8&255,i[o++]=e&255;return a===2&&(e=$e[r.charCodeAt(c)]<<2|$e[r.charCodeAt(c+1)]>>4,i[o++]=e&255),a===1&&(e=$e[r.charCodeAt(c)]<<10|$e[r.charCodeAt(c+1)]<<4|$e[r.charCodeAt(c+2)]>>2,i[o++]=e>>8&255,i[o++]=e&255),i}function Go(r){return rt[r>>18&63]+rt[r>>12&63]+rt[r>>6&63]+rt[r&63]}function Vo(r,e,t){for(var n,a=[],i=e;i<t;i+=3)n=(r[i]<<16&16711680)+(r[i+1]<<8&65280)+(r[i+2]&255),a.push(Go(n));return a.join("")}function Wo(r){for(var e,t=r.length,n=t%3,a=[],i=16383,o=0,s=t-n;o<s;o+=i)a.push(Vo(r,o,o+i>s?s:o+i));return n===1?(e=r[t-1],a.push(rt[e>>2]+rt[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],a.push(rt[e>>10]+rt[e>>4&63]+rt[e<<2&63]+"=")),a.join("")}var Fr={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Fr.read=function(r,e,t,n,a){var i,o,s=a*8-n-1,c=(1<<s)-1,m=c>>1,b=-7,v=t?a-1:0,w=t?-1:1,d=r[e+v];for(v+=w,i=d&(1<<-b)-1,d>>=-b,b+=s;b>0;i=i*256+r[e+v],v+=w,b-=8);for(o=i&(1<<-b)-1,i>>=-b,b+=n;b>0;o=o*256+r[e+v],v+=w,b-=8);if(i===0)i=1-m;else{if(i===c)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-m}return(d?-1:1)*o*Math.pow(2,i-n)},Fr.write=function(r,e,t,n,a,i){var o,s,c,m=i*8-a-1,b=(1<<m)-1,v=b>>1,w=a===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,g=n?1:-1,p=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=b):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+v>=1?e+=w/c:e+=w*Math.pow(2,1-v),e*c>=2&&(o++,c/=2),o+v>=b?(s=0,o=b):o+v>=1?(s=(e*c-1)*Math.pow(2,a),o=o+v):(s=e*Math.pow(2,v-1)*Math.pow(2,a),o=0));a>=8;r[t+d]=s&255,d+=g,s/=256,a-=8);for(o=o<<a|s,m+=a;m>0;r[t+d]=o&255,d+=g,o/=256,m-=8);r[t+d-g]|=p*128};/*!
960
+ vec4 noise=sampleBlueNoise(blueNoiseTexture,seed,blueNoiseRepeat,texSize);vec3 randomVec=normalize(noise.rgb*2.0-1.0);vec3 tangent=normalize(randomVec-normal*dot(randomVec,normal));vec3 bitangent=cross(normal,tangent);mat3 tbn=mat3(tangent,bitangent,normal);float occluded=0.0;float totalWeight=0.0;vec3 samplePos;float sppF=float(spp);for(float i=0.0;i<sppF;i++){vec3 sampleDirection=tbn*samples[int(i)];if(dot(sampleDirection,normal)<0.0)sampleDirection*=-1.0;float moveAmt=samplesR[int(mod(i+noise.a*sppF,sppF))];samplePos=worldPos+aoDistance*moveAmt*sampleDirection;vec4 offset=projectionViewMatrix*vec4(samplePos,1.0);offset.xyz/=offset.w;offset.xyz=offset.xyz*0.5+0.5;float sampleDepth=textureLod(depthTexture,offset.xy,0.0).x;float distSample=linearize_depth(sampleDepth,cameraNear,cameraFar);float distWorld=linearize_depth(offset.z,cameraNear,cameraFar);float rangeCheck=smoothstep(0.0,1.0,aoDistance/(aoDistance*abs(distSample-distWorld)));rangeCheck=pow(rangeCheck,distancePower);float weight=dot(sampleDirection,normal);occluded+=rangeCheck*weight*(distSample<distWorld ? 1.0 : 0.0);totalWeight+=weight;}float occ=clamp(1.0-occluded/totalWeight,0.0,1.0);gl_FragColor=vec4(normal,occ);}`;class fo extends oo{constructor(e,t){super(e,t,co)}}function uo(r){const e=[],t=Math.PI*(3-Math.sqrt(5)),n=2/r;for(let a=0;a<r;a++){const i=a*n-1+n/2,o=Math.sqrt(1-i*i),s=a*t;e.push(new h.Vector3(Math.cos(s)*o,i,Math.sin(s)*o))}return e}class Yt extends Tr{constructor(e,t,n,a={}){Yt.DefaultOptions={...Tr.DefaultOptions,spp:16,distance:1,distancePower:.25,power:2},a={...Yt.DefaultOptions,...a};const i=new fo(t,n);super(e,t,n,i,a)}makeOptionsReactive(e){super.makeOptionsReactive(e);for(const t of["spp"])Object.defineProperty(this,t,{get(){return e[t]},set(n){if(n!=null)switch(e[t]=n,t){case"spp":this.aoPass.fullscreenMaterial.defines.spp=n.toFixed(0);const a=uo(n),i=[];for(let o=0;o<n;o++)i.push((o+1)/n);this.aoPass.fullscreenMaterial.uniforms.samples={value:a},this.aoPass.fullscreenMaterial.uniforms.samplesR={value:i},this.aoPass.fullscreenMaterial.needsUpdate=!0;break}},configurable:!0});this.spp=e.spp}}class ho extends It{constructor(e=1.7){super("GammaCorrectionEffect",`
961
+ uniform float gamma;
962
+
963
+ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
964
+ vec3 color = pow(inputColor.rgb, vec3(1.0 / gamma));
965
+ outputColor = vec4(color, inputColor.a);
966
+ }
967
+ `,{blendFunction:Pe.NORMAL,uniforms:new Map([["gamma",new Ae.Uniform(e)]])})}setGamma(e){this.uniforms.get("gamma").value=e}}class po{constructor(e,t){Ce(this,"canvas");Ce(this,"renderer");Ce(this,"scene");Ce(this,"camera");Ce(this,"controls");Ce(this,"composer");Ce(this,"schematic");Ce(this,"gammaCorrectionEffect");this.canvas=e,this.renderer=new Ae.WebGLRenderer({depth:!1,canvas:this.canvas,alpha:!0}),this.gammaCorrectionEffect=new ho(1.7),this.renderer.setSize(this.canvas.clientWidth,this.canvas.clientHeight),this.scene=new Ae.Scene,this.camera=this.createCamera(),this.controls=new Sa(this.camera,this.canvas),this.composer=new vi(this.renderer),this.composer.addPass(new _t(this.scene,this.camera)),this.setupScene(t),this.setBackgroundColor("#000000",1)}addDebugCuboide(e,t,n){const a=new Ae.BoxGeometry(t.x,t.y,t.z),i=new Ae.MeshBasicMaterial({color:n}),o=new Ae.Mesh(a,i);o.position.copy(e),this.scene.add(o)}addDebugBoundingBox(e,t,n){const a=new Ae.BoxGeometry(t.x,t.y,t.z),i=new Ae.EdgesGeometry(a),o=new Ae.LineSegments(i,new Ae.LineBasicMaterial({color:n}));o.position.copy(e),this.scene.add(o)}addDebugText(e,t,n=0,a=16777215){const i=document.createElement("canvas"),o=i.getContext("2d");o&&(o.font="Bold 40px Arial",o.fillStyle="rgba("+a+", 1)",o.fillRect(0,0,o.measureText(e).width,50),o.fillStyle="rgba("+n+", 1)",o.fillText(e,0,40));const s=new Ae.CanvasTexture(i),c=new Ae.SpriteMaterial({map:s,transparent:!0}),m=new Ae.Sprite(c);m.position.copy(t),m.scale.set(5,2,1),this.scene.add(m)}getPerspectiveCamera(){const n=this.canvas.clientWidth/this.canvas.clientHeight,a=.1,i=1e3,o=new Ae.PerspectiveCamera(75,n,a,i);return o.position.set(20,3*20,20),o.lookAt(0,0,0),o}getIsometricCamera(){const e=this.canvas.clientWidth/this.canvas.clientHeight,t=20,n=new Ae.OrthographicCamera(-t*e,t*e,t,-t,1,1e3);return n.position.set(t,t,t),n}setBackgroundColor(e,t=1){this.renderer.setClearColor(e,t)}createCamera(){return this.getPerspectiveCamera()}getGridHelper(){const n=new Ae.GridHelper(100,100);return n.name="GridHelper",n}addGrid(){const e=this.getGridHelper();this.scene.add(e)}removeGrid(){const e=this.scene.getObjectByName("GridHelper");e&&this.scene.remove(e)}toggleGrid(){this.scene.getObjectByName("GridHelper")?this.removeGrid():this.addGrid()}setupScene(e){this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=Ae.PCFSoftShadowMap,this.createLights();const t=new Yt(this.composer,this.camera,this.scene),n=new fs,a=new ms(this.camera,t,n,this.gammaCorrectionEffect);this.composer.addPass(a)}updateGammaCorrection(e){this.gammaCorrectionEffect.setGamma(e)}createLights(){const e=new Ae.AmbientLight(16777215,.5);e.intensity=.9,this.scene.add(e);const t=new Ae.DirectionalLight(16777215,.5);t.position.set(20,20,-20),t.intensity=1,t.castShadow=!0,t.shadow.bias=-.01,this.scene.add(t)}render(){this.composer.render()}animate(){requestAnimationFrame(()=>this.animate()),this.controls.update(),this.render()}takeScreenshot(e,t){const n=this.canvas.clientWidth,a=this.canvas.clientHeight,i=this.camera.clone();if(i instanceof Ae.OrthographicCamera){const s=e/t;i.left=-s,i.right=s,i.top=1,i.bottom=-1}else i.aspect=e/t;i.updateProjectionMatrix(),this.renderer.setSize(e,t),this.composer.render();const o=this.renderer.domElement.toDataURL();return this.renderer.setSize(n,a),this.composer.render(),o}takeRotationWebM(e,t,n,a,i,o,s,c=360){const m=c*Math.PI/180,b=Math.atan2(this.camera.position.z-n.z,this.camera.position.x-n.x),v=this.canvas.clientWidth,w=this.canvas.clientHeight;this.renderer.setSize(e,t);const d=Math.floor(o*s),g=m/d,p=new Ba({frameRate:o,quality:1,transparent:!0});return new Promise((y,x)=>{const S=D=>{requestAnimationFrame(()=>{const B=g*D;this.camera.position.set(n.x+a*Math.cos(B+b),n.y+a*Math.sin(i),n.z+a*Math.sin(B+b)),this.camera.lookAt(n),this.composer.render();const I=this.canvas.getContext("2d");I==null||I.clearRect(0,0,e,t),I==null||I.drawImage(this.renderer.domElement,0,0),p.addFrame(this.canvas),D<d?S(D+1):(this.renderer.setSize(v,w),this.composer.render(),p.complete().then(T=>{y(T)}).catch(x))})};S(0)})}exportUsdz(){return new Qa().parse(this.scene)}updateZoom(e){this.camera.zoom=e,this.camera.updateProjectionMatrix()}}var mo=function(e){return go(e)&&!wo(e)};function go(r){return!!r&&typeof r=="object"}function wo(r){var e=Object.prototype.toString.call(r);return e==="[object RegExp]"||e==="[object Date]"||xo(r)}var vo=typeof Symbol=="function"&&Symbol.for,bo=vo?Symbol.for("react.element"):60103;function xo(r){return r.$$typeof===bo}function _o(r){return Array.isArray(r)?[]:{}}function Tt(r,e){return e.clone!==!1&&e.isMergeableObject(r)?yt(_o(r),r,e):r}function Ao(r,e,t){return r.concat(e).map(function(n){return Tt(n,t)})}function yo(r,e){if(!e.customMerge)return yt;var t=e.customMerge(r);return typeof t=="function"?t:yt}function So(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(e){return Object.propertyIsEnumerable.call(r,e)}):[]}function Vn(r){return Object.keys(r).concat(So(r))}function Wn(r,e){try{return e in r}catch{return!1}}function ko(r,e){return Wn(r,e)&&!(Object.hasOwnProperty.call(r,e)&&Object.propertyIsEnumerable.call(r,e))}function Co(r,e,t){var n={};return t.isMergeableObject(r)&&Vn(r).forEach(function(a){n[a]=Tt(r[a],t)}),Vn(e).forEach(function(a){ko(r,a)||(Wn(r,a)&&t.isMergeableObject(e[a])?n[a]=yo(a,t)(r[a],e[a],t):n[a]=Tt(e[a],t))}),n}function yt(r,e,t){t=t||{},t.arrayMerge=t.arrayMerge||Ao,t.isMergeableObject=t.isMergeableObject||mo,t.cloneUnlessOtherwiseSpecified=Tt;var n=Array.isArray(e),a=Array.isArray(r),i=n===a;return i?n?t.arrayMerge(r,e,t):Co(r,e,t):Tt(e,t)}yt.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(n,a){return yt(n,a,t)},{})};var Mo=yt,Do=Mo;const Bo=cr(Do);var Qn={exports:{}},Xt={exports:{}};(function(){var r=[],e=3988292384;function t(){var o,s,c;for(s=0;s<256;s+=1){for(o=s,c=0;c<8;c+=1)o&1?o=e^o>>>1:o=o>>>1;r[s]=o>>>0}}function n(o){return Array.prototype.map.call(o,function(s){return s.charCodeAt(0)})}function a(o){var s=-1,c,m,b,v;for(c=0,b=o.length;c<b;c+=1){for(v=(s^o[c])&255,m=0;m<8;m+=1)(v&1)===1?v=v>>>1^e:v=v>>>1;s=s>>>8^v}return s^-1}function i(o,s){var c,m,b;if(!((typeof i.crc>"u"||!s||!o)&&(i.crc=-1,!o))){for(c=i.crc,m=0,b=o.length;m<b;m+=1)c=c>>>8^r[(c^o[m])&255];return i.crc=c,c^-1}}t(),Xt.exports=function(c,s){var c=typeof c=="string"?n(c):c,m=s?a(c):i(c);return(m>>>0).toString(16)},Xt.exports.direct=a,Xt.exports.table=i})();var Io=Xt.exports,Yn={exports:{}},Xn={exports:{}};(function(){var r=32768,e=0,t=1,n=2,a=9,i=6,o,s,c=null,m,b,v,w,d,g,p,y,x,S,D,B,I,T,O,V=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],W=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Z=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,99,99],se=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],P=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],X=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function A(){this.next=null,this.list=null}function J(){this.e=0,this.b=0,this.n=0,this.t=null}function oe(pe,be,xe,$,he,re){this.BMAX=16,this.N_MAX=288,this.status=0,this.root=null,this.m=0;var u,K=[],F,M,k,z,R,Q,G,ie=[],ue,ae,_e,_=new J,l=[],f=[],C,E=[],Y,H,Se,Me,ye;for(ye=this.root=null,R=0;R<this.BMAX+1;R++)K[R]=0;for(R=0;R<this.BMAX+1;R++)ie[R]=0;for(R=0;R<this.BMAX;R++)l[R]=null;for(R=0;R<this.N_MAX;R++)f[R]=0;for(R=0;R<this.BMAX+1;R++)E[R]=0;F=be>256?pe[256]:this.BMAX,ue=pe,ae=0,R=be;do K[ue[ae]]++,ae++;while(--R>0);if(K[0]===be){this.root=null,this.m=0,this.status=0;return}for(Q=1;Q<=this.BMAX&&K[Q]===0;Q++);for(G=Q,re<Q&&(re=Q),R=this.BMAX;R!==0&&K[R]===0;R--);for(k=R,re>R&&(re=R),H=1<<Q;Q<R;Q++,H<<=1)if((H-=K[Q])<0){this.status=2,this.m=re;return}if((H-=K[R])<0){this.status=2,this.m=re;return}for(K[R]+=H,E[1]=Q=0,ue=K,ae=1,Y=2;--R>0;)E[Y++]=Q+=ue[ae++];ue=pe,ae=0,R=0;do(Q=ue[ae++])!==0&&(f[E[Q]++]=R);while(++R<be);for(be=E[k],E[0]=R=0,ue=f,ae=0,z=-1,C=ie[0]=0,_e=null,Se=0,null;G<=k;G++)for(u=K[G];u-- >0;){for(;G>C+ie[1+z];){if(C+=ie[1+z],z++,Se=(Se=k-C)>re?re:Se,(M=1<<(Q=G-C))>u+1)for(M-=u+1,Y=G;++Q<Se&&!((M<<=1)<=K[++Y]);)M-=K[Y];for(C+Q>F&&C<F&&(Q=F-C),Se=1<<Q,ie[1+z]=Q,_e=[],Me=0;Me<Se;Me++)_e[Me]=new J;ye?ye=ye.next=new A:ye=this.root=new A,ye.next=null,ye.list=_e,l[z]=_e,z>0&&(E[z]=R,_.b=ie[z],_.e=16+Q,_.t=_e,Q=(R&(1<<C)-1)>>C-ie[z],l[z-1][Q].e=_.e,l[z-1][Q].b=_.b,l[z-1][Q].n=_.n,l[z-1][Q].t=_.t)}for(_.b=G-C,ae>=be?_.e=99:ue[ae]<xe?(_.e=ue[ae]<256?16:15,_.n=ue[ae++]):(_.e=he[ue[ae]-xe],_.n=$[ue[ae++]-xe]),M=1<<G-C,Q=R>>C;Q<Se;Q+=M)_e[Q].e=_.e,_e[Q].b=_.b,_e[Q].n=_.n,_e[Q].t=_.t;for(Q=1<<G-1;R&Q;Q>>=1)R^=Q;for(R^=Q;(R&(1<<C)-1)!==E[z];)C-=ie[z],z--}this.m=ie[1],this.status=H!==0&&k!==1?1:0}function q(){return T.length===O?-1:T[O++]&255}function fe(pe){for(;d<pe;)w|=q()<<d,d+=8}function ee(pe){return w&V[pe]}function ge(pe){w>>=pe,d-=pe}function j(pe,be,xe){var $,he,re;if(xe===0)return 0;for(re=0;;){for(fe(B),he=S.list[ee(B)],$=he.e;$>16;){if($===99)return-1;ge(he.b),$-=16,fe($),he=he.t[ee($)],$=he.e}if(ge(he.b),$===16){if(s&=r-1,pe[be+re++]=o[s++]=he.n,re===xe)return xe;continue}if($===15)break;for(fe($),y=he.n+ee($),ge($),fe(I),he=D.list[ee(I)],$=he.e;$>16;){if($===99)return-1;ge(he.b),$-=16,fe($),he=he.t[ee($)],$=he.e}for(ge(he.b),fe($),x=s-he.n-ee($),ge($);y>0&&re<xe;)y--,x&=r-1,s&=r-1,pe[be+re++]=o[s++]=o[x++];if(re===xe)return xe}return g=-1,re}function U(pe,be,xe){var $;if($=d&7,ge($),fe(16),$=ee(16),ge(16),fe(16),$!==(~w&65535))return-1;for(ge(16),y=$,$=0;y>0&&$<xe;)y--,s&=r-1,fe(8),pe[be+$++]=o[s++]=ee(8),ge(8);return y===0&&(g=-1),$}function ve(pe,be,xe){if(!c){var $,he=[],re;for($=0;$<144;$++)he[$]=8;for(null;$<256;$++)he[$]=9;for(null;$<280;$++)he[$]=7;for(null;$<288;$++)he[$]=8;if(b=7,re=new oe(he,288,257,W,Z,b),re.status!==0)return console.error("HufBuild error: "+re.status),-1;for(c=re.root,b=re.m,$=0;$<30;$++)he[$]=5;if(v=5,re=new oe(he,30,0,se,P,v),re.status>1)return c=null,console.error("HufBuild error: "+re.status),-1;m=re.root,v=re.m}return S=c,D=m,B=b,I=v,j(pe,be,xe)}function de(pe,be,xe){var $,he,re,u,K,F,M,k,z=[],R;for($=0;$<286+30;$++)z[$]=0;if(fe(5),M=257+ee(5),ge(5),fe(5),k=1+ee(5),ge(5),fe(4),F=4+ee(4),ge(4),M>286||k>30)return-1;for(he=0;he<F;he++)fe(3),z[X[he]]=ee(3),ge(3);for(null;he<19;he++)z[X[he]]=0;if(B=7,R=new oe(z,19,19,null,null,B),R.status!==0)return-1;for(S=R.root,B=R.m,u=M+k,$=re=0;$<u;)if(fe(B),K=S.list[ee(B)],he=K.b,ge(he),he=K.n,he<16)z[$++]=re=he;else if(he===16){if(fe(2),he=3+ee(2),ge(2),$+he>u)return-1;for(;he-- >0;)z[$++]=re}else if(he===17){if(fe(3),he=3+ee(3),ge(3),$+he>u)return-1;for(;he-- >0;)z[$++]=0;re=0}else{if(fe(7),he=11+ee(7),ge(7),$+he>u)return-1;for(;he-- >0;)z[$++]=0;re=0}if(B=a,R=new oe(z,M,257,W,Z,B),B===0&&(R.status=1),R.status!==0&&R.status!==1)return-1;for(S=R.root,B=R.m,$=0;$<k;$++)z[$]=z[$+M];return I=i,R=new oe(z,k,0,se,P,I),D=R.root,I=R.m,I===0&&M>257||R.status!==0?-1:j(pe,be,xe)}function te(){o||(o=[]),s=0,w=0,d=0,g=-1,p=!1,y=x=0,S=null}function Te(pe,be,xe){var $,he;for($=0;$<xe;){if(p&&g===-1)return $;if(y>0){if(g!==e)for(;y>0&&$<xe;)y--,x&=r-1,s&=r-1,pe[be+$++]=o[s++]=o[x++];else{for(;y>0&&$<xe;)y--,s&=r-1,fe(8),pe[be+$++]=o[s++]=ee(8),ge(8);y===0&&(g=-1)}if($===xe)return $}if(g===-1){if(p)break;fe(1),ee(1)!==0&&(p=!0),ge(1),fe(2),g=ee(2),ge(2),S=null,y=0}switch(g){case e:he=U(pe,be+$,xe-$);break;case t:S?he=j(pe,be+$,xe-$):he=ve(pe,be+$,xe-$);break;case n:S?he=j(pe,be+$,xe-$):he=de(pe,be+$,xe-$);break;default:he=-1;break}if(he===-1)return p?0:-1;$+=he}return $}function Oe(pe){var be=[],xe;te(),T=pe,O=0;do xe=Te(be,be.length,1024);while(xe>0);return T=null,be}Xn.exports=Oe})();var Po=Xn.exports,Lr={exports:{}};(function(){var r=32768,e=0,t=1,n=2,a=6,i=1024*8,o=2*r,s=3,c=258,m=8192,b=15,v=m,w=1<<b,d=w-1,g=r-1,p=0,y=4096,x=c+s+1,S=r-x,D=1,B=15,I=7,T=29,O=256,V=256,W=O+1+T,Z=30,se=19,P=16,X=17,A=18,J=2*W+1,oe=parseInt((b+s-1)/s,10),q,fe,ee,ge,j=null,U,ve,de,te,Te,Oe,pe,be,xe,$,he,re,u,K,F,M,k,z,R,Q,G,ie,ue,ae,_e,_,l,f,C,E,Y,H,Se,Me,ye,L,ce,Be,Ee,Re,Ge,je,Et,tt,vt,Je,He,lt,et,at,ct,Gr;function Ot(){this.fc=0,this.dl=0}function Vr(){this.dyn_tree=null,this.static_tree=null,this.extra_bits=null,this.extra_base=0,this.elems=0,this.max_length=0,this.max_code=0}function it(N,ne,we,le){this.good_length=N,this.max_lazy=ne,this.nice_length=we,this.max_chain=le}function Bl(){this.next=null,this.len=0,this.ptr=[],this.off=0}var Wr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],zt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Il=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],oa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rr=[new it(0,0,0,0),new it(4,4,8,4),new it(4,5,16,8),new it(4,6,32,32),new it(4,4,16,16),new it(8,16,32,32),new it(8,16,128,128),new it(8,32,128,256),new it(32,128,258,1024),new it(32,258,258,4096)];function Pl(N){var ne;if(N?N<1?N=1:N>9&&(N=9):N=a,ue=N,ge=!1,R=!1,j===null){for(q=fe=ee=null,j=[],te=[],Te=[],Oe=[],pe=[],_=[],ne=0;ne<J;ne++)_[ne]=new Ot;for(l=[],ne=0;ne<2*Z+1;ne++)l[ne]=new Ot;for(f=[],ne=0;ne<W+2;ne++)f[ne]=new Ot;for(C=[],ne=0;ne<Z;ne++)C[ne]=new Ot;for(E=[],ne=0;ne<2*se+1;ne++)E[ne]=new Ot;Y=new Vr,H=new Vr,Se=new Vr,Me=[],ye=[],Be=[],Ee=[],Re=[],Ge=[],je=[],Et=[]}}function Tl(N){N.next=q,q=N}function Ll(){var N;return q!==null?(N=q,q=q.next):N=new Bl,N.next=null,N.len=N.off=0,N}function la(N){return pe[r+N]}function ca(N,ne){return pe[r+N]=ne}function nr(N){j[ve+U++]=N,ve+U===i&&Vl()}function ar(N){N&=65535,ve+U<i-2?(j[ve+U++]=N&255,j[ve+U++]=N>>>8):(nr(N&255),nr(N>>>8))}function ir(){he=(he<<oe^te[k+s-1]&255)&d,re=la(he),pe[k&g]=re,ca(he,k)}function ft(N,ne){qe(ne[N].fc,ne[N].dl)}function fa(N){return(N<256?Re[N]:Re[256+(N>>7)])&255}function ua(N,ne,we){return N[ne].fc<N[we].fc||N[ne].fc===N[we].fc&&Be[ne]<=Be[we]}function ha(N,ne,we){var le;for(le=0;le<we&&Gr<ct.length;le++)N[ne+le]=ct[Gr++]&255;return le}function El(){var N;for(N=0;N<w;N++)pe[r+N]=0;if(ie=rr[ue].max_lazy,ae=rr[ue].good_length,_e=rr[ue].nice_length,G=rr[ue].max_chain,k=0,$=0,Q=ha(te,0,2*r),Q<=0){R=!0,Q=0;return}for(R=!1;Q<x&&!R;)Qr();for(he=0,N=0;N<s-1;N++)he=(he<<oe^te[N]&255)&d}function da(N){var ne=G,we=k,le,me,ke=M,Le=k>S?k-S:p,Fe=k+c,Ie=te[we+ke-1],Ye=te[we+ke],Ne,pt;M>=ae&&(ne>>=2);do if(le=N,!(te[le+ke]!==Ye||te[le+ke-1]!==Ie||te[le]!==te[we]||te[++le]!==te[we+1])){for(we+=2,le++;we<Fe;){for(pt=!1,Ne=0;Ne<8;Ne+=1)if(we+=1,le+=1,te[we]!==te[le]){pt=!0;break}if(pt)break}if(me=c-(Fe-we),we=Fe-c,me>ke){if(z=N,ke=me,me>=_e)break;Ie=te[we+ke-1],Ye=te[we+ke]}}while((N=pe[N&g])>Le&&--ne!==0);return ke}function Qr(){var N,ne,we=o-Q-k;if(we===-1)we--;else if(k>=r+S){for(N=0;N<r;N++)te[N]=te[N+r];for(z-=r,k-=r,$-=r,N=0;N<w;N++)ne=la(N),ca(N,ne>=r?ne-r:p);for(N=0;N<r;N++)ne=pe[N],pe[N]=ne>=r?ne-r:p;we+=r}R||(N=ha(te,k+Q,we),N<=0?R=!0:Q+=N)}function Ol(){for(;Q!==0&&fe===null;){var N;if(ir(),re!==p&&k-re<=S&&(F=da(re),F>Q&&(F=Q)),F>=s)if(N=Ft(k-z,F-s),Q-=F,F<=ie){F--;do k++,ir();while(--F!==0);k++}else k+=F,F=0,he=te[k]&255,he=(he<<oe^te[k+1]&255)&d;else N=Ft(0,te[k]&255),Q--,k++;for(N&&(sr(0),$=k);Q<x&&!R;)Qr()}}function zl(){for(;Q!==0&&fe===null;){if(ir(),M=F,u=z,F=s-1,re!==p&&M<ie&&k-re<=S&&(F=da(re),F>Q&&(F=Q),F===s&&k-z>y&&F--),M>=s&&F<=M){var N;N=Ft(k-1-u,M-s),Q-=M-1,M-=2;do k++,ir();while(--M!==0);K=!1,F=s-1,k++,N&&(sr(0),$=k)}else K?(Ft(0,te[k-1]&255)&&(sr(0),$=k),k++,Q--):(K=!0,k++,Q--);for(;Q<x&&!R;)Qr()}}function Fl(){R||(be=0,xe=0,Ul(),El(),fe=null,U=0,ve=0,ue<=3?(M=s-1,F=0):(F=s-1,K=!1),de=!1)}function Nl(N,ne,we){var le;return!ge&&(Fl(),ge=!0,Q===0)?(de=!0,0):(le=pa(N,ne,we),le===we?we:de?le:(ue<=3?Ol():zl(),Q===0&&(K&&Ft(0,te[k-1]&255),sr(1),de=!0),le+pa(N,le+ne,we-le)))}function pa(N,ne,we){var le,me,ke;for(le=0;fe!==null&&le<we;){for(me=we-le,me>fe.len&&(me=fe.len),ke=0;ke<me;ke++)N[ne+le+ke]=fe.ptr[fe.off+ke];if(fe.off+=me,fe.len-=me,le+=me,fe.len===0){var Le;Le=fe,fe=fe.next,Tl(Le)}}if(le===we)return le;if(ve<U){for(me=we-le,me>U-ve&&(me=U-ve),ke=0;ke<me;ke++)N[ne+le+ke]=j[ve+ke];ve+=me,le+=me,U===ve&&(U=ve=0)}return le}function Ul(){var N,ne,we,le,me;if(C[0].dl===0){for(Y.dyn_tree=_,Y.static_tree=f,Y.extra_bits=Wr,Y.extra_base=O+1,Y.elems=W,Y.max_length=B,Y.max_code=0,H.dyn_tree=l,H.static_tree=C,H.extra_bits=zt,H.extra_base=0,H.elems=Z,H.max_length=B,H.max_code=0,Se.dyn_tree=E,Se.static_tree=null,Se.extra_bits=Il,Se.extra_base=0,Se.elems=se,Se.max_length=I,Se.max_code=0,we=0,le=0;le<T-1;le++)for(Ge[le]=we,N=0;N<1<<Wr[le];N++)Ee[we++]=le;for(Ee[we-1]=le,me=0,le=0;le<16;le++)for(je[le]=me,N=0;N<1<<zt[le];N++)Re[me++]=le;for(me>>=7;le<Z;le++)for(je[le]=me<<7,N=0;N<1<<zt[le]-7;N++)Re[256+me++]=le;for(ne=0;ne<=B;ne++)Me[ne]=0;for(N=0;N<=143;)f[N++].dl=8,Me[8]++;for(;N<=255;)f[N++].dl=9,Me[9]++;for(;N<=279;)f[N++].dl=7,Me[7]++;for(;N<=287;)f[N++].dl=8,Me[8]++;for(ga(f,W+1),N=0;N<Z;N++)C[N].dl=5,C[N].fc=xa(N,5);ma()}}function ma(){var N;for(N=0;N<W;N++)_[N].fc=0;for(N=0;N<Z;N++)l[N].fc=0;for(N=0;N<se;N++)E[N].fc=0;_[V].fc=1,et=at=0,tt=vt=Je=0,He=0,lt=1}function Yr(N,ne){for(var we=ye[ne],le=ne<<1;le<=L&&(le<L&&ua(N,ye[le+1],ye[le])&&le++,!ua(N,we,ye[le]));)ye[ne]=ye[le],ne=le,le<<=1;ye[ne]=we}function Rl(N){var ne=N.dyn_tree,we=N.extra_bits,le=N.extra_base,me=N.max_code,ke=N.max_length,Le=N.static_tree,Fe,Ie,Ye,Ne,pt,Hr,or=0;for(Ne=0;Ne<=B;Ne++)Me[Ne]=0;for(ne[ye[ce]].dl=0,Fe=ce+1;Fe<J;Fe++)Ie=ye[Fe],Ne=ne[ne[Ie].dl].dl+1,Ne>ke&&(Ne=ke,or++),ne[Ie].dl=Ne,!(Ie>me)&&(Me[Ne]++,pt=0,Ie>=le&&(pt=we[Ie-le]),Hr=ne[Ie].fc,et+=Hr*(Ne+pt),Le!==null&&(at+=Hr*(Le[Ie].dl+pt)));if(or!==0){do{for(Ne=ke-1;Me[Ne]===0;)Ne--;Me[Ne]--,Me[Ne+1]+=2,Me[ke]--,or-=2}while(or>0);for(Ne=ke;Ne!==0;Ne--)for(Ie=Me[Ne];Ie!==0;)Ye=ye[--Fe],!(Ye>me)&&(ne[Ye].dl!==Ne&&(et+=(Ne-ne[Ye].dl)*ne[Ye].fc,ne[Ye].fc=Ne),Ie--)}}function ga(N,ne){var we=[],le=0,me,ke;for(me=1;me<=B;me++)le=le+Me[me-1]<<1,we[me]=le;for(ke=0;ke<=ne;ke++){var Le=N[ke].dl;Le!==0&&(N[ke].fc=xa(we[Le]++,Le))}}function Xr(N){var ne=N.dyn_tree,we=N.static_tree,le=N.elems,me,ke,Le=-1,Fe=le;for(L=0,ce=J,me=0;me<le;me++)ne[me].fc!==0?(ye[++L]=Le=me,Be[me]=0):ne[me].dl=0;for(;L<2;){var Ie=ye[++L]=Le<2?++Le:0;ne[Ie].fc=1,Be[Ie]=0,et--,we!==null&&(at-=we[Ie].dl)}for(N.max_code=Le,me=L>>1;me>=1;me--)Yr(ne,me);do me=ye[D],ye[D]=ye[L--],Yr(ne,D),ke=ye[D],ye[--ce]=me,ye[--ce]=ke,ne[Fe].fc=ne[me].fc+ne[ke].fc,Be[me]>Be[ke]+1?Be[Fe]=Be[me]:Be[Fe]=Be[ke]+1,ne[me].dl=ne[ke].dl=Fe,ye[D]=Fe++,Yr(ne,D);while(L>=2);ye[--ce]=ye[D],Rl(N),ga(ne,Le)}function wa(N,ne){var we,le=-1,me,ke=N[0].dl,Le=0,Fe=7,Ie=4;for(ke===0&&(Fe=138,Ie=3),N[ne+1].dl=65535,we=0;we<=ne;we++)me=ke,ke=N[we+1].dl,!(++Le<Fe&&me===ke)&&(Le<Ie?E[me].fc+=Le:me!==0?(me!==le&&E[me].fc++,E[P].fc++):Le<=10?E[X].fc++:E[A].fc++,Le=0,le=me,ke===0?(Fe=138,Ie=3):me===ke?(Fe=6,Ie=3):(Fe=7,Ie=4))}function va(N,ne){var we,le=-1,me,ke=N[0].dl,Le=0,Fe=7,Ie=4;for(ke===0&&(Fe=138,Ie=3),we=0;we<=ne;we++)if(me=ke,ke=N[we+1].dl,!(++Le<Fe&&me===ke)){if(Le<Ie)do ft(me,E);while(--Le!==0);else me!==0?(me!==le&&(ft(me,E),Le--),ft(P,E),qe(Le-3,2)):Le<=10?(ft(X,E),qe(Le-3,3)):(ft(A,E),qe(Le-11,7));Le=0,le=me,ke===0?(Fe=138,Ie=3):me===ke?(Fe=6,Ie=3):(Fe=7,Ie=4)}}function jl(){var N;for(wa(_,Y.max_code),wa(l,H.max_code),Xr(Se),N=se-1;N>=3&&E[oa[N]].dl===0;N--);return et+=3*(N+1)+5+5+4,N}function Gl(N,ne,we){var le;for(qe(N-257,5),qe(ne-1,5),qe(we-4,4),le=0;le<we;le++)qe(E[oa[le]].dl,3);va(_,N-1),va(l,ne-1)}function sr(N){var ne,we,le,me,ke;if(me=k-$,Et[Je]=He,Xr(Y),Xr(H),le=jl(),ne=et+3+7>>3,we=at+3+7>>3,we<=ne&&(ne=we),me+4<=ne&&$>=0)for(qe((e<<1)+N,3),_a(),ar(me),ar(~me),ke=0;ke<me;ke++)nr(te[$+ke]);else we===ne?(qe((t<<1)+N,3),ba(f,C)):(qe((n<<1)+N,3),Gl(Y.max_code+1,H.max_code+1,le+1),ba(_,l));ma(),N!==0&&_a()}function Ft(N,ne){if(Oe[tt++]=ne,N===0?_[ne].fc++:(N--,_[Ee[ne]+O+1].fc++,l[fa(N)].fc++,Te[vt++]=N,He|=lt),lt<<=1,tt&7||(Et[Je++]=He,He=0,lt=1),ue>2&&!(tt&4095)){var we=tt*8,le=k-$,me;for(me=0;me<Z;me++)we+=l[me].fc*(5+zt[me]);if(we>>=3,vt<parseInt(tt/2,10)&&we<parseInt(le/2,10))return!0}return tt===m-1||vt===v}function ba(N,ne){var we,le,me=0,ke=0,Le=0,Fe=0,Ie,Ye;if(tt!==0)do me&7||(Fe=Et[Le++]),le=Oe[me++]&255,Fe&1?(Ie=Ee[le],ft(Ie+O+1,N),Ye=Wr[Ie],Ye!==0&&(le-=Ge[Ie],qe(le,Ye)),we=Te[ke++],Ie=fa(we),ft(Ie,ne),Ye=zt[Ie],Ye!==0&&(we-=je[Ie],qe(we,Ye))):ft(le,N),Fe>>=1;while(me<tt);ft(V,N)}var Kr=16;function qe(N,ne){xe>Kr-ne?(be|=N<<xe,ar(be),be=N>>Kr-xe,xe+=ne-Kr):(be|=N<<xe,xe+=ne)}function xa(N,ne){var we=0;do we|=N&1,N>>=1,we<<=1;while(--ne>0);return we>>1}function _a(){xe>8?ar(be):xe>0&&nr(be),be=0,xe=0}function Vl(){var N,ne;if(U!==0){for(N=Ll(),fe===null?fe=ee=N:ee=ee.next=N,N.len=U-ve,ne=0;ne<N.len;ne++)N.ptr[ne]=j[ve+ne];U=ve=0}}function Wl(N,ne){var we,le;ct=N,Gr=0,typeof ne>"u"&&(ne=a),Pl(ne),le=[];do we=Nl(le,le.length,1024);while(we>0);return ct=null,le}Lr.exports=Wl,Lr.exports.DEFAULT_LEVEL=a})();var To=Lr.exports;(function(){Yn.exports={inflate:Po,deflate:To}})();var Lo=Yn.exports;(function(){var r=Io,e=Lo,t=31,n=139,a={deflate:8},i={FTEXT:1,FHCRC:2,FEXTRA:4,FNAME:8,FCOMMENT:16},o={fat:0,amiga:1,vmz:2,unix:3,"vm/cms":4,atari:5,hpfs:6,macintosh:7,"z-system":8,cplm:9,"tops-20":10,ntfs:11,qdos:12,acorn:13,vfat:14,vms:15,beos:16,tandem:17,theos:18},s="unix",c=6;function m(B,I){I.push(B&255)}function b(B,I){I.push(B&255),I.push(B>>>8)}function v(B,I){b(B&65535,I),b(B>>>16,I)}function w(B,I){var T,O=B.length;for(T=0;T<O;T+=1)m(B.charCodeAt(T),I)}function d(B){return B.shift()}function g(B){return B.shift()|B.shift()<<8}function p(B){var I=g(B),T=g(B);return T>32768?(T-=32768,(T<<16|I)+32768*Math.pow(2,16)):T<<16|I}function y(B){for(var I=[];B[0]!==0;)I.push(String.fromCharCode(B.shift()));return B.shift(),I.join("")}function x(B,I){var T,O=[];for(T=0;T<I;T+=1)O.push(B.shift());return O}function S(B,I){var T=0,O,V=[];return I||(I={}),O=I.level||c,typeof B=="string"&&(B=Array.prototype.map.call(B,function(W){return W.charCodeAt(0)})),m(t,V),m(n,V),m(a.deflate,V),I.name&&(T|=i.FNAME),m(T,V),v(I.timestamp||parseInt(Date.now()/1e3,10),V),m(O===1?4:O===9?2:0,V),m(o[s],V),I.name&&(w(I.name.substring(I.name.lastIndexOf("/")+1),V),m(0,V)),e.deflate(B,O).forEach(function(W){m(W,V)}),v(parseInt(r(B),16),V),v(B.length,V),V}function D(B,I){var T=Array.prototype.slice.call(B,0),O,V,W,Z,se,P;if(d(T)!==t||d(T)!==n)throw"Not a GZIP file";if(O=d(T),O=Object.keys(a).some(function(X){return V=X,a[X]===O}),!O)throw"Unsupported compression method";if(W=d(T),p(T),d(T),O=d(T),Object.keys(o).some(function(X){if(o[X]===O)return!0}),W&i.FEXTRA&&(O=g(T),x(T,O)),W&i.FNAME&&y(T),W&i.FCOMMENT&&y(T),W&i.FHCRC&&g(T),V==="deflate"&&(P=e.inflate(T.splice(0,T.length-8))),W&i.FTEXT&&(P=Array.prototype.map.call(P,function(X){return String.fromCharCode(X)}).join("")),Z=p(T),Z!==parseInt(r(P),16))throw"Checksum does not match";if(se=p(T),se!==P.length)throw"Size of decompressed file not correct";return P}Qn.exports={zip:S,unzip:D,get DEFAULT_LEVEL(){return c}}})();var Eo=Qn.exports,De;(function(r){r[r.End=0]="End",r[r.Byte=1]="Byte",r[r.Short=2]="Short",r[r.Int=3]="Int",r[r.Long=4]="Long",r[r.Float=5]="Float",r[r.Double=6]="Double",r[r.ByteArray=7]="ByteArray",r[r.String=8]="String",r[r.List=9]="List",r[r.Compound=10]="Compound",r[r.IntArray=11]="IntArray",r[r.LongArray=12]="LongArray"})(De||(De={}));class Kn{constructor(e){this.value=e}valueOf(){return this.value}}class Hn{constructor(e){this.value=e}valueOf(){return this.value}}class Zn{constructor(e){this.value=e}valueOf(){return this.value}}class Jn{constructor(e){this.value=e}valueOf(){return this.value}}function Kt(r){if(r instanceof Kn)return De.Byte;if(r instanceof Hn)return De.Short;if(r instanceof Zn)return De.Int;if(typeof r=="bigint")return De.Long;if(r instanceof Jn)return De.Float;if(typeof r=="number")return De.Double;if(r instanceof Buffer||r instanceof Int8Array)return De.ByteArray;if(typeof r=="string")return De.String;if(r instanceof Array)return De.List;if(r.constructor==Object||r instanceof Map)return De.Compound;if(r instanceof Int32Array)return De.IntArray;if(r instanceof BigInt64Array)return De.LongArray;throw new Error("Invalid tag value")}function Oo(r,e={}){const t=r.readUInt8(0);if(t==De.End)return{name:null,value:null,length:1};let n=null,a=1;if(!e.unnamed){const o=r.readUInt16BE(a);a+=2,n=r.toString("utf-8",a,a+=o)}const i=Er(t,r,a,!!e.useMaps);return{name:n,value:i.value,length:i.offset}}function Er(r,e,t,n){let a;switch(r){case De.Byte:a=new Kn(e.readInt8((t+=1)-1));break;case De.Short:a=new Hn(e.readInt16BE((t+=2)-2));break;case De.Int:a=new Zn(e.readInt32BE((t+=4)-4));break;case De.Long:a=new DataView(e.buffer,e.byteOffset,e.byteLength).getBigInt64(t),t+=8;break;case De.Float:a=new Jn(e.readFloatBE((t+=4)-4));break;case De.Double:a=e.readDoubleBE((t+=8)-8);break;case De.ByteArray:{const i=e.readUInt32BE(t);t+=4,a=e.slice(t,t+=i);break}case De.String:{const i=e.readUInt16BE(t);a=(t+=2,e.toString("utf-8",t,t+=i));break}case De.List:{const i=e.readUInt8(t),o=e.readUInt32BE(t+1);t+=5;const s=[];for(let c=0;c<o;c++)({value:a,offset:t}=Er(i,e,t,n)),s.push(a);a=s;break}case De.Compound:{const i=n?new Map:{};for(;;){const o=e.readUInt8(t);if(t+=1,o==De.End)break;const s=e.readUInt16BE(t);t+=2;const c=e.toString("utf-8",t,t+=s);({value:a,offset:t}=Er(o,e,t,n)),n?i.set(c,a):i[c]=a}a=i;break}case De.IntArray:{const i=e.readUInt32BE(t);t+=4;const o=a=new Int32Array(i);for(let s=0;s<i;s++)o[s]=e.readInt32BE(t+s*4);t+=o.buffer.byteLength;break}case De.LongArray:{const i=e.readUInt32BE(t);t+=4;const o=new DataView(e.buffer,e.byteOffset,e.byteLength),s=a=new BigInt64Array(i);for(let c=0;c<i;c++)s[c]=o.getBigInt64(t+c*8);t+=s.buffer.byteLength;break}default:throw new Error(`Tag type ${r} not implemented`)}return{value:a,offset:t}}const zo=["acacia_button","acacia_door","acacia_fence","acacia_fence_gate","acacia_leaves","acacia_pressure_plate","acacia_sapling","acacia_sign","acacia_slab","acacia_stairs","acacia_trapdoor","acacia_wall_sign","activator_rail","air","allium","amethyst_cluster","andesite_slab","andesite_stairs","andesite_wall","anvil","attached_melon_stem","attached_pumpkin_stem","azalea","azalea_leaves","azure_bluet","bamboo","bamboo_sapling","beacon","beetroots","bell","big_dripleaf","big_dripleaf_stem","birch_button","birch_door","birch_fence","birch_fence_gate","birch_leaves","birch_pressure_plate","birch_sapling","birch_sign","birch_slab","birch_stairs","birch_trapdoor","birch_wall_sign","black_banner","black_bed","black_candle","black_candle_cake","black_carpet","black_stained_glass","black_stained_glass_pane","black_wall_banner","blackstone_slab","blackstone_stairs","blackstone_wall","blue_banner","blue_bed","blue_candle","blue_candle_cake","blue_carpet","blue_orchid","blue_stained_glass","blue_stained_glass_pane","blue_wall_banner","brain_coral","brain_coral_fan","brain_coral_wall_fan","brewing_stand","brick_slab","brick_stairs","brick_wall","brown_banner","brown_bed","brown_candle","brown_candle_cake","brown_carpet","brown_mushroom","brown_stained_glass","brown_stained_glass_pane","brown_wall_banner","bubble_column","bubble_coral","bubble_coral_fan","bubble_coral_wall_fan","cactus","cake","campfire","candle","candle_cake","carrots","cave_air","cave_vines","cave_vines_plant","chain","chest","chipped_anvil","chorus_flower","chorus_plant","cobbled_deepslate_slab","cobbled_deepslate_stairs","cobbled_deepslate_wall","cobblestone_slab","cobblestone_stairs","cobblestone_wall","cobweb","cocoa","comparator","conduit","cornflower","creeper_head","creeper_wall_head","crimson_button","crimson_door","crimson_fence","crimson_fence_gate","crimson_fungus","crimson_pressure_plate","crimson_roots","crimson_sign","crimson_slab","crimson_stairs","crimson_trapdoor","crimson_wall_sign","cut_copper_slab","cut_copper_stairs","cut_red_sandstone_slab","cut_sandstone_slab","cyan_banner","cyan_bed","cyan_candle","cyan_candle_cake","cyan_carpet","cyan_stained_glass","cyan_stained_glass_pane","cyan_wall_banner","damaged_anvil","dandelion","dark_oak_button","dark_oak_door","dark_oak_fence","dark_oak_fence_gate","dark_oak_leaves","dark_oak_pressure_plate","dark_oak_sapling","dark_oak_sign","dark_oak_slab","dark_oak_stairs","dark_oak_trapdoor","dark_oak_wall_sign","dark_prismarine_slab","dark_prismarine_stairs","daylight_detector","dead_brain_coral","dead_brain_coral_fan","dead_brain_coral_wall_fan","dead_bubble_coral","dead_bubble_coral_fan","dead_bubble_coral_wall_fan","dead_bush","dead_fire_coral","dead_fire_coral_fan","dead_fire_coral_wall_fan","dead_horn_coral","dead_horn_coral_fan","dead_horn_coral_wall_fan","dead_tube_coral","dead_tube_coral_fan","dead_tube_coral_wall_fan","deepslate_brick_slab","deepslate_brick_stairs","deepslate_brick_wall","deepslate_tile_slab","deepslate_tile_stairs","deepslate_tile_wall","detector_rail","diorite_slab","diorite_stairs","diorite_wall","dirt_path","dragon_egg","dragon_head","dragon_wall_head","enchanting_table","end_gateway","end_portal","end_portal_frame","end_rod","end_stone_brick_slab","end_stone_brick_stairs","end_stone_brick_wall","ender_chest","exposed_cut_copper_slab","exposed_cut_copper_stairs","farmland","fern","fire","fire_coral","fire_coral_fan","fire_coral_wall_fan","flower_pot","flowering_azalea","flowering_azalea_leaves","frosted_ice","glass","glass_pane","glow_lichen","glowstone","granite_slab","granite_stairs","granite_wall","grass","gray_banner","gray_bed","gray_candle","gray_candle_cake","gray_carpet","gray_stained_glass","gray_stained_glass_pane","gray_wall_banner","green_banner","green_bed","green_candle","green_candle_cake","green_carpet","green_stained_glass","green_stained_glass_pane","green_wall_banner","grindstone","hanging_roots","heavy_weighted_pressure_plate","honey_block","horn_coral","horn_coral_fan","horn_coral_wall_fan","ice","iron_bars","iron_door","iron_trapdoor","jungle_button","jungle_door","jungle_fence","jungle_fence_gate","jungle_leaves","jungle_pressure_plate","jungle_sapling","jungle_sign","jungle_slab","jungle_stairs","jungle_trapdoor","jungle_wall_sign","kelp","kelp_plant","ladder","lantern","large_amethyst_bud","large_fern","lava","lectern","lever","light","light_blue_banner","light_blue_bed","light_blue_candle","light_blue_candle_cake","light_blue_carpet","light_blue_stained_glass","light_blue_stained_glass_pane","light_blue_wall_banner","light_gray_banner","light_gray_bed","light_gray_candle","light_gray_candle_cake","light_gray_carpet","light_gray_stained_glass","light_gray_stained_glass_pane","light_gray_wall_banner","light_weighted_pressure_plate","lightning_rod","lilac","lily_of_the_valley","lily_pad","lime_banner","lime_bed","lime_candle","lime_candle_cake","lime_carpet","lime_stained_glass","lime_stained_glass_pane","lime_wall_banner","magenta_banner","magenta_bed","magenta_candle","magenta_candle_cake","magenta_carpet","magenta_stained_glass","magenta_stained_glass_pane","magenta_wall_banner","medium_amethyst_bud","melon_stem","moss_carpet","mossy_cobblestone_slab","mossy_cobblestone_stairs","mossy_cobblestone_wall","mossy_stone_brick_slab","mossy_stone_brick_stairs","mossy_stone_brick_wall","moving_piston","nether_brick_fence","nether_brick_slab","nether_brick_stairs","nether_brick_wall","nether_portal","nether_sprouts","nether_wart","oak_button","oak_door","oak_fence","oak_fence_gate","oak_leaves","oak_pressure_plate","oak_sapling","oak_sign","oak_slab","oak_stairs","oak_trapdoor","oak_wall_sign","orange_banner","orange_bed","orange_candle","orange_candle_cake","orange_carpet","orange_stained_glass","orange_stained_glass_pane","orange_tulip","orange_wall_banner","oxeye_daisy","oxidized_cut_copper_slab","oxidized_cut_copper_stairs","peony","petrified_oak_slab","pink_banner","pink_bed","pink_candle","pink_candle_cake","pink_carpet","pink_stained_glass","pink_stained_glass_pane","pink_tulip","pink_wall_banner","piston_head","player_head","player_wall_head","pointed_dripstone","polished_andesite_slab","polished_andesite_stairs","polished_blackstone_brick_slab","polished_blackstone_brick_stairs","polished_blackstone_brick_wall","polished_blackstone_button","polished_blackstone_pressure_plate","polished_blackstone_slab","polished_blackstone_stairs","polished_blackstone_wall","polished_deepslate_slab","polished_deepslate_stairs","polished_deepslate_wall","polished_diorite_slab","polished_diorite_stairs","polished_granite_slab","polished_granite_stairs","poppy","potatoes","potted_acacia_sapling","potted_allium","potted_azalea_bush","potted_azure_bluet","potted_bamboo","potted_birch_sapling","potted_blue_orchid","potted_brown_mushroom","potted_cactus","potted_cornflower","potted_crimson_fungus","potted_crimson_roots","potted_dandelion","potted_dark_oak_sapling","potted_dead_bush","potted_fern","potted_flowering_azalea_bush","potted_jungle_sapling","potted_lily_of_the_valley","potted_oak_sapling","potted_orange_tulip","potted_oxeye_daisy","potted_pink_tulip","potted_poppy","potted_red_mushroom","potted_red_tulip","potted_spruce_sapling","potted_warped_fungus","potted_warped_roots","potted_white_tulip","potted_wither_rose","powder_snow","powered_rail","prismarine_brick_slab","prismarine_brick_stairs","prismarine_slab","prismarine_stairs","prismarine_wall","pumpkin_stem","purple_banner","purple_bed","purple_candle","purple_candle_cake","purple_carpet","purple_stained_glass","purple_stained_glass_pane","purple_wall_banner","purpur_slab","purpur_stairs","quartz_slab","quartz_stairs","rail","red_banner","red_bed","red_candle","red_candle_cake","red_carpet","red_mushroom","red_nether_brick_slab","red_nether_brick_stairs","red_nether_brick_wall","red_sandstone_slab","red_sandstone_stairs","red_sandstone_wall","red_stained_glass","red_stained_glass_pane","red_tulip","red_wall_banner","redstone_torch","redstone_wall_torch","redstone_wire","repeater","rose_bush","sandstone_slab","sandstone_stairs","sandstone_wall","scaffolding","sculk_sensor","sea_lantern","sea_pickle","seagrass","skeleton_skull","skeleton_wall_skull","small_amethyst_bud","small_dripleaf","smooth_quartz_slab","smooth_quartz_stairs","smooth_red_sandstone_slab","smooth_red_sandstone_stairs","smooth_sandstone_slab","smooth_sandstone_stairs","smooth_stone_slab","snow","soul_campfire","soul_fire","soul_lantern","soul_sand","soul_torch","soul_wall_torch","spore_blossom","spruce_button","spruce_door","spruce_fence","spruce_fence_gate","spruce_leaves","spruce_pressure_plate","spruce_sapling","spruce_sign","spruce_slab","spruce_stairs","spruce_trapdoor","spruce_wall_sign","stone_brick_slab","stone_brick_stairs","stone_brick_wall","stone_button","stone_pressure_plate","stone_slab","stone_stairs","stonecutter","structure_void","sugar_cane","sunflower","sweet_berry_bush","tall_grass","tall_seagrass","tinted_glass","tnt","torch","trapped_chest","tripwire","tripwire_hook","tube_coral","tube_coral_fan","tube_coral_wall_fan","turtle_egg","twisting_vines","twisting_vines_plant","vine","void_air","wall_torch","warped_button","warped_door","warped_fence","warped_fence_gate","warped_fungus","warped_pressure_plate","warped_roots","warped_sign","warped_slab","warped_stairs","warped_trapdoor","warped_wall_sign","water","waxed_cut_copper_slab","waxed_cut_copper_stairs","waxed_exposed_cut_copper_slab","waxed_exposed_cut_copper_stairs","waxed_oxidized_cut_copper_slab","waxed_oxidized_cut_copper_stairs","waxed_weathered_cut_copper_slab","waxed_weathered_cut_copper_stairs","weathered_cut_copper_slab","weathered_cut_copper_stairs","weeping_vines","weeping_vines_plant","wheat","white_banner","white_bed","white_candle","white_candle_cake","white_carpet","white_stained_glass","white_stained_glass_pane","white_tulip","white_wall_banner","wither_rose","wither_skeleton_skull","wither_skeleton_wall_skull","yellow_banner","yellow_bed","yellow_candle","yellow_candle_cake","yellow_carpet","yellow_stained_glass","yellow_stained_glass_pane","yellow_wall_banner","zombie_head","zombie_wall_head"],Fo=["acacia_button","acacia_door","acacia_leaves","acacia_sapling","acacia_trapdoor","activator_rail","air","allium","attached_melon_stem","attached_pumpkin_stem","azalea","azalea_leaves","azure_bluet","beacon","beetroots","big_dripleaf","big_dripleaf_stem","birch_button","birch_door","birch_leaves","birch_sapling","birch_trapdoor","black_candle","black_carpet","black_stained_glass","black_stained_glass_pane","blue_candle","blue_carpet","blue_orchid","blue_stained_glass","blue_stained_glass_pane","brain_coral","brain_coral_fan","brain_coral_wall_fan","brown_candle","brown_carpet","brown_mushroom","brown_stained_glass","brown_stained_glass_pane","bubble_column","bubble_coral","bubble_coral_fan","bubble_coral_wall_fan","cactus","candle","carrots","cave_air","cave_vines","cave_vines_plant","chorus_flower","chorus_plant","cobweb","cocoa","comparator","conduit","cornflower","creeper_head","creeper_wall_head","crimson_button","crimson_door","crimson_fungus","crimson_roots","crimson_trapdoor","cyan_candle","cyan_carpet","cyan_stained_glass","cyan_stained_glass_pane","dandelion","dark_oak_button","dark_oak_door","dark_oak_leaves","dark_oak_sapling","dark_oak_trapdoor","dead_bush","detector_rail","dragon_head","dragon_wall_head","end_gateway","end_portal","end_rod","fern","fire","fire_coral","fire_coral_fan","fire_coral_wall_fan","flower_pot","flowering_azalea","flowering_azalea_leaves","frosted_ice","glass","glass_pane","glow_lichen","glowstone","grass","gray_candle","gray_carpet","gray_stained_glass","gray_stained_glass_pane","green_candle","green_carpet","green_stained_glass","green_stained_glass_pane","hanging_roots","horn_coral","horn_coral_fan","horn_coral_wall_fan","hopper","ice","iron_door","iron_trapdoor","jungle_button","jungle_door","jungle_leaves","jungle_sapling","jungle_trapdoor","kelp","kelp_plant","ladder","large_fern","lava","lever","light","light_blue_candle","light_blue_carpet","light_blue_stained_glass","light_blue_stained_glass_pane","light_gray_candle","light_gray_carpet","light_gray_stained_glass","light_gray_stained_glass_pane","lilac","lily_of_the_valley","lily_pad","lime_candle","lime_carpet","lime_stained_glass","lime_stained_glass_pane","magenta_candle","magenta_carpet","magenta_stained_glass","magenta_stained_glass_pane","melon_stem","moss_carpet","nether_portal","nether_sprouts","nether_wart","oak_button","oak_door","oak_leaves","oak_sapling","oak_trapdoor","orange_candle","orange_carpet","orange_stained_glass","orange_stained_glass_pane","orange_tulip","oxeye_daisy","peony","pink_candle","pink_carpet","pink_stained_glass","pink_stained_glass_pane","pink_tulip","player_head","player_wall_head","polished_blackstone_button","poppy","potatoes","potted_acacia_sapling","potted_allium","potted_azalea_bush","potted_azure_bluet","potted_bamboo","potted_birch_sapling","potted_blue_orchid","potted_brown_mushroom","potted_cactus","potted_cornflower","potted_crimson_fungus","potted_crimson_roots","potted_dandelion","potted_dark_oak_sapling","potted_dead_bush","potted_fern","potted_flowering_azalea_bush","potted_jungle_sapling","potted_lily_of_the_valley","potted_oak_sapling","potted_orange_tulip","potted_oxeye_daisy","potted_pink_tulip","potted_poppy","potted_red_mushroom","potted_red_tulip","potted_spruce_sapling","potted_warped_fungus","potted_warped_roots","potted_white_tulip","potted_wither_rose","powered_rail","pumpkin_stem","purple_candle","purple_carpet","purple_stained_glass","purple_stained_glass_pane","rail","red_candle","red_carpet","red_mushroom","red_stained_glass","red_stained_glass_pane","red_tulip","redstone_torch","redstone_wall_torch","redstone_wire","repeater","rose_bush","scaffolding","sea_lantern","sea_pickle","seagrass","skeleton_skull","skeleton_wall_skull","small_dripleaf","snow","soul_fire","soul_torch","soul_wall_torch","spore_blossom","spruce_button","spruce_door","spruce_leaves","spruce_sapling","spruce_trapdoor","stone_button","structure_void","sugar_cane","sunflower","sweet_berry_bush","tall_grass","tall_seagrass","tinted_glass","tnt","torch","tripwire","tripwire_hook","tube_coral","tube_coral_fan","tube_coral_wall_fan","twisting_vines","twisting_vines_plant","vine","void_air","wall_torch","warped_button","warped_door","warped_fungus","warped_roots","warped_trapdoor","water","weeping_vines","weeping_vines_plant","wheat","white_candle","white_carpet","white_stained_glass","white_stained_glass_pane","white_tulip","wither_rose","wither_skeleton_skull","wither_skeleton_wall_skull","yellow_candle","yellow_carpet","yellow_stained_glass","yellow_stained_glass_pane","zombie_head","zombie_wall_head","piston_head","sticky_piston"];var Or={},Ht={};Ht.byteLength=Ro,Ht.toByteArray=Go,Ht.fromByteArray=Qo;for(var rt=[],$e=[],No=typeof Uint8Array<"u"?Uint8Array:Array,zr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",St=0,Uo=zr.length;St<Uo;++St)rt[St]=zr[St],$e[zr.charCodeAt(St)]=St;$e["-".charCodeAt(0)]=62,$e["_".charCodeAt(0)]=63;function qn(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function Ro(r){var e=qn(r),t=e[0],n=e[1];return(t+n)*3/4-n}function jo(r,e,t){return(e+t)*3/4-t}function Go(r){var e,t=qn(r),n=t[0],a=t[1],i=new No(jo(r,n,a)),o=0,s=a>0?n-4:n,c;for(c=0;c<s;c+=4)e=$e[r.charCodeAt(c)]<<18|$e[r.charCodeAt(c+1)]<<12|$e[r.charCodeAt(c+2)]<<6|$e[r.charCodeAt(c+3)],i[o++]=e>>16&255,i[o++]=e>>8&255,i[o++]=e&255;return a===2&&(e=$e[r.charCodeAt(c)]<<2|$e[r.charCodeAt(c+1)]>>4,i[o++]=e&255),a===1&&(e=$e[r.charCodeAt(c)]<<10|$e[r.charCodeAt(c+1)]<<4|$e[r.charCodeAt(c+2)]>>2,i[o++]=e>>8&255,i[o++]=e&255),i}function Vo(r){return rt[r>>18&63]+rt[r>>12&63]+rt[r>>6&63]+rt[r&63]}function Wo(r,e,t){for(var n,a=[],i=e;i<t;i+=3)n=(r[i]<<16&16711680)+(r[i+1]<<8&65280)+(r[i+2]&255),a.push(Vo(n));return a.join("")}function Qo(r){for(var e,t=r.length,n=t%3,a=[],i=16383,o=0,s=t-n;o<s;o+=i)a.push(Wo(r,o,o+i>s?s:o+i));return n===1?(e=r[t-1],a.push(rt[e>>2]+rt[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],a.push(rt[e>>10]+rt[e>>4&63]+rt[e<<2&63]+"=")),a.join("")}var Fr={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Fr.read=function(r,e,t,n,a){var i,o,s=a*8-n-1,c=(1<<s)-1,m=c>>1,b=-7,v=t?a-1:0,w=t?-1:1,d=r[e+v];for(v+=w,i=d&(1<<-b)-1,d>>=-b,b+=s;b>0;i=i*256+r[e+v],v+=w,b-=8);for(o=i&(1<<-b)-1,i>>=-b,b+=n;b>0;o=o*256+r[e+v],v+=w,b-=8);if(i===0)i=1-m;else{if(i===c)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-m}return(d?-1:1)*o*Math.pow(2,i-n)},Fr.write=function(r,e,t,n,a,i){var o,s,c,m=i*8-a-1,b=(1<<m)-1,v=b>>1,w=a===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,g=n?1:-1,p=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=b):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+v>=1?e+=w/c:e+=w*Math.pow(2,1-v),e*c>=2&&(o++,c/=2),o+v>=b?(s=0,o=b):o+v>=1?(s=(e*c-1)*Math.pow(2,a),o=o+v):(s=e*Math.pow(2,v-1)*Math.pow(2,a),o=0));a>=8;r[t+d]=s&255,d+=g,s/=256,a-=8);for(o=o<<a|s,m+=a;m>0;r[t+d]=o&255,d+=g,o/=256,m-=8);r[t+d-g]|=p*128};/*!
961
968
  * The buffer module from node.js, for the browser.
962
969
  *
963
970
  * @author Feross Aboukhadijeh <https://feross.org>
964
971
  * @license MIT
965
- */(function(r){const e=Ht,t=Fr,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;r.Buffer=s,r.SlowBuffer=S,r.INSPECT_MAX_BYTES=50;const a=2147483647;r.kMaxLength=a,s.TYPED_ARRAY_SUPPORT=i(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{const _=new Uint8Array(1),l={foo:function(){return 42}};return Object.setPrototypeOf(l,Uint8Array.prototype),Object.setPrototypeOf(_,l),_.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(_){if(_>a)throw new RangeError('The value "'+_+'" is invalid for option "size"');const l=new Uint8Array(_);return Object.setPrototypeOf(l,s.prototype),l}function s(_,l,f){if(typeof _=="number"){if(typeof l=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return v(_)}return c(_,l,f)}s.poolSize=8192;function c(_,l,f){if(typeof _=="string")return w(_,l);if(ArrayBuffer.isView(_))return g(_);if(_==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof _);if(G(_,ArrayBuffer)||_&&G(_.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(G(_,SharedArrayBuffer)||_&&G(_.buffer,SharedArrayBuffer)))return p(_,l,f);if(typeof _=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const C=_.valueOf&&_.valueOf();if(C!=null&&C!==_)return s.from(C,l,f);const E=y(_);if(E)return E;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof _[Symbol.toPrimitive]=="function")return s.from(_[Symbol.toPrimitive]("string"),l,f);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof _)}s.from=function(_,l,f){return c(_,l,f)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function m(_){if(typeof _!="number")throw new TypeError('"size" argument must be of type number');if(_<0)throw new RangeError('The value "'+_+'" is invalid for option "size"')}function b(_,l,f){return m(_),_<=0?o(_):l!==void 0?typeof f=="string"?o(_).fill(l,f):o(_).fill(l):o(_)}s.alloc=function(_,l,f){return b(_,l,f)};function v(_){return m(_),o(_<0?0:x(_)|0)}s.allocUnsafe=function(_){return v(_)},s.allocUnsafeSlow=function(_){return v(_)};function w(_,l){if((typeof l!="string"||l==="")&&(l="utf8"),!s.isEncoding(l))throw new TypeError("Unknown encoding: "+l);const f=D(_,l)|0;let C=o(f);const E=C.write(_,l);return E!==f&&(C=C.slice(0,E)),C}function d(_){const l=_.length<0?0:x(_.length)|0,f=o(l);for(let C=0;C<l;C+=1)f[C]=_[C]&255;return f}function g(_){if(G(_,Uint8Array)){const l=new Uint8Array(_);return p(l.buffer,l.byteOffset,l.byteLength)}return d(_)}function p(_,l,f){if(l<0||_.byteLength<l)throw new RangeError('"offset" is outside of buffer bounds');if(_.byteLength<l+(f||0))throw new RangeError('"length" is outside of buffer bounds');let C;return l===void 0&&f===void 0?C=new Uint8Array(_):f===void 0?C=new Uint8Array(_,l):C=new Uint8Array(_,l,f),Object.setPrototypeOf(C,s.prototype),C}function y(_){if(s.isBuffer(_)){const l=x(_.length)|0,f=o(l);return f.length===0||_.copy(f,0,0,l),f}if(_.length!==void 0)return typeof _.length!="number"||ie(_.length)?o(0):d(_);if(_.type==="Buffer"&&Array.isArray(_.data))return d(_.data)}function x(_){if(_>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return _|0}function S(_){return+_!=_&&(_=0),s.alloc(+_)}s.isBuffer=function(l){return l!=null&&l._isBuffer===!0&&l!==s.prototype},s.compare=function(l,f){if(G(l,Uint8Array)&&(l=s.from(l,l.offset,l.byteLength)),G(f,Uint8Array)&&(f=s.from(f,f.offset,f.byteLength)),!s.isBuffer(l)||!s.isBuffer(f))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(l===f)return 0;let C=l.length,E=f.length;for(let Y=0,H=Math.min(C,E);Y<H;++Y)if(l[Y]!==f[Y]){C=l[Y],E=f[Y];break}return C<E?-1:E<C?1:0},s.isEncoding=function(l){switch(String(l).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(l,f){if(!Array.isArray(l))throw new TypeError('"list" argument must be an Array of Buffers');if(l.length===0)return s.alloc(0);let C;if(f===void 0)for(f=0,C=0;C<l.length;++C)f+=l[C].length;const E=s.allocUnsafe(f);let Y=0;for(C=0;C<l.length;++C){let H=l[C];if(G(H,Uint8Array))Y+H.length>E.length?(s.isBuffer(H)||(H=s.from(H)),H.copy(E,Y)):Uint8Array.prototype.set.call(E,H,Y);else if(s.isBuffer(H))H.copy(E,Y);else throw new TypeError('"list" argument must be an Array of Buffers');Y+=H.length}return E};function D(_,l){if(s.isBuffer(_))return _.length;if(ArrayBuffer.isView(_)||G(_,ArrayBuffer))return _.byteLength;if(typeof _!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof _);const f=_.length,C=arguments.length>2&&arguments[2]===!0;if(!C&&f===0)return 0;let E=!1;for(;;)switch(l){case"ascii":case"latin1":case"binary":return f;case"utf8":case"utf-8":return M(_).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return f*2;case"hex":return f>>>1;case"base64":return R(_).length;default:if(E)return C?-1:M(_).length;l=(""+l).toLowerCase(),E=!0}}s.byteLength=D;function B(_,l,f){let C=!1;if((l===void 0||l<0)&&(l=0),l>this.length||((f===void 0||f>this.length)&&(f=this.length),f<=0)||(f>>>=0,l>>>=0,f<=l))return"";for(_||(_="utf8");;)switch(_){case"hex":return ee(this,l,f);case"utf8":case"utf-8":return A(this,l,f);case"ascii":return q(this,l,f);case"latin1":case"binary":return fe(this,l,f);case"base64":return X(this,l,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ge(this,l,f);default:if(C)throw new TypeError("Unknown encoding: "+_);_=(_+"").toLowerCase(),C=!0}}s.prototype._isBuffer=!0;function I(_,l,f){const C=_[l];_[l]=_[f],_[f]=C}s.prototype.swap16=function(){const l=this.length;if(l%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let f=0;f<l;f+=2)I(this,f,f+1);return this},s.prototype.swap32=function(){const l=this.length;if(l%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let f=0;f<l;f+=4)I(this,f,f+3),I(this,f+1,f+2);return this},s.prototype.swap64=function(){const l=this.length;if(l%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let f=0;f<l;f+=8)I(this,f,f+7),I(this,f+1,f+6),I(this,f+2,f+5),I(this,f+3,f+4);return this},s.prototype.toString=function(){const l=this.length;return l===0?"":arguments.length===0?A(this,0,l):B.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(l){if(!s.isBuffer(l))throw new TypeError("Argument must be a Buffer");return this===l?!0:s.compare(this,l)===0},s.prototype.inspect=function(){let l="";const f=r.INSPECT_MAX_BYTES;return l=this.toString("hex",0,f).replace(/(.{2})/g,"$1 ").trim(),this.length>f&&(l+=" ... "),"<Buffer "+l+">"},n&&(s.prototype[n]=s.prototype.inspect),s.prototype.compare=function(l,f,C,E,Y){if(G(l,Uint8Array)&&(l=s.from(l,l.offset,l.byteLength)),!s.isBuffer(l))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof l);if(f===void 0&&(f=0),C===void 0&&(C=l?l.length:0),E===void 0&&(E=0),Y===void 0&&(Y=this.length),f<0||C>l.length||E<0||Y>this.length)throw new RangeError("out of range index");if(E>=Y&&f>=C)return 0;if(E>=Y)return-1;if(f>=C)return 1;if(f>>>=0,C>>>=0,E>>>=0,Y>>>=0,this===l)return 0;let H=Y-E,Se=C-f;const Me=Math.min(H,Se),ye=this.slice(E,Y),L=l.slice(f,C);for(let ce=0;ce<Me;++ce)if(ye[ce]!==L[ce]){H=ye[ce],Se=L[ce];break}return H<Se?-1:Se<H?1:0};function T(_,l,f,C,E){if(_.length===0)return-1;if(typeof f=="string"?(C=f,f=0):f>2147483647?f=2147483647:f<-2147483648&&(f=-2147483648),f=+f,ie(f)&&(f=E?0:_.length-1),f<0&&(f=_.length+f),f>=_.length){if(E)return-1;f=_.length-1}else if(f<0)if(E)f=0;else return-1;if(typeof l=="string"&&(l=s.from(l,C)),s.isBuffer(l))return l.length===0?-1:O(_,l,f,C,E);if(typeof l=="number")return l=l&255,typeof Uint8Array.prototype.indexOf=="function"?E?Uint8Array.prototype.indexOf.call(_,l,f):Uint8Array.prototype.lastIndexOf.call(_,l,f):O(_,[l],f,C,E);throw new TypeError("val must be string, number or Buffer")}function O(_,l,f,C,E){let Y=1,H=_.length,Se=l.length;if(C!==void 0&&(C=String(C).toLowerCase(),C==="ucs2"||C==="ucs-2"||C==="utf16le"||C==="utf-16le")){if(_.length<2||l.length<2)return-1;Y=2,H/=2,Se/=2,f/=2}function Me(L,ce){return Y===1?L[ce]:L.readUInt16BE(ce*Y)}let ye;if(E){let L=-1;for(ye=f;ye<H;ye++)if(Me(_,ye)===Me(l,L===-1?0:ye-L)){if(L===-1&&(L=ye),ye-L+1===Se)return L*Y}else L!==-1&&(ye-=ye-L),L=-1}else for(f+Se>H&&(f=H-Se),ye=f;ye>=0;ye--){let L=!0;for(let ce=0;ce<Se;ce++)if(Me(_,ye+ce)!==Me(l,ce)){L=!1;break}if(L)return ye}return-1}s.prototype.includes=function(l,f,C){return this.indexOf(l,f,C)!==-1},s.prototype.indexOf=function(l,f,C){return T(this,l,f,C,!0)},s.prototype.lastIndexOf=function(l,f,C){return T(this,l,f,C,!1)};function V(_,l,f,C){f=Number(f)||0;const E=_.length-f;C?(C=Number(C),C>E&&(C=E)):C=E;const Y=l.length;C>Y/2&&(C=Y/2);let H;for(H=0;H<C;++H){const Se=parseInt(l.substr(H*2,2),16);if(ie(Se))return H;_[f+H]=Se}return H}function W(_,l,f,C){return Q(M(l,_.length-f),_,f,C)}function Z(_,l,f,C){return Q(k(l),_,f,C)}function se(_,l,f,C){return Q(R(l),_,f,C)}function P(_,l,f,C){return Q(z(l,_.length-f),_,f,C)}s.prototype.write=function(l,f,C,E){if(f===void 0)E="utf8",C=this.length,f=0;else if(C===void 0&&typeof f=="string")E=f,C=this.length,f=0;else if(isFinite(f))f=f>>>0,isFinite(C)?(C=C>>>0,E===void 0&&(E="utf8")):(E=C,C=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const Y=this.length-f;if((C===void 0||C>Y)&&(C=Y),l.length>0&&(C<0||f<0)||f>this.length)throw new RangeError("Attempt to write outside buffer bounds");E||(E="utf8");let H=!1;for(;;)switch(E){case"hex":return V(this,l,f,C);case"utf8":case"utf-8":return W(this,l,f,C);case"ascii":case"latin1":case"binary":return Z(this,l,f,C);case"base64":return se(this,l,f,C);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,l,f,C);default:if(H)throw new TypeError("Unknown encoding: "+E);E=(""+E).toLowerCase(),H=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function X(_,l,f){return l===0&&f===_.length?e.fromByteArray(_):e.fromByteArray(_.slice(l,f))}function A(_,l,f){f=Math.min(_.length,f);const C=[];let E=l;for(;E<f;){const Y=_[E];let H=null,Se=Y>239?4:Y>223?3:Y>191?2:1;if(E+Se<=f){let Me,ye,L,ce;switch(Se){case 1:Y<128&&(H=Y);break;case 2:Me=_[E+1],(Me&192)===128&&(ce=(Y&31)<<6|Me&63,ce>127&&(H=ce));break;case 3:Me=_[E+1],ye=_[E+2],(Me&192)===128&&(ye&192)===128&&(ce=(Y&15)<<12|(Me&63)<<6|ye&63,ce>2047&&(ce<55296||ce>57343)&&(H=ce));break;case 4:Me=_[E+1],ye=_[E+2],L=_[E+3],(Me&192)===128&&(ye&192)===128&&(L&192)===128&&(ce=(Y&15)<<18|(Me&63)<<12|(ye&63)<<6|L&63,ce>65535&&ce<1114112&&(H=ce))}}H===null?(H=65533,Se=1):H>65535&&(H-=65536,C.push(H>>>10&1023|55296),H=56320|H&1023),C.push(H),E+=Se}return oe(C)}const J=4096;function oe(_){const l=_.length;if(l<=J)return String.fromCharCode.apply(String,_);let f="",C=0;for(;C<l;)f+=String.fromCharCode.apply(String,_.slice(C,C+=J));return f}function q(_,l,f){let C="";f=Math.min(_.length,f);for(let E=l;E<f;++E)C+=String.fromCharCode(_[E]&127);return C}function fe(_,l,f){let C="";f=Math.min(_.length,f);for(let E=l;E<f;++E)C+=String.fromCharCode(_[E]);return C}function ee(_,l,f){const C=_.length;(!l||l<0)&&(l=0),(!f||f<0||f>C)&&(f=C);let E="";for(let Y=l;Y<f;++Y)E+=ue[_[Y]];return E}function ge(_,l,f){const C=_.slice(l,f);let E="";for(let Y=0;Y<C.length-1;Y+=2)E+=String.fromCharCode(C[Y]+C[Y+1]*256);return E}s.prototype.slice=function(l,f){const C=this.length;l=~~l,f=f===void 0?C:~~f,l<0?(l+=C,l<0&&(l=0)):l>C&&(l=C),f<0?(f+=C,f<0&&(f=0)):f>C&&(f=C),f<l&&(f=l);const E=this.subarray(l,f);return Object.setPrototypeOf(E,s.prototype),E};function j(_,l,f){if(_%1!==0||_<0)throw new RangeError("offset is not uint");if(_+l>f)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(l,f,C){l=l>>>0,f=f>>>0,C||j(l,f,this.length);let E=this[l],Y=1,H=0;for(;++H<f&&(Y*=256);)E+=this[l+H]*Y;return E},s.prototype.readUintBE=s.prototype.readUIntBE=function(l,f,C){l=l>>>0,f=f>>>0,C||j(l,f,this.length);let E=this[l+--f],Y=1;for(;f>0&&(Y*=256);)E+=this[l+--f]*Y;return E},s.prototype.readUint8=s.prototype.readUInt8=function(l,f){return l=l>>>0,f||j(l,1,this.length),this[l]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(l,f){return l=l>>>0,f||j(l,2,this.length),this[l]|this[l+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(l,f){return l=l>>>0,f||j(l,2,this.length),this[l]<<8|this[l+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(l,f){return l=l>>>0,f||j(l,4,this.length),(this[l]|this[l+1]<<8|this[l+2]<<16)+this[l+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(l,f){return l=l>>>0,f||j(l,4,this.length),this[l]*16777216+(this[l+1]<<16|this[l+2]<<8|this[l+3])},s.prototype.readBigUInt64LE=ae(function(l){l=l>>>0,re(l,"offset");const f=this[l],C=this[l+7];(f===void 0||C===void 0)&&u(l,this.length-8);const E=f+this[++l]*2**8+this[++l]*2**16+this[++l]*2**24,Y=this[++l]+this[++l]*2**8+this[++l]*2**16+C*2**24;return BigInt(E)+(BigInt(Y)<<BigInt(32))}),s.prototype.readBigUInt64BE=ae(function(l){l=l>>>0,re(l,"offset");const f=this[l],C=this[l+7];(f===void 0||C===void 0)&&u(l,this.length-8);const E=f*2**24+this[++l]*2**16+this[++l]*2**8+this[++l],Y=this[++l]*2**24+this[++l]*2**16+this[++l]*2**8+C;return(BigInt(E)<<BigInt(32))+BigInt(Y)}),s.prototype.readIntLE=function(l,f,C){l=l>>>0,f=f>>>0,C||j(l,f,this.length);let E=this[l],Y=1,H=0;for(;++H<f&&(Y*=256);)E+=this[l+H]*Y;return Y*=128,E>=Y&&(E-=Math.pow(2,8*f)),E},s.prototype.readIntBE=function(l,f,C){l=l>>>0,f=f>>>0,C||j(l,f,this.length);let E=f,Y=1,H=this[l+--E];for(;E>0&&(Y*=256);)H+=this[l+--E]*Y;return Y*=128,H>=Y&&(H-=Math.pow(2,8*f)),H},s.prototype.readInt8=function(l,f){return l=l>>>0,f||j(l,1,this.length),this[l]&128?(255-this[l]+1)*-1:this[l]},s.prototype.readInt16LE=function(l,f){l=l>>>0,f||j(l,2,this.length);const C=this[l]|this[l+1]<<8;return C&32768?C|4294901760:C},s.prototype.readInt16BE=function(l,f){l=l>>>0,f||j(l,2,this.length);const C=this[l+1]|this[l]<<8;return C&32768?C|4294901760:C},s.prototype.readInt32LE=function(l,f){return l=l>>>0,f||j(l,4,this.length),this[l]|this[l+1]<<8|this[l+2]<<16|this[l+3]<<24},s.prototype.readInt32BE=function(l,f){return l=l>>>0,f||j(l,4,this.length),this[l]<<24|this[l+1]<<16|this[l+2]<<8|this[l+3]},s.prototype.readBigInt64LE=ae(function(l){l=l>>>0,re(l,"offset");const f=this[l],C=this[l+7];(f===void 0||C===void 0)&&u(l,this.length-8);const E=this[l+4]+this[l+5]*2**8+this[l+6]*2**16+(C<<24);return(BigInt(E)<<BigInt(32))+BigInt(f+this[++l]*2**8+this[++l]*2**16+this[++l]*2**24)}),s.prototype.readBigInt64BE=ae(function(l){l=l>>>0,re(l,"offset");const f=this[l],C=this[l+7];(f===void 0||C===void 0)&&u(l,this.length-8);const E=(f<<24)+this[++l]*2**16+this[++l]*2**8+this[++l];return(BigInt(E)<<BigInt(32))+BigInt(this[++l]*2**24+this[++l]*2**16+this[++l]*2**8+C)}),s.prototype.readFloatLE=function(l,f){return l=l>>>0,f||j(l,4,this.length),t.read(this,l,!0,23,4)},s.prototype.readFloatBE=function(l,f){return l=l>>>0,f||j(l,4,this.length),t.read(this,l,!1,23,4)},s.prototype.readDoubleLE=function(l,f){return l=l>>>0,f||j(l,8,this.length),t.read(this,l,!0,52,8)},s.prototype.readDoubleBE=function(l,f){return l=l>>>0,f||j(l,8,this.length),t.read(this,l,!1,52,8)};function U(_,l,f,C,E,Y){if(!s.isBuffer(_))throw new TypeError('"buffer" argument must be a Buffer instance');if(l>E||l<Y)throw new RangeError('"value" argument is out of bounds');if(f+C>_.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(l,f,C,E){if(l=+l,f=f>>>0,C=C>>>0,!E){const Se=Math.pow(2,8*C)-1;U(this,l,f,C,Se,0)}let Y=1,H=0;for(this[f]=l&255;++H<C&&(Y*=256);)this[f+H]=l/Y&255;return f+C},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(l,f,C,E){if(l=+l,f=f>>>0,C=C>>>0,!E){const Se=Math.pow(2,8*C)-1;U(this,l,f,C,Se,0)}let Y=C-1,H=1;for(this[f+Y]=l&255;--Y>=0&&(H*=256);)this[f+Y]=l/H&255;return f+C},s.prototype.writeUint8=s.prototype.writeUInt8=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,1,255,0),this[f]=l&255,f+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,2,65535,0),this[f]=l&255,this[f+1]=l>>>8,f+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,2,65535,0),this[f]=l>>>8,this[f+1]=l&255,f+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,4,4294967295,0),this[f+3]=l>>>24,this[f+2]=l>>>16,this[f+1]=l>>>8,this[f]=l&255,f+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,4,4294967295,0),this[f]=l>>>24,this[f+1]=l>>>16,this[f+2]=l>>>8,this[f+3]=l&255,f+4};function ve(_,l,f,C,E){he(l,C,E,_,f,7);let Y=Number(l&BigInt(4294967295));_[f++]=Y,Y=Y>>8,_[f++]=Y,Y=Y>>8,_[f++]=Y,Y=Y>>8,_[f++]=Y;let H=Number(l>>BigInt(32)&BigInt(4294967295));return _[f++]=H,H=H>>8,_[f++]=H,H=H>>8,_[f++]=H,H=H>>8,_[f++]=H,f}function de(_,l,f,C,E){he(l,C,E,_,f,7);let Y=Number(l&BigInt(4294967295));_[f+7]=Y,Y=Y>>8,_[f+6]=Y,Y=Y>>8,_[f+5]=Y,Y=Y>>8,_[f+4]=Y;let H=Number(l>>BigInt(32)&BigInt(4294967295));return _[f+3]=H,H=H>>8,_[f+2]=H,H=H>>8,_[f+1]=H,H=H>>8,_[f]=H,f+8}s.prototype.writeBigUInt64LE=ae(function(l,f=0){return ve(this,l,f,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=ae(function(l,f=0){return de(this,l,f,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(l,f,C,E){if(l=+l,f=f>>>0,!E){const Me=Math.pow(2,8*C-1);U(this,l,f,C,Me-1,-Me)}let Y=0,H=1,Se=0;for(this[f]=l&255;++Y<C&&(H*=256);)l<0&&Se===0&&this[f+Y-1]!==0&&(Se=1),this[f+Y]=(l/H>>0)-Se&255;return f+C},s.prototype.writeIntBE=function(l,f,C,E){if(l=+l,f=f>>>0,!E){const Me=Math.pow(2,8*C-1);U(this,l,f,C,Me-1,-Me)}let Y=C-1,H=1,Se=0;for(this[f+Y]=l&255;--Y>=0&&(H*=256);)l<0&&Se===0&&this[f+Y+1]!==0&&(Se=1),this[f+Y]=(l/H>>0)-Se&255;return f+C},s.prototype.writeInt8=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,1,127,-128),l<0&&(l=255+l+1),this[f]=l&255,f+1},s.prototype.writeInt16LE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,2,32767,-32768),this[f]=l&255,this[f+1]=l>>>8,f+2},s.prototype.writeInt16BE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,2,32767,-32768),this[f]=l>>>8,this[f+1]=l&255,f+2},s.prototype.writeInt32LE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,4,2147483647,-2147483648),this[f]=l&255,this[f+1]=l>>>8,this[f+2]=l>>>16,this[f+3]=l>>>24,f+4},s.prototype.writeInt32BE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,4,2147483647,-2147483648),l<0&&(l=4294967295+l+1),this[f]=l>>>24,this[f+1]=l>>>16,this[f+2]=l>>>8,this[f+3]=l&255,f+4},s.prototype.writeBigInt64LE=ae(function(l,f=0){return ve(this,l,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=ae(function(l,f=0){return de(this,l,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function te(_,l,f,C,E,Y){if(f+C>_.length)throw new RangeError("Index out of range");if(f<0)throw new RangeError("Index out of range")}function Te(_,l,f,C,E){return l=+l,f=f>>>0,E||te(_,l,f,4),t.write(_,l,f,C,23,4),f+4}s.prototype.writeFloatLE=function(l,f,C){return Te(this,l,f,!0,C)},s.prototype.writeFloatBE=function(l,f,C){return Te(this,l,f,!1,C)};function Oe(_,l,f,C,E){return l=+l,f=f>>>0,E||te(_,l,f,8),t.write(_,l,f,C,52,8),f+8}s.prototype.writeDoubleLE=function(l,f,C){return Oe(this,l,f,!0,C)},s.prototype.writeDoubleBE=function(l,f,C){return Oe(this,l,f,!1,C)},s.prototype.copy=function(l,f,C,E){if(!s.isBuffer(l))throw new TypeError("argument should be a Buffer");if(C||(C=0),!E&&E!==0&&(E=this.length),f>=l.length&&(f=l.length),f||(f=0),E>0&&E<C&&(E=C),E===C||l.length===0||this.length===0)return 0;if(f<0)throw new RangeError("targetStart out of bounds");if(C<0||C>=this.length)throw new RangeError("Index out of range");if(E<0)throw new RangeError("sourceEnd out of bounds");E>this.length&&(E=this.length),l.length-f<E-C&&(E=l.length-f+C);const Y=E-C;return this===l&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(f,C,E):Uint8Array.prototype.set.call(l,this.subarray(C,E),f),Y},s.prototype.fill=function(l,f,C,E){if(typeof l=="string"){if(typeof f=="string"?(E=f,f=0,C=this.length):typeof C=="string"&&(E=C,C=this.length),E!==void 0&&typeof E!="string")throw new TypeError("encoding must be a string");if(typeof E=="string"&&!s.isEncoding(E))throw new TypeError("Unknown encoding: "+E);if(l.length===1){const H=l.charCodeAt(0);(E==="utf8"&&H<128||E==="latin1")&&(l=H)}}else typeof l=="number"?l=l&255:typeof l=="boolean"&&(l=Number(l));if(f<0||this.length<f||this.length<C)throw new RangeError("Out of range index");if(C<=f)return this;f=f>>>0,C=C===void 0?this.length:C>>>0,l||(l=0);let Y;if(typeof l=="number")for(Y=f;Y<C;++Y)this[Y]=l;else{const H=s.isBuffer(l)?l:s.from(l,E),Se=H.length;if(Se===0)throw new TypeError('The value "'+l+'" is invalid for argument "value"');for(Y=0;Y<C-f;++Y)this[Y+f]=H[Y%Se]}return this};const pe={};function be(_,l,f){pe[_]=class extends f{constructor(){super(),Object.defineProperty(this,"message",{value:l.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${_}]`,this.stack,delete this.name}get code(){return _}set code(E){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:E,writable:!0})}toString(){return`${this.name} [${_}]: ${this.message}`}}}be("ERR_BUFFER_OUT_OF_BOUNDS",function(_){return _?`${_} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),be("ERR_INVALID_ARG_TYPE",function(_,l){return`The "${_}" argument must be of type number. Received type ${typeof l}`},TypeError),be("ERR_OUT_OF_RANGE",function(_,l,f){let C=`The value of "${_}" is out of range.`,E=f;return Number.isInteger(f)&&Math.abs(f)>2**32?E=xe(String(f)):typeof f=="bigint"&&(E=String(f),(f>BigInt(2)**BigInt(32)||f<-(BigInt(2)**BigInt(32)))&&(E=xe(E)),E+="n"),C+=` It must be ${l}. Received ${E}`,C},RangeError);function xe(_){let l="",f=_.length;const C=_[0]==="-"?1:0;for(;f>=C+4;f-=3)l=`_${_.slice(f-3,f)}${l}`;return`${_.slice(0,f)}${l}`}function $(_,l,f){re(l,"offset"),(_[l]===void 0||_[l+f]===void 0)&&u(l,_.length-(f+1))}function he(_,l,f,C,E,Y){if(_>f||_<l){const H=typeof l=="bigint"?"n":"";let Se;throw Y>3?l===0||l===BigInt(0)?Se=`>= 0${H} and < 2${H} ** ${(Y+1)*8}${H}`:Se=`>= -(2${H} ** ${(Y+1)*8-1}${H}) and < 2 ** ${(Y+1)*8-1}${H}`:Se=`>= ${l}${H} and <= ${f}${H}`,new pe.ERR_OUT_OF_RANGE("value",Se,_)}$(C,E,Y)}function re(_,l){if(typeof _!="number")throw new pe.ERR_INVALID_ARG_TYPE(l,"number",_)}function u(_,l,f){throw Math.floor(_)!==_?(re(_,f),new pe.ERR_OUT_OF_RANGE(f||"offset","an integer",_)):l<0?new pe.ERR_BUFFER_OUT_OF_BOUNDS:new pe.ERR_OUT_OF_RANGE(f||"offset",`>= ${f?1:0} and <= ${l}`,_)}const K=/[^+/0-9A-Za-z-_]/g;function F(_){if(_=_.split("=")[0],_=_.trim().replace(K,""),_.length<2)return"";for(;_.length%4!==0;)_=_+"=";return _}function M(_,l){l=l||1/0;let f;const C=_.length;let E=null;const Y=[];for(let H=0;H<C;++H){if(f=_.charCodeAt(H),f>55295&&f<57344){if(!E){if(f>56319){(l-=3)>-1&&Y.push(239,191,189);continue}else if(H+1===C){(l-=3)>-1&&Y.push(239,191,189);continue}E=f;continue}if(f<56320){(l-=3)>-1&&Y.push(239,191,189),E=f;continue}f=(E-55296<<10|f-56320)+65536}else E&&(l-=3)>-1&&Y.push(239,191,189);if(E=null,f<128){if((l-=1)<0)break;Y.push(f)}else if(f<2048){if((l-=2)<0)break;Y.push(f>>6|192,f&63|128)}else if(f<65536){if((l-=3)<0)break;Y.push(f>>12|224,f>>6&63|128,f&63|128)}else if(f<1114112){if((l-=4)<0)break;Y.push(f>>18|240,f>>12&63|128,f>>6&63|128,f&63|128)}else throw new Error("Invalid code point")}return Y}function k(_){const l=[];for(let f=0;f<_.length;++f)l.push(_.charCodeAt(f)&255);return l}function z(_,l){let f,C,E;const Y=[];for(let H=0;H<_.length&&!((l-=2)<0);++H)f=_.charCodeAt(H),C=f>>8,E=f%256,Y.push(E),Y.push(C);return Y}function R(_){return e.toByteArray(F(_))}function Q(_,l,f,C){let E;for(E=0;E<C&&!(E+f>=l.length||E>=_.length);++E)l[E+f]=_[E];return E}function G(_,l){return _ instanceof l||_!=null&&_.constructor!=null&&_.constructor.name!=null&&_.constructor.name===l.name}function ie(_){return _!==_}const ue=function(){const _="0123456789abcdef",l=new Array(256);for(let f=0;f<16;++f){const C=f*16;for(let E=0;E<16;++E)l[C+E]=_[f]+_[E]}return l}();function ae(_){return typeof BigInt>"u"?_e:_}function _e(){throw new Error("BigInt not supported")}})(Or);const Zt=["south","north","east","west","up","down"],$n=[0,0,16,16],Qo=Zt.slice().reverse(),Yo={east:{normal:[1,0,0],corners:[{pos:[1,0,0],uv:[0,1]},{pos:[1,1,0],uv:[0,0]},{pos:[1,0,1],uv:[1,1]},{pos:[1,1,1],uv:[1,0]}]},west:{normal:[-1,0,0],corners:[{pos:[0,0,1],uv:[0,1]},{pos:[0,1,1],uv:[0,0]},{pos:[0,0,0],uv:[1,1]},{pos:[0,1,0],uv:[1,0]}]},up:{normal:[0,1,0],corners:[{pos:[0,1,1],uv:[0,1]},{pos:[1,1,1],uv:[1,1]},{pos:[0,1,0],uv:[0,0]},{pos:[1,1,0],uv:[1,0]}]},down:{normal:[0,-1,0],corners:[{pos:[1,0,1],uv:[0,0]},{pos:[0,0,1],uv:[1,0]},{pos:[1,0,0],uv:[0,1]},{pos:[0,0,0],uv:[1,1]}]},south:{normal:[0,0,1],corners:[{pos:[1,1,1],uv:[1,0]},{pos:[0,1,1],uv:[0,0]},{pos:[1,0,1],uv:[1,1]},{pos:[0,0,1],uv:[0,1]}]},north:{normal:[0,0,-1],corners:[{pos:[1,0,0],uv:[1,1]},{pos:[0,0,0],uv:[0,1]},{pos:[1,1,0],uv:[1,0]},{pos:[0,1,0],uv:[0,0]}]}};function Xo(r){const e=Yo;return{east:{normal:e.east.normal,corners:[{pos:e.east.corners[0].pos,uv:[r.east[0],r.east[3]]},{pos:e.east.corners[1].pos,uv:[r.east[0],r.east[1]]},{pos:e.east.corners[2].pos,uv:[r.east[2],r.east[3]]},{pos:e.east.corners[3].pos,uv:[r.east[2],r.east[1]]}]},west:{normal:e.west.normal,corners:[{pos:e.west.corners[0].pos,uv:[r.west[0],r.west[3]]},{pos:e.west.corners[1].pos,uv:[r.west[0],r.west[1]]},{pos:e.west.corners[2].pos,uv:[r.west[2],r.west[3]]},{pos:e.west.corners[3].pos,uv:[r.west[2],r.west[1]]}]},up:{normal:e.up.normal,corners:[{pos:e.up.corners[0].pos,uv:[r.up[0],r.up[3]]},{pos:e.up.corners[1].pos,uv:[r.up[2],r.up[3]]},{pos:e.up.corners[2].pos,uv:[r.up[0],r.up[1]]},{pos:e.up.corners[3].pos,uv:[r.up[2],r.up[1]]}]},down:{normal:e.down.normal,corners:[{pos:e.down.corners[0].pos,uv:[r.down[0],r.down[1]]},{pos:e.down.corners[1].pos,uv:[r.down[2],r.down[1]]},{pos:e.down.corners[2].pos,uv:[r.down[0],r.down[3]]},{pos:e.down.corners[3].pos,uv:[r.down[2],r.down[3]]}]},south:{normal:e.south.normal,corners:[{pos:e.south.corners[0].pos,uv:[r.south[2],r.south[1]]},{pos:e.south.corners[1].pos,uv:[r.south[0],r.south[1]]},{pos:e.south.corners[2].pos,uv:[r.south[2],r.south[3]]},{pos:e.south.corners[3].pos,uv:[r.south[0],r.south[3]]}]},north:{normal:e.north.normal,corners:[{pos:e.north.corners[0].pos,uv:[r.north[2],r.north[3]]},{pos:e.north.corners[1].pos,uv:[r.north[0],r.north[3]]},{pos:e.north.corners[2].pos,uv:[r.north[2],r.north[1]]},{pos:e.north.corners[3].pos,uv:[r.north[0],r.north[1]]}]}}}const Ko=[new Ae.Color(75/255,0,0),new Ae.Color(110/255,0,0),new Ae.Color(120/255,0,0),new Ae.Color(130/255,0,0),new Ae.Color(140/255,0,0),new Ae.Color(151/255,0,0),new Ae.Color(160/255,0,0),new Ae.Color(170/255,0,0),new Ae.Color(180/255,0,0),new Ae.Color(190/255,0,0),new Ae.Color(201/255,0,0),new Ae.Color(211/255,0,0),new Ae.Color(214/255,0,0),new Ae.Color(224/255,6/255,0),new Ae.Color(233/255,26/255,0),new Ae.Color(244/255,48/255,0)];function Nr(r){return r/16}function Ho(r){var e;return(r.type==="sticky_piston"||r.type==="piston")&&((e=r.properties)==null?void 0:e.extended)==="true"}const Jt=new Set(["air","cave_air","void_air","structure_void","barrier","light"]),qt=new Set([...Jt,...zo]),ea=new Set([...Jt,...Oo]);function Zo(r){let e;try{e=Lo.unzip(r)}catch{e=r}const t=Or.Buffer.from(e);return Eo(t,{unnamed:!1,useMaps:!0}).value}function ta(r){const e=Or.Buffer.from(r,"base64");return Zo(e)}function kt(r){let e=r.type;if(r.properties)for(const t in r.properties)e+=r.properties[t];return e}function ra(r){const e={};for(const t of Qo)e[t]=!!(r&1),r=r>>1;return e}function Jo(r){switch(r){case"north":return"south";case"south":return"north";case"east":return"west";case"west":return"east";case"up":return"down";case"down":return"up";default:return"north"}}function $t(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var na={exports:{}};/*!
972
+ */(function(r){const e=Ht,t=Fr,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;r.Buffer=s,r.SlowBuffer=S,r.INSPECT_MAX_BYTES=50;const a=2147483647;r.kMaxLength=a,s.TYPED_ARRAY_SUPPORT=i(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{const _=new Uint8Array(1),l={foo:function(){return 42}};return Object.setPrototypeOf(l,Uint8Array.prototype),Object.setPrototypeOf(_,l),_.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(_){if(_>a)throw new RangeError('The value "'+_+'" is invalid for option "size"');const l=new Uint8Array(_);return Object.setPrototypeOf(l,s.prototype),l}function s(_,l,f){if(typeof _=="number"){if(typeof l=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return v(_)}return c(_,l,f)}s.poolSize=8192;function c(_,l,f){if(typeof _=="string")return w(_,l);if(ArrayBuffer.isView(_))return g(_);if(_==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof _);if(G(_,ArrayBuffer)||_&&G(_.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(G(_,SharedArrayBuffer)||_&&G(_.buffer,SharedArrayBuffer)))return p(_,l,f);if(typeof _=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const C=_.valueOf&&_.valueOf();if(C!=null&&C!==_)return s.from(C,l,f);const E=y(_);if(E)return E;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof _[Symbol.toPrimitive]=="function")return s.from(_[Symbol.toPrimitive]("string"),l,f);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof _)}s.from=function(_,l,f){return c(_,l,f)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function m(_){if(typeof _!="number")throw new TypeError('"size" argument must be of type number');if(_<0)throw new RangeError('The value "'+_+'" is invalid for option "size"')}function b(_,l,f){return m(_),_<=0?o(_):l!==void 0?typeof f=="string"?o(_).fill(l,f):o(_).fill(l):o(_)}s.alloc=function(_,l,f){return b(_,l,f)};function v(_){return m(_),o(_<0?0:x(_)|0)}s.allocUnsafe=function(_){return v(_)},s.allocUnsafeSlow=function(_){return v(_)};function w(_,l){if((typeof l!="string"||l==="")&&(l="utf8"),!s.isEncoding(l))throw new TypeError("Unknown encoding: "+l);const f=D(_,l)|0;let C=o(f);const E=C.write(_,l);return E!==f&&(C=C.slice(0,E)),C}function d(_){const l=_.length<0?0:x(_.length)|0,f=o(l);for(let C=0;C<l;C+=1)f[C]=_[C]&255;return f}function g(_){if(G(_,Uint8Array)){const l=new Uint8Array(_);return p(l.buffer,l.byteOffset,l.byteLength)}return d(_)}function p(_,l,f){if(l<0||_.byteLength<l)throw new RangeError('"offset" is outside of buffer bounds');if(_.byteLength<l+(f||0))throw new RangeError('"length" is outside of buffer bounds');let C;return l===void 0&&f===void 0?C=new Uint8Array(_):f===void 0?C=new Uint8Array(_,l):C=new Uint8Array(_,l,f),Object.setPrototypeOf(C,s.prototype),C}function y(_){if(s.isBuffer(_)){const l=x(_.length)|0,f=o(l);return f.length===0||_.copy(f,0,0,l),f}if(_.length!==void 0)return typeof _.length!="number"||ie(_.length)?o(0):d(_);if(_.type==="Buffer"&&Array.isArray(_.data))return d(_.data)}function x(_){if(_>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return _|0}function S(_){return+_!=_&&(_=0),s.alloc(+_)}s.isBuffer=function(l){return l!=null&&l._isBuffer===!0&&l!==s.prototype},s.compare=function(l,f){if(G(l,Uint8Array)&&(l=s.from(l,l.offset,l.byteLength)),G(f,Uint8Array)&&(f=s.from(f,f.offset,f.byteLength)),!s.isBuffer(l)||!s.isBuffer(f))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(l===f)return 0;let C=l.length,E=f.length;for(let Y=0,H=Math.min(C,E);Y<H;++Y)if(l[Y]!==f[Y]){C=l[Y],E=f[Y];break}return C<E?-1:E<C?1:0},s.isEncoding=function(l){switch(String(l).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(l,f){if(!Array.isArray(l))throw new TypeError('"list" argument must be an Array of Buffers');if(l.length===0)return s.alloc(0);let C;if(f===void 0)for(f=0,C=0;C<l.length;++C)f+=l[C].length;const E=s.allocUnsafe(f);let Y=0;for(C=0;C<l.length;++C){let H=l[C];if(G(H,Uint8Array))Y+H.length>E.length?(s.isBuffer(H)||(H=s.from(H)),H.copy(E,Y)):Uint8Array.prototype.set.call(E,H,Y);else if(s.isBuffer(H))H.copy(E,Y);else throw new TypeError('"list" argument must be an Array of Buffers');Y+=H.length}return E};function D(_,l){if(s.isBuffer(_))return _.length;if(ArrayBuffer.isView(_)||G(_,ArrayBuffer))return _.byteLength;if(typeof _!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof _);const f=_.length,C=arguments.length>2&&arguments[2]===!0;if(!C&&f===0)return 0;let E=!1;for(;;)switch(l){case"ascii":case"latin1":case"binary":return f;case"utf8":case"utf-8":return M(_).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return f*2;case"hex":return f>>>1;case"base64":return R(_).length;default:if(E)return C?-1:M(_).length;l=(""+l).toLowerCase(),E=!0}}s.byteLength=D;function B(_,l,f){let C=!1;if((l===void 0||l<0)&&(l=0),l>this.length||((f===void 0||f>this.length)&&(f=this.length),f<=0)||(f>>>=0,l>>>=0,f<=l))return"";for(_||(_="utf8");;)switch(_){case"hex":return ee(this,l,f);case"utf8":case"utf-8":return A(this,l,f);case"ascii":return q(this,l,f);case"latin1":case"binary":return fe(this,l,f);case"base64":return X(this,l,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ge(this,l,f);default:if(C)throw new TypeError("Unknown encoding: "+_);_=(_+"").toLowerCase(),C=!0}}s.prototype._isBuffer=!0;function I(_,l,f){const C=_[l];_[l]=_[f],_[f]=C}s.prototype.swap16=function(){const l=this.length;if(l%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let f=0;f<l;f+=2)I(this,f,f+1);return this},s.prototype.swap32=function(){const l=this.length;if(l%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let f=0;f<l;f+=4)I(this,f,f+3),I(this,f+1,f+2);return this},s.prototype.swap64=function(){const l=this.length;if(l%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let f=0;f<l;f+=8)I(this,f,f+7),I(this,f+1,f+6),I(this,f+2,f+5),I(this,f+3,f+4);return this},s.prototype.toString=function(){const l=this.length;return l===0?"":arguments.length===0?A(this,0,l):B.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(l){if(!s.isBuffer(l))throw new TypeError("Argument must be a Buffer");return this===l?!0:s.compare(this,l)===0},s.prototype.inspect=function(){let l="";const f=r.INSPECT_MAX_BYTES;return l=this.toString("hex",0,f).replace(/(.{2})/g,"$1 ").trim(),this.length>f&&(l+=" ... "),"<Buffer "+l+">"},n&&(s.prototype[n]=s.prototype.inspect),s.prototype.compare=function(l,f,C,E,Y){if(G(l,Uint8Array)&&(l=s.from(l,l.offset,l.byteLength)),!s.isBuffer(l))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof l);if(f===void 0&&(f=0),C===void 0&&(C=l?l.length:0),E===void 0&&(E=0),Y===void 0&&(Y=this.length),f<0||C>l.length||E<0||Y>this.length)throw new RangeError("out of range index");if(E>=Y&&f>=C)return 0;if(E>=Y)return-1;if(f>=C)return 1;if(f>>>=0,C>>>=0,E>>>=0,Y>>>=0,this===l)return 0;let H=Y-E,Se=C-f;const Me=Math.min(H,Se),ye=this.slice(E,Y),L=l.slice(f,C);for(let ce=0;ce<Me;++ce)if(ye[ce]!==L[ce]){H=ye[ce],Se=L[ce];break}return H<Se?-1:Se<H?1:0};function T(_,l,f,C,E){if(_.length===0)return-1;if(typeof f=="string"?(C=f,f=0):f>2147483647?f=2147483647:f<-2147483648&&(f=-2147483648),f=+f,ie(f)&&(f=E?0:_.length-1),f<0&&(f=_.length+f),f>=_.length){if(E)return-1;f=_.length-1}else if(f<0)if(E)f=0;else return-1;if(typeof l=="string"&&(l=s.from(l,C)),s.isBuffer(l))return l.length===0?-1:O(_,l,f,C,E);if(typeof l=="number")return l=l&255,typeof Uint8Array.prototype.indexOf=="function"?E?Uint8Array.prototype.indexOf.call(_,l,f):Uint8Array.prototype.lastIndexOf.call(_,l,f):O(_,[l],f,C,E);throw new TypeError("val must be string, number or Buffer")}function O(_,l,f,C,E){let Y=1,H=_.length,Se=l.length;if(C!==void 0&&(C=String(C).toLowerCase(),C==="ucs2"||C==="ucs-2"||C==="utf16le"||C==="utf-16le")){if(_.length<2||l.length<2)return-1;Y=2,H/=2,Se/=2,f/=2}function Me(L,ce){return Y===1?L[ce]:L.readUInt16BE(ce*Y)}let ye;if(E){let L=-1;for(ye=f;ye<H;ye++)if(Me(_,ye)===Me(l,L===-1?0:ye-L)){if(L===-1&&(L=ye),ye-L+1===Se)return L*Y}else L!==-1&&(ye-=ye-L),L=-1}else for(f+Se>H&&(f=H-Se),ye=f;ye>=0;ye--){let L=!0;for(let ce=0;ce<Se;ce++)if(Me(_,ye+ce)!==Me(l,ce)){L=!1;break}if(L)return ye}return-1}s.prototype.includes=function(l,f,C){return this.indexOf(l,f,C)!==-1},s.prototype.indexOf=function(l,f,C){return T(this,l,f,C,!0)},s.prototype.lastIndexOf=function(l,f,C){return T(this,l,f,C,!1)};function V(_,l,f,C){f=Number(f)||0;const E=_.length-f;C?(C=Number(C),C>E&&(C=E)):C=E;const Y=l.length;C>Y/2&&(C=Y/2);let H;for(H=0;H<C;++H){const Se=parseInt(l.substr(H*2,2),16);if(ie(Se))return H;_[f+H]=Se}return H}function W(_,l,f,C){return Q(M(l,_.length-f),_,f,C)}function Z(_,l,f,C){return Q(k(l),_,f,C)}function se(_,l,f,C){return Q(R(l),_,f,C)}function P(_,l,f,C){return Q(z(l,_.length-f),_,f,C)}s.prototype.write=function(l,f,C,E){if(f===void 0)E="utf8",C=this.length,f=0;else if(C===void 0&&typeof f=="string")E=f,C=this.length,f=0;else if(isFinite(f))f=f>>>0,isFinite(C)?(C=C>>>0,E===void 0&&(E="utf8")):(E=C,C=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const Y=this.length-f;if((C===void 0||C>Y)&&(C=Y),l.length>0&&(C<0||f<0)||f>this.length)throw new RangeError("Attempt to write outside buffer bounds");E||(E="utf8");let H=!1;for(;;)switch(E){case"hex":return V(this,l,f,C);case"utf8":case"utf-8":return W(this,l,f,C);case"ascii":case"latin1":case"binary":return Z(this,l,f,C);case"base64":return se(this,l,f,C);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,l,f,C);default:if(H)throw new TypeError("Unknown encoding: "+E);E=(""+E).toLowerCase(),H=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function X(_,l,f){return l===0&&f===_.length?e.fromByteArray(_):e.fromByteArray(_.slice(l,f))}function A(_,l,f){f=Math.min(_.length,f);const C=[];let E=l;for(;E<f;){const Y=_[E];let H=null,Se=Y>239?4:Y>223?3:Y>191?2:1;if(E+Se<=f){let Me,ye,L,ce;switch(Se){case 1:Y<128&&(H=Y);break;case 2:Me=_[E+1],(Me&192)===128&&(ce=(Y&31)<<6|Me&63,ce>127&&(H=ce));break;case 3:Me=_[E+1],ye=_[E+2],(Me&192)===128&&(ye&192)===128&&(ce=(Y&15)<<12|(Me&63)<<6|ye&63,ce>2047&&(ce<55296||ce>57343)&&(H=ce));break;case 4:Me=_[E+1],ye=_[E+2],L=_[E+3],(Me&192)===128&&(ye&192)===128&&(L&192)===128&&(ce=(Y&15)<<18|(Me&63)<<12|(ye&63)<<6|L&63,ce>65535&&ce<1114112&&(H=ce))}}H===null?(H=65533,Se=1):H>65535&&(H-=65536,C.push(H>>>10&1023|55296),H=56320|H&1023),C.push(H),E+=Se}return oe(C)}const J=4096;function oe(_){const l=_.length;if(l<=J)return String.fromCharCode.apply(String,_);let f="",C=0;for(;C<l;)f+=String.fromCharCode.apply(String,_.slice(C,C+=J));return f}function q(_,l,f){let C="";f=Math.min(_.length,f);for(let E=l;E<f;++E)C+=String.fromCharCode(_[E]&127);return C}function fe(_,l,f){let C="";f=Math.min(_.length,f);for(let E=l;E<f;++E)C+=String.fromCharCode(_[E]);return C}function ee(_,l,f){const C=_.length;(!l||l<0)&&(l=0),(!f||f<0||f>C)&&(f=C);let E="";for(let Y=l;Y<f;++Y)E+=ue[_[Y]];return E}function ge(_,l,f){const C=_.slice(l,f);let E="";for(let Y=0;Y<C.length-1;Y+=2)E+=String.fromCharCode(C[Y]+C[Y+1]*256);return E}s.prototype.slice=function(l,f){const C=this.length;l=~~l,f=f===void 0?C:~~f,l<0?(l+=C,l<0&&(l=0)):l>C&&(l=C),f<0?(f+=C,f<0&&(f=0)):f>C&&(f=C),f<l&&(f=l);const E=this.subarray(l,f);return Object.setPrototypeOf(E,s.prototype),E};function j(_,l,f){if(_%1!==0||_<0)throw new RangeError("offset is not uint");if(_+l>f)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(l,f,C){l=l>>>0,f=f>>>0,C||j(l,f,this.length);let E=this[l],Y=1,H=0;for(;++H<f&&(Y*=256);)E+=this[l+H]*Y;return E},s.prototype.readUintBE=s.prototype.readUIntBE=function(l,f,C){l=l>>>0,f=f>>>0,C||j(l,f,this.length);let E=this[l+--f],Y=1;for(;f>0&&(Y*=256);)E+=this[l+--f]*Y;return E},s.prototype.readUint8=s.prototype.readUInt8=function(l,f){return l=l>>>0,f||j(l,1,this.length),this[l]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(l,f){return l=l>>>0,f||j(l,2,this.length),this[l]|this[l+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(l,f){return l=l>>>0,f||j(l,2,this.length),this[l]<<8|this[l+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(l,f){return l=l>>>0,f||j(l,4,this.length),(this[l]|this[l+1]<<8|this[l+2]<<16)+this[l+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(l,f){return l=l>>>0,f||j(l,4,this.length),this[l]*16777216+(this[l+1]<<16|this[l+2]<<8|this[l+3])},s.prototype.readBigUInt64LE=ae(function(l){l=l>>>0,re(l,"offset");const f=this[l],C=this[l+7];(f===void 0||C===void 0)&&u(l,this.length-8);const E=f+this[++l]*2**8+this[++l]*2**16+this[++l]*2**24,Y=this[++l]+this[++l]*2**8+this[++l]*2**16+C*2**24;return BigInt(E)+(BigInt(Y)<<BigInt(32))}),s.prototype.readBigUInt64BE=ae(function(l){l=l>>>0,re(l,"offset");const f=this[l],C=this[l+7];(f===void 0||C===void 0)&&u(l,this.length-8);const E=f*2**24+this[++l]*2**16+this[++l]*2**8+this[++l],Y=this[++l]*2**24+this[++l]*2**16+this[++l]*2**8+C;return(BigInt(E)<<BigInt(32))+BigInt(Y)}),s.prototype.readIntLE=function(l,f,C){l=l>>>0,f=f>>>0,C||j(l,f,this.length);let E=this[l],Y=1,H=0;for(;++H<f&&(Y*=256);)E+=this[l+H]*Y;return Y*=128,E>=Y&&(E-=Math.pow(2,8*f)),E},s.prototype.readIntBE=function(l,f,C){l=l>>>0,f=f>>>0,C||j(l,f,this.length);let E=f,Y=1,H=this[l+--E];for(;E>0&&(Y*=256);)H+=this[l+--E]*Y;return Y*=128,H>=Y&&(H-=Math.pow(2,8*f)),H},s.prototype.readInt8=function(l,f){return l=l>>>0,f||j(l,1,this.length),this[l]&128?(255-this[l]+1)*-1:this[l]},s.prototype.readInt16LE=function(l,f){l=l>>>0,f||j(l,2,this.length);const C=this[l]|this[l+1]<<8;return C&32768?C|4294901760:C},s.prototype.readInt16BE=function(l,f){l=l>>>0,f||j(l,2,this.length);const C=this[l+1]|this[l]<<8;return C&32768?C|4294901760:C},s.prototype.readInt32LE=function(l,f){return l=l>>>0,f||j(l,4,this.length),this[l]|this[l+1]<<8|this[l+2]<<16|this[l+3]<<24},s.prototype.readInt32BE=function(l,f){return l=l>>>0,f||j(l,4,this.length),this[l]<<24|this[l+1]<<16|this[l+2]<<8|this[l+3]},s.prototype.readBigInt64LE=ae(function(l){l=l>>>0,re(l,"offset");const f=this[l],C=this[l+7];(f===void 0||C===void 0)&&u(l,this.length-8);const E=this[l+4]+this[l+5]*2**8+this[l+6]*2**16+(C<<24);return(BigInt(E)<<BigInt(32))+BigInt(f+this[++l]*2**8+this[++l]*2**16+this[++l]*2**24)}),s.prototype.readBigInt64BE=ae(function(l){l=l>>>0,re(l,"offset");const f=this[l],C=this[l+7];(f===void 0||C===void 0)&&u(l,this.length-8);const E=(f<<24)+this[++l]*2**16+this[++l]*2**8+this[++l];return(BigInt(E)<<BigInt(32))+BigInt(this[++l]*2**24+this[++l]*2**16+this[++l]*2**8+C)}),s.prototype.readFloatLE=function(l,f){return l=l>>>0,f||j(l,4,this.length),t.read(this,l,!0,23,4)},s.prototype.readFloatBE=function(l,f){return l=l>>>0,f||j(l,4,this.length),t.read(this,l,!1,23,4)},s.prototype.readDoubleLE=function(l,f){return l=l>>>0,f||j(l,8,this.length),t.read(this,l,!0,52,8)},s.prototype.readDoubleBE=function(l,f){return l=l>>>0,f||j(l,8,this.length),t.read(this,l,!1,52,8)};function U(_,l,f,C,E,Y){if(!s.isBuffer(_))throw new TypeError('"buffer" argument must be a Buffer instance');if(l>E||l<Y)throw new RangeError('"value" argument is out of bounds');if(f+C>_.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(l,f,C,E){if(l=+l,f=f>>>0,C=C>>>0,!E){const Se=Math.pow(2,8*C)-1;U(this,l,f,C,Se,0)}let Y=1,H=0;for(this[f]=l&255;++H<C&&(Y*=256);)this[f+H]=l/Y&255;return f+C},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(l,f,C,E){if(l=+l,f=f>>>0,C=C>>>0,!E){const Se=Math.pow(2,8*C)-1;U(this,l,f,C,Se,0)}let Y=C-1,H=1;for(this[f+Y]=l&255;--Y>=0&&(H*=256);)this[f+Y]=l/H&255;return f+C},s.prototype.writeUint8=s.prototype.writeUInt8=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,1,255,0),this[f]=l&255,f+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,2,65535,0),this[f]=l&255,this[f+1]=l>>>8,f+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,2,65535,0),this[f]=l>>>8,this[f+1]=l&255,f+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,4,4294967295,0),this[f+3]=l>>>24,this[f+2]=l>>>16,this[f+1]=l>>>8,this[f]=l&255,f+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,4,4294967295,0),this[f]=l>>>24,this[f+1]=l>>>16,this[f+2]=l>>>8,this[f+3]=l&255,f+4};function ve(_,l,f,C,E){he(l,C,E,_,f,7);let Y=Number(l&BigInt(4294967295));_[f++]=Y,Y=Y>>8,_[f++]=Y,Y=Y>>8,_[f++]=Y,Y=Y>>8,_[f++]=Y;let H=Number(l>>BigInt(32)&BigInt(4294967295));return _[f++]=H,H=H>>8,_[f++]=H,H=H>>8,_[f++]=H,H=H>>8,_[f++]=H,f}function de(_,l,f,C,E){he(l,C,E,_,f,7);let Y=Number(l&BigInt(4294967295));_[f+7]=Y,Y=Y>>8,_[f+6]=Y,Y=Y>>8,_[f+5]=Y,Y=Y>>8,_[f+4]=Y;let H=Number(l>>BigInt(32)&BigInt(4294967295));return _[f+3]=H,H=H>>8,_[f+2]=H,H=H>>8,_[f+1]=H,H=H>>8,_[f]=H,f+8}s.prototype.writeBigUInt64LE=ae(function(l,f=0){return ve(this,l,f,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=ae(function(l,f=0){return de(this,l,f,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(l,f,C,E){if(l=+l,f=f>>>0,!E){const Me=Math.pow(2,8*C-1);U(this,l,f,C,Me-1,-Me)}let Y=0,H=1,Se=0;for(this[f]=l&255;++Y<C&&(H*=256);)l<0&&Se===0&&this[f+Y-1]!==0&&(Se=1),this[f+Y]=(l/H>>0)-Se&255;return f+C},s.prototype.writeIntBE=function(l,f,C,E){if(l=+l,f=f>>>0,!E){const Me=Math.pow(2,8*C-1);U(this,l,f,C,Me-1,-Me)}let Y=C-1,H=1,Se=0;for(this[f+Y]=l&255;--Y>=0&&(H*=256);)l<0&&Se===0&&this[f+Y+1]!==0&&(Se=1),this[f+Y]=(l/H>>0)-Se&255;return f+C},s.prototype.writeInt8=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,1,127,-128),l<0&&(l=255+l+1),this[f]=l&255,f+1},s.prototype.writeInt16LE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,2,32767,-32768),this[f]=l&255,this[f+1]=l>>>8,f+2},s.prototype.writeInt16BE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,2,32767,-32768),this[f]=l>>>8,this[f+1]=l&255,f+2},s.prototype.writeInt32LE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,4,2147483647,-2147483648),this[f]=l&255,this[f+1]=l>>>8,this[f+2]=l>>>16,this[f+3]=l>>>24,f+4},s.prototype.writeInt32BE=function(l,f,C){return l=+l,f=f>>>0,C||U(this,l,f,4,2147483647,-2147483648),l<0&&(l=4294967295+l+1),this[f]=l>>>24,this[f+1]=l>>>16,this[f+2]=l>>>8,this[f+3]=l&255,f+4},s.prototype.writeBigInt64LE=ae(function(l,f=0){return ve(this,l,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=ae(function(l,f=0){return de(this,l,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function te(_,l,f,C,E,Y){if(f+C>_.length)throw new RangeError("Index out of range");if(f<0)throw new RangeError("Index out of range")}function Te(_,l,f,C,E){return l=+l,f=f>>>0,E||te(_,l,f,4),t.write(_,l,f,C,23,4),f+4}s.prototype.writeFloatLE=function(l,f,C){return Te(this,l,f,!0,C)},s.prototype.writeFloatBE=function(l,f,C){return Te(this,l,f,!1,C)};function Oe(_,l,f,C,E){return l=+l,f=f>>>0,E||te(_,l,f,8),t.write(_,l,f,C,52,8),f+8}s.prototype.writeDoubleLE=function(l,f,C){return Oe(this,l,f,!0,C)},s.prototype.writeDoubleBE=function(l,f,C){return Oe(this,l,f,!1,C)},s.prototype.copy=function(l,f,C,E){if(!s.isBuffer(l))throw new TypeError("argument should be a Buffer");if(C||(C=0),!E&&E!==0&&(E=this.length),f>=l.length&&(f=l.length),f||(f=0),E>0&&E<C&&(E=C),E===C||l.length===0||this.length===0)return 0;if(f<0)throw new RangeError("targetStart out of bounds");if(C<0||C>=this.length)throw new RangeError("Index out of range");if(E<0)throw new RangeError("sourceEnd out of bounds");E>this.length&&(E=this.length),l.length-f<E-C&&(E=l.length-f+C);const Y=E-C;return this===l&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(f,C,E):Uint8Array.prototype.set.call(l,this.subarray(C,E),f),Y},s.prototype.fill=function(l,f,C,E){if(typeof l=="string"){if(typeof f=="string"?(E=f,f=0,C=this.length):typeof C=="string"&&(E=C,C=this.length),E!==void 0&&typeof E!="string")throw new TypeError("encoding must be a string");if(typeof E=="string"&&!s.isEncoding(E))throw new TypeError("Unknown encoding: "+E);if(l.length===1){const H=l.charCodeAt(0);(E==="utf8"&&H<128||E==="latin1")&&(l=H)}}else typeof l=="number"?l=l&255:typeof l=="boolean"&&(l=Number(l));if(f<0||this.length<f||this.length<C)throw new RangeError("Out of range index");if(C<=f)return this;f=f>>>0,C=C===void 0?this.length:C>>>0,l||(l=0);let Y;if(typeof l=="number")for(Y=f;Y<C;++Y)this[Y]=l;else{const H=s.isBuffer(l)?l:s.from(l,E),Se=H.length;if(Se===0)throw new TypeError('The value "'+l+'" is invalid for argument "value"');for(Y=0;Y<C-f;++Y)this[Y+f]=H[Y%Se]}return this};const pe={};function be(_,l,f){pe[_]=class extends f{constructor(){super(),Object.defineProperty(this,"message",{value:l.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${_}]`,this.stack,delete this.name}get code(){return _}set code(E){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:E,writable:!0})}toString(){return`${this.name} [${_}]: ${this.message}`}}}be("ERR_BUFFER_OUT_OF_BOUNDS",function(_){return _?`${_} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),be("ERR_INVALID_ARG_TYPE",function(_,l){return`The "${_}" argument must be of type number. Received type ${typeof l}`},TypeError),be("ERR_OUT_OF_RANGE",function(_,l,f){let C=`The value of "${_}" is out of range.`,E=f;return Number.isInteger(f)&&Math.abs(f)>2**32?E=xe(String(f)):typeof f=="bigint"&&(E=String(f),(f>BigInt(2)**BigInt(32)||f<-(BigInt(2)**BigInt(32)))&&(E=xe(E)),E+="n"),C+=` It must be ${l}. Received ${E}`,C},RangeError);function xe(_){let l="",f=_.length;const C=_[0]==="-"?1:0;for(;f>=C+4;f-=3)l=`_${_.slice(f-3,f)}${l}`;return`${_.slice(0,f)}${l}`}function $(_,l,f){re(l,"offset"),(_[l]===void 0||_[l+f]===void 0)&&u(l,_.length-(f+1))}function he(_,l,f,C,E,Y){if(_>f||_<l){const H=typeof l=="bigint"?"n":"";let Se;throw Y>3?l===0||l===BigInt(0)?Se=`>= 0${H} and < 2${H} ** ${(Y+1)*8}${H}`:Se=`>= -(2${H} ** ${(Y+1)*8-1}${H}) and < 2 ** ${(Y+1)*8-1}${H}`:Se=`>= ${l}${H} and <= ${f}${H}`,new pe.ERR_OUT_OF_RANGE("value",Se,_)}$(C,E,Y)}function re(_,l){if(typeof _!="number")throw new pe.ERR_INVALID_ARG_TYPE(l,"number",_)}function u(_,l,f){throw Math.floor(_)!==_?(re(_,f),new pe.ERR_OUT_OF_RANGE(f||"offset","an integer",_)):l<0?new pe.ERR_BUFFER_OUT_OF_BOUNDS:new pe.ERR_OUT_OF_RANGE(f||"offset",`>= ${f?1:0} and <= ${l}`,_)}const K=/[^+/0-9A-Za-z-_]/g;function F(_){if(_=_.split("=")[0],_=_.trim().replace(K,""),_.length<2)return"";for(;_.length%4!==0;)_=_+"=";return _}function M(_,l){l=l||1/0;let f;const C=_.length;let E=null;const Y=[];for(let H=0;H<C;++H){if(f=_.charCodeAt(H),f>55295&&f<57344){if(!E){if(f>56319){(l-=3)>-1&&Y.push(239,191,189);continue}else if(H+1===C){(l-=3)>-1&&Y.push(239,191,189);continue}E=f;continue}if(f<56320){(l-=3)>-1&&Y.push(239,191,189),E=f;continue}f=(E-55296<<10|f-56320)+65536}else E&&(l-=3)>-1&&Y.push(239,191,189);if(E=null,f<128){if((l-=1)<0)break;Y.push(f)}else if(f<2048){if((l-=2)<0)break;Y.push(f>>6|192,f&63|128)}else if(f<65536){if((l-=3)<0)break;Y.push(f>>12|224,f>>6&63|128,f&63|128)}else if(f<1114112){if((l-=4)<0)break;Y.push(f>>18|240,f>>12&63|128,f>>6&63|128,f&63|128)}else throw new Error("Invalid code point")}return Y}function k(_){const l=[];for(let f=0;f<_.length;++f)l.push(_.charCodeAt(f)&255);return l}function z(_,l){let f,C,E;const Y=[];for(let H=0;H<_.length&&!((l-=2)<0);++H)f=_.charCodeAt(H),C=f>>8,E=f%256,Y.push(E),Y.push(C);return Y}function R(_){return e.toByteArray(F(_))}function Q(_,l,f,C){let E;for(E=0;E<C&&!(E+f>=l.length||E>=_.length);++E)l[E+f]=_[E];return E}function G(_,l){return _ instanceof l||_!=null&&_.constructor!=null&&_.constructor.name!=null&&_.constructor.name===l.name}function ie(_){return _!==_}const ue=function(){const _="0123456789abcdef",l=new Array(256);for(let f=0;f<16;++f){const C=f*16;for(let E=0;E<16;++E)l[C+E]=_[f]+_[E]}return l}();function ae(_){return typeof BigInt>"u"?_e:_}function _e(){throw new Error("BigInt not supported")}})(Or);const Zt=["south","north","east","west","up","down"],$n=[0,0,16,16],Yo=Zt.slice().reverse(),Xo={east:{normal:[1,0,0],corners:[{pos:[1,0,0],uv:[0,1]},{pos:[1,1,0],uv:[0,0]},{pos:[1,0,1],uv:[1,1]},{pos:[1,1,1],uv:[1,0]}]},west:{normal:[-1,0,0],corners:[{pos:[0,0,1],uv:[0,1]},{pos:[0,1,1],uv:[0,0]},{pos:[0,0,0],uv:[1,1]},{pos:[0,1,0],uv:[1,0]}]},up:{normal:[0,1,0],corners:[{pos:[0,1,1],uv:[0,1]},{pos:[1,1,1],uv:[1,1]},{pos:[0,1,0],uv:[0,0]},{pos:[1,1,0],uv:[1,0]}]},down:{normal:[0,-1,0],corners:[{pos:[1,0,1],uv:[0,0]},{pos:[0,0,1],uv:[1,0]},{pos:[1,0,0],uv:[0,1]},{pos:[0,0,0],uv:[1,1]}]},south:{normal:[0,0,1],corners:[{pos:[1,1,1],uv:[1,0]},{pos:[0,1,1],uv:[0,0]},{pos:[1,0,1],uv:[1,1]},{pos:[0,0,1],uv:[0,1]}]},north:{normal:[0,0,-1],corners:[{pos:[1,0,0],uv:[1,1]},{pos:[0,0,0],uv:[0,1]},{pos:[1,1,0],uv:[1,0]},{pos:[0,1,0],uv:[0,0]}]}};function Ko(r){const e=Xo;return{east:{normal:e.east.normal,corners:[{pos:e.east.corners[0].pos,uv:[r.east[0],r.east[3]]},{pos:e.east.corners[1].pos,uv:[r.east[0],r.east[1]]},{pos:e.east.corners[2].pos,uv:[r.east[2],r.east[3]]},{pos:e.east.corners[3].pos,uv:[r.east[2],r.east[1]]}]},west:{normal:e.west.normal,corners:[{pos:e.west.corners[0].pos,uv:[r.west[0],r.west[3]]},{pos:e.west.corners[1].pos,uv:[r.west[0],r.west[1]]},{pos:e.west.corners[2].pos,uv:[r.west[2],r.west[3]]},{pos:e.west.corners[3].pos,uv:[r.west[2],r.west[1]]}]},up:{normal:e.up.normal,corners:[{pos:e.up.corners[0].pos,uv:[r.up[0],r.up[3]]},{pos:e.up.corners[1].pos,uv:[r.up[2],r.up[3]]},{pos:e.up.corners[2].pos,uv:[r.up[0],r.up[1]]},{pos:e.up.corners[3].pos,uv:[r.up[2],r.up[1]]}]},down:{normal:e.down.normal,corners:[{pos:e.down.corners[0].pos,uv:[r.down[0],r.down[1]]},{pos:e.down.corners[1].pos,uv:[r.down[2],r.down[1]]},{pos:e.down.corners[2].pos,uv:[r.down[0],r.down[3]]},{pos:e.down.corners[3].pos,uv:[r.down[2],r.down[3]]}]},south:{normal:e.south.normal,corners:[{pos:e.south.corners[0].pos,uv:[r.south[2],r.south[1]]},{pos:e.south.corners[1].pos,uv:[r.south[0],r.south[1]]},{pos:e.south.corners[2].pos,uv:[r.south[2],r.south[3]]},{pos:e.south.corners[3].pos,uv:[r.south[0],r.south[3]]}]},north:{normal:e.north.normal,corners:[{pos:e.north.corners[0].pos,uv:[r.north[2],r.north[3]]},{pos:e.north.corners[1].pos,uv:[r.north[0],r.north[3]]},{pos:e.north.corners[2].pos,uv:[r.north[2],r.north[1]]},{pos:e.north.corners[3].pos,uv:[r.north[0],r.north[1]]}]}}}const Ho=[new Ae.Color(75/255,0,0),new Ae.Color(110/255,0,0),new Ae.Color(120/255,0,0),new Ae.Color(130/255,0,0),new Ae.Color(140/255,0,0),new Ae.Color(151/255,0,0),new Ae.Color(160/255,0,0),new Ae.Color(170/255,0,0),new Ae.Color(180/255,0,0),new Ae.Color(190/255,0,0),new Ae.Color(201/255,0,0),new Ae.Color(211/255,0,0),new Ae.Color(214/255,0,0),new Ae.Color(224/255,6/255,0),new Ae.Color(233/255,26/255,0),new Ae.Color(244/255,48/255,0)];function Nr(r){return r/16}function Zo(r){var e;return(r.type==="sticky_piston"||r.type==="piston")&&((e=r.properties)==null?void 0:e.extended)==="true"}const Jt=new Set(["air","cave_air","void_air","structure_void","barrier","light"]),qt=new Set([...Jt,...Fo]),ea=new Set([...Jt,...zo]);function Jo(r){let e;try{e=Eo.unzip(r)}catch{e=r}const t=Or.Buffer.from(e);return Oo(t,{unnamed:!1,useMaps:!0}).value}function ta(r){const e=Or.Buffer.from(r,"base64");return Jo(e)}function kt(r){let e=r.type;if(r.properties)for(const t in r.properties)e+=r.properties[t];return e}function ra(r){const e={};for(const t of Yo)e[t]=!!(r&1),r=r>>1;return e}function qo(r){switch(r){case"north":return"south";case"south":return"north";case"east":return"west";case"west":return"east";case"up":return"down";case"down":return"up";default:return"north"}}function $t(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var na={exports:{}};/*!
966
973
 
967
974
  JSZip v3.10.1 - A JavaScript class for generating and reading zip files
968
975
  <http://stuartk.com/jszip>
@@ -973,13 +980,13 @@ vec4 noise=sampleBlueNoise(blueNoiseTexture,seed,blueNoiseRepeat,texSize);vec3 r
973
980
  JSZip uses the library pako released under the MIT license :
974
981
  https://github.com/nodeca/pako/blob/main/LICENSE
975
982
  */(function(r,e){(function(t){r.exports=t()})(function(){return function t(n,a,i){function o(m,b){if(!a[m]){if(!n[m]){var v=typeof $t=="function"&&$t;if(!b&&v)return v(m,!0);if(s)return s(m,!0);var w=new Error("Cannot find module '"+m+"'");throw w.code="MODULE_NOT_FOUND",w}var d=a[m]={exports:{}};n[m][0].call(d.exports,function(g){var p=n[m][1][g];return o(p||g)},d,d.exports,t,n,a,i)}return a[m].exports}for(var s=typeof $t=="function"&&$t,c=0;c<i.length;c++)o(i[c]);return o}({1:[function(t,n,a){var i=t("./utils"),o=t("./support"),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a.encode=function(c){for(var m,b,v,w,d,g,p,y=[],x=0,S=c.length,D=S,B=i.getTypeOf(c)!=="string";x<c.length;)D=S-x,v=B?(m=c[x++],b=x<S?c[x++]:0,x<S?c[x++]:0):(m=c.charCodeAt(x++),b=x<S?c.charCodeAt(x++):0,x<S?c.charCodeAt(x++):0),w=m>>2,d=(3&m)<<4|b>>4,g=1<D?(15&b)<<2|v>>6:64,p=2<D?63&v:64,y.push(s.charAt(w)+s.charAt(d)+s.charAt(g)+s.charAt(p));return y.join("")},a.decode=function(c){var m,b,v,w,d,g,p=0,y=0,x="data:";if(c.substr(0,x.length)===x)throw new Error("Invalid base64 input, it looks like a data url.");var S,D=3*(c=c.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(c.charAt(c.length-1)===s.charAt(64)&&D--,c.charAt(c.length-2)===s.charAt(64)&&D--,D%1!=0)throw new Error("Invalid base64 input, bad content length.");for(S=o.uint8array?new Uint8Array(0|D):new Array(0|D);p<c.length;)m=s.indexOf(c.charAt(p++))<<2|(w=s.indexOf(c.charAt(p++)))>>4,b=(15&w)<<4|(d=s.indexOf(c.charAt(p++)))>>2,v=(3&d)<<6|(g=s.indexOf(c.charAt(p++))),S[y++]=m,d!==64&&(S[y++]=b),g!==64&&(S[y++]=v);return S}},{"./support":30,"./utils":32}],2:[function(t,n,a){var i=t("./external"),o=t("./stream/DataWorker"),s=t("./stream/Crc32Probe"),c=t("./stream/DataLengthProbe");function m(b,v,w,d,g){this.compressedSize=b,this.uncompressedSize=v,this.crc32=w,this.compression=d,this.compressedContent=g}m.prototype={getContentWorker:function(){var b=new o(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),v=this;return b.on("end",function(){if(this.streamInfo.data_length!==v.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),b},getCompressedWorker:function(){return new o(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},m.createWorkerFrom=function(b,v,w){return b.pipe(new s).pipe(new c("uncompressedSize")).pipe(v.compressWorker(w)).pipe(new c("compressedSize")).withStreamInfo("compression",v)},n.exports=m},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,n,a){var i=t("./stream/GenericWorker");a.STORE={magic:"\0\0",compressWorker:function(){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},a.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,n,a){var i=t("./utils"),o=function(){for(var s,c=[],m=0;m<256;m++){s=m;for(var b=0;b<8;b++)s=1&s?3988292384^s>>>1:s>>>1;c[m]=s}return c}();n.exports=function(s,c){return s!==void 0&&s.length?i.getTypeOf(s)!=="string"?function(m,b,v,w){var d=o,g=w+v;m^=-1;for(var p=w;p<g;p++)m=m>>>8^d[255&(m^b[p])];return-1^m}(0|c,s,s.length,0):function(m,b,v,w){var d=o,g=w+v;m^=-1;for(var p=w;p<g;p++)m=m>>>8^d[255&(m^b.charCodeAt(p))];return-1^m}(0|c,s,s.length,0):0}},{"./utils":32}],5:[function(t,n,a){a.base64=!1,a.binary=!1,a.dir=!1,a.createFolders=!0,a.date=null,a.compression=null,a.compressionOptions=null,a.comment=null,a.unixPermissions=null,a.dosPermissions=null},{}],6:[function(t,n,a){var i=null;i=typeof Promise<"u"?Promise:t("lie"),n.exports={Promise:i}},{lie:37}],7:[function(t,n,a){var i=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",o=t("pako"),s=t("./utils"),c=t("./stream/GenericWorker"),m=i?"uint8array":"array";function b(v,w){c.call(this,"FlateWorker/"+v),this._pako=null,this._pakoAction=v,this._pakoOptions=w,this.meta={}}a.magic="\b\0",s.inherits(b,c),b.prototype.processChunk=function(v){this.meta=v.meta,this._pako===null&&this._createPako(),this._pako.push(s.transformTo(m,v.data),!1)},b.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},b.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},b.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var v=this;this._pako.onData=function(w){v.push({data:w,meta:v.meta})}},a.compressWorker=function(v){return new b("Deflate",v)},a.uncompressWorker=function(){return new b("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,n,a){function i(d,g){var p,y="";for(p=0;p<g;p++)y+=String.fromCharCode(255&d),d>>>=8;return y}function o(d,g,p,y,x,S){var D,B,I=d.file,T=d.compression,O=S!==m.utf8encode,V=s.transformTo("string",S(I.name)),W=s.transformTo("string",m.utf8encode(I.name)),Z=I.comment,se=s.transformTo("string",S(Z)),P=s.transformTo("string",m.utf8encode(Z)),X=W.length!==I.name.length,A=P.length!==Z.length,J="",oe="",q="",fe=I.dir,ee=I.date,ge={crc32:0,compressedSize:0,uncompressedSize:0};g&&!p||(ge.crc32=d.crc32,ge.compressedSize=d.compressedSize,ge.uncompressedSize=d.uncompressedSize);var j=0;g&&(j|=8),O||!X&&!A||(j|=2048);var U=0,ve=0;fe&&(U|=16),x==="UNIX"?(ve=798,U|=function(te,Te){var Oe=te;return te||(Oe=Te?16893:33204),(65535&Oe)<<16}(I.unixPermissions,fe)):(ve=20,U|=function(te){return 63&(te||0)}(I.dosPermissions)),D=ee.getUTCHours(),D<<=6,D|=ee.getUTCMinutes(),D<<=5,D|=ee.getUTCSeconds()/2,B=ee.getUTCFullYear()-1980,B<<=4,B|=ee.getUTCMonth()+1,B<<=5,B|=ee.getUTCDate(),X&&(oe=i(1,1)+i(b(V),4)+W,J+="up"+i(oe.length,2)+oe),A&&(q=i(1,1)+i(b(se),4)+P,J+="uc"+i(q.length,2)+q);var de="";return de+=`
976
- \0`,de+=i(j,2),de+=T.magic,de+=i(D,2),de+=i(B,2),de+=i(ge.crc32,4),de+=i(ge.compressedSize,4),de+=i(ge.uncompressedSize,4),de+=i(V.length,2),de+=i(J.length,2),{fileRecord:v.LOCAL_FILE_HEADER+de+V+J,dirRecord:v.CENTRAL_FILE_HEADER+i(ve,2)+de+i(se.length,2)+"\0\0\0\0"+i(U,4)+i(y,4)+V+J+se}}var s=t("../utils"),c=t("../stream/GenericWorker"),m=t("../utf8"),b=t("../crc32"),v=t("../signature");function w(d,g,p,y){c.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=g,this.zipPlatform=p,this.encodeFileName=y,this.streamFiles=d,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(w,c),w.prototype.push=function(d){var g=d.meta.percent||0,p=this.entriesCount,y=this._sources.length;this.accumulate?this.contentBuffer.push(d):(this.bytesWritten+=d.data.length,c.prototype.push.call(this,{data:d.data,meta:{currentFile:this.currentFile,percent:p?(g+100*(p-y-1))/p:100}}))},w.prototype.openedSource=function(d){this.currentSourceOffset=this.bytesWritten,this.currentFile=d.file.name;var g=this.streamFiles&&!d.file.dir;if(g){var p=o(d,g,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:p.fileRecord,meta:{percent:0}})}else this.accumulate=!0},w.prototype.closedSource=function(d){this.accumulate=!1;var g=this.streamFiles&&!d.file.dir,p=o(d,g,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(p.dirRecord),g)this.push({data:function(y){return v.DATA_DESCRIPTOR+i(y.crc32,4)+i(y.compressedSize,4)+i(y.uncompressedSize,4)}(d),meta:{percent:100}});else for(this.push({data:p.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},w.prototype.flush=function(){for(var d=this.bytesWritten,g=0;g<this.dirRecords.length;g++)this.push({data:this.dirRecords[g],meta:{percent:100}});var p=this.bytesWritten-d,y=function(x,S,D,B,I){var T=s.transformTo("string",I(B));return v.CENTRAL_DIRECTORY_END+"\0\0\0\0"+i(x,2)+i(x,2)+i(S,4)+i(D,4)+i(T.length,2)+T}(this.dirRecords.length,p,d,this.zipComment,this.encodeFileName);this.push({data:y,meta:{percent:100}})},w.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},w.prototype.registerPrevious=function(d){this._sources.push(d);var g=this;return d.on("data",function(p){g.processChunk(p)}),d.on("end",function(){g.closedSource(g.previous.streamInfo),g._sources.length?g.prepareNextSource():g.end()}),d.on("error",function(p){g.error(p)}),this},w.prototype.resume=function(){return!!c.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},w.prototype.error=function(d){var g=this._sources;if(!c.prototype.error.call(this,d))return!1;for(var p=0;p<g.length;p++)try{g[p].error(d)}catch{}return!0},w.prototype.lock=function(){c.prototype.lock.call(this);for(var d=this._sources,g=0;g<d.length;g++)d[g].lock()},n.exports=w},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(t,n,a){var i=t("../compressions"),o=t("./ZipFileWorker");a.generateWorker=function(s,c,m){var b=new o(c.streamFiles,m,c.platform,c.encodeFileName),v=0;try{s.forEach(function(w,d){v++;var g=function(S,D){var B=S||D,I=i[B];if(!I)throw new Error(B+" is not a valid compression method !");return I}(d.options.compression,c.compression),p=d.options.compressionOptions||c.compressionOptions||{},y=d.dir,x=d.date;d._compressWorker(g,p).withStreamInfo("file",{name:w,dir:y,date:x,comment:d.comment||"",unixPermissions:d.unixPermissions,dosPermissions:d.dosPermissions}).pipe(b)}),b.entriesCount=v}catch(w){b.error(w)}return b}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(t,n,a){function i(){if(!(this instanceof i))return new i;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var o=new i;for(var s in this)typeof this[s]!="function"&&(o[s]=this[s]);return o}}(i.prototype=t("./object")).loadAsync=t("./load"),i.support=t("./support"),i.defaults=t("./defaults"),i.version="3.10.1",i.loadAsync=function(o,s){return new i().loadAsync(o,s)},i.external=t("./external"),n.exports=i},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(t,n,a){var i=t("./utils"),o=t("./external"),s=t("./utf8"),c=t("./zipEntries"),m=t("./stream/Crc32Probe"),b=t("./nodejsUtils");function v(w){return new o.Promise(function(d,g){var p=w.decompressed.getContentWorker().pipe(new m);p.on("error",function(y){g(y)}).on("end",function(){p.streamInfo.crc32!==w.decompressed.crc32?g(new Error("Corrupted zip : CRC32 mismatch")):d()}).resume()})}n.exports=function(w,d){var g=this;return d=i.extend(d||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),b.isNode&&b.isStream(w)?o.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):i.prepareContent("the loaded zip file",w,!0,d.optimizedBinaryString,d.base64).then(function(p){var y=new c(d);return y.load(p),y}).then(function(p){var y=[o.Promise.resolve(p)],x=p.files;if(d.checkCRC32)for(var S=0;S<x.length;S++)y.push(v(x[S]));return o.Promise.all(y)}).then(function(p){for(var y=p.shift(),x=y.files,S=0;S<x.length;S++){var D=x[S],B=D.fileNameStr,I=i.resolve(D.fileNameStr);g.file(I,D.decompressed,{binary:!0,optimizedBinaryString:!0,date:D.date,dir:D.dir,comment:D.fileCommentStr.length?D.fileCommentStr:null,unixPermissions:D.unixPermissions,dosPermissions:D.dosPermissions,createFolders:d.createFolders}),D.dir||(g.file(I).unsafeOriginalName=B)}return y.zipComment.length&&(g.comment=y.zipComment),g})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(t,n,a){var i=t("../utils"),o=t("../stream/GenericWorker");function s(c,m){o.call(this,"Nodejs stream input adapter for "+c),this._upstreamEnded=!1,this._bindStream(m)}i.inherits(s,o),s.prototype._bindStream=function(c){var m=this;(this._stream=c).pause(),c.on("data",function(b){m.push({data:b,meta:{percent:0}})}).on("error",function(b){m.isPaused?this.generatedError=b:m.error(b)}).on("end",function(){m.isPaused?m._upstreamEnded=!0:m.end()})},s.prototype.pause=function(){return!!o.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},n.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(t,n,a){var i=t("readable-stream").Readable;function o(s,c,m){i.call(this,c),this._helper=s;var b=this;s.on("data",function(v,w){b.push(v)||b._helper.pause(),m&&m(w)}).on("error",function(v){b.emit("error",v)}).on("end",function(){b.push(null)})}t("../utils").inherits(o,i),o.prototype._read=function(){this._helper.resume()},n.exports=o},{"../utils":32,"readable-stream":16}],14:[function(t,n,a){n.exports={isNode:typeof Buffer<"u",newBufferFrom:function(i,o){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(i,o);if(typeof i=="number")throw new Error('The "data" argument must not be a number');return new Buffer(i,o)},allocBuffer:function(i){if(Buffer.alloc)return Buffer.alloc(i);var o=new Buffer(i);return o.fill(0),o},isBuffer:function(i){return Buffer.isBuffer(i)},isStream:function(i){return i&&typeof i.on=="function"&&typeof i.pause=="function"&&typeof i.resume=="function"}}},{}],15:[function(t,n,a){function i(I,T,O){var V,W=s.getTypeOf(T),Z=s.extend(O||{},b);Z.date=Z.date||new Date,Z.compression!==null&&(Z.compression=Z.compression.toUpperCase()),typeof Z.unixPermissions=="string"&&(Z.unixPermissions=parseInt(Z.unixPermissions,8)),Z.unixPermissions&&16384&Z.unixPermissions&&(Z.dir=!0),Z.dosPermissions&&16&Z.dosPermissions&&(Z.dir=!0),Z.dir&&(I=x(I)),Z.createFolders&&(V=y(I))&&S.call(this,V,!0);var se=W==="string"&&Z.binary===!1&&Z.base64===!1;O&&O.binary!==void 0||(Z.binary=!se),(T instanceof v&&T.uncompressedSize===0||Z.dir||!T||T.length===0)&&(Z.base64=!1,Z.binary=!0,T="",Z.compression="STORE",W="string");var P=null;P=T instanceof v||T instanceof c?T:g.isNode&&g.isStream(T)?new p(I,T):s.prepareContent(I,T,Z.binary,Z.optimizedBinaryString,Z.base64);var X=new w(I,P,Z);this.files[I]=X}var o=t("./utf8"),s=t("./utils"),c=t("./stream/GenericWorker"),m=t("./stream/StreamHelper"),b=t("./defaults"),v=t("./compressedObject"),w=t("./zipObject"),d=t("./generate"),g=t("./nodejsUtils"),p=t("./nodejs/NodejsStreamInputAdapter"),y=function(I){I.slice(-1)==="/"&&(I=I.substring(0,I.length-1));var T=I.lastIndexOf("/");return 0<T?I.substring(0,T):""},x=function(I){return I.slice(-1)!=="/"&&(I+="/"),I},S=function(I,T){return T=T!==void 0?T:b.createFolders,I=x(I),this.files[I]||i.call(this,I,null,{dir:!0,createFolders:T}),this.files[I]};function D(I){return Object.prototype.toString.call(I)==="[object RegExp]"}var B={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(I){var T,O,V;for(T in this.files)V=this.files[T],(O=T.slice(this.root.length,T.length))&&T.slice(0,this.root.length)===this.root&&I(O,V)},filter:function(I){var T=[];return this.forEach(function(O,V){I(O,V)&&T.push(V)}),T},file:function(I,T,O){if(arguments.length!==1)return I=this.root+I,i.call(this,I,T,O),this;if(D(I)){var V=I;return this.filter(function(Z,se){return!se.dir&&V.test(Z)})}var W=this.files[this.root+I];return W&&!W.dir?W:null},folder:function(I){if(!I)return this;if(D(I))return this.filter(function(W,Z){return Z.dir&&I.test(W)});var T=this.root+I,O=S.call(this,T),V=this.clone();return V.root=O.name,V},remove:function(I){I=this.root+I;var T=this.files[I];if(T||(I.slice(-1)!=="/"&&(I+="/"),T=this.files[I]),T&&!T.dir)delete this.files[I];else for(var O=this.filter(function(W,Z){return Z.name.slice(0,I.length)===I}),V=0;V<O.length;V++)delete this.files[O[V].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(I){var T,O={};try{if((O=s.extend(I||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:o.utf8encode})).type=O.type.toLowerCase(),O.compression=O.compression.toUpperCase(),O.type==="binarystring"&&(O.type="string"),!O.type)throw new Error("No output type specified.");s.checkSupport(O.type),O.platform!=="darwin"&&O.platform!=="freebsd"&&O.platform!=="linux"&&O.platform!=="sunos"||(O.platform="UNIX"),O.platform==="win32"&&(O.platform="DOS");var V=O.comment||this.comment||"";T=d.generateWorker(this,O,V)}catch(W){(T=new c("error")).error(W)}return new m(T,O.type||"string",O.mimeType)},generateAsync:function(I,T){return this.generateInternalStream(I).accumulate(T)},generateNodeStream:function(I,T){return(I=I||{}).type||(I.type="nodebuffer"),this.generateInternalStream(I).toNodejsStream(T)}};n.exports=B},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(t,n,a){n.exports=t("stream")},{stream:void 0}],17:[function(t,n,a){var i=t("./DataReader");function o(s){i.call(this,s);for(var c=0;c<this.data.length;c++)s[c]=255&s[c]}t("../utils").inherits(o,i),o.prototype.byteAt=function(s){return this.data[this.zero+s]},o.prototype.lastIndexOfSignature=function(s){for(var c=s.charCodeAt(0),m=s.charCodeAt(1),b=s.charCodeAt(2),v=s.charCodeAt(3),w=this.length-4;0<=w;--w)if(this.data[w]===c&&this.data[w+1]===m&&this.data[w+2]===b&&this.data[w+3]===v)return w-this.zero;return-1},o.prototype.readAndCheckSignature=function(s){var c=s.charCodeAt(0),m=s.charCodeAt(1),b=s.charCodeAt(2),v=s.charCodeAt(3),w=this.readData(4);return c===w[0]&&m===w[1]&&b===w[2]&&v===w[3]},o.prototype.readData=function(s){if(this.checkOffset(s),s===0)return[];var c=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},n.exports=o},{"../utils":32,"./DataReader":18}],18:[function(t,n,a){var i=t("../utils");function o(s){this.data=s,this.length=s.length,this.index=0,this.zero=0}o.prototype={checkOffset:function(s){this.checkIndex(this.index+s)},checkIndex:function(s){if(this.length<this.zero+s||s<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+s+"). Corrupted zip ?")},setIndex:function(s){this.checkIndex(s),this.index=s},skip:function(s){this.setIndex(this.index+s)},byteAt:function(){},readInt:function(s){var c,m=0;for(this.checkOffset(s),c=this.index+s-1;c>=this.index;c--)m=(m<<8)+this.byteAt(c);return this.index+=s,m},readString:function(s){return i.transformTo("string",this.readData(s))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var s=this.readInt(4);return new Date(Date.UTC(1980+(s>>25&127),(s>>21&15)-1,s>>16&31,s>>11&31,s>>5&63,(31&s)<<1))}},n.exports=o},{"../utils":32}],19:[function(t,n,a){var i=t("./Uint8ArrayReader");function o(s){i.call(this,s)}t("../utils").inherits(o,i),o.prototype.readData=function(s){this.checkOffset(s);var c=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},n.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,n,a){var i=t("./DataReader");function o(s){i.call(this,s)}t("../utils").inherits(o,i),o.prototype.byteAt=function(s){return this.data.charCodeAt(this.zero+s)},o.prototype.lastIndexOfSignature=function(s){return this.data.lastIndexOf(s)-this.zero},o.prototype.readAndCheckSignature=function(s){return s===this.readData(4)},o.prototype.readData=function(s){this.checkOffset(s);var c=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},n.exports=o},{"../utils":32,"./DataReader":18}],21:[function(t,n,a){var i=t("./ArrayReader");function o(s){i.call(this,s)}t("../utils").inherits(o,i),o.prototype.readData=function(s){if(this.checkOffset(s),s===0)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},n.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(t,n,a){var i=t("../utils"),o=t("../support"),s=t("./ArrayReader"),c=t("./StringReader"),m=t("./NodeBufferReader"),b=t("./Uint8ArrayReader");n.exports=function(v){var w=i.getTypeOf(v);return i.checkSupport(w),w!=="string"||o.uint8array?w==="nodebuffer"?new m(v):o.uint8array?new b(i.transformTo("uint8array",v)):new s(i.transformTo("array",v)):new c(v)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,n,a){a.LOCAL_FILE_HEADER="PK",a.CENTRAL_FILE_HEADER="PK",a.CENTRAL_DIRECTORY_END="PK",a.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",a.ZIP64_CENTRAL_DIRECTORY_END="PK",a.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(t,n,a){var i=t("./GenericWorker"),o=t("../utils");function s(c){i.call(this,"ConvertWorker to "+c),this.destType=c}o.inherits(s,i),s.prototype.processChunk=function(c){this.push({data:o.transformTo(this.destType,c.data),meta:c.meta})},n.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,n,a){var i=t("./GenericWorker"),o=t("../crc32");function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,i),s.prototype.processChunk=function(c){this.streamInfo.crc32=o(c.data,this.streamInfo.crc32||0),this.push(c)},n.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,n,a){var i=t("../utils"),o=t("./GenericWorker");function s(c){o.call(this,"DataLengthProbe for "+c),this.propName=c,this.withStreamInfo(c,0)}i.inherits(s,o),s.prototype.processChunk=function(c){if(c){var m=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=m+c.data.length}o.prototype.processChunk.call(this,c)},n.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,n,a){var i=t("../utils"),o=t("./GenericWorker");function s(c){o.call(this,"DataWorker");var m=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,c.then(function(b){m.dataIsReady=!0,m.data=b,m.max=b&&b.length||0,m.type=i.getTypeOf(b),m.isPaused||m._tickAndRepeat()},function(b){m.error(b)})}i.inherits(s,o),s.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var c=null,m=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":c=this.data.substring(this.index,m);break;case"uint8array":c=this.data.subarray(this.index,m);break;case"array":case"nodebuffer":c=this.data.slice(this.index,m)}return this.index=m,this.push({data:c,meta:{percent:this.max?this.index/this.max*100:0}})},n.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,n,a){function i(o){this.name=o||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(o){this.emit("data",o)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(o){this.emit("error",o)}return!0},error:function(o){return!this.isFinished&&(this.isPaused?this.generatedError=o:(this.isFinished=!0,this.emit("error",o),this.previous&&this.previous.error(o),this.cleanUp()),!0)},on:function(o,s){return this._listeners[o].push(s),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(o,s){if(this._listeners[o])for(var c=0;c<this._listeners[o].length;c++)this._listeners[o][c].call(this,s)},pipe:function(o){return o.registerPrevious(this)},registerPrevious:function(o){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=o.streamInfo,this.mergeStreamInfo(),this.previous=o;var s=this;return o.on("data",function(c){s.processChunk(c)}),o.on("end",function(){s.end()}),o.on("error",function(c){s.error(c)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var o=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),o=!0),this.previous&&this.previous.resume(),!o},flush:function(){},processChunk:function(o){this.push(o)},withStreamInfo:function(o,s){return this.extraStreamInfo[o]=s,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var o in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,o)&&(this.streamInfo[o]=this.extraStreamInfo[o])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var o="Worker "+this.name;return this.previous?this.previous+" -> "+o:o}},n.exports=i},{}],29:[function(t,n,a){var i=t("../utils"),o=t("./ConvertWorker"),s=t("./GenericWorker"),c=t("../base64"),m=t("../support"),b=t("../external"),v=null;if(m.nodestream)try{v=t("../nodejs/NodejsStreamOutputAdapter")}catch{}function w(g,p){return new b.Promise(function(y,x){var S=[],D=g._internalType,B=g._outputType,I=g._mimeType;g.on("data",function(T,O){S.push(T),p&&p(O)}).on("error",function(T){S=[],x(T)}).on("end",function(){try{var T=function(O,V,W){switch(O){case"blob":return i.newBlob(i.transformTo("arraybuffer",V),W);case"base64":return c.encode(V);default:return i.transformTo(O,V)}}(B,function(O,V){var W,Z=0,se=null,P=0;for(W=0;W<V.length;W++)P+=V[W].length;switch(O){case"string":return V.join("");case"array":return Array.prototype.concat.apply([],V);case"uint8array":for(se=new Uint8Array(P),W=0;W<V.length;W++)se.set(V[W],Z),Z+=V[W].length;return se;case"nodebuffer":return Buffer.concat(V);default:throw new Error("concat : unsupported type '"+O+"'")}}(D,S),I);y(T)}catch(O){x(O)}S=[]}).resume()})}function d(g,p,y){var x=p;switch(p){case"blob":case"arraybuffer":x="uint8array";break;case"base64":x="string"}try{this._internalType=x,this._outputType=p,this._mimeType=y,i.checkSupport(x),this._worker=g.pipe(new o(x)),g.lock()}catch(S){this._worker=new s("error"),this._worker.error(S)}}d.prototype={accumulate:function(g){return w(this,g)},on:function(g,p){var y=this;return g==="data"?this._worker.on(g,function(x){p.call(y,x.data,x.meta)}):this._worker.on(g,function(){i.delay(p,arguments,y)}),this},resume:function(){return i.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(g){if(i.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new v(this,{objectMode:this._outputType!=="nodebuffer"},g)}},n.exports=d},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(t,n,a){if(a.base64=!0,a.array=!0,a.string=!0,a.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",a.nodebuffer=typeof Buffer<"u",a.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")a.blob=!1;else{var i=new ArrayBuffer(0);try{a.blob=new Blob([i],{type:"application/zip"}).size===0}catch{try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(i),a.blob=o.getBlob("application/zip").size===0}catch{a.blob=!1}}}try{a.nodestream=!!t("readable-stream").Readable}catch{a.nodestream=!1}},{"readable-stream":16}],31:[function(t,n,a){for(var i=t("./utils"),o=t("./support"),s=t("./nodejsUtils"),c=t("./stream/GenericWorker"),m=new Array(256),b=0;b<256;b++)m[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;m[254]=m[254]=1;function v(){c.call(this,"utf-8 decode"),this.leftOver=null}function w(){c.call(this,"utf-8 encode")}a.utf8encode=function(d){return o.nodebuffer?s.newBufferFrom(d,"utf-8"):function(g){var p,y,x,S,D,B=g.length,I=0;for(S=0;S<B;S++)(64512&(y=g.charCodeAt(S)))==55296&&S+1<B&&(64512&(x=g.charCodeAt(S+1)))==56320&&(y=65536+(y-55296<<10)+(x-56320),S++),I+=y<128?1:y<2048?2:y<65536?3:4;for(p=o.uint8array?new Uint8Array(I):new Array(I),S=D=0;D<I;S++)(64512&(y=g.charCodeAt(S)))==55296&&S+1<B&&(64512&(x=g.charCodeAt(S+1)))==56320&&(y=65536+(y-55296<<10)+(x-56320),S++),y<128?p[D++]=y:(y<2048?p[D++]=192|y>>>6:(y<65536?p[D++]=224|y>>>12:(p[D++]=240|y>>>18,p[D++]=128|y>>>12&63),p[D++]=128|y>>>6&63),p[D++]=128|63&y);return p}(d)},a.utf8decode=function(d){return o.nodebuffer?i.transformTo("nodebuffer",d).toString("utf-8"):function(g){var p,y,x,S,D=g.length,B=new Array(2*D);for(p=y=0;p<D;)if((x=g[p++])<128)B[y++]=x;else if(4<(S=m[x]))B[y++]=65533,p+=S-1;else{for(x&=S===2?31:S===3?15:7;1<S&&p<D;)x=x<<6|63&g[p++],S--;1<S?B[y++]=65533:x<65536?B[y++]=x:(x-=65536,B[y++]=55296|x>>10&1023,B[y++]=56320|1023&x)}return B.length!==y&&(B.subarray?B=B.subarray(0,y):B.length=y),i.applyFromCharCode(B)}(d=i.transformTo(o.uint8array?"uint8array":"array",d))},i.inherits(v,c),v.prototype.processChunk=function(d){var g=i.transformTo(o.uint8array?"uint8array":"array",d.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var p=g;(g=new Uint8Array(p.length+this.leftOver.length)).set(this.leftOver,0),g.set(p,this.leftOver.length)}else g=this.leftOver.concat(g);this.leftOver=null}var y=function(S,D){var B;for((D=D||S.length)>S.length&&(D=S.length),B=D-1;0<=B&&(192&S[B])==128;)B--;return B<0||B===0?D:B+m[S[B]]>D?B:D}(g),x=g;y!==g.length&&(o.uint8array?(x=g.subarray(0,y),this.leftOver=g.subarray(y,g.length)):(x=g.slice(0,y),this.leftOver=g.slice(y,g.length))),this.push({data:a.utf8decode(x),meta:d.meta})},v.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:a.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},a.Utf8DecodeWorker=v,i.inherits(w,c),w.prototype.processChunk=function(d){this.push({data:a.utf8encode(d.data),meta:d.meta})},a.Utf8EncodeWorker=w},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,n,a){var i=t("./support"),o=t("./base64"),s=t("./nodejsUtils"),c=t("./external");function m(p){return p}function b(p,y){for(var x=0;x<p.length;++x)y[x]=255&p.charCodeAt(x);return y}t("setimmediate"),a.newBlob=function(p,y){a.checkSupport("blob");try{return new Blob([p],{type:y})}catch{try{var x=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return x.append(p),x.getBlob(y)}catch{throw new Error("Bug : can't construct the Blob.")}}};var v={stringifyByChunk:function(p,y,x){var S=[],D=0,B=p.length;if(B<=x)return String.fromCharCode.apply(null,p);for(;D<B;)y==="array"||y==="nodebuffer"?S.push(String.fromCharCode.apply(null,p.slice(D,Math.min(D+x,B)))):S.push(String.fromCharCode.apply(null,p.subarray(D,Math.min(D+x,B)))),D+=x;return S.join("")},stringifyByChar:function(p){for(var y="",x=0;x<p.length;x++)y+=String.fromCharCode(p[x]);return y},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&String.fromCharCode.apply(null,s.allocBuffer(1)).length===1}catch{return!1}}()}};function w(p){var y=65536,x=a.getTypeOf(p),S=!0;if(x==="uint8array"?S=v.applyCanBeUsed.uint8array:x==="nodebuffer"&&(S=v.applyCanBeUsed.nodebuffer),S)for(;1<y;)try{return v.stringifyByChunk(p,x,y)}catch{y=Math.floor(y/2)}return v.stringifyByChar(p)}function d(p,y){for(var x=0;x<p.length;x++)y[x]=p[x];return y}a.applyFromCharCode=w;var g={};g.string={string:m,array:function(p){return b(p,new Array(p.length))},arraybuffer:function(p){return g.string.uint8array(p).buffer},uint8array:function(p){return b(p,new Uint8Array(p.length))},nodebuffer:function(p){return b(p,s.allocBuffer(p.length))}},g.array={string:w,array:m,arraybuffer:function(p){return new Uint8Array(p).buffer},uint8array:function(p){return new Uint8Array(p)},nodebuffer:function(p){return s.newBufferFrom(p)}},g.arraybuffer={string:function(p){return w(new Uint8Array(p))},array:function(p){return d(new Uint8Array(p),new Array(p.byteLength))},arraybuffer:m,uint8array:function(p){return new Uint8Array(p)},nodebuffer:function(p){return s.newBufferFrom(new Uint8Array(p))}},g.uint8array={string:w,array:function(p){return d(p,new Array(p.length))},arraybuffer:function(p){return p.buffer},uint8array:m,nodebuffer:function(p){return s.newBufferFrom(p)}},g.nodebuffer={string:w,array:function(p){return d(p,new Array(p.length))},arraybuffer:function(p){return g.nodebuffer.uint8array(p).buffer},uint8array:function(p){return d(p,new Uint8Array(p.length))},nodebuffer:m},a.transformTo=function(p,y){if(y=y||"",!p)return y;a.checkSupport(p);var x=a.getTypeOf(y);return g[x][p](y)},a.resolve=function(p){for(var y=p.split("/"),x=[],S=0;S<y.length;S++){var D=y[S];D==="."||D===""&&S!==0&&S!==y.length-1||(D===".."?x.pop():x.push(D))}return x.join("/")},a.getTypeOf=function(p){return typeof p=="string"?"string":Object.prototype.toString.call(p)==="[object Array]"?"array":i.nodebuffer&&s.isBuffer(p)?"nodebuffer":i.uint8array&&p instanceof Uint8Array?"uint8array":i.arraybuffer&&p instanceof ArrayBuffer?"arraybuffer":void 0},a.checkSupport=function(p){if(!i[p.toLowerCase()])throw new Error(p+" is not supported by this platform")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(p){var y,x,S="";for(x=0;x<(p||"").length;x++)S+="\\x"+((y=p.charCodeAt(x))<16?"0":"")+y.toString(16).toUpperCase();return S},a.delay=function(p,y,x){setImmediate(function(){p.apply(x||null,y||[])})},a.inherits=function(p,y){function x(){}x.prototype=y.prototype,p.prototype=new x},a.extend=function(){var p,y,x={};for(p=0;p<arguments.length;p++)for(y in arguments[p])Object.prototype.hasOwnProperty.call(arguments[p],y)&&x[y]===void 0&&(x[y]=arguments[p][y]);return x},a.prepareContent=function(p,y,x,S,D){return c.Promise.resolve(y).then(function(B){return i.blob&&(B instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(B))!==-1)&&typeof FileReader<"u"?new c.Promise(function(I,T){var O=new FileReader;O.onload=function(V){I(V.target.result)},O.onerror=function(V){T(V.target.error)},O.readAsArrayBuffer(B)}):B}).then(function(B){var I=a.getTypeOf(B);return I?(I==="arraybuffer"?B=a.transformTo("uint8array",B):I==="string"&&(D?B=o.decode(B):x&&S!==!0&&(B=function(T){return b(T,i.uint8array?new Uint8Array(T.length):new Array(T.length))}(B))),B):c.Promise.reject(new Error("Can't read the data of '"+p+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(t,n,a){var i=t("./reader/readerFor"),o=t("./utils"),s=t("./signature"),c=t("./zipEntry"),m=t("./support");function b(v){this.files=[],this.loadOptions=v}b.prototype={checkSignature:function(v){if(!this.reader.readAndCheckSignature(v)){this.reader.index-=4;var w=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+o.pretty(w)+", expected "+o.pretty(v)+")")}},isSignature:function(v,w){var d=this.reader.index;this.reader.setIndex(v);var g=this.reader.readString(4)===w;return this.reader.setIndex(d),g},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var v=this.reader.readData(this.zipCommentLength),w=m.uint8array?"uint8array":"array",d=o.transformTo(w,v);this.zipComment=this.loadOptions.decodeFileName(d)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var v,w,d,g=this.zip64EndOfCentralSize-44;0<g;)v=this.reader.readInt(2),w=this.reader.readInt(4),d=this.reader.readData(w),this.zip64ExtensibleData[v]={id:v,length:w,value:d}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var v,w;for(v=0;v<this.files.length;v++)w=this.files[v],this.reader.setIndex(w.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),w.readLocalPart(this.reader),w.handleUTF8(),w.processAttributes()},readCentralDir:function(){var v;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(v=new c({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(v);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var v=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(v<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(v);var w=v;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===o.MAX_VALUE_16BITS||this.diskWithCentralDirStart===o.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===o.MAX_VALUE_16BITS||this.centralDirRecords===o.MAX_VALUE_16BITS||this.centralDirSize===o.MAX_VALUE_32BITS||this.centralDirOffset===o.MAX_VALUE_32BITS){if(this.zip64=!0,(v=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(v),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var g=w-d;if(0<g)this.isSignature(w,s.CENTRAL_FILE_HEADER)||(this.reader.zero=g);else if(g<0)throw new Error("Corrupted zip: missing "+Math.abs(g)+" bytes.")},prepareReader:function(v){this.reader=i(v)},load:function(v){this.prepareReader(v),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},n.exports=b},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(t,n,a){var i=t("./reader/readerFor"),o=t("./utils"),s=t("./compressedObject"),c=t("./crc32"),m=t("./utf8"),b=t("./compressions"),v=t("./support");function w(d,g){this.options=d,this.loadOptions=g}w.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(d){var g,p;if(d.skip(22),this.fileNameLength=d.readInt(2),p=d.readInt(2),this.fileName=d.readData(this.fileNameLength),d.skip(p),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((g=function(y){for(var x in b)if(Object.prototype.hasOwnProperty.call(b,x)&&b[x].magic===y)return b[x];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+o.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,g,d.readData(this.compressedSize))},readCentralPart:function(d){this.versionMadeBy=d.readInt(2),d.skip(2),this.bitFlag=d.readInt(2),this.compressionMethod=d.readString(2),this.date=d.readDate(),this.crc32=d.readInt(4),this.compressedSize=d.readInt(4),this.uncompressedSize=d.readInt(4);var g=d.readInt(2);if(this.extraFieldsLength=d.readInt(2),this.fileCommentLength=d.readInt(2),this.diskNumberStart=d.readInt(2),this.internalFileAttributes=d.readInt(2),this.externalFileAttributes=d.readInt(4),this.localHeaderOffset=d.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");d.skip(g),this.readExtraFields(d),this.parseZIP64ExtraField(d),this.fileComment=d.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var d=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),d==0&&(this.dosPermissions=63&this.externalFileAttributes),d==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var d=i(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=d.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=d.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=d.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=d.readInt(4))}},readExtraFields:function(d){var g,p,y,x=d.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});d.index+4<x;)g=d.readInt(2),p=d.readInt(2),y=d.readData(p),this.extraFields[g]={id:g,length:p,value:y};d.setIndex(x)},handleUTF8:function(){var d=v.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=m.utf8decode(this.fileName),this.fileCommentStr=m.utf8decode(this.fileComment);else{var g=this.findExtraFieldUnicodePath();if(g!==null)this.fileNameStr=g;else{var p=o.transformTo(d,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(p)}var y=this.findExtraFieldUnicodeComment();if(y!==null)this.fileCommentStr=y;else{var x=o.transformTo(d,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(x)}}},findExtraFieldUnicodePath:function(){var d=this.extraFields[28789];if(d){var g=i(d.value);return g.readInt(1)!==1||c(this.fileName)!==g.readInt(4)?null:m.utf8decode(g.readData(d.length-5))}return null},findExtraFieldUnicodeComment:function(){var d=this.extraFields[25461];if(d){var g=i(d.value);return g.readInt(1)!==1||c(this.fileComment)!==g.readInt(4)?null:m.utf8decode(g.readData(d.length-5))}return null}},n.exports=w},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(t,n,a){function i(g,p,y){this.name=g,this.dir=y.dir,this.date=y.date,this.comment=y.comment,this.unixPermissions=y.unixPermissions,this.dosPermissions=y.dosPermissions,this._data=p,this._dataBinary=y.binary,this.options={compression:y.compression,compressionOptions:y.compressionOptions}}var o=t("./stream/StreamHelper"),s=t("./stream/DataWorker"),c=t("./utf8"),m=t("./compressedObject"),b=t("./stream/GenericWorker");i.prototype={internalStream:function(g){var p=null,y="string";try{if(!g)throw new Error("No output type specified.");var x=(y=g.toLowerCase())==="string"||y==="text";y!=="binarystring"&&y!=="text"||(y="string"),p=this._decompressWorker();var S=!this._dataBinary;S&&!x&&(p=p.pipe(new c.Utf8EncodeWorker)),!S&&x&&(p=p.pipe(new c.Utf8DecodeWorker))}catch(D){(p=new b("error")).error(D)}return new o(p,y,"")},async:function(g,p){return this.internalStream(g).accumulate(p)},nodeStream:function(g,p){return this.internalStream(g||"nodebuffer").toNodejsStream(p)},_compressWorker:function(g,p){if(this._data instanceof m&&this._data.compression.magic===g.magic)return this._data.getCompressedWorker();var y=this._decompressWorker();return this._dataBinary||(y=y.pipe(new c.Utf8EncodeWorker)),m.createWorkerFrom(y,g,p)},_decompressWorker:function(){return this._data instanceof m?this._data.getContentWorker():this._data instanceof b?this._data:new s(this._data)}};for(var v=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],w=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},d=0;d<v.length;d++)i.prototype[v[d]]=w;n.exports=i},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(t,n,a){(function(i){var o,s,c=i.MutationObserver||i.WebKitMutationObserver;if(c){var m=0,b=new c(g),v=i.document.createTextNode("");b.observe(v,{characterData:!0}),o=function(){v.data=m=++m%2}}else if(i.setImmediate||i.MessageChannel===void 0)o="document"in i&&"onreadystatechange"in i.document.createElement("script")?function(){var p=i.document.createElement("script");p.onreadystatechange=function(){g(),p.onreadystatechange=null,p.parentNode.removeChild(p),p=null},i.document.documentElement.appendChild(p)}:function(){setTimeout(g,0)};else{var w=new i.MessageChannel;w.port1.onmessage=g,o=function(){w.port2.postMessage(0)}}var d=[];function g(){var p,y;s=!0;for(var x=d.length;x;){for(y=d,d=[],p=-1;++p<x;)y[p]();x=d.length}s=!1}n.exports=function(p){d.push(p)!==1||s||o()}}).call(this,typeof Nt<"u"?Nt:typeof self<"u"?self:typeof window<"u"?window:{})},{}],37:[function(t,n,a){var i=t("immediate");function o(){}var s={},c=["REJECTED"],m=["FULFILLED"],b=["PENDING"];function v(x){if(typeof x!="function")throw new TypeError("resolver must be a function");this.state=b,this.queue=[],this.outcome=void 0,x!==o&&p(this,x)}function w(x,S,D){this.promise=x,typeof S=="function"&&(this.onFulfilled=S,this.callFulfilled=this.otherCallFulfilled),typeof D=="function"&&(this.onRejected=D,this.callRejected=this.otherCallRejected)}function d(x,S,D){i(function(){var B;try{B=S(D)}catch(I){return s.reject(x,I)}B===x?s.reject(x,new TypeError("Cannot resolve promise with itself")):s.resolve(x,B)})}function g(x){var S=x&&x.then;if(x&&(typeof x=="object"||typeof x=="function")&&typeof S=="function")return function(){S.apply(x,arguments)}}function p(x,S){var D=!1;function B(O){D||(D=!0,s.reject(x,O))}function I(O){D||(D=!0,s.resolve(x,O))}var T=y(function(){S(I,B)});T.status==="error"&&B(T.value)}function y(x,S){var D={};try{D.value=x(S),D.status="success"}catch(B){D.status="error",D.value=B}return D}(n.exports=v).prototype.finally=function(x){if(typeof x!="function")return this;var S=this.constructor;return this.then(function(D){return S.resolve(x()).then(function(){return D})},function(D){return S.resolve(x()).then(function(){throw D})})},v.prototype.catch=function(x){return this.then(null,x)},v.prototype.then=function(x,S){if(typeof x!="function"&&this.state===m||typeof S!="function"&&this.state===c)return this;var D=new this.constructor(o);return this.state!==b?d(D,this.state===m?x:S,this.outcome):this.queue.push(new w(D,x,S)),D},w.prototype.callFulfilled=function(x){s.resolve(this.promise,x)},w.prototype.otherCallFulfilled=function(x){d(this.promise,this.onFulfilled,x)},w.prototype.callRejected=function(x){s.reject(this.promise,x)},w.prototype.otherCallRejected=function(x){d(this.promise,this.onRejected,x)},s.resolve=function(x,S){var D=y(g,S);if(D.status==="error")return s.reject(x,D.value);var B=D.value;if(B)p(x,B);else{x.state=m,x.outcome=S;for(var I=-1,T=x.queue.length;++I<T;)x.queue[I].callFulfilled(S)}return x},s.reject=function(x,S){x.state=c,x.outcome=S;for(var D=-1,B=x.queue.length;++D<B;)x.queue[D].callRejected(S);return x},v.resolve=function(x){return x instanceof this?x:s.resolve(new this(o),x)},v.reject=function(x){var S=new this(o);return s.reject(S,x)},v.all=function(x){var S=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var D=x.length,B=!1;if(!D)return this.resolve([]);for(var I=new Array(D),T=0,O=-1,V=new this(o);++O<D;)W(x[O],O);return V;function W(Z,se){S.resolve(Z).then(function(P){I[se]=P,++T!==D||B||(B=!0,s.resolve(V,I))},function(P){B||(B=!0,s.reject(V,P))})}},v.race=function(x){var S=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var D=x.length,B=!1;if(!D)return this.resolve([]);for(var I=-1,T=new this(o);++I<D;)O=x[I],S.resolve(O).then(function(V){B||(B=!0,s.resolve(T,V))},function(V){B||(B=!0,s.reject(T,V))});var O;return T}},{immediate:36}],38:[function(t,n,a){var i={};(0,t("./lib/utils/common").assign)(i,t("./lib/deflate"),t("./lib/inflate"),t("./lib/zlib/constants")),n.exports=i},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(t,n,a){var i=t("./zlib/deflate"),o=t("./utils/common"),s=t("./utils/strings"),c=t("./zlib/messages"),m=t("./zlib/zstream"),b=Object.prototype.toString,v=0,w=-1,d=0,g=8;function p(x){if(!(this instanceof p))return new p(x);this.options=o.assign({level:w,method:g,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:""},x||{});var S=this.options;S.raw&&0<S.windowBits?S.windowBits=-S.windowBits:S.gzip&&0<S.windowBits&&S.windowBits<16&&(S.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new m,this.strm.avail_out=0;var D=i.deflateInit2(this.strm,S.level,S.method,S.windowBits,S.memLevel,S.strategy);if(D!==v)throw new Error(c[D]);if(S.header&&i.deflateSetHeader(this.strm,S.header),S.dictionary){var B;if(B=typeof S.dictionary=="string"?s.string2buf(S.dictionary):b.call(S.dictionary)==="[object ArrayBuffer]"?new Uint8Array(S.dictionary):S.dictionary,(D=i.deflateSetDictionary(this.strm,B))!==v)throw new Error(c[D]);this._dict_set=!0}}function y(x,S){var D=new p(S);if(D.push(x,!0),D.err)throw D.msg||c[D.err];return D.result}p.prototype.push=function(x,S){var D,B,I=this.strm,T=this.options.chunkSize;if(this.ended)return!1;B=S===~~S?S:S===!0?4:0,typeof x=="string"?I.input=s.string2buf(x):b.call(x)==="[object ArrayBuffer]"?I.input=new Uint8Array(x):I.input=x,I.next_in=0,I.avail_in=I.input.length;do{if(I.avail_out===0&&(I.output=new o.Buf8(T),I.next_out=0,I.avail_out=T),(D=i.deflate(I,B))!==1&&D!==v)return this.onEnd(D),!(this.ended=!0);I.avail_out!==0&&(I.avail_in!==0||B!==4&&B!==2)||(this.options.to==="string"?this.onData(s.buf2binstring(o.shrinkBuf(I.output,I.next_out))):this.onData(o.shrinkBuf(I.output,I.next_out)))}while((0<I.avail_in||I.avail_out===0)&&D!==1);return B===4?(D=i.deflateEnd(this.strm),this.onEnd(D),this.ended=!0,D===v):B!==2||(this.onEnd(v),!(I.avail_out=0))},p.prototype.onData=function(x){this.chunks.push(x)},p.prototype.onEnd=function(x){x===v&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=x,this.msg=this.strm.msg},a.Deflate=p,a.deflate=y,a.deflateRaw=function(x,S){return(S=S||{}).raw=!0,y(x,S)},a.gzip=function(x,S){return(S=S||{}).gzip=!0,y(x,S)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(t,n,a){var i=t("./zlib/inflate"),o=t("./utils/common"),s=t("./utils/strings"),c=t("./zlib/constants"),m=t("./zlib/messages"),b=t("./zlib/zstream"),v=t("./zlib/gzheader"),w=Object.prototype.toString;function d(p){if(!(this instanceof d))return new d(p);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},p||{});var y=this.options;y.raw&&0<=y.windowBits&&y.windowBits<16&&(y.windowBits=-y.windowBits,y.windowBits===0&&(y.windowBits=-15)),!(0<=y.windowBits&&y.windowBits<16)||p&&p.windowBits||(y.windowBits+=32),15<y.windowBits&&y.windowBits<48&&!(15&y.windowBits)&&(y.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new b,this.strm.avail_out=0;var x=i.inflateInit2(this.strm,y.windowBits);if(x!==c.Z_OK)throw new Error(m[x]);this.header=new v,i.inflateGetHeader(this.strm,this.header)}function g(p,y){var x=new d(y);if(x.push(p,!0),x.err)throw x.msg||m[x.err];return x.result}d.prototype.push=function(p,y){var x,S,D,B,I,T,O=this.strm,V=this.options.chunkSize,W=this.options.dictionary,Z=!1;if(this.ended)return!1;S=y===~~y?y:y===!0?c.Z_FINISH:c.Z_NO_FLUSH,typeof p=="string"?O.input=s.binstring2buf(p):w.call(p)==="[object ArrayBuffer]"?O.input=new Uint8Array(p):O.input=p,O.next_in=0,O.avail_in=O.input.length;do{if(O.avail_out===0&&(O.output=new o.Buf8(V),O.next_out=0,O.avail_out=V),(x=i.inflate(O,c.Z_NO_FLUSH))===c.Z_NEED_DICT&&W&&(T=typeof W=="string"?s.string2buf(W):w.call(W)==="[object ArrayBuffer]"?new Uint8Array(W):W,x=i.inflateSetDictionary(this.strm,T)),x===c.Z_BUF_ERROR&&Z===!0&&(x=c.Z_OK,Z=!1),x!==c.Z_STREAM_END&&x!==c.Z_OK)return this.onEnd(x),!(this.ended=!0);O.next_out&&(O.avail_out!==0&&x!==c.Z_STREAM_END&&(O.avail_in!==0||S!==c.Z_FINISH&&S!==c.Z_SYNC_FLUSH)||(this.options.to==="string"?(D=s.utf8border(O.output,O.next_out),B=O.next_out-D,I=s.buf2string(O.output,D),O.next_out=B,O.avail_out=V-B,B&&o.arraySet(O.output,O.output,D,B,0),this.onData(I)):this.onData(o.shrinkBuf(O.output,O.next_out)))),O.avail_in===0&&O.avail_out===0&&(Z=!0)}while((0<O.avail_in||O.avail_out===0)&&x!==c.Z_STREAM_END);return x===c.Z_STREAM_END&&(S=c.Z_FINISH),S===c.Z_FINISH?(x=i.inflateEnd(this.strm),this.onEnd(x),this.ended=!0,x===c.Z_OK):S!==c.Z_SYNC_FLUSH||(this.onEnd(c.Z_OK),!(O.avail_out=0))},d.prototype.onData=function(p){this.chunks.push(p)},d.prototype.onEnd=function(p){p===c.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=p,this.msg=this.strm.msg},a.Inflate=d,a.inflate=g,a.inflateRaw=function(p,y){return(y=y||{}).raw=!0,g(p,y)},a.ungzip=g},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(t,n,a){var i=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";a.assign=function(c){for(var m=Array.prototype.slice.call(arguments,1);m.length;){var b=m.shift();if(b){if(typeof b!="object")throw new TypeError(b+"must be non-object");for(var v in b)b.hasOwnProperty(v)&&(c[v]=b[v])}}return c},a.shrinkBuf=function(c,m){return c.length===m?c:c.subarray?c.subarray(0,m):(c.length=m,c)};var o={arraySet:function(c,m,b,v,w){if(m.subarray&&c.subarray)c.set(m.subarray(b,b+v),w);else for(var d=0;d<v;d++)c[w+d]=m[b+d]},flattenChunks:function(c){var m,b,v,w,d,g;for(m=v=0,b=c.length;m<b;m++)v+=c[m].length;for(g=new Uint8Array(v),m=w=0,b=c.length;m<b;m++)d=c[m],g.set(d,w),w+=d.length;return g}},s={arraySet:function(c,m,b,v,w){for(var d=0;d<v;d++)c[w+d]=m[b+d]},flattenChunks:function(c){return[].concat.apply([],c)}};a.setTyped=function(c){c?(a.Buf8=Uint8Array,a.Buf16=Uint16Array,a.Buf32=Int32Array,a.assign(a,o)):(a.Buf8=Array,a.Buf16=Array,a.Buf32=Array,a.assign(a,s))},a.setTyped(i)},{}],42:[function(t,n,a){var i=t("./common"),o=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch{o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{s=!1}for(var c=new i.Buf8(256),m=0;m<256;m++)c[m]=252<=m?6:248<=m?5:240<=m?4:224<=m?3:192<=m?2:1;function b(v,w){if(w<65537&&(v.subarray&&s||!v.subarray&&o))return String.fromCharCode.apply(null,i.shrinkBuf(v,w));for(var d="",g=0;g<w;g++)d+=String.fromCharCode(v[g]);return d}c[254]=c[254]=1,a.string2buf=function(v){var w,d,g,p,y,x=v.length,S=0;for(p=0;p<x;p++)(64512&(d=v.charCodeAt(p)))==55296&&p+1<x&&(64512&(g=v.charCodeAt(p+1)))==56320&&(d=65536+(d-55296<<10)+(g-56320),p++),S+=d<128?1:d<2048?2:d<65536?3:4;for(w=new i.Buf8(S),p=y=0;y<S;p++)(64512&(d=v.charCodeAt(p)))==55296&&p+1<x&&(64512&(g=v.charCodeAt(p+1)))==56320&&(d=65536+(d-55296<<10)+(g-56320),p++),d<128?w[y++]=d:(d<2048?w[y++]=192|d>>>6:(d<65536?w[y++]=224|d>>>12:(w[y++]=240|d>>>18,w[y++]=128|d>>>12&63),w[y++]=128|d>>>6&63),w[y++]=128|63&d);return w},a.buf2binstring=function(v){return b(v,v.length)},a.binstring2buf=function(v){for(var w=new i.Buf8(v.length),d=0,g=w.length;d<g;d++)w[d]=v.charCodeAt(d);return w},a.buf2string=function(v,w){var d,g,p,y,x=w||v.length,S=new Array(2*x);for(d=g=0;d<x;)if((p=v[d++])<128)S[g++]=p;else if(4<(y=c[p]))S[g++]=65533,d+=y-1;else{for(p&=y===2?31:y===3?15:7;1<y&&d<x;)p=p<<6|63&v[d++],y--;1<y?S[g++]=65533:p<65536?S[g++]=p:(p-=65536,S[g++]=55296|p>>10&1023,S[g++]=56320|1023&p)}return b(S,g)},a.utf8border=function(v,w){var d;for((w=w||v.length)>v.length&&(w=v.length),d=w-1;0<=d&&(192&v[d])==128;)d--;return d<0||d===0?w:d+c[v[d]]>w?d:w}},{"./common":41}],43:[function(t,n,a){n.exports=function(i,o,s,c){for(var m=65535&i|0,b=i>>>16&65535|0,v=0;s!==0;){for(s-=v=2e3<s?2e3:s;b=b+(m=m+o[c++]|0)|0,--v;);m%=65521,b%=65521}return m|b<<16|0}},{}],44:[function(t,n,a){n.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,n,a){var i=function(){for(var o,s=[],c=0;c<256;c++){o=c;for(var m=0;m<8;m++)o=1&o?3988292384^o>>>1:o>>>1;s[c]=o}return s}();n.exports=function(o,s,c,m){var b=i,v=m+c;o^=-1;for(var w=m;w<v;w++)o=o>>>8^b[255&(o^s[w])];return-1^o}},{}],46:[function(t,n,a){var i,o=t("../utils/common"),s=t("./trees"),c=t("./adler32"),m=t("./crc32"),b=t("./messages"),v=0,w=4,d=0,g=-2,p=-1,y=4,x=2,S=8,D=9,B=286,I=30,T=19,O=2*B+1,V=15,W=3,Z=258,se=Z+W+1,P=42,X=113,A=1,J=2,oe=3,q=4;function fe(u,K){return u.msg=b[K],K}function ee(u){return(u<<1)-(4<u?9:0)}function ge(u){for(var K=u.length;0<=--K;)u[K]=0}function j(u){var K=u.state,F=K.pending;F>u.avail_out&&(F=u.avail_out),F!==0&&(o.arraySet(u.output,K.pending_buf,K.pending_out,F,u.next_out),u.next_out+=F,K.pending_out+=F,u.total_out+=F,u.avail_out-=F,K.pending-=F,K.pending===0&&(K.pending_out=0))}function U(u,K){s._tr_flush_block(u,0<=u.block_start?u.block_start:-1,u.strstart-u.block_start,K),u.block_start=u.strstart,j(u.strm)}function ve(u,K){u.pending_buf[u.pending++]=K}function de(u,K){u.pending_buf[u.pending++]=K>>>8&255,u.pending_buf[u.pending++]=255&K}function te(u,K){var F,M,k=u.max_chain_length,z=u.strstart,R=u.prev_length,Q=u.nice_match,G=u.strstart>u.w_size-se?u.strstart-(u.w_size-se):0,ie=u.window,ue=u.w_mask,ae=u.prev,_e=u.strstart+Z,_=ie[z+R-1],l=ie[z+R];u.prev_length>=u.good_match&&(k>>=2),Q>u.lookahead&&(Q=u.lookahead);do if(ie[(F=K)+R]===l&&ie[F+R-1]===_&&ie[F]===ie[z]&&ie[++F]===ie[z+1]){z+=2,F++;do;while(ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&z<_e);if(M=Z-(_e-z),z=_e-Z,R<M){if(u.match_start=K,Q<=(R=M))break;_=ie[z+R-1],l=ie[z+R]}}while((K=ae[K&ue])>G&&--k!=0);return R<=u.lookahead?R:u.lookahead}function Te(u){var K,F,M,k,z,R,Q,G,ie,ue,ae=u.w_size;do{if(k=u.window_size-u.lookahead-u.strstart,u.strstart>=ae+(ae-se)){for(o.arraySet(u.window,u.window,ae,ae,0),u.match_start-=ae,u.strstart-=ae,u.block_start-=ae,K=F=u.hash_size;M=u.head[--K],u.head[K]=ae<=M?M-ae:0,--F;);for(K=F=ae;M=u.prev[--K],u.prev[K]=ae<=M?M-ae:0,--F;);k+=ae}if(u.strm.avail_in===0)break;if(R=u.strm,Q=u.window,G=u.strstart+u.lookahead,ie=k,ue=void 0,ue=R.avail_in,ie<ue&&(ue=ie),F=ue===0?0:(R.avail_in-=ue,o.arraySet(Q,R.input,R.next_in,ue,G),R.state.wrap===1?R.adler=c(R.adler,Q,ue,G):R.state.wrap===2&&(R.adler=m(R.adler,Q,ue,G)),R.next_in+=ue,R.total_in+=ue,ue),u.lookahead+=F,u.lookahead+u.insert>=W)for(z=u.strstart-u.insert,u.ins_h=u.window[z],u.ins_h=(u.ins_h<<u.hash_shift^u.window[z+1])&u.hash_mask;u.insert&&(u.ins_h=(u.ins_h<<u.hash_shift^u.window[z+W-1])&u.hash_mask,u.prev[z&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=z,z++,u.insert--,!(u.lookahead+u.insert<W)););}while(u.lookahead<se&&u.strm.avail_in!==0)}function Oe(u,K){for(var F,M;;){if(u.lookahead<se){if(Te(u),u.lookahead<se&&K===v)return A;if(u.lookahead===0)break}if(F=0,u.lookahead>=W&&(u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+W-1])&u.hash_mask,F=u.prev[u.strstart&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=u.strstart),F!==0&&u.strstart-F<=u.w_size-se&&(u.match_length=te(u,F)),u.match_length>=W)if(M=s._tr_tally(u,u.strstart-u.match_start,u.match_length-W),u.lookahead-=u.match_length,u.match_length<=u.max_lazy_match&&u.lookahead>=W){for(u.match_length--;u.strstart++,u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+W-1])&u.hash_mask,F=u.prev[u.strstart&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=u.strstart,--u.match_length!=0;);u.strstart++}else u.strstart+=u.match_length,u.match_length=0,u.ins_h=u.window[u.strstart],u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+1])&u.hash_mask;else M=s._tr_tally(u,0,u.window[u.strstart]),u.lookahead--,u.strstart++;if(M&&(U(u,!1),u.strm.avail_out===0))return A}return u.insert=u.strstart<W-1?u.strstart:W-1,K===w?(U(u,!0),u.strm.avail_out===0?oe:q):u.last_lit&&(U(u,!1),u.strm.avail_out===0)?A:J}function pe(u,K){for(var F,M,k;;){if(u.lookahead<se){if(Te(u),u.lookahead<se&&K===v)return A;if(u.lookahead===0)break}if(F=0,u.lookahead>=W&&(u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+W-1])&u.hash_mask,F=u.prev[u.strstart&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=u.strstart),u.prev_length=u.match_length,u.prev_match=u.match_start,u.match_length=W-1,F!==0&&u.prev_length<u.max_lazy_match&&u.strstart-F<=u.w_size-se&&(u.match_length=te(u,F),u.match_length<=5&&(u.strategy===1||u.match_length===W&&4096<u.strstart-u.match_start)&&(u.match_length=W-1)),u.prev_length>=W&&u.match_length<=u.prev_length){for(k=u.strstart+u.lookahead-W,M=s._tr_tally(u,u.strstart-1-u.prev_match,u.prev_length-W),u.lookahead-=u.prev_length-1,u.prev_length-=2;++u.strstart<=k&&(u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+W-1])&u.hash_mask,F=u.prev[u.strstart&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=u.strstart),--u.prev_length!=0;);if(u.match_available=0,u.match_length=W-1,u.strstart++,M&&(U(u,!1),u.strm.avail_out===0))return A}else if(u.match_available){if((M=s._tr_tally(u,0,u.window[u.strstart-1]))&&U(u,!1),u.strstart++,u.lookahead--,u.strm.avail_out===0)return A}else u.match_available=1,u.strstart++,u.lookahead--}return u.match_available&&(M=s._tr_tally(u,0,u.window[u.strstart-1]),u.match_available=0),u.insert=u.strstart<W-1?u.strstart:W-1,K===w?(U(u,!0),u.strm.avail_out===0?oe:q):u.last_lit&&(U(u,!1),u.strm.avail_out===0)?A:J}function be(u,K,F,M,k){this.good_length=u,this.max_lazy=K,this.nice_length=F,this.max_chain=M,this.func=k}function xe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=S,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new o.Buf16(2*O),this.dyn_dtree=new o.Buf16(2*(2*I+1)),this.bl_tree=new o.Buf16(2*(2*T+1)),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new o.Buf16(V+1),this.heap=new o.Buf16(2*B+1),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new o.Buf16(2*B+1),ge(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function $(u){var K;return u&&u.state?(u.total_in=u.total_out=0,u.data_type=x,(K=u.state).pending=0,K.pending_out=0,K.wrap<0&&(K.wrap=-K.wrap),K.status=K.wrap?P:X,u.adler=K.wrap===2?0:1,K.last_flush=v,s._tr_init(K),d):fe(u,g)}function he(u){var K=$(u);return K===d&&function(F){F.window_size=2*F.w_size,ge(F.head),F.max_lazy_match=i[F.level].max_lazy,F.good_match=i[F.level].good_length,F.nice_match=i[F.level].nice_length,F.max_chain_length=i[F.level].max_chain,F.strstart=0,F.block_start=0,F.lookahead=0,F.insert=0,F.match_length=F.prev_length=W-1,F.match_available=0,F.ins_h=0}(u.state),K}function re(u,K,F,M,k,z){if(!u)return g;var R=1;if(K===p&&(K=6),M<0?(R=0,M=-M):15<M&&(R=2,M-=16),k<1||D<k||F!==S||M<8||15<M||K<0||9<K||z<0||y<z)return fe(u,g);M===8&&(M=9);var Q=new xe;return(u.state=Q).strm=u,Q.wrap=R,Q.gzhead=null,Q.w_bits=M,Q.w_size=1<<Q.w_bits,Q.w_mask=Q.w_size-1,Q.hash_bits=k+7,Q.hash_size=1<<Q.hash_bits,Q.hash_mask=Q.hash_size-1,Q.hash_shift=~~((Q.hash_bits+W-1)/W),Q.window=new o.Buf8(2*Q.w_size),Q.head=new o.Buf16(Q.hash_size),Q.prev=new o.Buf16(Q.w_size),Q.lit_bufsize=1<<k+6,Q.pending_buf_size=4*Q.lit_bufsize,Q.pending_buf=new o.Buf8(Q.pending_buf_size),Q.d_buf=1*Q.lit_bufsize,Q.l_buf=3*Q.lit_bufsize,Q.level=K,Q.strategy=z,Q.method=F,he(u)}i=[new be(0,0,0,0,function(u,K){var F=65535;for(F>u.pending_buf_size-5&&(F=u.pending_buf_size-5);;){if(u.lookahead<=1){if(Te(u),u.lookahead===0&&K===v)return A;if(u.lookahead===0)break}u.strstart+=u.lookahead,u.lookahead=0;var M=u.block_start+F;if((u.strstart===0||u.strstart>=M)&&(u.lookahead=u.strstart-M,u.strstart=M,U(u,!1),u.strm.avail_out===0)||u.strstart-u.block_start>=u.w_size-se&&(U(u,!1),u.strm.avail_out===0))return A}return u.insert=0,K===w?(U(u,!0),u.strm.avail_out===0?oe:q):(u.strstart>u.block_start&&(U(u,!1),u.strm.avail_out),A)}),new be(4,4,8,4,Oe),new be(4,5,16,8,Oe),new be(4,6,32,32,Oe),new be(4,4,16,16,pe),new be(8,16,32,32,pe),new be(8,16,128,128,pe),new be(8,32,128,256,pe),new be(32,128,258,1024,pe),new be(32,258,258,4096,pe)],a.deflateInit=function(u,K){return re(u,K,S,15,8,0)},a.deflateInit2=re,a.deflateReset=he,a.deflateResetKeep=$,a.deflateSetHeader=function(u,K){return u&&u.state?u.state.wrap!==2?g:(u.state.gzhead=K,d):g},a.deflate=function(u,K){var F,M,k,z;if(!u||!u.state||5<K||K<0)return u?fe(u,g):g;if(M=u.state,!u.output||!u.input&&u.avail_in!==0||M.status===666&&K!==w)return fe(u,u.avail_out===0?-5:g);if(M.strm=u,F=M.last_flush,M.last_flush=K,M.status===P)if(M.wrap===2)u.adler=0,ve(M,31),ve(M,139),ve(M,8),M.gzhead?(ve(M,(M.gzhead.text?1:0)+(M.gzhead.hcrc?2:0)+(M.gzhead.extra?4:0)+(M.gzhead.name?8:0)+(M.gzhead.comment?16:0)),ve(M,255&M.gzhead.time),ve(M,M.gzhead.time>>8&255),ve(M,M.gzhead.time>>16&255),ve(M,M.gzhead.time>>24&255),ve(M,M.level===9?2:2<=M.strategy||M.level<2?4:0),ve(M,255&M.gzhead.os),M.gzhead.extra&&M.gzhead.extra.length&&(ve(M,255&M.gzhead.extra.length),ve(M,M.gzhead.extra.length>>8&255)),M.gzhead.hcrc&&(u.adler=m(u.adler,M.pending_buf,M.pending,0)),M.gzindex=0,M.status=69):(ve(M,0),ve(M,0),ve(M,0),ve(M,0),ve(M,0),ve(M,M.level===9?2:2<=M.strategy||M.level<2?4:0),ve(M,3),M.status=X);else{var R=S+(M.w_bits-8<<4)<<8;R|=(2<=M.strategy||M.level<2?0:M.level<6?1:M.level===6?2:3)<<6,M.strstart!==0&&(R|=32),R+=31-R%31,M.status=X,de(M,R),M.strstart!==0&&(de(M,u.adler>>>16),de(M,65535&u.adler)),u.adler=1}if(M.status===69)if(M.gzhead.extra){for(k=M.pending;M.gzindex<(65535&M.gzhead.extra.length)&&(M.pending!==M.pending_buf_size||(M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),j(u),k=M.pending,M.pending!==M.pending_buf_size));)ve(M,255&M.gzhead.extra[M.gzindex]),M.gzindex++;M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),M.gzindex===M.gzhead.extra.length&&(M.gzindex=0,M.status=73)}else M.status=73;if(M.status===73)if(M.gzhead.name){k=M.pending;do{if(M.pending===M.pending_buf_size&&(M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),j(u),k=M.pending,M.pending===M.pending_buf_size)){z=1;break}z=M.gzindex<M.gzhead.name.length?255&M.gzhead.name.charCodeAt(M.gzindex++):0,ve(M,z)}while(z!==0);M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),z===0&&(M.gzindex=0,M.status=91)}else M.status=91;if(M.status===91)if(M.gzhead.comment){k=M.pending;do{if(M.pending===M.pending_buf_size&&(M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),j(u),k=M.pending,M.pending===M.pending_buf_size)){z=1;break}z=M.gzindex<M.gzhead.comment.length?255&M.gzhead.comment.charCodeAt(M.gzindex++):0,ve(M,z)}while(z!==0);M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),z===0&&(M.status=103)}else M.status=103;if(M.status===103&&(M.gzhead.hcrc?(M.pending+2>M.pending_buf_size&&j(u),M.pending+2<=M.pending_buf_size&&(ve(M,255&u.adler),ve(M,u.adler>>8&255),u.adler=0,M.status=X)):M.status=X),M.pending!==0){if(j(u),u.avail_out===0)return M.last_flush=-1,d}else if(u.avail_in===0&&ee(K)<=ee(F)&&K!==w)return fe(u,-5);if(M.status===666&&u.avail_in!==0)return fe(u,-5);if(u.avail_in!==0||M.lookahead!==0||K!==v&&M.status!==666){var Q=M.strategy===2?function(G,ie){for(var ue;;){if(G.lookahead===0&&(Te(G),G.lookahead===0)){if(ie===v)return A;break}if(G.match_length=0,ue=s._tr_tally(G,0,G.window[G.strstart]),G.lookahead--,G.strstart++,ue&&(U(G,!1),G.strm.avail_out===0))return A}return G.insert=0,ie===w?(U(G,!0),G.strm.avail_out===0?oe:q):G.last_lit&&(U(G,!1),G.strm.avail_out===0)?A:J}(M,K):M.strategy===3?function(G,ie){for(var ue,ae,_e,_,l=G.window;;){if(G.lookahead<=Z){if(Te(G),G.lookahead<=Z&&ie===v)return A;if(G.lookahead===0)break}if(G.match_length=0,G.lookahead>=W&&0<G.strstart&&(ae=l[_e=G.strstart-1])===l[++_e]&&ae===l[++_e]&&ae===l[++_e]){_=G.strstart+Z;do;while(ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&_e<_);G.match_length=Z-(_-_e),G.match_length>G.lookahead&&(G.match_length=G.lookahead)}if(G.match_length>=W?(ue=s._tr_tally(G,1,G.match_length-W),G.lookahead-=G.match_length,G.strstart+=G.match_length,G.match_length=0):(ue=s._tr_tally(G,0,G.window[G.strstart]),G.lookahead--,G.strstart++),ue&&(U(G,!1),G.strm.avail_out===0))return A}return G.insert=0,ie===w?(U(G,!0),G.strm.avail_out===0?oe:q):G.last_lit&&(U(G,!1),G.strm.avail_out===0)?A:J}(M,K):i[M.level].func(M,K);if(Q!==oe&&Q!==q||(M.status=666),Q===A||Q===oe)return u.avail_out===0&&(M.last_flush=-1),d;if(Q===J&&(K===1?s._tr_align(M):K!==5&&(s._tr_stored_block(M,0,0,!1),K===3&&(ge(M.head),M.lookahead===0&&(M.strstart=0,M.block_start=0,M.insert=0))),j(u),u.avail_out===0))return M.last_flush=-1,d}return K!==w?d:M.wrap<=0?1:(M.wrap===2?(ve(M,255&u.adler),ve(M,u.adler>>8&255),ve(M,u.adler>>16&255),ve(M,u.adler>>24&255),ve(M,255&u.total_in),ve(M,u.total_in>>8&255),ve(M,u.total_in>>16&255),ve(M,u.total_in>>24&255)):(de(M,u.adler>>>16),de(M,65535&u.adler)),j(u),0<M.wrap&&(M.wrap=-M.wrap),M.pending!==0?d:1)},a.deflateEnd=function(u){var K;return u&&u.state?(K=u.state.status)!==P&&K!==69&&K!==73&&K!==91&&K!==103&&K!==X&&K!==666?fe(u,g):(u.state=null,K===X?fe(u,-3):d):g},a.deflateSetDictionary=function(u,K){var F,M,k,z,R,Q,G,ie,ue=K.length;if(!u||!u.state||(z=(F=u.state).wrap)===2||z===1&&F.status!==P||F.lookahead)return g;for(z===1&&(u.adler=c(u.adler,K,ue,0)),F.wrap=0,ue>=F.w_size&&(z===0&&(ge(F.head),F.strstart=0,F.block_start=0,F.insert=0),ie=new o.Buf8(F.w_size),o.arraySet(ie,K,ue-F.w_size,F.w_size,0),K=ie,ue=F.w_size),R=u.avail_in,Q=u.next_in,G=u.input,u.avail_in=ue,u.next_in=0,u.input=K,Te(F);F.lookahead>=W;){for(M=F.strstart,k=F.lookahead-(W-1);F.ins_h=(F.ins_h<<F.hash_shift^F.window[M+W-1])&F.hash_mask,F.prev[M&F.w_mask]=F.head[F.ins_h],F.head[F.ins_h]=M,M++,--k;);F.strstart=M,F.lookahead=W-1,Te(F)}return F.strstart+=F.lookahead,F.block_start=F.strstart,F.insert=F.lookahead,F.lookahead=0,F.match_length=F.prev_length=W-1,F.match_available=0,u.next_in=Q,u.input=G,u.avail_in=R,F.wrap=z,d},a.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(t,n,a){n.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(t,n,a){n.exports=function(i,o){var s,c,m,b,v,w,d,g,p,y,x,S,D,B,I,T,O,V,W,Z,se,P,X,A,J;s=i.state,c=i.next_in,A=i.input,m=c+(i.avail_in-5),b=i.next_out,J=i.output,v=b-(o-i.avail_out),w=b+(i.avail_out-257),d=s.dmax,g=s.wsize,p=s.whave,y=s.wnext,x=s.window,S=s.hold,D=s.bits,B=s.lencode,I=s.distcode,T=(1<<s.lenbits)-1,O=(1<<s.distbits)-1;e:do{D<15&&(S+=A[c++]<<D,D+=8,S+=A[c++]<<D,D+=8),V=B[S&T];t:for(;;){if(S>>>=W=V>>>24,D-=W,(W=V>>>16&255)===0)J[b++]=65535&V;else{if(!(16&W)){if(!(64&W)){V=B[(65535&V)+(S&(1<<W)-1)];continue t}if(32&W){s.mode=12;break e}i.msg="invalid literal/length code",s.mode=30;break e}Z=65535&V,(W&=15)&&(D<W&&(S+=A[c++]<<D,D+=8),Z+=S&(1<<W)-1,S>>>=W,D-=W),D<15&&(S+=A[c++]<<D,D+=8,S+=A[c++]<<D,D+=8),V=I[S&O];r:for(;;){if(S>>>=W=V>>>24,D-=W,!(16&(W=V>>>16&255))){if(!(64&W)){V=I[(65535&V)+(S&(1<<W)-1)];continue r}i.msg="invalid distance code",s.mode=30;break e}if(se=65535&V,D<(W&=15)&&(S+=A[c++]<<D,(D+=8)<W&&(S+=A[c++]<<D,D+=8)),d<(se+=S&(1<<W)-1)){i.msg="invalid distance too far back",s.mode=30;break e}if(S>>>=W,D-=W,(W=b-v)<se){if(p<(W=se-W)&&s.sane){i.msg="invalid distance too far back",s.mode=30;break e}if(X=x,(P=0)===y){if(P+=g-W,W<Z){for(Z-=W;J[b++]=x[P++],--W;);P=b-se,X=J}}else if(y<W){if(P+=g+y-W,(W-=y)<Z){for(Z-=W;J[b++]=x[P++],--W;);if(P=0,y<Z){for(Z-=W=y;J[b++]=x[P++],--W;);P=b-se,X=J}}}else if(P+=y-W,W<Z){for(Z-=W;J[b++]=x[P++],--W;);P=b-se,X=J}for(;2<Z;)J[b++]=X[P++],J[b++]=X[P++],J[b++]=X[P++],Z-=3;Z&&(J[b++]=X[P++],1<Z&&(J[b++]=X[P++]))}else{for(P=b-se;J[b++]=J[P++],J[b++]=J[P++],J[b++]=J[P++],2<(Z-=3););Z&&(J[b++]=J[P++],1<Z&&(J[b++]=J[P++]))}break}}break}}while(c<m&&b<w);c-=Z=D>>3,S&=(1<<(D-=Z<<3))-1,i.next_in=c,i.next_out=b,i.avail_in=c<m?m-c+5:5-(c-m),i.avail_out=b<w?w-b+257:257-(b-w),s.hold=S,s.bits=D}},{}],49:[function(t,n,a){var i=t("../utils/common"),o=t("./adler32"),s=t("./crc32"),c=t("./inffast"),m=t("./inftrees"),b=1,v=2,w=0,d=-2,g=1,p=852,y=592;function x(P){return(P>>>24&255)+(P>>>8&65280)+((65280&P)<<8)+((255&P)<<24)}function S(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function D(P){var X;return P&&P.state?(X=P.state,P.total_in=P.total_out=X.total=0,P.msg="",X.wrap&&(P.adler=1&X.wrap),X.mode=g,X.last=0,X.havedict=0,X.dmax=32768,X.head=null,X.hold=0,X.bits=0,X.lencode=X.lendyn=new i.Buf32(p),X.distcode=X.distdyn=new i.Buf32(y),X.sane=1,X.back=-1,w):d}function B(P){var X;return P&&P.state?((X=P.state).wsize=0,X.whave=0,X.wnext=0,D(P)):d}function I(P,X){var A,J;return P&&P.state?(J=P.state,X<0?(A=0,X=-X):(A=1+(X>>4),X<48&&(X&=15)),X&&(X<8||15<X)?d:(J.window!==null&&J.wbits!==X&&(J.window=null),J.wrap=A,J.wbits=X,B(P))):d}function T(P,X){var A,J;return P?(J=new S,(P.state=J).window=null,(A=I(P,X))!==w&&(P.state=null),A):d}var O,V,W=!0;function Z(P){if(W){var X;for(O=new i.Buf32(512),V=new i.Buf32(32),X=0;X<144;)P.lens[X++]=8;for(;X<256;)P.lens[X++]=9;for(;X<280;)P.lens[X++]=7;for(;X<288;)P.lens[X++]=8;for(m(b,P.lens,0,288,O,0,P.work,{bits:9}),X=0;X<32;)P.lens[X++]=5;m(v,P.lens,0,32,V,0,P.work,{bits:5}),W=!1}P.lencode=O,P.lenbits=9,P.distcode=V,P.distbits=5}function se(P,X,A,J){var oe,q=P.state;return q.window===null&&(q.wsize=1<<q.wbits,q.wnext=0,q.whave=0,q.window=new i.Buf8(q.wsize)),J>=q.wsize?(i.arraySet(q.window,X,A-q.wsize,q.wsize,0),q.wnext=0,q.whave=q.wsize):(J<(oe=q.wsize-q.wnext)&&(oe=J),i.arraySet(q.window,X,A-J,oe,q.wnext),(J-=oe)?(i.arraySet(q.window,X,A-J,J,0),q.wnext=J,q.whave=q.wsize):(q.wnext+=oe,q.wnext===q.wsize&&(q.wnext=0),q.whave<q.wsize&&(q.whave+=oe))),0}a.inflateReset=B,a.inflateReset2=I,a.inflateResetKeep=D,a.inflateInit=function(P){return T(P,15)},a.inflateInit2=T,a.inflate=function(P,X){var A,J,oe,q,fe,ee,ge,j,U,ve,de,te,Te,Oe,pe,be,xe,$,he,re,u,K,F,M,k=0,z=new i.Buf8(4),R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!P||!P.state||!P.output||!P.input&&P.avail_in!==0)return d;(A=P.state).mode===12&&(A.mode=13),fe=P.next_out,oe=P.output,ge=P.avail_out,q=P.next_in,J=P.input,ee=P.avail_in,j=A.hold,U=A.bits,ve=ee,de=ge,K=w;e:for(;;)switch(A.mode){case g:if(A.wrap===0){A.mode=13;break}for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(2&A.wrap&&j===35615){z[A.check=0]=255&j,z[1]=j>>>8&255,A.check=s(A.check,z,2,0),U=j=0,A.mode=2;break}if(A.flags=0,A.head&&(A.head.done=!1),!(1&A.wrap)||(((255&j)<<8)+(j>>8))%31){P.msg="incorrect header check",A.mode=30;break}if((15&j)!=8){P.msg="unknown compression method",A.mode=30;break}if(U-=4,u=8+(15&(j>>>=4)),A.wbits===0)A.wbits=u;else if(u>A.wbits){P.msg="invalid window size",A.mode=30;break}A.dmax=1<<u,P.adler=A.check=1,A.mode=512&j?10:12,U=j=0;break;case 2:for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(A.flags=j,(255&A.flags)!=8){P.msg="unknown compression method",A.mode=30;break}if(57344&A.flags){P.msg="unknown header flags set",A.mode=30;break}A.head&&(A.head.text=j>>8&1),512&A.flags&&(z[0]=255&j,z[1]=j>>>8&255,A.check=s(A.check,z,2,0)),U=j=0,A.mode=3;case 3:for(;U<32;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.head&&(A.head.time=j),512&A.flags&&(z[0]=255&j,z[1]=j>>>8&255,z[2]=j>>>16&255,z[3]=j>>>24&255,A.check=s(A.check,z,4,0)),U=j=0,A.mode=4;case 4:for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.head&&(A.head.xflags=255&j,A.head.os=j>>8),512&A.flags&&(z[0]=255&j,z[1]=j>>>8&255,A.check=s(A.check,z,2,0)),U=j=0,A.mode=5;case 5:if(1024&A.flags){for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.length=j,A.head&&(A.head.extra_len=j),512&A.flags&&(z[0]=255&j,z[1]=j>>>8&255,A.check=s(A.check,z,2,0)),U=j=0}else A.head&&(A.head.extra=null);A.mode=6;case 6:if(1024&A.flags&&(ee<(te=A.length)&&(te=ee),te&&(A.head&&(u=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),i.arraySet(A.head.extra,J,q,te,u)),512&A.flags&&(A.check=s(A.check,J,te,q)),ee-=te,q+=te,A.length-=te),A.length))break e;A.length=0,A.mode=7;case 7:if(2048&A.flags){if(ee===0)break e;for(te=0;u=J[q+te++],A.head&&u&&A.length<65536&&(A.head.name+=String.fromCharCode(u)),u&&te<ee;);if(512&A.flags&&(A.check=s(A.check,J,te,q)),ee-=te,q+=te,u)break e}else A.head&&(A.head.name=null);A.length=0,A.mode=8;case 8:if(4096&A.flags){if(ee===0)break e;for(te=0;u=J[q+te++],A.head&&u&&A.length<65536&&(A.head.comment+=String.fromCharCode(u)),u&&te<ee;);if(512&A.flags&&(A.check=s(A.check,J,te,q)),ee-=te,q+=te,u)break e}else A.head&&(A.head.comment=null);A.mode=9;case 9:if(512&A.flags){for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(j!==(65535&A.check)){P.msg="header crc mismatch",A.mode=30;break}U=j=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),P.adler=A.check=0,A.mode=12;break;case 10:for(;U<32;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}P.adler=A.check=x(j),U=j=0,A.mode=11;case 11:if(A.havedict===0)return P.next_out=fe,P.avail_out=ge,P.next_in=q,P.avail_in=ee,A.hold=j,A.bits=U,2;P.adler=A.check=1,A.mode=12;case 12:if(X===5||X===6)break e;case 13:if(A.last){j>>>=7&U,U-=7&U,A.mode=27;break}for(;U<3;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}switch(A.last=1&j,U-=1,3&(j>>>=1)){case 0:A.mode=14;break;case 1:if(Z(A),A.mode=20,X!==6)break;j>>>=2,U-=2;break e;case 2:A.mode=17;break;case 3:P.msg="invalid block type",A.mode=30}j>>>=2,U-=2;break;case 14:for(j>>>=7&U,U-=7&U;U<32;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if((65535&j)!=(j>>>16^65535)){P.msg="invalid stored block lengths",A.mode=30;break}if(A.length=65535&j,U=j=0,A.mode=15,X===6)break e;case 15:A.mode=16;case 16:if(te=A.length){if(ee<te&&(te=ee),ge<te&&(te=ge),te===0)break e;i.arraySet(oe,J,q,te,fe),ee-=te,q+=te,ge-=te,fe+=te,A.length-=te;break}A.mode=12;break;case 17:for(;U<14;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(A.nlen=257+(31&j),j>>>=5,U-=5,A.ndist=1+(31&j),j>>>=5,U-=5,A.ncode=4+(15&j),j>>>=4,U-=4,286<A.nlen||30<A.ndist){P.msg="too many length or distance symbols",A.mode=30;break}A.have=0,A.mode=18;case 18:for(;A.have<A.ncode;){for(;U<3;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.lens[R[A.have++]]=7&j,j>>>=3,U-=3}for(;A.have<19;)A.lens[R[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,F={bits:A.lenbits},K=m(0,A.lens,0,19,A.lencode,0,A.work,F),A.lenbits=F.bits,K){P.msg="invalid code lengths set",A.mode=30;break}A.have=0,A.mode=19;case 19:for(;A.have<A.nlen+A.ndist;){for(;be=(k=A.lencode[j&(1<<A.lenbits)-1])>>>16&255,xe=65535&k,!((pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(xe<16)j>>>=pe,U-=pe,A.lens[A.have++]=xe;else{if(xe===16){for(M=pe+2;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(j>>>=pe,U-=pe,A.have===0){P.msg="invalid bit length repeat",A.mode=30;break}u=A.lens[A.have-1],te=3+(3&j),j>>>=2,U-=2}else if(xe===17){for(M=pe+3;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}U-=pe,u=0,te=3+(7&(j>>>=pe)),j>>>=3,U-=3}else{for(M=pe+7;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}U-=pe,u=0,te=11+(127&(j>>>=pe)),j>>>=7,U-=7}if(A.have+te>A.nlen+A.ndist){P.msg="invalid bit length repeat",A.mode=30;break}for(;te--;)A.lens[A.have++]=u}}if(A.mode===30)break;if(A.lens[256]===0){P.msg="invalid code -- missing end-of-block",A.mode=30;break}if(A.lenbits=9,F={bits:A.lenbits},K=m(b,A.lens,0,A.nlen,A.lencode,0,A.work,F),A.lenbits=F.bits,K){P.msg="invalid literal/lengths set",A.mode=30;break}if(A.distbits=6,A.distcode=A.distdyn,F={bits:A.distbits},K=m(v,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,F),A.distbits=F.bits,K){P.msg="invalid distances set",A.mode=30;break}if(A.mode=20,X===6)break e;case 20:A.mode=21;case 21:if(6<=ee&&258<=ge){P.next_out=fe,P.avail_out=ge,P.next_in=q,P.avail_in=ee,A.hold=j,A.bits=U,c(P,de),fe=P.next_out,oe=P.output,ge=P.avail_out,q=P.next_in,J=P.input,ee=P.avail_in,j=A.hold,U=A.bits,A.mode===12&&(A.back=-1);break}for(A.back=0;be=(k=A.lencode[j&(1<<A.lenbits)-1])>>>16&255,xe=65535&k,!((pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(be&&!(240&be)){for($=pe,he=be,re=xe;be=(k=A.lencode[re+((j&(1<<$+he)-1)>>$)])>>>16&255,xe=65535&k,!($+(pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}j>>>=$,U-=$,A.back+=$}if(j>>>=pe,U-=pe,A.back+=pe,A.length=xe,be===0){A.mode=26;break}if(32&be){A.back=-1,A.mode=12;break}if(64&be){P.msg="invalid literal/length code",A.mode=30;break}A.extra=15&be,A.mode=22;case 22:if(A.extra){for(M=A.extra;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.length+=j&(1<<A.extra)-1,j>>>=A.extra,U-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=23;case 23:for(;be=(k=A.distcode[j&(1<<A.distbits)-1])>>>16&255,xe=65535&k,!((pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(!(240&be)){for($=pe,he=be,re=xe;be=(k=A.distcode[re+((j&(1<<$+he)-1)>>$)])>>>16&255,xe=65535&k,!($+(pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}j>>>=$,U-=$,A.back+=$}if(j>>>=pe,U-=pe,A.back+=pe,64&be){P.msg="invalid distance code",A.mode=30;break}A.offset=xe,A.extra=15&be,A.mode=24;case 24:if(A.extra){for(M=A.extra;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.offset+=j&(1<<A.extra)-1,j>>>=A.extra,U-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){P.msg="invalid distance too far back",A.mode=30;break}A.mode=25;case 25:if(ge===0)break e;if(te=de-ge,A.offset>te){if((te=A.offset-te)>A.whave&&A.sane){P.msg="invalid distance too far back",A.mode=30;break}Te=te>A.wnext?(te-=A.wnext,A.wsize-te):A.wnext-te,te>A.length&&(te=A.length),Oe=A.window}else Oe=oe,Te=fe-A.offset,te=A.length;for(ge<te&&(te=ge),ge-=te,A.length-=te;oe[fe++]=Oe[Te++],--te;);A.length===0&&(A.mode=21);break;case 26:if(ge===0)break e;oe[fe++]=A.length,ge--,A.mode=21;break;case 27:if(A.wrap){for(;U<32;){if(ee===0)break e;ee--,j|=J[q++]<<U,U+=8}if(de-=ge,P.total_out+=de,A.total+=de,de&&(P.adler=A.check=A.flags?s(A.check,oe,de,fe-de):o(A.check,oe,de,fe-de)),de=ge,(A.flags?j:x(j))!==A.check){P.msg="incorrect data check",A.mode=30;break}U=j=0}A.mode=28;case 28:if(A.wrap&&A.flags){for(;U<32;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(j!==(4294967295&A.total)){P.msg="incorrect length check",A.mode=30;break}U=j=0}A.mode=29;case 29:K=1;break e;case 30:K=-3;break e;case 31:return-4;case 32:default:return d}return P.next_out=fe,P.avail_out=ge,P.next_in=q,P.avail_in=ee,A.hold=j,A.bits=U,(A.wsize||de!==P.avail_out&&A.mode<30&&(A.mode<27||X!==4))&&se(P,P.output,P.next_out,de-P.avail_out)?(A.mode=31,-4):(ve-=P.avail_in,de-=P.avail_out,P.total_in+=ve,P.total_out+=de,A.total+=de,A.wrap&&de&&(P.adler=A.check=A.flags?s(A.check,oe,de,P.next_out-de):o(A.check,oe,de,P.next_out-de)),P.data_type=A.bits+(A.last?64:0)+(A.mode===12?128:0)+(A.mode===20||A.mode===15?256:0),(ve==0&&de===0||X===4)&&K===w&&(K=-5),K)},a.inflateEnd=function(P){if(!P||!P.state)return d;var X=P.state;return X.window&&(X.window=null),P.state=null,w},a.inflateGetHeader=function(P,X){var A;return P&&P.state&&2&(A=P.state).wrap?((A.head=X).done=!1,w):d},a.inflateSetDictionary=function(P,X){var A,J=X.length;return P&&P.state?(A=P.state).wrap!==0&&A.mode!==11?d:A.mode===11&&o(1,X,J,0)!==A.check?-3:se(P,X,J,J)?(A.mode=31,-4):(A.havedict=1,w):d},a.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(t,n,a){var i=t("../utils/common"),o=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],c=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],m=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];n.exports=function(b,v,w,d,g,p,y,x){var S,D,B,I,T,O,V,W,Z,se=x.bits,P=0,X=0,A=0,J=0,oe=0,q=0,fe=0,ee=0,ge=0,j=0,U=null,ve=0,de=new i.Buf16(16),te=new i.Buf16(16),Te=null,Oe=0;for(P=0;P<=15;P++)de[P]=0;for(X=0;X<d;X++)de[v[w+X]]++;for(oe=se,J=15;1<=J&&de[J]===0;J--);if(J<oe&&(oe=J),J===0)return g[p++]=20971520,g[p++]=20971520,x.bits=1,0;for(A=1;A<J&&de[A]===0;A++);for(oe<A&&(oe=A),P=ee=1;P<=15;P++)if(ee<<=1,(ee-=de[P])<0)return-1;if(0<ee&&(b===0||J!==1))return-1;for(te[1]=0,P=1;P<15;P++)te[P+1]=te[P]+de[P];for(X=0;X<d;X++)v[w+X]!==0&&(y[te[v[w+X]]++]=X);if(O=b===0?(U=Te=y,19):b===1?(U=o,ve-=257,Te=s,Oe-=257,256):(U=c,Te=m,-1),P=A,T=p,fe=X=j=0,B=-1,I=(ge=1<<(q=oe))-1,b===1&&852<ge||b===2&&592<ge)return 1;for(;;){for(V=P-fe,Z=y[X]<O?(W=0,y[X]):y[X]>O?(W=Te[Oe+y[X]],U[ve+y[X]]):(W=96,0),S=1<<P-fe,A=D=1<<q;g[T+(j>>fe)+(D-=S)]=V<<24|W<<16|Z|0,D!==0;);for(S=1<<P-1;j&S;)S>>=1;if(S!==0?(j&=S-1,j+=S):j=0,X++,--de[P]==0){if(P===J)break;P=v[w+y[X]]}if(oe<P&&(j&I)!==B){for(fe===0&&(fe=oe),T+=A,ee=1<<(q=P-fe);q+fe<J&&!((ee-=de[q+fe])<=0);)q++,ee<<=1;if(ge+=1<<q,b===1&&852<ge||b===2&&592<ge)return 1;g[B=j&I]=oe<<24|q<<16|T-p|0}}return j!==0&&(g[T+j]=P-fe<<24|64<<16|0),x.bits=oe,0}},{"../utils/common":41}],51:[function(t,n,a){n.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(t,n,a){var i=t("../utils/common"),o=0,s=1;function c(k){for(var z=k.length;0<=--z;)k[z]=0}var m=0,b=29,v=256,w=v+1+b,d=30,g=19,p=2*w+1,y=15,x=16,S=7,D=256,B=16,I=17,T=18,O=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],V=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],W=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Z=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],se=new Array(2*(w+2));c(se);var P=new Array(2*d);c(P);var X=new Array(512);c(X);var A=new Array(256);c(A);var J=new Array(b);c(J);var oe,q,fe,ee=new Array(d);function ge(k,z,R,Q,G){this.static_tree=k,this.extra_bits=z,this.extra_base=R,this.elems=Q,this.max_length=G,this.has_stree=k&&k.length}function j(k,z){this.dyn_tree=k,this.max_code=0,this.stat_desc=z}function U(k){return k<256?X[k]:X[256+(k>>>7)]}function ve(k,z){k.pending_buf[k.pending++]=255&z,k.pending_buf[k.pending++]=z>>>8&255}function de(k,z,R){k.bi_valid>x-R?(k.bi_buf|=z<<k.bi_valid&65535,ve(k,k.bi_buf),k.bi_buf=z>>x-k.bi_valid,k.bi_valid+=R-x):(k.bi_buf|=z<<k.bi_valid&65535,k.bi_valid+=R)}function te(k,z,R){de(k,R[2*z],R[2*z+1])}function Te(k,z){for(var R=0;R|=1&k,k>>>=1,R<<=1,0<--z;);return R>>>1}function Oe(k,z,R){var Q,G,ie=new Array(y+1),ue=0;for(Q=1;Q<=y;Q++)ie[Q]=ue=ue+R[Q-1]<<1;for(G=0;G<=z;G++){var ae=k[2*G+1];ae!==0&&(k[2*G]=Te(ie[ae]++,ae))}}function pe(k){var z;for(z=0;z<w;z++)k.dyn_ltree[2*z]=0;for(z=0;z<d;z++)k.dyn_dtree[2*z]=0;for(z=0;z<g;z++)k.bl_tree[2*z]=0;k.dyn_ltree[2*D]=1,k.opt_len=k.static_len=0,k.last_lit=k.matches=0}function be(k){8<k.bi_valid?ve(k,k.bi_buf):0<k.bi_valid&&(k.pending_buf[k.pending++]=k.bi_buf),k.bi_buf=0,k.bi_valid=0}function xe(k,z,R,Q){var G=2*z,ie=2*R;return k[G]<k[ie]||k[G]===k[ie]&&Q[z]<=Q[R]}function $(k,z,R){for(var Q=k.heap[R],G=R<<1;G<=k.heap_len&&(G<k.heap_len&&xe(z,k.heap[G+1],k.heap[G],k.depth)&&G++,!xe(z,Q,k.heap[G],k.depth));)k.heap[R]=k.heap[G],R=G,G<<=1;k.heap[R]=Q}function he(k,z,R){var Q,G,ie,ue,ae=0;if(k.last_lit!==0)for(;Q=k.pending_buf[k.d_buf+2*ae]<<8|k.pending_buf[k.d_buf+2*ae+1],G=k.pending_buf[k.l_buf+ae],ae++,Q===0?te(k,G,z):(te(k,(ie=A[G])+v+1,z),(ue=O[ie])!==0&&de(k,G-=J[ie],ue),te(k,ie=U(--Q),R),(ue=V[ie])!==0&&de(k,Q-=ee[ie],ue)),ae<k.last_lit;);te(k,D,z)}function re(k,z){var R,Q,G,ie=z.dyn_tree,ue=z.stat_desc.static_tree,ae=z.stat_desc.has_stree,_e=z.stat_desc.elems,_=-1;for(k.heap_len=0,k.heap_max=p,R=0;R<_e;R++)ie[2*R]!==0?(k.heap[++k.heap_len]=_=R,k.depth[R]=0):ie[2*R+1]=0;for(;k.heap_len<2;)ie[2*(G=k.heap[++k.heap_len]=_<2?++_:0)]=1,k.depth[G]=0,k.opt_len--,ae&&(k.static_len-=ue[2*G+1]);for(z.max_code=_,R=k.heap_len>>1;1<=R;R--)$(k,ie,R);for(G=_e;R=k.heap[1],k.heap[1]=k.heap[k.heap_len--],$(k,ie,1),Q=k.heap[1],k.heap[--k.heap_max]=R,k.heap[--k.heap_max]=Q,ie[2*G]=ie[2*R]+ie[2*Q],k.depth[G]=(k.depth[R]>=k.depth[Q]?k.depth[R]:k.depth[Q])+1,ie[2*R+1]=ie[2*Q+1]=G,k.heap[1]=G++,$(k,ie,1),2<=k.heap_len;);k.heap[--k.heap_max]=k.heap[1],function(l,f){var C,E,Y,H,Se,Me,ye=f.dyn_tree,L=f.max_code,ce=f.stat_desc.static_tree,Be=f.stat_desc.has_stree,Ee=f.stat_desc.extra_bits,Re=f.stat_desc.extra_base,Ge=f.stat_desc.max_length,je=0;for(H=0;H<=y;H++)l.bl_count[H]=0;for(ye[2*l.heap[l.heap_max]+1]=0,C=l.heap_max+1;C<p;C++)Ge<(H=ye[2*ye[2*(E=l.heap[C])+1]+1]+1)&&(H=Ge,je++),ye[2*E+1]=H,L<E||(l.bl_count[H]++,Se=0,Re<=E&&(Se=Ee[E-Re]),Me=ye[2*E],l.opt_len+=Me*(H+Se),Be&&(l.static_len+=Me*(ce[2*E+1]+Se)));if(je!==0){do{for(H=Ge-1;l.bl_count[H]===0;)H--;l.bl_count[H]--,l.bl_count[H+1]+=2,l.bl_count[Ge]--,je-=2}while(0<je);for(H=Ge;H!==0;H--)for(E=l.bl_count[H];E!==0;)L<(Y=l.heap[--C])||(ye[2*Y+1]!==H&&(l.opt_len+=(H-ye[2*Y+1])*ye[2*Y],ye[2*Y+1]=H),E--)}}(k,z),Oe(ie,_,k.bl_count)}function u(k,z,R){var Q,G,ie=-1,ue=z[1],ae=0,_e=7,_=4;for(ue===0&&(_e=138,_=3),z[2*(R+1)+1]=65535,Q=0;Q<=R;Q++)G=ue,ue=z[2*(Q+1)+1],++ae<_e&&G===ue||(ae<_?k.bl_tree[2*G]+=ae:G!==0?(G!==ie&&k.bl_tree[2*G]++,k.bl_tree[2*B]++):ae<=10?k.bl_tree[2*I]++:k.bl_tree[2*T]++,ie=G,_=(ae=0)===ue?(_e=138,3):G===ue?(_e=6,3):(_e=7,4))}function K(k,z,R){var Q,G,ie=-1,ue=z[1],ae=0,_e=7,_=4;for(ue===0&&(_e=138,_=3),Q=0;Q<=R;Q++)if(G=ue,ue=z[2*(Q+1)+1],!(++ae<_e&&G===ue)){if(ae<_)for(;te(k,G,k.bl_tree),--ae!=0;);else G!==0?(G!==ie&&(te(k,G,k.bl_tree),ae--),te(k,B,k.bl_tree),de(k,ae-3,2)):ae<=10?(te(k,I,k.bl_tree),de(k,ae-3,3)):(te(k,T,k.bl_tree),de(k,ae-11,7));ie=G,_=(ae=0)===ue?(_e=138,3):G===ue?(_e=6,3):(_e=7,4)}}c(ee);var F=!1;function M(k,z,R,Q){de(k,(m<<1)+(Q?1:0),3),function(G,ie,ue,ae){be(G),ae&&(ve(G,ue),ve(G,~ue)),i.arraySet(G.pending_buf,G.window,ie,ue,G.pending),G.pending+=ue}(k,z,R,!0)}a._tr_init=function(k){F||(function(){var z,R,Q,G,ie,ue=new Array(y+1);for(G=Q=0;G<b-1;G++)for(J[G]=Q,z=0;z<1<<O[G];z++)A[Q++]=G;for(A[Q-1]=G,G=ie=0;G<16;G++)for(ee[G]=ie,z=0;z<1<<V[G];z++)X[ie++]=G;for(ie>>=7;G<d;G++)for(ee[G]=ie<<7,z=0;z<1<<V[G]-7;z++)X[256+ie++]=G;for(R=0;R<=y;R++)ue[R]=0;for(z=0;z<=143;)se[2*z+1]=8,z++,ue[8]++;for(;z<=255;)se[2*z+1]=9,z++,ue[9]++;for(;z<=279;)se[2*z+1]=7,z++,ue[7]++;for(;z<=287;)se[2*z+1]=8,z++,ue[8]++;for(Oe(se,w+1,ue),z=0;z<d;z++)P[2*z+1]=5,P[2*z]=Te(z,5);oe=new ge(se,O,v+1,w,y),q=new ge(P,V,0,d,y),fe=new ge(new Array(0),W,0,g,S)}(),F=!0),k.l_desc=new j(k.dyn_ltree,oe),k.d_desc=new j(k.dyn_dtree,q),k.bl_desc=new j(k.bl_tree,fe),k.bi_buf=0,k.bi_valid=0,pe(k)},a._tr_stored_block=M,a._tr_flush_block=function(k,z,R,Q){var G,ie,ue=0;0<k.level?(k.strm.data_type===2&&(k.strm.data_type=function(ae){var _e,_=4093624447;for(_e=0;_e<=31;_e++,_>>>=1)if(1&_&&ae.dyn_ltree[2*_e]!==0)return o;if(ae.dyn_ltree[18]!==0||ae.dyn_ltree[20]!==0||ae.dyn_ltree[26]!==0)return s;for(_e=32;_e<v;_e++)if(ae.dyn_ltree[2*_e]!==0)return s;return o}(k)),re(k,k.l_desc),re(k,k.d_desc),ue=function(ae){var _e;for(u(ae,ae.dyn_ltree,ae.l_desc.max_code),u(ae,ae.dyn_dtree,ae.d_desc.max_code),re(ae,ae.bl_desc),_e=g-1;3<=_e&&ae.bl_tree[2*Z[_e]+1]===0;_e--);return ae.opt_len+=3*(_e+1)+5+5+4,_e}(k),G=k.opt_len+3+7>>>3,(ie=k.static_len+3+7>>>3)<=G&&(G=ie)):G=ie=R+5,R+4<=G&&z!==-1?M(k,z,R,Q):k.strategy===4||ie===G?(de(k,2+(Q?1:0),3),he(k,se,P)):(de(k,4+(Q?1:0),3),function(ae,_e,_,l){var f;for(de(ae,_e-257,5),de(ae,_-1,5),de(ae,l-4,4),f=0;f<l;f++)de(ae,ae.bl_tree[2*Z[f]+1],3);K(ae,ae.dyn_ltree,_e-1),K(ae,ae.dyn_dtree,_-1)}(k,k.l_desc.max_code+1,k.d_desc.max_code+1,ue+1),he(k,k.dyn_ltree,k.dyn_dtree)),pe(k),Q&&be(k)},a._tr_tally=function(k,z,R){return k.pending_buf[k.d_buf+2*k.last_lit]=z>>>8&255,k.pending_buf[k.d_buf+2*k.last_lit+1]=255&z,k.pending_buf[k.l_buf+k.last_lit]=255&R,k.last_lit++,z===0?k.dyn_ltree[2*R]++:(k.matches++,z--,k.dyn_ltree[2*(A[R]+v+1)]++,k.dyn_dtree[2*U(z)]++),k.last_lit===k.lit_bufsize-1},a._tr_align=function(k){de(k,2,3),te(k,D,se),function(z){z.bi_valid===16?(ve(z,z.bi_buf),z.bi_buf=0,z.bi_valid=0):8<=z.bi_valid&&(z.pending_buf[z.pending++]=255&z.bi_buf,z.bi_buf>>=8,z.bi_valid-=8)}(k)}},{"../utils/common":41}],53:[function(t,n,a){n.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,n,a){(function(i){(function(o,s){if(!o.setImmediate){var c,m,b,v,w=1,d={},g=!1,p=o.document,y=Object.getPrototypeOf&&Object.getPrototypeOf(o);y=y&&y.setTimeout?y:o,c={}.toString.call(o.process)==="[object process]"?function(B){process.nextTick(function(){S(B)})}:function(){if(o.postMessage&&!o.importScripts){var B=!0,I=o.onmessage;return o.onmessage=function(){B=!1},o.postMessage("","*"),o.onmessage=I,B}}()?(v="setImmediate$"+Math.random()+"$",o.addEventListener?o.addEventListener("message",D,!1):o.attachEvent("onmessage",D),function(B){o.postMessage(v+B,"*")}):o.MessageChannel?((b=new MessageChannel).port1.onmessage=function(B){S(B.data)},function(B){b.port2.postMessage(B)}):p&&"onreadystatechange"in p.createElement("script")?(m=p.documentElement,function(B){var I=p.createElement("script");I.onreadystatechange=function(){S(B),I.onreadystatechange=null,m.removeChild(I),I=null},m.appendChild(I)}):function(B){setTimeout(S,0,B)},y.setImmediate=function(B){typeof B!="function"&&(B=new Function(""+B));for(var I=new Array(arguments.length-1),T=0;T<I.length;T++)I[T]=arguments[T+1];var O={callback:B,args:I};return d[w]=O,c(w),w++},y.clearImmediate=x}function x(B){delete d[B]}function S(B){if(g)setTimeout(S,0,B);else{var I=d[B];if(I){g=!0;try{(function(T){var O=T.callback,V=T.args;switch(V.length){case 0:O();break;case 1:O(V[0]);break;case 2:O(V[0],V[1]);break;case 3:O(V[0],V[1],V[2]);break;default:O.apply(s,V)}})(I)}finally{x(B),g=!1}}}}function D(B){B.source===o&&typeof B.data=="string"&&B.data.indexOf(v)===0&&S(+B.data.slice(v.length))}})(typeof self>"u"?i===void 0?this:i:self)}).call(this,typeof Nt<"u"?Nt:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(na);var qo=na.exports;const $o=cr(qo);class el{constructor(e,t){Ce(this,"schematic");Ce(this,"textureCache");Ce(this,"blobCache");Ce(this,"stringCache");Ce(this,"blockMeshCache");Ce(this,"blockMetaCache");Ce(this,"blockModelCache");Ce(this,"faceDataCache");Ce(this,"blockStateDefinitionCache");Ce(this,"materialMap");Ce(this,"base64MaterialMap");Ce(this,"resourcePackBlobs");Ce(this,"zips");Ce(this,"textureLoader",new Ae.TextureLoader);Ce(this,"TINT_COLOR",new Ae.Color(145/255,189/255,89/255));Ce(this,"WATER_COLOR",new Ae.Color(36/255,57/255,214/255));Ce(this,"LAVA_COLOR",new Ae.Color(232/255,89/255,23/255));Ce(this,"AMBIENT_LIGHT",new Ae.Color(1,1,1));Ce(this,"SHADOW_COLOR",new Ae.Color(.5,.5,.5));Ce(this,"DEG2RAD",Math.PI/180);Ce(this,"DEBUG",!0);this.textureCache=new Map,this.blobCache=new Map,this.stringCache=new Map,this.blockMeshCache=new Map,this.blockMetaCache=new Map,this.blockModelCache=new Map,this.faceDataCache=new Map,this.blockStateDefinitionCache=new Map,this.materialMap=t??new Map,this.base64MaterialMap=new Map,this.resourcePackBlobs=e,this.textureLoader=new Ae.TextureLoader,this.schematic=void 0}setSchematic(e){this.schematic=e}async initialize(){this.zips=await Promise.all(this.resourcePackBlobs.map(e=>this.loadZip(e)))}async loadZip(e){if(Array.isArray(e))throw new Error("Invalid resource pack blob");return await $o.loadAsync(e)}async getResourceBase64(e){var t;for(const n of this.zips){const a=await((t=n.file(`assets/minecraft/${e}`))==null?void 0:t.async("base64"));if(a)return a}}async getResourceBase64FromZip(e,t){var a,i;let n="";if(Array.isArray(e)){for(const o of e)if(n=await((a=o.file(`assets/minecraft/${t}`))==null?void 0:a.async("base64"))??"",n)break}else n=await((i=e.file(`assets/minecraft/${t}`))==null?void 0:i.async("base64"))??"";return this.blobCache.set(t,n),n}async getResourceString(e){var t;if(this.stringCache.has(e))return this.stringCache.get(e);for(const n of this.zips){const a=await((t=n.file(`assets/minecraft/${e}`))==null?void 0:t.async("text"));if(a)return this.stringCache.set(e,a),a}}async getBase64Image(e,t){const n=this.resolveTextureName(t.texture,e),a=await this.getResourceBase64(`textures/${n}.png`);return a===void 0?void 0:"data:image/png;base64,"+a}async getTextureMaterial(e,t,n,a){let i=t.texture;for(;i.startsWith("#");){if(!e.textures)throw new Error(`Model ${e} has a reference to a texture but no textures are defined`);if(i=e.textures[i.substring(1)],!i)throw new Error(`Texture ${i} not found`)}i.startsWith("minecraft:")&&(i=i.substring(10));const o=await this.getResourceBase64(`textures/${i}.png`);if(o===void 0)return;const s="data:image/png;base64,"+o,c=this.textureLoader.load(s,()=>{c.minFilter=Ae.NearestFilter,c.magFilter=Ae.NearestFilter,c.needsUpdate=!0}),m=t.rotation;return m&&(c.center=new Ae.Vector2(.5,.5),c.rotation=m*Math.PI*.25),new Ae.MeshStandardMaterial({map:c,side:Ae.FrontSide,alphaTest:.1,transparent:n,color:a??16777215})}getModelOption(e){const t=i=>{const o=[];for(let c=0;c<i.length;c++)o[c]=i[c].weight+(o[c-1]||0);const s=Math.random()*o[o.length-1];for(let c=0;c<o.length;c++)if(o[c]>s)return c;return o.length-1};let n=e.name;const a=[];for(const i of e.models){const o=t(i.options);a.push(i.options[o].holder),n=`${n}-${o}`}return{name:n,holders:a}}getColorForElement(e,t,n){var a;if(e.tintindex!==void 0){if(t.startsWith("block/water_"))return this.WATER_COLOR;if(t.startsWith("block/lava_"))return this.LAVA_COLOR;if(t.startsWith("block/redstone_dust_")||t.startsWith("block/redstone_power")){const i=((a=n==null?void 0:n.properties)==null?void 0:a.power)??0;return Ko[i]}else if(e.tintindex!==void 0)return this.TINT_COLOR}}getSizeFromElement(e){if(!e.from||!e.to)throw new Error("Element is missing from or to");return[e.to[0]-e.from[0],e.to[1]-e.from[1],e.to[2]-e.from[2]]}async getBlockStateDefinition(e){if(this.blockStateDefinitionCache.has(e))return this.blockStateDefinitionCache.get(e);const t=await this.loadBlockStateDefinition(e);return this.blockStateDefinitionCache.set(e,t),t}async getBlockMeta(e){if(this.blockMetaCache.has(kt(e)))return this.blockMetaCache.get(kt(e));const t=await this.loadBlockStateDefinition(e.type),n=this.getBlockModelData(e,t),a=this.getModelOption(n),i={blockStateDefinition:t,modelData:n,modelOptions:a};return this.blockMetaCache.set(kt(e),i),i}applyElementRotation(e,t){if(t){const n=new Ae.Euler(t.angle*this.DEG2RAD*t.axis[0],t.angle*this.DEG2RAD*t.axis[1],t.angle*this.DEG2RAD*t.axis[2]);e.setRotationFromEuler(n)}}recalculateIndex(e){return[e,e+1,e+2,e+2,e+1,e+3]}addBlockToMaterialGroup(e,t,n,a,i,o,s){const{materialId:c,positions:m,normals:b,uvs:v,face:w}=t;if(ra(n)[w])return;e[c]||(e[c]={positions:[],normals:[],uvs:[],colors:[],indices:[],count:0});const g=e[c];for(let y=0;y<m.length;y+=3){const x=m[y]+a+s.x,S=m[y+1]+i+s.y,D=m[y+2]+o+s.z;g.positions.push(x,S,D)}g.normals.push(...b),g.uvs.push(...v);const p=g.count;for(let y=0;y<m.length/3;y+=4)g.indices.push(p+y);g.count+=m.length/3}createMeshesFromBlocks(e,t){const n=[];let a;for(const[i,o]of Object.entries(e)){a=performance.now();const s=this.materialMap.get(i);let c=0,m=0;for(const x of o)c+=x[0].positions.length/3,m+=x[0].positions.length/2;t.chunkMeshCreation.materialRetrieval+=performance.now()-a,a=performance.now();const b=new Ae.BufferGeometry,v=new Float32Array(c*3),w=new Float32Array(c*3),d=new Float32Array(c*2);t.chunkMeshCreation.arrayCreation+=performance.now()-a;const g=[];let p=0;for(const x of o){const S=x[0],D=x[1];a=performance.now();const B=S.positions.slice();t.chunkMeshCreation.slicing+=performance.now()-a,a=performance.now();for(let I=0;I<B.length;I+=3)B[I]+=D[0],B[I+1]+=D[1],B[I+2]+=D[2];t.chunkMeshCreation.positionTranslation+=performance.now()-a,a=performance.now(),v.set(B,p*3),w.set(S.normals,p*3),d.set(S.uvs,p*2),t.chunkMeshCreation.arrayAllocation+=performance.now()-a,a=performance.now();for(let I=0;I<B.length/3;I+=4)g.push(p+I,p+I+1,p+I+2,p+I+2,p+I+1,p+I+3);t.chunkMeshCreation.indexCalculation+=performance.now()-a,p+=B.length/3}a=performance.now(),b.setAttribute("position",new Ae.BufferAttribute(v,3)),b.setAttribute("normal",new Ae.BufferAttribute(w,3)),b.setAttribute("uv",new Ae.BufferAttribute(d,2)),b.setIndex(g),t.chunkMeshCreation.geometryCreation+=performance.now()-a;const y=new Ae.Mesh(b,s);y.castShadow=!0,y.receiveShadow=!0,n.push(y)}return n}resolveTextureName(e,t){if(e==="#missing")return e;for(;e.startsWith("#");){if(!t.textures)return e;e=t.textures[e.substring(1)]??e}return e}getBlockModelData(e,t){var c;const n=[],a=t.variants?new Set(Object.keys(t.variants)[0].split(",").map(m=>m.split("=")[0])):new Set(Object.keys(e.properties)),i=Object.keys(e.properties).sort().reduce((m,b)=>{if(!a.has(b))return m;const v=`${b}=${e.properties[b]}`;return m.push(v),m},[]).join(","),o=m=>Array.isArray(m)?m.map(b=>({holder:b,weight:b.weight??1})):[{holder:m,weight:1}];if((c=t.variants)!=null&&c[""])n.push({options:o(t.variants[""])});else if(t.variants)n.push({options:o(t.variants[i])});else if(t.multipart){const m=b=>{for(const v of Object.keys(b)){if(!e.properties[v])return!1;const w=b[v],d=e.properties[v];if(!isNaN(Number(d))&&!isNaN(Number(w))){if(Number(d)!==Number(w))return!1;continue}if(!w.split("|").includes(d))return!1}return!0};for(const b of t.multipart){if(b.when){if(b.when.OR){let v=!1;for(const w of b.when.OR)if(m(w)){v=!0;break}if(!v)continue}else if(!m(b.when))continue}n.push({options:o(b.apply)})}}const s=i.length>0?`${e.type}[${i}]`:e.type;return{models:n,name:s}}async loadBlockStateDefinition(e){return JSON.parse(await this.getResourceString(`blockstates/${e}.json`)??"{}")}async loadModel(e){e.startsWith("minecraft:")&&(e=e.substring(10));let t=JSON.parse(await this.getResourceString(`models/${e}.json`)??"{}");if(t.parent){const n=await this.loadModel(t.parent);if(!n)return t;t.elements&&n.elements&&delete n.elements,t=Do(n,t),delete t.parent}return this.blockModelCache.set(e,t),t}}class tl{constructor(e,t,n){Ce(this,"blockMeshCache");Ce(this,"materialMap");Ce(this,"base64MaterialMap");Ce(this,"ressourceLoader");Ce(this,"schematic");Ce(this,"renderer");Ce(this,"faceDataCache");Ce(this,"popupWindow",null);this.blockMeshCache=new Map,this.materialMap=t,this.base64MaterialMap=new Map,this.ressourceLoader=e,this.renderer=n,this.faceDataCache=new Map}setSchematic(e){this.schematic=e}getMaterialId(e,t,n){const a=this.ressourceLoader.resolveTextureName(t.texture,e),i=t.rotation,o=i?`-${i}`:"";return`${a}-${(n==null?void 0:n.r)??1}-${(n==null?void 0:n.g)??1}-${(n==null?void 0:n.b)??1}${o}`}normalizeElementCoords(e){if(!e.from||!e.to)throw new Error("Element is missing from or to");e.from=e.from.map(Nr),e.to=e.to.map(Nr),e.rotation&&e.rotation.origin&&(e.rotation.origin=e.rotation.origin.map(Nr))}async processFaceData(e,t,n){const a={},i={};if(!e.faces)return{subMaterials:a,uvs:i};for(const o of Zt){const s=e.faces[o];if(!s||s.texture=="#overlay"){a[o]=null,i[o]=$n.map(w=>w/16);continue}const c=this.ressourceLoader.resolveTextureName(s.texture,t),m=this.ressourceLoader.getColorForElement(s,c,n),b=this.getMaterialId(t,s,m??new Ae.Color(1,1,1));if(!this.materialMap.has(b)){const w=await this.ressourceLoader.getTextureMaterial(t,s,qt.has(n.type)||s.texture.includes("overlay"),m);this.materialMap.set(b,w??new Ae.MeshBasicMaterial);const d=await this.ressourceLoader.getBase64Image(t,s);this.base64MaterialMap.set(b,d??"")}a[o]=b;const v=s.rotation||0;i[o]=this.rotateUv((s.uv||$n).map(w=>w/16),v)}return{subMaterials:a,uvs:i}}rotateUv(e,t){t=t*Math.PI/180;const n=[.5,.5],a=[e[0]-n[0],e[1]-n[1],e[2]-n[0],e[3]-n[1]],i=[a[0]*Math.cos(t)-a[1]*Math.sin(t),a[0]*Math.sin(t)+a[1]*Math.cos(t),a[2]*Math.cos(t)-a[3]*Math.sin(t),a[2]*Math.sin(t)+a[3]*Math.cos(t)];return[i[0]+n[0],i[1]+n[1],i[2]+n[0],i[3]+n[1]]}showTextureOverlay(e,t,n=""){if((!this.popupWindow||this.popupWindow.closed)&&(this.popupWindow=window.open("","_blank","width=200,height=400")),!this.popupWindow){console.error("Failed to open popup window");return}const a=this.popupWindow.document;let i=a.getElementById("all-images-container");i||(i=a.createElement("div"),i.id="all-images-container",i.style.backgroundColor="darkgrey",i.style.display="block",i.style.width="100%",i.style.height="100%",i.style.overflowY="auto",a.body.appendChild(i));const o=a.createElement("div");o.style.backgroundColor="black",o.style.height="100px",o.style.position="relative",o.style.marginBottom="10px";const s=a.createElement("img");s.src=e,s.style.imageRendering="pixelated",s.style.position="absolute",s.style.width="100px",s.style.height="100px",s.style.backgroundColor="gray",o.appendChild(s);const c=a.createElement("div");c.innerText=n,c.style.color="white",c.style.backgroundColor="black",o.appendChild(c),t||(t=[0,0,16,16]);const m=a.createElement("div");m.style.position="absolute",m.style.width=`${(t[2]-t[0])/16*100-1}px`,m.style.height=`${(t[3]-t[1])/16*100-1}px`,m.style.border="1px solid blue",m.style.left=`${t[0]/16*100}px`,m.style.top=`${t[1]/16*100}px`,o.appendChild(m),i.appendChild(o)}async getBlockMesh(e,t){const n={},a=["east","west","up","down","south","north"],{modelOptions:i}=await this.ressourceLoader.getBlockMeta(e);let o=0,s=performance.now();for(const c of i.holders){if(o++,c===void 0)continue;let m={x:(c.x??0)*(Math.PI/180),y:(c.y??0)*(Math.PI/180),z:(c.z??0)*(Math.PI/180)};const b=await this.ressourceLoader.loadModel(c.model),v=b==null?void 0:b.elements;if(!v)continue;let w=0;for(const d of v){if(w++,!d.from||!d.to)continue;this.normalizeElementCoords(d);let g;const p=`${c.model}-${o}-${w}`;if(this.faceDataCache.has(p))g=this.faceDataCache.get(p);else{try{g=await this.processFaceData(d,b,e)}catch{continue}this.faceDataCache.set(p,g)}const y=d.from,x=d.to,S=d.rotation||null;if(!y||!x)continue;const D=[x[0]-y[0],x[1]-y[1],x[2]-y[2]],B=Xo(g.uvs);for(const I of a){const T=g.subMaterials[I];if(!T)continue;const O=`${T}-${I}`;n[O]||(n[O]={materialId:T,face:I,positions:[],normals:[],uvs:[]});const V=B[I];for(const{pos:W,uv:Z}of V.corners){if(!y||!D||!W||!Z)continue;let se=[y[0]+D[0]*W[0],y[1]+D[1]*W[1],y[2]+D[2]*W[2]];S&&(se=this.applyElementRotation(se,S)),se=this.applyRotation(se,m),n[O].positions.push(...se),e.type==="redstone_wire"?n[O].uvs.push(Z[0],1-Z[1]):n[O].uvs.push(1-Z[0],1-Z[1]),n[O].normals.push(...V.normal)}}}}return performance.now()-s>50&&console.error("Slow block mesh builder",e,"took",performance.now()-s),n}applyRotation(e,t,n=[.5,.5,.5]){let{x:a,y:i,z:o}=t;i=-i,a=-a,o=-o;const s=[e[0]-n[0],e[1]-n[1],e[2]-n[2]],c=[[Math.cos(i)*Math.cos(o),Math.sin(a)*Math.sin(i)*Math.cos(o)-Math.cos(a)*Math.sin(o),Math.cos(a)*Math.sin(i)*Math.cos(o)+Math.sin(a)*Math.sin(o)],[Math.cos(i)*Math.sin(o),Math.sin(a)*Math.sin(i)*Math.sin(o)+Math.cos(a)*Math.cos(o),Math.cos(a)*Math.sin(i)*Math.sin(o)-Math.sin(a)*Math.cos(o)],[-Math.sin(i),Math.sin(a)*Math.cos(i),Math.cos(a)*Math.cos(i)]],m=[0,0,0];for(let v=0;v<3;v++)for(let w=0;w<3;w++)m[v]+=s[w]*c[v][w];return[m[0]+n[0],m[1]+n[1],m[2]+n[2]]}applyElementRotation(e,t){let{origin:n,axis:a,angle:i}=t;i=i*Math.PI/180;const o=[e[0]-n[0],e[1]-n[1],e[2]-n[2]];let s=[[1,0,0],[0,1,0],[0,0,1]];a==="x"?s=[[1,0,0],[0,Math.cos(i),-Math.sin(i)],[0,Math.sin(i),Math.cos(i)]]:a==="y"?s=[[Math.cos(i),0,Math.sin(i)],[0,1,0],[-Math.sin(i),0,Math.cos(i)]]:a==="z"&&(s=[[Math.cos(i),-Math.sin(i),0],[Math.sin(i),Math.cos(i),0],[0,0,1]]);const c=[0,0,0];for(let b=0;b<3;b++)for(let v=0;v<3;v++)c[b]+=o[v]*s[b][v];return[c[0]+n[0],c[1]+n[1],c[2]+n[2]]}occludedFacesListToInt(e){let t=0;for(const n of Zt)t=t<<1|(e[n]?1:0);return t}getOccludedFacesForBlock(e,t){var m;const n=e.type,{x:a,y:i,z:o}=t,s={east:new Ae.Vector3(1,0,0),west:new Ae.Vector3(-1,0,0),up:new Ae.Vector3(0,1,0),down:new Ae.Vector3(0,-1,0),south:new Ae.Vector3(0,0,1),north:new Ae.Vector3(0,0,-1)},c={east:!1,west:!1,up:!1,down:!1,south:!1,north:!1};if(ea.has(n)||qt.has(n))return this.occludedFacesListToInt(c);if(Ho(e)){const b=(m=e.properties)==null?void 0:m.facing,v=Jo(b);return c[v]=!0,this.occludedFacesListToInt(c)}for(const b of Zt){const v=s[b],w=this.schematic.getBlock(new Ae.Vector3(a,i,o).add(v));w!==void 0&&(ea.has(w.type)||qt.has(w.type)||(c[b]=!0))}return this.occludedFacesListToInt(c)}async updateBlockModelLookup(e,t){for(const n of t.blockTypes){if(Jt.has(n.type)||e.get(kt(n)))continue;const a=await this.ressourceLoader.getBlockStateDefinition(n.type);if(!a)continue;const i=this.ressourceLoader.getBlockModelData(n,a);i.models.length&&e.set(kt(n),i)}return e}async getBlockMeshFromCache(e,t){const n=kt(e);if(this.blockMeshCache.has(n))return this.blockMeshCache.get(n);{const a=performance.now(),i=await this.getBlockMesh(e,t);return performance.now()-a>100&&console.error("Slow block",t,e,"took",performance.now()-a),this.blockMeshCache.set(n,i),i}}}class rl{constructor(e,t,n){Ce(this,"schematic");Ce(this,"blockMeshBuilder");Ce(this,"ressourceLoader");Ce(this,"renderer");Ce(this,"worldMeshes",[]);this.ressourceLoader=e,this.renderer=n,this.blockMeshBuilder=new tl(e,t,this.renderer)}setSchematic(e){this.schematic=e,this.blockMeshBuilder.setSchematic(e)}splitSchemaIntoChunks(e={chunkWidth:64,chunkHeight:64,chunkLength:64}){const t=[],{chunkWidth:n,chunkHeight:a,chunkLength:i}=e,{width:o,height:s}=this.schematic,c=Math.ceil(o/n),m=Math.ceil(s/a);for(const b of this.schematic){const{x:v,y:w,z:d}=b,g=Math.floor(v/n),p=Math.floor(w/a),y=Math.floor(d/i),x=g+p*c+y*c*m;t[x]||(t[x]=[]),t[x].push(b)}return t}async getChunkMesh(e,t){let a=0,i={blockMeshCreation:0,blockMeshRetrieval:0,occlusion:0,chunkMeshCreation:{total_time:0,arrayCreation:0,arrayAllocation:0,indexCalculation:0,vertexTranslation:0,geometryCreation:0,materialRetrieval:0,slicing:0}},o,s=performance.now();const c=t??{x:0,y:0,z:0},m={};for(let v=0;v<e.length&&!(a>1e6);v++){const w=e[v];let{x:d,y:g,z:p}=w;d+=c.x,g+=c.y,p+=c.z;const y=this.schematic.getBlock(w);if(Jt.has(y.type))continue;o=performance.now();const x=ra(this.blockMeshBuilder.getOccludedFacesForBlock(y,w));i.occlusion+=performance.now()-o,o=performance.now();const S=await this.blockMeshBuilder.getBlockMeshFromCache(y,w);i.blockMeshRetrieval+=performance.now()-o;for(const D in S){const B=S[D].materialId,I=S[D];x[I.face]||(m[B]||(m[B]=[]),m[B].push([S[D],[d,g,p]]))}i.blockMeshCreation+=performance.now()-o,a++}o=performance.now();const b=this.ressourceLoader.createMeshesFromBlocks(m,i);return i.chunkMeshCreation.total_time=performance.now()-o,console.log("total time",performance.now()-s),console.log("Chunk times",i),b}isSolid(e,t,n){const a=this.schematic.getBlock(new Ae.Vector3(e,t,n));return a&&!qt.has(a.type)}initializeMeshCreation(){if(this.schematic===void 0)return{materialGroups:null};const e=this.schematic.width,t=this.schematic.height,n=this.schematic.length,a={x:-e/2,y:0,z:-n/2};return{worldWidth:e,worldHeight:t,worldLength:n,offset:a}}async getSchematicMeshes(e={chunkWidth:64,chunkHeight:64,chunkLength:64}){const{offset:t}=this.initializeMeshCreation(),n=await this.splitSchemaIntoChunks(e),a=n.length;let i=0;for(const o of n){i++;const s=await this.getChunkMesh(o,t??{x:0,y:0,z:0});s.length!==0&&(this.renderer.scene.add(...s),this.worldMeshes.push(s),console.log("Chunk",i,"of",a,"processed"))}return this.worldMeshes}}function nl(r){return r instanceof Map&&(r=Object.fromEntries(r)),r}function er(r){const e={},t=nl(r);return Object.keys(t).forEach(n=>{const a=t[n];switch(Kt(a)){case De.Byte:case De.Short:case De.Int:case De.Float:e[n]=a.value;break;case De.Long:case De.Double:case De.String:case De.ByteArray:case De.IntArray:case De.LongArray:e[n]=a;break;case De.Compound:e[n]=er(a);break;case De.List:e[n]=aa(a);break;default:throw new Error(`Unknown tag type: ${Kt(a)}`)}}),e}function aa(r){const e=[];return r.forEach((t,n)=>{switch(Kt(t)){case De.Byte:case De.Short:case De.Int:case De.Float:e[n]=t.value;break;case De.Long:case De.Double:case De.String:case De.ByteArray:case De.IntArray:case De.LongArray:e[n]=t;break;case De.Compound:e[n]=er(t);break;case De.List:e[n]=aa(t);break;default:throw new Error(`Unknown tag type: ${Kt(t)}`)}}),e}function al(r,e,t){const n=new Array(r);for(let a=0;a<r;a++){n[a]=new Array(e);for(let i=0;i<e;i++)n[a][i]=new Array(t)}return n}class tr{constructor({width:e,height:t,length:n,blockTypes:a,dataVersion:i,metadata:o={},format:s}){this.width=e,this.height=t,this.length=n,this.blockTypes=a,this.dataVersion=i,this.metadata=o,this.format=s,this.blocks=al(e,t,n)}contains(e){return e.x<this.width&&e.y<this.height&&e.z<this.length&&e.x>=0&&e.y>=0&&e.z>=0}getBlock(e){if(this.contains(e))return this.blocks[e.x][e.y][e.z]}setBlock(e,t){this.contains(e)&&(this.blocks[e.x][e.y][e.z]=t)}[Symbol.iterator](){let e=0,t=0,n=0;return{next:(function(){if(e===-1)return{done:!0};const a={x:e,y:t,z:n};return++e>this.width-1&&(e=0,++n>this.length-1&&(n=0,++t>this.height-1&&(e=-1))),{value:a}}).bind(this)}}}const il=1913;function sl(r){const e=r.get("BlockData"),t=r.get("Width").value,n=r.get("Height").value,a=r.get("Length").value,o=r.get("DataVersion")?r.get("DataVersion").value:il,s=r.get("Metadata"),c=new Map;for(let[d,g]of r.get("Palette").entries()){const p=d.indexOf(":");p!==-1&&(d=d.substring(p+1));const y={},x=d.indexOf("[");let S;x!==-1?(S=d.substring(0,x),d.substring(x+1,d.length-1).split(",").forEach(B=>{const I=B.split("=");y[I[0]]=I[1]})):S=d,c.set(g.value,{type:S,properties:y})}const m=s?er(s):{},b=new tr({width:t,height:n,length:a,blockTypes:[...c.values()],dataVersion:o,metadata:m,format:{type:"sponge",version:r.get("Version").value}});let v=0,w=0;for(;w<e.length;){let d=0,g=0;for(;;){if(d|=(e[w]&127)<<g++*7,g>5)throw new Error("VarInt too big");if((e[w]&128)!=128){w++;break}w++}const p=Math.floor(v/(t*a)),y=Math.floor(v%(t*a)/t),x=v%(t*a)%t;v++;const S=c.get(d);b.setBlock({x,y:p,z:y},S)}return b}function ol(r){const e=r.get("Blocks"),t=e.get("Data"),n=r.get("Width").value,a=r.get("Height").value,i=r.get("Length").value,o=r.get("DataVersion").value,s=r.get("Metadata"),c=new Map;for(let[d,g]of e.get("Palette").entries()){const p=d.indexOf(":");p!==-1&&(d=d.substring(p+1));const y={},x=d.indexOf("[");let S;x!==-1?(S=d.substring(0,x),d.substring(x+1,d.length-1).split(",").forEach(B=>{const I=B.split("=");y[I[0]]=I[1]})):S=d,c.set(g.value,{type:S,properties:y})}const m=s?er(s):{},b=new tr({width:n,height:a,length:i,blockTypes:[...c.values()],dataVersion:o,metadata:m,format:{type:"sponge",version:3}});let v=0,w=0;for(;w<t.length;){let d=0,g=0;for(;;){if(d|=(t[w]&127)<<g++*7,g>5)throw new Error("VarInt too big");if((t[w]&128)!=128){w++;break}w++}const p=Math.floor(v/(n*i)),y=Math.floor(v%(n*i)/n),x=v%(n*i)%n;v++;const S=c.get(d);b.setBlock({x,y:p,z:y},S)}return b}const ll=1913;function cl(r){const e=r.get("size"),t=e[0].value,n=e[1].value,a=e[2].value,i=r.get("blocks"),s=r.get("DataVersion")?r.get("DataVersion").value:ll,c=new Map;for(let b in r.get("palette")){const v=r.get("palette")[b];let w=v.get("Name");const d=w.indexOf(":");d!==-1&&(w=w.substring(d+1));const g={},p=v.get("Properties");if(p)for(const[y,x]of p.entries())g[y]=x;c.set(parseInt(b),{type:w,properties:g})}const m=new tr({width:t,height:n,length:a,blockTypes:[...c.values()],dataVersion:s,format:{type:"structure"}});for(const b of i){const v=b.get("state").value,w=c.get(v),d=b.get("pos"),g=d[0].value,p=d[1].value,y=d[2].value;m.setBlock({x:g,y:p,z:y},w)}return m}const fl={blocks:{"0:0":"minecraft:air","1:0":"minecraft:stone","1:1":"minecraft:granite","1:2":"minecraft:polished_granite","1:3":"minecraft:diorite","1:4":"minecraft:polished_diorite","1:5":"minecraft:andesite","1:6":"minecraft:polished_andesite","2:0":"minecraft:grass_block[snowy=false]","3:0":"minecraft:dirt","3:1":"minecraft:coarse_dirt","3:2":"minecraft:podzol[snowy=false]","4:0":"minecraft:cobblestone","5:0":"minecraft:oak_planks","5:1":"minecraft:spruce_planks","5:2":"minecraft:birch_planks","5:3":"minecraft:jungle_planks","5:4":"minecraft:acacia_planks","5:5":"minecraft:dark_oak_planks","6:0":"minecraft:oak_sapling[stage=0]","6:1":"minecraft:spruce_sapling[stage=0]","6:2":"minecraft:birch_sapling[stage=0]","6:3":"minecraft:jungle_sapling[stage=0]","6:4":"minecraft:acacia_sapling[stage=0]","6:5":"minecraft:dark_oak_sapling[stage=0]","6:8":"minecraft:oak_sapling[stage=1]","6:9":"minecraft:spruce_sapling[stage=1]","6:10":"minecraft:birch_sapling[stage=1]","6:11":"minecraft:jungle_sapling[stage=1]","6:12":"minecraft:acacia_sapling[stage=1]","6:13":"minecraft:dark_oak_sapling[stage=1]","7:0":"minecraft:bedrock","8:0":"minecraft:water[level=0]","8:1":"minecraft:water[level=1]","8:2":"minecraft:water[level=2]","8:3":"minecraft:water[level=3]","8:4":"minecraft:water[level=4]","8:5":"minecraft:water[level=5]","8:6":"minecraft:water[level=6]","8:7":"minecraft:water[level=7]","8:8":"minecraft:water[level=8]","8:9":"minecraft:water[level=9]","8:10":"minecraft:water[level=10]","8:11":"minecraft:water[level=11]","8:12":"minecraft:water[level=12]","8:13":"minecraft:water[level=13]","8:14":"minecraft:water[level=14]","8:15":"minecraft:water[level=15]","9:0":"minecraft:water[level=0]","9:1":"minecraft:water[level=1]","9:2":"minecraft:water[level=2]","9:3":"minecraft:water[level=3]","9:4":"minecraft:water[level=4]","9:5":"minecraft:water[level=5]","9:6":"minecraft:water[level=6]","9:7":"minecraft:water[level=7]","9:8":"minecraft:water[level=8]","9:9":"minecraft:water[level=9]","9:10":"minecraft:water[level=10]","9:11":"minecraft:water[level=11]","9:12":"minecraft:water[level=12]","9:13":"minecraft:water[level=13]","9:14":"minecraft:water[level=14]","9:15":"minecraft:water[level=15]","10:0":"minecraft:lava[level=0]","10:1":"minecraft:lava[level=1]","10:2":"minecraft:lava[level=2]","10:3":"minecraft:lava[level=3]","10:4":"minecraft:lava[level=4]","10:5":"minecraft:lava[level=5]","10:6":"minecraft:lava[level=6]","10:7":"minecraft:lava[level=7]","10:8":"minecraft:lava[level=8]","10:9":"minecraft:lava[level=9]","10:10":"minecraft:lava[level=10]","10:11":"minecraft:lava[level=11]","10:12":"minecraft:lava[level=12]","10:13":"minecraft:lava[level=13]","10:14":"minecraft:lava[level=14]","10:15":"minecraft:lava[level=15]","11:0":"minecraft:lava[level=0]","11:1":"minecraft:lava[level=1]","11:2":"minecraft:lava[level=2]","11:3":"minecraft:lava[level=3]","11:4":"minecraft:lava[level=4]","11:5":"minecraft:lava[level=5]","11:6":"minecraft:lava[level=6]","11:7":"minecraft:lava[level=7]","11:8":"minecraft:lava[level=8]","11:9":"minecraft:lava[level=9]","11:10":"minecraft:lava[level=10]","11:11":"minecraft:lava[level=11]","11:12":"minecraft:lava[level=12]","11:13":"minecraft:lava[level=13]","11:14":"minecraft:lava[level=14]","11:15":"minecraft:lava[level=15]","12:0":"minecraft:sand","12:1":"minecraft:red_sand","13:0":"minecraft:gravel","14:0":"minecraft:gold_ore","15:0":"minecraft:iron_ore","16:0":"minecraft:coal_ore","17:0":"minecraft:oak_log[axis=y]","17:1":"minecraft:spruce_log[axis=y]","17:2":"minecraft:birch_log[axis=y]","17:3":"minecraft:jungle_log[axis=y]","17:4":"minecraft:oak_log[axis=x]","17:5":"minecraft:spruce_log[axis=x]","17:6":"minecraft:birch_log[axis=x]","17:7":"minecraft:jungle_log[axis=x]","17:8":"minecraft:oak_log[axis=z]","17:9":"minecraft:spruce_log[axis=z]","17:10":"minecraft:birch_log[axis=z]","17:11":"minecraft:jungle_log[axis=z]","17:12":"minecraft:oak_wood","17:13":"minecraft:spruce_wood","17:14":"minecraft:birch_wood","17:15":"minecraft:jungle_wood","18:0":"minecraft:oak_leaves[persistent=false,distance=1]","18:1":"minecraft:spruce_leaves[persistent=false,distance=1]","18:2":"minecraft:birch_leaves[persistent=false,distance=1]","18:3":"minecraft:jungle_leaves[persistent=false,distance=1]","18:4":"minecraft:oak_leaves[persistent=true,distance=1]","18:5":"minecraft:spruce_leaves[persistent=true,distance=1]","18:6":"minecraft:birch_leaves[persistent=true,distance=1]","18:7":"minecraft:jungle_leaves[persistent=true,distance=1]","18:8":"minecraft:oak_leaves[persistent=false,distance=1]","18:9":"minecraft:spruce_leaves[persistent=false,distance=1]","18:10":"minecraft:birch_leaves[persistent=false,distance=1]","18:11":"minecraft:jungle_leaves[persistent=false,distance=1]","18:12":"minecraft:oak_leaves[persistent=true,distance=1]","18:13":"minecraft:spruce_leaves[persistent=true,distance=1]","18:14":"minecraft:birch_leaves[persistent=true,distance=1]","18:15":"minecraft:jungle_leaves[persistent=true,distance=1]","19:0":"minecraft:sponge","19:1":"minecraft:wet_sponge","20:0":"minecraft:glass","21:0":"minecraft:lapis_ore","22:0":"minecraft:lapis_block","23:0":"minecraft:dispenser[triggered=false,facing=down]","23:1":"minecraft:dispenser[triggered=false,facing=up]","23:2":"minecraft:dispenser[triggered=false,facing=north]","23:3":"minecraft:dispenser[triggered=false,facing=south]","23:4":"minecraft:dispenser[triggered=false,facing=west]","23:5":"minecraft:dispenser[triggered=false,facing=east]","23:8":"minecraft:dispenser[triggered=true,facing=down]","23:9":"minecraft:dispenser[triggered=true,facing=up]","23:10":"minecraft:dispenser[triggered=true,facing=north]","23:11":"minecraft:dispenser[triggered=true,facing=south]","23:12":"minecraft:dispenser[triggered=true,facing=west]","23:13":"minecraft:dispenser[triggered=true,facing=east]","24:0":"minecraft:sandstone","24:1":"minecraft:chiseled_sandstone","24:2":"minecraft:cut_sandstone","25:0":"minecraft:note_block","26:0":"minecraft:red_bed[part=foot,facing=south,occupied=false]","26:1":"minecraft:red_bed[part=foot,facing=west,occupied=false]","26:2":"minecraft:red_bed[part=foot,facing=north,occupied=false]","26:3":"minecraft:red_bed[part=foot,facing=east,occupied=false]","26:4":"minecraft:red_bed[part=foot,facing=south,occupied=true]","26:5":"minecraft:red_bed[part=foot,facing=west,occupied=true]","26:6":"minecraft:red_bed[part=foot,facing=north,occupied=true]","26:7":"minecraft:red_bed[part=foot,facing=east,occupied=true]","26:8":"minecraft:red_bed[part=head,facing=south,occupied=false]","26:9":"minecraft:red_bed[part=head,facing=west,occupied=false]","26:10":"minecraft:red_bed[part=head,facing=north,occupied=false]","26:11":"minecraft:red_bed[part=head,facing=east,occupied=false]","26:12":"minecraft:red_bed[part=head,facing=south,occupied=true]","26:13":"minecraft:red_bed[part=head,facing=west,occupied=true]","26:14":"minecraft:red_bed[part=head,facing=north,occupied=true]","26:15":"minecraft:red_bed[part=head,facing=east,occupied=true]","27:0":"minecraft:powered_rail[shape=north_south,powered=false]","27:1":"minecraft:powered_rail[shape=east_west,powered=false]","27:2":"minecraft:powered_rail[shape=ascending_east,powered=false]","27:3":"minecraft:powered_rail[shape=ascending_west,powered=false]","27:4":"minecraft:powered_rail[shape=ascending_north,powered=false]","27:5":"minecraft:powered_rail[shape=ascending_south,powered=false]","27:8":"minecraft:powered_rail[shape=north_south,powered=true]","27:9":"minecraft:powered_rail[shape=east_west,powered=true]","27:10":"minecraft:powered_rail[shape=ascending_east,powered=true]","27:11":"minecraft:powered_rail[shape=ascending_west,powered=true]","27:12":"minecraft:powered_rail[shape=ascending_north,powered=true]","27:13":"minecraft:powered_rail[shape=ascending_south,powered=true]","28:0":"minecraft:detector_rail[shape=north_south,powered=false]","28:1":"minecraft:detector_rail[shape=east_west,powered=false]","28:2":"minecraft:detector_rail[shape=ascending_east,powered=false]","28:3":"minecraft:detector_rail[shape=ascending_west,powered=false]","28:4":"minecraft:detector_rail[shape=ascending_north,powered=false]","28:5":"minecraft:detector_rail[shape=ascending_south,powered=false]","28:8":"minecraft:detector_rail[shape=north_south,powered=true]","28:9":"minecraft:detector_rail[shape=east_west,powered=true]","28:10":"minecraft:detector_rail[shape=ascending_east,powered=true]","28:11":"minecraft:detector_rail[shape=ascending_west,powered=true]","28:12":"minecraft:detector_rail[shape=ascending_north,powered=true]","28:13":"minecraft:detector_rail[shape=ascending_south,powered=true]","29:0":"minecraft:sticky_piston[facing=down,extended=false]","29:1":"minecraft:sticky_piston[facing=up,extended=false]","29:2":"minecraft:sticky_piston[facing=north,extended=false]","29:3":"minecraft:sticky_piston[facing=south,extended=false]","29:4":"minecraft:sticky_piston[facing=west,extended=false]","29:5":"minecraft:sticky_piston[facing=east,extended=false]","29:8":"minecraft:sticky_piston[facing=down,extended=true]","29:9":"minecraft:sticky_piston[facing=up,extended=true]","29:10":"minecraft:sticky_piston[facing=north,extended=true]","29:11":"minecraft:sticky_piston[facing=south,extended=true]","29:12":"minecraft:sticky_piston[facing=west,extended=true]","29:13":"minecraft:sticky_piston[facing=east,extended=true]","30:0":"minecraft:cobweb","31:0":"minecraft:dead_bush","31:1":"minecraft:grass","31:2":"minecraft:fern","32:0":"minecraft:dead_bush","33:0":"minecraft:piston[facing=down,extended=false]","33:1":"minecraft:piston[facing=up,extended=false]","33:2":"minecraft:piston[facing=north,extended=false]","33:3":"minecraft:piston[facing=south,extended=false]","33:4":"minecraft:piston[facing=west,extended=false]","33:5":"minecraft:piston[facing=east,extended=false]","33:8":"minecraft:piston[facing=down,extended=true]","33:9":"minecraft:piston[facing=up,extended=true]","33:10":"minecraft:piston[facing=north,extended=true]","33:11":"minecraft:piston[facing=south,extended=true]","33:12":"minecraft:piston[facing=west,extended=true]","33:13":"minecraft:piston[facing=east,extended=true]","34:0":"minecraft:piston_head[short=false,facing=down,type=normal]","34:1":"minecraft:piston_head[short=false,facing=up,type=normal]","34:2":"minecraft:piston_head[short=false,facing=north,type=normal]","34:3":"minecraft:piston_head[short=false,facing=south,type=normal]","34:4":"minecraft:piston_head[short=false,facing=west,type=normal]","34:5":"minecraft:piston_head[short=false,facing=east,type=normal]","34:8":"minecraft:piston_head[short=false,facing=down,type=sticky]","34:9":"minecraft:piston_head[short=false,facing=up,type=sticky]","34:10":"minecraft:piston_head[short=false,facing=north,type=sticky]","34:11":"minecraft:piston_head[short=false,facing=south,type=sticky]","34:12":"minecraft:piston_head[short=false,facing=west,type=sticky]","34:13":"minecraft:piston_head[short=false,facing=east,type=sticky]","35:0":"minecraft:white_wool","35:1":"minecraft:orange_wool","35:2":"minecraft:magenta_wool","35:3":"minecraft:light_blue_wool","35:4":"minecraft:yellow_wool","35:5":"minecraft:lime_wool","35:6":"minecraft:pink_wool","35:7":"minecraft:gray_wool","35:8":"minecraft:light_gray_wool","35:9":"minecraft:cyan_wool","35:10":"minecraft:purple_wool","35:11":"minecraft:blue_wool","35:12":"minecraft:brown_wool","35:13":"minecraft:green_wool","35:14":"minecraft:red_wool","35:15":"minecraft:black_wool","36:0":"minecraft:moving_piston[facing=down,type=normal]","36:1":"minecraft:moving_piston[facing=up,type=normal]","36:2":"minecraft:moving_piston[facing=north,type=normal]","36:3":"minecraft:moving_piston[facing=south,type=normal]","36:4":"minecraft:moving_piston[facing=west,type=normal]","36:5":"minecraft:moving_piston[facing=east,type=normal]","36:8":"minecraft:moving_piston[facing=down,type=sticky]","36:9":"minecraft:moving_piston[facing=up,type=sticky]","36:10":"minecraft:moving_piston[facing=north,type=sticky]","36:11":"minecraft:moving_piston[facing=south,type=sticky]","36:12":"minecraft:moving_piston[facing=west,type=sticky]","36:13":"minecraft:moving_piston[facing=east,type=sticky]","37:0":"minecraft:dandelion","38:0":"minecraft:poppy","38:1":"minecraft:blue_orchid","38:2":"minecraft:allium","38:3":"minecraft:azure_bluet","38:4":"minecraft:red_tulip","38:5":"minecraft:orange_tulip","38:6":"minecraft:white_tulip","38:7":"minecraft:pink_tulip","38:8":"minecraft:oxeye_daisy","39:0":"minecraft:brown_mushroom","40:0":"minecraft:red_mushroom","41:0":"minecraft:gold_block","42:0":"minecraft:iron_block","43:0":"minecraft:stone_slab[type=double]","43:1":"minecraft:sandstone_slab[type=double]","43:2":"minecraft:petrified_oak_slab[type=double]","43:3":"minecraft:cobblestone_slab[type=double]","43:4":"minecraft:brick_slab[type=double]","43:5":"minecraft:stone_brick_slab[type=double]","43:6":"minecraft:nether_brick_slab[type=double]","43:7":"minecraft:quartz_slab[type=double]","43:8":"minecraft:smooth_stone","43:9":"minecraft:smooth_sandstone","43:10":"minecraft:petrified_oak_slab[type=double]","43:11":"minecraft:cobblestone_slab[type=double]","43:12":"minecraft:brick_slab[type=double]","43:13":"minecraft:stone_brick_slab[type=double]","43:14":"minecraft:nether_brick_slab[type=double]","43:15":"minecraft:smooth_quartz","44:0":"minecraft:stone_slab[type=bottom]","44:1":"minecraft:sandstone_slab[type=bottom]","44:2":"minecraft:petrified_oak_slab[type=bottom]","44:3":"minecraft:cobblestone_slab[type=bottom]","44:4":"minecraft:brick_slab[type=bottom]","44:5":"minecraft:stone_brick_slab[type=bottom]","44:6":"minecraft:nether_brick_slab[type=bottom]","44:7":"minecraft:quartz_slab[type=bottom]","44:8":"minecraft:stone_slab[type=top]","44:9":"minecraft:sandstone_slab[type=top]","44:10":"minecraft:petrified_oak_slab[type=top]","44:11":"minecraft:cobblestone_slab[type=top]","44:12":"minecraft:brick_slab[type=top]","44:13":"minecraft:stone_brick_slab[type=top]","44:14":"minecraft:nether_brick_slab[type=top]","44:15":"minecraft:quartz_slab[type=top]","45:0":"minecraft:bricks","46:0":"minecraft:tnt[unstable=false]","46:1":"minecraft:tnt[unstable=true]","47:0":"minecraft:bookshelf","48:0":"minecraft:mossy_cobblestone","49:0":"minecraft:obsidian","50:1":"minecraft:wall_torch[facing=east]","50:2":"minecraft:wall_torch[facing=west]","50:3":"minecraft:wall_torch[facing=south]","50:4":"minecraft:wall_torch[facing=north]","50:5":"minecraft:torch","51:0":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=0]","51:1":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=1]","51:2":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=2]","51:3":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=3]","51:4":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=4]","51:5":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=5]","51:6":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=6]","51:7":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=7]","51:8":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=8]","51:9":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=9]","51:10":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=10]","51:11":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=11]","51:12":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=12]","51:13":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=13]","51:14":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=14]","51:15":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=15]","52:0":"minecraft:spawner","53:0":"minecraft:oak_stairs[half=bottom,shape=straight,facing=east]","53:1":"minecraft:oak_stairs[half=bottom,shape=straight,facing=west]","53:2":"minecraft:oak_stairs[half=bottom,shape=straight,facing=south]","53:3":"minecraft:oak_stairs[half=bottom,shape=straight,facing=north]","53:4":"minecraft:oak_stairs[half=top,shape=straight,facing=east]","53:5":"minecraft:oak_stairs[half=top,shape=straight,facing=west]","53:6":"minecraft:oak_stairs[half=top,shape=straight,facing=south]","53:7":"minecraft:oak_stairs[half=top,shape=straight,facing=north]","54:2":"minecraft:chest[facing=north,type=single]","54:3":"minecraft:chest[facing=south,type=single]","54:4":"minecraft:chest[facing=west,type=single]","54:5":"minecraft:chest[facing=east,type=single]","55:0":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=0]","55:1":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=1]","55:2":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=2]","55:3":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=3]","55:4":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=4]","55:5":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=5]","55:6":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=6]","55:7":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=7]","55:8":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=8]","55:9":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=9]","55:10":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=10]","55:11":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=11]","55:12":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=12]","55:13":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=13]","55:14":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=14]","55:15":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=15]","56:0":"minecraft:diamond_ore","57:0":"minecraft:diamond_block","58:0":"minecraft:crafting_table","59:0":"minecraft:wheat[age=0]","59:1":"minecraft:wheat[age=1]","59:2":"minecraft:wheat[age=2]","59:3":"minecraft:wheat[age=3]","59:4":"minecraft:wheat[age=4]","59:5":"minecraft:wheat[age=5]","59:6":"minecraft:wheat[age=6]","59:7":"minecraft:wheat[age=7]","60:0":"minecraft:farmland[moisture=0]","60:1":"minecraft:farmland[moisture=1]","60:2":"minecraft:farmland[moisture=2]","60:3":"minecraft:farmland[moisture=3]","60:4":"minecraft:farmland[moisture=4]","60:5":"minecraft:farmland[moisture=5]","60:6":"minecraft:farmland[moisture=6]","60:7":"minecraft:farmland[moisture=7]","61:2":"minecraft:furnace[facing=north,lit=false]","61:3":"minecraft:furnace[facing=south,lit=false]","61:4":"minecraft:furnace[facing=west,lit=false]","61:5":"minecraft:furnace[facing=east,lit=false]","62:2":"minecraft:furnace[facing=north,lit=true]","62:3":"minecraft:furnace[facing=south,lit=true]","62:4":"minecraft:furnace[facing=west,lit=true]","62:5":"minecraft:furnace[facing=east,lit=true]","63:0":"minecraft:sign[rotation=0]","63:1":"minecraft:sign[rotation=1]","63:2":"minecraft:sign[rotation=2]","63:3":"minecraft:sign[rotation=3]","63:4":"minecraft:sign[rotation=4]","63:5":"minecraft:sign[rotation=5]","63:6":"minecraft:sign[rotation=6]","63:7":"minecraft:sign[rotation=7]","63:8":"minecraft:sign[rotation=8]","63:9":"minecraft:sign[rotation=9]","63:10":"minecraft:sign[rotation=10]","63:11":"minecraft:sign[rotation=11]","63:12":"minecraft:sign[rotation=12]","63:13":"minecraft:sign[rotation=13]","63:14":"minecraft:sign[rotation=14]","63:15":"minecraft:sign[rotation=15]","64:0":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]","64:1":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]","64:2":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]","64:3":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]","64:4":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]","64:5":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]","64:6":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]","64:7":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]","64:8":"minecraft:oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]","64:9":"minecraft:oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]","64:10":"minecraft:oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]","64:11":"minecraft:oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]","65:2":"minecraft:ladder[facing=north]","65:3":"minecraft:ladder[facing=south]","65:4":"minecraft:ladder[facing=west]","65:5":"minecraft:ladder[facing=east]","66:0":"minecraft:rail[shape=north_south]","66:1":"minecraft:rail[shape=east_west]","66:2":"minecraft:rail[shape=ascending_east]","66:3":"minecraft:rail[shape=ascending_west]","66:4":"minecraft:rail[shape=ascending_north]","66:5":"minecraft:rail[shape=ascending_south]","66:6":"minecraft:rail[shape=south_east]","66:7":"minecraft:rail[shape=south_west]","66:8":"minecraft:rail[shape=north_west]","66:9":"minecraft:rail[shape=north_east]","67:0":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=east]","67:1":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=west]","67:2":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=south]","67:3":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=north]","67:4":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=east]","67:5":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=west]","67:6":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=south]","67:7":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=north]","68:2":"minecraft:wall_sign[facing=north]","68:3":"minecraft:wall_sign[facing=south]","68:4":"minecraft:wall_sign[facing=west]","68:5":"minecraft:wall_sign[facing=east]","69:0":"minecraft:lever[powered=false,facing=north,face=ceiling]","69:1":"minecraft:lever[powered=false,facing=east,face=wall]","69:2":"minecraft:lever[powered=false,facing=west,face=wall]","69:3":"minecraft:lever[powered=false,facing=south,face=wall]","69:4":"minecraft:lever[powered=false,facing=north,face=wall]","69:5":"minecraft:lever[powered=false,facing=east,face=floor]","69:6":"minecraft:lever[powered=false,facing=north,face=floor]","69:7":"minecraft:lever[powered=false,facing=east,face=ceiling]","69:8":"minecraft:lever[powered=true,facing=north,face=ceiling]","69:9":"minecraft:lever[powered=true,facing=east,face=wall]","69:10":"minecraft:lever[powered=true,facing=west,face=wall]","69:11":"minecraft:lever[powered=true,facing=south,face=wall]","69:12":"minecraft:lever[powered=true,facing=north,face=wall]","69:13":"minecraft:lever[powered=true,facing=east,face=floor]","69:14":"minecraft:lever[powered=true,facing=north,face=floor]","69:15":"minecraft:lever[powered=true,facing=east,face=ceiling]","70:0":"minecraft:stone_pressure_plate[powered=false]","70:1":"minecraft:stone_pressure_plate[powered=true]","71:0":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=false]","71:1":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=false]","71:2":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=false]","71:3":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=false]","71:4":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=true]","71:5":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=true]","71:6":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=true]","71:7":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=true]","71:8":"minecraft:iron_door[hinge=left,half=upper,powered=false,facing=east,open=false]","71:9":"minecraft:iron_door[hinge=right,half=upper,powered=false,facing=east,open=false]","71:10":"minecraft:iron_door[hinge=left,half=upper,powered=true,facing=east,open=false]","71:11":"minecraft:iron_door[hinge=right,half=upper,powered=true,facing=east,open=false]","72:0":"minecraft:oak_pressure_plate[powered=false]","72:1":"minecraft:oak_pressure_plate[powered=true]","73:0":"minecraft:redstone_ore[lit=false]","74:0":"minecraft:redstone_ore[lit=true]","75:1":"minecraft:redstone_wall_torch[facing=east,lit=false]","75:2":"minecraft:redstone_wall_torch[facing=west,lit=false]","75:3":"minecraft:redstone_wall_torch[facing=south,lit=false]","75:4":"minecraft:redstone_wall_torch[facing=north,lit=false]","75:5":"minecraft:redstone_torch[lit=false]","76:1":"minecraft:redstone_wall_torch[facing=east,lit=true]","76:2":"minecraft:redstone_wall_torch[facing=west,lit=true]","76:3":"minecraft:redstone_wall_torch[facing=south,lit=true]","76:4":"minecraft:redstone_wall_torch[facing=north,lit=true]","76:5":"minecraft:redstone_torch[lit=true]","77:0":"minecraft:stone_button[powered=false,facing=east,face=ceiling]","77:1":"minecraft:stone_button[powered=false,facing=east,face=wall]","77:2":"minecraft:stone_button[powered=false,facing=west,face=wall]","77:3":"minecraft:stone_button[powered=false,facing=south,face=wall]","77:4":"minecraft:stone_button[powered=false,facing=north,face=wall]","77:5":"minecraft:stone_button[powered=false,facing=east,face=floor]","77:8":"minecraft:stone_button[powered=true,facing=south,face=ceiling]","77:9":"minecraft:stone_button[powered=true,facing=east,face=wall]","77:10":"minecraft:stone_button[powered=true,facing=west,face=wall]","77:11":"minecraft:stone_button[powered=true,facing=south,face=wall]","77:12":"minecraft:stone_button[powered=true,facing=north,face=wall]","77:13":"minecraft:stone_button[powered=true,facing=south,face=floor]","78:0":"minecraft:snow[layers=1]","78:1":"minecraft:snow[layers=2]","78:2":"minecraft:snow[layers=3]","78:3":"minecraft:snow[layers=4]","78:4":"minecraft:snow[layers=5]","78:5":"minecraft:snow[layers=6]","78:6":"minecraft:snow[layers=7]","78:7":"minecraft:snow[layers=8]","79:0":"minecraft:ice","80:0":"minecraft:snow_block","81:0":"minecraft:cactus[age=0]","81:1":"minecraft:cactus[age=1]","81:2":"minecraft:cactus[age=2]","81:3":"minecraft:cactus[age=3]","81:4":"minecraft:cactus[age=4]","81:5":"minecraft:cactus[age=5]","81:6":"minecraft:cactus[age=6]","81:7":"minecraft:cactus[age=7]","81:8":"minecraft:cactus[age=8]","81:9":"minecraft:cactus[age=9]","81:10":"minecraft:cactus[age=10]","81:11":"minecraft:cactus[age=11]","81:12":"minecraft:cactus[age=12]","81:13":"minecraft:cactus[age=13]","81:14":"minecraft:cactus[age=14]","81:15":"minecraft:cactus[age=15]","82:0":"minecraft:clay","83:0":"minecraft:sugar_cane[age=0]","83:1":"minecraft:sugar_cane[age=1]","83:2":"minecraft:sugar_cane[age=2]","83:3":"minecraft:sugar_cane[age=3]","83:4":"minecraft:sugar_cane[age=4]","83:5":"minecraft:sugar_cane[age=5]","83:6":"minecraft:sugar_cane[age=6]","83:7":"minecraft:sugar_cane[age=7]","83:8":"minecraft:sugar_cane[age=8]","83:9":"minecraft:sugar_cane[age=9]","83:10":"minecraft:sugar_cane[age=10]","83:11":"minecraft:sugar_cane[age=11]","83:12":"minecraft:sugar_cane[age=12]","83:13":"minecraft:sugar_cane[age=13]","83:14":"minecraft:sugar_cane[age=14]","83:15":"minecraft:sugar_cane[age=15]","84:0":"minecraft:jukebox[has_record=false]","84:1":"minecraft:jukebox[has_record=true]","85:0":"minecraft:oak_fence[east=false,south=false,north=false,west=false]","86:0":"minecraft:carved_pumpkin[facing=south]","86:1":"minecraft:carved_pumpkin[facing=west]","86:2":"minecraft:carved_pumpkin[facing=north]","86:3":"minecraft:carved_pumpkin[facing=east]","87:0":"minecraft:netherrack","88:0":"minecraft:soul_sand","89:0":"minecraft:glowstone","90:1":"minecraft:nether_portal[axis=x]","90:2":"minecraft:nether_portal[axis=z]","91:0":"minecraft:jack_o_lantern[facing=south]","91:1":"minecraft:jack_o_lantern[facing=west]","91:2":"minecraft:jack_o_lantern[facing=north]","91:3":"minecraft:jack_o_lantern[facing=east]","92:0":"minecraft:cake[bites=0]","92:1":"minecraft:cake[bites=1]","92:2":"minecraft:cake[bites=2]","92:3":"minecraft:cake[bites=3]","92:4":"minecraft:cake[bites=4]","92:5":"minecraft:cake[bites=5]","92:6":"minecraft:cake[bites=6]","93:0":"minecraft:repeater[delay=1,facing=south,locked=false,powered=false]","93:1":"minecraft:repeater[delay=1,facing=west,locked=false,powered=false]","93:2":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]","93:3":"minecraft:repeater[delay=1,facing=east,locked=false,powered=false]","93:4":"minecraft:repeater[delay=2,facing=south,locked=false,powered=false]","93:5":"minecraft:repeater[delay=2,facing=west,locked=false,powered=false]","93:6":"minecraft:repeater[delay=2,facing=north,locked=false,powered=false]","93:7":"minecraft:repeater[delay=2,facing=east,locked=false,powered=false]","93:8":"minecraft:repeater[delay=3,facing=south,locked=false,powered=false]","93:9":"minecraft:repeater[delay=3,facing=west,locked=false,powered=false]","93:10":"minecraft:repeater[delay=3,facing=north,locked=false,powered=false]","93:11":"minecraft:repeater[delay=3,facing=east,locked=false,powered=false]","93:12":"minecraft:repeater[delay=4,facing=south,locked=false,powered=false]","93:13":"minecraft:repeater[delay=4,facing=west,locked=false,powered=false]","93:14":"minecraft:repeater[delay=4,facing=north,locked=false,powered=false]","93:15":"minecraft:repeater[delay=4,facing=east,locked=false,powered=false]","94:0":"minecraft:repeater[delay=1,facing=south,locked=false,powered=true]","94:1":"minecraft:repeater[delay=1,facing=west,locked=false,powered=true]","94:2":"minecraft:repeater[delay=1,facing=north,locked=false,powered=true]","94:3":"minecraft:repeater[delay=1,facing=east,locked=false,powered=true]","94:4":"minecraft:repeater[delay=2,facing=south,locked=false,powered=true]","94:5":"minecraft:repeater[delay=2,facing=west,locked=false,powered=true]","94:6":"minecraft:repeater[delay=2,facing=north,locked=false,powered=true]","94:7":"minecraft:repeater[delay=2,facing=east,locked=false,powered=true]","94:8":"minecraft:repeater[delay=3,facing=south,locked=false,powered=true]","94:9":"minecraft:repeater[delay=3,facing=west,locked=false,powered=true]","94:10":"minecraft:repeater[delay=3,facing=north,locked=false,powered=true]","94:11":"minecraft:repeater[delay=3,facing=east,locked=false,powered=true]","94:12":"minecraft:repeater[delay=4,facing=south,locked=false,powered=true]","94:13":"minecraft:repeater[delay=4,facing=west,locked=false,powered=true]","94:14":"minecraft:repeater[delay=4,facing=north,locked=false,powered=true]","94:15":"minecraft:repeater[delay=4,facing=east,locked=false,powered=true]","95:0":"minecraft:white_stained_glass","95:1":"minecraft:orange_stained_glass","95:2":"minecraft:magenta_stained_glass","95:3":"minecraft:light_blue_stained_glass","95:4":"minecraft:yellow_stained_glass","95:5":"minecraft:lime_stained_glass","95:6":"minecraft:pink_stained_glass","95:7":"minecraft:gray_stained_glass","95:8":"minecraft:light_gray_stained_glass","95:9":"minecraft:cyan_stained_glass","95:10":"minecraft:purple_stained_glass","95:11":"minecraft:blue_stained_glass","95:12":"minecraft:brown_stained_glass","95:13":"minecraft:green_stained_glass","95:14":"minecraft:red_stained_glass","95:15":"minecraft:black_stained_glass","96:0":"minecraft:oak_trapdoor[half=bottom,facing=north,open=false,powered=false]","96:1":"minecraft:oak_trapdoor[half=bottom,facing=south,open=false,powered=false]","96:2":"minecraft:oak_trapdoor[half=bottom,facing=west,open=false,powered=false]","96:3":"minecraft:oak_trapdoor[half=bottom,facing=east,open=false,powered=false]","96:4":"minecraft:oak_trapdoor[half=bottom,facing=north,open=true,powered=true]","96:5":"minecraft:oak_trapdoor[half=bottom,facing=south,open=true,powered=true]","96:6":"minecraft:oak_trapdoor[half=bottom,facing=west,open=true,powered=true]","96:7":"minecraft:oak_trapdoor[half=bottom,facing=east,open=true,powered=true]","96:8":"minecraft:oak_trapdoor[half=top,facing=north,open=false,powered=false]","96:9":"minecraft:oak_trapdoor[half=top,facing=south,open=false,powered=false]","96:10":"minecraft:oak_trapdoor[half=top,facing=west,open=false,powered=false]","96:11":"minecraft:oak_trapdoor[half=top,facing=east,open=false,powered=false]","96:12":"minecraft:oak_trapdoor[half=top,facing=north,open=true,powered=true]","96:13":"minecraft:oak_trapdoor[half=top,facing=south,open=true,powered=true]","96:14":"minecraft:oak_trapdoor[half=top,facing=west,open=true,powered=true]","96:15":"minecraft:oak_trapdoor[half=top,facing=east,open=true,powered=true]","97:0":"minecraft:infested_stone","97:1":"minecraft:infested_cobblestone","97:2":"minecraft:infested_stone_bricks","97:3":"minecraft:infested_mossy_stone_bricks","97:4":"minecraft:infested_cracked_stone_bricks","97:5":"minecraft:infested_chiseled_stone_bricks","98:0":"minecraft:stone_bricks","98:1":"minecraft:mossy_stone_bricks","98:2":"minecraft:cracked_stone_bricks","98:3":"minecraft:chiseled_stone_bricks","99:0":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]","99:1":"minecraft:brown_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]","99:2":"minecraft:brown_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]","99:3":"minecraft:brown_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]","99:4":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]","99:5":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]","99:6":"minecraft:brown_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]","99:7":"minecraft:brown_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]","99:8":"minecraft:brown_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]","99:9":"minecraft:brown_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]","99:10":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]","99:14":"minecraft:brown_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]","99:15":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]","100:0":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]","100:1":"minecraft:red_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]","100:2":"minecraft:red_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]","100:3":"minecraft:red_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]","100:4":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]","100:5":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]","100:6":"minecraft:red_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]","100:7":"minecraft:red_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]","100:8":"minecraft:red_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]","100:9":"minecraft:red_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]","100:10":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]","100:14":"minecraft:red_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]","100:15":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]","101:0":"minecraft:iron_bars[east=false,south=false,north=false,west=false]","102:0":"minecraft:glass_pane[east=false,south=false,north=false,west=false]","103:0":"minecraft:melon","104:0":"minecraft:pumpkin_stem[age=0]","104:1":"minecraft:pumpkin_stem[age=1]","104:2":"minecraft:pumpkin_stem[age=2]","104:3":"minecraft:pumpkin_stem[age=3]","104:4":"minecraft:pumpkin_stem[age=4]","104:5":"minecraft:pumpkin_stem[age=5]","104:6":"minecraft:pumpkin_stem[age=6]","104:7":"minecraft:pumpkin_stem[age=7]","105:0":"minecraft:melon_stem[age=0]","105:1":"minecraft:melon_stem[age=1]","105:2":"minecraft:melon_stem[age=2]","105:3":"minecraft:melon_stem[age=3]","105:4":"minecraft:melon_stem[age=4]","105:5":"minecraft:melon_stem[age=5]","105:6":"minecraft:melon_stem[age=6]","105:7":"minecraft:melon_stem[age=7]","106:0":"minecraft:vine[east=false,south=false,north=false,west=false,up=false]","106:1":"minecraft:vine[east=false,south=true,north=false,west=false,up=false]","106:2":"minecraft:vine[east=false,south=false,north=false,west=true,up=false]","106:3":"minecraft:vine[east=false,south=true,north=false,west=true,up=false]","106:4":"minecraft:vine[east=false,south=false,north=true,west=false,up=false]","106:5":"minecraft:vine[east=false,south=true,north=true,west=false,up=false]","106:6":"minecraft:vine[east=false,south=false,north=true,west=true,up=false]","106:7":"minecraft:vine[east=false,south=true,north=true,west=true,up=false]","106:8":"minecraft:vine[east=true,south=false,north=false,west=false,up=false]","106:9":"minecraft:vine[east=true,south=true,north=false,west=false,up=false]","106:10":"minecraft:vine[east=true,south=false,north=false,west=true,up=false]","106:11":"minecraft:vine[east=true,south=true,north=false,west=true,up=false]","106:12":"minecraft:vine[east=true,south=false,north=true,west=false,up=false]","106:13":"minecraft:vine[east=true,south=true,north=true,west=false,up=false]","106:14":"minecraft:vine[east=true,south=false,north=true,west=true,up=false]","106:15":"minecraft:vine[east=true,south=true,north=true,west=true,up=false]","107:0":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]","107:1":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]","107:2":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]","107:3":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]","107:4":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]","107:5":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]","107:6":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]","107:7":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]","107:8":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]","107:9":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]","107:10":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]","107:11":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]","107:12":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]","107:13":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]","107:14":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]","107:15":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]","108:0":"minecraft:brick_stairs[half=bottom,shape=straight,facing=east]","108:1":"minecraft:brick_stairs[half=bottom,shape=straight,facing=west]","108:2":"minecraft:brick_stairs[half=bottom,shape=straight,facing=south]","108:3":"minecraft:brick_stairs[half=bottom,shape=straight,facing=north]","108:4":"minecraft:brick_stairs[half=top,shape=straight,facing=east]","108:5":"minecraft:brick_stairs[half=top,shape=straight,facing=west]","108:6":"minecraft:brick_stairs[half=top,shape=straight,facing=south]","108:7":"minecraft:brick_stairs[half=top,shape=straight,facing=north]","109:0":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=east]","109:1":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=west]","109:2":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=south]","109:3":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=north]","109:4":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=east]","109:5":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=west]","109:6":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=south]","109:7":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=north]","110:0":"minecraft:mycelium[snowy=false]","111:0":"minecraft:lily_pad","112:0":"minecraft:nether_bricks","113:0":"minecraft:nether_brick_fence[east=false,south=false,north=false,west=false]","114:0":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=east]","114:1":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=west]","114:2":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=south]","114:3":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=north]","114:4":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=east]","114:5":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=west]","114:6":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=south]","114:7":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=north]","115:0":"minecraft:nether_wart[age=0]","115:1":"minecraft:nether_wart[age=1]","115:2":"minecraft:nether_wart[age=2]","115:3":"minecraft:nether_wart[age=3]","116:0":"minecraft:enchanting_table","117:0":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]","117:1":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=false]","117:2":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=false]","117:3":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=false]","117:4":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=true]","117:5":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=true]","117:6":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=true]","117:7":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=true]","118:0":"minecraft:cauldron[level=0]","118:1":"minecraft:cauldron[level=1]","118:2":"minecraft:cauldron[level=2]","118:3":"minecraft:cauldron[level=3]","119:0":"minecraft:end_portal","120:0":"minecraft:end_portal_frame[eye=false,facing=south]","120:1":"minecraft:end_portal_frame[eye=false,facing=west]","120:2":"minecraft:end_portal_frame[eye=false,facing=north]","120:3":"minecraft:end_portal_frame[eye=false,facing=east]","120:4":"minecraft:end_portal_frame[eye=true,facing=south]","120:5":"minecraft:end_portal_frame[eye=true,facing=west]","120:6":"minecraft:end_portal_frame[eye=true,facing=north]","120:7":"minecraft:end_portal_frame[eye=true,facing=east]","121:0":"minecraft:end_stone","122:0":"minecraft:dragon_egg","123:0":"minecraft:redstone_lamp[lit=false]","124:0":"minecraft:redstone_lamp[lit=true]","125:0":"minecraft:oak_slab[type=double]","125:1":"minecraft:spruce_slab[type=double]","125:2":"minecraft:birch_slab[type=double]","125:3":"minecraft:jungle_slab[type=double]","125:4":"minecraft:acacia_slab[type=double]","125:5":"minecraft:dark_oak_slab[type=double]","126:0":"minecraft:oak_slab[type=bottom]","126:1":"minecraft:spruce_slab[type=bottom]","126:2":"minecraft:birch_slab[type=bottom]","126:3":"minecraft:jungle_slab[type=bottom]","126:4":"minecraft:acacia_slab[type=bottom]","126:5":"minecraft:dark_oak_slab[type=bottom]","126:8":"minecraft:oak_slab[type=top]","126:9":"minecraft:spruce_slab[type=top]","126:10":"minecraft:birch_slab[type=top]","126:11":"minecraft:jungle_slab[type=top]","126:12":"minecraft:acacia_slab[type=top]","126:13":"minecraft:dark_oak_slab[type=top]","127:0":"minecraft:cocoa[facing=south,age=0]","127:1":"minecraft:cocoa[facing=west,age=0]","127:2":"minecraft:cocoa[facing=north,age=0]","127:3":"minecraft:cocoa[facing=east,age=0]","127:4":"minecraft:cocoa[facing=south,age=1]","127:5":"minecraft:cocoa[facing=west,age=1]","127:6":"minecraft:cocoa[facing=north,age=1]","127:7":"minecraft:cocoa[facing=east,age=1]","127:8":"minecraft:cocoa[facing=south,age=2]","127:9":"minecraft:cocoa[facing=west,age=2]","127:10":"minecraft:cocoa[facing=north,age=2]","127:11":"minecraft:cocoa[facing=east,age=2]","128:0":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=east]","128:1":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=west]","128:2":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=south]","128:3":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=north]","128:4":"minecraft:sandstone_stairs[half=top,shape=straight,facing=east]","128:5":"minecraft:sandstone_stairs[half=top,shape=straight,facing=west]","128:6":"minecraft:sandstone_stairs[half=top,shape=straight,facing=south]","128:7":"minecraft:sandstone_stairs[half=top,shape=straight,facing=north]","129:0":"minecraft:emerald_ore","130:2":"minecraft:ender_chest[facing=north]","130:3":"minecraft:ender_chest[facing=south]","130:4":"minecraft:ender_chest[facing=west]","130:5":"minecraft:ender_chest[facing=east]","131:0":"minecraft:tripwire_hook[powered=false,attached=false,facing=south]","131:1":"minecraft:tripwire_hook[powered=false,attached=false,facing=west]","131:2":"minecraft:tripwire_hook[powered=false,attached=false,facing=north]","131:3":"minecraft:tripwire_hook[powered=false,attached=false,facing=east]","131:4":"minecraft:tripwire_hook[powered=false,attached=true,facing=south]","131:5":"minecraft:tripwire_hook[powered=false,attached=true,facing=west]","131:6":"minecraft:tripwire_hook[powered=false,attached=true,facing=north]","131:7":"minecraft:tripwire_hook[powered=false,attached=true,facing=east]","131:8":"minecraft:tripwire_hook[powered=true,attached=false,facing=south]","131:9":"minecraft:tripwire_hook[powered=true,attached=false,facing=west]","131:10":"minecraft:tripwire_hook[powered=true,attached=false,facing=north]","131:11":"minecraft:tripwire_hook[powered=true,attached=false,facing=east]","131:12":"minecraft:tripwire_hook[powered=true,attached=true,facing=south]","131:13":"minecraft:tripwire_hook[powered=true,attached=true,facing=west]","131:14":"minecraft:tripwire_hook[powered=true,attached=true,facing=north]","131:15":"minecraft:tripwire_hook[powered=true,attached=true,facing=east]","132:0":"minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=false]","132:1":"minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=false]","132:4":"minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=true]","132:5":"minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=true]","132:8":"minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=false]","132:9":"minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=false]","132:12":"minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=true]","132:13":"minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=true]","133:0":"minecraft:emerald_block","134:0":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=east]","134:1":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=west]","134:2":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=south]","134:3":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=north]","134:4":"minecraft:spruce_stairs[half=top,shape=straight,facing=east]","134:5":"minecraft:spruce_stairs[half=top,shape=straight,facing=west]","134:6":"minecraft:spruce_stairs[half=top,shape=straight,facing=south]","134:7":"minecraft:spruce_stairs[half=top,shape=straight,facing=north]","135:0":"minecraft:birch_stairs[half=bottom,shape=straight,facing=east]","135:1":"minecraft:birch_stairs[half=bottom,shape=straight,facing=west]","135:2":"minecraft:birch_stairs[half=bottom,shape=straight,facing=south]","135:3":"minecraft:birch_stairs[half=bottom,shape=straight,facing=north]","135:4":"minecraft:birch_stairs[half=top,shape=straight,facing=east]","135:5":"minecraft:birch_stairs[half=top,shape=straight,facing=west]","135:6":"minecraft:birch_stairs[half=top,shape=straight,facing=south]","135:7":"minecraft:birch_stairs[half=top,shape=straight,facing=north]","136:0":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=east]","136:1":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=west]","136:2":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=south]","136:3":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=north]","136:4":"minecraft:jungle_stairs[half=top,shape=straight,facing=east]","136:5":"minecraft:jungle_stairs[half=top,shape=straight,facing=west]","136:6":"minecraft:jungle_stairs[half=top,shape=straight,facing=south]","136:7":"minecraft:jungle_stairs[half=top,shape=straight,facing=north]","137:0":"minecraft:command_block[conditional=false,facing=down]","137:1":"minecraft:command_block[conditional=false,facing=up]","137:2":"minecraft:command_block[conditional=false,facing=north]","137:3":"minecraft:command_block[conditional=false,facing=south]","137:4":"minecraft:command_block[conditional=false,facing=west]","137:5":"minecraft:command_block[conditional=false,facing=east]","137:8":"minecraft:command_block[conditional=true,facing=down]","137:9":"minecraft:command_block[conditional=true,facing=up]","137:10":"minecraft:command_block[conditional=true,facing=north]","137:11":"minecraft:command_block[conditional=true,facing=south]","137:12":"minecraft:command_block[conditional=true,facing=west]","137:13":"minecraft:command_block[conditional=true,facing=east]","138:0":"minecraft:beacon","139:0":"minecraft:cobblestone_wall[east=false,south=false,north=false,west=false,up=false]","139:1":"minecraft:mossy_cobblestone_wall[east=false,south=false,north=false,west=false,up=false]","140:0":"minecraft:flower_pot","140:1":"minecraft:potted_poppy","140:2":"minecraft:potted_dandelion","140:3":"minecraft:potted_oak_sapling","140:4":"minecraft:potted_spruce_sapling","140:5":"minecraft:potted_birch_sapling","140:6":"minecraft:potted_jungle_sapling","140:7":"minecraft:potted_red_mushroom","140:8":"minecraft:potted_brown_mushroom","140:9":"minecraft:potted_cactus","140:10":"minecraft:potted_dead_bush","140:11":"minecraft:potted_fern","140:12":"minecraft:potted_acacia_sapling","140:13":"minecraft:potted_dark_oak_sapling","140:14":"minecraft:potted_blue_orchid","140:15":"minecraft:potted_allium","141:0":"minecraft:carrots[age=0]","141:1":"minecraft:carrots[age=1]","141:2":"minecraft:carrots[age=2]","141:3":"minecraft:carrots[age=3]","141:4":"minecraft:carrots[age=4]","141:5":"minecraft:carrots[age=5]","141:6":"minecraft:carrots[age=6]","141:7":"minecraft:carrots[age=7]","142:0":"minecraft:potatoes[age=0]","142:1":"minecraft:potatoes[age=1]","142:2":"minecraft:potatoes[age=2]","142:3":"minecraft:potatoes[age=3]","142:4":"minecraft:potatoes[age=4]","142:5":"minecraft:potatoes[age=5]","142:6":"minecraft:potatoes[age=6]","142:7":"minecraft:potatoes[age=7]","143:0":"minecraft:oak_button[powered=false,facing=east,face=ceiling]","143:1":"minecraft:oak_button[powered=false,facing=east,face=wall]","143:2":"minecraft:oak_button[powered=false,facing=west,face=wall]","143:3":"minecraft:oak_button[powered=false,facing=south,face=wall]","143:4":"minecraft:oak_button[powered=false,facing=north,face=wall]","143:5":"minecraft:oak_button[powered=false,facing=east,face=floor]","143:8":"minecraft:oak_button[powered=true,facing=south,face=ceiling]","143:9":"minecraft:oak_button[powered=true,facing=east,face=wall]","143:10":"minecraft:oak_button[powered=true,facing=west,face=wall]","143:11":"minecraft:oak_button[powered=true,facing=south,face=wall]","143:12":"minecraft:oak_button[powered=true,facing=north,face=wall]","143:13":"minecraft:oak_button[powered=true,facing=south,face=floor]","144:0":"minecraft:skeleton_skull[rotation=0]","144:1":"minecraft:skeleton_skull[rotation=4]","144:2":"minecraft:skeleton_wall_skull[facing=north]","144:3":"minecraft:skeleton_wall_skull[facing=south]","144:4":"minecraft:skeleton_wall_skull[facing=west]","144:5":"minecraft:skeleton_wall_skull[facing=east]","144:8":"minecraft:skeleton_skull[rotation=8]","144:9":"minecraft:skeleton_skull[rotation=12]","144:10":"minecraft:skeleton_wall_skull[facing=north]","144:11":"minecraft:skeleton_wall_skull[facing=south]","144:12":"minecraft:skeleton_wall_skull[facing=west]","144:13":"minecraft:skeleton_wall_skull[facing=east]","145:0":"minecraft:anvil[facing=south]","145:1":"minecraft:anvil[facing=west]","145:2":"minecraft:anvil[facing=north]","145:3":"minecraft:anvil[facing=east]","145:4":"minecraft:chipped_anvil[facing=south]","145:5":"minecraft:chipped_anvil[facing=west]","145:6":"minecraft:chipped_anvil[facing=north]","145:7":"minecraft:chipped_anvil[facing=east]","145:8":"minecraft:damaged_anvil[facing=south]","145:9":"minecraft:damaged_anvil[facing=west]","145:10":"minecraft:damaged_anvil[facing=north]","145:11":"minecraft:damaged_anvil[facing=east]","146:2":"minecraft:trapped_chest[facing=north,type=single]","146:3":"minecraft:trapped_chest[facing=south,type=single]","146:4":"minecraft:trapped_chest[facing=west,type=single]","146:5":"minecraft:trapped_chest[facing=east,type=single]","147:0":"minecraft:light_weighted_pressure_plate[power=0]","147:1":"minecraft:light_weighted_pressure_plate[power=1]","147:2":"minecraft:light_weighted_pressure_plate[power=2]","147:3":"minecraft:light_weighted_pressure_plate[power=3]","147:4":"minecraft:light_weighted_pressure_plate[power=4]","147:5":"minecraft:light_weighted_pressure_plate[power=5]","147:6":"minecraft:light_weighted_pressure_plate[power=6]","147:7":"minecraft:light_weighted_pressure_plate[power=7]","147:8":"minecraft:light_weighted_pressure_plate[power=8]","147:9":"minecraft:light_weighted_pressure_plate[power=9]","147:10":"minecraft:light_weighted_pressure_plate[power=10]","147:11":"minecraft:light_weighted_pressure_plate[power=11]","147:12":"minecraft:light_weighted_pressure_plate[power=12]","147:13":"minecraft:light_weighted_pressure_plate[power=13]","147:14":"minecraft:light_weighted_pressure_plate[power=14]","147:15":"minecraft:light_weighted_pressure_plate[power=15]","148:0":"minecraft:heavy_weighted_pressure_plate[power=0]","148:1":"minecraft:heavy_weighted_pressure_plate[power=1]","148:2":"minecraft:heavy_weighted_pressure_plate[power=2]","148:3":"minecraft:heavy_weighted_pressure_plate[power=3]","148:4":"minecraft:heavy_weighted_pressure_plate[power=4]","148:5":"minecraft:heavy_weighted_pressure_plate[power=5]","148:6":"minecraft:heavy_weighted_pressure_plate[power=6]","148:7":"minecraft:heavy_weighted_pressure_plate[power=7]","148:8":"minecraft:heavy_weighted_pressure_plate[power=8]","148:9":"minecraft:heavy_weighted_pressure_plate[power=9]","148:10":"minecraft:heavy_weighted_pressure_plate[power=10]","148:11":"minecraft:heavy_weighted_pressure_plate[power=11]","148:12":"minecraft:heavy_weighted_pressure_plate[power=12]","148:13":"minecraft:heavy_weighted_pressure_plate[power=13]","148:14":"minecraft:heavy_weighted_pressure_plate[power=14]","148:15":"minecraft:heavy_weighted_pressure_plate[power=15]","149:0":"minecraft:comparator[mode=compare,powered=false,facing=south]","149:1":"minecraft:comparator[mode=compare,powered=false,facing=west]","149:2":"minecraft:comparator[mode=compare,powered=false,facing=north]","149:3":"minecraft:comparator[mode=compare,powered=false,facing=east]","149:4":"minecraft:comparator[mode=subtract,powered=false,facing=south]","149:5":"minecraft:comparator[mode=subtract,powered=false,facing=west]","149:6":"minecraft:comparator[mode=subtract,powered=false,facing=north]","149:7":"minecraft:comparator[mode=subtract,powered=false,facing=east]","149:8":"minecraft:comparator[mode=compare,powered=false,facing=south]","149:9":"minecraft:comparator[mode=compare,powered=false,facing=west]","149:10":"minecraft:comparator[mode=compare,powered=false,facing=north]","149:11":"minecraft:comparator[mode=compare,powered=false,facing=east]","149:12":"minecraft:comparator[mode=subtract,powered=false,facing=south]","149:13":"minecraft:comparator[mode=subtract,powered=false,facing=west]","149:14":"minecraft:comparator[mode=subtract,powered=false,facing=north]","149:15":"minecraft:comparator[mode=subtract,powered=false,facing=east]","150:0":"minecraft:comparator[mode=compare,powered=true,facing=south]","150:1":"minecraft:comparator[mode=compare,powered=true,facing=west]","150:2":"minecraft:comparator[mode=compare,powered=true,facing=north]","150:3":"minecraft:comparator[mode=compare,powered=true,facing=east]","150:4":"minecraft:comparator[mode=subtract,powered=true,facing=south]","150:5":"minecraft:comparator[mode=subtract,powered=true,facing=west]","150:6":"minecraft:comparator[mode=subtract,powered=true,facing=north]","150:7":"minecraft:comparator[mode=subtract,powered=true,facing=east]","150:8":"minecraft:comparator[mode=compare,powered=true,facing=south]","150:9":"minecraft:comparator[mode=compare,powered=true,facing=west]","150:10":"minecraft:comparator[mode=compare,powered=true,facing=north]","150:11":"minecraft:comparator[mode=compare,powered=true,facing=east]","150:12":"minecraft:comparator[mode=subtract,powered=true,facing=south]","150:13":"minecraft:comparator[mode=subtract,powered=true,facing=west]","150:14":"minecraft:comparator[mode=subtract,powered=true,facing=north]","150:15":"minecraft:comparator[mode=subtract,powered=true,facing=east]","151:0":"minecraft:daylight_detector[inverted=false,power=0]","151:1":"minecraft:daylight_detector[inverted=false,power=1]","151:2":"minecraft:daylight_detector[inverted=false,power=2]","151:3":"minecraft:daylight_detector[inverted=false,power=3]","151:4":"minecraft:daylight_detector[inverted=false,power=4]","151:5":"minecraft:daylight_detector[inverted=false,power=5]","151:6":"minecraft:daylight_detector[inverted=false,power=6]","151:7":"minecraft:daylight_detector[inverted=false,power=7]","151:8":"minecraft:daylight_detector[inverted=false,power=8]","151:9":"minecraft:daylight_detector[inverted=false,power=9]","151:10":"minecraft:daylight_detector[inverted=false,power=10]","151:11":"minecraft:daylight_detector[inverted=false,power=11]","151:12":"minecraft:daylight_detector[inverted=false,power=12]","151:13":"minecraft:daylight_detector[inverted=false,power=13]","151:14":"minecraft:daylight_detector[inverted=false,power=14]","151:15":"minecraft:daylight_detector[inverted=false,power=15]","152:0":"minecraft:redstone_block","153:0":"minecraft:nether_quartz_ore","154:0":"minecraft:hopper[facing=down,enabled=true]","154:2":"minecraft:hopper[facing=north,enabled=true]","154:3":"minecraft:hopper[facing=south,enabled=true]","154:4":"minecraft:hopper[facing=west,enabled=true]","154:5":"minecraft:hopper[facing=east,enabled=true]","154:8":"minecraft:hopper[facing=down,enabled=false]","154:10":"minecraft:hopper[facing=north,enabled=false]","154:11":"minecraft:hopper[facing=south,enabled=false]","154:12":"minecraft:hopper[facing=west,enabled=false]","154:13":"minecraft:hopper[facing=east,enabled=false]","155:0":"minecraft:quartz_block","155:1":"minecraft:chiseled_quartz_block","155:2":"minecraft:quartz_pillar[axis=y]","155:3":"minecraft:quartz_pillar[axis=x]","155:4":"minecraft:quartz_pillar[axis=z]","155:6":"minecraft:quartz_pillar[axis=x]","155:10":"minecraft:quartz_pillar[axis=z]","156:0":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=east]","156:1":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=west]","156:2":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=south]","156:3":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=north]","156:4":"minecraft:quartz_stairs[half=top,shape=straight,facing=east]","156:5":"minecraft:quartz_stairs[half=top,shape=straight,facing=west]","156:6":"minecraft:quartz_stairs[half=top,shape=straight,facing=south]","156:7":"minecraft:quartz_stairs[half=top,shape=straight,facing=north]","157:0":"minecraft:activator_rail[shape=north_south,powered=false]","157:1":"minecraft:activator_rail[shape=east_west,powered=false]","157:2":"minecraft:activator_rail[shape=ascending_east,powered=false]","157:3":"minecraft:activator_rail[shape=ascending_west,powered=false]","157:4":"minecraft:activator_rail[shape=ascending_north,powered=false]","157:5":"minecraft:activator_rail[shape=ascending_south,powered=false]","157:8":"minecraft:activator_rail[shape=north_south,powered=true]","157:9":"minecraft:activator_rail[shape=east_west,powered=true]","157:10":"minecraft:activator_rail[shape=ascending_east,powered=true]","157:11":"minecraft:activator_rail[shape=ascending_west,powered=true]","157:12":"minecraft:activator_rail[shape=ascending_north,powered=true]","157:13":"minecraft:activator_rail[shape=ascending_south,powered=true]","158:0":"minecraft:dropper[triggered=false,facing=down]","158:1":"minecraft:dropper[triggered=false,facing=up]","158:2":"minecraft:dropper[triggered=false,facing=north]","158:3":"minecraft:dropper[triggered=false,facing=south]","158:4":"minecraft:dropper[triggered=false,facing=west]","158:5":"minecraft:dropper[triggered=false,facing=east]","158:8":"minecraft:dropper[triggered=true,facing=down]","158:9":"minecraft:dropper[triggered=true,facing=up]","158:10":"minecraft:dropper[triggered=true,facing=north]","158:11":"minecraft:dropper[triggered=true,facing=south]","158:12":"minecraft:dropper[triggered=true,facing=west]","158:13":"minecraft:dropper[triggered=true,facing=east]","159:0":"minecraft:white_terracotta","159:1":"minecraft:orange_terracotta","159:2":"minecraft:magenta_terracotta","159:3":"minecraft:light_blue_terracotta","159:4":"minecraft:yellow_terracotta","159:5":"minecraft:lime_terracotta","159:6":"minecraft:pink_terracotta","159:7":"minecraft:gray_terracotta","159:8":"minecraft:light_gray_terracotta","159:9":"minecraft:cyan_terracotta","159:10":"minecraft:purple_terracotta","159:11":"minecraft:blue_terracotta","159:12":"minecraft:brown_terracotta","159:13":"minecraft:green_terracotta","159:14":"minecraft:red_terracotta","159:15":"minecraft:black_terracotta","160:0":"minecraft:white_stained_glass_pane[east=false,south=false,north=false,west=false]","160:1":"minecraft:orange_stained_glass_pane[east=false,south=false,north=false,west=false]","160:2":"minecraft:magenta_stained_glass_pane[east=false,south=false,north=false,west=false]","160:3":"minecraft:light_blue_stained_glass_pane[east=false,south=false,north=false,west=false]","160:4":"minecraft:yellow_stained_glass_pane[east=false,south=false,north=false,west=false]","160:5":"minecraft:lime_stained_glass_pane[east=false,south=false,north=false,west=false]","160:6":"minecraft:pink_stained_glass_pane[east=false,south=false,north=false,west=false]","160:7":"minecraft:gray_stained_glass_pane[east=false,south=false,north=false,west=false]","160:8":"minecraft:light_gray_stained_glass_pane[east=false,south=false,north=false,west=false]","160:9":"minecraft:cyan_stained_glass_pane[east=false,south=false,north=false,west=false]","160:10":"minecraft:purple_stained_glass_pane[east=false,south=false,north=false,west=false]","160:11":"minecraft:blue_stained_glass_pane[east=false,south=false,north=false,west=false]","160:12":"minecraft:brown_stained_glass_pane[east=false,south=false,north=false,west=false]","160:13":"minecraft:green_stained_glass_pane[east=false,south=false,north=false,west=false]","160:14":"minecraft:red_stained_glass_pane[east=false,south=false,north=false,west=false]","160:15":"minecraft:black_stained_glass_pane[east=false,south=false,north=false,west=false]","161:0":"minecraft:acacia_leaves[persistent=false,distance=1]","161:1":"minecraft:dark_oak_leaves[persistent=false,distance=1]","161:4":"minecraft:acacia_leaves[persistent=true,distance=1]","161:5":"minecraft:dark_oak_leaves[persistent=true,distance=1]","161:8":"minecraft:acacia_leaves[persistent=false,distance=1]","161:9":"minecraft:dark_oak_leaves[persistent=false,distance=1]","161:12":"minecraft:acacia_leaves[persistent=true,distance=1]","161:13":"minecraft:dark_oak_leaves[persistent=true,distance=1]","162:0":"minecraft:acacia_log[axis=y]","162:1":"minecraft:dark_oak_log[axis=y]","162:4":"minecraft:acacia_log[axis=x]","162:5":"minecraft:dark_oak_log[axis=x]","162:8":"minecraft:acacia_log[axis=z]","162:9":"minecraft:dark_oak_log[axis=z]","162:12":"minecraft:acacia_wood","162:13":"minecraft:dark_oak_wood","163:0":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=east]","163:1":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=west]","163:2":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=south]","163:3":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=north]","163:4":"minecraft:acacia_stairs[half=top,shape=straight,facing=east]","163:5":"minecraft:acacia_stairs[half=top,shape=straight,facing=west]","163:6":"minecraft:acacia_stairs[half=top,shape=straight,facing=south]","163:7":"minecraft:acacia_stairs[half=top,shape=straight,facing=north]","164:0":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=east]","164:1":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=west]","164:2":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=south]","164:3":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=north]","164:4":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=east]","164:5":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=west]","164:6":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=south]","164:7":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=north]","165:0":"minecraft:slime_block","166:0":"minecraft:barrier","167:0":"minecraft:iron_trapdoor[half=bottom,facing=north,open=false]","167:1":"minecraft:iron_trapdoor[half=bottom,facing=south,open=false]","167:2":"minecraft:iron_trapdoor[half=bottom,facing=west,open=false]","167:3":"minecraft:iron_trapdoor[half=bottom,facing=east,open=false]","167:4":"minecraft:iron_trapdoor[half=bottom,facing=north,open=true]","167:5":"minecraft:iron_trapdoor[half=bottom,facing=south,open=true]","167:6":"minecraft:iron_trapdoor[half=bottom,facing=west,open=true]","167:7":"minecraft:iron_trapdoor[half=bottom,facing=east,open=true]","167:8":"minecraft:iron_trapdoor[half=top,facing=north,open=false]","167:9":"minecraft:iron_trapdoor[half=top,facing=south,open=false]","167:10":"minecraft:iron_trapdoor[half=top,facing=west,open=false]","167:11":"minecraft:iron_trapdoor[half=top,facing=east,open=false]","167:12":"minecraft:iron_trapdoor[half=top,facing=north,open=true]","167:13":"minecraft:iron_trapdoor[half=top,facing=south,open=true]","167:14":"minecraft:iron_trapdoor[half=top,facing=west,open=true]","167:15":"minecraft:iron_trapdoor[half=top,facing=east,open=true]","168:0":"minecraft:prismarine","168:1":"minecraft:prismarine_bricks","168:2":"minecraft:dark_prismarine","169:0":"minecraft:sea_lantern","170:0":"minecraft:hay_block[axis=y]","170:4":"minecraft:hay_block[axis=x]","170:8":"minecraft:hay_block[axis=z]","171:0":"minecraft:white_carpet","171:1":"minecraft:orange_carpet","171:2":"minecraft:magenta_carpet","171:3":"minecraft:light_blue_carpet","171:4":"minecraft:yellow_carpet","171:5":"minecraft:lime_carpet","171:6":"minecraft:pink_carpet","171:7":"minecraft:gray_carpet","171:8":"minecraft:light_gray_carpet","171:9":"minecraft:cyan_carpet","171:10":"minecraft:purple_carpet","171:11":"minecraft:blue_carpet","171:12":"minecraft:brown_carpet","171:13":"minecraft:green_carpet","171:14":"minecraft:red_carpet","171:15":"minecraft:black_carpet","172:0":"minecraft:terracotta","173:0":"minecraft:coal_block","174:0":"minecraft:packed_ice","175:0":"minecraft:sunflower[half=lower]","175:1":"minecraft:lilac[half=lower]","175:2":"minecraft:tall_grass[half=lower]","175:3":"minecraft:large_fern[half=lower]","175:4":"minecraft:rose_bush[half=lower]","175:5":"minecraft:peony[half=lower]","175:8":"minecraft:sunflower[half=upper]","175:9":"minecraft:lilac[half=upper]","175:10":"minecraft:tall_grass[half=upper]","175:11":"minecraft:large_fern[half=upper]","175:12":"minecraft:rose_bush[half=upper]","175:13":"minecraft:peony[half=upper]","176:0":"minecraft:white_banner[rotation=0]","176:1":"minecraft:white_banner[rotation=1]","176:2":"minecraft:white_banner[rotation=2]","176:3":"minecraft:white_banner[rotation=3]","176:4":"minecraft:white_banner[rotation=4]","176:5":"minecraft:white_banner[rotation=5]","176:6":"minecraft:white_banner[rotation=6]","176:7":"minecraft:white_banner[rotation=7]","176:8":"minecraft:white_banner[rotation=8]","176:9":"minecraft:white_banner[rotation=9]","176:10":"minecraft:white_banner[rotation=10]","176:11":"minecraft:white_banner[rotation=11]","176:12":"minecraft:white_banner[rotation=12]","176:13":"minecraft:white_banner[rotation=13]","176:14":"minecraft:white_banner[rotation=14]","176:15":"minecraft:white_banner[rotation=15]","177:2":"minecraft:white_wall_banner[facing=north]","177:3":"minecraft:white_wall_banner[facing=south]","177:4":"minecraft:white_wall_banner[facing=west]","177:5":"minecraft:white_wall_banner[facing=east]","178:0":"minecraft:daylight_detector[inverted=true,power=0]","178:1":"minecraft:daylight_detector[inverted=true,power=1]","178:2":"minecraft:daylight_detector[inverted=true,power=2]","178:3":"minecraft:daylight_detector[inverted=true,power=3]","178:4":"minecraft:daylight_detector[inverted=true,power=4]","178:5":"minecraft:daylight_detector[inverted=true,power=5]","178:6":"minecraft:daylight_detector[inverted=true,power=6]","178:7":"minecraft:daylight_detector[inverted=true,power=7]","178:8":"minecraft:daylight_detector[inverted=true,power=8]","178:9":"minecraft:daylight_detector[inverted=true,power=9]","178:10":"minecraft:daylight_detector[inverted=true,power=10]","178:11":"minecraft:daylight_detector[inverted=true,power=11]","178:12":"minecraft:daylight_detector[inverted=true,power=12]","178:13":"minecraft:daylight_detector[inverted=true,power=13]","178:14":"minecraft:daylight_detector[inverted=true,power=14]","178:15":"minecraft:daylight_detector[inverted=true,power=15]","179:0":"minecraft:red_sandstone","179:1":"minecraft:chiseled_red_sandstone","179:2":"minecraft:cut_red_sandstone","180:0":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=east]","180:1":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=west]","180:2":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=south]","180:3":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=north]","180:4":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=east]","180:5":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=west]","180:6":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=south]","180:7":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=north]","181:0":"minecraft:red_sandstone_slab[type=double]","181:8":"minecraft:smooth_red_sandstone","182:0":"minecraft:red_sandstone_slab[type=bottom]","182:8":"minecraft:red_sandstone_slab[type=top]","183:0":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=false]","183:1":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=false]","183:2":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=false]","183:3":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=false]","183:4":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=true]","183:5":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=true]","183:6":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=true]","183:7":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=true]","183:8":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=false]","183:9":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=false]","183:10":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=false]","183:11":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=false]","183:12":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=true]","183:13":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=true]","183:14":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=true]","183:15":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=true]","184:0":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=false]","184:1":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=false]","184:2":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=false]","184:3":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=false]","184:4":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=true]","184:5":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=true]","184:6":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=true]","184:7":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=true]","184:8":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=false]","184:9":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=false]","184:10":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=false]","184:11":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=false]","184:12":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=true]","184:13":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=true]","184:14":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=true]","184:15":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=true]","185:0":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=false]","185:1":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=false]","185:2":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=false]","185:3":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=false]","185:4":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=true]","185:5":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=true]","185:6":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=true]","185:7":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=true]","185:8":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=false]","185:9":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=false]","185:10":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=false]","185:11":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=false]","185:12":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=true]","185:13":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=true]","185:14":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=true]","185:15":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=true]","186:0":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]","186:1":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]","186:2":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]","186:3":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]","186:4":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]","186:5":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]","186:6":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]","186:7":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]","186:8":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]","186:9":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]","186:10":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]","186:11":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]","186:12":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]","186:13":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]","186:14":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]","186:15":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]","187:0":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=false]","187:1":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=false]","187:2":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=false]","187:3":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=false]","187:4":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=true]","187:5":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=true]","187:6":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=true]","187:7":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=true]","187:8":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=false]","187:9":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=false]","187:10":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=false]","187:11":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=false]","187:12":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=true]","187:13":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=true]","187:14":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=true]","187:15":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=true]","188:0":"minecraft:spruce_fence[east=false,south=false,north=false,west=false]","189:0":"minecraft:birch_fence[east=false,south=false,north=false,west=false]","190:0":"minecraft:jungle_fence[east=false,south=false,north=false,west=false]","191:0":"minecraft:dark_oak_fence[east=false,south=false,north=false,west=false]","192:0":"minecraft:acacia_fence[east=false,south=false,north=false,west=false]","193:0":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=false]","193:1":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=false]","193:2":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=false]","193:3":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=false]","193:4":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=true]","193:5":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=true]","193:6":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=true]","193:7":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=true]","193:8":"minecraft:spruce_door[hinge=left,half=upper,powered=false,facing=east,open=false]","193:9":"minecraft:spruce_door[hinge=right,half=upper,powered=false,facing=east,open=false]","193:10":"minecraft:spruce_door[hinge=left,half=upper,powered=true,facing=east,open=false]","193:11":"minecraft:spruce_door[hinge=right,half=upper,powered=true,facing=east,open=false]","194:0":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=false]","194:1":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=false]","194:2":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=false]","194:3":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=false]","194:4":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=true]","194:5":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=true]","194:6":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=true]","194:7":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=true]","194:8":"minecraft:birch_door[hinge=left,half=upper,powered=false,facing=east,open=false]","194:9":"minecraft:birch_door[hinge=right,half=upper,powered=false,facing=east,open=false]","194:10":"minecraft:birch_door[hinge=left,half=upper,powered=true,facing=east,open=false]","194:11":"minecraft:birch_door[hinge=right,half=upper,powered=true,facing=east,open=false]","195:0":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=false]","195:1":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=false]","195:2":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=false]","195:3":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=false]","195:4":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=true]","195:5":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=true]","195:6":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=true]","195:7":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=true]","195:8":"minecraft:jungle_door[hinge=left,half=upper,powered=false,facing=east,open=false]","195:9":"minecraft:jungle_door[hinge=right,half=upper,powered=false,facing=east,open=false]","195:10":"minecraft:jungle_door[hinge=left,half=upper,powered=true,facing=east,open=false]","195:11":"minecraft:jungle_door[hinge=right,half=upper,powered=true,facing=east,open=false]","196:0":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=false]","196:1":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=false]","196:2":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=false]","196:3":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=false]","196:4":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=true]","196:5":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=true]","196:6":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=true]","196:7":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=true]","196:8":"minecraft:acacia_door[hinge=left,half=upper,powered=false,facing=east,open=false]","196:9":"minecraft:acacia_door[hinge=right,half=upper,powered=false,facing=east,open=false]","196:10":"minecraft:acacia_door[hinge=left,half=upper,powered=true,facing=east,open=false]","196:11":"minecraft:acacia_door[hinge=right,half=upper,powered=true,facing=east,open=false]","197:0":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]","197:1":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]","197:2":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]","197:3":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]","197:4":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]","197:5":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]","197:6":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]","197:7":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]","197:8":"minecraft:dark_oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]","197:9":"minecraft:dark_oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]","197:10":"minecraft:dark_oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]","197:11":"minecraft:dark_oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]","198:0":"minecraft:end_rod[facing=down]","198:1":"minecraft:end_rod[facing=up]","198:2":"minecraft:end_rod[facing=north]","198:3":"minecraft:end_rod[facing=south]","198:4":"minecraft:end_rod[facing=west]","198:5":"minecraft:end_rod[facing=east]","199:0":"minecraft:chorus_plant[east=false,south=false,north=false,west=false,up=false,down=false]","200:0":"minecraft:chorus_flower[age=0]","200:1":"minecraft:chorus_flower[age=1]","200:2":"minecraft:chorus_flower[age=2]","200:3":"minecraft:chorus_flower[age=3]","200:4":"minecraft:chorus_flower[age=4]","200:5":"minecraft:chorus_flower[age=5]","201:0":"minecraft:purpur_block","202:0":"minecraft:purpur_pillar[axis=y]","202:4":"minecraft:purpur_pillar[axis=x]","202:8":"minecraft:purpur_pillar[axis=z]","203:0":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=east]","203:1":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=west]","203:2":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=south]","203:3":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=north]","203:4":"minecraft:purpur_stairs[half=top,shape=straight,facing=east]","203:5":"minecraft:purpur_stairs[half=top,shape=straight,facing=west]","203:6":"minecraft:purpur_stairs[half=top,shape=straight,facing=south]","203:7":"minecraft:purpur_stairs[half=top,shape=straight,facing=north]","204:0":"minecraft:purpur_slab[type=double]","205:0":"minecraft:purpur_slab[type=bottom]","205:8":"minecraft:purpur_slab[type=top]","206:0":"minecraft:end_stone_bricks","207:0":"minecraft:beetroots[age=0]","207:1":"minecraft:beetroots[age=1]","207:2":"minecraft:beetroots[age=2]","207:3":"minecraft:beetroots[age=3]","208:0":"minecraft:grass_path","209:0":"minecraft:end_gateway","210:0":"minecraft:repeating_command_block[conditional=false,facing=down]","210:1":"minecraft:repeating_command_block[conditional=false,facing=up]","210:2":"minecraft:repeating_command_block[conditional=false,facing=north]","210:3":"minecraft:repeating_command_block[conditional=false,facing=south]","210:4":"minecraft:repeating_command_block[conditional=false,facing=west]","210:5":"minecraft:repeating_command_block[conditional=false,facing=east]","210:8":"minecraft:repeating_command_block[conditional=true,facing=down]","210:9":"minecraft:repeating_command_block[conditional=true,facing=up]","210:10":"minecraft:repeating_command_block[conditional=true,facing=north]","210:11":"minecraft:repeating_command_block[conditional=true,facing=south]","210:12":"minecraft:repeating_command_block[conditional=true,facing=west]","210:13":"minecraft:repeating_command_block[conditional=true,facing=east]","211:0":"minecraft:chain_command_block[conditional=false,facing=down]","211:1":"minecraft:chain_command_block[conditional=false,facing=up]","211:2":"minecraft:chain_command_block[conditional=false,facing=north]","211:3":"minecraft:chain_command_block[conditional=false,facing=south]","211:4":"minecraft:chain_command_block[conditional=false,facing=west]","211:5":"minecraft:chain_command_block[conditional=false,facing=east]","211:8":"minecraft:chain_command_block[conditional=true,facing=down]","211:9":"minecraft:chain_command_block[conditional=true,facing=up]","211:10":"minecraft:chain_command_block[conditional=true,facing=north]","211:11":"minecraft:chain_command_block[conditional=true,facing=south]","211:12":"minecraft:chain_command_block[conditional=true,facing=west]","211:13":"minecraft:chain_command_block[conditional=true,facing=east]","212:0":"minecraft:frosted_ice[age=0]","212:1":"minecraft:frosted_ice[age=1]","212:2":"minecraft:frosted_ice[age=2]","212:3":"minecraft:frosted_ice[age=3]","213:0":"minecraft:magma_block","214:0":"minecraft:nether_wart_block","215:0":"minecraft:red_nether_bricks","216:0":"minecraft:bone_block[axis=y]","216:4":"minecraft:bone_block[axis=x]","216:8":"minecraft:bone_block[axis=z]","217:0":"minecraft:structure_void","218:0":"minecraft:observer[powered=false,facing=down]","218:1":"minecraft:observer[powered=false,facing=up]","218:2":"minecraft:observer[powered=false,facing=north]","218:3":"minecraft:observer[powered=false,facing=south]","218:4":"minecraft:observer[powered=false,facing=west]","218:5":"minecraft:observer[powered=false,facing=east]","218:8":"minecraft:observer[powered=true,facing=down]","218:9":"minecraft:observer[powered=true,facing=up]","218:10":"minecraft:observer[powered=true,facing=north]","218:11":"minecraft:observer[powered=true,facing=south]","218:12":"minecraft:observer[powered=true,facing=west]","218:13":"minecraft:observer[powered=true,facing=east]","219:0":"minecraft:white_shulker_box[facing=down]","219:1":"minecraft:white_shulker_box[facing=up]","219:2":"minecraft:white_shulker_box[facing=north]","219:3":"minecraft:white_shulker_box[facing=south]","219:4":"minecraft:white_shulker_box[facing=west]","219:5":"minecraft:white_shulker_box[facing=east]","220:0":"minecraft:orange_shulker_box[facing=down]","220:1":"minecraft:orange_shulker_box[facing=up]","220:2":"minecraft:orange_shulker_box[facing=north]","220:3":"minecraft:orange_shulker_box[facing=south]","220:4":"minecraft:orange_shulker_box[facing=west]","220:5":"minecraft:orange_shulker_box[facing=east]","221:0":"minecraft:magenta_shulker_box[facing=down]","221:1":"minecraft:magenta_shulker_box[facing=up]","221:2":"minecraft:magenta_shulker_box[facing=north]","221:3":"minecraft:magenta_shulker_box[facing=south]","221:4":"minecraft:magenta_shulker_box[facing=west]","221:5":"minecraft:magenta_shulker_box[facing=east]","222:0":"minecraft:light_blue_shulker_box[facing=down]","222:1":"minecraft:light_blue_shulker_box[facing=up]","222:2":"minecraft:light_blue_shulker_box[facing=north]","222:3":"minecraft:light_blue_shulker_box[facing=south]","222:4":"minecraft:light_blue_shulker_box[facing=west]","222:5":"minecraft:light_blue_shulker_box[facing=east]","223:0":"minecraft:yellow_shulker_box[facing=down]","223:1":"minecraft:yellow_shulker_box[facing=up]","223:2":"minecraft:yellow_shulker_box[facing=north]","223:3":"minecraft:yellow_shulker_box[facing=south]","223:4":"minecraft:yellow_shulker_box[facing=west]","223:5":"minecraft:yellow_shulker_box[facing=east]","224:0":"minecraft:lime_shulker_box[facing=down]","224:1":"minecraft:lime_shulker_box[facing=up]","224:2":"minecraft:lime_shulker_box[facing=north]","224:3":"minecraft:lime_shulker_box[facing=south]","224:4":"minecraft:lime_shulker_box[facing=west]","224:5":"minecraft:lime_shulker_box[facing=east]","225:0":"minecraft:pink_shulker_box[facing=down]","225:1":"minecraft:pink_shulker_box[facing=up]","225:2":"minecraft:pink_shulker_box[facing=north]","225:3":"minecraft:pink_shulker_box[facing=south]","225:4":"minecraft:pink_shulker_box[facing=west]","225:5":"minecraft:pink_shulker_box[facing=east]","226:0":"minecraft:gray_shulker_box[facing=down]","226:1":"minecraft:gray_shulker_box[facing=up]","226:2":"minecraft:gray_shulker_box[facing=north]","226:3":"minecraft:gray_shulker_box[facing=south]","226:4":"minecraft:gray_shulker_box[facing=west]","226:5":"minecraft:gray_shulker_box[facing=east]","227:0":"minecraft:light_gray_shulker_box[facing=down]","227:1":"minecraft:light_gray_shulker_box[facing=up]","227:2":"minecraft:light_gray_shulker_box[facing=north]","227:3":"minecraft:light_gray_shulker_box[facing=south]","227:4":"minecraft:light_gray_shulker_box[facing=west]","227:5":"minecraft:light_gray_shulker_box[facing=east]","228:0":"minecraft:cyan_shulker_box[facing=down]","228:1":"minecraft:cyan_shulker_box[facing=up]","228:2":"minecraft:cyan_shulker_box[facing=north]","228:3":"minecraft:cyan_shulker_box[facing=south]","228:4":"minecraft:cyan_shulker_box[facing=west]","228:5":"minecraft:cyan_shulker_box[facing=east]","229:0":"minecraft:purple_shulker_box[facing=down]","229:1":"minecraft:purple_shulker_box[facing=up]","229:2":"minecraft:purple_shulker_box[facing=north]","229:3":"minecraft:purple_shulker_box[facing=south]","229:4":"minecraft:purple_shulker_box[facing=west]","229:5":"minecraft:purple_shulker_box[facing=east]","230:0":"minecraft:blue_shulker_box[facing=down]","230:1":"minecraft:blue_shulker_box[facing=up]","230:2":"minecraft:blue_shulker_box[facing=north]","230:3":"minecraft:blue_shulker_box[facing=south]","230:4":"minecraft:blue_shulker_box[facing=west]","230:5":"minecraft:blue_shulker_box[facing=east]","231:0":"minecraft:brown_shulker_box[facing=down]","231:1":"minecraft:brown_shulker_box[facing=up]","231:2":"minecraft:brown_shulker_box[facing=north]","231:3":"minecraft:brown_shulker_box[facing=south]","231:4":"minecraft:brown_shulker_box[facing=west]","231:5":"minecraft:brown_shulker_box[facing=east]","232:0":"minecraft:green_shulker_box[facing=down]","232:1":"minecraft:green_shulker_box[facing=up]","232:2":"minecraft:green_shulker_box[facing=north]","232:3":"minecraft:green_shulker_box[facing=south]","232:4":"minecraft:green_shulker_box[facing=west]","232:5":"minecraft:green_shulker_box[facing=east]","233:0":"minecraft:red_shulker_box[facing=down]","233:1":"minecraft:red_shulker_box[facing=up]","233:2":"minecraft:red_shulker_box[facing=north]","233:3":"minecraft:red_shulker_box[facing=south]","233:4":"minecraft:red_shulker_box[facing=west]","233:5":"minecraft:red_shulker_box[facing=east]","234:0":"minecraft:black_shulker_box[facing=down]","234:1":"minecraft:black_shulker_box[facing=up]","234:2":"minecraft:black_shulker_box[facing=north]","234:3":"minecraft:black_shulker_box[facing=south]","234:4":"minecraft:black_shulker_box[facing=west]","234:5":"minecraft:black_shulker_box[facing=east]","235:0":"minecraft:white_glazed_terracotta[facing=south]","235:1":"minecraft:white_glazed_terracotta[facing=west]","235:2":"minecraft:white_glazed_terracotta[facing=north]","235:3":"minecraft:white_glazed_terracotta[facing=east]","236:0":"minecraft:orange_glazed_terracotta[facing=south]","236:1":"minecraft:orange_glazed_terracotta[facing=west]","236:2":"minecraft:orange_glazed_terracotta[facing=north]","236:3":"minecraft:orange_glazed_terracotta[facing=east]","237:0":"minecraft:magenta_glazed_terracotta[facing=south]","237:1":"minecraft:magenta_glazed_terracotta[facing=west]","237:2":"minecraft:magenta_glazed_terracotta[facing=north]","237:3":"minecraft:magenta_glazed_terracotta[facing=east]","238:0":"minecraft:light_blue_glazed_terracotta[facing=south]","238:1":"minecraft:light_blue_glazed_terracotta[facing=west]","238:2":"minecraft:light_blue_glazed_terracotta[facing=north]","238:3":"minecraft:light_blue_glazed_terracotta[facing=east]","239:0":"minecraft:yellow_glazed_terracotta[facing=south]","239:1":"minecraft:yellow_glazed_terracotta[facing=west]","239:2":"minecraft:yellow_glazed_terracotta[facing=north]","239:3":"minecraft:yellow_glazed_terracotta[facing=east]","240:0":"minecraft:lime_glazed_terracotta[facing=south]","240:1":"minecraft:lime_glazed_terracotta[facing=west]","240:2":"minecraft:lime_glazed_terracotta[facing=north]","240:3":"minecraft:lime_glazed_terracotta[facing=east]","241:0":"minecraft:pink_glazed_terracotta[facing=south]","241:1":"minecraft:pink_glazed_terracotta[facing=west]","241:2":"minecraft:pink_glazed_terracotta[facing=north]","241:3":"minecraft:pink_glazed_terracotta[facing=east]","242:0":"minecraft:gray_glazed_terracotta[facing=south]","242:1":"minecraft:gray_glazed_terracotta[facing=west]","242:2":"minecraft:gray_glazed_terracotta[facing=north]","242:3":"minecraft:gray_glazed_terracotta[facing=east]","243:0":"minecraft:light_gray_glazed_terracotta[facing=south]","243:1":"minecraft:light_gray_glazed_terracotta[facing=west]","243:2":"minecraft:light_gray_glazed_terracotta[facing=north]","243:3":"minecraft:light_gray_glazed_terracotta[facing=east]","244:0":"minecraft:cyan_glazed_terracotta[facing=south]","244:1":"minecraft:cyan_glazed_terracotta[facing=west]","244:2":"minecraft:cyan_glazed_terracotta[facing=north]","244:3":"minecraft:cyan_glazed_terracotta[facing=east]","245:0":"minecraft:purple_glazed_terracotta[facing=south]","245:1":"minecraft:purple_glazed_terracotta[facing=west]","245:2":"minecraft:purple_glazed_terracotta[facing=north]","245:3":"minecraft:purple_glazed_terracotta[facing=east]","246:0":"minecraft:blue_glazed_terracotta[facing=south]","246:1":"minecraft:blue_glazed_terracotta[facing=west]","246:2":"minecraft:blue_glazed_terracotta[facing=north]","246:3":"minecraft:blue_glazed_terracotta[facing=east]","247:0":"minecraft:brown_glazed_terracotta[facing=south]","247:1":"minecraft:brown_glazed_terracotta[facing=west]","247:2":"minecraft:brown_glazed_terracotta[facing=north]","247:3":"minecraft:brown_glazed_terracotta[facing=east]","248:0":"minecraft:green_glazed_terracotta[facing=south]","248:1":"minecraft:green_glazed_terracotta[facing=west]","248:2":"minecraft:green_glazed_terracotta[facing=north]","248:3":"minecraft:green_glazed_terracotta[facing=east]","249:0":"minecraft:red_glazed_terracotta[facing=south]","249:1":"minecraft:red_glazed_terracotta[facing=west]","249:2":"minecraft:red_glazed_terracotta[facing=north]","249:3":"minecraft:red_glazed_terracotta[facing=east]","250:0":"minecraft:black_glazed_terracotta[facing=south]","250:1":"minecraft:black_glazed_terracotta[facing=west]","250:2":"minecraft:black_glazed_terracotta[facing=north]","250:3":"minecraft:black_glazed_terracotta[facing=east]","251:0":"minecraft:white_concrete","251:1":"minecraft:orange_concrete","251:2":"minecraft:magenta_concrete","251:3":"minecraft:light_blue_concrete","251:4":"minecraft:yellow_concrete","251:5":"minecraft:lime_concrete","251:6":"minecraft:pink_concrete","251:7":"minecraft:gray_concrete","251:8":"minecraft:light_gray_concrete","251:9":"minecraft:cyan_concrete","251:10":"minecraft:purple_concrete","251:11":"minecraft:blue_concrete","251:12":"minecraft:brown_concrete","251:13":"minecraft:green_concrete","251:14":"minecraft:red_concrete","251:15":"minecraft:black_concrete","252:0":"minecraft:white_concrete_powder","252:1":"minecraft:orange_concrete_powder","252:2":"minecraft:magenta_concrete_powder","252:3":"minecraft:light_blue_concrete_powder","252:4":"minecraft:yellow_concrete_powder","252:5":"minecraft:lime_concrete_powder","252:6":"minecraft:pink_concrete_powder","252:7":"minecraft:gray_concrete_powder","252:8":"minecraft:light_gray_concrete_powder","252:9":"minecraft:cyan_concrete_powder","252:10":"minecraft:purple_concrete_powder","252:11":"minecraft:blue_concrete_powder","252:12":"minecraft:brown_concrete_powder","252:13":"minecraft:green_concrete_powder","252:14":"minecraft:red_concrete_powder","252:15":"minecraft:black_concrete_powder","255:0":"minecraft:structure_block[mode=save]","255:1":"minecraft:structure_block[mode=load]","255:2":"minecraft:structure_block[mode=corner]","255:3":"minecraft:structure_block[mode=data]"}};function ul(r){const e=r.get("Materials"),t=r.get("Blocks"),n=r.get("Data"),a=r.get("Width").value,i=r.get("Height").value,o=r.get("Length").value,s=new Map;for(let m=0;m<a;++m)for(let b=0;b<i;++b)for(let v=0;v<o;++v){const w=b*a*o+v*a+m,d=`${t[w]}:${n[w]}`;let g=fl.blocks[d];if(!g)throw new Error("Unknown legacy block: "+d);const p=g.indexOf(":");p!==-1&&(g=g.substring(p+1));const y={},x=g.indexOf("[");let S;x!==-1?(S=g.substring(0,x),g.substring(x+1,g.length-1).split(",").forEach(B=>{const I=B.split("=");y[I[0]]=I[1]})):S=g,s.set(d,{type:S,properties:y})}const c=new tr({width:a,height:i,length:o,blockTypes:[...s.values()],dataVersion:void 0,metadata:{},format:{type:"mcedit",version:e==="Alpha"?1:void 0}});for(let m=0;m<a;++m)for(let b=0;b<i;++b)for(let v=0;v<o;++v){const w=b*a*o+v*a+m,d=`${t[w]}:${n[w]}`,g=s.get(d);c.setBlock({x:m,y:b,z:v},g)}return c}function ia(r,e){switch(e||(r.get("Schematic")&&r.size===1&&(r=r.get("Schematic")),r.get("Materials")?e="mcedit":r.get("BlockData")||r.get("Blocks")?e="sponge":r.get("blocks")&&(e="structure")),e){case"sponge":switch(r.get("Version").value){case 1:case 2:return sl(r);case 3:return ol(r);default:throw new Error("Unsupported Sponge schematic version.")}case"structure":return cl(r);case"mcedit":switch(r.get("Materials")){case"Alpha":return ul(r);default:throw new Error("Unsupported MCEdit schematic version.")}default:throw new Error("Unsupported schematic format.")}}/**
983
+ \0`,de+=i(j,2),de+=T.magic,de+=i(D,2),de+=i(B,2),de+=i(ge.crc32,4),de+=i(ge.compressedSize,4),de+=i(ge.uncompressedSize,4),de+=i(V.length,2),de+=i(J.length,2),{fileRecord:v.LOCAL_FILE_HEADER+de+V+J,dirRecord:v.CENTRAL_FILE_HEADER+i(ve,2)+de+i(se.length,2)+"\0\0\0\0"+i(U,4)+i(y,4)+V+J+se}}var s=t("../utils"),c=t("../stream/GenericWorker"),m=t("../utf8"),b=t("../crc32"),v=t("../signature");function w(d,g,p,y){c.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=g,this.zipPlatform=p,this.encodeFileName=y,this.streamFiles=d,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(w,c),w.prototype.push=function(d){var g=d.meta.percent||0,p=this.entriesCount,y=this._sources.length;this.accumulate?this.contentBuffer.push(d):(this.bytesWritten+=d.data.length,c.prototype.push.call(this,{data:d.data,meta:{currentFile:this.currentFile,percent:p?(g+100*(p-y-1))/p:100}}))},w.prototype.openedSource=function(d){this.currentSourceOffset=this.bytesWritten,this.currentFile=d.file.name;var g=this.streamFiles&&!d.file.dir;if(g){var p=o(d,g,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:p.fileRecord,meta:{percent:0}})}else this.accumulate=!0},w.prototype.closedSource=function(d){this.accumulate=!1;var g=this.streamFiles&&!d.file.dir,p=o(d,g,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(p.dirRecord),g)this.push({data:function(y){return v.DATA_DESCRIPTOR+i(y.crc32,4)+i(y.compressedSize,4)+i(y.uncompressedSize,4)}(d),meta:{percent:100}});else for(this.push({data:p.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},w.prototype.flush=function(){for(var d=this.bytesWritten,g=0;g<this.dirRecords.length;g++)this.push({data:this.dirRecords[g],meta:{percent:100}});var p=this.bytesWritten-d,y=function(x,S,D,B,I){var T=s.transformTo("string",I(B));return v.CENTRAL_DIRECTORY_END+"\0\0\0\0"+i(x,2)+i(x,2)+i(S,4)+i(D,4)+i(T.length,2)+T}(this.dirRecords.length,p,d,this.zipComment,this.encodeFileName);this.push({data:y,meta:{percent:100}})},w.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},w.prototype.registerPrevious=function(d){this._sources.push(d);var g=this;return d.on("data",function(p){g.processChunk(p)}),d.on("end",function(){g.closedSource(g.previous.streamInfo),g._sources.length?g.prepareNextSource():g.end()}),d.on("error",function(p){g.error(p)}),this},w.prototype.resume=function(){return!!c.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},w.prototype.error=function(d){var g=this._sources;if(!c.prototype.error.call(this,d))return!1;for(var p=0;p<g.length;p++)try{g[p].error(d)}catch{}return!0},w.prototype.lock=function(){c.prototype.lock.call(this);for(var d=this._sources,g=0;g<d.length;g++)d[g].lock()},n.exports=w},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(t,n,a){var i=t("../compressions"),o=t("./ZipFileWorker");a.generateWorker=function(s,c,m){var b=new o(c.streamFiles,m,c.platform,c.encodeFileName),v=0;try{s.forEach(function(w,d){v++;var g=function(S,D){var B=S||D,I=i[B];if(!I)throw new Error(B+" is not a valid compression method !");return I}(d.options.compression,c.compression),p=d.options.compressionOptions||c.compressionOptions||{},y=d.dir,x=d.date;d._compressWorker(g,p).withStreamInfo("file",{name:w,dir:y,date:x,comment:d.comment||"",unixPermissions:d.unixPermissions,dosPermissions:d.dosPermissions}).pipe(b)}),b.entriesCount=v}catch(w){b.error(w)}return b}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(t,n,a){function i(){if(!(this instanceof i))return new i;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var o=new i;for(var s in this)typeof this[s]!="function"&&(o[s]=this[s]);return o}}(i.prototype=t("./object")).loadAsync=t("./load"),i.support=t("./support"),i.defaults=t("./defaults"),i.version="3.10.1",i.loadAsync=function(o,s){return new i().loadAsync(o,s)},i.external=t("./external"),n.exports=i},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(t,n,a){var i=t("./utils"),o=t("./external"),s=t("./utf8"),c=t("./zipEntries"),m=t("./stream/Crc32Probe"),b=t("./nodejsUtils");function v(w){return new o.Promise(function(d,g){var p=w.decompressed.getContentWorker().pipe(new m);p.on("error",function(y){g(y)}).on("end",function(){p.streamInfo.crc32!==w.decompressed.crc32?g(new Error("Corrupted zip : CRC32 mismatch")):d()}).resume()})}n.exports=function(w,d){var g=this;return d=i.extend(d||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),b.isNode&&b.isStream(w)?o.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):i.prepareContent("the loaded zip file",w,!0,d.optimizedBinaryString,d.base64).then(function(p){var y=new c(d);return y.load(p),y}).then(function(p){var y=[o.Promise.resolve(p)],x=p.files;if(d.checkCRC32)for(var S=0;S<x.length;S++)y.push(v(x[S]));return o.Promise.all(y)}).then(function(p){for(var y=p.shift(),x=y.files,S=0;S<x.length;S++){var D=x[S],B=D.fileNameStr,I=i.resolve(D.fileNameStr);g.file(I,D.decompressed,{binary:!0,optimizedBinaryString:!0,date:D.date,dir:D.dir,comment:D.fileCommentStr.length?D.fileCommentStr:null,unixPermissions:D.unixPermissions,dosPermissions:D.dosPermissions,createFolders:d.createFolders}),D.dir||(g.file(I).unsafeOriginalName=B)}return y.zipComment.length&&(g.comment=y.zipComment),g})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(t,n,a){var i=t("../utils"),o=t("../stream/GenericWorker");function s(c,m){o.call(this,"Nodejs stream input adapter for "+c),this._upstreamEnded=!1,this._bindStream(m)}i.inherits(s,o),s.prototype._bindStream=function(c){var m=this;(this._stream=c).pause(),c.on("data",function(b){m.push({data:b,meta:{percent:0}})}).on("error",function(b){m.isPaused?this.generatedError=b:m.error(b)}).on("end",function(){m.isPaused?m._upstreamEnded=!0:m.end()})},s.prototype.pause=function(){return!!o.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},n.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(t,n,a){var i=t("readable-stream").Readable;function o(s,c,m){i.call(this,c),this._helper=s;var b=this;s.on("data",function(v,w){b.push(v)||b._helper.pause(),m&&m(w)}).on("error",function(v){b.emit("error",v)}).on("end",function(){b.push(null)})}t("../utils").inherits(o,i),o.prototype._read=function(){this._helper.resume()},n.exports=o},{"../utils":32,"readable-stream":16}],14:[function(t,n,a){n.exports={isNode:typeof Buffer<"u",newBufferFrom:function(i,o){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(i,o);if(typeof i=="number")throw new Error('The "data" argument must not be a number');return new Buffer(i,o)},allocBuffer:function(i){if(Buffer.alloc)return Buffer.alloc(i);var o=new Buffer(i);return o.fill(0),o},isBuffer:function(i){return Buffer.isBuffer(i)},isStream:function(i){return i&&typeof i.on=="function"&&typeof i.pause=="function"&&typeof i.resume=="function"}}},{}],15:[function(t,n,a){function i(I,T,O){var V,W=s.getTypeOf(T),Z=s.extend(O||{},b);Z.date=Z.date||new Date,Z.compression!==null&&(Z.compression=Z.compression.toUpperCase()),typeof Z.unixPermissions=="string"&&(Z.unixPermissions=parseInt(Z.unixPermissions,8)),Z.unixPermissions&&16384&Z.unixPermissions&&(Z.dir=!0),Z.dosPermissions&&16&Z.dosPermissions&&(Z.dir=!0),Z.dir&&(I=x(I)),Z.createFolders&&(V=y(I))&&S.call(this,V,!0);var se=W==="string"&&Z.binary===!1&&Z.base64===!1;O&&O.binary!==void 0||(Z.binary=!se),(T instanceof v&&T.uncompressedSize===0||Z.dir||!T||T.length===0)&&(Z.base64=!1,Z.binary=!0,T="",Z.compression="STORE",W="string");var P=null;P=T instanceof v||T instanceof c?T:g.isNode&&g.isStream(T)?new p(I,T):s.prepareContent(I,T,Z.binary,Z.optimizedBinaryString,Z.base64);var X=new w(I,P,Z);this.files[I]=X}var o=t("./utf8"),s=t("./utils"),c=t("./stream/GenericWorker"),m=t("./stream/StreamHelper"),b=t("./defaults"),v=t("./compressedObject"),w=t("./zipObject"),d=t("./generate"),g=t("./nodejsUtils"),p=t("./nodejs/NodejsStreamInputAdapter"),y=function(I){I.slice(-1)==="/"&&(I=I.substring(0,I.length-1));var T=I.lastIndexOf("/");return 0<T?I.substring(0,T):""},x=function(I){return I.slice(-1)!=="/"&&(I+="/"),I},S=function(I,T){return T=T!==void 0?T:b.createFolders,I=x(I),this.files[I]||i.call(this,I,null,{dir:!0,createFolders:T}),this.files[I]};function D(I){return Object.prototype.toString.call(I)==="[object RegExp]"}var B={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(I){var T,O,V;for(T in this.files)V=this.files[T],(O=T.slice(this.root.length,T.length))&&T.slice(0,this.root.length)===this.root&&I(O,V)},filter:function(I){var T=[];return this.forEach(function(O,V){I(O,V)&&T.push(V)}),T},file:function(I,T,O){if(arguments.length!==1)return I=this.root+I,i.call(this,I,T,O),this;if(D(I)){var V=I;return this.filter(function(Z,se){return!se.dir&&V.test(Z)})}var W=this.files[this.root+I];return W&&!W.dir?W:null},folder:function(I){if(!I)return this;if(D(I))return this.filter(function(W,Z){return Z.dir&&I.test(W)});var T=this.root+I,O=S.call(this,T),V=this.clone();return V.root=O.name,V},remove:function(I){I=this.root+I;var T=this.files[I];if(T||(I.slice(-1)!=="/"&&(I+="/"),T=this.files[I]),T&&!T.dir)delete this.files[I];else for(var O=this.filter(function(W,Z){return Z.name.slice(0,I.length)===I}),V=0;V<O.length;V++)delete this.files[O[V].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(I){var T,O={};try{if((O=s.extend(I||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:o.utf8encode})).type=O.type.toLowerCase(),O.compression=O.compression.toUpperCase(),O.type==="binarystring"&&(O.type="string"),!O.type)throw new Error("No output type specified.");s.checkSupport(O.type),O.platform!=="darwin"&&O.platform!=="freebsd"&&O.platform!=="linux"&&O.platform!=="sunos"||(O.platform="UNIX"),O.platform==="win32"&&(O.platform="DOS");var V=O.comment||this.comment||"";T=d.generateWorker(this,O,V)}catch(W){(T=new c("error")).error(W)}return new m(T,O.type||"string",O.mimeType)},generateAsync:function(I,T){return this.generateInternalStream(I).accumulate(T)},generateNodeStream:function(I,T){return(I=I||{}).type||(I.type="nodebuffer"),this.generateInternalStream(I).toNodejsStream(T)}};n.exports=B},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(t,n,a){n.exports=t("stream")},{stream:void 0}],17:[function(t,n,a){var i=t("./DataReader");function o(s){i.call(this,s);for(var c=0;c<this.data.length;c++)s[c]=255&s[c]}t("../utils").inherits(o,i),o.prototype.byteAt=function(s){return this.data[this.zero+s]},o.prototype.lastIndexOfSignature=function(s){for(var c=s.charCodeAt(0),m=s.charCodeAt(1),b=s.charCodeAt(2),v=s.charCodeAt(3),w=this.length-4;0<=w;--w)if(this.data[w]===c&&this.data[w+1]===m&&this.data[w+2]===b&&this.data[w+3]===v)return w-this.zero;return-1},o.prototype.readAndCheckSignature=function(s){var c=s.charCodeAt(0),m=s.charCodeAt(1),b=s.charCodeAt(2),v=s.charCodeAt(3),w=this.readData(4);return c===w[0]&&m===w[1]&&b===w[2]&&v===w[3]},o.prototype.readData=function(s){if(this.checkOffset(s),s===0)return[];var c=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},n.exports=o},{"../utils":32,"./DataReader":18}],18:[function(t,n,a){var i=t("../utils");function o(s){this.data=s,this.length=s.length,this.index=0,this.zero=0}o.prototype={checkOffset:function(s){this.checkIndex(this.index+s)},checkIndex:function(s){if(this.length<this.zero+s||s<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+s+"). Corrupted zip ?")},setIndex:function(s){this.checkIndex(s),this.index=s},skip:function(s){this.setIndex(this.index+s)},byteAt:function(){},readInt:function(s){var c,m=0;for(this.checkOffset(s),c=this.index+s-1;c>=this.index;c--)m=(m<<8)+this.byteAt(c);return this.index+=s,m},readString:function(s){return i.transformTo("string",this.readData(s))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var s=this.readInt(4);return new Date(Date.UTC(1980+(s>>25&127),(s>>21&15)-1,s>>16&31,s>>11&31,s>>5&63,(31&s)<<1))}},n.exports=o},{"../utils":32}],19:[function(t,n,a){var i=t("./Uint8ArrayReader");function o(s){i.call(this,s)}t("../utils").inherits(o,i),o.prototype.readData=function(s){this.checkOffset(s);var c=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},n.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,n,a){var i=t("./DataReader");function o(s){i.call(this,s)}t("../utils").inherits(o,i),o.prototype.byteAt=function(s){return this.data.charCodeAt(this.zero+s)},o.prototype.lastIndexOfSignature=function(s){return this.data.lastIndexOf(s)-this.zero},o.prototype.readAndCheckSignature=function(s){return s===this.readData(4)},o.prototype.readData=function(s){this.checkOffset(s);var c=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},n.exports=o},{"../utils":32,"./DataReader":18}],21:[function(t,n,a){var i=t("./ArrayReader");function o(s){i.call(this,s)}t("../utils").inherits(o,i),o.prototype.readData=function(s){if(this.checkOffset(s),s===0)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},n.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(t,n,a){var i=t("../utils"),o=t("../support"),s=t("./ArrayReader"),c=t("./StringReader"),m=t("./NodeBufferReader"),b=t("./Uint8ArrayReader");n.exports=function(v){var w=i.getTypeOf(v);return i.checkSupport(w),w!=="string"||o.uint8array?w==="nodebuffer"?new m(v):o.uint8array?new b(i.transformTo("uint8array",v)):new s(i.transformTo("array",v)):new c(v)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,n,a){a.LOCAL_FILE_HEADER="PK",a.CENTRAL_FILE_HEADER="PK",a.CENTRAL_DIRECTORY_END="PK",a.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",a.ZIP64_CENTRAL_DIRECTORY_END="PK",a.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(t,n,a){var i=t("./GenericWorker"),o=t("../utils");function s(c){i.call(this,"ConvertWorker to "+c),this.destType=c}o.inherits(s,i),s.prototype.processChunk=function(c){this.push({data:o.transformTo(this.destType,c.data),meta:c.meta})},n.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,n,a){var i=t("./GenericWorker"),o=t("../crc32");function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,i),s.prototype.processChunk=function(c){this.streamInfo.crc32=o(c.data,this.streamInfo.crc32||0),this.push(c)},n.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,n,a){var i=t("../utils"),o=t("./GenericWorker");function s(c){o.call(this,"DataLengthProbe for "+c),this.propName=c,this.withStreamInfo(c,0)}i.inherits(s,o),s.prototype.processChunk=function(c){if(c){var m=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=m+c.data.length}o.prototype.processChunk.call(this,c)},n.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,n,a){var i=t("../utils"),o=t("./GenericWorker");function s(c){o.call(this,"DataWorker");var m=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,c.then(function(b){m.dataIsReady=!0,m.data=b,m.max=b&&b.length||0,m.type=i.getTypeOf(b),m.isPaused||m._tickAndRepeat()},function(b){m.error(b)})}i.inherits(s,o),s.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var c=null,m=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":c=this.data.substring(this.index,m);break;case"uint8array":c=this.data.subarray(this.index,m);break;case"array":case"nodebuffer":c=this.data.slice(this.index,m)}return this.index=m,this.push({data:c,meta:{percent:this.max?this.index/this.max*100:0}})},n.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,n,a){function i(o){this.name=o||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(o){this.emit("data",o)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(o){this.emit("error",o)}return!0},error:function(o){return!this.isFinished&&(this.isPaused?this.generatedError=o:(this.isFinished=!0,this.emit("error",o),this.previous&&this.previous.error(o),this.cleanUp()),!0)},on:function(o,s){return this._listeners[o].push(s),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(o,s){if(this._listeners[o])for(var c=0;c<this._listeners[o].length;c++)this._listeners[o][c].call(this,s)},pipe:function(o){return o.registerPrevious(this)},registerPrevious:function(o){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=o.streamInfo,this.mergeStreamInfo(),this.previous=o;var s=this;return o.on("data",function(c){s.processChunk(c)}),o.on("end",function(){s.end()}),o.on("error",function(c){s.error(c)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var o=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),o=!0),this.previous&&this.previous.resume(),!o},flush:function(){},processChunk:function(o){this.push(o)},withStreamInfo:function(o,s){return this.extraStreamInfo[o]=s,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var o in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,o)&&(this.streamInfo[o]=this.extraStreamInfo[o])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var o="Worker "+this.name;return this.previous?this.previous+" -> "+o:o}},n.exports=i},{}],29:[function(t,n,a){var i=t("../utils"),o=t("./ConvertWorker"),s=t("./GenericWorker"),c=t("../base64"),m=t("../support"),b=t("../external"),v=null;if(m.nodestream)try{v=t("../nodejs/NodejsStreamOutputAdapter")}catch{}function w(g,p){return new b.Promise(function(y,x){var S=[],D=g._internalType,B=g._outputType,I=g._mimeType;g.on("data",function(T,O){S.push(T),p&&p(O)}).on("error",function(T){S=[],x(T)}).on("end",function(){try{var T=function(O,V,W){switch(O){case"blob":return i.newBlob(i.transformTo("arraybuffer",V),W);case"base64":return c.encode(V);default:return i.transformTo(O,V)}}(B,function(O,V){var W,Z=0,se=null,P=0;for(W=0;W<V.length;W++)P+=V[W].length;switch(O){case"string":return V.join("");case"array":return Array.prototype.concat.apply([],V);case"uint8array":for(se=new Uint8Array(P),W=0;W<V.length;W++)se.set(V[W],Z),Z+=V[W].length;return se;case"nodebuffer":return Buffer.concat(V);default:throw new Error("concat : unsupported type '"+O+"'")}}(D,S),I);y(T)}catch(O){x(O)}S=[]}).resume()})}function d(g,p,y){var x=p;switch(p){case"blob":case"arraybuffer":x="uint8array";break;case"base64":x="string"}try{this._internalType=x,this._outputType=p,this._mimeType=y,i.checkSupport(x),this._worker=g.pipe(new o(x)),g.lock()}catch(S){this._worker=new s("error"),this._worker.error(S)}}d.prototype={accumulate:function(g){return w(this,g)},on:function(g,p){var y=this;return g==="data"?this._worker.on(g,function(x){p.call(y,x.data,x.meta)}):this._worker.on(g,function(){i.delay(p,arguments,y)}),this},resume:function(){return i.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(g){if(i.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new v(this,{objectMode:this._outputType!=="nodebuffer"},g)}},n.exports=d},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(t,n,a){if(a.base64=!0,a.array=!0,a.string=!0,a.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",a.nodebuffer=typeof Buffer<"u",a.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")a.blob=!1;else{var i=new ArrayBuffer(0);try{a.blob=new Blob([i],{type:"application/zip"}).size===0}catch{try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(i),a.blob=o.getBlob("application/zip").size===0}catch{a.blob=!1}}}try{a.nodestream=!!t("readable-stream").Readable}catch{a.nodestream=!1}},{"readable-stream":16}],31:[function(t,n,a){for(var i=t("./utils"),o=t("./support"),s=t("./nodejsUtils"),c=t("./stream/GenericWorker"),m=new Array(256),b=0;b<256;b++)m[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;m[254]=m[254]=1;function v(){c.call(this,"utf-8 decode"),this.leftOver=null}function w(){c.call(this,"utf-8 encode")}a.utf8encode=function(d){return o.nodebuffer?s.newBufferFrom(d,"utf-8"):function(g){var p,y,x,S,D,B=g.length,I=0;for(S=0;S<B;S++)(64512&(y=g.charCodeAt(S)))==55296&&S+1<B&&(64512&(x=g.charCodeAt(S+1)))==56320&&(y=65536+(y-55296<<10)+(x-56320),S++),I+=y<128?1:y<2048?2:y<65536?3:4;for(p=o.uint8array?new Uint8Array(I):new Array(I),S=D=0;D<I;S++)(64512&(y=g.charCodeAt(S)))==55296&&S+1<B&&(64512&(x=g.charCodeAt(S+1)))==56320&&(y=65536+(y-55296<<10)+(x-56320),S++),y<128?p[D++]=y:(y<2048?p[D++]=192|y>>>6:(y<65536?p[D++]=224|y>>>12:(p[D++]=240|y>>>18,p[D++]=128|y>>>12&63),p[D++]=128|y>>>6&63),p[D++]=128|63&y);return p}(d)},a.utf8decode=function(d){return o.nodebuffer?i.transformTo("nodebuffer",d).toString("utf-8"):function(g){var p,y,x,S,D=g.length,B=new Array(2*D);for(p=y=0;p<D;)if((x=g[p++])<128)B[y++]=x;else if(4<(S=m[x]))B[y++]=65533,p+=S-1;else{for(x&=S===2?31:S===3?15:7;1<S&&p<D;)x=x<<6|63&g[p++],S--;1<S?B[y++]=65533:x<65536?B[y++]=x:(x-=65536,B[y++]=55296|x>>10&1023,B[y++]=56320|1023&x)}return B.length!==y&&(B.subarray?B=B.subarray(0,y):B.length=y),i.applyFromCharCode(B)}(d=i.transformTo(o.uint8array?"uint8array":"array",d))},i.inherits(v,c),v.prototype.processChunk=function(d){var g=i.transformTo(o.uint8array?"uint8array":"array",d.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var p=g;(g=new Uint8Array(p.length+this.leftOver.length)).set(this.leftOver,0),g.set(p,this.leftOver.length)}else g=this.leftOver.concat(g);this.leftOver=null}var y=function(S,D){var B;for((D=D||S.length)>S.length&&(D=S.length),B=D-1;0<=B&&(192&S[B])==128;)B--;return B<0||B===0?D:B+m[S[B]]>D?B:D}(g),x=g;y!==g.length&&(o.uint8array?(x=g.subarray(0,y),this.leftOver=g.subarray(y,g.length)):(x=g.slice(0,y),this.leftOver=g.slice(y,g.length))),this.push({data:a.utf8decode(x),meta:d.meta})},v.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:a.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},a.Utf8DecodeWorker=v,i.inherits(w,c),w.prototype.processChunk=function(d){this.push({data:a.utf8encode(d.data),meta:d.meta})},a.Utf8EncodeWorker=w},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,n,a){var i=t("./support"),o=t("./base64"),s=t("./nodejsUtils"),c=t("./external");function m(p){return p}function b(p,y){for(var x=0;x<p.length;++x)y[x]=255&p.charCodeAt(x);return y}t("setimmediate"),a.newBlob=function(p,y){a.checkSupport("blob");try{return new Blob([p],{type:y})}catch{try{var x=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return x.append(p),x.getBlob(y)}catch{throw new Error("Bug : can't construct the Blob.")}}};var v={stringifyByChunk:function(p,y,x){var S=[],D=0,B=p.length;if(B<=x)return String.fromCharCode.apply(null,p);for(;D<B;)y==="array"||y==="nodebuffer"?S.push(String.fromCharCode.apply(null,p.slice(D,Math.min(D+x,B)))):S.push(String.fromCharCode.apply(null,p.subarray(D,Math.min(D+x,B)))),D+=x;return S.join("")},stringifyByChar:function(p){for(var y="",x=0;x<p.length;x++)y+=String.fromCharCode(p[x]);return y},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&String.fromCharCode.apply(null,s.allocBuffer(1)).length===1}catch{return!1}}()}};function w(p){var y=65536,x=a.getTypeOf(p),S=!0;if(x==="uint8array"?S=v.applyCanBeUsed.uint8array:x==="nodebuffer"&&(S=v.applyCanBeUsed.nodebuffer),S)for(;1<y;)try{return v.stringifyByChunk(p,x,y)}catch{y=Math.floor(y/2)}return v.stringifyByChar(p)}function d(p,y){for(var x=0;x<p.length;x++)y[x]=p[x];return y}a.applyFromCharCode=w;var g={};g.string={string:m,array:function(p){return b(p,new Array(p.length))},arraybuffer:function(p){return g.string.uint8array(p).buffer},uint8array:function(p){return b(p,new Uint8Array(p.length))},nodebuffer:function(p){return b(p,s.allocBuffer(p.length))}},g.array={string:w,array:m,arraybuffer:function(p){return new Uint8Array(p).buffer},uint8array:function(p){return new Uint8Array(p)},nodebuffer:function(p){return s.newBufferFrom(p)}},g.arraybuffer={string:function(p){return w(new Uint8Array(p))},array:function(p){return d(new Uint8Array(p),new Array(p.byteLength))},arraybuffer:m,uint8array:function(p){return new Uint8Array(p)},nodebuffer:function(p){return s.newBufferFrom(new Uint8Array(p))}},g.uint8array={string:w,array:function(p){return d(p,new Array(p.length))},arraybuffer:function(p){return p.buffer},uint8array:m,nodebuffer:function(p){return s.newBufferFrom(p)}},g.nodebuffer={string:w,array:function(p){return d(p,new Array(p.length))},arraybuffer:function(p){return g.nodebuffer.uint8array(p).buffer},uint8array:function(p){return d(p,new Uint8Array(p.length))},nodebuffer:m},a.transformTo=function(p,y){if(y=y||"",!p)return y;a.checkSupport(p);var x=a.getTypeOf(y);return g[x][p](y)},a.resolve=function(p){for(var y=p.split("/"),x=[],S=0;S<y.length;S++){var D=y[S];D==="."||D===""&&S!==0&&S!==y.length-1||(D===".."?x.pop():x.push(D))}return x.join("/")},a.getTypeOf=function(p){return typeof p=="string"?"string":Object.prototype.toString.call(p)==="[object Array]"?"array":i.nodebuffer&&s.isBuffer(p)?"nodebuffer":i.uint8array&&p instanceof Uint8Array?"uint8array":i.arraybuffer&&p instanceof ArrayBuffer?"arraybuffer":void 0},a.checkSupport=function(p){if(!i[p.toLowerCase()])throw new Error(p+" is not supported by this platform")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(p){var y,x,S="";for(x=0;x<(p||"").length;x++)S+="\\x"+((y=p.charCodeAt(x))<16?"0":"")+y.toString(16).toUpperCase();return S},a.delay=function(p,y,x){setImmediate(function(){p.apply(x||null,y||[])})},a.inherits=function(p,y){function x(){}x.prototype=y.prototype,p.prototype=new x},a.extend=function(){var p,y,x={};for(p=0;p<arguments.length;p++)for(y in arguments[p])Object.prototype.hasOwnProperty.call(arguments[p],y)&&x[y]===void 0&&(x[y]=arguments[p][y]);return x},a.prepareContent=function(p,y,x,S,D){return c.Promise.resolve(y).then(function(B){return i.blob&&(B instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(B))!==-1)&&typeof FileReader<"u"?new c.Promise(function(I,T){var O=new FileReader;O.onload=function(V){I(V.target.result)},O.onerror=function(V){T(V.target.error)},O.readAsArrayBuffer(B)}):B}).then(function(B){var I=a.getTypeOf(B);return I?(I==="arraybuffer"?B=a.transformTo("uint8array",B):I==="string"&&(D?B=o.decode(B):x&&S!==!0&&(B=function(T){return b(T,i.uint8array?new Uint8Array(T.length):new Array(T.length))}(B))),B):c.Promise.reject(new Error("Can't read the data of '"+p+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(t,n,a){var i=t("./reader/readerFor"),o=t("./utils"),s=t("./signature"),c=t("./zipEntry"),m=t("./support");function b(v){this.files=[],this.loadOptions=v}b.prototype={checkSignature:function(v){if(!this.reader.readAndCheckSignature(v)){this.reader.index-=4;var w=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+o.pretty(w)+", expected "+o.pretty(v)+")")}},isSignature:function(v,w){var d=this.reader.index;this.reader.setIndex(v);var g=this.reader.readString(4)===w;return this.reader.setIndex(d),g},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var v=this.reader.readData(this.zipCommentLength),w=m.uint8array?"uint8array":"array",d=o.transformTo(w,v);this.zipComment=this.loadOptions.decodeFileName(d)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var v,w,d,g=this.zip64EndOfCentralSize-44;0<g;)v=this.reader.readInt(2),w=this.reader.readInt(4),d=this.reader.readData(w),this.zip64ExtensibleData[v]={id:v,length:w,value:d}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var v,w;for(v=0;v<this.files.length;v++)w=this.files[v],this.reader.setIndex(w.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),w.readLocalPart(this.reader),w.handleUTF8(),w.processAttributes()},readCentralDir:function(){var v;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(v=new c({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(v);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var v=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(v<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(v);var w=v;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===o.MAX_VALUE_16BITS||this.diskWithCentralDirStart===o.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===o.MAX_VALUE_16BITS||this.centralDirRecords===o.MAX_VALUE_16BITS||this.centralDirSize===o.MAX_VALUE_32BITS||this.centralDirOffset===o.MAX_VALUE_32BITS){if(this.zip64=!0,(v=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(v),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var g=w-d;if(0<g)this.isSignature(w,s.CENTRAL_FILE_HEADER)||(this.reader.zero=g);else if(g<0)throw new Error("Corrupted zip: missing "+Math.abs(g)+" bytes.")},prepareReader:function(v){this.reader=i(v)},load:function(v){this.prepareReader(v),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},n.exports=b},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(t,n,a){var i=t("./reader/readerFor"),o=t("./utils"),s=t("./compressedObject"),c=t("./crc32"),m=t("./utf8"),b=t("./compressions"),v=t("./support");function w(d,g){this.options=d,this.loadOptions=g}w.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(d){var g,p;if(d.skip(22),this.fileNameLength=d.readInt(2),p=d.readInt(2),this.fileName=d.readData(this.fileNameLength),d.skip(p),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((g=function(y){for(var x in b)if(Object.prototype.hasOwnProperty.call(b,x)&&b[x].magic===y)return b[x];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+o.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,g,d.readData(this.compressedSize))},readCentralPart:function(d){this.versionMadeBy=d.readInt(2),d.skip(2),this.bitFlag=d.readInt(2),this.compressionMethod=d.readString(2),this.date=d.readDate(),this.crc32=d.readInt(4),this.compressedSize=d.readInt(4),this.uncompressedSize=d.readInt(4);var g=d.readInt(2);if(this.extraFieldsLength=d.readInt(2),this.fileCommentLength=d.readInt(2),this.diskNumberStart=d.readInt(2),this.internalFileAttributes=d.readInt(2),this.externalFileAttributes=d.readInt(4),this.localHeaderOffset=d.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");d.skip(g),this.readExtraFields(d),this.parseZIP64ExtraField(d),this.fileComment=d.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var d=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),d==0&&(this.dosPermissions=63&this.externalFileAttributes),d==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var d=i(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=d.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=d.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=d.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=d.readInt(4))}},readExtraFields:function(d){var g,p,y,x=d.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});d.index+4<x;)g=d.readInt(2),p=d.readInt(2),y=d.readData(p),this.extraFields[g]={id:g,length:p,value:y};d.setIndex(x)},handleUTF8:function(){var d=v.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=m.utf8decode(this.fileName),this.fileCommentStr=m.utf8decode(this.fileComment);else{var g=this.findExtraFieldUnicodePath();if(g!==null)this.fileNameStr=g;else{var p=o.transformTo(d,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(p)}var y=this.findExtraFieldUnicodeComment();if(y!==null)this.fileCommentStr=y;else{var x=o.transformTo(d,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(x)}}},findExtraFieldUnicodePath:function(){var d=this.extraFields[28789];if(d){var g=i(d.value);return g.readInt(1)!==1||c(this.fileName)!==g.readInt(4)?null:m.utf8decode(g.readData(d.length-5))}return null},findExtraFieldUnicodeComment:function(){var d=this.extraFields[25461];if(d){var g=i(d.value);return g.readInt(1)!==1||c(this.fileComment)!==g.readInt(4)?null:m.utf8decode(g.readData(d.length-5))}return null}},n.exports=w},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(t,n,a){function i(g,p,y){this.name=g,this.dir=y.dir,this.date=y.date,this.comment=y.comment,this.unixPermissions=y.unixPermissions,this.dosPermissions=y.dosPermissions,this._data=p,this._dataBinary=y.binary,this.options={compression:y.compression,compressionOptions:y.compressionOptions}}var o=t("./stream/StreamHelper"),s=t("./stream/DataWorker"),c=t("./utf8"),m=t("./compressedObject"),b=t("./stream/GenericWorker");i.prototype={internalStream:function(g){var p=null,y="string";try{if(!g)throw new Error("No output type specified.");var x=(y=g.toLowerCase())==="string"||y==="text";y!=="binarystring"&&y!=="text"||(y="string"),p=this._decompressWorker();var S=!this._dataBinary;S&&!x&&(p=p.pipe(new c.Utf8EncodeWorker)),!S&&x&&(p=p.pipe(new c.Utf8DecodeWorker))}catch(D){(p=new b("error")).error(D)}return new o(p,y,"")},async:function(g,p){return this.internalStream(g).accumulate(p)},nodeStream:function(g,p){return this.internalStream(g||"nodebuffer").toNodejsStream(p)},_compressWorker:function(g,p){if(this._data instanceof m&&this._data.compression.magic===g.magic)return this._data.getCompressedWorker();var y=this._decompressWorker();return this._dataBinary||(y=y.pipe(new c.Utf8EncodeWorker)),m.createWorkerFrom(y,g,p)},_decompressWorker:function(){return this._data instanceof m?this._data.getContentWorker():this._data instanceof b?this._data:new s(this._data)}};for(var v=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],w=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},d=0;d<v.length;d++)i.prototype[v[d]]=w;n.exports=i},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(t,n,a){(function(i){var o,s,c=i.MutationObserver||i.WebKitMutationObserver;if(c){var m=0,b=new c(g),v=i.document.createTextNode("");b.observe(v,{characterData:!0}),o=function(){v.data=m=++m%2}}else if(i.setImmediate||i.MessageChannel===void 0)o="document"in i&&"onreadystatechange"in i.document.createElement("script")?function(){var p=i.document.createElement("script");p.onreadystatechange=function(){g(),p.onreadystatechange=null,p.parentNode.removeChild(p),p=null},i.document.documentElement.appendChild(p)}:function(){setTimeout(g,0)};else{var w=new i.MessageChannel;w.port1.onmessage=g,o=function(){w.port2.postMessage(0)}}var d=[];function g(){var p,y;s=!0;for(var x=d.length;x;){for(y=d,d=[],p=-1;++p<x;)y[p]();x=d.length}s=!1}n.exports=function(p){d.push(p)!==1||s||o()}}).call(this,typeof Ut<"u"?Ut:typeof self<"u"?self:typeof window<"u"?window:{})},{}],37:[function(t,n,a){var i=t("immediate");function o(){}var s={},c=["REJECTED"],m=["FULFILLED"],b=["PENDING"];function v(x){if(typeof x!="function")throw new TypeError("resolver must be a function");this.state=b,this.queue=[],this.outcome=void 0,x!==o&&p(this,x)}function w(x,S,D){this.promise=x,typeof S=="function"&&(this.onFulfilled=S,this.callFulfilled=this.otherCallFulfilled),typeof D=="function"&&(this.onRejected=D,this.callRejected=this.otherCallRejected)}function d(x,S,D){i(function(){var B;try{B=S(D)}catch(I){return s.reject(x,I)}B===x?s.reject(x,new TypeError("Cannot resolve promise with itself")):s.resolve(x,B)})}function g(x){var S=x&&x.then;if(x&&(typeof x=="object"||typeof x=="function")&&typeof S=="function")return function(){S.apply(x,arguments)}}function p(x,S){var D=!1;function B(O){D||(D=!0,s.reject(x,O))}function I(O){D||(D=!0,s.resolve(x,O))}var T=y(function(){S(I,B)});T.status==="error"&&B(T.value)}function y(x,S){var D={};try{D.value=x(S),D.status="success"}catch(B){D.status="error",D.value=B}return D}(n.exports=v).prototype.finally=function(x){if(typeof x!="function")return this;var S=this.constructor;return this.then(function(D){return S.resolve(x()).then(function(){return D})},function(D){return S.resolve(x()).then(function(){throw D})})},v.prototype.catch=function(x){return this.then(null,x)},v.prototype.then=function(x,S){if(typeof x!="function"&&this.state===m||typeof S!="function"&&this.state===c)return this;var D=new this.constructor(o);return this.state!==b?d(D,this.state===m?x:S,this.outcome):this.queue.push(new w(D,x,S)),D},w.prototype.callFulfilled=function(x){s.resolve(this.promise,x)},w.prototype.otherCallFulfilled=function(x){d(this.promise,this.onFulfilled,x)},w.prototype.callRejected=function(x){s.reject(this.promise,x)},w.prototype.otherCallRejected=function(x){d(this.promise,this.onRejected,x)},s.resolve=function(x,S){var D=y(g,S);if(D.status==="error")return s.reject(x,D.value);var B=D.value;if(B)p(x,B);else{x.state=m,x.outcome=S;for(var I=-1,T=x.queue.length;++I<T;)x.queue[I].callFulfilled(S)}return x},s.reject=function(x,S){x.state=c,x.outcome=S;for(var D=-1,B=x.queue.length;++D<B;)x.queue[D].callRejected(S);return x},v.resolve=function(x){return x instanceof this?x:s.resolve(new this(o),x)},v.reject=function(x){var S=new this(o);return s.reject(S,x)},v.all=function(x){var S=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var D=x.length,B=!1;if(!D)return this.resolve([]);for(var I=new Array(D),T=0,O=-1,V=new this(o);++O<D;)W(x[O],O);return V;function W(Z,se){S.resolve(Z).then(function(P){I[se]=P,++T!==D||B||(B=!0,s.resolve(V,I))},function(P){B||(B=!0,s.reject(V,P))})}},v.race=function(x){var S=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var D=x.length,B=!1;if(!D)return this.resolve([]);for(var I=-1,T=new this(o);++I<D;)O=x[I],S.resolve(O).then(function(V){B||(B=!0,s.resolve(T,V))},function(V){B||(B=!0,s.reject(T,V))});var O;return T}},{immediate:36}],38:[function(t,n,a){var i={};(0,t("./lib/utils/common").assign)(i,t("./lib/deflate"),t("./lib/inflate"),t("./lib/zlib/constants")),n.exports=i},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(t,n,a){var i=t("./zlib/deflate"),o=t("./utils/common"),s=t("./utils/strings"),c=t("./zlib/messages"),m=t("./zlib/zstream"),b=Object.prototype.toString,v=0,w=-1,d=0,g=8;function p(x){if(!(this instanceof p))return new p(x);this.options=o.assign({level:w,method:g,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:""},x||{});var S=this.options;S.raw&&0<S.windowBits?S.windowBits=-S.windowBits:S.gzip&&0<S.windowBits&&S.windowBits<16&&(S.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new m,this.strm.avail_out=0;var D=i.deflateInit2(this.strm,S.level,S.method,S.windowBits,S.memLevel,S.strategy);if(D!==v)throw new Error(c[D]);if(S.header&&i.deflateSetHeader(this.strm,S.header),S.dictionary){var B;if(B=typeof S.dictionary=="string"?s.string2buf(S.dictionary):b.call(S.dictionary)==="[object ArrayBuffer]"?new Uint8Array(S.dictionary):S.dictionary,(D=i.deflateSetDictionary(this.strm,B))!==v)throw new Error(c[D]);this._dict_set=!0}}function y(x,S){var D=new p(S);if(D.push(x,!0),D.err)throw D.msg||c[D.err];return D.result}p.prototype.push=function(x,S){var D,B,I=this.strm,T=this.options.chunkSize;if(this.ended)return!1;B=S===~~S?S:S===!0?4:0,typeof x=="string"?I.input=s.string2buf(x):b.call(x)==="[object ArrayBuffer]"?I.input=new Uint8Array(x):I.input=x,I.next_in=0,I.avail_in=I.input.length;do{if(I.avail_out===0&&(I.output=new o.Buf8(T),I.next_out=0,I.avail_out=T),(D=i.deflate(I,B))!==1&&D!==v)return this.onEnd(D),!(this.ended=!0);I.avail_out!==0&&(I.avail_in!==0||B!==4&&B!==2)||(this.options.to==="string"?this.onData(s.buf2binstring(o.shrinkBuf(I.output,I.next_out))):this.onData(o.shrinkBuf(I.output,I.next_out)))}while((0<I.avail_in||I.avail_out===0)&&D!==1);return B===4?(D=i.deflateEnd(this.strm),this.onEnd(D),this.ended=!0,D===v):B!==2||(this.onEnd(v),!(I.avail_out=0))},p.prototype.onData=function(x){this.chunks.push(x)},p.prototype.onEnd=function(x){x===v&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=x,this.msg=this.strm.msg},a.Deflate=p,a.deflate=y,a.deflateRaw=function(x,S){return(S=S||{}).raw=!0,y(x,S)},a.gzip=function(x,S){return(S=S||{}).gzip=!0,y(x,S)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(t,n,a){var i=t("./zlib/inflate"),o=t("./utils/common"),s=t("./utils/strings"),c=t("./zlib/constants"),m=t("./zlib/messages"),b=t("./zlib/zstream"),v=t("./zlib/gzheader"),w=Object.prototype.toString;function d(p){if(!(this instanceof d))return new d(p);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},p||{});var y=this.options;y.raw&&0<=y.windowBits&&y.windowBits<16&&(y.windowBits=-y.windowBits,y.windowBits===0&&(y.windowBits=-15)),!(0<=y.windowBits&&y.windowBits<16)||p&&p.windowBits||(y.windowBits+=32),15<y.windowBits&&y.windowBits<48&&!(15&y.windowBits)&&(y.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new b,this.strm.avail_out=0;var x=i.inflateInit2(this.strm,y.windowBits);if(x!==c.Z_OK)throw new Error(m[x]);this.header=new v,i.inflateGetHeader(this.strm,this.header)}function g(p,y){var x=new d(y);if(x.push(p,!0),x.err)throw x.msg||m[x.err];return x.result}d.prototype.push=function(p,y){var x,S,D,B,I,T,O=this.strm,V=this.options.chunkSize,W=this.options.dictionary,Z=!1;if(this.ended)return!1;S=y===~~y?y:y===!0?c.Z_FINISH:c.Z_NO_FLUSH,typeof p=="string"?O.input=s.binstring2buf(p):w.call(p)==="[object ArrayBuffer]"?O.input=new Uint8Array(p):O.input=p,O.next_in=0,O.avail_in=O.input.length;do{if(O.avail_out===0&&(O.output=new o.Buf8(V),O.next_out=0,O.avail_out=V),(x=i.inflate(O,c.Z_NO_FLUSH))===c.Z_NEED_DICT&&W&&(T=typeof W=="string"?s.string2buf(W):w.call(W)==="[object ArrayBuffer]"?new Uint8Array(W):W,x=i.inflateSetDictionary(this.strm,T)),x===c.Z_BUF_ERROR&&Z===!0&&(x=c.Z_OK,Z=!1),x!==c.Z_STREAM_END&&x!==c.Z_OK)return this.onEnd(x),!(this.ended=!0);O.next_out&&(O.avail_out!==0&&x!==c.Z_STREAM_END&&(O.avail_in!==0||S!==c.Z_FINISH&&S!==c.Z_SYNC_FLUSH)||(this.options.to==="string"?(D=s.utf8border(O.output,O.next_out),B=O.next_out-D,I=s.buf2string(O.output,D),O.next_out=B,O.avail_out=V-B,B&&o.arraySet(O.output,O.output,D,B,0),this.onData(I)):this.onData(o.shrinkBuf(O.output,O.next_out)))),O.avail_in===0&&O.avail_out===0&&(Z=!0)}while((0<O.avail_in||O.avail_out===0)&&x!==c.Z_STREAM_END);return x===c.Z_STREAM_END&&(S=c.Z_FINISH),S===c.Z_FINISH?(x=i.inflateEnd(this.strm),this.onEnd(x),this.ended=!0,x===c.Z_OK):S!==c.Z_SYNC_FLUSH||(this.onEnd(c.Z_OK),!(O.avail_out=0))},d.prototype.onData=function(p){this.chunks.push(p)},d.prototype.onEnd=function(p){p===c.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=p,this.msg=this.strm.msg},a.Inflate=d,a.inflate=g,a.inflateRaw=function(p,y){return(y=y||{}).raw=!0,g(p,y)},a.ungzip=g},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(t,n,a){var i=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";a.assign=function(c){for(var m=Array.prototype.slice.call(arguments,1);m.length;){var b=m.shift();if(b){if(typeof b!="object")throw new TypeError(b+"must be non-object");for(var v in b)b.hasOwnProperty(v)&&(c[v]=b[v])}}return c},a.shrinkBuf=function(c,m){return c.length===m?c:c.subarray?c.subarray(0,m):(c.length=m,c)};var o={arraySet:function(c,m,b,v,w){if(m.subarray&&c.subarray)c.set(m.subarray(b,b+v),w);else for(var d=0;d<v;d++)c[w+d]=m[b+d]},flattenChunks:function(c){var m,b,v,w,d,g;for(m=v=0,b=c.length;m<b;m++)v+=c[m].length;for(g=new Uint8Array(v),m=w=0,b=c.length;m<b;m++)d=c[m],g.set(d,w),w+=d.length;return g}},s={arraySet:function(c,m,b,v,w){for(var d=0;d<v;d++)c[w+d]=m[b+d]},flattenChunks:function(c){return[].concat.apply([],c)}};a.setTyped=function(c){c?(a.Buf8=Uint8Array,a.Buf16=Uint16Array,a.Buf32=Int32Array,a.assign(a,o)):(a.Buf8=Array,a.Buf16=Array,a.Buf32=Array,a.assign(a,s))},a.setTyped(i)},{}],42:[function(t,n,a){var i=t("./common"),o=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch{o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{s=!1}for(var c=new i.Buf8(256),m=0;m<256;m++)c[m]=252<=m?6:248<=m?5:240<=m?4:224<=m?3:192<=m?2:1;function b(v,w){if(w<65537&&(v.subarray&&s||!v.subarray&&o))return String.fromCharCode.apply(null,i.shrinkBuf(v,w));for(var d="",g=0;g<w;g++)d+=String.fromCharCode(v[g]);return d}c[254]=c[254]=1,a.string2buf=function(v){var w,d,g,p,y,x=v.length,S=0;for(p=0;p<x;p++)(64512&(d=v.charCodeAt(p)))==55296&&p+1<x&&(64512&(g=v.charCodeAt(p+1)))==56320&&(d=65536+(d-55296<<10)+(g-56320),p++),S+=d<128?1:d<2048?2:d<65536?3:4;for(w=new i.Buf8(S),p=y=0;y<S;p++)(64512&(d=v.charCodeAt(p)))==55296&&p+1<x&&(64512&(g=v.charCodeAt(p+1)))==56320&&(d=65536+(d-55296<<10)+(g-56320),p++),d<128?w[y++]=d:(d<2048?w[y++]=192|d>>>6:(d<65536?w[y++]=224|d>>>12:(w[y++]=240|d>>>18,w[y++]=128|d>>>12&63),w[y++]=128|d>>>6&63),w[y++]=128|63&d);return w},a.buf2binstring=function(v){return b(v,v.length)},a.binstring2buf=function(v){for(var w=new i.Buf8(v.length),d=0,g=w.length;d<g;d++)w[d]=v.charCodeAt(d);return w},a.buf2string=function(v,w){var d,g,p,y,x=w||v.length,S=new Array(2*x);for(d=g=0;d<x;)if((p=v[d++])<128)S[g++]=p;else if(4<(y=c[p]))S[g++]=65533,d+=y-1;else{for(p&=y===2?31:y===3?15:7;1<y&&d<x;)p=p<<6|63&v[d++],y--;1<y?S[g++]=65533:p<65536?S[g++]=p:(p-=65536,S[g++]=55296|p>>10&1023,S[g++]=56320|1023&p)}return b(S,g)},a.utf8border=function(v,w){var d;for((w=w||v.length)>v.length&&(w=v.length),d=w-1;0<=d&&(192&v[d])==128;)d--;return d<0||d===0?w:d+c[v[d]]>w?d:w}},{"./common":41}],43:[function(t,n,a){n.exports=function(i,o,s,c){for(var m=65535&i|0,b=i>>>16&65535|0,v=0;s!==0;){for(s-=v=2e3<s?2e3:s;b=b+(m=m+o[c++]|0)|0,--v;);m%=65521,b%=65521}return m|b<<16|0}},{}],44:[function(t,n,a){n.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,n,a){var i=function(){for(var o,s=[],c=0;c<256;c++){o=c;for(var m=0;m<8;m++)o=1&o?3988292384^o>>>1:o>>>1;s[c]=o}return s}();n.exports=function(o,s,c,m){var b=i,v=m+c;o^=-1;for(var w=m;w<v;w++)o=o>>>8^b[255&(o^s[w])];return-1^o}},{}],46:[function(t,n,a){var i,o=t("../utils/common"),s=t("./trees"),c=t("./adler32"),m=t("./crc32"),b=t("./messages"),v=0,w=4,d=0,g=-2,p=-1,y=4,x=2,S=8,D=9,B=286,I=30,T=19,O=2*B+1,V=15,W=3,Z=258,se=Z+W+1,P=42,X=113,A=1,J=2,oe=3,q=4;function fe(u,K){return u.msg=b[K],K}function ee(u){return(u<<1)-(4<u?9:0)}function ge(u){for(var K=u.length;0<=--K;)u[K]=0}function j(u){var K=u.state,F=K.pending;F>u.avail_out&&(F=u.avail_out),F!==0&&(o.arraySet(u.output,K.pending_buf,K.pending_out,F,u.next_out),u.next_out+=F,K.pending_out+=F,u.total_out+=F,u.avail_out-=F,K.pending-=F,K.pending===0&&(K.pending_out=0))}function U(u,K){s._tr_flush_block(u,0<=u.block_start?u.block_start:-1,u.strstart-u.block_start,K),u.block_start=u.strstart,j(u.strm)}function ve(u,K){u.pending_buf[u.pending++]=K}function de(u,K){u.pending_buf[u.pending++]=K>>>8&255,u.pending_buf[u.pending++]=255&K}function te(u,K){var F,M,k=u.max_chain_length,z=u.strstart,R=u.prev_length,Q=u.nice_match,G=u.strstart>u.w_size-se?u.strstart-(u.w_size-se):0,ie=u.window,ue=u.w_mask,ae=u.prev,_e=u.strstart+Z,_=ie[z+R-1],l=ie[z+R];u.prev_length>=u.good_match&&(k>>=2),Q>u.lookahead&&(Q=u.lookahead);do if(ie[(F=K)+R]===l&&ie[F+R-1]===_&&ie[F]===ie[z]&&ie[++F]===ie[z+1]){z+=2,F++;do;while(ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&ie[++z]===ie[++F]&&z<_e);if(M=Z-(_e-z),z=_e-Z,R<M){if(u.match_start=K,Q<=(R=M))break;_=ie[z+R-1],l=ie[z+R]}}while((K=ae[K&ue])>G&&--k!=0);return R<=u.lookahead?R:u.lookahead}function Te(u){var K,F,M,k,z,R,Q,G,ie,ue,ae=u.w_size;do{if(k=u.window_size-u.lookahead-u.strstart,u.strstart>=ae+(ae-se)){for(o.arraySet(u.window,u.window,ae,ae,0),u.match_start-=ae,u.strstart-=ae,u.block_start-=ae,K=F=u.hash_size;M=u.head[--K],u.head[K]=ae<=M?M-ae:0,--F;);for(K=F=ae;M=u.prev[--K],u.prev[K]=ae<=M?M-ae:0,--F;);k+=ae}if(u.strm.avail_in===0)break;if(R=u.strm,Q=u.window,G=u.strstart+u.lookahead,ie=k,ue=void 0,ue=R.avail_in,ie<ue&&(ue=ie),F=ue===0?0:(R.avail_in-=ue,o.arraySet(Q,R.input,R.next_in,ue,G),R.state.wrap===1?R.adler=c(R.adler,Q,ue,G):R.state.wrap===2&&(R.adler=m(R.adler,Q,ue,G)),R.next_in+=ue,R.total_in+=ue,ue),u.lookahead+=F,u.lookahead+u.insert>=W)for(z=u.strstart-u.insert,u.ins_h=u.window[z],u.ins_h=(u.ins_h<<u.hash_shift^u.window[z+1])&u.hash_mask;u.insert&&(u.ins_h=(u.ins_h<<u.hash_shift^u.window[z+W-1])&u.hash_mask,u.prev[z&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=z,z++,u.insert--,!(u.lookahead+u.insert<W)););}while(u.lookahead<se&&u.strm.avail_in!==0)}function Oe(u,K){for(var F,M;;){if(u.lookahead<se){if(Te(u),u.lookahead<se&&K===v)return A;if(u.lookahead===0)break}if(F=0,u.lookahead>=W&&(u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+W-1])&u.hash_mask,F=u.prev[u.strstart&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=u.strstart),F!==0&&u.strstart-F<=u.w_size-se&&(u.match_length=te(u,F)),u.match_length>=W)if(M=s._tr_tally(u,u.strstart-u.match_start,u.match_length-W),u.lookahead-=u.match_length,u.match_length<=u.max_lazy_match&&u.lookahead>=W){for(u.match_length--;u.strstart++,u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+W-1])&u.hash_mask,F=u.prev[u.strstart&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=u.strstart,--u.match_length!=0;);u.strstart++}else u.strstart+=u.match_length,u.match_length=0,u.ins_h=u.window[u.strstart],u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+1])&u.hash_mask;else M=s._tr_tally(u,0,u.window[u.strstart]),u.lookahead--,u.strstart++;if(M&&(U(u,!1),u.strm.avail_out===0))return A}return u.insert=u.strstart<W-1?u.strstart:W-1,K===w?(U(u,!0),u.strm.avail_out===0?oe:q):u.last_lit&&(U(u,!1),u.strm.avail_out===0)?A:J}function pe(u,K){for(var F,M,k;;){if(u.lookahead<se){if(Te(u),u.lookahead<se&&K===v)return A;if(u.lookahead===0)break}if(F=0,u.lookahead>=W&&(u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+W-1])&u.hash_mask,F=u.prev[u.strstart&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=u.strstart),u.prev_length=u.match_length,u.prev_match=u.match_start,u.match_length=W-1,F!==0&&u.prev_length<u.max_lazy_match&&u.strstart-F<=u.w_size-se&&(u.match_length=te(u,F),u.match_length<=5&&(u.strategy===1||u.match_length===W&&4096<u.strstart-u.match_start)&&(u.match_length=W-1)),u.prev_length>=W&&u.match_length<=u.prev_length){for(k=u.strstart+u.lookahead-W,M=s._tr_tally(u,u.strstart-1-u.prev_match,u.prev_length-W),u.lookahead-=u.prev_length-1,u.prev_length-=2;++u.strstart<=k&&(u.ins_h=(u.ins_h<<u.hash_shift^u.window[u.strstart+W-1])&u.hash_mask,F=u.prev[u.strstart&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=u.strstart),--u.prev_length!=0;);if(u.match_available=0,u.match_length=W-1,u.strstart++,M&&(U(u,!1),u.strm.avail_out===0))return A}else if(u.match_available){if((M=s._tr_tally(u,0,u.window[u.strstart-1]))&&U(u,!1),u.strstart++,u.lookahead--,u.strm.avail_out===0)return A}else u.match_available=1,u.strstart++,u.lookahead--}return u.match_available&&(M=s._tr_tally(u,0,u.window[u.strstart-1]),u.match_available=0),u.insert=u.strstart<W-1?u.strstart:W-1,K===w?(U(u,!0),u.strm.avail_out===0?oe:q):u.last_lit&&(U(u,!1),u.strm.avail_out===0)?A:J}function be(u,K,F,M,k){this.good_length=u,this.max_lazy=K,this.nice_length=F,this.max_chain=M,this.func=k}function xe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=S,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new o.Buf16(2*O),this.dyn_dtree=new o.Buf16(2*(2*I+1)),this.bl_tree=new o.Buf16(2*(2*T+1)),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new o.Buf16(V+1),this.heap=new o.Buf16(2*B+1),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new o.Buf16(2*B+1),ge(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function $(u){var K;return u&&u.state?(u.total_in=u.total_out=0,u.data_type=x,(K=u.state).pending=0,K.pending_out=0,K.wrap<0&&(K.wrap=-K.wrap),K.status=K.wrap?P:X,u.adler=K.wrap===2?0:1,K.last_flush=v,s._tr_init(K),d):fe(u,g)}function he(u){var K=$(u);return K===d&&function(F){F.window_size=2*F.w_size,ge(F.head),F.max_lazy_match=i[F.level].max_lazy,F.good_match=i[F.level].good_length,F.nice_match=i[F.level].nice_length,F.max_chain_length=i[F.level].max_chain,F.strstart=0,F.block_start=0,F.lookahead=0,F.insert=0,F.match_length=F.prev_length=W-1,F.match_available=0,F.ins_h=0}(u.state),K}function re(u,K,F,M,k,z){if(!u)return g;var R=1;if(K===p&&(K=6),M<0?(R=0,M=-M):15<M&&(R=2,M-=16),k<1||D<k||F!==S||M<8||15<M||K<0||9<K||z<0||y<z)return fe(u,g);M===8&&(M=9);var Q=new xe;return(u.state=Q).strm=u,Q.wrap=R,Q.gzhead=null,Q.w_bits=M,Q.w_size=1<<Q.w_bits,Q.w_mask=Q.w_size-1,Q.hash_bits=k+7,Q.hash_size=1<<Q.hash_bits,Q.hash_mask=Q.hash_size-1,Q.hash_shift=~~((Q.hash_bits+W-1)/W),Q.window=new o.Buf8(2*Q.w_size),Q.head=new o.Buf16(Q.hash_size),Q.prev=new o.Buf16(Q.w_size),Q.lit_bufsize=1<<k+6,Q.pending_buf_size=4*Q.lit_bufsize,Q.pending_buf=new o.Buf8(Q.pending_buf_size),Q.d_buf=1*Q.lit_bufsize,Q.l_buf=3*Q.lit_bufsize,Q.level=K,Q.strategy=z,Q.method=F,he(u)}i=[new be(0,0,0,0,function(u,K){var F=65535;for(F>u.pending_buf_size-5&&(F=u.pending_buf_size-5);;){if(u.lookahead<=1){if(Te(u),u.lookahead===0&&K===v)return A;if(u.lookahead===0)break}u.strstart+=u.lookahead,u.lookahead=0;var M=u.block_start+F;if((u.strstart===0||u.strstart>=M)&&(u.lookahead=u.strstart-M,u.strstart=M,U(u,!1),u.strm.avail_out===0)||u.strstart-u.block_start>=u.w_size-se&&(U(u,!1),u.strm.avail_out===0))return A}return u.insert=0,K===w?(U(u,!0),u.strm.avail_out===0?oe:q):(u.strstart>u.block_start&&(U(u,!1),u.strm.avail_out),A)}),new be(4,4,8,4,Oe),new be(4,5,16,8,Oe),new be(4,6,32,32,Oe),new be(4,4,16,16,pe),new be(8,16,32,32,pe),new be(8,16,128,128,pe),new be(8,32,128,256,pe),new be(32,128,258,1024,pe),new be(32,258,258,4096,pe)],a.deflateInit=function(u,K){return re(u,K,S,15,8,0)},a.deflateInit2=re,a.deflateReset=he,a.deflateResetKeep=$,a.deflateSetHeader=function(u,K){return u&&u.state?u.state.wrap!==2?g:(u.state.gzhead=K,d):g},a.deflate=function(u,K){var F,M,k,z;if(!u||!u.state||5<K||K<0)return u?fe(u,g):g;if(M=u.state,!u.output||!u.input&&u.avail_in!==0||M.status===666&&K!==w)return fe(u,u.avail_out===0?-5:g);if(M.strm=u,F=M.last_flush,M.last_flush=K,M.status===P)if(M.wrap===2)u.adler=0,ve(M,31),ve(M,139),ve(M,8),M.gzhead?(ve(M,(M.gzhead.text?1:0)+(M.gzhead.hcrc?2:0)+(M.gzhead.extra?4:0)+(M.gzhead.name?8:0)+(M.gzhead.comment?16:0)),ve(M,255&M.gzhead.time),ve(M,M.gzhead.time>>8&255),ve(M,M.gzhead.time>>16&255),ve(M,M.gzhead.time>>24&255),ve(M,M.level===9?2:2<=M.strategy||M.level<2?4:0),ve(M,255&M.gzhead.os),M.gzhead.extra&&M.gzhead.extra.length&&(ve(M,255&M.gzhead.extra.length),ve(M,M.gzhead.extra.length>>8&255)),M.gzhead.hcrc&&(u.adler=m(u.adler,M.pending_buf,M.pending,0)),M.gzindex=0,M.status=69):(ve(M,0),ve(M,0),ve(M,0),ve(M,0),ve(M,0),ve(M,M.level===9?2:2<=M.strategy||M.level<2?4:0),ve(M,3),M.status=X);else{var R=S+(M.w_bits-8<<4)<<8;R|=(2<=M.strategy||M.level<2?0:M.level<6?1:M.level===6?2:3)<<6,M.strstart!==0&&(R|=32),R+=31-R%31,M.status=X,de(M,R),M.strstart!==0&&(de(M,u.adler>>>16),de(M,65535&u.adler)),u.adler=1}if(M.status===69)if(M.gzhead.extra){for(k=M.pending;M.gzindex<(65535&M.gzhead.extra.length)&&(M.pending!==M.pending_buf_size||(M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),j(u),k=M.pending,M.pending!==M.pending_buf_size));)ve(M,255&M.gzhead.extra[M.gzindex]),M.gzindex++;M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),M.gzindex===M.gzhead.extra.length&&(M.gzindex=0,M.status=73)}else M.status=73;if(M.status===73)if(M.gzhead.name){k=M.pending;do{if(M.pending===M.pending_buf_size&&(M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),j(u),k=M.pending,M.pending===M.pending_buf_size)){z=1;break}z=M.gzindex<M.gzhead.name.length?255&M.gzhead.name.charCodeAt(M.gzindex++):0,ve(M,z)}while(z!==0);M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),z===0&&(M.gzindex=0,M.status=91)}else M.status=91;if(M.status===91)if(M.gzhead.comment){k=M.pending;do{if(M.pending===M.pending_buf_size&&(M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),j(u),k=M.pending,M.pending===M.pending_buf_size)){z=1;break}z=M.gzindex<M.gzhead.comment.length?255&M.gzhead.comment.charCodeAt(M.gzindex++):0,ve(M,z)}while(z!==0);M.gzhead.hcrc&&M.pending>k&&(u.adler=m(u.adler,M.pending_buf,M.pending-k,k)),z===0&&(M.status=103)}else M.status=103;if(M.status===103&&(M.gzhead.hcrc?(M.pending+2>M.pending_buf_size&&j(u),M.pending+2<=M.pending_buf_size&&(ve(M,255&u.adler),ve(M,u.adler>>8&255),u.adler=0,M.status=X)):M.status=X),M.pending!==0){if(j(u),u.avail_out===0)return M.last_flush=-1,d}else if(u.avail_in===0&&ee(K)<=ee(F)&&K!==w)return fe(u,-5);if(M.status===666&&u.avail_in!==0)return fe(u,-5);if(u.avail_in!==0||M.lookahead!==0||K!==v&&M.status!==666){var Q=M.strategy===2?function(G,ie){for(var ue;;){if(G.lookahead===0&&(Te(G),G.lookahead===0)){if(ie===v)return A;break}if(G.match_length=0,ue=s._tr_tally(G,0,G.window[G.strstart]),G.lookahead--,G.strstart++,ue&&(U(G,!1),G.strm.avail_out===0))return A}return G.insert=0,ie===w?(U(G,!0),G.strm.avail_out===0?oe:q):G.last_lit&&(U(G,!1),G.strm.avail_out===0)?A:J}(M,K):M.strategy===3?function(G,ie){for(var ue,ae,_e,_,l=G.window;;){if(G.lookahead<=Z){if(Te(G),G.lookahead<=Z&&ie===v)return A;if(G.lookahead===0)break}if(G.match_length=0,G.lookahead>=W&&0<G.strstart&&(ae=l[_e=G.strstart-1])===l[++_e]&&ae===l[++_e]&&ae===l[++_e]){_=G.strstart+Z;do;while(ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&ae===l[++_e]&&_e<_);G.match_length=Z-(_-_e),G.match_length>G.lookahead&&(G.match_length=G.lookahead)}if(G.match_length>=W?(ue=s._tr_tally(G,1,G.match_length-W),G.lookahead-=G.match_length,G.strstart+=G.match_length,G.match_length=0):(ue=s._tr_tally(G,0,G.window[G.strstart]),G.lookahead--,G.strstart++),ue&&(U(G,!1),G.strm.avail_out===0))return A}return G.insert=0,ie===w?(U(G,!0),G.strm.avail_out===0?oe:q):G.last_lit&&(U(G,!1),G.strm.avail_out===0)?A:J}(M,K):i[M.level].func(M,K);if(Q!==oe&&Q!==q||(M.status=666),Q===A||Q===oe)return u.avail_out===0&&(M.last_flush=-1),d;if(Q===J&&(K===1?s._tr_align(M):K!==5&&(s._tr_stored_block(M,0,0,!1),K===3&&(ge(M.head),M.lookahead===0&&(M.strstart=0,M.block_start=0,M.insert=0))),j(u),u.avail_out===0))return M.last_flush=-1,d}return K!==w?d:M.wrap<=0?1:(M.wrap===2?(ve(M,255&u.adler),ve(M,u.adler>>8&255),ve(M,u.adler>>16&255),ve(M,u.adler>>24&255),ve(M,255&u.total_in),ve(M,u.total_in>>8&255),ve(M,u.total_in>>16&255),ve(M,u.total_in>>24&255)):(de(M,u.adler>>>16),de(M,65535&u.adler)),j(u),0<M.wrap&&(M.wrap=-M.wrap),M.pending!==0?d:1)},a.deflateEnd=function(u){var K;return u&&u.state?(K=u.state.status)!==P&&K!==69&&K!==73&&K!==91&&K!==103&&K!==X&&K!==666?fe(u,g):(u.state=null,K===X?fe(u,-3):d):g},a.deflateSetDictionary=function(u,K){var F,M,k,z,R,Q,G,ie,ue=K.length;if(!u||!u.state||(z=(F=u.state).wrap)===2||z===1&&F.status!==P||F.lookahead)return g;for(z===1&&(u.adler=c(u.adler,K,ue,0)),F.wrap=0,ue>=F.w_size&&(z===0&&(ge(F.head),F.strstart=0,F.block_start=0,F.insert=0),ie=new o.Buf8(F.w_size),o.arraySet(ie,K,ue-F.w_size,F.w_size,0),K=ie,ue=F.w_size),R=u.avail_in,Q=u.next_in,G=u.input,u.avail_in=ue,u.next_in=0,u.input=K,Te(F);F.lookahead>=W;){for(M=F.strstart,k=F.lookahead-(W-1);F.ins_h=(F.ins_h<<F.hash_shift^F.window[M+W-1])&F.hash_mask,F.prev[M&F.w_mask]=F.head[F.ins_h],F.head[F.ins_h]=M,M++,--k;);F.strstart=M,F.lookahead=W-1,Te(F)}return F.strstart+=F.lookahead,F.block_start=F.strstart,F.insert=F.lookahead,F.lookahead=0,F.match_length=F.prev_length=W-1,F.match_available=0,u.next_in=Q,u.input=G,u.avail_in=R,F.wrap=z,d},a.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(t,n,a){n.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(t,n,a){n.exports=function(i,o){var s,c,m,b,v,w,d,g,p,y,x,S,D,B,I,T,O,V,W,Z,se,P,X,A,J;s=i.state,c=i.next_in,A=i.input,m=c+(i.avail_in-5),b=i.next_out,J=i.output,v=b-(o-i.avail_out),w=b+(i.avail_out-257),d=s.dmax,g=s.wsize,p=s.whave,y=s.wnext,x=s.window,S=s.hold,D=s.bits,B=s.lencode,I=s.distcode,T=(1<<s.lenbits)-1,O=(1<<s.distbits)-1;e:do{D<15&&(S+=A[c++]<<D,D+=8,S+=A[c++]<<D,D+=8),V=B[S&T];t:for(;;){if(S>>>=W=V>>>24,D-=W,(W=V>>>16&255)===0)J[b++]=65535&V;else{if(!(16&W)){if(!(64&W)){V=B[(65535&V)+(S&(1<<W)-1)];continue t}if(32&W){s.mode=12;break e}i.msg="invalid literal/length code",s.mode=30;break e}Z=65535&V,(W&=15)&&(D<W&&(S+=A[c++]<<D,D+=8),Z+=S&(1<<W)-1,S>>>=W,D-=W),D<15&&(S+=A[c++]<<D,D+=8,S+=A[c++]<<D,D+=8),V=I[S&O];r:for(;;){if(S>>>=W=V>>>24,D-=W,!(16&(W=V>>>16&255))){if(!(64&W)){V=I[(65535&V)+(S&(1<<W)-1)];continue r}i.msg="invalid distance code",s.mode=30;break e}if(se=65535&V,D<(W&=15)&&(S+=A[c++]<<D,(D+=8)<W&&(S+=A[c++]<<D,D+=8)),d<(se+=S&(1<<W)-1)){i.msg="invalid distance too far back",s.mode=30;break e}if(S>>>=W,D-=W,(W=b-v)<se){if(p<(W=se-W)&&s.sane){i.msg="invalid distance too far back",s.mode=30;break e}if(X=x,(P=0)===y){if(P+=g-W,W<Z){for(Z-=W;J[b++]=x[P++],--W;);P=b-se,X=J}}else if(y<W){if(P+=g+y-W,(W-=y)<Z){for(Z-=W;J[b++]=x[P++],--W;);if(P=0,y<Z){for(Z-=W=y;J[b++]=x[P++],--W;);P=b-se,X=J}}}else if(P+=y-W,W<Z){for(Z-=W;J[b++]=x[P++],--W;);P=b-se,X=J}for(;2<Z;)J[b++]=X[P++],J[b++]=X[P++],J[b++]=X[P++],Z-=3;Z&&(J[b++]=X[P++],1<Z&&(J[b++]=X[P++]))}else{for(P=b-se;J[b++]=J[P++],J[b++]=J[P++],J[b++]=J[P++],2<(Z-=3););Z&&(J[b++]=J[P++],1<Z&&(J[b++]=J[P++]))}break}}break}}while(c<m&&b<w);c-=Z=D>>3,S&=(1<<(D-=Z<<3))-1,i.next_in=c,i.next_out=b,i.avail_in=c<m?m-c+5:5-(c-m),i.avail_out=b<w?w-b+257:257-(b-w),s.hold=S,s.bits=D}},{}],49:[function(t,n,a){var i=t("../utils/common"),o=t("./adler32"),s=t("./crc32"),c=t("./inffast"),m=t("./inftrees"),b=1,v=2,w=0,d=-2,g=1,p=852,y=592;function x(P){return(P>>>24&255)+(P>>>8&65280)+((65280&P)<<8)+((255&P)<<24)}function S(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function D(P){var X;return P&&P.state?(X=P.state,P.total_in=P.total_out=X.total=0,P.msg="",X.wrap&&(P.adler=1&X.wrap),X.mode=g,X.last=0,X.havedict=0,X.dmax=32768,X.head=null,X.hold=0,X.bits=0,X.lencode=X.lendyn=new i.Buf32(p),X.distcode=X.distdyn=new i.Buf32(y),X.sane=1,X.back=-1,w):d}function B(P){var X;return P&&P.state?((X=P.state).wsize=0,X.whave=0,X.wnext=0,D(P)):d}function I(P,X){var A,J;return P&&P.state?(J=P.state,X<0?(A=0,X=-X):(A=1+(X>>4),X<48&&(X&=15)),X&&(X<8||15<X)?d:(J.window!==null&&J.wbits!==X&&(J.window=null),J.wrap=A,J.wbits=X,B(P))):d}function T(P,X){var A,J;return P?(J=new S,(P.state=J).window=null,(A=I(P,X))!==w&&(P.state=null),A):d}var O,V,W=!0;function Z(P){if(W){var X;for(O=new i.Buf32(512),V=new i.Buf32(32),X=0;X<144;)P.lens[X++]=8;for(;X<256;)P.lens[X++]=9;for(;X<280;)P.lens[X++]=7;for(;X<288;)P.lens[X++]=8;for(m(b,P.lens,0,288,O,0,P.work,{bits:9}),X=0;X<32;)P.lens[X++]=5;m(v,P.lens,0,32,V,0,P.work,{bits:5}),W=!1}P.lencode=O,P.lenbits=9,P.distcode=V,P.distbits=5}function se(P,X,A,J){var oe,q=P.state;return q.window===null&&(q.wsize=1<<q.wbits,q.wnext=0,q.whave=0,q.window=new i.Buf8(q.wsize)),J>=q.wsize?(i.arraySet(q.window,X,A-q.wsize,q.wsize,0),q.wnext=0,q.whave=q.wsize):(J<(oe=q.wsize-q.wnext)&&(oe=J),i.arraySet(q.window,X,A-J,oe,q.wnext),(J-=oe)?(i.arraySet(q.window,X,A-J,J,0),q.wnext=J,q.whave=q.wsize):(q.wnext+=oe,q.wnext===q.wsize&&(q.wnext=0),q.whave<q.wsize&&(q.whave+=oe))),0}a.inflateReset=B,a.inflateReset2=I,a.inflateResetKeep=D,a.inflateInit=function(P){return T(P,15)},a.inflateInit2=T,a.inflate=function(P,X){var A,J,oe,q,fe,ee,ge,j,U,ve,de,te,Te,Oe,pe,be,xe,$,he,re,u,K,F,M,k=0,z=new i.Buf8(4),R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!P||!P.state||!P.output||!P.input&&P.avail_in!==0)return d;(A=P.state).mode===12&&(A.mode=13),fe=P.next_out,oe=P.output,ge=P.avail_out,q=P.next_in,J=P.input,ee=P.avail_in,j=A.hold,U=A.bits,ve=ee,de=ge,K=w;e:for(;;)switch(A.mode){case g:if(A.wrap===0){A.mode=13;break}for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(2&A.wrap&&j===35615){z[A.check=0]=255&j,z[1]=j>>>8&255,A.check=s(A.check,z,2,0),U=j=0,A.mode=2;break}if(A.flags=0,A.head&&(A.head.done=!1),!(1&A.wrap)||(((255&j)<<8)+(j>>8))%31){P.msg="incorrect header check",A.mode=30;break}if((15&j)!=8){P.msg="unknown compression method",A.mode=30;break}if(U-=4,u=8+(15&(j>>>=4)),A.wbits===0)A.wbits=u;else if(u>A.wbits){P.msg="invalid window size",A.mode=30;break}A.dmax=1<<u,P.adler=A.check=1,A.mode=512&j?10:12,U=j=0;break;case 2:for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(A.flags=j,(255&A.flags)!=8){P.msg="unknown compression method",A.mode=30;break}if(57344&A.flags){P.msg="unknown header flags set",A.mode=30;break}A.head&&(A.head.text=j>>8&1),512&A.flags&&(z[0]=255&j,z[1]=j>>>8&255,A.check=s(A.check,z,2,0)),U=j=0,A.mode=3;case 3:for(;U<32;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.head&&(A.head.time=j),512&A.flags&&(z[0]=255&j,z[1]=j>>>8&255,z[2]=j>>>16&255,z[3]=j>>>24&255,A.check=s(A.check,z,4,0)),U=j=0,A.mode=4;case 4:for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.head&&(A.head.xflags=255&j,A.head.os=j>>8),512&A.flags&&(z[0]=255&j,z[1]=j>>>8&255,A.check=s(A.check,z,2,0)),U=j=0,A.mode=5;case 5:if(1024&A.flags){for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.length=j,A.head&&(A.head.extra_len=j),512&A.flags&&(z[0]=255&j,z[1]=j>>>8&255,A.check=s(A.check,z,2,0)),U=j=0}else A.head&&(A.head.extra=null);A.mode=6;case 6:if(1024&A.flags&&(ee<(te=A.length)&&(te=ee),te&&(A.head&&(u=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),i.arraySet(A.head.extra,J,q,te,u)),512&A.flags&&(A.check=s(A.check,J,te,q)),ee-=te,q+=te,A.length-=te),A.length))break e;A.length=0,A.mode=7;case 7:if(2048&A.flags){if(ee===0)break e;for(te=0;u=J[q+te++],A.head&&u&&A.length<65536&&(A.head.name+=String.fromCharCode(u)),u&&te<ee;);if(512&A.flags&&(A.check=s(A.check,J,te,q)),ee-=te,q+=te,u)break e}else A.head&&(A.head.name=null);A.length=0,A.mode=8;case 8:if(4096&A.flags){if(ee===0)break e;for(te=0;u=J[q+te++],A.head&&u&&A.length<65536&&(A.head.comment+=String.fromCharCode(u)),u&&te<ee;);if(512&A.flags&&(A.check=s(A.check,J,te,q)),ee-=te,q+=te,u)break e}else A.head&&(A.head.comment=null);A.mode=9;case 9:if(512&A.flags){for(;U<16;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(j!==(65535&A.check)){P.msg="header crc mismatch",A.mode=30;break}U=j=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),P.adler=A.check=0,A.mode=12;break;case 10:for(;U<32;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}P.adler=A.check=x(j),U=j=0,A.mode=11;case 11:if(A.havedict===0)return P.next_out=fe,P.avail_out=ge,P.next_in=q,P.avail_in=ee,A.hold=j,A.bits=U,2;P.adler=A.check=1,A.mode=12;case 12:if(X===5||X===6)break e;case 13:if(A.last){j>>>=7&U,U-=7&U,A.mode=27;break}for(;U<3;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}switch(A.last=1&j,U-=1,3&(j>>>=1)){case 0:A.mode=14;break;case 1:if(Z(A),A.mode=20,X!==6)break;j>>>=2,U-=2;break e;case 2:A.mode=17;break;case 3:P.msg="invalid block type",A.mode=30}j>>>=2,U-=2;break;case 14:for(j>>>=7&U,U-=7&U;U<32;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if((65535&j)!=(j>>>16^65535)){P.msg="invalid stored block lengths",A.mode=30;break}if(A.length=65535&j,U=j=0,A.mode=15,X===6)break e;case 15:A.mode=16;case 16:if(te=A.length){if(ee<te&&(te=ee),ge<te&&(te=ge),te===0)break e;i.arraySet(oe,J,q,te,fe),ee-=te,q+=te,ge-=te,fe+=te,A.length-=te;break}A.mode=12;break;case 17:for(;U<14;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(A.nlen=257+(31&j),j>>>=5,U-=5,A.ndist=1+(31&j),j>>>=5,U-=5,A.ncode=4+(15&j),j>>>=4,U-=4,286<A.nlen||30<A.ndist){P.msg="too many length or distance symbols",A.mode=30;break}A.have=0,A.mode=18;case 18:for(;A.have<A.ncode;){for(;U<3;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.lens[R[A.have++]]=7&j,j>>>=3,U-=3}for(;A.have<19;)A.lens[R[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,F={bits:A.lenbits},K=m(0,A.lens,0,19,A.lencode,0,A.work,F),A.lenbits=F.bits,K){P.msg="invalid code lengths set",A.mode=30;break}A.have=0,A.mode=19;case 19:for(;A.have<A.nlen+A.ndist;){for(;be=(k=A.lencode[j&(1<<A.lenbits)-1])>>>16&255,xe=65535&k,!((pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(xe<16)j>>>=pe,U-=pe,A.lens[A.have++]=xe;else{if(xe===16){for(M=pe+2;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(j>>>=pe,U-=pe,A.have===0){P.msg="invalid bit length repeat",A.mode=30;break}u=A.lens[A.have-1],te=3+(3&j),j>>>=2,U-=2}else if(xe===17){for(M=pe+3;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}U-=pe,u=0,te=3+(7&(j>>>=pe)),j>>>=3,U-=3}else{for(M=pe+7;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}U-=pe,u=0,te=11+(127&(j>>>=pe)),j>>>=7,U-=7}if(A.have+te>A.nlen+A.ndist){P.msg="invalid bit length repeat",A.mode=30;break}for(;te--;)A.lens[A.have++]=u}}if(A.mode===30)break;if(A.lens[256]===0){P.msg="invalid code -- missing end-of-block",A.mode=30;break}if(A.lenbits=9,F={bits:A.lenbits},K=m(b,A.lens,0,A.nlen,A.lencode,0,A.work,F),A.lenbits=F.bits,K){P.msg="invalid literal/lengths set",A.mode=30;break}if(A.distbits=6,A.distcode=A.distdyn,F={bits:A.distbits},K=m(v,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,F),A.distbits=F.bits,K){P.msg="invalid distances set",A.mode=30;break}if(A.mode=20,X===6)break e;case 20:A.mode=21;case 21:if(6<=ee&&258<=ge){P.next_out=fe,P.avail_out=ge,P.next_in=q,P.avail_in=ee,A.hold=j,A.bits=U,c(P,de),fe=P.next_out,oe=P.output,ge=P.avail_out,q=P.next_in,J=P.input,ee=P.avail_in,j=A.hold,U=A.bits,A.mode===12&&(A.back=-1);break}for(A.back=0;be=(k=A.lencode[j&(1<<A.lenbits)-1])>>>16&255,xe=65535&k,!((pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(be&&!(240&be)){for($=pe,he=be,re=xe;be=(k=A.lencode[re+((j&(1<<$+he)-1)>>$)])>>>16&255,xe=65535&k,!($+(pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}j>>>=$,U-=$,A.back+=$}if(j>>>=pe,U-=pe,A.back+=pe,A.length=xe,be===0){A.mode=26;break}if(32&be){A.back=-1,A.mode=12;break}if(64&be){P.msg="invalid literal/length code",A.mode=30;break}A.extra=15&be,A.mode=22;case 22:if(A.extra){for(M=A.extra;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.length+=j&(1<<A.extra)-1,j>>>=A.extra,U-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=23;case 23:for(;be=(k=A.distcode[j&(1<<A.distbits)-1])>>>16&255,xe=65535&k,!((pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(!(240&be)){for($=pe,he=be,re=xe;be=(k=A.distcode[re+((j&(1<<$+he)-1)>>$)])>>>16&255,xe=65535&k,!($+(pe=k>>>24)<=U);){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}j>>>=$,U-=$,A.back+=$}if(j>>>=pe,U-=pe,A.back+=pe,64&be){P.msg="invalid distance code",A.mode=30;break}A.offset=xe,A.extra=15&be,A.mode=24;case 24:if(A.extra){for(M=A.extra;U<M;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}A.offset+=j&(1<<A.extra)-1,j>>>=A.extra,U-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){P.msg="invalid distance too far back",A.mode=30;break}A.mode=25;case 25:if(ge===0)break e;if(te=de-ge,A.offset>te){if((te=A.offset-te)>A.whave&&A.sane){P.msg="invalid distance too far back",A.mode=30;break}Te=te>A.wnext?(te-=A.wnext,A.wsize-te):A.wnext-te,te>A.length&&(te=A.length),Oe=A.window}else Oe=oe,Te=fe-A.offset,te=A.length;for(ge<te&&(te=ge),ge-=te,A.length-=te;oe[fe++]=Oe[Te++],--te;);A.length===0&&(A.mode=21);break;case 26:if(ge===0)break e;oe[fe++]=A.length,ge--,A.mode=21;break;case 27:if(A.wrap){for(;U<32;){if(ee===0)break e;ee--,j|=J[q++]<<U,U+=8}if(de-=ge,P.total_out+=de,A.total+=de,de&&(P.adler=A.check=A.flags?s(A.check,oe,de,fe-de):o(A.check,oe,de,fe-de)),de=ge,(A.flags?j:x(j))!==A.check){P.msg="incorrect data check",A.mode=30;break}U=j=0}A.mode=28;case 28:if(A.wrap&&A.flags){for(;U<32;){if(ee===0)break e;ee--,j+=J[q++]<<U,U+=8}if(j!==(4294967295&A.total)){P.msg="incorrect length check",A.mode=30;break}U=j=0}A.mode=29;case 29:K=1;break e;case 30:K=-3;break e;case 31:return-4;case 32:default:return d}return P.next_out=fe,P.avail_out=ge,P.next_in=q,P.avail_in=ee,A.hold=j,A.bits=U,(A.wsize||de!==P.avail_out&&A.mode<30&&(A.mode<27||X!==4))&&se(P,P.output,P.next_out,de-P.avail_out)?(A.mode=31,-4):(ve-=P.avail_in,de-=P.avail_out,P.total_in+=ve,P.total_out+=de,A.total+=de,A.wrap&&de&&(P.adler=A.check=A.flags?s(A.check,oe,de,P.next_out-de):o(A.check,oe,de,P.next_out-de)),P.data_type=A.bits+(A.last?64:0)+(A.mode===12?128:0)+(A.mode===20||A.mode===15?256:0),(ve==0&&de===0||X===4)&&K===w&&(K=-5),K)},a.inflateEnd=function(P){if(!P||!P.state)return d;var X=P.state;return X.window&&(X.window=null),P.state=null,w},a.inflateGetHeader=function(P,X){var A;return P&&P.state&&2&(A=P.state).wrap?((A.head=X).done=!1,w):d},a.inflateSetDictionary=function(P,X){var A,J=X.length;return P&&P.state?(A=P.state).wrap!==0&&A.mode!==11?d:A.mode===11&&o(1,X,J,0)!==A.check?-3:se(P,X,J,J)?(A.mode=31,-4):(A.havedict=1,w):d},a.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(t,n,a){var i=t("../utils/common"),o=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],c=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],m=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];n.exports=function(b,v,w,d,g,p,y,x){var S,D,B,I,T,O,V,W,Z,se=x.bits,P=0,X=0,A=0,J=0,oe=0,q=0,fe=0,ee=0,ge=0,j=0,U=null,ve=0,de=new i.Buf16(16),te=new i.Buf16(16),Te=null,Oe=0;for(P=0;P<=15;P++)de[P]=0;for(X=0;X<d;X++)de[v[w+X]]++;for(oe=se,J=15;1<=J&&de[J]===0;J--);if(J<oe&&(oe=J),J===0)return g[p++]=20971520,g[p++]=20971520,x.bits=1,0;for(A=1;A<J&&de[A]===0;A++);for(oe<A&&(oe=A),P=ee=1;P<=15;P++)if(ee<<=1,(ee-=de[P])<0)return-1;if(0<ee&&(b===0||J!==1))return-1;for(te[1]=0,P=1;P<15;P++)te[P+1]=te[P]+de[P];for(X=0;X<d;X++)v[w+X]!==0&&(y[te[v[w+X]]++]=X);if(O=b===0?(U=Te=y,19):b===1?(U=o,ve-=257,Te=s,Oe-=257,256):(U=c,Te=m,-1),P=A,T=p,fe=X=j=0,B=-1,I=(ge=1<<(q=oe))-1,b===1&&852<ge||b===2&&592<ge)return 1;for(;;){for(V=P-fe,Z=y[X]<O?(W=0,y[X]):y[X]>O?(W=Te[Oe+y[X]],U[ve+y[X]]):(W=96,0),S=1<<P-fe,A=D=1<<q;g[T+(j>>fe)+(D-=S)]=V<<24|W<<16|Z|0,D!==0;);for(S=1<<P-1;j&S;)S>>=1;if(S!==0?(j&=S-1,j+=S):j=0,X++,--de[P]==0){if(P===J)break;P=v[w+y[X]]}if(oe<P&&(j&I)!==B){for(fe===0&&(fe=oe),T+=A,ee=1<<(q=P-fe);q+fe<J&&!((ee-=de[q+fe])<=0);)q++,ee<<=1;if(ge+=1<<q,b===1&&852<ge||b===2&&592<ge)return 1;g[B=j&I]=oe<<24|q<<16|T-p|0}}return j!==0&&(g[T+j]=P-fe<<24|64<<16|0),x.bits=oe,0}},{"../utils/common":41}],51:[function(t,n,a){n.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(t,n,a){var i=t("../utils/common"),o=0,s=1;function c(k){for(var z=k.length;0<=--z;)k[z]=0}var m=0,b=29,v=256,w=v+1+b,d=30,g=19,p=2*w+1,y=15,x=16,S=7,D=256,B=16,I=17,T=18,O=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],V=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],W=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Z=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],se=new Array(2*(w+2));c(se);var P=new Array(2*d);c(P);var X=new Array(512);c(X);var A=new Array(256);c(A);var J=new Array(b);c(J);var oe,q,fe,ee=new Array(d);function ge(k,z,R,Q,G){this.static_tree=k,this.extra_bits=z,this.extra_base=R,this.elems=Q,this.max_length=G,this.has_stree=k&&k.length}function j(k,z){this.dyn_tree=k,this.max_code=0,this.stat_desc=z}function U(k){return k<256?X[k]:X[256+(k>>>7)]}function ve(k,z){k.pending_buf[k.pending++]=255&z,k.pending_buf[k.pending++]=z>>>8&255}function de(k,z,R){k.bi_valid>x-R?(k.bi_buf|=z<<k.bi_valid&65535,ve(k,k.bi_buf),k.bi_buf=z>>x-k.bi_valid,k.bi_valid+=R-x):(k.bi_buf|=z<<k.bi_valid&65535,k.bi_valid+=R)}function te(k,z,R){de(k,R[2*z],R[2*z+1])}function Te(k,z){for(var R=0;R|=1&k,k>>>=1,R<<=1,0<--z;);return R>>>1}function Oe(k,z,R){var Q,G,ie=new Array(y+1),ue=0;for(Q=1;Q<=y;Q++)ie[Q]=ue=ue+R[Q-1]<<1;for(G=0;G<=z;G++){var ae=k[2*G+1];ae!==0&&(k[2*G]=Te(ie[ae]++,ae))}}function pe(k){var z;for(z=0;z<w;z++)k.dyn_ltree[2*z]=0;for(z=0;z<d;z++)k.dyn_dtree[2*z]=0;for(z=0;z<g;z++)k.bl_tree[2*z]=0;k.dyn_ltree[2*D]=1,k.opt_len=k.static_len=0,k.last_lit=k.matches=0}function be(k){8<k.bi_valid?ve(k,k.bi_buf):0<k.bi_valid&&(k.pending_buf[k.pending++]=k.bi_buf),k.bi_buf=0,k.bi_valid=0}function xe(k,z,R,Q){var G=2*z,ie=2*R;return k[G]<k[ie]||k[G]===k[ie]&&Q[z]<=Q[R]}function $(k,z,R){for(var Q=k.heap[R],G=R<<1;G<=k.heap_len&&(G<k.heap_len&&xe(z,k.heap[G+1],k.heap[G],k.depth)&&G++,!xe(z,Q,k.heap[G],k.depth));)k.heap[R]=k.heap[G],R=G,G<<=1;k.heap[R]=Q}function he(k,z,R){var Q,G,ie,ue,ae=0;if(k.last_lit!==0)for(;Q=k.pending_buf[k.d_buf+2*ae]<<8|k.pending_buf[k.d_buf+2*ae+1],G=k.pending_buf[k.l_buf+ae],ae++,Q===0?te(k,G,z):(te(k,(ie=A[G])+v+1,z),(ue=O[ie])!==0&&de(k,G-=J[ie],ue),te(k,ie=U(--Q),R),(ue=V[ie])!==0&&de(k,Q-=ee[ie],ue)),ae<k.last_lit;);te(k,D,z)}function re(k,z){var R,Q,G,ie=z.dyn_tree,ue=z.stat_desc.static_tree,ae=z.stat_desc.has_stree,_e=z.stat_desc.elems,_=-1;for(k.heap_len=0,k.heap_max=p,R=0;R<_e;R++)ie[2*R]!==0?(k.heap[++k.heap_len]=_=R,k.depth[R]=0):ie[2*R+1]=0;for(;k.heap_len<2;)ie[2*(G=k.heap[++k.heap_len]=_<2?++_:0)]=1,k.depth[G]=0,k.opt_len--,ae&&(k.static_len-=ue[2*G+1]);for(z.max_code=_,R=k.heap_len>>1;1<=R;R--)$(k,ie,R);for(G=_e;R=k.heap[1],k.heap[1]=k.heap[k.heap_len--],$(k,ie,1),Q=k.heap[1],k.heap[--k.heap_max]=R,k.heap[--k.heap_max]=Q,ie[2*G]=ie[2*R]+ie[2*Q],k.depth[G]=(k.depth[R]>=k.depth[Q]?k.depth[R]:k.depth[Q])+1,ie[2*R+1]=ie[2*Q+1]=G,k.heap[1]=G++,$(k,ie,1),2<=k.heap_len;);k.heap[--k.heap_max]=k.heap[1],function(l,f){var C,E,Y,H,Se,Me,ye=f.dyn_tree,L=f.max_code,ce=f.stat_desc.static_tree,Be=f.stat_desc.has_stree,Ee=f.stat_desc.extra_bits,Re=f.stat_desc.extra_base,Ge=f.stat_desc.max_length,je=0;for(H=0;H<=y;H++)l.bl_count[H]=0;for(ye[2*l.heap[l.heap_max]+1]=0,C=l.heap_max+1;C<p;C++)Ge<(H=ye[2*ye[2*(E=l.heap[C])+1]+1]+1)&&(H=Ge,je++),ye[2*E+1]=H,L<E||(l.bl_count[H]++,Se=0,Re<=E&&(Se=Ee[E-Re]),Me=ye[2*E],l.opt_len+=Me*(H+Se),Be&&(l.static_len+=Me*(ce[2*E+1]+Se)));if(je!==0){do{for(H=Ge-1;l.bl_count[H]===0;)H--;l.bl_count[H]--,l.bl_count[H+1]+=2,l.bl_count[Ge]--,je-=2}while(0<je);for(H=Ge;H!==0;H--)for(E=l.bl_count[H];E!==0;)L<(Y=l.heap[--C])||(ye[2*Y+1]!==H&&(l.opt_len+=(H-ye[2*Y+1])*ye[2*Y],ye[2*Y+1]=H),E--)}}(k,z),Oe(ie,_,k.bl_count)}function u(k,z,R){var Q,G,ie=-1,ue=z[1],ae=0,_e=7,_=4;for(ue===0&&(_e=138,_=3),z[2*(R+1)+1]=65535,Q=0;Q<=R;Q++)G=ue,ue=z[2*(Q+1)+1],++ae<_e&&G===ue||(ae<_?k.bl_tree[2*G]+=ae:G!==0?(G!==ie&&k.bl_tree[2*G]++,k.bl_tree[2*B]++):ae<=10?k.bl_tree[2*I]++:k.bl_tree[2*T]++,ie=G,_=(ae=0)===ue?(_e=138,3):G===ue?(_e=6,3):(_e=7,4))}function K(k,z,R){var Q,G,ie=-1,ue=z[1],ae=0,_e=7,_=4;for(ue===0&&(_e=138,_=3),Q=0;Q<=R;Q++)if(G=ue,ue=z[2*(Q+1)+1],!(++ae<_e&&G===ue)){if(ae<_)for(;te(k,G,k.bl_tree),--ae!=0;);else G!==0?(G!==ie&&(te(k,G,k.bl_tree),ae--),te(k,B,k.bl_tree),de(k,ae-3,2)):ae<=10?(te(k,I,k.bl_tree),de(k,ae-3,3)):(te(k,T,k.bl_tree),de(k,ae-11,7));ie=G,_=(ae=0)===ue?(_e=138,3):G===ue?(_e=6,3):(_e=7,4)}}c(ee);var F=!1;function M(k,z,R,Q){de(k,(m<<1)+(Q?1:0),3),function(G,ie,ue,ae){be(G),ae&&(ve(G,ue),ve(G,~ue)),i.arraySet(G.pending_buf,G.window,ie,ue,G.pending),G.pending+=ue}(k,z,R,!0)}a._tr_init=function(k){F||(function(){var z,R,Q,G,ie,ue=new Array(y+1);for(G=Q=0;G<b-1;G++)for(J[G]=Q,z=0;z<1<<O[G];z++)A[Q++]=G;for(A[Q-1]=G,G=ie=0;G<16;G++)for(ee[G]=ie,z=0;z<1<<V[G];z++)X[ie++]=G;for(ie>>=7;G<d;G++)for(ee[G]=ie<<7,z=0;z<1<<V[G]-7;z++)X[256+ie++]=G;for(R=0;R<=y;R++)ue[R]=0;for(z=0;z<=143;)se[2*z+1]=8,z++,ue[8]++;for(;z<=255;)se[2*z+1]=9,z++,ue[9]++;for(;z<=279;)se[2*z+1]=7,z++,ue[7]++;for(;z<=287;)se[2*z+1]=8,z++,ue[8]++;for(Oe(se,w+1,ue),z=0;z<d;z++)P[2*z+1]=5,P[2*z]=Te(z,5);oe=new ge(se,O,v+1,w,y),q=new ge(P,V,0,d,y),fe=new ge(new Array(0),W,0,g,S)}(),F=!0),k.l_desc=new j(k.dyn_ltree,oe),k.d_desc=new j(k.dyn_dtree,q),k.bl_desc=new j(k.bl_tree,fe),k.bi_buf=0,k.bi_valid=0,pe(k)},a._tr_stored_block=M,a._tr_flush_block=function(k,z,R,Q){var G,ie,ue=0;0<k.level?(k.strm.data_type===2&&(k.strm.data_type=function(ae){var _e,_=4093624447;for(_e=0;_e<=31;_e++,_>>>=1)if(1&_&&ae.dyn_ltree[2*_e]!==0)return o;if(ae.dyn_ltree[18]!==0||ae.dyn_ltree[20]!==0||ae.dyn_ltree[26]!==0)return s;for(_e=32;_e<v;_e++)if(ae.dyn_ltree[2*_e]!==0)return s;return o}(k)),re(k,k.l_desc),re(k,k.d_desc),ue=function(ae){var _e;for(u(ae,ae.dyn_ltree,ae.l_desc.max_code),u(ae,ae.dyn_dtree,ae.d_desc.max_code),re(ae,ae.bl_desc),_e=g-1;3<=_e&&ae.bl_tree[2*Z[_e]+1]===0;_e--);return ae.opt_len+=3*(_e+1)+5+5+4,_e}(k),G=k.opt_len+3+7>>>3,(ie=k.static_len+3+7>>>3)<=G&&(G=ie)):G=ie=R+5,R+4<=G&&z!==-1?M(k,z,R,Q):k.strategy===4||ie===G?(de(k,2+(Q?1:0),3),he(k,se,P)):(de(k,4+(Q?1:0),3),function(ae,_e,_,l){var f;for(de(ae,_e-257,5),de(ae,_-1,5),de(ae,l-4,4),f=0;f<l;f++)de(ae,ae.bl_tree[2*Z[f]+1],3);K(ae,ae.dyn_ltree,_e-1),K(ae,ae.dyn_dtree,_-1)}(k,k.l_desc.max_code+1,k.d_desc.max_code+1,ue+1),he(k,k.dyn_ltree,k.dyn_dtree)),pe(k),Q&&be(k)},a._tr_tally=function(k,z,R){return k.pending_buf[k.d_buf+2*k.last_lit]=z>>>8&255,k.pending_buf[k.d_buf+2*k.last_lit+1]=255&z,k.pending_buf[k.l_buf+k.last_lit]=255&R,k.last_lit++,z===0?k.dyn_ltree[2*R]++:(k.matches++,z--,k.dyn_ltree[2*(A[R]+v+1)]++,k.dyn_dtree[2*U(z)]++),k.last_lit===k.lit_bufsize-1},a._tr_align=function(k){de(k,2,3),te(k,D,se),function(z){z.bi_valid===16?(ve(z,z.bi_buf),z.bi_buf=0,z.bi_valid=0):8<=z.bi_valid&&(z.pending_buf[z.pending++]=255&z.bi_buf,z.bi_buf>>=8,z.bi_valid-=8)}(k)}},{"../utils/common":41}],53:[function(t,n,a){n.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,n,a){(function(i){(function(o,s){if(!o.setImmediate){var c,m,b,v,w=1,d={},g=!1,p=o.document,y=Object.getPrototypeOf&&Object.getPrototypeOf(o);y=y&&y.setTimeout?y:o,c={}.toString.call(o.process)==="[object process]"?function(B){process.nextTick(function(){S(B)})}:function(){if(o.postMessage&&!o.importScripts){var B=!0,I=o.onmessage;return o.onmessage=function(){B=!1},o.postMessage("","*"),o.onmessage=I,B}}()?(v="setImmediate$"+Math.random()+"$",o.addEventListener?o.addEventListener("message",D,!1):o.attachEvent("onmessage",D),function(B){o.postMessage(v+B,"*")}):o.MessageChannel?((b=new MessageChannel).port1.onmessage=function(B){S(B.data)},function(B){b.port2.postMessage(B)}):p&&"onreadystatechange"in p.createElement("script")?(m=p.documentElement,function(B){var I=p.createElement("script");I.onreadystatechange=function(){S(B),I.onreadystatechange=null,m.removeChild(I),I=null},m.appendChild(I)}):function(B){setTimeout(S,0,B)},y.setImmediate=function(B){typeof B!="function"&&(B=new Function(""+B));for(var I=new Array(arguments.length-1),T=0;T<I.length;T++)I[T]=arguments[T+1];var O={callback:B,args:I};return d[w]=O,c(w),w++},y.clearImmediate=x}function x(B){delete d[B]}function S(B){if(g)setTimeout(S,0,B);else{var I=d[B];if(I){g=!0;try{(function(T){var O=T.callback,V=T.args;switch(V.length){case 0:O();break;case 1:O(V[0]);break;case 2:O(V[0],V[1]);break;case 3:O(V[0],V[1],V[2]);break;default:O.apply(s,V)}})(I)}finally{x(B),g=!1}}}}function D(B){B.source===o&&typeof B.data=="string"&&B.data.indexOf(v)===0&&S(+B.data.slice(v.length))}})(typeof self>"u"?i===void 0?this:i:self)}).call(this,typeof Ut<"u"?Ut:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(na);var $o=na.exports;const el=cr($o);class tl{constructor(e,t){Ce(this,"schematic");Ce(this,"textureCache");Ce(this,"blobCache");Ce(this,"stringCache");Ce(this,"blockMeshCache");Ce(this,"blockMetaCache");Ce(this,"blockModelCache");Ce(this,"faceDataCache");Ce(this,"blockStateDefinitionCache");Ce(this,"materialMap");Ce(this,"base64MaterialMap");Ce(this,"resourcePackBlobs");Ce(this,"zips");Ce(this,"textureLoader",new Ae.TextureLoader);Ce(this,"TINT_COLOR",new Ae.Color(145/255,189/255,89/255));Ce(this,"WATER_COLOR",new Ae.Color(36/255,57/255,214/255));Ce(this,"LAVA_COLOR",new Ae.Color(232/255,89/255,23/255));Ce(this,"AMBIENT_LIGHT",new Ae.Color(1,1,1));Ce(this,"SHADOW_COLOR",new Ae.Color(.5,.5,.5));Ce(this,"DEG2RAD",Math.PI/180);Ce(this,"DEBUG",!0);this.textureCache=new Map,this.blobCache=new Map,this.stringCache=new Map,this.blockMeshCache=new Map,this.blockMetaCache=new Map,this.blockModelCache=new Map,this.faceDataCache=new Map,this.blockStateDefinitionCache=new Map,this.materialMap=t??new Map,this.base64MaterialMap=new Map,this.resourcePackBlobs=e,this.textureLoader=new Ae.TextureLoader,this.schematic=void 0}setSchematic(e){this.schematic=e}async initialize(){this.zips=await Promise.all(this.resourcePackBlobs.map(e=>this.loadZip(e)))}async loadZip(e){if(Array.isArray(e))throw new Error("Invalid resource pack blob");return await el.loadAsync(e)}async getResourceBase64(e){var t;for(const n of this.zips){const a=await((t=n.file(`assets/minecraft/${e}`))==null?void 0:t.async("base64"));if(a)return a}}async getResourceBase64FromZip(e,t){var a,i;let n="";if(Array.isArray(e)){for(const o of e)if(n=await((a=o.file(`assets/minecraft/${t}`))==null?void 0:a.async("base64"))??"",n)break}else n=await((i=e.file(`assets/minecraft/${t}`))==null?void 0:i.async("base64"))??"";return this.blobCache.set(t,n),n}async getResourceString(e){var t;if(this.stringCache.has(e))return this.stringCache.get(e);for(const n of this.zips){const a=await((t=n.file(`assets/minecraft/${e}`))==null?void 0:t.async("text"));if(a)return this.stringCache.set(e,a),a}}async getBase64Image(e,t){const n=this.resolveTextureName(t.texture,e),a=await this.getResourceBase64(`textures/${n}.png`);return a===void 0?void 0:"data:image/png;base64,"+a}async getTextureMaterial(e,t,n,a){let i=t.texture;for(;i.startsWith("#");){if(!e.textures)throw new Error(`Model ${e} has a reference to a texture but no textures are defined`);if(i=e.textures[i.substring(1)],!i)throw new Error(`Texture ${i} not found`)}i.startsWith("minecraft:")&&(i=i.substring(10));const o=await this.getResourceBase64(`textures/${i}.png`);if(o===void 0)return;const s="data:image/png;base64,"+o,c=this.textureLoader.load(s,()=>{c.minFilter=Ae.NearestFilter,c.magFilter=Ae.NearestFilter,c.needsUpdate=!0}),m=t.rotation;return m&&(c.center=new Ae.Vector2(.5,.5),c.rotation=m*Math.PI*.25),new Ae.MeshStandardMaterial({map:c,side:Ae.FrontSide,alphaTest:.1,transparent:n,color:a??16777215})}getModelOption(e){const t=i=>{const o=[];for(let c=0;c<i.length;c++)o[c]=i[c].weight+(o[c-1]||0);const s=Math.random()*o[o.length-1];for(let c=0;c<o.length;c++)if(o[c]>s)return c;return o.length-1};let n=e.name;const a=[];for(const i of e.models){const o=t(i.options);a.push(i.options[o].holder),n=`${n}-${o}`}return{name:n,holders:a}}getColorForElement(e,t,n){var a;if(e.tintindex!==void 0){if(t.startsWith("block/water_"))return this.WATER_COLOR;if(t.startsWith("block/lava_"))return this.LAVA_COLOR;if(t.startsWith("block/redstone_dust_")||t.startsWith("block/redstone_power")){const i=((a=n==null?void 0:n.properties)==null?void 0:a.power)??0;return Ho[i]}else if(e.tintindex!==void 0)return this.TINT_COLOR}}getSizeFromElement(e){if(!e.from||!e.to)throw new Error("Element is missing from or to");return[e.to[0]-e.from[0],e.to[1]-e.from[1],e.to[2]-e.from[2]]}async getBlockStateDefinition(e){if(this.blockStateDefinitionCache.has(e))return this.blockStateDefinitionCache.get(e);const t=await this.loadBlockStateDefinition(e);return this.blockStateDefinitionCache.set(e,t),t}async getBlockMeta(e){if(this.blockMetaCache.has(kt(e)))return this.blockMetaCache.get(kt(e));const t=await this.loadBlockStateDefinition(e.type),n=this.getBlockModelData(e,t),a=this.getModelOption(n),i={blockStateDefinition:t,modelData:n,modelOptions:a};return this.blockMetaCache.set(kt(e),i),i}applyElementRotation(e,t){if(t){const n=new Ae.Euler(t.angle*this.DEG2RAD*t.axis[0],t.angle*this.DEG2RAD*t.axis[1],t.angle*this.DEG2RAD*t.axis[2]);e.setRotationFromEuler(n)}}recalculateIndex(e){return[e,e+1,e+2,e+2,e+1,e+3]}addBlockToMaterialGroup(e,t,n,a,i,o,s){const{materialId:c,positions:m,normals:b,uvs:v,face:w}=t;if(ra(n)[w])return;e[c]||(e[c]={positions:[],normals:[],uvs:[],colors:[],indices:[],count:0});const g=e[c];for(let y=0;y<m.length;y+=3){const x=m[y]+a+s.x,S=m[y+1]+i+s.y,D=m[y+2]+o+s.z;g.positions.push(x,S,D)}g.normals.push(...b),g.uvs.push(...v);const p=g.count;for(let y=0;y<m.length/3;y+=4)g.indices.push(p+y);g.count+=m.length/3}createMeshesFromBlocks(e,t){const n=[];let a;for(const[i,o]of Object.entries(e)){a=performance.now();const s=this.materialMap.get(i);let c=0,m=0;for(const x of o)c+=x[0].positions.length/3,m+=x[0].positions.length/2;t.chunkMeshCreation.materialRetrieval+=performance.now()-a,a=performance.now();const b=new Ae.BufferGeometry,v=new Float32Array(c*3),w=new Float32Array(c*3),d=new Float32Array(c*2);t.chunkMeshCreation.arrayCreation+=performance.now()-a;const g=[];let p=0;for(const x of o){const S=x[0],D=x[1];a=performance.now();const B=S.positions.slice();t.chunkMeshCreation.slicing+=performance.now()-a,a=performance.now();for(let I=0;I<B.length;I+=3)B[I]+=D[0],B[I+1]+=D[1],B[I+2]+=D[2];t.chunkMeshCreation.positionTranslation+=performance.now()-a,a=performance.now(),v.set(B,p*3),w.set(S.normals,p*3),d.set(S.uvs,p*2),t.chunkMeshCreation.arrayAllocation+=performance.now()-a,a=performance.now();for(let I=0;I<B.length/3;I+=4)g.push(p+I,p+I+1,p+I+2,p+I+2,p+I+1,p+I+3);t.chunkMeshCreation.indexCalculation+=performance.now()-a,p+=B.length/3}a=performance.now(),b.setAttribute("position",new Ae.BufferAttribute(v,3)),b.setAttribute("normal",new Ae.BufferAttribute(w,3)),b.setAttribute("uv",new Ae.BufferAttribute(d,2)),b.setIndex(g),t.chunkMeshCreation.geometryCreation+=performance.now()-a;const y=new Ae.Mesh(b,s);y.castShadow=!0,y.receiveShadow=!0,n.push(y)}return n}resolveTextureName(e,t){if(e==="#missing")return e;for(;e.startsWith("#");){if(!t.textures)return e;e=t.textures[e.substring(1)]??e}return e}getBlockModelData(e,t){var c;const n=[],a=t.variants?new Set(Object.keys(t.variants)[0].split(",").map(m=>m.split("=")[0])):new Set(Object.keys(e.properties)),i=Object.keys(e.properties).sort().reduce((m,b)=>{if(!a.has(b))return m;const v=`${b}=${e.properties[b]}`;return m.push(v),m},[]).join(","),o=m=>Array.isArray(m)?m.map(b=>({holder:b,weight:b.weight??1})):[{holder:m,weight:1}];if((c=t.variants)!=null&&c[""])n.push({options:o(t.variants[""])});else if(t.variants)n.push({options:o(t.variants[i])});else if(t.multipart){const m=b=>{for(const v of Object.keys(b)){if(!e.properties[v])return!1;const w=b[v],d=e.properties[v];if(!isNaN(Number(d))&&!isNaN(Number(w))){if(Number(d)!==Number(w))return!1;continue}if(!w.split("|").includes(d))return!1}return!0};for(const b of t.multipart){if(b.when){if(b.when.OR){let v=!1;for(const w of b.when.OR)if(m(w)){v=!0;break}if(!v)continue}else if(!m(b.when))continue}n.push({options:o(b.apply)})}}const s=i.length>0?`${e.type}[${i}]`:e.type;return{models:n,name:s}}async loadBlockStateDefinition(e){return JSON.parse(await this.getResourceString(`blockstates/${e}.json`)??"{}")}async loadModel(e){e.startsWith("minecraft:")&&(e=e.substring(10));let t=JSON.parse(await this.getResourceString(`models/${e}.json`)??"{}");if(t.parent){const n=await this.loadModel(t.parent);if(!n)return t;t.elements&&n.elements&&delete n.elements,t=Bo(n,t),delete t.parent}return this.blockModelCache.set(e,t),t}}class rl{constructor(e,t,n){Ce(this,"blockMeshCache");Ce(this,"materialMap");Ce(this,"base64MaterialMap");Ce(this,"ressourceLoader");Ce(this,"schematic");Ce(this,"renderer");Ce(this,"faceDataCache");Ce(this,"popupWindow",null);this.blockMeshCache=new Map,this.materialMap=t,this.base64MaterialMap=new Map,this.ressourceLoader=e,this.renderer=n,this.faceDataCache=new Map}setSchematic(e){this.schematic=e}getMaterialId(e,t,n){const a=this.ressourceLoader.resolveTextureName(t.texture,e),i=t.rotation,o=i?`-${i}`:"";return`${a}-${(n==null?void 0:n.r)??1}-${(n==null?void 0:n.g)??1}-${(n==null?void 0:n.b)??1}${o}`}normalizeElementCoords(e){if(!e.from||!e.to)throw new Error("Element is missing from or to");e.from=e.from.map(Nr),e.to=e.to.map(Nr),e.rotation&&e.rotation.origin&&(e.rotation.origin=e.rotation.origin.map(Nr))}async processFaceData(e,t,n){const a={},i={};if(!e.faces)return{subMaterials:a,uvs:i};for(const o of Zt){const s=e.faces[o];if(!s||s.texture=="#overlay"){a[o]=null,i[o]=$n.map(w=>w/16);continue}const c=this.ressourceLoader.resolveTextureName(s.texture,t),m=this.ressourceLoader.getColorForElement(s,c,n),b=this.getMaterialId(t,s,m??new Ae.Color(1,1,1));if(!this.materialMap.has(b)){const w=await this.ressourceLoader.getTextureMaterial(t,s,qt.has(n.type)||s.texture.includes("overlay"),m);this.materialMap.set(b,w??new Ae.MeshBasicMaterial);const d=await this.ressourceLoader.getBase64Image(t,s);this.base64MaterialMap.set(b,d??"")}a[o]=b;const v=s.rotation||0;i[o]=this.rotateUv((s.uv||$n).map(w=>w/16),v)}return{subMaterials:a,uvs:i}}rotateUv(e,t){t=t*Math.PI/180;const n=[.5,.5],a=[e[0]-n[0],e[1]-n[1],e[2]-n[0],e[3]-n[1]],i=[a[0]*Math.cos(t)-a[1]*Math.sin(t),a[0]*Math.sin(t)+a[1]*Math.cos(t),a[2]*Math.cos(t)-a[3]*Math.sin(t),a[2]*Math.sin(t)+a[3]*Math.cos(t)];return[i[0]+n[0],i[1]+n[1],i[2]+n[0],i[3]+n[1]]}showTextureOverlay(e,t,n=""){if((!this.popupWindow||this.popupWindow.closed)&&(this.popupWindow=window.open("","_blank","width=200,height=400")),!this.popupWindow){console.error("Failed to open popup window");return}const a=this.popupWindow.document;let i=a.getElementById("all-images-container");i||(i=a.createElement("div"),i.id="all-images-container",i.style.backgroundColor="darkgrey",i.style.display="block",i.style.width="100%",i.style.height="100%",i.style.overflowY="auto",a.body.appendChild(i));const o=a.createElement("div");o.style.backgroundColor="black",o.style.height="100px",o.style.position="relative",o.style.marginBottom="10px";const s=a.createElement("img");s.src=e,s.style.imageRendering="pixelated",s.style.position="absolute",s.style.width="100px",s.style.height="100px",s.style.backgroundColor="gray",o.appendChild(s);const c=a.createElement("div");c.innerText=n,c.style.color="white",c.style.backgroundColor="black",o.appendChild(c),t||(t=[0,0,16,16]);const m=a.createElement("div");m.style.position="absolute",m.style.width=`${(t[2]-t[0])/16*100-1}px`,m.style.height=`${(t[3]-t[1])/16*100-1}px`,m.style.border="1px solid blue",m.style.left=`${t[0]/16*100}px`,m.style.top=`${t[1]/16*100}px`,o.appendChild(m),i.appendChild(o)}async getBlockMesh(e,t){const n={},a=["east","west","up","down","south","north"],{modelOptions:i}=await this.ressourceLoader.getBlockMeta(e);let o=0,s=performance.now();for(const c of i.holders){if(o++,c===void 0)continue;let m={x:(c.x??0)*(Math.PI/180),y:(c.y??0)*(Math.PI/180),z:(c.z??0)*(Math.PI/180)};const b=await this.ressourceLoader.loadModel(c.model),v=b==null?void 0:b.elements;if(!v)continue;let w=0;for(const d of v){if(w++,!d.from||!d.to)continue;this.normalizeElementCoords(d);let g;const p=`${c.model}-${o}-${w}`;if(this.faceDataCache.has(p))g=this.faceDataCache.get(p);else{try{g=await this.processFaceData(d,b,e)}catch{continue}this.faceDataCache.set(p,g)}const y=d.from,x=d.to,S=d.rotation||null;if(!y||!x)continue;const D=[x[0]-y[0],x[1]-y[1],x[2]-y[2]],B=Ko(g.uvs);for(const I of a){const T=g.subMaterials[I];if(!T)continue;const O=`${T}-${I}`;n[O]||(n[O]={materialId:T,face:I,positions:[],normals:[],uvs:[]});const V=B[I];for(const{pos:W,uv:Z}of V.corners){if(!y||!D||!W||!Z)continue;let se=[y[0]+D[0]*W[0],y[1]+D[1]*W[1],y[2]+D[2]*W[2]];S&&(se=this.applyElementRotation(se,S)),se=this.applyRotation(se,m),n[O].positions.push(...se),e.type==="redstone_wire"?n[O].uvs.push(Z[0],1-Z[1]):n[O].uvs.push(1-Z[0],1-Z[1]),n[O].normals.push(...V.normal)}}}}return performance.now()-s>50&&console.error("Slow block mesh builder",e,"took",performance.now()-s),n}applyRotation(e,t,n=[.5,.5,.5]){let{x:a,y:i,z:o}=t;i=-i,a=-a,o=-o;const s=[e[0]-n[0],e[1]-n[1],e[2]-n[2]],c=[[Math.cos(i)*Math.cos(o),Math.sin(a)*Math.sin(i)*Math.cos(o)-Math.cos(a)*Math.sin(o),Math.cos(a)*Math.sin(i)*Math.cos(o)+Math.sin(a)*Math.sin(o)],[Math.cos(i)*Math.sin(o),Math.sin(a)*Math.sin(i)*Math.sin(o)+Math.cos(a)*Math.cos(o),Math.cos(a)*Math.sin(i)*Math.sin(o)-Math.sin(a)*Math.cos(o)],[-Math.sin(i),Math.sin(a)*Math.cos(i),Math.cos(a)*Math.cos(i)]],m=[0,0,0];for(let v=0;v<3;v++)for(let w=0;w<3;w++)m[v]+=s[w]*c[v][w];return[m[0]+n[0],m[1]+n[1],m[2]+n[2]]}applyElementRotation(e,t){let{origin:n,axis:a,angle:i}=t;i=i*Math.PI/180;const o=[e[0]-n[0],e[1]-n[1],e[2]-n[2]];let s=[[1,0,0],[0,1,0],[0,0,1]];a==="x"?s=[[1,0,0],[0,Math.cos(i),-Math.sin(i)],[0,Math.sin(i),Math.cos(i)]]:a==="y"?s=[[Math.cos(i),0,Math.sin(i)],[0,1,0],[-Math.sin(i),0,Math.cos(i)]]:a==="z"&&(s=[[Math.cos(i),-Math.sin(i),0],[Math.sin(i),Math.cos(i),0],[0,0,1]]);const c=[0,0,0];for(let b=0;b<3;b++)for(let v=0;v<3;v++)c[b]+=o[v]*s[b][v];return[c[0]+n[0],c[1]+n[1],c[2]+n[2]]}occludedFacesListToInt(e){let t=0;for(const n of Zt)t=t<<1|(e[n]?1:0);return t}getOccludedFacesForBlock(e,t){var m;const n=e.type,{x:a,y:i,z:o}=t,s={east:new Ae.Vector3(1,0,0),west:new Ae.Vector3(-1,0,0),up:new Ae.Vector3(0,1,0),down:new Ae.Vector3(0,-1,0),south:new Ae.Vector3(0,0,1),north:new Ae.Vector3(0,0,-1)},c={east:!1,west:!1,up:!1,down:!1,south:!1,north:!1};if(ea.has(n)||qt.has(n))return this.occludedFacesListToInt(c);if(Zo(e)){const b=(m=e.properties)==null?void 0:m.facing,v=qo(b);return c[v]=!0,this.occludedFacesListToInt(c)}for(const b of Zt){const v=s[b],w=this.schematic.getBlock(new Ae.Vector3(a,i,o).add(v));w!==void 0&&(ea.has(w.type)||qt.has(w.type)||(c[b]=!0))}return this.occludedFacesListToInt(c)}async updateBlockModelLookup(e,t){for(const n of t.blockTypes){if(Jt.has(n.type)||e.get(kt(n)))continue;const a=await this.ressourceLoader.getBlockStateDefinition(n.type);if(!a)continue;const i=this.ressourceLoader.getBlockModelData(n,a);i.models.length&&e.set(kt(n),i)}return e}async getBlockMeshFromCache(e,t){const n=kt(e);if(this.blockMeshCache.has(n))return this.blockMeshCache.get(n);{const a=performance.now(),i=await this.getBlockMesh(e,t);return performance.now()-a>100&&console.error("Slow block",t,e,"took",performance.now()-a),this.blockMeshCache.set(n,i),i}}}class nl{constructor(e,t,n){Ce(this,"schematic");Ce(this,"blockMeshBuilder");Ce(this,"ressourceLoader");Ce(this,"renderer");Ce(this,"worldMeshes",[]);this.ressourceLoader=e,this.renderer=n,this.blockMeshBuilder=new rl(e,t,this.renderer)}setSchematic(e){this.schematic=e,this.blockMeshBuilder.setSchematic(e)}splitSchemaIntoChunks(e={chunkWidth:64,chunkHeight:64,chunkLength:64}){const t=[],{chunkWidth:n,chunkHeight:a,chunkLength:i}=e,{width:o,height:s}=this.schematic,c=Math.ceil(o/n),m=Math.ceil(s/a);for(const b of this.schematic){const{x:v,y:w,z:d}=b,g=Math.floor(v/n),p=Math.floor(w/a),y=Math.floor(d/i),x=g+p*c+y*c*m;t[x]||(t[x]=[]),t[x].push(b)}return t}async getChunkMesh(e,t){let a=0,i={blockMeshCreation:0,blockMeshRetrieval:0,occlusion:0,chunkMeshCreation:{total_time:0,arrayCreation:0,arrayAllocation:0,indexCalculation:0,vertexTranslation:0,geometryCreation:0,materialRetrieval:0,slicing:0}},o,s=performance.now();const c=t??{x:0,y:0,z:0},m={};for(let v=0;v<e.length&&!(a>1e6);v++){const w=e[v];let{x:d,y:g,z:p}=w;d+=c.x,g+=c.y,p+=c.z;const y=this.schematic.getBlock(w);if(Jt.has(y.type))continue;o=performance.now();const x=ra(this.blockMeshBuilder.getOccludedFacesForBlock(y,w));i.occlusion+=performance.now()-o,o=performance.now();const S=await this.blockMeshBuilder.getBlockMeshFromCache(y,w);i.blockMeshRetrieval+=performance.now()-o;for(const D in S){const B=S[D].materialId,I=S[D];x[I.face]||(m[B]||(m[B]=[]),m[B].push([S[D],[d,g,p]]))}i.blockMeshCreation+=performance.now()-o,a++}o=performance.now();const b=this.ressourceLoader.createMeshesFromBlocks(m,i);return i.chunkMeshCreation.total_time=performance.now()-o,console.log("total time",performance.now()-s),console.log("Chunk times",i),b}isSolid(e,t,n){const a=this.schematic.getBlock(new Ae.Vector3(e,t,n));return a&&!qt.has(a.type)}initializeMeshCreation(){if(this.schematic===void 0)return{materialGroups:null};const e=this.schematic.width,t=this.schematic.height,n=this.schematic.length,a={x:-e/2,y:0,z:-n/2};return{worldWidth:e,worldHeight:t,worldLength:n,offset:a}}async getSchematicMeshes(e={chunkWidth:64,chunkHeight:64,chunkLength:64}){const{offset:t}=this.initializeMeshCreation(),n=await this.splitSchemaIntoChunks(e),a=n.length;let i=0;for(const o of n){i++;const s=await this.getChunkMesh(o,t??{x:0,y:0,z:0});s.length!==0&&(this.renderer.scene.add(...s),this.worldMeshes.push(s),console.log("Chunk",i,"of",a,"processed"))}return this.worldMeshes}}function al(r){return r instanceof Map&&(r=Object.fromEntries(r)),r}function er(r){const e={},t=al(r);return Object.keys(t).forEach(n=>{const a=t[n];switch(Kt(a)){case De.Byte:case De.Short:case De.Int:case De.Float:e[n]=a.value;break;case De.Long:case De.Double:case De.String:case De.ByteArray:case De.IntArray:case De.LongArray:e[n]=a;break;case De.Compound:e[n]=er(a);break;case De.List:e[n]=aa(a);break;default:throw new Error(`Unknown tag type: ${Kt(a)}`)}}),e}function aa(r){const e=[];return r.forEach((t,n)=>{switch(Kt(t)){case De.Byte:case De.Short:case De.Int:case De.Float:e[n]=t.value;break;case De.Long:case De.Double:case De.String:case De.ByteArray:case De.IntArray:case De.LongArray:e[n]=t;break;case De.Compound:e[n]=er(t);break;case De.List:e[n]=aa(t);break;default:throw new Error(`Unknown tag type: ${Kt(t)}`)}}),e}function il(r,e,t){const n=new Array(r);for(let a=0;a<r;a++){n[a]=new Array(e);for(let i=0;i<e;i++)n[a][i]=new Array(t)}return n}class tr{constructor({width:e,height:t,length:n,blockTypes:a,dataVersion:i,metadata:o={},format:s}){this.width=e,this.height=t,this.length=n,this.blockTypes=a,this.dataVersion=i,this.metadata=o,this.format=s,this.blocks=il(e,t,n)}contains(e){return e.x<this.width&&e.y<this.height&&e.z<this.length&&e.x>=0&&e.y>=0&&e.z>=0}getBlock(e){if(this.contains(e))return this.blocks[e.x][e.y][e.z]}setBlock(e,t){this.contains(e)&&(this.blocks[e.x][e.y][e.z]=t)}[Symbol.iterator](){let e=0,t=0,n=0;return{next:(function(){if(e===-1)return{done:!0};const a={x:e,y:t,z:n};return++e>this.width-1&&(e=0,++n>this.length-1&&(n=0,++t>this.height-1&&(e=-1))),{value:a}}).bind(this)}}}const sl=1913;function ol(r){const e=r.get("BlockData"),t=r.get("Width").value,n=r.get("Height").value,a=r.get("Length").value,o=r.get("DataVersion")?r.get("DataVersion").value:sl,s=r.get("Metadata"),c=new Map;for(let[d,g]of r.get("Palette").entries()){const p=d.indexOf(":");p!==-1&&(d=d.substring(p+1));const y={},x=d.indexOf("[");let S;x!==-1?(S=d.substring(0,x),d.substring(x+1,d.length-1).split(",").forEach(B=>{const I=B.split("=");y[I[0]]=I[1]})):S=d,c.set(g.value,{type:S,properties:y})}const m=s?er(s):{},b=new tr({width:t,height:n,length:a,blockTypes:[...c.values()],dataVersion:o,metadata:m,format:{type:"sponge",version:r.get("Version").value}});let v=0,w=0;for(;w<e.length;){let d=0,g=0;for(;;){if(d|=(e[w]&127)<<g++*7,g>5)throw new Error("VarInt too big");if((e[w]&128)!=128){w++;break}w++}const p=Math.floor(v/(t*a)),y=Math.floor(v%(t*a)/t),x=v%(t*a)%t;v++;const S=c.get(d);b.setBlock({x,y:p,z:y},S)}return b}function ll(r){const e=r.get("Blocks"),t=e.get("Data"),n=r.get("Width").value,a=r.get("Height").value,i=r.get("Length").value,o=r.get("DataVersion").value,s=r.get("Metadata"),c=new Map;for(let[d,g]of e.get("Palette").entries()){const p=d.indexOf(":");p!==-1&&(d=d.substring(p+1));const y={},x=d.indexOf("[");let S;x!==-1?(S=d.substring(0,x),d.substring(x+1,d.length-1).split(",").forEach(B=>{const I=B.split("=");y[I[0]]=I[1]})):S=d,c.set(g.value,{type:S,properties:y})}const m=s?er(s):{},b=new tr({width:n,height:a,length:i,blockTypes:[...c.values()],dataVersion:o,metadata:m,format:{type:"sponge",version:3}});let v=0,w=0;for(;w<t.length;){let d=0,g=0;for(;;){if(d|=(t[w]&127)<<g++*7,g>5)throw new Error("VarInt too big");if((t[w]&128)!=128){w++;break}w++}const p=Math.floor(v/(n*i)),y=Math.floor(v%(n*i)/n),x=v%(n*i)%n;v++;const S=c.get(d);b.setBlock({x,y:p,z:y},S)}return b}const cl=1913;function fl(r){const e=r.get("size"),t=e[0].value,n=e[1].value,a=e[2].value,i=r.get("blocks"),s=r.get("DataVersion")?r.get("DataVersion").value:cl,c=new Map;for(let b in r.get("palette")){const v=r.get("palette")[b];let w=v.get("Name");const d=w.indexOf(":");d!==-1&&(w=w.substring(d+1));const g={},p=v.get("Properties");if(p)for(const[y,x]of p.entries())g[y]=x;c.set(parseInt(b),{type:w,properties:g})}const m=new tr({width:t,height:n,length:a,blockTypes:[...c.values()],dataVersion:s,format:{type:"structure"}});for(const b of i){const v=b.get("state").value,w=c.get(v),d=b.get("pos"),g=d[0].value,p=d[1].value,y=d[2].value;m.setBlock({x:g,y:p,z:y},w)}return m}const ul={blocks:{"0:0":"minecraft:air","1:0":"minecraft:stone","1:1":"minecraft:granite","1:2":"minecraft:polished_granite","1:3":"minecraft:diorite","1:4":"minecraft:polished_diorite","1:5":"minecraft:andesite","1:6":"minecraft:polished_andesite","2:0":"minecraft:grass_block[snowy=false]","3:0":"minecraft:dirt","3:1":"minecraft:coarse_dirt","3:2":"minecraft:podzol[snowy=false]","4:0":"minecraft:cobblestone","5:0":"minecraft:oak_planks","5:1":"minecraft:spruce_planks","5:2":"minecraft:birch_planks","5:3":"minecraft:jungle_planks","5:4":"minecraft:acacia_planks","5:5":"minecraft:dark_oak_planks","6:0":"minecraft:oak_sapling[stage=0]","6:1":"minecraft:spruce_sapling[stage=0]","6:2":"minecraft:birch_sapling[stage=0]","6:3":"minecraft:jungle_sapling[stage=0]","6:4":"minecraft:acacia_sapling[stage=0]","6:5":"minecraft:dark_oak_sapling[stage=0]","6:8":"minecraft:oak_sapling[stage=1]","6:9":"minecraft:spruce_sapling[stage=1]","6:10":"minecraft:birch_sapling[stage=1]","6:11":"minecraft:jungle_sapling[stage=1]","6:12":"minecraft:acacia_sapling[stage=1]","6:13":"minecraft:dark_oak_sapling[stage=1]","7:0":"minecraft:bedrock","8:0":"minecraft:water[level=0]","8:1":"minecraft:water[level=1]","8:2":"minecraft:water[level=2]","8:3":"minecraft:water[level=3]","8:4":"minecraft:water[level=4]","8:5":"minecraft:water[level=5]","8:6":"minecraft:water[level=6]","8:7":"minecraft:water[level=7]","8:8":"minecraft:water[level=8]","8:9":"minecraft:water[level=9]","8:10":"minecraft:water[level=10]","8:11":"minecraft:water[level=11]","8:12":"minecraft:water[level=12]","8:13":"minecraft:water[level=13]","8:14":"minecraft:water[level=14]","8:15":"minecraft:water[level=15]","9:0":"minecraft:water[level=0]","9:1":"minecraft:water[level=1]","9:2":"minecraft:water[level=2]","9:3":"minecraft:water[level=3]","9:4":"minecraft:water[level=4]","9:5":"minecraft:water[level=5]","9:6":"minecraft:water[level=6]","9:7":"minecraft:water[level=7]","9:8":"minecraft:water[level=8]","9:9":"minecraft:water[level=9]","9:10":"minecraft:water[level=10]","9:11":"minecraft:water[level=11]","9:12":"minecraft:water[level=12]","9:13":"minecraft:water[level=13]","9:14":"minecraft:water[level=14]","9:15":"minecraft:water[level=15]","10:0":"minecraft:lava[level=0]","10:1":"minecraft:lava[level=1]","10:2":"minecraft:lava[level=2]","10:3":"minecraft:lava[level=3]","10:4":"minecraft:lava[level=4]","10:5":"minecraft:lava[level=5]","10:6":"minecraft:lava[level=6]","10:7":"minecraft:lava[level=7]","10:8":"minecraft:lava[level=8]","10:9":"minecraft:lava[level=9]","10:10":"minecraft:lava[level=10]","10:11":"minecraft:lava[level=11]","10:12":"minecraft:lava[level=12]","10:13":"minecraft:lava[level=13]","10:14":"minecraft:lava[level=14]","10:15":"minecraft:lava[level=15]","11:0":"minecraft:lava[level=0]","11:1":"minecraft:lava[level=1]","11:2":"minecraft:lava[level=2]","11:3":"minecraft:lava[level=3]","11:4":"minecraft:lava[level=4]","11:5":"minecraft:lava[level=5]","11:6":"minecraft:lava[level=6]","11:7":"minecraft:lava[level=7]","11:8":"minecraft:lava[level=8]","11:9":"minecraft:lava[level=9]","11:10":"minecraft:lava[level=10]","11:11":"minecraft:lava[level=11]","11:12":"minecraft:lava[level=12]","11:13":"minecraft:lava[level=13]","11:14":"minecraft:lava[level=14]","11:15":"minecraft:lava[level=15]","12:0":"minecraft:sand","12:1":"minecraft:red_sand","13:0":"minecraft:gravel","14:0":"minecraft:gold_ore","15:0":"minecraft:iron_ore","16:0":"minecraft:coal_ore","17:0":"minecraft:oak_log[axis=y]","17:1":"minecraft:spruce_log[axis=y]","17:2":"minecraft:birch_log[axis=y]","17:3":"minecraft:jungle_log[axis=y]","17:4":"minecraft:oak_log[axis=x]","17:5":"minecraft:spruce_log[axis=x]","17:6":"minecraft:birch_log[axis=x]","17:7":"minecraft:jungle_log[axis=x]","17:8":"minecraft:oak_log[axis=z]","17:9":"minecraft:spruce_log[axis=z]","17:10":"minecraft:birch_log[axis=z]","17:11":"minecraft:jungle_log[axis=z]","17:12":"minecraft:oak_wood","17:13":"minecraft:spruce_wood","17:14":"minecraft:birch_wood","17:15":"minecraft:jungle_wood","18:0":"minecraft:oak_leaves[persistent=false,distance=1]","18:1":"minecraft:spruce_leaves[persistent=false,distance=1]","18:2":"minecraft:birch_leaves[persistent=false,distance=1]","18:3":"minecraft:jungle_leaves[persistent=false,distance=1]","18:4":"minecraft:oak_leaves[persistent=true,distance=1]","18:5":"minecraft:spruce_leaves[persistent=true,distance=1]","18:6":"minecraft:birch_leaves[persistent=true,distance=1]","18:7":"minecraft:jungle_leaves[persistent=true,distance=1]","18:8":"minecraft:oak_leaves[persistent=false,distance=1]","18:9":"minecraft:spruce_leaves[persistent=false,distance=1]","18:10":"minecraft:birch_leaves[persistent=false,distance=1]","18:11":"minecraft:jungle_leaves[persistent=false,distance=1]","18:12":"minecraft:oak_leaves[persistent=true,distance=1]","18:13":"minecraft:spruce_leaves[persistent=true,distance=1]","18:14":"minecraft:birch_leaves[persistent=true,distance=1]","18:15":"minecraft:jungle_leaves[persistent=true,distance=1]","19:0":"minecraft:sponge","19:1":"minecraft:wet_sponge","20:0":"minecraft:glass","21:0":"minecraft:lapis_ore","22:0":"minecraft:lapis_block","23:0":"minecraft:dispenser[triggered=false,facing=down]","23:1":"minecraft:dispenser[triggered=false,facing=up]","23:2":"minecraft:dispenser[triggered=false,facing=north]","23:3":"minecraft:dispenser[triggered=false,facing=south]","23:4":"minecraft:dispenser[triggered=false,facing=west]","23:5":"minecraft:dispenser[triggered=false,facing=east]","23:8":"minecraft:dispenser[triggered=true,facing=down]","23:9":"minecraft:dispenser[triggered=true,facing=up]","23:10":"minecraft:dispenser[triggered=true,facing=north]","23:11":"minecraft:dispenser[triggered=true,facing=south]","23:12":"minecraft:dispenser[triggered=true,facing=west]","23:13":"minecraft:dispenser[triggered=true,facing=east]","24:0":"minecraft:sandstone","24:1":"minecraft:chiseled_sandstone","24:2":"minecraft:cut_sandstone","25:0":"minecraft:note_block","26:0":"minecraft:red_bed[part=foot,facing=south,occupied=false]","26:1":"minecraft:red_bed[part=foot,facing=west,occupied=false]","26:2":"minecraft:red_bed[part=foot,facing=north,occupied=false]","26:3":"minecraft:red_bed[part=foot,facing=east,occupied=false]","26:4":"minecraft:red_bed[part=foot,facing=south,occupied=true]","26:5":"minecraft:red_bed[part=foot,facing=west,occupied=true]","26:6":"minecraft:red_bed[part=foot,facing=north,occupied=true]","26:7":"minecraft:red_bed[part=foot,facing=east,occupied=true]","26:8":"minecraft:red_bed[part=head,facing=south,occupied=false]","26:9":"minecraft:red_bed[part=head,facing=west,occupied=false]","26:10":"minecraft:red_bed[part=head,facing=north,occupied=false]","26:11":"minecraft:red_bed[part=head,facing=east,occupied=false]","26:12":"minecraft:red_bed[part=head,facing=south,occupied=true]","26:13":"minecraft:red_bed[part=head,facing=west,occupied=true]","26:14":"minecraft:red_bed[part=head,facing=north,occupied=true]","26:15":"minecraft:red_bed[part=head,facing=east,occupied=true]","27:0":"minecraft:powered_rail[shape=north_south,powered=false]","27:1":"minecraft:powered_rail[shape=east_west,powered=false]","27:2":"minecraft:powered_rail[shape=ascending_east,powered=false]","27:3":"minecraft:powered_rail[shape=ascending_west,powered=false]","27:4":"minecraft:powered_rail[shape=ascending_north,powered=false]","27:5":"minecraft:powered_rail[shape=ascending_south,powered=false]","27:8":"minecraft:powered_rail[shape=north_south,powered=true]","27:9":"minecraft:powered_rail[shape=east_west,powered=true]","27:10":"minecraft:powered_rail[shape=ascending_east,powered=true]","27:11":"minecraft:powered_rail[shape=ascending_west,powered=true]","27:12":"minecraft:powered_rail[shape=ascending_north,powered=true]","27:13":"minecraft:powered_rail[shape=ascending_south,powered=true]","28:0":"minecraft:detector_rail[shape=north_south,powered=false]","28:1":"minecraft:detector_rail[shape=east_west,powered=false]","28:2":"minecraft:detector_rail[shape=ascending_east,powered=false]","28:3":"minecraft:detector_rail[shape=ascending_west,powered=false]","28:4":"minecraft:detector_rail[shape=ascending_north,powered=false]","28:5":"minecraft:detector_rail[shape=ascending_south,powered=false]","28:8":"minecraft:detector_rail[shape=north_south,powered=true]","28:9":"minecraft:detector_rail[shape=east_west,powered=true]","28:10":"minecraft:detector_rail[shape=ascending_east,powered=true]","28:11":"minecraft:detector_rail[shape=ascending_west,powered=true]","28:12":"minecraft:detector_rail[shape=ascending_north,powered=true]","28:13":"minecraft:detector_rail[shape=ascending_south,powered=true]","29:0":"minecraft:sticky_piston[facing=down,extended=false]","29:1":"minecraft:sticky_piston[facing=up,extended=false]","29:2":"minecraft:sticky_piston[facing=north,extended=false]","29:3":"minecraft:sticky_piston[facing=south,extended=false]","29:4":"minecraft:sticky_piston[facing=west,extended=false]","29:5":"minecraft:sticky_piston[facing=east,extended=false]","29:8":"minecraft:sticky_piston[facing=down,extended=true]","29:9":"minecraft:sticky_piston[facing=up,extended=true]","29:10":"minecraft:sticky_piston[facing=north,extended=true]","29:11":"minecraft:sticky_piston[facing=south,extended=true]","29:12":"minecraft:sticky_piston[facing=west,extended=true]","29:13":"minecraft:sticky_piston[facing=east,extended=true]","30:0":"minecraft:cobweb","31:0":"minecraft:dead_bush","31:1":"minecraft:grass","31:2":"minecraft:fern","32:0":"minecraft:dead_bush","33:0":"minecraft:piston[facing=down,extended=false]","33:1":"minecraft:piston[facing=up,extended=false]","33:2":"minecraft:piston[facing=north,extended=false]","33:3":"minecraft:piston[facing=south,extended=false]","33:4":"minecraft:piston[facing=west,extended=false]","33:5":"minecraft:piston[facing=east,extended=false]","33:8":"minecraft:piston[facing=down,extended=true]","33:9":"minecraft:piston[facing=up,extended=true]","33:10":"minecraft:piston[facing=north,extended=true]","33:11":"minecraft:piston[facing=south,extended=true]","33:12":"minecraft:piston[facing=west,extended=true]","33:13":"minecraft:piston[facing=east,extended=true]","34:0":"minecraft:piston_head[short=false,facing=down,type=normal]","34:1":"minecraft:piston_head[short=false,facing=up,type=normal]","34:2":"minecraft:piston_head[short=false,facing=north,type=normal]","34:3":"minecraft:piston_head[short=false,facing=south,type=normal]","34:4":"minecraft:piston_head[short=false,facing=west,type=normal]","34:5":"minecraft:piston_head[short=false,facing=east,type=normal]","34:8":"minecraft:piston_head[short=false,facing=down,type=sticky]","34:9":"minecraft:piston_head[short=false,facing=up,type=sticky]","34:10":"minecraft:piston_head[short=false,facing=north,type=sticky]","34:11":"minecraft:piston_head[short=false,facing=south,type=sticky]","34:12":"minecraft:piston_head[short=false,facing=west,type=sticky]","34:13":"minecraft:piston_head[short=false,facing=east,type=sticky]","35:0":"minecraft:white_wool","35:1":"minecraft:orange_wool","35:2":"minecraft:magenta_wool","35:3":"minecraft:light_blue_wool","35:4":"minecraft:yellow_wool","35:5":"minecraft:lime_wool","35:6":"minecraft:pink_wool","35:7":"minecraft:gray_wool","35:8":"minecraft:light_gray_wool","35:9":"minecraft:cyan_wool","35:10":"minecraft:purple_wool","35:11":"minecraft:blue_wool","35:12":"minecraft:brown_wool","35:13":"minecraft:green_wool","35:14":"minecraft:red_wool","35:15":"minecraft:black_wool","36:0":"minecraft:moving_piston[facing=down,type=normal]","36:1":"minecraft:moving_piston[facing=up,type=normal]","36:2":"minecraft:moving_piston[facing=north,type=normal]","36:3":"minecraft:moving_piston[facing=south,type=normal]","36:4":"minecraft:moving_piston[facing=west,type=normal]","36:5":"minecraft:moving_piston[facing=east,type=normal]","36:8":"minecraft:moving_piston[facing=down,type=sticky]","36:9":"minecraft:moving_piston[facing=up,type=sticky]","36:10":"minecraft:moving_piston[facing=north,type=sticky]","36:11":"minecraft:moving_piston[facing=south,type=sticky]","36:12":"minecraft:moving_piston[facing=west,type=sticky]","36:13":"minecraft:moving_piston[facing=east,type=sticky]","37:0":"minecraft:dandelion","38:0":"minecraft:poppy","38:1":"minecraft:blue_orchid","38:2":"minecraft:allium","38:3":"minecraft:azure_bluet","38:4":"minecraft:red_tulip","38:5":"minecraft:orange_tulip","38:6":"minecraft:white_tulip","38:7":"minecraft:pink_tulip","38:8":"minecraft:oxeye_daisy","39:0":"minecraft:brown_mushroom","40:0":"minecraft:red_mushroom","41:0":"minecraft:gold_block","42:0":"minecraft:iron_block","43:0":"minecraft:stone_slab[type=double]","43:1":"minecraft:sandstone_slab[type=double]","43:2":"minecraft:petrified_oak_slab[type=double]","43:3":"minecraft:cobblestone_slab[type=double]","43:4":"minecraft:brick_slab[type=double]","43:5":"minecraft:stone_brick_slab[type=double]","43:6":"minecraft:nether_brick_slab[type=double]","43:7":"minecraft:quartz_slab[type=double]","43:8":"minecraft:smooth_stone","43:9":"minecraft:smooth_sandstone","43:10":"minecraft:petrified_oak_slab[type=double]","43:11":"minecraft:cobblestone_slab[type=double]","43:12":"minecraft:brick_slab[type=double]","43:13":"minecraft:stone_brick_slab[type=double]","43:14":"minecraft:nether_brick_slab[type=double]","43:15":"minecraft:smooth_quartz","44:0":"minecraft:stone_slab[type=bottom]","44:1":"minecraft:sandstone_slab[type=bottom]","44:2":"minecraft:petrified_oak_slab[type=bottom]","44:3":"minecraft:cobblestone_slab[type=bottom]","44:4":"minecraft:brick_slab[type=bottom]","44:5":"minecraft:stone_brick_slab[type=bottom]","44:6":"minecraft:nether_brick_slab[type=bottom]","44:7":"minecraft:quartz_slab[type=bottom]","44:8":"minecraft:stone_slab[type=top]","44:9":"minecraft:sandstone_slab[type=top]","44:10":"minecraft:petrified_oak_slab[type=top]","44:11":"minecraft:cobblestone_slab[type=top]","44:12":"minecraft:brick_slab[type=top]","44:13":"minecraft:stone_brick_slab[type=top]","44:14":"minecraft:nether_brick_slab[type=top]","44:15":"minecraft:quartz_slab[type=top]","45:0":"minecraft:bricks","46:0":"minecraft:tnt[unstable=false]","46:1":"minecraft:tnt[unstable=true]","47:0":"minecraft:bookshelf","48:0":"minecraft:mossy_cobblestone","49:0":"minecraft:obsidian","50:1":"minecraft:wall_torch[facing=east]","50:2":"minecraft:wall_torch[facing=west]","50:3":"minecraft:wall_torch[facing=south]","50:4":"minecraft:wall_torch[facing=north]","50:5":"minecraft:torch","51:0":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=0]","51:1":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=1]","51:2":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=2]","51:3":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=3]","51:4":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=4]","51:5":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=5]","51:6":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=6]","51:7":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=7]","51:8":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=8]","51:9":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=9]","51:10":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=10]","51:11":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=11]","51:12":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=12]","51:13":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=13]","51:14":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=14]","51:15":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=15]","52:0":"minecraft:spawner","53:0":"minecraft:oak_stairs[half=bottom,shape=straight,facing=east]","53:1":"minecraft:oak_stairs[half=bottom,shape=straight,facing=west]","53:2":"minecraft:oak_stairs[half=bottom,shape=straight,facing=south]","53:3":"minecraft:oak_stairs[half=bottom,shape=straight,facing=north]","53:4":"minecraft:oak_stairs[half=top,shape=straight,facing=east]","53:5":"minecraft:oak_stairs[half=top,shape=straight,facing=west]","53:6":"minecraft:oak_stairs[half=top,shape=straight,facing=south]","53:7":"minecraft:oak_stairs[half=top,shape=straight,facing=north]","54:2":"minecraft:chest[facing=north,type=single]","54:3":"minecraft:chest[facing=south,type=single]","54:4":"minecraft:chest[facing=west,type=single]","54:5":"minecraft:chest[facing=east,type=single]","55:0":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=0]","55:1":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=1]","55:2":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=2]","55:3":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=3]","55:4":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=4]","55:5":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=5]","55:6":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=6]","55:7":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=7]","55:8":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=8]","55:9":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=9]","55:10":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=10]","55:11":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=11]","55:12":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=12]","55:13":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=13]","55:14":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=14]","55:15":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=15]","56:0":"minecraft:diamond_ore","57:0":"minecraft:diamond_block","58:0":"minecraft:crafting_table","59:0":"minecraft:wheat[age=0]","59:1":"minecraft:wheat[age=1]","59:2":"minecraft:wheat[age=2]","59:3":"minecraft:wheat[age=3]","59:4":"minecraft:wheat[age=4]","59:5":"minecraft:wheat[age=5]","59:6":"minecraft:wheat[age=6]","59:7":"minecraft:wheat[age=7]","60:0":"minecraft:farmland[moisture=0]","60:1":"minecraft:farmland[moisture=1]","60:2":"minecraft:farmland[moisture=2]","60:3":"minecraft:farmland[moisture=3]","60:4":"minecraft:farmland[moisture=4]","60:5":"minecraft:farmland[moisture=5]","60:6":"minecraft:farmland[moisture=6]","60:7":"minecraft:farmland[moisture=7]","61:2":"minecraft:furnace[facing=north,lit=false]","61:3":"minecraft:furnace[facing=south,lit=false]","61:4":"minecraft:furnace[facing=west,lit=false]","61:5":"minecraft:furnace[facing=east,lit=false]","62:2":"minecraft:furnace[facing=north,lit=true]","62:3":"minecraft:furnace[facing=south,lit=true]","62:4":"minecraft:furnace[facing=west,lit=true]","62:5":"minecraft:furnace[facing=east,lit=true]","63:0":"minecraft:sign[rotation=0]","63:1":"minecraft:sign[rotation=1]","63:2":"minecraft:sign[rotation=2]","63:3":"minecraft:sign[rotation=3]","63:4":"minecraft:sign[rotation=4]","63:5":"minecraft:sign[rotation=5]","63:6":"minecraft:sign[rotation=6]","63:7":"minecraft:sign[rotation=7]","63:8":"minecraft:sign[rotation=8]","63:9":"minecraft:sign[rotation=9]","63:10":"minecraft:sign[rotation=10]","63:11":"minecraft:sign[rotation=11]","63:12":"minecraft:sign[rotation=12]","63:13":"minecraft:sign[rotation=13]","63:14":"minecraft:sign[rotation=14]","63:15":"minecraft:sign[rotation=15]","64:0":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]","64:1":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]","64:2":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]","64:3":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]","64:4":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]","64:5":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]","64:6":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]","64:7":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]","64:8":"minecraft:oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]","64:9":"minecraft:oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]","64:10":"minecraft:oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]","64:11":"minecraft:oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]","65:2":"minecraft:ladder[facing=north]","65:3":"minecraft:ladder[facing=south]","65:4":"minecraft:ladder[facing=west]","65:5":"minecraft:ladder[facing=east]","66:0":"minecraft:rail[shape=north_south]","66:1":"minecraft:rail[shape=east_west]","66:2":"minecraft:rail[shape=ascending_east]","66:3":"minecraft:rail[shape=ascending_west]","66:4":"minecraft:rail[shape=ascending_north]","66:5":"minecraft:rail[shape=ascending_south]","66:6":"minecraft:rail[shape=south_east]","66:7":"minecraft:rail[shape=south_west]","66:8":"minecraft:rail[shape=north_west]","66:9":"minecraft:rail[shape=north_east]","67:0":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=east]","67:1":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=west]","67:2":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=south]","67:3":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=north]","67:4":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=east]","67:5":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=west]","67:6":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=south]","67:7":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=north]","68:2":"minecraft:wall_sign[facing=north]","68:3":"minecraft:wall_sign[facing=south]","68:4":"minecraft:wall_sign[facing=west]","68:5":"minecraft:wall_sign[facing=east]","69:0":"minecraft:lever[powered=false,facing=north,face=ceiling]","69:1":"minecraft:lever[powered=false,facing=east,face=wall]","69:2":"minecraft:lever[powered=false,facing=west,face=wall]","69:3":"minecraft:lever[powered=false,facing=south,face=wall]","69:4":"minecraft:lever[powered=false,facing=north,face=wall]","69:5":"minecraft:lever[powered=false,facing=east,face=floor]","69:6":"minecraft:lever[powered=false,facing=north,face=floor]","69:7":"minecraft:lever[powered=false,facing=east,face=ceiling]","69:8":"minecraft:lever[powered=true,facing=north,face=ceiling]","69:9":"minecraft:lever[powered=true,facing=east,face=wall]","69:10":"minecraft:lever[powered=true,facing=west,face=wall]","69:11":"minecraft:lever[powered=true,facing=south,face=wall]","69:12":"minecraft:lever[powered=true,facing=north,face=wall]","69:13":"minecraft:lever[powered=true,facing=east,face=floor]","69:14":"minecraft:lever[powered=true,facing=north,face=floor]","69:15":"minecraft:lever[powered=true,facing=east,face=ceiling]","70:0":"minecraft:stone_pressure_plate[powered=false]","70:1":"minecraft:stone_pressure_plate[powered=true]","71:0":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=false]","71:1":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=false]","71:2":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=false]","71:3":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=false]","71:4":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=true]","71:5":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=true]","71:6":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=true]","71:7":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=true]","71:8":"minecraft:iron_door[hinge=left,half=upper,powered=false,facing=east,open=false]","71:9":"minecraft:iron_door[hinge=right,half=upper,powered=false,facing=east,open=false]","71:10":"minecraft:iron_door[hinge=left,half=upper,powered=true,facing=east,open=false]","71:11":"minecraft:iron_door[hinge=right,half=upper,powered=true,facing=east,open=false]","72:0":"minecraft:oak_pressure_plate[powered=false]","72:1":"minecraft:oak_pressure_plate[powered=true]","73:0":"minecraft:redstone_ore[lit=false]","74:0":"minecraft:redstone_ore[lit=true]","75:1":"minecraft:redstone_wall_torch[facing=east,lit=false]","75:2":"minecraft:redstone_wall_torch[facing=west,lit=false]","75:3":"minecraft:redstone_wall_torch[facing=south,lit=false]","75:4":"minecraft:redstone_wall_torch[facing=north,lit=false]","75:5":"minecraft:redstone_torch[lit=false]","76:1":"minecraft:redstone_wall_torch[facing=east,lit=true]","76:2":"minecraft:redstone_wall_torch[facing=west,lit=true]","76:3":"minecraft:redstone_wall_torch[facing=south,lit=true]","76:4":"minecraft:redstone_wall_torch[facing=north,lit=true]","76:5":"minecraft:redstone_torch[lit=true]","77:0":"minecraft:stone_button[powered=false,facing=east,face=ceiling]","77:1":"minecraft:stone_button[powered=false,facing=east,face=wall]","77:2":"minecraft:stone_button[powered=false,facing=west,face=wall]","77:3":"minecraft:stone_button[powered=false,facing=south,face=wall]","77:4":"minecraft:stone_button[powered=false,facing=north,face=wall]","77:5":"minecraft:stone_button[powered=false,facing=east,face=floor]","77:8":"minecraft:stone_button[powered=true,facing=south,face=ceiling]","77:9":"minecraft:stone_button[powered=true,facing=east,face=wall]","77:10":"minecraft:stone_button[powered=true,facing=west,face=wall]","77:11":"minecraft:stone_button[powered=true,facing=south,face=wall]","77:12":"minecraft:stone_button[powered=true,facing=north,face=wall]","77:13":"minecraft:stone_button[powered=true,facing=south,face=floor]","78:0":"minecraft:snow[layers=1]","78:1":"minecraft:snow[layers=2]","78:2":"minecraft:snow[layers=3]","78:3":"minecraft:snow[layers=4]","78:4":"minecraft:snow[layers=5]","78:5":"minecraft:snow[layers=6]","78:6":"minecraft:snow[layers=7]","78:7":"minecraft:snow[layers=8]","79:0":"minecraft:ice","80:0":"minecraft:snow_block","81:0":"minecraft:cactus[age=0]","81:1":"minecraft:cactus[age=1]","81:2":"minecraft:cactus[age=2]","81:3":"minecraft:cactus[age=3]","81:4":"minecraft:cactus[age=4]","81:5":"minecraft:cactus[age=5]","81:6":"minecraft:cactus[age=6]","81:7":"minecraft:cactus[age=7]","81:8":"minecraft:cactus[age=8]","81:9":"minecraft:cactus[age=9]","81:10":"minecraft:cactus[age=10]","81:11":"minecraft:cactus[age=11]","81:12":"minecraft:cactus[age=12]","81:13":"minecraft:cactus[age=13]","81:14":"minecraft:cactus[age=14]","81:15":"minecraft:cactus[age=15]","82:0":"minecraft:clay","83:0":"minecraft:sugar_cane[age=0]","83:1":"minecraft:sugar_cane[age=1]","83:2":"minecraft:sugar_cane[age=2]","83:3":"minecraft:sugar_cane[age=3]","83:4":"minecraft:sugar_cane[age=4]","83:5":"minecraft:sugar_cane[age=5]","83:6":"minecraft:sugar_cane[age=6]","83:7":"minecraft:sugar_cane[age=7]","83:8":"minecraft:sugar_cane[age=8]","83:9":"minecraft:sugar_cane[age=9]","83:10":"minecraft:sugar_cane[age=10]","83:11":"minecraft:sugar_cane[age=11]","83:12":"minecraft:sugar_cane[age=12]","83:13":"minecraft:sugar_cane[age=13]","83:14":"minecraft:sugar_cane[age=14]","83:15":"minecraft:sugar_cane[age=15]","84:0":"minecraft:jukebox[has_record=false]","84:1":"minecraft:jukebox[has_record=true]","85:0":"minecraft:oak_fence[east=false,south=false,north=false,west=false]","86:0":"minecraft:carved_pumpkin[facing=south]","86:1":"minecraft:carved_pumpkin[facing=west]","86:2":"minecraft:carved_pumpkin[facing=north]","86:3":"minecraft:carved_pumpkin[facing=east]","87:0":"minecraft:netherrack","88:0":"minecraft:soul_sand","89:0":"minecraft:glowstone","90:1":"minecraft:nether_portal[axis=x]","90:2":"minecraft:nether_portal[axis=z]","91:0":"minecraft:jack_o_lantern[facing=south]","91:1":"minecraft:jack_o_lantern[facing=west]","91:2":"minecraft:jack_o_lantern[facing=north]","91:3":"minecraft:jack_o_lantern[facing=east]","92:0":"minecraft:cake[bites=0]","92:1":"minecraft:cake[bites=1]","92:2":"minecraft:cake[bites=2]","92:3":"minecraft:cake[bites=3]","92:4":"minecraft:cake[bites=4]","92:5":"minecraft:cake[bites=5]","92:6":"minecraft:cake[bites=6]","93:0":"minecraft:repeater[delay=1,facing=south,locked=false,powered=false]","93:1":"minecraft:repeater[delay=1,facing=west,locked=false,powered=false]","93:2":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]","93:3":"minecraft:repeater[delay=1,facing=east,locked=false,powered=false]","93:4":"minecraft:repeater[delay=2,facing=south,locked=false,powered=false]","93:5":"minecraft:repeater[delay=2,facing=west,locked=false,powered=false]","93:6":"minecraft:repeater[delay=2,facing=north,locked=false,powered=false]","93:7":"minecraft:repeater[delay=2,facing=east,locked=false,powered=false]","93:8":"minecraft:repeater[delay=3,facing=south,locked=false,powered=false]","93:9":"minecraft:repeater[delay=3,facing=west,locked=false,powered=false]","93:10":"minecraft:repeater[delay=3,facing=north,locked=false,powered=false]","93:11":"minecraft:repeater[delay=3,facing=east,locked=false,powered=false]","93:12":"minecraft:repeater[delay=4,facing=south,locked=false,powered=false]","93:13":"minecraft:repeater[delay=4,facing=west,locked=false,powered=false]","93:14":"minecraft:repeater[delay=4,facing=north,locked=false,powered=false]","93:15":"minecraft:repeater[delay=4,facing=east,locked=false,powered=false]","94:0":"minecraft:repeater[delay=1,facing=south,locked=false,powered=true]","94:1":"minecraft:repeater[delay=1,facing=west,locked=false,powered=true]","94:2":"minecraft:repeater[delay=1,facing=north,locked=false,powered=true]","94:3":"minecraft:repeater[delay=1,facing=east,locked=false,powered=true]","94:4":"minecraft:repeater[delay=2,facing=south,locked=false,powered=true]","94:5":"minecraft:repeater[delay=2,facing=west,locked=false,powered=true]","94:6":"minecraft:repeater[delay=2,facing=north,locked=false,powered=true]","94:7":"minecraft:repeater[delay=2,facing=east,locked=false,powered=true]","94:8":"minecraft:repeater[delay=3,facing=south,locked=false,powered=true]","94:9":"minecraft:repeater[delay=3,facing=west,locked=false,powered=true]","94:10":"minecraft:repeater[delay=3,facing=north,locked=false,powered=true]","94:11":"minecraft:repeater[delay=3,facing=east,locked=false,powered=true]","94:12":"minecraft:repeater[delay=4,facing=south,locked=false,powered=true]","94:13":"minecraft:repeater[delay=4,facing=west,locked=false,powered=true]","94:14":"minecraft:repeater[delay=4,facing=north,locked=false,powered=true]","94:15":"minecraft:repeater[delay=4,facing=east,locked=false,powered=true]","95:0":"minecraft:white_stained_glass","95:1":"minecraft:orange_stained_glass","95:2":"minecraft:magenta_stained_glass","95:3":"minecraft:light_blue_stained_glass","95:4":"minecraft:yellow_stained_glass","95:5":"minecraft:lime_stained_glass","95:6":"minecraft:pink_stained_glass","95:7":"minecraft:gray_stained_glass","95:8":"minecraft:light_gray_stained_glass","95:9":"minecraft:cyan_stained_glass","95:10":"minecraft:purple_stained_glass","95:11":"minecraft:blue_stained_glass","95:12":"minecraft:brown_stained_glass","95:13":"minecraft:green_stained_glass","95:14":"minecraft:red_stained_glass","95:15":"minecraft:black_stained_glass","96:0":"minecraft:oak_trapdoor[half=bottom,facing=north,open=false,powered=false]","96:1":"minecraft:oak_trapdoor[half=bottom,facing=south,open=false,powered=false]","96:2":"minecraft:oak_trapdoor[half=bottom,facing=west,open=false,powered=false]","96:3":"minecraft:oak_trapdoor[half=bottom,facing=east,open=false,powered=false]","96:4":"minecraft:oak_trapdoor[half=bottom,facing=north,open=true,powered=true]","96:5":"minecraft:oak_trapdoor[half=bottom,facing=south,open=true,powered=true]","96:6":"minecraft:oak_trapdoor[half=bottom,facing=west,open=true,powered=true]","96:7":"minecraft:oak_trapdoor[half=bottom,facing=east,open=true,powered=true]","96:8":"minecraft:oak_trapdoor[half=top,facing=north,open=false,powered=false]","96:9":"minecraft:oak_trapdoor[half=top,facing=south,open=false,powered=false]","96:10":"minecraft:oak_trapdoor[half=top,facing=west,open=false,powered=false]","96:11":"minecraft:oak_trapdoor[half=top,facing=east,open=false,powered=false]","96:12":"minecraft:oak_trapdoor[half=top,facing=north,open=true,powered=true]","96:13":"minecraft:oak_trapdoor[half=top,facing=south,open=true,powered=true]","96:14":"minecraft:oak_trapdoor[half=top,facing=west,open=true,powered=true]","96:15":"minecraft:oak_trapdoor[half=top,facing=east,open=true,powered=true]","97:0":"minecraft:infested_stone","97:1":"minecraft:infested_cobblestone","97:2":"minecraft:infested_stone_bricks","97:3":"minecraft:infested_mossy_stone_bricks","97:4":"minecraft:infested_cracked_stone_bricks","97:5":"minecraft:infested_chiseled_stone_bricks","98:0":"minecraft:stone_bricks","98:1":"minecraft:mossy_stone_bricks","98:2":"minecraft:cracked_stone_bricks","98:3":"minecraft:chiseled_stone_bricks","99:0":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]","99:1":"minecraft:brown_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]","99:2":"minecraft:brown_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]","99:3":"minecraft:brown_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]","99:4":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]","99:5":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]","99:6":"minecraft:brown_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]","99:7":"minecraft:brown_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]","99:8":"minecraft:brown_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]","99:9":"minecraft:brown_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]","99:10":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]","99:14":"minecraft:brown_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]","99:15":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]","100:0":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]","100:1":"minecraft:red_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]","100:2":"minecraft:red_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]","100:3":"minecraft:red_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]","100:4":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]","100:5":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]","100:6":"minecraft:red_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]","100:7":"minecraft:red_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]","100:8":"minecraft:red_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]","100:9":"minecraft:red_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]","100:10":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]","100:14":"minecraft:red_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]","100:15":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]","101:0":"minecraft:iron_bars[east=false,south=false,north=false,west=false]","102:0":"minecraft:glass_pane[east=false,south=false,north=false,west=false]","103:0":"minecraft:melon","104:0":"minecraft:pumpkin_stem[age=0]","104:1":"minecraft:pumpkin_stem[age=1]","104:2":"minecraft:pumpkin_stem[age=2]","104:3":"minecraft:pumpkin_stem[age=3]","104:4":"minecraft:pumpkin_stem[age=4]","104:5":"minecraft:pumpkin_stem[age=5]","104:6":"minecraft:pumpkin_stem[age=6]","104:7":"minecraft:pumpkin_stem[age=7]","105:0":"minecraft:melon_stem[age=0]","105:1":"minecraft:melon_stem[age=1]","105:2":"minecraft:melon_stem[age=2]","105:3":"minecraft:melon_stem[age=3]","105:4":"minecraft:melon_stem[age=4]","105:5":"minecraft:melon_stem[age=5]","105:6":"minecraft:melon_stem[age=6]","105:7":"minecraft:melon_stem[age=7]","106:0":"minecraft:vine[east=false,south=false,north=false,west=false,up=false]","106:1":"minecraft:vine[east=false,south=true,north=false,west=false,up=false]","106:2":"minecraft:vine[east=false,south=false,north=false,west=true,up=false]","106:3":"minecraft:vine[east=false,south=true,north=false,west=true,up=false]","106:4":"minecraft:vine[east=false,south=false,north=true,west=false,up=false]","106:5":"minecraft:vine[east=false,south=true,north=true,west=false,up=false]","106:6":"minecraft:vine[east=false,south=false,north=true,west=true,up=false]","106:7":"minecraft:vine[east=false,south=true,north=true,west=true,up=false]","106:8":"minecraft:vine[east=true,south=false,north=false,west=false,up=false]","106:9":"minecraft:vine[east=true,south=true,north=false,west=false,up=false]","106:10":"minecraft:vine[east=true,south=false,north=false,west=true,up=false]","106:11":"minecraft:vine[east=true,south=true,north=false,west=true,up=false]","106:12":"minecraft:vine[east=true,south=false,north=true,west=false,up=false]","106:13":"minecraft:vine[east=true,south=true,north=true,west=false,up=false]","106:14":"minecraft:vine[east=true,south=false,north=true,west=true,up=false]","106:15":"minecraft:vine[east=true,south=true,north=true,west=true,up=false]","107:0":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]","107:1":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]","107:2":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]","107:3":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]","107:4":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]","107:5":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]","107:6":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]","107:7":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]","107:8":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]","107:9":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]","107:10":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]","107:11":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]","107:12":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]","107:13":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]","107:14":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]","107:15":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]","108:0":"minecraft:brick_stairs[half=bottom,shape=straight,facing=east]","108:1":"minecraft:brick_stairs[half=bottom,shape=straight,facing=west]","108:2":"minecraft:brick_stairs[half=bottom,shape=straight,facing=south]","108:3":"minecraft:brick_stairs[half=bottom,shape=straight,facing=north]","108:4":"minecraft:brick_stairs[half=top,shape=straight,facing=east]","108:5":"minecraft:brick_stairs[half=top,shape=straight,facing=west]","108:6":"minecraft:brick_stairs[half=top,shape=straight,facing=south]","108:7":"minecraft:brick_stairs[half=top,shape=straight,facing=north]","109:0":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=east]","109:1":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=west]","109:2":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=south]","109:3":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=north]","109:4":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=east]","109:5":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=west]","109:6":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=south]","109:7":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=north]","110:0":"minecraft:mycelium[snowy=false]","111:0":"minecraft:lily_pad","112:0":"minecraft:nether_bricks","113:0":"minecraft:nether_brick_fence[east=false,south=false,north=false,west=false]","114:0":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=east]","114:1":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=west]","114:2":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=south]","114:3":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=north]","114:4":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=east]","114:5":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=west]","114:6":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=south]","114:7":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=north]","115:0":"minecraft:nether_wart[age=0]","115:1":"minecraft:nether_wart[age=1]","115:2":"minecraft:nether_wart[age=2]","115:3":"minecraft:nether_wart[age=3]","116:0":"minecraft:enchanting_table","117:0":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]","117:1":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=false]","117:2":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=false]","117:3":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=false]","117:4":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=true]","117:5":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=true]","117:6":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=true]","117:7":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=true]","118:0":"minecraft:cauldron[level=0]","118:1":"minecraft:cauldron[level=1]","118:2":"minecraft:cauldron[level=2]","118:3":"minecraft:cauldron[level=3]","119:0":"minecraft:end_portal","120:0":"minecraft:end_portal_frame[eye=false,facing=south]","120:1":"minecraft:end_portal_frame[eye=false,facing=west]","120:2":"minecraft:end_portal_frame[eye=false,facing=north]","120:3":"minecraft:end_portal_frame[eye=false,facing=east]","120:4":"minecraft:end_portal_frame[eye=true,facing=south]","120:5":"minecraft:end_portal_frame[eye=true,facing=west]","120:6":"minecraft:end_portal_frame[eye=true,facing=north]","120:7":"minecraft:end_portal_frame[eye=true,facing=east]","121:0":"minecraft:end_stone","122:0":"minecraft:dragon_egg","123:0":"minecraft:redstone_lamp[lit=false]","124:0":"minecraft:redstone_lamp[lit=true]","125:0":"minecraft:oak_slab[type=double]","125:1":"minecraft:spruce_slab[type=double]","125:2":"minecraft:birch_slab[type=double]","125:3":"minecraft:jungle_slab[type=double]","125:4":"minecraft:acacia_slab[type=double]","125:5":"minecraft:dark_oak_slab[type=double]","126:0":"minecraft:oak_slab[type=bottom]","126:1":"minecraft:spruce_slab[type=bottom]","126:2":"minecraft:birch_slab[type=bottom]","126:3":"minecraft:jungle_slab[type=bottom]","126:4":"minecraft:acacia_slab[type=bottom]","126:5":"minecraft:dark_oak_slab[type=bottom]","126:8":"minecraft:oak_slab[type=top]","126:9":"minecraft:spruce_slab[type=top]","126:10":"minecraft:birch_slab[type=top]","126:11":"minecraft:jungle_slab[type=top]","126:12":"minecraft:acacia_slab[type=top]","126:13":"minecraft:dark_oak_slab[type=top]","127:0":"minecraft:cocoa[facing=south,age=0]","127:1":"minecraft:cocoa[facing=west,age=0]","127:2":"minecraft:cocoa[facing=north,age=0]","127:3":"minecraft:cocoa[facing=east,age=0]","127:4":"minecraft:cocoa[facing=south,age=1]","127:5":"minecraft:cocoa[facing=west,age=1]","127:6":"minecraft:cocoa[facing=north,age=1]","127:7":"minecraft:cocoa[facing=east,age=1]","127:8":"minecraft:cocoa[facing=south,age=2]","127:9":"minecraft:cocoa[facing=west,age=2]","127:10":"minecraft:cocoa[facing=north,age=2]","127:11":"minecraft:cocoa[facing=east,age=2]","128:0":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=east]","128:1":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=west]","128:2":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=south]","128:3":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=north]","128:4":"minecraft:sandstone_stairs[half=top,shape=straight,facing=east]","128:5":"minecraft:sandstone_stairs[half=top,shape=straight,facing=west]","128:6":"minecraft:sandstone_stairs[half=top,shape=straight,facing=south]","128:7":"minecraft:sandstone_stairs[half=top,shape=straight,facing=north]","129:0":"minecraft:emerald_ore","130:2":"minecraft:ender_chest[facing=north]","130:3":"minecraft:ender_chest[facing=south]","130:4":"minecraft:ender_chest[facing=west]","130:5":"minecraft:ender_chest[facing=east]","131:0":"minecraft:tripwire_hook[powered=false,attached=false,facing=south]","131:1":"minecraft:tripwire_hook[powered=false,attached=false,facing=west]","131:2":"minecraft:tripwire_hook[powered=false,attached=false,facing=north]","131:3":"minecraft:tripwire_hook[powered=false,attached=false,facing=east]","131:4":"minecraft:tripwire_hook[powered=false,attached=true,facing=south]","131:5":"minecraft:tripwire_hook[powered=false,attached=true,facing=west]","131:6":"minecraft:tripwire_hook[powered=false,attached=true,facing=north]","131:7":"minecraft:tripwire_hook[powered=false,attached=true,facing=east]","131:8":"minecraft:tripwire_hook[powered=true,attached=false,facing=south]","131:9":"minecraft:tripwire_hook[powered=true,attached=false,facing=west]","131:10":"minecraft:tripwire_hook[powered=true,attached=false,facing=north]","131:11":"minecraft:tripwire_hook[powered=true,attached=false,facing=east]","131:12":"minecraft:tripwire_hook[powered=true,attached=true,facing=south]","131:13":"minecraft:tripwire_hook[powered=true,attached=true,facing=west]","131:14":"minecraft:tripwire_hook[powered=true,attached=true,facing=north]","131:15":"minecraft:tripwire_hook[powered=true,attached=true,facing=east]","132:0":"minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=false]","132:1":"minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=false]","132:4":"minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=true]","132:5":"minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=true]","132:8":"minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=false]","132:9":"minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=false]","132:12":"minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=true]","132:13":"minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=true]","133:0":"minecraft:emerald_block","134:0":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=east]","134:1":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=west]","134:2":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=south]","134:3":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=north]","134:4":"minecraft:spruce_stairs[half=top,shape=straight,facing=east]","134:5":"minecraft:spruce_stairs[half=top,shape=straight,facing=west]","134:6":"minecraft:spruce_stairs[half=top,shape=straight,facing=south]","134:7":"minecraft:spruce_stairs[half=top,shape=straight,facing=north]","135:0":"minecraft:birch_stairs[half=bottom,shape=straight,facing=east]","135:1":"minecraft:birch_stairs[half=bottom,shape=straight,facing=west]","135:2":"minecraft:birch_stairs[half=bottom,shape=straight,facing=south]","135:3":"minecraft:birch_stairs[half=bottom,shape=straight,facing=north]","135:4":"minecraft:birch_stairs[half=top,shape=straight,facing=east]","135:5":"minecraft:birch_stairs[half=top,shape=straight,facing=west]","135:6":"minecraft:birch_stairs[half=top,shape=straight,facing=south]","135:7":"minecraft:birch_stairs[half=top,shape=straight,facing=north]","136:0":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=east]","136:1":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=west]","136:2":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=south]","136:3":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=north]","136:4":"minecraft:jungle_stairs[half=top,shape=straight,facing=east]","136:5":"minecraft:jungle_stairs[half=top,shape=straight,facing=west]","136:6":"minecraft:jungle_stairs[half=top,shape=straight,facing=south]","136:7":"minecraft:jungle_stairs[half=top,shape=straight,facing=north]","137:0":"minecraft:command_block[conditional=false,facing=down]","137:1":"minecraft:command_block[conditional=false,facing=up]","137:2":"minecraft:command_block[conditional=false,facing=north]","137:3":"minecraft:command_block[conditional=false,facing=south]","137:4":"minecraft:command_block[conditional=false,facing=west]","137:5":"minecraft:command_block[conditional=false,facing=east]","137:8":"minecraft:command_block[conditional=true,facing=down]","137:9":"minecraft:command_block[conditional=true,facing=up]","137:10":"minecraft:command_block[conditional=true,facing=north]","137:11":"minecraft:command_block[conditional=true,facing=south]","137:12":"minecraft:command_block[conditional=true,facing=west]","137:13":"minecraft:command_block[conditional=true,facing=east]","138:0":"minecraft:beacon","139:0":"minecraft:cobblestone_wall[east=false,south=false,north=false,west=false,up=false]","139:1":"minecraft:mossy_cobblestone_wall[east=false,south=false,north=false,west=false,up=false]","140:0":"minecraft:flower_pot","140:1":"minecraft:potted_poppy","140:2":"minecraft:potted_dandelion","140:3":"minecraft:potted_oak_sapling","140:4":"minecraft:potted_spruce_sapling","140:5":"minecraft:potted_birch_sapling","140:6":"minecraft:potted_jungle_sapling","140:7":"minecraft:potted_red_mushroom","140:8":"minecraft:potted_brown_mushroom","140:9":"minecraft:potted_cactus","140:10":"minecraft:potted_dead_bush","140:11":"minecraft:potted_fern","140:12":"minecraft:potted_acacia_sapling","140:13":"minecraft:potted_dark_oak_sapling","140:14":"minecraft:potted_blue_orchid","140:15":"minecraft:potted_allium","141:0":"minecraft:carrots[age=0]","141:1":"minecraft:carrots[age=1]","141:2":"minecraft:carrots[age=2]","141:3":"minecraft:carrots[age=3]","141:4":"minecraft:carrots[age=4]","141:5":"minecraft:carrots[age=5]","141:6":"minecraft:carrots[age=6]","141:7":"minecraft:carrots[age=7]","142:0":"minecraft:potatoes[age=0]","142:1":"minecraft:potatoes[age=1]","142:2":"minecraft:potatoes[age=2]","142:3":"minecraft:potatoes[age=3]","142:4":"minecraft:potatoes[age=4]","142:5":"minecraft:potatoes[age=5]","142:6":"minecraft:potatoes[age=6]","142:7":"minecraft:potatoes[age=7]","143:0":"minecraft:oak_button[powered=false,facing=east,face=ceiling]","143:1":"minecraft:oak_button[powered=false,facing=east,face=wall]","143:2":"minecraft:oak_button[powered=false,facing=west,face=wall]","143:3":"minecraft:oak_button[powered=false,facing=south,face=wall]","143:4":"minecraft:oak_button[powered=false,facing=north,face=wall]","143:5":"minecraft:oak_button[powered=false,facing=east,face=floor]","143:8":"minecraft:oak_button[powered=true,facing=south,face=ceiling]","143:9":"minecraft:oak_button[powered=true,facing=east,face=wall]","143:10":"minecraft:oak_button[powered=true,facing=west,face=wall]","143:11":"minecraft:oak_button[powered=true,facing=south,face=wall]","143:12":"minecraft:oak_button[powered=true,facing=north,face=wall]","143:13":"minecraft:oak_button[powered=true,facing=south,face=floor]","144:0":"minecraft:skeleton_skull[rotation=0]","144:1":"minecraft:skeleton_skull[rotation=4]","144:2":"minecraft:skeleton_wall_skull[facing=north]","144:3":"minecraft:skeleton_wall_skull[facing=south]","144:4":"minecraft:skeleton_wall_skull[facing=west]","144:5":"minecraft:skeleton_wall_skull[facing=east]","144:8":"minecraft:skeleton_skull[rotation=8]","144:9":"minecraft:skeleton_skull[rotation=12]","144:10":"minecraft:skeleton_wall_skull[facing=north]","144:11":"minecraft:skeleton_wall_skull[facing=south]","144:12":"minecraft:skeleton_wall_skull[facing=west]","144:13":"minecraft:skeleton_wall_skull[facing=east]","145:0":"minecraft:anvil[facing=south]","145:1":"minecraft:anvil[facing=west]","145:2":"minecraft:anvil[facing=north]","145:3":"minecraft:anvil[facing=east]","145:4":"minecraft:chipped_anvil[facing=south]","145:5":"minecraft:chipped_anvil[facing=west]","145:6":"minecraft:chipped_anvil[facing=north]","145:7":"minecraft:chipped_anvil[facing=east]","145:8":"minecraft:damaged_anvil[facing=south]","145:9":"minecraft:damaged_anvil[facing=west]","145:10":"minecraft:damaged_anvil[facing=north]","145:11":"minecraft:damaged_anvil[facing=east]","146:2":"minecraft:trapped_chest[facing=north,type=single]","146:3":"minecraft:trapped_chest[facing=south,type=single]","146:4":"minecraft:trapped_chest[facing=west,type=single]","146:5":"minecraft:trapped_chest[facing=east,type=single]","147:0":"minecraft:light_weighted_pressure_plate[power=0]","147:1":"minecraft:light_weighted_pressure_plate[power=1]","147:2":"minecraft:light_weighted_pressure_plate[power=2]","147:3":"minecraft:light_weighted_pressure_plate[power=3]","147:4":"minecraft:light_weighted_pressure_plate[power=4]","147:5":"minecraft:light_weighted_pressure_plate[power=5]","147:6":"minecraft:light_weighted_pressure_plate[power=6]","147:7":"minecraft:light_weighted_pressure_plate[power=7]","147:8":"minecraft:light_weighted_pressure_plate[power=8]","147:9":"minecraft:light_weighted_pressure_plate[power=9]","147:10":"minecraft:light_weighted_pressure_plate[power=10]","147:11":"minecraft:light_weighted_pressure_plate[power=11]","147:12":"minecraft:light_weighted_pressure_plate[power=12]","147:13":"minecraft:light_weighted_pressure_plate[power=13]","147:14":"minecraft:light_weighted_pressure_plate[power=14]","147:15":"minecraft:light_weighted_pressure_plate[power=15]","148:0":"minecraft:heavy_weighted_pressure_plate[power=0]","148:1":"minecraft:heavy_weighted_pressure_plate[power=1]","148:2":"minecraft:heavy_weighted_pressure_plate[power=2]","148:3":"minecraft:heavy_weighted_pressure_plate[power=3]","148:4":"minecraft:heavy_weighted_pressure_plate[power=4]","148:5":"minecraft:heavy_weighted_pressure_plate[power=5]","148:6":"minecraft:heavy_weighted_pressure_plate[power=6]","148:7":"minecraft:heavy_weighted_pressure_plate[power=7]","148:8":"minecraft:heavy_weighted_pressure_plate[power=8]","148:9":"minecraft:heavy_weighted_pressure_plate[power=9]","148:10":"minecraft:heavy_weighted_pressure_plate[power=10]","148:11":"minecraft:heavy_weighted_pressure_plate[power=11]","148:12":"minecraft:heavy_weighted_pressure_plate[power=12]","148:13":"minecraft:heavy_weighted_pressure_plate[power=13]","148:14":"minecraft:heavy_weighted_pressure_plate[power=14]","148:15":"minecraft:heavy_weighted_pressure_plate[power=15]","149:0":"minecraft:comparator[mode=compare,powered=false,facing=south]","149:1":"minecraft:comparator[mode=compare,powered=false,facing=west]","149:2":"minecraft:comparator[mode=compare,powered=false,facing=north]","149:3":"minecraft:comparator[mode=compare,powered=false,facing=east]","149:4":"minecraft:comparator[mode=subtract,powered=false,facing=south]","149:5":"minecraft:comparator[mode=subtract,powered=false,facing=west]","149:6":"minecraft:comparator[mode=subtract,powered=false,facing=north]","149:7":"minecraft:comparator[mode=subtract,powered=false,facing=east]","149:8":"minecraft:comparator[mode=compare,powered=false,facing=south]","149:9":"minecraft:comparator[mode=compare,powered=false,facing=west]","149:10":"minecraft:comparator[mode=compare,powered=false,facing=north]","149:11":"minecraft:comparator[mode=compare,powered=false,facing=east]","149:12":"minecraft:comparator[mode=subtract,powered=false,facing=south]","149:13":"minecraft:comparator[mode=subtract,powered=false,facing=west]","149:14":"minecraft:comparator[mode=subtract,powered=false,facing=north]","149:15":"minecraft:comparator[mode=subtract,powered=false,facing=east]","150:0":"minecraft:comparator[mode=compare,powered=true,facing=south]","150:1":"minecraft:comparator[mode=compare,powered=true,facing=west]","150:2":"minecraft:comparator[mode=compare,powered=true,facing=north]","150:3":"minecraft:comparator[mode=compare,powered=true,facing=east]","150:4":"minecraft:comparator[mode=subtract,powered=true,facing=south]","150:5":"minecraft:comparator[mode=subtract,powered=true,facing=west]","150:6":"minecraft:comparator[mode=subtract,powered=true,facing=north]","150:7":"minecraft:comparator[mode=subtract,powered=true,facing=east]","150:8":"minecraft:comparator[mode=compare,powered=true,facing=south]","150:9":"minecraft:comparator[mode=compare,powered=true,facing=west]","150:10":"minecraft:comparator[mode=compare,powered=true,facing=north]","150:11":"minecraft:comparator[mode=compare,powered=true,facing=east]","150:12":"minecraft:comparator[mode=subtract,powered=true,facing=south]","150:13":"minecraft:comparator[mode=subtract,powered=true,facing=west]","150:14":"minecraft:comparator[mode=subtract,powered=true,facing=north]","150:15":"minecraft:comparator[mode=subtract,powered=true,facing=east]","151:0":"minecraft:daylight_detector[inverted=false,power=0]","151:1":"minecraft:daylight_detector[inverted=false,power=1]","151:2":"minecraft:daylight_detector[inverted=false,power=2]","151:3":"minecraft:daylight_detector[inverted=false,power=3]","151:4":"minecraft:daylight_detector[inverted=false,power=4]","151:5":"minecraft:daylight_detector[inverted=false,power=5]","151:6":"minecraft:daylight_detector[inverted=false,power=6]","151:7":"minecraft:daylight_detector[inverted=false,power=7]","151:8":"minecraft:daylight_detector[inverted=false,power=8]","151:9":"minecraft:daylight_detector[inverted=false,power=9]","151:10":"minecraft:daylight_detector[inverted=false,power=10]","151:11":"minecraft:daylight_detector[inverted=false,power=11]","151:12":"minecraft:daylight_detector[inverted=false,power=12]","151:13":"minecraft:daylight_detector[inverted=false,power=13]","151:14":"minecraft:daylight_detector[inverted=false,power=14]","151:15":"minecraft:daylight_detector[inverted=false,power=15]","152:0":"minecraft:redstone_block","153:0":"minecraft:nether_quartz_ore","154:0":"minecraft:hopper[facing=down,enabled=true]","154:2":"minecraft:hopper[facing=north,enabled=true]","154:3":"minecraft:hopper[facing=south,enabled=true]","154:4":"minecraft:hopper[facing=west,enabled=true]","154:5":"minecraft:hopper[facing=east,enabled=true]","154:8":"minecraft:hopper[facing=down,enabled=false]","154:10":"minecraft:hopper[facing=north,enabled=false]","154:11":"minecraft:hopper[facing=south,enabled=false]","154:12":"minecraft:hopper[facing=west,enabled=false]","154:13":"minecraft:hopper[facing=east,enabled=false]","155:0":"minecraft:quartz_block","155:1":"minecraft:chiseled_quartz_block","155:2":"minecraft:quartz_pillar[axis=y]","155:3":"minecraft:quartz_pillar[axis=x]","155:4":"minecraft:quartz_pillar[axis=z]","155:6":"minecraft:quartz_pillar[axis=x]","155:10":"minecraft:quartz_pillar[axis=z]","156:0":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=east]","156:1":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=west]","156:2":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=south]","156:3":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=north]","156:4":"minecraft:quartz_stairs[half=top,shape=straight,facing=east]","156:5":"minecraft:quartz_stairs[half=top,shape=straight,facing=west]","156:6":"minecraft:quartz_stairs[half=top,shape=straight,facing=south]","156:7":"minecraft:quartz_stairs[half=top,shape=straight,facing=north]","157:0":"minecraft:activator_rail[shape=north_south,powered=false]","157:1":"minecraft:activator_rail[shape=east_west,powered=false]","157:2":"minecraft:activator_rail[shape=ascending_east,powered=false]","157:3":"minecraft:activator_rail[shape=ascending_west,powered=false]","157:4":"minecraft:activator_rail[shape=ascending_north,powered=false]","157:5":"minecraft:activator_rail[shape=ascending_south,powered=false]","157:8":"minecraft:activator_rail[shape=north_south,powered=true]","157:9":"minecraft:activator_rail[shape=east_west,powered=true]","157:10":"minecraft:activator_rail[shape=ascending_east,powered=true]","157:11":"minecraft:activator_rail[shape=ascending_west,powered=true]","157:12":"minecraft:activator_rail[shape=ascending_north,powered=true]","157:13":"minecraft:activator_rail[shape=ascending_south,powered=true]","158:0":"minecraft:dropper[triggered=false,facing=down]","158:1":"minecraft:dropper[triggered=false,facing=up]","158:2":"minecraft:dropper[triggered=false,facing=north]","158:3":"minecraft:dropper[triggered=false,facing=south]","158:4":"minecraft:dropper[triggered=false,facing=west]","158:5":"minecraft:dropper[triggered=false,facing=east]","158:8":"minecraft:dropper[triggered=true,facing=down]","158:9":"minecraft:dropper[triggered=true,facing=up]","158:10":"minecraft:dropper[triggered=true,facing=north]","158:11":"minecraft:dropper[triggered=true,facing=south]","158:12":"minecraft:dropper[triggered=true,facing=west]","158:13":"minecraft:dropper[triggered=true,facing=east]","159:0":"minecraft:white_terracotta","159:1":"minecraft:orange_terracotta","159:2":"minecraft:magenta_terracotta","159:3":"minecraft:light_blue_terracotta","159:4":"minecraft:yellow_terracotta","159:5":"minecraft:lime_terracotta","159:6":"minecraft:pink_terracotta","159:7":"minecraft:gray_terracotta","159:8":"minecraft:light_gray_terracotta","159:9":"minecraft:cyan_terracotta","159:10":"minecraft:purple_terracotta","159:11":"minecraft:blue_terracotta","159:12":"minecraft:brown_terracotta","159:13":"minecraft:green_terracotta","159:14":"minecraft:red_terracotta","159:15":"minecraft:black_terracotta","160:0":"minecraft:white_stained_glass_pane[east=false,south=false,north=false,west=false]","160:1":"minecraft:orange_stained_glass_pane[east=false,south=false,north=false,west=false]","160:2":"minecraft:magenta_stained_glass_pane[east=false,south=false,north=false,west=false]","160:3":"minecraft:light_blue_stained_glass_pane[east=false,south=false,north=false,west=false]","160:4":"minecraft:yellow_stained_glass_pane[east=false,south=false,north=false,west=false]","160:5":"minecraft:lime_stained_glass_pane[east=false,south=false,north=false,west=false]","160:6":"minecraft:pink_stained_glass_pane[east=false,south=false,north=false,west=false]","160:7":"minecraft:gray_stained_glass_pane[east=false,south=false,north=false,west=false]","160:8":"minecraft:light_gray_stained_glass_pane[east=false,south=false,north=false,west=false]","160:9":"minecraft:cyan_stained_glass_pane[east=false,south=false,north=false,west=false]","160:10":"minecraft:purple_stained_glass_pane[east=false,south=false,north=false,west=false]","160:11":"minecraft:blue_stained_glass_pane[east=false,south=false,north=false,west=false]","160:12":"minecraft:brown_stained_glass_pane[east=false,south=false,north=false,west=false]","160:13":"minecraft:green_stained_glass_pane[east=false,south=false,north=false,west=false]","160:14":"minecraft:red_stained_glass_pane[east=false,south=false,north=false,west=false]","160:15":"minecraft:black_stained_glass_pane[east=false,south=false,north=false,west=false]","161:0":"minecraft:acacia_leaves[persistent=false,distance=1]","161:1":"minecraft:dark_oak_leaves[persistent=false,distance=1]","161:4":"minecraft:acacia_leaves[persistent=true,distance=1]","161:5":"minecraft:dark_oak_leaves[persistent=true,distance=1]","161:8":"minecraft:acacia_leaves[persistent=false,distance=1]","161:9":"minecraft:dark_oak_leaves[persistent=false,distance=1]","161:12":"minecraft:acacia_leaves[persistent=true,distance=1]","161:13":"minecraft:dark_oak_leaves[persistent=true,distance=1]","162:0":"minecraft:acacia_log[axis=y]","162:1":"minecraft:dark_oak_log[axis=y]","162:4":"minecraft:acacia_log[axis=x]","162:5":"minecraft:dark_oak_log[axis=x]","162:8":"minecraft:acacia_log[axis=z]","162:9":"minecraft:dark_oak_log[axis=z]","162:12":"minecraft:acacia_wood","162:13":"minecraft:dark_oak_wood","163:0":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=east]","163:1":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=west]","163:2":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=south]","163:3":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=north]","163:4":"minecraft:acacia_stairs[half=top,shape=straight,facing=east]","163:5":"minecraft:acacia_stairs[half=top,shape=straight,facing=west]","163:6":"minecraft:acacia_stairs[half=top,shape=straight,facing=south]","163:7":"minecraft:acacia_stairs[half=top,shape=straight,facing=north]","164:0":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=east]","164:1":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=west]","164:2":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=south]","164:3":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=north]","164:4":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=east]","164:5":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=west]","164:6":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=south]","164:7":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=north]","165:0":"minecraft:slime_block","166:0":"minecraft:barrier","167:0":"minecraft:iron_trapdoor[half=bottom,facing=north,open=false]","167:1":"minecraft:iron_trapdoor[half=bottom,facing=south,open=false]","167:2":"minecraft:iron_trapdoor[half=bottom,facing=west,open=false]","167:3":"minecraft:iron_trapdoor[half=bottom,facing=east,open=false]","167:4":"minecraft:iron_trapdoor[half=bottom,facing=north,open=true]","167:5":"minecraft:iron_trapdoor[half=bottom,facing=south,open=true]","167:6":"minecraft:iron_trapdoor[half=bottom,facing=west,open=true]","167:7":"minecraft:iron_trapdoor[half=bottom,facing=east,open=true]","167:8":"minecraft:iron_trapdoor[half=top,facing=north,open=false]","167:9":"minecraft:iron_trapdoor[half=top,facing=south,open=false]","167:10":"minecraft:iron_trapdoor[half=top,facing=west,open=false]","167:11":"minecraft:iron_trapdoor[half=top,facing=east,open=false]","167:12":"minecraft:iron_trapdoor[half=top,facing=north,open=true]","167:13":"minecraft:iron_trapdoor[half=top,facing=south,open=true]","167:14":"minecraft:iron_trapdoor[half=top,facing=west,open=true]","167:15":"minecraft:iron_trapdoor[half=top,facing=east,open=true]","168:0":"minecraft:prismarine","168:1":"minecraft:prismarine_bricks","168:2":"minecraft:dark_prismarine","169:0":"minecraft:sea_lantern","170:0":"minecraft:hay_block[axis=y]","170:4":"minecraft:hay_block[axis=x]","170:8":"minecraft:hay_block[axis=z]","171:0":"minecraft:white_carpet","171:1":"minecraft:orange_carpet","171:2":"minecraft:magenta_carpet","171:3":"minecraft:light_blue_carpet","171:4":"minecraft:yellow_carpet","171:5":"minecraft:lime_carpet","171:6":"minecraft:pink_carpet","171:7":"minecraft:gray_carpet","171:8":"minecraft:light_gray_carpet","171:9":"minecraft:cyan_carpet","171:10":"minecraft:purple_carpet","171:11":"minecraft:blue_carpet","171:12":"minecraft:brown_carpet","171:13":"minecraft:green_carpet","171:14":"minecraft:red_carpet","171:15":"minecraft:black_carpet","172:0":"minecraft:terracotta","173:0":"minecraft:coal_block","174:0":"minecraft:packed_ice","175:0":"minecraft:sunflower[half=lower]","175:1":"minecraft:lilac[half=lower]","175:2":"minecraft:tall_grass[half=lower]","175:3":"minecraft:large_fern[half=lower]","175:4":"minecraft:rose_bush[half=lower]","175:5":"minecraft:peony[half=lower]","175:8":"minecraft:sunflower[half=upper]","175:9":"minecraft:lilac[half=upper]","175:10":"minecraft:tall_grass[half=upper]","175:11":"minecraft:large_fern[half=upper]","175:12":"minecraft:rose_bush[half=upper]","175:13":"minecraft:peony[half=upper]","176:0":"minecraft:white_banner[rotation=0]","176:1":"minecraft:white_banner[rotation=1]","176:2":"minecraft:white_banner[rotation=2]","176:3":"minecraft:white_banner[rotation=3]","176:4":"minecraft:white_banner[rotation=4]","176:5":"minecraft:white_banner[rotation=5]","176:6":"minecraft:white_banner[rotation=6]","176:7":"minecraft:white_banner[rotation=7]","176:8":"minecraft:white_banner[rotation=8]","176:9":"minecraft:white_banner[rotation=9]","176:10":"minecraft:white_banner[rotation=10]","176:11":"minecraft:white_banner[rotation=11]","176:12":"minecraft:white_banner[rotation=12]","176:13":"minecraft:white_banner[rotation=13]","176:14":"minecraft:white_banner[rotation=14]","176:15":"minecraft:white_banner[rotation=15]","177:2":"minecraft:white_wall_banner[facing=north]","177:3":"minecraft:white_wall_banner[facing=south]","177:4":"minecraft:white_wall_banner[facing=west]","177:5":"minecraft:white_wall_banner[facing=east]","178:0":"minecraft:daylight_detector[inverted=true,power=0]","178:1":"minecraft:daylight_detector[inverted=true,power=1]","178:2":"minecraft:daylight_detector[inverted=true,power=2]","178:3":"minecraft:daylight_detector[inverted=true,power=3]","178:4":"minecraft:daylight_detector[inverted=true,power=4]","178:5":"minecraft:daylight_detector[inverted=true,power=5]","178:6":"minecraft:daylight_detector[inverted=true,power=6]","178:7":"minecraft:daylight_detector[inverted=true,power=7]","178:8":"minecraft:daylight_detector[inverted=true,power=8]","178:9":"minecraft:daylight_detector[inverted=true,power=9]","178:10":"minecraft:daylight_detector[inverted=true,power=10]","178:11":"minecraft:daylight_detector[inverted=true,power=11]","178:12":"minecraft:daylight_detector[inverted=true,power=12]","178:13":"minecraft:daylight_detector[inverted=true,power=13]","178:14":"minecraft:daylight_detector[inverted=true,power=14]","178:15":"minecraft:daylight_detector[inverted=true,power=15]","179:0":"minecraft:red_sandstone","179:1":"minecraft:chiseled_red_sandstone","179:2":"minecraft:cut_red_sandstone","180:0":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=east]","180:1":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=west]","180:2":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=south]","180:3":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=north]","180:4":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=east]","180:5":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=west]","180:6":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=south]","180:7":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=north]","181:0":"minecraft:red_sandstone_slab[type=double]","181:8":"minecraft:smooth_red_sandstone","182:0":"minecraft:red_sandstone_slab[type=bottom]","182:8":"minecraft:red_sandstone_slab[type=top]","183:0":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=false]","183:1":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=false]","183:2":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=false]","183:3":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=false]","183:4":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=true]","183:5":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=true]","183:6":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=true]","183:7":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=true]","183:8":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=false]","183:9":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=false]","183:10":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=false]","183:11":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=false]","183:12":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=true]","183:13":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=true]","183:14":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=true]","183:15":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=true]","184:0":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=false]","184:1":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=false]","184:2":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=false]","184:3":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=false]","184:4":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=true]","184:5":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=true]","184:6":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=true]","184:7":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=true]","184:8":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=false]","184:9":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=false]","184:10":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=false]","184:11":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=false]","184:12":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=true]","184:13":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=true]","184:14":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=true]","184:15":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=true]","185:0":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=false]","185:1":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=false]","185:2":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=false]","185:3":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=false]","185:4":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=true]","185:5":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=true]","185:6":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=true]","185:7":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=true]","185:8":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=false]","185:9":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=false]","185:10":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=false]","185:11":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=false]","185:12":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=true]","185:13":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=true]","185:14":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=true]","185:15":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=true]","186:0":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]","186:1":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]","186:2":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]","186:3":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]","186:4":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]","186:5":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]","186:6":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]","186:7":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]","186:8":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]","186:9":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]","186:10":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]","186:11":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]","186:12":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]","186:13":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]","186:14":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]","186:15":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]","187:0":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=false]","187:1":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=false]","187:2":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=false]","187:3":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=false]","187:4":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=true]","187:5":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=true]","187:6":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=true]","187:7":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=true]","187:8":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=false]","187:9":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=false]","187:10":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=false]","187:11":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=false]","187:12":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=true]","187:13":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=true]","187:14":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=true]","187:15":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=true]","188:0":"minecraft:spruce_fence[east=false,south=false,north=false,west=false]","189:0":"minecraft:birch_fence[east=false,south=false,north=false,west=false]","190:0":"minecraft:jungle_fence[east=false,south=false,north=false,west=false]","191:0":"minecraft:dark_oak_fence[east=false,south=false,north=false,west=false]","192:0":"minecraft:acacia_fence[east=false,south=false,north=false,west=false]","193:0":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=false]","193:1":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=false]","193:2":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=false]","193:3":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=false]","193:4":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=true]","193:5":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=true]","193:6":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=true]","193:7":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=true]","193:8":"minecraft:spruce_door[hinge=left,half=upper,powered=false,facing=east,open=false]","193:9":"minecraft:spruce_door[hinge=right,half=upper,powered=false,facing=east,open=false]","193:10":"minecraft:spruce_door[hinge=left,half=upper,powered=true,facing=east,open=false]","193:11":"minecraft:spruce_door[hinge=right,half=upper,powered=true,facing=east,open=false]","194:0":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=false]","194:1":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=false]","194:2":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=false]","194:3":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=false]","194:4":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=true]","194:5":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=true]","194:6":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=true]","194:7":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=true]","194:8":"minecraft:birch_door[hinge=left,half=upper,powered=false,facing=east,open=false]","194:9":"minecraft:birch_door[hinge=right,half=upper,powered=false,facing=east,open=false]","194:10":"minecraft:birch_door[hinge=left,half=upper,powered=true,facing=east,open=false]","194:11":"minecraft:birch_door[hinge=right,half=upper,powered=true,facing=east,open=false]","195:0":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=false]","195:1":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=false]","195:2":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=false]","195:3":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=false]","195:4":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=true]","195:5":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=true]","195:6":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=true]","195:7":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=true]","195:8":"minecraft:jungle_door[hinge=left,half=upper,powered=false,facing=east,open=false]","195:9":"minecraft:jungle_door[hinge=right,half=upper,powered=false,facing=east,open=false]","195:10":"minecraft:jungle_door[hinge=left,half=upper,powered=true,facing=east,open=false]","195:11":"minecraft:jungle_door[hinge=right,half=upper,powered=true,facing=east,open=false]","196:0":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=false]","196:1":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=false]","196:2":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=false]","196:3":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=false]","196:4":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=true]","196:5":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=true]","196:6":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=true]","196:7":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=true]","196:8":"minecraft:acacia_door[hinge=left,half=upper,powered=false,facing=east,open=false]","196:9":"minecraft:acacia_door[hinge=right,half=upper,powered=false,facing=east,open=false]","196:10":"minecraft:acacia_door[hinge=left,half=upper,powered=true,facing=east,open=false]","196:11":"minecraft:acacia_door[hinge=right,half=upper,powered=true,facing=east,open=false]","197:0":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]","197:1":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]","197:2":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]","197:3":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]","197:4":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]","197:5":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]","197:6":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]","197:7":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]","197:8":"minecraft:dark_oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]","197:9":"minecraft:dark_oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]","197:10":"minecraft:dark_oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]","197:11":"minecraft:dark_oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]","198:0":"minecraft:end_rod[facing=down]","198:1":"minecraft:end_rod[facing=up]","198:2":"minecraft:end_rod[facing=north]","198:3":"minecraft:end_rod[facing=south]","198:4":"minecraft:end_rod[facing=west]","198:5":"minecraft:end_rod[facing=east]","199:0":"minecraft:chorus_plant[east=false,south=false,north=false,west=false,up=false,down=false]","200:0":"minecraft:chorus_flower[age=0]","200:1":"minecraft:chorus_flower[age=1]","200:2":"minecraft:chorus_flower[age=2]","200:3":"minecraft:chorus_flower[age=3]","200:4":"minecraft:chorus_flower[age=4]","200:5":"minecraft:chorus_flower[age=5]","201:0":"minecraft:purpur_block","202:0":"minecraft:purpur_pillar[axis=y]","202:4":"minecraft:purpur_pillar[axis=x]","202:8":"minecraft:purpur_pillar[axis=z]","203:0":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=east]","203:1":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=west]","203:2":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=south]","203:3":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=north]","203:4":"minecraft:purpur_stairs[half=top,shape=straight,facing=east]","203:5":"minecraft:purpur_stairs[half=top,shape=straight,facing=west]","203:6":"minecraft:purpur_stairs[half=top,shape=straight,facing=south]","203:7":"minecraft:purpur_stairs[half=top,shape=straight,facing=north]","204:0":"minecraft:purpur_slab[type=double]","205:0":"minecraft:purpur_slab[type=bottom]","205:8":"minecraft:purpur_slab[type=top]","206:0":"minecraft:end_stone_bricks","207:0":"minecraft:beetroots[age=0]","207:1":"minecraft:beetroots[age=1]","207:2":"minecraft:beetroots[age=2]","207:3":"minecraft:beetroots[age=3]","208:0":"minecraft:grass_path","209:0":"minecraft:end_gateway","210:0":"minecraft:repeating_command_block[conditional=false,facing=down]","210:1":"minecraft:repeating_command_block[conditional=false,facing=up]","210:2":"minecraft:repeating_command_block[conditional=false,facing=north]","210:3":"minecraft:repeating_command_block[conditional=false,facing=south]","210:4":"minecraft:repeating_command_block[conditional=false,facing=west]","210:5":"minecraft:repeating_command_block[conditional=false,facing=east]","210:8":"minecraft:repeating_command_block[conditional=true,facing=down]","210:9":"minecraft:repeating_command_block[conditional=true,facing=up]","210:10":"minecraft:repeating_command_block[conditional=true,facing=north]","210:11":"minecraft:repeating_command_block[conditional=true,facing=south]","210:12":"minecraft:repeating_command_block[conditional=true,facing=west]","210:13":"minecraft:repeating_command_block[conditional=true,facing=east]","211:0":"minecraft:chain_command_block[conditional=false,facing=down]","211:1":"minecraft:chain_command_block[conditional=false,facing=up]","211:2":"minecraft:chain_command_block[conditional=false,facing=north]","211:3":"minecraft:chain_command_block[conditional=false,facing=south]","211:4":"minecraft:chain_command_block[conditional=false,facing=west]","211:5":"minecraft:chain_command_block[conditional=false,facing=east]","211:8":"minecraft:chain_command_block[conditional=true,facing=down]","211:9":"minecraft:chain_command_block[conditional=true,facing=up]","211:10":"minecraft:chain_command_block[conditional=true,facing=north]","211:11":"minecraft:chain_command_block[conditional=true,facing=south]","211:12":"minecraft:chain_command_block[conditional=true,facing=west]","211:13":"minecraft:chain_command_block[conditional=true,facing=east]","212:0":"minecraft:frosted_ice[age=0]","212:1":"minecraft:frosted_ice[age=1]","212:2":"minecraft:frosted_ice[age=2]","212:3":"minecraft:frosted_ice[age=3]","213:0":"minecraft:magma_block","214:0":"minecraft:nether_wart_block","215:0":"minecraft:red_nether_bricks","216:0":"minecraft:bone_block[axis=y]","216:4":"minecraft:bone_block[axis=x]","216:8":"minecraft:bone_block[axis=z]","217:0":"minecraft:structure_void","218:0":"minecraft:observer[powered=false,facing=down]","218:1":"minecraft:observer[powered=false,facing=up]","218:2":"minecraft:observer[powered=false,facing=north]","218:3":"minecraft:observer[powered=false,facing=south]","218:4":"minecraft:observer[powered=false,facing=west]","218:5":"minecraft:observer[powered=false,facing=east]","218:8":"minecraft:observer[powered=true,facing=down]","218:9":"minecraft:observer[powered=true,facing=up]","218:10":"minecraft:observer[powered=true,facing=north]","218:11":"minecraft:observer[powered=true,facing=south]","218:12":"minecraft:observer[powered=true,facing=west]","218:13":"minecraft:observer[powered=true,facing=east]","219:0":"minecraft:white_shulker_box[facing=down]","219:1":"minecraft:white_shulker_box[facing=up]","219:2":"minecraft:white_shulker_box[facing=north]","219:3":"minecraft:white_shulker_box[facing=south]","219:4":"minecraft:white_shulker_box[facing=west]","219:5":"minecraft:white_shulker_box[facing=east]","220:0":"minecraft:orange_shulker_box[facing=down]","220:1":"minecraft:orange_shulker_box[facing=up]","220:2":"minecraft:orange_shulker_box[facing=north]","220:3":"minecraft:orange_shulker_box[facing=south]","220:4":"minecraft:orange_shulker_box[facing=west]","220:5":"minecraft:orange_shulker_box[facing=east]","221:0":"minecraft:magenta_shulker_box[facing=down]","221:1":"minecraft:magenta_shulker_box[facing=up]","221:2":"minecraft:magenta_shulker_box[facing=north]","221:3":"minecraft:magenta_shulker_box[facing=south]","221:4":"minecraft:magenta_shulker_box[facing=west]","221:5":"minecraft:magenta_shulker_box[facing=east]","222:0":"minecraft:light_blue_shulker_box[facing=down]","222:1":"minecraft:light_blue_shulker_box[facing=up]","222:2":"minecraft:light_blue_shulker_box[facing=north]","222:3":"minecraft:light_blue_shulker_box[facing=south]","222:4":"minecraft:light_blue_shulker_box[facing=west]","222:5":"minecraft:light_blue_shulker_box[facing=east]","223:0":"minecraft:yellow_shulker_box[facing=down]","223:1":"minecraft:yellow_shulker_box[facing=up]","223:2":"minecraft:yellow_shulker_box[facing=north]","223:3":"minecraft:yellow_shulker_box[facing=south]","223:4":"minecraft:yellow_shulker_box[facing=west]","223:5":"minecraft:yellow_shulker_box[facing=east]","224:0":"minecraft:lime_shulker_box[facing=down]","224:1":"minecraft:lime_shulker_box[facing=up]","224:2":"minecraft:lime_shulker_box[facing=north]","224:3":"minecraft:lime_shulker_box[facing=south]","224:4":"minecraft:lime_shulker_box[facing=west]","224:5":"minecraft:lime_shulker_box[facing=east]","225:0":"minecraft:pink_shulker_box[facing=down]","225:1":"minecraft:pink_shulker_box[facing=up]","225:2":"minecraft:pink_shulker_box[facing=north]","225:3":"minecraft:pink_shulker_box[facing=south]","225:4":"minecraft:pink_shulker_box[facing=west]","225:5":"minecraft:pink_shulker_box[facing=east]","226:0":"minecraft:gray_shulker_box[facing=down]","226:1":"minecraft:gray_shulker_box[facing=up]","226:2":"minecraft:gray_shulker_box[facing=north]","226:3":"minecraft:gray_shulker_box[facing=south]","226:4":"minecraft:gray_shulker_box[facing=west]","226:5":"minecraft:gray_shulker_box[facing=east]","227:0":"minecraft:light_gray_shulker_box[facing=down]","227:1":"minecraft:light_gray_shulker_box[facing=up]","227:2":"minecraft:light_gray_shulker_box[facing=north]","227:3":"minecraft:light_gray_shulker_box[facing=south]","227:4":"minecraft:light_gray_shulker_box[facing=west]","227:5":"minecraft:light_gray_shulker_box[facing=east]","228:0":"minecraft:cyan_shulker_box[facing=down]","228:1":"minecraft:cyan_shulker_box[facing=up]","228:2":"minecraft:cyan_shulker_box[facing=north]","228:3":"minecraft:cyan_shulker_box[facing=south]","228:4":"minecraft:cyan_shulker_box[facing=west]","228:5":"minecraft:cyan_shulker_box[facing=east]","229:0":"minecraft:purple_shulker_box[facing=down]","229:1":"minecraft:purple_shulker_box[facing=up]","229:2":"minecraft:purple_shulker_box[facing=north]","229:3":"minecraft:purple_shulker_box[facing=south]","229:4":"minecraft:purple_shulker_box[facing=west]","229:5":"minecraft:purple_shulker_box[facing=east]","230:0":"minecraft:blue_shulker_box[facing=down]","230:1":"minecraft:blue_shulker_box[facing=up]","230:2":"minecraft:blue_shulker_box[facing=north]","230:3":"minecraft:blue_shulker_box[facing=south]","230:4":"minecraft:blue_shulker_box[facing=west]","230:5":"minecraft:blue_shulker_box[facing=east]","231:0":"minecraft:brown_shulker_box[facing=down]","231:1":"minecraft:brown_shulker_box[facing=up]","231:2":"minecraft:brown_shulker_box[facing=north]","231:3":"minecraft:brown_shulker_box[facing=south]","231:4":"minecraft:brown_shulker_box[facing=west]","231:5":"minecraft:brown_shulker_box[facing=east]","232:0":"minecraft:green_shulker_box[facing=down]","232:1":"minecraft:green_shulker_box[facing=up]","232:2":"minecraft:green_shulker_box[facing=north]","232:3":"minecraft:green_shulker_box[facing=south]","232:4":"minecraft:green_shulker_box[facing=west]","232:5":"minecraft:green_shulker_box[facing=east]","233:0":"minecraft:red_shulker_box[facing=down]","233:1":"minecraft:red_shulker_box[facing=up]","233:2":"minecraft:red_shulker_box[facing=north]","233:3":"minecraft:red_shulker_box[facing=south]","233:4":"minecraft:red_shulker_box[facing=west]","233:5":"minecraft:red_shulker_box[facing=east]","234:0":"minecraft:black_shulker_box[facing=down]","234:1":"minecraft:black_shulker_box[facing=up]","234:2":"minecraft:black_shulker_box[facing=north]","234:3":"minecraft:black_shulker_box[facing=south]","234:4":"minecraft:black_shulker_box[facing=west]","234:5":"minecraft:black_shulker_box[facing=east]","235:0":"minecraft:white_glazed_terracotta[facing=south]","235:1":"minecraft:white_glazed_terracotta[facing=west]","235:2":"minecraft:white_glazed_terracotta[facing=north]","235:3":"minecraft:white_glazed_terracotta[facing=east]","236:0":"minecraft:orange_glazed_terracotta[facing=south]","236:1":"minecraft:orange_glazed_terracotta[facing=west]","236:2":"minecraft:orange_glazed_terracotta[facing=north]","236:3":"minecraft:orange_glazed_terracotta[facing=east]","237:0":"minecraft:magenta_glazed_terracotta[facing=south]","237:1":"minecraft:magenta_glazed_terracotta[facing=west]","237:2":"minecraft:magenta_glazed_terracotta[facing=north]","237:3":"minecraft:magenta_glazed_terracotta[facing=east]","238:0":"minecraft:light_blue_glazed_terracotta[facing=south]","238:1":"minecraft:light_blue_glazed_terracotta[facing=west]","238:2":"minecraft:light_blue_glazed_terracotta[facing=north]","238:3":"minecraft:light_blue_glazed_terracotta[facing=east]","239:0":"minecraft:yellow_glazed_terracotta[facing=south]","239:1":"minecraft:yellow_glazed_terracotta[facing=west]","239:2":"minecraft:yellow_glazed_terracotta[facing=north]","239:3":"minecraft:yellow_glazed_terracotta[facing=east]","240:0":"minecraft:lime_glazed_terracotta[facing=south]","240:1":"minecraft:lime_glazed_terracotta[facing=west]","240:2":"minecraft:lime_glazed_terracotta[facing=north]","240:3":"minecraft:lime_glazed_terracotta[facing=east]","241:0":"minecraft:pink_glazed_terracotta[facing=south]","241:1":"minecraft:pink_glazed_terracotta[facing=west]","241:2":"minecraft:pink_glazed_terracotta[facing=north]","241:3":"minecraft:pink_glazed_terracotta[facing=east]","242:0":"minecraft:gray_glazed_terracotta[facing=south]","242:1":"minecraft:gray_glazed_terracotta[facing=west]","242:2":"minecraft:gray_glazed_terracotta[facing=north]","242:3":"minecraft:gray_glazed_terracotta[facing=east]","243:0":"minecraft:light_gray_glazed_terracotta[facing=south]","243:1":"minecraft:light_gray_glazed_terracotta[facing=west]","243:2":"minecraft:light_gray_glazed_terracotta[facing=north]","243:3":"minecraft:light_gray_glazed_terracotta[facing=east]","244:0":"minecraft:cyan_glazed_terracotta[facing=south]","244:1":"minecraft:cyan_glazed_terracotta[facing=west]","244:2":"minecraft:cyan_glazed_terracotta[facing=north]","244:3":"minecraft:cyan_glazed_terracotta[facing=east]","245:0":"minecraft:purple_glazed_terracotta[facing=south]","245:1":"minecraft:purple_glazed_terracotta[facing=west]","245:2":"minecraft:purple_glazed_terracotta[facing=north]","245:3":"minecraft:purple_glazed_terracotta[facing=east]","246:0":"minecraft:blue_glazed_terracotta[facing=south]","246:1":"minecraft:blue_glazed_terracotta[facing=west]","246:2":"minecraft:blue_glazed_terracotta[facing=north]","246:3":"minecraft:blue_glazed_terracotta[facing=east]","247:0":"minecraft:brown_glazed_terracotta[facing=south]","247:1":"minecraft:brown_glazed_terracotta[facing=west]","247:2":"minecraft:brown_glazed_terracotta[facing=north]","247:3":"minecraft:brown_glazed_terracotta[facing=east]","248:0":"minecraft:green_glazed_terracotta[facing=south]","248:1":"minecraft:green_glazed_terracotta[facing=west]","248:2":"minecraft:green_glazed_terracotta[facing=north]","248:3":"minecraft:green_glazed_terracotta[facing=east]","249:0":"minecraft:red_glazed_terracotta[facing=south]","249:1":"minecraft:red_glazed_terracotta[facing=west]","249:2":"minecraft:red_glazed_terracotta[facing=north]","249:3":"minecraft:red_glazed_terracotta[facing=east]","250:0":"minecraft:black_glazed_terracotta[facing=south]","250:1":"minecraft:black_glazed_terracotta[facing=west]","250:2":"minecraft:black_glazed_terracotta[facing=north]","250:3":"minecraft:black_glazed_terracotta[facing=east]","251:0":"minecraft:white_concrete","251:1":"minecraft:orange_concrete","251:2":"minecraft:magenta_concrete","251:3":"minecraft:light_blue_concrete","251:4":"minecraft:yellow_concrete","251:5":"minecraft:lime_concrete","251:6":"minecraft:pink_concrete","251:7":"minecraft:gray_concrete","251:8":"minecraft:light_gray_concrete","251:9":"minecraft:cyan_concrete","251:10":"minecraft:purple_concrete","251:11":"minecraft:blue_concrete","251:12":"minecraft:brown_concrete","251:13":"minecraft:green_concrete","251:14":"minecraft:red_concrete","251:15":"minecraft:black_concrete","252:0":"minecraft:white_concrete_powder","252:1":"minecraft:orange_concrete_powder","252:2":"minecraft:magenta_concrete_powder","252:3":"minecraft:light_blue_concrete_powder","252:4":"minecraft:yellow_concrete_powder","252:5":"minecraft:lime_concrete_powder","252:6":"minecraft:pink_concrete_powder","252:7":"minecraft:gray_concrete_powder","252:8":"minecraft:light_gray_concrete_powder","252:9":"minecraft:cyan_concrete_powder","252:10":"minecraft:purple_concrete_powder","252:11":"minecraft:blue_concrete_powder","252:12":"minecraft:brown_concrete_powder","252:13":"minecraft:green_concrete_powder","252:14":"minecraft:red_concrete_powder","252:15":"minecraft:black_concrete_powder","255:0":"minecraft:structure_block[mode=save]","255:1":"minecraft:structure_block[mode=load]","255:2":"minecraft:structure_block[mode=corner]","255:3":"minecraft:structure_block[mode=data]"}};function hl(r){const e=r.get("Materials"),t=r.get("Blocks"),n=r.get("Data"),a=r.get("Width").value,i=r.get("Height").value,o=r.get("Length").value,s=new Map;for(let m=0;m<a;++m)for(let b=0;b<i;++b)for(let v=0;v<o;++v){const w=b*a*o+v*a+m,d=`${t[w]}:${n[w]}`;let g=ul.blocks[d];if(!g)throw new Error("Unknown legacy block: "+d);const p=g.indexOf(":");p!==-1&&(g=g.substring(p+1));const y={},x=g.indexOf("[");let S;x!==-1?(S=g.substring(0,x),g.substring(x+1,g.length-1).split(",").forEach(B=>{const I=B.split("=");y[I[0]]=I[1]})):S=g,s.set(d,{type:S,properties:y})}const c=new tr({width:a,height:i,length:o,blockTypes:[...s.values()],dataVersion:void 0,metadata:{},format:{type:"mcedit",version:e==="Alpha"?1:void 0}});for(let m=0;m<a;++m)for(let b=0;b<i;++b)for(let v=0;v<o;++v){const w=b*a*o+v*a+m,d=`${t[w]}:${n[w]}`,g=s.get(d);c.setBlock({x:m,y:b,z:v},g)}return c}function ia(r,e){switch(e||(r.get("Schematic")&&r.size===1&&(r=r.get("Schematic")),r.get("Materials")?e="mcedit":r.get("BlockData")||r.get("Blocks")?e="sponge":r.get("blocks")&&(e="structure")),e){case"sponge":switch(r.get("Version").value){case 1:case 2:return ol(r);case 3:return ll(r);default:throw new Error("Unsupported Sponge schematic version.")}case"structure":return fl(r);case"mcedit":switch(r.get("Materials")){case"Alpha":return hl(r);default:throw new Error("Unsupported MCEdit schematic version.")}default:throw new Error("Unsupported schematic format.")}}/**
977
984
  * lil-gui
978
985
  * https://lil-gui.georgealways.com
979
986
  * @version 0.19.2
980
987
  * @author George Michael Brower
981
988
  * @license MIT
982
- */class nt{constructor(e,t,n,a,i="div"){this.parent=e,this.object=t,this.property=n,this._disabled=!1,this._hidden=!1,this.initialValue=this.getValue(),this.domElement=document.createElement(i),this.domElement.classList.add("controller"),this.domElement.classList.add(a),this.$name=document.createElement("div"),this.$name.classList.add("name"),nt.nextNameID=nt.nextNameID||0,this.$name.id=`lil-gui-name-${++nt.nextNameID}`,this.$widget=document.createElement("div"),this.$widget.classList.add("widget"),this.$disable=this.$widget,this.domElement.appendChild(this.$name),this.domElement.appendChild(this.$widget),this.domElement.addEventListener("keydown",o=>o.stopPropagation()),this.domElement.addEventListener("keyup",o=>o.stopPropagation()),this.parent.children.push(this),this.parent.controllers.push(this),this.parent.$children.appendChild(this.domElement),this._listenCallback=this._listenCallback.bind(this),this.name(n)}name(e){return this._name=e,this.$name.textContent=e,this}onChange(e){return this._onChange=e,this}_callOnChange(){this.parent._callOnChange(this),this._onChange!==void 0&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(e){return this._onFinishChange=e,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),this._onFinishChange!==void 0&&this._onFinishChange.call(this,this.getValue())),this._changed=!1}reset(){return this.setValue(this.initialValue),this._callOnFinishChange(),this}enable(e=!0){return this.disable(!e)}disable(e=!0){return e===this._disabled?this:(this._disabled=e,this.domElement.classList.toggle("disabled",e),this.$disable.toggleAttribute("disabled",e),this)}show(e=!0){return this._hidden=!e,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}options(e){const t=this.parent.add(this.object,this.property,e);return t.name(this._name),this.destroy(),t}min(e){return this}max(e){return this}step(e){return this}decimals(e){return this}listen(e=!0){return this._listening=e,this._listenCallbackID!==void 0&&(cancelAnimationFrame(this._listenCallbackID),this._listenCallbackID=void 0),this._listening&&this._listenCallback(),this}_listenCallback(){this._listenCallbackID=requestAnimationFrame(this._listenCallback);const e=this.save();e!==this._listenPrevValue&&this.updateDisplay(),this._listenPrevValue=e}getValue(){return this.object[this.property]}setValue(e){return this.getValue()!==e&&(this.object[this.property]=e,this._callOnChange(),this.updateDisplay()),this}updateDisplay(){return this}load(e){return this.setValue(e),this._callOnFinishChange(),this}save(){return this.getValue()}destroy(){this.listen(!1),this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.controllers.splice(this.parent.controllers.indexOf(this),1),this.parent.$children.removeChild(this.domElement)}}class hl extends nt{constructor(e,t,n){super(e,t,n,"boolean","label"),this.$input=document.createElement("input"),this.$input.setAttribute("type","checkbox"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$input.addEventListener("change",()=>{this.setValue(this.$input.checked),this._callOnFinishChange()}),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.checked=this.getValue(),this}}function Ur(r){let e,t;return(e=r.match(/(#|0x)?([a-f0-9]{6})/i))?t=e[2]:(e=r.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?t=parseInt(e[1]).toString(16).padStart(2,0)+parseInt(e[2]).toString(16).padStart(2,0)+parseInt(e[3]).toString(16).padStart(2,0):(e=r.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(t=e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),t?"#"+t:!1}const dl={isPrimitive:!0,match:r=>typeof r=="string",fromHexString:Ur,toHexString:Ur},Tt={isPrimitive:!0,match:r=>typeof r=="number",fromHexString:r=>parseInt(r.substring(1),16),toHexString:r=>"#"+r.toString(16).padStart(6,0)},pl=[dl,Tt,{isPrimitive:!1,match:r=>Array.isArray(r),fromHexString(r,e,t=1){const n=Tt.fromHexString(r);e[0]=(n>>16&255)/255*t,e[1]=(n>>8&255)/255*t,e[2]=(n&255)/255*t},toHexString([r,e,t],n=1){n=255/n;const a=r*n<<16^e*n<<8^t*n<<0;return Tt.toHexString(a)}},{isPrimitive:!1,match:r=>Object(r)===r,fromHexString(r,e,t=1){const n=Tt.fromHexString(r);e.r=(n>>16&255)/255*t,e.g=(n>>8&255)/255*t,e.b=(n&255)/255*t},toHexString({r,g:e,b:t},n=1){n=255/n;const a=r*n<<16^e*n<<8^t*n<<0;return Tt.toHexString(a)}}];function ml(r){return pl.find(e=>e.match(r))}class gl extends nt{constructor(e,t,n,a){super(e,t,n,"color"),this.$input=document.createElement("input"),this.$input.setAttribute("type","color"),this.$input.setAttribute("tabindex",-1),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$text=document.createElement("input"),this.$text.setAttribute("type","text"),this.$text.setAttribute("spellcheck","false"),this.$text.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=ml(this.initialValue),this._rgbScale=a,this._initialValueHexString=this.save(),this._textFocused=!1,this.$input.addEventListener("input",()=>{this._setValueFromHexString(this.$input.value)}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$text.addEventListener("input",()=>{const i=Ur(this.$text.value);i&&this._setValueFromHexString(i)}),this.$text.addEventListener("focus",()=>{this._textFocused=!0,this.$text.select()}),this.$text.addEventListener("blur",()=>{this._textFocused=!1,this.updateDisplay(),this._callOnFinishChange()}),this.$disable=this.$text,this.updateDisplay()}reset(){return this._setValueFromHexString(this._initialValueHexString),this}_setValueFromHexString(e){if(this._format.isPrimitive){const t=this._format.fromHexString(e);this.setValue(t)}else this._format.fromHexString(e,this.getValue(),this._rgbScale),this._callOnChange(),this.updateDisplay()}save(){return this._format.toHexString(this.getValue(),this._rgbScale)}load(e){return this._setValueFromHexString(e),this._callOnFinishChange(),this}updateDisplay(){return this.$input.value=this._format.toHexString(this.getValue(),this._rgbScale),this._textFocused||(this.$text.value=this.$input.value.substring(1)),this.$display.style.backgroundColor=this.$input.value,this}}class Rr extends nt{constructor(e,t,n){super(e,t,n,"function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",a=>{a.preventDefault(),this.getValue().call(this.object),this._callOnChange()}),this.$button.addEventListener("touchstart",()=>{},{passive:!0}),this.$disable=this.$button}}class wl extends nt{constructor(e,t,n,a,i,o){super(e,t,n,"number"),this._initInput(),this.min(a),this.max(i);const s=o!==void 0;this.step(s?o:this._getImplicitStep(),s),this.updateDisplay()}decimals(e){return this._decimals=e,this.updateDisplay(),this}min(e){return this._min=e,this._onUpdateMinMax(),this}max(e){return this._max=e,this._onUpdateMinMax(),this}step(e,t=!0){return this._step=e,this._stepExplicit=t,this}updateDisplay(){const e=this.getValue();if(this._hasSlider){let t=(e-this._min)/(this._max-this._min);t=Math.max(0,Math.min(t,1)),this.$fill.style.width=t*100+"%"}return this._inputFocused||(this.$input.value=this._decimals===void 0?e:e.toFixed(this._decimals)),this}_initInput(){this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),window.matchMedia("(pointer: coarse)").matches&&(this.$input.setAttribute("type","number"),this.$input.setAttribute("step","any")),this.$widget.appendChild(this.$input),this.$disable=this.$input;const t=()=>{let S=parseFloat(this.$input.value);isNaN(S)||(this._stepExplicit&&(S=this._snap(S)),this.setValue(this._clamp(S)))},n=S=>{const D=parseFloat(this.$input.value);isNaN(D)||(this._snapClampSetValue(D+S),this.$input.value=this.getValue())},a=S=>{S.key==="Enter"&&this.$input.blur(),S.code==="ArrowUp"&&(S.preventDefault(),n(this._step*this._arrowKeyMultiplier(S))),S.code==="ArrowDown"&&(S.preventDefault(),n(this._step*this._arrowKeyMultiplier(S)*-1))},i=S=>{this._inputFocused&&(S.preventDefault(),n(this._step*this._normalizeMouseWheel(S)))};let o=!1,s,c,m,b,v;const w=5,d=S=>{s=S.clientX,c=m=S.clientY,o=!0,b=this.getValue(),v=0,window.addEventListener("mousemove",g),window.addEventListener("mouseup",p)},g=S=>{if(o){const D=S.clientX-s,B=S.clientY-c;Math.abs(B)>w?(S.preventDefault(),this.$input.blur(),o=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(D)>w&&p()}if(!o){const D=S.clientY-m;v-=D*this._step*this._arrowKeyMultiplier(S),b+v>this._max?v=this._max-b:b+v<this._min&&(v=this._min-b),this._snapClampSetValue(b+v)}m=S.clientY},p=()=>{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",g),window.removeEventListener("mouseup",p)},y=()=>{this._inputFocused=!0},x=()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()};this.$input.addEventListener("input",t),this.$input.addEventListener("keydown",a),this.$input.addEventListener("wheel",i,{passive:!1}),this.$input.addEventListener("mousedown",d),this.$input.addEventListener("focus",y),this.$input.addEventListener("blur",x)}_initSlider(){this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("hasSlider");const e=(x,S,D,B,I)=>(x-S)/(D-S)*(I-B)+B,t=x=>{const S=this.$slider.getBoundingClientRect();let D=e(x,S.left,S.right,this._min,this._max);this._snapClampSetValue(D)},n=x=>{this._setDraggingStyle(!0),t(x.clientX),window.addEventListener("mousemove",a),window.addEventListener("mouseup",i)},a=x=>{t(x.clientX)},i=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",i)};let o=!1,s,c;const m=x=>{x.preventDefault(),this._setDraggingStyle(!0),t(x.touches[0].clientX),o=!1},b=x=>{x.touches.length>1||(this._hasScrollBar?(s=x.touches[0].clientX,c=x.touches[0].clientY,o=!0):m(x),window.addEventListener("touchmove",v,{passive:!1}),window.addEventListener("touchend",w))},v=x=>{if(o){const S=x.touches[0].clientX-s,D=x.touches[0].clientY-c;Math.abs(S)>Math.abs(D)?m(x):(window.removeEventListener("touchmove",v),window.removeEventListener("touchend",w))}else x.preventDefault(),t(x.touches[0].clientX)},w=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",v),window.removeEventListener("touchend",w)},d=this._callOnFinishChange.bind(this),g=400;let p;const y=x=>{if(Math.abs(x.deltaX)<Math.abs(x.deltaY)&&this._hasScrollBar)return;x.preventDefault();const D=this._normalizeMouseWheel(x)*this._step;this._snapClampSetValue(this.getValue()+D),this.$input.value=this.getValue(),clearTimeout(p),p=setTimeout(d,g)};this.$slider.addEventListener("mousedown",n),this.$slider.addEventListener("touchstart",b,{passive:!1}),this.$slider.addEventListener("wheel",y,{passive:!1})}_setDraggingStyle(e,t="horizontal"){this.$slider&&this.$slider.classList.toggle("active",e),document.body.classList.toggle("lil-gui-dragging",e),document.body.classList.toggle(`lil-gui-${t}`,e)}_getImplicitStep(){return this._hasMin&&this._hasMax?(this._max-this._min)/1e3:.1}_onUpdateMinMax(){!this._hasSlider&&this._hasMin&&this._hasMax&&(this._stepExplicit||this.step(this._getImplicitStep(),!1),this._initSlider(),this.updateDisplay())}_normalizeMouseWheel(e){let{deltaX:t,deltaY:n}=e;return Math.floor(e.deltaY)!==e.deltaY&&e.wheelDelta&&(t=0,n=-e.wheelDelta/120,n*=this._stepExplicit?1:10),t+-n}_arrowKeyMultiplier(e){let t=this._stepExplicit?1:10;return e.shiftKey?t*=10:e.altKey&&(t/=10),t}_snap(e){const t=Math.round(e/this._step)*this._step;return parseFloat(t.toPrecision(15))}_clamp(e){return e<this._min&&(e=this._min),e>this._max&&(e=this._max),e}_snapClampSetValue(e){this.setValue(this._clamp(this._snap(e)))}get _hasScrollBar(){const e=this.parent.root.$children;return e.scrollHeight>e.clientHeight}get _hasMin(){return this._min!==void 0}get _hasMax(){return this._max!==void 0}}class vl extends nt{constructor(e,t,n,a){super(e,t,n,"option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.options(a)}options(e){return this._values=Array.isArray(e)?e:Object.values(e),this._names=Array.isArray(e)?e:Object.keys(e),this.$select.replaceChildren(),this._names.forEach(t=>{const n=document.createElement("option");n.textContent=t,this.$select.appendChild(n)}),this.updateDisplay(),this}updateDisplay(){const e=this.getValue(),t=this._values.indexOf(e);return this.$select.selectedIndex=t,this.$display.textContent=t===-1?e:this._names[t],this}}class bl extends nt{constructor(e,t,n){super(e,t,n,"string"),this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("spellcheck","false"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$input.addEventListener("input",()=>{this.setValue(this.$input.value)}),this.$input.addEventListener("keydown",a=>{a.code==="Enter"&&this.$input.blur()}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$widget.appendChild(this.$input),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.value=this.getValue(),this}}const xl=`.lil-gui {
989
+ */class nt{constructor(e,t,n,a,i="div"){this.parent=e,this.object=t,this.property=n,this._disabled=!1,this._hidden=!1,this.initialValue=this.getValue(),this.domElement=document.createElement(i),this.domElement.classList.add("controller"),this.domElement.classList.add(a),this.$name=document.createElement("div"),this.$name.classList.add("name"),nt.nextNameID=nt.nextNameID||0,this.$name.id=`lil-gui-name-${++nt.nextNameID}`,this.$widget=document.createElement("div"),this.$widget.classList.add("widget"),this.$disable=this.$widget,this.domElement.appendChild(this.$name),this.domElement.appendChild(this.$widget),this.domElement.addEventListener("keydown",o=>o.stopPropagation()),this.domElement.addEventListener("keyup",o=>o.stopPropagation()),this.parent.children.push(this),this.parent.controllers.push(this),this.parent.$children.appendChild(this.domElement),this._listenCallback=this._listenCallback.bind(this),this.name(n)}name(e){return this._name=e,this.$name.textContent=e,this}onChange(e){return this._onChange=e,this}_callOnChange(){this.parent._callOnChange(this),this._onChange!==void 0&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(e){return this._onFinishChange=e,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),this._onFinishChange!==void 0&&this._onFinishChange.call(this,this.getValue())),this._changed=!1}reset(){return this.setValue(this.initialValue),this._callOnFinishChange(),this}enable(e=!0){return this.disable(!e)}disable(e=!0){return e===this._disabled?this:(this._disabled=e,this.domElement.classList.toggle("disabled",e),this.$disable.toggleAttribute("disabled",e),this)}show(e=!0){return this._hidden=!e,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}options(e){const t=this.parent.add(this.object,this.property,e);return t.name(this._name),this.destroy(),t}min(e){return this}max(e){return this}step(e){return this}decimals(e){return this}listen(e=!0){return this._listening=e,this._listenCallbackID!==void 0&&(cancelAnimationFrame(this._listenCallbackID),this._listenCallbackID=void 0),this._listening&&this._listenCallback(),this}_listenCallback(){this._listenCallbackID=requestAnimationFrame(this._listenCallback);const e=this.save();e!==this._listenPrevValue&&this.updateDisplay(),this._listenPrevValue=e}getValue(){return this.object[this.property]}setValue(e){return this.getValue()!==e&&(this.object[this.property]=e,this._callOnChange(),this.updateDisplay()),this}updateDisplay(){return this}load(e){return this.setValue(e),this._callOnFinishChange(),this}save(){return this.getValue()}destroy(){this.listen(!1),this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.controllers.splice(this.parent.controllers.indexOf(this),1),this.parent.$children.removeChild(this.domElement)}}class dl extends nt{constructor(e,t,n){super(e,t,n,"boolean","label"),this.$input=document.createElement("input"),this.$input.setAttribute("type","checkbox"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$input.addEventListener("change",()=>{this.setValue(this.$input.checked),this._callOnFinishChange()}),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.checked=this.getValue(),this}}function Ur(r){let e,t;return(e=r.match(/(#|0x)?([a-f0-9]{6})/i))?t=e[2]:(e=r.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?t=parseInt(e[1]).toString(16).padStart(2,0)+parseInt(e[2]).toString(16).padStart(2,0)+parseInt(e[3]).toString(16).padStart(2,0):(e=r.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(t=e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),t?"#"+t:!1}const pl={isPrimitive:!0,match:r=>typeof r=="string",fromHexString:Ur,toHexString:Ur},Lt={isPrimitive:!0,match:r=>typeof r=="number",fromHexString:r=>parseInt(r.substring(1),16),toHexString:r=>"#"+r.toString(16).padStart(6,0)},ml=[pl,Lt,{isPrimitive:!1,match:r=>Array.isArray(r),fromHexString(r,e,t=1){const n=Lt.fromHexString(r);e[0]=(n>>16&255)/255*t,e[1]=(n>>8&255)/255*t,e[2]=(n&255)/255*t},toHexString([r,e,t],n=1){n=255/n;const a=r*n<<16^e*n<<8^t*n<<0;return Lt.toHexString(a)}},{isPrimitive:!1,match:r=>Object(r)===r,fromHexString(r,e,t=1){const n=Lt.fromHexString(r);e.r=(n>>16&255)/255*t,e.g=(n>>8&255)/255*t,e.b=(n&255)/255*t},toHexString({r,g:e,b:t},n=1){n=255/n;const a=r*n<<16^e*n<<8^t*n<<0;return Lt.toHexString(a)}}];function gl(r){return ml.find(e=>e.match(r))}class wl extends nt{constructor(e,t,n,a){super(e,t,n,"color"),this.$input=document.createElement("input"),this.$input.setAttribute("type","color"),this.$input.setAttribute("tabindex",-1),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$text=document.createElement("input"),this.$text.setAttribute("type","text"),this.$text.setAttribute("spellcheck","false"),this.$text.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=gl(this.initialValue),this._rgbScale=a,this._initialValueHexString=this.save(),this._textFocused=!1,this.$input.addEventListener("input",()=>{this._setValueFromHexString(this.$input.value)}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$text.addEventListener("input",()=>{const i=Ur(this.$text.value);i&&this._setValueFromHexString(i)}),this.$text.addEventListener("focus",()=>{this._textFocused=!0,this.$text.select()}),this.$text.addEventListener("blur",()=>{this._textFocused=!1,this.updateDisplay(),this._callOnFinishChange()}),this.$disable=this.$text,this.updateDisplay()}reset(){return this._setValueFromHexString(this._initialValueHexString),this}_setValueFromHexString(e){if(this._format.isPrimitive){const t=this._format.fromHexString(e);this.setValue(t)}else this._format.fromHexString(e,this.getValue(),this._rgbScale),this._callOnChange(),this.updateDisplay()}save(){return this._format.toHexString(this.getValue(),this._rgbScale)}load(e){return this._setValueFromHexString(e),this._callOnFinishChange(),this}updateDisplay(){return this.$input.value=this._format.toHexString(this.getValue(),this._rgbScale),this._textFocused||(this.$text.value=this.$input.value.substring(1)),this.$display.style.backgroundColor=this.$input.value,this}}class Rr extends nt{constructor(e,t,n){super(e,t,n,"function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",a=>{a.preventDefault(),this.getValue().call(this.object),this._callOnChange()}),this.$button.addEventListener("touchstart",()=>{},{passive:!0}),this.$disable=this.$button}}class vl extends nt{constructor(e,t,n,a,i,o){super(e,t,n,"number"),this._initInput(),this.min(a),this.max(i);const s=o!==void 0;this.step(s?o:this._getImplicitStep(),s),this.updateDisplay()}decimals(e){return this._decimals=e,this.updateDisplay(),this}min(e){return this._min=e,this._onUpdateMinMax(),this}max(e){return this._max=e,this._onUpdateMinMax(),this}step(e,t=!0){return this._step=e,this._stepExplicit=t,this}updateDisplay(){const e=this.getValue();if(this._hasSlider){let t=(e-this._min)/(this._max-this._min);t=Math.max(0,Math.min(t,1)),this.$fill.style.width=t*100+"%"}return this._inputFocused||(this.$input.value=this._decimals===void 0?e:e.toFixed(this._decimals)),this}_initInput(){this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),window.matchMedia("(pointer: coarse)").matches&&(this.$input.setAttribute("type","number"),this.$input.setAttribute("step","any")),this.$widget.appendChild(this.$input),this.$disable=this.$input;const t=()=>{let S=parseFloat(this.$input.value);isNaN(S)||(this._stepExplicit&&(S=this._snap(S)),this.setValue(this._clamp(S)))},n=S=>{const D=parseFloat(this.$input.value);isNaN(D)||(this._snapClampSetValue(D+S),this.$input.value=this.getValue())},a=S=>{S.key==="Enter"&&this.$input.blur(),S.code==="ArrowUp"&&(S.preventDefault(),n(this._step*this._arrowKeyMultiplier(S))),S.code==="ArrowDown"&&(S.preventDefault(),n(this._step*this._arrowKeyMultiplier(S)*-1))},i=S=>{this._inputFocused&&(S.preventDefault(),n(this._step*this._normalizeMouseWheel(S)))};let o=!1,s,c,m,b,v;const w=5,d=S=>{s=S.clientX,c=m=S.clientY,o=!0,b=this.getValue(),v=0,window.addEventListener("mousemove",g),window.addEventListener("mouseup",p)},g=S=>{if(o){const D=S.clientX-s,B=S.clientY-c;Math.abs(B)>w?(S.preventDefault(),this.$input.blur(),o=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(D)>w&&p()}if(!o){const D=S.clientY-m;v-=D*this._step*this._arrowKeyMultiplier(S),b+v>this._max?v=this._max-b:b+v<this._min&&(v=this._min-b),this._snapClampSetValue(b+v)}m=S.clientY},p=()=>{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",g),window.removeEventListener("mouseup",p)},y=()=>{this._inputFocused=!0},x=()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()};this.$input.addEventListener("input",t),this.$input.addEventListener("keydown",a),this.$input.addEventListener("wheel",i,{passive:!1}),this.$input.addEventListener("mousedown",d),this.$input.addEventListener("focus",y),this.$input.addEventListener("blur",x)}_initSlider(){this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("hasSlider");const e=(x,S,D,B,I)=>(x-S)/(D-S)*(I-B)+B,t=x=>{const S=this.$slider.getBoundingClientRect();let D=e(x,S.left,S.right,this._min,this._max);this._snapClampSetValue(D)},n=x=>{this._setDraggingStyle(!0),t(x.clientX),window.addEventListener("mousemove",a),window.addEventListener("mouseup",i)},a=x=>{t(x.clientX)},i=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",i)};let o=!1,s,c;const m=x=>{x.preventDefault(),this._setDraggingStyle(!0),t(x.touches[0].clientX),o=!1},b=x=>{x.touches.length>1||(this._hasScrollBar?(s=x.touches[0].clientX,c=x.touches[0].clientY,o=!0):m(x),window.addEventListener("touchmove",v,{passive:!1}),window.addEventListener("touchend",w))},v=x=>{if(o){const S=x.touches[0].clientX-s,D=x.touches[0].clientY-c;Math.abs(S)>Math.abs(D)?m(x):(window.removeEventListener("touchmove",v),window.removeEventListener("touchend",w))}else x.preventDefault(),t(x.touches[0].clientX)},w=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",v),window.removeEventListener("touchend",w)},d=this._callOnFinishChange.bind(this),g=400;let p;const y=x=>{if(Math.abs(x.deltaX)<Math.abs(x.deltaY)&&this._hasScrollBar)return;x.preventDefault();const D=this._normalizeMouseWheel(x)*this._step;this._snapClampSetValue(this.getValue()+D),this.$input.value=this.getValue(),clearTimeout(p),p=setTimeout(d,g)};this.$slider.addEventListener("mousedown",n),this.$slider.addEventListener("touchstart",b,{passive:!1}),this.$slider.addEventListener("wheel",y,{passive:!1})}_setDraggingStyle(e,t="horizontal"){this.$slider&&this.$slider.classList.toggle("active",e),document.body.classList.toggle("lil-gui-dragging",e),document.body.classList.toggle(`lil-gui-${t}`,e)}_getImplicitStep(){return this._hasMin&&this._hasMax?(this._max-this._min)/1e3:.1}_onUpdateMinMax(){!this._hasSlider&&this._hasMin&&this._hasMax&&(this._stepExplicit||this.step(this._getImplicitStep(),!1),this._initSlider(),this.updateDisplay())}_normalizeMouseWheel(e){let{deltaX:t,deltaY:n}=e;return Math.floor(e.deltaY)!==e.deltaY&&e.wheelDelta&&(t=0,n=-e.wheelDelta/120,n*=this._stepExplicit?1:10),t+-n}_arrowKeyMultiplier(e){let t=this._stepExplicit?1:10;return e.shiftKey?t*=10:e.altKey&&(t/=10),t}_snap(e){const t=Math.round(e/this._step)*this._step;return parseFloat(t.toPrecision(15))}_clamp(e){return e<this._min&&(e=this._min),e>this._max&&(e=this._max),e}_snapClampSetValue(e){this.setValue(this._clamp(this._snap(e)))}get _hasScrollBar(){const e=this.parent.root.$children;return e.scrollHeight>e.clientHeight}get _hasMin(){return this._min!==void 0}get _hasMax(){return this._max!==void 0}}class bl extends nt{constructor(e,t,n,a){super(e,t,n,"option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.options(a)}options(e){return this._values=Array.isArray(e)?e:Object.values(e),this._names=Array.isArray(e)?e:Object.keys(e),this.$select.replaceChildren(),this._names.forEach(t=>{const n=document.createElement("option");n.textContent=t,this.$select.appendChild(n)}),this.updateDisplay(),this}updateDisplay(){const e=this.getValue(),t=this._values.indexOf(e);return this.$select.selectedIndex=t,this.$display.textContent=t===-1?e:this._names[t],this}}class xl extends nt{constructor(e,t,n){super(e,t,n,"string"),this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("spellcheck","false"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$input.addEventListener("input",()=>{this.setValue(this.$input.value)}),this.$input.addEventListener("keydown",a=>{a.code==="Enter"&&this.$input.blur()}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$widget.appendChild(this.$input),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.value=this.getValue(),this}}const _l=`.lil-gui {
983
990
  font-family: var(--font-family);
984
991
  font-size: var(--font-size);
985
992
  line-height: 1;
@@ -1400,8 +1407,8 @@ vec4 noise=sampleBlueNoise(blueNoiseTexture,seed,blueNoiseRepeat,texSize);vec3 r
1400
1407
  @font-face {
1401
1408
  font-family: "lil-gui";
1402
1409
  src: url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUsAAsAAAAACJwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAH4AAADAImwmYE9TLzIAAAGIAAAAPwAAAGBKqH5SY21hcAAAAcgAAAD0AAACrukyyJBnbHlmAAACvAAAAF8AAACEIZpWH2hlYWQAAAMcAAAAJwAAADZfcj2zaGhlYQAAA0QAAAAYAAAAJAC5AHhobXR4AAADXAAAABAAAABMAZAAAGxvY2EAAANsAAAAFAAAACgCEgIybWF4cAAAA4AAAAAeAAAAIAEfABJuYW1lAAADoAAAASIAAAIK9SUU/XBvc3QAAATEAAAAZgAAAJCTcMc2eJxVjbEOgjAURU+hFRBK1dGRL+ALnAiToyMLEzFpnPz/eAshwSa97517c/MwwJmeB9kwPl+0cf5+uGPZXsqPu4nvZabcSZldZ6kfyWnomFY/eScKqZNWupKJO6kXN3K9uCVoL7iInPr1X5baXs3tjuMqCtzEuagm/AAlzQgPAAB4nGNgYRBlnMDAysDAYM/gBiT5oLQBAwuDJAMDEwMrMwNWEJDmmsJwgCFeXZghBcjlZMgFCzOiKOIFAB71Bb8AeJy1kjFuwkAQRZ+DwRAwBtNQRUGKQ8OdKCAWUhAgKLhIuAsVSpWz5Bbkj3dEgYiUIszqWdpZe+Z7/wB1oCYmIoboiwiLT2WjKl/jscrHfGg/pKdMkyklC5Zs2LEfHYpjcRoPzme9MWWmk3dWbK9ObkWkikOetJ554fWyoEsmdSlt+uR0pCJR34b6t/TVg1SY3sYvdf8vuiKrpyaDXDISiegp17p7579Gp3p++y7HPAiY9pmTibljrr85qSidtlg4+l25GLCaS8e6rRxNBmsnERunKbaOObRz7N72ju5vdAjYpBXHgJylOAVsMseDAPEP8LYoUHicY2BiAAEfhiAGJgZWBgZ7RnFRdnVJELCQlBSRlATJMoLV2DK4glSYs6ubq5vbKrJLSbGrgEmovDuDJVhe3VzcXFwNLCOILB/C4IuQ1xTn5FPilBTj5FPmBAB4WwoqAHicY2BkYGAA4sk1sR/j+W2+MnAzpDBgAyEMQUCSg4EJxAEAwUgFHgB4nGNgZGBgSGFggJMhDIwMqEAYAByHATJ4nGNgAIIUNEwmAABl3AGReJxjYAACIQYlBiMGJ3wQAEcQBEV4nGNgZGBgEGZgY2BiAAEQyQWEDAz/wXwGAAsPATIAAHicXdBNSsNAHAXwl35iA0UQXYnMShfS9GPZA7T7LgIu03SSpkwzYTIt1BN4Ak/gKTyAeCxfw39jZkjymzcvAwmAW/wgwHUEGDb36+jQQ3GXGot79L24jxCP4gHzF/EIr4jEIe7wxhOC3g2TMYy4Q7+Lu/SHuEd/ivt4wJd4wPxbPEKMX3GI5+DJFGaSn4qNzk8mcbKSR6xdXdhSzaOZJGtdapd4vVPbi6rP+cL7TGXOHtXKll4bY1Xl7EGnPtp7Xy2n00zyKLVHfkHBa4IcJ2oD3cgggWvt/V/FbDrUlEUJhTn/0azVWbNTNr0Ens8de1tceK9xZmfB1CPjOmPH4kitmvOubcNpmVTN3oFJyjzCvnmrwhJTzqzVj9jiSX911FjeAAB4nG3HMRKCMBBA0f0giiKi4DU8k0V2GWbIZDOh4PoWWvq6J5V8If9NVNQcaDhyouXMhY4rPTcG7jwYmXhKq8Wz+p762aNaeYXom2n3m2dLTVgsrCgFJ7OTmIkYbwIbC6vIB7WmFfAAAA==") format("woff");
1403
- }`;function _l(r){const e=document.createElement("style");e.innerHTML=r;const t=document.querySelector("head link[rel=stylesheet], head style");t?document.head.insertBefore(e,t):document.head.appendChild(e)}let sa=!1;class jr{constructor({parent:e,autoPlace:t=e===void 0,container:n,width:a,title:i="Controls",closeFolders:o=!1,injectStyles:s=!0,touchStyles:c=!0}={}){if(this.parent=e,this.root=e?e.root:this,this.children=[],this.controllers=[],this.folders=[],this._closed=!1,this._hidden=!1,this.domElement=document.createElement("div"),this.domElement.classList.add("lil-gui"),this.$title=document.createElement("div"),this.$title.classList.add("title"),this.$title.setAttribute("role","button"),this.$title.setAttribute("aria-expanded",!0),this.$title.setAttribute("tabindex",0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("keydown",m=>{(m.code==="Enter"||m.code==="Space")&&(m.preventDefault(),this.$title.click())}),this.$title.addEventListener("touchstart",()=>{},{passive:!0}),this.$children=document.createElement("div"),this.$children.classList.add("children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(i),this.parent){this.parent.children.push(this),this.parent.folders.push(this),this.parent.$children.appendChild(this.domElement);return}this.domElement.classList.add("root"),c&&this.domElement.classList.add("allow-touch-styles"),!sa&&s&&(_l(xl),sa=!0),n?n.appendChild(this.domElement):t&&(this.domElement.classList.add("autoPlace"),document.body.appendChild(this.domElement)),a&&this.domElement.style.setProperty("--width",a+"px"),this._closeFolders=o}add(e,t,n,a,i){if(Object(n)===n)return new vl(this,e,t,n);const o=e[t];switch(typeof o){case"number":return new wl(this,e,t,n,a,i);case"boolean":return new hl(this,e,t);case"string":return new bl(this,e,t);case"function":return new Rr(this,e,t)}console.error(`gui.add failed
1410
+ }`;function Al(r){const e=document.createElement("style");e.innerHTML=r;const t=document.querySelector("head link[rel=stylesheet], head style");t?document.head.insertBefore(e,t):document.head.appendChild(e)}let sa=!1;class jr{constructor({parent:e,autoPlace:t=e===void 0,container:n,width:a,title:i="Controls",closeFolders:o=!1,injectStyles:s=!0,touchStyles:c=!0}={}){if(this.parent=e,this.root=e?e.root:this,this.children=[],this.controllers=[],this.folders=[],this._closed=!1,this._hidden=!1,this.domElement=document.createElement("div"),this.domElement.classList.add("lil-gui"),this.$title=document.createElement("div"),this.$title.classList.add("title"),this.$title.setAttribute("role","button"),this.$title.setAttribute("aria-expanded",!0),this.$title.setAttribute("tabindex",0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("keydown",m=>{(m.code==="Enter"||m.code==="Space")&&(m.preventDefault(),this.$title.click())}),this.$title.addEventListener("touchstart",()=>{},{passive:!0}),this.$children=document.createElement("div"),this.$children.classList.add("children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(i),this.parent){this.parent.children.push(this),this.parent.folders.push(this),this.parent.$children.appendChild(this.domElement);return}this.domElement.classList.add("root"),c&&this.domElement.classList.add("allow-touch-styles"),!sa&&s&&(Al(_l),sa=!0),n?n.appendChild(this.domElement):t&&(this.domElement.classList.add("autoPlace"),document.body.appendChild(this.domElement)),a&&this.domElement.style.setProperty("--width",a+"px"),this._closeFolders=o}add(e,t,n,a,i){if(Object(n)===n)return new bl(this,e,t,n);const o=e[t];switch(typeof o){case"number":return new vl(this,e,t,n,a,i);case"boolean":return new dl(this,e,t);case"string":return new xl(this,e,t);case"function":return new Rr(this,e,t)}console.error(`gui.add failed
1404
1411
  property:`,t,`
1405
1412
  object:`,e,`
1406
- value:`,o)}addColor(e,t,n=1){return new gl(this,e,t,n)}addFolder(e){const t=new jr({parent:this,title:e});return this.root._closeFolders&&t.close(),t}load(e,t=!0){return e.controllers&&this.controllers.forEach(n=>{n instanceof Rr||n._name in e.controllers&&n.load(e.controllers[n._name])}),t&&e.folders&&this.folders.forEach(n=>{n._title in e.folders&&n.load(e.folders[n._title])}),this}save(e=!0){const t={controllers:{},folders:{}};return this.controllers.forEach(n=>{if(!(n instanceof Rr)){if(n._name in t.controllers)throw new Error(`Cannot save GUI with duplicate property "${n._name}"`);t.controllers[n._name]=n.save()}}),e&&this.folders.forEach(n=>{if(n._title in t.folders)throw new Error(`Cannot save GUI with duplicate folder "${n._title}"`);t.folders[n._title]=n.save()}),t}open(e=!0){return this._setClosed(!e),this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("closed",this._closed),this}close(){return this.open(!1)}_setClosed(e){this._closed!==e&&(this._closed=e,this._callOnOpenClose(this))}show(e=!0){return this._hidden=!e,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}openAnimated(e=!0){return this._setClosed(!e),this.$title.setAttribute("aria-expanded",!this._closed),requestAnimationFrame(()=>{const t=this.$children.clientHeight;this.$children.style.height=t+"px",this.domElement.classList.add("transition");const n=i=>{i.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("transition"),this.$children.removeEventListener("transitionend",n))};this.$children.addEventListener("transitionend",n);const a=e?this.$children.scrollHeight:0;this.domElement.classList.toggle("closed",!e),requestAnimationFrame(()=>{this.$children.style.height=a+"px"})}),this}title(e){return this._title=e,this.$title.textContent=e,this}reset(e=!0){return(e?this.controllersRecursive():this.controllers).forEach(n=>n.reset()),this}onChange(e){return this._onChange=e,this}_callOnChange(e){this.parent&&this.parent._callOnChange(e),this._onChange!==void 0&&this._onChange.call(this,{object:e.object,property:e.property,value:e.getValue(),controller:e})}onFinishChange(e){return this._onFinishChange=e,this}_callOnFinishChange(e){this.parent&&this.parent._callOnFinishChange(e),this._onFinishChange!==void 0&&this._onFinishChange.call(this,{object:e.object,property:e.property,value:e.getValue(),controller:e})}onOpenClose(e){return this._onOpenClose=e,this}_callOnOpenClose(e){this.parent&&this.parent._callOnOpenClose(e),this._onOpenClose!==void 0&&this._onOpenClose.call(this,e)}destroy(){this.parent&&(this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.folders.splice(this.parent.folders.indexOf(this),1)),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Array.from(this.children).forEach(e=>e.destroy())}controllersRecursive(){let e=Array.from(this.controllers);return this.folders.forEach(t=>{e=e.concat(t.controllersRecursive())}),e}foldersRecursive(){let e=Array.from(this.folders);return this.folders.forEach(t=>{e=e.concat(t.foldersRecursive())}),e}}const Al=jr;class yl{constructor(e){this.schematicRenderer=e,this.createGUI()}createGUI(){const e=new Al,t={rotationSpeed:.01,zoom:1,showGrid:!1,backgroundColor:"#000000",backgroundAlpha:1,exportUSDZ:()=>{this.schematicRenderer.exportUsdz()},takeScreenshot:()=>{this.schematicRenderer.schematicMediaCapture.downloadScreenshot(1920,1080)},downloadRotationWebM:()=>{this.schematicRenderer.schematicMediaCapture.downloadRotationWebM(1920,1080,24,1)}};e.add(t,"rotationSpeed",0,.1).step(.001).name("Rotation Speed"),e.add(t,"zoom",.1,2).step(.1).name("Zoom").onChange(n=>{this.schematicRenderer.updateZoom(n)}),e.add(t,"showGrid").name("Show Grid").onChange(n=>{this.schematicRenderer.renderer.toggleGrid()}),e.addColor(t,"backgroundColor").name("Background Color").onChange(n=>{this.schematicRenderer.renderer.setBackgroundColor(n,t.backgroundAlpha)}),e.add(t,"backgroundAlpha",0,1).step(.1).name("Background Alpha").onChange(n=>{this.schematicRenderer.renderer.setBackgroundColor(t.backgroundColor,n)}),e.add(t,"exportUSDZ").name("Export USDZ"),e.add(t,"takeScreenshot").name("Take Screenshot"),e.add(t,"takeRotationWebM").name("Take Rotation WebM")}}class Sl{constructor(e,t,n){this.renderer=e,this.resourceLoader=t,this.worldMeshBuilder=n}async render(e){const t=Math.max(e.width,e.height,e.length);this.renderer.camera.position.set(t*1.1,t*1.1,t*1.1);const n=new Ae.Vector3(e.width/2,e.height/2,e.length/2);this.renderer.camera.lookAt(n),this.resourceLoader.setSchematic(e),this.worldMeshBuilder.setSchematic(e),this.renderer.animate();const a=performance.now();await this.worldMeshBuilder.getSchematicMeshes(),console.log("Schematic rendered in",performance.now()-a,"ms")}async updateSchematic(e){let t;t=ta(e);const n=ia(t);await this.clearSchematic(),await this.render(n)}async clearSchematic(){const e=this.renderer.scene.children.filter(a=>a instanceof Ae.Mesh);this.renderer.scene.remove(...e);const t=this.renderer.scene.getObjectByName("GridHelper");t&&this.renderer.scene.remove(t);const n=this.renderer.scene.getObjectByName("AmbientLight");n&&this.renderer.scene.remove(n)}}class kl{constructor(e){Ce(this,"renderer");this.renderer=e}async getScreenshot(e,t){return this.renderer.takeScreenshot(e,t)}calculateCameraParameters(e){const t=new Ae.Vector3(0,e.height/2,0),n=this.renderer.camera.position.distanceTo(t),a=Math.asin((this.renderer.camera.position.y-t.y)/n);return console.log("centerPosition",t),{centerPosition:t,distance:n,elevation:a}}async downloadScreenshot(e,t){const n=await this.getScreenshot(e,t),a=document.createElement("a");a.href=n,a.download="schematic-screenshot.png",a.click(),URL.revokeObjectURL(a.href)}async getRotationWebM(e,t,n,a,i=360){const{centerPosition:o,distance:s,elevation:c}=this.calculateCameraParameters(this.renderer.schematic);return await this.renderer.takeRotationWebM(e,t,o,s,c,n,a,i)}async downloadRotationWebM(e,t,n,a,i=360){const o=await this.getRotationWebM(e,t,n,a,i),s=document.createElement("a");s.href=URL.createObjectURL(o),s.download="schematic-rotation.webm",s.click(),URL.revokeObjectURL(s.href)}}class Cl{constructor(e){this.renderer=e}async exportUsdz(){return this.renderer.exportUsdz()}}class Ml{constructor(e,t,n){Ce(this,"canvas");Ce(this,"options");Ce(this,"renderer");Ce(this,"schematicData");Ce(this,"loadedSchematic");Ce(this,"resourceLoader");Ce(this,"materialMap",new Map);Ce(this,"worldMeshBuilder");Ce(this,"jarUrl");Ce(this,"schematicRendererGUI",null);Ce(this,"schematicRendererCore");Ce(this,"schematicMediaCapture");Ce(this,"schematicExporter");var a;this.canvas=e,this.schematicData=t,this.options=n,this.renderer=new ho(e,n),this.resourceLoader=new el((a=this.options)==null?void 0:a.resourcePackBlobs,this.materialMap),this.worldMeshBuilder=new rl(this.resourceLoader,this.materialMap,this.renderer),this.schematicRendererCore=new Sl(this.renderer,this.resourceLoader,this.worldMeshBuilder),this.schematicMediaCapture=new kl(this.renderer),this.schematicExporter=new Cl(this.renderer),this.initialize()}async initialize(){var t;let e;e=ta(this.schematicData),this.loadedSchematic=ia(e),this.materialMap=new Map,this.renderer.schematic=this.loadedSchematic,await this.resourceLoader.initialize(),await this.schematicRendererCore.render(this.loadedSchematic),(t=this.options)!=null&&t.debugGUI&&(this.schematicRendererGUI=new yl(this))}async updateSchematic(e){this.schematicData=e,await this.schematicRendererCore.updateSchematic(e)}async exportUsdz(){return this.schematicExporter.exportUsdz()}async downloadScreenshot(e,t){return this.schematicMediaCapture.downloadScreenshot(e,t)}async getScreenshot(e,t){return this.schematicMediaCapture.getScreenshot(e,t)}async getRotationWebM(e,t,n,a,i=360){return this.schematicMediaCapture.getRotationWebM(e,t,n,a,i)}updateZoom(e){this.renderer.updateZoom(e)}}Ze.SchematicRenderer=Ml,Object.defineProperty(Ze,Symbol.toStringTag,{value:"Module"})});
1413
+ value:`,o)}addColor(e,t,n=1){return new wl(this,e,t,n)}addFolder(e){const t=new jr({parent:this,title:e});return this.root._closeFolders&&t.close(),t}load(e,t=!0){return e.controllers&&this.controllers.forEach(n=>{n instanceof Rr||n._name in e.controllers&&n.load(e.controllers[n._name])}),t&&e.folders&&this.folders.forEach(n=>{n._title in e.folders&&n.load(e.folders[n._title])}),this}save(e=!0){const t={controllers:{},folders:{}};return this.controllers.forEach(n=>{if(!(n instanceof Rr)){if(n._name in t.controllers)throw new Error(`Cannot save GUI with duplicate property "${n._name}"`);t.controllers[n._name]=n.save()}}),e&&this.folders.forEach(n=>{if(n._title in t.folders)throw new Error(`Cannot save GUI with duplicate folder "${n._title}"`);t.folders[n._title]=n.save()}),t}open(e=!0){return this._setClosed(!e),this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("closed",this._closed),this}close(){return this.open(!1)}_setClosed(e){this._closed!==e&&(this._closed=e,this._callOnOpenClose(this))}show(e=!0){return this._hidden=!e,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}openAnimated(e=!0){return this._setClosed(!e),this.$title.setAttribute("aria-expanded",!this._closed),requestAnimationFrame(()=>{const t=this.$children.clientHeight;this.$children.style.height=t+"px",this.domElement.classList.add("transition");const n=i=>{i.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("transition"),this.$children.removeEventListener("transitionend",n))};this.$children.addEventListener("transitionend",n);const a=e?this.$children.scrollHeight:0;this.domElement.classList.toggle("closed",!e),requestAnimationFrame(()=>{this.$children.style.height=a+"px"})}),this}title(e){return this._title=e,this.$title.textContent=e,this}reset(e=!0){return(e?this.controllersRecursive():this.controllers).forEach(n=>n.reset()),this}onChange(e){return this._onChange=e,this}_callOnChange(e){this.parent&&this.parent._callOnChange(e),this._onChange!==void 0&&this._onChange.call(this,{object:e.object,property:e.property,value:e.getValue(),controller:e})}onFinishChange(e){return this._onFinishChange=e,this}_callOnFinishChange(e){this.parent&&this.parent._callOnFinishChange(e),this._onFinishChange!==void 0&&this._onFinishChange.call(this,{object:e.object,property:e.property,value:e.getValue(),controller:e})}onOpenClose(e){return this._onOpenClose=e,this}_callOnOpenClose(e){this.parent&&this.parent._callOnOpenClose(e),this._onOpenClose!==void 0&&this._onOpenClose.call(this,e)}destroy(){this.parent&&(this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.folders.splice(this.parent.folders.indexOf(this),1)),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Array.from(this.children).forEach(e=>e.destroy())}controllersRecursive(){let e=Array.from(this.controllers);return this.folders.forEach(t=>{e=e.concat(t.controllersRecursive())}),e}foldersRecursive(){let e=Array.from(this.folders);return this.folders.forEach(t=>{e=e.concat(t.foldersRecursive())}),e}}const yl=jr;class Sl{constructor(e){this.schematicRenderer=e,this.createGUI()}createGUI(){const e=new yl,t={rotationSpeed:.01,zoom:1,showGrid:!1,backgroundColor:"#000000",backgroundAlpha:1,gammaCorrection:1.7,exportUSDZ:()=>{this.schematicRenderer.exportUsdz()},takeScreenshot:()=>{this.schematicRenderer.schematicMediaCapture.downloadScreenshot(1920,1080)},downloadRotationWebM:()=>{this.schematicRenderer.schematicMediaCapture.downloadRotationWebM(1920,1080,24,1)}};e.add(t,"rotationSpeed",0,.1).step(.001).name("Rotation Speed"),e.add(t,"zoom",.1,2).step(.1).name("Zoom").onChange(n=>{this.schematicRenderer.updateZoom(n)}),e.add(t,"showGrid").name("Show Grid").onChange(n=>{this.schematicRenderer.renderer.toggleGrid()}),e.addColor(t,"backgroundColor").name("Background Color").onChange(n=>{this.schematicRenderer.renderer.setBackgroundColor(n,t.backgroundAlpha)}),e.add(t,"backgroundAlpha",0,1).step(.1).name("Background Alpha").onChange(n=>{this.schematicRenderer.renderer.setBackgroundColor(t.backgroundColor,n)}),e.add(t,"gammaCorrection",.1,3).step(.1).name("Gamma Correction").onChange(n=>{this.schematicRenderer.renderer.updateGammaCorrection(n)}),e.add(t,"exportUSDZ").name("Export USDZ"),e.add(t,"takeScreenshot").name("Take Screenshot"),e.add(t,"takeRotationWebM").name("Take Rotation WebM")}}class kl{constructor(e,t,n){this.renderer=e,this.resourceLoader=t,this.worldMeshBuilder=n}async render(e){const t=Math.max(e.width,e.height,e.length);this.renderer.camera.position.set(t*1.1,t*1.1,t*1.1);const n=new Ae.Vector3(e.width/2,e.height/2,e.length/2);this.renderer.camera.lookAt(n),this.resourceLoader.setSchematic(e),this.worldMeshBuilder.setSchematic(e),this.renderer.animate();const a=performance.now();await this.worldMeshBuilder.getSchematicMeshes(),console.log("Schematic rendered in",performance.now()-a,"ms")}async updateSchematic(e){let t;t=ta(e);const n=ia(t);await this.clearSchematic(),await this.render(n)}async clearSchematic(){const e=this.renderer.scene.children.filter(a=>a instanceof Ae.Mesh);this.renderer.scene.remove(...e);const t=this.renderer.scene.getObjectByName("GridHelper");t&&this.renderer.scene.remove(t);const n=this.renderer.scene.getObjectByName("AmbientLight");n&&this.renderer.scene.remove(n)}}class Cl{constructor(e){Ce(this,"renderer");this.renderer=e}async getScreenshot(e,t){return this.renderer.takeScreenshot(e,t)}calculateCameraParameters(e){const t=new Ae.Vector3(0,e.height/2,0),n=this.renderer.camera.position.distanceTo(t),a=Math.asin((this.renderer.camera.position.y-t.y)/n);return console.log("centerPosition",t),{centerPosition:t,distance:n,elevation:a}}async downloadScreenshot(e,t){const n=await this.getScreenshot(e,t),a=document.createElement("a");a.href=n,a.download="schematic-screenshot.png",a.click(),URL.revokeObjectURL(a.href)}async getRotationWebM(e,t,n,a,i=360){const{centerPosition:o,distance:s,elevation:c}=this.calculateCameraParameters(this.renderer.schematic);return await this.renderer.takeRotationWebM(e,t,o,s,c,n,a,i)}async downloadRotationWebM(e,t,n,a,i=360){const o=await this.getRotationWebM(e,t,n,a,i),s=document.createElement("a");s.href=URL.createObjectURL(o),s.download="schematic-rotation.webm",s.click(),URL.revokeObjectURL(s.href)}}class Ml{constructor(e){this.renderer=e}async exportUsdz(){return this.renderer.exportUsdz()}}class Dl{constructor(e,t,n){Ce(this,"canvas");Ce(this,"options");Ce(this,"renderer");Ce(this,"schematicData");Ce(this,"loadedSchematic");Ce(this,"resourceLoader");Ce(this,"materialMap",new Map);Ce(this,"worldMeshBuilder");Ce(this,"jarUrl");Ce(this,"schematicRendererGUI",null);Ce(this,"schematicRendererCore");Ce(this,"schematicMediaCapture");Ce(this,"schematicExporter");var a;this.canvas=e,this.schematicData=t,this.options=n,this.renderer=new po(e,n),this.resourceLoader=new tl((a=this.options)==null?void 0:a.resourcePackBlobs,this.materialMap),this.worldMeshBuilder=new nl(this.resourceLoader,this.materialMap,this.renderer),this.schematicRendererCore=new kl(this.renderer,this.resourceLoader,this.worldMeshBuilder),this.schematicMediaCapture=new Cl(this.renderer),this.schematicExporter=new Ml(this.renderer),this.initialize()}async initialize(){var t;let e;e=ta(this.schematicData),this.loadedSchematic=ia(e),this.materialMap=new Map,this.renderer.schematic=this.loadedSchematic,await this.resourceLoader.initialize(),await this.schematicRendererCore.render(this.loadedSchematic),(t=this.options)!=null&&t.debugGUI&&(this.schematicRendererGUI=new Sl(this))}async updateSchematic(e){this.schematicData=e,await this.schematicRendererCore.updateSchematic(e)}async exportUsdz(){return this.schematicExporter.exportUsdz()}async downloadScreenshot(e,t){return this.schematicMediaCapture.downloadScreenshot(e,t)}async getScreenshot(e,t){return this.schematicMediaCapture.getScreenshot(e,t)}async getRotationWebM(e,t,n,a,i=360){return this.schematicMediaCapture.getRotationWebM(e,t,n,a,i)}updateZoom(e){this.renderer.updateZoom(e)}updateGammaCorrection(e){this.renderer.updateGammaCorrection(e)}}Ze.SchematicRenderer=Dl,Object.defineProperty(Ze,Symbol.toStringTag,{value:"Module"})});
1407
1414
  //# sourceMappingURL=schematic-renderer.umd.js.map