@realsee/five 5.0.0-alpha.19 → 5.0.0-alpha.191
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.
- package/README.md +18 -8
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +134 -0
- package/docs/assets/icons.css +1043 -0
- package/docs/assets/main.js +52 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1414 -0
- package/docs/classes/five.AnimationFrameLoop.html +15 -0
- package/docs/classes/five.BVH.html +10 -0
- package/docs/classes/five.BVHIntersect.html +1 -0
- package/docs/classes/five.BVHNode.html +7 -0
- package/docs/classes/five.BVHVector3.html +1 -0
- package/docs/classes/five.Camera.html +11 -0
- package/docs/classes/five.Clipper.html +1 -0
- package/docs/classes/five.Five.html +328 -0
- package/docs/classes/five.InternalWebGLRenderer.html +1 -0
- package/docs/classes/five.IntersectMesh.html +1 -0
- package/docs/classes/five.Model.html +91 -0
- package/docs/classes/five.NetworkSubscribe.html +50 -0
- package/docs/classes/five.PBMContainer.html +17 -0
- package/docs/classes/five.PBMGroup.html +19 -0
- package/docs/classes/five.PBMMaterial.html +29 -0
- package/docs/classes/five.PBMMesh.html +7 -0
- package/docs/classes/five.PanoCircleMesh.html +7 -0
- package/docs/classes/five.PanoCircleMeshCustom.html +7 -0
- package/docs/classes/five.PanoCircleMeshSolid.html +7 -0
- package/docs/classes/five.Scene.html +3 -0
- package/docs/classes/five.Subscribe.html +56 -0
- package/docs/classes/five.TextureLoader.html +1 -0
- package/docs/classes/five.Tile3D.html +34 -0
- package/docs/classes/five.Tile3DModel.html +15 -0
- package/docs/classes/five.TileBoundingSphere.html +1 -0
- package/docs/classes/five.TileCacheNode.html +1 -0
- package/docs/classes/five.TileCubeTextureTarget.html +1 -0
- package/docs/classes/five.TileCullingVolume.html +1 -0
- package/docs/classes/five.TileOrientedBoundingBox.html +1 -0
- package/docs/classes/five.TileRequestScheduler.html +16 -0
- package/docs/classes/five.Tileset3D.html +11 -0
- package/docs/classes/five.Tileset3DTraverser.html +1 -0
- package/docs/classes/five.TilesetCache.html +1 -0
- package/docs/classes/five.Work.html +32 -0
- package/docs/classes/five.XRButton.html +1 -0
- package/docs/classes/gltf_loader.DDSLoader.html +1 -0
- package/docs/classes/gltf_loader.DRACOLoader.html +1 -0
- package/docs/classes/gltf_loader.GLTFLoader.html +17 -0
- package/docs/classes/gltf_loader.GLTFObject.html +7 -0
- package/docs/classes/gltf_loader.GLTFParser.html +1 -0
- package/docs/classes/gltf_loader.THREEGLTFLoader.html +1 -0
- package/docs/classes/line.Line.html +1 -0
- package/docs/classes/line.LineGeometry.html +1 -0
- package/docs/classes/line.LineMaterial.html +1 -0
- package/docs/classes/line.LineSegmentsGeometry.html +1 -0
- package/docs/classes/line.THREE_Line2.html +1 -0
- package/docs/classes/line.THREE_LineSegments2.html +1 -0
- package/docs/classes/react.Store.html +29 -0
- package/docs/classes/server.BVH.html +10 -0
- package/docs/classes/server.BVHIntersect.html +1 -0
- package/docs/classes/server.BVHNode.html +7 -0
- package/docs/classes/server.BVHVector3.html +1 -0
- package/docs/classes/server.Model.html +70 -0
- package/docs/classes/server.PBMContainer.html +7 -0
- package/docs/classes/server.PBMGroup.html +9 -0
- package/docs/classes/server.PBMMesh.html +7 -0
- package/docs/classes/sticker.Sticker.html +32 -0
- package/docs/classes/vfx.Airflow.html +1 -0
- package/docs/classes/vfx.Flame.html +1 -0
- package/docs/classes/vfx.Particle.html +89 -0
- package/docs/classes/vfx.SpotLight.html +1 -0
- package/docs/index.html +166 -434
- package/docs/interfaces/five.AddableObject.html +9 -0
- package/docs/interfaces/five.AnimationFrame.html +1 -0
- package/docs/interfaces/five.CameraPose.html +1 -0
- package/docs/interfaces/five.ClipperParameter.html +1 -0
- package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +28 -0
- package/docs/interfaces/five.EventCallback.html +400 -0
- package/docs/interfaces/five.FiveInitArgs.html +109 -0
- package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +17 -0
- package/docs/interfaces/five.ImageOptions.html +18 -0
- package/docs/interfaces/five.ImageURLMappings.html +1 -0
- package/docs/interfaces/five.ImageURLOptions.html +15 -0
- package/docs/interfaces/five.IntersectMeshInterface.html +3 -0
- package/docs/interfaces/five.Intersection.html +7 -0
- package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +15 -0
- package/docs/interfaces/five.ModelControllerCustomInitArgs.html +20 -0
- package/docs/interfaces/five.ModelEventCallback.html +22 -0
- package/docs/interfaces/five.MotionKeyframe.html +1 -0
- package/docs/interfaces/five.MovePanoOptions.html +42 -0
- package/docs/interfaces/five.NetworkOptions.html +9 -0
- package/docs/interfaces/five.PBMPanoPicture.html +7 -0
- package/docs/interfaces/five.PBMParameters.html +29 -0
- package/docs/interfaces/five.PanoCircleMeshCustomOptions.html +1 -0
- package/docs/interfaces/five.PanoCircleMeshInterface.html +19 -0
- package/docs/interfaces/five.PanoCircleMeshOptions.html +1 -0
- package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +1 -0
- package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +35 -0
- package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +20 -0
- package/docs/interfaces/five.Pose.html +37 -0
- package/docs/interfaces/five.Scissor.html +14 -0
- package/docs/interfaces/five.State.html +21 -0
- package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -0
- package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -0
- package/docs/interfaces/five.SubscribeMixinType.off.html +1 -0
- package/docs/interfaces/five.SubscribeMixinType.on.html +1 -0
- package/docs/interfaces/five.SubscribeMixinType.once.html +1 -0
- package/docs/interfaces/five.TextureOptions.html +20 -0
- package/docs/interfaces/five.Tile3DModelLoaderOptions.html +3 -0
- package/docs/interfaces/five.TileBoundingVolume.html +19 -0
- package/docs/interfaces/five.TileContent.html +1 -0
- package/docs/interfaces/five.TileCubeNode.html +1 -0
- package/docs/interfaces/five.TileCubeTree.html +1 -0
- package/docs/interfaces/five.Tileset3dOptions.html +1 -0
- package/docs/interfaces/five.TilesetJSON.html +1 -0
- package/docs/interfaces/five.TilesetJSONNode.html +1 -0
- package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +9 -0
- package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +31 -0
- package/docs/interfaces/five.WebXRSelectParams.html +1 -0
- package/docs/interfaces/five.WorkCubeImage.html +13 -0
- package/docs/interfaces/five.WorkImage.html +21 -0
- package/docs/interfaces/five.WorkInitial.html +13 -0
- package/docs/interfaces/five.WorkModel.html +11 -0
- package/docs/interfaces/five.WorkModelTiles.html +3 -0
- package/docs/interfaces/five.WorkObserver.html +27 -0
- package/docs/interfaces/five.WorkTile.html +1 -0
- package/docs/interfaces/five.WorkVideo.html +9 -0
- package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +31 -0
- package/docs/interfaces/gltf_loader.DDS.html +1 -0
- package/docs/interfaces/gltf_loader.GLTF.html +7 -0
- package/docs/interfaces/gltf_loader.GLTFReference.html +1 -0
- package/docs/interfaces/gltf_loader.THREEGLTF.html +1 -0
- package/docs/interfaces/react.FiveActionReactCallbacks.html +52 -0
- package/docs/interfaces/react.FiveInjectionTypes.html +181 -0
- package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -0
- package/docs/interfaces/server.Intersection.html +7 -0
- package/docs/interfaces/server.ModelEventCallback.html +18 -0
- package/docs/interfaces/sticker.IntersectionLike.html +8 -0
- package/docs/interfaces/vfx.ParticleArgs.html +75 -0
- package/docs/interfaces/vfx.ParticleTweenKeyframe.html +1 -0
- package/docs/interfaces/vue.FiveActionVueCallbacks.html +60 -0
- package/docs/modules/five.SubscribeMixinType.html +1 -0
- package/docs/modules/five.html +479 -3002
- package/docs/modules/gltf_loader.html +1 -155
- package/docs/modules/line.html +1 -202
- package/docs/modules/react.html +130 -1507
- package/docs/modules/server.html +18 -526
- package/docs/modules/sticker.html +1 -151
- package/docs/modules/vfx.html +1 -0
- package/docs/modules/vue.html +115 -0
- package/docs/modules.html +1 -136
- package/exporters/staticify.js +210 -0
- package/five/index.d.ts +1425 -285
- package/five/index.js +362 -1
- package/gltf-loader/index.d.ts +90 -5
- package/gltf-loader/index.js +260 -1
- package/line/index.d.ts +15 -2
- package/line/index.js +260 -1
- package/package.json +12 -12
- package/react/index.d.ts +73 -72
- package/react/index.js +260 -1
- package/scripts/five-staticify.js +26 -0
- package/server/index.d.ts +221 -27
- package/server/index.js +357 -1
- package/sticker/index.d.ts +2 -1
- package/sticker/index.js +260 -1
- package/templates/quick-start/package.json +1 -1
- package/umd/five-gltf-loader.js +1 -2
- package/umd/five-line.js +1 -2
- package/umd/five-react.js +1 -2
- package/umd/five-sticker.js +1 -2
- package/umd/five-vfx.js +1 -0
- package/umd/five-vue.js +1 -0
- package/umd/five.js +1 -1
- package/umd/five.js.LICENSE.txt +58 -118
- package/vfx/index.d.ts +264 -0
- package/vfx/index.js +260 -0
- package/vue/index.d.ts +441 -0
- package/vue/index.js +260 -0
- package/docs/assets/css/main.css +0 -2660
- package/docs/assets/js/main.js +0 -248
- package/docs/assets/js/search.js +0 -1
- package/docs/classes/five.camera.html +0 -323
- package/docs/classes/five.five-1.html +0 -2670
- package/docs/classes/five.hashcubetexture.html +0 -252
- package/docs/classes/five.internalwebglrenderer.html +0 -212
- package/docs/classes/five.model.html +0 -982
- package/docs/classes/five.pbmgroup.html +0 -427
- package/docs/classes/five.pbmmaterial.html +0 -533
- package/docs/classes/five.pbmmesh.html +0 -254
- package/docs/classes/five.scene.html +0 -263
- package/docs/classes/five.subscribe.html +0 -569
- package/docs/classes/gltf_loader.gltfloader.html +0 -412
- package/docs/classes/gltf_loader.gltfobject.html +0 -287
- package/docs/classes/line.line-1.html +0 -381
- package/docs/classes/line.linegeometry.html +0 -524
- package/docs/classes/line.linematerial.html +0 -300
- package/docs/classes/line.linesegmentsgeometry.html +0 -471
- package/docs/classes/react.store.html +0 -605
- package/docs/classes/server.model.html +0 -823
- package/docs/classes/server.pbmgroup.html +0 -366
- package/docs/classes/server.pbmmesh.html +0 -335
- package/docs/classes/sticker.sticker-1.html +0 -465
- package/docs/interfaces/five.addableobject.html +0 -234
- package/docs/interfaces/five.depthpanoramacontrollercustominitargs.html +0 -420
- package/docs/interfaces/five.eventcallback.html +0 -2548
- package/docs/interfaces/five.fiveinitargs.html +0 -707
- package/docs/interfaces/five.floorplancontrollercustominitargs.html +0 -295
- package/docs/interfaces/five.imageoptions.html +0 -332
- package/docs/interfaces/five.intersection.html +0 -227
- package/docs/interfaces/five.intersectmeshinterface.html +0 -188
- package/docs/interfaces/five.modelcontrollercustominitargs.html +0 -366
- package/docs/interfaces/five.modeleventcallback.html +0 -367
- package/docs/interfaces/five.movepanooptions.html +0 -469
- package/docs/interfaces/five.panocirclemeshinterface.html +0 -361
- package/docs/interfaces/five.panoramacontrollercustominitargs.html +0 -464
- package/docs/interfaces/five.panoramalikecontrollercustominitargs.html +0 -364
- package/docs/interfaces/five.pbmparameters.html +0 -474
- package/docs/interfaces/five.pose.html +0 -270
- package/docs/interfaces/five.scissor.html +0 -252
- package/docs/interfaces/five.state.html +0 -300
- package/docs/interfaces/five.subscribemixintype.emit.html +0 -180
- package/docs/interfaces/five.subscribemixintype.haslistener.html +0 -171
- package/docs/interfaces/five.subscribemixintype.off.html +0 -198
- package/docs/interfaces/five.subscribemixintype.on.html +0 -213
- package/docs/interfaces/five.subscribemixintype.once.html +0 -210
- package/docs/interfaces/five.topviewcontrollercustominitargs.html +0 -226
- package/docs/interfaces/five.vrpanoramacontrollercustominitargs.html +0 -452
- package/docs/interfaces/gltf_loader.gltf.html +0 -304
- package/docs/interfaces/react.fiveactionreactcallbacks.html +0 -580
- package/docs/interfaces/react.fiveinjectiontypes.html +0 -1625
- package/docs/interfaces/react.injectfivetoprops.html +0 -280
- package/docs/interfaces/server.intersection.html +0 -308
- package/docs/interfaces/server.modeleventcallback.html +0 -409
- package/docs/interfaces/sticker.intersectionlike.html +0 -223
- package/docs/modules/five.subscribemixintype.html +0 -143
- package/scripts/export-five-resource/chfs.exe +0 -0
- package/scripts/export-five-resource/fileify.js +0 -192
- package/scripts/export-five-resource/format-work.js +0 -71
- package/scripts/export-five-resource/staticify.js +0 -327
- package/scripts/transcode-model/BufferGeometryUtils.js +0 -832
- package/scripts/transcode-model/LoaderSupport.js +0 -1545
- package/scripts/transcode-model/MTLLoader.js +0 -602
- package/scripts/transcode-model/OBJLoader2.js +0 -1470
- package/scripts/transcode-model/obj2pbm.js +0 -65
- /package/docs/assets/{images/icons.png → icons.png} +0 -0
- /package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
- /package/docs/assets/{images/widgets.png → widgets.png} +0 -0
- /package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
- /package/resource/{basis_transcoder.js → basis/basis_transcoder.js} +0 -0
- /package/resource/{basis_transcoder.wasm → basis/basis_transcoder.wasm} +0 -0
- /package/resource/{draco_decoder.js → gltf/draco_decoder.js} +0 -0
- /package/resource/{draco_decoder.wasm → gltf/draco_decoder.wasm} +0 -0
- /package/resource/{draco_wasm_wrapper.js → gltf/draco_wasm_wrapper.js} +0 -0
package/five/index.js
CHANGED
|
@@ -1 +1,362 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("tslib"),n=require("protobufjs"),i=require("@tweenjs/tween.js"),r=require("json-hash"),o=require("webvr-polyfill"),s=require("hammerjs");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function M(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=M(e),c=M(n),l=a(i),d=M(r),N=a(o),p=a(s),h=Number(u.REVISION);if(h<115||h>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');var D=2*Math.PI;function g(e){return(e%D+D)%D}var y=function(e){function n(t){var n=e.call(this,t,1,.1,1e3)||this;return n.pose={longitude:0,latitude:0,fov:t,offset:new u.Vector3},n.computePose(),n}return t.__extends(n,e),n.prototype.computePose=function(){var e=this.getWorldDirection(new u.Vector3);this.pose.longitude=g(-Math.atan2(e.x,-e.z)),this.pose.latitude=-Math.asin(e.y/1),this.pose.fov=this.fov,this.pose.offset.copy(this.position)},n.prototype.setFromPose=function(e){var t,n,i,r,o=g(null!==(t=e.longitude)&&void 0!==t?t:this.pose.longitude),s=Math.max(-Math.PI/2+.01,Math.min(Math.PI/2-.01,null!==(n=e.latitude)&&void 0!==n?n:this.pose.latitude)),a=null!==(i=e.fov)&&void 0!==i?i:this.pose.fov,M=null!==(r=e.offset)&&void 0!==r?r:this.pose.offset;this.position.copy(M);var c=Math.abs(Math.cos(s)),l=new u.Vector3(-Math.sin(o)*c,-Math.sin(s),-Math.cos(o)*c);this.lookAt(M.clone().add(l)),this.fov!==a&&(this.fov=a,this.updateProjectionMatrix()),this.updateMatrixWorld(),this.pose.longitude=o,this.pose.latitude=s,this.pose.fov=a,this.pose.offset.copy(M)},n.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,offset:this.pose.offset.clone()}},n}(u.PerspectiveCamera),T=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return t.__extends(n,e),n.prototype.add=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.prototype.add.apply(this,t)},n.prototype.remove=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.prototype.remove.apply(this,t)},n}(u.Scene),z=function(e){function n(t){var n=t.preserveDrawingBuffer,i=void 0===n||n,r=t.backgroundColor,o=void 0===r?1579548:r,s=t.backgroundAlpha,a=void 0===s?1:s,M=t.pixelRatio,c=void 0===M?1:M,l=t.antialias,d=void 0!==l&&l,N=e.call(this,{antialias:d,preserveDrawingBuffer:i,alpha:a<1})||this;return N.setPixelRatio(c),N.setClearColor(o,a),N.outputEncoding=u.sRGBEncoding,N.autoClear=!0,N}return t.__extends(n,e),n}(u.WebGLRenderer);function j(e){return null==e}function f(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}function v(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function m(){return(v()+v()+"-"+v()+"-4"+v().substr(0,3)+"-"+v()+"-"+v()+v()+v()).toLowerCase()}var w="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),I="undefined"!=typeof performance?function(){return w+performance.now()}:function(){return Date.now()},x=window,L=x.requestAnimationFrame||x.mozRequestAnimationFrame||x.webkitRequestAnimationFrame||x.msRequestAnimationFrame||function(e){return setTimeout(e,16)};function O(e,t){void 0===e&&(e=f),void 0===t&&(t=0),L(t<=0?e:function(){return O(e,t-1)})}function A(e,n){void 0===e&&(e=f);for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];var o=!1,s=function(r){e.call.apply(e,t.__spreadArray([n,r],i)),o||"function"!=typeof s||L(s)};return L(s),function(){s=null,o=!0}}var E=0;function C(e){E&&e(E);var t=I();L((function(){e(E=I()-t)}))}C(f);var k=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return t.__extends(n,e),n}(u.Mesh),U=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return t.__extends(n,e),n.prototype.getTransparent=function(){var e;return this.traverse((function(t){void 0===e&&t instanceof k&&t.material.forEach((function(t){void 0===e&&1===t.uniforms.originOpacity.value&&(e=t.transparent)}))})),null!=e&&e},n.prototype.setTransparent=function(e){this.traverse((function(t){t instanceof k&&t.material.forEach((function(t){1===t.uniforms.originOpacity.value&&(t.transparent=e)}))}))},n.prototype.getMaterial=function(){var e=null;return this.traverse((function(t){if(null===e&&t instanceof k){var n=t.material[0];e={pano0Map:n.pano0Map,pano0Matrix:n.pano0Matrix,pano1Map:n.pano1Map,pano1Matrix:n.pano1Matrix,modelAlpha:n.modelAlpha,progress:n.progress,useBlackTransition:n.useBlackTransition,perspToOrtho:n.perspToOrtho,opacity:n.opacity,pano0DepthMap:n.pano0DepthMap,panoVideoMap:n.panoVideoMap,panoVideoSize:n.panoVideoSize,panoVideoMatrix:n.panoVideoMatrix,panoVideoAlpha:n.panoVideoAlpha,panoTileMap:n.panoTileMap,panoTileMappings:n.panoTileMappings}}})),e},n.prototype.setMaterial=function(e){this.traverse((function(t){t instanceof k&&t.material.forEach((function(t){void 0!==e.pano0Map&&(t.pano0Map=e.pano0Map),void 0!==e.pano0Matrix&&(t.pano0Matrix=e.pano0Matrix),void 0!==e.pano1Map&&(t.pano1Map=e.pano1Map),void 0!==e.pano1Matrix&&(t.pano1Matrix=e.pano1Matrix),void 0!==e.modelAlpha&&(t.modelAlpha=e.modelAlpha),void 0!==e.progress&&(t.progress=e.progress),void 0!==e.useBlackTransition&&(t.useBlackTransition=e.useBlackTransition),void 0!==e.perspToOrtho&&(t.perspToOrtho=e.perspToOrtho),void 0!==e.opacity&&(t.opacity=e.opacity),void 0!==e.pano0DepthMap&&(t.pano0DepthMap=e.pano0DepthMap),void 0!==e.panoVideoMap&&(t.panoVideoMap=e.panoVideoMap),void 0!==e.panoVideoSize&&(t.panoVideoSize=e.panoVideoSize),void 0!==e.panoVideoMatrix&&(t.panoVideoMatrix=e.panoVideoMatrix),void 0!==e.panoVideoAlpha&&(t.panoVideoAlpha=e.panoVideoAlpha),void 0!==e.panoTileMap&&(t.panoTileMap=e.panoTileMap),void 0!==e.panoTileMappings&&(t.panoTileMappings=e.panoTileMappings)}))}))},n.prototype.disposeMaterial=function(){this.traverse((function(e){if(e instanceof k){var t=[];e.material.forEach((function(e){var n=e.uniforms;Object.keys(n).map((function(e){if(["pano0Map","pano1Map","pano0DepthMap","panoVideoMap","panoTileMap"].indexOf(e)>=0)n[e].value=null;else{var i=n[e].value;i&&"function"==typeof i.dispose&&-1===t.indexOf(i)&&(n[e].value=null,t.push(i))}})),e.dispose()})),t.forEach((function(e){return e.dispose()}))}}))},n.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof k&&e.geometry.dispose()}))},n}(u.Group),S=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=113,i=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>i?e:String.fromCharCode((e.charCodeAt(r)+n)%i)})).join(o)}("n\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{H{vs|z-znA-}n{|=ZnvH{vs|z-znA-}n{|>ZnvH{vs|z-rp@-z|qryPr{rH{vs|z-sy|n-}r}a|\\u|Hn\bv{t-rp@-}n{|=a|crrHn\bv{t-rp@-}n{|>a|crrH0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq-5b`Rl]N[\\=lQR]aUlZN]6--n\bv{t-rp@-pnzrna|crrH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:-z]|vv|{;\b\tH--rp@-|yq]|vv|{-J-5z|qryZnv-7-n{s|zrq6;\b\tH--0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq-5b`Rl]N[\\=lQR]aUlZN]6----pnzrna|crr-J-|yq]|vv|{-:-pnzrn]|vv|{H--0r{qvs--}n{|=a|crr-J-5|yq]|vv|{-:-}n{|=Znvh@j;\b\t6-7-zn@5}n{|=Znv6H--}n{|>a|crr-J-5|yq]|vv|{-:-}n{|>Znvh@j;\b\t6-7-zn@5}n{|>Znv6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--rp@-pnzrn[|zny-J-5z|qrycvrZnv-7-rpA5=;=9-=;=9->;=9-=;=66;\b\tH--sy|n-|u|Qvn{pr-J-zn5=;=>9-q|5pnzrn[|zny9-z|qryPr{r-:-pnzrn]|vv|{66H--tyl]|vv|{;-J-zv5-tyl]|vv|{;9-tyl]|vv|{;-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H--tyl]|vv|{;\b-J-zv5-tyl]|vv|{;\b9-tyl]|vv|{;\b-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H\f"),b=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=113,i=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>i?e:String.fromCharCode((e.charCodeAt(r)+n)%i)})).join(o)}("{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-|vtv{\\}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH{vs|z-nz}yrPor-}n{|=Zn}H{vs|z-nz}yrPor-}n{|>Zn}H{vs|z-nz}yrPor-}n{|=Qr}uZn}H{vs|z-rp?-}n{|cvqr|`v\trH{vs|z-znA-}n{|cvqr|ZnvH{vs|z-sy|n-}n{|cvqr|Ny}unH{vs|z-nz}yr?Q-}n{|cvqr|Zn}H0vs-qrsv{rq5b`RlaVYR6--{vs|z-nz}yr?Q-}n{|avyrZn}H--{vs|z-rpA-}n{|avyrPyv}Zn}}v{thaVYRlZN]]V[TlYR[TaUjH--{vs|z-rpA-}n{|avyrQnNZn}}v{thaVYRlZN]]V[TlYR[TaUjH0r{qvs0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq5b`Rl]N[\\=lQR]aUlZN]6--n\bv{t-rp@-pnzrna|crrH0r{qvsn\bv{t-rp@-}n{|=a|crrHn\bv{t-rp@-}n{|>a|crrH0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=9-=;=9-=;=9->;=60qrsv{r-]Vl?-C;?E@>EB?rp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-]Vl?9-urn-<-]V6H\f|vq-znv{56-\n--rpA-qvssrP|y|-J-rpA5qvssr9-|vtv{\\}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=Zn}9-}n{|=a|crr6H--0vs-qrsv{rq5b`RlaVYR6----rp?-vyrlp||q-J-|P||q5}n{|=a|crr6H----rpA-vyrlpyv}H----rpA-vyrlqnNH----rp?-vyrlH----sy|n-vyrlny}unH----0}ntzn-{|yyly||}lnH----s|-5v{-v-J-=H-v-I-aVYRlZN]]V[TlYR[TaUH-v886-\n------vyrlpyv}-J-}n{|avyrPyv}Zn}}v{thvjH------vyrlqnN-J-}n{|avyrQnNZn}}v{thvjH------vyrl;-J-5vyrlp||q;-:-vyrlpyv}h=j6-<-vyrlpyv}h?jH------vyrl;\b-J-5vyrlp||q;\b-:-vyrlpyv}h>j6-<-vyrlpyv}h@jH------vyrlny}un-J-5>;=-:-r}5=;B9-no5vyrl;-:-=;B666-7-5>;=-:-r}5=;B9-no5vyrl;\b-:-=;B666H------vyrl;-J-vyrlqnNh=j-8-vyrl;-7-vyrlqnNh?jH------vyrl;\b-J-vyrlqnNh>j-8-vyrl;\b-7-vyrlqnNh@jH------vyrlny}un-J-prvy5vyrlny}un-7-vyrlqnNh?j6H------}n{|=P|y|-J-zv5}n{|=P|y|9-rr?Q5}n{|avyrZn}9-vyrl69-vyrlny}un6H----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--rpA-}n{|>P|y|-J-rrPor5}n{|>Zn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----0vs-qrsv{rq5b`Rl]N[\\=lQR]aUlZN]6------rpA-}n{|=Qr}uP|y|-J-rrPor5}n{|=Qr}uZn}9-pnzrna|crr6H------sy|n-qrynQvn{pr=-J-no5{}npx_TONa|Qr}u5}n{|=Qr}uP|y|6-7->=;=-:-yr{tu5}n{|=a|crr66H------sy|n-ynry-J-pynz}5}|tr-7-5>;=-8-qrynQvn{pr=-7-=;FB69-=;=9->;=6H----0ryr------sy|n-ynry-J-}|trH----0r{qvs----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-ynry6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\lZN]6----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|ZnvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|`v\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|`v\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|Zn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|Ny}un6H--0r{qvs--tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H\f"),Q=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.hash=m(),t}return t.__extends(n,e),n}(u.CubeTexture);function Y(){return document.createElementNS("http://www.w3.org/1999/xhtml","img")}var P=Y();P.width=P.height=8;var _=new u.Texture(P),B=new Q([P,P,P,P,P,P]);_.dispose=B.dispose=function(){};var R=function(e){return{value:e}},V=Object.assign({modelAlpha:R(0),originOpacity:R(1),progress:R(0),pano0Map:R(null),pano0Matrix:R(new u.Matrix4),pano1Map:R(null),pano1Matrix:R(new u.Matrix4),pano0DepthMap:R(null),panoVideoMap:R(null),panoVideoSize:R(new u.Vector2),panoVideoMatrix:R(new u.Matrix4),panoVideoAlpha:R(0),modelCenter:R(new u.Vector3),perspToOrtho:R(0),panoTileMap:R(null),panoTileClipMappings:R([]),panoTileDrawAtMappings:R([])},{exposure:R(1),emissive:R(new u.Color(0)),emissiveMap:R(null),specular:R(new u.Color(1118481)),specularMap:R(null),normalMap:R(null),bumpMap:R(null),shininess:R(30)},u.UniformsLib.common,u.UniformsLib.lights),F=function(e){function n(t){var n,i,r,o,s,a,M,c,l,d,N,p,h,D,g,y;void 0===t&&(t={});var T=e.call(this,{vertexShader:S,fragmentShader:b,uniforms:u.UniformsUtils.clone(V),defines:{USE_MAP:!0,USE_UV:!0,USE_TILE:!1,TILE_MAPPING_LENGTH:0,USE_BLACK_TRANSITION:!1,USE_PANO0_DEPTH_MAP:!1,USE_PANO_VIDEO_MAP:!1},lights:!0})||this;return Object.defineProperties(T,{pano0Map:{get:function(){var e=this.uniforms.pano0Map.value;return e===B?null:e},set:function(e){this.uniforms.pano0Map.value=null===e?B:e}},pano0Matrix:{get:function(){return this.uniforms.pano0Matrix.value.clone()},set:function(e){this.uniforms.pano0Matrix.value.copy(e)}},pano1Map:{get:function(){var e=this.uniforms.pano1Map.value;return e===B?null:e},set:function(e){this.uniforms.pano1Map.value=null===e?B:e}},pano1Matrix:{get:function(){return this.uniforms.pano1Matrix.value.clone()},set:function(e){this.uniforms.pano1Matrix.value.copy(e)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(e){this.uniforms.modelAlpha.value=e}},progress:{get:function(){return this.uniforms.progress.value},set:function(e){this.uniforms.progress.value=e}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(e){this.defines.USE_BLACK_TRANSITION!==e&&(this.defines.USE_BLACK_TRANSITION=e,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},perspToOrtho:{get:function(){return this.uniforms.perspToOrtho.value},set:function(e){this.uniforms.perspToOrtho.value=e}},pano0DepthMap:{get:function(){return this.uniforms.pano0DepthMap.value},set:function(e){this.uniforms.pano0DepthMap.value=e;var t=null!==e;t!==this.defines.USE_PANO0_DEPTH_MAP&&(this.defines.USE_PANO0_DEPTH_MAP=t,this.needsUpdate=!0)}},panoVideoMap:{get:function(){return this.uniforms.panoVideoMap.value},set:function(e){this.uniforms.panoVideoMap.value=e;var t=null!==e;t!==this.defines.USE_PANO_VIDEO_MAP&&(this.defines.USE_PANO_VIDEO_MAP=t,this.needsUpdate=!0)}},panoVideoSize:{get:function(){return this.uniforms.panoVideoSize.value.clone()},set:function(e){this.uniforms.panoVideoSize.value.copy(e)}},panoVideoMatrix:{get:function(){return this.uniforms.panoVideoMatrix.value.clone()},set:function(e){this.uniforms.panoVideoMatrix.value.copy(e)}},panoVideoAlpha:{get:function(){return this.uniforms.panoVideoAlpha.value},set:function(e){this.uniforms.panoVideoAlpha.value=e}},panoTileMap:{get:function(){return this.uniforms.panoTileMap.value},set:function(e){this.uniforms.panoTileMap.value=e;var t=null!==e;t!==this.defines.USE_TILE&&(this.defines.USE_TILE=t,this.needsUpdate=!0)}},panoTileMappings:{get:function(){var e=this.uniforms.panoTileClipMappings.value,t=this.uniforms.panoTileDrawAtMappings.value;if(null===e)return null;for(var n=[],i=0;i<e.length;i++)n[i]=[e[i].clone(),t[i].clone()];return n},set:function(e){var t=this.defines.TILE_MAPPING_LENGTH;if(null===e)this.uniforms.panoTileClipMappings.value=null,this.uniforms.panoTileDrawAtMappings.value=null;else{for(var n=[],i=[],r=0;r<e.length;r++)n[r]=e[r][0].clone(),i[r]=e[r][1].clone();this.uniforms.panoTileClipMappings.value=n,this.uniforms.panoTileDrawAtMappings.value=i}var o=null!==e?e.length:0;o!==t&&(this.defines.TILE_MAPPING_LENGTH=o,this.needsUpdate=!0)}}}),T.pano0Map=null!==(n=t.pano0Map)&&void 0!==n?n:B,T.pano0Matrix=null!==(i=t.pano0Matrix)&&void 0!==i?i:new u.Matrix4,T.pano1Map=null!==(r=t.pano1Map)&&void 0!==r?r:B,T.pano1Matrix=null!==(o=t.pano1Matrix)&&void 0!==o?o:new u.Matrix4,T.modelAlpha=null!==(s=t.modelAlpha)&&void 0!==s?s:1,T.progress=null!==(a=t.progress)&&void 0!==a?a:0,T.useBlackTransition=null!==(M=t.useBlackTransition)&&void 0!==M&&M,T.perspToOrtho=null!==(c=t.perspToOrtho)&&void 0!==c?c:0,T.opacity=null!==(l=t.opacity)&&void 0!==l?l:1,T.pano0DepthMap=null!==(d=t.pano0DepthMap)&&void 0!==d?d:null,T.panoVideoSize=null!==(N=t.panoVideoSize)&&void 0!==N?N:new u.Vector2,T.panoVideoMap=null!==(p=t.panoVideoMap)&&void 0!==p?p:null,T.panoVideoMatrix=null!==(h=t.panoVideoMatrix)&&void 0!==h?h:new u.Matrix4,T.panoVideoAlpha=null!==(D=t.panoVideoAlpha)&&void 0!==D?D:0,T.panoTileMap=null!==(g=t.panoTileMap)&&void 0!==g?g:null,T.panoTileMappings=null!==(y=t.panoTileMappings)&&void 0!==y?y:null,T}return t.__extends(n,e),n}(u.ShaderMaterial),q=new u.Vector3(0,0,0),H=function(e){function n(t,n){void 0===n&&(n=q);var i=e.call(this)||this,r=new u.BoxBufferGeometry(t.max.x-t.min.x+2*n.x,t.max.y-t.min.y+2*n.y,t.max.z-t.min.z+2*n.z,1,1);r.groups.length=0,r.groups.push({start:0,count:36,materialIndex:0}),r.applyMatrix4((new u.Matrix4).makeScale(-1,1,1));var o=new F;o.defines.USE_MAP=!1,o.defines.USE_UV=!1,o.uniforms.diffuse.value=new u.Color(16777215);var s=new k(r,[o]);return s.floorIndex=-1,s.position.copy(t.getCenter(new u.Vector3)),s.frustumCulled=!1,i.add(s),i}return t.__extends(n,e),n.prototype.dispose=function(){this.disposeMaterial(),this.disposeGeometry()},n}(U);function G(e,t){return void 0===t&&(t=q),new H(e,t)}var W,Z,J,X,K={};K.EPSILON=1e-6,K.BVHVector3=function(e,t,n){this.x=e||0,this.y=t||0,this.z=n||0},K.BVHVector3.prototype={constructor:K.BVHVector3,copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},set:function(e,t,n){return this.x=e,this.y=t,this.z=n,this},setFromArray:function(e,t){this.x=e[t],this.y=e[t+1],this.z=e[t+2]},add:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},cross:function(e){var t=this.x,n=this.y,i=this.z;return this.x=n*e.z-i*e.y,this.y=i*e.x-t*e.z,this.z=t*e.y-n*e.x,this},crossVectors:function(e,t){var n=e.x,i=e.y,r=e.z,o=t.x,s=t.y,a=t.z;return this.x=i*a-r*s,this.y=r*o-n*a,this.z=n*s-i*o,this},clone:function(){return new K.BVHVector3(this.x,this.y,this.z)}},K.BVH=function(e,t){this._trianglesArray=e,this._maxTrianglesPerNode=t||10,this._bboxArray=this.calcBoundingBoxes(e),this._bboxHelper=new Float32Array(this._bboxArray.length),this._bboxHelper.set(this._bboxArray);var n=e.length/9,i=this.calcExtents(0,n,K.EPSILON);this._rootNode=new K.BVHNode(i[0],i[1],0,n,0),this._nodesToSplit=[this._rootNode]},K.BVH.prototype.splitNode=function(e){if(e){var t=0,n=function(){t++;var i=this._nodesToSplit.pop();i?(this._splitNode(i),t%255==0?setTimeout(n):n()):(t=0,e())}.bind(this);n()}else for(;this._nodesToSplit.length>0;)this._splitNode(this._nodesToSplit.pop())},K.BVH.prototype.dispose=function(){this._trianglesArray=new Float32Array,this._bboxArray=new Float32Array,this._bboxHelper=new Float32Array,this._rootNode=null,this._nodesToSplit=null},K.BVH.prototype.intersectRay=function(e,t,n){for(var i,r=[this._rootNode],o=[],s=[],a=new K.BVHVector3(1/t.x,1/t.y,1/t.z);r.length>0;){var M=r.pop();if(K.BVH.intersectNodeBox(e,a,M))for(M._node0&&r.push(M._node0),M._node1&&r.push(M._node1),i=M._startIndex;i<M._endIndex;i++)o.push(this._bboxArray[7*i])}var u=new K.BVHVector3,c=new K.BVHVector3,l=new K.BVHVector3,d=new K.BVHVector3(e.x,e.y,e.z),N=new K.BVHVector3(t.x,t.y,t.z);for(i=0;i<o.length;i++){var p=o[i];u.setFromArray(this._trianglesArray,9*p),c.setFromArray(this._trianglesArray,9*p+3),l.setFromArray(this._trianglesArray,9*p+6);var h=K.BVH.intersectRayTriangle(u,c,l,d,N,n);h&&s.push({triangle:[u.clone(),c.clone(),l.clone()],triangleIndex:p,intersectionPoint:h})}return s},K.BVH.prototype.calcBoundingBoxes=function(e){for(var t,n,i,r,o,s,a,M,u,c,l,d,N,p,h,D=e.length/9,g=new Float32Array(7*D),y=0;y<D;y++)t=e[9*y],n=e[9*y+1],i=e[9*y+2],r=e[9*y+3],o=e[9*y+4],s=e[9*y+5],a=e[9*y+6],M=e[9*y+7],u=e[9*y+8],c=Math.min(Math.min(t,r),a),l=Math.min(Math.min(n,o),M),d=Math.min(Math.min(i,s),u),N=Math.max(Math.max(t,r),a),p=Math.max(Math.max(n,o),M),h=Math.max(Math.max(i,s),u),K.BVH.setBox(g,y,y,c,l,d,N,p,h);return g},K.BVH.prototype.calcExtents=function(e,t,n){if(n=n||0,e>=t)return[{x:0,y:0,z:0},{x:0,y:0,z:0}];for(var i=Number.MAX_VALUE,r=Number.MAX_VALUE,o=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=-Number.MAX_VALUE,M=-Number.MAX_VALUE,u=e;u<t;u++)i=Math.min(this._bboxArray[7*u+1],i),r=Math.min(this._bboxArray[7*u+2],r),o=Math.min(this._bboxArray[7*u+3],o),s=Math.max(this._bboxArray[7*u+4],s),a=Math.max(this._bboxArray[7*u+5],a),M=Math.max(this._bboxArray[7*u+6],M);return[{x:i-n,y:r-n,z:o-n},{x:s+n,y:a+n,z:M+n}]},K.BVH.prototype._splitNode=function(e){if(!(e.elementCount()<=this._maxTrianglesPerNode||0===e.elementCount())){var t=e._startIndex,n=e._endIndex,i=[[],[],[]],r=[[],[],[]],o=[e.centerX(),e.centerY(),e.centerZ()],s=[e._extentsMax.x-e._extentsMin.x,e._extentsMax.y-e._extentsMin.y,e._extentsMax.z-e._extentsMin.z],a=[];a.length=3;for(var M=t;M<n;M++){a[0]=.5*(this._bboxArray[7*M+1]+this._bboxArray[7*M+4]),a[1]=.5*(this._bboxArray[7*M+2]+this._bboxArray[7*M+5]),a[2]=.5*(this._bboxArray[7*M+3]+this._bboxArray[7*M+6]);for(var u=0;u<3;u++)a[u]<o[u]?i[u].push(M):r[u].push(M)}var c=[];if(c.length=3,c[0]=0===i[0].length||0===r[0].length,c[1]=0===i[1].length||0===r[1].length,c[2]=0===i[2].length||0===r[2].length,!(c[0]&&c[1]&&c[2])){var l,d,N=[0,1,2];for(N.sort((function(e,t){return s[t]-s[e]})),u=0;u<3;u++){var p=N[u];if(!c[p]){l=i[p],d=r[p];break}}var h,D=t,g=D+l.length,y=g,T=n,z=e._startIndex,j=l.concat(d);for(M=0;M<j.length;M++)h=j[M],K.BVH.copyBox(this._bboxArray,h,this._bboxHelper,z),z++;var f=this._bboxHelper.subarray(7*e._startIndex,7*e._endIndex);this._bboxArray.set(f,7*e._startIndex);var v=this.calcExtents(D,g,K.EPSILON),m=this.calcExtents(y,T,K.EPSILON),w=new K.BVHNode(v[0],v[1],D,g,e._level+1),I=new K.BVHNode(m[0],m[1],y,T,e._level+1);e._node0=w,e._node1=I,e.clearShapes(),this._nodesToSplit.push(w),this._nodesToSplit.push(I)}}},K.BVH._calcTValues=function(e,t,n,i){var r={min:0,max:0};return i>=0?(r.min=(e-n)*i,r.max=(t-n)*i):(r.min=(t-n)*i,r.max=(e-n)*i),r},K.BVH.intersectNodeBox=function(e,t,n){var i=K.BVH._calcTValues(n._extentsMin.x,n._extentsMax.x,e.x,t.x),r=K.BVH._calcTValues(n._extentsMin.y,n._extentsMax.y,e.y,t.y);if(i.min>r.max||r.min>i.max)return!1;(r.min>i.min||i.min!=i.min)&&(i.min=r.min),(r.max<i.max||i.max!=i.max)&&(i.max=r.max);var o=K.BVH._calcTValues(n._extentsMin.z,n._extentsMax.z,e.z,t.z);return!(i.min>o.max||o.min>i.max)&&((o.min>i.min||i.min!=i.min)&&(i.min=o.min),(o.max<i.max||i.max!=i.max)&&(i.max=o.max),!(i.max<0))},K.BVH.intersectRayTriangle=(W=new K.BVHVector3,Z=new K.BVHVector3,J=new K.BVHVector3,X=new K.BVHVector3,function(e,t,n,i,r,o){Z.subVectors(t,e),J.subVectors(n,e),X.crossVectors(Z,J);var s,a=r.dot(X);if(a>0){if(o)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}W.subVectors(i,e);var M=s*r.dot(J.crossVectors(W,J));if(M<0)return null;var u=s*r.dot(Z.cross(W));if(u<0)return null;if(M+u>a)return null;var c=-s*W.dot(X);if(c<0)return null;var l=c/a;return(new K.BVHVector3).copy(r).multiplyScalar(l).add(i)}),K.BVH.setBox=function(e,t,n,i,r,o,s,a,M){e[7*t]=n,e[7*t+1]=i,e[7*t+2]=r,e[7*t+3]=o,e[7*t+4]=s,e[7*t+5]=a,e[7*t+6]=M},K.BVH.copyBox=function(e,t,n,i){n[7*i]=e[7*t],n[7*i+1]=e[7*t+1],n[7*i+2]=e[7*t+2],n[7*i+3]=e[7*t+3],n[7*i+4]=e[7*t+4],n[7*i+5]=e[7*t+5],n[7*i+6]=e[7*t+6]},K.BVH.getBox=function(e,t,n){n.triangleId=e[7*t],n.minX=e[7*t+1],n.minY=e[7*t+2],n.minZ=e[7*t+3],n.maxX=e[7*t+4],n.maxY=e[7*t+5],n.maxZ=e[7*t+6]},K.BVHNode=function(e,t,n,i,r){this._extentsMin=e,this._extentsMax=t,this._startIndex=n,this._endIndex=i,this._level=r,this._node0=null,this._node1=null},K.BVHNode.prototype.elementCount=function(){return this._endIndex-this._startIndex},K.BVHNode.prototype.centerX=function(){return.5*(this._extentsMin.x+this._extentsMax.x)},K.BVHNode.prototype.centerY=function(){return.5*(this._extentsMin.y+this._extentsMax.y)},K.BVHNode.prototype.centerZ=function(){return.5*(this._extentsMin.z+this._extentsMax.z)},K.BVHNode.prototype.clearShapes=function(){this._startIndex=-1,this._endIndex=-1},K.BVHNode.calcBoundingSphereRadius=function(e,t){var n=.5*(e.x+t.x),i=.5*(e.y+t.y),r=.5*(e.z+t.z),o=(n-e.x)*(n-e.x)+(i-e.y)*(i-e.y)+(r-e.z)*(r-e.z),s=(n-t.x)*(n-t.x)+(i-t.y)*(i-t.y)+(r-t.z)*(r-t.z);return Math.sqrt(Math.max(o,s))};var $=K.BVH,ee=window;function te(e,t,n,i,r){void 0===t&&(t={}),void 0===n&&(n=f),void 0===i&&(i=f),void 0===r&&(r=f);var o=function(e){var t=/jsonp_([0-9a-z]+)([\?\#].*)?$/i.exec(e);return t&&t[0]}(e);if(o){var s=document.createElement("script");return ee[o]=function(e){delete ee[o],s.parentNode&&s.parentNode.removeChild(s),0!==e.indexOf("data:")&&n(new Error("json needs a dataURL"));var i=e.split(","),r=(i[0].match(/:(.*?);/)||[])[1],a=i[1];if("arraybuffer"===t.responseType||"blob"===t.responseType){for(var M=atob(i[1]),u=M.length,c=new Uint8Array(u),l=0;l<u;l++)c[l]=M.charCodeAt(l);a="arraybuffer"===t.responseType?c.buffer:new Blob([c],{type:r})}O((function(){return n(null,a)}))},s.src=e,document.body.appendChild(s),{abort:function(){delete ee[o],s.parentNode&&s.parentNode.removeChild(s)}}}var a=new XMLHttpRequest;function M(){a.ontimeout=f,a.onreadystatechange=f,a.onprogress=f,a.onabort=f}return a.ontimeout=function(){n&&n(new Error("timeout"),null),M()},a.onreadystatechange=function(){4===this.readyState&&(0!==this.status||this.response)&&(200===this.status||0===this.status?(n&&n(null,this.response),M()):(n&&n(new Error("status:"+this.status),null),M()))},a.onprogress=function(e){if(e.lengthComputable){var t=e.loaded,n=e.total;i(t/n,t,n)}},a.onabort=function(){M(),r()},a.open("GET",e,!0),t.responseType&&(a.responseType=t.responseType),a.send(null),a}te.async=function(e,t){return new Promise((function(n,i){te(e,t,(function(e,t){return e?i(e):n(t)}))}))};function ne(e,t){if(void 0===t&&(t={}),"function"==typeof t.transform)return t.transform(e,t);if(e.indexOf("//vrlab-public.ljcdn.com")>=0&&(/\.basis(\?|$)/.test(e)&&!0!==t.basisLoaderInitialized&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),/\.(jpg|png)$/.test(e))){var n=t.size,i=t.quality,r=t.format;if(n||i||r){var o="?imageMogr2";i&&(o+="/quality/"+i),n&&(o+="/thumbnail/"+n+"x"),r&&(o+="/format/"+r),e=e.replace("//vrlab-public.ljcdn.com","//vrlab-image4.ljcdn.com")+o}}return e}var ie=function(){function e(){}return e.prototype.load=function(e,t,n,i){return void 0===t&&(t=f),void 0===n&&(n=f),void 0===i&&(i=f),this.loadToImage(Y(),e,t,n,i)},e.prototype.loadToImage=function(e,t,n,i,r){if(void 0===n&&(n=f),void 0===r&&(r=f),e.src)throw new Error("image is loaded");te(t,{responseType:"blob"},(function(i,o){i?r(i):(e.onload=function(){n(e),e.onload=e.onerror=function(){}},e.onerror=function(){r(new Error("image parse error "+t)),e.onload=e.onerror=function(){}},e.src=URL.createObjectURL(o))}))},e}(),re=null,oe=!1,se=[];function ae(e){if(void 0===e&&(e=!1),e||!oe)if(re)oe=!1;else{oe=!0;var t=se.shift();if(t){try{t()}catch(e){}O((function(){return ae(!0)}))}else oe=!1}}function Me(){re=null,ae()}function ue(){(re||0!==se.length)&&(re&&clearTimeout(re),re=window.setTimeout(Me,200))}function ce(e){return new Promise((function(t){se.push((function(){return t(e())})),ae()}))}var le,de={computeTangents:function(e){var t=e.index,n=e.attributes;if(null!==t&&void 0!==n.position&&void 0!==n.normal&&void 0!==n.uv){var i=t.array,r=n.position.array,o=n.normal.array,s=n.uv.array,a=r.length/3;void 0===n.tangent&&e.setAttribute("tangent",new u.BufferAttribute(new Float32Array(4*a),4));for(var M=n.tangent.array,c=[],l=[],d=0;d<a;d++)c[d]=new u.Vector3,l[d]=new u.Vector3;var N=new u.Vector3,p=new u.Vector3,h=new u.Vector3,D=new u.Vector2,g=new u.Vector2,y=new u.Vector2,T=new u.Vector3,z=new u.Vector3,j=e.groups;0===j.length&&(j=[{start:0,count:i.length}]);d=0;for(var f=j.length;d<f;++d)for(var v=k=(C=j[d]).start,m=k+C.count;v<m;v+=3)U(i[v+0],i[v+1],i[v+2]);var w,I,x,L=new u.Vector3,O=new u.Vector3,A=new u.Vector3,E=new u.Vector3;for(d=0,f=j.length;d<f;++d){var C,k;for(v=k=(C=j[d]).start,m=k+C.count;v<m;v+=3)S(i[v+0]),S(i[v+1]),S(i[v+2])}}else console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");function U(e,t,n){N.fromArray(r,3*e),p.fromArray(r,3*t),h.fromArray(r,3*n),D.fromArray(s,2*e),g.fromArray(s,2*t),y.fromArray(s,2*n);var i=p.x-N.x,o=h.x-N.x,a=p.y-N.y,M=h.y-N.y,u=p.z-N.z,d=h.z-N.z,j=g.x-D.x,f=y.x-D.x,v=g.y-D.y,m=y.y-D.y,w=1/(j*m-f*v);T.set((m*i-v*o)*w,(m*a-v*M)*w,(m*u-v*d)*w),z.set((j*o-f*i)*w,(j*M-f*a)*w,(j*d-f*u)*w),c[e].add(T),c[t].add(T),c[n].add(T),l[e].add(z),l[t].add(z),l[n].add(z)}function S(e){A.fromArray(o,3*e),E.copy(A),I=c[e],L.copy(I),L.sub(A.multiplyScalar(A.dot(I))).normalize(),O.crossVectors(E,I),x=O.dot(l[e]),w=x<0?-1:1,M[4*e]=L.x,M[4*e+1]=L.y,M[4*e+2]=L.z,M[4*e+3]=w}},mergeBufferGeometries:function(e,t){for(var n=null!==e[0].index,i=new Set(Object.keys(e[0].attributes)),r=new Set(Object.keys(e[0].morphAttributes)),o={},s={},a=new u.BufferGeometry,M=0,c=0;c<e.length;++c){var l=e[c];if(n!==(null!==l.index))return null;for(var d in l.attributes){if(!i.has(d))return null;void 0===o[d]&&(o[d]=[]),o[d].push(l.attributes[d])}for(var d in l.morphAttributes){if(!r.has(d))return null;void 0===s[d]&&(s[d]=[]),s[d].push(l.morphAttributes[d])}if(a.userData.mergedUserData=a.userData.mergedUserData||[],a.userData.mergedUserData.push(l.userData),t){var N;if(n)N=l.index.count;else{if(void 0===l.attributes.position)return null;N=l.attributes.position.count}a.addGroup(M,N,c),M+=N}}if(n){var p=0,h=[];for(c=0;c<e.length;++c){for(var D=e[c].index,g=0;g<D.count;++g)h.push(D.getX(g)+p);p+=e[c].attributes.position.count}a.setIndex(h)}for(var d in o){var y=this.mergeBufferAttributes(o[d]);if(!y)return null;a.setAttribute(d,y)}for(var d in s){var T=s[d][0].length;if(0===T)break;a.morphAttributes=a.morphAttributes||{},a.morphAttributes[d]=[];for(c=0;c<T;++c){var z=[];for(g=0;g<s[d].length;++g)z.push(s[d][g][c]);var j=this.mergeBufferAttributes(z);if(!j)return null;a.morphAttributes[d].push(j)}}return a},mergeBufferAttributes:function(e){for(var t,n,i,r=0,o=0;o<e.length;++o){var s=e[o];if(s.isInterleavedBufferAttribute)return null;if(void 0===t&&(t=s.array.constructor),t!==s.array.constructor)return null;if(void 0===n&&(n=s.itemSize),n!==s.itemSize)return null;if(void 0===i&&(i=s.normalized),i!==s.normalized)return null;r+=s.array.length}var a=new t(r),M=0;for(o=0;o<e.length;++o)a.set(e[o].array,M),M+=e[o].array.length;return new u.BufferAttribute(a,n,i)},interleaveAttributes:function(e){for(var t,n=0,i=0,r=0,o=e.length;r<o;++r){var s=e[r];if(void 0===t&&(t=s.array.constructor),t!==s.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;n+=s.array.length,i+=s.itemSize}var a=new u.InterleavedBuffer(new t(n),i),M=0,c=[],l=["getX","getY","getZ","getW"],d=["setX","setY","setZ","setW"],N=0;for(o=e.length;N<o;N++){var p=(s=e[N]).itemSize,h=s.count,D=new u.InterleavedBufferAttribute(a,p,M,s.normalized);c.push(D),M+=p;for(var g=0;g<h;g++)for(var y=0;y<p;y++)D[d[y]](g,s[l[y]](g))}return c},estimateBytesUsed:function(e){var t=0;for(var n in e.attributes){var i=e.getAttribute(n);t+=i.count*i.itemSize*i.array.BYTES_PER_ELEMENT}var r=e.getIndex();return t+=r?r.count*r.itemSize*r.array.BYTES_PER_ELEMENT:0},mergeVertices:function(e,t){void 0===t&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var n={},i=e.getIndex(),r=e.getAttribute("position"),o=i?i.count:r.count,s=0,a=Object.keys(e.attributes),M={},c={},l=[],d=["getX","getY","getZ","getW"],N=0,p=a.length;N<p;N++){M[z=a[N]]=[],(m=e.morphAttributes[z])&&(c[z]=new Array(m.length).fill().map((function(){return[]})))}var h=Math.log10(1/t),D=Math.pow(10,h);for(N=0;N<o;N++){var g=i?i.getX(N):N,y="",T=0;for(p=a.length;T<p;T++)for(var z=a[T],j=(v=e.getAttribute(z)).itemSize,f=0;f<j;f++)y+=~~(v[d[f]](g)*D)+",";if(y in n)l.push(n[y]);else{for(T=0,p=a.length;T<p;T++){z=a[T];var v=e.getAttribute(z),m=e.morphAttributes[z],w=(j=v.itemSize,M[z]),I=c[z];for(f=0;f<j;f++){var x=d[f];if(w.push(v[x](g)),m)for(var L=0,O=m.length;L<O;L++)I[L].push(m[L][x](g))}}n[y]=s,l.push(s),s++}}var A=e.clone();for(N=0,p=a.length;N<p;N++){z=a[N];var E=e.getAttribute(z),C=new E.array.constructor(M[z]);v=new u.BufferAttribute(C,E.itemSize,E.normalized);if(A.setAttribute(z,v),z in c)for(T=0;T<c[z].length;T++){var k=e.morphAttributes[z][T],U=(C=new k.array.constructor(c[z][T]),new u.BufferAttribute(C,k.itemSize,k.normalized));A.morphAttributes[z][T]=U}}return A.setIndex(l),A}},Ne=function(e){function n(t){var n=e.call(this,t)||this;return n._callbacks={},n._initialized=!1,n._taskLoad=0,n}return t.__extends(n,e),n}(Worker),pe='\nvar config, transcoderPending, _BasisFile;\nself.onmessage = function(e) {\n var message = e.data;\n switch (message.type) {\n case "init":\n config = message.config;\n init(message.transcoderBinary);\n break;\n case "transcode":\n transcoderPending.then(function() {\n try {\n var result = transcode(message.buffer);\n var width = result.width;\n var height = result.height;\n var hasAlpha = result.hasAlpha;\n var mipmaps = result.mipmaps;\n var format = result.format;\n var buffers = [];\n for (var i = 0; i < mipmaps.length; ++i) {\n buffers.push(mipmaps[i].data.buffer);\n }\n self.postMessage({ type: "transcode", id: message.id, width, height, hasAlpha, mipmaps, format }, buffers);\n } catch (error) {\n console.error(error);\n self.postMessage({ type: "error", id: message.id, error: error.message });\n }\n });\n break;\n default: break;\n }\n};\n\nfunction init(wasmBinary) {\n var BasisModule;\n transcoderPending = new Promise(function(resolve) {\n BasisModule = { wasmBinary, onRuntimeInitialized: resolve };\n BASIS(BasisModule); // eslint-disable-line no-undef\n }).then(function() {\n _BasisFile = BasisModule.BasisFile;\n BasisModule.initializeBasis();\n self.postMessage({ type: "initialized" });\n });\n}\n\nfunction transcode(buffer) {\n var basisFile = new _BasisFile(new Uint8Array(buffer));\n var width = basisFile.getImageWidth(0, 0);\n var height = basisFile.getImageHeight(0, 0);\n var levels = basisFile.getNumLevels(0);\n var hasAlpha = basisFile.getHasAlpha();\n function cleanup() {\n basisFile.close();\n basisFile.delete();\n }\n if (!hasAlpha) {\n switch (config.format) {\n case 9: // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA\n config.format = 8; // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;\n break;\n default: break;\n }\n }\n if (!width || !height || !levels) {\n cleanup();\n throw new Error("BasisTextureLoader: Invalid .basis file");\n }\n if (!basisFile.startTranscoding()) {\n cleanup();\n throw new Error("BasisTextureLoader: .startTranscoding failed");\n }\n var mipmaps = [];\n for (var mip = 0; mip < levels; mip++) {\n var mipWidth = basisFile.getImageWidth(0, mip);\n var mipHeight = basisFile.getImageHeight(0, mip);\n var dst = new Uint8Array(basisFile.getImageTranscodedSizeInBytes(0, mip, config.format));\n var status = basisFile.transcodeImage(dst, 0, mip, config.format, 0, hasAlpha);\n if (!status) {\n cleanup();\n throw new Error("BasisTextureLoader: .transcodeImage failed.");\n }\n mipmaps.push({ data: dst, width: mipWidth, height: mipHeight });\n }\n cleanup();\n return { width, height, hasAlpha, mipmaps, format: config.format };\n}\n',he={cTFETC1:0,cTFETC2:1,cTFBC1:2,cTFBC3:3,cTFBC4:4,cTFBC5:5,cTFBC7_M6_OPAQUE_ONLY:6,cTFBC7_M5:7,cTFPVRTC1_4_RGB:8,cTFPVRTC1_4_RGBA:9,cTFASTC_4x4:10,cTFATC_RGB:11,cTFATC_RGBA_INTERPOLATED_ALPHA:12,cTFRGBA32:13,cTFRGB565:14,cTFBGR565:15,cTFRGBA4444:16},De={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779},ge=((le={})[he.cTFBC1]=De.COMPRESSED_RGB_S3TC_DXT1_EXT,le[he.cTFBC3]=De.COMPRESSED_RGBA_S3TC_DXT5_EXT,le),ye=new(function(e){function n(t){var n=e.call(this,t)||this;return n.transcoderPath="",n.transcoderBinary=null,n.transcoderPending=null,n.workerLimit=4,n.workerPool=[],n.workerNextTaskID=1,n.workerSourceURL="",n.workerConfig={format:null,astcSupported:!1,bptcSupported:!1,etcSupported:!1,dxtSupported:!1,pvrtcSupported:!1},n}return t.__extends(n,e),n.prototype.setTranscoderPath=function(e){return this.transcoderPath=e,this},n.prototype.setWorkerLimit=function(e){return this.workerLimit=e,this},n.prototype.isInitialized=function(){return 0!==this.workerPool.filter((function(e){return e._initialized})).length},n.prototype.detectSupport=function(e){var t=this.workerConfig;if(t.astcSupported=!!e.extensions.get("WEBGL_compressed_texture_astc"),t.bptcSupported=!!e.extensions.get("EXT_texture_compression_bptc"),t.etcSupported=!!e.extensions.get("WEBGL_compressed_texture_etc1"),t.dxtSupported=!!e.extensions.get("WEBGL_compressed_texture_s3tc"),t.pvrtcSupported=!!e.extensions.get("WEBGL_compressed_texture_pvrtc")||!!e.extensions.get("WEBKIT_WEBGL_compressed_texture_pvrtc"),t.astcSupported)t.format=n.BASIS_FORMAT.cTFASTC_4x4;else if(t.bptcSupported)t.format=n.BASIS_FORMAT.cTFBC7_M5;else if(t.dxtSupported)t.format=n.BASIS_FORMAT.cTFBC3;else if(t.pvrtcSupported)t.format=n.BASIS_FORMAT.cTFPVRTC1_4_RGBA;else{if(!t.etcSupported)throw new Error("BasisTextureLoader: No suitable compressed texture format found.");t.format=n.BASIS_FORMAT.cTFETC1}return this},n.prototype.load=function(e,t,i,r){var o=this,s=new u.FileLoader(this.manager);s.setResponseType("arraybuffer"),s.load(e,(function(i){var s=i;if(n.taskCache.has(s))return n.taskCache.get(s).promise.then(t).catch(r);o._createTexture(s,e).then(t).catch(r)}),i,r)},n.prototype._createTexture=function(e,t){var i,r,o=this,s=e.byteLength,a=this._allocateWorker(s).then((function(t){return i=t,r=o.workerNextTaskID++,new Promise((function(t,n){i._callbacks[r]={resolve:t,reject:n},i.postMessage({type:"transcode",id:r,buffer:e},[e])}))})).then((function(e){var t,n=o.workerConfig,i=e.width,r=e.height,s=e.mipmaps;switch(e.format){case he.cTFASTC_4x4:t=new u.CompressedTexture(s,i,r,u.RGBA_ASTC_4x4_Format);break;case he.cTFBC1:case he.cTFBC3:t=new u.CompressedTexture(s,i,r,ge[n.format],u.UnsignedByteType);break;case he.cTFETC1:t=new u.CompressedTexture(s,i,r,u.RGB_ETC1_Format);break;case he.cTFPVRTC1_4_RGB:t=new u.CompressedTexture(s,i,r,u.RGB_PVRTC_4BPPV1_Format);break;case he.cTFPVRTC1_4_RGBA:t=new u.CompressedTexture(s,i,r,u.RGBA_PVRTC_4BPPV1_Format);break;default:throw new Error("BasisTextureLoader: No supported format available.")}return t.minFilter=1===s.length?u.LinearFilter:u.LinearMipmapLinearFilter,t.magFilter=u.LinearFilter,t.generateMipmaps=!1,t.needsUpdate=!0,t}));return a.catch((function(){return!0})).then((function(){i&&r&&(i._taskLoad-=s,delete i._callbacks[r])})),n.taskCache.set(e,{url:t,promise:a}),a},n.prototype._initTranscoder=function(){var e=this;if(!this.transcoderPending){var t=new u.FileLoader(this.manager);t.setPath(this.transcoderPath);var n=new Promise((function(e,n){t.load("basis_transcoder.js",e,void 0,n)})),i=new u.FileLoader(this.manager);i.setPath(this.transcoderPath),i.setResponseType("arraybuffer");var r=new Promise((function(e,t){i.load("basis_transcoder.wasm",e,void 0,t)}));this.transcoderPending=Promise.all([n,r]).then((function(t){var n=t[0],i=t[1],r=["/* basis_transcoder.js */",n,"/* worker */",pe].join("\n");e.workerSourceURL=URL.createObjectURL(new Blob([r])),e.transcoderBinary=i}))}return this.transcoderPending},n.prototype._allocateWorker=function(e){var t=this;return this._initTranscoder().then((function(){if(t.workerPool.length<t.workerLimit){var n=new Ne(t.workerSourceURL);n._callbacks={},n._initialized=!1,n._taskLoad=0,n.postMessage({type:"init",config:t.workerConfig,transcoderBinary:t.transcoderBinary}),n.onmessage=function(e){var t=e.data;switch(t.type){case"initialized":n._initialized=!0,console.log("BasisTextureLoader: basis loader initialized");break;case"transcode":n._callbacks[t.id].resolve(t);break;case"error":n._callbacks[t.id].reject(t);break;default:console.error('BasisTextureLoader: Unexpected message, "'+t.type+'"')}},t.workerPool.push(n)}else t.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));var i=t.workerPool[t.workerPool.length-1];return i._taskLoad+=e,i}))},n.prototype.dispose=function(){for(var e=0;e<this.workerPool.length;e++)this.workerPool[e].terminate();return this.workerPool.length=0,this},n.taskCache=new WeakMap,n.BASIS_FORMAT=he,n.DXT_FORMAT=De,n.DXT_FORMAT_MAP=ge,n}(u.Loader));ye.setWorkerLimit(1),ye.setTranscoderPath("https://vrlab-public.ljcdn.com/release/static/image/release/five/basis/");var Te=(new u.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1);function ze(e,t){return new u.BufferAttribute(e,t)}function je(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function fe(e){var t=e.indices,n=e.vertices,i=e.uvs,r=new u.BufferGeometry;return r.setIndex(ze(new Uint32Array(t),1)),r.setAttribute("position",ze(new Float32Array(n),3)),j(i)||r.setAttribute("uv",ze(new Float32Array(i),2)),r.applyMatrix4(Te),r.computeVertexNormals(),r}function ve(e,t){var n=ye.isInitialized();if(e=ne(e,Object.assign({key:"texture",basisLoaderInitialized:n},t)),/\.basis(\?|$)/.test(e)){var i={sourceFile:e,needsUpdate:!0,wrapS:u.ClampToEdgeWrapping,wrapT:u.ClampToEdgeWrapping,minFilter:u.LinearFilter};return new Promise((function(t,n){ye.load(e,(function(e){t(Object.assign(e,i))}),(function(){}),(function(e){n(e.error)}))}))}var r={sourceFile:e,needsUpdate:!0,wrapS:u.ClampToEdgeWrapping,wrapT:u.ClampToEdgeWrapping,minFilter:u.LinearFilter},o=new ie;return new Promise((function(t,n){o.load(e,(function(e){var n=new u.Texture(e),i=n.dispose;n.dispose=function(){i.call(n),/^blob\:/.test(e.src)&&URL.revokeObjectURL(e.src)},t(Object.assign(n,r))}),f,(function(e){return n(e)}))}))}function me(e){var t=new F;return e.then((function(e){t.uniforms.map.value=e,t.uniforms.exposure.value=3.3})),t}var we=c.parse("\nmessage Model {\n repeated Chunk chunks = 1;\n}\nmessage Chunk {\n required Vertices vertices = 1;\n required Faces faces = 2;\n required string name = 3;\n optional string texture = 4;\n}\nmessage Vertices {\n repeated float xyz = 1 [packed=true];\n repeated float uvs = 2 [packed=true];\n}\nmessage Faces {\n repeated uint32 indices = 1 [packed=true];\n}\n").root.lookup("Model");function Ie(e,t,n,i){for(var r=0,o=e;r<o.length;r++){var s=o[r];s.chunkName=(a=s.name,M=void 0,(M=a.match(/(chunk)-?(\d+)/))?parseInt(M[2],10):0),s.floorName=je(s.name),s.texture&&(s.texture=n[s.chunkName]=n[s.chunkName]||t+s.texture)}var a,M;e.sort((function(e,t){return 1e3*e.floorName+e.chunkName-(1e3*t.floorName+t.chunkName)})),!1!==(i=Object.assign({},i)).autoResize&&(n.length>96?i.size=Math.min(i.size||1/0,100):n.length>48?i.size=Math.min(i.size||1/0,200):n.length>24?i.size=Math.min(i.size||1/0,400):n.length>12&&(i.size=Math.min(i.size||1/0,800)));var c=[],l={},d=[],N=Promise.resolve();return(N=(N=N.then((function(){return ce((function(){for(var t=0;t<e.length;t++){var n=e[t],r=je(n.name),o=c[r]=c[r]||{geometries:[],materials:[]},s=fe({vertices:n.vertices.xyz,uvs:n.vertices.uvs,indices:n.faces.indices});if(s.name="model_geo_chunk_"+t,o.geometries.push(s),n.texture){(a=me(l[n.texture]?l[n.texture]:l[n.texture]=ve(n.texture,i))).name="model_mtl_chunk_"+t,o.materials.push(a)}else{var a;(a=new F).defines.USE_MAP=!1,a.uniforms.color.value=new u.Color(16777215),a.name="model_mtl_chunk_"+t,o.materials.push(a)}}}))}))).then((function(){return ce((function(){for(var e=0;e<c.length;e++){var t=c[e];if(t){var n=de.mergeBufferGeometries(t.geometries,!0);t.geometries.forEach((function(e){return e.dispose()}));var i=new k(n,t.materials);i.floorIndex=e,i.name="model_floor_"+e,d.push(i)}}}))}))).then((function(){var e=Object.keys(l).map((function(e){return l[e]})),t=Promise.all(e).then((function(){}));return{objects:d,textureReady:t}}))}var xe={OutWindow:function(){this._windowSize=0}};xe.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},xe.OutWindow.prototype.flush=function(){var e=this._pos-this._streamPos;if(0!==e){for(;e--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},xe.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},xe.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},xe.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},xe.OutWindow.prototype.copyBlock=function(e,t){var n=this._pos-e-1;for(n<0&&(n+=this._windowSize);t--;)n>=this._windowSize&&(n=0),this._buffer[this._pos++]=this._buffer[n++],this._pos>=this._windowSize&&this.flush()},xe.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},xe.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},xe.RangeDecoder=function(){},xe.RangeDecoder.prototype.setStream=function(e){this._stream=e},xe.RangeDecoder.prototype.releaseStream=function(){this._stream=null},xe.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},xe.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,n=0,i=e;i--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,n=n<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return n},xe.RangeDecoder.prototype.decodeBit=function(e,t){var n=e[t],i=(this._range>>>11)*n;return(2147483648^this._code)<(2147483648^i)?(this._range=i,e[t]+=2048-n>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=i,this._code-=i,e[t]-=n>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},xe.initBitModels=function(e,t){for(;t--;)e[t]=1024},xe.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},xe.BitTreeDecoder.prototype.init=function(){xe.initBitModels(this._models,1<<this._numBitLevels)},xe.BitTreeDecoder.prototype.decode=function(e){for(var t=1,n=this._numBitLevels;n--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},xe.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,n=1,i=0,r=0;r<this._numBitLevels;++r)n=n<<1|(t=e.decodeBit(this._models,n)),i|=t<<r;return i},xe.reverseDecode2=function(e,t,n,i){for(var r,o=1,s=0,a=0;a<i;++a)o=o<<1|(r=n.decodeBit(e,t+o)),s|=r<<a;return s},xe.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new xe.BitTreeDecoder(8),this._numPosStates=0},xe.LenDecoder.prototype.create=function(e){for(;this._numPosStates<e;++this._numPosStates)this._lowCoder[this._numPosStates]=new xe.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new xe.BitTreeDecoder(3)},xe.LenDecoder.prototype.init=function(){var e=this._numPosStates;for(xe.initBitModels(this._choice,2);e--;)this._lowCoder[e].init(),this._midCoder[e].init();this._highCoder.init()},xe.LenDecoder.prototype.decode=function(e,t){return 0===e.decodeBit(this._choice,0)?this._lowCoder[t].decode(e):0===e.decodeBit(this._choice,1)?8+this._midCoder[t].decode(e):16+this._highCoder.decode(e)},xe.Decoder2=function(){this._decoders=[]},xe.Decoder2.prototype.init=function(){xe.initBitModels(this._decoders,768)},xe.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},xe.Decoder2.prototype.decodeWithMatchByte=function(e,t){var n,i,r=1;do{if(n=t>>7&1,t<<=1,r=r<<1|(i=e.decodeBit(this._decoders,(1+n<<8)+r)),n!==i){for(;r<256;)r=r<<1|e.decodeBit(this._decoders,r);break}}while(r<256);return 255&r},xe.LiteralDecoder=function(){},xe.LiteralDecoder.prototype.create=function(e,t){var n;if(!this._coders||this._numPrevBits!==t||this._numPosBits!==e)for(this._numPosBits=e,this._posMask=(1<<e)-1,this._numPrevBits=t,this._coders=[],n=1<<this._numPrevBits+this._numPosBits;n--;)this._coders[n]=new xe.Decoder2},xe.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},xe.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},xe.Decoder=function(){this._outWindow=new xe.OutWindow,this._rangeDecoder=new xe.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new xe.BitTreeDecoder(4),this._lenDecoder=new xe.LenDecoder,this._repLenDecoder=new xe.LenDecoder,this._literalDecoder=new xe.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new xe.BitTreeDecoder(6),this._posSlotDecoder[1]=new xe.BitTreeDecoder(6),this._posSlotDecoder[2]=new xe.BitTreeDecoder(6),this._posSlotDecoder[3]=new xe.BitTreeDecoder(6)},xe.Decoder.prototype.setDictionarySize=function(e){return!(e<0)&&(this._dictionarySize!==e&&(this._dictionarySize=e,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},xe.Decoder.prototype.setLcLpPb=function(e,t,n){var i=1<<n;return!(e>8||t>4||n>4)&&(this._literalDecoder.create(t,e),this._lenDecoder.create(i),this._repLenDecoder.create(i),this._posStateMask=i-1,!0)},xe.Decoder.prototype.init=function(){var e=4;for(this._outWindow.init(!1),xe.initBitModels(this._isMatchDecoders,192),xe.initBitModels(this._isRep0LongDecoders,192),xe.initBitModels(this._isRepDecoders,12),xe.initBitModels(this._isRepG0Decoders,12),xe.initBitModels(this._isRepG1Decoders,12),xe.initBitModels(this._isRepG2Decoders,12),xe.initBitModels(this._posDecoders,114),this._literalDecoder.init();e--;)this._posSlotDecoder[e].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},xe.Decoder.prototype.decode=function(e,t,n){var i,r,o,s,a,M,u=0,c=0,l=0,d=0,N=0,p=0,h=0;for(this._rangeDecoder.setStream(e),this._outWindow.setStream(t),this.init();n<0||p<n;)if(i=p&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(u<<4)+i))r=this._literalDecoder.getDecoder(p++,h),h=u>=7?r.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(c)):r.decodeNormal(this._rangeDecoder),this._outWindow.putByte(h),u=u<4?0:u-(u<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,u))o=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,u)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(u<<4)+i)&&(u=u<7?9:11,o=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,u)?s=l:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,u)?s=d:(s=N,N=d),d=l),l=c,c=s),0===o&&(o=2+this._repLenDecoder.decode(this._rangeDecoder,i),u=u<7?8:11);else if(N=d,d=l,l=c,o=2+this._lenDecoder.decode(this._rangeDecoder,i),u=u<7?7:10,(a=this._posSlotDecoder[o<=5?o-2:3].decode(this._rangeDecoder))>=4){if(c=(2|1&a)<<(M=(a>>1)-1),a<14)c+=xe.reverseDecode2(this._posDecoders,c-a-1,this._rangeDecoder,M);else if(c+=this._rangeDecoder.decodeDirectBits(M-4)<<4,(c+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===c)break;return!1}}else c=a;if(c>=p||c>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(c,o),p+=o,h=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},xe.Decoder.prototype.setDecoderProperties=function(e){var t,n,i,r,o;return!(e.size<5)&&(n=(t=e.readByte())%9,i=(t=~~(t/9))%5,r=~~(t/5),!!this.setLcLpPb(n,i,r)&&(o=e.readByte(),o|=e.readByte()<<8,o|=e.readByte()<<16,o+=16777216*e.readByte(),this.setDictionarySize(o)))},xe.decompress=function(e,t,n,i){var r=new xe.Decoder;if(!r.setDecoderProperties(e))throw"Incorrect stream properties";if(!r.decode(t,n,i))throw"Error in data stream";return!0},xe.decompressFile=function(e,t){var n,i=new xe.Decoder;if(!i.setDecoderProperties(e))throw"Incorrect stream properties";if(n=e.readByte(),n|=e.readByte()<<8,n|=e.readByte()<<16,n+=16777216*e.readByte(),e.readByte(),e.readByte(),e.readByte(),e.readByte(),!i.decode(e,t,n))throw"Error in data stream";return!0};var Le="undefined"!=typeof Worker&&"undefined"!=typeof Blob,Oe="";if(Le)try{var Ae=new Blob(['\n self.onmessage = function (event) {\n var Packet = event.data;\n var Result = null;\n try {\n if (!Packet.PacketID) {\n throw new Error(\'No incoming id.\');\n }\n if (!Packet.Data) {\n throw new Error(\'No input data.\');\n }\n if (Packet.Type == \'compress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n // C: encoding data\n Result = Util.compressFile(Packet.Data, null, Packet.Level, null);\n } else if (Packet.Type == \'decompress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n var inStream = {\n data: Packet.Data,\n offset: 0,\n readByte () {\n return this.data[this.offset++];\n }\n };\n var partLength = inStream.data.length;\n var outStream = {\n data: [],\n offset: 0,\n writeByte (value) {\n var partIndex = Math.floor(this.offset / partLength);\n if (!this.data[partIndex]) {\n this.data[partIndex] = new Uint8Array(partLength);\n }\n this.data[partIndex][this.offset % partLength] = value;\n this.offset++;\n }\n }\n // C: decoding data\n\n LZMA.decompressFile(inStream, outStream);\n Result = new Uint8Array(outStream.offset)\n for (var i = 0; i < outStream.offset; i++) {\n Result[i] = outStream.data[Math.floor(i / partLength)][i % partLength];\n }\n }\n postMessage({ PacketID: Packet.PacketID, Result, Error: null }, [Result.buffer]);\n } catch (error) {\n postMessage({ PacketID: Packet.PacketID, Error: error.toString() });\n }\n };\n\n\n /*\n Copyright (c) 2011 Juan Mellado\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the "Software"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n /*\n References:\n - "LZMA SDK" by Igor Pavlov\n http://www.7-zip.org/sdk.html\n */\n\n var LZMA = LZMA || {};\n\n LZMA.OutWindow = function(){\n this._windowSize = 0;\n };\n\n LZMA.OutWindow.prototype.create = function(windowSize){\n if ( (!this._buffer) || (this._windowSize !== windowSize) ){\n this._buffer = [];\n }\n this._windowSize = windowSize;\n this._pos = 0;\n this._streamPos = 0;\n };\n\n LZMA.OutWindow.prototype.flush = function(){\n var size = this._pos - this._streamPos;\n if (size !== 0){\n while(size --){\n this._stream.writeByte(this._buffer[this._streamPos ++]);\n }\n if (this._pos >= this._windowSize){\n this._pos = 0;\n }\n this._streamPos = this._pos;\n }\n };\n\n LZMA.OutWindow.prototype.releaseStream = function(){\n this.flush();\n this._stream = null;\n };\n\n LZMA.OutWindow.prototype.setStream = function(stream){\n this.releaseStream();\n this._stream = stream;\n };\n\n LZMA.OutWindow.prototype.init = function(solid){\n if (!solid){\n this._streamPos = 0;\n this._pos = 0;\n }\n };\n\n LZMA.OutWindow.prototype.copyBlock = function(distance, len){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n while(len --){\n if (pos >= this._windowSize){\n pos = 0;\n }\n this._buffer[this._pos ++] = this._buffer[pos ++];\n if (this._pos >= this._windowSize){\n this.flush();\n }\n }\n };\n\n LZMA.OutWindow.prototype.putByte = function(b){\n this._buffer[this._pos ++] = b;\n if (this._pos >= this._windowSize){\n this.flush();\n }\n };\n\n LZMA.OutWindow.prototype.getByte = function(distance){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n return this._buffer[pos];\n };\n\n LZMA.RangeDecoder = function(){\n };\n\n LZMA.RangeDecoder.prototype.setStream = function(stream){\n this._stream = stream;\n };\n\n LZMA.RangeDecoder.prototype.releaseStream = function(){\n this._stream = null;\n };\n\n LZMA.RangeDecoder.prototype.init = function(){\n var i = 5;\n\n this._code = 0;\n this._range = -1;\n\n while(i --){\n this._code = (this._code << 8) | this._stream.readByte();\n }\n };\n\n LZMA.RangeDecoder.prototype.decodeDirectBits = function(numTotalBits){\n var result = 0, i = numTotalBits, t;\n\n while(i --){\n this._range >>>= 1;\n t = (this._code - this._range) >>> 31;\n this._code -= this._range & (t - 1);\n result = (result << 1) | (1 - t);\n\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n }\n\n return result;\n };\n\n LZMA.RangeDecoder.prototype.decodeBit = function(probs, index){\n var prob = probs[index],\n newBound = (this._range >>> 11) * prob;\n\n if ( (this._code ^ 0x80000000) < (newBound ^ 0x80000000) ){\n this._range = newBound;\n probs[index] += (2048 - prob) >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 0;\n }\n\n this._range -= newBound;\n this._code -= newBound;\n probs[index] -= prob >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 1;\n };\n\n LZMA.initBitModels = function(probs, len){\n while(len --){\n probs[len] = 1024;\n }\n };\n\n LZMA.BitTreeDecoder = function(numBitLevels){\n this._models = [];\n this._numBitLevels = numBitLevels;\n };\n\n LZMA.BitTreeDecoder.prototype.init = function(){\n LZMA.initBitModels(this._models, 1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.decode = function(rangeDecoder){\n var m = 1, i = this._numBitLevels;\n\n while(i --){\n m = (m << 1) | rangeDecoder.decodeBit(this._models, m);\n }\n return m - (1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.reverseDecode = function(rangeDecoder){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < this._numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(this._models, m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.reverseDecode2 = function(models, startIndex, rangeDecoder, numBitLevels){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(models, startIndex + m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.LenDecoder = function(){\n this._choice = [];\n this._lowCoder = [];\n this._midCoder = [];\n this._highCoder = new LZMA.BitTreeDecoder(8);\n this._numPosStates = 0;\n };\n\n LZMA.LenDecoder.prototype.create = function(numPosStates){\n for (; this._numPosStates < numPosStates; ++ this._numPosStates){\n this._lowCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n this._midCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n }\n };\n\n LZMA.LenDecoder.prototype.init = function(){\n var i = this._numPosStates;\n LZMA.initBitModels(this._choice, 2);\n while(i --){\n this._lowCoder[i].init();\n this._midCoder[i].init();\n }\n this._highCoder.init();\n };\n\n LZMA.LenDecoder.prototype.decode = function(rangeDecoder, posState){\n if (rangeDecoder.decodeBit(this._choice, 0) === 0){\n return this._lowCoder[posState].decode(rangeDecoder);\n }\n if (rangeDecoder.decodeBit(this._choice, 1) === 0){\n return 8 + this._midCoder[posState].decode(rangeDecoder);\n }\n return 16 + this._highCoder.decode(rangeDecoder);\n };\n\n LZMA.Decoder2 = function(){\n this._decoders = [];\n };\n\n LZMA.Decoder2.prototype.init = function(){\n LZMA.initBitModels(this._decoders, 0x300);\n };\n\n LZMA.Decoder2.prototype.decodeNormal = function(rangeDecoder){\n var symbol = 1;\n\n do{\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.Decoder2.prototype.decodeWithMatchByte = function(rangeDecoder, matchByte){\n var symbol = 1, matchBit, bit;\n\n do{\n matchBit = (matchByte >> 7) & 1;\n matchByte <<= 1;\n bit = rangeDecoder.decodeBit(this._decoders, ( (1 + matchBit) << 8) + symbol);\n symbol = (symbol << 1) | bit;\n if (matchBit !== bit){\n while(symbol < 0x100){\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }\n break;\n }\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.LiteralDecoder = function(){\n };\n\n LZMA.LiteralDecoder.prototype.create = function(numPosBits, numPrevBits){\n var i;\n\n if (this._coders\n && (this._numPrevBits === numPrevBits)\n && (this._numPosBits === numPosBits) ){\n return;\n }\n this._numPosBits = numPosBits;\n this._posMask = (1 << numPosBits) - 1;\n this._numPrevBits = numPrevBits;\n\n this._coders = [];\n\n i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i] = new LZMA.Decoder2();\n }\n };\n\n LZMA.LiteralDecoder.prototype.init = function(){\n var i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i].init();\n }\n };\n\n LZMA.LiteralDecoder.prototype.getDecoder = function(pos, prevByte){\n return this._coders[( (pos & this._posMask) << this._numPrevBits)\n + ( (prevByte & 0xff) >>> (8 - this._numPrevBits) )];\n };\n\n LZMA.Decoder = function(){\n this._outWindow = new LZMA.OutWindow();\n this._rangeDecoder = new LZMA.RangeDecoder();\n this._isMatchDecoders = [];\n this._isRepDecoders = [];\n this._isRepG0Decoders = [];\n this._isRepG1Decoders = [];\n this._isRepG2Decoders = [];\n this._isRep0LongDecoders = [];\n this._posSlotDecoder = [];\n this._posDecoders = [];\n this._posAlignDecoder = new LZMA.BitTreeDecoder(4);\n this._lenDecoder = new LZMA.LenDecoder();\n this._repLenDecoder = new LZMA.LenDecoder();\n this._literalDecoder = new LZMA.LiteralDecoder();\n this._dictionarySize = -1;\n this._dictionarySizeCheck = -1;\n\n this._posSlotDecoder[0] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[1] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[2] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[3] = new LZMA.BitTreeDecoder(6);\n };\n\n LZMA.Decoder.prototype.setDictionarySize = function(dictionarySize){\n if (dictionarySize < 0){\n return false;\n }\n if (this._dictionarySize !== dictionarySize){\n this._dictionarySize = dictionarySize;\n this._dictionarySizeCheck = Math.max(this._dictionarySize, 1);\n this._outWindow.create( Math.max(this._dictionarySizeCheck, 4096) );\n }\n return true;\n };\n\n LZMA.Decoder.prototype.setLcLpPb = function(lc, lp, pb){\n var numPosStates = 1 << pb;\n\n if (lc > 8 || lp > 4 || pb > 4){\n return false;\n }\n\n this._literalDecoder.create(lp, lc);\n\n this._lenDecoder.create(numPosStates);\n this._repLenDecoder.create(numPosStates);\n this._posStateMask = numPosStates - 1;\n\n return true;\n };\n\n LZMA.Decoder.prototype.init = function(){\n var i = 4;\n\n this._outWindow.init(false);\n\n LZMA.initBitModels(this._isMatchDecoders, 192);\n LZMA.initBitModels(this._isRep0LongDecoders, 192);\n LZMA.initBitModels(this._isRepDecoders, 12);\n LZMA.initBitModels(this._isRepG0Decoders, 12);\n LZMA.initBitModels(this._isRepG1Decoders, 12);\n LZMA.initBitModels(this._isRepG2Decoders, 12);\n LZMA.initBitModels(this._posDecoders, 114);\n\n this._literalDecoder.init();\n\n while(i --){\n this._posSlotDecoder[i].init();\n }\n\n this._lenDecoder.init();\n this._repLenDecoder.init();\n this._posAlignDecoder.init();\n this._rangeDecoder.init();\n };\n\n LZMA.Decoder.prototype.decode = function(inStream, outStream, outSize){\n var state = 0, rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0, nowPos64 = 0, prevByte = 0,\n posState, decoder2, len, distance, posSlot, numDirectBits;\n\n this._rangeDecoder.setStream(inStream);\n this._outWindow.setStream(outStream);\n\n this.init();\n\n while(outSize < 0 || nowPos64 < outSize){\n posState = nowPos64 & this._posStateMask;\n\n if (this._rangeDecoder.decodeBit(this._isMatchDecoders, (state << 4) + posState) === 0){\n decoder2 = this._literalDecoder.getDecoder(nowPos64 ++, prevByte);\n\n if (state >= 7){\n prevByte = decoder2.decodeWithMatchByte(this._rangeDecoder, this._outWindow.getByte(rep0) );\n }else{\n prevByte = decoder2.decodeNormal(this._rangeDecoder);\n }\n this._outWindow.putByte(prevByte);\n\n state = state < 4? 0: state - (state < 10? 3: 6);\n\n }else{\n\n if (this._rangeDecoder.decodeBit(this._isRepDecoders, state) === 1){\n len = 0;\n if (this._rangeDecoder.decodeBit(this._isRepG0Decoders, state) === 0){\n if (this._rangeDecoder.decodeBit(this._isRep0LongDecoders, (state << 4) + posState) === 0){\n state = state < 7? 9: 11;\n len = 1;\n }\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG1Decoders, state) === 0){\n distance = rep1;\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG2Decoders, state) === 0){\n distance = rep2;\n }else{\n distance = rep3;\n rep3 = rep2;\n }\n rep2 = rep1;\n }\n rep1 = rep0;\n rep0 = distance;\n }\n if (len === 0){\n len = 2 + this._repLenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 8: 11;\n }\n }else{\n rep3 = rep2;\n rep2 = rep1;\n rep1 = rep0;\n\n len = 2 + this._lenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 7: 10;\n\n posSlot = this._posSlotDecoder[len <= 5? len - 2: 3].decode(this._rangeDecoder);\n if (posSlot >= 4){\n\n numDirectBits = (posSlot >> 1) - 1;\n rep0 = (2 | (posSlot & 1) ) << numDirectBits;\n\n if (posSlot < 14){\n rep0 += LZMA.reverseDecode2(this._posDecoders,\n rep0 - posSlot - 1, this._rangeDecoder, numDirectBits);\n }else{\n rep0 += this._rangeDecoder.decodeDirectBits(numDirectBits - 4) << 4;\n rep0 += this._posAlignDecoder.reverseDecode(this._rangeDecoder);\n if (rep0 < 0){\n if (rep0 === -1){\n break;\n }\n return false;\n }\n }\n }else{\n rep0 = posSlot;\n }\n }\n\n if (rep0 >= nowPos64 || rep0 >= this._dictionarySizeCheck){\n return false;\n }\n\n this._outWindow.copyBlock(rep0, len);\n nowPos64 += len;\n prevByte = this._outWindow.getByte(0);\n }\n }\n\n this._outWindow.flush();\n this._outWindow.releaseStream();\n this._rangeDecoder.releaseStream();\n\n return true;\n };\n\n LZMA.Decoder.prototype.setDecoderProperties = function(properties){\n var value, lc, lp, pb, dictionarySize;\n\n if (properties.size < 5){\n return false;\n }\n\n value = properties.readByte();\n lc = value % 9;\n value = ~~(value / 9);\n lp = value % 5;\n pb = ~~(value / 5);\n\n if ( !this.setLcLpPb(lc, lp, pb) ){\n return false;\n }\n\n dictionarySize = properties.readByte();\n dictionarySize |= properties.readByte() << 8;\n dictionarySize |= properties.readByte() << 16;\n dictionarySize += properties.readByte() * 16777216;\n\n return this.setDictionarySize(dictionarySize);\n };\n\n LZMA.decompress = function(properties, inStream, outStream, outSize){\n var decoder = new LZMA.Decoder();\n\n if ( !decoder.setDecoderProperties(properties) ){\n throw "Incorrect stream properties";\n }\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n\n LZMA.decompressFile = function(inStream, outStream){\n var decoder = new LZMA.Decoder(), outSize;\n\n if ( !decoder.setDecoderProperties(inStream) ){\n throw "Incorrect stream properties";\n }\n\n outSize = inStream.readByte();\n outSize |= inStream.readByte() << 8;\n outSize |= inStream.readByte() << 16;\n outSize += inStream.readByte() * 16777216;\n\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n'],{type:"text/javascript"});Oe=URL.createObjectURL(Ae)}catch(e){}var Ee=function(){function e(){var e=this;if(this.callCounter=0,this.requests=[],!Le)throw new Error("LZMACaller cannot work in this broswer.");var t=this.worker=new Worker(Oe);t.onmessage=function(t){var n,i,r=t.data,o=r.PacketID,s=r.Result,a=r.Error;a?null===(i=e.requests[o])||void 0===i||i.onCompleteCallback(new Error(a)):null===(n=e.requests[o])||void 0===n||n.onCompleteCallback(null,s),delete e.requests[o]},t.onerror=function(e){return console.error(e)}}return e.prototype.compress=function(e,t,n){var i=++this.callCounter;this.requests[i]={onCompleteCallback:n},this.worker.postMessage({Type:"compress",PacketID:i,Data:e,Level:t},[e.buffer])},e.prototype.decompress=function(e,t){var n=++this.callCounter;this.requests[n]={onCompleteCallback:t},this.worker.postMessage({Type:"decompress",PacketID:n,Data:e},[e.buffer])},e.prototype.terminate=function(){this.worker.terminate()},e.support=Le,e}();function Ce(e){return Array.prototype.reduce.call(e,(function(e,t,n){return e|t<<8*n}),0)}function ke(e){for(var t=new Uint8Array(e),n=Ce(t.slice(0,4)),i=[],r=[],o=4+4*n,s=0;s<n;s++)r[s]=Ce(t.slice(4+4*s,8+4*s)),i[s]=s===n-1?t.subarray(o,o+r[s]):t.slice(o,o+r[s]),o+=r[s];return Ee.support?function(e){for(var t=[],n=e.length,i=function(n){t.push(new Promise((function(t,i){var r=new Ee;r.decompress(e[n],(function(e,n){if(r.terminate(),e)return i(e);t(n)}))})))},r=0;r<n;r++)i(r);return Promise.all(t)}(i):Promise.resolve(function(e){for(var t,n=[],i=e.length,r=function(i){var r={data:e[i],offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,s={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/o);this.data[t]||(this.data[t]=new Uint8Array(o)),this.data[t][this.offset%o]=e,this.offset++}};xe.decompressFile(r,s),t=new Uint8Array(s.offset);for(var a=0;a<s.offset;a++)t[a]=s.data[Math.floor(a/o)][a%o];n.push(t)},o=0;o<i;o++)r(o);return n}(i))}function Ue(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:\/\//i.test(e)}var Se=c.parse("\nmessage Model {\n repeated Mesh meshes = 1;\n}\nmessage Mesh {\n required string name = 1;\n repeated Chunk chunks = 2;\n repeated Matrix matrix = 3;\n}\nmessage Matrix {\n repeated float elements = 1;\n}\nmessage Chunk {\n required Geometry geometry = 2;\n repeated Material material = 3;\n}\nmessage Geometry {\n required Position position = 1;\n optional UV uv = 2;\n optional UV uv2 = 3;\n required Normal normal = 4;\n repeated Group groups = 5;\n}\nmessage Position {\n repeated float array = 1[packed=true];\n}\nmessage UV {\n repeated float array = 1[packed=true];\n}\nmessage Normal {\n repeated float array = 1[packed=true];\n}\nmessage Group {\n required uint32 start = 1;\n required uint32 count = 2;\n required uint32 materialIndex = 3;\n}\nmessage Material {\n optional Color kd = 1;\n optional Color ks = 2;\n optional Color ke = 3;\n optional string mapkd = 4;\n optional string mapks = 5;\n optional string mapke = 6;\n optional string norm = 7;\n optional string mapbump = 8;\n optional string bump = 9;\n optional string mapd = 10;\n optional float ns = 11;\n optional float d = 12;\n optional float tr = 13;\n optional string mapkdrepeat = 14;\n}\nmessage Color {\n repeated float rgb = 1;\n}\n").root.lookup("Model");var be={};function Qe(e,t,n){var i,r=[],o=[];function s(e,i,r){var s=function(e){var t=e.position,n=e.normal,i=e.uv,r=e.uv2,o=e.groups,s=new u.BufferGeometry;return s.setAttribute("position",new u.BufferAttribute(new Float32Array(t.array),3)),n&&s.setAttribute("normal",new u.BufferAttribute(new Float32Array(n.array),3)),i&&s.setAttribute("uv",new u.BufferAttribute(new Float32Array(i.array),2)),r&&s.setAttribute("uv2",new u.BufferAttribute(new Float32Array(r.array),2)),o.forEach((function(e){return s.addGroup(e.start,e.count,e.materialIndex)})),s}(e);s.applyMatrix4(r);var a=new u.Vector3,M=new u.Quaternion,c=new u.Vector3;r.decompose(a,M,c),c.x*c.y*c.z<0&&s.attributes.normal&&s.attributes.position&&s.attributes.uv&&function(e){for(var t=[0,0,0],n=0;n<e.attributes.normal.array.length/9;n++)t[0]=e.attributes.normal.array[9*n],t[1]=e.attributes.normal.array[9*n+1],t[2]=e.attributes.normal.array[9*n+2],e.attributes.normal.array[9*n]=e.attributes.normal.array[9*n+6],e.attributes.normal.array[9*n+1]=e.attributes.normal.array[9*n+7],e.attributes.normal.array[9*n+2]=e.attributes.normal.array[9*n+8],e.attributes.normal.array[9*n+6]=t[0],e.attributes.normal.array[9*n+7]=t[1],e.attributes.normal.array[9*n+8]=t[2];for(n=0;n<e.attributes.position.array.length/9;n++)t[0]=e.attributes.position.array[9*n],t[1]=e.attributes.position.array[9*n+1],t[2]=e.attributes.position.array[9*n+2],e.attributes.position.array[9*n]=e.attributes.position.array[9*n+6],e.attributes.position.array[9*n+1]=e.attributes.position.array[9*n+7],e.attributes.position.array[9*n+2]=e.attributes.position.array[9*n+8],e.attributes.position.array[9*n+6]=t[0],e.attributes.position.array[9*n+7]=t[1],e.attributes.position.array[9*n+8]=t[2];for(n=0;n<e.attributes.uv.array.length/6;n++)t[0]=e.attributes.uv.array[6*n],t[1]=e.attributes.uv.array[6*n+1],e.attributes.uv.array[6*n]=e.attributes.uv.array[6*n+4],e.attributes.uv.array[6*n+1]=e.attributes.uv.array[6*n+5],e.attributes.uv.array[6*n+4]=t[0],e.attributes.uv.array[6*n+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}(s);var l=i.map((function(e){var i=function(e,t,n){var i={sourceFile:null,needsUpdate:!0,wrapS:u.RepeatWrapping,wrapT:u.RepeatWrapping};function r(e,r){return be[e]?Promise.resolve(be[e]):new Promise((function(o,s){var a=new ie;Ue(e)||(e=t+e),-1!==(e=(e=e.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/")).split("?")[0]).indexOf(".png")&&(e=e.split(".png")[0]+".png"),-1!==e.indexOf(".jpg")&&(e=e.split(".jpg")[0]+".jpg"),0===e.indexOf("//")&&(e="https:"+e),e=ne(e,Object.assign({key:"texture"},n,{size:64})),a.load(e,(function(t){var n=new u.Texture(t),s=n.dispose;n.dispose=function(){s.call(n),/^blob\:/.test(t.src)&&URL.revokeObjectURL(t.src)},r&&Object.assign(n.repeat,r),Object.assign(n,i,{sourceFile:e}),n.updateMatrix(),be[e]=n,o(n)}),f,(function(e){return s(e.error)}))}))}var o,s=[],a=new F,M=a.uniforms;if(e.hasOwnProperty("kd")&&(M.diffuse.value=(new u.Color).fromArray(e.kd.rgb)),e.hasOwnProperty("mapkd")){var c=void 0;if(e.mapkdrepeat){var l=e.mapkdrepeat.split(/\s+/).map((function(e){return Number(e)})),d=l[0],N=l[1];c=new u.Vector2(d,N)}s.push(r(e.mapkd,c).then((function(e){M.map.value=e,M.exposure.value=4.3,M.uvTransform.value=e.matrix})).catch((function(e){})))}return e.hasOwnProperty("ks")&&(M.specular.value=(new u.Color).fromArray(e.ks.rgb)),e.hasOwnProperty("mapks")&&s.push(r(e.mapks).then((function(e){M.specularMap.value=e})).catch((function(e){}))),e.hasOwnProperty("ke")&&(M.emissive.value=(new u.Color).fromArray(e.ke.rgb)),e.hasOwnProperty("mapke")&&s.push(r(e.mapke).then((function(e){M.emissiveMap.value=e})).catch((function(e){}))),e.hasOwnProperty("norm")&&s.push(r(e.norm).then((function(e){M.normalMap.value=e})).catch((function(e){}))),e.hasOwnProperty("mapbump")&&s.push(r(e.mapbump).then((function(e){M.bumpMap.value=e})).catch((function(e){}))),e.hasOwnProperty("bump")&&s.push(r(e.bump).then((function(e){M.bumpMap.value=e})).catch((function(e){}))),e.hasOwnProperty("ns")&&(M.shininess.value=e.ns),e.hasOwnProperty("d")&&(o=e.d)>=0&&o<1&&(M.originOpacity.value=o),e.hasOwnProperty("tr")&&(o=1-e.tr)>=0&&o<1&&(M.originOpacity.value=o),M.originOpacity.value<1&&(a.transparent=!0),{material:a,textureReady:Promise.all(s).then((function(){}))}}(e,t,n),r=i.material,s=i.textureReady;return o.push(s),r}));return new k(s,l)}return(i=e,Se.decode(i)).meshes.forEach((function(e){var t=e.name,n=e.chunks,i=e.matrix;"Ceiling"!==t&&"CeilingDrop"!==t&&i.map((function(e){var i,o=new u.Matrix4;if(o.elements=e.elements,1===n.length){var a=n[0],M=a.geometry,c=a.material;i=s(M,c,o)}else i=new U,n.forEach((function(e,t){var n=s(e.geometry,e.material,o);n.name="chunk"+t,i.add(n)}));i.floorIndex=0,i.name=t,r.push(i)}))})),{objects:r,textureReady:Promise.all(o).then((function(){}))}}function Ye(){Object.keys(be).forEach((function(e){be[e].dispose(),delete be[e]}))}function Pe(e){return e.$$FIVE_EVENT$$||(e.$$FIVE_EVENT$$={}),e.$$FIVE_EVENT$$}var _e=function(){function e(){}return e.prototype.hasListener=function(e){var t=Pe(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,n){var i=this,r=Pe(this);return r[e]||(r[e]=[]),r[e].push([t,n||!1]),function(){return i.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var n,i=Pe(this);if(i[e]||(i[e]=[]),void 0!==t){for(var r=0;r<i[e].length&&i[e][r][0]!==t;r++);r<i[e].length&&i[e].splice(r,1)}else i[e].length=0}else(n=this).$$FIVE_EVENT$$||delete n.$$FIVE_EVENT$$},e.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var i=!1,r=Pe(this),o=r[e]||[],s=0,a=o.slice();s<a.length;s++){var M=a[s],u=M[0],c=M[1],l=void 0!==c&&c,d=u.apply(void 0,t);l&&this.off(e,u),!1===d&&(i=!0)}return i},e}();function Be(e){var n;return new((n=u.Triangle).bind.apply(n,t.__spreadArray([void 0],e.map((function(e){return new u.Vector3(e.x,e.y,e.z)})))))}var Re={at3d:function(e,t){return Promise.resolve().then((function(){return te.async(e.file,{responseType:"arraybuffer"})})).then((function(e){return ke(e)})).then((function(e){return ce((function(){for(var t=[],n=0,i=e;n<i.length;n++){var r=i[n],o=we.decode(r);t.push.apply(t,o.chunks)}return t}))})).then((function(n){return ce((function(){return Ie(n,e.textureBase,e.textures,t)}))}))},pbm:function(e,t){return Promise.resolve().then((function(){return te.async(e.file,{responseType:"arraybuffer"})})).then((function(e){return ce((function(){var t=new Uint8Array(e),n=we.decode(t);return[].concat(n.chunks)}))})).then((function(n){return ce((function(){return Ie(n,e.textureBase,e.textures,t)}))}))},dome:function(e,t){return Promise.resolve().then((function(){return Ye()})).then((function(){return te.async(e.file,{responseType:"arraybuffer"})})).then((function(n){return Qe(new Uint8Array(n),e.textureBase,t)}))},domez:function(e,t){return Promise.resolve().then((function(){return Ye()})).then((function(){return te.async(e.file,{responseType:"arraybuffer"})})).then((function(e){return ke(e)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),n=new Uint8Array(t),i=0;return e.forEach((function(e){n.set(e,i),i+=e.length})),n})).then((function(n){return Qe(n,e.textureBase,t)}))}},Ve=function(e){function n(){var t=e.call(this)||this;return t.empty=!1,t.name="model",t.loaded=!1,t.bvhs=[],t.bounding=new u.Box3,t.shownFloor=null,t.floorLength=0,t}return t.__extends(n,e),Object.defineProperty(n.prototype,"shownfloor",{get:function(){return this.shownFloor},enumerable:!1,configurable:!0}),n.prototype.getEdges=function(e){var t;void 0===e&&(e=30/180*Math.PI);for(var n=Math.cos(e),i=[],r=0,o=this.children;r<o.length;r++){var s=o[r];if(s instanceof k){for(var a={},M=["a","b","c"],c=de.mergeVertices(s.geometry),l=c.getAttribute("position").array,d=(null===(t=c.getIndex())||void 0===t?void 0:t.array)||[],N=[],p=[],h=0,D=l.length;h<D;h+=3)N.push(new u.Vector3(l[h],l[h+1],l[h+2]));for(h=0,D=d.length;h<D;h+=3){var g=d[h],y=d[h+1],T=d[h+2],z=(new u.Vector3).crossVectors(N[y].clone().sub(N[g]),N[T].clone().sub(N[g])).normalize();p.push({a:g,b:y,c:T,normal:z})}for(h=0,D=p.length;h<D;h++)for(var j=p[h],f=0;f<3;f++){var v=j[M[f]],m=j[M[(f+1)%3]],w=[Math.min(v,m),Math.max(v,m)];void 0===a[I=w[0]+"-"+w[1]]?a[I]={index1:w[0],index2:w[1],face1:h}:a[I].face2=h}for(var I in a){var x=a[I];if(void 0===x.face2||p[x.face1].normal.dot(p[x.face2].normal)<=n){var L=N[x.index1],O=N[x.index2];i.push(new u.Line3(L,O))}}c.dispose(),N.length=0,p.length=0}}return i},n.prototype.hasFloors=function(){return this.hasFloors_()},n.prototype.hasFloors_=function(){var e=[];return this.traverse((function(t){t instanceof k&&(e[t.floorIndex]=!0)})),e.length},n.prototype.show=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=this.shownFloor,r=null,o=null!==(e=t[1])&&void 0!==e?e:.1,s=0!==t.length;this.shownFloor=r=s?t[0]:null,this.traverse((function(e){e instanceof k&&e.material.forEach((function(t){null===r||r===e.floorIndex?t.opacity=1:t.opacity=o}))})),i!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0},n.prototype.intersectRaycaster=function(e,t){var n=e.ray,i=n.origin,r=n.direction;if(j(t))if(j(this.shownFloor)){var o=this.floorLength;t=[];for(var s=0;s<o;s++)t.push(s)}else t=[this.shownFloor];var a=[],M=[];Array.isArray(t)?M.push.apply(M,t):M.push(t);for(var c=function(t){var n=l.bvhs&&l.bvhs[t];if(n){(o=n.intersectRay(i,r,!0).map((function(e){var t=e.intersectionPoint,n=e.triangle,r=new u.Vector3(t.x,t.y,t.z);return{point:r,face:{normal:Be(n).getNormal(new u.Vector3)},distance:i.distanceTo(r)}}))).length&&a.push.apply(a,o)}else{var o,s=[];l.traverse((function(e){e instanceof k&&e.floorIndex===t&&s.push(e)})),(o=e.intersectObjects(s).map((function(e){var t=e.face?{normal:e.face.normal}:void 0;return{point:e.point,face:t,distance:e.distance}}))).length&&a.push.apply(a,o)}},l=this,d=0,N=M;d<N.length;d++){c(N[d])}return a.filter((function(t){var n=t.distance;return n<=e.far&&n>=e.near})).sort((function(e,t){return e.distance-t.distance}))},n.prototype.buildBVH=function(){var e=this,t=[];this.traverse((function(e){e instanceof k&&(t[e.floorIndex]=t[e.floorIndex]||[],t[e.floorIndex].push(e.geometry))}));var n=t.map((function(e){var t=e.reduce((function(e,t){return e+(t.index?t.index.array.length:t.attributes.position.array.length)}),0),n=new Float32Array(3*t);return e.reduce((function(e,t){for(var i=t.index?t.index.array:null,r=t.attributes.position.array,o=i?i.length:r.length/3,s=0;s<o;s++){var a=3*(e+s),M=i?3*i[s]:3*s;n[a+0]=r[M+0],n[a+1]=r[M+1],n[a+2]=r[M+2]}return e+o}),0),new $(n,5)}));return this.bvhs=[],Promise.all(n.map((function(e){return new Promise((function(t){return e.splitNode(t)}))}))).then((function(){e.bvhs=n,e.bvhs.loaded=!0,e.emit("bvhLoaded")}))},n.prototype.load=function(e,t){var n=this;if(void 0===t&&(t={}),!0===this.loaded)throw new Error("model 只能被 load 一次");var i=Re[function(e,t){void 0===t&&(t=[]);var n=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(e);if(n)for(var i=String(n[1]).trim().split("."),r=0,o=t;r<o.length;r++){var s=o[r];if(i.indexOf(s)>=0)return s}}(e.file,Object.keys(Re))||""];if(!i)throw new Error("文件类型错误");i(e,t).then((function(e){for(var t=e.objects,i=e.textureReady,r=[],o=0,s=t;o<s.length;o++){(l=s[o]).traverse((function(e){e instanceof k&&(e.geometry.computeBoundingBox(),e.geometry.computeBoundingSphere(),r.push(e.geometry.boundingBox))})),n.add(l)}n.floorLength=n.hasFloors_(),n.emit("geometryLoaded"),i.then((function(){return n.emit("materialLoaded")})),n.bounding=function(e){for(var t=new u.Box3,n=0,i=e;n<i.length;n++){var r=i[n];t.union(r)}return t}(r);for(var a=n.bounding.getCenter(new u.Vector3),M=0,c=t;M<c.length;M++){var l;(l=c[M]).traverse((function(e){e instanceof k&&e.material.forEach((function(e){e.uniforms.modelCenter.value=a}))}))}r.length=0,i.then((function(){n.emit("loaded"),n.loaded=!0}))})).catch((function(e){n.emit("error",e)}))},n.prototype.dispose=function(){for(this.off(),this.disposeGeometry(),this.disposeMaterial();this.children.length;)this.remove(this.children[0]);this.bvhs.length=0,delete this.bvhs.loaded},n}(U);function Fe(e){switch(e.getError()){case e.INVALID_ENUM:return new Error("webgl error: INVALID_ENUM");case e.INVALID_VALUE:return new Error("webgl error: INVALID_VALUE");case e.INVALID_OPERATION:return new Error("webgl error: INVALID_OPERATION");case e.INVALID_FRAMEBUFFER_OPERATION:return new Error("webgl error: INVALID_FRAMEBUFFER_OPERATION");case e.OUT_OF_MEMORY:return new Error("webgl error: OUT_OF_MEMORY");case e.CONTEXT_LOST_WEBGL:return new Error("webgl error: CONTEXT_LOST_WEBGL");default:return null}}Object.assign(Ve.prototype,{on:_e.prototype.on,once:_e.prototype.once,off:_e.prototype.off,emit:_e.prototype.emit,hasListener:_e.prototype.hasListener});var qe=document.head||document.getElementsByTagName("head")[0],He={};var Ge=l.default.Tween,We=l.default.Easing;function Ze(e,t,n,i){void 0===i&&(i=We.Linear.None);var r=[],o=[],s=[],a=[],M=Object.assign(new Ge(e).to(t,n).easing(i),{completed:!1,onCancel:function(e){return r.push(e),M},destroy:function(){if(M.stop(),Object.assign(this,{_onStartCallback:null,_onUpdateCallback:null,_onCompleteCallback:null,_onStopCallback:null}),!M.completed)for(var e=0,t=r;e<t.length;e++){(0,t[e])()}r.length=0,u()}});Object.assign(M,{onStart:function(e){return o.push(e),M},onUpdate:function(e){return s.push(e),M},onComplete:function(e){return a.push(e),M},_onStartCallback:function(e){for(var t=0,n=o;t<n.length;t++){(0,n[t])(e)}},_onUpdateCallback:function(e,t){for(var n=0,i=s;n<i.length;n++){(0,i[n])(e,t)}1===t&&0===M._repeat&&(M.completed=!0)},_onCompleteCallback:function(e){for(var t=0,n=a;t<n.length;t++){(0,n[t])(e)}}}),O((function(){return M.start()}));var u=A((function(e){!1===M.update(e)&&u()}));return M}function Je(e,t){return Ze({progress:0},{progress:1},e,t)}var Xe=2*Math.PI;function Ke(e){return(e%Xe+Xe)%Xe}var $e=Math.PI,et=2*$e;function tt(e,t,n){return e+(t-e)*n}function nt(e,t,n){return e=Ke(e),tt((t=Ke(t))-e>$e?e+et:e-t>$e?e-et:e,t,n)}function it(e,t,n){if(e===t)return t;var i=t-e;return Math.abs(i)<=n?t:e+(i>0?1:-1)*n}function rt(e){return"number"==typeof e}function ot(e){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var t={uuid:m(),initial:{mode:"Panorama",latitude:0,longitude:0,panoIndex:0,fov:80},observers:[]},n=e.base_url||"",i=function(t,i){var r,o;if(Ue(t))return t;var s=(null===(r=e.panorama)||void 0===r?void 0:r.base_url)||n||"",a=(null===(o=e.panorama)||void 0===o?void 0:o.pano_high_cube_base_url)||"";return a||s?s+a+i+"/"+t:n+t},r=function(e){return Ue(e)?e:n+e},o=function(e,t){return Ue(e)?e:t?t+e:n+e};if(e.initial&&(rt(e.initial.latitude)&&(t.initial.latitude=e.initial.latitude),rt(e.initial.longitude)?t.initial.longitude=e.initial.longitude:rt(e.initial.heading)&&(t.initial.longitude=-(360*(e.initial.heading-.25)+90)/180*Math.PI),rt(e.initial.fov)&&(t.initial.fov=e.initial.fov),rt(e.initial.panoIndex)?t.initial.panoIndex=e.initial.panoIndex:rt(e.initial.pano_index)?t.initial.panoIndex=e.initial.pano_index:rt(e.initial.pano)&&(t.initial.panoIndex=e.initial.pano)),e.model){var s={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof e.model.bvh?s.bvh=e.model.bvh:"boolean"==typeof e.bvh&&(s.bvh=e.bvh),"boolean"==typeof e.model.async?s.async=e.model.async:"boolean"==typeof e.modelAsync&&(s.async=e.modelAsync),e.model.file?s.file=r(e.model.file):e.model.file_url&&(s.file=r(e.model.file_url)),e.model.textureBase?s.textureBase=e.model.textureBase:e.model.material_base_url&&(s.textureBase=e.model.material_base_url),Array.isArray(e.model.textures)?s.textures=e.model.textures.map((function(e){return o(e,s.textureBase)})):Array.isArray(e.model.material_textures)&&(s.textures=e.model.material_textures.map((function(e){return o(e,s.textureBase)}))),s.file&&(t.model=s)}if(e.observers&&Array.isArray(e.observers)){var a=[];e.panorama&&(Array.isArray(e.panorama)?a=e.panorama:Array.isArray(e.panorama.list)?a=e.panorama.list:Array.isArray(e.panorama.info)&&(a=e.panorama.info));for(var M=0;M<e.observers.length;M++){var c={},l=e.observers[M];if(!l)break;var d=a[M]||{};l=Object.assign({},l,d,{active:!1!==l.active&&!1!==d.active}),c.panoIndex=M,c.active=!1!==l.active,c.loadable=!0===l.loadable,c.images={up:i(l.images?l.images.up:l.up,M),down:i(l.images?l.images.down:l.down,M),right:i(l.images?l.images.right:l.right,M),left:i(l.images?l.images.left:l.left,M),front:i(l.images?l.images.front:l.front,M),back:i(l.images?l.images.back:l.back,M)};var N=l.images?l.images.depth:l.depth;N&&(c.images.depth=i(N,M));var p=l.images?l.images.tiles:l.tiles;if(p&&(c.images.tiles=i(p,M)),l.position instanceof u.Vector3)c.position=l.position.clone();else{if(!Array.isArray(l.position))break;c.position=(new u.Vector3).fromArray(l.position)}if(l.standingPosition instanceof u.Vector3)c.standingPosition=l.standingPosition.clone();else if(Array.isArray(l.standingPosition))c.standingPosition=(new u.Vector3).fromArray(l.standingPosition);else if(l.standing_position instanceof u.Vector3)c.standingPosition=l.standing_position.clone();else{if(!Array.isArray(l.standing_position))break;c.standingPosition=(new u.Vector3).fromArray(l.standing_position)}if(l.quaternion instanceof u.Quaternion)c.quaternion=l.quaternion.clone();else if(Array.isArray(l.quaternion))c.quaternion=(new u.Quaternion).fromArray(l.quaternion);else{if(!l.quaternion)break;var h=l.quaternion,D=h.x,g=h.y,y=h.z,T=h.w;c.quaternion=new u.Quaternion(D,g,y,T)}if(Array.isArray(l.accessibleNodes)?c.accessibleNodes=l.accessibleNodes.slice():Array.isArray(l.accessible_nodes)&&(c.accessibleNodes=l.accessible_nodes.slice()),Array.isArray(l.visibleNodes)?c.visibleNodes=l.visibleNodes.slice():Array.isArray(l.visible_nodes)&&(c.visibleNodes=l.visible_nodes.slice()),rt(l.floorIndex)?c.floorIndex=l.floorIndex:rt(l.floor_index)?c.floorIndex=l.floor_index:c.floorIndex=0,l.video){var z={};"string"==typeof l.video.source&&(z.source=l.video.source),l.video.matrix instanceof u.Matrix4?z.matrix=l.video.matrix.clone():Array.isArray(l.video.matrix)&&(z.matrix=(new u.Matrix4).fromArray(l.video.matrix)),l.video.size instanceof u.Vector2?z.size=l.video.size.clone():Array.isArray(l.video.size)&&(z.size=(new u.Vector2).fromArray(l.video.size)),z.source&&z.matrix&&z.size&&(c.video=z)}t.observers[M]=c}}for(var j=0,f=t.observers;j<f.length;j++){if(!(c=f[j]).accessibleNodes){c.accessibleNodes=[];for(var v=0;v<t.observers.length;v++)t.observers[v]!==c&&c.accessibleNodes.push(v)}if(!c.visibleNodes){c.visibleNodes=[];for(v=0;v<t.observers.length;v++)t.observers[v]!==c&&c.visibleNodes.push(v)}}return Object.freeze(t),t}var st=function(e){return Number(e)};function at(e,t,n){var i;void 0===t&&(t=st),void 0===n&&(n=!1);for(var r,o=1/0,s=0,a=e;s<a.length;s++){var M=a[s],u=t(M);u<=o&&(r=(i=[M,u])[0],o=i[1])}return n?[r,o]:r}var Mt=document.mozFullScreen?"DOMMouseScroll":"mousewheel",ut=!!window.addEventListener,ct=!!window.attachEvent;function lt(e,t){var n=function(e,t){return t.__mouseWheelWrapper=function(n){if(n=n||window.event,ut&&n.preventDefault(),ct&&(n.returnValue=!1),"DOMMouseScroll"==Mt||"mousewheel"==Mt){var i=n.wheelDelta;n.delta=i?i/120:-(n.delta||0)/3}t.call(e,n)}}(e,t);ut?e.addEventListener(Mt,n,!1):ct&&e.attachEvent("on"+Mt,n)}function dt(e,t,n){var i=t.offsetWidth,r=t.offsetHeight,o=t.getBoundingClientRect(),s=o.top,a=o.left;return n&&(a+=i*n.left,s+=r*(1-n.bottom-n.height),i*=n.width,r*=n.height),new u.Vector2((e.x-a)/i*2-1,-(e.y-s)/r*2+1)}var Nt=navigator.userAgent.toLowerCase(),pt=document.createElement("canvas");!function(){try{!window.WebGLRenderingContext||!pt.getContext("webgl")&&pt.getContext("experimental-webgl")}catch(e){return!1}}();var ht=Nt.match(/android/i)||Nt.match(/webos/i)||Nt.match(/ipad|iphone|ipod/i)||Nt.match(/iemobile/i)||Nt.match(/opera mini/i)||Nt.match(/blackberry/i)||Nt.match(/windows phone/i),Dt=function(e){function n(t){var i=e.call(this)||this,r=n.parseArgs(t);return i.ready=!1,i.destroyed=!1,i.ident=r.ident,i.scene=r.scene,i.helper=r.helper,i.camera=r.camera,i.renderer=r.renderer,i.scissor=r.scissor,i.element=r.element,i.model=r.model,i.work=r.work,i.imageOptions=r.imageOptions,i.videoTexture=r.videoTexture,i.needsRender=!0,i.preventPanGesture=!1,i.preventTapGesture=!1,i.preventPinchGesture=!1,i.currentPanoIndex=r.panoIndex,j(i.work.observers[i.currentPanoIndex])&&(i.currentPanoIndex=0),i.eventUnbinds=[r.element].concat(r.extraElements||[]).map((function(e){return i.bindEvents(e)})),O((function(){return i.initAnimation.apply(i,r.initial).then((function(){return i.ready=!0}))})),i}return t.__extends(n,e),n.parseArgs=function(e){return t.__assign({},e)},n.initAnimationEndPose=function(e){return this.parseArgs(e).camera.copyPose()},n.prototype.initAnimation=function(e,t,n){return Promise.resolve()},n.prototype.bindExtraElement=function(e){for(var t=0,n=this.eventUnbinds;t<n.length;t++){if(n[t].element===e)return}this.eventUnbinds.push(this.bindEvents(e))},n.prototype.unbindExtraElement=function(e){for(var t=null,n=-1,i=0,r=this.eventUnbinds;i<r.length;i++){var o=r[i];if(n++,o.element===e){t=o;break}}t&&(t(),this.eventUnbinds.splice(n,1))},n.prototype.resize=function(){this.needsRender=!0},n.prototype.resetModel=function(e,t){this.model=e,this.needsRender=!0},n.prototype.updateWork=function(e,t,n,i){return!1},n.prototype.render=function(e){this.renderer.render(this.scene,this.camera)},n.prototype.destroy=function(){this.destroyed=!0,this.ready=!1,this.off();for(var e=0,t=this.eventUnbinds;e<t.length;e++){(0,t[e])()}this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenCoordinates)},n.prototype.moveToPano=function(e,t,n){void 0===t&&(t={});var i={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()};t.moveStartCallback&&t.moveStartCallback(e,i),this.emit("moveToPano",e,n),this.currentPanoIndex=e,this.emit("panoArrived",e,{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()},n),t.moveEndCallback&&t.moveEndCallback(e,i)},n.prototype.updateCamera=function(e,t,n){var i,r,o,s;void 0===e&&(e={});var a=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,M=null!==(r=e.latitude)&&void 0!==r?r:this.camera.pose.latitude,u=null!==(o=e.fov)&&void 0!==o?o:this.camera.pose.fov,c=null!==(s=e.offset)&&void 0!==s?s:this.camera.pose.offset,l=a!==this.camera.pose.longitude||M!==this.camera.pose.latitude,d=u!==this.camera.pose.fov,N=!c.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:a,latitude:M,fov:u,offset:c}),d&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),l&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),N&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(d||l||N)&&this.emit("cameraUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()},t),this.needsRender=!0},n.prototype.onPanGesture=function(e){},n.prototype.onTapGesture=function(e){},n.prototype.onPinchGesture=function(e){},n.prototype.onMouseWheel=function(e){},n.prototype.onMouseMove=function(e){},n.prototype.onMouseOut=function(){},n.prototype.relativeClientPosition=function(e){return dt(e,this.element,this.scissor)},n.prototype.bindEvents=function(e){var t=this,n=function(e){var n=dt(e,t.element,t.scissor);return!(Math.abs(n.x)>1||Math.abs(n.y)>1)},i=new Hammer.Manager(e),r=function(e){return e.session.firstInput||null};i.add(new Hammer.Pan({threshold:10,pointers:0})),i.add(new Hammer.Tap({interval:410})),i.add(new Hammer.Pinch({threshold:0,pointers:2}).recognizeWith(i.get("pan"))),i.on("panstart pan",(function(e){var o=r(i);o&&!n(o.center)||!0!==t.preventPanGesture&&t.onPanGesture(e)})),i.on("tap",(function(e){var o=r(i);o&&!n(o.center)||!0!==t.preventTapGesture&&t.onTapGesture(e)})),i.on("pinchstart pinch pinchend",(function(e){var o=r(i);o&&!n(o.center)||!0!==t.preventPinchGesture&&t.onPinchGesture(e)}));var o=function(e){var i={x:e.clientX,y:e.clientY};n(i)&&t.onMouseWheel(e)},s=function(e){var i={x:e.clientX,y:e.clientY};n(i)?t.onMouseMove(e):t.onMouseOut()},a=function(){t.onMouseOut()};lt(e,o),ht||(Hammer.on(e,"mousemove",s),Hammer.on(e,"mouseout",a));return Object.assign((function(){i.destroy(),function(e,t){t.__mouseWheelWrapper&&(ut?e.removeEventListener(Mt,t.__mouseWheelWrapper,!1):ct&&e.detachEvent("on"+Mt,t.__mouseWheelWrapper),delete t.__mouseWheelWrapper)}(e,o),ht||(Hammer.off(e,"mousemove",s),Hammer.off(e,"mouseout",a))}),{element:e})},n}(_e),gt=function(e){function n(t){var i=this,r=n.parseArgs(t);return(i=e.call(this,r)||this).defaultLongitude=r.defaultLongitude,i.defaultLatitude=r.defaultLatitude,i.defaultFov=r.defaultFov,i.maxFov=r.maxFov,i.minFov=r.minFov,i.maxLatitude=r.maxLatitude,i.minLatitude=r.minLatitude,i}return t.__extends(n,e),n.parseArgs=function(n){var i,r,o,s,a,M,u,c=e.parseArgs.call(this,n);return t.__assign(t.__assign({},c),{defaultLongitude:null!==(i=n.defaultLongitude)&&void 0!==i?i:Math.PI/4,defaultLatitude:null!==(r=n.defaultLatitude)&&void 0!==r?r:Math.PI/4,defaultFov:null!==(o=n.defaultFov)&&void 0!==o?o:80,maxFov:null!==(s=n.maxFov)&&void 0!==s?s:120,minFov:null!==(a=n.minFov)&&void 0!==a?a:40,maxLatitude:null!==(M=n.maxLatitude)&&void 0!==M?M:+Math.PI/2,minLatitude:null!==(u=n.minLatitude)&&void 0!==u?u:-Math.PI/2})},n.initAnimationEndPose=function(e){var t,i,r,o=this.parseArgs(e),s=e.initial[0],a=null!==(t=s.longitude)&&void 0!==t?t:o.defaultLongitude,M=Math.max(o.minLatitude,Math.min(o.maxLatitude,null!==(i=s.latitude)&&void 0!==i?i:o.defaultLatitude)),u=null!==(r=s.fov)&&void 0!==r?r:o.defaultFov,c=n.prototype.cameraDistance.call(o);return{longitude:a,latitude:M,fov:u,offset:n.prototype.calculateCameraPosition.call(o,{longitude:M,latitude:M},c,null,!1).clone()}},n.prototype.destroy=function(){e.prototype.destroy.call(this)},n.prototype.updateWork=function(e,t,n,i){return this.work=e,this.currentPanoIndex=t.panoIndex,!0},n.prototype.resetModel=function(t,n){e.prototype.resetModel.call(this,t,n),this.updateCamera({longitude:this.defaultLongitude,latitude:this.defaultLatitude,fov:this.defaultFov},n,!1)},n.prototype.initAnimation=function(e,t,n){var i,r,o,s,a,M,c=this;if(this.destroyed)return Promise.resolve();var l=this.camera,d=this.model;this.preventPanGesture=!0,this.preventTapGesture=!0,this.preventPinchGesture=!0;var N=l.pose.longitude,p=l.pose.latitude,h=l.pose.fov,D=l.pose.offset.clone(),g=(null===(i=d.getMaterial())||void 0===i?void 0:i.modelAlpha)||0,y=null!==(o=null===(r=this.model.getMaterial())||void 0===r?void 0:r.perspToOrtho)&&void 0!==o?o:0,T=null!==(s=e.longitude)&&void 0!==s?s:this.defaultLongitude,z=Math.max(this.minLatitude,Math.min(this.maxLatitude,null!==(a=e.latitude)&&void 0!==a?a:this.defaultLatitude)),j=null!==(M=e.fov)&&void 0!==M?M:this.defaultFov,f=d.bounding.getCenter(new u.Vector3),v=this.cameraDistance(),m=this.calculateCameraPosition({longitude:z,latitude:z},v,null,!1),w={longitude:T,latitude:z,fov:j,offset:m.clone()};return this.emit("initAnimationWillStart",this.currentPanoIndex,w,n),new Promise((function(e){c.tweenCoordinates&&(c.tweenCoordinates.destroy(),delete c.tweenCoordinates);var i=function(e){var t=e.progress,i=nt(N,T,t),r=tt(p,z,t),o=tt(h,j,t);c.updateCamera({longitude:i,latitude:r,fov:o,offset:c.camera.pose.offset},n,!1)},r=function(){i({progress:1}),c.tweenCoordinates&&(c.tweenCoordinates.destroy(),delete c.tweenCoordinates)};t>0?c.tweenCoordinates=Je(t,We.Quadratic.InOut).onUpdate(i).onComplete(r):r(),c.tweenPosition&&(c.tweenPosition.destroy(),delete c.tweenPosition);var o=function(e){var t=e.progress,i=tt(0,v,t),r=new u.Vector3(tt(D.x-f.x,0,t),tt(D.y-f.y,0,t),tt(D.z-f.z,0,t)),o=tt(g,1,t),s=tt(y,0,t);d.setMaterial({modelAlpha:o,perspToOrtho:s});var a=c.calculateCameraPosition(c.camera.pose,i,r,!1);c.updateCamera({offset:a},n,!1)};r=function(){o({progress:1}),c.updateCamera(c.camera.copyPose(),n,!1),c.tweenPosition&&(c.tweenPosition.destroy(),delete c.tweenPosition),c.needsRender=!0,c.preventPanGesture=!1,c.preventTapGesture=!1,c.preventPinchGesture=!1,e(),c.emit("initAnimationEnded",c.currentPanoIndex,c.camera.copyPose(),n)};t>0?c.tweenPosition=Je(t,We.Quadratic.InOut).onUpdate(o).onComplete(r).onCancel((function(){c.preventPanGesture=!1,c.preventTapGesture=!1,c.preventPinchGesture=!1,e(),c.emit("initAnimationEnded",c.currentPanoIndex,c.camera.copyPose(),n)})):r()}))},n.prototype.cameraDistance=function(){var e=this.model.bounding,t=this.camera.aspect,n=Math.pow(Math.pow(e.max.x-e.min.x+2,2)+Math.pow(e.max.y-e.min.y+2,2)+Math.pow(e.max.z-e.min.z+2,2),.5),i=n/2/Math.tan(Math.PI*this.defaultFov/360);return t<1&&(i/=t),isNaN(i)?n:i},n.prototype.calculateCameraPosition=function(e,t,n,i){var r=e.longitude,o=Math.max(-Math.PI/2+.01,Math.min(Math.PI/2-.01,e.latitude));i&&(o=Math.max(this.minLatitude,Math.min(this.maxLatitude,o)));var s=this.model.bounding.getCenter(new u.Vector3),a=t*Math.cos(o),M=new u.Vector3(Math.sin(r)*a+s.x,Math.sin(o)*t+s.y,Math.cos(r)*a+s.z);return null!==n&&M.add(n),M},n.prototype.updateCamera=function(e,t,n){var i,r,o;void 0===e&&(e={});var s=this,a=s.minFov,M=s.maxFov,u=s.maxLatitude,c=s.minLatitude,l=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,d=null!==(r=e.latitude)&&void 0!==r?r:this.camera.pose.latitude,N=void 0===e.fov||this.emit("wantsChangeCameraFov",e.fov)?this.camera.pose.fov:e.fov,p=null!==(o=e.offset)&&void 0!==o?o:this.calculateCameraPosition({longitude:l,latitude:d},this.cameraDistance(),null,n);n&&(d=Math.max(c,Math.min(u,d)),N=Math.max(a,Math.min(M,N)));var h=l!==this.camera.pose.longitude||d!==this.camera.pose.latitude,D=N!==this.camera.pose.fov,g=!p.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:l,latitude:d,fov:N,offset:p}),D&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),h&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),g&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(D||h||g)&&this.emit("cameraUpdate",this.camera.copyPose(),t),this.needsRender=!0,ue()},n.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),n=this.model.intersectRaycaster(e)[0];if(!n)return null;var i=at(t,(function(e){return e.standingPosition.distanceTo(n.point)}),!0),r=i[0];return i[1]<5?this.work.observers.indexOf(r):null},n.prototype.coordinatesChangeWithOffset=function(e,t){var n=this.element,i=this.camera,r=n.offsetWidth,o=n.offsetHeight,s=2*t.x/r*i.fov/30,a=2*t.y/o*i.fov/30;return{longitude:Ke(e.longitude+s),latitude:Math.max(this.minLatitude,Math.min(this.maxLatitude,e.latitude+a))}},n.prototype.requestInteriaMovement=function(e,t){var n=this;if(!1!==this.interiaMovement){var i=this.coordinatesChangeWithOffset(this.camera.pose,e),r=i.longitude,o=i.latitude;this.updateCamera({longitude:r,latitude:o},t,!0);var s=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",this.camera.copyPose(),!s),s&&O((function(){n.requestInteriaMovement({x:.8*e.x,y:.8*e.y},t)}))}},n.prototype.onPanGesture=function(e){var t=this;if(!this.tweenCoordinates){this.interiaMovement=!1;var n=this.lastPanPoint&&this.lastPanPoint.pointerLength===e.pointers.length?{x:e.center.x-this.lastPanPoint.x,y:e.center.y-this.lastPanPoint.y}:{x:0,y:0},i=this.relativeClientPosition(e.center),r=this.camera.pose.latitude<Math.PI/6||i.y<0?-1:1,o=this.coordinatesChangeWithOffset(this.camera.pose,{x:n.x*r,y:n.y}),s=o.longitude,a=o.latitude,M=this.calculateCameraPosition({longitude:s,latitude:a},this.cameraDistance(),null,!0),u=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!(this.emit("wantsGesture","pan",u,e.isFinal)||this.emit("wantsPanGesture",{longitude:s,latitude:a,fov:this.camera.pose.fov,offset:M.clone()},e.isFinal)))if(this.updateCamera({longitude:s,latitude:a,offset:M},!0,!0),this.emit("gesture","pan",u,e.isFinal),this.emit("panGesture",this.camera.copyPose(),e.isFinal),this.lastPanPoint=e.isFinal?void 0:{pointerLength:e.pointers.length,x:e.center.x,y:e.center.y},e.isFinal)this.emit("wantsInteriaPan",this.camera.copyPose())||(this.interiaMovement=!0,C((function(n){var i=e.velocityX*n*r,o=e.velocityY*n,s=Math.sqrt(i*i+o*o);s>100&&(i=i/s*100,o=o/s*100),t.requestInteriaMovement({x:i,y:o},!0)})))}},n.prototype.onTapGesture=function(e){if(this.interiaMovement=!1,!this.tweenPosition){var t=this.relativeClientPosition(e.center),n=new u.Raycaster;n.setFromCamera(t,this.camera);var i=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!(this.emit("wantsGesture","tap",i,!0)||this.emit("wantsTapGesture",n,t))){this.emit("gesture","tap",i,!0),this.emit("tapGesture",n,t);var r;j(r=this.getForwardPanoIndexOrNot(n))||(this.emit("panoSelected",r),this.emit("wantsMoveToPano",r,{longitude:this.camera.pose.longitude,latitude:0},!0))}}},n.prototype.onPinchGesture=function(e){this.interiaMovement=!1;var t=this.camera,n=this.lastPinchPoint;if("pinchstart"===e.type)return delete this.lastPanPoint,void(this.lastPinchPoint=t.fov);"pinchend"===e.type&&(delete this.lastPanPoint,delete this.lastPinchPoint);var i="pinchend"===e.type;if(n){var r=n/e.scale,o=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",o,i)||this.emit("wantsPinchGesture",e.scale,r,i))return;this.updateCamera({fov:r},!0,!0),this.emit("gesture","pinch",o,i),this.emit("pinchGesture",e.scale,r,i)}},n.prototype.onMouseWheel=function(e){var t=this;this.interiaMovement=!1;var n=e.delta,i=this.minFov,r=this.maxFov,o=Math.max(i,Math.min(r,this.camera.fov-n)),s=[{x:e.clientX,y:e.clientY}];this.emit("wantsGesture","mouseWheel",s,!1)||this.emit("wantsMouseWheel",n,o,!1)||(this.updateCamera({fov:o},!0,!0),this.emit("gesture","mouseWheel",s,!1),this.emit("mouseWheel",n,o,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",s,!0)||t.emit("wantsMouseWheel",n,o,!0)||(t.emit("gesture","mouseWheel",s,!0),t.emit("mouseWheel",0,o,!0))}),200))},n}(Dt),yt=function(e){function n(t){var i=n.parseArgs(t);return e.call(this,i)||this}return t.__extends(n,e),n.parseArgs=function(n){var i=[t.__assign(t.__assign({},n.initial[0]),{longitude:0,latitude:Math.PI/2}),n.initial[1],n.initial[2]],r=t.__assign(t.__assign({},n),{initial:i,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return e.parseArgs.call(this,r)},n.initAnimationEndPose=function(t){var n=this.parseArgs(t);return e.initAnimationEndPose.call(this,n)},n.prototype.initAnimation=function(t,n,i){var r=this;return e.prototype.initAnimation.call(this,t,n,i).then((function(){var e,t;if(!r.destroyed){var i=null!==(t=null===(e=r.model.getMaterial())||void 0===e?void 0:e.perspToOrtho)&&void 0!==t?t:0;if(0===n)r.model.setMaterial({perspToOrtho:1}),r.needsRender=!0;else var o=Je(250,We.Linear.None).onUpdate((function(e){var t=e.progress;r.destroyed||(r.model.setMaterial({perspToOrtho:tt(i,1,t)}),r.needsRender=!0)})).onComplete((function(){return o.destroy()}))}}))},n.prototype.resetModel=function(e,t){this.model=e,this.needsRender=!0;var n=this.calculateCameraPosition({longitude:this.defaultLongitude,latitude:this.defaultLatitude},this.cameraDistance(),null,!1);this.updateCamera({offset:n},t,!1)},n.prototype.getZoomOffsetFromFov=function(e,t,n){var i=new u.Vector3(0,-1,0),r=Math.tan(n/2*Math.PI/180),o=Math.tan(t.fov/2*Math.PI/180),s=(o-r)/o,a=new u.Raycaster;a.setFromCamera(e,t);var M=a.ray.direction,c=M.angleTo(i),l=this.cameraDistance(),d=l*Math.tan(c),N=M.clone().setLength(l*Math.cos(c)).projectOnPlane(i),p=N.length(),h=s/p*N.x*d,D=s/p*N.z*d;return new u.Vector3(h,0,D)},n.prototype.onPanGesture=function(e){if(!this.tweenCoordinates){var t=this.element,n=this.camera,i=n.fov,r=n.matrix,o=n.up,s=t.offsetHeight,a=this.lastPanPoint&&this.lastPanPoint.pointerLength===e.pointers.length?{x:e.center.x-this.lastPanPoint.x,y:e.center.y-this.lastPanPoint.y}:{x:0,y:0},M=this.camera.pose.offset.clone(),c=n.position.y*Math.tan(i/2*Math.PI/180);M.add(function(e,t){var n=new u.Vector3;return n.setFromMatrixColumn(t,0),n.multiplyScalar(-e),n}(2*a.x*c/s,r)),M.add(function(e,t,n){var i=new u.Vector3;return i.setFromMatrixColumn(n,0),i.crossVectors(t,i),i.multiplyScalar(e),i}(2*a.y*c/s,o,r));var l=this.model.bounding,d=l.getCenter(new u.Vector3),N=(l.max.x-l.min.x)/this.defaultFov*n.fov,p=(l.max.y,l.min.y,this.defaultFov,n.fov,(l.max.z-l.min.z)/this.defaultFov*n.fov);M.x=Math.max(d.x-N,Math.min(d.x+N,M.x)),M.z=Math.max(d.z-p,Math.min(d.z+p,M.z));var h=e.pointers.map((function(e){return{x:e.x,y:e.y}}));this.emit("wantsGesture","pan",h,e.isFinal)||this.emit("wantsPanGesture",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:M},e.isFinal)||(this.updateCamera({offset:M},!0,!0),this.emit("gesture","pan",h,e.isFinal),this.emit("panGesture",this.camera.copyPose(),e.isFinal),this.lastPanPoint=e.isFinal?void 0:{pointerLength:e.pointers.length,x:e.center.x,y:e.center.y})}},n.prototype.onMouseWheel=function(e){var t=this,n=e.delta,i=e.clientX,r=e.clientY,o=this.camera,s=this.minFov,a=this.maxFov,M=Math.max(s,Math.min(a,this.camera.fov-n)),u=[{x:e.clientX,y:e.clientY}];if(!(this.emit("wantsGesture","mouseWheel",u,!1)||this.emit("wantsMouseWheel",n,M,!1))){var c=this.relativeClientPosition({x:i,y:r}),l=this.getZoomOffsetFromFov(c,o,M),d=this.camera.pose.offset.clone().add(l);this.updateCamera({offset:d,fov:M},!0,!0),this.emit("gesture","mouseWheel",u,!1),this.emit("mouseWheel",n,M,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",u,!0)||t.emit("wantsMouseWheel",n,M,!0)||(t.emit("gesture","mouseWheel",u,!0),t.emit("mouseWheel",0,M,!0))}),200)}},n.prototype.onPinchGesture=function(e){var t=this.camera,n=this.lastPinchPoint,i=e.scale,r=e.type,o=e.center,s=this.minFov,a=this.maxFov;if("pinchstart"===r)return delete this.lastPanPoint,void(this.lastPinchPoint=t.fov);"pinchend"===r&&(delete this.lastPanPoint,delete this.lastPinchPoint);var M="pinchend"===r;if(n){var u=n/i,c=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",c,M)||this.emit("wantsPinchGesture",i,u,M))return;u=Math.max(s,Math.min(a,u));var l=this.relativeClientPosition(o),d=this.getZoomOffsetFromFov(l,t,u),N=this.camera.pose.offset.clone().add(d);this.updateCamera({longitude:0,latitude:Math.PI/2,offset:N,fov:u},!0,!0),this.emit("gesture","pinch",c,M),this.emit("pinchGesture",i,u,M)}},n.prototype.__requestInteriaMovement=function(){},n}(gt),Tt=[];function zt(e){return e.onload=e.onerror=f,e.crossOrigin="",/^blob\:/.test(e.src)&&URL.revokeObjectURL(e.src),e.removeAttribute("src"),e}function jt(e){e instanceof u.Texture?e.dispose():(zt(e),0===Tt.indexOf(e)&&Tt.push(e))}function ft(e,t,n,i,r){if(void 0===e&&(e=""),void 0===t&&(t=f),void 0===n&&(n=f),void 0===i&&(i=f),void 0===r&&(r=f),/\.basis(\?|$)/.test(e)){var o=!1,s=!1;return ye.load(e,(function(e){t(e),i(1),!0===s&&e.dispose(),o=!0}),(function(e){i(e.loaded/e.total)}),(function(e){n(e.error),o=!0})),{abort:function(){o||r(),s=!0}}}var a=!1;return te(e,{responseType:"blob"},(function(e,r){if(!a){if(e)return n(e),void(a=!0);var o=URL.createObjectURL(r),s=zt(Tt.shift()||Y());s.onload=function(){s.onload=s.onerror=f,a?jt(s):(O((function(){return t(s)})),i(1),a=!0)},s.onerror=function(){s.onload=s.onerror=f,a||(n(new Error("image load error.")),a=!0),jt(s)},s.src=o}}),i,(function(){a||(a=!1,r())}))}var vt=["right","left","up","down","front","back"];var mt=function(e){function n(t){var n=e.call(this)||this;return n.images=[null,null,null,null,null,null],n.xhr=[null,null,null,null,null,null],n.aborted=!1,n.renderer=t,n}return t.__extends(n,e),n.prototype.load=function(e,t){var n=this,i=d.digest(e),r=f,o=f,s=f,a=f;"function"==typeof t?(r=t.bind(this,null),s=t.bind(this),a=t.bind(this)):(t.onLoad&&(r=t.onLoad),t.onProgress&&(o=t.onProgress),t.onError&&(s=t.onError),t.onAbort&&(a=t.onAbort)),this.abort(),this.disposeImages(),this.aborted=!1;for(var M=[0,0,0,0,0,0],u=function(t,i){M[i]=t,t=M.reduce((function(e,t){return e+t}),0)/M.length,o(t),n.emit("progress",t,e)},c=function(t){var o=function(e,t){var n=t.index,i=void 0===n?0:n,r=t.images,o=void 0===r?{}:r,s=t.imageOptions,a=void 0===s?{}:s,M=o[e],u=["cube",i,e].join("."),c=ye.isInitialized();return ne(M,Object.assign({key:u,basisLoaderInitialized:c},a))}(vt[t],e);l.xhr[t]=ft(o,(function(o){return function(t,o){u(1,o),n.images[o]=t,n.xhr[o]=null;for(var s=0,a=n.images;s<a.length;s++)if(!a[s])return;var M=n.toCubeTexture();M.hash=i,r(M),n.emit("load",M,e)}(o,t)}),(function(i){return function(t,i){n.aborted||(s(t),n.emit("error",t,e),n.xhr[i]=null,n.xhr.forEach((function(e,t,n){e&&e.abort(),n[t]=null})),n.disposeImages())}(i,t)}),(function(e){return u(e,t)}),(function(){n.aborted||(n.aborted=!0,n.xhr.forEach((function(e,t,n){e&&e.abort(),n[t]=null})),n.disposeImages(),a(new Error("image aborted")),n.emit("abort",e))}))},l=this,N=0;N<this.images.length;N++)c(N);this.emit("start",e)},n.prototype.abort=function(){this.xhr.forEach((function(e,t,n){e&&e.abort(),n[t]=null}))},n.prototype.disposeImages=function(){for(var e=0;e<this.images.length;e++)if(this.images[e]){var t=this.images[e];t&&jt(t),this.images[e]=null}},n.prototype.toCubeTexture=function(){var e=new Q;e.generateMipmaps=!0;var n=e.dispose;return this.images[0]instanceof u.Texture?(e.format=this.images[0].format,e.encoding=this.images[0].encoding,e.minFilter=this.images[0].minFilter,e.magFilter=this.images[0].magFilter,e.isCompressedTexture=!0):e.minFilter=u.LinearFilter,this.images.forEach((function(t,n,i){e.images[n]=t,i[n]=null})),e.needsUpdate=!0,e.dispose=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];return this.images.forEach((function(e){e&&jt(e)})),this.images=[],n.call.apply(n,t.__spreadArray([this],e))},e},n}(_e),wt=function(e){function n(t,n){var i=e.call(this)||this;i.disposed=!1,i.size=t.clone(),i.image=new ImageData(new Uint8ClampedArray([0,0,0,0]),1,1),i.generateMipmaps=!0,i.unpackAlignment=1,i.needsUpdate=!0,i.wrapS=u.ClampToEdgeWrapping,i.wrapT=u.ClampToEdgeWrapping,i.minFilter=u.NearestFilter,i.magFilter=u.NearestFilter,i.renderer=n;var r=i.gl=n.getContext(),o=i.utils=u.WebGLUtils(r,n.extensions,n.capabilities);n.initTexture(i);var s=n.properties.get(i),a=r.getParameter(r.TEXTURE_BINDING_2D);return r.bindTexture(r.TEXTURE_2D,s.__webglTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,o.convert(i.format),t.x,t.y,0,o.convert(i.format),o.convert(i.type),null),r.bindTexture(r.TEXTURE_2D,a),i.update(i.image,new u.Vector2),i}return t.__extends(n,e),n.prototype.update=function(e,t){if(!this.disposed){var n=this;n.size;var i=n.gl,r=n.utils,o=n.renderer.properties.get(this);if(!o.__webglTexture)throw new Error("UpdatableTexture never initialized");var s=i.getParameter(i.TEXTURE_BINDING_2D);i.bindTexture(i.TEXTURE_2D,o.__webglTexture),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.texSubImage2D(i.TEXTURE_2D,0,t.x,t.y,r.convert(this.format),r.convert(this.type),e),i.generateMipmap(i.TEXTURE_2D),i.bindTexture(i.TEXTURE_2D,s)}},n.prototype.dispose=function(){this.disposed=!0,e.prototype.dispose.call(this)},n}(u.Texture);var It=new ie,xt=Y();xt.crossOrigin="";var Lt=Promise.resolve(),Ot=function(e){function n(t){var n=e.call(this)||this;n.texutre=new wt(new u.Vector2(2048,2048),t),n.mappings=[];for(var i,r,o=I(),s=0;s<16;s++){var a=(i=s,r=4,[Math.floor(i%r),Math.floor(i/r)]),M=a[0],c=a[1];n.mappings[s]={idle:!0,loaded:!0,resource:"",timestamp:o,clip:new u.Vector4(0,0,0,0),drawAt:new u.Vector4(M/4,c/4,1/4,1/4)}}return n}return t.__extends(n,e),n.prototype.requestResource=function(e){var t=this;Lt=Lt.then((function(){return new Promise((function(n){var i=function(){/^blob\:/.test(xt.src)&&URL.revokeObjectURL(xt.src),xt.removeAttribute("src"),n()};It.loadToImage(xt,e,(function(){if(512!==xt.width||512!==xt.height)t.emit("error",new Error("tile image size must be 512 x 512."));else{var n=t.getMaddpingByResource(e);if(n&&!0!==n.loaded){n.loaded=!0;var r=new u.Vector2(2048*n.drawAt.x,2048*n.drawAt.y);t.texutre.update(xt,r),t.emit("update",t.getVisibleMappings())}}i()}),(function(){}),i)}))}))},n.prototype.getMaddpingByResource=function(e){return this.mappings.filter((function(t){return e===t.resource}))[0]},n.prototype.getIdleMapping=function(){return this.mappings.filter((function(e){return e.idle})).sort((function(e,t){return e.timestamp-t.timestamp}))[0]},n.prototype.getHash=function(){return d.digest(this.getVisibleMappings().map((function(e){return e.map((function(e){return e.toArray()}))})))},n.prototype.cleanTiles=function(){for(var e=this.getHash(),t=0,n=this.mappings;t<n.length;t++){n[t].idle=!0}e!==this.getHash&&this.emit("update",this.getVisibleMappings())},n.prototype.loadTiles=function(e){var t=this.getHash(),n=Math.pow(4,2),i=I();e.length>n&&((e=e.slice()).length=n);for(var r=0,o=this.mappings;r<o.length;r++){(N=o[r]).idle=!0}for(var s=[],a=0,M=e;a<M.length;a++){var u=ne((d=M[a]).resource);(N=this.getMaddpingByResource(u))?(N.idle=!1,N.timestamp=i):s.push(d)}for(var c=0,l=s;c<l.length;c++){var d,N;u=ne((d=l[c]).resource);(N=this.getIdleMapping()).idle=!1,N.resource=u,N.clip=d.clip,N.loaded=!1,N.timestamp=i,this.requestResource(u)}t!==this.getHash&&this.emit("update",this.getVisibleMappings())},n.prototype.getVisibleMappings=function(){return this.mappings.map((function(e){var t=!1===e.idle&&!0===e.loaded?e.drawAt.clone():new u.Vector4(0,0,0,0);return[e.clip.clone(),t.clone()]}))},n.prototype.dispose=function(){this.emit("dispose"),this.mappings.length=0,this.texutre.dispose()},n}(_e);var At=function(e){function n(){var t=e.call(this)||this,n=new u.RingBufferGeometry(.04,.08,32),i=new u.MeshBasicMaterial({color:1245179,opacity:.8,side:u.DoubleSide,transparent:!0});return t.ringMesh=new u.Mesh(n,i),t.ringMesh.renderOrder=10,t.add(t.ringMesh),t}return t.__extends(n,e),n.prototype.dispose=function(){this.remove(this.ringMesh),this.ringMesh.geometry.dispose(),Array.isArray(this.ringMesh.material)?this.ringMesh.material.forEach((function(e){return e.dispose()})):this.ringMesh.material.dispose()},n}(u.Object3D);function Et(){return new At}var Ct=function(e){function n(t){var i=this,r=n.parseArgs(t);return(i=e.call(this,r)||this).defaultLongitude=r.defaultLongitude,i.defaultLatitude=r.defaultLongitude,i.defaultFov=r.defaultFov,i.maxFov=r.maxFov,i.minFov=r.minFov,i.maxLatitude=r.maxLatitude,i.minLatitude=r.minLatitude,i.moveSpeed=r.moveSpeed,i.intersectMeshCreator=r.intersectMeshCreator,i.interiaMovement=!1,i.intersectMesh=i.intersectMeshCreator(),i.intersectMesh.name="intersect",i.intersectMesh.visible=!1,i.helper.add(i.intersectMesh),i}return t.__extends(n,e),n.parseArgs=function(n){var i,r,o,s,a,M,u,c,l,d=e.parseArgs.call(this,n);return t.__assign(t.__assign({},d),{defaultLongitude:null!==(i=n.defaultLongitude)&&void 0!==i?i:0,defaultLatitude:null!==(r=n.defaultLongitude)&&void 0!==r?r:0,defaultFov:null!==(o=n.defaultFov)&&void 0!==o?o:80,maxFov:null!==(s=n.maxFov)&&void 0!==s?s:120,minFov:null!==(a=n.minFov)&&void 0!==a?a:40,maxLatitude:null!==(M=n.maxLatitude)&&void 0!==M?M:+Math.PI/2,minLatitude:null!==(u=n.minLatitude)&&void 0!==u?u:-Math.PI/2,moveSpeed:null!==(c=n.moveSpeed)&&void 0!==c?c:3.2,intersectMeshCreator:null!==(l=n.intersectMeshCreator)&&void 0!==l?l:Et})},n.initAnimationEndPose=function(e){var t,n,i,r=this.parseArgs(e),o=e.initial[0];return{longitude:null!==(t=o.longitude)&&void 0!==t?t:r.defaultLongitude,latitude:null!==(n=o.latitude)&&void 0!==n?n:r.defaultLatitude,fov:null!==(i=o.fov)&&void 0!==i?i:r.defaultFov,offset:r.work.observers[r.panoIndex].position.clone()}},n.prototype.destroy=function(){e.prototype.destroy.call(this),this.interiaMovement=!1,this.hideIntersectMesh(),this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose())},n.prototype.updateCamera=function(e,t,n){var i,r,o;void 0===e&&(e={});var s=this,a=s.minFov,M=s.maxFov,u=s.maxLatitude,c=s.minLatitude,l=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,d=null!==(r=e.latitude)&&void 0!==r?r:this.camera.pose.latitude,N=void 0===e.fov||this.emit("wantsChangeCameraFov",e.fov)?this.camera.pose.fov:e.fov,p=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset;n&&(d=Math.max(c,Math.min(u,d)),N=Math.max(a,Math.min(M,N)));var h=l!==this.camera.pose.longitude||d!==this.camera.pose.latitude,D=N!==this.camera.pose.fov,g=!p.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:l,latitude:d,fov:N,offset:p}),D&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),h&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),g&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(D||h||g)&&this.emit("cameraUpdate",this.camera.copyPose(),t),this.needsRender=!0,ue()},n.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Math.floor(Math.max(Math.min(t/this.moveSpeed*1e3,1500),500))}},n.prototype.initAnimation=function(e,t,n){var i,r,o,s=this;if(this.destroyed)return Promise.resolve();var a=null!==(i=e.longitude)&&void 0!==i?i:this.defaultLongitude,M=null!==(r=e.latitude)&&void 0!==r?r:this.defaultLatitude,u=null!==(o=e.fov)&&void 0!==o?o:this.defaultFov;return new Promise((function(e){s.moveToPano(s.currentPanoIndex,{longitude:a,latitude:M,fov:u,limit:!1,duration:t,moveStartCallback:function(e,t){s.preventPanGesture=!0,s.preventTapGesture=!0,s.emit("initAnimationWillStart",e,t,n)},moveEndCallback:function(t,i){s.preventPanGesture=!1,s.preventTapGesture=!1,e(),s.emit("initAnimationEnded",t,i,n)},moveCancelCallback:function(){s.preventPanGesture=!1,s.preventTapGesture=!1,e(),s.emit("initAnimationEnded",s.currentPanoIndex,s.camera.copyPose(),n)}},n)}))},n.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},n.prototype.coordinatesChangeWithOffset=function(e,t){var n=2*t.x/this.element.offsetWidth*this.camera.fov/95*this.camera.aspect,i=-2*t.y/this.element.offsetHeight*this.camera.fov/95;return{longitude:e.longitude+n,latitude:e.latitude+i}},n.prototype.requestInteriaMovement=function(e,t){var n=this;if(!1!==this.interiaMovement){var i=this.coordinatesChangeWithOffset(this.camera.pose,e),r=i.longitude,o=i.latitude;this.updateCamera({longitude:r,latitude:o},t,!0);var s=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",this.camera.copyPose(),!s),s?O((function(){n.requestInteriaMovement({x:.9*e.x,y:.9*e.y*.7},t)})):this.interiaMovement=!1}},n.prototype.onPanGesture=function(e){var t=this;this.interiaMovement=!1,this.hideIntersectMesh();var n=this.lastPanPoint&&this.lastPanPoint.pointerLength===e.pointers.length?{x:e.center.x-this.lastPanPoint.x,y:e.center.y-this.lastPanPoint.y}:{x:0,y:0},i=this.coordinatesChangeWithOffset(this.camera.pose,n),r=i.longitude,o=i.latitude;Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(o=this.camera.pose.latitude);var s=e.pointers.map((function(e){return{x:e.x,y:e.y}}));this.emit("wantsGesture","pan",s,e.isFinal)||this.emit("wantsPanGesture",this.camera.copyPose(),e.isFinal)||(this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.updateCamera({longitude:r,latitude:o},!0,!0),this.emit("gesture","pan",s,e.isFinal),this.emit("panGesture",this.camera.copyPose(),e.isFinal),this.lastPanPoint=e.isFinal?void 0:{pointerLength:e.pointers.length,x:e.center.x,y:e.center.y},e.isFinal&&(this.emit("wantsInteriaPan",this.camera.copyPose())||C((function(n){t.interiaMovement=!0;var i=e.velocityX*n,r=e.velocityY*n,o=Math.sqrt(i*i+r*r);o>100&&(i=i/o*100,r=r/o*100),Math.abs(r/i)<Math.tan(20/180*Math.PI)&&(r=0),t.requestInteriaMovement({x:i,y:r},!0)}))))},n.prototype.onPinchGesture=function(e){this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.interiaMovement=!1;var t=this.camera,n=this.lastPinchFov,i=e.scale,r=e.type;if("pinchstart"===r)return this.lastPinchFov=t.fov,void delete this.lastPanPoint;"pinchend"===r&&(delete this.lastPanPoint,delete this.lastPinchFov);var o="pinchend"===r;if(n){var s=n/i,a=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",a,o)||this.emit("wantsPinchGesture",i,s,o))return;this.updateCamera({fov:s},!0,!0),this.emit("gesture","pinch",a,o),this.emit("pinchGesture",i,s,o)}},n.prototype.onMouseWheel=function(e){var t=this;this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.interiaMovement=!1;var n=e.delta,i=this.minFov,r=this.maxFov,o=Math.max(i,Math.min(r,this.camera.fov-n)),s=[{x:e.clientX,y:e.clientY}];this.emit("wantsGesture","mouseWheel",s,!1)||this.emit("wantsMouseWheel",n,o,!1)||(this.updateCamera({fov:o},!0,!0),this.emit("gesture","mouseWheel",s,!1),this.emit("mouseWheel",n,o,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",s,!0)||t.emit("wantsMouseWheel",n,o,!0)||(t.emit("gesture","mouseWheel",s,!0),t.emit("mouseWheel",0,o,!0))}),200))},n.prototype.onMouseMove=function(e){var t=this,n=t.camera,i=t.model,r=t.intersectMesh,o=t.lastPanPoint;if(r&&!i.empty&&i.bvhs&&!0===i.bvhs.loaded&&!o){var s=this.relativeClientPosition({x:e.clientX,y:e.clientY}),a=new u.Raycaster;if(a.setFromCamera(s,n),this.emit("wantsShowIntersectionOnModel",a))return this.hideIntersectMesh(),void(this.needsRender=!0);var M=i.intersectRaycaster(a)[0];if(M&&M.face){var c=M.face.normal,l=c.clone().multiplyScalar(.05),d=M.point.clone().add(l);r.position.copy(d);var N=d.clone().add(l);if(r.lookAt(N),Math.abs(c.y)>.99){var p=n.pose.offset.clone().sub(d);r.rotation.z=-Math.atan2(p.z,p.x)}r.visible=!0,this.emit("intersectionOnModelUpdate",M,r),this.needsRender=!0}else this.hideIntersectMesh(),this.needsRender=!0;this.lastMouseMoveEvent={clientX:e.clientX,clientY:e.clientY}}},n.prototype.onMouseOut=function(){this.intersectMesh&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},n}(Dt),kt=Y(),Ut=new u.Texture(kt);kt.onload=function(){return Ut.needsUpdate=!0},kt.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAR9JREFUOBF10kFOAzEMBdCZFhCbrrgAN+NqHIULsWKDKO3gF+VHoZpa+rXjfH87nq7btr0ty3KZ8FsxnHeQPL748lA/x0Jsq+AwYe0X8nDtGA33BEJUHIEKW/EorHOLI7BHNlkEbju38YkQAIRZxFkHz2HOirKDxNcIzG+fu/6oLiNmqc5ZrlwTeKyAgJF14tMZmSn87pBrxeX/CRABgk/dl1s+C18dio2Pp9nmCQru2UtdvN+7lI9AFsgb3zNMcSp8FF4LYs3UhLfOAvkDJffci8q1J/ByRLKnQ8gUJUFOd2SeZYliCxwiyJCxCbhUGFKF4zPm61hiq7sVyJnPmATyR5IzLSNyDNEFRCDnkAmA8U2RfCsIefYhDeKOQLv7A+l1ZTyjymNxAAAAAElFTkSuQmCC";var St=new u.RingBufferGeometry(.06,.07,32).rotateX(-Math.PI/2),bt=new u.MeshBasicMaterial({map:Ut,transparent:!0});function Qt(){var e=document.createElement("canvas"),t=512,n=256,i=190;e.setAttribute("width",String(t)),e.setAttribute("height",String(t));var r=new u.Texture(e),o=e.getContext("2d");if(!o)throw Error("cannot create canvas context");var s=o.createRadialGradient(n,n,150,n,n,0);function a(){var e=Math.PI/12,t=2*Math.PI/3;o&&(o.beginPath(),o.arc(n,n,i,0*t,1*t-e),o.stroke(),o.beginPath(),o.arc(n,n,i,1*t,2*t-e),o.stroke(),o.beginPath(),o.arc(n,n,i,2*t,3*t-e),o.stroke())}function M(e){o&&(o.clearRect(0,0,t,t),o.lineWidth=20,-1!==e&&(o.globalCompositeOperation="source-over",o.strokeStyle="rgba(255, 255, 255, 1)",a(),o.globalCompositeOperation="source-in",o.beginPath(),o.arc(n,n,i,0,2*Math.PI*e),o.strokeStyle="rgba(255, 255, 255, 1)",o.stroke(),o.globalCompositeOperation="source-over",o.strokeStyle="rgba(255, 255, 255, "+(e?.5:1)+")",a()),o.beginPath(),o.arc(n,n,150,0,2*Math.PI),o.closePath(),o.fillStyle=s,o.fill(),o.fillStyle="rgba(255, 255, 255, 0.01)",o.fillRect(0,0,t,t),r.needsUpdate=!0)}return s.addColorStop(0,"rgba(255, 255, 255, 1)"),s.addColorStop(.15,"rgba(255, 255, 255, 1)"),s.addColorStop(.15,"rgba(255, 255, 255, 0.5)"),s.addColorStop(.4,"rgba(255, 255, 255, 0.0)"),s.addColorStop(1,"rgba(255, 255, 255, 0.0)"),M(0),Object.assign(r,{draw:M,retain:!1,pool:!1})}var Yt=[];var Pt=Qt();Pt.draw(0);var _t=Qt();_t.draw(1);var Bt=Qt();Bt.draw(-1);var Rt=new u.CircleBufferGeometry(.12,32).rotateX(-Math.PI/2);function Vt(){return new u.Mesh(Rt,new u.MeshBasicMaterial({map:Pt,transparent:!0}))}var Ft=function(e){function n(){var t=e.call(this)||this;return t.needsRender=!0,t.loading=!1,t.disabled=!1,t.centerMesh=Vt(),t.centerMesh.position.y+=.01,t.add(t.centerMesh),t.loadingMesh=new u.Mesh(St,bt),t.loadingMesh.position.y+=.011,t}return t.__extends(n,e),n.prototype.setLoading=function(e){var t=this;this.loading=e,this.stopInterval&&this.stopInterval(),e?(this.add(this.loadingMesh),this.stopInterval=A((function(){t.loadingMesh.rotateOnAxis(new u.Vector3(0,1,0),.1),t.needsRender=!0}))):this.remove(this.loadingMesh),this.needsRender=!0},n.prototype.setDisabled=function(e){function t(t){var n=t.map;!0===n.pool&&(n.retain=!1),t.map=e?Bt:Pt}this.disabled=e,Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){t(e)})):t(this.centerMesh.material),this.needsRender=!0},n.prototype.setProgress=function(e){function t(e,t){var n=e.map;0===t||1===t?(!0===n.pool&&(n.retain=!1),0===t&&(e.map=Pt),1===t&&(e.map=_t)):(!0!==n.pool&&(e.map=function(){for(var e=0,t=Yt;e<t.length;e++){var n=t[e];if(!1===n.retain)return n}var i=Qt();return i.pool=!0,i.retain=!0,Yt.push(i),i}()),e.map.draw(t))}this.setLoading(!1),this.setDisabled(!1),e=Math.max(0,Math.min(1,e)),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(n){t(n,e)})):t(this.centerMesh.material,e),this.needsRender=!0},n.prototype.setOpacity=function(e){Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(t){t.opacity=e})):this.centerMesh.material.opacity=e,this.needsRender=!0},n.prototype.dispose=function(){this.setLoading(!1),this.remove(this.centerMesh),this.remove(this.loadingMesh),this.centerMesh.geometry.dispose(),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){e.dispose()})):this.centerMesh.material.dispose(),this.loadingMesh.geometry.dispose(),Array.isArray(this.loadingMesh.material)?this.loadingMesh.material.forEach((function(e){e.dispose()})):this.loadingMesh.material.dispose()},n}(u.Object3D);function qt(){return new Ft}function Ht(e){var t=Math.abs(Math.cos(e.latitude));return new u.Vector3(-Math.sin(e.longitude)*t,-Math.sin(e.latitude),-Math.cos(e.longitude)*t)}var Gt=new u.OrthographicCamera(-1,1,1,-1,0,1),Wt=new u.BufferGeometry;Wt.setAttribute("position",new u.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),Wt.setAttribute("uv",new u.Float32BufferAttribute([0,2,0,0,2,0],2));var Zt=new u.Mesh(Wt),Jt=new u.Scene;Jt.add(Zt);for(var Xt=function(){function e(e,t){var n;this.renderer=e,this.material=new u.ShaderMaterial({vertexShader:null!==(n=t.vertex)&&void 0!==n?n:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:t.fragment,uniforms:Object.assign({inputBuffer:{value:null}},t.uniforms)})}return e.prototype.render=function(e,t){var n=this.renderer.getRenderTarget(),i=Zt.material;this.material.uniforms.inputBuffer.value=e.texture,Zt.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Jt,Gt),this.renderer.setRenderTarget(n),Zt.material=i},e.prototype.dispose=function(){this.material.dispose()},e}(),Kt=function(){function e(e){this.renderer=e,this.material=new u.ShaderMaterial({vertexShader:"\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:"\n uniform vec3 inputValue;\n void main() {\n gl_FragColor = vec4(inputValue, 1.0);\n }\n ",uniforms:Object.assign({inputValue:{value:new u.Vector3}})})}return e.prototype.render=function(e,t){var n=this.renderer.getRenderTarget(),i=Zt.material;this.material.uniforms.inputValue.value.copy(e),Zt.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Jt,Gt),this.renderer.setRenderTarget(n),Zt.material=i},e.prototype.dispose=function(){this.material.dispose()},e}(),$t=function(e){function n(t){return e.call(this,t,{fragment:"\n uniform sampler2D inputBuffer;\n varying vec2 vUv;\n void main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n }\n "})||this}return t.__extends(n,e),n}(Xt),en=function(e){function n(t){return e.call(this,t,{fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n varying vec2 vUv;\n void main() {\n float scale = 0.25;\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = linearToRelativeLuminance(rgb) - 0.5;\n luminance = luminance / 2.0 + 0.5;\n gl_FragColor = vec4(luminance, luminance, luminance, 1.0);\n }\n "})||this}return t.__extends(n,e),n}(Xt),tn=function(e){function n(t,n){return void 0===n&&(n=.002),e.call(this,t,{uniforms:{targetBuffer:{value:null},inputBuffer:{value:null},step:{value:n}},vertex:"\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n ",fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n void main() {\n float target = texture2D(targetBuffer, vec2(0.5, 0.5)).r;\n float current = texture2D(inputBuffer, vec2(0.5, 0.5)).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this}return t.__extends(n,e),Object.defineProperty(n.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),n}(Xt),nn=function(e){function n(t){return e.call(this,t,{uniforms:{inputBuffer:{value:null},luminanceAdaptiveBUffer:{value:null}},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBUffer;\n varying vec2 vUv;\n\n vec3 hsv2rgb(vec3 c) {\n const vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n }\n\n vec3 rgb2hsv(vec3 c) {\n const vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + 0.001)), d / (q.x + 0.001), q.x);\n }\n\n void main() {\n vec3 rgb = texture2D(inputBuffer, vUv).rgb;\n float luminance = linearToRelativeLuminance(rgb);\n float delta = (texture2D(luminanceAdaptiveBUffer, vec2(0.5, 0.5)).r - 0.5);\n vec3 hsv = rgb2hsv(rgb);\n if (delta > 0.0) {\n hsv.z -= delta * (1.0 - luminance);\n } else {\n hsv.z -= delta * luminance;\n }\n gl_FragColor = vec4(hsv2rgb(hsv), 1.0);\n }\n\n "})||this}return t.__extends(n,e),Object.defineProperty(n.prototype,"luminanceAdaptiveBUffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBUffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBUffer.value=e},enumerable:!1,configurable:!0}),n}(Xt),rn=function(){function e(e){this.enable=!0,this.renderer=e,this.valuePass=new Kt(this.renderer),this.copyPass=new $t(this.renderer),this.luminancePass=new en(this.renderer),this.nextStepPass=new tn(this.renderer),this.luminanceAdaptivePass=new nn(this.renderer)}return e.prototype.render=function(e){this.enable?(this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new u.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(e),this.luminancePass.render(e,this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new u.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.valuePass.render(new u.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new u.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.valuePass.render(new u.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBUffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.render(e)):this.copyPass.render(e)},e.prototype.dispose=function(){var e,t,n;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(n=this.luminanceNextBuffer)||void 0===n||n.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},e}(),on=(new u.Matrix4).makeRotationAxis(new u.Vector3(0,1,0),Math.PI),sn=new u.Vector2(16,8),an=[],Mn=0;Mn<sn.x;Mn++)for(var un=0;un<sn.y;un++){an[un*sn.x+Mn]=[];var cn=Ht({longitude:2*Math.PI/sn.x*(Mn+.5),latitude:Math.PI/sn.y*(un+.5)-Math.PI/2});an[un*sn.x+Mn].push(cn);for(var ln=0;ln<=8;ln++)for(var dn=0;dn<=8;dn++){var Nn=Ht({longitude:2*Math.PI/sn.x*(Mn+ln/8),latitude:Math.PI/sn.y*(un+dn/8)-Math.PI/2});an[un*sn.x+Mn].push(Nn)}}var pn=new u.MeshDistanceMaterial({nearDistance:0,farDistance:10}),hn=new u.Scene;hn.overrideMaterial=pn;var Dn=function(e){function n(t){var i=this,r=n.parseArgs(t);(i=e.call(this,r)||this).maxAccessibleDistance=r.maxAccessibleDistance,i.panoTapTriggerRadius=r.panoTapTriggerRadius,i.panoCircleMeshCreator=r.panoCircleMeshCreator;var o=i.model.getMaterial()||{},s=o.pano0Map,a=o.pano1Map;return a&&a!==s&&(i.model.setMaterial({pano1Map:s}),a.dispose()),i.boundingMesh=i.generateBoundingMesh(),i.boundingMesh.setMaterial(i.model.getMaterial()||{}),i.boundingMesh.name="bounding",i.boundingMesh.visible=!1,i.scene.add(i.boundingMesh),i.panoCircleMeshes=[],i.updatePanoCircleMeshes(),i.model.loaded||i.panoCircleMeshes.forEach((function(e){return e.visible=!1})),i.depthCamera=new u.CubeCamera(.01,10,new u.WebGLCubeRenderTarget(64)),r.enableLuminanceAdaptiveEffect&&(i.luminanceAdaptiveEffect=new rn(i.renderer),i.luminanceAdaptiveEffect.enable=!1,i.postProcessing=function(e){var t;return null===(t=i.luminanceAdaptiveEffect)||void 0===t?void 0:t.render(e)}),i.cubeTextureLoader=new mt(i.renderer),i.cubeTextureLoader.on("start",(function(e){var t,n=e.index;null===(t=i.panoCircleMeshes[n])||void 0===t||t.setProgress(0),i.emit("textureStartLoad",n,i.work.observers[n])})),i.cubeTextureLoader.on("progress",(function(e,t){var n,r=t.index;null===(n=i.panoCircleMeshes[r])||void 0===n||n.setProgress(e),i.emit("textureLoading",e,r,i.work.observers[r])})),i.cubeTextureLoader.on("abort",(function(e){var t,n=e.index;null===(t=i.panoCircleMeshes[n])||void 0===t||t.setProgress(0),i.emit("textureAbort",n,i.work.observers[n])})),i.cubeTextureLoader.on("load",(function(e,t){var n,r=t.index;null===(n=i.panoCircleMeshes[r])||void 0===n||n.setProgress(1),i.emit("textureLoaded",r,i.work.observers[r])})),i.cubeTextureLoader.on("error",(function(e,t){var n,r=t.index;null===(n=i.panoCircleMeshes[r])||void 0===n||n.setProgress(0),i.emit("textureError",e,r,i.work.observers[r]),i.emit("error",e)})),i.once("initAnimationWillStart",(function(){(new u.Box3).expandByObject(i.boundingMesh).containsPoint(i.camera.position)&&(i.boundingMesh.visible=!0),i.luminanceAdaptiveEffect&&(i.luminanceAdaptiveEffect.enable=!0)})),i.once("panoArrived",(function(){i.boundingMesh.visible=!0})),i.on("panoWillArrive",(function(){return i.ready=!1})),i.on("moveToPanoCanceled",(function(){return i.ready=!0})),i.on("panoArrived",(function(){return i.ready=!0})),i}return t.__extends(n,e),n.parseArgs=function(n){var i,r,o,s,a=e.parseArgs.call(this,n);return t.__assign(t.__assign({},a),{enableLuminanceAdaptiveEffect:null!==(i=n.enableLuminanceAdaptiveEffect)&&void 0!==i&&i,maxAccessibleDistance:null!==(r=n.maxAccessibleDistance)&&void 0!==r?r:5,panoTapTriggerRadius:null!==(o=n.panoTapTriggerRadius)&&void 0!==o?o:1,panoCircleMeshCreator:null!==(s=n.panoCircleMeshCreator)&&void 0!==s?s:qt})},n.initAnimationEndPose=function(t){var n=this.parseArgs(t);return e.initAnimationEndPose.call(this,n)},n.prototype.getCurrentTileIndicesInCamera=function(){for(var e=this.work.observers[this.currentPanoIndex],t=(new u.Matrix4).compose(e.position,e.quaternion,new u.Vector3(-1,1,1)),n=this.camera.getWorldDirection(new u.Vector3),i=(new u.Matrix4).multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),r=(new u.Frustum).setFromProjectionMatrix(i),o=[],s=0;s<an.length;s++)for(var a=0,M=an[s];a<M.length;a++){var c=M[a];if(r.containsPoint(c.clone().applyMatrix4(t))){o.push(s);break}}return o.sort((function(e,t){return an[e][0].angleTo(n)-an[t][0].angleTo(n)})),o},n.prototype.tilingPanoIfNeeds=function(){var e,t=this,n=this.camera.pose.fov<=70,i=this.work.observers[this.currentPanoIndex],r=i.images.tiles;if(n&&r&&i.position.equals(this.camera.pose.offset)){this.tileTextureLoader||(this.tileTextureLoader=new Ot(this.renderer),this.tileTextureLoader.on("update",(function(e){t.setModelAndBoundingMaterial({panoTileMap:t.tileTextureLoader.texutre,panoTileMappings:e}),t.needsRender=!0})));for(var o=this.getCurrentTileIndicesInCamera(),s=[],a=0;a<sn.x*sn.y;a++)if(-1!==o.indexOf(a)){var M=Math.floor(a%sn.x),c=Math.floor(a/sn.x),l=new u.Vector4(M/sn.x,c/sn.y,1/sn.x,1/sn.y),d=r+"/row-"+(c+1)+"-column-"+(M+1)+".jpg";s.push({resource:d,clip:l})}this.tileTextureLoader.loadTiles(s)}else null===(e=this.tileTextureLoader)||void 0===e||e.cleanTiles()},n.prototype.updateWork=function(e,t,n,i){var r=this;this.ready=!1,this.work=e,this.currentPanoIndex=t.panoIndex;var o={},s=!0;return this.boundingMesh&&(o=this.boundingMesh.getMaterial()||{},s=this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(!0),this.boundingMesh.name="bounding",this.boundingMesh.visible=s,this.boundingMesh.setMaterial(o),this.scene.add(this.boundingMesh),this.hideIntersectMesh(),this.moveToPano(t.panoIndex,{effect:"fade",duration:n,longitude:t.longitude,latitude:t.latitude,fov:t.fov,moveStartCallback:function(){return r.updatePanoCircleMeshes(!1)}},i),!0},n.prototype.updatePanoCircleMeshes=function(e){var t=this;void 0===e&&(e=!0);var n=[];this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){e.loading&&n.push(e.panoIndex),t.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0);var i=new u.Vector3(0,-1,0);this.panoCircleMeshes=this.work.observers.map((function(r,o){var s=t.panoCircleMeshCreator();if(s.position.copy(r.standingPosition),e&&t.model.loaded){var a=s.position.clone().add(new u.Vector3(0,1,0)),M=new u.Raycaster(a,i,0,1),c=t.model.intersectRaycaster(M)[0];c&&c.point.distanceTo(s.position)>.1&&(s.position.copy(c.point.clone()),s.needsRender=!0)}return s.name="panoCircle_"+o,s.panoIndex=o,t.helper.add(s),s.needsRender=!0,!1===r.active&&(s.setDisabled(!0),n.indexOf(o)>=0&&(s.setDisabled(!1),s.setLoading(!0))),s}));var r=this.work.observers[this.currentPanoIndex].visibleNodes;r=r.filter((function(e){var n=t.work.observers[e];return n.loadable||n.active})),this.panoCircleMeshes.forEach((function(e){e.visible=r.indexOf(e.panoIndex)>=0}));var o=this.camera.position;this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))}))},n.prototype.destroy=function(){var t,n,i,r,o=this;e.prototype.destroy.call(this),null===(t=this.luminanceAdaptiveEffect)||void 0===t||t.dispose(),this.cubeTextureLoader.off(),null===(n=this.tileTextureLoader)||void 0===n||n.dispose(),delete this.pendingLoadTextureHashAndCallback,this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){o.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0),this.interiaMovement=!1;var s=this.videoTexture.image;s.pause(),s.oncanplay=function(){},s.ontimeupdate=function(){};var a={pano0DepthMap:null,panoVideoMap:null,panoVideoSize:new u.Vector2,panoVideoMatrix:new u.Matrix4,panoVideoAlpha:0};this.setModelAndBoundingMaterial(a),null===(i=this.depthCamera)||void 0===i||i.renderTarget.texture.dispose(),null===(r=this.depthCamera)||void 0===r||r.renderTarget.dispose(),delete this.depthCamera},n.prototype.render=function(t){this.work.observers[this.currentPanoIndex].video&&(this.needsRender=!0),e.prototype.render.call(this,t)},n.prototype.generateBoundingMesh=function(e){void 0===e&&(e=!1);var t=this.model.bounding.clone();return this.work.observers.forEach((function(e){t.expandByPoint(e.standingPosition),t.expandByPoint((new u.Vector3).fromArray([e.position.x,2*e.position.y-e.standingPosition.y,e.position.z]))})),e&&t.expandByPoint(this.camera.pose.offset),G(t,new u.Vector3(1,0,1))},n.prototype.resetModel=function(e,t){var n=this;this.model=e;var i={};this.boundingMesh&&(i=this.boundingMesh.getMaterial()||{},this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(),this.boundingMesh.visible=!0,this.boundingMesh.name="bounding",this.boundingMesh.setMaterial(i),this.scene.add(this.boundingMesh),this.needsRender=!0,ce((function(){n.updatePanoCircleMeshes(),n.updateCamera({},t,!0),n.needsRender=!0}))},n.prototype.moveToPano=function(e,t,n){var i=this;this.interiaMovement=!1;var r={index:e,images:this.work.observers[e].images,imageOptions:this.imageOptions},o=d.digest(r),s=function(r,o){if(r)return t.moveCancelCallback&&t.moveCancelCallback(),i.emit("panoLoadError",r,e),void i.emit("moveToPanoCanceled",e);var s=o;i.destroyed?s.dispose():(i.emit("panoLoaded",e),O((function(){return i.doMoveToPano(e,s,t,n)})))},a=this.pendingLoadTextureHashAndCallback||[],M=a[0],u=a[1];if(o!==M){if(delete this.pendingLoadTextureHashAndCallback,u&&u(new Error("texture aborted")),this.emit("moveToPano",e,n),this.emit("panoWillLoad",e),!r.images)return void s(new Error("pano images were not existed"));var c=this.getModelAndBoundingMaterial()||{},l=c.pano0Map,N=c.pano1Map,p=void 0;if(l&&l.hash===o?p=l:N&&N.hash===o&&(p=N),p)return void s(null,p);this.pendingLoadTextureHashAndCallback=[o,s],this.cubeTextureLoader.load(r,(function(e,t){var n=i.pendingLoadTextureHashAndCallback||[],r=n[0],s=n[1];o===r&&s?(s(e,t),delete i.pendingLoadTextureHashAndCallback):null==t||t.dispose()}))}},n.prototype.updateCamera=function(t,n,i){var r=this;void 0===t&&(t={}),e.prototype.updateCamera.call(this,t,n,i),this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(r.camera.pose.offset);e.setOpacity(Math.min(1.5/t,1))}));var o=this.getForwardPanoIndexOrNot();null!==o&&this.panoCircleMeshes[o].setOpacity(1),this.needsRender=!0,ue(),this.tilingPanoIfNeeds()},n.prototype.canNotMoveAnimation=function(){var e=this;if(this.interiaMovement=!1,!this.tweenCoordinates){var t=this.camera.fov,n=.98*t,i=function(t){var n=t.fov;e.updateCamera({fov:n},!0,!0)};this.tweenCoordinates=Ze({fov:t},{fov:n},200).onUpdate(i).onComplete((function(){var r;null===(r=e.tweenCoordinates)||void 0===r||r.destroy(),e.tweenCoordinates=Ze({fov:n},{fov:t},200).onUpdate(i).onComplete((function(){var t;null===(t=e.tweenCoordinates)||void 0===t||t.destroy(),delete e.tweenCoordinates}))}))}},n.prototype.getModelAndBoundingMaterial=function(){for(var e=0,t=[this.model,this.boundingMesh];e<t.length;e++){return t[e].getMaterial()}return null},n.prototype.setModelAndBoundingMaterial=function(e){for(var t=0,n=[this.model,this.boundingMesh];t<n.length;t++){n[t].setMaterial(e)}},n.prototype.doMoveToPano=function(e,t,n,i){var r,o,s,a,M,c,l,d,N,p,h,D=this;void 0===n&&(n={});var g=n.effect,y=void 0===g?"fly":g,T=n.limit,z=void 0===T||T,j=n.easing,f=void 0===j?We.Quadratic.InOut:j,v=this.currentPanoIndex,m=this.work.observers[e],w=this.work.observers[v].accessibleNodes.indexOf(e)>=0,I=m.video,x=m.visibleNodes;x=x.filter((function(e){var t=D.work.observers[e];return t.loadable||t.active}));var L=this.calculateMovingDuration(n.duration,this.camera.pose.offset.distanceTo(m.standingPosition)),A=this.camera.pose.offset.clone(),E=null!==(o=null===(r=this.getModelAndBoundingMaterial())||void 0===r?void 0:r.modelAlpha)&&void 0!==o?o:0,C=null!==(a=null===(s=this.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==a?a:0,k=this.camera.pose.longitude,U=this.camera.pose.latitude,S=this.camera.pose.fov,b=m.position,Q=null!==(c=null===(M=this.getModelAndBoundingMaterial())||void 0===M?void 0:M.pano0Matrix)&&void 0!==c?c:new u.Matrix4,Y=(new u.Matrix4).compose(m.position,m.quaternion,new u.Vector3(-1,1,1)),P=null!==(l=n.longitude)&&void 0!==l?l:k,_=null!==(d=n.latitude)&&void 0!==d?d:U,B=null!==(N=n.fov)&&void 0!==N?N:S,R={fov:B,longitude:P,latitude:_,offset:b.clone()};this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition),this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),n.moveStartCallback&&n.moveStartCallback(e,R),this.emit("panoWillArrive",e,R,i),this.needsRender=!0,w&&(hn.add(this.model),pn.referencePosition.copy(A),null===(p=this.depthCamera)||void 0===p||p.position.copy(A),null===(h=this.depthCamera)||void 0===h||h.update(this.renderer,hn),this.scene.add(this.model),this.scene.children.unshift(this.scene.children.pop()));var V=function(){var r=D.getModelAndBoundingMaterial()||{},o=r.pano0Map,s=r.pano1Map;o&&o!==s&&o!==t&&o.dispose();var a={modelAlpha:0,perspToOrtho:0,pano0Matrix:Y,pano0Map:t,pano0DepthMap:D.depthCamera?D.depthCamera.renderTarget.texture:null,pano1Matrix:Y,pano1Map:t,progress:0};if(I&&Object.keys(I).length>0){var M=D.videoTexture.image;M.oncanplay=function(){M.oncanplay=function(){},M.currentTime=0,M.play(),D.setModelAndBoundingMaterial({panoVideoAlpha:0,panoVideoMap:D.videoTexture,panoVideoSize:I.size,panoVideoMatrix:on.clone().multiply(Y).multiply(I.matrix)})},M.src=I.source,M.ontimeupdate=function(){if(M.currentTime>.5&&M.src===(null==I?void 0:I.source)){M.ontimeupdate=function(){};var e=Je(230,f).onUpdate((function(e){var t=e.progress;return D.setModelAndBoundingMaterial({panoVideoAlpha:t})})).onComplete((function(){return e.destroy()}))}}}D.setModelAndBoundingMaterial(a),D.panoCircleMeshes.forEach((function(e){e.visible=x.indexOf(e.panoIndex)>=0})),D.updateCamera({offset:b},i,z),D.panoCircleMeshes[e]&&D.panoCircleMeshes[e].setProgress(0),n.moveEndCallback&&n.moveEndCallback(e,D.camera.copyPose()),D.currentPanoIndex=e,D.preventTapGesture=!1,O((function(){D.emit("panoArrived",e,D.camera.copyPose(),i)})),D.needsRender=!0};if(this.preventTapGesture=!0,L){var F=this.videoTexture.image;F.pause(),F.removeAttribute("src"),F.oncanplay=function(){},F.ontimeupdate=function(){},this.videoTexture.needsUpdate=!0;var q=this.getModelAndBoundingMaterial()||{},H=q.pano0Map,G=q.pano1Map;G&&G!==H&&G!==t&&G.dispose();var W={pano1Matrix:Y,pano1Map:t,pano0DepthMap:w&&this.depthCamera?this.depthCamera.renderTarget.texture:null,panoVideoMap:null,panoVideoSize:new u.Vector2,panoVideoMatrix:new u.Matrix4,panoVideoAlpha:0,useBlackTransition:"instant"===y};if("fade"===y){var Z=Q.clone();Z.setPosition(b),W.pano0Matrix=Z,A.copy(b),this.updateCamera({offset:b},i,z)}this.setModelAndBoundingMaterial(W),"fly"!==y&&this.panoCircleMeshes.forEach((function(e){return e.visible=!1})),this.renderer.compile(this.scene,this.camera),this.tweenPosition=Je(L,f).onUpdate((function(t){var n=t.progress;D.setModelAndBoundingMaterial({progress:n,modelAlpha:tt(E,0,n),perspToOrtho:tt(C,0,Math.min(5*n,1))});var r=new u.Vector3(tt(A.x,b.x,n),tt(A.y,b.y,n),tt(A.z,b.z,n));D.updateCamera({offset:r},i,z),n>.9&&(D.preventTapGesture=!1),D.emit("movingToPano",e,v,n),"fly"===y?i&&D.lastMouseMoveEvent&&D.onMouseMove(D.lastMouseMoveEvent):D.hideIntersectMesh(),D.needsRender=!0})).onComplete((function(){D.tweenPosition&&(D.tweenPosition.completed=!0,D.tweenPosition.destroy()),delete D.tweenPosition,V()})).onCancel((function(){n.moveCancelCallback&&n.moveCancelCallback()}))}else V();if(k!==P||U!==_||S!==B){var J=function(e){var t=e.progress,n=nt(k,P,t),r=tt(U,_,t),o=tt(S,B,t);D.updateCamera({longitude:n,latitude:r,fov:o},i,z)},X=function(){return J({progress:1})};L>0?this.tweenCoordinates=Je(L,f).onUpdate(J).onComplete((function(){D.tweenCoordinates&&(D.tweenCoordinates.destroy(),delete D.tweenCoordinates),X()})):X()}},n.prototype.getForwardPanoIndexOrNot=function(e){var t=this,n=this.camera,i=this.currentPanoIndex,r=this.work.observers[i].accessibleNodes;r=r.filter((function(e){var n=t.work.observers[e];return n.loadable||n.active}));var o,s=n.getWorldDirection(new u.Vector3);o=e?e.ray.direction.clone():s.clone();var a=n.pose.offset.clone();if(o.y=a.y=0,0===o.length()||0===a.length())return null;for(var M=0,c=r.filter((function(e){var i=t.work.observers[e].standingPosition.clone().sub(n.pose.offset);return 0!==i.length()&&i.angleTo(s)<n.fov/2/180*Math.PI})).map((function(e){var n=t.work.observers[e].standingPosition.clone();return Object.assign(n,{y:0,panoIndex:e})})).sort((function(e,t){return e.distanceTo(a)-t.distanceTo(a)}));M<c.length;M++){var l=c[M],d=l.clone().sub(a);if(0!==d.length()&&o.angleTo(d)<Math.PI/6)return l.panoIndex}return null},n.prototype.onTapGesture=function(e){var n=this;if(this.interiaMovement=!1,!0!==this.preventTapGesture){var i=null,r=this.work.observers[this.currentPanoIndex],o=r.accessibleNodes.filter((function(e){return n.work.observers[e].position.distanceTo(n.camera.pose.offset)<n.maxAccessibleDistance})),s=this.relativeClientPosition(e.center),a=new u.Raycaster;a.setFromCamera(s,this.camera);var M=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!(this.emit("wantsGesture","tap",M,!0)||this.emit("wantsTapGesture",a,s))){this.emit("gesture","tap",M,!0),this.emit("tapGesture",a,s);var c=this.camera.getWorldDirection(new u.Vector3).setY(0).normalize(),l=this.model.intersectRaycaster(a)[0];if(l){var d=at(o,(function(e){var t=n.work.observers[e].standingPosition.clone();return t.clone().sub(n.camera.pose.offset).setY(0).angleTo(c)>Math.PI/2?1/0:t.distanceTo(l.point)}),!0),N=d[0];d[1]<this.panoTapTriggerRadius&&(i=N)}if(j(i)&&(i=this.getForwardPanoIndexOrNot(a)),j(i))this.canNotMoveAnimation();else{var p=this.work.observers[i];if(this.emit("panoSelected",i),p.active){for(var h=Math.PI/6,D=Math.PI/12,g=p.position.clone().setY(0).sub(r.position.clone().setY(0)).normalize(),y=g.clone().applyAxisAngle(new u.Vector3(0,1,0),h),T=g.clone().applyAxisAngle(new u.Vector3(0,1,0),-h),z=[],f=[],v=[],m=0,w=p.accessibleNodes;m<w.length;m++){if((N=w[m])!==this.currentPanoIndex&&N!==i){var I=this.work.observers[N].position.clone().setY(0).sub(p.position.clone().setY(0));g.angleTo(I)<h?v.push(I):y.angleTo(I)<h?z.push(I):T.angleTo(I)<h&&f.push(I)}}var x=(v.length>0?v:t.__spreadArray(t.__spreadArray([],z),f)).slice().sort((function(e,t){return e.angleTo(g)-t.angleTo(g)}))[0],L={};x&&x.angleTo(c)>D&&(L.longitude=Math.atan2(-x.x,-x.z)),this.emit("wantsMoveToPano",i,L,!0)}else this.panoCircleMeshes[i]&&(this.panoCircleMeshes[i].setDisabled(!1),this.panoCircleMeshes[i].setLoading(!0))}}}},n}(Ct);function gn(e,t){var n,i,r,o,s=new u.Vector3,a=new u.Vector3,M=null;"VRFrameData"in window&&(M=new window.VRFrameData),navigator.getVRDisplays&&navigator.getVRDisplays().then((function(e){i=e,e.length>0?n=e[0]:t&&t(new Error("HMD not available"))})).catch((function(){console.warn("THREE.VREffect: Unable to get VR Displays")})),this.isPresenting=!1,this.scale=1;var c=this,l=e.getSize(new u.Vector2),d=!1,N=e.getPixelRatio();this.getVRDisplay=function(){return n},this.setVRDisplay=function(e){n=e},this.getVRDisplays=function(){return console.warn("THREE.VREffect: getVRDisplays() is being deprecated."),i},this.setSize=function(t,i,r){if(l=new u.Vector2(t,i),d=r,c.isPresenting){var o=n.getEyeParameters("left");e.setPixelRatio(1),e.setSize(2*o.renderWidth,o.renderHeight,!1)}else e.setPixelRatio(N),e.setSize(t,i,r)};var p=e.domElement,h=[0,0,.5,1],D=[.5,0,.5,1];function g(){var t=c.isPresenting;if(c.isPresenting=void 0!==n&&n.isPresenting,c.isPresenting){var i=n.getEyeParameters("left"),r=i.renderWidth,o=i.renderHeight;t||(N=e.getPixelRatio(),l=e.getSize(new u.Vector2),e.setPixelRatio(1),e.setSize(2*r,o,!1))}else t&&(e.setPixelRatio(N),e.setSize(l.width,l.height,d))}window.addEventListener("vrdisplaypresentchange",g,!1),this.setFullScreen=function(e){return new Promise((function(t,i){void 0!==n?c.isPresenting!==e?e?(n.requestPresent([{source:p}]),t()):(n.exitPresent(),t()):t():i(new Error("No VR hardware found."))}))},this.requestPresent=function(){return this.setFullScreen(!0)},this.exitPresent=function(){return this.setFullScreen(!1)},this.requestAnimationFrame=function(e){return void 0!==n?n.requestAnimationFrame(e):window.requestAnimationFrame(e)},this.cancelAnimationFrame=function(e){void 0!==n?n.cancelAnimationFrame(e):window.cancelAnimationFrame(e)},this.submitFrame=function(){void 0!==n&&c.isPresenting&&n.submitFrame()},this.autoSubmitFrame=!0;var y=new u.PerspectiveCamera;y.layers.enable(1);var T=new u.PerspectiveCamera;function z(e,t,n,i){var r=Math.PI/180;return function(e,t,n,i){n=void 0===n?.01:n,i=void 0===i?1e4:i;var r=(t=void 0===t||t)?-1:1,o=new u.Matrix4,s=o.elements,a=function(e){var t=2/(e.leftTan+e.rightTan),n=(e.leftTan-e.rightTan)*t*.5,i=2/(e.upTan+e.downTan);return{scale:[t,i],offset:[n,(e.upTan-e.downTan)*i*.5]}}(e);return s[0]=a.scale[0],s[1]=0,s[2]=a.offset[0]*r,s[3]=0,s[4]=0,s[5]=a.scale[1],s[6]=-a.offset[1]*r,s[7]=0,s[8]=0,s[9]=0,s[10]=i/(n-i)*-r,s[11]=i*n/(n-i),s[12]=0,s[13]=0,s[14]=r,s[15]=0,o.transpose(),o}({upTan:Math.tan(e.upDegrees*r),downTan:Math.tan(e.downDegrees*r),leftTan:Math.tan(e.leftDegrees*r),rightTan:Math.tan(e.rightDegrees*r)},t,n,i)}T.layers.enable(2),this.render=function(t,i){var l,d;if(n&&c.isPresenting){var N=t.autoUpdate;N&&(t.updateMatrixWorld(),t.autoUpdate=!1);var p=n.getEyeParameters("left"),g=n.getEyeParameters("right");s.fromArray(p.offset),a.fromArray(g.offset),Array.isArray(t)&&(console.warn("THREE.VREffect.render() no longer supports arrays. Use object.layers instead."),t=t[0]);var j,f,v=e.getSize(new u.Vector2),m=n.getLayers();if(m.length){var w=m[0];j=null!==w.leftBounds&&4===(null===(l=w.leftBounds)||void 0===l?void 0:l.length)?w.leftBounds:h,f=null!==w.rightBounds&&4===(null===(d=w.rightBounds)||void 0===d?void 0:d.length)?w.rightBounds:D}else j=h,f=D;r={x:Math.round(v.width*j[0]),y:Math.round(v.height*j[1]),width:Math.round(v.width*j[2]),height:Math.round(v.height*j[3])},o={x:Math.round(v.width*f[0]),y:Math.round(v.height*f[1]),width:Math.round(v.width*f[2]),height:Math.round(v.height*f[3])},e.setScissorTest(!0),e.autoClear&&e.clear(),null===i.parent&&i.updateMatrixWorld(),i.matrixWorld.decompose(y.position,y.quaternion,y.scale),i.matrixWorld.decompose(T.position,T.quaternion,T.scale);var I=this.scale;return y.translateOnAxis(s,I),T.translateOnAxis(a,I),n.getFrameData&&M?(n.depthNear=i.near,n.depthFar=i.far,n.getFrameData(M),y.projectionMatrix.elements=[].slice.call(M.leftProjectionMatrix),T.projectionMatrix.elements=[].slice.call(M.rightProjectionMatrix)):(y.projectionMatrix=z(p.fieldOfView,!0,i.near,i.far),T.projectionMatrix=z(g.fieldOfView,!0,i.near,i.far)),e.setViewport(r.x,r.y,r.width,r.height),e.setScissor(r.x,r.y,r.width,r.height),e.render(t,y),e.setViewport(o.x,o.y,o.width,o.height),e.setScissor(o.x,o.y,o.width,o.height),e.render(t,T),e.setViewport(0,0,v.width,v.height),e.setScissorTest(!1),N&&(t.autoUpdate=!0),void(c.autoSubmitFrame&&c.submitFrame())}e.render(t,i)},this.dispose=function(){window.removeEventListener("vrdisplaypresentchange",g,!1)}}var yn=new u.SphereBufferGeometry(.1,32,32);function Tn(e,t){Array.isArray(e)?e.forEach((function(e){e instanceof u.MeshBasicMaterial&&e.setValues({color:t})})):e instanceof u.MeshBasicMaterial&&e.setValues({color:t})}var zn=function(e){function n(){var t=e.call(this)||this,n=new u.MeshBasicMaterial({color:8900346,opacity:.5,transparent:!0});return t.mesh=new u.Mesh(yn,n),t.active=!1,t.current=!1,t.add(t.mesh),t}return t.__extends(n,e),n.prototype.isActive=function(){return this.active},n.prototype.isCurrent=function(){return this.current},n.prototype.setActive=function(){!0!==this.active&&(this.active=!0,Tn(this.mesh.material,16776960))},n.prototype.setCurrent=function(){!0!==this.current&&(this.current=!0,Tn(this.mesh.material,65280))},n.prototype.reset=function(){!1===this.current&&!1===this.active||(this.active=!1,this.current=!1,Tn(this.mesh.material,8900346))},n.prototype.dispose=function(){this.remove(this.mesh),Array.isArray(this.mesh.material)?this.mesh.material.forEach((function(e){return e.dispose()})):this.mesh.material.dispose()},n}(u.Object3D);var jn=null,fn=function(e){function n(t){var i=this;j(jn)&&(jn=new N.default(t.webvrPolyfillConfig||{}));var r=n.parseArgs(t);i=e.call(this,r)||this;var o=r.element,s=r.renderer,a=r.panoIndex,M=void 0===a?0:a;i.effect=new gn(s);var u=o.offsetWidth,c=o.offsetHeight;i.element=o,i.effect.setSize(u,c),i.effect.isPresenting=!0,i.panoSphereMeshes=i.work.observers.map((function(e,t){var n=new zn;return n.name="panoSphereMesh_"+t,n.position.copy(e.position),Object.assign(n,{panoIndex:t}),i.helper.add(n),n}));var l=i.work.observers[M].visibleNodes;l=l.filter((function(e){return i.work.observers[e].active}));var d=i.panoSphereMeshes.filter((function(e){return e.panoIndex===M}))[0];return i.panoSphereMeshes.forEach((function(e){if(e.visible=l.indexOf(e.panoIndex)>=0,d){var t=d.position.distanceTo(e.position)<5;e.visible=e.visible&&t}})),i.intersectMesh.parent&&i.intersectMesh.parent.remove(i.intersectMesh),i.initHelper(o),i}return t.__extends(n,e),n.parseArgs=function(n){var i=t.__assign(t.__assign({},n),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,i)},n.initAnimationEndPose=function(t){var n=this.parseArgs(t);return e.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){var t=this;e.prototype.destroy.call(this),this.panoSphereMeshes&&(this.panoSphereMeshes.forEach((function(e){t.helper.remove(e),e.dispose()})),this.panoSphereMeshes.length=0),this.destroyHelper()},n.prototype.initHelper=function(e){for(var t="five_webvr_helper_"+m(),n=1,i=document.getElementsByTagName("meta"),r=0;r<i.length;r++){var o=i[r];if("viewport"===o.getAttribute("name")){var s=(o.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);s&&(n=Number(s[1])),isNaN(n)&&(n=1)}}var a=function(e){return Math.floor(e*n)+"px"},M=document.createElement("style"),u="\n ."+t+"{\n font-family:sans-serif;\n background:#394043;color:#ffffff;\n position:absolute;display:none;\n -webkit-tap-highlight-color:rgba(0,0,0,0);\n }\n ."+t+" img{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,-100%);\n -moz-transform:translate(-50%,-100%);\n transform:translate(-50%,-100%);\n pointer-events:none;\n width:"+a(132)+";\n height:"+a(162)+";\n }\n ."+t+" ol{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,0);\n -moz-transform:translate(-50%,0);\n transform:translate(-50%,0);\n pointer-events:none;\n margin-top:"+a(38)+";\n font-size:"+a(16)+";\n line-height:"+a(30)+";\n }\n ."+t+" li{\n list-style-type:none;\n white-space:nowrap;\n position:relative;\n padding-left:"+a(14)+";\n }\n ."+t+" li:before{\n content:'';display:block;height:"+a(6)+";width:"+a(6)+";\n position:absolute;top:50%;left:0;\n -webkit-transform:translate(0,-50%);\n -moz-transform:translate(0,-50%);\n transform:translate(0,-50%);\n border-radius:50%;background:#ffffff;\n }\n @media screen and (orientation: portrait){\n ."+t+"{display: block!important}\n }\n ";M.setAttribute("type","text/css"),"styleSheet"in M?M.styleSheet.cssText=u:M.appendChild(document.createTextNode(u));var c=this.helperElement=document.createElement("div");c.className=t,c.innerHTML='\n <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTMycHgiIGhlaWdodD0iMTYycHgiIHZpZXdCb3g9IjAgMCAxMzIgMTYyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4xICg0NDQ2MykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+R3JvdXA8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjY1Ljk4NTM0MjMgOTMuMTg5NjU1MiAwIDkzLjE4OTY1NTIgMCAwLjI0NzE1NTE3MiAxMzEuOTcwNjg1IDAuMjQ3MTU1MTcyIDEzMS45NzA2ODUgOTMuMTg5NjU1MiI+PC9wb2x5Z29uPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IuWKoOi9vemhtS1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTE4LjAwMDAwMCwgLTE4NC4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTguMDAwMDAwLCAxODQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iUGFnZS0xIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iaXBob25lIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNS4wMDAwMDAsIDAuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4yMDIzNzg3LDMyLjI2OTE1MzIgQzYyLjIwODU3NTQsMzQuNDI4MDQyOSA2MC42ODkzNDU5LDM3LjA2MDgzNTEgNTguODA3NjA4MiwzOC4xNDI4NjEgTDU1Ljg3MDM2MjMsMzkuODQwMjM3NyBMNTUuMTc5NDI3OSwzOC42Mzc0MTMgTDU1LjEzNTAxOCwyMi4xNTMwMzY0IEw1Ni4zMTM0Mjc5LDIyLjE0Njg0MTYgQzU2LjMxMzQyNzksMjMuNDk1MjQ0MiA1Ny4yNjk3ODg1LDI0LjAzOTM1NDUgNTguNDQ3MTY1NiwyMy4zNTU4NjEgQzU5LjYxODM0NTksMjIuNjc4NTYyMyA2MC41NjIzMTMxLDIxLjAzOTAwMzkgNjAuNTYyMzEzMSwxOS42OTY3OTYxIEw2Mi4xNjQxNjU2LDE5LjY5MDYwMTMgTDYyLjIwMjM3ODcsMzIuMjY5MTUzMiBaIiBpZD0iRmlsbC0xIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4xMjAxNjg5LDUuMjYzNjIyNzMgTDYyLjE2MzU0NTksMTkuNjkxMzI0IEw2MC41NjI3MjYyLDE5LjY5NjQ4NjQgQzYwLjU1NTQ5NjcsMTguMzQxODg5IDU5LjYwNTMzMjgsMTcuNzk3Nzc4NiA1OC40Mjc5NTU3LDE4LjQ3NTA3NzMgQzU3LjI1Njc3NTQsMTkuMTUyMzc2IDU2LjMwNjYxMTUsMjAuNzk4MTI5MiA1Ni4zMTI4MDgyLDIyLjE0NzU2NDMgTDU1LjEzNTQzMTEsMjIuMTUyNzI2NiBMNTUuMDkxMDIxMyw3LjAxMDU1Nzc5IEw1NC4zOTQ5MjMsNS44MDc3MzMxMiBMNTguNzA2ODA4MiwzLjMxOTQ4NjM2IEM2MC41ODc1MTMxLDIuMjMxMjY1NTggNjIuMTIwMTY4OSwzLjEwNDczMzEyIDYyLjEyMDE2ODksNS4yNjM2MjI3MyIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNjAuMTEyNjM3NywxOS45NTYxNTE5IEM2MC4xMTI2Mzc3LDIxLjAxMzM5ODcgNTkuMzY0OSwyMi4zMTEyMTA0IDU4LjQ0MDU1NTcsMjIuODQyOTMxMiBDNTcuNTE2MjExNSwyMy4zNzU2ODQ0IDU2Ljc2MjI3NywyMi45NDUxNDU1IDU2Ljc2MjI3NywyMS44ODY4NjYyIEM1Ni43NTYwODAzLDIwLjgyMzQyNDcgNTcuNTAzODE4LDE5LjUyNTYxMyA1OC40MzQzNTksMTguOTkzODkyMiBDNTkuMzUyNTA2NiwxOC40NjIxNzE0IDYwLjEwNjQ0MSwxOC44OTI3MTA0IDYwLjExMjYzNzcsMTkuOTU2MTUxOSIgaWQ9IkZpbGwtNyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOS4wMTA4NTkwMiw1My4yOTE1MzQ0IEw4Ljk5MTIzNjA3LDQ1LjYxOTI2ODIgQzguOTkxMjM2MDcsNDUuNDc0NzIyNyA4Ljg5MDAyMjk1LDQ1LjQxNjkwNDUgOC43NjQwMjI5NSw0NS40ODYwNzk5IEM4LjYzNjk5MDE2LDQ1LjU2MzUxNDkgOC41NDE5NzM3Nyw0NS43MzM4NzIxIDguNTQxOTczNzcsNDUuODc4NDE3NSBMOC41NjA1NjM5Myw1My41NTE3MTYyIEM4LjU2MDU2MzkzLDUzLjY5MTA5OTQgOC42NjI4MDk4NCw1My43NDY4NTI2IDguNzgyNjEzMTEsNTMuNjc3Njc3MyBDOC45MDk2NDU5LDUzLjYwMjMwNzEgOS4wMTA4NTkwMiw1My40MzE5NSA5LjAxMDg1OTAyLDUzLjI5MTUzNDQgTDkuMDEwODU5MDIsNTMuMjkxNTM0NCBaIE01NS4xNzk1MzExLDM4LjYzNzcyMjcgTDU1Ljg3MDQ2NTYsMzkuODQwNTQ3NCBMOS4xODc0NjU1Nyw2Ni43ODE3NTUyIEM3LjMwNzc5MzQ0LDY3Ljg3MTAwODQgNS43NzUxMzc3LDY2Ljk5NjUwODQgNS43NzUxMzc3LDY0LjgzODY1MTMgTDUuNjkyNTE0NzUsMzcuODMyMzk4MSBDNS42ODYzMTgwMywzNS42NzU1NzM0IDcuMjA1NTQ3NTQsMzMuMDQxNzQ4NyA5LjA4NzI4NTI1LDMxLjk1ODY5MDMgTDU0LjM5NDYxMzEsNS44MDgzNTI2IEw1NS4wOTA3MTE1LDcuMDExMTc3MjcgTDExLjg5ODUzMTEsMzEuOTM5MDczNCBMMTEuOTg3MzUwOCw2My41NjU2MTg4IEw1NS4xNzk1MzExLDM4LjYzNzcyMjcgWiIgaWQ9IkZpbGwtOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IEM1NC44NjYyODY5LDAuMDAwNTE2MjMzNzY2IDU0LjM0Njc5NTEsMC4xNTAyMjQwMjYgNTMuNzk4Mzg1MiwwLjQ2NzE5MTU1OCBMNC4xNzkxNzIxMywyOS4xMDU3NzYgQzIuMjk5NSwzMC4xOTA4OTk0IDAuNzgwMjcwNDkyLDMyLjgyMTYyNjYgMC43ODU0MzQ0MjYsMzQuOTgxNTQ4NyBMMC44NjI4OTM0NDMsNjEuOTg3ODAxOSBDMC44NjU5OTE4MDMsNjMuMDYwNTM1NyAxLjI0Mzk5MTgsNjMuODE1MjY5NSAxLjg1NTQwMTY0LDY0LjE2OTQwNTggTDYuNzY0MjM3Nyw2Ny4wMjIxMTM2IEM2LjE1Mzg2MDY2LDY2LjY2Njk0NDggNS43NzQ4Mjc4Nyw2NS45MTIyMTEgNS43NzE3Mjk1MSw2NC44Mzk0NzczIEw1LjY5NTMwMzI4LDM3LjgzMzIyNCBDNS42ODkxMDY1NiwzNS42NzQzMzQ0IDcuMjA4MzM2MDcsMzMuMDQyNTc0NyA5LjA4ODAwODIsMzEuOTU3NDUxMyBMNTguNzA3MjIxMywzLjMxODg2Njg4IEM1OS4yNTY2NjM5LDMuMDAxODk5MzUgNTkuNzc1MTIzLDIuODUyMTkxNTYgNjAuMjM0NzEzMSwyLjg1MjE5MTU2IEM2MC41NjgzMDMzLDIuODUyMTkxNTYgNjAuODY5ODc3LDIuOTMwNjU5MDkgNjEuMTMwMTM5MywzLjA4MTM5OTM1IEw1Ni4yMjAyNzA1LDAuMjMwNzU2NDk0IEM1NS45NjEwNDEsMC4wNzg5ODM3NjYyIDU1LjY1ODQzNDQsMC4wMDA1MTYyMzM3NjYgNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IE01NS4zMjU4NzcsMC42MzM0MTg4MzEgQzU1LjU0Mzc5NTEsMC42MzM0MTg4MzEgNTUuNzM3OTU5LDAuNjgxOTQ0ODA1IDU1LjkwMjE3MjEsMC43NzY5MzE4MTggTDU4Ljg5NjIyMTMsMi41MTY2Mzk2MSBDNTguNzI4OTA5OCwyLjU4Nzg3OTg3IDU4LjU2MDU2NTYsMi42NzM1NzQ2OCA1OC4zOTExODg1LDIuNzcxNjU5MDkgTDguNzcxOTc1NDEsMzEuNDEwMjQzNSBDNi42ODQ3MTMxMSwzMi42MTQxMDA2IDUuMDU0OTc1NDEsMzUuNDM2ODY2OSA1LjA2MjIwNDkyLDM3LjgzNTI4OSBMNS4xMzg2MzExNSw2NC44NDE1NDIyIEM1LjEzODYzMTE1LDY1LjAyMTE5MTYgNS4xNDg5NTkwMiw2NS4xOTU2Nzg2IDUuMTY3NTQ5MTgsNjUuMzYyOTM4MyBMMi4xNzM1LDYzLjYyMzIzMDUgQzEuNzM4Njk2NzIsNjMuMzcwMjc2IDEuNDk4MDU3MzgsNjIuNzg3OTY0MyAxLjQ5NTk5MTgsNjEuOTg1NzM3IEwxLjQxOTU2NTU3LDM0Ljk3OTQ4MzggQzEuNDEzMzY4ODUsMzMuMDU5MDk0MiAyLjgyMzEyMjk1LDMwLjYxOTM3MzQgNC40OTUyMDQ5MiwyOS42NTQwMTYyIEw1NC4xMTU0NTA4LDEuMDE0Mzk5MzUgQzU0LjU0ODE4ODUsMC43NjU1NzQ2NzUgNTQuOTY2NDY3MiwwLjYzMzQxODgzMSA1NS4zMjU4NzcsMC42MzM0MTg4MzEiIGlkPSJGaWxsLTM1Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjA4ODUyNDU5LDMyLjI3NDIxMjMgQzkuMDMzNzg2ODksMzIuMjc0MjEyMyA4Ljk4MDA4MTk3LDMyLjI1OTc1NzggOC45Mjk0NzU0MSwzMi4yMzE4ODEyIEw0LjM4OTM0NDI2LDI5LjU5MzkyNjYgQzQuMjM3NTI0NTksMjkuNTA2MTY2OSA0LjE4NTg4NTI1LDI5LjMxMjA2MyA0LjI3MzY3MjEzLDI5LjE2MTMyMjcgQzQuMzYyNDkxOCwyOS4wMDk1NSA0LjU1NjY1NTc0LDI4Ljk1OTk5MTYgNC43MDc0NDI2MiwyOS4wNDY3MTg4IEw5LjI0NzU3Mzc3LDMxLjY4NDY3MzQgQzkuMzk4MzYwNjYsMzEuNzcyNDMzMSA5LjQ1LDMxLjk2NTUwNDUgOS4zNjIyMTMxMSwzMi4xMTcyNzczIEM5LjMwMzM0NDI2LDMyLjIxNzQyNjYgOS4xOTY5NjcyMSwzMi4yNzQyMTIzIDkuMDg4NTI0NTksMzIuMjc0MjEyMyIgaWQ9IkZpbGwtMzciPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTU4LjcwNzYzNDQsMy42MzUzMTgxOCBDNTguNjUyODk2NywzLjYzNTMxODE4IDU4LjU5OTE5MTgsMy42MjE4OTYxIDU4LjU0ODU4NTIsMy41OTI5ODcwMSBMNTMuOTY5MjA4MiwwLjkzMjMxODE4MiBDNTMuODE4NDIxMywwLjg0NDU1ODQ0MiA1My43NjY3ODIsMC42NTA0NTQ1NDUgNTMuODU0NTY4OSwwLjQ5OTcxNDI4NiBDNTMuOTQyMzU1NywwLjM0NjkwOTA5MSA1NC4xMzY1MTk3LDAuMjk4MzgzMTE3IDU0LjI4NzMwNjYsMC4zODUxMTAzOSBMNTguODY2NjgzNiwzLjA0NTc3OTIyIEM1OS4wMTc0NzA1LDMuMTMzNTM4OTYgNTkuMDY5MTA5OCwzLjMyNjYxMDM5IDU4Ljk4MTMyMywzLjQ3ODM4MzEyIEM1OC45MjI0NTQxLDMuNTc5NTY0OTQgNTguODE2MDc3LDMuNjM1MzE4MTggNTguNzA3NjM0NCwzLjYzNTMxODE4IiBpZD0iRmlsbC0zOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMy4zMjA5MjYyMyw2My4zMzk5MjE0IEMyLjc5NjI3MDQ5LDYzLjMzOTkyMTQgMi4zNzA3NjIzLDYyLjkxNTU3NzMgMi4zNzA3NjIzLDYyLjM5MDA1MTMgTDIuMzcwNzYyMyw1OC4xMzAwOTAzIEMyLjM3MDc2MjMsNTcuNjA0NTY0MyAyLjc5NjI3MDQ5LDU3LjE4MDIyMDEgMy4zMjA5MjYyMyw1Ny4xODAyMjAxIEMzLjg0NTU4MTk3LDU3LjE4MDIyMDEgNC4yNzAwNTczOCw1Ny42MDQ1NjQzIDQuMjcwMDU3MzgsNTguMTMwMDkwMyBMNC4yNzAwNTczOCw2Mi4zOTAwNTEzIEM0LjI3MDA1NzM4LDYyLjkxNTU3NzMgMy44NDU1ODE5Nyw2My4zMzk5MjE0IDMuMzIwOTI2MjMsNjMuMzM5OTIxNCIgaWQ9IkZpbGwtNDEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTQ3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgNjguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IkNsaXAtNDYiPjwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBDODAuMzMyNzcwNiw1MC4yNzIxNzI0IDgxLjQ3MTM3MTgsNDguNjk5MjkzMSA4Mi43NjcwNzczLDQ3Ljk1MDUzNDUgQzgzLjM3MDM5MDIsNDcuNjAyMDg2MiA4My45NDIxMjAyLDQ3LjQ3OTcyNDEgODQuMzM4OTMwMSw0Ny42MTUwNTE3IEM4NC42MTI2NDc5LDQ3LjcwNzQzMSA4NC44MTgzNDExLDQ3LjkyNjIyNDEgODQuOTY3MzQ3Miw0OC4yODQzOTY2IEw4OC41NTQwMjIxLDU2LjkxOTQzMSBDODguNTYzNzM5OSw1Ni45NDEzMTAzIDg4LjU3NjY5NjksNTYuOTYwNzU4NiA4OC41ODcyMjQ1LDU2Ljk4MTAxNzIgQzg4LjU5Nzc1MjEsNTcuMDAwNDY1NSA4OC42MDU4NTAzLDU3LjAxOTkxMzggODguNjE3OTk3NSw1Ny4wMzg1NTE3IEM4OC42MzUwMDM3LDU3LjA2NDQ4MjggODguNjU1MjQ5MSw1Ny4wODcxNzI0IDg4LjY3NDY4NDcsNTcuMTA5ODYyMSBDODguNjg1MjEyMyw1Ny4xMjM2Mzc5IDg4LjY5NDkzMDEsNTcuMTM4MjI0MSA4OC43MDYyNjc1LDU3LjE0OTU2OSBDODguNzMyMTgxNiw1Ny4xNzYzMTAzIDg4Ljc2MDUyNTIsNTcuMTk5ODEwMyA4OC43ODk2Nzg1LDU3LjIyMTY4OTcgQzg4Ljc5Nzc3NjcsNTcuMjI4MTcyNCA4OC44MDUwNjUsNTcuMjM1NDY1NSA4OC44MTMxNjMyLDU3LjI0MTk0ODMgQzg5LjAwNzUxOSw1Ny4zNzgwODYyIDg5LjI2MjYxMSw1Ny40MjEwMzQ1IDg5LjQ5OTg4NzEsNTcuMzMyNzA2OSBMODkuODMxMTAxOCw1Ny4yMDc5MTM4IEw5MC4wNzQ4NTY0LDU3LjExODc3NTkgQzkwLjIxMDkwNTUsNTcuMDY4NTM0NSA5MC4zNDc3NjQ0LDU3LjAxODI5MzEgOTAuNDg1NDMzMSw1Ni45Njk2NzI0IEM5MC43ODY2ODQ3LDU2Ljg2MTg5NjYgOTEuMDkwMzY1Niw1Ni43NTk3OTMxIDkxLjM5NDA0NjYsNTYuNjU3Njg5NyBMOTIuMzY1MDE2LDU2LjM0MTY1NTIgQzkyLjgwMjMxNjYsNTYuMjAzMDg2MiA5My4yNDA0MjcsNTYuMDY4NTY5IDkzLjY4MjU4NjUsNTUuOTQwNTM0NSBDOTMuODUxMDI4Miw1NS44OTE5MTM4IDk0LjAxOTQ2OTksNTUuODQ0OTEzOCA5NC4xODc5MTE3LDU1Ljc5NjI5MzEgTDk0LjI3OTQyMDksNTUuNzcxMTcyNCBDOTQuNjg0MzI4OCw1NS42NTc3MjQxIDk1LjA5MDA0NjYsNTUuNTQ5OTQ4MyA5NS40OTczODQsNTUuNDQ2MjI0MSBMOTUuNjA2NzA5Miw1NS40MTcwNTE3IEM5NS43NjMwMDM3LDU1LjM3NjUzNDUgOTUuOTIwMTA4LDU1LjMzNjAxNzIgOTYuMDc3MjEyMyw1NS4yOTc5MzEgQzk2LjU2NjM0MTEsNTUuMTc3MTg5NyA5Ny4wNTU0Njk5LDU1LjA2Mzc0MTQgOTcuNTQ2MjE4NCw1NC45NTUxNTUyIEw5Ny44NTM5NDg1LDU0Ljg4NTQ2NTUgQzk4LjQ0NDMwNDMsNTQuNzU5MDUxNyA5OS4wMzcwODk2LDU0LjY0MjM2MjEgOTkuNjI3NDQ1NCw1NC41MzM3NzU5IEwxMDAuMDIxMDE2LDU0LjQ2NjUxNzIgQzEwMC42MTU0MjEsNTQuMzYxMTcyNCAxMDEuMjA5MDE2LDU0LjI2NjM2MjEgMTAxLjgwNDIzMSw1NC4xNzk2NTUyIEwxMDIuMjY1MDE2LDU0LjExMjM5NjYgQzEwMi45NjA2NDgsNTQuMDE2Nzc1OSAxMDMuNjQ3MzcyLDUzLjkzNDEyMDcgMTA0LjMwNTc1Miw1My44NjYwNTE3IEwxMDQuODM2MTgyLDUzLjgxNzQzMSBDMTA1LjIyNjUxMyw1My43ODE3NzU5IDEwNS42MTUyMjUsNTMuNzQ3NzQxNCAxMDYuMDA0NzQ2LDUzLjcyMDE4OTcgQzEwNi4yMTQ0ODgsNTMuNzA0NzkzMSAxMDYuNDIxODAxLDUzLjY5MjYzNzkgMTA2LjYzMDczNCw1My42Nzk2NzI0IEMxMDcuMDAwMDEsNTMuNjU3NzkzMSAxMDcuMzY2ODU2LDUzLjYzODM0NDggMTA3LjczNTMyMyw1My42MjM3NTg2IEMxMDcuOTUyMzUzLDUzLjYxNDg0NDggMTA4LjE2OTM4NCw1My42MDUxMjA3IDEwOC4zODU2MDUsNTMuNTk4NjM3OSBDMTA4LjY0Nzk4NSw1My41OTIxNTUyIDEwOC45MTAzNjYsNTMuNTg3MjkzMSAxMDkuMTczNTU2LDUzLjU4NDA1MTcgQzEwOS42NzgwNzEsNTMuNTc1OTQ4MyAxMTAuMTc4NTM3LDUzLjU3Njc1ODYgMTEwLjY4MDYyMyw1My41ODQ4NjIxIEwxMTAuNzY0MDM0LDUzLjU4NTY3MjQgQzExMC45ODE4NzUsNTMuNTg4OTEzOCAxMTEuMTk5NzE1LDUzLjU5MjE1NTIgMTExLjQxNTEyNiw1My41OTc4Mjc2IEMxMTEuNjI4MTA4LDUzLjYwNTEyMDcgMTExLjg0MDI4LDUzLjYxNDg0NDggMTEyLjA1MjQ1Miw1My42MjM3NTg2IEMxMTIuMzE0MDIyLDUzLjYzNDI5MzEgMTEyLjU3NDc4Myw1My42NDcyNTg2IDExMi44MzQ3MzQsNTMuNjYyNjU1MiBDMTEzLjA0NDQ3Niw1My42NzQ4MTAzIDExMy4yNTQyMTgsNTMuNjg5Mzk2NiAxMTMuNDYzOTYxLDUzLjcwNDc5MzEgQzExMy43MjQ3MjEsNTMuNzI0MjQxNCAxMTMuOTg1NDgyLDUzLjc0NDUgMTE0LjI0MzgxMyw1My43NjcxODk3IEMxMTQuNDMzMzEsNTMuNzg1MDE3MiAxMTQuNjIxOTk4LDUzLjgwMjg0NDggMTE0LjgwOTA2NSw1My44MjIyOTMxIEMxMTUuMDczODc1LDUzLjg0OTAzNDUgMTE1LjMzNjI1NSw1My44Nzk4Mjc2IDExNS41OTYyMDYsNTMuOTExNDMxIEMxMTUuNzgwMDM0LDUzLjkzMzMxMDMgMTE1Ljk2MzA1Myw1My45NTYgMTE2LjE0NDQ1Miw1My45ODAzMTAzIEMxMTYuNDEyNTAxLDU0LjAxNjc3NTkgMTE2LjY3ODEyLDU0LjA1NzI5MzEgMTE2Ljk0MTMxLDU0LjA5ODYyMDcgTDExNy4wOTExMjYsNTQuMTIxMzEwMyBDMTE3LjIxMDE2OSw1NC4xMzkxMzc5IDExNy4zMjY3ODMsNTQuMTU3Nzc1OSAxMTcuNDQyNTg3LDU0LjE3NjQxMzggQzExNy43MzA4ODEsNTQuMjI1ODQ0OCAxMTguMDE1MTI2LDU0LjI3OTMyNzYgMTE4LjMwMDk5MSw1NC4zMzUyNDE0IEwxMTguNDQ2NzU4LDU0LjM2MTk4MjggQzExOC41MzUwMjgsNTQuMzc4MTg5NyAxMTguNjIzMjk4LDU0LjM5NTIwNjkgMTE4LjcxMjM3OCw1NC40MTMwMzQ1IEMxMTkuMDE3Njc5LDU0LjQ3NDYyMDcgMTE5LjMxNzMxLDU0LjU0NDMxMDMgMTE5LjYxNTMyMyw1NC42MTQgTDExOS45NzE2NDIsNTQuNjk0MjI0MSBDMTIwLjM4NDY0OCw1NC43OTU1MTcyIDEyMC43OTE5ODUsNTQuOTAyNDgyOCAxMjEuMTkyODQ0LDU1LjAxNjc0MTQgQzEyMS42MjkzMzUsNTUuMTQyMzQ0OCAxMjIuMDU2OTE4LDU1LjI3NjA1MTcgMTIyLjQ3ODgzMiw1NS40MTc4NjIxIEMxMjIuNTU0MTQ1LDU1LjQ0MjE3MjQgMTIyLjYyNzAyOCw1NS40Njk3MjQxIDEyMi43MDA3MjEsNTUuNDk1NjU1MiBMMTIyLjg1NjIwNiw1NS41NTMxODk3IEMxMjMuMTQ1MzEsNTUuNjU0NDgyOCAxMjMuNDMyNzk1LDU1Ljc1NjU4NjIgMTIzLjcxNjIzMSw1NS44Njc2MDM0IEMxMjMuNzc2OTY3LDU1Ljg5MTEwMzQgMTIzLjgzNTI3NCw1NS45MTYyMjQxIDEyMy44OTQzOSw1NS45NDA1MzQ1IEwxMjQuMDQwOTY3LDU2LjAwMTMxMDMgQzEyNC40MTc1MzEsNTYuMTU0NDY1NSAxMjQuNzg1MTg4LDU2LjMxNDkxMzggMTI1LjE0MzkzNiw1Ni40ODI2NTUyIEwxMjUuMjMwNTg3LDU2LjUyMzE3MjQgQzEyNS4zMjc3NjQsNTYuNTY3NzQxNCAxMjUuNDI0OTQyLDU2LjYxMzEyMDcgMTI1LjUyMjEyLDU2LjY2MTc0MTQgQzEyNS44NTk4MTMsNTYuODI3MDUxNyAxMjYuMTYwMjU1LDU2Ljk4MTgyNzYgMTI2LjQzNTU5Myw1Ny4xMzA5MzEgQzEyNi40MzU1OTMsNTcuMzczMjI0MSAxMjYuNDM1NTkzLDU3LjY4NjgyNzYgMTI2LjQzNjQwMiw1OC4wMDM2NzI0IEwxMjYuNDM2NDAyLDU4LjAyNzE3MjQgQzExNy40MzUyOTgsNTMuNTMzIDEwMy4wNTg2MzYsNTMuNTYyMTcyNCA5MC4wMjU0NTc3LDU4LjE5ODE1NTIgTDg4LjQ5ODE0NDgsNTguMTg2IEw3OC44MzI5OTE0LDU1LjY4NzcwNjkgTDc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBaIE03Ni4yNDQwMDk4LDU3LjQ1OTkzMSBMNzYuMjQ3MjQ5MSw1Ni40MjI2ODk3IEM3Ni4yNDcyNDkxLDU2LjQxNTM5NjYgNzYuMjQ0ODE5Niw1Ni40MDg5MTM4IDc2LjI0NDgxOTYsNTYuNDAxNjIwNyBDNzYuMjQ0MDA5OCw1Ni4zODg2NTUyIDc2LjI0NTYyOTQsNTYuMzc0ODc5MyA3Ni4yNDQwMDk4LDU2LjM2MTkxMzggTDc2LjI0NDAwOTgsNTYuMjI5MDE3MiBDNzYuMjQ0MDA5OCw1NS45NjI0MTM4IDc2LjEwMjI5Miw1NS43MTY4NzkzIDc1Ljg3MTQ5NDUsNTUuNTgzOTgyOCBDNzUuNzMyMjA2MSw1NS41MDM3NTg2IDc1LjU3MzQ4MjIsNTUuNDc3ODI3NiA3NS40MTg4MDc0LDU1LjQ5NDg0NDggQzc1LjI5MzI4NTksNTUuNDE3ODYyMSA3NS4xNjQ1MjUyLDU1LjM0MzMxMDMgNzUuMDQyMjQyOSw1NS4yNjM4OTY2IEM3NS4wMDQxODE2LDU1LjIzODc3NTkgNzQuOTY4NTQ5Nyw1NS4yMTI4NDQ4IDc0LjkyOTY3ODUsNTUuMTg2OTEzOCBDNzQuNjg5MTYzMiw1NS4wMjgwODYyIDc0LjQ1MjY5NjksNTQuODY1MjA2OSA3NC4yMjY3NTgzLDU0LjY5ODI3NTkgQzc0LjIxMjk5MTQsNTQuNjg3NzQxNCA3NC4xOTkyMjQ1LDU0LjY3NzIwNjkgNzQuMTg1NDU3Nyw1NC42Njc0ODI4IEM3My42Nzc3MDMxLDU0LjI4OTg2MjEgNzMuMjA1NTgwNCw1My44OTQ0MTM4IDcyLjc3Mzk0ODUsNTMuNDgwMzI3NiBDNzMuNDc3Njc4NSw1MS45MzAxMzc5IDczLjg0NjE0NDgsNTAuMzY2OTgyOCA3My44NDIwOTU3LDQ4LjkzMDI0MTQgQzczLjgzNzIzNjgsNDcuMTYyODc5MyA3My4yNDYwNzEyLDQ1Ljc1NTMxMDMgNzIuMTc3MTE0MSw0NC45NjYwMzQ1IEM3MS43MzczODQsNDQuNjQwMjc1OSA3MS4yMjgwMDk4LDQ0LjQzNjg3OTMgNzAuNjc3MzM1LDQ0LjM0NjEyMDcgQzcwLjY4Nzg2MjYsNDQuMzIzNDMxIDcwLjY5ODM5MDIsNDQuMjk3NSA3MC43MDg5MTc4LDQ0LjI3NDgxMDMgQzcwLjcxMDUzNzQsNDQuMjcxNTY5IDcwLjczMzIxMjMsNDQuMjI3IDcwLjczNDgzMTksNDQuMjIzNzU4NiBDNzAuNzk3OTk3NSw0NC4wOTI0ODI4IDcwLjg2NzY0MTcsNDMuOTYyODI3NiA3MC45MzcyODU5LDQzLjgzMDc0MTQgTDcxLjE4MjY2MDEsNDMuMzU2Njg5NyBDNzEuMjM2MTA4LDQzLjI2MjY4OTcgNzEuMjkxOTg1Myw0My4xNjc4NzkzIDcxLjM0ODY3MjQsNDMuMDczMDY5IEw3MS40MTUwNzczLDQyLjk2Mjg2MjEgQzcxLjUzNDkzMDEsNDIuNzYxMDg2MiA3MS42NTg4MzE5LDQyLjU1ODUgNzEuNzkwMDIyMSw0Mi4zNTY3MjQxIEM3MS44NzAxOTM5LDQyLjIzMjc0MTQgNzEuOTUzNjA0OSw0Mi4xMDg3NTg2IDcyLjAzNzgyNTgsNDEuOTg2Mzk2NiBDNzIuMTc1NDk0NSw0MS43ODYyNDE0IDcyLjMxODAyMjEsNDEuNTg2ODk2NiA3Mi40NjU0MDg2LDQxLjM4OTE3MjQgTDcyLjU2MTc3NjcsNDEuMjU3ODk2NiBDNzIuNjU0OTA1NSw0MS4xMzIyOTMxIDcyLjc0ODAzNDQsNDEuMDA1ODc5MyA3Mi44NDUyMTIzLDQwLjg4MjcwNjkgQzcyLjg4NDg5MzMsNDAuODMxNjU1MiA3Mi45MjcwMDM3LDQwLjc4MjIyNDEgNzIuOTY5MTE0MSw0MC43MzExNzI0IEw3My4wNTk4MTM1LDQwLjYyMzM5NjYgQzczLjIwOTYyOTQsNDAuNDQwMjU4NiA3My4zNTk0NDU0LDQwLjI1NzkzMSA3My41MzM1NTU4LDQwLjA1Nzc3NTkgQzczLjc2NTk3MywzOS43OTAzNjIxIDc0LjAxMDUzNzQsMzkuNTI0NTY5IDc0LjI2NDAwOTgsMzkuMjU5NTg2MiBDNzQuMzQ0MTgxNiwzOS4xNzUzMTAzIDc0LjQyNTE2MzIsMzkuMDkxMDM0NSA3NC41MDg1NzQyLDM5LjAwNjc1ODYgQzc0Ljc1NzE4NzcsMzguNzUxNSA3NS4wMTM4OTk0LDM4LjUwMDI5MzEgNzUuMjg1MTg3NywzOC4yNDM0MTM4IEw3NS4zNjEzMTA0LDM4LjE3MTI5MzEgQzc1LjQ1NjA1ODksMzguMDgxMzQ0OCA3NS41NTU2NjYzLDM3Ljk5MzgyNzYgNzUuNjU1MjczNiwzNy45MDM4NzkzIEw3NS44NzM5MjM5LDM3LjcwODU4NjIgQzc2LjAzODMxNjYsMzcuNTYxMTAzNCA3Ni4yMDE4OTk0LDM3LjQxNTI0MTQgNzYuMzcyNzcwNiwzNy4yNjkzNzkzIEM3Ni40NzM5OTc1LDM3LjE4NDI5MzEgNzYuNTc3NjU0LDM3LjA5ODM5NjYgNzYuNjgxMzEwNCwzNy4wMTMzMTAzIEw3Ni43ODkwMTYsMzYuOTIzMzYyMSBDNzcuMDIzODYyNiwzNi43MzEzMTAzIDc3LjI2MDMyODgsMzYuNTM5MjU4NiA3Ny41MDQwODM0LDM2LjM0ODgyNzYgQzc3LjY1NzEzODcsMzYuMjMwNTE3MiA3Ny44MTE4MTM1LDM2LjExMjIwNjkgNzcuOTY3Mjk4MiwzNS45OTQ3MDY5IEM3OC4yMTc1MzEzLDM1LjgwNTg5NjYgNzguNDc1MDUyOCwzNS42MTk1MTcyIDc4LjczNDE5MzksMzUuNDMzOTQ4MyBMNzguODA0NjQ3OSwzNS4zODQ1MTcyIEM3OC45MzkwNzczLDM1LjI4ODg5NjYgNzkuMDc0MzE2NiwzNS4xOTI0NjU1IDc5LjIxMDM2NTYsMzUuMDk3NjU1MiBDNzkuNTAxMDg5NiwzNC44OTgzMTAzIDc5Ljc5OTkxMTcsMzQuNzAwNTg2MiA4MC4xMDAzNTM0LDM0LjUwNTI5MzEgTDgwLjI3Njg5MzMsMzQuMzg4NjAzNCBDODAuMzcwMDIyMSwzNC4zMjc4Mjc2IDgwLjQ2MjM0MTEsMzQuMjY2MjQxNCA4MC41NjExMzg3LDM0LjIwNDY1NTIgTDgwLjgzNDg1NjQsMzQuMDM0NDgyOCBDODEuMTkzNjA0OSwzMy44MTE2Mzc5IDgxLjU1NTU5MjYsMzMuNTkwNDEzOCA4MS45MzA1Mzc0LDMzLjM3MTYyMDcgQzgyLjM0NzU5MjYsMzMuMTI5MzI3NiA4Mi43NzE5MzYyLDMyLjg5MzUxNzIgODMuMjAxMTM4NywzMi42NjA5NDgzIEM4My4yOTAyMTg0LDMyLjYxMzk0ODMgODMuMzc4NDg4MywzMi41NjY5NDgzIDgzLjQ2ODM3NzksMzIuNTIwNzU4NiBMODQuMjAyODgxLDMyLjEzOTA4NjIgQzg0LjMwMjQ4ODMsMzIuMDg3MjI0MSA4NC40MDI5MDU1LDMyLjAzNTM2MjEgODQuNTAxNzAzMSwzMS45ODUxMjA3IEw4NS4yOTM3MDMxLDMxLjYwMTAxNzIgQzg1LjQ3MjY3MjQsMzEuNTEzNSA4NS42NTI0NTE1LDMxLjQyNjc5MzEgODUuODM0NjYwMSwzMS4zNDI1MTcyIEM4Ni4wMTg0ODgzLDMxLjI1NjYyMDcgODYuMjA0NzQ2LDMxLjE3MzE1NTIgODYuMzkxMDAzNywzMS4wODg4NzkzIEM4Ni42NTc0MzMxLDMwLjk2ODk0ODMgODYuOTI1NDgyMiwzMC44NDkwMTcyIDg3LjE5NTE1MDksMzAuNzMzOTQ4MyBDODcuMzg1NDU3NywzMC42NTA0ODI4IDg3LjU3NjU3NDIsMzAuNTcwMjU4NiA4Ny43NzAxMjAyLDMwLjQ5MDAzNDUgQzg4LjAzOTc4OSwzMC4zNzczOTY2IDg4LjMxMTg4NzEsMzAuMjY2Mzc5MyA4OC41ODQ3OTUxLDMwLjE1Nzc5MzEgQzg4Ljc3NjcyMTUsMzAuMDgxNjIwNyA4OC45Njk0NTc3LDMwLjAwNDYzNzkgODkuMTYwNTc0MiwyOS45MzA4OTY2IEM4OS40MTA4MDc0LDI5LjgzNTI3NTkgODkuNjYxMDQwNSwyOS43NDIwODYyIDg5LjkxMjg5MzMsMjkuNjQ5NzA2OSBDODkuOTE1MzIyNywyOS42NDg4OTY2IDkwLjAwNDQwMjUsMjkuNjE1NjcyNCA5MC4wMDYwMjIxLDI5LjYxNDg2MjEgTDkwLjE0NDUwMDYsMjkuNTYzIEM5MC4yODYyMTg0LDI5LjUxMTk0ODMgOTAuNDI3MTI2NCwyOS40NTkyNzU5IDkwLjU3MTI3MzYsMjkuNDA5MDM0NSBDOTAuNjg1NDU3NywyOS4zNjc3MDY5IDkwLjgwMTI2MTMsMjkuMzI4ODEwMyA5MC45MTYyNTUyLDI5LjI4OTkxMzggTDkxLjAyODgxOTYsMjkuMjUxODI3NiBDOTEuMTc5NDQ1NCwyOS4xOTkxNTUyIDkxLjMzMDg4MSwyOS4xNDcyOTMxIDkxLjQ4MzkzNjIsMjkuMDk1NDMxIEw5Mi40NTI0NzYxLDI4Ljc4MDIwNjkgQzkyLjg4OTc3NjcsMjguNjQyNDQ4MyA5My4zMjcwNzczLDI4LjUwNzkzMSA5My43NjY4MDc0LDI4LjM3OTg5NjYgQzkzLjk2NjAyMjEsMjguMzIyMzYyMSA5NC4xNjYwNDY2LDI4LjI2NjQ0ODMgOTQuMzY3NjkwOCwyOC4yMDk3MjQxIEM5NC43NzA5NzkxLDI4LjA5Nzg5NjYgOTUuMTc1ODg3MSwyNy45ODg1IDk1LjU4MzIyNDUsMjcuODgzOTY1NSBMOTUuNzIyNTEyOSwyNy44NDkxMjA3IEM5NS44Njk4OTk0LDI3LjgxMDIyNDEgOTYuMDE2NDc2MSwyNy43NzIxMzc5IDk2LjE2Mzg2MjYsMjcuNzM1NjcyNCBDOTYuNjUyMTgxNiwyNy42MTY1NTE3IDk3LjE0MTMxMDQsMjcuNTAyMjkzMSA5Ny42MzY5MTc4LDI3LjM5MzcwNjkgTDk3Ljk0MDU5ODgsMjcuMzI0ODI3NiBDOTguNTMwOTU0NiwyNy4xOTc2MDM0IDk5LjEyMjkzMDEsMjcuMDgxNzI0MSA5OS43MTQwOTU3LDI2Ljk3MzEzNzkgTDEwMC4xMDc2NjYsMjYuOTA1ODc5MyBDMTAwLjcwMTI2MSwyNi44MDA1MzQ1IDEwMS4yOTQwNDcsMjYuNzA1NzI0MSAxMDEuODg3NjQyLDI2LjYxODIwNjkgTDEwMi4zNTI0NzYsMjYuNTUwOTQ4MyBDMTAzLjAzMjcyMSwyNi40NTY5NDgzIDEwMy43MTk0NDUsMjYuMzc1MTAzNCAxMDQuMzkyNDAyLDI2LjMwNjIyNDEgTDEwNC45MjQ0NTIsMjYuMjU2NzkzMSBDMTA1LjMxMzE2MywyNi4yMjAzMjc2IDEwNS43MDEwNjUsMjYuMTg3MTAzNCAxMDYuMDg5Nzc3LDI2LjE1OTU1MTcgQzEwNi4yOTc4OTksMjYuMTQ0MTU1MiAxMDYuNTA1MjEyLDI2LjEzMTE4OTcgMTA2LjcxODE5NCwyNi4xMTgyMjQxIEMxMDYuOTY1OTk4LDI2LjEwMzYzNzkgMTA3LjIxMjE4MiwyNi4wOTIyOTMxIDEwNy40NTkxNzUsMjYuMDgwOTQ4MyBMMTA3LjUxOTkxMiw0NS4yODQ1IEw4OS42Mjc4MzgsNTUuNjIxMjU4NiBMODYuMzQyNDE0Nyw0Ny43MTMxMDM0IEM4Ni4wMjkwMTYsNDYuOTU3MDUxNyA4NS41MDE4MjU4LDQ2LjQzNTE4OTcgODQuODE3NTMxMyw0Ni4yMDI2MjA3IEM4NC4wMDIwNDY2LDQ1LjkyNTQ4MjggODMuMDEwODMxOSw0Ni4wODgzNjIxIDgyLjAyMjg1NjQsNDYuNjU5NjU1MiBDODAuMzgyMTY5Myw0Ny42MDc3NTg2IDc5LjAwNTQ4MjIsNDkuNDg0NTE3MiA3OC40MzA1MTI5LDUxLjU1OSBMNzYuMjQ0MDA5OCw1OS40NTkwNTE3IEw3Ni4yNDQwMDk4LDU3LjQ1OTkzMSBaIE01OC4wMzEyNDkxLDExLjkwMTUzNDUgTDMuMjI1MzM0OTcsNDMuNjE4NDMxIEwzLjIyNTMzNDk3LDM3Ljc5NTI5MzEgQzMuMjI1MzM0OTcsMzUuMDY3NjcyNCA0LjY5MTEwMTg0LDMyLjUyNTYyMDcgNy4wNTA5MDU1MiwzMS4xNjAxODk3IEw1NC4zMDQ0NzYxLDMuODE0MjkzMSBDNTUuMDgyNzA5MiwzLjM2MjkzMTAzIDU2LjAxMDc1ODMsMy4zNjIxMjA2OSA1Ni43ODgxODE2LDMuODEyNjcyNDEgQzU3LjU2NjQxNDcsNC4yNjE2MDM0NSA1OC4wMzEyNDkxLDUuMDY2Mjc1ODYgNTguMDMxMjQ5MSw1Ljk2NDk0ODI4IEw1OC4wMzEyNDkxLDExLjkwMTUzNDUgWiBNMTI3LjIwOTc3NywyNS40Mzk5NjU1IEMxMjcuMTQ5ODUsMjUuNDA2NzQxNCAxMjcuMDg5OTI0LDI1LjM3NDMyNzYgMTI3LjAyOTk5OCwyNS4zNDI3MjQxIEMxMjYuOTUzMDY1LDI1LjMwMjIwNjkgMTI2Ljg4MDE4MiwyNS4yNjA4NzkzIDEyNi44MDMyNDksMjUuMjIwMzYyMSBDMTI2LjgwMjQzOSwyNS4yMTk1NTE3IDEyNi44MDE2MjksMjUuMjE5NTUxNyAxMjYuODAxNjI5LDI1LjIxOTU1MTcgQzEyNi42NDEyODYsMjUuMTM1Mjc1OSAxMjYuNDc5MzIzLDI1LjA1NDI0MTQgMTI2LjMxNTc0LDI0Ljk3MzIwNjkgQzEyNi4yOTcxMTQsMjQuOTY0MjkzMSAxMjYuMjc5Mjk4LDI0Ljk1NTM3OTMgMTI2LjI2MTQ4MiwyNC45NDU2NTUyIEMxMjYuMTU3ODI2LDI0Ljg5NTQxMzggMTI2LjA1MDkzLDI0Ljg0NTk4MjggMTI1LjkwNjc4MywyNC43Nzg3MjQxIEMxMjUuOTAzNTQ0LDI0Ljc3NjI5MzEgMTI1Ljg2NDY3MiwyNC43NTg0NjU1IDEyNS44NjA2MjMsMjQuNzU2MDM0NSBDMTI1Ljg0MzYxNywyNC43NDc5MzEgMTI1LjgyNDk5MSwyNC43NDE0NDgzIDEyNS44MDc5ODUsMjQuNzMyNTM0NSBDMTI1LjQ5Mjk2NywyNC41ODgyOTMxIDEyNS4xNzE0NywyNC40NDgxMDM0IDEyNC44NDUxMTQsMjQuMzEzNTg2MiBDMTI0Ljc5MjQ3NiwyNC4yOTA4OTY2IDEyNC43NDIyNjcsMjQuMjY2NTg2MiAxMjQuNjg4ODIsMjQuMjQ1NTE3MiBMMTI0LjU2MDg2OSwyNC4xOTEyMjQxIEMxMjQuNDg3OTg1LDI0LjE2MTI0MTQgMTI0LjQxNTEwMiwyNC4xMzEyNTg2IDEyNC4zNDA1OTksMjQuMTAyMDg2MiBDMTI0LjMxOTU0NCwyNC4wOTMxNzI0IDEyNC4yOTYwNTksMjQuMDg1ODc5MyAxMjQuMjc0MTk0LDI0LjA3Nzc3NTkgQzEyNC4yNTIzMjksMjQuMDY4ODYyMSAxMjQuMjI4MDM0LDI0LjA2MDc1ODYgMTI0LjIwNjE2OSwyNC4wNTE4NDQ4IEMxMjMuOTUzNTA3LDIzLjk1NjIyNDEgMTIzLjY5NzYwNSwyMy44NjMwMzQ1IDEyMy40MzkyNzQsMjMuNzcxNDY1NSBMMTIzLjI4NzgzOCwyMy43MTYzNjIxIEMxMjMuMjA1MjM3LDIzLjY4NjM3OTMgMTIzLjEyMTgyNiwyMy42NTYzOTY2IDEyMy4wMzc2MDUsMjMuNjI4MDM0NSBDMTIyLjU5NTQ0NSwyMy40Nzg5MzEgMTIyLjE0NTk5OCwyMy4zMzk1NTE3IDEyMS42ODY4MzIsMjMuMjA3NDY1NSBDMTIxLjI2ODE1NywyMy4wODgzNDQ4IDEyMC44NDMwMDQsMjIuOTc2NTE3MiAxMjAuNDEwNTYyLDIyLjg3MDM2MjEgQzEyMC4zMzM2MjksMjIuODUxNzI0MSAxMjAuMjU1MDc3LDIyLjgzNDcwNjkgMTIwLjE3NzMzNSwyMi44MTY4NzkzIEwxMjAuMDQxMjg2LDIyLjc4Njg5NjYgQzExOS43Mjg2OTcsMjIuNzEzOTY1NSAxMTkuNDE0NDg4LDIyLjY0MTg0NDggMTE5LjA5NDYxMSwyMi41NzYyMDY5IEwxMTguNjY3ODM4LDIyLjQ5NTk4MjggQzExOC4zNzIyNTUsMjIuNDM4NDQ4MyAxMTguMDc2NjcyLDIyLjM4MTcyNDEgMTE3Ljc3NzA0LDIyLjMzMTQ4MjggQzExNy42NTQ3NTgsMjIuMzExMjI0MSAxMTcuNTMxNjY2LDIyLjI5MjU4NjIgMTE3LjQwODU3NCwyMi4yNzMxMzc5IEwxMTcuMjU3MTM5LDIyLjI0OTYzNzkgQzExNi45ODE4MDEsMjIuMjA2Njg5NyAxMTYuNzA3Mjc0LDIyLjE2NDU1MTcgMTE2LjQzMDMxNywyMi4xMjcyNzU5IEMxMTYuMjY1MTE0LDIyLjEwNTM5NjYgMTE2LjA5OTEwMiwyMi4wODUxMzc5IDExNS45MzMwOSwyMi4wNjQwNjkgTDExNS44NjQyNTUsMjIuMDU1OTY1NSBDMTE1LjYwOTE2MywyMi4wMjUxNzI0IDExNS4zNTI0NTIsMjEuOTk1MTg5NyAxMTUuMTEwMzE3LDIxLjk3MDg3OTMgQzExNS4xMDQ2NDgsMjEuOTcwMDY5IDExNS4wNTI4MiwyMS45NjM1ODYyIDExNS4wNDc5NjEsMjEuOTYzNTg2MiBDMTE0Ljg1NTIyNSwyMS45NDQxMzc5IDExNC42NjAwNTksMjEuOTI0Njg5NyAxMTQuNDYzMjc0LDIxLjkwNjg2MjEgQzExNC4xOTY4NDQsMjEuODgzMzYyMSAxMTMuOTI4Nzk1LDIxLjg2MjI5MzEgMTEzLjY1OTEyNiwyMS44NDI4NDQ4IEMxMTMuNDQyMDk2LDIxLjgyNjYzNzkgMTEzLjIyNTA2NSwyMS44MTEyNDE0IDExMy4wMTQ1MTMsMjEuNzk5MDg2MiBMMTEyLjkyMDU3NCwyMS43OTQyMjQxIEMxMTIuNjgxNjc5LDIxLjc4MDQ0ODMgMTEyLjQ0MTE2MywyMS43NjgyOTMxIDExMi4xOTk4MzgsMjEuNzU3NzU4NiBDMTExLjk4MzYxNywyMS43NDg4NDQ4IDExMS43NjY1ODcsMjEuNzM5OTMxIDExMS41NDc5MzYsMjEuNzMzNDQ4MyBDMTExLjMyMzYxNywyMS43MjYxNTUyIDExMS4wOTg0ODgsMjEuNzIyOTEzOCAxMTAuODcyNTUsMjEuNzIwNDgyOCBMMTEwLjc4ODMyOSwyMS43MTg4NjIxIEMxMTAuMjc0MDk2LDIxLjcxMDc1ODYgMTA5Ljc2MTQ4MiwyMS43MDk5NDgzIDEwOS4yMzgzNDEsMjEuNzE3MjQxNCBDMTA4Ljk2ODY3MiwyMS43MjEyOTMxIDEwOC42OTk4MTMsMjEuNzI0NTM0NSAxMDguNDI4NTI1LDIxLjczMzQ0ODMgQzEwOC4yNTQ0MTUsMjEuNzM4MzEwMyAxMDguMDc5NDk0LDIxLjc0NTYwMzQgMTA3LjkwNDU3NCwyMS43NTI4OTY2IEwxMDcuNzU3MTg4LDIxLjc1Nzc1ODYgQzEwNy4zODIyNDMsMjEuNzczOTY1NSAxMDcuMDA1Njc5LDIxLjc5MjYwMzQgMTA2LjYyMDIwNiwyMS44MTY5MTM4IEMxMDYuNDA3MjI1LDIxLjgyOTA2OSAxMDYuMTk1MDUzLDIxLjg0Mjg0NDggMTA1Ljk4MjA3MSwyMS44NTc0MzEgQzEwNS41ODQ0NTIsMjEuODg2NjAzNCAxMDUuMTg2MDIyLDIxLjkyMTQ0ODMgMTA0Ljc4NTE2MywyMS45NTc5MTM4IEwxMDQuMjQwOTY3LDIyLjAwODE1NTIgQzEwMy41NjM5NjEsMjIuMDc3MDM0NSAxMDIuODYwMjMxLDIyLjE2MTMxMDMgMTAyLjE1MDAyMiwyMi4yNjAxNzI0IEwxMDEuNjczMDQsMjIuMzI5MDUxNyBDMTAxLjA2NDg2OSwyMi40MTczNzkzIDEwMC40NTc1MDcsMjIuNTE1NDMxIDk5Ljg0NjA5NTcsMjIuNjIzMjA2OSBMOTkuNDQ2MDQ2NiwyMi42OTIwODYyIEM5OC44Mzk0OTQ1LDIyLjgwMzEwMzQgOTguMjMzNzUyMSwyMi45MjIyMjQxIDk3LjYyMzE1MDksMjMuMDUzNSBMOTcuMzEyMTgxNiwyMy4xMjQgQzk2LjgxMDA5NTcsMjMuMjM1MDE3MiA5Ni4zMDgwMDk4LDIzLjM1MDA4NjIgOTUuODA4MzUzNCwyMy40NzQ4NzkzIEM5NS42MzkxMDE4LDIzLjUxNTM5NjYgOTUuNDcwNjYwMSwyMy41NTkxNTUyIDk1LjMwMjIxODQsMjMuNjAyOTEzOCBMOTUuMjEyMzI4OCwyMy42MjU2MDM0IEM5NC43OTYwODM0LDIzLjczMjU2OSA5NC4zODA2NDc5LDIzLjg0NDM5NjYgOTMuOTY2MDIyMSwyMy45NTk0NjU1IEM5My43NjExMzg3LDI0LjAxNyA5My41NTYyNTUyLDI0LjA3NDUzNDUgOTMuMzUwNTYyLDI0LjEzMzY4OTcgQzkyLjkwMDMwNDMsMjQuMjY0OTY1NSA5Mi40NTE2NjYzLDI0LjQwMjcyNDEgOTIuMDAzODM4LDI0LjU0NDUzNDUgTDkxLjgxNzU4MDQsMjQuNjAyMDY5IEM5MS43MjIwMjIxLDI0LjYzMTI0MTQgOTEuNjI3MjczNiwyNC42NjA0MTM4IDkxLjUzMzMzNSwyNC42OTEyMDY5IEM5MS40MTUxMDE4LDI0LjcyOTI5MzEgOTEuMjk2ODY4NywyNC43Njk4MTAzIDkxLjE3ODYzNTYsMjQuODEwMzI3NiBMOTAuMDc0MDQ2NiwyNS4xODg3NTg2IEM4OS45MjUwNDA1LDI1LjI0MTQzMSA4OS43Nzc2NTQsMjUuMjk1NzI0MSA4OS42MzAyNjc1LDI1LjM1MDAxNzIgTDg5LjM5Nzg1MDMsMjUuNDM1OTEzOCBDODkuMTQwMzI4OCwyNS41MzE1MzQ1IDg4Ljg4MjgwNzQsMjUuNjI2MzQ0OCA4OC42MjYwOTU3LDI1LjcyNTIwNjkgQzg4LjQyNjg4MSwyNS44MDIxODk3IDg4LjIzMDA5NTcsMjUuODc5MTcyNCA4OC4wMzQxMjAyLDI1Ljk1ODU4NjIgQzg3Ljc1MzExNDEsMjYuMDcwNDEzOCA4Ny40NzM3Mjc2LDI2LjE4MzA1MTcgODcuMTk1OTYwNywyNi4yOTk3NDE0IEM4Ny4xMDkzMTA0LDI2LjMzNjIwNjkgODcuMDIyNjYwMSwyNi4zNzI2NzI0IDg2LjkzNjAwOTgsMjYuNDA5OTQ4MyBDODYuODk4NzU4MywyNi40MjUzNDQ4IDg2Ljg2MDY5NjksMjYuNDQxNTUxNyA4Ni44MjI2MzU2LDI2LjQ1Njk0ODMgQzg2Ljc1MDU2MiwyNi40ODc3NDE0IDg2LjY3NzY3ODUsMjYuNTE3NzI0MSA4Ni42MDU2MDQ5LDI2LjU0OTMyNzYgQzg2LjMyNzgzOCwyNi42NjkyNTg2IDg2LjA1MjUwMDYsMjYuNzkxNjIwNyA4NS43Nzg3ODI4LDI2LjkxNTYwMzQgQzg1LjcxMDc1ODMsMjYuOTQ2Mzk2NiA4NS42NDM1NDM2LDI2Ljk3NzE4OTcgODUuNTc1NTE5LDI3LjAwNzE3MjQgQzg1LjQ4NjQzOTMsMjcuMDQ4NSA4NS4zOTY1NDk3LDI3LjA4OTAxNzIgODUuMzA3NDY5OSwyNy4xMjk1MzQ1IEM4NS4yNzM0NTc3LDI3LjE0NTc0MTQgODUuMjM5NDQ1NCwyNy4xNTk1MTcyIDg1LjIwNjI0MjksMjcuMTc1NzI0MSBDODUuMDQxMDQwNSwyNy4yNTI3MDY5IDg0Ljg3ODI2NzUsMjcuMzMxMzEwMyA4NC43MTU0OTQ1LDI3LjQwOTkxMzggTDg0LjIwNzczOTksMjcuNjU0NjM3OSBDODQuMTk1NTkyNiwyNy42NjExMjA3IDg0LjE4MzQ0NTQsMjcuNjY2NzkzMSA4NC4xNzEyOTgyLDI3LjY3MjQ2NTUgQzg0LjA3MDg4MSwyNy43MjE4OTY2IDgzLjk3MDQ2MzgsMjcuNzY5NzA2OSA4My44NzA4NTY0LDI3LjgxOTk0ODMgQzgzLjg1ODcwOTIsMjcuODI2NDMxIDgzLjg0NjU2MiwyNy44MzIxMDM0IDgzLjgzNDQxNDcsMjcuODM3Nzc1OSBDODMuNzI1ODk5NCwyNy44OTI4NzkzIDgzLjYxOTgxMzUsMjcuOTQ3OTgyOCA4My41MTI5MTc4LDI4LjAwMzg5NjYgTDgzLjE1NDk3OTEsMjguMTkwMjc1OSBDODIuOTM2MzI4OCwyOC4zMDQ1MzQ1IDgyLjcxNTI0OTEsMjguNDE1NTUxNyA4Mi40OTkwMjgyLDI4LjUzMjI0MTQgTDgyLjQ5MzM1OTUsMjguNTM1NDgyOCBDODIuMDUxMiwyOC43NzQ1MzQ1IDgxLjYxMzA4OTYsMjkuMDE3NjM3OSA4MS4xODIyNjc1LDI5LjI2ODg0NDggQzgwLjc5NTE3NTUsMjkuNDkzMzEwMyA4MC40MjAyMzA3LDI5LjcyMzQ0ODMgODAuMDUwOTU0NiwyOS45NTI3NzU5IEw3OS43NjI2NjAxLDMwLjEzMTA1MTcgQzc5Ljc1NjE4MTYsMzAuMTM1MTAzNCA3OS43NTA1MTI5LDMwLjEzOTE1NTIgNzkuNzQ0ODQ0MiwzMC4xNDIzOTY2IEM3OS42MDE1MDY3LDMwLjIzMjM0NDggNzkuNDY1NDU3NywzMC4zMjU1MzQ1IDc5LjMyNDU0OTcsMzAuNDE3MTAzNCBMNzkuMjg4MTA4LDMwLjQ0MDYwMzQgQzc5LjIyNzM3MTgsMzAuNDgwMzEwMyA3OS4xNjk4NzQ4LDMwLjUyMDAxNzIgNzkuMTA5OTQ4NSwzMC41NTk3MjQxIEM3Mi4zODkyODU5LDM0Ljk3NzcyNDEgNjguNDQyMjQyOSw0MC4zMjM1NjkgNjguMDcyMTU3MSw0NS41NTY3NzU5IEw2OC4wNTExMDE4LDQ1Ljg0NzY4OTcgQzY4LjA0Nzg2MjYsNDUuOTA5Mjc1OSA2OC4wNTExMDE4LDQ1Ljk3MDg2MjEgNjguMDQ4NjcyNCw0Ni4wMzMyNTg2IEM2OC4wNDU0MzMxLDQ2LjE0ODMyNzYgNjguMDMyNDc2MSw0Ni4yNjQyMDY5IDY4LjAzMjQ3NjEsNDYuMzc4NDY1NSBDNjguMDM4MTQ0OCw1MC4wMjUwMTcyIDY5Ljc5OTQ5NDUsNTMuMjI3NSA3My4xNDU2NTQsNTUuNzUwOTEzOCBDNzMuMTU1MzcxOCw1NS43NTgyMDY5IDczLjE2NTg5OTQsNTUuNzY2MzEwMyA3My4xNzY0MjcsNTUuNzczNjAzNCBDNzMuMzYxODc0OCw1NS45MTI5ODI4IDczLjU1MDU2Miw1Ni4wNDk5MzEgNzMuNzQ1NzI3Niw1Ni4xODUyNTg2IEM3My43ODM3ODksNTYuMjExMTg5NyA3My44MjE4NTAzLDU2LjIzNzkzMSA3My44NTk5MTE3LDU2LjI2Mzg2MjEgQzczLjg3NDQ4ODMsNTYuMjczNTg2MiA3My44ODY2MzU2LDU2LjI4MzMxMDMgNzMuOTAwNDAyNSw1Ni4yOTMwMzQ1IEw3My4xODkzODQsNTYuNzAzMDY5IEwzOC41NjQ4OTMzLDM2LjY5OTcwNjkgTDY4LjIyODQ1MTUsMTkuNTMzMzYyMSBDNjguMjMyNTAwNiwxOS41MzA5MzEgNjguMjM3MzU5NSwxOS41Mjc2ODk3IDY4LjI0MTQwODYsMTkuNTI2MDY5IEw5My4zNzY0NzYxLDQuOTc5NTY4OTcgTDEyOC4wMDAxNTcsMjQuOTgzNzQxNCBMMTI3LjIwOTc3NywyNS40Mzk5NjU1IFogTTEyOC4wMDUwMTYsMjkuMjMzMTg5NyBDMTI4LjAxMzkyNCwyOS4xNzI0MTM4IDEyOC4wMTIzMDQsMjkuMTEwODI3NiAxMjguMDA1MDE2LDI5LjA0OTI0MTQgTDEyOC4wMTE0OTQsMjYuNjk3NjIwNyBMMTI4Ljc0NDM3OCwyNi4yNzQ2MjA3IEwxMjguNzQ0Mzc4LDU3Ljc0MTkzMSBMMTI3LjkyOTcwMyw1OC4yMTM1NTE3IEwxMjguMDA1MDE2LDI5LjIzMzE4OTcgWiBNMTA4LjI2NjU2Miw0Ni41NzM3NTg2IEwxMTkuNDkyMjMxLDUzLjA1OTc1ODYgQzExOS4zMzE4ODcsNTMuMDIzMjkzMSAxMTkuMTczMTYzLDUyLjk4NjAxNzIgMTE5LjAxMDM5LDUyLjk1Mjc5MzEgQzExOC45MTQwMjIsNTIuOTMyNTM0NSAxMTguODE2MDM0LDUyLjkxNDcwNjkgMTE4LjcxODA0Nyw1Mi44OTYwNjkgTDExOC41ODExODgsNTIuODcwOTQ4MyBDMTE4LjI4NjQxNSw1Mi44MTQyMjQxIDExNy45OTI0NTIsNTIuNzU4MzEwMyAxMTcuNjkyMDEsNTIuNzA3MjU4NiBDMTE3LjU2ODEwOCw1Mi42ODYxODk3IDExNy40NDI1ODcsNTIuNjY3NTUxNyAxMTcuMzE3ODc1LDUyLjY0ODEwMzQgTDExNy4xNjk2NzksNTIuNjI0NjAzNCBDMTE2Ljg5NTk2MSw1Mi41ODI0NjU1IDExNi42MjE0MzMsNTIuNTQxMTM3OSAxMTYuMzQyODU2LDUyLjUwMzA1MTcgQzExNi4xNTQ5NzksNTIuNDc4NzQxNCAxMTUuOTY2MjkyLDUyLjQ1NDQzMSAxMTUuNzc1OTg1LDUyLjQzMTc0MTQgQzExNS41MDU1MDcsNTIuMzk5MzI3NiAxMTUuMjM1MDI4LDUyLjM2NzcyNDEgMTE0Ljk2MDUwMSw1Mi4zMzkzNjIxIEMxMTQuNzY3NzY0LDUyLjMxOTEwMzQgMTE0LjU3MjU5OSw1Mi4zMDEyNzU5IDExNC4zNzgyNDMsNTIuMjgyNjM3OSBDMTE0LjExMTgxMyw1Mi4yNTkxMzc5IDExMy44NDIxNDUsNTIuMjM4MDY5IDExMy41NzI0NzYsNTIuMjE3ODEwMyBDMTEzLjM1NjI1NSw1Mi4yMDI0MTM4IDExMy4xMzkyMjUsNTIuMTg3MDE3MiAxMTIuOTIyMTk0LDUyLjE3NDg2MjEgQzExMi42NTQxNDUsNTIuMTU4NjU1MiAxMTIuMzg0NDc2LDUyLjE0NTY4OTcgMTEyLjExNTYxNyw1Mi4xMzQzNDQ4IEMxMTEuODk4NTg3LDUyLjEyNDYyMDcgMTExLjY4MDc0Niw1Mi4xMTU3MDY5IDExMS40NjA0NzYsNTIuMTA5MjI0MSBDMTExLjIzNjE1Nyw1Mi4xMDE5MzEgMTExLjAxMTAyOCw1Mi4wOTg2ODk3IDExMC43ODY3MDksNTIuMDk1NDQ4MyBMMTEwLjcwMjQ4OCw1Mi4wOTM4Mjc2IEMxMTAuMTg2NjM2LDUyLjA4NjUzNDUgMTA5LjY2ODM1Myw1Mi4wODU3MjQxIDEwOS4xNTI1MDEsNTIuMDkzMDE3MiBDMTA4Ljg4MjgzMiw1Mi4wOTcwNjkgMTA4LjYxMzE2Myw1Mi4xMDExMjA3IDEwOC4zNDI2ODUsNTIuMTA5MjI0MSBDMTA4LjExOTk4NSw1Mi4xMTU3MDY5IDEwNy44OTY0NzYsNTIuMTI0NjIwNyAxMDcuNjczNzc3LDUyLjEzNDM0NDggQzEwNy4yOTcyMTIsNTIuMTQ4OTMxIDEwNi45MTk4MzgsNTIuMTY4Mzc5MyAxMDYuNTQxNjU0LDUyLjE5MTg3OTMgQzEwNi4zMjcwNTMsNTIuMjA0ODQ0OCAxMDYuMTEyNDUyLDUyLjIxNzgxMDMgMTA1Ljg5Nzg1LDUyLjIzNDAxNzIgQzEwNS40OTg2MTEsNTIuMjYyMzc5MyAxMDUuMDk4NTYyLDUyLjI5NjQxMzggMTA0LjY5OTMyMyw1Mi4zMzM2ODk3IEwxMDQuNTIzNTkzLDUyLjM0OTA4NjIgQzEwNC40MDA1MDEsNTIuMzYwNDMxIDEwNC4yNzc0MDksNTIuMzcxNzc1OSAxMDQuMTUzNTA3LDUyLjM4MzkzMSBDMTAzLjQ3ODkzLDUyLjQ1MjgxMDMgMTAyLjc3NTIsNTIuNTM3ODk2NiAxMDIuMDYwMTMzLDUyLjYzNTk0ODMgTDEwMS41ODk2MjksNTIuNzA0ODI3NiBDMTAwLjk4MDY0OCw1Mi43OTMxNTUyIDEwMC4zNzE2NjYsNTIuODkwMzk2NiA5OS43NjI2ODQ3LDUyLjk5ODE3MjQgTDk5LjM1OTM5NjMsNTMuMDY3ODYyMSBDOTguNzUzNjU0LDUzLjE3OTY4OTcgOTguMTQ3MTAxOCw1My4yOTggOTcuNTQxMzU5NSw1My40Mjc2NTUyIEw5Ny4yMjcxNTA5LDUzLjQ5OTc3NTkgQzk2LjcyMzQ0NTQsNTMuNjA5OTgyOCA5Ni4yMjIxNjkzLDUzLjcyNjY3MjQgOTUuNzIwODkzMyw1My44NTA2NTUyIEM5NS42OTE3Mzk5LDUzLjg1NzEzNzkgOTUuNjYyNTg2NSw1My44NjUyNDE0IDk1LjYzNDI0MjksNTMuODcxNzI0MSBMMTA4LjI2NjU2Miw0Ni41NzM3NTg2IFogTTEwOS4wMDkxNjMsNDUuMjgyODc5MyBMMTA4Ljk0ODQyNywyNi4wMjkwODYyIEMxMDkuMDUyODkzLDI2LjAyNjY1NTIgMTA5LjE1NjU1LDI2LjAyNDIyNDEgMTA5LjI2MDIwNiwyNi4wMjI2MDM0IEMxMDkuNzY1NTMxLDI2LjAxNTMxMDMgMTEwLjI2NTk5OCwyNi4wMTUzMTAzIDExMC43NjY0NjQsMjYuMDIzNDEzOCBMMTEwLjg0OTg3NSwyNi4wMjQyMjQxIEMxMTEuMDY4NTI1LDI2LjAyODI3NTkgMTExLjI4NzE3NSwyNi4wMzE1MTcyIDExMS41MDI1ODcsMjYuMDM4IEMxMTEuNzE0NzU4LDI2LjA0MzY3MjQgMTExLjkyNTMxLDI2LjA1MzM5NjYgMTEyLjEzNzQ4MiwyNi4wNjMxMjA3IEMxMTIuMzcxNTE5LDI2LjA3MjAzNDUgMTEyLjYwMzEyNiwyNi4wODMzNzkzIDExMi44Mzk1OTMsMjYuMDk3MTU1MiBDMTEyLjg0MTIxMiwyNi4wOTcxNTUyIDExMi45MTgxNDUsMjYuMTAxMjA2OSAxMTIuOTE5NzY0LDI2LjEwMTIwNjkgQzExMy4xMzExMjYsMjYuMTEzMzYyMSAxMTMuMzQwODY5LDI2LjEyNzk0ODMgMTEzLjU1MDYxMSwyNi4xNDQxNTUyIEMxMTMuODExMzcyLDI2LjE2Mjc5MzEgMTE0LjA3MTMyMywyNi4xODMwNTE3IDExNC4zMzA0NjQsMjYuMjA3MzYyMSBDMTE0LjUxOTE1MSwyNi4yMjM1NjkgMTE0LjcwNjIxOCwyNi4yNDEzOTY2IDExNC45NDEwNjUsMjYuMjY2NTE3MiBDMTE1LjE5MDQ4OCwyNi4yOTI0NDgzIDExNS40Mzc0ODIsMjYuMzIgMTE1LjY4Mjg1NiwyNi4zNDk5ODI4IEMxMTUuODY2Njg1LDI2LjM3MjY3MjQgMTE2LjA0ODg5MywyNi4zOTUzNjIxIDExNi4yMjk0ODIsMjYuNDE4ODYyMSBDMTE2LjQ5NzUzMSwyNi40NTUzMjc2IDExNi43NjMxNTEsMjYuNDk1ODQ0OCAxMTcuMDI5NTgsMjYuNTM3OTgyOCBMMTE3LjE0NTM4NCwyNi41NTU4MTAzIEMxMTcuMjczMzM1LDI2LjU3NTI1ODYgMTE3LjQwMjA5NiwyNi41OTQ3MDY5IDExNy41MzAwNDcsMjYuNjE2NTg2MiBDMTE3LjgxNzUzMSwyNi42NjUyMDY5IDExOC4xMDE3NzcsMjYuNzE4Njg5NyAxMTguMzg1MjEyLDI2Ljc3Mzc5MzEgTDExOC43OTc0MDksMjYuODUyMzk2NiBDMTE5LjEwMjcwOSwyNi45MTQ3OTMxIDExOS40MDMxNTEsMjYuOTgzNjcyNCAxMTkuNzAyNzgzLDI3LjA1NDE3MjQgTDEyMC4wNTgyOTIsMjcuMTMzNTg2MiBDMTIwLjQ3MTI5OCwyNy4yMzQwNjkgMTIwLjg3NzgyNiwyNy4zNDE4NDQ4IDEyMS4yNzc4NzUsMjcuNDU2MTAzNCBDMTIxLjcxNDM2NiwyNy41ODA4OTY2IDEyMi4xNDM1NjgsMjcuNzE0NjAzNCAxMjIuNTY0NjcyLDI3Ljg1NjQxMzggQzEyMi42MzUxMjYsMjcuODc5OTEzOCAxMjIuNzA1NTgsMjcuOTA1MDM0NSAxMjIuNzc1MjI1LDI3LjkzMTc3NTkgTDEyMi45NDUyODYsMjcuOTkyNTUxNyBDMTIzLjIzMjc3MSwyOC4wOTQ2NTUyIDEyMy41MjAyNTUsMjguMTk2NzU4NiAxMjMuNzk5NjQyLDI4LjMwNTM0NDggQzEyMy44NjExODgsMjguMzI5NjU1MiAxMjMuOTIwMzA0LDI4LjM1Mzk2NTUgMTIzLjk4MDIzMSwyOC4zNzkwODYyIEwxMjQuMTI3NjE3LDI4LjQ0MDY3MjQgQzEyNC41MDMzNzIsMjguNTkzODI3NiAxMjQuODcxODM4LDI4Ljc1NDI3NTkgMTI1LjIzMzAxNiwyOC45MjM2Mzc5IEwxMjUuNjA2MzQxLDI5LjA5OTQ4MjggQzEyNS43Nzk2NDIsMjkuMTg0NTY5IDEyNS45NTA1MTMsMjkuMjcyMDg2MiAxMjYuMTE3MzM1LDI5LjM1NzE3MjQgQzEyNi4yNTE3NjQsMjkuNDI3NjcyNCAxMjYuMzgyMTQ1LDI5LjUwMTQxMzggMTI2LjUxNDE0NSwyOS41NzI3MjQxIEwxMjYuNDQ3NzQsNTUuMzU3MDg2MiBMMTA5LjAwOTE2Myw0NS4yODI4NzkzIFogTTc5LjEwOTEzODcsMzIuMzU0NjM3OSBDNzkuMTM3NDgyMiwzMi4zMzUxODk3IDc5LjE2NDIwNjEsMzIuMzE1NzQxNCA3OS4xOTE3Mzk5LDMyLjI5NjI5MzEgQzc5LjU4NzczOTksMzIuMDIxNTg2MiA3OS45OTUwNzczLDMxLjc1MjU1MTcgODAuNDEyMTMyNSwzMS40ODU5NDgzIEM4MC40NTUwNTI4LDMxLjQ1NzU4NjIgODAuNDk4NzgyOCwzMS40MjkyMjQxIDgwLjU0MjUxMjksMzEuNDAxNjcyNCBDODAuOTkzNTgwNCwzMS4xMTQ4MTAzIDgxLjQ1NTk4NTMsMzAuODM0NDMxIDgxLjkzMDUzNzQsMzAuNTU4MTAzNCBDODIuMzUwMDIyMSwzMC4zMTMzNzkzIDgyLjc3Njc5NTEsMzAuMDc1OTQ4MyA4My4yMDY4MDc0LDI5Ljg0MzM3OTMgTDg0LjAxODI0MjksMjkuNDIwMzc5MyBDODQuMTcwNDg4MywyOS4zNDI1ODYyIDg0LjMyMTExNDEsMjkuMjYxNTUxNyA4NC40NzQxNjkzLDI5LjE4NDU2OSBMODQuNTAxNzAzMSwyOS4xNzA3OTMxIEw4NS4zMDUwNDA1LDI4Ljc4MDIwNjkgQzg1LjQ4NDgxOTYsMjguNjk0MzEwMyA4NS42NjI5NzkxLDI4LjYwNjc5MzEgODUuODQ0Mzc3OSwyOC41MjI1MTcyIEM4Ni4wMjQ5NjY5LDI4LjQzOTA1MTcgODYuMjA3OTg1MywyOC4zNTYzOTY2IDg2LjM5MTAwMzcsMjguMjczNzQxNCBDODYuNjU3NDMzMSwyOC4xNTM4MTAzIDg2LjkyNTQ4MjIsMjguMDM0Njg5NyA4Ny4xOTUxNTA5LDI3LjkxODgxMDMgQzg3LjM4NjI2NzUsMjcuODM2MTU1MiA4Ny41NzgxOTM5LDI3Ljc1NTEyMDcgODcuNzcwMTIwMiwyNy42NzQwODYyIEM4OC4wMzk3ODksMjcuNTYyMjU4NiA4OC4zMTE4ODcxLDI3LjQ1MjA1MTcgODguNTg0Nzk1MSwyNy4zNDM0NjU1IEM4OC43NzY3MjE1LDI3LjI2NjQ4MjggODguOTY5NDU3NywyNy4xOTExMjA3IDg5LjE2MDU3NDIsMjcuMTE2NTY5IEM4OS40MTA4MDc0LDI3LjAyMDk0ODMgODkuNjYxMDQwNSwyNi45MjY5NDgzIDg5LjkxMjg5MzMsMjYuODM0NTY5IEM4OS45MTUzMjI3LDI2LjgzMzc1ODYgOTAuMDA0NDAyNSwyNi44MDA1MzQ1IDkwLjAwNjAyMjEsMjYuNzk5NzI0MSBMOTAuMTQ0NTAwNiwyNi43NDk0ODI4IEM5MC4yODYyMTg0LDI2LjY5NjgxMDMgOTAuNDI3MTI2NCwyNi42NDQ5NDgzIDkwLjU3MTI3MzYsMjYuNTkzODk2NiBMOTEuNjU0ODA3NCwyNi4yMjI3NTg2IEM5MS43NjczNzE4LDI2LjE4Mzg2MjEgOTEuODc5OTM2MiwyNi4xNDQ5NjU1IDkxLjk5NTczOTksMjYuMTA4NSBMOTIuNDUyNDc2MSwyNS45NjU4NzkzIEM5Mi44ODk3NzY3LDI1LjgyNzMxMDMgOTMuMzI3MDc3MywyNS42OTM2MDM0IDkzLjc2NjgwNzQsMjUuNTY1NTY5IEM5My45NjY4MzE5LDI1LjUwNzIyNDEgOTQuMTY2ODU2NCwyNS40NTEzMTAzIDk0LjM2NzY5MDgsMjUuMzk1Mzk2NiBDOTQuNzcwOTc5MSwyNS4yODE5NDgzIDk1LjE3NjY5NjksMjUuMTczMzYyMSA5NS41ODMyMjQ1LDI1LjA2ODgyNzYgTDk1LjY3MzkyMzksMjUuMDQ2MTM3OSBDOTUuODM3NTA2NywyNS4wMDQgOTYuMDAwMjc5OCwyNC45NjE4NjIxIDk2LjE2Mzg2MjYsMjQuOTIxMzQ0OCBDOTYuNjUyMTgxNiwyNC44MDE0MTM4IDk3LjE0MTMxMDQsMjQuNjg3MTU1MiA5Ny42MzA0MzkzLDI0LjU4MDE4OTcgTDk3Ljk0MDU5ODgsMjQuNTA5Njg5NyBDOTguNTMwOTU0NiwyNC4zODMyNzU5IDk5LjEyMjkzMDEsMjQuMjY2NTg2MiA5OS43MTQwOTU3LDI0LjE1OCBMMTAwLjEwNjg1NiwyNC4wODk5MzEgQzEwMC43MDEyNjEsMjMuOTg1Mzk2NiAxMDEuMjk0MDQ3LDIzLjg5MDU4NjIgMTAxLjg4NzY0MiwyMy44MDM4NzkzIEwxMDIuMzUyNDc2LDIzLjczNjYyMDcgQzEwMy4wNDY0ODgsMjMuNjQxIDEwMy43MzI0MDIsMjMuNTU4MzQ0OCAxMDQuMzkyNDAyLDIzLjQ5MTA4NjIgTDEwNC45MjI4MzIsMjMuNDQyNDY1NSBDMTA1LjMxMjM1MywyMy40MDYgMTA1LjcwMTA2NSwyMy4zNzI3NzU5IDEwNi4wODk3NzcsMjMuMzQ0NDEzOCBDMTA2LjI5Nzg5OSwyMy4zMjk4Mjc2IDEwNi41MDUyMTIsMjMuMzE2MDUxNyAxMDYuNzE5MDA0LDIzLjMwMzg5NjYgQzEwNy4wODc0NywyMy4yODEyMDY5IDEwNy40NTM1MDcsMjMuMjYyNTY5IDEwNy44MTc5MjQsMjMuMjQ3MTcyNCBMMTA3Ljk2NTMxLDIzLjI0MTUgQzEwOC4xMzM3NTIsMjMuMjM1MDE3MiAxMDguMzAzMDA0LDIzLjIyNzcyNDEgMTA4LjQ3MjI1NSwyMy4yMjI4NjIxIEMxMDguNzM1NDQ1LDIzLjIxNTU2OSAxMDguOTk3ODI2LDIzLjIxMTUxNzIgMTA5LjI2MDIwNiwyMy4yMDc0NjU1IEMxMDkuNzY1NTMxLDIzLjIwMDk4MjggMTEwLjI2NTk5OCwyMy4yMDE3OTMxIDExMC43NjY0NjQsMjMuMjA4Mjc1OSBMMTEwLjg0OTg3NSwyMy4yMDkwODYyIEMxMTEuMDY4NTI1LDIzLjIxMzEzNzkgMTExLjI4NzE3NSwyMy4yMTYzNzkzIDExMS41MDQyMDYsMjMuMjIyODYyMSBDMTExLjcxNjM3OCwyMy4yMjkzNDQ4IDExMS45MjYxMiwyMy4yMzkwNjkgMTEyLjEzNTg2MywyMy4yNDcxNzI0IEMxMTIuMzY5ODk5LDIzLjI1Njg5NjYgMTEyLjYwMzEyNiwyMy4yNjkwNTE3IDExMi44Mzk1OTMsMjMuMjgyMDE3MiBDMTEyLjg0MTIxMiwyMy4yODIwMTcyIDExMi45MTgxNDUsMjMuMjg2MDY5IDExMi45MTk3NjQsMjMuMjg2MDY5IEMxMTMuMTMxMTI2LDIzLjI5OTAzNDUgMTEzLjM0MDg2OSwyMy4zMTM2MjA3IDExMy41NTA2MTEsMjMuMzI5MDE3MiBDMTEzLjgxMTM3MiwyMy4zNDc2NTUyIDExNC4wNzEzMjMsMjMuMzY5NTM0NSAxMTQuMzMyMDgzLDIzLjM5MjIyNDEgQzExNC41MTk5NjEsMjMuNDA5MjQxNCAxMTQuNzA3MDI4LDIzLjQyNzA2OSAxMTQuOTQxMDY1LDIzLjQ1MTM3OTMgQzExNS4xOTA0ODgsMjMuNDc3MzEwMyAxMTUuNDM3NDgyLDIzLjUwNTY3MjQgMTE1LjY4Mjg1NiwyMy41MzU2NTUyIEwxMTUuNzUxNjkxLDIzLjU0NDU2OSBDMTE1LjkxMTIyNSwyMy41NjMyMDY5IDExNi4wNzA3NTgsMjMuNTgyNjU1MiAxMTYuMjI5NDgyLDIzLjYwNDUzNDUgQzExNi40OTgzNDEsMjMuNjQxODEwMyAxMTYuNzYzOTYxLDIzLjY4MTUxNzIgMTE3LjAyNzk2MSwyMy43MjIwMzQ1IEwxMTcuMTgxODI2LDIzLjc0NzE1NTIgQzExNy4yOTg0MzksMjMuNzY0MTcyNCAxMTcuNDE0MjQzLDIzLjc4MTE4OTcgMTE3LjUzMDA0NywyMy44MDE0NDgzIEMxMTcuODE3NTMxLDIzLjg1MDA2OSAxMTguMTAxNzc3LDIzLjkwNDM2MjEgMTE4LjM4NzY0MiwyMy45NTk0NjU1IEwxMTguNzk3NDA5LDI0LjAzNzI1ODYgQzExOS4xMDI3MDksMjQuMDk5NjU1MiAxMTkuNDAzMTUxLDI0LjE2OTM0NDggMTE5LjcwNTIxMiwyNC4yMzkwMzQ1IEwxMjAuMDU3NDgyLDI0LjMxODQ0ODMgQzEyMC40NzA0ODgsMjQuNDE5NzQxNCAxMjAuODc3ODI2LDI0LjUyNTg5NjYgMTIxLjI3Nzg3NSwyNC42NDA5NjU1IEMxMjEuNzE0MzY2LDI0Ljc2NTc1ODYgMTIyLjE0Mjc1OCwyNC44OTg2NTUyIDEyMi41NjQ2NzIsMjUuMDQxMjc1OSBDMTIyLjYzNTEyNiwyNS4wNjQ3NzU5IDEyMi43MDU1OCwyNS4wOTA3MDY5IDEyMi43NzUyMjUsMjUuMTE2NjM3OSBMMTIyLjk0NjA5NiwyNS4xNzgyMjQxIEMxMjMuMjMzNTgsMjUuMjc4NzA2OSAxMjMuNTIwMjU1LDI1LjM4MTYyMDcgMTIzLjc5OTY0MiwyNS40OTEwMTcyIEMxMjMuODYyODA3LDI1LjUxNDUxNzIgMTIzLjkyMjczNCwyNS41NDA0NDgzIDEyMy45ODM0NywyNS41NjYzNzkzIEwxMjQuMTI3NjE3LDI1LjYyNjM0NDggQzEyNC41MDQxODIsMjUuNzc4Njg5NyAxMjQuODcyNjQ4LDI1Ljk0MDc1ODYgMTI1LjI1NjUwMSwyNi4xMTkwMzQ1IEMxMjUuMjYwNTUsMjYuMTIwNjU1MiAxMjUuMzEzOTk4LDI2LjE0NjU4NjIgMTI1LjMxODA0NywyNi4xNDgyMDY5IEMxMjUuNDE2MDM0LDI2LjE5MzU4NjIgMTI1LjUxMzIxMiwyNi4yMzk3NzU5IDEyNS42MDc5NjEsMjYuMjg1MTU1MiBDMTI1Ljc4MDQ1MiwyNi4zNzAyNDE0IDEyNS45NTEzMjMsMjYuNDU2OTQ4MyAxMjYuMTE3MzM1LDI2LjU0MzY1NTIgQzEyNi4xMTk3NjQsMjYuNTQ0NDY1NSAxMjYuMTIzMDA0LDI2LjU0NjA4NjIgMTI2LjEyNTQzMywyNi41NDc3MDY5IEMxMjYuMjU5MDUzLDI2LjYxNzM5NjYgMTI2LjM5MTA1MywyNi42ODg3MDY5IDEyNi41MjIyNDMsMjYuNzYxNjM3OSBMMTI2LjUxOTAwNCwyNy44OTEyNTg2IEMxMjYuNDMzMTYzLDI3Ljg0NzUgMTI2LjM0ODk0MiwyNy44MDM3NDE0IDEyNi4yNjE0ODIsMjcuNzYwNzkzMSBMMTI1Ljg2MTQzMywyNy41NzExNzI0IEMxMjUuNDc5MiwyNy4zOTM3MDY5IDEyNS4wODgwNTksMjcuMjIzNTM0NSAxMjQuNjg4ODIsMjcuMDU5ODQ0OCBMMTI0LjU1ODQzOSwyNy4wMDYzNjIxIEMxMjQuNDg3MTc1LDI2Ljk3NjM3OTMgMTI0LjQxNDI5MiwyNi45NDU1ODYyIDEyNC4zNDA1OTksMjYuOTE3MjI0MSBDMTI0LjA0NjYzNiwyNi44MDEzNDQ4IDEyMy43NDQ1NzQsMjYuNjkzNTY5IDEyMy40MzkyNzQsMjYuNTg1NzkzMSBMMTIzLjI4NzgzOCwyNi41MzE1IEMxMjMuMjA1MjM3LDI2LjUwMTUxNzIgMTIzLjEyMTgyNiwyNi40NzA3MjQxIDEyMy4wMzc2MDUsMjYuNDQyMzYyMSBDMTIyLjU5NDYzNiwyNi4yOTQwNjkgMTIyLjE0NTk5OCwyNi4xNTM4NzkzIDEyMS42ODY4MzIsMjYuMDIyNjAzNCBDMTIxLjI2NzM0NywyNS45MDI2NzI0IDEyMC44NDMwMDQsMjUuNzkwODQ0OCAxMjAuNDEwNTYyLDI1LjY4NTUgQzEyMC4zMzg0ODgsMjUuNjY4NDgyOCAxMjAuMjYzOTg1LDI1LjY1MTQ2NTUgMTIwLjE4OTQ4MiwyNS42MzYwNjkgTDEyMC4wNDEyODYsMjUuNjAyMDM0NSBDMTE5LjcyODY5NywyNS41MjkxMDM0IDExOS40MTQ0ODgsMjUuNDU2OTgyOCAxMTkuMDk0NjExLDI1LjM5MTM0NDggTDExOC42Njc4MzgsMjUuMzEwMzEwMyBDMTE4LjM3MjI1NSwyNS4yNTI3NzU5IDExOC4wNzY2NzIsMjUuMTk2ODYyMSAxMTcuNzc3MDQsMjUuMTQ1ODEwMyBDMTE3LjY0MTgwMSwyNS4xMjM5MzEgMTE3LjUwNTc1MiwyNS4xMDIwNTE3IDExNy4zNjk3MDMsMjUuMDgyNjAzNCBMMTE3LjI1Nzk0OCwyNS4wNjM5NjU1IEMxMTYuOTgyNjExLDI1LjAyMTgyNzYgMTE2LjcwNzI3NCwyNC45Nzk2ODk3IDExNi40Mjc4ODcsMjQuOTQyNDEzOCBDMTE2LjI0MTYyOSwyNC45MTcyOTMxIDExNi4wNTM3NTIsMjQuODk0NjAzNCAxMTUuODY0MjU1LDI0Ljg3MDI5MzEgQzExNS42MDgzNTMsMjQuODM5NSAxMTUuMzUyNDUyLDI0LjgxMDMyNzYgMTE1LjA0Nzk2MSwyNC43Nzg3MjQxIEMxMTQuODU1MjI1LDI0Ljc1OTI3NTkgMTE0LjY2MDA1OSwyNC43Mzk4Mjc2IDExNC40NjQwODMsMjQuNzIyODEwMyBDMTE0LjE5NzY1NCwyNC42OTc2ODk3IDExMy45Mjg3OTUsMjQuNjc3NDMxIDExMy42NTkxMjYsMjQuNjU3MTcyNCBDMTEzLjQ0MjA5NiwyNC42NDE3NzU5IDExMy4yMjUwNjUsMjQuNjI1NTY5IDExMy4wMTQ1MTMsMjQuNjE0MjI0MSBMMTEyLjkyMDU3NCwyNC42MDkzNjIxIEMxMTIuNjgwODY5LDI0LjU5NDc3NTkgMTEyLjQ0MDM1MywyNC41ODM0MzEgMTEyLjE5OTgzOCwyNC41NzI4OTY2IEMxMTEuOTgzNjE3LDI0LjU2Mzk4MjggMTExLjc2NzM5NiwyNC41NTUwNjkgMTExLjU0NzkzNiwyNC41NDc3NzU5IEMxMTEuMzIzNjE3LDI0LjU0MTI5MzEgMTExLjA5ODQ4OCwyNC41MzgwNTE3IDExMC44NzI1NSwyNC41MzQgTDExMC43ODgzMjksMjQuNTMyMzc5MyBDMTEwLjI3NDA5NiwyNC41MjUwODYyIDEwOS43NjE0ODIsMjQuNTI0Mjc1OSAxMDkuMjM4MzQxLDI0LjUzMTU2OSBDMTA4Ljk2ODY3MiwyNC41MzU2MjA3IDEwOC42OTk4MTMsMjQuNTQwNDgyOCAxMDguNDI4NTI1LDI0LjU0ODU4NjIgQzEwOC40MTMxMzksMjQuNTQ5Mzk2NiAxMDguMzk2OTQyLDI0LjU1MDIwNjkgMTA4LjM4MTU1NiwyNC41NTAyMDY5IEMxMDguMzIzMjQ5LDI0LjUzNTYyMDcgMTA4LjI2MzMyMywyNC41MjUwODYyIDEwOC4yMDA5NjcsMjQuNTI1MDg2MiBMMTA4LjE5ODUzNywyNC41MjUwODYyIEMxMDguMTE5MTc1LDI0LjUyNTg5NjYgMTA4LjA0Mzg2MywyNC41NDIxMDM0IDEwNy45NzI1OTksMjQuNTY0NzkzMSBDMTA3LjkwMTMzNSwyNC41NjgwMzQ1IDEwNy44MjkyNjEsMjQuNTcwNDY1NSAxMDcuNzU3OTk4LDI0LjU3Mjg5NjYgQzEwNy4zODMwNTMsMjQuNTg5MTAzNCAxMDcuMDA3Mjk4LDI0LjYwNzc0MTQgMTA2LjYyMDIwNiwyNC42MzA0MzEgQzEwNi40MDcyMjUsMjQuNjQ0MjA2OSAxMDYuMTk1MDUzLDI0LjY1NzE3MjQgMTA1Ljk4MjA3MSwyNC42NzI1NjkgQzEwNS41ODQ0NTIsMjQuNzAwOTMxIDEwNS4xODUyMTIsMjQuNzM1Nzc1OSAxMDQuNzg2NzgzLDI0Ljc3MjI0MTQgTDEwNC42MTEwNTMsMjQuNzg5MjU4NiBDMTA0LjQ4Nzk2MSwyNC43OTg5ODI4IDEwNC4zNjQwNTksMjQuODEwMzI3NiAxMDQuMjQwMTU3LDI0LjgyMzI5MzEgQzEwMy41NTAxOTQsMjQuODk0NjAzNCAxMDIuODQ2NDY0LDI0Ljk3ODA2OSAxMDIuMTUwMDIyLDI1LjA3NDUgTDEwMS42NzMwNCwyNS4xNDMzNzkzIEMxMDEuMDY0ODY5LDI1LjIzMjUxNzIgMTAwLjQ1NjY5NywyNS4zMzA1NjkgOTkuODQ5MzM1LDI1LjQzNjcyNDEgTDk5LjQ0NTIzNjgsMjUuNTA2NDEzOCBDOTguODM5NDk0NSwyNS42MTgyNDE0IDk4LjIzMzc1MjEsMjUuNzM4MTcyNCA5Ny42Mjk2Mjk0LDI1Ljg2NzAxNzIgTDk3LjMxMjE4MTYsMjUuOTM5MTM3OSBDOTYuODEwMDk1NywyNi4wNDg1MzQ1IDk2LjMwODgxOTYsMjYuMTY2MDM0NSA5NS44MDgzNTM0LDI2LjI4ODM5NjYgQzk1LjY1NTI5ODIsMjYuMzI2NDgyOCA5NS41MDIyNDI5LDI2LjM2NjE4OTcgOTUuMzQ5MTg3NywyNi40MDU4OTY2IEw5NS4yMTM5NDg1LDI2LjQ0MDc0MTQgQzk0Ljc5NjA4MzQsMjYuNTQ3NzA2OSA5NC4zODA2NDc5LDI2LjY1ODcyNDEgOTMuOTY3NjQxNywyNi43NzQ2MDM0IEM5My43NjE5NDg1LDI2LjgzMTMyNzYgOTMuNTU2MjU1MiwyNi44ODg4NjIxIDkzLjM1MDU2MiwyNi45NDg4Mjc2IEM5Mi45MDAzMDQzLDI3LjA4MDEwMzQgOTIuNDUxNjY2MywyNy4yMTc4NjIxIDkyLjAwMzgzOCwyNy4zNTk2NzI0IEw5MS4wMDkzODQsMjcuNjgzIEM5MC44NTE0Njk5LDI3LjczNDg2MjEgOTAuNjk1OTg1MywyNy43ODk5NjU1IDkwLjU0NDU0OTcsMjcuODQyNjM3OSBMOTAuNDM5MjczNiwyNy44Nzc0ODI4IEM5MC4zMTY5OTE0LDI3LjkxOTYyMDcgOTAuMTk0NzA5MiwyNy45NjA5NDgzIDkwLjA3NDA0NjYsMjguMDAzMDg2MiBDODkuOTI1MDQwNSwyOC4wNTU3NTg2IDg5Ljc3NzY1NCwyOC4xMTAwNTE3IDg5LjYzMDI2NzUsMjguMTY1MTU1MiBMODkuMzk3ODUwMywyOC4yNTAyNDE0IEM4OS4xNDAzMjg4LDI4LjM0NTA1MTcgODguODgyODA3NCwyOC40NDA2NzI0IDg4LjYyNjA5NTcsMjguNTQwMzQ0OCBDODguNDI2ODgxLDI4LjYxNjUxNzIgODguMjMwMDk1NywyOC42OTQzMTAzIDg4LjAzNDEyMDIsMjguNzczNzI0MSBDODcuNzUzMTE0MSwyOC44ODQ3NDE0IDg3LjQ3MzcyNzYsMjguOTk4MTg5NyA4Ny4xOTc1ODA0LDI5LjExNDg3OTMgQzg2Ljk5OTE3NTUsMjkuMTk1OTEzOCA4Ni44MDE1ODA0LDI5LjI4MDE4OTcgODYuNjA1NjA0OSwyOS4zNjM2NTUyIEM4Ni4zMjc4MzgsMjkuNDg0Mzk2NiA4Ni4wNTI1MDA2LDI5LjYwNTk0ODMgODUuNzc4NzgyOCwyOS43Mjk5MzEgQzg1LjU4NjA0NjYsMjkuODE2NjM3OSA4NS4zOTQ5MzAxLDI5LjkwMjUzNDUgODUuMjA2MjQyOSwyOS45OTE2NzI0IEM4NS4wMTY3NDYsMzAuMDc5MTg5NyA4NC44MzA0ODgzLDMwLjE2OTEzNzkgODQuNjQzNDIwOSwzMC4yNTk4OTY2IEw4NC4yMDc3Mzk5LDMwLjQ2ODk2NTUgQzg0LjA4MzAyODIsMzAuNTMwNTUxNyA4My45NTkxMjY0LDMwLjU5MDUxNzIgODMuODM0NDE0NywzMC42NTI5MTM4IEM4My43MjU4OTk0LDMwLjcwNzIwNjkgODMuNjE5ODEzNSwzMC43NjMxMjA3IDgzLjUxMjkxNzgsMzAuODE5MDM0NSBMODIuNzgyNDYzOCwzMS4xOTc0NjU1IEM4Mi42ODUyODU5LDMxLjI0NzcwNjkgODIuNTg4MTA4LDMxLjI5ODc1ODYgODIuNDkzMzU5NSwzMS4zNDk4MTAzIEM4Mi4wNTEyLDMxLjU4ODg2MjEgODEuNjEzMDg5NiwzMS44MzI3NzU5IDgxLjE4MTQ1NzcsMzIuMDgzOTgyOCBDODAuNzk0MzY1NiwzMi4zMDkyNTg2IDgwLjQxOTQyMDksMzIuNTM3Nzc1OSA4MC4wNDg1MjUyLDMyLjc2ODcyNDEgTDc5Ljc2MzQ2OTksMzIuOTQ1Mzc5MyBDNzkuNjU5ODEzNSwzMy4wMTEwMTcyIDc5LjU1ODU4NjUsMzMuMDc3NDY1NSA3OS40NTczNTk1LDMzLjE0MzkxMzggTDc5LjI4ODEwOCwzMy4yNTU3NDE0IEM3OC45NzYzMjg4LDMzLjQ1OTEzNzkgNzguNjY2OTc5MSwzMy42NjMzNDQ4IDc4LjM2NTcyNzYsMzMuODcwNzkzMSBDNzguMjIxNTgwNCwzMy45NzA0NjU1IDc4LjA4MDY3MjQsMzQuMDcwMTM3OSA3Ny45Mzk3NjQ0LDM0LjE3MDYyMDcgTDc3Ljg2OTMxMDQsMzQuMjIwODYyMSBDNzcuNTk4ODMxOSwzNC40MTQ1MzQ1IDc3LjMzMDc4MjgsMzQuNjA4MjA2OSA3Ny4wNzAwMjIxLDM0LjgwNTEyMDcgQzc2LjkwODA1ODksMzQuOTI3NDgyOCA3Ni43NDc3MTUzLDM1LjA0OTg0NDggNzYuNTg5ODAxMiwzNS4xNzMwMTcyIEM3Ni4zMzQ3MDkyLDM1LjM3MTU1MTcgNzYuMDg2MDk1NywzNS41NzA4OTY2IDc1Ljg0MTUzMTMsMzUuNzczNDgyOCBMNzUuNzMzODI1OCwzNS44NjI2MjA3IEM3NS42MjQ1MDA2LDM1Ljk1MjU2OSA3NS41MTQzNjU2LDM2LjA0MjUxNzIgNzUuNDA3NDY5OSwzNi4xMzQwODYyIEM3NS4yMjc2OTA4LDM2LjI4ODA1MTcgNzUuMDU0MzkwMiwzNi40NDI4Mjc2IDc0Ljg4MTA4OTYsMzYuNTk2NzkzMSBMNzQuNjYyNDM5MywzNi43OTI4OTY2IEM3NC41NTQ3MzM3LDM2Ljg4OTMyNzYgNzQuNDQ3ODM4LDM2Ljk4NDk0ODMgNzQuMzM0NDYzOCwzNy4wOTAyOTMxIEw3NC4yNTc1MzEzLDM3LjE2NDg0NDggQzczLjk3NzMzNSwzNy40MjkwMTcyIDczLjcwNjA0NjYsMzcuNjk1NjIwNyA3My40NDUyODU5LDM3Ljk2MjIyNDEgQzczLjM1NzAxNiwzOC4wNTIxNzI0IDczLjI2OTU1NTgsMzguMTQyMTIwNyA3My4xODUzMzUsMzguMjMyMDY5IEM3Mi45MTY0NzYxLDM4LjUxMzI1ODYgNzIuNjU3MzM1LDM4Ljc5NTI1ODYgNzIuMzkzMzM1LDM5LjA5NzUxNzIgQzcyLjIyNDg5MzMsMzkuMjkxMTg5NyA3Mi4wNjUzNTk1LDM5LjQ4NDg2MjEgNzEuOTA3NDQ1NCwzOS42NzkzNDQ4IEw3MS44MjcyNzM2LDM5Ljc3NDk2NTUgQzcxLjc3NjI1NTIsMzkuODM1NzQxNCA3MS43MjYwNDY2LDM5Ljg5NTcwNjkgNzEuNjc3NDU3NywzOS45NTcyOTMxIEM3MS41NjgxMzI1LDQwLjA5NTg2MjEgNzEuNDY2MDk1Nyw0MC4yMzM2MjA3IDcxLjM2NDA1ODksNDAuMzcxMzc5MyBMNzEuMjcwMTIwMiw0MC40OTk0MTM4IEM3MS4yMTE4MTM1LDQwLjU3NzIwNjkgNzEuMTU5MTc1NSw0MC42NTU4MTAzIDcxLjEwMjQ4ODMsNDAuNzMzNjAzNCBDNzIuNjkxMzQ3MiwzNy44MDk4NzkzIDc1LjQyNzcxNTMsMzQuOTIxODEwMyA3OS4xMDkxMzg3LDMyLjM1NDYzNzkgTDc5LjEwOTEzODcsMzIuMzU0NjM3OSBaIE03MS42NjIwNzEyLDUyLjI3ODU4NjIgQzcxLjYxODM0MTEsNTIuMjI0MjkzMSA3MS41NzM4MDEyLDUyLjE3MTYyMDcgNzEuNTMyNTAwNiw1Mi4xMTczMjc2IEM3MS40MzA0NjM4LDUxLjk4NTI0MTQgNzEuMzM1NzE1Myw1MS44NTE1MzQ1IDcxLjI0MTc3NjcsNTEuNzE3MDE3MiBDNzEuMTk2NDI3LDUxLjY1MjE4OTcgNzEuMTQ5NDU3Nyw1MS41ODgxNzI0IDcxLjEwNjUzNzQsNTEuNTIzMzQ0OCBDNzEuMDE3NDU3Nyw1MS4zODk2Mzc5IDcwLjkzNDA0NjYsNTEuMjU0MzEwMyA3MC44NTMwNjUsNTEuMTE4MTcyNCBDNzAuODEwOTU0Niw1MS4wNDg0ODI4IDcwLjc2ODAzNDQsNTAuOTc4NzkzMSA3MC43MjgzNTM0LDUwLjkwODI5MzEgQzcwLjY1Mzg1MDMsNTAuNzc2MjA2OSA3MC41ODMzOTYzLDUwLjY0MjUgNzAuNTE1MzcxOCw1MC41MDc5ODI4IEM3MC40NzU2OTA4LDUwLjQzMDE4OTcgNzAuNDM2MDA5OCw1MC4zNTMyMDY5IDcwLjM5OTU2ODEsNTAuMjc0NjAzNCBDNzAuMzM4ODMxOSw1MC4xNDY1NjkgNzAuMjgyOTU0Niw1MC4wMTY5MTM4IDcwLjIyODY5NjksNDkuODg3MjU4NiBDNzAuMTkxNDQ1NCw0OS43OTgxMjA3IDcwLjE1NDE5MzksNDkuNzA4MTcyNCA3MC4xMjAxODE2LDQ5LjYxNzQxMzggQzcwLjA3NDgzMTksNDkuNDk4MjkzMSA3MC4wMzI3MjE1LDQ5LjM3NzU1MTcgNjkuOTkyMjMwNyw0OS4yNTY4MTAzIEM2OS45NTc0MDg2LDQ5LjE1MDY1NTIgNjkuOTIzMzk2Myw0OS4wNDQ1IDY5Ljg5MTgxMzUsNDguOTM4MzQ0OCBDNjkuODYwMjMwNyw0OC44MzEzNzkzIDY5LjgzMTg4NzEsNDguNzIyNzkzMSA2OS44MDQzNTM0LDQ4LjYxNDIwNjkgQzY5Ljc3Mjc3MDYsNDguNDg4NjAzNCA2OS43NDI4MDc0LDQ4LjM2MTM3OTMgNjkuNzE2ODkzMyw0OC4yMzMzNDQ4IEM2OS42OTgyNjc1LDQ4LjE0MzM5NjYgNjkuNjgwNDUxNSw0OC4wNTM0NDgzIDY5LjY2NTA2NSw0Ny45NjE4NzkzIEM2OS42NTI5MTc4LDQ3Ljg5MzgxMDMgNjkuNjQ0ODE5Niw0Ny44MjQ5MzEgNjkuNjM1MTAxOCw0Ny43NTY4NjIxIEM2OS42NTA0ODgzLDQ3LjY0NTg0NDggNjkuNjY5MTE0MSw0Ny41Mjk5NjU1IDY5LjY5MzQwODYsNDcuMzkxMzk2NiBDNjkuNzEzNjU0LDQ3LjI3NzEzNzkgNjkuNzMzODk5NCw0Ny4xNjIwNjkgNjkuNzU4MTkzOSw0Ny4wNDk0MzEgQzY5Ljc5Nzg3NDgsNDYuODYwNjIwNyA2OS44NDY0NjM4LDQ2LjY3MTgxMDMgNjkuODk2NjcyNCw0Ni40ODM4MTAzIEw2OS45MjkwNjUsNDYuMzYzMDY5IEM2OS45NDYwNzEyLDQ2LjI5NSA2OS45NjM4ODcxLDQ2LjIyNjkzMSA2OS45ODgxODE2LDQ2LjE1MDc1ODYgTDcwLjAzNTk2MDcsNDYuMDAyNDY1NSBDNzAuMDU4NjM1Niw0NS45MzExNTUyIDcwLjA4MzczOTksNDUuODU3NDEzOCA3MC4xMDg4NDQyLDQ1Ljc4NDQ4MjggQzcwLjU2MDcyMTUsNDUuNzk1ODI3NiA3MC45NjIzOTAyLDQ1LjkxOTgxMDMgNzEuMjkyNzk1MSw0Ni4xNjUzNDQ4IEM3MS45NzIyMzA3LDQ2LjY2Njk0ODMgNzIuMzQ4Nzk1MSw0Ny42NTE1MTcyIDcyLjM1Mjg0NDIsNDguOTM0MjkzMSBDNzIuMzU1MjczNiw0OS45NjQyNDE0IDcyLjExMTUxOSw1MS4xMjMwMzQ1IDcxLjY2MjA3MTIsNTIuMjc4NTg2MiBMNzEuNjYyMDcxMiw1Mi4yNzg1ODYyIFogTTc0LjAyMTg3NDgsNTcuOTQzNzA2OSBMNzQuNzU0NzU4Myw1Ny41MTk4OTY2IEw3NC43NTQ3NTgzLDU3LjUyOTYyMDcgTDc0LjczNTMyMjcsNjQuNTQ4MDE3MiBMNzQuNzM1MzIyNyw2NC41NDg4Mjc2IEM3NC43MzQ1MTI5LDY0LjYwNjM2MjEgNzQuNzQyNjExLDY0LjY2MjI3NTkgNzQuNzU0NzU4Myw2NC43MTU3NTg2IEw3NC43NTQ3NTgzLDg4Ljk4ODAxNzIgTDczLjkzOTI3MzYsODkuNDU4ODI3NiBMNzQuMDIxODc0OCw1Ny45NDM3MDY5IFogTTM3Ljc0MDUwMDYsNjkuMjE5NjU1MiBMMzcuODIyMjkyLDM3Ljk5MjIwNjkgTDcyLjUzMTgxMzUsNTguMDQ1IEw3Mi40NTQwNzEyLDg3LjgyMTkzMSBDNzIuNDQ2NzgyOCw4Ny44NjQwNjkgNzIuNDQ0MzUzNCw4Ny45MDUzOTY2IDcyLjQ0NDM1MzQsODcuOTQ3NTM0NSBDNzIuNDQ1MTYzMiw4OC4wMDUwNjkgNzIuNDQ1MTYzMiw4OC42MjgyMjQxIDcyLjQ0NTk3Myw4OS4yNTA1NjkgTDcyLjQ0NTk3Myw4OS4yNjkyMDY5IEwzNy43NDA1MDA2LDY5LjIxOTY1NTIgWiBNNTguNzMzMzU5NSwxMy4yMTc1MzQ1IEw2Ni41MjI5NzkxLDE4Ljc5ODM3OTMgTDM2LjcwNzk4NTMsMzYuMDUyMjQxNCBDMzYuNzAwNjk2OSwzNi4wNTcxMDM0IDM2LjY5NDIxODQsMzYuMDYyNzc1OSAzNi42ODc3Mzk5LDM2LjA2NzYzNzkgQzM2LjY3NzIxMjMsMzYuMDczMzEwMyAzNi42NjY2ODQ3LDM2LjA3ODk4MjggMzYuNjU2OTY2OSwzNi4wODYyNzU5IEMzNi42MzUxMDE4LDM2LjEwMTY3MjQgMzYuNjE0MDQ2NiwzNi4xMTcwNjkgMzYuNTkzODAxMiwzNi4xMzU3MDY5IEMzNi41ODczMjI3LDM2LjE0MDU2OSAzNi41ODE2NTQsMzYuMTQ2MjQxNCAzNi41NzUxNzU1LDM2LjE1MTkxMzggQzM2LjU3MTEyNjQsMzYuMTU1OTY1NSAzNi41NjcwNzczLDM2LjE2MDAxNzIgMzYuNTYyMjE4NCwzNi4xNjQwNjkgQzM2LjU1ODk3OTEsMzYuMTY3MzEwMyAzNi41NTU3Mzk5LDM2LjE3MDU1MTcgMzYuNTUyNTAwNiwzNi4xNzI5ODI4IEMzNi41Mjk4MjU4LDM2LjE5NTY3MjQgMzYuNTA4NzcwNiwzNi4yMTk5ODI4IDM2LjQ4OTMzNSwzNi4yNDUxMDM0IEMzNi40ODY5MDU1LDM2LjI0ODM0NDggMzYuNDg1Mjg1OSwzNi4yNTE1ODYyIDM2LjQ4Mjg1NjQsMzYuMjU0ODI3NiBDMzYuNDc3MTg3NywzNi4yNjIxMjA3IDM2LjQ3MjMyODgsMzYuMjY5NDEzOCAzNi40NjY2NjAxLDM2LjI3NTg5NjYgQzM2LjQ2NTg1MDMsMzYuMjc4MzI3NiAzNi40NjQyMzA3LDM2LjI3OTk0ODMgMzYuNDYyNjExLDM2LjI4MjM3OTMgQzM2LjQ1MjA4MzQsMzYuMjk3Nzc1OSAzNi40Mzk5MzYyLDM2LjMxMDc0MTQgMzYuNDMwMjE4NCwzNi4zMjY5NDgzIEMzNi4zNTAwNDY2LDM2LjQ2NzEzNzkgMzYuMzIwODkzMywzNi42MjE5MTM4IDM2LjMzNTQ2OTksMzYuNzcxODI3NiBMMzYuMjUzNjc4NSw2OC4xODk3MDY5IEwzLjg1Mzc1MjE1LDQ0Ljk3ODE4OTcgTDU4LjczMzM1OTUsMTMuMjE3NTM0NSBaIE0xMzAuNzI5MjM3LDIyLjgzMTQ2NTUgTDk0LjYxNzExNDEsMS45NjgzMjc1OSBDOTQuMjMzMjYxMywxLjc0NjI5MzEgOTMuODA0MDU4OSwxLjYzNTI3NTg2IDkzLjM3NTY2NjMsMS42MzUyNzU4NiBDOTIuOTQ2NDYzOCwxLjYzNTI3NTg2IDkyLjUxNzI2MTMsMS43NDYyOTMxIDkyLjEzMjU5ODgsMS45NjkxMzc5MyBMNjguMDM4MTQ0OCwxNS45MTM1NTE3IEw2MS4yNjA3OTUxLDExLjA1NTUzNDUgTDYxLjI2MDc5NTEsNS45NjI1MTcyNCBDNjEuMjYwNzk1MSwyLjgxMTg5NjU1IDU4LjY5NjEwOCwwLjI0NzE1NTE3MiA1NS41NDM0OTQ1LDAuMjQ3MTU1MTcyIEM1NC41NDgyMzA3LDAuMjQ3MTU1MTcyIDUzLjU2MTA2NSwwLjUxNTM3OTMxIDUyLjY4NzI3MzYsMS4wMjE4NDQ4MyBMNS40MzUzMjI3LDI4LjM2NjkzMSBDMi4wODM0OTQ0OCwzMC4zMDI4NDQ4IC0wLjAwMDE2MTk2MzE5LDMzLjkxNjE3MjQgLTAuMDAwMTYxOTYzMTksMzcuNzk1MjkzMSBMLTAuMDAwMTYxOTYzMTksNDQuOTEwOTMxIEMtMC4wMDAxNjE5NjMxOSw0NS43MTE1NTE3IDAuMzg2MTIwMjQ1LDQ2LjQ2NDM2MjEgMS4wMzcyMTIyNyw0Ni45MzAzMTAzIEwzNS41NDk5NDg1LDcxLjY2Mjg0NDggQzM1LjU2MjkwNTUsNzEuNjcyNTY5IDM1LjU3NjY3MjQsNzEuNjgyMjkzMSAzNS41ODk2Mjk0LDcxLjY5MTIwNjkgTDM1LjY2ODk5MTQsNzEuNzQ1NSBDMzUuNzIyNDM5Myw3MS43ODI3NzU5IDM1Ljc3NzUwNjcsNzEuODE3NjIwNyAzNS44MzQxOTM5LDcxLjg1MDAzNDUgTDcxLjUyNTIxMjMsOTIuNDY2MDE3MiBDNzEuOTk0OTA1NSw5Mi45MzUyMDY5IDcyLjYzMDYxMSw5My4xODk2NTUyIDczLjI3OTI3MzYsOTMuMTg5NjU1MiBDNzMuNzAwMzc3OSw5My4xODk2NTUyIDc0LjEyNzk2MDcsOTMuMDgxODc5MyA3NC41MTkxMDE4LDkyLjg1NTc5MzEgTDc2Ljc0MzY2NjMsOTEuNTY4OTY1NSBDNzcuNTExMzcxOCw5MS4xMjQ4OTY2IDc3Ljk4MzQ5NDUsOTAuMzA0ODI3NiA3Ny45ODM0OTQ1LDg5LjQxODMxMDMgTDc3Ljk4MzQ5NDUsNjUuMjQ4OTY1NSBDNzguMDA1MzU5NSw2NS4xODkgNzguMDI1NjA0OSw2NS4xMjc0MTM4IDc4LjA0MjYxMSw2NS4wNjUwMTcyIEw3OS42NTY1NzQyLDU5LjIzMzc3NTkgTDc5LjgxNjEwOCw1OS4yNzUxMDM0IEw4Ny43NzkwMjgyLDYxLjMzNjYyMDcgQzg3Ljk3NTAwMzcsNjEuMzg3NjcyNCA4OC4xNzY2NDc5LDYxLjQxNDQxMzggODguMzc5OTExNyw2MS40MTYwMzQ1IEw5MC4xMjc0OTQ1LDYxLjQzMDYyMDcgTDkwLjE0ODU0OTcsNjEuNDMwNjIwNyBDOTAuNDMzNjA0OSw2MS40MzA2MjA3IDkwLjcxNjIzMDcsNjEuMzgyIDkwLjk4NTA4OTYsNjEuMjg1NTY5IEM5Ny4wMjA2NDc5LDU5LjEyMzU2OSAxMDMuNzcyMDgzLDU3LjkzMjM2MjEgMTA5Ljk5NDcwOSw1Ny45MzIzNjIxIEMxMTYuMTk5NTE5LDU3LjkzMjM2MjEgMTIxLjc0OTE4OCw1OS4xMTU0NjU1IDEyNS42NzE5MzYsNjEuMjY5MzYyMSBDMTI1Ljk1NzgwMSw2MS41MjYyNDE0IDEyNi4zMDE5NzMsNjEuNzE0MjQxNCAxMjYuNjgwMTU3LDYxLjgxNjM0NDggQzEyNi44OTMxMzksNjEuODczODc5MyAxMjcuMTEwOTc5LDYxLjkwMjI0MTQgMTI3LjMyODAxLDYxLjkwMjI0MTQgQzEyNy43NTk2NDIsNjEuOTAyMjQxNCAxMjguMTg4MDM0LDYxLjc5MDQxMzggMTI4LjU2ODY0OCw2MS41NyBMMTMwLjcyODQyNyw2MC4zMjI4NzkzIEMxMzEuNDk2OTQyLDU5Ljg3OTYyMDcgMTMxLjk3MDY4NSw1OS4wNTk1NTE3IDEzMS45NzA2ODUsNTguMTcxNDEzOCBMMTMxLjk3MDY4NSwyNC45ODIxMjA3IEMxMzEuOTcwNjg1LDI0LjA5NDc5MzEgMTMxLjQ5Njk0MiwyMy4yNzQ3MjQxIDEzMC43MjkyMzcsMjIuODMxNDY1NSBMMTMwLjcyOTIzNywyMi44MzE0NjU1IFoiIGlkPSJGaWxsLTQ1IiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTk3LjUyODgwNzQsMjkuMzM4NDUzNCBDOTguMjg1OTg1MywyOC45MDA4NjcyIDk5LjAwMDI0MjksMjguNjc5NjQzMSA5OS42MjYyMzA3LDI4LjY3OTY0MzEgQzEwMC4wMjMwNCwyOC42Nzk2NDMxIDEwMC4zODM0MDksMjguNzY4NzgxIDEwMC42OTU5OTgsMjguOTQ5NDg3OSBDMTAxLjQ5MjA0NywyOS40MDczMzI4IDEwMS45MzMzOTYsMzAuNDM1NjYwMyAxMDEuOTM3NDQ1LDMxLjg0MjQxOSBDMTAxLjk0NjM1MywzNS4wOTUxNDMxIDk5LjY1MDUyNTIsMzkuMDcxNTA1MiA5Ni44MjAyMTg0LDQwLjcwNTk3MDcgQzk1LjU4MjgxOTYsNDEuNDE5ODg0NSA5NC40NTk2MDQ5LDQxLjU1NzY0MzEgOTMuNjU2MjY3NSw0MS4wOTQ5MzYyIEM5Mi44NTk0MDg2LDQwLjYzNTQ3MDcgOTIuNDE4MDU4OSwzOS42MDc5NTM0IDkyLjQxNDgxOTYsMzguMjAxMTk0OCBDOTIuNDA1MTAxOCwzNC45NDg0NzA3IDk0LjY5OTMxMDQsMzAuOTczNzI5MyA5Ny41Mjg4MDc0LDI5LjMzODQ1MzQgTTkyLjkxMzY2NjMsNDIuMzg3NDM2MiBDOTMuNDU4NjcyNCw0Mi43MDAyMjkzIDk0LjA2ODQ2MzgsNDIuODU2NjI1OSA5NC43MjExNzU1LDQyLjg1NjYyNTkgQzk1LjYwODczMzcsNDIuODU2NjI1OSA5Ni41NzY0NjM4LDQyLjU2NzMzMjggOTcuNTY0NDM5Myw0MS45OTY4NSBDMTAwLjg2MjAxLDQwLjA5MjUzOTcgMTAzLjQzNzIyNSwzNS42Mjk5NzA3IDEwMy40MjY2OTcsMzEuODM4MzY3MiBDMTAzLjQyMTAyOCwyOS44NzY1MjI0IDEwMi43MTQ4NjksMjguMzkxOTcwNyAxMDEuNDM4NTk5LDI3LjY1Njk4NzkgQzEwMC4xNTQyMzEsMjYuOTE3MTQzMSA5OC41MDEzOTYzLDI3LjA1NjUyMjQgOTYuNzgzNzc2NywyOC4wNDc1NzQxIEM5My40ODc4MjU4LDI5Ljk1MTg4NDUgOTAuOTE0MjMwNywzNC40MTQ0NTM0IDkwLjkyNTU2ODEsMzguMjA0NDM2MiBDOTAuOTMwNDI3LDQwLjE2NTQ3MDcgOTEuNjM3Mzk2Myw0MS42NTE2NDMxIDkyLjkxMzY2NjMsNDIuMzg3NDM2MiIgaWQ9IkZpbGwtNDMiIGZpbGw9IiNGRkZGRkYiIG1hc2s9InVybCgjbWFzay0yKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03NC42MjY2OTc1LDU0LjgyNTc1MjggTDc3LjA0MDEwMDIsNTkuMDQ5MjA3NSBMNzcuMDQwMTAwMiw1OS4wNDkyMDc1IEM3Ny4zMDY0OTY4LDU5LjUxNTQwMTUgNzcuMTU3MTc5OCw2MC4xMDg3NjczIDc2LjcwMTg1Niw2MC4zOTMzNDQ3IEw3MS44NzUwNTA3LDYzLjQxMDA5OCBMNzEuODc1MDUwNyw2My40MTAwOTggQzcxLjQwNjcxNDEsNjMuNzAyODA4NCA3MC43ODk3NjM4LDYzLjU2MDQzNTIgNzAuNDk3MDUzNCw2My4wOTIwOTg3IEM3MC4zMzg5NjQ1LDYyLjgzOTE1NjMgNzAuMzAyMDQzNSw2Mi41Mjg4NDY4IDcwLjM5NjM2ODQsNjIuMjQ1ODcyIEw3Mi44MDk3NzExLDU1LjAwNTY2NCBMNzIuODA5NzcxMSw1NS4wMDU2NjQgQzcyLjk4NDQxODksNTQuNDgxNzIwNyA3My41NTA3Mzg4LDU0LjE5ODU2MDcgNzQuMDc0NjgyMiw1NC4zNzMyMDg0IEM3NC4zMDgwOTMxLDU0LjQ1MTAxMjEgNzQuNTA0NjI5MSw1NC42MTIxMzMxIDc0LjYyNjY5NzUsNTQuODI1NzUyOCBaIiBpZD0iVHJpYW5nbGUiIGZpbGwtb3BhY2l0eT0iMC4yNjYwNDk1OTIiIGZpbGw9IiNGRkZGRkYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDczLjc1ODUyMSwgNTguOTQxOTI3KSByb3RhdGUoMTgwLjAwMDAwMCkgdHJhbnNsYXRlKC03My43NTg1MjEsIC01OC45NDE5MjcpICI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="/>\n <ol style="">\n <li>进入:将手机横屏放入VR眼镜中</li>\n <li>前进:视角中心对准蓝点,直至变绿</li>\n <li>退出:将手机竖屏再触碰屏幕</li>\n </ol>\n ';var l=new p.default(c);e.parentNode&&(e.parentNode.insertBefore(M,e),e.parentNode.insertBefore(c,e),this.setHelperElementSize(),l.on("tap",this.vrWantsToExit.bind(this))),this.destroyHelper=function(){l.destroy(),M.parentNode&&M.parentNode.removeChild(M),c.parentNode&&c.parentNode.removeChild(c)}},n.prototype.setHelperElementSize=function(){if(this.helperElement){var e=this.renderer.domElement,t=new u.Vector2(e.offsetWidth,e.offsetHeight),n=t.x*this.scissor.left,i=t.y*(1-this.scissor.bottom-this.scissor.height),r=t.x*this.scissor.width,o=t.y*this.scissor.height;this.helperElement.style.marginLeft=n+"px",this.helperElement.style.marginTop=i+"px",this.helperElement.style.width=r+"px",this.helperElement.style.height=o+"px"}},n.prototype.destroyHelper=function(){},n.prototype.resize=function(){var e=this.element,t=e.offsetWidth,n=e.offsetHeight;this.effect.isPresenting=!1,this.effect.setSize(t,n),this.effect.isPresenting=!0,this.needsRender=!0,this.setHelperElementSize()},n.prototype.doMoveToPano=function(){for(var t=this,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];e.prototype.doMoveToPano.apply(this,n);var r=n[0],o=this.work.observers[r],s=o.visibleNodes;s=s.filter((function(e){return t.work.observers[e].active}));var a=this.panoSphereMeshes.filter((function(e){return e.panoIndex===r}))[0];this.panoSphereMeshes.forEach((function(e){if(e.visible=s.indexOf(e.panoIndex)>=0,a){var t=a.position.distanceTo(e.position)<5;e.visible=e.visible&&t}})),this.needsRender=!0},n.prototype.vrWantsToExit=function(){this.emit("vrWantsToExit")},n.prototype.onPanGesture=function(){},n.prototype.onTapGesture=function(){},n.prototype.onPinchGesture=function(){},n.prototype.onMouseMove=function(){},n.prototype.onMouseOut=function(){},n.prototype.renderIntersect=function(){var e=this,t=e.camera,n=e.model,i=e.intersectMesh,r=e.panoSphereMeshes,o=e.intersectCameraPosition,s=e.intersectCameraVector,a=e.intersectActiveSphereMesh,M=e.intersectActiveDate;if(i){a&&M&&I()-M>2e3&&(delete this.intersectActiveDate,a.setCurrent(),this.moveToPano(a.panoIndex,{},!0));var c=t.getWorldDirection(new u.Vector3);if(!(o&&s&&t.pose.offset.equals(o)&&c.equals(s))){var l=t.pose.offset.clone(),d=new u.Raycaster(l,c),N=null,p=null;if(!N)for(var h=0,D=r.filter((function(e){return e.visible}));h<D.length;h++){var g=D[h],y=d.intersectObject(g,!0)[0];if(y){N=y,p=g;break}}if(N||n.empty||(N=n.intersectRaycaster(d)[0]),N&&N.face){var T=N.face.normal,z=new u.Quaternion;z.setFromUnitVectors(new u.Vector3(0,0,-1),T),i.quaternion.copy(z);var j=T.clone().multiplyScalar(.05),f=N.point.clone().add(j);if(i.position.copy(f),i.visible=!0,this.emit("intersectionOnModelUpdate",N,i),r.forEach((function(e){return e.reset()})),p)(g=p).setActive(),this.intersectActiveSphereMesh!==g&&(this.intersectActiveSphereMesh=g,this.intersectActiveDate=I());else delete this.intersectActiveSphereMesh,delete this.intersectActiveDate}else i.visible=!1,this.emit("intersectionHidden"),delete this.intersectActiveSphereMesh,delete this.intersectActiveDate;this.intersectCameraPosition=t.pose.offset.clone(),this.intersectCameraVector=c.clone(),this.needsRender=!0}}},n.prototype.render=function(){var e=this,t=e.effect,n=e.camera,i=e.scene,r=t.getVRDisplay(),o=this.camera.pose,s=o.longitude,a=o.latitude;if(r){var M=r.getPose();if(j(M.orientation)||n.quaternion.fromArray(M.orientation),r.stageParameters){n.updateMatrix();var c=r.stageParameters.sittingToStandingTransform,l=new u.Matrix4;l.fromArray(c),n.applyMatrix4(l)}}n.updateMatrixWorld(),n.computePose();var d=this.camera.pose,N=d.longitude,p=d.latitude;s===N&&a===p||(this.emit("cameraDirectionUpdate",{longitude:N,latitude:p},!0),this.emit("cameraUpdate",this.camera.copyPose(),!0)),this.renderIntersect(),t.render(i,n)},n}(Dn),vn=function(e){function n(t){var i=this,r=n.parseArgs(t);return(i=e.call(this,r)||this).on("panoWillArrive",(function(){return i.ready=!1})),i.on("panoArrived",(function(){return i.ready=!0})),i}return t.__extends(n,e),n.parseArgs=function(t){return e.parseArgs.call(this,t)},n.initAnimationEndPose=function(t){var n=this.parseArgs(t);return e.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){e.prototype.destroy.call(this)},n.prototype.updateWork=function(e,t,n,i){return this.ready=!1,this.work=e,this.currentPanoIndex=t.panoIndex,this.hideIntersectMesh(),this.moveToPano(t.panoIndex,{duration:0,longitude:t.longitude,latitude:t.latitude,fov:t.fov},i),!0},n.prototype.moveToPano=function(e,t,n){void 0===t&&(t={});var i=this.work.observers[e];i&&this.moveToPosition(i.position,t,n)},n.prototype.moveToPosition=function(e,t,n){var i,r,o,s,a,M,c=this;void 0===t&&(t={});var l=this,d=l.camera,N=l.model,p=l.currentPanoIndex,h=t.duration,D=t.limit,g=void 0===D||D,y=t.easing,T=void 0===y?We.Quadratic.InOut:y,z=this.calculateMovingDuration(h,d.pose.offset.distanceTo(e)),j=at(this.work.observers,(function(t){return t.position.distanceTo(e)})),f=this.work.observers.indexOf(j);this.emit("moveToPano",f,n);var v=d.pose.longitude,m=d.pose.latitude,w=d.pose.fov,I=d.pose.offset.clone(),x=(null===(i=N.getMaterial())||void 0===i?void 0:i.modelAlpha)||0,L=null!==(o=null===(r=this.model.getMaterial())||void 0===r?void 0:r.perspToOrtho)&&void 0!==o?o:0,O=null!==(s=t.longitude)&&void 0!==s?s:v,A=null!==(a=t.latitude)&&void 0!==a?a:m,E=null!==(M=t.fov)&&void 0!==M?M:w,C=e.clone(),k={longitude:O,latitude:A,fov:E,offset:C.clone()};t.moveStartCallback&&t.moveStartCallback(f,k),this.emit("panoWillArrive",f,k,n),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition);var U=function(e){var t=e.progress;c.setModelAndBoundingUniforms({modelAlpha:tt(x,1,t),perspToOrtho:tt(L,0,Math.min(5*t,1))});var i=new u.Vector3(tt(I.x,C.x,t),tt(I.y,C.y,t),tt(I.z,C.z,t));c.updateCamera({offset:i},n,g),t>.7&&(c.preventTapGesture=!1),c.emit("movingToPano",f,p,t),n&&c.lastMouseMoveEvent&&c.onMouseMove(c.lastMouseMoveEvent),c.needsRender=!0},S=function(){U({progress:1}),c.preventTapGesture=!1,c.emit("panoArrived",f,c.camera.copyPose(),n),c.needsRender=!0};if(this.preventTapGesture=!0,z>0?this.tweenPosition=Je(z,T).onUpdate(U).onComplete((function(){c.tweenPosition&&c.tweenPosition.destroy(),delete c.tweenPosition,t.moveEndCallback&&t.moveEndCallback(f,c.camera.copyPose()),S()})).onCancel((function(){t.moveCancelCallback&&t.moveCancelCallback()})):S(),this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),v!==O||m!==A||w!==E){var b=function(e){var t=e.progress,i=nt(v,O,t),r=tt(m,A,t),o=tt(w,E,t);c.updateCamera({longitude:i,latitude:r,fov:o},n,g)},Q=function(){return b({progress:1})};z>0?this.tweenCoordinates=Je(z,T).onUpdate(b).onComplete((function(){c.tweenCoordinates&&(c.tweenCoordinates.destroy(),delete c.tweenCoordinates),Q()})):Q()}},n.prototype.setModelAndBoundingUniforms=function(e){for(var t=0,n=[this.model];t<n.length;t++){n[t].setMaterial(e)}},n.prototype.onTapGesture=function(e){if(this.interiaMovement=!1,!0!==this.preventTapGesture){var t=this.camera,n=this.model,i=this.relativeClientPosition(e.center),r=new u.Raycaster;r.setFromCamera(i,t);var o=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!(this.emit("wantsGesture","tap",o,!0)||this.emit("wantsTapGesture",r,i))){var s=h(r);if(s&&s.face){var a=s.face.normal,M=s.point;if(new u.Vector3(0,1,0).angleTo(a)>Math.PI/3){var c=t.pose.offset.clone().setY(M.y),l=M.clone().sub(c).setLength(.3),d=M.clone().sub(l);r.set(d,new u.Vector3(0,-1,0)),s=h(r)}}if(s){var N=s.point.clone(),p=at(this.work.observers.filter((function(e){return Math.abs(e.standingPosition.y-N.y)<1})),(function(e){return e.standingPosition.distanceTo(N)}));p&&(N.y=p.position.y,this.emit("gesture","tap",o,!0),this.emit("tapGesture",r,i),this.moveToPosition(N,{},!0))}}}function h(e){return(!0===n.empty?e.intersectObjects(n.children):n.intersectRaycaster(e))[0]}},n}(Ct),mn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=113,i=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>i?e:String.fromCharCode((e.charCodeAt(r)+n)%i)})).join(o)}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-]Vl?-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-]Vl?9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),wn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=113,i=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>i?e:String.fromCharCode((e.charCodeAt(r)+n)%i)})).join(o)}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f"),In=function(e){return{value:e}},xn=Object.assign({opacity:In(1),scale:In(13.1),panoMap:In(null),panoDisplacementMap:In(null),panoPosition:In(new u.Vector3),panoMatrix:In(new u.Matrix4)},{emissive:In(new u.Color(0)),emissiveMap:In(null),specular:In(new u.Color(1118481)),specularMap:In(null),normalMap:In(null),bumpMap:In(null),shininess:In(30)},u.UniformsLib.common,u.UniformsLib.lights),Ln=new u.SphereBufferGeometry(.01,128,128),On=function(e){function n(t){var n=e.call(this)||this;return n.images=[null,null],n.xhr=[null,null],n.aborted=!1,n.cubeTextureLoader=new mt(t),n.renderer=t,n}return t.__extends(n,e),n.prototype.load=function(e,t){var n=this,i=f,r=f,o=f,s=f;"function"==typeof t?(i=t.bind(this,null),o=t.bind(this),s=t.bind(this)):(t.onLoad&&(i=t.onLoad),t.onProgress&&(r=t.onProgress),t.onError&&(o=t.onError),t.onAbort&&(s=t.onAbort)),this.abort(),this.disposeImages(),this.aborted=!1;var a=[0,0];this.cubeTextureLoader.load(e,(function(t,r){if(t)o(t);else{var s=e.images.depth;n.xhr[0]=ft(s,(function(t){var o=Object.assign(n.toPanoModel(r,t,e.position,e.matrix),{hash:r.hash});i(o),n.emit("load",o,e)}),(function(e){return M(e,0)}),(function(e){return u(e,0)}),(function(){return c()}))}}));var M=function(t,i){n.aborted||(o(t),n.emit("error",t,e),n.xhr[i]=null,n.xhr.forEach((function(e,t,n){e&&e.abort(),n[t]=null})),n.disposeImages())},u=function(t,i){a[i]=t,t=a.reduce((function(e,t){return e+t}),0)/a.length,r(t),n.emit("progress",t,e)},c=function(){n.aborted||(n.aborted=!0,n.xhr.forEach((function(e,t,n){e&&e.abort(),n[t]=null})),n.disposeImages(),s(new Error("image aborted")),n.emit("abort",e))};this.emit("start",e)},n.prototype.abort=function(){this.xhr.forEach((function(e,t,n){e&&e.abort(),n[t]=null}))},n.prototype.disposeImages=function(){for(var e=0;e<this.images.length;e++)if(this.images[e]){var t=this.images[e];t&&jt(t),this.images[e]=null}},n.prototype.toPanoModel=function(e,t,n,i){var r=new u.ShaderMaterial({side:u.BackSide,vertexShader:mn,fragmentShader:wn,transparent:!0,uniforms:u.UniformsUtils.clone(xn)}),o=e;o.needsUpdate=!0,o.minFilter=u.LinearFilter,o.magFilter=u.LinearFilter;var s=t instanceof u.Texture?t:new u.Texture(t);return s.needsUpdate=!0,s.minFilter=u.LinearFilter,s.magFilter=u.LinearFilter,r.uniforms.opacity.value=0,r.uniforms.panoMap.value=o,r.uniforms.panoDisplacementMap.value=s,r.uniforms.panoPosition.value=n,r.uniforms.panoMatrix.value=i,Object.assign(new u.Mesh(Ln,r),{frustumCulled:!1,dispose:function(){this.material instanceof u.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})},n}(_e),An=function(e){function n(t){var i=this,r=n.parseArgs(t);return(i=e.call(this,r)||this).maxAccessibleDistance=r.maxAccessibleDistance,i.panoCircleMeshCreator=r.panoCircleMeshCreator,i.model.visible=!1,i.model.setMaterial({perspToOrtho:0}),i.boundingMesh=G(i.getBounding()),i.boundingMesh.setMaterial(i.model.getMaterial()||{}),i.boundingMesh.visible=!1,i.boundingMesh.renderOrder=2,i.boundingMesh.frustumCulled=!1,i.scene.add(i.boundingMesh),i.panoCircleMeshes=[],i.updatePanoCircleMeshes(),i.panoCircleMeshes.forEach((function(e){return e.visible=!1})),i.helper.remove(i.intersectMesh),i.depthTextureLoader=new On(i.renderer),i.depthTextureLoader.on("start",(function(e){var t,n=e.index;null===(t=i.panoCircleMeshes[n])||void 0===t||t.setProgress(0),i.emit("textureStartLoad",n,i.work.observers[n])})),i.depthTextureLoader.on("progress",(function(e,t){var n,r=t.index;null===(n=i.panoCircleMeshes[r])||void 0===n||n.setProgress(e),i.emit("textureLoading",e,r,i.work.observers[r])})),i.depthTextureLoader.on("abort",(function(e){var t,n=e.index;null===(t=i.panoCircleMeshes[n])||void 0===t||t.setProgress(0),i.emit("textureAbort",n,i.work.observers[n])})),i.depthTextureLoader.on("load",(function(e,t){var n,r=t.index;null===(n=i.panoCircleMeshes[r])||void 0===n||n.setProgress(1),i.emit("textureLoaded",r,i.work.observers[r])})),i.depthTextureLoader.on("error",(function(e,t){var n,r=t.index;null===(n=i.panoCircleMeshes[r])||void 0===n||n.setProgress(0),i.emit("textureError",e,r,i.work.observers[r])})),i.once("panoLoaded",(function(){i.boundingMesh.visible=!0,i.needsRender=!0})),i.on("panoWillArrive",(function(){return i.ready=!1})),i.on("moveToPanoCanceled",(function(){return i.ready=!0})),i.on("panoArrived",(function(){return i.ready=!0})),i}return t.__extends(n,e),n.parseArgs=function(n){var i,r,o=e.parseArgs.call(this,n);return t.__assign(t.__assign({},o),{maxAccessibleDistance:null!==(i=n.maxAccessibleDistance)&&void 0!==i?i:5,panoCircleMeshCreator:null!==(r=n.panoCircleMeshCreator)&&void 0!==r?r:qt})},n.initAnimationEndPose=function(t){var n=this.parseArgs(t);return e.initAnimationEndPose.call(this,n)},n.prototype.getBounding=function(){for(var e=new u.Box3,t=0,n=this.work.observers;t<n.length;t++){var i=n[t].standingPosition.clone();e.expandByPoint(i),i.y+=3,e.expandByPoint(i)}return e.max.x+=4,e.min.x-=4,e.max.z+=4,e.min.z-=4,e},n.prototype.updatePanoCircleMeshes=function(){var e=this,t=[],n=this.model;this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(n){n.loading&&t.push(n.panoIndex),e.helper.remove(n),n.dispose()})),this.panoCircleMeshes.length=0);var i=new u.Vector3(0,-1,0);this.panoCircleMeshes=this.work.observers.map((function(r,o){var s=e.panoCircleMeshCreator();if(s.position.copy(r.standingPosition),e.model.loaded){var a=s.position.clone().add(new u.Vector3(0,1,0)),M=new u.Raycaster(a,i,0,1),c=n.intersectRaycaster(M)[0];c&&(s.position.copy(c.point.clone()),s.needsRender=!0)}return s.name="panoCircle_"+o,s.panoIndex=o,e.helper.add(s),s.needsRender=!0,!1===r.active&&(s.setDisabled(!0),t.indexOf(o)>=0&&(s.setDisabled(!1),s.setLoading(!0))),s}));var r=this.work.observers[this.currentPanoIndex].visibleNodes;r=r.filter((function(t){var n=e.work.observers[t];return n.loadable||n.active})),this.panoCircleMeshes.forEach((function(e){e.visible=r.indexOf(e.panoIndex)>=0}));var o=this.camera.position;this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))}))},n.prototype.destroy=function(){var t=this;e.prototype.destroy.call(this),this.depthTextureLoader.off(),delete this.pendingLoadTextureHashAndCallback,this.model&&(this.model.visible=!0),this.panoModel&&(this.scene.remove(this.panoModel),this.panoModel.dispose(),delete this.panoModel),this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){t.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0)},n.prototype.moveToPano=function(e,t,n){var i=this;void 0===t&&(t={}),this.interiaMovement=!1;var r={index:e,images:this.work.observers[e].images,imageOptions:this.imageOptions},o=d.digest(r),s=function(r,o){if(r)return t.moveCancelCallback&&t.moveCancelCallback(),i.emit("panoLoadError",r,e),void i.emit("moveToPanoCanceled",e);i.destroyed?null==o||o.dispose():(i.emit("panoLoaded",e),O((function(){return i.doMoveToPano(e,o,t,n)})))},a=this.pendingLoadTextureHashAndCallback||[],M=a[0],c=a[1];if(o!==M){if(delete this.pendingLoadTextureHashAndCallback,c&&c(new Error("texture aborted")),this.emit("moveToPano",e,n),this.emit("panoWillLoad",e),!r.images)return void s(new Error("pano images were not existed"));if(!r.images.depth)return void s(new Error("pano depth image were not existed"));var l=this.work.observers[e],N=l.position,p=l.quaternion,h=(new u.Matrix4).compose(N,p,new u.Vector3(-1,1,1)),D=Object.assign({position:N,matrix:h},r);this.pendingLoadTextureHashAndCallback=[o,s],this.depthTextureLoader.load(D,(function(e,t){var n=i.pendingLoadTextureHashAndCallback||[],r=n[0],s=n[1];o===r&&s?(s(e,t),delete i.pendingLoadTextureHashAndCallback):null==t||t.dispose()}))}},n.prototype.updateCamera=function(t,n,i){var r=this;e.prototype.updateCamera.call(this,t,n,i),this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(r.camera.pose.offset);e.setOpacity(Math.min(1/t,1))}));var o=this.getForwardPanoIndexOrNot();null!==o&&this.panoCircleMeshes[o].setOpacity(1),ue()},n.prototype.canNotMoveAnimation=function(){var e=this;if(this.interiaMovement=!1,!this.tweenCoordinates){var t=this.camera.fov,n=.98*t,i=function(t){var n=t.fov;return e.updateCamera({fov:n},!0,!0)};this.tweenCoordinates=Ze({fov:t},{fov:n},200).onUpdate(i).onComplete((function(){var r;null===(r=e.tweenCoordinates)||void 0===r||r.destroy(),e.tweenCoordinates=Ze({fov:n},{fov:t},200).onUpdate(i).onComplete((function(){var t;null===(t=e.tweenCoordinates)||void 0===t||t.destroy(),delete e.tweenCoordinates}))}))}},n.prototype.doMoveToPano=function(e,t,n,i){var r,o,s,a=this;void 0===n&&(n={});var M=n.limit,c=void 0===M||M,l=n.easing,d=void 0===l?We.Quadratic.InOut:l,N=this.currentPanoIndex,p=this.panoModel,h=this.currentPanoIndex,D=this.work.observers[e],g=function(e){return e.material.uniforms};if(p&&p instanceof u.ShaderMaterial){var y={pano0Map:g(p).panoMap.value,pano0Matrix:g(p).panoMatrix.value};g(p).opacity.value=1,this.boundingMesh.setMaterial(y)}t.renderOrder=-1;var T={progress:0,pano1Map:g(t).panoMap.value,pano1Matrix:g(t).panoMatrix.value};g(t).opacity.value=0,this.boundingMesh.setMaterial(T),this.model.setMaterial(T),this.panoModel=t,this.scene.add(t);var z=D.visibleNodes.filter((function(e){var t=a.work.observers[e];return t.loadable||t.active})),j=this.calculateMovingDuration(n.duration,this.camera.pose.offset.distanceTo(D.standingPosition)),f=this.camera.pose.longitude,v=this.camera.pose.latitude,m=this.camera.pose.offset.clone(),w=this.camera.fov,I=null!==(r=n.longitude)&&void 0!==r?r:f,x=null!==(o=n.latitude)&&void 0!==o?o:v,L=D.position,O=null!==(s=n.fov)&&void 0!==s?s:w,A={longitude:I,latitude:x,fov:O,offset:L.clone()};if(this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition),n.moveStartCallback&&n.moveStartCallback(e,A),this.emit("panoWillArrive",e,A,i),this.needsRender=!0,f!=f||v!==x||w!==O){var E=function(e){var t=e.progress,n=nt(f,I,t),r=tt(v,x,t),o=tt(w,O,t);a.updateCamera({longitude:n,latitude:r,fov:o},i,c),a.needsRender=!0},C=function(){return E({progress:1})};j>0?this.tweenCoordinates=Je(j,d).onUpdate(E).onComplete((function(){var e;null===(e=a.tweenCoordinates)||void 0===e||e.destroy(),delete a.tweenCoordinates,C()})):C()}var k=function(){a.panoCircleMeshes.forEach((function(e){e.visible=z.indexOf(e.panoIndex)>=0})),g(t).opacity.value=0,t.material.depthTest=!0,p&&(a.scene.remove(p),p.material.uniforms.panoMap.value.dispose(),p.dispose()),a.updateCamera({offset:L},i,c);var r={progress:1,pano1Map:g(t).panoMap.value,pano1Position:g(t).panoPosition.value,pano1Matrix:g(t).panoMatrix.value,pano0Map:g(t).panoMap.value,pano0Position:g(t).panoPosition.value,pano0Matrix:g(t).panoMatrix.value,modelAlpha:0};a.boundingMesh.setMaterial(r),a.model.setMaterial(r),a.panoCircleMeshes[e]&&a.panoCircleMeshes[e].setProgress(0),n.moveEndCallback&&n.moveEndCallback(e,a.camera.copyPose()),a.currentPanoIndex=e,a.preventTapGesture=!1,a.emit("panoArrived",e,a.camera.copyPose(),i),a.needsRender=!0};this.preventTapGesture=!0,j>0&&h!==e?(this.panoCircleMeshes.forEach((function(e){return e.visible=!1})),t.material.depthTest=!1,p&&(p.material.depthTest=!1),this.tweenPosition=Je(j,d).onUpdate((function(n){var r=n.progress,o=new u.Vector3(tt(m.x,L.x,r),tt(m.y,L.y,r),tt(m.z,L.z,r));a.updateCamera({offset:o},i,c);var s=(Math.min(Math.max(r,.1),.9)-.1)/.8,M={modelAlpha:tt(1,0,s)};g(t).opacity.value=tt(0,1,s),p&&(g(p).opacity.value=1),a.boundingMesh.setMaterial(M),a.model.setMaterial(M),a.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))})),r>.7&&(a.preventTapGesture=!1),a.emit("movingToPano",e,N,r),a.needsRender=!0})).onComplete((function(){a.tweenPosition&&(a.tweenPosition.completed=!0,a.tweenPosition.destroy()),delete a.tweenPosition,k()})).onCancel((function(){n.moveCancelCallback&&n.moveCancelCallback(),a.emit("moveToPanoCanceled",e)}))):k()},n.prototype.getForwardPanoIndexOrNot=function(e){var t=this,n=this.camera,i=this.currentPanoIndex,r=this.work.observers[i].accessibleNodes;r=r.filter((function(e){var n=t.work.observers[e];return n.loadable||n.active}));var o,s=n.getWorldDirection(new u.Vector3);o=e?e.ray.direction.clone():s.clone();var a=n.pose.offset.clone();o.y=a.y=0;for(var M=0,c=r.filter((function(e){return t.work.observers[e].standingPosition.clone().sub(n.pose.offset).angleTo(s)<n.fov/2/180*Math.PI})).map((function(e){var n=t.work.observers[e].standingPosition.clone();return Object.assign(n,{y:0,panoIndex:e})})).sort((function(e,t){return e.distanceTo(a)-t.distanceTo(a)}));M<c.length;M++){var l=c[M],d=l.clone().sub(a);if(d.length()&&o.angleTo(d)<Math.PI/6)return l.panoIndex}return null},n.prototype.onTapGesture=function(e){var t=this;if(this.interiaMovement=!1,!0!==this.preventTapGesture){var n=this.camera,i=this.panoCircleMeshes,r=null,o=void 0,s=this.work.observers[this.currentPanoIndex].accessibleNodes;s=s.filter((function(e){return t.work.observers[e].position.distanceTo(n.pose.offset)<t.maxAccessibleDistance}));var a=this.relativeClientPosition(e.center),M=new u.Raycaster;M.setFromCamera(a,n);var c=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!(this.emit("wantsGesture","tap",c,!0)||this.emit("wantsTapGesture",M,a))){var l=M.intersectObjects(this.boundingMesh.children)[0];if(l){var d=l.point.clone(),N=at(i.filter((function(e){return s.indexOf(e.panoIndex)>=0})),(function(e){return e.position.distanceTo(d)}),!0),p=N[0];if(N[1]<1){var h=l.point.clone();r=p.panoIndex;var D=n.getWorldDirection(new u.Vector3).setY(0),g=(new u.Vector3).copy(h).setY(0).sub(n.pose.offset.clone().setY(0));if(D.angleTo(g)>Math.PI/6){var y=g.x,T=g.z;o={longitude:Math.atan2(-y,-T)}}}}if(j(r)&&!j(r=this.getForwardPanoIndexOrNot(M))&&l){var z=l.point,f=this.work.observers[r].position.clone();D=z.clone().setY(0).sub(n.getWorldDirection(new u.Vector3).setY(0)),g=z.clone().setY(0).sub(f.clone().setY(0));if(Math.abs(z.y-f.y)<.5&&D.angleTo(g)>Math.PI/6&&D.angleTo(g)<Math.PI/3){y=g.x,T=g.z;o={longitude:Math.atan2(-y,-T)}}}if(j(r))this.canNotMoveAnimation();else{var v=this.work.observers[r];this.emit("panoSelected",r),this.emit("gesture","tap",c,!0),this.emit("tapGesture",M,a),v.active?this.emit("wantsMoveToPano",r,o||{},!0):this.panoCircleMeshes[r]&&(this.panoCircleMeshes[r].setDisabled(!1),this.panoCircleMeshes[r].setLoading(!0))}}}},n}(Ct),En=["Panorama","DepthPanorama","Model"],Cn={Floorplan:gt,Topview:yt,Panorama:Dn,VRPanorama:fn,Model:vn,DepthPanorama:An};function kn(e){for(var t=0,n=En;t<n.length;t++){var i=n[t];if("string"==typeof e){if(i===e)return!0}else if(e instanceof Dt&&e instanceof Cn[i])return!0}return!1}var Un=["cameraDirectionUpdate","cameraUpdate","cameraPositionUpdate","panoSelected","moveToPano","moveToPanoCanceled","panoWillArrive","movingToPano","panoArrived","panoWillLoad","panoLoaded","panoLoadError","initAnimationEnded","initAnimationWillStart","wantsGesture","gesture","wantsTapGesture","tapGesture","wantsPanGesture","wantsInteriaPan","panGesture","interiaPan","wantsPinchGesture","pinchGesture","wantsMouseWheel","mouseWheel","wantsShowIntersectionOnModel","intersectionOnModelUpdate","intersectionHidden","textureStartLoad","textureLoading","textureAbort","textureLoaded","textureError"];function Sn(e){for(var t,n,i={},r=0,o=e.split(/(\;|\,)/);r<o.length;r++){var s=o[r].split("="),a=null===(t=s[0])||void 0===t?void 0:t.trim(),M=null===(n=s[1])||void 0===n?void 0:n.trim();a&&M&&(i[a]=M)}return i}function bn(){for(var e,t=document.getElementsByTagName("meta"),n=0;n<t.length;n++){var i=t[n];if("viewport"===i.getAttribute("name")){var r=Sn(null!==(e=i.getAttribute("content"))&&void 0!==e?e:""),o=Number(r["initial-scale"]);if(!isNaN(o))return o}}return 1}var Qn=new u.Box3(new u.Vector3(-50,-50,-50),new u.Vector3(50,50,50)),Yn=new u.Vector2,Pn=new u.Frustum,_n=new u.Matrix4,Bn=new u.Clock,Rn=function(e){function n(t){var n,i,r,o,s,a,M,c,l,d,N,p;void 0===t&&(t={});var h=e.call(this)||this;if(h.ident=m(),h.panoIndex=0,h.needsRender=!1,h.onlyRenderIfNeeds=null===(n=t.onlyRenderIfNeeds)||void 0===n||n,h.maxFps=null!==(i=t.maxFps)&&void 0!==i&&i,h.imageOptions=t.imageOptions||{},h.textureOptions=t.textureOptions||h.imageOptions||{},h.extraElements=[],h.controllerInits={Panorama:null!==(r=t.panorama)&&void 0!==r?r:{},Model:null!==(o=t.model)&&void 0!==o?o:{},Floorplan:null!==(s=t.floorplan)&&void 0!==s?s:{},Topview:null!==(a=t.topview)&&void 0!==a?a:{},DepthPanorama:null!==(M=t.depthPanorama)&&void 0!==M?M:{},VRPanorama:null!==(c=t.vrPanorama)&&void 0!==c?c:{}},h.modeChangeDuration=null!==(l=t.modeChangeDuration)&&void 0!==l?l:1e3,h.panoramaLikeSavedPose={},t.renderer)t.renderer instanceof z&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=t.renderer;else try{h.renderer=new z({preserveDrawingBuffer:t.preserveDrawingBuffer,backgroundColor:t.backgroundColor,backgroundAlpha:t.backgroundAlpha,antialias:t.antialias});var D=bn();h.renderer.setPixelRatio(1===D?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(e){h.throwError(e)}h.getPixelsRenderTarget=new u.WebGLRenderTarget(1,1,{encoding:h.renderer.outputEncoding}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},t.scissor),h.camera=new y(80),h.scene=new T,h.model=new Ve;var g=G(Qn);if(h.model.add(g),h.model.visible=!1,h.model.name="model_empty",h.model.empty=!0,h.model.loaded=!1,h.readyCallbacks=[],h.modelPending=!1,h.scene.add(h.model),h.helperGroup=new u.Group,h.helperGroup.name="helper",h.scene.add(h.helperGroup),h.videoTexture=new u.VideoTexture(t.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),h.plugins={},t.plugins)for(var j=0,f=t.plugins;j<f.length;j++){var v=f[j];if("function"==typeof v)v(h);else if(Array.isArray(v)){var w=v[0],I=v[1],x=v[2],L=w(h,x);"string"==typeof I&&(h.plugins[I]&&h.throwError(new Error("plugin name "+I+" is exists.")),h.plugins[I]=L)}}return function(e){(t=new u.DirectionalLight(16777215,.5)).position.copy(new u.Vector3(1,1,1)),e.add(t);var t=new u.DirectionalLight(16777215,.3);e.add(t),t=new u.AmbientLight(16777215,.3),e.add(t)}(h.scene),h.state={mode:null!==(d=h.currentMode)&&void 0!==d?d:"Panorama",panoIndex:null!==(N=h.panoIndex)&&void 0!==N?N:0,longitude:h.camera.pose.longitude,latitude:h.camera.pose.latitude,fov:h.camera.pose.fov,offset:h.camera.pose.offset.clone()},h.stateSynced=!1,h.destroyed=!1,h.paused=!0,!1!==t.play&&h.play(),!1!==(null!==(p=t.initialBasisLoader)&&void 0!==p&&p)&&("string"==typeof t.initialBasisLoader?h.initBasisLoader(t.initialBasisLoader):h.initBasisLoader()),A((function(){return h.syncState()})),h}return t.__extends(n,e),n.prototype.dispose=function(){if(!0!==this.destroyed){this.emit("dispose"),this.destroyed=!0,this.pause(),this.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var e=this.getElement();e&&e.parentNode&&e.parentNode.removeChild(e),this.scene.remove(this.model);var t=this.model.getMaterial();t&&(t.pano0Map&&t.pano0Map.dispose(),t.pano1Map&&t.pano1Map!==t.pano0Map&&t.pano1Map.dispose()),this.renderer instanceof z&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},n.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.resize&&this.controller.resize()},Object.defineProperty(n.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpersVisibleChange",e),this.needsRender=!0)},enumerable:!1,configurable:!0}),n.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer instanceof z){e.appendChild(this.getElement()),this.refresh(t);var n=window.getComputedStyle(e).position;"relative"!==n&&"absolute"!==n&&"fixed"!==n&&"sticky"!==n&&(e.style.position="relative")}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},n.prototype.refresh=function(e,t){void 0===e&&(e={});var n=this.getElement().parentNode;if(n&&n.nodeName){var i=e.width,r=void 0===i?n.offsetWidth:i,o=e.height,s=void 0===o?n.offsetHeight:o;this.renderer instanceof z&&(t&&this.renderer.setPixelRatio(t),this.renderer.setSize(r,s))}var a=this.renderer.getSize(new u.Vector2);this.camera.aspect=a.x/a.y,this.scissor&&(this.camera.aspect*=this.scissor.width/this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.resize&&this.controller.resize(),this.needsRender=!0},n.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},n.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},n.prototype.getPose=function(){return this.camera.copyPose()},n.prototype.getSize=function(e){return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},n.prototype.getDrawingBufferSize=function(e){return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},n.prototype.updateCamera=function(e,t){var n=this;return new Promise((function(i,r){if(n.controller){var o=n.getPose(),s=o.longitude,a=o.latitude,M=o.fov,c=o.offset,l=e.longitude,d=void 0===l?s:l,N=e.latitude,p=void 0===N?a:N,h=e.fov,D=void 0===h?M:h,g=e.offset,y=void 0===g?c.clone():g;n.controller.tweenCoordinates&&(n.controller.tweenCoordinates.destroy(),delete n.controller.tweenCoordinates),n.tweenCoordinates&&(n.tweenCoordinates.destroy(),delete n.tweenCoordinates);var T=n.tweenCoordinates=Je(t,We.Linear.None).onUpdate((function(e){var t,i=e.progress,r=nt(s,d,i),o=tt(a,p,i),l=tt(M,D,i),N=new u.Vector3(tt(c.x,y.x,i),tt(c.y,y.y,i),tt(c.z,y.z,i));null===(t=n.controller)||void 0===t||t.updateCamera({longitude:r,latitude:o,fov:l,offset:N},!0,!0)})).onCancel((function(){for(var e=0,t=j;e<t.length;e++){(0,t[e])()}delete n.tweenCoordinates,console.log(new Error("updateCamera animation canceled")),r(new Error("updateCamera animation canceled"))})).onComplete((function(){for(var e=0,t=j;e<t.length;e++){(0,t[e])()}T.destroy(),delete n.tweenCoordinates,i()})),z=function(){return T.destroy()},j=[n.on("gesture",z),n.on("load",z)]}else{var f=new Error("controller never initialized");r(f)}}))},n.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},n.prototype.getOffset=function(){return this.getPose().offset},n.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var e=this.work.observers[this.panoIndex],t=new u.Object3D;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.set(1,1,1),t.updateMatrixWorld(!0),function(e,t){var n=new u.Vector3(0,0,-1);n.applyQuaternion(e.quaternion);var i=t.quaternion.clone().inverse();return n.applyQuaternion(i),{theta:Math.atan2(n.x,-n.z),phi:-Math.asin(n.y),lookAtVector:n}}(this.camera,t)}},n.prototype.initBasisLoader=function(e){try{if("undefined"==typeof Promise||"undefined"==typeof WeakMap||"undefined"==typeof WebAssembly)throw new Error("Basis loader not support.");"string"==typeof e&&ye.setResourcePath(e),ye.workerConfig.format||ye.detectSupport(this.renderer),ye._allocateWorker(0)}catch(e){this.throwError(e)}},n.prototype.load=function(e,i,r){var o,s,a,M,u,c,l,d,N,p,h,D,g=this,y=this.work,T=ot(e);void 0===i&&(i=y?"inherit":"initial"),"inherit"===i?(p="number"==typeof this.panoIndex&&T.observers[this.panoIndex]?this.panoIndex:T.initial.panoIndex,h=null!==(o=this.currentMode)&&void 0!==o?o:T.initial.mode,D={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===i?(h=null!==(s=this.currentMode)&&void 0!==s?s:T.initial.mode,p=T.initial.panoIndex,D=h===n.Mode.Panorama||h===n.Mode.DepthPanorama||h===n.Mode.Model||h===n.Mode.VRPanorama?{longitude:T.initial.longitude,latitude:T.initial.latitude,fov:T.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(p=null!==(a=i.panoIndex)&&void 0!==a?a:T.initial.panoIndex,h=null!==(u=null!==(M=i.mode)&&void 0!==M?M:this.currentMode)&&void 0!==u?u:"Panorama",D={longitude:null!==(c=i.longitude)&&void 0!==c?c:T.initial.longitude,latitude:null!==(l=i.latitude)&&void 0!==l?l:T.initial.latitude,fov:null!==(d=i.fov)&&void 0!==d?d:T.initial.fov}),this.emit("willLoad",e,T,{panoIndex:p,mode:h,longitude:D.longitude,latitude:D.latitude,fov:D.fov});var z=function(){g.work=T,g.panoIndex=p,g.panoramaLikeSavedPose.longitude=T.initial.longitude,g.panoramaLikeSavedPose.latitude=T.initial.latitude,g.panoramaLikeSavedPose.fov=T.initial.fov;var n=null!=r?r:void 0===y?0:g.modeChangeDuration,i={panoIndex:p,longitude:D.longitude,latitude:D.latitude,fov:D.fov},o=t.__assign(t.__assign({panoIndex:p,initial:[{longitude:D.longitude,latitude:D.latitude,fov:D.fov},n,!0]},g.commonParams()),g.controllerInits[h]);g.controller?!1===g.controller.updateWork(T,i,n,!0)&&(g.controller.destroy(),g.controller=g.applyController(h,o)):g.controller=g.applyController(h,o),g.emit("load",e,T,{panoIndex:p,mode:h,longitude:D.longitude,latitude:D.latitude,fov:D.fov})},j=function(e,t){var n,i;void 0===t&&(t=f),e&&((null===(n=null==y?void 0:y.model)||void 0===n?void 0:n.file)!==(null===(i=T.model)||void 0===i?void 0:i.file)?(g.emit("modelWillLoad",e),g.loadModel(e,t,!0)):t&&(!0===g.model.loaded?t():g.once("modelLoaded",(function(){return t()}))))};return h===n.Mode.Floorplan||h===n.Mode.Topview||h===n.Mode.Model?j(T.model,(function(){z()})):(z(),null===(N=this.controller)||void 0===N||N.once("panoLoaded",(function(){return j(T.model)}))),this.ready()},n.prototype.changeMode=function(e,i,r,o){var s=this;return void 0===i&&(i={}),void 0===r&&(r=this.modeChangeDuration),void 0===o&&(o=!0),new Promise((function(a,M){var u;if(!n.Mode.hasOwnProperty(e)){var c=new Error('mode "'+e+'" is not existed');return s.throwError(c),void M(c)}if(e!==n.Mode.Floorplan&&e!==n.Mode.Topview&&e!==n.Mode.Model||!j(s.model)&&!0===s.model.loaded){if(j(s.controller))return s.currentMode=e,s.panoIndex=null!==(u=i.panoIndex)&&void 0!==u?u:s.panoIndex,s.updateCamera(i,r);var l=s.controller,d=s.currentMode,N=function(){var u,c,N,p;if(s.emit("wantsChangeMode",e,d))M(new Error("change mode canceled."));else{if(s.controller&&d===e)e===n.Mode.Panorama||e===n.Mode.DepthPanorama||e===n.Mode.Model||e===n.Mode.VRPanorama?"number"==typeof i.panoIndex&&i.panoIndex!==s.panoIndex?s.controller.moveToPano(null!==(c=null!==(u=i.panoIndex)&&void 0!==u?u:s.panoIndex)&&void 0!==c?c:0,t.__assign({duration:r},i),o):s.updateCamera(i,r).catch((function(){})):("number"==typeof i.panoIndex&&i.panoIndex!==s.panoIndex&&(s.panoIndex=s.controller.currentPanoIndex=i.panoIndex),s.updateCamera(i,r).catch((function(){})));else{l.destroy();var h=t.__assign(t.__assign({panoIndex:null!==(p=null!==(N=i.panoIndex)&&void 0!==N?N:s.panoIndex)&&void 0!==p?p:0,initial:[kn(e)?s.panoramaLikeSavedPose:i,r,o]},s.commonParams()),s.controllerInits[e]);s.saveControllerPose(l),s.controller=s.applyController(e,h),s.controller.once("initAnimationWillStart",(function(t,n){s.emit("modeChange",e,d,t,n)})),s.emit("currentStateChange",s.getCurrentState(),o)}a()}};e===n.Mode.VRPanorama&&"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)N();else{var t=new Error("Request DeviceOrientation Permission denied.");s.throwError(t),M(t)}})).catch((function(e){s.throwError(e),M(e)})):N()}else{c=new Error("model is not ready.");s.throwError(c)}}))},n.prototype.getPixels=function(e,t,n,i,r){void 0===r&&(r=1);var o=this.getPixelsRenderTarget,s=this.renderer.getSize(new u.Vector2);e=Math.min(Math.max(e,Math.floor(n/2)),Math.floor(s.x-n)),t=Math.min(Math.max(t,Math.floor(i/2)),Math.floor(s.y-i)),e*=r,t*=r,n*=r,i*=r,o.setSize(s.x*r,s.y*r),o.scissor.set(e,t,n,i),o.scissorTest=!0,this.renderer.setRenderTarget(o);var a=new Uint8Array(n*i*4);return this.controller?this.controller.render(Bn.getDelta()):this.renderer.render(this.scene,this.camera),this.renderer.readRenderTargetPixels(o,e,t,n,i,a),this.renderer.setRenderTarget(null),o.setSize(1,1),o.scissor.set(0,0,0,0),o.scissorTest=!1,a},n.prototype.getElement=function(){return this.renderer.domElement},n.prototype.pause=function(){},n.prototype.render=function(e,t){var n=this;if(void 0===t&&(t=!1),t){var i=this.renderer.getSize(new u.Vector2);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(i.x,i.y)}))}if(this.screenBuffer&&null===this.renderer.getRenderTarget()){var r=this.getDrawingBufferSize(Yn);this.screenBuffer.setSize(r.x,r.y),this.renderer.setRenderTarget(this.screenBuffer),this.controller?this.controller.render(Bn.getDelta()):this.renderer.render(this.scene,this.camera),this.renderer.setRenderTarget(null);var o=Fe(this.renderer.getContext());o&&this.throwError(o),e&&O(e)}else this.aroundScissor((function(){n.controller?n.controller.render(Bn.getDelta()):n.renderer.render(n.scene,n.camera);var t=Fe(n.renderer.getContext());t&&n.throwError(t),e&&O(e)}))},n.prototype.play=function(){var e=this;this.pause(),this.needsRender=!0;var t=I(),i=I(),r=0;this.paused=!1;var o=A((function(){var o,s;if(!0!==e.paused&&!e.destroyed){var a=I();if(e.maxFps){if(a-t+1<=1e3/e.maxFps)return;t=a}var M=e.renderer.getSize(new u.Vector2),c=[];_n.multiplyMatrices(e.camera.projectionMatrix,e.camera.matrixWorldInverse),Pn.setFromProjectionMatrix(_n),e.scene.traverse((function(e){e.setResolution&&e.setResolution(M.x,M.y),e.mixer instanceof u.AnimationMixer&&e.mixer.update(Bn.getDelta()),(e instanceof u.Mesh||e instanceof u.Line||e instanceof u.Points)&&(e instanceof u.ImmediateRenderObject||!e.frustumCulled||Pn.intersectsObject(e))&&c.push(e)}));var l=!1;if(e.currentMode!==n.Mode.VRPanorama&&e.onlyRenderIfNeeds){for(var d=0,N=c;d<N.length;d++){var p=N[d],h=function(t){!0===t.needsRender?(t.needsRender=!1,e.needsRender=!0):t.mixer&&t.mixer.stats.actions.inUse>0&&(e.needsRender=!0)};h(p),p.traverseAncestors(h)}e.controller&&!0===e.controller.needsRender&&(e.controller.needsRender=!1,e.needsRender=!0),!1!==e.needsRender&&(e.render(),l=!0)}else e.render(),l=!0;if(e.needsRender=!1,e.screenBuffer&&null===e.renderer.getRenderTarget()&&(null===(o=e.controller)||void 0===o?void 0:o.postProcessing)){var D=null===(s=e.controller)||void 0===s?void 0:s.postProcessing;e.aroundScissor((function(){return D(e.screenBuffer,Bn.getDelta())}))}e.hasListener("renderFrame")&&e.emit("renderFrame",l),e.hasListener("fps")&&(i&&a-i<1e3?r++:(i&&e.emit("fps",r),i=a,r=0))}}));this.pause=function(){e.paused=!0,o(),e.renderer&&e.renderer instanceof z&&e.renderer.clear(!0,!0,!0)}},n.prototype.moveToPano=function(e,t,i){var r;void 0===t&&(t={}),void 0===i&&(i=!0);var o=this.moveToPanoQueue=this.moveToPanoQueue||[],s=this.controller,a=this.currentMode;if(s)if(a===n.Mode.Floorplan||a===n.Mode.Topview)o.length=0,delete o.dequeue,j(e)||(this.panoIndex=e,this.changeMode(n.Mode.Panorama,t));else{if((null===(r=this.controller)||void 0===r?void 0:r.tweenPosition)||(o.length=0,delete o.dequeue),o.push([e,t,i]),o.length>2&&(o.length=2),o.dequeue)return;var M=function(){if(0!==o.length){var e=o.shift(),t=e[0],n=e[1],i=void 0===n?{}:n,r=e[2],a=Object.assign({},i);a.moveEndCallback=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.moveEndCallback&&(e=i.moveEndCallback.apply(this,t)),setTimeout(M),e},a.moveCancelCallback=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.moveCancelCallback&&(e=i.moveCancelCallback.apply(this,t)),setTimeout(M),e},s&&"moveToPano"in s&&O((function(){return s.moveToPano(t,a,r)}))}else delete o.dequeue};o.dequeue=!0,M()}},n.prototype.preloadPano=function(e,n){var i=this;if(void 0===n&&(n=f),!this.work)return Promise.reject(new Error("work never loaded"));var r=this.work.observers[e],o=I();return Promise.all(["right","left","up","down","front","back"].map((function(n){var o,s=t.__assign({key:["cube",e,n].join("."),basisLoaderInitialized:ye.isInitialized()},i.imageOptions);return o=ne(r.images[n],s),He[o]?He[o]:He[o]=new Promise((function(e){var t=document.createElement("link");t.href=o,t.rel="preload",t.as="fetch",qe&&qe.appendChild(t),t.onload=function(){return e()}}))}))).then((function(){var e=I()-o;return n(e),e}))},n.prototype.project2d=function(e,t){if(void 0===t&&(t=!1),!1===this.model.empty&&t){var n=this.camera.position,i=e.clone().sub(n),r=new u.Raycaster(n,i.clone().normalize()),o=this.model.intersectRaycaster(r)[0];if(o&&o.distance+.01<i.length())return null}var s=e.clone().project(this.camera);if(Math.abs(s.z)>1)return null;var a=this.renderer.getSize(new u.Vector2),M=a.x*this.scissor.width,c=a.y*this.scissor.height,l=a.x*this.scissor.left+(s.x+1)/2*M,d=a.y*(1-this.scissor.bottom-this.scissor.height)+(1-s.y)/2*c;return new u.Vector2(l,d)},n.prototype.getRenderObjects=function(e){_n.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),Pn.setFromProjectionMatrix(_n),e||(e=this.scene);var t=[];return e.traverseVisible((function(e){(e instanceof u.Mesh||e instanceof u.Line||e instanceof u.Points)&&(e instanceof u.ImmediateRenderObject||!e.frustumCulled||Pn.intersectsObject(e))&&t.push(e)})),t},n.prototype.getCurrentState=function(){return t.__assign(t.__assign({},this.camera.copyPose()),{mode:this.currentMode||n.Mode.Panorama,panoIndex:this.panoIndex||0})},n.prototype.setState=function(e,i){var r,o,s,a,M,u;void 0===i&&(i=!1);var c,l,d,N,p=null!==(r=e.panoIndex)&&void 0!==r?r:this.state.panoIndex,h=null!==(o=e.mode)&&void 0!==o?o:this.state.mode;if(e.mode!==n.Mode.Floorplan&&e.mode!==n.Mode.Topview&&e.mode!==n.Mode.Model||!j(this.model)&&!0===this.model.loaded){if(this.state.mode!==h){var D=void 0;D=kn(this.state.mode)&&kn(h)?this.state:kn(h)?this.panoramaLikeSavedPose:e;var g=t.__assign(t.__assign({panoIndex:p,initial:[D,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[h]),y=Cn[h].initAnimationEndPose(g);c=y.longitude,l=y.latitude,d=y.fov,N=y.offset}else c=null!==(s=e.longitude)&&void 0!==s?s:this.state.longitude,l=null!==(a=e.latitude)&&void 0!==a?a:this.state.latitude,d=null!==(M=e.fov)&&void 0!==M?M:this.state.fov,N=null!==(u=e.offset)&&void 0!==u?u:this.state.offset;this.emit("setState",{longitude:c,latitude:l,fov:d,offset:N,mode:h,panoIndex:p}),(p!==this.state.panoIndex||h!==this.state.mode||c!==this.state.longitude||l!==this.state.latitude||d!==this.state.fov||!N.equals(this.state.offset))&&(this.state.panoIndex=p,this.state.mode=h,this.state.longitude=c,this.state.latitude=l,this.state.fov=d,this.state.offset.copy(N),i&&this.syncState(i),this.emit("stateChange",this.state,!0))}else this.throwError(new Error("model is not ready."))},n.prototype.aroundScissor=function(e){var t=new u.Vector2,n=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||0!==this.scissor.height;if(n){this.renderer.getSize(t);var i=Math.floor(t.x*this.scissor.left),r=Math.floor(t.y*this.scissor.bottom),o=Math.floor(t.x*this.scissor.width),s=Math.floor(t.y*this.scissor.height);this.renderer.setViewport(i,r,o,s),this.renderer.setScissor(i,r,o,s),this.renderer.setScissorTest(!0)}e(),n&&(this.renderer.setViewport(0,0,t.x,t.y),this.renderer.setScissor(0,0,t.x,t.y),this.renderer.setScissorTest(!1))},n.prototype.syncState=function(e){if(void 0===e&&(e=!1),this.controller&&!1!==this.controller.ready&&!this.tweenCoordinates){if(this.readyCallbacks.length){var t=this.currentMode;if(!(t===n.Mode.Floorplan||t===n.Mode.Topview||t===n.Mode.Model)||!this.modelPending)for(var i=void 0;i=this.readyCallbacks.shift();)i()}var r=this.stateSynced;if(this.stateSynced=!1,this.state.mode===this.currentMode){if(this.controller instanceof Cn.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var o={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return void this.controller.moveToPosition(this.state.offset,o,!1)}}else if(this.state.panoIndex!==this.panoIndex){o={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return void this.controller.moveToPano(this.state.panoIndex,o,!1)}if(this.controller instanceof Cn.Topview){var s=e?new u.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new u.Vector3(it(this.camera.pose.offset.x,this.state.offset.x,.2),it(this.camera.pose.offset.y,this.state.offset.y,.2),it(this.camera.pose.offset.z,this.state.offset.z,.2));if(!this.camera.pose.offset.equals(s))return void this.controller.updateCamera({offset:s},!1,!1)}else{var a=Math.PI/45,M=e?this.state.fov:it(this.camera.pose.fov,this.state.fov,1),c=e?{longitude:this.state.longitude,latitude:this.state.latitude}:function(e,t,n){if(e.longitude===t.longitude&&e.latitude===t.latitude)return{longitude:t.longitude,latitude:t.latitude};var i=Ke(e.longitude),r=e.latitude,o=Ke(t.longitude),s=t.latitude;o-i>$e?i+=et:i-o>$e&&(i-=et);var a=n/Math.sqrt(Math.pow(o-i,2)+Math.pow(s-r,2));return a>=1?{longitude:t.longitude,latitude:t.latitude}:{longitude:i+(o-i)*a,latitude:r+(s-r)*a}}({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},a),l=c.longitude,d=c.latitude;if(M!==this.camera.pose.fov||l!==this.camera.pose.longitude||d!==this.camera.pose.latitude)return this.controller.tweenCoordinates&&(this.controller.tweenCoordinates.destroy(),delete this.controller.tweenCoordinates),void this.controller.updateCamera({longitude:l,latitude:d,fov:M},!1,!1)}this.stateSynced=!0,!1===r&&this.emit("stateSynced",this.state)}else{var N={panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};this.changeMode(this.state.mode,N,this.modeChangeDuration,!1)}}},n.prototype.ready=function(){var e=this;return new Promise((function(t){return e.readyCallbacks.push(t)}))},n.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},n.prototype.loadModel=function(e,t,i){var r=this,o=e.async||!1;this.emit("modelWillLoad",e);var s=new Ve;s.once("bvhLoaded",(function(){r.emit("modelBvhLoaded",s)})),s.once("geometryLoaded",(function(){r.emit("modelGeometryLoaded",s)})),s.on("error",(function(e){r.emit("modelLoadError",e,s),r.throwError(e),r.modelPending=!1})),s.on("shownFloorChange",(function(e,t){r.emit("modelShownFloorChange",e,t)})),s.once("loaded",(function(){var a;if(!r.destroyed){s.bounding.max.y-s.bounding.min.y<1.5&&(s.bounding.max.y=s.bounding.min.y+10);var M,u=r.model;u&&(u.show(),M=u.getMaterial()||{},r.scene.remove(u),u.dispose(),s.setTransparent(u.getTransparent())),r.model=Object.assign(s,{loaded:!0}),null===(a=r.controller)||void 0===a||a.resetModel(r.model,i),M&&r.model.setMaterial(M),u&&r.currentMode!==n.Mode.Panorama&&(o=!1);var c=function(){t(),r.emit("modelLoaded",s),O((function(){return r.emit("modelMaterialLoaded",s)})),e.bvh&&ce((function(){return s.buildBVH()})),"function"==typeof gc&&gc(),r.needsRender=!0,r.modelPending=!1};if(o){var l=[].concat(r.model.children);r.model.children.length=0;var d=G(Qn);d.name="uniformKeeper",d.visible=!1,d.setMaterial(M||{}),r.model.add(d),r.scene.add(r.model);var N=function(){ce((function(){var e=l.shift();e?(r.model.setMaterial.call(e,r.model.getMaterial()||{}),r.model.add(e),null===r.model.shownFloor?r.model.show():r.model.show(r.model.shownFloor),O(N,2)):(r.model.remove(d),c())}))};N()}else u?(r.scene.add(r.model),c()):ce((function(){r.scene.add(r.model),c()}))}})),this.modelPending=!0,s.load(e,this.textureOptions)},n.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,helper:this.helperGroup,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,extraElements:this.extraElements,videoTexture:this.videoTexture}},n.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&kn(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},n.prototype.applyController=function(e,i){var r=this,o=Cn[e];e===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(e===n.Mode.Floorplan||e===n.Mode.Topview||e===n.Mode.Model),this.currentMode=e;var s=new o(i);if(s.postProcessing){if(!this.screenBuffer){var a=this.getDrawingBufferSize(Yn);this.screenBuffer=new u.WebGLRenderTarget(a.x,a.y,{encoding:this.renderer.outputEncoding})}}else this.screenBuffer&&(this.screenBuffer.dispose(),delete this.screenBuffer);for(var M=function(e){s.on(e,(function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var o=r.emit.apply(r,t.__spreadArray([e],n));if(o)return!1}))},c=0,l=Un;c<l.length;c++){M(l[c])}return s.on("initAnimationWillStart",(function(t,n,i){i&&(r.state.mode=e,r.state.panoIndex=t,r.state.longitude=n.longitude,r.state.latitude=n.latitude,r.state.fov=n.fov,r.state.offset.copy(n.offset),r.emit("stateChange",r.state,i))})),s.on("initAnimationEnded",(function(t,n,i){i&&(r.state.mode=e,r.state.panoIndex=t,r.state.longitude=n.longitude,r.state.latitude=n.latitude,r.state.fov=n.fov,r.state.offset.copy(n.offset),r.emit("stateChange",r.state,i))})),s.on("moveToPano",(function(e,t){r.emit("currentStateChange",r.getCurrentState(),t)})),s.on("panoWillArrive",(function(e,t,n){r.panoIndex=e,n&&(r.state.panoIndex=e,r.state.longitude=t.longitude,r.state.latitude=t.latitude,r.state.fov=t.fov,r.state.offset.copy(t.offset),r.emit("stateChange",r.state,n))})),s.on("panoArrived",(function(){"function"==typeof gc&&gc()})),s.on("wantsMoveToPano",(function(e,t,n){var i=r.emit("wantsMoveToPano",e,t,n);i||(i=r.emit("wantsToMoveToPano",e,t,n)),i||r.moveToPano(e,t,n)})),s.on("cameraUpdate",(function(e,t){t&&r.state.mode===r.currentMode&&r.state.panoIndex===r.panoIndex&&(r.state.longitude=e.longitude,r.state.latitude=e.latitude,r.state.fov=e.fov,r.state.offset.copy(e.offset),r.emit("stateChange",r.state,t)),r.emit("currentStateChange",r.getCurrentState(),t)})),s.on("vrWantsToExit",(function(){r.currentMode===n.Mode.VRPanorama&&r.changeMode(n.Mode.Panorama)})),s.on("error",(function(e){return r.emit("error",e)})),s},n.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama"},n.Line=null,n.Easing=We,n}(_e);exports.Camera=y,exports.Easing=We,exports.Five=Rn,exports.HashCubeTexture=Q,exports.InternalWebGLRenderer=z,exports.Model=Ve,exports.PBMGroup=U,exports.PBMMaterial=F,exports.PBMMesh=k,exports.PROXY_CONTROLLER_EVENT_NAMES=Un,exports.Scene=T,exports.Subscribe=_e,exports.getViewportScale=bn,exports.parseWork=ot,exports.stringifyWork=function(e){for(var t,n,i,r,o={pano_index:e.initial.panoIndex,pano:e.initial.panoIndex,longitude:e.initial.longitude,latitude:e.initial.latitude},s=null===(n=null===(t=e.model)||void 0===t?void 0:t.bvh)||void 0===n||n,a=null!==(r=null===(i=e.model)||void 0===i?void 0:i.async)&&void 0!==r&&r,M=e.model?{file_url:e.model.file,material_textures:e.model.textures.slice(),material_base_url:e.model.textureBase}:void 0,u={list:[]},c=[],l=0;l<e.observers.length;l++){var d=e.observers[l];c[l]={index:l,active:d.active,visible_nodes:d.visibleNodes.slice(),accessible_nodes:d.accessibleNodes.slice(),quaternion:{x:d.quaternion.x,y:d.quaternion.y,z:d.quaternion.z,w:d.quaternion.w},standing_position:d.standingPosition.toArray(),position:d.position.toArray(),floor:d.floorIndex,floor_index:d.floorIndex},u.list[l]={index:l,active:d.active,loadable:d.loadable,up:d.images.up,down:d.images.down,right:d.images.right,left:d.images.left,front:d.images.front,back:d.images.back},d.video&&(u.list[l].video={source:d.video.source,matrix:d.video.matrix.toArray(),size:d.video.size.toArray()}),d.images.depth&&(u.list[l].depth=d.images.depth),d.images.tiles&&(u.list[l].tiles=d.images.tiles)}var N={bvh:s,modelAsync:a,initial:o,observers:c,panorama:u};return M&&(N.model=M),N};
|
|
1
|
+
/**
|
|
2
|
+
* @realsee/five
|
|
3
|
+
*
|
|
4
|
+
* Generated: 2023-03-21
|
|
5
|
+
* Version: 5.0.0-alpha.191
|
|
6
|
+
*
|
|
7
|
+
* Terms:
|
|
8
|
+
* Realsee SDK License Agreement
|
|
9
|
+
*
|
|
10
|
+
* Update: July 28, 2021
|
|
11
|
+
*
|
|
12
|
+
* THIS LICENSE AGREEMENT BETWEEN YOU AND 【BEIKE REALSEE TECHNOLOGY (HK)
|
|
13
|
+
* LIMITED】(“Realsee”) FORMS A LEGALLY BINDING CONTRACT BETWEEN YOU AND REALSEE IN
|
|
14
|
+
* RELATION TO YOUR USE OF THE SDK. This License Agreement accompanies the Realsee
|
|
15
|
+
* Software Development Kit(s) for the software and related explanatory materials
|
|
16
|
+
* (the "SDK") and includes any upgrades, modified versions, updates, additions,
|
|
17
|
+
* and copies of the SDK licensed to You by Realsee.
|
|
18
|
+
* BY DOWNLOADING, INSTALLING, OR OTHERWISE ACCESSING OR USING THE SDK, YOU AGREE
|
|
19
|
+
* THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE BOUND BY THIS AGREEMENT. YOU ARE
|
|
20
|
+
* AGREEING ON YOUR OWN BEHALF AND/OR ON BEHALF OF YOUR COMPANY OR ORGANIZATION TO
|
|
21
|
+
* THE TERMS AND CONDITIONS STATED BELOW.
|
|
22
|
+
* This Agreement applies to Your use of the SDK in the country in which You
|
|
23
|
+
* legally install it (“Territory”) and is subject to the laws of such Territory
|
|
24
|
+
* and further subject to Section 12 below. Different terms, conditions, and
|
|
25
|
+
* limitations may apply to the use of the SDK in any additional countries.
|
|
26
|
+
* 1. DEFINITIONS.
|
|
27
|
+
* “Agreement” means this Realsee SDK License Agreement.
|
|
28
|
+
* “Developer”, “You” and “Your” means the person(s) or entity acquiring or using
|
|
29
|
+
* the SDK or otherwise exercising rights under the terms of this Agreement.
|
|
30
|
+
* “Documentation” means the technical or other specifications or documentation
|
|
31
|
+
* that Realsee may provide to You for use in connection with the SDK.
|
|
32
|
+
* “Integrated Product” means any software, website, or on-line service developed
|
|
33
|
+
* by You based on or using the SDK (collectively, the “Integrated Product”).
|
|
34
|
+
* “Intellectual Property” means any patents, patent rights, trademarks, service
|
|
35
|
+
* marks, registered and unregistered designs, applications for any of the
|
|
36
|
+
* foregoing, copyright, and any other similar protected rights in any country and
|
|
37
|
+
* to the extent recognised by any relevant jurisdiction as intellectual property,
|
|
38
|
+
* trade secrets, know-how and confidential information. Realsee reserves all
|
|
39
|
+
* rights not expressly granted to You.
|
|
40
|
+
* “Realsee” means [Beike Realsee Technology (HK) Limited, a company incorporated
|
|
41
|
+
* and validly existing under the laws of Hong Kong].
|
|
42
|
+
* “SDK” means the Realsee-proprietary Software Development Kits (SDK) provided
|
|
43
|
+
* hereunder, includes all development tools (including any compiler and debugger),
|
|
44
|
+
* application programming interfaces (“APIs”), libraries, binary utilities, header
|
|
45
|
+
* files, Documentation, content, data, code samples, and other materials provided
|
|
46
|
+
* to You in connection with this Agreement, whether delivered through a download,
|
|
47
|
+
* or any other media or form, and is licensed, not sold, to You by Realsee for use
|
|
48
|
+
* only under the terms of this Agreement. The terms of this Agreement will govern
|
|
49
|
+
* any updates provided by Realsee that replace and/or supplement the original SDK
|
|
50
|
+
* delivered to You, unless such update is accompanied by a separate license, in
|
|
51
|
+
* which case the terms of such license will govern.
|
|
52
|
+
* 2. LICENSED USES AND RESTRICTIONS.
|
|
53
|
+
* 2.1 Subject to the restrictions contained in this Section 2, Realsee grants to
|
|
54
|
+
* You during the term, a limited, non-exclusive, revocable, non-sublicensable,
|
|
55
|
+
* non-transferable license to install and use the SDK within the Territory only
|
|
56
|
+
* for the purpose of internal development.
|
|
57
|
+
* 2.2 Restrictions. You acknowledge and agree that, You shall not, and shall
|
|
58
|
+
* ensure that Your affiliates, employees, agents, representatives, officers,
|
|
59
|
+
* representatives, and subcontractors do not (directly or indirectly):
|
|
60
|
+
* 2.2.1 decompile, reverse engineer, disassemble or attempt to derive the source
|
|
61
|
+
* code of, those components of the SDK provided in object code form, or any part
|
|
62
|
+
* thereof;
|
|
63
|
+
* 2.2.2 remove, alter, or obscure any copyright notice or other proprietary rights
|
|
64
|
+
* notice on any part of the SDK;
|
|
65
|
+
* 2.2.3 sell, assign, pledge, rent, lease, lend, upload to or host on any website
|
|
66
|
+
* or server for use by any third party except You, redistribute, or sublicense the
|
|
67
|
+
* SDK (or any part thereof), or operate the SDK (or any part thereof) in the
|
|
68
|
+
* capacity of a service bureau or other hosted services provider, in whole or in
|
|
69
|
+
* part, nor may You enable others to do so;
|
|
70
|
+
* 2.2.4 or alter, modify, customize or improve the SDK, or any part thereof;
|
|
71
|
+
* 2.2.5 use the SDK (or any part thereof) for any illegal purpose, in any manner
|
|
72
|
+
* that is inconsistent with the terms of this Agreement, or to engage in any
|
|
73
|
+
* illegal activity;
|
|
74
|
+
* 2.2.6 use the SDK (or any part thereof) in any manner that may damage the
|
|
75
|
+
* operation of Realsee’s products or services; or
|
|
76
|
+
* 2.2.7 use the SDK or any information contained therein or otherwise provided by
|
|
77
|
+
* Realsee for the purpose of developing, or having developed, any product
|
|
78
|
+
* competitive with any Realsee product or service, as determined by Realsee in its
|
|
79
|
+
* sole discretion;
|
|
80
|
+
* 2.2.8 include any portion of the SDK in Your Developer products.
|
|
81
|
+
* 2.3 Realsee has the right to impose reasonable conditions such as a reasonable
|
|
82
|
+
* fee for use of the SDK in Integrated Product in the future.
|
|
83
|
+
* 2.4 You may make a limited number of copies of the SDK to be used by Your
|
|
84
|
+
* employees or consultants as provided herein, and not for general business
|
|
85
|
+
* purposes, and such employees or consultants shall be subject to the obligations
|
|
86
|
+
* and restrictions in this Agreement.
|
|
87
|
+
* 2.5 All licenses not expressly granted in this Agreement are reserved and no
|
|
88
|
+
* other licenses, immunity, or rights, express or implied, are granted by Realsee,
|
|
89
|
+
* by implication, estoppel, or otherwise.
|
|
90
|
+
* 3. CONFIDENTIALITY.
|
|
91
|
+
* The SDK and all source code, Documentation, specifications, engineering details,
|
|
92
|
+
* and related information pertaining to the SDK, whether in oral, written,
|
|
93
|
+
* graphic, or electronic form, are and shall remain the confidential and
|
|
94
|
+
* proprietary information of Realsee or its licensors (collectively, the
|
|
95
|
+
* “Confidential Information”). You shall (i) disclose Confidential Information to
|
|
96
|
+
* only those directors and employees (collectively, “Affiliates”) whose duties
|
|
97
|
+
* justify their need to know such information and who have been clearly informed
|
|
98
|
+
* of their obligation to maintain the confidential, proprietary, and/or trade
|
|
99
|
+
* secret status of such Confidential Information; and (ii) use Confidential
|
|
100
|
+
* Information solely in accordance with the license granted hereunder. In any
|
|
101
|
+
* event, You and Your Affiliates shall treat Confidential Information as strictly
|
|
102
|
+
* confidential and shall use the same care to prevent disclosure of such
|
|
103
|
+
* information as You use with respect to Your own similar confidential and/or
|
|
104
|
+
* proprietary information, which shall not be less than the care a reasonable
|
|
105
|
+
* person would use under similar circumstances. All Confidential Information, and
|
|
106
|
+
* any copies thereof, shall be returned promptly to Realsee upon request. You
|
|
107
|
+
* shall ensure that Your Affiliates comply with the provisions of this Section 3,
|
|
108
|
+
* and You shall be liable for any breach of this Section 3 resulting from the act
|
|
109
|
+
* or omission of any of Your Affiliates. You shall not disclose Confidential
|
|
110
|
+
* Information to any third party, including, without limitation, any of Your
|
|
111
|
+
* subcontractors.
|
|
112
|
+
* 4. PROPRIETARY RIGHTS.
|
|
113
|
+
* 4.1 As between You and Realsee, Realsee and/or its licensors retain ownership of
|
|
114
|
+
* all right, title, and interest in, to, and under the SDK, including, without
|
|
115
|
+
* limitation, all patents, copyrights, trade secrets, trademarks and other
|
|
116
|
+
* intellectual property and other proprietary rights therein, and reserve all
|
|
117
|
+
* rights not expressly granted to You.
|
|
118
|
+
* 4.2 The items contained in the SDK are the intellectual property of Realsee and
|
|
119
|
+
* its licensors and are protected by PRC copyright and patent law, international
|
|
120
|
+
* treaty provisions and applicable laws of the country in which it is being used.
|
|
121
|
+
* You agree to protect all copyright and other ownership interests of Realsee
|
|
122
|
+
* and/or its licensors in all items in the SDK supplied under this License
|
|
123
|
+
* Agreement. You agree that all copies of the items in the SDK, reproduced for any
|
|
124
|
+
* reason by You, contain the same copyright notices, and other proprietary notices
|
|
125
|
+
* as appropriate, as appear on or in the original items delivered by Realsee in
|
|
126
|
+
* the SDK. Realsee and/or its licensors retain title and ownership of the items in
|
|
127
|
+
* the SDK, the media on which it is loaded, and all subsequent copies, regardless
|
|
128
|
+
* of the form or media in or on which the original and other copies may exist.
|
|
129
|
+
* Except as stated above, this Agreement does not grant You any rights to patents,
|
|
130
|
+
* copyrights, trade secrets, trademarks or any other rights in respect to the
|
|
131
|
+
* items in the SDK.
|
|
132
|
+
* 5. TERM AND TERMINATION.
|
|
133
|
+
* 5.1 This Agreement is effective until terminated. Realsee has the right to
|
|
134
|
+
* terminate this Agreement immediately, without judicial intervention, if You fail
|
|
135
|
+
* to comply with any term herein. Upon any such termination You must remove all
|
|
136
|
+
* full and partial copies of the items in the SDK from Your computer and
|
|
137
|
+
* discontinue the use of the items in the SDK.
|
|
138
|
+
* 5.2 Realsee may at any time, terminate the Agreement with You if: (A) You have
|
|
139
|
+
* breached any provision of the Agreement; or (B) Realsee is required to do so by
|
|
140
|
+
* law; or (C) Realsee decides to no longer provide the SDK or certain parts of the
|
|
141
|
+
* SDK to users in the country in which You are resident or from which You use the
|
|
142
|
+
* service, or the provision of the SDK or certain SDK services to You by Realsee
|
|
143
|
+
* is, in Realsee's sole discretion, no longer legally or commercially viable.
|
|
144
|
+
* 5.3 When the Agreement comes to an end, all of the legal rights, obligations and
|
|
145
|
+
* liabilities that You and Realsee have benefited from, been subject to (or which
|
|
146
|
+
* have accrued over time whilst the Agreement has been in force) or which are
|
|
147
|
+
* expressed to continue indefinitely, shall be unaffected by this cessation, and
|
|
148
|
+
* the provisions of Section 3, 4, 6, 7 and 8 shall continue to apply to such
|
|
149
|
+
* rights, obligations and liabilities indefinitely.
|
|
150
|
+
* 6. DISCLAIMER OF WARRANTY.
|
|
151
|
+
* YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT, TO THE EXTENT PERMITTED BY APPLICABLE
|
|
152
|
+
* LAW, USE OF THE SDK (OR ANY PART THEREOF) IS AT YOUR SOLE RISK AND THAT THE
|
|
153
|
+
* ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS
|
|
154
|
+
* WITH YOU. REALSEE LICENSES THE SDK TO YOU ONLY ON AN "AS-IS" BASIS. REALSEE
|
|
155
|
+
* MAKES NO REPRESENTATION WITH RESPECT TO THE ADEQUACY OF ANY ITEMS IN THE SDK,
|
|
156
|
+
* WHETHER OR NOT USED BY YOU IN THE DEVELOPMENT OF INTEGRATED PRODUCT, FOR ANY
|
|
157
|
+
* PARTICULAR PURPOSE OR WITH RESPECT TO THEIR ADEQUACY TO PRODUCE ANY PARTICULAR
|
|
158
|
+
* RESULT. REALSEE AND ITS LICENSORS SHALL NOT BE LIABLE FOR LOSS OR DAMAGE ARISING
|
|
159
|
+
* OUT OF THIS AGREEMENT OR FROM THE DISTRIBUTION OR USE OF INTEGRATED PRODUCT
|
|
160
|
+
* CONTAINING PORTIONS OF THE SDK. REALSEE AND ITS LICENSORS DISCLAIM ALL
|
|
161
|
+
* WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED
|
|
162
|
+
* CONDITIONS OR WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
163
|
+
* OR NONINFRINGEMENT OF ANY THIRD PARTY RIGHT IN RESPECT OF THE ITEMS IN THE SDK
|
|
164
|
+
* OR ANY SERVICES RELATED TO THE SDK.
|
|
165
|
+
* REALSEE IS UNDER NO OBLIGATION TO PROVIDE ANY SUPPORT UNDER THIS LICENSE
|
|
166
|
+
* AGREEMENT, INCLUDING UPGRADES OR FUTURE VERSIONS OF THE SDK OR ANY PORTIONS
|
|
167
|
+
* THEREOF, TO YOU, END USER OR TO ANY OTHER PARTY.
|
|
168
|
+
* 7. LIMITATION OF LIABILITY.
|
|
169
|
+
* TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, IN NO EVENT WILL REALSEE OR ITS
|
|
170
|
+
* LICENSORS BE LIABLE FOR ANY DIRECT, INCIDENTAL, SPECIAL, INDIRECT, OR
|
|
171
|
+
* CONSEQUENTIAL DAMAGES, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE,
|
|
172
|
+
* LOSS OF BUSINESS, REVENUE, OR PROFITS, LOSS OF OPPORTUNITY (WHETHER DIRECT OR
|
|
173
|
+
* INDIRECT), CORRUPTION OR LOSS OF DATA, LOSS OF REPUTATION OR SAVINGS, DOWNTIME,
|
|
174
|
+
* OR DAMAGE TO, LOSS OF OR REPLACEMENT OF DATA OR TRANSACTIONS, COST OF
|
|
175
|
+
* PROCUREMENT OF SUBSTITUTE SERVICES, BUSINESS INTERRUPTION, OR ANY OTHER
|
|
176
|
+
* COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR INABILITY
|
|
177
|
+
* TO USE THE SDK (OR ANY PART THEREOF), ANY INTEGRATED PRODUCT, OR ANY THIRD PARTY
|
|
178
|
+
* SOFTWARE, APPLICATIONS, OR SERVICES IN CONJUNCTION WITH THE SDK (OR ANY PART
|
|
179
|
+
* THEREOF), HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT,
|
|
180
|
+
* OR OTHERWISE) AND EVEN IF REALSEE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
181
|
+
* DAMAGES. IN NO EVENT WILL REALSEE’S TOTAL LIABILITY TO YOU FOR ALL DAMAGES
|
|
182
|
+
* EXCEED ONE HUNDRED DOLLARS ($100.00). THE FOREGOING LIMITATIONS WILL APPLY EVEN
|
|
183
|
+
* IF THE ABOVE STATED REMEDY FAILS OF ITS ESSENTIAL PURPOSE. THE LIMITATIONS
|
|
184
|
+
* CONTAINED IN SECTIONS 6 AND THIS SECTION 7 ARE A FUNDAMENTAL PART OF THE BASIS
|
|
185
|
+
* OF REALSEE’S BARGAIN HEREUNDER, AND REALSEE WOULD NOT ENTER INTO THIS AGREEMENT
|
|
186
|
+
* OR PROVIDE YOU WITH ACCESS TO THE SDK ABSENT SUCH LIMITATIONS.
|
|
187
|
+
* 8. INDEMNIFICATION.
|
|
188
|
+
* To the extent permitted by applicable law, You agree to indemnify, defend and
|
|
189
|
+
* hold harmless Realsee, its affiliates and each of their directors, officers,
|
|
190
|
+
* employees, independent contractors, and agents (each a “Realsee Indemnified
|
|
191
|
+
* Party”) from any and all claims, losses, liabilities, damages, expenses, and
|
|
192
|
+
* costs (including without limitation attorneys’ fees and court costs) incurred by
|
|
193
|
+
* a Realsee Indemnified Party as a result of: (i) Your non-compliance with any
|
|
194
|
+
* terms of this Agreement; (ii) Your use of the SDK (or any part thereof); or
|
|
195
|
+
* (iii) Your use of any Integrated Product, including any claim that Integrated
|
|
196
|
+
* Product infringes the copyright, trademark, trade secret or other intellectual
|
|
197
|
+
* property right of a third party.
|
|
198
|
+
* 9. ACKNOWLEDGEMENTS.
|
|
199
|
+
* Portions of the SDK may utilize or include third party software and other
|
|
200
|
+
* copyrighted material. Acknowledgments, licensing terms, and disclaimers for such
|
|
201
|
+
* material are contained in Documentation for the SDK or may otherwise accompany
|
|
202
|
+
* such material, and Your use of such materials governed by their respective
|
|
203
|
+
* terms. In the event of conflict between the terms of this Agreement and an
|
|
204
|
+
* applicable open source or third party agreement, the open source or third party
|
|
205
|
+
* agreement will control solely with respect to the open source software or third
|
|
206
|
+
* party software. Moreover, You shall not subject any items (including not limited
|
|
207
|
+
* to source code, object code, and any software) included in the SDK to any open
|
|
208
|
+
* source license.
|
|
209
|
+
* 10. NON-BLOCKING OF REALSEE DEVELOPMENT.
|
|
210
|
+
* You acknowledge that Realsee is currently developing or may develop technologies
|
|
211
|
+
* and products in the future that have or may have design and/or functionality
|
|
212
|
+
* similar to Integrated Product that You may develop based on Your license herein.
|
|
213
|
+
* Nothing in this Agreement shall impair, limit or curtail Realsee's right to
|
|
214
|
+
* continue with its development, maintenance and/or distribution of Realsee's
|
|
215
|
+
* technology or products.
|
|
216
|
+
* 11. GENERAL.
|
|
217
|
+
* 11.1 Export Control. You may not use or otherwise export or re-export the SDK
|
|
218
|
+
* (or any part thereof) except as authorized by United States law and the laws of
|
|
219
|
+
* the jurisdiction(s) in which the SDK (or any part thereof) was obtained. In
|
|
220
|
+
* particular, but without limitation, the SDK may not be exported or re-exported
|
|
221
|
+
* (i) into any U.S. embargoed countries or (ii) to anyone on the U.S. Treasury
|
|
222
|
+
* Department's list of Specially Designated Nationals or the U.S. Department of
|
|
223
|
+
* Commerce Denied Person's List or Entity List. By using the SDK (or any part
|
|
224
|
+
* thereof), You represent and warrant that You are not located in any such country
|
|
225
|
+
* or on any such list.
|
|
226
|
+
* 11.2 Governing Law. This Agreement and the rights of the parties hereunder shall
|
|
227
|
+
* be governed by and construed in accordance with the laws of People’s Republic of
|
|
228
|
+
* China (for purpose of this Agreement, excluding Hong Kong, Taiwan, and Macau),
|
|
229
|
+
* without reference to its conflict of laws principles. Any dispute, controversy
|
|
230
|
+
* or claim arising from or in connection with this Agreement, or the breach,
|
|
231
|
+
* termination or invalidity thereof, shall be submitted to China International
|
|
232
|
+
* Economic and Trade Arbitration Commission (“CIETAC”) for arbitration in Beijing
|
|
233
|
+
* which shall be conducted in accordance with the CIETAC's arbitration rules in
|
|
234
|
+
* effect at the time of applying for arbitration. The arbitral award is final and
|
|
235
|
+
* binding upon both parties.
|
|
236
|
+
* 11.3 Severability. If any provision of this Agreement is held by a court of
|
|
237
|
+
* competent jurisdiction to be unenforceable for any reason, the remaining
|
|
238
|
+
* provisions hereof will be unaffected and remain in full force and effect.
|
|
239
|
+
* 11.4. Modifications. Realsee reserves the right, from time to time, with or
|
|
240
|
+
* without notice to You, to make revisions to this Agreement in our sole and
|
|
241
|
+
* absolute discretion. The most current version of this Agreement will supersede
|
|
242
|
+
* all previous versions and shall be made available on the website where the SDK
|
|
243
|
+
* is made available, or by such other means as Realsee may determine in its
|
|
244
|
+
* discretion. Any modified versions of this Agreement hereto shall take effect
|
|
245
|
+
* from the time that it is made available. You shall be responsible for regularly
|
|
246
|
+
* checking for notice of any such modifications. You agree that Your continued use
|
|
247
|
+
* of the SDK constitutes Your agreement to the modified Agreement.
|
|
248
|
+
* 11.5 Relationship of the Parties. This Agreement will not be construed as
|
|
249
|
+
* creating an agency, partnership, joint venture, fiduciary duty, or any other
|
|
250
|
+
* form of legal association between You and Realsee, and You will not represent to
|
|
251
|
+
* the contrary, whether expressly, by implication, appearance, or otherwise.
|
|
252
|
+
* 11.6 Entire Agreement; Governing Language. This Agreement constitutes the entire
|
|
253
|
+
* agreement between You and Realsee with respect to the use of the SDK licensed
|
|
254
|
+
* hereunder and supersedes all prior understandings regarding such subject matter.
|
|
255
|
+
* No amendment to or modification of this Agreement will be binding unless in
|
|
256
|
+
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
257
|
+
* Agreement and all related documents shall be drafted in English.
|
|
258
|
+
*/
|
|
259
|
+
|
|
260
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("protobufjs/minimal");function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var n=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,n.get?n:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var n=i(e),r=i(t),o=Number(n.REVISION);if(o<115||o>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');
|
|
261
|
+
/**
|
|
262
|
+
* @license
|
|
263
|
+
* The 'jsrsasign'(RSA-Sign JavaScript Library) License
|
|
264
|
+
*
|
|
265
|
+
* Copyright (c) 2010-2021 Kenji Urushima
|
|
266
|
+
*
|
|
267
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
268
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
269
|
+
* in the Software without restriction, including without limitation the rights
|
|
270
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
271
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
272
|
+
* furnished to do so, subject to the following conditions:
|
|
273
|
+
*
|
|
274
|
+
* The above copyright notice and this permission notice shall be included in
|
|
275
|
+
* all copies or substantial portions of the Software.
|
|
276
|
+
*
|
|
277
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
278
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
279
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
280
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
281
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
282
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
283
|
+
* THE SOFTWARE.
|
|
284
|
+
*
|
|
285
|
+
* LICENSE: MIT License
|
|
286
|
+
*/
|
|
287
|
+
/**
|
|
288
|
+
* @license
|
|
289
|
+
* RSA and ECC in JavaScript
|
|
290
|
+
*
|
|
291
|
+
* Copyright (c) 2003-2005 Tom Wu All Rights Reserved.
|
|
292
|
+
*
|
|
293
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
|
294
|
+
* a copy of this software and associated documentation files (the
|
|
295
|
+
* "Software"), to deal in the Software without restriction, including
|
|
296
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
|
297
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
|
298
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
|
299
|
+
* the following conditions:
|
|
300
|
+
*
|
|
301
|
+
* The above copyright notice and this permission notice shall be
|
|
302
|
+
* included in all copies or substantial portions of the Software.
|
|
303
|
+
*
|
|
304
|
+
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
|
305
|
+
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
|
306
|
+
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
307
|
+
*
|
|
308
|
+
* IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
|
|
309
|
+
* INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
|
|
310
|
+
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
|
|
311
|
+
* THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
|
|
312
|
+
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
313
|
+
*
|
|
314
|
+
* In addition, the following condition applies:
|
|
315
|
+
*
|
|
316
|
+
* All redistributions must retain an intact copy of this copyright notice
|
|
317
|
+
* and disclaimer.
|
|
318
|
+
*
|
|
319
|
+
* http://www-cs-students.stanford.edu/~tjw/jsbn/
|
|
320
|
+
* LICENSE: BSD License
|
|
321
|
+
* PART: ext/{base64,jsbn,jsbn2,prgn4,rng,rsa,rsa2}
|
|
322
|
+
*/
|
|
323
|
+
/**
|
|
324
|
+
* @license
|
|
325
|
+
* CryptoJS
|
|
326
|
+
*
|
|
327
|
+
* Copyright (c) 2009-2013 Jeff Mott
|
|
328
|
+
*
|
|
329
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
|
330
|
+
* a copy of this software and associated documentation files (the
|
|
331
|
+
* "Software"), to deal in the Software without restriction, including
|
|
332
|
+
* without limitation the rights to use, copy, modify, merge, publish,
|
|
333
|
+
* distribute, sublicense, and/or sell copies of the Software, and to
|
|
334
|
+
* permit persons to whom the Software is furnished to do so, subject to
|
|
335
|
+
* the following conditions:
|
|
336
|
+
*
|
|
337
|
+
* The above copyright notice and this permission notice shall be
|
|
338
|
+
* included in all copies or substantial portions of the Software.
|
|
339
|
+
*
|
|
340
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
341
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
342
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
343
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
344
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
345
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
346
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
347
|
+
*
|
|
348
|
+
* https://code.google.com/p/crypto-js/wiki/License
|
|
349
|
+
* PART: ext/cryptojs
|
|
350
|
+
*/var a,s={},l=l||function(e,t){var i={},n=i.lib={},r=n.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var i=new e;return t&&i.mixIn(t),i.hasOwnProperty("init")||(i.init=function(){i.$super.init.apply(this,arguments)}),i.init.prototype=i,i.$super=this,i},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),o=n.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||s).stringify(this)},concat:function(e){var t=this.words,i=e.words,n=this.sigBytes,r=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o<r;o++){var a=i[o>>>2]>>>24-o%4*8&255;t[n+o>>>2]|=a<<24-(n+o)%4*8}else for(o=0;o<r;o+=4)t[n+o>>>2]=i[o>>>2];return this.sigBytes+=r,this},clamp:function(){var t=this.words,i=this.sigBytes;t[i>>>2]&=4294967295<<32-i%4*8,t.length=e.ceil(i/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var i=[],n=0;n<t;n+=4)i.push(4294967296*e.random()|0);return new o.init(i,t)}}),a=i.enc={},s=a.Hex={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],r=0;r<i;r++){var o=t[r>>>2]>>>24-r%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,i=[],n=0;n<t;n+=2)i[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new o.init(i,t/2)}},l=a.Latin1={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],r=0;r<i;r++){var o=t[r>>>2]>>>24-r%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var t=e.length,i=[],n=0;n<t;n++)i[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new o.init(i,t)}},u=a.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},c=n.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var i=this._data,n=i.words,r=i.sigBytes,a=this.blockSize,s=r/(4*a),l=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*a,u=e.min(4*l,r);if(l){for(var c=0;c<l;c+=a)this._doProcessBlock(n,c);var h=n.splice(0,l);i.sigBytes-=u}return new o.init(h,u)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});n.Hasher=c.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){c.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,i){return new e.init(i).finalize(t)}},_createHmacHelper:function(e){return function(t,i){return new h.HMAC.init(e,i).finalize(t)}}});var h=i.algo={};return i}(Math);function u(e,t,i){null!=e&&("number"==typeof e?this.fromNumber(e,t,i):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function c(){return new u(null)}!function(e){for(var t=l,i=(r=t.lib).WordArray,n=r.Hasher,r=t.algo,o=[],a=[],s=function(e){return 4294967296*(e-(0|e))|0},u=2,c=0;64>c;){var h;e:{h=u;for(var d=e.sqrt(h),p=2;p<=d;p++)if(!(h%p)){h=!1;break e}h=!0}h&&(8>c&&(o[c]=s(e.pow(u,.5))),a[c]=s(e.pow(u,1/3)),c++),u++}var f=[];r=r.SHA256=n.extend({_doReset:function(){this._hash=new i.init(o.slice(0))},_doProcessBlock:function(e,t){for(var i=this._hash.words,n=i[0],r=i[1],o=i[2],s=i[3],l=i[4],u=i[5],c=i[6],h=i[7],d=0;64>d;d++){if(16>d)f[d]=0|e[t+d];else{var p=f[d-15],A=f[d-2];f[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+f[d-7]+((A<<15|A>>>17)^(A<<13|A>>>19)^A>>>10)+f[d-16]}p=h+((l<<26|l>>>6)^(l<<21|l>>>11)^(l<<7|l>>>25))+(l&u^~l&c)+a[d]+f[d],A=((n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22))+(n&r^n&o^r&o),h=c,c=u,u=l,l=s+p|0,s=o,o=r,r=n,n=p+A|0}i[0]=i[0]+n|0,i[1]=i[1]+r|0,i[2]=i[2]+o|0,i[3]=i[3]+s|0,i[4]=i[4]+l|0,i[5]=i[5]+u|0,i[6]=i[6]+c|0,i[7]=i[7]+h|0},_doFinalize:function(){var t=this._data,i=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;return i[r>>>5]|=128<<24-r%32,i[14+(r+64>>>9<<4)]=e.floor(n/4294967296),i[15+(r+64>>>9<<4)]=n,t.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=n._createHelper(r),t.HmacSHA256=n._createHmacHelper(r)}(Math),l.lib.Cipher||function(e){var t=(f=l).lib,i=t.Base,n=t.WordArray,r=t.BufferedBlockAlgorithm,o=f.enc.Base64,a=f.algo.EvpKDF,s=t.Cipher=r.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,i){this.cfg=this.cfg.extend(i),this._xformMode=e,this._key=t,this.reset()},reset:function(){r.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(t,i,n){return("string"==typeof i?A:p).encrypt(e,t,i,n)},decrypt:function(t,i,n){return("string"==typeof i?A:p).decrypt(e,t,i,n)}}}});t.StreamCipher=s.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var u=f.mode={},c=function(e,t,i){var n=this._iv;n?this._iv=undefined:n=this._prevBlock;for(var r=0;r<i;r++)e[t+r]^=n[r]},h=(t.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();h.Encryptor=h.extend({processBlock:function(e,t){var i=this._cipher,n=i.blockSize;c.call(this,e,t,n),i.encryptBlock(e,t),this._prevBlock=e.slice(t,t+n)}}),h.Decryptor=h.extend({processBlock:function(e,t){var i=this._cipher,n=i.blockSize,r=e.slice(t,t+n);i.decryptBlock(e,t),c.call(this,e,t,n),this._prevBlock=r}}),u=u.CBC=h,h=(f.pad={}).Pkcs7={pad:function(e,t){for(var i,r=(i=(i=4*t)-e.sigBytes%i)<<24|i<<16|i<<8|i,o=[],a=0;a<i;a+=4)o.push(r);i=n.create(o,i),e.concat(i)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},t.BlockCipher=s.extend({cfg:s.cfg.extend({mode:u,padding:h}),reset:function(){s.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=t.createEncryptor;else i=t.createDecryptor,this._minBufferSize=1;this._mode=i.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var d=t.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),p=(u=(f.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?n.create([1398893684,1701076831]).concat(e).concat(t):t).toString(o)},parse:function(e){var t=(e=o.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var i=n.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return d.create({ciphertext:e,salt:i})}},t.SerializableCipher=i.extend({cfg:i.extend({format:u}),encrypt:function(e,t,i,n){n=this.cfg.extend(n);var r=e.createEncryptor(i,n);return t=r.finalize(t),r=r.cfg,d.create({ciphertext:t,key:i,iv:r.iv,algorithm:e,mode:r.mode,padding:r.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,i,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(i,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),f=(f.kdf={}).OpenSSL={execute:function(e,t,i,r){return r||(r=n.random(8)),e=a.create({keySize:t+i}).compute(e,r),i=n.create(e.words.slice(t),4*i),e.sigBytes=4*t,d.create({key:e,iv:i,salt:r})}},A=t.PasswordBasedCipher=p.extend({cfg:p.cfg.extend({kdf:f}),encrypt:function(e,t,i,n){return i=(n=this.cfg.extend(n)).kdf.execute(i,e.keySize,e.ivSize),n.iv=i.iv,(e=p.encrypt.call(this,e,t,i.key,n)).mixIn(i),e},decrypt:function(e,t,i,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),i=n.kdf.execute(i,e.keySize,e.ivSize,t.salt),n.iv=i.iv,p.decrypt.call(this,e,t,i.key,n)}})}(),function(){for(var e=l,t=e.lib.BlockCipher,i=e.algo,n=[],r=[],o=[],a=[],s=[],u=[],c=[],h=[],d=[],p=[],f=[],A=0;256>A;A++)f[A]=128>A?A<<1:A<<1^283;var v=0,m=0;for(A=0;256>A;A++){var g=(g=m^m<<1^m<<2^m<<3^m<<4)>>>8^255&g^99;n[v]=g,r[g]=v;var y=f[v],b=f[y],x=f[b],w=257*f[g]^16843008*g;o[v]=w<<24|w>>>8,a[v]=w<<16|w>>>16,s[v]=w<<8|w>>>24,u[v]=w,w=16843009*x^65537*b^257*y^16843008*v,c[g]=w<<24|w>>>8,h[g]=w<<16|w>>>16,d[g]=w<<8|w>>>24,p[g]=w,v?(v=y^f[f[f[x^y]]],m^=f[f[m]]):v=m=1}var M=[0,1,2,4,8,16,32,64,128,27,54];i=i.AES=t.extend({_doReset:function(){for(var e=(i=this._key).words,t=i.sigBytes/4,i=4*((this._nRounds=t+6)+1),r=this._keySchedule=[],o=0;o<i;o++)if(o<t)r[o]=e[o];else{var a=r[o-1];o%t?6<t&&4==o%t&&(a=n[a>>>24]<<24|n[a>>>16&255]<<16|n[a>>>8&255]<<8|n[255&a]):(a=n[(a=a<<8|a>>>24)>>>24]<<24|n[a>>>16&255]<<16|n[a>>>8&255]<<8|n[255&a],a^=M[o/t|0]<<24),r[o]=r[o-t]^a}for(e=this._invKeySchedule=[],t=0;t<i;t++)o=i-t,a=t%4?r[o]:r[o-4],e[t]=4>t||4>=o?a:c[n[a>>>24]]^h[n[a>>>16&255]]^d[n[a>>>8&255]]^p[n[255&a]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,s,u,n)},decryptBlock:function(e,t){var i=e[t+1];e[t+1]=e[t+3],e[t+3]=i,this._doCryptBlock(e,t,this._invKeySchedule,c,h,d,p,r),i=e[t+1],e[t+1]=e[t+3],e[t+3]=i},_doCryptBlock:function(e,t,i,n,r,o,a,s){for(var l=this._nRounds,u=e[t]^i[0],c=e[t+1]^i[1],h=e[t+2]^i[2],d=e[t+3]^i[3],p=4,f=1;f<l;f++){var A=n[u>>>24]^r[c>>>16&255]^o[h>>>8&255]^a[255&d]^i[p++],v=n[c>>>24]^r[h>>>16&255]^o[d>>>8&255]^a[255&u]^i[p++],m=n[h>>>24]^r[d>>>16&255]^o[u>>>8&255]^a[255&c]^i[p++];d=n[d>>>24]^r[u>>>16&255]^o[c>>>8&255]^a[255&h]^i[p++],u=A,c=v,h=m}A=(s[u>>>24]<<24|s[c>>>16&255]<<16|s[h>>>8&255]<<8|s[255&d])^i[p++],v=(s[c>>>24]<<24|s[h>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^i[p++],m=(s[h>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&c])^i[p++],d=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[c>>>8&255]<<8|s[255&h])^i[p++],e[t]=A,e[t+1]=v,e[t+2]=m,e[t+3]=d},keySize:8});e.AES=t._createHelper(i)}(),"undefined"!=typeof navigator&&"Microsoft Internet Explorer"==navigator.appName?(u.prototype.am=function(e,t,i,n,r,o){for(var a=32767&t,s=t>>15;--o>=0;){var l=32767&this[e],u=this[e++]>>15,c=s*l+u*a;r=((l=a*l+((32767&c)<<15)+i[n]+(1073741823&r))>>>30)+(c>>>15)+s*u+(r>>>30),i[n++]=1073741823&l}return r},a=30):"undefined"!=typeof navigator&&"Netscape"!=navigator.appName?(u.prototype.am=function(e,t,i,n,r,o){for(;--o>=0;){var a=t*this[e++]+i[n]+r;r=Math.floor(a/67108864),i[n++]=67108863&a}return r},a=26):(u.prototype.am=function(e,t,i,n,r,o){for(var a=16383&t,s=t>>14;--o>=0;){var l=16383&this[e],u=this[e++]>>14,c=s*l+u*a;r=((l=a*l+((16383&c)<<14)+i[n]+r)>>28)+(c>>14)+s*u,i[n++]=268435455&l}return r},a=28),u.prototype.DB=a,u.prototype.DM=(1<<a)-1,u.prototype.DV=1<<a;u.prototype.FV=Math.pow(2,52),u.prototype.F1=52-a,u.prototype.F2=2*a-52;var h,d,p=new Array;for(h="0".charCodeAt(0),d=0;d<=9;++d)p[h++]=d;for(h="a".charCodeAt(0),d=10;d<36;++d)p[h++]=d;for(h="A".charCodeAt(0),d=10;d<36;++d)p[h++]=d;function f(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function A(e,t){var i=p[e.charCodeAt(t)];return null==i?-1:i}function v(e){var t=c();return t.fromInt(e),t}function m(e){var t,i=1;return 0!=(t=e>>>16)&&(e=t,i+=16),0!=(t=e>>8)&&(e=t,i+=8),0!=(t=e>>4)&&(e=t,i+=4),0!=(t=e>>2)&&(e=t,i+=2),0!=(t=e>>1)&&(e=t,i+=1),i}function g(e){this.m=e}function y(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}g.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},g.prototype.revert=function(e){return e},g.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},g.prototype.mulTo=function(e,t,i){e.multiplyTo(t,i),this.reduce(i)},g.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},y.prototype.convert=function(e){var t=c();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(u.ZERO)>0&&this.m.subTo(t,t),t},y.prototype.revert=function(e){var t=c();return e.copyTo(t),this.reduce(t),t},y.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var i=32767&e[t],n=i*this.mpl+((i*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[i=t+this.m.t]+=this.m.am(0,n,e,t,0,this.m.t);e[i]>=e.DV;)e[i]-=e.DV,e[++i]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},y.prototype.mulTo=function(e,t,i){e.multiplyTo(t,i),this.reduce(i)},y.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},u.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},u.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},u.prototype.fromString=function(e,t){var i;if(16==t)i=4;else if(8==t)i=3;else if(256==t)i=8;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)return void this.fromRadix(e,t);i=2}this.t=0,this.s=0;for(var n=e.length,r=!1,o=0;--n>=0;){var a=8==i?255&e[n]:A(e,n);a<0?"-"==e.charAt(n)&&(r=!0):(r=!1,0==o?this[this.t++]=a:o+i>this.DB?(this[this.t-1]|=(a&(1<<this.DB-o)-1)<<o,this[this.t++]=a>>this.DB-o):this[this.t-1]|=a<<o,(o+=i)>=this.DB&&(o-=this.DB))}8==i&&0!=(128&e[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),r&&u.ZERO.subTo(this,this)},u.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},u.prototype.dlShiftTo=function(e,t){var i;for(i=this.t-1;i>=0;--i)t[i+e]=this[i];for(i=e-1;i>=0;--i)t[i]=0;t.t=this.t+e,t.s=this.s},u.prototype.drShiftTo=function(e,t){for(var i=e;i<this.t;++i)t[i-e]=this[i];t.t=Math.max(this.t-e,0),t.s=this.s},u.prototype.lShiftTo=function(e,t){var i,n=e%this.DB,r=this.DB-n,o=(1<<r)-1,a=Math.floor(e/this.DB),s=this.s<<n&this.DM;for(i=this.t-1;i>=0;--i)t[i+a+1]=this[i]>>r|s,s=(this[i]&o)<<n;for(i=a-1;i>=0;--i)t[i]=0;t[a]=s,t.t=this.t+a+1,t.s=this.s,t.clamp()},u.prototype.rShiftTo=function(e,t){t.s=this.s;var i=Math.floor(e/this.DB);if(i>=this.t)t.t=0;else{var n=e%this.DB,r=this.DB-n,o=(1<<n)-1;t[0]=this[i]>>n;for(var a=i+1;a<this.t;++a)t[a-i-1]|=(this[a]&o)<<r,t[a-i]=this[a]>>n;n>0&&(t[this.t-i-1]|=(this.s&o)<<r),t.t=this.t-i,t.clamp()}},u.prototype.subTo=function(e,t){for(var i=0,n=0,r=Math.min(e.t,this.t);i<r;)n+=this[i]-e[i],t[i++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;i<this.t;)n+=this[i],t[i++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;i<e.t;)n-=e[i],t[i++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[i++]=this.DV+n:n>0&&(t[i++]=n),t.t=i,t.clamp()},u.prototype.multiplyTo=function(e,t){var i=this.abs(),n=e.abs(),r=i.t;for(t.t=r+n.t;--r>=0;)t[r]=0;for(r=0;r<n.t;++r)t[r+i.t]=i.am(0,n[r],t,r,0,i.t);t.s=0,t.clamp(),this.s!=e.s&&u.ZERO.subTo(t,t)},u.prototype.squareTo=function(e){for(var t=this.abs(),i=e.t=2*t.t;--i>=0;)e[i]=0;for(i=0;i<t.t-1;++i){var n=t.am(i,t[i],e,2*i,0,1);(e[i+t.t]+=t.am(i+1,2*t[i],e,2*i+1,n,t.t-i-1))>=t.DV&&(e[i+t.t]-=t.DV,e[i+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(i,t[i],e,2*i,0,1)),e.s=0,e.clamp()},u.prototype.divRemTo=function(e,t,i){var n=e.abs();if(!(n.t<=0)){var r=this.abs();if(r.t<n.t)return null!=t&&t.fromInt(0),void(null!=i&&this.copyTo(i));null==i&&(i=c());var o=c(),a=this.s,s=e.s,l=this.DB-m(n[n.t-1]);l>0?(n.lShiftTo(l,o),r.lShiftTo(l,i)):(n.copyTo(o),r.copyTo(i));var h=o.t,d=o[h-1];if(0!=d){var p=d*(1<<this.F1)+(h>1?o[h-2]>>this.F2:0),f=this.FV/p,A=(1<<this.F1)/p,v=1<<this.F2,g=i.t,y=g-h,b=null==t?c():t;for(o.dlShiftTo(y,b),i.compareTo(b)>=0&&(i[i.t++]=1,i.subTo(b,i)),u.ONE.dlShiftTo(h,b),b.subTo(o,o);o.t<h;)o[o.t++]=0;for(;--y>=0;){var x=i[--g]==d?this.DM:Math.floor(i[g]*f+(i[g-1]+v)*A);if((i[g]+=o.am(0,x,i,y,0,h))<x)for(o.dlShiftTo(y,b),i.subTo(b,i);i[g]<--x;)i.subTo(b,i)}null!=t&&(i.drShiftTo(h,t),a!=s&&u.ZERO.subTo(t,t)),i.t=h,i.clamp(),l>0&&i.rShiftTo(l,i),a<0&&u.ZERO.subTo(i,i)}}},u.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},u.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},u.prototype.exp=function(e,t){if(e>4294967295||e<1)return u.ONE;var i=c(),n=c(),r=t.convert(this),o=m(e)-1;for(r.copyTo(i);--o>=0;)if(t.sqrTo(i,n),(e&1<<o)>0)t.mulTo(n,r,i);else{var a=i;i=n,n=a}return t.revert(i)},u.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var i,n=(1<<t)-1,r=!1,o="",a=this.t,s=this.DB-a*this.DB%t;if(a-- >0)for(s<this.DB&&(i=this[a]>>s)>0&&(r=!0,o=f(i));a>=0;)s<t?(i=(this[a]&(1<<s)-1)<<t-s,i|=this[--a]>>(s+=this.DB-t)):(i=this[a]>>(s-=t)&n,s<=0&&(s+=this.DB,--a)),i>0&&(r=!0),r&&(o+=f(i));return r?o:"0"},u.prototype.negate=function(){var e=c();return u.ZERO.subTo(this,e),e},u.prototype.abs=function(){return this.s<0?this.negate():this},u.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var i=this.t;if(0!=(t=i-e.t))return this.s<0?-t:t;for(;--i>=0;)if(0!=(t=this[i]-e[i]))return t;return 0},u.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+m(this[this.t-1]^this.s&this.DM)},u.prototype.mod=function(e){var t=c();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(u.ZERO)>0&&e.subTo(t,t),t},u.prototype.modPowInt=function(e,t){var i;return i=e<256||t.isEven()?new g(t):new y(t),this.exp(e,i)},u.ZERO=v(0),u.ONE=v(1),u.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},u.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),i=Math.pow(e,t),n=v(i),r=c(),o=c(),a="";for(this.divRemTo(n,r,o);r.signum()>0;)a=(i+o.intValue()).toString(e).substr(1)+a,r.divRemTo(n,r,o);return o.intValue().toString(e)+a},u.prototype.intValue=
|
|
351
|
+
/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
|
|
352
|
+
function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},u.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1};
|
|
353
|
+
/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
|
|
354
|
+
var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function x(e){var t,i,n,r="",o=0;for(t=0;t<e.length&&"="!=e.charAt(t);++t)(n=b.indexOf(e.charAt(t)))<0||(0==o?(r+=f(n>>2),i=3&n,o=1):1==o?(r+=f(i<<2|n>>4),i=15&n,o=2):2==o?(r+=f(i),r+=f(n>>2),i=3&n,o=3):(r+=f(i<<2|n>>4),r+=f(15&n),o=0));return 1==o&&(r+=f(i<<2)),r}
|
|
355
|
+
/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */function w(e,t){return new u(e,t)}function M(e,t,i){for(var n="",r=0;n.length<t;)n+=i(String.fromCharCode.apply(String,e.concat([(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r]))),r+=1;return n}function C(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function E(e,t,i){for(var n="",r=0;n.length<t;)n+=i(e+String.fromCharCode.apply(String,[(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r])),r+=1;return n}function I(e){return x(function(e){return e.length%4==2?e+="==":e.length%4==3&&(e+="="),(e=e.replace(/-/g,"+")).replace(/_/g,"/")}(e))}function S(e){return decodeURIComponent(function(e){return e.replace(/(..)/g,"%$1")}(e))}function B(e){for(var t="",i=0;i<e.length-1;i+=2)t+=String.fromCharCode(parseInt(e.substr(i,2),16));return t}function T(e){for(var t="",i=0;i<e.length;i++)t+=("0"+e.charCodeAt(i).toString(16)).slice(-2);return t}function P(e){return function(e){var t,i,n="";for(t=0;t+3<=e.length;t+=3)i=parseInt(e.substring(t,t+3),16),n+=b.charAt(i>>6)+b.charAt(63&i);for(t+1==e.length?(i=parseInt(e.substring(t,t+1),16),n+=b.charAt(i<<2)):t+2==e.length&&(i=parseInt(e.substring(t,t+2),16),n+=b.charAt(i>>2)+b.charAt((3&i)<<4));(3&n.length)>0;)n+="=";return n}(e)}function R(e,t){var i=function(e){var t=P(e).replace(/(.{64})/g,"$1\r\n");return t.replace(/\r\n$/,"")}(e);return"-----BEGIN "+t+"-----\r\n"+i+"\r\n-----END "+t+"-----\r\n"}function k(e,t){if(-1==e.indexOf("-----BEGIN "))throw"can't find PEM header: "+t;return function(e){return x(e.replace(/[^0-9A-Za-z\/+=]*/g,""))}(e=void 0!==t?(e=e.replace(new RegExp("^[^]*-----BEGIN "+t+"-----"),"")).replace(new RegExp("-----END "+t+"-----[^]*$"),""):(e=e.replace(/^[^]*-----BEGIN [^-]+-----/,"")).replace(/-----END [^-]+-----[^]*$/,""))}function Q(e){var t="malformed hex value";if(!e.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw t;if(8!=e.length)return 32==e.length?function(e){if(!e.match(/^[0-9A-Fa-f]{32}$/))throw"malformed IPv6 address octet";for(var t=(e=e.toLowerCase()).match(/.{1,4}/g),i=0;i<8;i++)t[i]=t[i].replace(/^0+/,""),""==t[i]&&(t[i]="0");var n=(e=":"+t.join(":")+":").match(/:(0:){2,}/g);if(null===n)return e.slice(1,-1);var r="";for(i=0;i<n.length;i++)n[i].length>r.length&&(r=n[i]);return(e=e.replace(r,"::")).slice(1,-1)}(e):e;try{return parseInt(e.substr(0,2),16)+"."+parseInt(e.substr(2,2),16)+"."+parseInt(e.substr(4,2),16)+"."+parseInt(e.substr(6,2),16)}catch(e){throw t}}function F(e){return!(e.length%2!=0||!e.match(/^[0-9a-f]+$/)&&!e.match(/^[0-9A-F]+$/))}function D(e){return e.length%2==1?"0"+e:e.substr(0,1)>"7"?"00"+e:e}C.prototype.doPublic=function(e){return e.modPowInt(this.e,this.n)},C.prototype.setPublic=function(e,t){if(this.isPublic=!0,this.isPrivate=!1,"string"!=typeof e)this.n=e,this.e=t;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA public key";this.n=w(e,16),this.e=parseInt(t,16)}},C.prototype.encrypt=function(e){var t=function(e,t){if(t<e.length+11)throw"Message too long for RSA";for(var i=new Array,n=e.length-1;n>=0&&t>0;){var r=e.charCodeAt(n--);r<128?i[--t]=r:r>127&&r<2048?(i[--t]=63&r|128,i[--t]=r>>6|192):(i[--t]=63&r|128,i[--t]=r>>6&63|128,i[--t]=r>>12|224)}i[--t]=0;for(var o=new SecureRandom,a=new Array;t>2;){for(a[0]=0;0==a[0];)o.nextBytes(a);i[--t]=a[0]}return i[--t]=2,i[--t]=0,new u(i)}(e,this.n.bitLength()+7>>3);if(null==t)return null;var i=this.doPublic(t);if(null==i)return null;var n=i.toString(16);return 0==(1&n.length)?n:"0"+n},C.prototype.encryptOAEP=function(e,t,i){var n=function(e,t,i,n){var r=s.crypto.MessageDigest,o=s.crypto.Util,a=null;if(i||(i="sha1"),"string"==typeof i&&(a=r.getCanonicalAlgName(i),n=r.getHashLength(a),i=function(e){return B(o.hashHex(T(e),a))}),e.length+2*n+2>t)throw"Message too long for RSA";var l,c="";for(l=0;l<t-e.length-2*n-2;l+=1)c+="\0";var h=i("")+c+""+e,d=new Array(n);(new SecureRandom).nextBytes(d);var p=M(d,h.length,i),f=[];for(l=0;l<h.length;l+=1)f[l]=h.charCodeAt(l)^p.charCodeAt(l);var A=M(f,d.length,i),v=[0];for(l=0;l<d.length;l+=1)v[l+1]=d[l]^A.charCodeAt(l);return new u(v.concat(f))}(e,this.n.bitLength()+7>>3,t,i);if(null==n)return null;var r=this.doPublic(n);if(null==r)return null;var o=r.toString(16);return 0==(1&o.length)?o:"0"+o},C.prototype.type="RSA",C.prototype.doPrivate=function(e){if(null==this.p||null==this.q)return e.modPow(this.d,this.n);for(var t=e.mod(this.p).modPow(this.dmp1,this.p),i=e.mod(this.q).modPow(this.dmq1,this.q);t.compareTo(i)<0;)t=t.add(this.p);return t.subtract(i).multiply(this.coeff).mod(this.p).multiply(this.q).add(i)},C.prototype.setPrivate=function(e,t,i){if(this.isPrivate=!0,"string"!=typeof e)this.n=e,this.e=t,this.d=i;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key";this.n=w(e,16),this.e=parseInt(t,16),this.d=w(i,16)}},C.prototype.setPrivateEx=function(e,t,i,n,r,o,a,s){if(this.isPrivate=!0,this.isPublic=!1,null==e)throw"RSASetPrivateEx N == null";if(null==t)throw"RSASetPrivateEx E == null";if(0==e.length)throw"RSASetPrivateEx N.length == 0";if(0==t.length)throw"RSASetPrivateEx E.length == 0";if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key in RSASetPrivateEx";this.n=w(e,16),this.e=parseInt(t,16),this.d=w(i,16),this.p=w(n,16),this.q=w(r,16),this.dmp1=w(o,16),this.dmq1=w(a,16),this.coeff=w(s,16)},C.prototype.decrypt=function(e){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var t=w(e,16),i=this.doPrivate(t);return null==i?null:
|
|
356
|
+
/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
|
|
357
|
+
function(e,t){for(var i=e.toByteArray(),n=0;n<i.length&&0==i[n];)++n;if(i.length-n!=t-1||2!=i[n])return null;for(++n;0!=i[n];)if(++n>=i.length)return null;for(var r="";++n<i.length;){var o=255&i[n];o<128?r+=String.fromCharCode(o):o>191&&o<224?(r+=String.fromCharCode((31&o)<<6|63&i[n+1]),++n):(r+=String.fromCharCode((15&o)<<12|(63&i[n+1])<<6|63&i[n+2]),n+=2)}return r}(i,this.n.bitLength()+7>>3)},C.prototype.decryptOAEP=function(e,t,i){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var n=w(e,16),r=this.doPrivate(n);return null==r?null:function(e,t,i,n){var r=s.crypto.MessageDigest,o=s.crypto.Util,a=null;for(i||(i="sha1"),"string"==typeof i&&(a=r.getCanonicalAlgName(i),n=r.getHashLength(a),i=function(e){return B(o.hashHex(T(e),a))}),e=e.toByteArray(),l=0;l<e.length;l+=1)e[l]&=255;for(;e.length<t;)e.unshift(0);if((e=String.fromCharCode.apply(String,e)).length<2*n+2)throw"Cipher too short";var l,u=e.substr(1,n),c=e.substr(n+1),h=E(c,n,i),d=[];for(l=0;l<u.length;l+=1)d[l]=u.charCodeAt(l)^h.charCodeAt(l);var p=E(String.fromCharCode.apply(String,d),e.length-n,i),f=[];for(l=0;l<c.length;l+=1)f[l]=c.charCodeAt(l)^p.charCodeAt(l);if((f=String.fromCharCode.apply(String,f)).substr(0,n)!==i(""))throw"Hash mismatch";var A=(f=f.substr(n)).indexOf("");if((-1!=A?f.substr(0,A).lastIndexOf("\0"):-1)+1!=A)throw"Malformed data";return f.substr(A+1)}(r,this.n.bitLength()+7>>3,t,i)},void 0!==s.lang&&s.lang||(s.lang={}),s.lang.String=function(){},s.lang.String.isHex=function(e){return F(e)},s.lang.String.isMail=function(e){return null!==e.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var L=function(e,t,i){return null==i&&(i="0"),e.length>=t?e:new Array(t-e.length+1).join(i)+e};void 0!==s.crypto&&s.crypto||(s.crypto={}),s.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:l.algo.MD5,sha1:l.algo.SHA1,sha224:l.algo.SHA224,sha256:l.algo.SHA256,sha384:l.algo.SHA384,sha512:l.algo.SHA512,ripemd160:l.algo.RIPEMD160},this.hashString=function(e,t){return new s.crypto.MessageDigest({alg:t}).digestString(e)},this.hashHex=function(e,t){return new s.crypto.MessageDigest({alg:t}).digestHex(e)},this.sha1=function(e){return this.hashString(e,"sha1")},this.sha256=function(e){return this.hashString(e,"sha256")},this.sha256Hex=function(e){return this.hashHex(e,"sha256")},this.sha512=function(e){return this.hashString(e,"sha512")},this.sha512Hex=function(e){return this.hashHex(e,"sha512")}},s.crypto.MessageDigest=function(e){this.setAlgAndProvider=function(e,t){if(null!==(e=s.crypto.MessageDigest.getCanonicalAlgName(e))&&void 0===t&&(t=s.crypto.Util.DEFAULTPROVIDER[e]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(e)&&"cryptojs"==t){try{this.md=s.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[e].create()}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=l.enc.Hex.parse(e);this.md.update(t)},this.digest=function(){return this.md.finalize().toString(l.enc.Hex)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}if(-1!=":sha256:".indexOf(e)&&"sjcl"==t){try{this.md=new sjcl.hash.sha256}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=sjcl.codec.hex.toBits(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return sjcl.codec.hex.fromBits(e)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digest=function(){throw"digest() not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==e&&void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=s.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},s.crypto.MessageDigest.getCanonicalAlgName=function(e){return"string"==typeof e&&(e=(e=e.toLowerCase()).replace(/-/,"")),e},s.crypto.MessageDigest.getHashLength=function(e){var t=s.crypto.MessageDigest,i=t.getCanonicalAlgName(e);if(void 0===t.HASHLENGTH[i])throw"not supported algorithm: "+e;return t.HASHLENGTH[i]},s.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},s.crypto.Signature=function(e){var t=null;if(this._setAlgNames=function(){var e=this.algName.match(/^(.+)with(.+)$/);e&&(this.mdAlgName=e[1].toLowerCase(),this.pubkeyAlgName=e[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(e,t){for(var i="",n=t/4-e.length,r=0;r<n;r++)i+="0";return i+e},this.setAlgAndProvider=function(e,t){if(this._setAlgNames(),"cryptojs/jsrsa"!=t)throw new Error("provider not supported: "+t);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new s.crypto.MessageDigest({alg:this.mdAlgName})}catch(e){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+e)}this.init=function(e,t){var i=null;try{i=void 0===t?K.getKey(e):K.getKey(e,t)}catch(e){throw"init failed:"+e}if(!0===i.isPrivate)this.prvKey=i,this.state="SIGN";else{if(!0!==i.isPublic)throw"init failed.:"+i;this.pubKey=i,this.state="VERIFY"}},this.updateString=function(e){this.md.updateString(e)},this.updateHex=function(e){this.md.updateHex(e)},this.verify=function(e){if(this.sHashHex=this.md.digest(),this.pubKey instanceof C&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,e,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof C&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(e,t){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(e){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(e){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=e,void 0!==e&&(void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov?this.provName=s.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=e.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==e.psssaltlen&&(this.pssSaltLen=e.psssaltlen),void 0!==e.prvkeypem)){if(void 0!==e.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{t=K.getKey(e.prvkeypem);this.init(t)}catch(e){throw"fatal error to load pem private key: "+e}}},s.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040023":"secp521r1","2b81040022":"secp384r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}};var O,N,V,U,z,q,H,_,K=(O=function(e,t,i){return N(l.AES,e,t,i)},N=function(e,t,i,n){var r=l.enc.Hex.parse(t),o=l.enc.Hex.parse(i),a=l.enc.Hex.parse(n),s={};s.key=o,s.iv=a,s.ciphertext=r;var u=e.decrypt(s,o,{iv:a});return l.enc.Hex.stringify(u)},V=function(e,t,i){return U(l.AES,e,t,i)},U=function(e,t,i,n){var r=l.enc.Hex.parse(t),o=l.enc.Hex.parse(i),a=l.enc.Hex.parse(n),s=e.encrypt(r,o,{iv:a}),u=l.enc.Hex.parse(s.toString());return l.enc.Base64.stringify(u)},z={"AES-256-CBC":{proc:O,eproc:V,keylen:32,ivlen:16},"AES-192-CBC":{proc:O,eproc:V,keylen:24,ivlen:16},"AES-128-CBC":{proc:O,eproc:V,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:function(e,t,i){return N(l.TripleDES,e,t,i)},eproc:function(e,t,i){return U(l.TripleDES,e,t,i)},keylen:24,ivlen:8},"DES-CBC":{proc:function(e,t,i){return N(l.DES,e,t,i)},eproc:function(e,t,i){return U(l.DES,e,t,i)},keylen:8,ivlen:8}},q=function(e){var t={},i=e.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));i&&(t.cipher=i[1],t.ivsalt=i[2]);var n=e.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));n&&(t.type=n[1]);var r=-1,o=0;-1!=e.indexOf("\r\n\r\n")&&(r=e.indexOf("\r\n\r\n"),o=2),-1!=e.indexOf("\n\n")&&(r=e.indexOf("\n\n"),o=1);var a=e.indexOf("-----END");if(-1!=r&&-1!=a){var s=e.substring(r+2*o,a-o);s=s.replace(/\s+/g,""),t.data=s}return t},H=function(e,t,i){for(var n=i.substring(0,16),r=l.enc.Hex.parse(n),o=l.enc.Utf8.parse(t),a=z[e].keylen+z[e].ivlen,s="",u=null;;){var c=l.algo.MD5.create();if(null!=u&&c.update(u),c.update(o),c.update(r),u=c.finalize(),(s+=l.enc.Hex.stringify(u)).length>=2*a)break}var h={};return h.keyhex=s.substr(0,2*z[e].keylen),h.ivhex=s.substr(2*z[e].keylen,2*z[e].ivlen),h},_=function(e,t,i,n){var r=l.enc.Base64.parse(e),o=l.enc.Hex.stringify(r);return(0,z[t].proc)(o,i,n)},{version:"1.0.0",parsePKCS5PEM:function(e){return q(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(e,t,i){return H(e,t,i)},decryptKeyB64:function(e,t,i,n){return _(e,t,i,n)},getDecryptedKeyHex:function(e,t){var i=q(e),n=i.cipher,r=i.ivsalt,o=i.data,a=H(n,t,r).keyhex;return _(o,n,a,r)},getEncryptedPKCS5PEMFromPrvKeyHex:function(e,t,i,n,r){var o="";if(void 0!==n&&null!=n||(n="AES-256-CBC"),void 0===z[n])throw"KEYUTIL unsupported algorithm: "+n;if(void 0===r||null==r){var a=function(e){var t=l.lib.WordArray.random(e);return l.enc.Hex.stringify(t)}(z[n].ivlen);r=a.toUpperCase()}var s=function(e,t,i,n){return(0,z[t].eproc)(e,i,n)}(t,n,H(n,i,r).keyhex,r);return o="-----BEGIN "+e+" PRIVATE KEY-----\r\n",o+="Proc-Type: 4,ENCRYPTED\r\n",o+="DEK-Info: "+n+","+r+"\r\n",o+="\r\n",o+=s.replace(/(.{64})/g,"$1\r\n"),o+="\r\n-----END "+e+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(e){var t=j,i=t.getChildIdx,n=t.getV,r={},o=i(e,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;r.ciphertext=n(e,o[1]);var a=i(e,o[0]);if(2!=a.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+a.length;if("2a864886f70d01050d"!=n(e,a[0]))throw"this only supports pkcs5PBES2";var s=i(e,a[1]);if(2!=a.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+s.length;var l=i(e,s[1]);if(2!=l.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+l.length;if("2a864886f70d0307"!=n(e,l[0]))throw"this only supports TripleDES";r.encryptionSchemeAlg="TripleDES",r.encryptionSchemeIV=n(e,l[1]);var u=i(e,s[0]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+u.length;if("2a864886f70d01050c"!=n(e,u[0]))throw"this only supports pkcs5PBKDF2";var c=i(e,u[1]);if(c.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+c.length;r.pbkdf2Salt=n(e,c[0]);var h=n(e,c[1]);try{r.pbkdf2Iter=parseInt(h,16)}catch(e){throw"malformed format pbkdf2Iter: "+h}return r},getPBKDF2KeyHexFromParam:function(e,t){var i=l.enc.Hex.parse(e.pbkdf2Salt),n=e.pbkdf2Iter,r=l.PBKDF2(t,i,{keySize:6,iterations:n});return l.enc.Hex.stringify(r)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(e,t){var i=k(e,"ENCRYPTED PRIVATE KEY"),n=this.parseHexOfEncryptedPKCS8(i),r=K.getPBKDF2KeyHexFromParam(n,t),o={};o.ciphertext=l.enc.Hex.parse(n.ciphertext);var a=l.enc.Hex.parse(r),s=l.enc.Hex.parse(n.encryptionSchemeIV),u=l.TripleDES.decrypt(o,a,{iv:s});return l.enc.Hex.stringify(u)},getKeyFromEncryptedPKCS8PEM:function(e,t){var i=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,t);return this.getKeyFromPlainPrivatePKCS8Hex(i)},parsePlainPrivatePKCS8Hex:function(e){var t=j,i=t.getChildIdx,n=t.getV,r={algparam:null};if("30"!=e.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var o=i(e,0);if(o.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=e.substr(o[1],2))throw new Error("malformed PKCS8 private key(code:003)");var a=i(e,o[1]);if(2!=a.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=e.substr(a[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(r.algoid=n(e,a[0]),"06"==e.substr(a[1],2)&&(r.algparam=n(e,a[1])),"04"!=e.substr(o[2],2))throw new Error("malformed PKCS8 private key(code:006)");return r.keyidx=t.getVidx(e,o[2]),r},getKeyFromPlainPrivatePKCS8PEM:function(e){var t=k(e,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(t)},getKeyFromPlainPrivatePKCS8Hex:function(e){var t,i=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==i.algoid)t=new C;else if(s.crypto.DSA&&"2a8648ce380401"==i.algoid)t=new s.crypto.DSA;else{if(!s.crypto.ECDSA||"2a8648ce3d0201"!=i.algoid)throw"unsupported private key algorithm";t=new s.crypto.ECDSA}return t.readPKCS8PrvKeyHex(e),t},_getKeyFromPublicPKCS8Hex:function(e){var t,i=j.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===i)t=new C;else if(s.crypto.DSA&&"2a8648ce380401"===i)t=new s.crypto.DSA;else{if(!s.crypto.ECDSA||"2a8648ce3d0201"!==i)throw"unsupported PKCS#8 public key hex";t=new s.crypto.ECDSA}return t.readPKCS8PubKeyHex(e),t},parsePublicRawRSAKeyHex:function(e){var t=j,i=t.getChildIdx,n=t.getV,r={};if("30"!=e.substr(0,2))throw"malformed RSA key(code:001)";var o=i(e,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=e.substr(o[0],2))throw"malformed RSA key(code:003)";if(r.n=n(e,o[0]),"02"!=e.substr(o[1],2))throw"malformed RSA key(code:004)";return r.e=n(e,o[1]),r},parsePublicPKCS8Hex:function(e){var t=j,i=t.getChildIdx,n=t.getV,r={algparam:null},o=i(e,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var a=o[0];if("30"!=e.substr(a,2))throw"malformed PKCS8 public key(code:001)";var s=i(e,a);if(2!=s.length)throw"malformed PKCS8 public key(code:002)";if("06"!=e.substr(s[0],2))throw"malformed PKCS8 public key(code:003)";if(r.algoid=n(e,s[0]),"06"==e.substr(s[1],2)?r.algparam=n(e,s[1]):"30"==e.substr(s[1],2)&&(r.algparam={},r.algparam.p=t.getVbyList(e,s[1],[0],"02"),r.algparam.q=t.getVbyList(e,s[1],[1],"02"),r.algparam.g=t.getVbyList(e,s[1],[2],"02")),"03"!=e.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return r.key=n(e,o[1]).substr(2),r}});K.getKey=function(e,t,i){var n=(g=j).getChildIdx;g.getV;var r=g.getVbyList,o=s.crypto,a=o.ECDSA,l=o.DSA,c=C,h=k,d=K;if(void 0!==c&&e instanceof c)return e;if(void 0!==a&&e instanceof a)return e;if(void 0!==l&&e instanceof l)return e;if(void 0!==e.curve&&void 0!==e.xy&&void 0===e.d)return new a({pub:e.xy,curve:e.curve});if(void 0!==e.curve&&void 0!==e.d)return new a({prv:e.d,curve:e.curve});if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(R=new c).setPublic(e.n,e.e),R;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.co&&void 0===e.qi)return(R=new c).setPrivateEx(e.n,e.e,e.d,e.p,e.q,e.dp,e.dq,e.co),R;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0===e.p)return(R=new c).setPrivate(e.n,e.e,e.d),R;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0===e.x)return(R=new l).setPublic(e.p,e.q,e.g,e.y),R;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0!==e.x)return(R=new l).setPrivate(e.p,e.q,e.g,e.y,e.x),R;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(R=new c).setPublic(I(e.n),I(e.e)),R;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.qi)return(R=new c).setPrivateEx(I(e.n),I(e.e),I(e.d),I(e.p),I(e.q),I(e.dp),I(e.dq),I(e.qi)),R;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d)return(R=new c).setPrivate(I(e.n),I(e.e),I(e.d)),R;if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0===e.d){var p=(P=new a({curve:e.crv})).ecparams.keylen/4,f="04"+("0000000000"+I(e.x)).slice(-p)+("0000000000"+I(e.y)).slice(-p);return P.setPublicKeyHex(f),P}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0!==e.d){p=(P=new a({curve:e.crv})).ecparams.keylen/4,f="04"+("0000000000"+I(e.x)).slice(-p)+("0000000000"+I(e.y)).slice(-p);var A=("0000000000"+I(e.d)).slice(-p);return P.setPublicKeyHex(f),P.setPrivateKeyHex(A),P}if("pkcs5prv"===i){var v,m=e,g=j;if(9===(v=n(m,0)).length)(R=new c).readPKCS5PrvKeyHex(m);else if(6===v.length)(R=new l).readPKCS5PrvKeyHex(m);else{if(!(v.length>2&&"04"===m.substr(v[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(R=new a).readPKCS5PrvKeyHex(m)}return R}if("pkcs8prv"===i)return R=d.getKeyFromPlainPrivatePKCS8Hex(e);if("pkcs8pub"===i)return d._getKeyFromPublicPKCS8Hex(e);if("x509pub"===i)return W.getPublicKeyFromCertHex(e);if(-1!=e.indexOf("-END CERTIFICATE-",0)||-1!=e.indexOf("-END X509 CERTIFICATE-",0)||-1!=e.indexOf("-END TRUSTED CERTIFICATE-",0))return W.getPublicKeyFromCertPEM(e);if(-1!=e.indexOf("-END PUBLIC KEY-")){var y=k(e,"PUBLIC KEY");return d._getKeyFromPublicPKCS8Hex(y)}if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var b=h(e,"RSA PRIVATE KEY");return d.getKey(b,null,"pkcs5prv")}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var x=r(D=h(e,"DSA PRIVATE KEY"),0,[1],"02"),w=r(D,0,[2],"02"),M=r(D,0,[3],"02"),E=r(D,0,[4],"02"),S=r(D,0,[5],"02");return(R=new l).setPrivate(new u(x,16),new u(w,16),new u(M,16),new u(E,16),new u(S,16)),R}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){b=h(e,"EC PRIVATE KEY");return d.getKey(b,null,"pkcs5prv")}if(-1!=e.indexOf("-END PRIVATE KEY-"))return d.getKeyFromPlainPrivatePKCS8PEM(e);if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var B=d.getDecryptedKeyHex(e,t),T=new C;return T.readPKCS5PrvKeyHex(B),T}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var P,R=r(D=d.getDecryptedKeyHex(e,t),0,[1],"04"),Q=r(D,0,[2,0],"06"),F=r(D,0,[3,0],"03").substr(2);if(void 0===s.crypto.OID.oidhex2name[Q])throw"undefined OID(hex) in KJUR.crypto.OID: "+Q;return(P=new a({curve:s.crypto.OID.oidhex2name[Q]})).setPublicKeyHex(F),P.setPrivateKeyHex(R),P.isPublic=!1,P}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var D;x=r(D=d.getDecryptedKeyHex(e,t),0,[1],"02"),w=r(D,0,[2],"02"),M=r(D,0,[3],"02"),E=r(D,0,[4],"02"),S=r(D,0,[5],"02");return(R=new l).setPrivate(new u(x,16),new u(w,16),new u(M,16),new u(E,16),new u(S,16)),R}if(-1!=e.indexOf("-END ENCRYPTED PRIVATE KEY-"))return d.getKeyFromEncryptedPKCS8PEM(e,t);throw new Error("not supported argument")},void 0!==s.asn1&&s.asn1||(s.asn1={}),s.asn1.ASN1Util={},s.asn1.ASN1Util.oidHexToInt=function(e){for(var t="",i=parseInt(e.substr(0,2),16),n=(t=Math.floor(i/40)+"."+i%40,""),r=2;r<e.length;r+=2){var o=("00000000"+parseInt(e.substr(r,2),16).toString(2)).slice(-8);if(n+=o.substr(1,7),"0"==o.substr(0,1))t=t+"."+new u(n,2).toString(10),n=""}return t};var j=new function(){};function G(e){for(var t in s.crypto.Util.DIGESTINFOHEAD){var i=s.crypto.Util.DIGESTINFOHEAD[t],n=i.length;if(e.substring(0,n)==i)return[t,e.substring(n)]}return[]}function W(e){var t,i=j,n=i.getChildIdx,r=i.getV,o=i.getTLV,a=i.getVbyList,l=i.getVbyListEx,u=i.getTLVbyList,c=i.getTLVbyListEx,h=i.getIdxbyList,d=i.getIdxbyListEx,p=i.getVidx,f=i.getInt,A=i.oidname,v=i.hextooidstr,m=k;try{t=s.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(e){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var e=u(this.hex,0,[0,0]);if("a0"==e.substr(0,2)){var t=u(e,0,[0]),i=f(t,0);if(i<0||2<i)throw new Error("malformed version field");return this.version=i+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return l(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var e=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(e)},this.getAlgorithmIdentifierName=function(e){for(var i in t)if(e===t[i])return i;return A(l(e,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var e=a(this.hex,0,[0,4+this.foffset,0]);return e=e.replace(/(..)/g,"%$1"),e=decodeURIComponent(e)},this.getNotAfter=function(){var e=a(this.hex,0,[0,4+this.foffset,1]);return e=e.replace(/(..)/g,"%$1"),e=decodeURIComponent(e)},this.getPublicKeyHex=function(){return i.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var e=this.getPublicKeyIdx();return h(this.hex,e,[1,0],"30")},this.getPublicKey=function(){return K.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var e=u(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(e)},this.getSignatureValueHex=function(){return a(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),i=this.getSignatureValueHex(),n=u(this.hex,0,[0],"30"),r=new s.crypto.Signature({alg:t});return r.init(e),r.updateHex(n),r.verify(i)},this.parseExt=function(e){var t,o,s;if(void 0===e){if(s=this.hex,3!==this.version)return-1;t=h(s,0,[0,7,0],"30"),o=n(s,t)}else{s=k(e);var l=h(s,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=r(s,l))return void(this.aExtInfo=new Array);t=h(s,0,[0,3,0,1,0],"30"),o=n(s,t),this.hex=s}this.aExtInfo=new Array;for(var u=0;u<o.length;u++){var c={critical:!1},d=0;3===n(s,o[u]).length&&(c.critical=!0,d=1),c.oid=i.hextooidstr(a(s,o[u],[0],"06"));var f=h(s,o[u],[1+d]);c.vidx=p(s,f),this.aExtInfo.push(c)}},this.getExtInfo=function(e){var t=this.aExtInfo,i=e;if(e.match(/^[0-9.]+$/)||(i=s.asn1.x509.OID.name2oid(e)),""!==i)for(var n=0;n<t.length;n++)if(t[n].oid===i)return t[n]},this.getExtBasicConstraints=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("basicConstraints");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"basicConstraints"};if(t&&(n.critical=!0),"3000"===e)return n;if("30030101ff"===e)return n.cA=!0,n;if("30060101ff02"===e.substr(0,12)){var a=r(e,10),s=parseInt(a,16);return n.cA=!0,n.pathLen=s,n}throw new Error("hExtV parse error: "+e)},this.getExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("keyUsage");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"keyUsage"};return t&&(n.critical=!0),n.names=this.getExtKeyUsageString(e).split(","),n},this.getExtKeyUsageBin=function(e){if(void 0===e){var t=this.getExtInfo("keyUsage");if(void 0===t)return"";e=o(this.hex,t.vidx)}if(8!=e.length&&10!=e.length)throw new Error("malformed key usage value: "+e);var i="000000000000000"+parseInt(e.substr(6),16).toString(2);return 8==e.length&&(i=i.slice(-8)),10==e.length&&(i=i.slice(-16)),""==(i=i.replace(/0+$/,""))&&(i="0"),i},this.getExtKeyUsageString=function(e){for(var t=this.getExtKeyUsageBin(e),i=new Array,n=0;n<t.length;n++)"1"==t.substr(n,1)&&i.push(W.KEYUSAGE_NAME[n]);return i.join(",")},this.getExtSubjectKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("subjectKeyIdentifier");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"subjectKeyIdentifier"};t&&(n.critical=!0);var a=r(e,0);return n.kid={hex:a},n},this.getExtAuthorityKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("authorityKeyIdentifier");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var a={extname:"authorityKeyIdentifier"};t&&(a.critical=!0);for(var s=n(e,0),l=0;l<s.length;l++){var u=e.substr(s[l],2);if("80"===u&&(a.kid={hex:r(e,s[l])}),"a1"===u){var c=o(e,s[l]),h=this.getGeneralNames(c);a.issuer=h[0].dn}"82"===u&&(a.sn={hex:r(e,s[l])})}return a},this.getExtExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("extKeyUsage");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var a={extname:"extKeyUsage",array:[]};t&&(a.critical=!0);for(var s=n(e,0),l=0;l<s.length;l++)a.array.push(A(r(e,s[l])));return a},this.getExtExtKeyUsageName=function(){var e=this.getExtInfo("extKeyUsage");if(void 0===e)return e;var t=new Array,i=o(this.hex,e.vidx);if(""===i)return t;for(var a=n(i,0),s=0;s<a.length;s++)t.push(A(r(i,a[s])));return t},this.getExtSubjectAltName=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("subjectAltName");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"subjectAltName",array:[]};return t&&(n.critical=!0),n.array=this.getGeneralNames(e),n},this.getExtIssuerAltName=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("issuerAltName");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"issuerAltName",array:[]};return t&&(n.critical=!0),n.array=this.getGeneralNames(e),n},this.getGeneralNames=function(e){for(var t=n(e,0),i=[],r=0;r<t.length;r++){var a=this.getGeneralName(o(e,t[r]));void 0!==a&&i.push(a)}return i},this.getGeneralName=function(e){var t=e.substr(0,2),i=r(e,0),n=B(i);return"81"==t?{rfc822:n}:"82"==t?{dns:n}:"86"==t?{uri:n}:"87"==t?{ip:Q(i)}:"a4"==t?{dn:this.getX500Name(i)}:void 0},this.getExtSubjectAltName2=function(){var e,t,i,a=this.getExtInfo("subjectAltName");if(void 0===a)return a;for(var s=new Array,l=o(this.hex,a.vidx),u=n(l,0),c=0;c<u.length;c++)i=l.substr(u[c],2),e=r(l,u[c]),"81"===i&&(t=S(e),s.push(["MAIL",t])),"82"===i&&(t=S(e),s.push(["DNS",t])),"84"===i&&(t=W.hex2dn(e,0),s.push(["DN",t])),"86"===i&&(t=S(e),s.push(["URI",t])),"87"===i&&(t=Q(e),s.push(["IP",t]));return s},this.getExtCRLDistributionPoints=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("cRLDistributionPoints");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"cRLDistributionPoints",array:[]};t&&(r.critical=!0);for(var a=n(e,0),s=0;s<a.length;s++){var l=o(e,a[s]);r.array.push(this.getDistributionPoint(l))}return r},this.getDistributionPoint=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var a=e.substr(i[r],2),s=o(e,i[r]);"a0"==a&&(t.dpname=this.getDistributionPointName(s))}return t},this.getDistributionPointName=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var a=e.substr(i[r],2),s=o(e,i[r]);"a0"==a&&(t.full=this.getGeneralNames(s))}return t},this.getExtCRLDistributionPointsURI=function(){var e=this.getExtInfo("cRLDistributionPoints");if(void 0===e)return e;for(var t=new Array,i=n(this.hex,e.vidx),r=0;r<i.length;r++)try{var o=S(a(this.hex,i[r],[0,0,0],"86"));t.push(o)}catch(e){}return t},this.getExtAIAInfo=function(){var e=this.getExtInfo("authorityInfoAccess");if(void 0===e)return e;for(var t={ocsp:[],caissuer:[]},i=n(this.hex,e.vidx),r=0;r<i.length;r++){var o=a(this.hex,i[r],[0],"06"),s=a(this.hex,i[r],[1],"86");"2b06010505073001"===o&&t.ocsp.push(S(s)),"2b06010505073002"===o&&t.caissuer.push(S(s))}return t},this.getExtAuthorityInfoAccess=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("authorityInfoAccess");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"authorityInfoAccess",array:[]};t&&(r.critical=!0);for(var s=n(e,0),u=0;u<s.length;u++){var c=l(e,s[u],[0],"06"),h=S(a(e,s[u],[1],"86"));if("2b06010505073001"==c)r.array.push({ocsp:h});else{if("2b06010505073002"!=c)throw new Error("unknown method: "+c);r.array.push({caissuer:h})}}return r},this.getExtCertificatePolicies=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("certificatePolicies");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"certificatePolicies",array:[]};t&&(r.critical=!0);for(var a=n(e,0),s=0;s<a.length;s++){var l=o(e,a[s]),u=this.getPolicyInformation(l);r.array.push(u)}return r},this.getPolicyInformation=function(e){var t={},i=a(e,0,[0],"06");t.policyoid=A(i);var r=d(e,0,[1],"30");if(-1!=r){t.array=[];for(var s=n(e,r),l=0;l<s.length;l++){var u=o(e,s[l]),c=this.getPolicyQualifierInfo(u);t.array.push(c)}}return t},this.getPolicyQualifierInfo=function(e){var t={},i=a(e,0,[0],"06");if("2b06010505070201"===i){var n=l(e,0,[1],"16");t.cps=B(n)}else if("2b06010505070202"===i){var r=u(e,0,[1],"30");t.unotice=this.getUserNotice(r)}return t},this.getUserNotice=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var a=o(e,i[r]);"30"!=a.substr(0,2)&&(t.exptext=this.getDisplayText(a))}return t},this.getDisplayText=function(e){var t={};return t.type={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"}[e.substr(0,2)],t.str=B(r(e,0)),t},this.getExtCRLNumber=function(e,t){var i={extname:"cRLNumber"};if(t&&(i.critical=!0),"02"==e.substr(0,2))return i.num={hex:r(e,0)},i;throw new Error("hExtV parse error: "+e)},this.getExtCRLReason=function(e,t){var i={extname:"cRLReason"};if(t&&(i.critical=!0),"0a"==e.substr(0,2))return i.code=parseInt(r(e,0),16),i;throw new Error("hExtV parse error: "+e)},this.getExtOcspNonce=function(e,t){var i={extname:"ocspNonce"};t&&(i.critical=!0);var n=r(e,0);return i.hex=n,i},this.getExtOcspNoCheck=function(e,t){var i={extname:"ocspNoCheck"};return t&&(i.critical=!0),i},this.getExtAdobeTimeStamp=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("adobeTimeStamp");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"adobeTimeStamp"};t&&(r.critical=!0);var a=n(e,0);if(a.length>1){var s=o(e,a[1]),l=this.getGeneralName(s);null!=l.uri&&(r.uri=l.uri)}if(a.length>2){var u=o(e,a[2]);"0101ff"==u&&(r.reqauth=!0),"010100"==u&&(r.reqauth=!1)}return r},this.getX500NameRule=function(e){for(var t=null,i=[],n=0;n<e.length;n++)for(var r=e[n],o=0;o<r.length;o++)i.push(r[o]);for(n=0;n<i.length;n++){var a=i[n],l=a.ds,u=a.value,c=a.type;if("prn"!=l&&"utf8"!=l&&"ia5"!=l)return"mixed";if("ia5"==l){if("CN"!=c)return"mixed";if(s.lang.String.isMail(u))continue;return"mixed"}if("C"==c){if("prn"==l)continue;return"mixed"}if(null==t)t=l;else if(t!==l)return"mixed"}return null==t?"prn":t},this.getX500Name=function(e){var t=this.getX500NameArray(e);return{array:t,str:this.dnarraytostr(t)}},this.getX500NameArray=function(e){for(var t=[],i=n(e,0),r=0;r<i.length;r++)t.push(this.getRDN(o(e,i[r])));return t},this.getRDN=function(e){for(var t=[],i=n(e,0),r=0;r<i.length;r++)t.push(this.getAttrTypeAndValue(o(e,i[r])));return t},this.getAttrTypeAndValue=function(e){var t={type:null,value:null,ds:null},i=n(e,0),r=a(e,i[0],[],"06"),o=a(e,i[1],[]),l=s.asn1.ASN1Util.oidHexToInt(r);return t.type=s.asn1.x509.OID.oid2atype(l),t.ds=this.HEX2STAG[e.substr(i[1],2)],"bmp"!=t.ds?t.value=S(o):t.value=function(e){return e.match(/.{4}/g).map((function(e){var t=parseInt(e.substr(0,2),16),i=parseInt(e.substr(2),16);if(0==t&i<128)return String.fromCharCode(i);if(t<8){var n=128|63&i;return S((192|(7&t)<<3|(192&i)>>6).toString(16)+n.toString(16))}n=128|(15&t)<<2|(192&i)>>6;var r=128|63&i;return S((224|(240&t)>>4).toString(16)+n.toString(16)+r.toString(16))})).join("")}(o),t},this.readCertPEM=function(e){this.readCertHex(m(e))},this.readCertHex=function(e){this.hex=e,this.getVersion();try{h(this.hex,0,[0,7],"a3"),this.parseExt()}catch(e){}},this.getParam=function(){var e={};return e.version=this.getVersion(),e.serial={hex:this.getSerialNumberHex()},e.sigalg=this.getSignatureAlgorithmField(),e.issuer=this.getIssuer(),e.notbefore=this.getNotBefore(),e.notafter=this.getNotAfter(),e.subject=this.getSubject(),e.sbjpubkey=R(this.getPublicKeyHex(),"PUBLIC KEY"),this.aExtInfo.length>0&&(e.ext=this.getExtParamArray()),e.sighex=this.getSignatureValueHex(),e},this.getExtParamArray=function(e){null==e&&(-1!=d(this.hex,0,[0,"[3]"])&&(e=c(this.hex,0,[0,"[3]",0],"30")));for(var t=[],i=n(e,0),r=0;r<i.length;r++){var a=o(e,i[r]),s=this.getExtParam(a);null!=s&&t.push(s)}return t},this.getExtParam=function(e){var t=n(e,0).length;if(2!=t&&3!=t)throw new Error("wrong number elements in Extension: "+t+" "+e);var i=v(a(e,0,[0],"06")),r=!1;3==t&&"0101ff"==u(e,0,[1])&&(r=!0);var o=u(e,0,[t-1,0]),s=void 0;if("2.5.29.14"==i?s=this.getExtSubjectKeyIdentifier(o,r):"2.5.29.15"==i?s=this.getExtKeyUsage(o,r):"2.5.29.17"==i?s=this.getExtSubjectAltName(o,r):"2.5.29.18"==i?s=this.getExtIssuerAltName(o,r):"2.5.29.19"==i?s=this.getExtBasicConstraints(o,r):"2.5.29.31"==i?s=this.getExtCRLDistributionPoints(o,r):"2.5.29.32"==i?s=this.getExtCertificatePolicies(o,r):"2.5.29.35"==i?s=this.getExtAuthorityKeyIdentifier(o,r):"2.5.29.37"==i?s=this.getExtExtKeyUsage(o,r):"1.3.6.1.5.5.7.1.1"==i?s=this.getExtAuthorityInfoAccess(o,r):"2.5.29.20"==i?s=this.getExtCRLNumber(o,r):"2.5.29.21"==i?s=this.getExtCRLReason(o,r):"1.3.6.1.5.5.7.48.1.2"==i?s=this.getExtOcspNonce(o,r):"1.3.6.1.5.5.7.48.1.5"==i?s=this.getExtOcspNoCheck(o,r):"1.2.840.113583.1.1.9.1"==i&&(s=this.getExtAdobeTimeStamp(o,r)),null!=s)return s;var l={extname:i,extn:o};return r&&(l.critical=!0),l},this.findExt=function(e,t){for(var i=0;i<e.length;i++)if(e[i].extname==t)return e[i];return null},this.dnarraytostr=function(e){return"/"+e.map((function(e){return function(e){return e.map((function(e){return function(e){return e.type+"="+e.value}(e).replace(/\+/,"\\+")})).join("+")}(e).replace(/\//,"\\/")})).join("/")},this.getInfo=function(){var e,t,i,n,r=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];if(t+=" policy oid: "+r.policyoid+"\n",void 0!==r.array)for(var o=0;o<r.array.length;o++){var a=r.array[o];void 0!==a.cps&&(t+=" cps: "+a.cps+"\n")}}return t},o=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];try{void 0!==r.dpname.full[0].uri&&(t+=" "+r.dpname.full[0].uri+"\n")}catch(e){}try{void 0!==r.dname.full[0].dn.hex&&(t+=" "+W.hex2dn(r.dpname.full[0].dn.hex)+"\n")}catch(e){}}return t},a=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];void 0!==r.caissuer&&(t+=" caissuer: "+r.caissuer+"\n"),void 0!==r.ocsp&&(t+=" ocsp: "+r.ocsp+"\n")}return t};if(e="Basic Fields\n",e+=" serial number: "+this.getSerialNumberHex()+"\n",e+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",e+=" issuer: "+this.getIssuerString()+"\n",e+=" notBefore: "+this.getNotBefore()+"\n",e+=" notAfter: "+this.getNotAfter()+"\n",e+=" subject: "+this.getSubjectString()+"\n",e+=" subject public key info: \n",e+=" key algorithm: "+(t=this.getPublicKey()).type+"\n","RSA"===t.type&&(e+=" n="+D(t.n.toString(16)).substr(0,16)+"...\n",e+=" e="+D(t.e.toString(16))+"\n"),null!=(i=this.aExtInfo)){e+="X509v3 Extensions:\n";for(var l=0;l<i.length;l++){var u=i[l],c=s.asn1.x509.OID.oid2name(u.oid);""===c&&(c=u.oid);var h="";if(!0===u.critical&&(h="CRITICAL"),e+=" "+c+" "+h+":\n","basicConstraints"===c){var d=this.getExtBasicConstraints();void 0===d.cA?e+=" {}\n":(e+=" cA=true",void 0!==d.pathLen&&(e+=", pathLen="+d.pathLen),e+="\n")}else if("keyUsage"===c)e+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"===c)e+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"===c){var p=this.getExtAuthorityKeyIdentifier();void 0!==p.kid&&(e+=" kid="+p.kid.hex+"\n")}else{if("extKeyUsage"===c)e+=" "+this.getExtExtKeyUsage().array.join(", ")+"\n";else if("subjectAltName"===c)e+=" "+(n=this.getExtSubjectAltName(),JSON.stringify(n.array).replace(/[\[\]\{\}\"]/g,""))+"\n";else if("cRLDistributionPoints"===c)e+=o(this.getExtCRLDistributionPoints());else if("authorityInfoAccess"===c)e+=a(this.getExtAuthorityInfoAccess());else"certificatePolicies"===c&&(e+=r(this.getExtCertificatePolicies()))}}}return e+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n",e+="signature: "+this.getSignatureValueHex().substr(0,16)+"...\n"},"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?this.readCertPEM(e):s.lang.String.isHex(e)&&this.readCertHex(e))}function X(e){return l.SHA256(e).toString()}j.getLblen=function(e,t){if("8"!=e.substr(t+2,1))return 1;var i=parseInt(e.substr(t+3,1));return 0==i?-1:0<i&&i<10?i+1:-2},j.getL=function(e,t){var i=j.getLblen(e,t);return i<1?"":e.substr(t+2,2*i)},j.getVblen=function(e,t){var i;return""==(i=j.getL(e,t))?-1:("8"===i.substr(0,1)?new u(i.substr(2),16):new u(i,16)).intValue()},j.getVidx=function(e,t){var i=j.getLblen(e,t);return i<0?i:t+2*(i+1)},j.getV=function(e,t){var i=j.getVidx(e,t),n=j.getVblen(e,t);return e.substr(i,2*n)},j.getTLV=function(e,t){return e.substr(t,2)+j.getL(e,t)+j.getV(e,t)},j.getTLVblen=function(e,t){return 2+2*j.getLblen(e,t)+2*j.getVblen(e,t)},j.getNextSiblingIdx=function(e,t){return j.getVidx(e,t)+2*j.getVblen(e,t)},j.getChildIdx=function(e,t){var i,n,r,o=j,a=[];i=o.getVidx(e,t),n=2*o.getVblen(e,t),"03"==e.substr(t,2)&&(i+=2,n-=2),r=0;for(var s=i;r<=n;){var l=o.getTLVblen(e,s);if((r+=l)<=n&&a.push(s),s+=l,r>=n)break}return a},j.getNthChildIdx=function(e,t,i){return j.getChildIdx(e,t)[i]},j.getIdxbyList=function(e,t,i,n){var r,o,a=j;return 0==i.length?void 0!==n&&e.substr(t,2)!==n?-1:t:(r=i.shift())>=(o=a.getChildIdx(e,t)).length?-1:a.getIdxbyList(e,o[r],i,n)},j.getIdxbyListEx=function(e,t,i,n){var r,o,a=j;if(0==i.length)return void 0!==n&&e.substr(t,2)!==n?-1:t;r=i.shift(),o=a.getChildIdx(e,t);for(var s=0,l=0;l<o.length;l++){var u=e.substr(o[l],2);if("number"==typeof r&&!a.isContextTag(u)&&s==r||"string"==typeof r&&a.isContextTag(u,r))return a.getIdxbyListEx(e,o[l],i,n);a.isContextTag(u)||s++}return-1},j.getTLVbyList=function(e,t,i,n){var r=j,o=r.getIdxbyList(e,t,i,n);return-1==o||o>=e.length?null:r.getTLV(e,o)},j.getTLVbyListEx=function(e,t,i,n){var r=j,o=r.getIdxbyListEx(e,t,i,n);return-1==o?null:r.getTLV(e,o)},j.getVbyList=function(e,t,i,n,r){var o,a,s=j;return-1==(o=s.getIdxbyList(e,t,i,n))||o>=e.length?null:(a=s.getV(e,o),!0===r&&(a=a.substr(2)),a)},j.getVbyListEx=function(e,t,i,n,r){var o,a,s=j;return-1==(o=s.getIdxbyListEx(e,t,i,n))?null:(a=s.getV(e,o),"03"==e.substr(o,2)&&!1!==r&&(a=a.substr(2)),a)},j.getInt=function(e,t,i){null==i&&(i=-1);try{var n=e.substr(t,2);if("02"!=n&&"03"!=n)return i;var r=j.getV(e,t);return"02"==n?parseInt(r,16):function(e){try{var t=e.substr(0,2);if("00"==t)return parseInt(e.substr(2),16);var i=parseInt(t,16),n=e.substr(2),r=parseInt(n,16).toString(2);return"0"==r&&(r="00000000"),r=r.slice(0,0-i),parseInt(r,2)}catch(e){return-1}}(r)}catch(e){return i}},j.getOID=function(e,t,i){null==i&&(i=null);try{return"06"!=e.substr(t,2)?i:function(e){if(!F(e))return null;try{var t=[],i=e.substr(0,2),n=parseInt(i,16);t[0]=new String(Math.floor(n/40)),t[1]=new String(n%40);for(var r=e.substr(2),o=[],a=0;a<r.length/2;a++)o.push(parseInt(r.substr(2*a,2),16));var s=[],l="";for(a=0;a<o.length;a++)128&o[a]?l+=L((127&o[a]).toString(2),7):(l+=L((127&o[a]).toString(2),7),s.push(new String(parseInt(l,2))),l="");var u=t.join(".");return s.length>0&&(u=u+"."+s.join(".")),u}catch(e){return null}}(j.getV(e,t))}catch(e){return i}},j.getOIDName=function(e,t,i){null==i&&(i=null);try{var n=j.getOID(e,t,i);if(n==i)return i;var r=s.asn1.x509.OID.oid2name(n);return""==r?n:r}catch(e){return i}},j.getString=function(e,t,i){null==i&&(i=null);try{return B(j.getV(e,t))}catch(e){return i}},j.hextooidstr=function(e){var t=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},i=[],n=e.substr(0,2),r=parseInt(n,16);i[0]=new String(Math.floor(r/40)),i[1]=new String(r%40);for(var o=e.substr(2),a=[],s=0;s<o.length/2;s++)a.push(parseInt(o.substr(2*s,2),16));var l=[],u="";for(s=0;s<a.length;s++)128&a[s]?u+=t((127&a[s]).toString(2),7):(u+=t((127&a[s]).toString(2),7),l.push(new String(parseInt(u,2))),u="");var c=i.join(".");return l.length>0&&(c=c+"."+l.join(".")),c},j.isContextTag=function(e,t){var i,n;e=e.toLowerCase();try{i=parseInt(e,16)}catch(e){return-1}if(void 0===t)return 128==(192&i);try{return null!=t.match(/^\[[0-9]+\]$/)&&(!((n=parseInt(t.substr(1,t.length-1),10))>31)&&(128==(192&i)&&(31&i)==n))}catch(e){return!1}},j.isASN1HEX=function(e){var t=j;if(e.length%2==1)return!1;var i=t.getVblen(e,0),n=e.substr(0,2),r=t.getL(e,0);return e.length-n.length-r.length==2*i},j.checkStrictDER=function(e,t,i,n,r){var o=j;if(void 0===i){if("string"!=typeof e)throw new Error("not hex string");if(e=e.toLowerCase(),!s.lang.String.isHex(e))throw new Error("not hex string");i=e.length,r=(n=e.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(e,t).length>2*r)throw new Error("L of TLV too long: idx="+t);var a=o.getVblen(e,t);if(a>n)throw new Error("value of L too long than hex: idx="+t);var l=o.getTLV(e,t),u=l.length-2-o.getL(e,t).length;if(u!==2*a)throw new Error("V string length and L's value not the same:"+u+"/"+2*a);if(0===t&&e.length!=l.length)throw new Error("total length and TLV length unmatch:"+e.length+"!="+l.length);var c=e.substr(t,2);if("02"===c){var h=o.getVidx(e,t);if("00"==e.substr(h,2)&&e.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(c,16)){for(var d=o.getVblen(e,t),p=0,f=o.getChildIdx(e,t),A=0;A<f.length;A++){p+=o.getTLV(e,f[A]).length,o.checkStrictDER(e,f[A],i,n,r)}if(2*d!=p)throw new Error("sum of children's TLV length and L unmatch: "+2*d+"!="+p)}},j.oidname=function(e){var t=s.asn1;s.lang.String.isHex(e)&&(e=t.ASN1Util.oidHexToInt(e));var i=t.x509.OID.oid2name(e);return""===i&&(i=e),i},void 0!==s.asn1&&s.asn1||(s.asn1={}),void 0!==s.asn1.x509&&s.asn1.x509||(s.asn1.x509={}),s.asn1.x509.AlgorithmIdentifier={},s.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},s.asn1.x509.OID=new function(e){this.atype2oidList={CN:"2.5.4.3",L:"2.5.4.7",ST:"2.5.4.8",O:"2.5.4.10",OU:"2.5.4.11",C:"2.5.4.6",STREET:"2.5.4.9",DC:"0.9.2342.19200300.100.1.25",UID:"0.9.2342.19200300.100.1.1",SN:"2.5.4.4",T:"2.5.4.12",DN:"2.5.4.49",E:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",serialNumber:"2.5.4.5",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3"},this.name2oidList={sha1:"1.3.14.3.2.26",sha256:"2.16.840.1.101.3.4.2.1",sha384:"2.16.840.1.101.3.4.2.2",sha512:"2.16.840.1.101.3.4.2.3",sha224:"2.16.840.1.101.3.4.2.4",md5:"1.2.840.113549.2.5",md2:"1.3.14.7.2.2.1",ripemd160:"1.3.36.3.2.1",MD2withRSA:"1.2.840.113549.1.1.2",MD4withRSA:"1.2.840.113549.1.1.3",MD5withRSA:"1.2.840.113549.1.1.4",SHA1withRSA:"1.2.840.113549.1.1.5","pkcs1-MGF":"1.2.840.113549.1.1.8",rsaPSS:"1.2.840.113549.1.1.10",SHA224withRSA:"1.2.840.113549.1.1.14",SHA256withRSA:"1.2.840.113549.1.1.11",SHA384withRSA:"1.2.840.113549.1.1.12",SHA512withRSA:"1.2.840.113549.1.1.13",SHA1withECDSA:"1.2.840.10045.4.1",SHA224withECDSA:"1.2.840.10045.4.3.1",SHA256withECDSA:"1.2.840.10045.4.3.2",SHA384withECDSA:"1.2.840.10045.4.3.3",SHA512withECDSA:"1.2.840.10045.4.3.4",dsa:"1.2.840.10040.4.1",SHA1withDSA:"1.2.840.10040.4.3",SHA224withDSA:"2.16.840.1.101.3.4.3.1",SHA256withDSA:"2.16.840.1.101.3.4.3.2",rsaEncryption:"1.2.840.113549.1.1.1",commonName:"2.5.4.3",countryName:"2.5.4.6",localityName:"2.5.4.7",stateOrProvinceName:"2.5.4.8",streetAddress:"2.5.4.9",organizationName:"2.5.4.10",organizationalUnitName:"2.5.4.11",domainComponent:"0.9.2342.19200300.100.1.25",userId:"0.9.2342.19200300.100.1.1",surname:"2.5.4.4",givenName:"2.5.4.42",title:"2.5.4.12",distinguishedName:"2.5.4.49",emailAddress:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3",subjectDirectoryAttributes:"2.5.29.9",subjectKeyIdentifier:"2.5.29.14",keyUsage:"2.5.29.15",subjectAltName:"2.5.29.17",issuerAltName:"2.5.29.18",basicConstraints:"2.5.29.19",cRLNumber:"2.5.29.20",cRLReason:"2.5.29.21",nameConstraints:"2.5.29.30",cRLDistributionPoints:"2.5.29.31",certificatePolicies:"2.5.29.32",anyPolicy:"2.5.29.32.0",authorityKeyIdentifier:"2.5.29.35",policyConstraints:"2.5.29.36",extKeyUsage:"2.5.29.37",authorityInfoAccess:"1.3.6.1.5.5.7.1.1",ocsp:"1.3.6.1.5.5.7.48.1",ocspBasic:"1.3.6.1.5.5.7.48.1.1",ocspNonce:"1.3.6.1.5.5.7.48.1.2",ocspNoCheck:"1.3.6.1.5.5.7.48.1.5",caIssuers:"1.3.6.1.5.5.7.48.2",anyExtendedKeyUsage:"2.5.29.37.0",serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",emailProtection:"1.3.6.1.5.5.7.3.4",timeStamping:"1.3.6.1.5.5.7.3.8",ocspSigning:"1.3.6.1.5.5.7.3.9",dateOfBirth:"1.3.6.1.5.5.7.9.1",placeOfBirth:"1.3.6.1.5.5.7.9.2",gender:"1.3.6.1.5.5.7.9.3",countryOfCitizenship:"1.3.6.1.5.5.7.9.4",countryOfResidence:"1.3.6.1.5.5.7.9.5",ecPublicKey:"1.2.840.10045.2.1","P-256":"1.2.840.10045.3.1.7",secp256r1:"1.2.840.10045.3.1.7",secp256k1:"1.3.132.0.10",secp384r1:"1.3.132.0.34",pkcs5PBES2:"1.2.840.113549.1.5.13",pkcs5PBKDF2:"1.2.840.113549.1.5.12","des-EDE3-CBC":"1.2.840.113549.3.7",data:"1.2.840.113549.1.7.1","signed-data":"1.2.840.113549.1.7.2","enveloped-data":"1.2.840.113549.1.7.3","digested-data":"1.2.840.113549.1.7.5","encrypted-data":"1.2.840.113549.1.7.6","authenticated-data":"1.2.840.113549.1.9.16.1.2",tstinfo:"1.2.840.113549.1.9.16.1.4",signingCertificate:"1.2.840.113549.1.9.16.2.12",timeStampToken:"1.2.840.113549.1.9.16.2.14",signaturePolicyIdentifier:"1.2.840.113549.1.9.16.2.15",etsArchiveTimeStamp:"1.2.840.113549.1.9.16.2.27",signingCertificateV2:"1.2.840.113549.1.9.16.2.47",etsArchiveTimeStampV2:"1.2.840.113549.1.9.16.2.48",extensionRequest:"1.2.840.113549.1.9.14",contentType:"1.2.840.113549.1.9.3",messageDigest:"1.2.840.113549.1.9.4",signingTime:"1.2.840.113549.1.9.5",counterSignature:"1.2.840.113549.1.9.6",archiveTimeStampV3:"0.4.0.1733.2.4",pdfRevocationInfoArchival:"1.2.840.113583.1.1.8",adobeTimeStamp:"1.2.840.113583.1.1.9.1"},this.objCache={},this.name2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];if(void 0===this.name2oidList[e])throw"Name of ObjectIdentifier not defined: "+e;var t=this.name2oidList[e],i=new s.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=i,i},this.atype2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];var t;if(e.match(/^\d+\.\d+\.[0-9.]+$/))t=e;else if(void 0!==this.atype2oidList[e])t=this.atype2oidList[e];else{if(void 0===this.name2oidList[e])throw"AttributeType name undefined: "+e;t=this.name2oidList[e]}var i=new s.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=i,i}},s.asn1.x509.OID.oid2name=function(e){var t=s.asn1.x509.OID.name2oidList;for(var i in t)if(t[i]==e)return i;return""},s.asn1.x509.OID.oid2atype=function(e){var t=s.asn1.x509.OID.atype2oidList;for(var i in t)if(t[i]==e)return i;return e},s.asn1.x509.OID.name2oid=function(e){if(e.match(/^[0-9.]+$/))return e;var t=s.asn1.x509.OID.name2oidList;return void 0===t[e]?"":t[e]},C.getPosArrayOfChildrenFromHex=function(e){return j.getChildIdx(e,0)},C.getHexValueArrayOfChildrenFromHex=function(e){var t,i=j.getV,n=i(e,(t=C.getPosArrayOfChildrenFromHex(e))[0]),r=i(e,t[1]),o=i(e,t[2]),a=i(e,t[3]),s=i(e,t[4]),l=i(e,t[5]),u=i(e,t[6]),c=i(e,t[7]),h=i(e,t[8]);return(t=new Array).push(n,r,o,a,s,l,u,c,h),t},C.prototype.readPrivateKeyFromPEMString=function(e){var t=k(e),i=C.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8])},C.prototype.readPKCS5PrvKeyHex=function(e){var t=C.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},C.prototype.readPKCS8PrvKeyHex=function(e){var t,i,n,r,o,a,s,l,u=j,c=u.getVbyListEx;if(!1===u.isASN1HEX(e))throw new Error("not ASN.1 hex string");try{t=c(e,0,[2,0,1],"02"),i=c(e,0,[2,0,2],"02"),n=c(e,0,[2,0,3],"02"),r=c(e,0,[2,0,4],"02"),o=c(e,0,[2,0,5],"02"),a=c(e,0,[2,0,6],"02"),s=c(e,0,[2,0,7],"02"),l=c(e,0,[2,0,8],"02")}catch(e){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(t,i,n,r,o,a,s,l)},C.prototype.readPKCS5PubKeyHex=function(e){var t=j,i=t.getV;if(!1===t.isASN1HEX(e))throw new Error("keyHex is not ASN.1 hex string");var n=t.getChildIdx(e,0);if(2!==n.length||"02"!==e.substr(n[0],2)||"02"!==e.substr(n[1],2))throw new Error("wrong hex for PKCS#5 public key");var r=i(e,n[0]),o=i(e,n[1]);this.setPublic(r,o)},C.prototype.readPKCS8PubKeyHex=function(e){var t=j;if(!1===t.isASN1HEX(e))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==t.getTLVbyListEx(e,0,[0,0]))throw new Error("not PKCS8 RSA public key");var i=t.getTLVbyListEx(e,0,[1,0]);this.readPKCS5PubKeyHex(i)},C.prototype.readCertPubKeyHex=function(e,t){var i,n;(i=new W).readCertHex(e),n=i.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)},C.prototype.verify=function(e,t){if(null==(t=t.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var i=w(t,16),n=this.n.bitLength();if(i.bitLength()>n)return!1;var r=this.doPublic(i).toString(16);if(r.length+3!=n/4)return!1;var o=G(r.replace(/^1f+00/,""));if(0==o.length)return!1;var a,l=o[0];return o[1]==(a=e,s.crypto.Util.hashString(a,l))},C.prototype.verifyWithMessageHash=function(e,t){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var i=w(t,16);if(i.bitLength()>this.n.bitLength())return 0;var n=G(this.doPublic(i).toString(16).replace(/^1f+00/,""));return 0!=n.length&&(n[0],n[1]==e)},C.prototype.verifyPSS=function(e,t,i,n){var r=function(e){return s.crypto.Util.hashHex(e,i)}(T(e));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(r,t,i,n)},C.prototype.verifyWithMessageHashPSS=function(e,t,i,n){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var r,o=new u(t,16),a=function(e){return s.crypto.Util.hashHex(e,i)},l=B(e),c=l.length,h=this.n.bitLength()-1,d=Math.ceil(h/8);if(-1===n||void 0===n)n=c;else if(-2===n)n=d-c-2;else if(n<-2)throw new Error("invalid salt length");if(d<c+n+2)throw new Error("data too long");var p=this.doPublic(o).toByteArray();for(r=0;r<p.length;r+=1)p[r]&=255;for(;p.length<d;)p.unshift(0);if(188!==p[d-1])throw new Error("encoded message does not end in 0xbc");var f=(p=String.fromCharCode.apply(String,p)).substr(0,d-c-1),A=p.substr(f.length,c),v=65280>>8*d-h&255;if(0!=(f.charCodeAt(0)&v))throw new Error("bits beyond keysize not zero");var m=pss_mgf1_str(A,f.length,a),g=[];for(r=0;r<f.length;r+=1)g[r]=f.charCodeAt(r)^m.charCodeAt(r);g[0]&=~v;var y=d-c-n-2;for(r=0;r<y;r+=1)if(0!==g[r])throw new Error("leftmost octets not zero");if(1!==g[y])throw new Error("0x01 marker not found");return A===B(a(T("\0\0\0\0\0\0\0\0"+l+String.fromCharCode.apply(String,g.slice(-n)))))},C.SALT_LEN_HLEN=-1,C.SALT_LEN_MAX=-2,C.SALT_LEN_RECOVER=-2,W.hex2dn=function(e,t){void 0===t&&(t=0);var i=new W;return j.getTLV(e,t),i.getX500Name(e).str},W.hex2rdn=function(e,t){if(void 0===t&&(t=0),"31"!==e.substr(t,2))throw new Error("malformed RDN");for(var i=new Array,n=j.getChildIdx(e,t),r=0;r<n.length;r++)i.push(W.hex2attrTypeValue(e,n[r]));return(i=i.map((function(e){return e.replace("+","\\+")}))).join("+")},W.hex2attrTypeValue=function(e,t){var i=j,n=i.getV;if(void 0===t&&(t=0),"30"!==e.substr(t,2))throw new Error("malformed attribute type and value");var r=i.getChildIdx(e,t);2!==r.length||e.substr(r[0],2);var o=n(e,r[0]),a=s.asn1.ASN1Util.oidHexToInt(o);return s.asn1.x509.OID.oid2atype(a)+"="+B(n(e,r[1]))},W.getPublicKeyFromCertHex=function(e){var t=new W;return t.readCertHex(e),t.getPublicKey()},W.getPublicKeyFromCertPEM=function(e){var t=new W;return t.readCertPEM(e),t.getPublicKey()},W.getPublicKeyInfoPropOfCertPEM=function(e){var t,i,n=j.getVbyList,r={};return r.algparam=null,(t=new W).readCertPEM(e),i=t.getPublicKeyHex(),r.keyhex=n(i,0,[1],"03").substr(2),r.algoid=n(i,0,[0,0],"06"),"2a8648ce3d0201"===r.algoid&&(r.algparam=n(i,0,[0,1],"06")),r},W.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var Y,Z=[(Y=new W,Y.readCertPEM(function(){var e=113,t=126,i=0,n="";return arguments[i].split(n).map((function(n){return n.charCodeAt(i)>t?n:String.fromCharCode((n.charCodeAt(i)+e)%t)})).join(n)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVS@\tPPNErtNVONtVWNZR}@]nU\0ZaZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\\QN>Z\tN\\Q^B[QqnS=\b\\QN>Zwp\\Q^B[QqnZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaPPNvVQ^fWX|gVup[N^ROO^NQttV]NQPPNt|PttVONZU|C\b\\@@e^Xv{[vTtd8`nyO@ebN[bqx=ng?\tS^w@|XAz|qUTwfzn]Bu<qs_ae\\y<}u`eRAoE`_\\s\0r|b{rp_o<oC@o=x\bw_cUUZPApQevD\\FxFoFgE=<sq[p<coqyn>TEpP@aSC_YDU8\0|8TB?c>r\\=rp`pcwP}c\0PP_\\RS\\EPVSy8x`\0?R|NP\tP>}A^VP}Ex\bUZa=syDw}>Ya8wPp[pRnn\brU^dE8U?a\bcW|<FEbbupn^`ZNr\tsof[wA}e{\\z}w[YDQ|dt=wC\tNvbRZ@@U|ZAYpFsabCBB\\`wrqxsYW8uFyWdaWezeUeA_8VoVupvY[TD[OYdpO\bC[wX\\O]=[QRpV\0d`N\0RXt^Z}vEpdC=\bY?=V}?^W\bad|qN@Ww>@PycaqANE]asPcE^OB_VA?>wzeftac\tZ\tguf\bF]DCP?znNYf\tuaYu[`=b|v]Bp=RAS``\\PRDW]_`UXdUg=SuqwVFDeB\tD8{B>\\sPYbEU\tFQXz\0@`zsqgfD\0[WY\bPeZc}\t\0bx?Rfed}BUe|Uo\0y?\bsSXZOSBCgbFqf\0Bs?b?d<VE\\Zzns\\d@?dPvf\\{}_\0Sd[<q_YBY`Ffg=sY>{t<fu]xrFNtZONNTwbQO\\ZO=TN>bqQt^dOOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNZOt[cU_ZROaNQN^U<ZN=TP`\0T`Vo@Q^ROPbNNAVPN^P\0{y\0Bs\\8\0R[z]w??qZP?NpgdenSuvv?>|f_?UpYPcQ\\gCb8zxtSvsOQNg>[\\\0\bx\b_o@8\0g`Z<PyUE`8yu}\\g{@`s`zUgErRtve{YdCvoO@>WFDtABNp\0feUWszpQaEYNAc]^xB[@]BDAN8\b}XA=EnO}Pud8TA\t?yPrVv{\\>E]o`BO^RE^X[W[rEU?x\bf>V\tOUwY=>X[\\E`tW[8}VwpFBQcnrPF}yUtd8<Doe_\b[oOVUep@pYY\0cegY{r\t?\bAbq?ff8}UaXoN_D]_X_8yozYFT`N{`\\{zvu?\bDWT}=_<StX\tNx\0\b\t\0aT=c@ucnWfR[vf>RFxAFV}{N`dN^\\<eawBPxx}quT=|{T_R@Fp^Y<ZevRsWaZ]V\tCVrRVtAAc[\tQp|d|tqoQ=T|XX\t=u\\N8XNCx\\aU>wz\tX<e@Vc?dy\\|^FEq|=p`pBdF@bs^d<]vp\\^TZ\tP\bZ\b\\YNNSZ_\\w^|TsD8db\t_\tY\\o^Cw>Z\0x\\^aN]wWf\bA}\tC^d_{ZC@\by]gY@E\tBFY?OsaqbDcVgQbZeFc\tovtucxnq|<TnuyXRveYFOegCpAs{YTe|>bE<OXsSqCBWD_SVepfvCCUg]z\tZvQ[\0s|U>pFz\b=OwT``fNJJ:::::R[Q-PR_aVSVPNaR:::::")),Y)];function J(e,t){var i=e.getIssuerHex();if(i===e.getSubjectHex())return e.verifySignature(e.getPublicKey());var n=function(e,t){for(var i=0,n=t;i<n.length;i++){var r=n[i];if(r.getSubjectHex()===e)return r}}(i,t);return!!n&&(!1!==e.verifySignature(n.getPublicKey())&&J(n,t))}function $(e){return e.getIssuerHex()!==e.getSubjectHex()&&J(e,Z)}!function(e){var t=new W;"string"==typeof e?t.readCertPEM(e):t.readCertHex(e.hex);var i=$(t);Z.push(t)}(function(){var e=113,t=126,i=0,n="";return arguments[i].split(n).map((function(n){return n.charCodeAt(i)>t?n:String.fromCharCode((n.charCodeAt(i)+e)%t)})).join(n)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVTU\tPPONrtNVONtVWNW=_SVw\tVE=ZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\bZQNAZaN\\aZ\t[QSnS=\b[aNBZQZ\\aZ\t[QSnZVTaZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tRbZOVTN>bRPtYoTyuoz}}f`Bwo?=RQN\\Ot[cONZO>Wyfd\tgdbRaN]Ot[cONZZPRuupz_@feWyZ`bVfWX|gVup[N^xOSugnec|fdyndB{^T}fdB\0ndRf?FZVVPVwN[Otx\0uxvTF=ON^RSNN\\PNtENZVVPPtXPNtRN?=?]q[VD|{\\oyo`oOu}F\tSAe`tn[t\tu\b8^a]qx\bE_^ZN?[QC\0yuOpybY8r\\RPAS=8rUq\0E8>xean^e\bf]Y`XO}{C[Ur^?\0x[SRXvVQ\\CFr}QnAPRQFO=Yw\0_TePCOFV@|N>ROXcDrT<>bW<ssO?NOT{^s]uU\0gS\bBffsfE\0AfDyQEZR`]XBo|Qw}yYdwwTvOFcBndUz^\\{]\tb=^yQYSTQ`]\0?tR{WRUun\\\0bVe_E|VWWV|r\tAo\0\tF`fdzCnRtq\br\t\b8eBp=Z\\TRaadc}@Eub`quuNqAdF\0aUay{}x>tgVz`\t_YBFwu_q?egt8v[o\x008\twTQcrA\t<z{DZoEE^rZTrpaZQzqpBY]^zt8[bQv}yEWw\tXDYQB\0QB\bx_^X]|uEDtPf[n[r_bpB[bE}?ung|bnU|NYOoedY_tvXySZfYPdWV]OE^\bOFwA}<uXoO}_NDz8aonzWOfcv@?>snfqu@FeEx^\\\bVfuO`\\\0tSg]zDU}QrAT|\tOZV|OvpVD<sN@z`<_cSrNCW>?=Au?g_8v{|}}WF>Sr>QBxO\td_D}eBb?Uq^b\t[y}x]}{?P|BQtecTB[pQBW>|p|nfv\0zUxOO}WqwE=<PURZy@X8r\\]u=<pPNRNNn\\OtaO<ZOETPdPT`NTT8RVOQ^^`SuO`gdSp?cyVRg\bo?B=VR[OZO=TN>bqQt^dOO`FyWadZcAD\tpeXybcW@}Qf\\QNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aN]Ot[cU_ZONsEROaNQN^U<ZNTN>bqQ^RNVOOwN[Otx\0uxvTF=ON^SNN\\PNtRNrx\ta[}tP_g8FbD\0^\0qt<f88ufuN]^}]gp\bqYudF88Fas_Ef`\t?^x>X}esa{>\\r?eE]CC_cZ[vQs\t\t>gX[szONg=^pn=<e]nbSz\bZvac\b[w^nA_`vP|@8w[}nQobe=??oRYf{vpRxcC}yCd>8[NDx{Ne\\t8oou=guC>>gvb}ACd\t``Ntq\0yC[Q{|ynpNQqSqzxF<_PFDw<]Bnnu>F<XgU_Zf\\\\A=gu\\codOwQ]oQ<f>gv_pwozwC}xX>C`c]suEdfW?cbeo\b`BbyR@eFTUwSud=t]sS\\onc\tXSq\t{\0DvAVBbnTqEE[QzDyqF`bF}R=Q?VeDo<Vzb\0w}D}NZ\0t}^?OyFP\bVaVNrTNYqe?[NRYTSQby@yzWvT`wQo}y]c_WgxBYCy\tRNRg@NZCaaq8?`\t^`?ryD\t=obzw?E]Ou]n@>bVzqAQT?@_zo@}CxWVTUsAYdNd?{APQr8{P]]AZ>aR\0[D<z?Tr@`u@X|YDwd_<p<>zWE>]\0=X`\b@uucp|^_Qb@uZouTX^o\0\\{PCq{ug8^f[YQAWad8FNqxFQE?ZOo\t}RnO\bsQc\txyccn=nxvs>bDBf\b\bW\\TuTnvAO^U\0QXC>xx8FxRFf<tJ:::::R[Q-PR_aVSVPNaR:::::"));var ee=function(e,t){return ee=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},ee(e,t)};function te(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}ee(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var ie=function(){return ie=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},ie.apply(this,arguments)};function ne(e,t,i){if(i||2===arguments.length)for(var n,r=0,o=t.length;r<o;r++)!n&&r in t||(n||(n=Array.prototype.slice.call(t,0,r)),n[r]=t[r]);return e.concat(n||Array.prototype.slice.call(t))}var re,oe=(re="$$FIVE_EVENT$$","undefined"==typeof Symbol?"$Symbol<".concat(re,">$"):Symbol(re));function ae(e){return e[oe]||(e[oe]={}),e[oe]}var se=function(){function e(){}return e.prototype.hasListener=function(e){var t=ae(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,i){var n=this,r=ae(this);return r[e]||(r[e]=[]),r[e].push([t,i||!1]),function(){return n.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var i,n=ae(this);if(n[e]||(n[e]=[]),void 0!==t){for(var r=0;r<n[e].length&&n[e][r][0]!==t;r++);r<n[e].length&&n[e].splice(r,1)}else n[e].length=0}else(i=this)[oe]||delete i[oe]},e.prototype.emit=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];for(var n=!1,r=ae(this),o=r[e]||[],a=0,s=o.slice();a<s.length;a++){var l=s[a],u=l[0],c=l[1],h=void 0!==c&&c,d=u.apply(void 0,t);h&&this.off(e,u),!1===d&&(n=!0)}return n},e}();function le(){}var ue="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),ce="undefined"!=typeof performance?function(){return ue+performance.now()}:function(){return Date.now()};function he(e){Object.freeze(e);var t="function"==typeof e,i=Object.prototype.hasOwnProperty;return Object.getOwnPropertyNames(e).forEach((function(n){!i.call(e,n)||t&&("caller"===n||"callee"===n||"arguments"===n)||null===e[n]||"object"!=typeof e[n]&&"function"!=typeof e[n]||Object.isFrozen(e[n])||he(e[n])})),e}var de=/^([^.]+)(\.([^.]+))*$/;function pe(e){return/^(([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.(?!$)|$)){4}$/.test(e)}function fe(e,t){return de.test(e)&&de.test(t)&&function(e,t){if("*"===e)return!0;var i=e.split(".").reverse(),n=t.split(".").reverse();if(i.length<=1)return e===t;for(var r=0;r<i.length;r++)if(i[r]!==n[r])return!1;return!0}(e,t)}var Ae=[/\.([0-9a-z]+)\.jsonp([\?\#].*)?$/i,/jsonp_([0-9a-z]+)([\?\#].*)?$/i],ve=he(JSON.parse(function(){var e=113,t=126,i=0,n="";return arguments[i].split(n).map((function(n){return n.charCodeAt(i)>t?n:String.fromCharCode((n.charCodeAt(i)+e)%t)})).join(n)}("h/y|pnyu|/9/xr;p|z/9/yvn{wvn;p|z/9/rnyrr;p|z/9/rnyrr;p{/9/rnyrr;w}/9/uv;p|z/9/uv;p{/9/ywpq{;p|z/9/rnyrr:pq{;p|z/9/rnyrr:pq{;p{/9/pnyp{|qr;vr/j"))),me=function(e){function t(t,i,n){return e.call(this,"[NETWORK]: request proxy error(type: ".concat(i,", reason: ").concat(n,"): ").concat(t))||this}return te(t,e),t}(Error),ge=function(e){function t(t,i,n){var r=e.call(this,"[NETWORK]: response error(type: ".concat(i,", status: ").concat(n,"): ").concat(t))||this;return r.httpStatus=n,r}return te(t,e),t}(Error);!function(e){function t(t,i){return e.call(this,"[NETWORK]: request abort(type: ".concat(i,"): ").concat(t))||this}te(t,e)}(Error);var ye=function(e){function t(t,i,n){return e.call(this,"[NETWORK]: request timeout(type: ".concat(i,", timeout: ").concat(n,"ms): ").concat(t))||this}return te(t,e),t}(Error),be=function(e){function t(t,i,n){return e.call(this,"[NETWORK]: request forbidden(type: ".concat(i,", reason: ").concat(n,"): ").concat(t))||this}return te(t,e),t}(Error);function xe(e){for(var t=0,i=Ae;t<i.length;t++){var n=i[t],r=e.match(n);if(r)return"jsonp_"+r[1]}return null}function we(e){return null!==xe(e)}function Me(e){var t=e.match(/^([0-9a-z]+\:)\/\/(([^:/?#]*)(?::[0-9]+)?)/);return t?t[1]:location.protocol}function Ce(e){if(/^blob\:/i.test(e))return"blob:";if(/^data\:/i.test(e))return"data:";var t=e.match(/^[0-9a-z]+\:\/\/(([^:/?#]*)(?::[0-9]+)?)/i);return t?t[2]:location.hostname}var Ee=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return te(t,e),t}(se);function Ie(e,t,i,n,r){void 0===t&&(t={}),void 0===i&&(i=le),void 0===n&&(n=le),void 0===r&&(r=le);var o=ce(),a=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(i){var n,r=xe(e)?"Script":"XMLHttpRequest",o=new me(a,r,i&&i.message?String(i.message):String(i));return null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,r,"proxy-error",o.message),Promise.reject(o)})).then((function(e){return new Promise((function(s,l){var u,c=t.allowHosts?ve.concat(t.allowHosts):ve.slice(),h=Ce(e),d=xe(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===ve.filter((function(e){return fe(e,location.hostname)})).length&&!pe(h)&&0===c.filter((function(e){return fe(e,h)})).length){var p=d?"Script":"XMLHttpRequest",f=new be(e,p,"request host(".concat(h,") is not allowed"));return n(f),l(f),void(null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,p,"forbidden",f.message))}if(d){var A=window,v=null,m=!1,g=document.createElement("script");A[d]=function(r){var u,c,h=ce(),p=h-o;if(delete A[d],g.parentNode&&g.parentNode.removeChild(g),null!==v&&(window.clearTimeout(v),v=null),!0!==m){if(0!==r.indexOf("data:")){var f=new ge(e,"Script",500);return n(f),l(f),void(null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,"Script","error",f.message))}var y=r.split(","),b=(y[0].match(/:(.*?);/)||[])[1],x=y[1];if("arraybuffer"===t.responseType||"blob"===t.responseType){for(var w=atob(y[1]),M=w.length,C=new Uint8Array(M),E=0;E<M;E++)C[E]=w.charCodeAt(E);x="arraybuffer"===t.responseType?C.buffer:new Blob([C],{type:b})}var I={body:x,meta:{origin:a,source:e,requestTime:o,responseTime:h,costs:p,headers:{}}};i(I),s(I),null===(c=t.networkSubscribe)||void 0===c||c.emit("network",e,"Script","ok",JSON.stringify(I.meta)),m=!0}},g.src=e,document.body.appendChild(g),"number"==typeof t.timeout&&(v=window.setTimeout((function(){var i;if(v=null,!0!==m){m=!0;var r=new ye(e,"Script",t.timeout||NaN);n(r),l(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Script","timeout",r.message)}}),t.timeout))}else{var y=!1,b=new XMLHttpRequest,x=function(){b&&(b.removeEventListener("timeout",w,!1),b.removeEventListener("progress",M,!1),b.removeEventListener("load",C,!1),b.removeEventListener("error",E,!1)),b=null,x=le},w=function(){var i;if(!0!==y){y=!0,x();var r=new ye(e,"XMLHttpRequest",t.timeout||NaN);n(r),l(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"XMLHttpRequest","timeout",r.message)}},M=function(e){!0!==y&&e.lengthComputable&&(e.total<=0||r(e.loaded/e.total))},C=function(n){var r;if(!0!==y){var l=this.status;if(0===l||l>=200&&l<400){y=!0,x();var u=ce(),c=u-o,h=function(e){if(!e)return{};for(var t={},i=e.trim().split("\n"),n=0;n<i.length;n++){var r=i[n],o=r.indexOf(":"),a=r.slice(0,o).trim().toLowerCase(),s=r.slice(o+1).trim();s&&(t[a]?t[a]+=", "+s:t[a]=s)}return t}(this.getAllResponseHeaders()),d=n.total,p={body:this.response,meta:{origin:a,source:e,requestTime:o,responseTime:u,costs:c,headers:h,size:d}};i(p),s(p),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"XMLHttpRequest","ok",JSON.stringify(p.meta))}else E.call(this)}},E=function(){var i;if(!0!==y){y=!0,x();var r=new ge(e,"XMLHttpRequest",this.status);n(r),l(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"XMLHttpRequest","error",r.message)}};b.addEventListener("timeout",w,!1),b.addEventListener("progress",M,!1),b.addEventListener("load",C,!1),b.addEventListener("error",E,!1),t.responseType&&(b.responseType=t.responseType),"number"==typeof t.timeout&&(b.timeout=t.timeout),b.open("GET",e,!0),b.send(null)}}))}))}var Se={};function Be(e,t){void 0===t&&(t={});var i=ce(),n=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(i){var r,o=new me(n,"Link",i&&i.message?String(i.message):String(i));return null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"Link","proxy-error",o.message),Promise.reject(o)})).then((function(e){return e in Se?Se[e]:Se[e]=new Promise((function(r,o){var a,s=t.allowHosts?ve.concat(t.allowHosts):ve.slice(),l=Ce(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===ve.filter((function(e){return fe(e,location.hostname)})).length&&!pe(l)&&0===s.filter((function(e){return fe(e,l)})).length){var u=new be(e,"Link","request host(".concat(l,") is not allowed"));return o(u),void(null===(a=t.networkSubscribe)||void 0===a||a.emit("network",e,"Link","forbidden",u.message))}var c=document.createElement("link");c.href=e,c.rel=c.relList&&c.relList.supports("prefetch")?"prefetch":"preload",c.as="fetch",c.crossOrigin="";var h=document.head||document.getElementsByTagName("head")[0];h&&h.appendChild(c);var d=!1;c.onload=function(){var o;if(!0!==d){d=!0,r();var a=ce(),s={origin:n,source:e,requestTime:i,responseTime:a,costs:a-i,headers:{}};null===(o=t.networkSubscribe)||void 0===o||o.emit("network",e,"Link","preload",JSON.stringify(s))}},c.onerror=function(i){var n;if(!0!==d){d=!0;var r=new ge(e,"Link",0);o(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Link","error",r.message)}}}))}))}function Te(e,t,i,n,r,o){void 0===t&&(t={}),void 0===i&&(i=le),void 0===n&&(n=le),void 0===r&&(r=le);var a=ce(),s=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(i){var n,r=new me(s,"Image",i&&i.message?String(i.message):String(i));return null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Image","proxy-error",r.message),Promise.reject(r)})).then((function(e){return new Promise((function(l,u){var c,h=t.allowHosts?ve.concat(t.allowHosts):ve.slice(),d=Ce(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===ve.filter((function(e){return fe(e,location.hostname)})).length&&!pe(d)&&0===h.filter((function(e){return fe(e,d)})).length){var p=new be(e,"Image","request host(".concat(d,") is not allowed"));return n(p),u(p),void(null===(c=t.networkSubscribe)||void 0===c||c.emit("network",e,"Image","forbidden",p.message))}var f=null!=o?o:new Image,A=!1,v=null;"number"==typeof t.timeout&&(v=window.setTimeout((function(){var i;if(f.onload=le,f.onerror=le,v=null,!0!==A){A=!0;var r=new ye(e,"Image",t.timeout);n(r),u(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Image","timeout",r.message)}}),t.timeout)),f.onload=function(){var n;if(f.onload=le,f.onerror=le,null!==v&&(clearTimeout(v),v=null),!0!==A){var o=ce();A=!0;var u={body:f,meta:{headers:{},origin:s,source:e,requestTime:a,responseTime:o,costs:o-a}};r(1),i(u),l(u),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Image","ok",JSON.stringify(u.meta))}},f.onerror=function(){var i;if(f.onload=le,f.onerror=le,null!==v&&(clearTimeout(v),v=null),!0!==A){A=!0;var r=new ge(e,"Image",0);n(r),u(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Image","ok",r.message)}},r(0),f.src=e}))}))}var Pe=function(){if("undefined"!=typeof window){var e=window;return e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||e.msRequestAnimationFrame||function(e){return setTimeout(e,16)}}return function(e){return setTimeout(e,16)}}(),Re=16,ke=function(){function e(){this.frames=[],this.stoped=!1,this.time=ce(),this.context=null,this.loop=this.loop.bind(this),this.loop()}return Object.defineProperty(e,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new e),this.sharedInstance},enumerable:!1,configurable:!0}),e.getFrameTime=function(){return Re},e.prototype.loop=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!this.stoped){var i=ce(),n=i-this.time;this.time=i;var r=[];Re=n;for(var o=0,a=this.frames;o<a.length;o++){var s=a[o];if(s.delay>0)s.delay=s.delay-1;else{try{s.callback.apply(s,ne([i,n],e,!1))}catch(e){console.error(e)}s.once&&r.push(s)}}r.length>0&&(this.frames=this.frames.filter((function(e){return-1===r.indexOf(e)}))),this.requestAnimationFrame(this.loop)}},e.prototype.setContext=function(e){this.cancelAnimationFrame(this.requestId),this.context=e,this.requestId=this.requestAnimationFrame(this.loop)},e.prototype.getContext=function(){return this.context},e.prototype.requestAnimationFrame=function(e){return this.context?this.context.requestAnimationFrame(e):Pe(e)},e.prototype.cancelAnimationFrame=function(e){this.context?this.context.cancelAnimationFrame(e):function(e){var t;if("undefined"!=typeof window){var i=window;t=i.cancelAnimationFrame||i.mozCancelAnimationFrame||i.webkitCancelAnimationFrame||i.msCancelAnimationFrame||function(e){return window.clearTimeout(e)}}else t=function(e){return window.clearTimeout(e)};t(e)}(this.loop),this.requestId=null},e.prototype.remove=function(e){var t=this.frames.indexOf(e);t>=0&&this.frames.splice(t,1)},e.prototype.add=function(e,t,i,n){var r=this;void 0===t&&(t=!1),void 0===i&&(i=0),void 0===n&&(n=5);var o={callback:e,once:t,delay:i,order:n};return this.frames.push(o),this.frames.sort((function(e,t){return e.order-t.order})),function(){return r.remove(o)}},e.prototype.disponse=function(){this.stoped=!0,this.frames.length=0},e}(),Qe=/^https?\:\/\/?([^\/]+)/;function Fe(e,t){return e.replace(Qe,(function(e,i){return e.slice(0,e.length-i.length)+t}))}var De={"vrlab-public.ljcdn.com":{pano:["vrlab-image1.ljcdn.com","vrlab-image2.ljcdn.com"],texture:["vrlab-image3.ljcdn.com"],tile:["vr-tile-1.realsee-cdn.cn","vr-tile-2.realsee-cdn.cn"],default:["vrlab-image4.ljcdn.com"]},"vr-public.realsee-cdn.cn":{pano:["vr-image-1.realsee-cdn.cn","vr-image-2.realsee-cdn.cn"],texture:["vr-image-3.realsee-cdn.cn"],tile:["vr-tile-1.realsee-cdn.cn","vr-tile-1.realsee-cdn.cn"],default:["vr-image-4.realsee-cdn.cn"]},"global-public.realsee-cdn.com":{pano:["global-image-1.realsee-cdn.com","global-image-2.realsee-cdn.com"],texture:["global-image-3.realsee-cdn.com"],tile:["global-tile-1.realsee-cdn.com","global-tile-2.realsee-cdn.com"],default:["global-image-4.realsee-cdn.com"]},"test-vr-public.realsee-cdn.com":{pano:["test-vr-image.realsee-cdn.com","test-vr-image.realsee-cdn.com"],texture:["test-vr-image.realsee-cdn.com"],tile:["test-vr-image.realsee-cdn.com","test-vr-image.realsee-cdn.com"],default:["test-vr-image.realsee-cdn.com"]},"test-vr-public.realsee-cdn.cn":{pano:["test-vr-image.realsee-cdn.cn","test-vr-image.realsee-cdn.cn"],texture:["test-vr-image.realsee-cdn.cn"],tile:["test-vr-image.realsee-cdn.cn","test-vr-image.realsee-cdn.cn"],default:["test-vr-image.realsee-cdn.cn"]}};function Le(e,t){var i=ie(ie({},De),t.mappings),n=function(e){var t=e.match(Qe);return null===t?null:t[1]}(e);if(null===n)return e;var r=i[n];return r?(/\.basis(\?|$)/.test(e)&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),function(e,t){var i,n=e.split("?")[0],r=n.split(".").pop();if("jpeg"===r&&(r="jpg"),"png"!==r&&"jpg"!==r)return e;var o="";if(void 0!==t.format&&t.format!==r&&(o+="/format/".concat(t.format)),void 0!==t.cut&&(o+="/cut/".concat(t.cut[2],"x").concat(t.cut[3],"x").concat(t.cut[0],"x").concat(t.cut[1])),void 0!==t.quality){var a=null!==(i=t.format)&&void 0!==i?i:r;a&&["jpg","webp","tpg","heif","avif"].indexOf(a)>=0&&(o+="/quality/".concat(t.quality))}if(void 0!==t.size){var s=e.match(/\/cube_(\d+)\//);(s?Number(s[1]):NaN)!==Number(t.size)&&(o+="/thumbnail/".concat(t.size,"x"))}return void 0!==t.sharpen&&(o+="/sharpen/".concat(t.sharpen)),o.length&&(o="?imageMogr2"+o),n+o}(function(e,t,i){var n=t.split("."),r=n[0],o=n.slice(1);if("texture"===r)return Fe(e,i.texture[0]);if("pano"===r||"pano_luminance"===r)switch(o[0],o[1]){case"front":case"left":case"up":return Fe(e,i.pano[0]);case"down":case"right":case"back":return Fe(e,i.pano[1])}else if("pano_tile"===r||"pano_tile_luminance"===r){o[0],o[1];var a=o[2],s=o[3],l=o[4],u=Math.pow(2,Number(a))*Number(s)+Number(l);if(!isNaN(u))return Fe(e,i.tile[u%2])}return Fe(e,i.default[0])}(e,t.key,r),t)):e}function Oe(e,t,i){return void 0===t&&(t=Le),t(e,i)}function Ne(e){return new Promise((function(t){var i=new Image,n=setTimeout((function(){i.onload=i.onerror=function(){},clearTimeout(n),t(!1)}));i.onload=i.onerror=function(){i.onload=i.onerror=function(){},clearTimeout(n),t(2===i.height)},i.src=e}))}var Ve=null;var Ue=function(){function e(){this.numPlanes=0,this.clipperPlanes=null,this.clipperFloors=null}return Object.defineProperty(e,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new e),this.sharedInstance},enumerable:!1,configurable:!0}),e.prototype.update=function(e,t){if(this.clipperFloors=[],e instanceof Array){this.clipperPlanes=new Float32Array(24*e.length);for(var i=function(i){var o=[new n.Plane(new n.Vector3(.5,0,0),-1),new n.Plane(new n.Vector3(-.5,0,0),-1),new n.Plane(new n.Vector3(0,.5,0),-1),new n.Plane(new n.Vector3(0,-.5,0),-1),new n.Plane(new n.Vector3(0,0,.5),-1),new n.Plane(new n.Vector3(0,0,-.5),-1)];o.forEach((function(t){t.applyMatrix4(e[i].clippingBoxMatrix)}));for(var a=r.projectPlanes(o,t),s=0;s<24;s++)r.clipperPlanes[24*i+s]=a[s];var l=e[i].hasOwnProperty("floorIndex")?e[i].floorIndex:-1;r.clipperFloors[i]=l},r=this,o=0;o<e.length;o++)i(o)}else{var a=[new n.Plane(new n.Vector3(.5,0,0),-1),new n.Plane(new n.Vector3(-.5,0,0),-1),new n.Plane(new n.Vector3(0,.5,0),-1),new n.Plane(new n.Vector3(0,-.5,0),-1),new n.Plane(new n.Vector3(0,0,.5),-1),new n.Plane(new n.Vector3(0,0,-.5),-1)];a.forEach((function(t){t.applyMatrix4(e.clippingBoxMatrix)})),this.clipperPlanes=this.projectPlanes(a,t),this.clipperFloors[0]=e.hasOwnProperty("floorIndex")?e.floorIndex:-1}},e.prototype.projectPlanes=function(e,t){var i=null!==e?e.length:0,r=4*i,o=t.matrixWorldInverse,a=new n.Matrix3;a.getNormalMatrix(o);for(var s=new Float32Array(r),l=new n.Plane,u=0,c=0;u!==i;++u,c+=4)l.copy(e[u]).applyMatrix4(o,a),l.normal.toArray(s,c),s[c+3]=l.constant;return s},e}(),ze=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return te(t,e),t}(n.Mesh),qe=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.needsRender=!0,t.enableTransparent=!1,t}return te(t,e),t.prototype.getTransparent=function(){return this.enableTransparent},t.prototype.setTransparent=function(e){this.enableTransparent!==e&&(this.enableTransparent=e,this.traverse((function(t){t instanceof ze&&t.material.forEach((function(t){t.transparent=e}))})))},t.prototype.getMaterial=function(){var e=null;return this.traverse((function(t){if(null===e&&t instanceof ze){var i=t.material[0];e={pano0:i.pano0,pano1:i.pano1,modelAlpha:i.modelAlpha,progress:i.progress,useBlackTransition:i.useBlackTransition,modelColorInfo:i.modelColorInfo,opacity:i.opacity,floorIndex:i.floorIndex,floorInfo:i.floorInfo,clippers:i.clippers,clipperPlanesArray:i.clipperPlanesArray,clipperFloors:i.clipperFloors,globalFloorInfo:i.globalFloorInfo}}})),e},t.prototype.setMaterial=function(e){this.traverse((function(t){t instanceof ze&&t.material.forEach((function(t){void 0!==e.pano0&&(t.pano0=e.pano0),void 0!==e.pano1&&(t.pano1=e.pano1),void 0!==e.modelAlpha&&(t.modelAlpha=e.modelAlpha),void 0!==e.progress&&(t.progress=e.progress),void 0!==e.useBlackTransition&&(t.useBlackTransition=e.useBlackTransition),void 0!==e.modelColorInfo&&(t.modelColorInfo=e.modelColorInfo),void 0!==e.opacity&&(t.opacity=e.opacity),void 0!==e.floorIndex&&(t.floorIndex=e.floorIndex),void 0!==e.floorInfo&&(t.floorInfo=e.floorInfo),void 0!==e.clippers&&(t.clippers=e.clippers),void 0!==e.clipperPlanesArray&&(t.clipperPlanesArray=e.clipperPlanesArray),void 0!==e.clipperFloors&&(t.clipperFloors=e.clipperFloors),void 0!==e.globalFloorInfo&&(t.globalFloorInfo=e.globalFloorInfo)}))}))},t.prototype.disposeMaterial=function(){this.traverse((function(e){if(e instanceof ze){var t=[];e.material.forEach((function(e){var i=e.uniforms;Object.keys(i).map((function(e){if(/^pano\d\_/.test(e))i[e].value=null;else{var n=i[e].value;n&&"function"==typeof n.dispose&&-1===t.indexOf(n)&&(i[e].value=null,t.push(n))}})),e.dispose()})),t.forEach((function(e){return e.dispose()}))}}))},t.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof ze&&e.geometry.dispose()}))},t}(n.Group),He=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t}return te(t,e),t}(qe),_e=["right","left","up","down","front","back"];function Ke(e,t,i,r){var o=new n.Box3;switch(e){case"up":o.min.y=.5,o.max.y=.5,o.min.x=+t-.5,o.max.x=+t-.5+r,o.min.z=.5-i-r,o.max.z=.5-i;break;case"down":o.min.y=-.5,o.max.y=-.5,o.min.x=+t-.5,o.max.x=+t-.5+r,o.min.z=+i-.5,o.max.z=+i-.5+r;break;case"left":o.min.x=-.5,o.max.x=-.5,o.min.z=.5-t-r,o.max.z=.5-t,o.min.y=.5-i-r,o.max.y=.5-i;break;case"right":o.min.x=.5,o.max.x=.5,o.min.z=+t-.5,o.max.z=+t-.5+r,o.min.y=.5-i-r,o.max.y=.5-i;break;case"front":o.min.z=-.5,o.max.z=-.5,o.min.x=+t-.5,o.max.x=+t-.5+r,o.min.y=.5-i-r,o.max.y=.5-i;break;case"back":o.min.z=.5,o.max.z=.5,o.min.x=.5-t-r,o.max.x=.5-t,o.min.y=.5-i-r,o.max.y=.5-i}return o.applyMatrix4((new n.Matrix4).makeRotationY(Math.PI))}var je=function(e,t){if(!(e.level>=t))for(var i=e.level+1,r=e.size/2,o=0,a=[new n.Vector2(e.position.x,e.position.y),new n.Vector2(e.position.x+r,e.position.y),new n.Vector2(e.position.x,e.position.y+r),new n.Vector2(e.position.x+r,e.position.y+r)];o<a.length;o++){var s=a[o],l={face:e.face,level:i,size:r,position:s,box:Ke(e.face,s.x,s.y,r),children:[]};e.children.push(l),je(l,t)}};function Ge(e){var t=_e.map((function(t){return function(e,t){var i={level:0,face:e,position:new n.Vector2(0,0),size:1,box:Ke(e,0,0,1),children:[]};return je(i,t),i}(t,e)}));return{children:t}}function We(e,t){for(var i=0,n=e.children;i<n.length;i++){var r=n[i];!1!==t(r)&&We(r,t)}}var Xe=new n.BoxBufferGeometry(1,1,1,1,1);Xe.deleteAttribute("uv"),Xe.deleteAttribute("normal"),Xe.groups=[],Xe.scale(-1,1,1);var Ye=new n.ShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\nvarying vec3 worldPosition;\nvoid main() {\n vec4 transform = vec4(position, 1.0);\n worldPosition = (modelMatrix * transform).xyz;\n gl_Position = projectionMatrix * modelViewMatrix * transform;\n}\n",fragmentShader:"\nuniform samplerCube map;\nvarying vec3 worldPosition;\nvoid main() {\n gl_FragColor = textureCube(map, worldPosition);\n}\n",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:n.NoBlending,lights:!1,toneMapped:!1,fog:!1}),Ze=new n.Scene;Ze.matrixAutoUpdate=!1;var Je,$e=new n.Mesh(Xe,Ye);function et(e,t,i){Ye.uniforms.map.value=e;var r=i.autoClear;i.autoClear=!1;var o=new n.CubeCamera(.1,2,t);o.matrixAutoUpdate=!1,o.update(i,Ze),i.autoClear=r,Ye.uniforms.map.value=null}$e.matrixAutoUpdate=!1,Ze.add($e);var tt=null!==(Je=Math.SQRT1_2)&&void 0!==Je?Je:Math.sqrt(2),it={up:new n.Quaternion(tt,0,0,tt),down:new n.Quaternion(-tt,0,0,tt),left:new n.Quaternion(0,tt,0,tt),right:new n.Quaternion(0,-tt,0,tt),front:new n.Quaternion(0,0,0,1),back:new n.Quaternion(0,1,0,0)},nt=function(){var e=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),t=new Float32Array([0,0,1,0,0,1,1,1]),i=new Uint8Array([0,1,2,1,3,2]),r=new n.BufferGeometry;return r.setAttribute("position",new n.BufferAttribute(e,3)),r.setAttribute("uv",new n.BufferAttribute(t,2)),r.setIndex(new n.BufferAttribute(i,1)),r}(),rt=[];function ot(e){e.uniforms.map.value=null,rt.push(e)}var at=[];function st(){var e=this.src;this.onerror=this.onload=le,this.removeAttribute("src"),/^blob\:/.test(e)&&URL.revokeObjectURL(e),this.close=le}var lt=[],ut=0;function ct(){var e=document.createElementNS("http://www.w3.org/1999/xhtml","img");return Object.assign(e,{crossOrigin:"",close:st})}function ht(){return new Promise((function(e){ut>0?(ut--,e(ct())):lt.push((function(){e(ct())}))}))}function dt(){at.push(this)}function pt(e){return new Promise((function(t,i){var n=ct();n.onload=function(){n.onload=n.onerror=le,setTimeout((function(){t(n)}),0)},n.onerror=function(){var e=n.src;n.onload=n.onerror=le,n.close(),i(new Error("image load error: ".concat(e)))},n.src=URL.createObjectURL(e)}))}function ft(e,t){if(t&&(e.width>t.width||e.height>t.height)){var i=function(e,t){var i=at.shift();if(i)return i.width=e,i.height=t,i;var n=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return Object.assign(n,{close:dt})}(Math.min(e.width,t.width),Math.min(e.height,t.height)),r=i.getContext("2d");r.clearRect(0,0,i.width,i.height),r.drawImage(e,0,0,i.width,i.height),e.close();var o=new n.Texture(i);o.needsUpdate=!0,o.flipY=!0;var a=o.dispose;return o.dispose=function(){i.close(),a.call(o),o.dispose=a},o}var s=new n.Texture(e);s.needsUpdate=!0,s.flipY=!0;var l=s.dispose;return s.dispose=function(){e.close(),l.call(s),s.dispose=l},s}ke.shared.add((function(){if(ut=10,lt.length)for(var e=0,t=lt.splice(0,ut);e<t.length;e++){var i=t[e];ut--,i()}}));var At=new n.WebGLRenderTarget(1,1),vt=new n.OrthographicCamera(-1,1,1,-1,0,1);vt.matrixAutoUpdate=!1;var mt=new n.BufferGeometry;mt.setAttribute("position",new n.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3));var gt=new n.Mesh(mt);gt.matrixAutoUpdate=!1;var yt=new n.Scene;yt.add(gt),yt.matrixAutoUpdate=!1;var bt=new n.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform sampler2D map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0));\n }\n ",depthTest:!1,depthWrite:!1,stencilWrite:!1,colorWrite:!1,blending:n.NoBlending,lights:!1,toneMapped:!1}),xt=new n.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform samplerCube map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0, 0));\n }\n ",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:n.NoBlending,lights:!1,toneMapped:!1});function wt(e,t){if(!t)return Promise.resolve(e);var i=t.getRenderTarget();return t.setRenderTarget(At),e instanceof n.CubeTexture?(gt.material=xt,xt.uniforms.map.value=e,t.render(yt,vt),xt.uniforms.map.value=null):(gt.material=bt,bt.uniforms.map.value=e,t.render(yt,vt),xt.uniforms.map.value=null),t.setRenderTarget(i),new Promise((function(t){ke.shared.add((function(){return t(e)}),!0)}))}var Mt=["right","left","up","down","front","back"],Ct=function(){function e(e,t,i,n,r){this.tileTree=t,this.tileSources=i,this.options=n,this.renderer=r,this.name="",this.needsRender=!1,this.disposed=!1,this.loadedCubeNodes=new Set,this.loadingCubeNodes=new Set,this.baseCubeTexture=null,this._cubeRenderTarget=null,this.textures=[],this.baseCubeTexture=e}return Object.defineProperty(e.prototype,"cubeRenderTarget",{get:function(){return this._cubeRenderTarget},set:function(e){var t,i,r,o,a;if(null===e)throw new Error("cannot set cubeRenderTarget to null.");e.width!==this.options.textureSize&&e.setSize(this.options.textureSize,this.options.textureSize),e.texture.format=null!==(t=this.options.format)&&void 0!==t?t:n.RGBAFormat,e.texture.minFilter=null!==(i=this.options.minFilter)&&void 0!==i?i:n.LinearFilter,e.texture.magFilter=null!==(r=this.options.magFilter)&&void 0!==r?r:n.LinearFilter,e.texture.wrapS=null!==(o=this.options.wrapS)&&void 0!==o?o:n.ClampToEdgeWrapping,e.texture.wrapT=null!==(a=this.options.wrapT)&&void 0!==a?a:n.ClampToEdgeWrapping,this.baseCubeTexture&&(et(this.baseCubeTexture,e,this.renderer),this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this._cubeRenderTarget&&et(this._cubeRenderTarget.texture,e,this.renderer),this._cubeRenderTarget=e},enumerable:!1,configurable:!0}),e.prototype.requestTile=function(e){var t,i,r,o,a,s,l=this,u=this.tileSources.filter((function(t){return t.level===e.level}))[0];if(u){var c=u.size,h=Math.pow(2,e.level)*e.position.y,d=Math.pow(2,e.level)*e.position.x,p="".concat((null!==(r=null===(i=null===(t=this.options.imageURL)||void 0===t?void 0:t.options)||void 0===i?void 0:i.key)&&void 0!==r?r:"pano.0").replace(/^pano/,"pano_tile"),".").concat(e.face,".").concat(e.level,".").concat(h,".").concat(d),f=ie(ie({},null!==(a=null===(o=this.options.imageURL)||void 0===o?void 0:o.options)&&void 0!==a?a:{basisLoaderInitialized:!1,key:"unknown"}),{key:p,size:c*e.size===this.options.tileImageSize?void 0:this.options.tileImageSize,quality:void 0,cut:[c*e.position.x,c*e.position.y,c*e.size,c*e.size]});this.loadingCubeNodes.add(e),this.options.textureLoader.loadTexture(u[e.face],{imageURL:{transform:null===(s=this.options.imageURL)||void 0===s?void 0:s.transform,options:ie({},f)},format:n.RGBAFormat,viaAjax:!1}).then((function(t){l.disposed?t.body.dispose():(l.textures.push({face:e.face,level:e.level,position:e.position,size:new n.Vector2(e.size,e.size),texture:t.body}),l.loadedCubeNodes.add(e))})).catch(le).then((function(){l.disposed||l.loadingCubeNodes.delete(e)}))}else this.loadedCubeNodes.add(e)},e.prototype.update=function(e,t){var i=this;if(!this.disposed){var r=[];We(this.tileTree,(function(n){return!i.loadingCubeNodes.has(n)&&(!(n.level>t)&&(!!e.intersectsBox(n.box)&&(i.loadedCubeNodes.has(n)?void 0:(r.push(n),!1))))}));for(var o=0,a=r;o<a.length;o++){var s=a[o];this.requestTile(s)}if(this.cubeRenderTarget&&this.textures.length){var l=this.textures.splice(0,4);!function(e,t,i){var r=new n.Scene,o=new n.Group;o.scale.set(1,1,-1),r.add(o);for(var a=[],s=0,l=e;s<l.length;s++){var u=l[s],c=rt.pop()||new n.ShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform sampler2D map;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n}\n",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:n.NoBlending,lights:!1,toneMapped:!1,fog:!1});a.push(c),c.uniforms.map.value=u.texture;var h=new n.Group,d=new n.Mesh(nt,c);d.position.set(u.position.x+u.size.x/2-.5,1-(u.position.y+u.size.y/2)-.5,-.5),d.scale.set(u.size.x,u.size.y,1),h.quaternion.copy(it[u.face]),h.add(d),o.add(h)}var p=i.autoClear;i.autoClear=!1;var f=new n.CubeCamera(.1,2,t);f.matrixAutoUpdate=!1,f.update(i,r),i.autoClear=p;for(var A=0,v=a;A<v.length;A++)ot(c=v[A])}(l,this.cubeRenderTarget,this.renderer),this.needsRender=!0;for(var u=0,c=l;u<c.length;u++){c[u].texture.dispose()}}}},Object.defineProperty(e.prototype,"tilePending",{get:function(){return this.loadingCubeNodes.size},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"texture",{get:function(){if(!this._cubeRenderTarget)throw new Error("cubeRenderTarget never set.");return this._cubeRenderTarget.texture},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){if(!this.disposed){this.disposed=!0,this.baseCubeTexture&&(this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this.loadingCubeNodes.clear(),this.loadedCubeNodes.clear();for(var e=0,t=this.textures;e<t.length;e++){t[e].texture.dispose()}this.textures.length=0}},e}(),Et=function(){function e(e){this.timeout=e.timeout,this.allowHosts=e.allowHosts,this.requestProxy=e.requestProxy,this.networkSubscribe=e.networkSubscribe}return e.prototype.setAllowHosts=function(e){this.allowHosts=e},e.prototype.setRequestProxy=function(e){this.requestProxy=e},e.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e},e.prototype.loadTexture=function(e,t,i,n,r,o){var a,s,l,u;void 0===t&&(t={}),void 0===i&&(i=le),void 0===n&&(n=le),void 0===r&&(r=le);var c={};void 0!==t.flipY&&(c.flipY=t.flipY),void 0!==t.format&&(c.format=t.format),void 0!==t.minFilter&&(c.minFilter=t.minFilter),void 0!==t.magFilter&&(c.magFilter=t.magFilter);var h=null!==(s=null===(a=t.imageURL)||void 0===a?void 0:a.options)&&void 0!==s?s:{basisLoaderInitialized:!1,key:"unknown"},d=Me(e=Oe(e,null===(l=t.imageURL)||void 0===l?void 0:l.transform,h)),p={timeout:this.timeout,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe},f=null!==(u=t.viaAjax)&&void 0!==u&&u,A=we(e),v=/^https?:/.test(d);if(A?f=!0:v||(f=!1),f){return Ie(e,ie(ie({},p),{responseType:"blob"}),void 0,void 0,r).then((function(e){return pt(e.body)})).then((function(e){return ft(e,t.maxSize)})).then((function(e){return Object.assign(e,c),e})).then((function(e){return wt(e)})).then((function(e){var t={meta:null,body:e};return i(t),t})).catch((function(e){return n(e),Promise.reject(e)}))}var m,g=null;return Promise.resolve().then((function(){return ht()})).then((function(t){return m=t,Te(e,p,void 0,void 0,r,t)})).then((function(e){return g=e.meta,ft(e.body,t.maxSize)})).then((function(e){return Object.assign(e,c),e})).then((function(e){return wt(e)})).then((function(e){var t={meta:g,body:e};return i(t),t})).catch((function(e){return m&&m.close(),n(e),Promise.reject(e)}))},e.prototype.loadCubeTexture=function(e,t,i,r,o,a){var s,l,u,c;void 0===t&&(t={}),void 0===i&&(i=le),void 0===r&&(r=le),void 0===o&&(o=le),void 0!==t.format&&t.format,void 0!==t.minFilter&&t.minFilter,void 0!==t.magFilter&&t.magFilter;for(var h=[e[Mt[0]],e[Mt[1]],e[Mt[2]],e[Mt[3]],e[Mt[4]],e[Mt[5]]],d={timeout:this.timeout,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe},p=[],f=[0,0,0,0,0,0],A=[],v=function(e){var i=null!==(l=null===(s=t.imageURL)||void 0===s?void 0:s.options)&&void 0!==l?l:{basisLoaderInitialized:!1,key:"unknown"},n=Oe(h[e],null===(u=t.imageURL)||void 0===u?void 0:u.transform,ie(ie({},i),{key:i.key+"."+Mt[e]})),r=Me(n),a=function(t){f[e]=t,o(f.reduce((function(e,t){return e+t}),0)/6)},v=null!==(c=t.viaAjax)&&void 0!==c&&c,m=/^https?:$/.test(r);if(we(n)?v=!0:m||(v=!1),v){var g=Ie(n,ie(ie({},d),{responseType:"blob"}),void 0,void 0,a).then((function(t){return A[e]=t.meta,pt(t.body)}));p.push(g)}else{var y;g=Promise.resolve().then((function(){return ht()})).then((function(e){return y=e,Te(n,d,void 0,void 0,a,e)})).then((function(t){return A[e]=t.meta,t.body})).catch((function(e){return y&&y.close(),Promise.reject(e)}));p.push(g)}},m=0;m<6;m++)v(m);return Promise.all(p).then((function(e){return function(e){var t=new n.CubeTexture(e);t.needsUpdate=!0,t.flipY=!1;var i=t.dispose;return t.dispose=function(){for(var n=0,r=e;n<r.length;n++)r[n].close();i.call(t),t.dispose=i},t}(e)})).then((function(e){return Object.assign(e,ie({encoding:n.sRGBEncoding},t)),e})).then((function(e){return wt(e)})).then((function(e){var t={body:e,meta:A};return i(t),t})).catch((function(e){for(var t=0,i=p;t<i.length;t++){i[t].then((function(e){return e.close()})).catch(le)}return r(e),Promise.reject(e)}))},e.prototype.loadTiledCubeTexture=function(e,t,i,r,o,a,s){var l=this;return void 0===i&&(i={}),void 0===r&&(r=le),void 0===o&&(o=le),void 0===a&&(a=le),new Promise((function(u,c){var h,d;l.loadCubeTexture(e,{imageURL:{transform:null===(h=i.imageURL)||void 0===h?void 0:h.transform,options:null===(d=i.imageURL)||void 0===d?void 0:d.options},format:n.RGBAFormat,viaAjax:i.viaAjax},(function(e){var n,o,a=e.meta,c=e.body,h=null!==(n=i.tileImageSize)&&void 0!==n?n:512,d=null!==(o=i.tileMaxLevel)&&void 0!==o?o:2,p=Math.max(1024*d,512),f=Ge(d),A={meta:a,body:new Ct(c,f,t,{textureSize:p,tileImageSize:h,textureLoader:l,imageURL:i.imageURL},s)};r(A),u(A)}),(function(e){o(e),c(e)}),a,s).catch(le)}))},e}(),It=function(){var e=113,t=126,i=0,n="";return arguments[i].split(n).map((function(n){return n.charCodeAt(i)>t?n:String.fromCharCode((n.charCodeAt(i)+e)%t)})).join(n)}("n\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{Hn\bv{t-rpA-|yq]|vv|{H0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK0v{pyqr-Iunq|zn}l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:z]|vv|{;\b\tH--|yq]|vv|{-J-z|qryZnv-7-n{s|zrqH--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--0v{pyqr-Iunq|zn}lrrK\f"),St=function(){var e=113,t=126,i=0,n="";return arguments[i].split(n).map((function(n){return n.charCodeAt(i)>t?n:String.fromCharCode((n.charCodeAt(i)+e)%t)})).join(n)}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=60qrsv{r-aNb-C;?E@>EB?{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH{vs|z-sy|n-sy||V{qrH0vs-qrsv{rq5b`RlNYYlP\\Y\\_6{vs|z-rp@-z|qryP|y|V{s|H0r{qvs0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6--{vs|z-rp?-}n{|cvqr|lv\trH--{vs|z-znA-}n{|cvqr|lznvH--{vs|z-sy|n-}n{|cvqr|lny}unH--{vs|z-nz}yr?Q-}n{|cvqr|lzn}H0r{qvs0vs-qrsv{rq5b`RlPYV]SY\\\\_6--{vs|z-rp@-sy||V{s|H0r{qvsn\bv{t-rpA-|yq]|vv|{H0vs-qrsv{rq5b`RlPbaR_6--0vs-[bZlPYV]]V[TlN__NflYR[TaU-K-=----{vs|z-sy|n-pyv}}rSy||h[bZlPYV]]V[TlO\\ejH----{vs|z-nz}yr?Q-pyv}}r]yn{rarrH--0r{qvs0r{qvs0vs-[bZlSY\\\\_lP\\b[a-K-=--{vs|z-nz}yr?Q-ty|onySy||V{s|arrH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0v{pyqr-Iunq|zn}l}nlsntzr{Krp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--0vs-qrsv{rq5b`RlNYYlP\\Y\\_6----tylSntP|y|-J-rpA5z|qryP|y|V{s|;9z|qryP|y|V{s|;t9z|qryP|y|V{s|;o9>;=6H----r{H--0r{qvsvs-5q|5cvr]|vv|{9-[|zny6-I-=;=6-\n----qvpnqH--\f--<<前置裁切计算------0vs-qrsv{rq5b`RlPbaR_6----rpA-}yn{rH-------s|5-v{-v-J-=H-v-I-[bZlPYV]]V[TlO\\eH-v886\n------o||y-pyv}}rq-J-rH------v{-pr{Sy||V{qr-J-v{5pyv}}rSy||hvj6H------<<-s|-5-v{-w-J-=H-w-I-CH-w-88-6-\n------<<---}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-w6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------<<---pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------<<-\f--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8->6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-?6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-@6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-A6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------rp?-sy||bH------sy||b;-J-sy|n5pr{Sy||V{qr6-<-sy|n5[bZlSY\\\\_lP\\b[a6H------sy||b;\b-J-=;BH------rpA-lsy||V{s|H------lsy||V{s|-J-rr?Q5ty|onySy||V{s|arr9-sy||b6H------------o||y-v{antrSy||-J-|yq]|vv|{;\b-I-lsy||V{s|;-33-|yq]|vv|{;\b-K-lsy||V{s|;tH------pyv}}rq-J-5pr{Sy||V{qr-JJ-:>-\v\v-v{antrSy||6-33-pyv}}rqH------vs5pyv}}rq6-\n--------qvpnqH------\f----\f--0r{qvs--<<楼层切割计算--0vs-qrsv{rq5b`RlPYV]SY\\\\_6----vs-5|yq]|vv|{;\b-I-sy||V{s|;-\v\v-|yq]|vv|{;\b-K-sy||V{s|;t6-\n------qvpnqH----\f--0r{qvs--rpA-qvssrP|y|-J-rpA5qvssr;to9-|}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rp@-}n{|=a|crr-J-5|yq]|vv|{;\b\t-:-}n{|=lznvh@j;\b\t6-7-zn@5}n{|=lznv6H--rp@-}n{|>a|crr-J-5|yq]|vv|{;\b\t-:-}n{|>lznvh@j;\b\t6-7-zn@5}n{|>lznv6H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=lzn}9-}n{|=a|crr6H--rpA-}n{|>P|y|-J-rrPor5}n{|>lzn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-rrPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr6;H----}n{|>P|y|;n-J->;=-:-rrPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr6;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6----rp@-pnzrna|crr-J-|yq]|vv|{;\b\t-:-pnzrn]|vv|{H----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|lznvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|lzn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|lny}un6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\l\\]NPVaf6----tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H----tylSntP|y|;n-J-|}npv\bH--0ryr----tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H----tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--0r{qvs\f"),Bt=new n.WebGLCubeRenderTarget(1).texture;Bt.name="EMPTY_TEXTURE";var Tt=Object.assign({modelAlpha:new n.Uniform(0),progress:new n.Uniform(0),pano0_map:new n.Uniform(Bt),pano0_luminanceMap:new n.Uniform(null),pano0_matrix:new n.Uniform(new n.Matrix4),pano1_map:new n.Uniform(Bt),pano1_luminanceMap:new n.Uniform(null),pano1_matrix:new n.Uniform(new n.Matrix4),floorIndex:new n.Uniform(-1),floorInfo:new n.Uniform(null),clipperPlanesArray:new n.Uniform(new Float32Array),clipperPlanesTexture:new n.Uniform(null),clipperFloors:new n.Uniform([]),modelColorInfo:new n.Uniform(null),globalFloorInfo:new n.Uniform([]),globalFloorInfoTexture:new n.Uniform(null)},{exposure:new n.Uniform(1),emissive:new n.Uniform(new n.Color(0)),emissiveMap:new n.Uniform(null),specular:new n.Uniform(new n.Color(1118481)),specularMap:new n.Uniform(null),normalMap:new n.Uniform(null),bumpMap:new n.Uniform(null),shininess:new n.Uniform(30)},n.UniformsUtils.clone(n.UniformsLib.common),n.UniformsUtils.clone(n.UniformsLib.lights)),Pt=function(e){function t(t){void 0===t&&(t={});var i,r,o,a,s,l,u,c,h,d=this;d=e.call(this,{vertexShader:It,fragmentShader:St,uniforms:n.UniformsUtils.clone(Tt),defines:{USE_MAP:!0,USE_UV:!0,USE_LUMINANCE:!1,USE_PANO_OPACITY:!1,USE_BLACK_TRANSITION:!1,USE_PANO_VIDEO:!1,USE_ALL_COLOR:!1,USE_CLIPFLOOR:!1,USE_CUTER:!1,NUM_FLOOR_COUNT:0,NUM_CLIPPING_ARRAY_LENGTH:0,NUM_CLIPPING_BOX:0},blending:n.NoBlending,lights:!0})||this;var p=null,f=null;return Object.defineProperties(d,{pano0:{get:function(){return p},set:function(e){p=e,null===e?(this.uniforms.pano0_map.value=Bt,this.uniforms.pano0_luminanceMap.value=null,this.uniforms.pano0_matrix.value.identity()):(this.uniforms.pano0_map.value=e.map instanceof Ct?e.map.texture:e.map,this.uniforms.pano0_luminanceMap.value=e.luminanceMap instanceof Ct?e.luminanceMap.texture:e.luminanceMap,this.uniforms.pano0_matrix.value.copy(e.matrix));var t=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},pano1:{get:function(){return f},set:function(e){f=e,null===e?(this.uniforms.pano1_map.value=Bt,this.uniforms.pano1_luminanceMap.value=null,this.uniforms.pano1_matrix.value.identity()):(this.uniforms.pano1_map.value=e.map instanceof Ct?e.map.texture:e.map,this.uniforms.pano1_luminanceMap.value=e.luminanceMap instanceof Ct?e.luminanceMap.texture:e.luminanceMap,this.uniforms.pano1_matrix.value.copy(e.matrix));var t=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(e){this.uniforms.modelAlpha.value=e}},progress:{get:function(){return this.uniforms.progress.value},set:function(e){this.uniforms.progress.value=e}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(e){this.defines.USE_BLACK_TRANSITION!==e&&(this.defines.USE_BLACK_TRANSITION=e,this.needsUpdate=!0)}},modelColorInfo:{get:function(){return this.uniforms.modelColorInfo.value},set:function(e){this.uniforms.modelColorInfo.value=e;var t=null!==e;this.defines.USE_ALL_COLOR!==t&&(this.defines.USE_ALL_COLOR=t,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e;var t=e<1?n.NormalBlending:n.NoBlending;t!==this.blending&&(this.blending=t,this.needsUpdate=!0)}},floorIndex:{get:function(){return this.uniforms.floorIndex.value},set:function(e){this.uniforms.floorIndex.value=e}},floorInfo:{get:function(){return this.uniforms.floorInfo.value},set:function(e){var t,i=this.defines.USE_CLIPFLOOR;e&&!e.equals(new n.Vector3(0,0,0))?(t=!0,this.uniforms.floorInfo.value=e):(t=!1,this.uniforms.floorInfo.value=null),i!==t&&(this.defines.USE_CLIPFLOOR=t,this.needsUpdate=!0)}},clippers:{get:function(){return this._clippers},set:function(e){this._clippers=e}},clipperPlanesArray:{get:function(){return this.uniforms.clipperPlanesArray.value},set:function(e){var t=!1;if(e instanceof Float32Array&&e.length>0&&e.length%6==0){var i=e.length/4;!0!==this.defines.USE_CUTER&&(this.defines.USE_CUTER=!0,t=!0),this.defines.NUM_CLIPPING_ARRAY_LENGTH!==i&&(this.defines.NUM_CLIPPING_ARRAY_LENGTH=i,t=!0),this.defines.NUM_CLIPPING_BOX!==i/6&&(this.defines.NUM_CLIPPING_BOX=i/6,t=!0),this.uniforms.clipperPlanesArray.value=e;var r=new n.DataTexture(e,i,1,n.RGBAFormat,n.FloatType);r.wrapS=n.ClampToEdgeWrapping,r.wrapT=n.ClampToEdgeWrapping,r.minFilter=n.NearestFilter,r.magFilter=n.NearestFilter,this.uniforms.clipperPlanesTexture.value&&this.uniforms.clipperPlanesTexture.value.dispose(),this.uniforms.clipperPlanesTexture.value=r}else!1!==this.defines.USE_CUTER&&(this.defines.USE_CUTER=!1,t=!0),0!==this.defines.NUM_CLIPPING_ARRAY_LENGTH&&(this.defines.NUM_CLIPPING_ARRAY_LENGTH=0,t=!0),0!==this.defines.NUM_CLIPPING_BOX&&(this.defines.NUM_CLIPPING_BOX=0,t=!0),this.uniforms.clipperPlanesArray.value=new Float32Array,this.uniforms.clipperPlanesTexture.value=null;t&&(this.needsUpdate=!0)}},clipperFloors:{get:function(){return this.uniforms.clipperFloors.value},set:function(e){this.uniforms.clipperFloors.value=e}},globalFloorInfo:{get:function(){return this.uniforms.globalFloorInfo.value},set:function(e){var t=this.defines.NUM_FLOOR_COUNT;if(e&&t!==e.length){this.defines.NUM_FLOOR_COUNT=e.length,this.uniforms.globalFloorInfo.value=e;var i=[];e.forEach((function(e){i.push(e.x),i.push(e.y),i.push(e.z)}));var r=e.length,o=new n.DataTexture(new Float32Array(i),r,1,n.RGBFormat,n.FloatType);o.wrapS=n.ClampToEdgeWrapping,o.wrapT=n.ClampToEdgeWrapping,o.minFilter=n.NearestFilter,o.magFilter=n.NearestFilter,this.uniforms.globalFloorInfoTexture.value&&this.uniforms.globalFloorInfoTexture.value.dispose(),this.uniforms.globalFloorInfoTexture.value=o,this.needsUpdate=!0}}}}),d.pano0=null!==(i=t.pano0)&&void 0!==i?i:null,d.pano1=null!==(r=t.pano1)&&void 0!==r?r:null,d.modelAlpha=null!==(o=t.modelAlpha)&&void 0!==o?o:1,d.progress=null!==(a=t.progress)&&void 0!==a?a:0,d.useBlackTransition=null!==(s=t.useBlackTransition)&&void 0!==s&&s,d.modelColorInfo=null!==(l=t.modelColorInfo)&&void 0!==l?l:null,d.opacity=null!==(u=t.opacity)&&void 0!==u?u:1,d.originOpacity=1,d.floorIndex=null!==(c=t.floorIndex)&&void 0!==c?c:-1,d.floorInfo=null!==(h=t.floorInfo)&&void 0!==h?h:null,d.clippers=null,d.clipperPlanesArray=null,d.clipperFloors=null,d.globalFloorInfo=null,d}return te(t,e),t}(n.ShaderMaterial),Rt=function(e){function t(t){var i=t.preserveDrawingBuffer,r=void 0===i||i,o=t.backgroundColor,a=void 0===o?1579548:o,s=t.backgroundAlpha,l=void 0===s?1:s,u=t.pixelRatio,c=void 0===u?1:u,h=t.antialias,d=void 0!==h&&h,p=t.webgl2,f=this;if(void 0!==p&&p){var A=document.createElement("canvas"),v=A.getContext("webgl2");if(null===v)throw new Error("error occurred when getting webgl2 canvas context");f=e.call(this,{antialias:d,preserveDrawingBuffer:r,alpha:l<1,canvas:A,context:v})||this}else f=e.call(this,{antialias:d,preserveDrawingBuffer:r,alpha:l<1})||this;return f.setPixelRatio(c),f.setClearColor(a,l),f.outputEncoding=n.sRGBEncoding,f.autoClear=!0,f}return te(t,e),t}(n.WebGLRenderer),kt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return te(t,e),t.prototype.add=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return e.prototype.add.apply(this,t)},t.prototype.remove=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return e.prototype.remove.apply(this,t)},t}(n.Scene);function Qt(e,t){var i=Math.abs(Math.cos(e.latitude)),r=-Math.sin(e.longitude)*i,o=-Math.sin(e.latitude),a=-Math.cos(e.longitude)*i;return t?t.set(r,o,a):new n.Vector3(r,o,a)}var Ft=2*Math.PI,Dt=Math.PI/2;function Lt(e){return e>0&&e<=Ft?e:(e%Ft+Ft)%Ft}var Ot,Nt,Vt,Ut,zt=function(e){function t(t,i,r,o,a,s){void 0===i&&(i=1),void 0===r&&(r=.15),void 0===o&&(o=1e3),void 0===a&&(a=new n.Vector2),void 0===s&&(s=1);var l=e.call(this)||this;l.fov=t,l.aspect=i,l.near=r,l.far=o,l.perspToOrtho=a,l.orthoDistance=s,l.needsRender=!0,l.pose={longitude:0,latitude:0,fov:t,distance:0,offset:new n.Vector3},l.computePose(),l.perspectiveCamera=new n.PerspectiveCamera(l.fov,l.aspect,l.near,l.far);var u=Math.max(l.orthoDistance,.01)*Math.tan(.5*l.fov/180*Math.PI),c=-.5*l.aspect*2*u;return l.orthographicCamera=new n.OrthographicCamera(c,-c,u,-u,l.near,l.far),l.computeProjectionMatrix(),l.lastValues={position:l.position.clone(),quaternion:l.quaternion.clone(),scale:l.scale.clone(),fov:l.fov,aspect:l.aspect,near:l.near,far:l.far,perspToOrtho:l.perspToOrtho.clone(),orthoDistance:l.orthoDistance},l.type=l.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera",l}return te(t,e),t.prototype.getDirection=function(e){return Qt(this.pose,e)},t.prototype.computePose=function(){var e=this.getDirection(new n.Vector3);return this.pose.longitude=Lt(-Math.atan2(e.x,-e.z)),this.pose.latitude=-Math.asin(e.y/1),this.pose.fov=this.fov,this.pose.distance=0,this.pose.offset.copy(this.position),this},t.prototype.setFromPose=function(e){var t,i,n,r,o,a=Lt(null!==(t=e.longitude)&&void 0!==t?t:this.pose.longitude),s=Math.max(1e-4-Dt,Math.min(Dt-1e-4,null!==(i=e.latitude)&&void 0!==i?i:this.pose.latitude)),l=null!==(n=e.fov)&&void 0!==n?n:this.pose.fov,u=null!==(r=e.distance)&&void 0!==r?r:this.pose.distance,c=null!==(o=e.offset)&&void 0!==o?o:this.pose.offset,h=Qt({longitude:a,latitude:s}).normalize();return this.position.set(0,0,0),this.lookAt(h),this.position.add(c).sub(h.clone().setLength(u)),this.fov!==l&&(this.fov=l,this.updateProjectionMatrix()),this.updateMatrixWorld(),this.pose.longitude=a,this.pose.latitude=s,this.pose.fov=l,this.pose.distance=u,this.pose.offset.copy(c),this.needsRender=!0,this},t.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,distance:this.pose.distance,offset:this.pose.offset.clone()}},t.prototype.computeProjectionMatrix=function(){!function(e,t,i,n){i=Math.pow(i,2);for(var r=0;r<16;r++)n.elements[r]=e.elements[r]+(t.elements[r]-e.elements[r])*i}(this.orthographicCamera.projectionMatrix,this.perspectiveCamera.projectionMatrix,1-this.perspToOrtho.x,this.projectionMatrix),this.projectionMatrixInverse.getInverse(this.projectionMatrix),this.needsRender=!0},t.prototype.setViewOffset=function(e,t,i,n,r,o){this.perspectiveCamera.setViewOffset(e,t,i,n,r,o),this.orthographicCamera.setViewOffset(e,t,i,n,r,o),this.computeProjectionMatrix()},t.prototype.clearViewOffset=function(){this.perspectiveCamera.clearViewOffset(),this.orthographicCamera.clearViewOffset(),this.computeProjectionMatrix()},t.prototype.updateProjectionMatrix=function(){this.perspectiveCamera.updateProjectionMatrix(),this.orthographicCamera.updateProjectionMatrix(),this.computeProjectionMatrix()},Object.defineProperty(t.prototype,"perspectiveProjectionMatrix",{get:function(){return this.perspectiveCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"perspectiveProjectionMatrixInverse",{get:function(){return this.perspectiveCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"orthographicProjectionMatrix",{get:function(){return this.orthographicCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"orthographicProjectionMatrixInverse",{get:function(){return this.orthographicCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),t.prototype.updateTime=function(e,t){var i=!1;if(this.lastValues.fov===this.fov&&this.lastValues.near===this.near&&this.lastValues.far===this.far&&this.lastValues.aspect===this.aspect||(this.perspectiveCamera.fov=this.fov,this.perspectiveCamera.near=this.near,this.perspectiveCamera.far=this.far,this.perspectiveCamera.aspect=this.aspect,this.perspectiveCamera.updateProjectionMatrix(),i=!0),!this.lastValues.position.equals(this.position)||!this.lastValues.quaternion.equals(this.quaternion)||!this.lastValues.scale.equals(this.scale)||this.lastValues.orthoDistance!==this.orthoDistance||this.lastValues.fov!==this.fov||this.lastValues.near!==this.near||this.lastValues.far!==this.far||this.lastValues.aspect!==this.aspect){var n=Math.max(this.orthoDistance,.01)*Math.tan(.5*this.fov/180*Math.PI),r=-.5*this.aspect*2*n;this.orthographicCamera.left=r,this.orthographicCamera.right=-r,this.orthographicCamera.top=n,this.orthographicCamera.bottom=-n,this.orthographicCamera.updateProjectionMatrix(),i=!0}this.lastValues.perspToOrtho.equals(this.perspToOrtho)||(i=!0),i&&this.computeProjectionMatrix(),this.lastValues.position.copy(this.position),this.lastValues.quaternion.copy(this.quaternion),this.lastValues.scale.copy(this.scale),this.lastValues.fov=this.fov,this.lastValues.aspect=this.aspect,this.lastValues.near=this.near,this.lastValues.far=this.far,this.lastValues.perspToOrtho.copy(this.perspToOrtho),this.lastValues.orthoDistance=this.orthoDistance,this.type=this.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera"},Object.defineProperty(t.prototype,"isPerspectiveCamera",{get:function(){return this.perspToOrtho.x<1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isOrthographicCamera",{get:function(){return this.perspToOrtho.x>=1},enumerable:!1,configurable:!0}),t.prototype.copy=function(t,i){return e.prototype.copy.call(this,t,i),this.fov=t.fov,this.aspect=t.aspect,this.near=t.near,this.far=t.far,this.perspToOrtho.copy(t.perspToOrtho),this.orthoDistance=t.orthoDistance,this.updateTime(ce(),0),this},t}(n.Camera),qt=function(){function e(e,t,i){this.x=e,this.y=t,this.z=i}return e.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},e.prototype.set=function(e,t,i){return this.x=e,this.y=t,this.z=i,this},e.prototype.fromArray=function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},e.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},e.prototype.multiplyScalar=function(e){return this.x*=e,this.y*=e,this.z*=e,this},e.prototype.subVectors=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},e.prototype.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z},e.prototype.cross=function(e){var t=this.x,i=this.y,n=this.z;return this.x=i*e.z-n*e.y,this.y=n*e.x-t*e.z,this.z=t*e.y-i*e.x,this},e.prototype.crossVectors=function(e,t){var i=e.x,n=e.y,r=e.z,o=t.x,a=t.y,s=t.z;return this.x=n*s-r*a,this.y=r*o-i*s,this.z=i*a-n*o,this},e.prototype.clone=function(){return new e(this.x,this.y,this.z)},e}(),Ht=function(e,t,i){this.extents=e,this.startIndex=t,this.endIndex=i},_t=function(e,t){this.triangle=e,this.intersectionPoint=t},Kt=(Ot=new qt(0,0,0),Nt=new qt(0,0,0),Vt=new qt(0,0,0),Ut=new qt(0,0,0),function(e,t,i,n,r,o){Nt.subVectors(t,e),Vt.subVectors(i,e),Ut.crossVectors(Nt,Vt);var a,s=r.dot(Ut);if(s>0){if(o)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}Ot.subVectors(n,e);var l=a*r.dot(Vt.crossVectors(Ot,Vt));if(l<0)return null;var u=a*r.dot(Nt.cross(Ot));if(u<0)return null;if(l+u>s)return null;var c=-a*Ot.dot(Ut);if(c<0)return null;var h=c/s;return new qt(0,0,0).copy(r).multiplyScalar(h).add(n)}),jt=function(e,t){this.min=e,this.max=t};function Gt(e,t,i){var n=new jt(0,0);t.x>=0?(n.min=(i.extents[0]-e.x)*t.x,n.max=(i.extents[3]-e.x)*t.x):(n.min=(i.extents[3]-e.x)*t.x,n.max=(i.extents[0]-e.x)*t.x);var r=new jt(0,0);if(t.y>=0?(r.min=(i.extents[1]-e.y)*t.y,r.max=(i.extents[4]-e.y)*t.y):(r.min=(i.extents[4]-e.y)*t.y,r.max=(i.extents[1]-e.y)*t.y),n.min>r.max||r.min>n.max)return!1;r.min>n.min&&(n.min=r.min),r.max<n.max&&(n.max=r.max);var o=new jt(0,0);return t.z>=0?(o.min=(i.extents[2]-e.z)*t.z,o.max=(i.extents[5]-e.z)*t.z):(o.min=(i.extents[5]-e.z)*t.z,o.max=(i.extents[2]-e.z)*t.z),!(n.min>o.max||o.min>n.max)&&(o.min>n.min&&(n.min=o.min),o.max<n.max&&(n.max=o.max),!(n.max<0))}function Wt(e,t,i,n,r){if(i>=n)return[0,0,0,0,0,0];for(var o=1/0,a=1/0,s=1/0,l=-1/0,u=-1/0,c=-1/0,h=i,d=void 0,p=void 0;h<n;h++)(p=t[d=6*e[h]])<o&&(o=p),(p=t[d+1])<a&&(a=p),(p=t[d+2])<s&&(s=p),(p=t[d+3])>l&&(l=p),(p=t[d+4])>u&&(u=p),(p=t[d+5])>c&&(c=p);return[o-r,a-r,s-r,l+r,u+r,c+r]}var Xt=function(){function e(){}return e.prototype.create=function(e){return this.trianglesArray=e,this},e.prototype.splitNode=function(e){if(!this.trianglesArray)throw new Error("bvh-tree never perpared. call `create` to initialize.");for(var t=this.trianglesArray,i=t.length/9,n=new Uint32Array(i),r=new Float32Array(6*i),o=[],a=1/0,s=1/0,l=1/0,u=-1/0,c=-1/0,h=-1/0,d=0,p=0,f=0,A=void 0,v=void 0,m=void 0,g=void 0,y=void 0,b=void 0,x=void 0;d<i;d++,p+=6,f+=9)n[d]=d,A=g=t[f],(x=t[f+3])<A&&(A=x),x>g&&(g=x),(x=t[f+6])<A&&(A=x),x>g&&(g=x),v=y=t[f+1],(x=t[f+4])<v&&(v=x),x>y&&(y=x),(x=t[f+7])<v&&(v=x),x>y&&(y=x),m=b=t[f+2],(x=t[f+5])<m&&(m=x),x>b&&(b=x),(x=t[f+8])<m&&(m=x),x>b&&(b=x),A<a&&(a=A),g>u&&(u=g),v<s&&(s=v),y>c&&(c=y),m<l&&(l=m),b>h&&(h=b),r[p]=A,r[p+1]=v,r[p+2]=m,r[p+3]=g,r[p+4]=y,r[p+5]=b;var w,M=new Ht([a,s,l,u,c,h],0,i);function C(t){for(var i=t.startIndex,a=t.endIndex,s=t.extents,l=[s[3]-s[0],s[4]-s[1],s[5]-s[2]],u=[0,1,2].sort((function(e,t){return l[t]-l[e]})),c=0;c<3;c++){for(var h=u[c],d=s[h]+s[h+3],p=i,f=a-1,A=-1,v=void 0;p<=f;)-1===A?(v=n[p],r[6*v+h]+r[6*v+h+3]<d?p++:A=v):(v=n[f],r[6*v+h]+r[6*v+h+3]>=d||(n[p]=v,n[f]=A,A=-1,p++),f--);if(p>i&&p<a){var m=new Ht(Wt(n,r,i,p,1e-6),i,p);m.endIndex-m.startIndex>e&&o.push(m);var g=new Ht(Wt(n,r,p,a,1e-6),p,a);g.endIndex-g.startIndex>e&&o.push(g),t.node0=m,t.node1=g,t.startIndex=0,t.endIndex=0;break}}}for(o.push(M);w=o.pop();)C(w);return this.offsetArray=n,this.rootNode=M,this},e.prototype.intersectRay=function(e,t,i){if(!this.trianglesArray)throw new Error("bvh-tree never perpared. call `create` to initialize.");if(!this.rootNode||!this.offsetArray)throw new Error("bvh-tree never perpared. call `splitNode` to perpare.");for(var n,r=this.trianglesArray,o=this.offsetArray,a=this.rootNode,s=[],l=[],u=new qt(1/t.x,1/t.y,1/t.z),c=[a];n=c.pop();)if(Gt(e,u,n)){n.node0&&c.push(n.node0),n.node1&&c.push(n.node1);for(var h=n.startIndex;h<n.endIndex;h++)s.push(o[h])}for(var d=new qt(0,0,0),p=new qt(0,0,0),f=new qt(0,0,0),A=new qt(e.x,e.y,e.z),v=new qt(t.x,t.y,t.z),m=(h=0,void 0),g=s.length;h<g;h++){m=9*s[h],d.x=r[m],d.y=r[m+1],d.z=r[m+2],p.x=r[m+3],p.y=r[m+3+1],p.z=r[m+3+2],f.x=r[m+6],f.y=r[m+6+1],f.z=r[m+6+2];var y=Kt(d,p,f,A,v,i);y&&l.push(new _t([d.clone(),p.clone(),f.clone()],y))}return l},e.prototype.dispose=function(){delete this.offsetArray,delete this.rootNode},e}(),Yt=!1,Zt=[];function Jt(e){if(void 0===e&&(e=!1),e||!Yt){Yt=!0;var t=Zt.shift();if(t){try{t()}catch(e){}ke.shared.add((function(){return Jt(!0)}),!0,2)}else Yt=!1}}function $t(e){return new Promise((function(t,i){Zt.push((function(){try{t(e())}catch(e){i(e)}})),Jt()}))}function ei(){var e={OutWindow:function(){this._windowSize=0}};return e.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},e.OutWindow.prototype.flush=function(){var e=this._pos-this._streamPos;if(0!==e){for(;e--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},e.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},e.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},e.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},e.OutWindow.prototype.copyBlock=function(e,t){var i=this._pos-e-1;for(i<0&&(i+=this._windowSize);t--;)i>=this._windowSize&&(i=0),this._buffer[this._pos++]=this._buffer[i++],this._pos>=this._windowSize&&this.flush()},e.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},e.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},e.RangeDecoder=function(){},e.RangeDecoder.prototype.setStream=function(e){this._stream=e},e.RangeDecoder.prototype.releaseStream=function(){this._stream=null},e.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},e.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,i=0,n=e;n--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,i=i<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return i},e.RangeDecoder.prototype.decodeBit=function(e,t){var i=e[t],n=(this._range>>>11)*i;return(2147483648^this._code)<(2147483648^n)?(this._range=n,e[t]+=2048-i>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=n,this._code-=n,e[t]-=i>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},e.initBitModels=function(e,t){for(;t--;)e[t]=1024},e.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},e.BitTreeDecoder.prototype.init=function(){e.initBitModels(this._models,1<<this._numBitLevels)},e.BitTreeDecoder.prototype.decode=function(e){for(var t=1,i=this._numBitLevels;i--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},e.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,i=1,n=0,r=0;r<this._numBitLevels;++r)i=i<<1|(t=e.decodeBit(this._models,i)),n|=t<<r;return n},e.reverseDecode2=function(e,t,i,n){for(var r,o=1,a=0,s=0;s<n;++s)o=o<<1|(r=i.decodeBit(e,t+o)),a|=r<<s;return a},e.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new e.BitTreeDecoder(8),this._numPosStates=0},e.LenDecoder.prototype.create=function(t){for(;this._numPosStates<t;++this._numPosStates)this._lowCoder[this._numPosStates]=new e.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new e.BitTreeDecoder(3)},e.LenDecoder.prototype.init=function(){var t=this._numPosStates;for(e.initBitModels(this._choice,2);t--;)this._lowCoder[t].init(),this._midCoder[t].init();this._highCoder.init()},e.LenDecoder.prototype.decode=function(e,t){return 0===e.decodeBit(this._choice,0)?this._lowCoder[t].decode(e):0===e.decodeBit(this._choice,1)?8+this._midCoder[t].decode(e):16+this._highCoder.decode(e)},e.Decoder2=function(){this._decoders=[]},e.Decoder2.prototype.init=function(){e.initBitModels(this._decoders,768)},e.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},e.Decoder2.prototype.decodeWithMatchByte=function(e,t){var i,n,r=1;do{if(i=t>>7&1,t<<=1,r=r<<1|(n=e.decodeBit(this._decoders,(1+i<<8)+r)),i!==n){for(;r<256;)r=r<<1|e.decodeBit(this._decoders,r);break}}while(r<256);return 255&r},e.LiteralDecoder=function(){},e.LiteralDecoder.prototype.create=function(t,i){var n;if(!this._coders||this._numPrevBits!==i||this._numPosBits!==t)for(this._numPosBits=t,this._posMask=(1<<t)-1,this._numPrevBits=i,this._coders=[],n=1<<this._numPrevBits+this._numPosBits;n--;)this._coders[n]=new e.Decoder2},e.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},e.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},e.Decoder=function(){this._outWindow=new e.OutWindow,this._rangeDecoder=new e.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new e.BitTreeDecoder(4),this._lenDecoder=new e.LenDecoder,this._repLenDecoder=new e.LenDecoder,this._literalDecoder=new e.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new e.BitTreeDecoder(6),this._posSlotDecoder[1]=new e.BitTreeDecoder(6),this._posSlotDecoder[2]=new e.BitTreeDecoder(6),this._posSlotDecoder[3]=new e.BitTreeDecoder(6)},e.Decoder.prototype.setDictionarySize=function(e){return!(e<0)&&(this._dictionarySize!==e&&(this._dictionarySize=e,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},e.Decoder.prototype.setLcLpPb=function(e,t,i){var n=1<<i;return!(e>8||t>4||i>4)&&(this._literalDecoder.create(t,e),this._lenDecoder.create(n),this._repLenDecoder.create(n),this._posStateMask=n-1,!0)},e.Decoder.prototype.init=function(){var t=4;for(this._outWindow.init(!1),e.initBitModels(this._isMatchDecoders,192),e.initBitModels(this._isRep0LongDecoders,192),e.initBitModels(this._isRepDecoders,12),e.initBitModels(this._isRepG0Decoders,12),e.initBitModels(this._isRepG1Decoders,12),e.initBitModels(this._isRepG2Decoders,12),e.initBitModels(this._posDecoders,114),this._literalDecoder.init();t--;)this._posSlotDecoder[t].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},e.Decoder.prototype.decode=function(t,i,n){var r,o,a,s,l,u,c=0,h=0,d=0,p=0,f=0,A=0,v=0;for(this._rangeDecoder.setStream(t),this._outWindow.setStream(i),this.init();n<0||A<n;)if(r=A&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(c<<4)+r))o=this._literalDecoder.getDecoder(A++,v),v=c>=7?o.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(h)):o.decodeNormal(this._rangeDecoder),this._outWindow.putByte(v),c=c<4?0:c-(c<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,c))a=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,c)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(c<<4)+r)&&(c=c<7?9:11,a=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,c)?s=d:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,c)?s=p:(s=f,f=p),p=d),d=h,h=s),0===a&&(a=2+this._repLenDecoder.decode(this._rangeDecoder,r),c=c<7?8:11);else if(f=p,p=d,d=h,a=2+this._lenDecoder.decode(this._rangeDecoder,r),c=c<7?7:10,(l=this._posSlotDecoder[a<=5?a-2:3].decode(this._rangeDecoder))>=4){if(h=(2|1&l)<<(u=(l>>1)-1),l<14)h+=e.reverseDecode2(this._posDecoders,h-l-1,this._rangeDecoder,u);else if(h+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(h+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===h)break;return!1}}else h=l;if(h>=A||h>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(h,a),A+=a,v=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},e.Decoder.prototype.setDecoderProperties=function(e){var t,i,n,r,o;return!(e.size<5)&&(i=(t=e.readByte())%9,n=(t=~~(t/9))%5,r=~~(t/5),!!this.setLcLpPb(i,n,r)&&(o=e.readByte(),o|=e.readByte()<<8,o|=e.readByte()<<16,o+=16777216*e.readByte(),this.setDictionarySize(o)))},e.decompress=function(t,i,n,r){var o=new e.Decoder;if(!o.setDecoderProperties(t))throw"Incorrect stream properties";if(!o.decode(i,n,r))throw"Error in data stream";return!0},e.decompressFile=function(t,i){var n,r=new e.Decoder;if(!r.setDecoderProperties(t))throw"Incorrect stream properties";if(n=t.readByte(),n|=t.readByte()<<8,n|=t.readByte()<<16,n+=16777216*t.readByte(),t.readByte(),t.readByte(),t.readByte(),t.readByte(),!r.decode(t,i,n))throw"Error in data stream";return!0},e}var ti=ei();var ii="\nvar decodeLZMA = (function() {\n var LZMA = (".concat(ei.toString(),")();\n return function(data, callback) {\n return (").concat(function(e,t,i){try{var n={data:t,offset:0,readByte:function(){return this.data[this.offset++]}},r=n.data.length,o={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/r);this.data[t]||(this.data[t]=new Uint8Array(r)),this.data[t][this.offset%r]=e,this.offset++}};e.decompressFile(n,o);for(var a=new Uint8Array(o.offset),s=0;s<o.offset;s++)a[s]=o.data[Math.floor(s/r)][s%r];i(null,a)}catch(e){i(e)}}.toString(),")(LZMA, data, callback);\n }\n})();\n\nvar decodeLZMAWithWASM = (function() {\n var LZMA_WASM = (").concat(function(){return function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=new Uint8Array(256),n=0;n<t.length;n++)i[t.charCodeAt(n)]=n;var r,o,a,s,l,u=.75*e.length,c=e.length,h=0;"="===e[e.length-1]&&(u--,"="===e[e.length-2]&&u--);var d=new ArrayBuffer(u),p=new Uint8Array(d);for(r=0;r<c;r+=4)o=i[e.charCodeAt(r)],a=i[e.charCodeAt(r+1)],s=i[e.charCodeAt(r+2)],l=i[e.charCodeAt(r+3)],p[h++]=o<<2|a>>4,p[h++]=(15&a)<<4|s>>2,p[h++]=(3&s)<<6|63&l;return d}("AGFzbQEAAAABSg1gAABgAX8Bf2ACf38Bf2AEf39/fwBgA39/fwBgAX8AYAJ/fwBgA39/fwF/YAR/f39/AX9gAn9/AGABfwF/YAABf2AEf39/fwF/AhsCA2VudgVhYm9ydAADA2VudgZtZW1vcnkCAAEDJiUBAQkKAgoKCwsLCwsAAgoBAgQKAQYFCAoFBQQEBwgCBwwCAQAABAQBcAABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwc9BgZtZW1vcnkCAAV0YWJsZQEABXJlc2V0AA0KbmV3VThBcnJheQAQCnVucGFja1NpemUAFAZkZWNvZGUAIwgBJAkHAQBBAAsBJQqAViVoAQN/IABBgICAgARLBEAACyMBIgEgAEEBIABBAUsbakEHakF4cSICPwAiA0EQdEsEQCADIAIgAWtB//8DakGAgHxxQRB2IgAgAyAAShtAAEEASARAIABAAEEASARAAAsLCyACJAEgAQsbAQF/QQFBICAAQQdqZ2t0EAEiASAANgIAIAELkQMBAX8gAUUEQA8LIABBADoAACAAIAFqQQFrQQA6AAAgAUECTQRADwsgAEEBakEAOgAAIABBAmpBADoAACAAIAFqIgJBAmtBADoAACACQQNrQQA6AAAgAUEGTQRADwsgAEEDakEAOgAAIAAgAWpBBGtBADoAACABQQhNBEAPC0EAIABrQQNxIgIgAGoiAEEANgIAIAEgAmtBfHEiASAAakEEa0EANgIAIAFBCE0EQA8LIABBBGpBADYCACAAQQhqQQA2AgAgACABaiICQQxrQQA2AgAgAkEIa0EANgIAIAFBGE0EQA8LIABBDGpBADYCACAAQRBqQQA2AgAgAEEUakEANgIAIABBGGpBADYCACAAIAFqIgJBHGtBADYCACACQRhrQQA2AgAgAkEUa0EANgIAIAJBEGtBADYCACAAQQRxQRhqIgIgAGohACABIAJrIQEDQCABQSBPBEAgAEIANwMAIABBCGpCADcDACAAQRBqQgA3AwAgAEEYakIANwMAIAFBIGshASAAQSBqIQAMAQsLC1EBA38gAEH+////AEsEQEEAQSBBLUEnEAAACyAAQQJ0IgMQAiECQQgQASIBQQA2AgAgAUEANgIEIAEgAjYCACABIAA2AgQgAkEIaiADEAMgAQtmAQF/IAFB/P///wFLBEBBAEHAAEEXQSIQAAALIAFBAXQiARACIgJBCGogARADIABFBEBBDBABIQALIABBADYCACAAQQA2AgQgAEEANgIIIAAgAjYCACAAQQA2AgQgACABNgIIIAALCgBBDBABIAAQBQsuAQF/QQgQASIBQQA2AgAgAUEANgIEIAEgADYCBCABQQEgASgCBHQQBjYCACABC6EBAQR/QRAQASIBQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgxBEBAEIQIDQCAAQRBIBEBBAxAHIQMgAigCACAAQQJ0aiADNgIIIABBAWohAAwBCwsgASACNgIEQRAQBCECQQAhAANAIABBEEgEQEEDEAchAyACKAIAIABBAnRqIAM2AgggAEEBaiEADAELCyABIAI2AgggAUEIEAc2AgwgAQs0AQF/QRQQASIAQQA2AgAgAEEAOgAEIABBADYCCCAAQQA2AgwgAEEANgIQIABBDTYCCCAAC0IBAX9BGRABIgBBADYCACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEANgIUIABBADoAGCAAQQA2AhAgAAu1AgEEf0HQABABIgBBADoAACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEAOgAUIABBADYCGCAAQQA2AhwgAEEANgIgIABBADYCJCAAQQA2AiggAEEANgIsIABBADYCMCAAQQA2AjQgAEEANgI4IABBADYCPCAAQQA2AkAgAEEANgJEIABBADYCSCAAQQA2AkxBBBAEIQIDQCABQQRIBEBBBhAHIQMgAigCACABQQJ0aiADNgIIIAFBAWohAQwBCwsgACACNgIkIABBBBAHNgIoIABB8wAQBjYCLCAAQcABEAY2AjAgAEEMEAY2AjQgAEEMEAY2AjggAEEMEAY2AjwgAEEMEAY2AkAgAEHAARAGNgJEIAAQCDYCSCAAEAg2AkwgABAJNgIEIAAQCjYCCCAACx8BAX9BCBABIgBBADYCACAAQQA2AgQgABALNgIAIAALCgAjACQBEAwkAwthAQF/IAFB+P///wNLBEBBAEHAAEEXQSIQAAALIAEQAiICQQhqIAEQAyAARQRAQQwQASEACyAAQQA2AgAgAEEANgIEIABBADYCCCAAIAI2AgAgAEEANgIEIAAgATYCCCAACwoAQQwQASAAEA4LBgAgABAPCyoAIAEgACgCCE8EQEEAQcAAQSdBPxAAAAsgACgCBCABIAAoAgBqai0ACAssACABIAAoAghPBEBBAEHAAEEyQT8QAAALIAAoAgQgASAAKAIAamogAjoACAtkAQJ/QQ0QDyECA0AgAUENSARAIAIgASAAIAEQEUH/AXEQEiABQQFqIQEMAQsLQQAhAEEAIQEDQCABQQhIBEAgAiABQQVqEBFB/wFxIAFBA3R0IAByIQAgAUEBaiEBDAELCyAACwYAIAAQEwsnACAAIAEQDzYCCCAAQQA2AgwgACABNgIUIABBADoAGCAAQQA2AgALJAAgACgCCCAAKAIYEBUgAEGABiAAKAIMIAAtABRqdBAGNgIgC5UBAQR/IAEhBSAAIgYoAgAhASAAKAIEIQcgACgCCEEBdiEEIAJBAEgEfyACIARqIgBBACAAQQBKGwUgAiIAIAQgACAESBsLIQIgA0EASAR/IAMgBGoiAEEAIABBAEobBSADIgAgBCAAIARIGwshAwNAIAIgA05FBEAgAkEBdCABaiAHaiAFOwEIIAJBAWohAgwBCwsgBgssAQF/AkACQAJAIwRBAWsOAwEBAgALAAtB/////wchAQsgAEGACEEAIAEQFwvBAQECfyAAQQIQBjYCACAAKAIAIgEoAgAgASgCBGpBgAg7AQggACgCACICKAIAIQEgAigCBCABQQJqakGACDsBCCAAKAIMKAIAQQEkBBAYGkEAIQIDQCACQRBIBEAgAiAAKAIEKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAiAAKAIIKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAkEBaiECDAELCwuHAgEFfyAAIQJBgAYgACgCDCAALQAUanQhAQNAIAMgAUgEQCACKAIgIgQoAgAhBSAEKAIEIANBAXQgBWpqQYAIOwEIIANBAWohAwwBCwsgAiEBQQAhAgNAIAJBBEkEQCACIAEoAiQoAgAiAygCAEECdkkEfyACQQJ0IANqKAIIBQALKAIAQQEkBBAYGiACQQFqIQIMAQsLIAEoAigoAgBBASQEEBgaIAEoAixBASQEEBgaIAAoAjBBASQEEBgaIAAoAjRBASQEEBgaIAAoAjhBASQEEBgaIAAoAjxBASQEEBgaIAAoAkBBASQEEBgaIAAoAkRBASQEEBgaIAAoAkgQGSAAKAJMEBkLyAwBA38DQCABQQNxIAIgAhsEQCAAIgRBAWohACABIgNBAWohASAEIAMtAAA6AAAgAkEBayECDAELCyAAQQNxRQRAA0AgAkEQTwRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAEEIaiABQQhqKAIANgIAIABBDGogAUEMaigCADYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsgAkEIcQRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAUEIaiEBIABBCGohAAsgAkEEcQRAIAAgASgCADYCACABQQRqIQEgAEEEaiEACyACQQJxBEAgACABLwEAOwEAIAFBAmohASAAQQJqIQALIAJBAXEEQCAAIAEtAAA6AAALDwsgAkEgTwRAAkACQAJAIABBA3EiA0EBRwRAIANBAkYNASADQQNGDQIMAwsgASgCACEFIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIEQQFqIQAgAUEBaiIDQQFqIQEgBCADLQAAOgAAIAJBA2shAgNAIAJBEU8EQCAAIAFBAWooAgAiA0EIdCAFQRh2cjYCACAAQQRqIAFBBWooAgAiBUEIdCADQRh2cjYCACAAQQhqIAFBCWooAgAiA0EIdCAFQRh2cjYCACAAQQxqIAFBDWooAgAiBUEIdCADQRh2cjYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsMAgsgASgCACEFIAAgAS0AADoAACAAQQFqIgRBAWohACABQQFqIgNBAWohASAEIAMtAAA6AAAgAkECayECA0AgAkESTwRAIAAgAUECaigCACIDQRB0IAVBEHZyNgIAIABBBGogAUEGaigCACIFQRB0IANBEHZyNgIAIABBCGogAUEKaigCACIDQRB0IAVBEHZyNgIAIABBDGogAUEOaigCACIFQRB0IANBEHZyNgIAIAFBEGohASAAQRBqIQAgAkEQayECDAELCwwBCyABKAIAIQUgACIEQQFqIQAgASIDQQFqIQEgBCADLQAAOgAAIAJBAWshAgNAIAJBE08EQCAAIAFBA2ooAgAiA0EYdCAFQQh2cjYCACAAQQRqIAFBB2ooAgAiBUEYdCADQQh2cjYCACAAQQhqIAFBC2ooAgAiA0EYdCAFQQh2cjYCACAAQQxqIAFBD2ooAgAiBUEYdCADQQh2cjYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsLCyACQRBxBEAgACABIgMtAAA6AAAgAEEBaiIBIAEgA0EBaiIBLQAAOgAAQQFqIgMgAyABQQFqIgEtAAA6AABBAWoiAyADIAFBAWoiAS0AADoAAEEBaiIDIAMgAUEBaiIBLQAAOgAAQQFqIgMgAyABQQFqIgEtAAA6AABBAWoiAyADIAFBAWoiAS0AADoAAEEBaiIDIAMgAUEBaiIBLQAAOgAAQQFqIgMgAyABQQFqIgEtAAA6AABBAWoiAyADIAFBAWoiAS0AADoAAEEBaiIDIAMgAUEBaiIBLQAAOgAAQQFqIgMgAyABQQFqIgEtAAA6AABBAWoiAyADIAFBAWoiAS0AADoAAEEBaiIDIAMgAUEBaiIBLQAAOgAAQQFqIgMgAyABQQFqIgEtAAA6AABBAWoiBEEBaiEAIAFBAWoiA0EBaiEBIAQgAy0AADoAAAsgAkEIcQRAIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIDIAMgAUEBaiIBLQAAOgAAQQFqIgMgAyABQQFqIgEtAAA6AABBAWoiAyADIAFBAWoiAS0AADoAAEEBaiIDIAMgAUEBaiIBLQAAOgAAQQFqIgMgAyABQQFqIgEtAAA6AABBAWoiBEEBaiEAIAFBAWoiA0EBaiEBIAQgAy0AADoAAAsgAkEEcQRAIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIDIAMgAUEBaiIBLQAAOgAAQQFqIgRBAWohACABQQFqIgNBAWohASAEIAMtAAA6AAALIAJBAnEEQCAAIAEtAAA6AAAgAEEBaiIEQQFqIQAgAUEBaiIDQQFqIQEgBCADLQAAOgAACyACQQFxBEAgACABLQAAOgAACwvVAgECfyAAIAFGBEAPCyABIAJqIABNIgNFBEAgACACaiABTSEDCyADBEAgACABIAIQGw8LIAAgAUkEQCABQQdxIABBB3FGBEADQCAAQQdxBEAgAkUEQA8LIAJBAWshAiAAIgRBAWohACABIgNBAWohASAEIAMtAAA6AAAMAQsLA0AgAkEITwRAIAAgASkDADcDACACQQhrIQIgAEEIaiEAIAFBCGohAQwBCwsLA0AgAgRAIAAiBEEBaiEAIAEiA0EBaiEBIAQgAy0AADoAACACQQFrIQIMAQsLBSABQQdxIABBB3FGBEADQCAAIAJqQQdxBEAgAkUEQA8LIAJBAWsiAiAAaiABIAJqLQAAOgAADAELCwNAIAJBCE8EQCACQQhrIgIgAGogASACaikDADcDAAwBCwsLA0AgAgRAIAJBAWsiAiAAaiABIAJqLQAAOgAADAELCwsL4AoBCH8gACgCACIGIgQoAgAgBCgCBGovAQgiCCABIgcoAgxBC3ZsIQQgBygCECAESQR/QYAQIAhrQf//A3FBBXYgCGohCCAHIAQ2AgxBAAUgCCAIQf//A3FBBXZrIQggByAHKAIQIARrNgIQIAcgBygCDCAEazYCDEEBCyAGKAIEIAYoAgBqIAg7AQggByIFKAIMIwJJBEAgBSAFKAIMQQh0NgIMIAUoAhBBCHQhByAFKAIAIQYgBSAFKAIIIglBAWo2AgggBSAGIAkQEUH/AXEgB3I2AhALQf//A3FFBEAgAiAAKAIEKAIAIgAoAgBBAnZJBH8gAkECdCAAaigCCAUACyEDIAEhBEEBIQgDQCAKIAMoAgRJBEAgAygCACIHKAIAIQEgBCgCECAHKAIEIAgiBUEBdCIIIAFqai8BCCIGIAQoAgxBC3ZsIglJBH9BgBAgBmtB//8DcUEFdiAGaiEGIAQgCTYCDEEABSAGIAZB//8DcUEFdmshBiAEIAQoAhAgCWs2AhAgBCAEKAIMIAlrNgIMQQELIAcoAgQgBygCACAFQQF0amogBjsBCCAEKAIMIwJJBEAgBCAEKAIMQQh0NgIMIAQoAhBBCHQhACAEKAIAIQUgBCAEKAIIIgFBAWo2AgggBCAFIAEQEUH/AXEgAHI2AhALQf//A3EgCGohCCAKQQFqIQoMAQsLIAhBASADKAIEdGsPCyAAKAIAIgooAgAhCCAFKAIQIAooAgQgCEECamovAQgiBCABKAIMQQt2bCIDSQR/IAUgAzYCDEEAIQlBgBAgBGtB//8DcUEFdiAEagUgBSAFKAIQIANrNgIQIAUgBSgCDCADazYCDEEBIQkgBCAEQf//A3FBBXZrCyEEIAoiBygCBCAHKAIAQQJqaiAEOwEIIAUiBigCDCMCSQRAIAYgBigCDEEIdDYCDCAGKAIQQQh0IQUgBigCACEHIAYgBigCCCIIQQFqNgIIIAYgByAIEBFB/wFxIAVyNgIQCyAJQf//A3FFBEAgAiAAKAIIKAIAIgAoAgBBAnZJBH8gAkECdCAAaigCCAUACyEJIAEhA0EBIQRBACECA0AgAiAJKAIESQRAIAMoAhAgCSgCACIFKAIEIAQiBkEBdCIEIAUoAgBqai8BCCIHIAMoAgxBC3ZsIghJBH9BgBAgB2tB//8DcUEFdiAHaiEHIAMgCDYCDEEABSAHIAdB//8DcUEFdmshByADIAMoAhAgCGs2AhAgAyADKAIMIAhrNgIMQQELIAUoAgQgBSgCACAGQQF0amogBzsBCCADKAIMIwJJBEAgAyADKAIMQQh0NgIMIAMoAhBBCHQhBSADKAIAIQcgAyADKAIIIgZBAWo2AgggAyAHIAYQEUH/AXEgBXI2AhALQf//A3EgBGohBCACQQFqIQIMAQsLIARBASAJKAIEdGtBCGoPCyAAKAIMIQQgASEDQQEhCUEAIQIDQCACIAQoAgRJBEAgBCgCACIIKAIAIQogAygCECAIKAIEIAogCSIHQQF0IgFqai8BCCIFIAMoAgxBC3ZsIgZJBH8gAyAGNgIMQQAhBkGAECAFa0H//wNxQQV2IAVqBSADIAMoAhAgBms2AhAgAyADKAIMIAZrNgIMQQEhBiAFIAVB//8DcUEFdmsLIQUgCCgCBCAIKAIAIAdBAXRqaiAFOwEIIAMoAgwjAkkEQCADIAMoAgxBCHQ2AgwgAygCEEEIdCEAIAMoAgAhBSADIAMoAggiCkEBajYCCCADIAUgChARQf8BcSAAcjYCEAsgBkH//wNxIAFqIQkgAkEBaiECDAELCyAJQQEgBCgCBHRrQRBqC5YCAQh/QQEhBwNAAkAgBiABTg0AIAIoAhAgACgCBCAAKAIAIAMgB2oiCUEBdGpqLwEIIgQgAigCDEELdmwiBUkEfyACIAU2AgxBACEFQYAQIARrQf//A3FBBXYgBGoFIAIgAigCECAFazYCECACIAIoAgwgBWs2AgxBASEFIAQgBEH//wNxQQV2awshBCAAKAIEIAAoAgAgCUEBdGpqIAQ7AQggAiIEKAIMIwJJBEAgBCAEKAIMQQh0NgIMIAQoAhBBCHQhCiAEKAIAIQsgBCAEKAIIIglBAWo2AgggBCALIAkQEUH/AXEgCnI2AhALIAVB//8DcSIEIAdBAXRqIQcgBCAGdCAIciEIIAZBAWohBgwBCwsgCAvwBAEIf0EDIAEgAUEDSxsiAiAAKAIkKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACyEEIAAoAgQhAkEBIQEDQCAHIAQoAgRJBEAgBCgCACIFKAIAIQMgAigCECAFKAIEIAFBAXQiCSADamovAQgiAyACKAIMQQt2bCIGSQR/IAIgBjYCDEEAIQhBgBAgA2tB//8DcUEFdiADagUgAiACKAIQIAZrNgIQIAIgAigCDCAGazYCDEEBIQggAyADQf//A3FBBXZrCyEDIAUoAgQgBSgCACABQQF0amogAzsBCCACKAIMIwJJBEAgAiACKAIMQQh0NgIMIAIoAhBBCHQhBiACKAIAIQUgAiACKAIIIgNBAWo2AgggAiAFIAMQEUH/AXEgBnI2AhALIAhB//8DcSAJaiEBIAdBAWohBwwBCwsgAUEBIAQoAgR0ayIBQQRJBEAgAQ8LIAFBAXFBAnIgAUEBdkEBayICdCEDIAFBDkkEfyAAKAIsIAIgACgCBCADIAFrEB4gA2oFIAAoAgQhASACQQRrIQJBACEEA0AgASABKAIMQQF2NgIMIAEgASgCECABKAIMazYCECABIAEoAhBBACABKAIQQR92ayIHIAEoAgxxajYCECABKAIQIAEoAgxGBEAgAUEBOgAECyABKAIMIwJJBEAgASABKAIMQQh0NgIMIAEoAhBBCHQhBSABKAIAIQggASABKAIIIgZBAWo2AgggASAIIAYQEUH/AXEgBXI2AhALIAdBAWogBEEBdGohBCACQQFrIgINAAsgBEEEdCADaiAAKAIoIgQoAgAgBCgCBCAAKAIEQQAQHmoLC9AcAQ9/IAAQGiAAKAIEIgdBADoABCAHKAIAIAcgBygCCCIDQQFqNgIIIAMQEUH/AXEEQCAHQQE6AAQLIAdBfzYCDCAHQQA2AhBBACEDA0AgA0EESARAIAcoAhBBCHQhBSAHKAIAIQwgByAHKAIIIghBAWo2AgggByAMIAgQEUH/AXEgBXI2AhAgA0EBaiEDDAELCyAHKAIQIAcoAgxGBEAgB0EBOgAECyABBEAgACgCCCACEA82AgQFIAAoAghBBBAPNgIEC0EAIQwDQAJAIAJFIAEgARsiBwR/IAAtAABFBSAHCwRAIAAoAgQoAhBFBEBBAw8LCyAAKAIwIgUoAgAhByAFKAIEIAAoAggoAgBBASAAKAIQdEEBa3EiCyAMQQR0Qf8BcWoiBkEBdCAHamovAQghAyAGIQcgACgCBCIEKAIMQQt2IANsIQggBCgCECAISQR/IAQgCDYCDEEAIQlBgBAgA2tB//8DcUEFdiADagUgBCAEKAIQIAhrNgIQIAQgBCgCDCAIazYCDEEBIQkgAyADQf//A3FBBXZrCyEIIAUiAygCBCADKAIAIAdBAXRqaiAIOwEIIAQiBigCDCMCSQRAIAYgBigCDEEIdDYCDCAGKAIQQQh0IQggBigCACEDIAYgBigCCCIHQQFqNgIIIAYgAyAHEBFB/wFxIAhyNgIQCyAJQf//A3FFBEAgAkUgASABGw0BIAwhCEEAIQYgACgCCCIFKAIMRSIEBH8gBS0AGEUFIAQLRQRAIAAoAggiBSgCCCIGKAIEQQEgBSgCDEwEfyAFKAIMQQFrBSAFKAIMIAUoAhRBAWtqCyAGKAIAamotAAghBgtBASEEIAAoAggoAgBBASAALQAUdEEBa3EgACgCDHQgBkEIIAAoAgxrdmpBgAZsIQcgCEEHTwRAIAAoAggiBigCCCIJKAIEIA5BAWoiDSAGKAIMTAR/IAYoAgwgDWsFIAYoAgwgBigCFCANa2oLIAkoAgBqai0ACCENA0ACQCANQf8BcUEHdiEGIA1BAXQhDSAAKAIgIgkoAgAhCyAJKAIEIAZBAWpBCHQgB2ogBGoiDEEBdCALamovAQgiCyAAKAIEIgMoAgxBC3ZsIQogAygCECAKSQR/QYAQIAtrQf//A3FBBXYgC2ohCyADIAo2AgxBAAUgCyALQf//A3FBBXZrIQsgAyADKAIQIAprNgIQIAMgAygCDCAKazYCDEEBCyEFIAkoAgQgCSgCACAMQQF0amogCzsBCCADIgooAgwjAkkEQCAKIAooAgxBCHQ2AgwgCigCEEEIdCEDIAooAgAhDCAKIAooAggiC0EBajYCCCAKIAwgCxARQf8BcSADcjYCEAsgBEEBdCAFciEEIAVB//8DcSAGRw0AIARB//8DcUGAAkkNAQsLCwNAIARBgAJJBEAgBEEBdCEJIAAoAiAiBSgCACEMIAUoAgQgBCAHaiIGQQF0IAxqai8BCCILIAAoAgQiDSgCDEELdmwhCiANKAIQIApJBH9BgBAgC2tB//8DcUEFdiALaiELIA0gCjYCDEEABSALIAtB//8DcUEFdmshCyANIA0oAhAgCms2AhAgDSANKAIMIAprNgIMQQELIAUoAgQgBSgCACAGQQF0amogCzsBCCANIgooAgwjAkkEQCAKIAooAgxBCHQ2AgwgCigCEEEIdCEGIAooAgAhBSAKIAooAggiDEEBajYCCCAKIAUgDBARQf8BcSAGcjYCEAsgCXIhBAwBCwsgACgCCCIDIAMoAgBBAWo2AgAgAygCCCELIAMgAygCDCIGQQFqNgIMIAsoAgQgCygCACAGamogBEGAAmsiCjoACCADKAIMIAMoAhRGBEAgA0EANgIMIANBAToAGAsgAygCBCgCCCADKAIQRgRAIAMgAygCBCIGKAIIQQF0EA82AgQgAygCBCgCACADKAIEKAIEakEIaiAGKAIAIAYoAgRqQQhqIAYoAggQHCAGKAIAGgsgAygCBCEJIAMgAygCECIMQQFqNgIQIAkoAgQgCSgCACAMamogCjoACCAIIgVBBEkEf0EABSAFQQNrIAVBBmsgBUEKSRsLIQwgAkEBayECDAILIAAoAjQiBigCACEFIAYoAgQgDCIDQQF0IAVqai8BCCIHIAAoAgQiCigCDEELdmwhBCAKKAIQIARJBH9BgBAgB2tB//8DcUEFdiAHaiEHIAogBDYCDEEABSAHIAdB//8DcUEFdmshByAKIAooAhAgBGs2AhAgCiAKKAIMIARrNgIMQQELIAMhBSAGIgMoAgAhDSADKAIEIAVBAXQgDWpqIAc7AQggCiIJKAIMIwJJBEAgCSAJKAIMQQh0NgIMIAkoAhBBCHQhBiAJKAIAIQMgCSAJKAIIIgVBAWo2AgggCSADIAUQEUH/AXEgBnI2AhALQf//A3EEQCACRSABIAEbDQEgACgCCCIIKAIMRSIEBH8gCC0AGEUFIAQLDQEgACgCOCIDKAIAIQggAygCBCAMQQF0IAhqai8BCCIEIAAoAgQiBSgCDEELdmwhByAFKAIQIAdJBH9BgBAgBGtB//8DcUEFdiAEaiEEIAUgBzYCDEEABSAEIARB//8DcUEFdmshBCAFIAUoAhAgB2s2AhAgBSAFKAIMIAdrNgIMQQELIAMoAgQgAygCACAMQQF0amogBDsBCCAFIgkoAgwjAkkEQCAJIAkoAgxBCHQ2AgwgCSgCEEEIdCEFIAkoAgAhAyAJIAkoAggiCEEBajYCCCAJIAMgCBARQf8BcSAFcjYCEAtB//8DcQRAIAAoAjwiCCgCACEHIAgoAgQgDEEBdCAHamovAQgiBCAAKAIEIgUoAgxBC3ZsIQYgBSgCECAGSQR/QYAQIARrQf//A3FBBXYgBGohBCAFIAY2AgxBAAUgBCAEQf//A3FBBXZrIQQgBSAFKAIQIAZrNgIQIAUgBSgCDCAGazYCDEEBCyAIIgMoAgQgAygCACAMQQF0amogBDsBCCAFIgkoAgwjAkkEQCAJIAkoAgxBCHQ2AgwgCSgCEEEIdCEIIAkoAgAhAyAJIAkoAggiB0EBajYCCCAJIAMgBxARQf8BcSAIcjYCEAtB//8DcQRAIAAoAkAiAygCACEKIAMoAgQgDEEBdCAKamovAQgiBiAAKAIEIgcoAgxBC3ZsIQQgBygCECAESQR/QYAQIAZrQf//A3FBBXYgBmohBiAHIAQ2AgxBAAUgBiAGQf//A3FBBXZrIQYgByAHKAIQIARrNgIQIAcgBygCDCAEazYCDEEBCyADKAIEIAMoAgAgDEEBdGpqIAY7AQggByIJKAIMIwJJBEAgCSAJKAIMQQh0NgIMIAkoAhBBCHQhCCAJKAIAIQMgCSAJKAIIIgpBAWo2AgggCSADIAoQEUH/AXEgCHI2AhALQf//A3EEQCARIQMgDyERBSAPIQMLIBAhDwUgECEDCyAOIRAgAyEOBSAAKAJEIgYoAgAhCiAGKAIEIAxBBHRB/wFxIAtqIgNBAXQgCmpqLwEIIgcgACgCBCIIKAIMQQt2bCEEIAgoAhAgBEkEf0GAECAHa0H//wNxQQV2IAdqIQcgCCAENgIMQQAFIAcgB0H//wNxQQV2ayEHIAggCCgCECAEazYCECAIIAgoAgwgBGs2AgxBAQsgAyEKIAYiAygCACENIAMoAgQgCkEBdCANamogBzsBCCAIIgkoAgwjAkkEQCAJIAkoAgxBCHQ2AgwgCSgCEEEIdCEIIAkoAgAhAyAJIAkoAggiCkEBajYCCCAJIAMgChARQf8BcSAIcjYCEAtB//8DcUUEQEEJQQsgDEEHSRshDCAAKAIIIQQgACgCCCIFKAIIIgMoAgQgDkEBaiIHIAUoAgxMBH8gBSgCDCAHawUgBSgCDCAFKAIUIAdragsgAygCAGpqLQAIIQcgBCAEKAIAQQFqNgIAIAQoAgghBSAEIAQoAgwiBkEBajYCDCAFKAIEIAUoAgAgBmpqIAc6AAggBCgCDCAEKAIURgRAIARBADYCDCAEQQE6ABgLIAQoAgQoAgggBCgCEEYEQCAEIAQoAgQiBigCCEEBdBAPNgIEIAQoAgQoAgAgBCgCBCgCBGpBCGogBigCACAGKAIEakEIaiAGKAIIEBwgBigCABoLIAQoAgQhAyAEIAQoAhAiCEEBajYCECADKAIEIAMoAgAgCGpqIAc6AAggAkEBayECDAQLCyAAKAJMIAAoAgQgCxAdIQtBCEELIAxBB0kbIQwFIA8hESAQIQ8gDiEQQQdBCiAMQQdJGyEMIAAgACgCSCAAKAIEIAsQHSILEB8iDkF/RgRAIAAoAgQoAhAEf0EBBUECCw8LIAJFIAEgARsNASAOIAAoAhhPIgUEfyAFBSAOIAAoAggiBCgCDEwiBgR/IAYFIAQtABgLRQsNAQtBACENIAAoAgghBSAOQQFqIQQgAiALQQJqIgtIIAEgARsEQEEBIQ0gAiELCyALIQYDQCAGQQBKBEAgBSIIKAIIIgkoAgQgBCAFKAIMTAR/IAUoAgwgBGsFIAUoAgwgBSgCFCAEa2oLIAkoAgBqai0ACCEHIAggCCgCAEEBajYCACAIKAIIIQMgCCAIKAIMIgpBAWo2AgwgAygCBCADKAIAIApqaiAHOgAIIAgoAgwgCCgCFEYEQCAIQQA2AgwgCEEBOgAYCyAIKAIEKAIIIAgoAhBGBEAgCCAIKAIEIgMoAghBAXQQDzYCBCAIKAIEKAIAIAgoAgQoAgRqQQhqIAMoAgAgAygCBGpBCGogAygCCBAcIAMoAgAaCyAIKAIEIQkgCCAIKAIQIgNBAWo2AhAgCSgCBCAJKAIAIANqaiAHOgAIIAZBAWshBgwBCwsgAiALayECIA1FDQELC0EBCyYBAX9BEBABIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCAEC7YEAQZ/IAAgATYCBEENEA8hAgNAAkAgA0ENTg0AIAIgAyABIAMQEUH/AXEQEiADQQFqIQMMAQsLIAAoAgAhBCACIQZBBBAPIgIoAgQgAigCAGogBigCBCAGKAIAai0ACCIDOgAIIANB/wFxQeEBTwRAQQBBgAFBoQFBDBAAAAsgAigCBCACKAIAQQFqaiADQf8BcUEJcCIHOgAIIAIoAgQgAigCAGogA0H/AXFBCW4iAzoACCADQQVwIQUgAigCBCACKAIAQQJqaiADQQVuIgM6AAggAigCBCACKAIAQQNqaiAFOgAIIAQgBzYCDCAEIAM2AhAgBCAFOgAUIARBADYCHEEAIQIDQAJAIAJBBE8NACAEIAQoAhwgBigCBCAGKAIAIAJBAWpqai0ACCACQQN0dHI2AhwgAkEBaiECDAELCyAEIAQoAhw2AhggBCgCGEGAIEkEQCAEQYAgNgIYC0EAIQJBACEFQQAhAwNAAkAgA0EITg0AIAYgA0EFahARQf8BcSIEQf8BRwRAQQEhBQsgBCADQQN0dCACciECIANBAWohAwwBCwsgACgCACAFRToAACAAKAIAKAIEIAE2AgAgACgCABAWAkAgACgCACAFIAIQICIBQQFGDQAgAUEDRwRAIAFBAkYEQCAFBEAgACgCACgCCCgCECACRw0DCwUMAgsLIAAoAgAoAgQtAAQaQQFBACAAKAIAKAIIKAIQIAAoAgAoAggoAgQQIQ8LQQBBAUEAQQAQIQsIACMDIAAQIgsWAEG4ASQAIwAkAUGAgIAIJAIQDCQDCwMAAQsLtwEEAEEICxcKAAAAdQBzAGUAIABzAHQAcgBpAGMAdABBIAsdDQAAAH4AbABpAGIALwBhAHIAcgBhAHkALgB0AHMAQcAACzkbAAAAfgBsAGkAYgAvAGkAbgB0AGUAcgBuAGEAbAAvAHQAeQBwAGUAZABhAHIAcgBhAHkALgB0AHMAQYABCzMYAAAAcwByAGMALwBsAHoAbQBhAC8AbAB6AG0AYQAtAGQAZQBjAG8AZABlAHIALgB0AHM=")}.toString(),")();\n return function(data, callback) {\n return (").concat(function(e,t,i){try{var n=new WebAssembly.Memory({initial:16}),r=new WebAssembly.Module(e),o=new WebAssembly.Instance(r,{env:{memory:n,abort:function(){i(new Error("webAssembly abort"))}}}).exports,a=o.newU8Array(t.length);new Uint8Array(n.buffer,a+24,t.length).set(t);var s=o.decode(a),l=new Uint32Array(n.buffer,s,4),u=l[0],c=l[2],h=l[3];u?i(null,new Uint8Array(n.buffer,h+24,c).slice(0,c)):i(new Error("lzma deocder error"))}catch(e){i(e)}}.toString(),')(LZMA_WASM, data, callback);\n }\n})();\n\nself.onmessage = function(event) {\n var packet = event.data;\n if (!packet.id) {\n postMessage({ id: packet.id, error: "No incoming id." });\n return;\n }\n if (!packet.data) {\n postMessage({ id: packet.id, error: "No input data." });\n return;\n }\n if (packet.type == "decompress") {\n if (packet.data.constructor !== Uint8Array) {\n postMessage({ id: packet.id, error: "Input data is not Uint8Array." });\n }\n const callback = function(error, result) {\n if (error) {\n postMessage({ id: packet.id, error: error.toString() });\n } else {\n postMessage({ id: packet.id, result: result, error: null }, [ result.buffer ]);\n }\n }\n if (typeof WebAssembly !== "undefined" && WebAssembly.instantiate) {\n decodeLZMAWithWASM(packet.data, callback);\n } else {\n decodeLZMA(packet.data, callback);\n }\n return;\n }\n postMessage({ id: packet.id, error: "type never matched." });\n};\n'),ni="undefined"!=typeof Worker&&"undefined"!=typeof Blob,ri="";if(ni)try{var oi=new Blob([ii],{type:"text/javascript"});ri=URL.createObjectURL(oi)}catch(e){}var ai=function(){function e(){var e=this;if(!ni)throw new Error("LZMAWorker cannot work in this broswer.");this.callCounter=0,this.requests={};var t=this.worker=new Worker(ri);t.onmessage=function(t){var i=t.data,n=i.id,r=i.result,o=i.error,a=e.getKey(n);e.requests[a]&&(o?e.requests[a](new Error(o)):e.requests[a](null,r),delete e.requests[a])},t.onerror=function(e){return console.error(e)}}return e.prototype.getKey=function(e){return"key_"+String(e)},e.prototype.decompress=function(e,t){var i=++this.callCounter;this.requests[this.getKey(i)]=t,this.worker.postMessage({type:"decompress",id:i,data:e},[e.buffer])},e.prototype.terminate=function(){this.worker.terminate()},e.support=ni,e}();function si(e){return Array.prototype.reduce.call(e,(function(e,t,i){return e|t<<8*i}),0)}function li(e){var t=new Uint8Array(e),i=si(t.slice(0,4));if(i>10)return Promise.reject(new Error("LZMA got too many sub chunks."));for(var n=[],r=[],o=4+4*i,a=0;a<i;a++)r[a]=si(t.slice(4+4*a,8+4*a)),n[a]=a===i-1?t.subarray(o,o+r[a]):t.slice(o,o+r[a]),o+=r[a];return ai.support?function(e){for(var t=[],i=e.length,n=function(i){t.push(new Promise((function(t,n){var r=new ai;r.decompress(e[i],(function(e,i){if(r.terminate(),e)return n(e);t(i)}))})))},r=0;r<i;r++)n(r);return Promise.all(t)}(n):Promise.resolve(function(e){for(var t,i=[],n=e.length,r=function(n){var r={data:e[n],offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,a={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/o);this.data[t]||(this.data[t]=new Uint8Array(o)),this.data[t][this.offset%o]=e,this.offset++}};ti.decompressFile(r,a),t=new Uint8Array(a.offset);for(var s=0;s<a.offset;s++)t[s]=a.data[Math.floor(s/o)][s%o];i.push(t)},o=0;o<n;o++)r(o);return i}(n))}function ui(e,t){for(var i={},n=0,r=t;n<r.length;n++){var o=r[n];o in e&&(i[o]=e[o])}return i}function ci(e,t){void 0===t&&(t=!1);var i=typeof e;if("string"===i)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var n="[",r=e.length-1,o=0;o<r;o++)n+=ci(e[o],!1)+",";return r>-1&&(n+=ci(e[o],!1)),n+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return ci(e.toJSON(),t);var a=Object.keys(e).sort(),s=a.length;for(n="",o=0;o<s;){var l=a[o],u=ci(e[l],!0);void 0!==u&&(o&&""!==n&&(n+=","),n+=JSON.stringify(l)+":"+u),o++}return"{"+n+"}"}switch(i){case"function":return JSON.stringify(e.toString());case"undefined":return t?void 0:null;case"number":return e;default:return isFinite(e)?e:null}}function hi(e){return"hash::".concat(ci(e,!1))}function di(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=[];e=e.map((function(e){return(null!=e?e:"").trim()})).filter((function(e){return e.length>0&&!/^\/+$/.test(e)}));for(var n=0;n<e.length;n++){var r=0===n,o=n===e.length-1,a=e[n];r||(a=a.replace(/^\/+/,"")),o||(a=a.replace(/\/+$/,"")),i.push(a)}return i.join("/")}const pi=r.Reader,fi=r.util,Ai=r.roots["@REALSEE/FIVE:five/loaders/model/proto/pbm.proto"]||(r.roots["@REALSEE/FIVE:five/loaders/model/proto/pbm.proto"]={}),vi=Ai.Model=(()=>{function e(e){if(this.chunks=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.chunks=fi.emptyArray,e.prototype.createAt=fi.Long?fi.Long.fromBits(0,0,!0):0,e.prototype.description="",e.decode=function(e,t){e instanceof pi||(e=pi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Ai.Model;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.chunks&&n.chunks.length||(n.chunks=[]),n.chunks.push(Ai.Chunk.decode(e,e.uint32()));break;case 2:n.createAt=e.uint64();break;case 3:n.description=e.string();break;default:e.skipType(7&t)}}return n},e})();Ai.Chunk=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.vertices=null,e.prototype.faces=null,e.prototype.name="",e.prototype.texture="",e.decode=function(e,t){e instanceof pi||(e=pi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Ai.Chunk;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.vertices=Ai.Vertices.decode(e,e.uint32());break;case 2:n.faces=Ai.Faces.decode(e,e.uint32());break;case 3:n.name=e.string();break;case 4:n.texture=e.string();break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("vertices"))throw fi.ProtocolError("missing required 'vertices'",{instance:n});if(!n.hasOwnProperty("faces"))throw fi.ProtocolError("missing required 'faces'",{instance:n});if(!n.hasOwnProperty("name"))throw fi.ProtocolError("missing required 'name'",{instance:n});return n},e})(),Ai.Vertices=(()=>{function e(e){if(this.xyz=[],this.uvs=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.xyz=fi.emptyArray,e.prototype.uvs=fi.emptyArray,e.decode=function(e,t){e instanceof pi||(e=pi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Ai.Vertices;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.xyz&&n.xyz.length||(n.xyz=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.xyz.push(e.float())}else n.xyz.push(e.float());break;case 2:if(n.uvs&&n.uvs.length||(n.uvs=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.uvs.push(e.float())}else n.uvs.push(e.float());break;default:e.skipType(7&t)}}return n},e})(),Ai.Faces=(()=>{function e(e){if(this.indices=[],this.normals=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.indices=fi.emptyArray,e.prototype.normals=fi.emptyArray,e.decode=function(e,t){e instanceof pi||(e=pi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Ai.Faces;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.indices&&n.indices.length||(n.indices=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.indices.push(e.uint32())}else n.indices.push(e.uint32());break;case 2:if(n.normals&&n.normals.length||(n.normals=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.normals.push(e.float())}else n.normals.push(e.float());break;default:e.skipType(7&t)}}return n},e})();var mi=(new n.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1).elements;function gi(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function yi(e){var t=e.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function bi(e){var t=gi(e.name),i=yi(e.name),n=function(e){var t=e.match(/(sub)-?(\d+)/);return t?parseInt(t[2],10):0}(e.name);return 1e6*t+1e3*i+n}function xi(e,t,i,r,o){var a=ie({key:"texture.pbm"},ui(t,["format","quality","size","sharpen","mappings"])),s=new Et({allowHosts:i,requestProxy:r,networkSubscribe:o}).loadTexture(e,{imageURL:{transform:t.transform,options:a},wrapS:n.ClampToEdgeWrapping,wrapT:n.ClampToEdgeWrapping,minFilter:n.LinearFilter,maxSize:"number"==typeof a.size?new n.Vector2(a.size,a.size):void 0}).then((function(e){var t=e.body;return t.needsUpdate=!0,t}));return Object.assign(s,{url:e,textureOptions:t})}function wi(e,t,i,r,o,a,s,l){void 0===o&&(o={});for(var u=function(e){for(var t,i,n,r="number"==typeof e.createAt?e.createAt:null===e.createAt||void 0===e.createAt?0:e.createAt.toNumber(),o=null!==(t=e.description)&&void 0!==t?t:"",a=[],s=!0,l=0,u=e.chunks;l<u.length;l++)if(!(ie=u[l]).faces.normals||0===ie.faces.normals.length){s=!1;break}for(var c=e.chunks.sort((function(e,t){return bi(e)-bi(t)})),h=[],d=0,p=c;d<p.length;d++){var f=gi((ie=p[d]).name);h[f]||(h[f]=[]),h[f].push(ie)}for(var A=0;A<h.length;A++){var v=h[A];if(v)if(s){for(var m=0,g=0;g<v.length;g++)m+=(ie=v[g]).faces.indices.length;for(var y=3*m,b=2*m,x=3*m,w=new ArrayBuffer(4*y+4*b+4*x),M=new Float32Array(w,0,y),C=new Float32Array(w,4*y,b),E=new Float32Array(w,4*y+4*b,x),I=[],S=[1/0,1/0,1/0,-1/0,-1/0,-1/0],B=0,T=0;T<v.length;T++){var P=[1/0,1/0,1/0,-1/0,-1/0,-1/0],R=(ie=v[T]).vertices.xyz,k=ie.vertices.uvs,Q=ie.faces.indices,F=ie.faces.normals,D=Q.length;for(g=0;g<D;g++){var L=Q[g],O=R[3*L],N=R[3*L+1],V=R[3*L+2],U=1/(mi[3]*O+mi[7]*N+mi[11]*V+mi[15]),z=(mi[0]*O+mi[4]*N+mi[8]*V+mi[12])*U,q=(mi[1]*O+mi[5]*N+mi[9]*V+mi[13])*U,H=(mi[2]*O+mi[6]*N+mi[10]*V+mi[14])*U;M[3*B+3*g]=z,M[3*B+3*g+1]=q,M[3*B+3*g+2]=H,C[2*B+2*g]=k[2*L],C[2*B+2*g+1]=k[2*L+1];var _=3*Math.floor(g/3),K=F[_],j=F[_+1],G=F[_+2],W=1/(mi[3]*K+mi[7]*j+mi[11]*G+mi[15]),X=(mi[0]*K+mi[4]*j+mi[8]*G+mi[12])*W,Y=(mi[1]*K+mi[5]*j+mi[9]*G+mi[13])*W,Z=(mi[2]*K+mi[6]*j+mi[10]*G+mi[14])*W;E[3*B+3*g]=X,E[3*B+3*g+1]=Y,E[3*B+3*g+2]=Z,z<P[0]&&(P[0]=z),q<P[1]&&(P[1]=q),H<P[2]&&(P[2]=H),z>P[3]&&(P[3]=z),q>P[4]&&(P[4]=q),H>P[5]&&(P[5]=H)}P[0]<S[0]&&(S[0]=P[0]),P[1]<S[1]&&(S[1]=P[1]),P[2]<S[2]&&(S[2]=P[2]),P[3]>S[3]&&(S[3]=P[3]),P[4]>S[4]&&(S[4]=P[4]),P[5]>S[5]&&(S[5]=P[5]),I.push({materialIndex:T,name:ie.name,chunkName:yi(ie.name),start:B,count:ie.faces.indices.length,texture:null!==(i=ie.texture)&&void 0!==i?i:void 0}),B+=D}a.push({createAt:r,description:o,floorIndex:A,vertices:M,uvs:C,indices:null,normals:E,groups:I,extents:S})}else{m=0;var J=0;for(g=0;g<v.length;g++)J+=(ie=v[g]).vertices.xyz.length/3,m+=ie.faces.indices.length;y=3*J,b=2*J,x=3*J;var $=m,ee=(w=new ArrayBuffer(4*y+4*b+4*x+4*$),M=new Float32Array(w,0,y),C=new Float32Array(w,4*y,b),E=new Float32Array(w,4*y+4*b,x),new Uint32Array(w,4*y+4*b+4*x,$)),te=(I=[],S=[1/0,1/0,1/0,-1/0,-1/0,-1/0],0);for(B=0,T=0;T<v.length;T++){P=[1/0,1/0,1/0,-1/0,-1/0,-1/0],R=(ie=v[T]).vertices.xyz,k=ie.vertices.uvs,Q=ie.faces.indices;var ie,ne=R.length/3;for(D=Q.length,g=0;g<ne;g++)O=R[3*g],N=R[3*g+1],V=R[3*g+2],U=1/(mi[3]*O+mi[7]*N+mi[11]*V+mi[15]),z=(mi[0]*O+mi[4]*N+mi[8]*V+mi[12])*U,q=(mi[1]*O+mi[5]*N+mi[9]*V+mi[13])*U,H=(mi[2]*O+mi[6]*N+mi[10]*V+mi[14])*U,M[3*B+3*g]=z,M[3*B+3*g+1]=q,M[3*B+3*g+2]=H,C[2*B+2*g]=k[2*g],C[2*B+2*g+1]=k[2*g+1],z<P[0]&&(P[0]=z),q<P[1]&&(P[1]=q),H<P[2]&&(P[2]=H),z>P[3]&&(P[3]=z),q>P[4]&&(P[4]=q),H>P[5]&&(P[5]=H);for(P[0]<S[0]&&(S[0]=P[0]),P[1]<S[1]&&(S[1]=P[1]),P[2]<S[2]&&(S[2]=P[2]),P[3]>S[3]&&(S[3]=P[3]),P[4]>S[4]&&(S[4]=P[4]),P[5]>S[5]&&(S[5]=P[5]),g=0;g<D;g++)ee[te+g]=B+Q[g];I.push({materialIndex:T,name:ie.name,chunkName:yi(ie.name),start:te,count:ie.faces.indices.length,texture:null!==(n=ie.texture)&&void 0!==n?n:void 0}),B+=ne,te+=D}for(g=0;g<m;g+=3){var re,oe,ae,se,le,ue,ce,he,de,pe,fe,Ae,ve,me,ge,ye;K=void 0,j=void 0,G=void 0,re=3*ee[g],oe=3*ee[g+1],ae=3*ee[g+2],se=M[re],le=M[re+1],ue=M[re+2],ce=M[oe],he=M[oe+1],de=M[oe+2],pe=M[ae],K=(Ae=M[ae+1]-he)*(ye=ue-de)-(ve=M[ae+2]-de)*(ge=le-he),j=ve*(me=se-ce)-(fe=pe-ce)*ye,G=fe*ge-Ae*me,E[re]+=K,E[re+1]+=j,E[re+2]+=G,E[oe]+=K,E[oe+1]+=j,E[oe+2]+=G,E[ae]+=K,E[ae+1]+=j,E[ae+2]+=G}a.push({createAt:r,description:o,floorIndex:A,vertices:M,uvs:C,indices:ee,normals:E,groups:I,extents:S})}}return a}(e),c=0,h="",d=[],p={},f=0,A=u;f<A.length;f++){var v=A[f],m=v.createAt,g=v.description,y=v.floorIndex,b=v.vertices,x=v.uvs,w=v.indices,M=v.normals,C=v.groups,E=v.extents,I=new n.Box3;I.min.x=E[0],I.min.y=E[1],I.min.z=E[2],I.max.x=E[3],I.max.y=E[4],I.max.z=E[5];var S=new n.BufferGeometry;S.setAttribute("position",new n.BufferAttribute(b,3)),S.setAttribute("uv",new n.BufferAttribute(x,2)),S.setAttribute("normal",new n.BufferAttribute(M,3)),w&&S.setIndex(new n.BufferAttribute(w,1)),S.boundingBox=I,S.boundingSphere=I.getBoundingSphere(new n.Sphere);for(var B=0,T=C;B<T.length;B++){var P=T[B];S.addGroup(P.start,P.count,P.materialIndex)}for(var R=[],k=0,Q=C;k<Q.length;k++){P=Q[k];var F=i[P.chunkName]||(P.texture?di(t,P.texture):void 0),D=new Pt;R.push(D),F?p[F]?p[F].push(D):p[F]=[D]:(D.defines.USE_MAP=!1,D.uniforms.diffuse.value=new n.Color(16777215)),D.uniforms.floorIndex.value=y}var L=new ze(S,R);L.name="model_floor_"+y,L.floorIndex=y,L.userData.createAt=m,L.userData.description=g,c=m,h=g,d.push(L)}var O="",N=function(e){e=Mi(e,i.length);var t=[],r=hi(e);if(O===r)return Promise.resolve();O=r;for(var u=function(i){var u=null;i in o&&(hi(o[i].textureOptions)===hi(e)?u=o[i]:o[i].then((function(e){return e.dispose()}))),u||(u=xi(i,e,a,s,l)),t.push(u.then((function(e){if(O===r)for(var t=0,n=p[i];t<n.length;t++){var o=n[t];o.uniforms.map.value=e,o.uniforms.exposure.value=3.3}else e.dispose()})).catch((function(){if(O===r)for(var e=0,t=p[i];e<t.length;e++){var o=t[e];o.defines.USE_MAP=!1,o.uniforms.diffuse.value=new n.Color(16777215)}})))},c=0,h=Object.keys(p);c<h.length;c++){u(d=h[c])}for(var d in o)delete o[d];return Promise.all(t).then((function(){}))};return{createAt:c,description:h,objects:d,texturePromise:N(r),updateTexture:N}}function Mi(e,t){return!1!==(e=Object.assign({},e)).autoResize&&(t>96?e.size=Math.min(e.size||1/0,100):t>48?e.size=Math.min(e.size||1/0,200):t>24?e.size=Math.min(e.size||1/0,400):t>12?e.size=Math.min(e.size||1/0,800):t>4&&(e.size=Math.min(e.size||1/0,1024))),e}function Ci(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:/i.test(e)}const Ei=r.Reader,Ii=r.util,Si=r.roots["@REALSEE/FIVE:five/loaders/model/proto/dome.proto"]||(r.roots["@REALSEE/FIVE:five/loaders/model/proto/dome.proto"]={}),Bi=Si.Model=(()=>{function e(e){if(this.meshes=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.meshes=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Model;for(;e.pos<i;){let t=e.uint32();if(t>>>3==1)n.meshes&&n.meshes.length||(n.meshes=[]),n.meshes.push(Si.Mesh.decode(e,e.uint32()));else e.skipType(7&t)}return n},e})();function Ti(e){for(var t=[0,0,0],i=0;i<e.attributes.normal.array.length/9;i++)t[0]=e.attributes.normal.array[9*i],t[1]=e.attributes.normal.array[9*i+1],t[2]=e.attributes.normal.array[9*i+2],e.attributes.normal.array[9*i]=e.attributes.normal.array[9*i+6],e.attributes.normal.array[9*i+1]=e.attributes.normal.array[9*i+7],e.attributes.normal.array[9*i+2]=e.attributes.normal.array[9*i+8],e.attributes.normal.array[9*i+6]=t[0],e.attributes.normal.array[9*i+7]=t[1],e.attributes.normal.array[9*i+8]=t[2];for(i=0;i<e.attributes.position.array.length/9;i++)t[0]=e.attributes.position.array[9*i],t[1]=e.attributes.position.array[9*i+1],t[2]=e.attributes.position.array[9*i+2],e.attributes.position.array[9*i]=e.attributes.position.array[9*i+6],e.attributes.position.array[9*i+1]=e.attributes.position.array[9*i+7],e.attributes.position.array[9*i+2]=e.attributes.position.array[9*i+8],e.attributes.position.array[9*i+6]=t[0],e.attributes.position.array[9*i+7]=t[1],e.attributes.position.array[9*i+8]=t[2];for(i=0;i<e.attributes.uv.array.length/6;i++)t[0]=e.attributes.uv.array[6*i],t[1]=e.attributes.uv.array[6*i+1],e.attributes.uv.array[6*i]=e.attributes.uv.array[6*i+4],e.attributes.uv.array[6*i+1]=e.attributes.uv.array[6*i+5],e.attributes.uv.array[6*i+4]=t[0],e.attributes.uv.array[6*i+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}function Pi(e){var t=e.position,i=e.normal,r=e.uv,o=e.uv2,a=e.groups,s=new n.BufferGeometry;s.setAttribute("position",new n.BufferAttribute(new Float32Array(t.array),3)),i&&s.setAttribute("normal",new n.BufferAttribute(new Float32Array(i.array),3)),r&&s.setAttribute("uv",new n.BufferAttribute(new Float32Array(r.array),2)),o&&s.setAttribute("uv2",new n.BufferAttribute(new Float32Array(o.array),2));for(var l=0,u=a;l<u.length;l++){var c=u[l];s.addGroup(c.start,c.count,c.materialIndex)}return s}function Ri(e,t,i,r,o,a){if(a.hasOwnProperty(e))return a[e];Ci(e=e.split("?")[0])||(e=di(t,e)),0===(e=e.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/")).indexOf("//")&&(e="https:"+e);var s=ie({key:"texture.dome",size:64},ui(i,["quality","format","sharpen","mappings"]));return a[e]=o.loadTexture(e,{imageURL:{transform:i.transform,options:s},wrapS:n.RepeatWrapping,wrapT:n.RepeatWrapping}).then((function(e){var t=e.body;return r&&t.repeat.copy(r),t.needsUpdate=!0,t.updateMatrix(),t}))}function ki(e,t,i,r,o){var a=[],s=new Pt,l=s.uniforms;l.exposure.value=4.3;var u=s.defines;if(u.USE_MAP=!1,u.USE_UV=!1,e.kd&&(l.diffuse.value=(new n.Color).fromArray(e.kd.rgb)),e.mapkd){var c=null;if(e.mapkdrepeat){var h=e.mapkdrepeat.split(/\s+/).map((function(e){return Number(e)})),d=h[0],p=h[1];c=new n.Vector2(d,p)}a.push(Ri(e.mapkd,t,i,c,r,o).then((function(e){u.USE_MAP=!0,u.USE_UV=!0,l.map.value=e,l.uvTransform.value=e.matrix,s.needsUpdate=!0})).catch(le))}if(e.ks&&(l.specular.value=(new n.Color).fromArray(e.ks.rgb)),e.mapks&&a.push(Ri(e.mapks,t,i,null,r,o).then((function(e){l.specularMap.value=e})).catch(le)),e.ke&&(l.emissive.value=(new n.Color).fromArray(e.ke.rgb)),e.mapke&&a.push(Ri(e.mapke,t,i,null,r,o).then((function(e){l.emissiveMap.value=e})).catch(le)),e.norm&&a.push(Ri(e.norm,t,i,null,r,o).then((function(e){l.normalMap.value=e})).catch(le)),e.mapbump&&a.push(Ri(e.mapbump,t,i,null,r,o).then((function(e){l.bumpMap.value=e})).catch(le)),e.bump&&a.push(Ri(e.bump,t,i,null,r,o).then((function(e){l.bumpMap.value=e})).catch(le)),"number"==typeof e.ns&&(l.shininess.value=e.ns),"number"==typeof e.d){var f=e.d;f>0&&f<1&&(s.originOpacity=f,s.opacity=f)}return{material:s,textureReady:Promise.all(a).then(le)}}function Qi(e,t,i,r,o,a){for(var s,l=[],u=[],c=(s=e,Bi.decode(s).meshes),h=new Et({allowHosts:r,requestProxy:o,networkSubscribe:a}),d=new n.Matrix4,p=new n.Vector3,f=new n.Quaternion,A=new n.Vector3,v={},m=0,g=c;m<g.length;m++){var y=g[m],b=y.name,x=y.chunks,w=y.matrix;if("Ceiling"!==b&&"CeilingDrop"!==b)for(var M=0,C=w;M<C.length;M++){var E=C[M];d.elements=E.elements;var I=new He;I.renderOrder=-4;for(var S=0;S<x.length;S++){var B=Pi(x[S].geometry);B.applyMatrix4(d),d.decompose(p,f,A),A.x*A.y*A.z<0&&B.attributes.normal&&B.attributes.position&&B.attributes.uv&&Ti(B);for(var T=[],P=0,R=x[S].material;P<R.length;P++){var k=ki(R[P],t,i,h,v),Q=k.material,F=k.textureReady;u.push(F),T.push(Q)}var D=new ze(B,T);D.name="chunk_"+S,I.add(D)}I.floorIndex=0,I.name=b,l.push(I)}}return{createAt:0,description:"",objects:l,texturePromise:Promise.all(u).catch(le),updateTexture:function(e){return Promise.resolve()}}}Si.Mesh=(()=>{function e(e){if(this.chunks=[],this.matrix=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.name="",e.prototype.chunks=Ii.emptyArray,e.prototype.matrix=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Mesh;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.name=e.string();break;case 2:n.chunks&&n.chunks.length||(n.chunks=[]),n.chunks.push(Si.Chunk.decode(e,e.uint32()));break;case 3:n.matrix&&n.matrix.length||(n.matrix=[]),n.matrix.push(Si.Matrix.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("name"))throw Ii.ProtocolError("missing required 'name'",{instance:n});return n},e})(),Si.Matrix=(()=>{function e(e){if(this.elements=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.elements=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Matrix;for(;e.pos<i;){let t=e.uint32();if(t>>>3==1)if(n.elements&&n.elements.length||(n.elements=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.elements.push(e.float())}else n.elements.push(e.float());else e.skipType(7&t)}return n},e})(),Si.Chunk=(()=>{function e(e){if(this.material=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.geometry=null,e.prototype.material=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Chunk;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 2:n.geometry=Si.Geometry.decode(e,e.uint32());break;case 3:n.material&&n.material.length||(n.material=[]),n.material.push(Si.Material.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("geometry"))throw Ii.ProtocolError("missing required 'geometry'",{instance:n});return n},e})(),Si.Geometry=(()=>{function e(e){if(this.groups=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.position=null,e.prototype.uv=null,e.prototype.uv2=null,e.prototype.normal=null,e.prototype.groups=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Geometry;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.position=Si.Position.decode(e,e.uint32());break;case 2:n.uv=Si.UV.decode(e,e.uint32());break;case 3:n.uv2=Si.UV.decode(e,e.uint32());break;case 4:n.normal=Si.Normal.decode(e,e.uint32());break;case 5:n.groups&&n.groups.length||(n.groups=[]),n.groups.push(Si.Group.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("position"))throw Ii.ProtocolError("missing required 'position'",{instance:n});if(!n.hasOwnProperty("normal"))throw Ii.ProtocolError("missing required 'normal'",{instance:n});return n},e})(),Si.Position=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Position;for(;e.pos<i;){let t=e.uint32();if(t>>>3==1)if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());else e.skipType(7&t)}return n},e})(),Si.UV=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.UV;for(;e.pos<i;){let t=e.uint32();if(t>>>3==1)if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());else e.skipType(7&t)}return n},e})(),Si.Normal=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Normal;for(;e.pos<i;){let t=e.uint32();if(t>>>3==1)if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());else e.skipType(7&t)}return n},e})(),Si.Group=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.start=0,e.prototype.count=0,e.prototype.materialIndex=0,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Group;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.start=e.uint32();break;case 2:n.count=e.uint32();break;case 3:n.materialIndex=e.uint32();break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("start"))throw Ii.ProtocolError("missing required 'start'",{instance:n});if(!n.hasOwnProperty("count"))throw Ii.ProtocolError("missing required 'count'",{instance:n});if(!n.hasOwnProperty("materialIndex"))throw Ii.ProtocolError("missing required 'materialIndex'",{instance:n});return n},e})(),Si.Material=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.kd=null,e.prototype.ks=null,e.prototype.ke=null,e.prototype.mapkd="",e.prototype.mapks="",e.prototype.mapke="",e.prototype.norm="",e.prototype.mapbump="",e.prototype.bump="",e.prototype.mapd="",e.prototype.ns=0,e.prototype.d=0,e.prototype.tr=0,e.prototype.mapkdrepeat="",e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Material;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.kd=Si.Color.decode(e,e.uint32());break;case 2:n.ks=Si.Color.decode(e,e.uint32());break;case 3:n.ke=Si.Color.decode(e,e.uint32());break;case 4:n.mapkd=e.string();break;case 5:n.mapks=e.string();break;case 6:n.mapke=e.string();break;case 7:n.norm=e.string();break;case 8:n.mapbump=e.string();break;case 9:n.bump=e.string();break;case 10:n.mapd=e.string();break;case 11:n.ns=e.float();break;case 12:n.d=e.float();break;case 13:n.tr=e.float();break;case 14:n.mapkdrepeat=e.string();break;default:e.skipType(7&t)}}return n},e})(),Si.Color=(()=>{function e(e){if(this.rgb=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.rgb=Ii.emptyArray,e.decode=function(e,t){e instanceof Ei||(e=Ei.create(e));let i=void 0===t?e.len:e.pos+t,n=new Si.Color;for(;e.pos<i;){let t=e.uint32();if(t>>>3==1)if(n.rgb&&n.rgb.length||(n.rgb=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.rgb.push(e.float())}else n.rgb.push(e.float());else e.skipType(7&t)}return n},e})();var Fi={throttleRequests:!0,maxRequests:5},Di=function(){function e(e){void 0===e&&(e={}),this.props=ie(ie({},Fi),e),this.activeRequestCount=0,this.requestQueue=[],this.requestMap=new Map,this.deferred=null}return e.prototype.scheduleRequest=function(e,t){if(void 0===t&&(t=function(){return 0}),!this.props.throttleRequests)return Promise.resolve({done:function(){}});if(this.requestMap.has(e))return this.requestMap.get(e);var i={identiy:e,priority:0,getPriority:t,resolve:function(){}},n=new Promise((function(e){return i.resolve=e}));return this.requestQueue.push(i),this.requestMap.set(e,n),this.issueNewRequests(),n},e.prototype.issueRequest=function(e){var t=this,i=e.identiy,n=e.resolve,r=!1;this.activeRequestCount++,n({done:function(){r||(r=!0,t.requestMap.delete(i),t.activeRequestCount--,t.issueNewRequests())}})},e.prototype.issueNewRequests=function(){var e=this;this.deferred||(this.deferred=setTimeout((function(){return e.issueNewRequestsAsync()}),0))},e.prototype.issueNewRequestsAsync=function(){this.deferred=null;var e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(0!==e){this.updateAllRequests();for(var t=0;t<e;t++){var i=this.requestQueue.shift();i&&this.issueRequest(i)}}},e.prototype.updateAllRequests=function(){for(var e=this.requestQueue,t=0;t<e.length;t++){var i=e[t];this.updateRequest(i)||(e.splice(t,1),this.requestMap.delete(i.identiy),t--)}e.sort((function(e,t){return e.priority-t.priority}))},e.prototype.updateRequest=function(e){return e.priority=e.getPriority(e.identiy),!(e.priority<0)||(e.resolve(null),!1)},e}(),Li=function(e,t,i){this.item=e,this.previous=t,this.next=i},Oi=function(){function e(){this.head=null,this.tail=null,this._length=0}return Object.defineProperty(e.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),e.prototype.add=function(e){var t=new Li(e,this.tail,null);return this.tail?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),this._length++,t},e.prototype.remove=function(e){e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,this._length--},e.prototype.splice=function(e,t){e!==t&&(this.remove(t),this.insert(e,t))},e.prototype.insert=function(e,t){var i=e.next;e.next=t,this.tail===e?this.tail=t:i.previous=t,t.next=i,t.previous=e,this._length++},e}(),Ni=function(){function e(){this.list=new Oi,this.sentinel=this.list.add("sentinel")}return e.prototype.reset=function(){this.list.splice(this.list.tail,this.sentinel)},e.prototype.touch=function(e){var t=e.cacheNode;t&&this.list.splice(this.sentinel,t)},e.prototype.add=function(e,t){e.cacheNode||(e.cacheNode=this.list.add(e),t&&t(e))},e.prototype.unloadTile=function(e,t){var i=e.cacheNode;i&&(this.list.remove(i),e.cacheNode=void 0,t&&t(e))},e.prototype.unloadTiles=function(e,t){for(var i=this.list.head;i!==this.sentinel&&e();){var n=i.item;i=i.next,this.unloadTile(n,t)}},e}(),Vi=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),Ui=[new e.Vector3(1,0,0),new e.Vector3(0,1,0),new e.Vector3(0,0,1)],zi=new e.Vector3,qi=new e.Vector3,Hi=function(){function t(e){void 0===e&&(e=[]),this.planes=e}return Object.defineProperty(t,"MASK_OUTSIDE",{get:function(){return 4294967295},enumerable:!1,configurable:!0}),Object.defineProperty(t,"MASK_INSIDE",{get:function(){return 0},enumerable:!1,configurable:!0}),Object.defineProperty(t,"MASK_INDETERMINATE",{get:function(){return 2147483647},enumerable:!1,configurable:!0}),t.prototype.fromBoundingSphere=function(t){this.planes.length=2*Ui.length;for(var i=t.center,n=t.radius,r=0,o=0,a=Ui;o<a.length;o++){var s=a[o],l=this.planes[r],u=this.planes[r+1];l||(l=this.planes[r]=new e.Plane),u||(u=this.planes[r+1]=new e.Plane);var c=zi.copy(s).multiplyScalar(-n).add(i);l.setFromNormalAndCoplanarPoint(s,c);var h=zi.copy(s).multiplyScalar(n).add(i),d=qi.copy(s).negate();u.setFromNormalAndCoplanarPoint(d,h),r+=2}return this},t.prototype.computeVisibilityWithPlaneMask=function(e,i){if(i===t.MASK_OUTSIDE||i===t.MASK_INSIDE)return i;for(var n=t.MASK_INSIDE,r=this.planes,o=0;o<this.planes.length;++o){var a=o<31?1<<o:0;if(!(o<31&&0==(i&a))){var s=r[o],l=e.intersectPlane(s);if(l===Vi.OUTSIDE)return t.MASK_OUTSIDE;l===Vi.INTERSECTING&&(n|=a)}}return n},t}();var _i=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),Ki=new e.Vector3,ji=new e.Vector3,Gi=function(){function t(t,i){void 0===t&&(t=[0,0,0]),void 0===i&&(i=0),this.radius=-0,this.center=new e.Vector3,this.fromCenterRadius(t,i)}return t.prototype.fromCenterRadius=function(e,t){return this.center.fromArray(e),this.radius=t,this},t.prototype.fromCornerPoints=function(t,i){var n=Ki.fromArray(i);return this.center=(new e.Vector3).fromArray(t).add((new e.Vector3).fromArray(i)).multiplyScalar(.5),this.radius=this.center.distanceTo(n),this},t.prototype.equals=function(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius},t.prototype.clone=function(){return new t(this.center.toArray(),this.radius)},t.prototype.union=function(e){var t=this.center,i=this.radius,n=e.center,r=e.radius,o=Ki.copy(n).sub(t),a=o.length();if(i>=a+r)return this.clone();if(r>=a+i)return e.clone();var s=.5*(i+a+r);return ji.copy(o).multiplyScalar((-i+s)/a).add(t),this.center.copy(ji),this.radius=s,this},t.prototype.expand=function(e){var t=Ki.fromArray(e).sub(this.center).length();return t>this.radius&&(this.radius=t),this},t.prototype.transform=function(e){this.center.applyMatrix4(e);var t,i,n,r,o,a,s,l,u,c,h,d=(t=Ki.toArray(),i=e.toArray(),n=i[0],r=i[1],o=i[2],a=i[4],s=i[5],l=i[6],u=i[8],c=i[9],h=i[10],t[0]=Math.hypot(n,r,o),t[1]=Math.hypot(a,s,l),t[2]=Math.hypot(u,c,h),t);return this.radius=Math.max(d[0],Math.max(d[1],d[2]))*this.radius,this},t.prototype.distanceSquaredTo=function(e){var t=this.distanceTo(e);return t*t},t.prototype.distanceTo=function(e){var t=Ki.fromArray(e).sub(this.center);return Math.max(0,t.length()-this.radius)},t.prototype.intersectPlane=function(e){var t=this.center,i=this.radius,n=e.normal.dot(t)+e.constant;return n<-i?_i.OUTSIDE:n<i?_i.INTERSECTING:_i.INSIDE},t}(),Wi=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),Xi=new e.Vector3,Yi=new e.Vector3,Zi=new e.Vector3,Ji=new e.Vector3,$i=new e.Vector3,en=new e.Vector3,tn=new e.Vector3,nn=0,rn=1,on=2,an=3,sn=4,ln=5,un=6,cn=7,hn=8;function dn(t,i,n){void 0===n&&(n=new e.Vector3);for(var r=3*i,o=new Array(3),a=0;a<3;++a)o[a]=t.toArray()[r+a];return n.fromArray(o)}var pn=function(){function t(t,i){void 0===t&&(t=[0,0,0]),void 0===i&&(i=[0,0,0,0,0,0,0,0,0]),this.center=(new e.Vector3).fromArray(t),this.halfAxes=(new e.Matrix3).fromArray(i)}return t.prototype.clone=function(){return new t(this.center.toArray(),this.halfAxes.toArray())},t.prototype.equals=function(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)},t.prototype.getBoundingSphere=function(e){void 0===e&&(e=new Gi);var t=this.halfAxes,i=dn(t,0,Zi),n=dn(t,1,Ji),r=dn(t,2,$i),o=Xi.copy(i).add(n).add(r);return e.center.copy(this.center),e.radius=o.length(),e},t.prototype.intersectPlane=function(e){var t=this.center,i=e.normal,n=this.halfAxes.toArray(),r=i.x,o=i.y,a=i.z,s=Math.abs(r*n[nn]+o*n[rn]+a*n[on])+Math.abs(r*n[an]+o*n[sn]+a*n[ln])+Math.abs(r*n[un]+o*n[cn]+a*n[hn]),l=i.dot(t)+e.constant;return l<=-s?Wi.OUTSIDE:l>=s?Wi.INSIDE:Wi.INTERSECTING},t.prototype.distanceTo=function(e){return Math.sqrt(this.distanceSquaredTo(e))},t.prototype.distanceSquaredTo=function(e){var t=Yi.fromArray(e).sub(this.center),i=this.halfAxes,n=dn(i,0,Zi),r=dn(i,1,Ji),o=dn(i,2,$i),a=n.length(),s=r.length(),l=o.length();n.normalize(),r.normalize(),o.normalize();var u,c=0;return(u=Math.abs(t.dot(n))-a)>0&&(c+=u*u),(u=Math.abs(t.dot(r))-s)>0&&(c+=u*u),(u=Math.abs(t.dot(o))-l)>0&&(c+=u*u),c},t.prototype.computePlaneDistances=function(e,t,i){void 0===i&&(i=[-0,-0]);var n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=this.center,a=this.halfAxes,s=dn(a,0,Zi),l=dn(a,1,Ji),u=dn(a,2,$i),c=en.copy(s).add(l).add(u).add(o),h=tn.copy(c).sub(e),d=t.dot(h);return n=Math.min(d,n),r=Math.max(d,r),c.copy(o).add(s).add(l).sub(u),h.copy(c).sub(e),d=t.dot(h),n=Math.min(d,n),r=Math.max(d,r),c.copy(o).add(s).sub(l).add(u),h.copy(c).sub(e),d=t.dot(h),n=Math.min(d,n),r=Math.max(d,r),c.copy(o).add(s).sub(l).sub(u),h.copy(c).sub(e),d=t.dot(h),n=Math.min(d,n),r=Math.max(d,r),o.copy(c).sub(s).add(l).add(u),h.copy(c).sub(e),d=t.dot(h),n=Math.min(d,n),r=Math.max(d,r),o.copy(c).sub(s).add(l).sub(u),h.copy(c).sub(e),d=t.dot(h),n=Math.min(d,n),r=Math.max(d,r),o.copy(c).sub(s).sub(l).add(u),h.copy(c).sub(e),d=t.dot(h),n=Math.min(d,n),r=Math.max(d,r),o.copy(c).sub(s).sub(l).sub(u),h.copy(c).sub(e),d=t.dot(h),n=Math.min(d,n),r=Math.max(d,r),i[0]=n,i[1]=r,i},t.prototype.transform=function(t){var i=(new e.Matrix4).fromArray(t);this.center.applyMatrix4(i);var n=dn(this.halfAxes,0,Zi);n.applyMatrix4(i);var r=dn(this.halfAxes,1,Ji);r.applyMatrix4(i);var o=dn(this.halfAxes,2,$i);return o.applyMatrix4(i),this.halfAxes=(new e.Matrix3).fromArray(ne(ne(ne([],n.toArray(),!0),r.toArray(),!0),o.toArray(),!0)),this},t}();function fn(t,i){var n=i.toArray(),r=t.toArray(),o=[0,0,0],a=r[0],s=r[1],l=r[2],u=n[3]*a+n[7]*s+n[11]*l||1;return o[0]=(n[0]*a+n[4]*s+n[8]*l)/u,o[1]=(n[1]*a+n[5]*s+n[9]*l)/u,o[2]=(n[2]*a+n[6]*s+n[10]*l)/u,(new e.Vector3).fromArray(o)}function An(e,t){var i=function(e,t,i){var n=i[0],r=i[1],o=i[2],a=i[3],s=t[0],l=t[1],u=t[2],c=r*u-o*l,h=o*s-n*u,d=n*l-r*s,p=r*d-o*h,f=o*c-n*d,A=n*h-r*c,v=2*a;return c*=v,h*=v,d*=v,p*=2,f*=2,A*=2,e[0]=s+c+p,e[1]=l+h+f,e[2]=u+d+A,e}([0,0,0],e.toArray(),t.toArray());e.fromArray(i)}function vn(t,i){if(t.box)return function(t,i){var n=new e.Vector3(t[0],t[1],t[2]);n.applyMatrix4(i);var r=[];if(10===t.length){var o=t.slice(3,6),a=new e.Quaternion;a.fromArray(t,6);var s=new e.Vector3(1,0,0),l=new e.Vector3(0,1,0),u=new e.Vector3(0,0,1);An(s,a),s.multiplyScalar(o[0]),An(l,a),l.multiplyScalar(o[1]),An(u,a),u.multiplyScalar(o[2]),r=ne(ne(ne([],s.toArray(),!0),l.toArray(),!0),u.toArray(),!0)}else r=ne(ne(ne([],t.slice(3,6),!0),t.slice(6,9),!0),t.slice(9,12),!0);var c=fn((new e.Vector3).fromArray(r.slice(0,3)),i).toArray(),h=fn((new e.Vector3).fromArray(r.slice(3,6)),i).toArray(),d=fn((new e.Vector3).fromArray(r.slice(6,9)),i).toArray(),p=(new e.Matrix3).fromArray([c[0],c[1],c[2],h[0],h[1],h[2],d[0],d[1],d[2]]);return new pn(n.toArray(),p.toArray())}(t.box,i);throw new Error("3D Tile: boundingVolume must only can be box")}function mn(e,t){if(e.dynamicScreenSpaceError&&e.dynamicScreenSpaceErrorComputedDensity){var i=e.dynamicScreenSpaceErrorComputedDensity,n=e.dynamicScreenSpaceErrorFactor,r=function(e,t){var i=e*t;return 1-Math.exp(-i*i)}(t,i)*n;return r}return 0}function gn(e,t,i){var n=new TextDecoder("utf8"),r=new Uint8Array(e,t,i);return n.decode(r)}function yn(e,t,i){return void 0===i&&(i=0),i=function(e,t,i){void 0===i&&(i=0);var n=e.header,r=n.featureTableJsonByteLength,o=n.featureTableBinaryByteLength,a=n.batchLength;if(e.featureTableJson={BATCH_LENGTH:a||0},r>0){var s=gn(t,i,r);e.featureTableJson=JSON.parse(s)}return i+=r,e.featureTableBinary=new Uint8Array(t,i,o),i+=o}(e,t,i),i=function(e,t,i){void 0===i&&(i=0);var n=e.header,r=n.batchTableJsonByteLength,o=n.batchTableBinaryByteLength;if(r>0){var a=gn(t,i,r);e.batchTableJson=JSON.parse(a),i+=r,o>0&&(e.batchTableBinary=new Uint8Array(t,i,o),e.batchTableBinary=new Uint8Array(e.batchTableBinary),i+=o)}return i}(e,t,i),i}function bn(e,t,i){void 0===i&&(i=0);var n=e.byteOffset+e.byteLength-i;if(0===n)throw new Error("glTF byte length must be greater than 0.");return e.rotateYtoZ=!0,e.gltfUpAxis="Y",e.gltfArrayBuffer=function(e,t,i){var n=void 0!==i?new Uint8Array(e).subarray(t,t+i):new Uint8Array(e).subarray(t);return new Uint8Array(n).buffer}(t,i,n),e.gltfByteOffset=0,e.gltfByteLength=n,i%4==0||console.warn("".concat(e.type,": embedded glb is not aligned to a 4-byte boundary.")),e.byteOffset+e.byteLength}function xn(e,t,i){i=function(e,t,i){void 0===i&&(i=0);var n=new DataView(t);if(e.magic=n.getUint32(i,!0),i+=4,e.version=n.getUint32(i,!0),i+=4,e.byteLength=n.getUint32(i,!0),i+=4,1!==e.version)throw new Error("3D Tile Version ".concat(e.version," not supported"));return i}(e,t,i),i=function(e,t,i){void 0===i&&(i=0);var n,r=new DataView(t);e.header=e.header||{};var o=r.getUint32(i,!0);i+=4;var a=r.getUint32(i,!0);i+=4;var s=r.getUint32(i,!0);i+=4;var l=r.getUint32(i,!0);return i+=4,s>=570425344?(i-=8,n=o,s=a,l=0,o=0,a=0,console.warn("b3dm tile in legacy format.")):l>=570425344&&(i-=4,n=s,s=o,l=a,o=0,a=0,console.warn("b3dm tile in legacy format.")),e.header.featureTableJsonByteLength=o,e.header.featureTableBinaryByteLength=a,e.header.batchTableJsonByteLength=s,e.header.batchTableBinaryByteLength=l,e.header.batchLength=n,i}(e,t,i),i=bn(e,t,i=yn(e,t,i));var n=e.featureTableJson.RTC_CENTER;return n&&Number.isFinite(n.byteOffset)&&(e.rtcCenter=new Float32Array(e.featureTableBinary.buffer,e.featureTableBinary.buffer.byteOffset+n.byteOffset,3)),i}var wn=function(){function t(t,i,n){this.header=i,this.tileset=t,this.parent=n,this.children=[],this.contentState="UNLOADED",this.transform=this.header.transform?(new e.Matrix4).fromArray(this.header.transform.slice()):new e.Matrix4;var r=this.parent&&this.parent.computedTransform?this.parent.computedTransform.clone():t.modelMatrix.clone();this.computedTransform=r.clone().multiply(this.transform),this.boundingVolume=vn(this.header.boundingVolume,this.computedTransform),this.depth=this.parent?this.parent.depth+1:0,this.distanceToCamera=0,this.centerZDepth=0,this.screenSpaceError=0,this.shouldRefine=!1,this.visibilityPlaneMask=Hi.MASK_INDETERMINATE,this.visible=!1,this.selectionDepth=0,this.frameNumber=0,this.touchedFrameNumber=0,this.selectedFrameNumber=0,this.requestedFrameNumber=0}return Object.defineProperty(t.prototype,"id",{get:function(){return this.header.id},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"refine",{get:function(){return this.header.refine||this.parent&&this.parent.refine||"REPLACE"},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this.header.type},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentUrl",{get:function(){if(this.header.content.uri){var e=this.tileset.b3dmMapping.b3dm_base_url;e=/\/$/.test(e)?e:e+"/";var t=this.tileset.b3dmMapping.b3dm_url[this.header.content.uri];t=/^\//.test(t)?t.slice(1):t;var i=/^https?:/.test(t)?t:e+t;if(-1!==i.indexOf("http")&&-1===i.indexOf("https")){var n=i.slice(4);i="https"+n}return i}return this.header.contentUrl},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricType",{get:function(){return this.header.lodMetricType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricValue",{get:function(){return this.header.lodMetricValue},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasEmptyContent",{get:function(){return!this.header.contentUrl},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"selected",{get:function(){return this.selectedFrameNumber===this.tileset.frameNumber},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasRenderContent",{get:function(){return!this.hasEmptyContent},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasChildren",{get:function(){return this.children.length>0||this.header.children&&this.header.children.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentReady",{get:function(){return"READY"===this.contentState||this.hasEmptyContent},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentAvailable",{get:function(){return Boolean(this.contentReady&&this.hasRenderContent||!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasUnloadedContent",{get:function(){return this.hasRenderContent&&this.contentUnloaded},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentUnloaded",{get:function(){return"UNLOADED"===this.contentState},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentFailed",{get:function(){return"FAILED"===this.contentState},enumerable:!1,configurable:!0}),t.prototype.getScreenSpaceError=function(e,t){if("TILES3D"===this.tileset.type)return function(e,t,i){var n=e.tileset,r=e.parent&&e.parent.lodMetricValue||e.lodMetricValue,o=i?r:e.lodMetricValue;if(0===o)return 0;var a=Math.max(e.distanceToCamera,1e-7),s=n.options.viewDistanceScale,l=o*t.height*s/(a*t.sseDenominator);return l-mn(n,a)}(this,e,t);throw new Error("Unsupported tileset type")},t.prototype.getPriority=function(){var e=this.tileset.traverser,t=e.options.skipLevelOfDetail,i="ADD"===this.refine||t;if(i&&!this.visible)return-1;if(this.tileset.frameNumber-this.touchedFrameNumber>=1)return-1;if("UNLOADED"===this.contentState)return-1;var n=this.parent,r=n&&(!i||0===this.screenSpaceError)?n.screenSpaceError:this.screenSpaceError,o=e.root?e.root.screenSpaceError:0;return Math.max(o-r,0)},t.prototype.loadContent=function(){var e=this;return this.hasEmptyContent||!this.contentUrl?Promise.resolve(!1):this.content?Promise.resolve(!0):(this.contentState="LOADING",this.tileset.requestScheduler.scheduleRequest(this.id,(function(){return e.getPriority()})).then((function(t){return t?Ie(e.contentUrl,{responseType:"arraybuffer",allowHosts:e.tileset.options.allowHosts,networkSubscribe:e.tileset.options.networkSubscribe,requestProxy:e.tileset.options.requestProxy}).then((function(e){return e.body})).then((function(e){return xn(t={byteOffset:0,type:"b3dm"},e,t.byteOffset),t;var t})).then((function(i){return e.content=i,e.tileset.options.contentLoader(e).then((function(){return e.contentState="READY",t.done(),!0}))})).catch((function(i){return e.contentState="FAILED",t.done(),Promise.reject(i)})):(e.contentState="UNLOADED",Promise.resolve(!1))})))},t.prototype.unloadContent=function(){this.content=void 0,this.contentState="UNLOADED"},t.prototype.updateVisibility=function(e){if(this.frameNumber!==e.frameNumber){var t=this.parent,i=t?t.visibilityPlaneMask:Hi.MASK_INDETERMINATE,n=t?t.computedTransform:this.tileset.modelMatrix;this.updateTransform(n),this.distanceToCamera=this.distanceToTile(e),this.screenSpaceError=this.getScreenSpaceError(e,!1),this.visibilityPlaneMask=this.visibility(e,i),this.visible=this.visibilityPlaneMask!==Hi.MASK_OUTSIDE,this.frameNumber=e.frameNumber}},t.prototype.visibility=function(e,t){return e.cullingVolume.computeVisibilityWithPlaneMask(this.boundingVolume,t)},t.prototype.distanceToTile=function(e){return Math.sqrt(Math.max(this.boundingVolume.distanceSquaredTo(e.camera.position),0))},t.prototype.updateTransform=function(t){void 0===t&&(t=new e.Matrix4);var i=t.clone().multiply(this.transform);!i.equals(this.computedTransform)&&(this.computedTransform.copy(i),this.boundingVolume=vn(this.header.boundingVolume,this.computedTransform))},t}(),Mn=function(){function e(){this.map=new Map,this.array=[],this._length=0}return Object.defineProperty(e.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),e.prototype.get=function(e){return this.array[e]},e.prototype.set=function(e,t){e>=this.length&&(this._length=e+1),this.map.has(this.array[e])&&this.map.delete(this.array[e]),this.array[e]=t,this.map.set(t,e)},e.prototype.delete=function(e){var t=this.map.get(e);void 0!==t&&t>=0&&(this.array.splice(t,1),this.map.delete(e),this._length--)},e.prototype.push=function(e){if(!this.map.has(e)){var t=this._length++;this.array[t]=e,this.map.set(e,t)}},e.prototype.pop=function(){var e=this.array[--this._length];return this.map.delete(e),e},e.prototype.reset=function(){this.array=[],this.map=new Map,this._length=0},e.prototype.find=function(e){return this.map.has(e)},e}(),Cn=function(){function e(e){this.options=e,this._traversalStack=new Mn,this._emptyTraversalStack=new Mn,this._frameNumber=null,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={}}return e.prototype.traverse=function(e,t){this.root=e,this.reset(),this.updateTile(e,t),this._frameNumber=t.frameNumber,this.executeTraversal(e,t)},e.prototype.reset=function(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()},e.prototype.executeTraversal=function(e,t){var i=this._traversalStack;for(e.selectionDepth=1,i.push(e);i.length>0;){var n=i.pop(),r=!1;if(this.canTraverse(n,t)){this.updateChildTiles(n,t);var o=n.hasRenderContent?n.selectionDepth+1:n.selectionDepth;r=this.updateAndPushChildren(n,t,i,o)}var a=n.parent,s=Boolean(!a||a.shouldRefine),l=!r;n.hasRenderContent?"ADD"===n.refine?(this.loadTile(n,t),this.selectTile(n,t)):"REPLACE"===n.refine&&(this.loadTile(n,t),l&&this.selectTile(n,t)):(this.emptyTiles[n.id]=n,this.loadTile(n,t),l&&this.selectTile(n,t)),this.touchTile(n,t),n.shouldRefine=r&&s}this.options.onTraversalEnd(t)},e.prototype.updateChildTiles=function(e,t){for(var i=0,n=e.children;i<n.length;i++){var r=n[i];this.updateTile(r,t)}return!0},e.prototype.updateAndPushChildren=function(e,t,i,n){var r=this.options,o=r.loadSiblings,a=r.skipLevelOfDetail,s=e.children;s.sort(this.compareDistanceToCamera.bind(this));for(var l="REPLACE"===e.refine&&e.hasRenderContent&&!a,u=!1,c=!0,h=0,d=s;h<d.length;h++){var p=d[h];if(p.selectionDepth=n,p.visible?(i.find(p)&&i.delete(p),i.push(p),u=!0):(l||o)&&(this.loadTile(p,t),this.touchTile(p,t)),l){var f=void 0;if(f=p.hasRenderContent?p.contentAvailable:this.executeEmptyTraversal(p,t),!(c=c&&f))return!1}}return u||(c=!1),c},e.prototype.updateTile=function(e,t){this.updateTileVisibility(e,t)},e.prototype.selectTile=function(e,t){this.shouldSelectTile(e)&&(e.selectedFrameNumber=t.frameNumber,this.selectedTiles[e.id]=e)},e.prototype.loadTile=function(e,t){this.shouldLoadTile(e)&&(e.requestedFrameNumber=t.frameNumber,this.requestedTiles[e.id]=e)},e.prototype.touchTile=function(e,t){e.tileset.cache.touch(e),e.touchedFrameNumber=t.frameNumber},e.prototype.canTraverse=function(e,t,i,n){return void 0===i&&(i=!1),void 0===n&&(n=!1),!!e.hasChildren&&(!(!n&&!e.visible)&&this.shouldRefine(e,t,i))},e.prototype.shouldLoadTile=function(e){var t=!this.options||e.depth<=this.options.maxDepth;return e.hasUnloadedContent&&t},e.prototype.shouldSelectTile=function(e){var t=!this.options.hasOwnProperty("maxDepth")||e.depth<=this.options.maxDepth;return e.contentAvailable&&!this.options.skipLevelOfDetail&&t},e.prototype.shouldRefine=function(e,t,i){var n=e.screenSpaceError;return i&&(n=e.getScreenSpaceError(t,!0)),n>this.options.maxScreenSpaceError},e.prototype.updateTileVisibility=function(e,t){if(e.updateVisibility(t),e.visible){var i=e.children.length>0;this.meetsScreenSpaceErrorEarly(e,t)?e.visible=!1:"REPLACE"!==e.refine||!i||this.anyChildrenVisible(e,t)||(e.visible=!1)}},e.prototype.meetsScreenSpaceErrorEarly=function(e,t){var i=e.parent;return!(!i||"ADD"!==i.refine)&&!this.shouldRefine(e,t,!0)},e.prototype.compareDistanceToCamera=function(e,t){return 0===t.distanceToCamera&&0===e.distanceToCamera?t.centerZDepth-e.centerZDepth:t.distanceToCamera-e.distanceToCamera},e.prototype.anyChildrenVisible=function(e,t){for(var i=!1,n=0,r=e.children;n<r.length;n++){var o=r[n];o.updateVisibility(t),i=i||o.visible}return i},e.prototype.everyChildrenVisibleIsLoaded=function(e){for(var t=!0,i=0,n=e.children;i<n.length;i++){var r=n[i];r.visible&&"READY"!==r.contentState&&(t=!1)}return t},e.prototype.executeEmptyTraversal=function(e,t){var i=!0,n=this._emptyTraversalStack;for(n.push(e);n.length>0&&i;){var r=n.pop();if(this.updateTile(r,t),r.visible||this.loadTile(r,t),this.touchTile(r,t),!r.hasRenderContent&&this.canTraverse(r,t,!1,!0))for(var o=0,a=r.children;o<a.length;o++){var s=a[o];n.find(s)&&n.delete(s),n.push(s)}else r.contentAvailable||(i=!1)}return i},e}();function En(e){for(var t=[],i=0,n=Object.keys(e);i<n.length;i++){var r=n[i];t.push(e[r])}return t}var In=function(){function t(e,t){var i=this;this.rawJson=e,this.b3dmMapping=e.b3dmMapping,this.options=t,this.traverser=new Cn({loadSiblings:!1,maxScreenSpaceError:this.options.maxScreenSpaceError,skipLevelOfDetail:!1,maxDepth:this.options.maxDepth,onTraversalEnd:function(e){return i.onTraversalEnd(e)}}),this.cache=new Ni,this.requestScheduler=new Di({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.frameNumber=0,this.pendingCount=0,this._tiles={},this.selectedTiles=[],this.requestedTiles=[],this.memoryUsageInBytes=0,this.root=new wn(this,e.root);for(var n=[this.root];n.length>0;)for(var r=n.pop(),o=0,a=r.header.children||[];o<a.length;o++){var s=a[o],l=new wn(this,s,r);l.depth=r.depth+1,r.children.push(l),n.push(l)}}return Object.defineProperty(t.prototype,"maxMemoryUsage",{get:function(){return this.options.maxMemoryUsage},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"asset",{get:function(){return this.rawJson.asset},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this.rawJson.type},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"basePath",{get:function(){return this.rawJson.basePath},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"modelMatrix",{get:function(){return this.options.modelMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"geometricError",{get:function(){return this.rawJson.geometricError},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricType",{get:function(){return this.rawJson.lodMetricType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricValue",{get:function(){return this.rawJson.lodMetricValue},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"refine",{get:function(){return this.rawJson.root.refine},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tiles",{get:function(){return En(this._tiles)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"floorInfo",{get:function(){return this.rawJson.floorInfo||this.rawJson.floor_info||[]},enumerable:!1,configurable:!0}),t.prototype.reset=function(){for(var e=[this.root];e.length>0;){for(var t=e.pop(),i=0,n=t.children;i<n.length;i++){var r=n[i];e.push(r)}this.cache.unloadTile(t),this.unloadTile(t)}this.cache.reset(),this.traverser.reset(),this.selectedTiles=[],this.requestedTiles=[]},t.prototype.isLoaded=function(){return 0===this.pendingCount&&0!==this.frameNumber},t.prototype.onTraversalEnd=function(t){var i=this,n=(new e.Vector3).fromArray(t.camera.position);this.selectedTiles=this.options.onTraversalComplete(En(this.traverser.selectedTiles)),this.requestedTiles=En(this.traverser.requestedTiles).slice().sort((function(e,t){return e.boundingVolume.center.distanceTo(n)-t.boundingVolume.center.distanceTo(n)}));for(var r=0,o=this.selectedTiles;r<o.length;r++){var a=o[r];this._tiles[a.id]=a}for(var s=0,l=this.requestedTiles;s<l.length;s++){(a=l[s]).contentUnloaded&&this.loadTile(a)}this.cache.unloadTiles((function(){return i.memoryUsageInBytes>1024*i.maxMemoryUsage*1024}),(function(e){return i.unloadTile(e)}))},t.prototype.loadTile=function(e){var t=this;this.pendingCount++,e.loadContent().catch((function(i){var n=i.message||i.toString();return console.error("A 3D tile failed to load: ".concat(e.id," ").concat(n)),t.options.onTileError(e,n),!1})).then((function(i){t.pendingCount--,i&&(t.cache.add(e,(function(){e.content&&(t.memoryUsageInBytes+=e.content.byteLength||0)})),t.options.onTileLoad(e))}))},t.prototype.unloadTile=function(e){this.memoryUsageInBytes-=e.content&&e.content.byteLength||0,this.options.onTileUnload(e),e.unloadContent()},t}();function Sn(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function Bn(){return(Sn()+Sn()+"-"+Sn()+"-4"+Sn().substr(0,3)+"-"+Sn()+"-"+Sn()+Sn()+Sn()).toLowerCase()}function Tn(e,t){var i;return e.content&&(e.contentUrl="".concat(t,"/").concat(e.content.uri||e.content.url)),e.id=null!==(i=e.contentUrl)&&void 0!==i?i:"empty:"+Bn(),e.lodMetricType="geometricError",e.lodMetricValue=e.geometricError,e.transformMatrix=e.transform,e.type=e.contentUrl?"SCENEGRAPH":"EMPTY",e.refine=function(e){switch(e){case"REPLACE":case"replace":return"REPLACE";case"ADD":case"add":return"ADD";default:throw new Error("refine ".concat(e," is not supported."))}}(e.refine),e}function Pn(e,t){var i,n=JSON.parse(JSON.stringify(e));return n.basePath=t,n.root=function(e,t){e=Tn(e,t);var i=[];for(i.push(e);i.length>0;)for(var n=0,r=(i.pop()||{}).children||[];n<r.length;n++){var o=r[n];Tn(o,t),i.push(o)}return e}(n.root,t),n.type="TILES3D",n.lodMetricType="geometricError",n.lodMetricValue=(null===(i=n.root)||void 0===i?void 0:i.lodMetricValue)||0,n}var Rn=function(){function t(t){e.Loader.call(this,t),this.dracoLoader=null,this.ddsLoader=null}function i(){var e={};return{get:function(t){return e[t]},add:function(t,i){e[t]=i},remove:function(t){delete e[t]},removeAll:function(){e={}}}}t.prototype=Object.assign(Object.create(e.Loader.prototype),{constructor:t,load:function(t,i,n,r){var o,a=this;o=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:e.LoaderUtils.extractUrlBase(t),a.manager.itemStart(t);var s=function(e){r?r(e):console.error(e),a.manager.itemError(t),a.manager.itemEnd(t)},l=new e.FileLoader(a.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),"use-credentials"===a.crossOrigin&&l.setWithCredentials(!0),l.load(t,(function(e){try{a.parse(e,o,(function(e){i(e),a.manager.itemEnd(t)}),s)}catch(e){s(e)}}),n,s)},setDRACOLoader:function(e){return this.dracoLoader=e,this},setDDSLoader:function(e){return this.ddsLoader=e,this},parse:function(t,i,u,c){var f,m={};if("string"==typeof t)f=t;else if(e.LoaderUtils.decodeText(new Uint8Array(t,0,4))===l){try{m[n.KHR_BINARY_GLTF]=new h(t)}catch(e){return void(c&&c(e))}f=m[n.KHR_BINARY_GLTF].content}else f=e.LoaderUtils.decodeText(new Uint8Array(t));var g=JSON.parse(f);if(void 0===g.asset||g.asset.version[0]<2)c&&c(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));else{if(g.extensionsUsed)for(var y=0;y<g.extensionsUsed.length;++y){var b=g.extensionsUsed[y],x=g.extensionsRequired||[];switch(b){case n.KHR_LIGHTS_PUNCTUAL:m[b]=new o(g);break;case n.KHR_MATERIALS_CLEARCOAT:m[b]=new s;break;case n.KHR_MATERIALS_UNLIT:m[b]=new a;break;case n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:m[b]=new A;break;case n.KHR_DRACO_MESH_COMPRESSION:m[b]=new d(g,this.dracoLoader);break;case n.MSFT_TEXTURE_DDS:m[b]=new r(this.ddsLoader);break;case n.KHR_TEXTURE_TRANSFORM:m[b]=new p;break;case n.KHR_MESH_QUANTIZATION:m[b]=new v;break;default:x.indexOf(b)>=0&&console.warn('THREE.GLTFLoader: Unknown extension "'+b+'".')}}var w=new z(g,m,{path:i||this.resourcePath||"",crossOrigin:this.crossOrigin,manager:this.manager});w.fileLoader.setRequestHeader(this.requestHeader),w.parse(u,c)}}});var n={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",MSFT_TEXTURE_DDS:"MSFT_texture_dds"};function r(e){if(!e)throw new Error("THREE.GLTFLoader: Attempting to load .dds texture without importing DDSLoader");this.name=n.MSFT_TEXTURE_DDS,this.ddsLoader=e}function o(e){this.name=n.KHR_LIGHTS_PUNCTUAL;var t=e.extensions&&e.extensions[n.KHR_LIGHTS_PUNCTUAL]||{};this.lightDefs=t.lights||[]}function a(){this.name=n.KHR_MATERIALS_UNLIT}function s(){this.name=n.KHR_MATERIALS_CLEARCOAT}o.prototype.loadLight=function(t){var i,n=this.lightDefs[t],r=new e.Color(16777215);void 0!==n.color&&r.fromArray(n.color);var o=void 0!==n.range?n.range:0;switch(n.type){case"directional":(i=new e.DirectionalLight(r)).target.position.set(0,0,-1),i.add(i.target);break;case"point":(i=new e.PointLight(r)).distance=o;break;case"spot":(i=new e.SpotLight(r)).distance=o,n.spot=n.spot||{},n.spot.innerConeAngle=void 0!==n.spot.innerConeAngle?n.spot.innerConeAngle:0,n.spot.outerConeAngle=void 0!==n.spot.outerConeAngle?n.spot.outerConeAngle:Math.PI/4,i.angle=n.spot.outerConeAngle,i.penumbra=1-n.spot.innerConeAngle/n.spot.outerConeAngle,i.target.position.set(0,0,-1),i.add(i.target);break;default:throw new Error('THREE.GLTFLoader: Unexpected light type, "'+n.type+'".')}return i.position.set(0,0,0),i.decay=2,void 0!==n.intensity&&(i.intensity=n.intensity),i.name=n.name||"light_"+t,Promise.resolve(i)},a.prototype.getMaterialType=function(){return e.MeshBasicMaterial},a.prototype.extendParams=function(t,i,n){var r=[];t.color=new e.Color(1,1,1),t.opacity=1;var o=i.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){var a=o.baseColorFactor;t.color.fromArray(a),t.opacity=a[3]}void 0!==o.baseColorTexture&&r.push(n.assignTexture(t,"map",o.baseColorTexture))}return Promise.all(r)},s.prototype.getMaterialType=function(){return e.MeshPhysicalMaterial},s.prototype.extendParams=function(t,i,n){var r=[],o=i.extensions[this.name];if(void 0!==o.clearcoatFactor&&(t.clearcoat=o.clearcoatFactor),void 0!==o.clearcoatTexture&&r.push(n.assignTexture(t,"clearcoatMap",o.clearcoatTexture)),void 0!==o.clearcoatRoughnessFactor&&(t.clearcoatRoughness=o.clearcoatRoughnessFactor),void 0!==o.clearcoatRoughnessTexture&&r.push(n.assignTexture(t,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),void 0!==o.clearcoatNormalTexture&&(r.push(n.assignTexture(t,"clearcoatNormalMap",o.clearcoatNormalTexture)),void 0!==o.clearcoatNormalTexture.scale)){var a=o.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new e.Vector2(a,a)}return Promise.all(r)};var l="glTF",u=1313821514,c=5130562;function h(t){this.name=n.KHR_BINARY_GLTF,this.content=null,this.body=null;var i=new DataView(t,0,12);if(this.header={magic:e.LoaderUtils.decodeText(new Uint8Array(t.slice(0,4))),version:i.getUint32(4,!0),length:i.getUint32(8,!0)},this.header.magic!==l)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");for(var r=new DataView(t,12),o=0;o<r.byteLength;){var a=r.getUint32(o,!0);o+=4;var s=r.getUint32(o,!0);if(o+=4,s===u){var h=new Uint8Array(t,12+o,a);this.content=e.LoaderUtils.decodeText(h)}else if(s===c){var d=12+o;this.body=t.slice(d,d+a)}o+=a}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}function d(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=n.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}function p(){this.name=n.KHR_TEXTURE_TRANSFORM}function f(t){e.MeshStandardMaterial.call(this),this.isGLTFSpecularGlossinessMaterial=!0;var i=["#ifdef USE_SPECULARMAP","\tuniform sampler2D specularMap;","#endif"].join("\n"),n=["#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","#endif"].join("\n"),r=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\ttexelSpecular = sRGBToLinear( texelSpecular );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","\tspecularFactor *= texelSpecular.rgb;","#endif"].join("\n"),o=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","#endif"].join("\n"),a=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb;","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.","material.specularRoughness += geometryRoughness;","material.specularRoughness = min( material.specularRoughness, 1.0 );","material.specularColor = specularFactor.rgb;"].join("\n"),s={specular:{value:(new e.Color).setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=s,this.onBeforeCompile=function(e){for(var t in s)e.uniforms[t]=s[t];e.fragmentShader=e.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;"),e.fragmentShader=e.fragmentShader.replace("uniform float metalness;","uniform float glossiness;"),e.fragmentShader=e.fragmentShader.replace("#include <roughnessmap_pars_fragment>",i),e.fragmentShader=e.fragmentShader.replace("#include <metalnessmap_pars_fragment>",n),e.fragmentShader=e.fragmentShader.replace("#include <roughnessmap_fragment>",r),e.fragmentShader=e.fragmentShader.replace("#include <metalnessmap_fragment>",o),e.fragmentShader=e.fragmentShader.replace("#include <lights_physical_fragment>",a)},Object.defineProperties(this,{specular:{get:function(){return s.specular.value},set:function(e){s.specular.value=e}},specularMap:{get:function(){return s.specularMap.value},set:function(e){s.specularMap.value=e}},glossiness:{get:function(){return s.glossiness.value},set:function(e){s.glossiness.value=e}},glossinessMap:{get:function(){return s.glossinessMap.value},set:function(e){s.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_ROUGHNESSMAP=""):(delete this.defines.USE_ROUGHNESSMAP,delete this.defines.USE_GLOSSINESSMAP)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(t)}function A(){return{name:n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,specularGlossinessParams:["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"],getMaterialType:function(){return f},extendParams:function(t,i,n){var r=i.extensions[this.name];t.color=new e.Color(1,1,1),t.opacity=1;var o=[];if(Array.isArray(r.diffuseFactor)){var a=r.diffuseFactor;t.color.fromArray(a),t.opacity=a[3]}if(void 0!==r.diffuseTexture&&o.push(n.assignTexture(t,"map",r.diffuseTexture)),t.emissive=new e.Color(0,0,0),t.glossiness=void 0!==r.glossinessFactor?r.glossinessFactor:1,t.specular=new e.Color(1,1,1),Array.isArray(r.specularFactor)&&t.specular.fromArray(r.specularFactor),void 0!==r.specularGlossinessTexture){var s=r.specularGlossinessTexture;o.push(n.assignTexture(t,"glossinessMap",s)),o.push(n.assignTexture(t,"specularMap",s))}return Promise.all(o)},createMaterial:function(t){var i=new f(t);return i.fog=!0,i.color=t.color,i.map=void 0===t.map?null:t.map,i.lightMap=null,i.lightMapIntensity=1,i.aoMap=void 0===t.aoMap?null:t.aoMap,i.aoMapIntensity=1,i.emissive=t.emissive,i.emissiveIntensity=1,i.emissiveMap=void 0===t.emissiveMap?null:t.emissiveMap,i.bumpMap=void 0===t.bumpMap?null:t.bumpMap,i.bumpScale=1,i.normalMap=void 0===t.normalMap?null:t.normalMap,i.normalMapType=e.TangentSpaceNormalMap,t.normalScale&&(i.normalScale=t.normalScale),i.displacementMap=null,i.displacementScale=1,i.displacementBias=0,i.specularMap=void 0===t.specularMap?null:t.specularMap,i.specular=t.specular,i.glossinessMap=void 0===t.glossinessMap?null:t.glossinessMap,i.glossiness=t.glossiness,i.alphaMap=null,i.envMap=void 0===t.envMap?null:t.envMap,i.envMapIntensity=1,i.refractionRatio=.98,i}}}function v(){this.name=n.KHR_MESH_QUANTIZATION}function m(t,i,n,r){e.Interpolant.call(this,t,i,n,r)}d.prototype.decodePrimitive=function(e,t){var i=this.json,n=this.dracoLoader,r=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,a={},s={},l={};for(var u in o){var c=T[u]||u.toLowerCase();a[c]=o[u]}for(u in e.attributes){c=T[u]||u.toLowerCase();if(void 0!==o[u]){var h=i.accessors[e.attributes[u]],d=E[h.componentType];l[c]=d,s[c]=!0===h.normalized}}return t.getDependency("bufferView",r).then((function(e){return new Promise((function(t){n.decodeDracoFile(e,(function(e){for(var i in e.attributes){var n=e.attributes[i],r=s[i];void 0!==r&&(n.normalized=r)}t(e)}),a,l)}))}))},p.prototype.extendTexture=function(e,t){return e=e.clone(),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),void 0!==t.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),e.needsUpdate=!0,e},f.prototype=Object.create(e.MeshStandardMaterial.prototype),f.prototype.constructor=f,f.prototype.copy=function(t){return e.MeshStandardMaterial.prototype.copy.call(this,t),this.specularMap=t.specularMap,this.specular.copy(t.specular),this.glossinessMap=t.glossinessMap,this.glossiness=t.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this},m.prototype=Object.create(e.Interpolant.prototype),m.prototype.constructor=m,m.prototype.copySampleValue_=function(e){for(var t=this.resultBuffer,i=this.sampleValues,n=this.valueSize,r=e*n*3+n,o=0;o!==n;o++)t[o]=i[r+o];return t},m.prototype.beforeStart_=m.prototype.copySampleValue_,m.prototype.afterEnd_=m.prototype.copySampleValue_,m.prototype.interpolate_=function(e,t,i,n){for(var r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=2*a,l=3*a,u=n-t,c=(i-t)/u,h=c*c,d=h*c,p=e*l,f=p-l,A=-2*d+3*h,v=d-h,m=1-A,g=v-h+c,y=0;y!==a;y++){var b=o[f+y+a],x=o[f+y+s]*u,w=o[p+y+a],M=o[p+y]*u;r[y]=m*b+g*x+A*w+v*M}return r};var g=0,y=1,b=2,x=3,w=4,M=5,C=6,E={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},I={9728:e.NearestFilter,9729:e.LinearFilter,9984:e.NearestMipmapNearestFilter,9985:e.LinearMipmapNearestFilter,9986:e.NearestMipmapLinearFilter,9987:e.LinearMipmapLinearFilter},S={33071:e.ClampToEdgeWrapping,33648:e.MirroredRepeatWrapping,10497:e.RepeatWrapping},B={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},T={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},P={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},R={CUBICSPLINE:void 0,LINEAR:e.InterpolateLinear,STEP:e.InterpolateDiscrete},k="OPAQUE",Q="MASK",F="BLEND",D={"image/png":e.RGBAFormat,"image/jpeg":e.RGBFormat};function L(e,t){return"string"!=typeof e||""===e?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}function O(e,t,i){for(var n in i.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=i.extensions[n])}function N(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function V(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(var i=0,n=t.weights.length;i<n;i++)e.morphTargetInfluences[i]=t.weights[i];if(t.extras&&Array.isArray(t.extras.targetNames)){var r=t.extras.targetNames;if(e.morphTargetInfluences.length===r.length){e.morphTargetDictionary={};for(i=0,n=r.length;i<n;i++)e.morphTargetDictionary[r[i]]=i}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function U(e){for(var t="",i=Object.keys(e).sort(),n=0,r=i.length;n<r;n++)t+=i[n]+":"+e[i[n]]+";";return t}function z(t,n,r){this.json=t||{},this.extensions=n||{},this.options=r||{},this.cache=new i,this.associations=new Map,this.primitiveCache={},this.textureLoader=new e.TextureLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.fileLoader=new e.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}function q(t,i,n){var r=i.attributes,o=[];function a(e,i){return n.getDependency("accessor",e).then((function(e){t.setAttribute(i,e)}))}for(var s in r){var l=T[s]||s.toLowerCase();l in t.attributes||o.push(a(r[s],l))}if(void 0!==i.indices&&!t.index){var u=n.getDependency("accessor",i.indices).then((function(e){t.setIndex(e)}));o.push(u)}return N(t,i),function(t,i,n){var r=i.attributes,o=new e.Box3;if(void 0!==r.POSITION){var a=(p=n.json.accessors[r.POSITION]).min,s=p.max;if(void 0!==a&&void 0!==s){o.set(new e.Vector3(a[0],a[1],a[2]),new e.Vector3(s[0],s[1],s[2]));var l=i.targets;if(void 0!==l){for(var u=new e.Vector3,c=new e.Vector3,h=0,d=l.length;h<d;h++){var p,f=l[h];if(void 0!==f.POSITION)a=(p=n.json.accessors[f.POSITION]).min,s=p.max,void 0!==a&&void 0!==s?(c.setX(Math.max(Math.abs(a[0]),Math.abs(s[0]))),c.setY(Math.max(Math.abs(a[1]),Math.abs(s[1]))),c.setZ(Math.max(Math.abs(a[2]),Math.abs(s[2]))),u.max(c)):console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}o.expandByVector(u)}t.boundingBox=o;var A=new e.Sphere;o.getCenter(A.center),A.radius=o.min.distanceTo(o.max)/2,t.boundingSphere=A}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}(t,i,n),Promise.all(o).then((function(){return void 0!==i.targets?function(e,t,i){for(var n=!1,r=!1,o=0,a=t.length;o<a&&(void 0!==(u=t[o]).POSITION&&(n=!0),void 0!==u.NORMAL&&(r=!0),!n||!r);o++);if(!n&&!r)return Promise.resolve(e);var s=[],l=[];for(o=0,a=t.length;o<a;o++){var u=t[o];if(n){var c=void 0!==u.POSITION?i.getDependency("accessor",u.POSITION):e.attributes.position;s.push(c)}r&&(c=void 0!==u.NORMAL?i.getDependency("accessor",u.NORMAL):e.attributes.normal,l.push(c))}return Promise.all([Promise.all(s),Promise.all(l)]).then((function(t){var i=t[0],o=t[1];return n&&(e.morphAttributes.position=i),r&&(e.morphAttributes.normal=o),e.morphTargetsRelative=!0,e}))}(t,i.targets,n):t}))}function H(t,i){var n=t.getIndex();if(null===n){var r=[],o=t.getAttribute("position");if(void 0===o)return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t;for(var a=0;a<o.count;a++)r.push(a);t.setIndex(r),n=t.getIndex()}var s=n.count-2,l=[];if(i===e.TriangleFanDrawMode)for(a=1;a<=s;a++)l.push(n.getX(0)),l.push(n.getX(a)),l.push(n.getX(a+1));else for(a=0;a<s;a++)a%2==0?(l.push(n.getX(a)),l.push(n.getX(a+1)),l.push(n.getX(a+2))):(l.push(n.getX(a+2)),l.push(n.getX(a+1)),l.push(n.getX(a)));l.length/3!==s&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");var u=t.clone();return u.setIndex(l),u}return z.prototype.parse=function(e,t){var i=this,n=this.json,r=this.extensions;this.cache.removeAll(),this.markDefs(),Promise.all([this.getDependencies("scene"),this.getDependencies("animation"),this.getDependencies("camera")]).then((function(t){var o={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:i,userData:{}};O(r,o,n),N(o,n),e(o)})).catch(t)},z.prototype.markDefs=function(){for(var e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[],n={},r={},o=0,a=t.length;o<a;o++)for(var s=t[o].joints,l=0,u=s.length;l<u;l++)e[s[l]].isBone=!0;for(var c=0,h=e.length;c<h;c++){var d=e[c];void 0!==d.mesh&&(void 0===n[d.mesh]&&(n[d.mesh]=r[d.mesh]=0),n[d.mesh]++,void 0!==d.skin&&(i[d.mesh].isSkinnedMesh=!0))}this.json.meshReferences=n,this.json.meshUses=r},z.prototype.getDependency=function(e,t){var i=e+":"+t,r=this.cache.get(i);if(!r){switch(e){case"scene":r=this.loadScene(t);break;case"node":r=this.loadNode(t);break;case"mesh":r=this.loadMesh(t);break;case"accessor":r=this.loadAccessor(t);break;case"bufferView":r=this.loadBufferView(t);break;case"buffer":r=this.loadBuffer(t);break;case"material":r=this.loadMaterial(t);break;case"texture":r=this.loadTexture(t);break;case"skin":r=this.loadSkin(t);break;case"animation":r=this.loadAnimation(t);break;case"camera":r=this.loadCamera(t);break;case"light":r=this.extensions[n.KHR_LIGHTS_PUNCTUAL].loadLight(t);break;default:throw new Error("Unknown type: "+e)}this.cache.add(i,r)}return r},z.prototype.getDependencies=function(e){var t=this.cache.get(e);if(!t){var i=this,n=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(n.map((function(t,n){return i.getDependency(e,n)}))),this.cache.add(e,t)}return t},z.prototype.loadBuffer=function(e){var t=this.json.buffers[e],i=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[n.KHR_BINARY_GLTF].body);var r=this.options;return new Promise((function(e,n){i.load(L(t.uri,r.path),e,void 0,(function(){n(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))}))}))},z.prototype.loadBufferView=function(e){var t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then((function(e){var i=t.byteLength||0,n=t.byteOffset||0;return e.slice(n,n+i)}))},z.prototype.loadAccessor=function(t){var i=this,n=this.json,r=this.json.accessors[t];if(void 0===r.bufferView&&void 0===r.sparse)return Promise.resolve(null);var o=[];return void 0!==r.bufferView?o.push(this.getDependency("bufferView",r.bufferView)):o.push(null),void 0!==r.sparse&&(o.push(this.getDependency("bufferView",r.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",r.sparse.values.bufferView))),Promise.all(o).then((function(t){var o,a,s=t[0],l=B[r.type],u=E[r.componentType],c=u.BYTES_PER_ELEMENT,h=c*l,d=r.byteOffset||0,p=void 0!==r.bufferView?n.bufferViews[r.bufferView].byteStride:void 0,f=!0===r.normalized;if(p&&p!==h){var A=Math.floor(d/p),v="InterleavedBuffer:"+r.bufferView+":"+r.componentType+":"+A+":"+r.count,m=i.cache.get(v);m||(o=new u(s,A*p,r.count*p/c),m=new e.InterleavedBuffer(o,p/c),i.cache.add(v,m)),a=new e.InterleavedBufferAttribute(m,l,d%p/c,f)}else o=null===s?new u(r.count*l):new u(s,d,r.count*l),a=new e.BufferAttribute(o,l,f);if(void 0!==r.sparse){var g=B.SCALAR,y=E[r.sparse.indices.componentType],b=r.sparse.indices.byteOffset||0,x=r.sparse.values.byteOffset||0,w=new y(t[1],b,r.sparse.count*g),M=new u(t[2],x,r.sparse.count*l);null!==s&&(a=new e.BufferAttribute(a.array.slice(),a.itemSize,a.normalized));for(var C=0,I=w.length;C<I;C++){var S=w[C];if(a.setX(S,M[C*l]),l>=2&&a.setY(S,M[C*l+1]),l>=3&&a.setZ(S,M[C*l+2]),l>=4&&a.setW(S,M[C*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return a}))},z.prototype.loadTexture=function(t){var i,r=this,o=this.json,a=this.options,s=this.textureLoader,l=self.URL||self.webkitURL,u=o.textures[t],c=u.extensions||{},h=(i=c[n.MSFT_TEXTURE_DDS]?o.images[c[n.MSFT_TEXTURE_DDS].source]:o.images[u.source]).uri,d=!1;return void 0!==i.bufferView&&(h=r.getDependency("bufferView",i.bufferView).then((function(e){d=!0;var t=new Blob([e],{type:i.mimeType});return h=l.createObjectURL(t)}))),Promise.resolve(h).then((function(e){var t=a.manager.getHandler(e);return t||(t=c[n.MSFT_TEXTURE_DDS]?r.extensions[n.MSFT_TEXTURE_DDS].ddsLoader:s),new Promise((function(i,n){t.load(L(e,a.path),i,void 0,n)}))})).then((function(n){!0===d&&l.revokeObjectURL(h),n.flipY=!1,u.name&&(n.name=u.name),i.mimeType in D&&(n.format=D[i.mimeType]);var a=(o.samplers||{})[u.sampler]||{};return n.magFilter=I[a.magFilter]||e.LinearFilter,n.minFilter=I[a.minFilter]||e.LinearMipmapLinearFilter,n.wrapS=S[a.wrapS]||e.RepeatWrapping,n.wrapT=S[a.wrapT]||e.RepeatWrapping,r.associations.set(n,{type:"textures",index:t}),n}))},z.prototype.assignTexture=function(t,i,r){var o=this;return this.getDependency("texture",r.index).then((function(a){if(!a.isCompressedTexture)switch(i){case"aoMap":case"emissiveMap":case"metalnessMap":case"normalMap":case"roughnessMap":a.format=e.RGBFormat}if(void 0===r.texCoord||0==r.texCoord||"aoMap"===i&&1==r.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+r.texCoord+" for texture "+i+" not yet supported."),o.extensions[n.KHR_TEXTURE_TRANSFORM]){var s=void 0!==r.extensions?r.extensions[n.KHR_TEXTURE_TRANSFORM]:void 0;if(s){var l=this.associations.get(a);a=o.extensions[n.KHR_TEXTURE_TRANSFORM].extendTexture(a,s),this.associations.set(a,l)}}t[i]=a}))},z.prototype.assignFinalMaterial=function(t){var i=t.geometry,n=t.material,r=void 0!==i.attributes.tangent,o=void 0!==i.attributes.color,a=void 0===i.attributes.normal,s=!0===t.isSkinnedMesh,l=Object.keys(i.morphAttributes).length>0,u=l&&void 0!==i.morphAttributes.normal;if(t.isPoints){var c="PointsMaterial:"+n.uuid,h=this.cache.get(c);h||(h=new e.PointsMaterial,e.Material.prototype.copy.call(h,n),h.color.copy(n.color),h.map=n.map,h.sizeAttenuation=!1,this.cache.add(c,h)),n=h}else if(t.isLine){c="LineBasicMaterial:"+n.uuid;var d=this.cache.get(c);d||(d=new e.LineBasicMaterial,e.Material.prototype.copy.call(d,n),d.color.copy(n.color),this.cache.add(c,d)),n=d}if(r||o||a||s||l){c="ClonedMaterial:"+n.uuid+":";n.isGLTFSpecularGlossinessMaterial&&(c+="specular-glossiness:"),s&&(c+="skinning:"),r&&(c+="vertex-tangents:"),o&&(c+="vertex-colors:"),a&&(c+="flat-shading:"),l&&(c+="morph-targets:"),u&&(c+="morph-normals:");var p=this.cache.get(c);p||(p=n.clone(),s&&(p.skinning=!0),r&&(p.vertexTangents=!0),o&&(p.vertexColors=!0),a&&(p.flatShading=!0),l&&(p.morphTargets=!0),u&&(p.morphNormals=!0),this.cache.add(c,p),this.associations.set(p,this.associations.get(n))),n=p}n.aoMap&&void 0===i.attributes.uv2&&void 0!==i.attributes.uv&&i.setAttribute("uv2",i.attributes.uv),n.normalScale&&!r&&(n.normalScale.y=-n.normalScale.y),n.clearcoatNormalScale&&!r&&(n.clearcoatNormalScale.y=-n.clearcoatNormalScale.y),t.material=n},z.prototype.loadMaterial=function(t){var i,r=this,o=this.json,a=this.extensions,s=o.materials[t],l={},u=s.extensions||{},c=[];if(u[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){var h=a[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];i=h.getMaterialType(),c.push(h.extendParams(l,s,r))}else if(u[n.KHR_MATERIALS_UNLIT]){var d=a[n.KHR_MATERIALS_UNLIT];i=d.getMaterialType(),c.push(d.extendParams(l,s,r))}else{i=e.MeshStandardMaterial;var p=s.pbrMetallicRoughness||{};if(l.color=new e.Color(1,1,1),l.opacity=1,Array.isArray(p.baseColorFactor)){var A=p.baseColorFactor;l.color.fromArray(A),l.opacity=A[3]}void 0!==p.baseColorTexture&&c.push(r.assignTexture(l,"map",p.baseColorTexture)),l.metalness=void 0!==p.metallicFactor?p.metallicFactor:1,l.roughness=void 0!==p.roughnessFactor?p.roughnessFactor:1,void 0!==p.metallicRoughnessTexture&&(c.push(r.assignTexture(l,"metalnessMap",p.metallicRoughnessTexture)),c.push(r.assignTexture(l,"roughnessMap",p.metallicRoughnessTexture)))}!0===s.doubleSided&&(l.side=e.DoubleSide);var v=s.alphaMode||k;if(v===F?(l.transparent=!0,l.depthWrite=!1):(l.transparent=!1,v===Q&&(l.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&i!==e.MeshBasicMaterial&&(c.push(r.assignTexture(l,"normalMap",s.normalTexture)),l.normalScale=new e.Vector2(1,1),void 0!==s.normalTexture.scale&&l.normalScale.set(s.normalTexture.scale,s.normalTexture.scale)),void 0!==s.occlusionTexture&&i!==e.MeshBasicMaterial&&(c.push(r.assignTexture(l,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(l.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&i!==e.MeshBasicMaterial&&(l.emissive=(new e.Color).fromArray(s.emissiveFactor)),void 0!==s.emissiveTexture&&i!==e.MeshBasicMaterial&&c.push(r.assignTexture(l,"emissiveMap",s.emissiveTexture)),u[n.KHR_MATERIALS_CLEARCOAT]){var m=a[n.KHR_MATERIALS_CLEARCOAT];i=m.getMaterialType(),c.push(m.extendParams(l,{extensions:u},r))}return Promise.all(c).then((function(){var o;return o=i===f?a[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(l):new i(l),s.name&&(o.name=s.name),o.map&&(o.map.encoding=e.sRGBEncoding),o.emissiveMap&&(o.emissiveMap.encoding=e.sRGBEncoding),N(o,s),r.associations.set(o,{type:"materials",index:t}),s.extensions&&O(a,o,s),o}))},z.prototype.loadGeometries=function(t){var i=this,r=this.extensions,o=this.primitiveCache;function a(e){return r[n.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,i).then((function(t){return q(t,e,i)}))}for(var s,l,u=[],c=0,h=t.length;c<h;c++){var d,p=t[c],f=(l=void 0,(l=(s=p).extensions&&s.extensions[n.KHR_DRACO_MESH_COMPRESSION])?"draco:"+l.bufferView+":"+l.indices+":"+U(l.attributes):s.indices+":"+U(s.attributes)+":"+s.mode),A=o[f];if(A)u.push(A.promise);else d=p.extensions&&p.extensions[n.KHR_DRACO_MESH_COMPRESSION]?a(p):q(new e.BufferGeometry,p,i),o[f]={primitive:p,promise:d},u.push(d)}return Promise.all(u)},z.prototype.loadMesh=function(t){for(var i,n=this,r=this.json.meshes[t],o=r.primitives,a=[],s=0,l=o.length;s<l;s++){var u=void 0===o[s].material?(void 0===(i=this.cache).DefaultMaterial&&(i.DefaultMaterial=new e.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:e.FrontSide})),i.DefaultMaterial):this.getDependency("material",o[s].material);a.push(u)}return a.push(n.loadGeometries(o)),Promise.all(a).then((function(i){for(var a=i.slice(0,i.length-1),s=i[i.length-1],l=[],u=0,c=s.length;u<c;u++){var h,d=s[u],p=o[u],f=a[u];if(p.mode===w||p.mode===M||p.mode===C||void 0===p.mode)!0!==(h=!0===r.isSkinnedMesh?new e.SkinnedMesh(d,f):new e.Mesh(d,f)).isSkinnedMesh||h.geometry.attributes.skinWeight.normalized||h.normalizeSkinWeights(),p.mode===M?h.geometry=H(h.geometry,e.TriangleStripDrawMode):p.mode===C&&(h.geometry=H(h.geometry,e.TriangleFanDrawMode));else if(p.mode===y)h=new e.LineSegments(d,f);else if(p.mode===x)h=new e.Line(d,f);else if(p.mode===b)h=new e.LineLoop(d,f);else{if(p.mode!==g)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+p.mode);h=new e.Points(d,f)}Object.keys(h.geometry.morphAttributes).length>0&&V(h,r),h.name=r.name||"mesh_"+t,s.length>1&&(h.name+="_"+u),N(h,r),n.assignFinalMaterial(h),l.push(h)}if(1===l.length)return l[0];var A=new e.Group;for(u=0,c=l.length;u<c;u++)A.add(l[u]);return A}))},z.prototype.loadCamera=function(t){var i,n=this.json.cameras[t],r=n[n.type];if(r)return"perspective"===n.type?i=new e.PerspectiveCamera(e.MathUtils.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):"orthographic"===n.type&&(i=new e.OrthographicCamera(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),n.name&&(i.name=n.name),N(i,n),Promise.resolve(i);console.warn("THREE.GLTFLoader: Missing camera parameters.")},z.prototype.loadSkin=function(e){var t=this.json.skins[e],i={joints:t.joints};return void 0===t.inverseBindMatrices?Promise.resolve(i):this.getDependency("accessor",t.inverseBindMatrices).then((function(e){return i.inverseBindMatrices=e,i}))},z.prototype.loadAnimation=function(t){for(var i=this.json.animations[t],n=[],r=[],o=[],a=[],s=[],l=0,u=i.channels.length;l<u;l++){var c=i.channels[l],h=i.samplers[c.sampler],d=c.target,p=void 0!==d.node?d.node:d.id,f=void 0!==i.parameters?i.parameters[h.input]:h.input,A=void 0!==i.parameters?i.parameters[h.output]:h.output;n.push(this.getDependency("node",p)),r.push(this.getDependency("accessor",f)),o.push(this.getDependency("accessor",A)),a.push(h),s.push(d)}return Promise.all([Promise.all(n),Promise.all(r),Promise.all(o),Promise.all(a),Promise.all(s)]).then((function(n){for(var r=n[0],o=n[1],a=n[2],s=n[3],l=n[4],u=[],c=0,h=r.length;c<h;c++){var d=r[c],p=o[c],f=a[c],A=s[c],v=l[c];if(void 0!==d){var g;switch(d.updateMatrix(),d.matrixAutoUpdate=!0,P[v.path]){case P.weights:g=e.NumberKeyframeTrack;break;case P.rotation:g=e.QuaternionKeyframeTrack;break;default:g=e.VectorKeyframeTrack}var y=d.name?d.name:d.uuid,b=void 0!==A.interpolation?R[A.interpolation]:e.InterpolateLinear,x=[];P[v.path]===P.weights?d.traverse((function(e){!0===e.isMesh&&e.morphTargetInfluences&&x.push(e.name?e.name:e.uuid)})):x.push(y);var w=f.array;if(f.normalized){var M;if(w.constructor===Int8Array)M=1/127;else if(w.constructor===Uint8Array)M=1/255;else if(w.constructor==Int16Array)M=1/32767;else{if(w.constructor!==Uint16Array)throw new Error("THREE.GLTFLoader: Unsupported output accessor component type.");M=1/65535}for(var C=new Float32Array(w.length),E=0,I=w.length;E<I;E++)C[E]=w[E]*M;w=C}for(E=0,I=x.length;E<I;E++){var S=new g(x[E]+"."+P[v.path],p.array,w,b);"CUBICSPLINE"===A.interpolation&&(S.createInterpolant=function(e){return new m(this.times,this.values,this.getValueSize()/3,e)},S.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),u.push(S)}}}var B=i.name?i.name:"animation_"+t;return new e.AnimationClip(B,void 0,u)}))},z.prototype.loadNode=function(t){var i,r=this.json,o=this.extensions,a=this,s=r.meshReferences,l=r.meshUses,u=r.nodes[t];return(i=[],void 0!==u.mesh&&i.push(a.getDependency("mesh",u.mesh).then((function(e){var t;if(s[u.mesh]>1){var i=l[u.mesh]++;(t=e.clone()).name+="_instance_"+i}else t=e;return void 0!==u.weights&&t.traverse((function(e){if(e.isMesh)for(var t=0,i=u.weights.length;t<i;t++)e.morphTargetInfluences[t]=u.weights[t]})),t}))),void 0!==u.camera&&i.push(a.getDependency("camera",u.camera)),u.extensions&&u.extensions[n.KHR_LIGHTS_PUNCTUAL]&&void 0!==u.extensions[n.KHR_LIGHTS_PUNCTUAL].light&&i.push(a.getDependency("light",u.extensions[n.KHR_LIGHTS_PUNCTUAL].light)),Promise.all(i)).then((function(i){var n;if((n=!0===u.isBone?new e.Bone:i.length>1?new e.Group:1===i.length?i[0]:new e.Object3D)!==i[0])for(var r=0,s=i.length;r<s;r++)n.add(i[r]);if(u.name&&(n.userData.name=u.name,n.name=e.PropertyBinding.sanitizeNodeName(u.name)),N(n,u),u.extensions&&O(o,n,u),void 0!==u.matrix){var l=new e.Matrix4;l.fromArray(u.matrix),n.applyMatrix4(l)}else void 0!==u.translation&&n.position.fromArray(u.translation),void 0!==u.rotation&&n.quaternion.fromArray(u.rotation),void 0!==u.scale&&n.scale.fromArray(u.scale);return a.associations.set(n,{type:"nodes",index:t}),n}))},z.prototype.loadScene=function(){function t(i,n,r,o){var a=r.nodes[i];return o.getDependency("node",i).then((function(t){return void 0===a.skin?t:o.getDependency("skin",a.skin).then((function(e){for(var t=[],n=0,r=(i=e).joints.length;n<r;n++)t.push(o.getDependency("node",i.joints[n]));return Promise.all(t)})).then((function(n){return t.traverse((function(t){if(t.isMesh){for(var r=[],o=[],a=0,s=n.length;a<s;a++){var l=n[a];if(l){r.push(l);var u=new e.Matrix4;void 0!==i.inverseBindMatrices&&u.fromArray(i.inverseBindMatrices.array,16*a),o.push(u)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',i.joints[a])}t.bind(new e.Skeleton(r,o),t.matrixWorld)}})),t}));var i})).then((function(e){n.add(e);var i=[];if(a.children)for(var s=a.children,l=0,u=s.length;l<u;l++){var c=s[l];i.push(t(c,e,r,o))}return Promise.all(i)}))}return function(i){var n=this.json,r=this.extensions,o=this.json.scenes[i],a=new e.Group;o.name&&(a.name=o.name),N(a,o),o.extensions&&O(r,a,o);for(var s=o.nodes||[],l=[],u=0,c=s.length;u<c;u++)l.push(t(s[u],a,n,this));return Promise.all(l).then((function(){return a}))}}(),t}(),kn=new Rn,Qn=(new n.Matrix4).makeRotationAxis(new n.Vector3(1,0,0),Math.PI/2);function Fn(e){function t(e){if(e.isMesh)return function(e){var t=new ze;t.geometry=e.geometry,t.geometry.computeVertexNormals(),t.geometry.computeBoundingBox(),t.geometry.computeBoundingSphere(),t.geometry.addGroup(0,e.geometry.index.count,0);var i=new Pt;return i.uniforms.map.value=e.material.map,i.uniforms.exposure.value=3.3,i.opacity=1,e.material.dispose(),t.material=[i],t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.copy(e.scale),t.matrix.compose(t.position,t.quaternion,t.scale),t}(e);if(e.isGroup){for(var i=function(e){var t=new He;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.copy(e.scale),t.matrix.compose(t.position,t.quaternion,t.scale),t}(e),n=0;n<e.children.length;n++){var r=t(e.children[n]);i.add(r)}return i}return new He}return new Promise((function(i,r){var o,a=(new n.Matrix4).copy(e.computedTransform);if("Z"!==(null===(o=e.tileset.asset)||void 0===o?void 0:o.gltfUpAxis)&&a.multiply(Qn),e.content){var s=e.content.gltfArrayBuffer,l=e.contentUrl?e.contentUrl.slice(0,e.contentUrl.lastIndexOf("/")+1):"";kn.parse(s,l,(function(e){var n=e.scene,r=new He,o=t(n);o.applyMatrix4(a),r.add(o),i(r)}),(function(t){r(new Error("error parsing gltf in tile ".concat(e.id,": ").concat(t.message)))}))}else i(new He)}))}function Dn(e){e.traverse((function(e){if(e instanceof ze){e.geometry.dispose();for(var t=0,i=e.material;t<i.length;t++){var n=i[t];n.uniforms.map&&n.uniforms.map.value&&(n.uniforms.map.value.dispose(),n.uniforms.map.value=null)}}}))}function Ln(e){var t=e.toArray();return(new n.Matrix4).fromArray([2*t[0],2*t[1],2*t[2],0,2*t[3],2*t[4],2*t[5],0,2*t[6],2*t[7],2*t[8],0,0,0,0,1])}var On=new n.EdgesGeometry(new n.BoxBufferGeometry(1,1,1)),Nn=new n.LineBasicMaterial({color:new n.Color(1,1,0),transparent:!0});function Vn(e){e.updateMatrix(),e.updateMatrixWorld();var t=(new n.Matrix4).multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);return(new n.Frustum).setFromProjectionMatrix(t)}var Un={throttleRequests:!0,maxRequests:64,updateInterval:.1,maxScreenSpaceError:8,maxMemoryUsage:32,viewDistanceScale:.2,onNodeCreated:function(){}},zn=function(e){function t(t){void 0===t&&(t={});var i=e.call(this)||this;return i.options=ie(ie({},Un),t),i.clock=new n.Clock,i.timer=0,i.unloadTileQueue=[],i.nodes={},i.boundings={},i.nodeGroup=new n.Group,i.boundingGroup=new n.Group,i.add(i.nodeGroup),i.sseDenominator=null,i.lastCameraTransform=new n.Matrix4,i.lastCameraAspect=1,i.lastCameraFov=null,i.lastCamera=null,i.lastRenderer=null,i.enabled=!1,i}return te(t,e),Object.defineProperty(t.prototype,"enable",{get:function(){return this.enabled},set:function(e){this.enabled!==e&&(this.enabled=e,!1===this.enabled?this.reset():(this.timer=0,this.clock.getDelta()))},enumerable:!1,configurable:!0}),t.prototype.load=function(e){var t=this,i=e.tileset_url;e.tileset_url_md5;var r=e.b3md_mappings_url;e.b3md_mappings_url_md5;var o={modelMatrix:(new n.Matrix4).fromArray([1,0,0,0,0,-1,0,1e9,0,0,-1,0,0,0,0,1]),maxMemoryUsage:this.options.maxMemoryUsage,maxScreenSpaceError:this.options.maxScreenSpaceError,viewDistanceScale:this.options.viewDistanceScale,throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests,contentLoader:function(e){var i=function(e){var t=e.boundingVolume,i=new n.LineSegments(On,Nn);return i.applyMatrix4(Ln(t.halfAxes)),i.position.set(t.center.x,t.center.y,t.center.z),i}(e);return i.visible=!1,t.boundings[e.id]=i,t.boundingGroup.add(i),i.updateMatrixWorld(!0),"SCENEGRAPH"===e.type||"MESH"===e.type?Fn(e).then((function(i){void 0===t.tileset?Dn(i):(i.visible=!1,t.nodes[e.id]=i,t.nodeGroup.add(i),t.options.onNodeCreated(i),i.updateMatrixWorld(!0))})):Promise.resolve()},onTileLoad:function(){t.enabled&&t.tileset&&t.lastRenderer&&t.lastCamera&&(t.tileset.frameNumber++,t.tilesetUpdate(t.tileset,t.lastRenderer,t.lastCamera)),t.enabled||t.reset()},onTileUnload:function(e){t.unloadTileQueue.push(e)},onTileError:function(e,t){console.error("Tile error",e.id,t)},onTraversalComplete:function(e){return e},allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy,maxDepth:this.options.maxDepth},a=i.split("/").slice(0,-1).join("/"),s=Ie(i,{allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy}).then((function(e){return JSON.parse(e.body)})).then((function(e){return Pn(e,a)})),l=Ie(r,{allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy}).then((function(e){return JSON.parse(e.body)}));Promise.all([s,l]).then((function(e){var i=e[0],r=e[1];i.b3dmMapping=r;var a=t.tileset=new In(i,o),s=new n.Matrix4;if(a.root&&a.root.boundingVolume){var l=a.root.boundingVolume,u=l.halfAxes,c=l.center;s.extractRotation(Ln(u)),s.setPosition(c.x,c.y,c.z)}a.modelMatrix.copy((new n.Matrix4).getInverse(s))}))},t.prototype.update=function(e,t){this.lastCamera=t,this.lastRenderer=e,!1!==this.enabled&&(this.timer+=this.clock.getDelta(),this.tileset&&this.timer>=this.options.updateInterval&&(t.matrixWorld.equals(this.lastCameraTransform)&&t.aspect===this.lastCameraAspect&&t.fov===this.lastCameraFov||(this.timer=0,this.tileset.frameNumber++,this.lastCameraTransform.copy(t.matrixWorld),this.tilesetUpdate(this.tileset,e,t))))},t.prototype.tilesetUpdate=function(e,t,i){this.sseDenominator&&i.aspect===this.lastCameraAspect&&i.fov===this.lastCameraFov||(this.sseDenominator=function(e){var t=e.aspect,i=e.fov/180*Math.PI,n=e.aspect<=1?i:2*Math.atan(Math.tan(.5*i)/t);return 2*Math.tan(.5*n)}(i),this.lastCameraAspect=i.aspect,this.lastCameraFov=i.fov);var r,o,a,s={camera:{position:i.position.toArray(),direction:i.getDirection(new n.Vector3).toArray(),up:i.up.toArray()},height:t.getSize(new n.Vector2).height,frameNumber:e.frameNumber,sseDenominator:this.sseDenominator,cullingVolume:(r=Vn(i),o=r.planes.map((function(e){return new n.Plane(e.normal,e.constant)})),new Hi(o))};e.cache.reset(),e.traverser.traverse(e.root,s);for(var l=0,u=e.tiles;l<u.length;l++){var c=u[l],h=c.selected,d=c.id;this.nodes[d]&&this.nodes[d].visible!==h&&(this.nodes[d].visible=h,h&&(this.nodes[d].needsRender=!0)),this.boundings[d]&&this.boundings[d].visible!==h&&(this.boundings[d].visible=h)}for(;a=this.unloadTileQueue.pop();){d=a.id;if(this.nodes[d]){var p=this.nodes[d];this.nodeGroup.remove(p),Dn(p),delete this.nodes[d]}if(this.boundings[d]){p=this.boundings[d];this.boundingGroup.remove(p),delete this.boundings[d]}}},t.prototype.reset=function(){if(this.tileset){this.tileset.reset();for(var e=void 0;e=this.unloadTileQueue.pop();)if("UNLOADED"!==e.contentState){var t=e.id;if(this.nodes[t]){var i=this.nodes[t];this.nodeGroup.remove(i),Dn(i),delete this.nodes[t]}if(this.boundings[t]){i=this.boundings[t];this.boundingGroup.remove(i),delete this.boundings[t]}}for(var n=0,r=Object.keys(this.nodes);n<r.length;n++){t=r[n];var o=this.nodes[t];this.nodeGroup.remove(o),Dn(o),delete this.nodes[t]}for(var a=0,s=Object.keys(this.boundings);a<s.length;a++){t=s[a],o=this.boundings[t];this.boundingGroup.remove(o),delete this.boundings[t]}}},t}(qe);function qn(e){return null==e}var Hn=function(e,t){void 0===t&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var i={},r=e.getIndex(),o=e.getAttribute("position"),a=r?r.count:o.count,s=0,l=Object.keys(e.attributes),u={},c={},h=[],d=["getX","getY","getZ","getW"],p=0,f=l.length;p<f;p++){u[b=l[p]]=[],(C=e.morphAttributes[b])&&(c[b]=new Array(C.length).fill().map((function(){return[]})))}var A=Math.log10(1/t),v=Math.pow(10,A);for(p=0;p<a;p++){var m=r?r.getX(p):p,g="",y=0;for(f=l.length;y<f;y++)for(var b=l[y],x=(M=e.getAttribute(b)).itemSize,w=0;w<x;w++)g+="".concat(~~(M[d[w]](m)*v),",");if(g in i)h.push(i[g]);else{for(y=0,f=l.length;y<f;y++){b=l[y];var M=e.getAttribute(b),C=e.morphAttributes[b],E=(x=M.itemSize,u[b]),I=c[b];for(w=0;w<x;w++){var S=d[w];if(E.push(M[S](m)),C)for(var B=0,T=C.length;B<T;B++)I[B].push(C[B][S](m))}}i[g]=s,h.push(s),s++}}var P=e.clone();for(p=0,f=l.length;p<f;p++){b=l[p];var R=e.getAttribute(b),k=new R.array.constructor(u[b]);M=new n.BufferAttribute(k,R.itemSize,R.normalized);if(P.setAttribute(b,M),b in c)for(y=0;y<c[b].length;y++){var Q=e.morphAttributes[b][y],F=(k=new Q.array.constructor(c[b][y]),new n.BufferAttribute(k,Q.itemSize,Q.normalized));P.morphAttributes[b][y]=F}}return P.setIndex(h),P};function _n(e){var t;return new((t=n.Triangle).bind.apply(t,ne([void 0],e.map((function(e){return new n.Vector3(e.x,e.y,e.z)})),!1)))}var Kn={at3d:function(e,t){for(var i=Mi(t.textureOptions,e.textures.length),n={},r=0,o=e.textures;r<o.length;r++){var a=o[r];n[a]=xi(a,i,t.allowHosts,t.requestProxy,t.networkSubscribe)}return Promise.resolve().then((function(){return Ie(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return li(e.body)})).then((function(e){return $t((function(){for(var t,i={chunks:[],createAt:void 0,description:void 0},n=0,r=e;n<r.length;n++){var o=r[n],a=vi.decode(o);a.chunks.length&&((t=i.chunks).push.apply(t,a.chunks),i.createAt=a.createAt,i.description=a.description)}return i}))})).then((function(r){return $t((function(){return wi(r,e.textureBase,e.textures.slice(),i,n,t.allowHosts,t.requestProxy,t.networkSubscribe)}))}))},pbm:function(e,t){for(var i=Mi(t.textureOptions,e.textures.length),n={},r=0,o=e.textures;r<o.length;r++){var a=o[r];n[a]=xi(a,i,t.allowHosts,t.requestProxy,t.networkSubscribe)}return Promise.resolve().then((function(){return Ie(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return $t((function(){var t=new Uint8Array(e.body);return vi.decode(t)}))})).then((function(r){return $t((function(){return wi(r,e.textureBase,e.textures.slice(),i,n,t.allowHosts,t.requestProxy,t.networkSubscribe)}))}))},dome:function(e,t){return Promise.resolve().then((function(){return Ie(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(i){return Qi(new Uint8Array(i.body),e.textureBase,t.textureOptions,t.allowHosts,t.requestProxy,t.networkSubscribe)}))},domez:function(e,t){return Promise.resolve().then((function(){return Ie(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return li(e.body)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),i=new Uint8Array(t),n=0;return e.forEach((function(e){i.set(e,n),n+=e.length})),i})).then((function(i){return Qi(i,e.textureBase,t.textureOptions,t.allowHosts,t.requestProxy,t.networkSubscribe)}))}},jn=function(e){function t(t){void 0===t&&(t={});var i=e.call(this)||this;return i.empty=!0,i.name="model",i.workCode="",i.loaded=!1,i.bvhs=Object.assign([],{loaded:!1}),i.bounding=new n.Box3,i.shownFloor=null,i.floorLength=0,i.textureOptions={},i.requestProxy=t.requestProxy,i.networkSubscribe=t.networkSubscribe,i.allowHosts=t.allowHosts,i.renderOrder=-4,i}return te(t,e),Object.defineProperty(t.prototype,"shownfloor",{get:function(){return this.shownFloor},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasTiles",{get:function(){return void 0!==this.tiledModel},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableTiles",{get:function(){return!!this.tiledModel&&this.tiledModel.enable},set:function(e){this.tiledModel&&(this.tiledModel.enable=e)},enumerable:!1,configurable:!0}),t.prototype.updateTexture=function(e){return this.textureOptions=e,Promise.resolve()},t.prototype.getEdges=function(e){var t;if(void 0===e&&(e=30/180*Math.PI),!this.originModel)return[];for(var i=Math.cos(e),r=[],o=0,a=this.originModel.children;o<a.length;o++){var s=a[o];if(s instanceof ze){for(var l={},u=["a","b","c"],c=Hn(s.geometry),h=c.getAttribute("position").array,d=(null===(t=c.getIndex())||void 0===t?void 0:t.array)||[],p=[],f=[],A=0,v=h.length;A<v;A+=3)p.push(new n.Vector3(h[A],h[A+1],h[A+2]));for(A=0,v=d.length;A<v;A+=3){var m=d[A],g=d[A+1],y=d[A+2],b=(new n.Vector3).crossVectors(p[g].clone().sub(p[m]),p[y].clone().sub(p[m])).normalize();f.push({a:m,b:g,c:y,normal:b})}for(A=0,v=f.length;A<v;A++)for(var x=f[A],w=0;w<3;w++){var M=x[u[w]],C=x[u[(w+1)%3]],E=[Math.min(M,C),Math.max(M,C)];void 0===l[I=E[0]+"-"+E[1]]?l[I]={index1:E[0],index2:E[1],face1:A}:l[I].face2=A}for(var I in l){var S=l[I];if(void 0===S.face2||f[S.face1].normal.dot(f[S.face2].normal)<=i){var B=p[S.index1],T=p[S.index2];r.push(new n.Line3(B,T))}}c.dispose(),p.length=0,f.length=0}}return r},t.prototype.hasFloors=function(){return this.hasFloors_()},t.prototype.hasFloors_=function(){var e=[];return this.traverse((function(t){t instanceof ze&&(e[t.floorIndex]=!0)})),e.length},t.prototype.show=function(){for(var e,t,i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];var o=this.shownFloor,a=null,s=null!==(e=i[1])&&void 0!==e?e:.1,l=0!==i.length;this.shownFloor=a=l?i[0]:null,this.setMaterial({opacity:1,floorInfo:new n.Vector3(0,0,0)}),(null===(t=this.tiledModel)||void 0===t?void 0:t.enable)?this.b3dmShow(o,a):this.at3dShow(o,a,s)},t.prototype.at3dShow=function(e,t,i){var n;null===(n=this.originModel)||void 0===n||n.traverse((function(e){e instanceof ze&&e.material.forEach((function(n){null===t||t===e.floorIndex?n.opacity=1*n.originOpacity:n.opacity=n.originOpacity*i}))})),e!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0},t.prototype.b3dmShow=function(e,t){var i,r;if(null===(r=null===(i=this.tiledModel)||void 0===i?void 0:i.tileset)||void 0===r?void 0:r.floorInfo){if("number"==typeof t&&t>=0&&t<this.tiledModel.tileset.floorInfo.length){var o=this.tiledModel.tileset.floorInfo,a=-o[t].ground,s=o[t].height+a;this.setMaterial({opacity:1,floorInfo:new n.Vector3(a,s,0)})}else this.setMaterial({opacity:1,floorInfo:new n.Vector3(0,0,0)});e!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0}},t.prototype.intersectRaycaster=function(e,t){var i=e.ray,r=i.origin,o=i.direction;if(qn(t))if(qn(this.shownFloor)){var a=this.floorLength;t=[];for(var s=-1;s<a;s++)t.push(s)}else t=[this.shownFloor];var l=[],u=[];Array.isArray(t)?u.push.apply(u,t):u.push(t);for(var c=function(t){var i=h.bvhs&&h.bvhs[t];if(i){var a=new qt(r.x,r.y,r.z),s=new qt(o.x,o.y,o.z),u=i.intersectRay(a,s,!0).map((function(e){var t=e.intersectionPoint,i=e.triangle,o=new n.Vector3(t.x,t.y,t.z);return{point:o,face:{normal:_n(i).getNormal(new n.Vector3)},distance:r.distanceTo(o)}}));u.length&&l.push.apply(l,u)}else if(h.originModel){var c=[];h.originModel.traverse((function(e){e instanceof ze&&e.floorIndex===t&&c.push(e)})),(u=e.intersectObjects(c).map((function(e){return{face:e.face?{normal:e.face.normal}:void 0,point:e.point,distance:e.distance}}))).length&&l.push.apply(l,u)}},h=this,d=0,p=u;d<p.length;d++){c(p[d])}return l.filter((function(t){var i=t.distance;return i<=e.far&&i>=e.near})).sort((function(e,t){return e.distance-t.distance}))},t.prototype.buildBVH=function(){if(!this.bvhs.loaded&&this.originModel){var e=[];this.originModel.traverse((function(t){t instanceof ze&&(e[t.floorIndex]=e[t.floorIndex]||[],e[t.floorIndex].push(t.geometry))})),this.bvhs.length=0;for(var t=0,i=e;t<i.length;t++){var n=i[t],r=0;if(n){for(var o=0,a=n;o<a.length;o++){var s=0;s=(d=a[o]).index?d.index.array.length:d.attributes.position.array.length/3,r+=3*Math.floor(s/3)}for(var l=new Float32Array(3*r),u=0,c=0,h=n;c<h.length;c++){var d,p=(d=h[c]).attributes.position.array,f=d.index?d.index.array:null;if(f){for(var A=3*Math.floor(f.length/3),v=0,m=void 0,g=void 0;v<A;v++)m=3*(u+v),g=3*f[v],l[m]=p[g],l[m+1]=p[g+1],l[m+2]=p[g+2];u+=A}else{for(A=3*Math.floor(p.length/3/3),v=0,m=void 0,g=void 0;v<A;v++)g=3*v,l[m=3*(u+v)]=p[g],l[m+1]=p[g+1],l[m+2]=p[g+2];u+=A}}var y=(new Xt).create(l).splitNode(50);this.bvhs.push(y)}}this.bvhs.loaded=!0,this.emit("bvhLoaded")}},t.prototype.load=function(e,t){var i=this;if(void 0===t&&(t={}),!0===this.loaded)throw new Error("[MODEL LOAD ERROR]: model cannot load twice.");var n=function(e,t){if(void 0===t&&(t=[]),/^blob\:/.test(e))return"at3d";var i=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(e);if(!i)return"";for(var n=0,r=String(i[1]).trim().split(".").slice(1).reverse();n<r.length;n++){var o=r[n],a=t.indexOf(o);if(a>=0)return t[a]}return""}(e.file,Object.keys(Kn)),r=Kn[n];if(!r)throw new Error("[MODEL LOAD ERROR]: file type(".concat(n,") does not support."));return this.name=e.file,this.textureOptions=t,r(e,{textureOptions:t,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe}).then((function(t){var n=t.createAt,r=t.description,o=t.objects,a=t.texturePromise,s=t.updateTexture;i.userData.createAt=n,i.userData.description=r,i.updateTexture=function(e){var t=this;return this.textureOptions=e,s(this.textureOptions).then((function(){t.needsRender=!0}))},i.bounding.makeEmpty();var l=i.originModel=new qe;l.renderOrder=-4;for(var u=0,c=o;u<c.length;u++){var h=c[u];h.traverse((function(e){if(e instanceof ze){var t=e.geometry;t.boundingBox||t.computeBoundingBox(),t.boundingSphere||t.computeBoundingSphere(),i.bounding.union(t.boundingBox)}})),l.add(h)}if(i.add(l),i.floorLength=i.hasFloors_(),i.empty=!1,i.loaded=!0,e.tiles&&e.tiles.tileset_url&&e.tiles.b3md_mappings_url){var d=i.tiledModel=new zn({onNodeCreated:function(e){var t=l.getMaterial();t&&(e.setMaterial(t),e.renderOrder=-4)},allowHosts:i.allowHosts,networkSubscribe:i.networkSubscribe,requestProxy:i.requestProxy});d.renderOrder=-4,i.add(d),d.load(e.tiles)}e.bvh&&i.buildBVH(),$t((function(){i.emit("geometryLoaded"),a.then((function(){i.emit("materialLoaded"),i.emit("loaded")}))}))})).catch((function(e){return i.name="",i.emit("error",e),Promise.reject(e)}))},t.prototype.update=function(e,t){if(this.originModel){var i=this.originModel.visible;if(this.tiledModel&&this.tiledModel.enable&&this.tiledModel.tileset){this.tiledModel.update(e,t);var n=this.tiledModel.tileset.root;n.content&&"READY"===n.contentState&&!1!==i&&(this.setTransparent(!1),this.shownFloor&&this.show(this.shownFloor),this.originModel.visible=!1,this.originModel.needsRender=!0)}else!0!==i&&(this.originModel.visible=!0,this.originModel.needsRender=!0)}},t.prototype.dispose=function(){this.off();var e=this.originModel,t=this.tiledModel;if(t&&(t.enable=!1,t.reset()),e)for(e.disposeGeometry(),e.disposeMaterial();e.children.length;)e.remove(e.children[0]);this.bvhs.length=0,this.bvhs.loaded=!1},t}(qe);Object.assign(jn.prototype,{on:se.prototype.on,once:se.prototype.once,off:se.prototype.off,emit:se.prototype.emit,hasListener:se.prototype.hasListener});function Gn(e,t,i){return e<t?t:e>i?i:e}function Wn(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var i,n,r;if(Array.isArray(e)){if((i=e.length)!=t.length)return!1;for(n=i;0!=n--;)if(!Wn(e[n],t[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((i=(r=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(n=i;0!=n--;)if(!Object.prototype.hasOwnProperty.call(t,r[n]))return!1;for(n=i;0!=n--;){var o=r[n];if(!Wn(e[o],t[o]))return!1}return!0}return e!=e&&t!=t}function Xn(e){return"number"==typeof e}function Yn(e){return 0==(e&e-1)&&0!==e}var Zn=function(){return new Error("Invalid input.")},Jn=function(){return new Error("Invalid certificate.")},$n=function(){return new Error("Invalid signature.")};function er(e,t){void 0===t&&(t=!1);var i=typeof e;if("string"===i)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var n="[",r=e.length-1,o=0;o<r;o++)n+=er(e[o],!1)+",";return r>-1&&(n+=er(e[o],!1)),n+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return er(e.toJSON(),t);var a=Object.keys(e).sort(),s=a.length;for(n="",o=0;o<s;){var l=a[o],u=er(e[l],!0);void 0!==u&&(o&&""!==n&&(n+=","),n+=JSON.stringify(l)+":"+u),o++}return"{"+n+"}"}switch(i){case"function":case"undefined":return t?void 0:null;case"number":return 0;default:return isFinite(e)?e:null}}function tr(e){return String(er(e,!1))}function ir(e){var t,i,n;if(Array.isArray(e)){var r,o,a=void 0;if(e.length<=0)return Zn();for(var s=function(t){var i=ir(e[t]);if(i instanceof Error)return{value:i};if(a){if(a!==i.issuer)return{value:Jn()}}else a=i.issuer;r?i.expire.getTime()<r.getTime()&&(r=i.expire):r=i.expire,o=o?o.filter((function(e){return-1!==i.allowHosts.indexOf(e)})):i.allowHosts},l=0;l<e.length;l++){var u=s(l);if("object"==typeof u)return u.value}return he({issuer:a,expire:r,allowHosts:o})}var c=JSON.parse(e),h="undefined"!=typeof location?location.hostname:"",d=Date.now();if("object"!=typeof c)return Zn();var p=new Date("string"==typeof c.expire_at&&/^\d+$/.test(c.expire_at)?Number(c.expire_at):c.expire_at),f=Array.isArray(c.allow_hosts)?c.allow_hosts:[];if(0===h.length||pe(h)||ve.filter((function(e){return fe(e,h)})).length>0){var A=String(null!==(t=c.certificate)&&void 0!==t?t:"");if(A){var v=new W;return v.readCertPEM(A),he({issuer:v.getSubjectString(),expire:p,allowHosts:f})}return he({issuer:"none",expire:p,allowHosts:f})}var m=String(null!==(i=c.certificate)&&void 0!==i?i:"");if(!m)return Jn();var g=new W;g.readCertPEM(m);var y=String(null!==(n=c._signature)&&void 0!==n?n:"");if(!y)return $n();var b=tr(function(e,t){for(var i={},n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];-1===t.indexOf(o)&&(i[o]=e[o])}return i}(c,["_signature"]));return!1===function(e,t,i){var n=new W;if("string"==typeof i?n.readCertPEM(i):n.readCertHex(i.hex),!1===$(n))return!1;var r=new C;return r.readCertPubKeyHex(n.hex,6),!!r.verify(e,x(t))}(b,y,g)?$n():d<p.getTime()?0===f.filter((function(e){return fe(e,h)})).length?function(e){return new Error("host(".concat(JSON.stringify(e),") is not allowed."))}(h):he({issuer:g.getSubjectString(),expire:p,allowHosts:f}):function(e){return new Error("date(".concat(e.toString(),") expired."))}(p)}var nr=new WeakMap,rr=function(){function e(){this.name="",this.workCode="",this.expire=new Date,this.allowHosts=[],this.initial={mode:"Panorama",latitude:0,longitude:0,panoIndex:0,fov:80},this.observers=[],this.boundingBox=new n.Box3,this.issuer="none",this.raw={works:[""],options:""}}return e.prototype.toJSON=function(){return this.raw.works},e.parse=lr,e}();function or(e){return null==e?"null":Array.isArray(e)?"array":"object"==typeof e?"dict":"value"}function ar(e,t){var i=or(e),n=or(t);if("null"===n)return e;if("value"===n)return t;if(n!==i)return JSON.parse(JSON.stringify(t));if("array"===n)for(var r=0;r<t.length;r++)e[r]=ar(e[r],t[r]);else if("dict"===n)for(var o in t)e[o]=ar(e[o],t[o]);return e}function sr(e,t,i){for(var r,o=JSON.stringify(t),a=[],s=0,l=[].concat(e);s<l.length;s++){var u=l[s];u instanceof rr?a.push.apply(a,u.raw.works):"string"==typeof u?a.push(u):a.push(JSON.stringify(u))}var c=ir(a);if(c instanceof Error)return c;t=JSON.parse(o),e=a.map((function(e){return JSON.parse(e)})).reduce((function(e,t){return ar(e,t)}));var h=new rr;if(c instanceof Error)return c;h.issuer=c.issuer,h.expire=c.expire,h.allowHosts=c.allowHosts,h.raw={works:a,options:o};var d=null!==(r=e.base_url)&&void 0!==r?r:"";d&&"/"!==d[d.length-1]&&(d+="/");var p=function(e,t){return 0===e.indexOf(t)},f=function(e,n){var r,o=e;if(!0===t.jsonp){o=e.replace(/([\?\#].*)?$/i,"");var a=X("".concat(o)).slice(0,7);o="".concat(o,".").concat(a,".jsonp")}if(!0===t.shortPath){var s=o.replace(d,"").split("."),l=null!==(r=s.shift())&&void 0!==r?r:"",u=s.join(".");o=di(d,X(l))+(u?"."+u:"")}var c=o.replace(d,"");return t.baseURL&&(o=di(t.baseURL,c)),i&&i(e,o,c,n),o},A=function(t,i){var n,r,o,a,s,l,u=t;if(!Ci(t)){var c=null!==(l=null!==(a=null!==(r=null===(n=e.panorama)||void 0===n?void 0:n.pano_high_cube_base_url)&&void 0!==r?r:null===(o=e.panorama)||void 0===o?void 0:o.pano_cube_base_url)&&void 0!==a?a:null===(s=e.panorama)||void 0===s?void 0:s.base_url)&&void 0!==l?l:"";c&&(c=di(c,String(i))),u=di(c,u)}return Ci(u)||(u=di(d,u)),p(u,d)||console.warn("".concat(u," is not start with base_url(").concat(d,").")),f(u,"panorama")},v=function(e){var t=e;return Ci(t)||(t=di(d,e)),p(t,d)||console.warn("".concat(t," is not start with base_url(").concat(d,").")),f(t,"model")},m=function(e,t){void 0===t&&(t="");var i=e;return Ci(i)||(i=di(t,i)),Ci(i)||(i=di(d,i)),p(i,d)||console.warn("".concat(i," is not start with base_url(").concat(d,").")),f(i,"texture")};if(c instanceof Error)return c;if(h.workCode=String(e.work_code||e.code||e.vr_code||e.workCode),h.name=String(e.name),c instanceof Error)return c;if(e.model){var g={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof t.modelBvh?g.bvh=t.modelBvh:"boolean"==typeof e.model.bvh?g.bvh=e.model.bvh:"boolean"==typeof e.bvh&&(g.bvh=e.bvh),e.model.file?g.file=v(e.model.file):e.model.file_url&&(g.file=v(e.model.file_url)),e.model.textureBase?g.textureBase=m("",e.model.textureBase):e.model.material_base_url?g.textureBase=m("",e.model.material_base_url):g.file&&(g.textureBase=g.file.split("/").slice(0,-1).join("/").replace("/model/","/materials/")),Array.isArray(e.model.textures)?g.textures=e.model.textures.map((function(t){var i,n;return m(t,null!==(n=null!==(i=e.model.textureBase)&&void 0!==i?i:e.model.material_base_url)&&void 0!==n?n:"")})):Array.isArray(e.model.material_textures)&&(g.textures=e.model.material_textures.map((function(t){var i,n;return m(t,null!==(n=null!==(i=e.model.textureBase)&&void 0!==i?i:e.model.material_base_url)&&void 0!==n?n:"")}))),e.model.tiles&&(g.tiles=e.model.tiles),g.file&&(h.model=g)}if(c instanceof Error)return c;if(e.observers&&Array.isArray(e.observers)){var y=[];e.panorama&&(Array.isArray(e.panorama)?y=e.panorama:Array.isArray(e.panorama.list)?y=e.panorama.list:Array.isArray(e.panorama.info)&&(y=e.panorama.info));for(var b=0;b<e.observers.length;b++){var x={},w=e.observers[b];if(!w)break;var M=y[b];if(!M)break;w=Object.assign({},w,M,{active:!1!==w.active&&!1!==M.active}),x.panoIndex=b,x.active=!1!==w.active,x.loadable=!0===w.loadable,x.derivedId=w.derived_id,x.images={up:A(w.images?w.images.up:w.up,b),down:A(w.images?w.images.down:w.down,b),right:A(w.images?w.images.right:w.right,b),left:A(w.images?w.images.left:w.left,b),front:A(w.images?w.images.front:w.front,b),back:A(w.images?w.images.back:w.back,b)};var C=w.images?w.images.depth:w.depth;C&&(x.images.depth=A(C,b));var E=w.images?w.images.luminance:w.luminance;E&&(x.images.luminance={up:A(E.up,b),down:A(E.down,b),right:A(E.right,b),left:A(E.left,b),front:A(E.front,b),back:A(E.back,b)});var I=w.images?w.images.tiles:w.tiles;if(I){for(var S=[],B=function(e){var t=e.match(/\/cube_(\d+)\//);if(t){var i=Number(t[1]);if(Yn(i))return i}return!1},T=function(e,t){return e.replace(/\/cube_(\d+)\//,(function(){return"/cube_".concat(t,"/")}))},P=0,R=I;P<R.length;P++){var k=R[P];if("number"==typeof k){var Q=k,F=B(x.images.front);if(!1===F)continue;if((z=Math.max(F,512*Math.pow(2,Q)))>2048){var D=T(x.images.up,z),L=T(x.images.down,z),O=T(x.images.right,z),N=T(x.images.left,z),V=T(x.images.front,z),U=T(x.images.back,z);S.push({level:Q,size:z,up:D,down:L,right:O,left:N,front:V,back:U})}else{D=x.images.up,L=x.images.down,O=x.images.right,N=x.images.left,V=x.images.front,U=x.images.back;S.push({level:Q,size:z,up:D,down:L,right:O,left:N,front:V,back:U})}}else{var z;if("number"!=typeof(Q=k.level))continue;if("number"!=typeof(z=k.size))continue;D=A(k.up,b),L=A(k.down,b),O=A(k.right,b),N=A(k.left,b),V=A(k.front,b),U=A(k.back,b);S.push({level:Q,size:z,up:D,down:L,right:O,left:N,front:V,back:U})}}S.sort((function(e,t){return e.level-t.level})),x.images.tiles=S}if(w.position instanceof n.Vector3)x.position=w.position.clone();else{if(!Array.isArray(w.position))break;x.position=(new n.Vector3).fromArray(w.position)}if(w.standingPosition instanceof n.Vector3)x.standingPosition=w.standingPosition.clone();else if(Array.isArray(w.standingPosition))x.standingPosition=(new n.Vector3).fromArray(w.standingPosition);else if(w.standing_position instanceof n.Vector3)x.standingPosition=w.standing_position.clone();else{if(!Array.isArray(w.standing_position))break;x.standingPosition=(new n.Vector3).fromArray(w.standing_position)}if(w.quaternion instanceof n.Quaternion)x.quaternion=w.quaternion.clone();else if(Array.isArray(w.quaternion))x.quaternion=(new n.Quaternion).fromArray(w.quaternion);else{if(!w.quaternion)break;var q=w.quaternion,H=q.x,_=q.y,K=q.z,j=q.w;x.quaternion=new n.Quaternion(H,_,K,j)}if(Array.isArray(w.accessibleNodes)?x.accessibleNodes=w.accessibleNodes.slice():Array.isArray(w.accessible_nodes)&&(x.accessibleNodes=w.accessible_nodes.slice()),Array.isArray(w.visibleNodes)?x.visibleNodes=w.visibleNodes.slice():Array.isArray(w.visible_nodes)&&(x.visibleNodes=w.visible_nodes.slice()),Xn(w.floorIndex)?x.floorIndex=w.floorIndex:Xn(w.floor_index)?x.floorIndex=w.floor_index:x.floorIndex=0,w.video){var G={};"string"==typeof w.video.source&&(G.source=w.video.source),w.video.matrix instanceof n.Matrix4?G.matrix=w.video.matrix.clone():Array.isArray(w.video.matrix)&&(G.matrix=(new n.Matrix4).fromArray(w.video.matrix)),w.video.size instanceof n.Vector2?G.size=w.video.size.clone():Array.isArray(w.video.size)&&(G.size=(new n.Vector2).fromArray(w.video.size)),G.source&&G.matrix&&G.size&&(x.video=G)}h.observers[b]=x}}if(c instanceof Error)return c;for(var W=0,Y=h.observers;W<Y.length;W++){if((x=Y[W]).accessibleNodes)x.accessibleNodes=x.accessibleNodes.filter((function(e){return e<h.observers.length}));else{x.accessibleNodes=[];for(var Z=0;Z<h.observers.length;Z++)h.observers[Z]!==x&&x.accessibleNodes.push(Z)}if(x.visibleNodes)x.visibleNodes=x.visibleNodes.filter((function(e){return e<h.observers.length}));else{x.visibleNodes=[];for(Z=0;Z<h.observers.length;Z++)h.observers[Z]!==x&&x.visibleNodes.push(Z)}}if(c instanceof Error)return c;if(e.initial)if("Floorplan"!==e.initial.mode&&"Topview"!==e.initial.mode&&"Panorama"!==e.initial.mode&&"VRPanorama"!==e.initial.mode&&"Model"!==e.initial.mode&&"DepthPanorama"!==e.initial.mode||(h.initial.mode=e.initial.mode),Xn(e.initial.latitude)&&(h.initial.latitude=e.initial.latitude),Xn(e.initial.longitude)?h.initial.longitude=e.initial.longitude:Xn(e.initial.heading)&&(h.initial.longitude=-(360*(e.initial.heading-.25)+90)/180*Math.PI),Xn(e.initial.fov)&&(h.initial.fov=e.initial.fov),Xn(e.initial.panoIndex)){var J=h.observers.length>0?h.observers.length-1:0;h.initial.panoIndex=Gn(e.initial.panoIndex,0,J)}else if(Xn(e.initial.pano_index)){J=h.observers.length>0?h.observers.length-1:0;h.initial.panoIndex=Gn(e.initial.pano_index,0,J)}else if(Xn(e.initial.pano)){J=h.observers.length>0?h.observers.length-1:0;h.initial.panoIndex=Gn(e.initial.pano,0,J)}if(c instanceof Error)return c;h.boundingBox.makeEmpty();for(var $=0,ee=h.observers;$<ee.length;$++){x=ee[$];h.boundingBox.expandByPoint(x.standingPosition),h.boundingBox.expandByPoint((new n.Vector3).fromArray([x.position.x,2*x.position.y-x.standingPosition.y,x.position.z]))}if(c instanceof Error)return c;var te=he(h);return nr.set(te,{works:a,options:o}),te}function lr(e,t,i){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var n=nr.get(e);if(n){if(t&&!Wn(JSON.parse(n.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return e}var r=sr(e,null!=t?t:{},i);if(r instanceof Error)throw new Error("[PARSE FAILED]: "+r.message+"\nError work input:\n"+JSON.stringify(e));return r}function ur(e,t,i){return e+(t-e)*i}function cr(e,t){var i=t[1]-t[0];return e<t[0]?cr(e+i,t):e>=t[1]?cr(e-i,t):e}function hr(e,t,i,n){return n?function(e,t,i,n){var r=n[1]-n[0];return e=cr(e,n),ur((t=cr(t,n))-e>r/2?e+r:e-t>r/2?e-r:e,t,i)}(e,t,i,n):ur(e,t,i)}var dr=function(){function e(e){for(var t in this.config={},this.progress=1,this.ended=!0,this.value={},this.startTime=ce(),this.startVelocity=0,this.duration=0,this.keyframes=[],e){var i=e[t];"number"==typeof i?(this.value[t]=i,this.config[t]={circle:!1}):(this.value[t]=i.value,this.config[t]={circle:i.circle})}this.keyframes=[{progress:0,value:ie({},this.value)},{progress:1,value:ie({},this.value)}]}return e.prototype.getProgress=function(e){var t=e-this.startTime;return t<0?0:t>=this.duration?1:1-function(e,t,i,n){var r=(t*i+2*e)/Math.pow(i,3),o=-(2*t*i+3*e)/Math.pow(i,2),a=t,s=e;return r*Math.pow(n,3)+o*Math.pow(n,2)+a*n+s}(1,this.startVelocity,this.duration,t)},e.prototype.getValue=function(e){for(var t=1;t<this.keyframes.length;t++)if(this.keyframes[t].progress>e){var i=this.keyframes[t-1],n=this.keyframes[t],r={};for(var o in this.config){var a=(e-i.progress)/(n.progress-i.progress);r[o]=hr(i.value[o],n.value[o],a,this.config[o].circle)}return r}return ie({},this.keyframes[this.keyframes.length-1].value)},e.prototype.getProgressVelocity=function(e){var t=e-this.startTime;return t>=this.duration?0:function(e,t,i,n){var r=(t*i+2*e)/Math.pow(i,3),o=-(2*t*i+3*e)/Math.pow(i,2),a=t;return 3*r*Math.pow(n,2)+2*o*n+a}(1,this.startVelocity,this.duration,t)},e.prototype.update=function(e){return!!this.ended||(this.progress=Math.min(1,Math.max(0,this.progress,this.getProgress(e))),this.value=this.getValue(this.progress),this.ended=this.progress>=1,this.ended&&this.callbacks&&(this.callbacks[0](),this.callbacks=void 0),this.ended)},e.prototype.getKeyFrameSegment=function(e){for(var t=this.getProgress(e),i=1;i<this.keyframes.length;i++)if(this.keyframes[i].progress>t)return[this.keyframes[i-1],this.keyframes[i]];return[this.keyframes[this.keyframes.length-2],this.keyframes[this.keyframes.length-1]]},e.prototype.getTargetKeyframe=function(){return this.keyframes[this.keyframes.length-1]},e.prototype.set=function(e,t,i,n){var r;void 0===i&&(i=0),isNaN(t)&&(t=0),isNaN(i)&&(i=0),n=null!=n?n:ce();var o=this.getProgress(n),a=this.getValue(o),s={};for(var l in this.config)s[l]=null!==(r=e[l])&&void 0!==r?r:a[l];var u=[{progress:0,value:a},{progress:1,value:s}];return this.setKeyframes(u,t,i,n)},e.prototype.setKeyframes=function(e,t,i,n){var r=this;if(void 0===i&&(i=0),e.length<2)throw new Error("keyframes invalid.");return isNaN(t)&&(t=0),isNaN(i)&&(i=0),this.callbacks&&(this.callbacks[1](new Error("motion aborted.")),this.callbacks=void 0),new Promise((function(o,a){n=null!=n?n:ce(),r.progress=0,r.ended=!1,r.startTime=n,r.startVelocity=i,r.keyframes=e,r.duration=t,0===t?(r.progress=1,r.value=ie({},e[e.length-1].value)):r.value=ie({},e[0].value),r.callbacks=[o,a]}))},e.prototype.dispose=function(){this.callbacks&&(this.callbacks[1](new Error("motion dispose.")),this.callbacks=void 0)},e}(),pr=function(e){return e*(2-e)},fr=function(){var e=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),t=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new n.BufferGeometry;return r.setAttribute("position",new n.BufferAttribute(e,3)),r.setAttribute("uv",new n.BufferAttribute(t,2)),r.setIndex(new n.BufferAttribute(i,1)),r}(),Ar=function(e){function t(t){void 0===t&&(t={});var i,r,o=this;o=e.call(this)||this;var a=null!==(i=t.color)&&void 0!==i?i:16777215,s=null!==(r=t.scale)&&void 0!==r?r:1;return o.progress=0,o.opacity=0,o.loading=!1,o.current=!1,o.disabled=!1,o.currentMotion=new dr({progress:0}),o.ringMotion=new dr({scale:1,opacity:1}),o.tapMotion=new dr({scale:1,opacity:1}),o.loadingOpacityMotion=new dr({opacity:0}),o.progressMotion=new dr({progress:0}),o.progressOpacityMotion=new dr({opacity:0}),o.opacityMotion=new dr({opacity:0}),o.disableMotion=new dr({progress:0}),o.panoMesh=new n.Mesh(fr,new n.ShaderMaterial({blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float ringScale;\nuniform float ringOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.8 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 1.5, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * inside(0.15 * circleScale * tapScale) * outside(0.234 * circleScale * tapScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_ring() {\n float gradient = clamp(0.5 + abs(dot(normalize(vec2(1.0, 1.0)), vUv - CENTER)), 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * ringOpacity * inside(0.27 * ringScale * tapScale) * outside(0.32 * ringScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.4 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * loadingOpacity * inside(0.208 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.5;\n return vec4(1.0, 1.0, 1.0, bar * tapOpacity * progressOpacity * inside(0.208 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.2 + (0.43 - 0.2) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.2 + (0.43 - 0.2) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 ringColor = create_ring();\n gl_FragColor = mix(gl_FragColor, ringColor, ringColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb * baseColor, gl_FragColor.a * opacity * opacity);\n}\n",uniforms:{baseColor:{value:new n.Color(a)},circleScale:{value:1},ringScale:{value:1},ringOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0}}})),o.renderOrder=-2,o.panoMesh.renderOrder=-2,o.panoMesh.position.y=.004,o.panoMesh.scale.set(s,1,s),o.add(o.panoMesh),o.currentStartTime=ce(),o.needsRender=!0,o}return te(t,e),t.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gn(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gn(1.2*e,0,1)},100).catch(le)),this.progress=e)},t.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gn(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},t.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},t.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},t.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},t.prototype.tap=function(){var e=this;if(!this.tapMotion.ended)return Promise.resolve();return this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)},t.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var i=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=i,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var n=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=n,this.needsRender=!0}if(!this.opacityMotion.ended){this.opacityMotion.update(e);n=this.opacityMotion.value.opacity;this.panoMesh.material.uniforms.opacity.value=n,this.needsRender=!0}if((!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=1+Math.sin(Math.PI*r)/25*this.currentMotion.value.progress;this.panoMesh.material.uniforms.circleScale.value=o,this.needsRender=!0}var a=(e-this.currentStartTime-1500)/2e3;if(a%5<2){var s=a%1;this.panoMesh.material.uniforms.expand0.value=pr(s)*this.currentMotion.value.progress,this.needsRender=!0}var l=(e-this.currentStartTime-1e3)/2e3;if(l%5<2){s=l%1;this.panoMesh.material.uniforms.expand1.value=pr(s)*this.currentMotion.value.progress,this.needsRender=!0}}this.currentMotion.value.progress>.2&&0===this.progress&&!1===this.loading?(e-this.currentStartTime-1e3)/2e3%5<2?.8!==this.ringMotion.getTargetKeyframe().value.scale&&this.ringMotion.set({scale:.8,opacity:0},600).catch(le):1!==this.ringMotion.getTargetKeyframe().value.scale&&this.ringMotion.set({scale:1,opacity:1},600).catch(le):1!==this.ringMotion.getTargetKeyframe().value.scale&&this.ringMotion.set({scale:1,opacity:1},600).catch(le);if(!this.ringMotion.ended){var u=this.ringMotion.value;o=u.scale,n=u.opacity;this.ringMotion.update(e),this.panoMesh.material.uniforms.ringScale.value=o,this.panoMesh.material.uniforms.ringOpacity.value=n,this.needsRender=!0}if(!this.disableMotion.ended){i=this.disableMotion.value.progress;this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=i,this.needsRender=!0}},t.prototype.dispose=function(){this.ringMotion.dispose(),this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},t}(n.Object3D),vr=function(e){return e*(2-e)},mr=function(){var e=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),t=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new n.BufferGeometry;return r.setAttribute("position",new n.BufferAttribute(e,3)),r.setAttribute("uv",new n.BufferAttribute(t,2)),r.setIndex(new n.BufferAttribute(i,1)),r}(),gr=function(e){function t(t){void 0===t&&(t={});var i,r,o=this;o=e.call(this)||this;var a=null!==(i=t.color)&&void 0!==i?i:16777215,s=null!==(r=t.scale)&&void 0!==r?r:1;return o.progress=0,o.opacity=0,o.loading=!1,o.current=!1,o.disabled=!1,o.currentMotion=new dr({progress:0}),o.tapMotion=new dr({scale:1,opacity:1}),o.loadingOpacityMotion=new dr({opacity:0}),o.progressMotion=new dr({progress:0}),o.progressOpacityMotion=new dr({opacity:0}),o.opacityMotion=new dr({opacity:0}),o.disableMotion=new dr({progress:0}),o.panoMesh=new n.Mesh(mr,new n.ShaderMaterial({blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.8 * circleOpacity * tapOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * loadingOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.7;\n return vec4(1.0, 1.0, 1.0, bar * tapOpacity * progressOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.25 + (0.5 - 0.25) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.25 + (0.48 - 0.25) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb * baseColor, gl_FragColor.a * opacity * opacity);\n}\n",uniforms:{baseColor:{value:new n.Color(a)},circleScale:{value:1},circleOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0}}})),o.renderOrder=-2,o.panoMesh.renderOrder=-2,o.panoMesh.position.y=.004,o.panoMesh.scale.set(s,1,s),o.add(o.panoMesh),o.currentStartTime=ce(),o.needsRender=!0,o}return te(t,e),t.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gn(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gn(1.2*e,0,1)},100).catch(le)),this.progress=e)},t.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gn(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},t.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},t.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},t.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},t.prototype.tap=function(){var e=this;if(!this.tapMotion.ended)return Promise.resolve();return this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)},t.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var i=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=i,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var n=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=n,this.needsRender=!0}if(!this.opacityMotion.ended){this.opacityMotion.update(e);n=this.opacityMotion.value.opacity;this.panoMesh.material.uniforms.opacity.value=n,this.needsRender=!0}if((!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.panoMesh.material.uniforms.circleOpacity.value=Math.max(.6,1-Math.max(this.loadingOpacityMotion.value.opacity,this.progressOpacityMotion.value.opacity)),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=1+Math.sin(Math.PI*r)/25*this.currentMotion.value.progress;this.panoMesh.material.uniforms.circleScale.value=o,this.needsRender=!0}var a=(e-this.currentStartTime-1500)/2e3;if(a%5<2){var s=a%1;this.panoMesh.material.uniforms.expand0.value=vr(s)*this.currentMotion.value.progress,this.needsRender=!0}var l=(e-this.currentStartTime-1e3)/2e3;if(l%5<2){s=l%1;this.panoMesh.material.uniforms.expand1.value=vr(s)*this.currentMotion.value.progress,this.needsRender=!0}}if(!this.disableMotion.ended){i=this.disableMotion.value.progress;this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=i,this.needsRender=!0}},t.prototype.dispose=function(){this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},t}(n.Object3D),yr=function(e){return e*(2-e)},br=function(){var e=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),t=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new n.BufferGeometry;return r.setAttribute("position",new n.BufferAttribute(e,3)),r.setAttribute("uv",new n.BufferAttribute(t,2)),r.setIndex(new n.BufferAttribute(i,1)),r}(),xr=function(e){function t(t){void 0===t&&(t={});var i,r,o,a,s,l,u,c=this;c=e.call(this)||this;var h=null!==(i=t.color)&&void 0!==i?i:16777215,d=null!==(r=t.scale)&&void 0!==r?r:1,p=t.map,f=null!==(o=t.mapAlpha)&&void 0!==o?o:1,A=null!==(a=t.mapUseColor)&&void 0!==a&&a,v=null!==(s=t.mapUseReverse)&&void 0!==s&&s,m=null!==(l=t.borderWidth)&&void 0!==l?l:.1,g=null!==(u=t.borderColor)&&void 0!==u?u:16777215;return c.progress=0,c.opacity=0,c.loading=!1,c.current=!1,c.disabled=!1,c.currentMotion=new dr({progress:0}),c.tapMotion=new dr({scale:1,opacity:1}),c.loadingOpacityMotion=new dr({opacity:0}),c.progressMotion=new dr({progress:0}),c.progressOpacityMotion=new dr({opacity:0}),c.opacityMotion=new dr({opacity:0}),c.disableMotion=new dr({progress:0}),c.panoMesh=new n.Mesh(br,new n.ShaderMaterial({blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_MAP)\nuniform sampler2D map;\nuniform float mapAlpha;\n#endif\n#if defined(USE_BORDER)\nuniform float borderWidth;\nuniform vec3 borderColor;\n#endif\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float radius = 0.3 * circleScale * tapScale;\n #if defined(USE_MAP)\n float delta = radius / 0.5;\n vec2 deltaUv = (vUv - CENTER) / delta + CENTER;\n vec4 image = texture2D(map, deltaUv);\n image.a = image.a * mapAlpha;\n #if defined(USE_COLOR)\n image = vec4(baseColor, 1.0) * image;\n #endif\n #endif\n #if defined(USE_REVERSE)\n image = vec4(baseColor, 1.0 - image.a);\n #else\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n float clipAlpha = inside(radius - borderDist * radius);\n float gradient = clamp(borderWidth * 2.0 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)), 0.0, 1.0);\n vec4 borderColor = vec4(borderColor, clipAlpha * gradient);\n image = mix(borderColor, image, image.a);\n #endif\n #endif\n return vec4(image.rgb, image.a * circleOpacity * tapOpacity * outside(radius));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(baseColor, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n float radius = 0.3 * circleScale * tapScale;\n float inner = inside(radius - 0.2 * radius);\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n inner = inside(radius - borderDist * radius);\n #endif\n return vec4(baseColor, gradient * tapOpacity * loadingOpacity * inner * outside(radius));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.7;\n float radius = 0.3 * circleScale * tapScale;\n float inner = inside(radius - 0.2 * radius);\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n inner = inside(radius - borderDist * radius);\n #endif\n return vec4(baseColor, bar * tapOpacity * progressOpacity * inner * outside(radius));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.25 + (0.5 - 0.25) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(baseColor, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.25 + (0.48 - 0.25) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(baseColor, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(baseColor, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n",defines:{USE_COLOR:A,USE_MAP:void 0!==p,USE_BORDER:m>0,USE_REVERSE:v},uniforms:{baseColor:{value:new n.Color(h)},circleScale:{value:1},circleOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0},map:{value:p},mapAlpha:{value:f},borderWidth:{value:m},borderColor:{value:new n.Color(g)}}})),c.renderOrder=-2,c.panoMesh.renderOrder=-2,c.panoMesh.position.y=.004,c.panoMesh.scale.set(d,1,d),c.add(c.panoMesh),c.currentStartTime=ce(),c.needsRender=!0,c}return te(t,e),t.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gn(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gn(1.2*e,0,1)},100).catch(le)),this.progress=e)},t.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gn(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},t.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},t.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},t.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},t.prototype.tap=function(){var e=this;if(!this.tapMotion.ended)return Promise.resolve();return this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)},t.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var i=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=i,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var n=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=n,this.needsRender=!0}if(!this.opacityMotion.ended){this.opacityMotion.update(e);n=this.opacityMotion.value.opacity;this.panoMesh.material.uniforms.opacity.value=n,this.needsRender=!0}if((!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.panoMesh.material.uniforms.circleOpacity.value=Math.max(.6,1-Math.max(this.loadingOpacityMotion.value.opacity,this.progressOpacityMotion.value.opacity)),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=r%1;this.panoMesh.material.uniforms.expand0.value=yr(o)*this.currentMotion.value.progress,this.needsRender=!0}var a=(e-this.currentStartTime-1e3)/2e3;if(a%5<2){o=a%1;this.panoMesh.material.uniforms.expand1.value=yr(o)*this.currentMotion.value.progress,this.needsRender=!0}}if(!this.disableMotion.ended){i=this.disableMotion.value.progress;this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=i,this.needsRender=!0}},t.prototype.dispose=function(){this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},t}(n.Object3D),wr=new n.CircleBufferGeometry(.1,16),Mr=new n.ShaderMaterial({vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nvarying vec2 vUv;\n\nfloat smoothDist = 0.01;\nvoid main() {\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * outside * inside);\n}\n",transparent:!0}),Cr=function(e){function t(){var t=e.call(this)||this;return t.ringMesh=new n.Mesh(wr,Mr),t.ringMesh.renderOrder=-2,t.add(t.ringMesh),t}return te(t,e),t.prototype.dispose=function(){this.remove(this.ringMesh)},t}(n.Object3D);function Er(e,t,i){var n=Math.abs(e-t);return n<.001||void 0!==i&&Math.abs(i-n)<.001}function Ir(e,t,i){return!Er(e,t,i)}function Sr(e,t){return e.distanceTo(t)<.001}function Br(e,t){return!Sr(e,t)}var Tr=new n.Vector3(0,0,0),Pr=function(e){function t(t,i){void 0===i&&(i=Tr);var r=e.call(this)||this,o=new n.BoxBufferGeometry(t.max.x-t.min.x+2*i.x,t.max.y-t.min.y+2*i.y,t.max.z-t.min.z+2*i.z,1,1);o.groups.length=0,o.groups.push({start:0,count:36,materialIndex:0}),o.applyMatrix4((new n.Matrix4).makeScale(-1,1,1)),o.computeVertexNormals();var a=new Pt;a.defines.USE_MAP=!1,a.defines.USE_UV=!1,a.defines.USE_PANO_OPACITY=!0,a.uniforms.diffuse.value=new n.Color(10066329),a.depthWrite=!1;var s=new ze(o,[a]);return s.floorIndex=-1,s.position.copy(t.getCenter(new n.Vector3)),s.frustumCulled=!1,r.renderOrder=-4,r.add(s),r.boundingBox=new n.Box3,r.boundingBox.setFromObject(r),r}return te(t,e),t.prototype.dispose=function(){this.disposeMaterial(),this.disposeGeometry()},t}(He);function Rr(e,t){return void 0===t&&(t=Tr),new Pr(e,t)}var kr=2*Math.PI;function Qr(e){return e>=0&&e<kr?e:(e%kr+kr)%kr}var Fr=Math.PI,Dr=2*Fr;function Lr(e,t,i){if(e===t)return t;var n=t-e;return Math.abs(n)<=i?t:e+(n>0?1:-1)*i}function Or(e,t,i){if(e.longitude===t.longitude&&e.latitude===t.latitude)return{longitude:t.longitude,latitude:t.latitude};var n=Qr(e.longitude),r=e.latitude,o=Qr(t.longitude),a=t.latitude;o-n>Fr?n+=Dr:n-o>Fr&&(n-=Dr);var s=i/Math.sqrt(Math.pow(o-n,2)+Math.pow(a-r,2));return s>=1?{longitude:t.longitude,latitude:t.latitude}:{longitude:n+(o-n)*s,latitude:r+(a-r)*s}}!function(){try{var e=document.createElement("canvas");!window.WebGLRenderingContext||!e.getContext("webgl")&&e.getContext("experimental-webgl")}catch(e){return!1}}();var Nr=function(){var e="undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"node";return/android/i.test(e)||/webos/i.test(e)||/ipad|iphone|ipod/i.test(e)||/iemobile/i.test(e)||/opera mini/i.test(e)||/blackberry/i.test(e)||/windows phone/i.test(e)};function Vr(e,t){e.mode=t.mode,e.panoIndex=t.panoIndex,e.longitude=t.longitude,e.latitude=t.latitude,e.fov=t.fov,e.offset.copy(t.offset),e.distance=t.distance}function Ur(e,t){return e.panoIndex===t.panoIndex&&e.mode===t.mode&&Er(e.longitude,t.longitude,2*Math.PI)&&Er(e.latitude,t.latitude)&&Er(e.fov,t.fov)&&Sr(e.offset,t.offset)&&Er(e.distance,t.distance)}var zr=function(e){return Number(e)};function qr(e,t,i){var n;void 0===t&&(t=zr),void 0===i&&(i=!1);for(var r,o=1/0,a=0,s=e;a<s.length;a++){var l=s[a],u=t(l);u<=o&&(r=(n=[l,u])[0],o=n[1])}return isFinite(o)||(o=0),i?[r,o]:r}function Hr(e){for(var t in e)return!1;return!0}function _r(e){return{longitude:e.longitude,latitude:e.latitude,fov:e.fov,offset:e.offset.clone(),distance:e.distance}}
|
|
358
|
+
/*! Hammer.JS - v2.0.7 - 2016-04-22
|
|
359
|
+
* http://hammerjs.github.io/
|
|
360
|
+
*
|
|
361
|
+
* Copyright (c) 2016 Jorik Tangelder;
|
|
362
|
+
* Licensed under the MIT license */var Kr=function(e,t,i,n){var r,o=["","webkit","Moz","MS","ms","o"],a=t.createElement?t.createElement("div"):n,s=Math.round,l=Math.abs,u=Date.now;function c(e,t,i){return setTimeout(m(e,i),t)}function h(e,t,i){return!!Array.isArray(e)&&(d(e,i[t],i),!0)}function d(e,t,i){var r;if(e)if(e.forEach)e.forEach(t,i);else if(e.length!==n)for(r=0;r<e.length;)t.call(i,e[r],r,e),r++;else for(r in e)e.hasOwnProperty(r)&&t.call(i,e[r],r,e)}function p(t,i,n){var r="DEPRECATED METHOD: "+i+"\n"+n+" AT \n";return function(){var i=new Error("get-stack-trace"),n=i&&i.stack?i.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,r,n),t.apply(this,arguments)}}r="function"!=typeof Object.assign?function(e){if(e===n||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i<arguments.length;i++){var r=arguments[i];if(r!==n&&null!==r)for(var o in r)r.hasOwnProperty(o)&&(t[o]=r[o])}return t}:Object.assign;var f=p((function(e,t,i){for(var r=Object.keys(t),o=0;o<r.length;)(!i||i&&e[r[o]]===n)&&(e[r[o]]=t[r[o]]),o++;return e}),"extend","Use `assign`."),A=p((function(e,t){return f(e,t,!0)}),"merge","Use `assign`.");function v(e,t,i){var n,o=t.prototype;(n=e.prototype=Object.create(o)).constructor=e,n._super=o,i&&r(n,i)}function m(e,t){return function(){return e.apply(t,arguments)}}function g(e,t){return"function"==typeof e?e.apply(t&&t[0]||n,t):e}function y(e,t){return e===n?t:e}function b(e,t,i){d(C(t),(function(t){e.addEventListener(t,i,!1)}))}function x(e,t,i){d(C(t),(function(t){e.removeEventListener(t,i,!1)}))}function w(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function M(e,t){return e.indexOf(t)>-1}function C(e){return e.trim().split(/\s+/g)}function E(e,t,i){if(e.indexOf&&!i)return e.indexOf(t);for(var n=0;n<e.length;){if(i&&e[n][i]==t||!i&&e[n]===t)return n;n++}return-1}function I(e){return Array.prototype.slice.call(e,0)}function S(e,t,i){for(var n=[],r=[],o=0;o<e.length;){var a=t?e[o][t]:e[o];E(r,a)<0&&n.push(e[o]),r[o]=a,o++}return i&&(n=t?n.sort((function(e,i){return e[t]>i[t]})):n.sort()),n}function B(e,t){for(var i,r,a=t[0].toUpperCase()+t.slice(1),s=0;s<o.length;){if((r=(i=o[s])?i+a:t)in e)return r;s++}return n}var T=1;function P(t){var i=t.ownerDocument||t;return i.defaultView||i.parentWindow||e}var R="ontouchstart"in e,k=B(e,"PointerEvent")!==n,Q=R&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),F="touch",D="mouse",L=24,O=["x","y"],N=["clientX","clientY"];function V(e,t){var i=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){g(e.options.enable,[e])&&i.handler(t)},this.init()}function U(e,t,i){var r=i.pointers.length,o=i.changedPointers.length,a=1&t&&r-o==0,s=12&t&&r-o==0;i.isFirst=!!a,i.isFinal=!!s,a&&(e.session={}),i.eventType=t,function(e,t){var i=e.session,r=t.pointers,o=r.length;i.firstInput||(i.firstInput=z(t));o>1&&!i.firstMultiple?i.firstMultiple=z(t):1===o&&(i.firstMultiple=!1);var a=i.firstInput,s=i.firstMultiple,c=s?s.center:a.center,h=t.center=q(r);t.timeStamp=u(),t.deltaTime=t.timeStamp-a.timeStamp,t.angle=j(c,h),t.distance=K(c,h),function(e,t){var i=t.center,n=e.offsetDelta||{},r=e.prevDelta||{},o=e.prevInput||{};1!==t.eventType&&4!==o.eventType||(r=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=e.offsetDelta={x:i.x,y:i.y});t.deltaX=r.x+(i.x-n.x),t.deltaY=r.y+(i.y-n.y)}(i,t),t.offsetDirection=_(t.deltaX,t.deltaY);var d=H(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=l(d.x)>l(d.y)?d.x:d.y,t.scale=s?function(e,t){return K(t[0],t[1],N)/K(e[0],e[1],N)}(s.pointers,r):1,t.rotation=s?function(e,t){return j(t[1],t[0],N)+j(e[1],e[0],N)}(s.pointers,r):0,t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length,function(e,t){var i,r,o,a,s=e.lastInterval||t,u=t.timeStamp-s.timeStamp;if(8!=t.eventType&&(u>25||s.velocity===n)){var c=t.deltaX-s.deltaX,h=t.deltaY-s.deltaY,d=H(u,c,h);r=d.x,o=d.y,i=l(d.x)>l(d.y)?d.x:d.y,a=_(c,h),e.lastInterval=t}else i=s.velocity,r=s.velocityX,o=s.velocityY,a=s.direction;t.velocity=i,t.velocityX=r,t.velocityY=o,t.direction=a}(i,t);var p=e.element;w(t.srcEvent.target,p)&&(p=t.srcEvent.target);t.target=p}(e,i),e.emit("hammer.input",i),e.recognize(i),e.session.prevInput=i}function z(e){for(var t=[],i=0;i<e.pointers.length;)t[i]={clientX:s(e.pointers[i].clientX),clientY:s(e.pointers[i].clientY)},i++;return{timeStamp:u(),pointers:t,center:q(t),deltaX:e.deltaX,deltaY:e.deltaY}}function q(e){var t=e.length;if(1===t)return{x:s(e[0].clientX),y:s(e[0].clientY)};for(var i=0,n=0,r=0;r<t;)i+=e[r].clientX,n+=e[r].clientY,r++;return{x:s(i/t),y:s(n/t)}}function H(e,t,i){return{x:t/e||0,y:i/e||0}}function _(e,t){return e===t?1:l(e)>=l(t)?e<0?2:4:t<0?8:16}function K(e,t,i){i||(i=O);var n=t[i[0]]-e[i[0]],r=t[i[1]]-e[i[1]];return Math.sqrt(n*n+r*r)}function j(e,t,i){i||(i=O);var n=t[i[0]]-e[i[0]],r=t[i[1]]-e[i[1]];return 180*Math.atan2(r,n)/Math.PI}V.prototype={handler:function(){},init:function(){this.evEl&&b(this.element,this.evEl,this.domHandler),this.evTarget&&b(this.target,this.evTarget,this.domHandler),this.evWin&&b(P(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&x(this.element,this.evEl,this.domHandler),this.evTarget&&x(this.target,this.evTarget,this.domHandler),this.evWin&&x(P(this.element),this.evWin,this.domHandler)}};var G={mousedown:1,mousemove:2,mouseup:4},W="mousedown",X="mousemove mouseup";function Y(){this.evEl=W,this.evWin=X,this.pressed=!1,V.apply(this,arguments)}v(Y,V,{handler:function(e){var t=G[e.type];1&t&&(0===e.button||2===e.button)&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:D,srcEvent:e}))}});var Z={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},J={2:F,3:"pen",4:D,5:"kinect"},$="pointerdown",ee="pointermove pointerup pointercancel";function te(){this.evEl=$,this.evWin=ee,V.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&($="MSPointerDown",ee="MSPointerMove MSPointerUp MSPointerCancel"),v(te,V,{handler:function(e){var t=this.store,i=!1,n=!1,r=e.type.toLowerCase().replace("ms",""),o=Z[r],a=J[e.pointerType]||e.pointerType,s=a==F,l=E(t,e.pointerId,"pointerId");1&o&&(0===e.button||2===e.button||s)?l<0&&(t.push(e),l=t.length-1):12&o?i=!0:s||0!==e.buttons||(i=!0,n=!0,o=Z.pointerup),l<0||(n||(t[l]=e),this.callback(this.manager,o,{pointers:t,changedPointers:[e],pointerType:a,srcEvent:t[l]}),i&&t.splice(l,1))}});var ie={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ne="touchstart",re="touchstart touchmove touchend touchcancel";function oe(){this.evTarget=ne,this.evWin=re,this.started=!1,V.apply(this,arguments)}function ae(e,t){var i=I(e.touches),n=I(e.changedTouches);return 12&t&&(i=S(i.concat(n),"identifier",!0)),[i,n]}v(oe,V,{handler:function(e){var t=ie[e.type];if(1===t&&(this.started=!0),this.started){var i=ae.call(this,e,t);12&t&&i[0].length-i[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:i[0],changedPointers:i[1],pointerType:F,srcEvent:e})}}});var se={touchstart:1,touchmove:2,touchend:4,touchcancel:8},le="touchstart touchmove touchend touchcancel";function ue(){this.evTarget=le,this.targetIds={},V.apply(this,arguments)}function ce(e,t){var i=I(e.touches),n=this.targetIds;if(3&t&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,o,a=I(e.changedTouches),s=[],l=this.target;if(o=i.filter((function(e){return w(e.target,l)})),1===t)for(r=0;r<o.length;)n[o[r].identifier]=!0,r++;for(r=0;r<a.length;)n[a[r].identifier]&&s.push(a[r]),12&t&&delete n[a[r].identifier],r++;return s.length?[S(o.concat(s),"identifier",!0),s]:void 0}v(ue,V,{handler:function(e){var t=se[e.type],i=ce.call(this,e,t);i&&this.callback(this.manager,t,{pointers:i[0],changedPointers:i[1],pointerType:F,srcEvent:e})}});function he(){V.apply(this,arguments);var e=m(this.handler,this);this.touch=new ue(this.manager,e),this.mouse=new Y(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function de(e,t){1&e?(this.primaryTouch=t.changedPointers[0].identifier,pe.call(this,t)):12&e&&pe.call(this,t)}function pe(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var i={x:t.clientX,y:t.clientY};this.lastTouches.push(i);var n=this.lastTouches;setTimeout((function(){var e=n.indexOf(i);e>-1&&n.splice(e,1)}),2500)}}function fe(e){for(var t=e.srcEvent.clientX,i=e.srcEvent.clientY,n=0;n<this.lastTouches.length;n++){var r=this.lastTouches[n],o=Math.abs(t-r.x),a=Math.abs(i-r.y);if(o<=25&&a<=25)return!0}return!1}v(he,V,{handler:function(e,t,i){var n=i.pointerType==F,r=i.pointerType==D;if(!(r&&i.sourceCapabilities&&i.sourceCapabilities.firesTouchEvents)){if(n)de.call(this,t,i);else if(r&&fe.call(this,i))return;this.callback(e,t,i)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Ae=a?B(a.style,"touchAction"):n,ve=Ae!==n,me="compute",ge="auto",ye="manipulation",be="none",xe="pan-x",we="pan-y",Me=function(){if(!ve)return!1;var t={},i=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){t[n]=!i||e.CSS.supports("touch-action",n)})),t}();function Ce(e,t){this.manager=e,this.set(t)}Ce.prototype={set:function(e){e==me&&(e=this.compute()),ve&&this.manager.element.style&&Me[e]&&(this.manager.element.style[Ae]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return d(this.manager.recognizers,(function(t){g(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(M(e,be))return be;var t=M(e,xe),i=M(e,we);if(t&&i)return be;if(t||i)return t?xe:we;if(M(e,ye))return ye;return ge}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,i=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var n=this.actions,r=M(n,be)&&!Me.none,o=M(n,we)&&!Me["pan-y"],a=M(n,xe)&&!Me["pan-x"];if(r){var s=1===e.pointers.length,l=e.distance<2,u=e.deltaTime<250;if(s&&l&&u)return}if(!a||!o)return r||o&&6&i||a&&i&L?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Ee=32;function Ie(e){this.options=r({},this.defaults,e||{}),this.id=T++,this.manager=null,this.options.enable=y(this.options.enable,!0),this.state=1,this.simultaneous={},this.requireFail=[]}function Se(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function Be(e){return 16==e?"down":8==e?"up":2==e?"left":4==e?"right":""}function Te(e,t){var i=t.manager;return i?i.get(e):e}function Pe(){Ie.apply(this,arguments)}function Re(){Pe.apply(this,arguments),this.pX=null,this.pY=null}function ke(){Pe.apply(this,arguments)}function Qe(){Ie.apply(this,arguments),this._timer=null,this._input=null}function Fe(){Pe.apply(this,arguments)}function De(){Pe.apply(this,arguments)}function Le(){Ie.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Oe(e,t){return(t=t||{}).recognizers=y(t.recognizers,Oe.defaults.preset),new Ne(e,t)}Ie.prototype={defaults:{},set:function(e){return r(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(h(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Te(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return h(e,"dropRecognizeWith",this)||(e=Te(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(h(e,"requireFailure",this))return this;var t=this.requireFail;return-1===E(t,e=Te(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(h(e,"dropRequireFailure",this))return this;e=Te(e,this);var t=E(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,i=this.state;function n(i){t.manager.emit(i,e)}i<8&&n(t.options.event+Se(i)),n(t.options.event),e.additionalEvent&&n(e.additionalEvent),i>=8&&n(t.options.event+Se(i))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=Ee},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(33&this.requireFail[e].state))return!1;e++}return!0},recognize:function(e){var t=r({},e);if(!g(this.options.enable,[this,t]))return this.reset(),void(this.state=Ee);56&this.state&&(this.state=1),this.state=this.process(t),30&this.state&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},v(Pe,Ie,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,i=e.eventType,n=6&t,r=this.attrTest(e);return n&&(8&i||!r)?16|t:n||r?4&i?8|t:2&t?4|t:2:Ee}}),v(Re,Pe,{defaults:{event:"pan",threshold:10,pointers:1,direction:30},getTouchAction:function(){var e=this.options.direction,t=[];return 6&e&&t.push(we),e&L&&t.push(xe),t},directionTest:function(e){var t=this.options,i=!0,n=e.distance,r=e.direction,o=e.deltaX,a=e.deltaY;return r&t.direction||(6&t.direction?(r=0===o?1:o<0?2:4,i=o!=this.pX,n=Math.abs(e.deltaX)):(r=0===a?1:a<0?8:16,i=a!=this.pY,n=Math.abs(e.deltaY))),e.direction=r,i&&n>t.threshold&&r&t.direction},attrTest:function(e){return Pe.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=Be(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),v(ke,Pe,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[be]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),v(Qe,Ie,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ge]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distance<t.threshold,r=e.deltaTime>t.time;if(this._input=e,!n||!i||12&e.eventType&&!r)this.reset();else if(1&e.eventType)this.reset(),this._timer=c((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return Ee},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=u(),this.manager.emit(this.options.event,this._input)))}}),v(Fe,Pe,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[be]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),v(De,Pe,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return Re.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return 30&i?t=e.overallVelocity:6&i?t=e.overallVelocityX:i&L&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&l(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=Be(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),v(Le,Ie,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ye]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distance<t.threshold,r=e.deltaTime<t.time;if(this.reset(),1&e.eventType&&0===this.count)return this.failTimeout();if(n&&r&&i){if(4!=e.eventType)return this.failTimeout();var o=!this.pTime||e.timeStamp-this.pTime<t.interval,a=!this.pCenter||K(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,a&&o?this.count+=1:this.count=1,this._input=e,0===this.count%t.taps)return this.hasRequireFailures()?(this._timer=c((function(){this.state=8,this.tryEmit()}),t.interval,this),2):8}return Ee},failTimeout:function(){return this._timer=c((function(){this.state=Ee}),this.options.interval,this),Ee},reset:function(){clearTimeout(this._timer)},emit:function(){8==this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),Oe.VERSION="2.0.7",Oe.defaults={domEvents:!1,touchAction:me,enable:!0,inputTarget:null,inputClass:null,preset:[[Fe,{enable:!1}],[ke,{enable:!1},["rotate"]],[De,{direction:6}],[Re,{direction:6},["swipe"]],[Le],[Le,{event:"doubletap",taps:2},["tap"]],[Qe]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function Ne(e,t){var i;this.options=r({},Oe.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new((i=this).options.inputClass||(k?te:Q?ue:R?he:Y))(i,U),this.touchAction=new Ce(this,this.options.touchAction),Ve(this,!0),d(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function Ve(e,t){var i,n=e.element;n.style&&(d(e.options.cssProps,(function(r,o){i=B(n.style,o),t?(e.oldCssProps[i]=n.style[i],n.style[i]=r):n.style[i]=e.oldCssProps[i]||""})),t||(e.oldCssProps={}))}return Ne.prototype={set:function(e){return r(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var i;this.touchAction.preventDefaults(e);var n=this.recognizers,r=t.curRecognizer;(!r||r&&8&r.state)&&(r=t.curRecognizer=null);for(var o=0;o<n.length;)i=n[o],2===t.stopped||r&&i!=r&&!i.canRecognizeWith(r)?i.reset():i.recognize(e),!r&&14&i.state&&(r=t.curRecognizer=i),o++}},get:function(e){if(e instanceof Ie)return e;for(var t=this.recognizers,i=0;i<t.length;i++)if(t[i].options.event==e)return t[i];return null},add:function(e){if(h(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(h(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,i=E(t,e);-1!==i&&(t.splice(i,1),this.touchAction.update())}return this},on:function(e,t){if(e!==n&&t!==n){var i=this.handlers;return d(C(e),(function(e){i[e]=i[e]||[],i[e].push(t)})),this}},off:function(e,t){if(e!==n){var i=this.handlers;return d(C(e),(function(e){t?i[e]&&i[e].splice(E(i[e],t),1):delete i[e]})),this}},emit:function(e,i){this.options.domEvents&&function(e,i){var n=t.createEvent("Event");n.initEvent(e,!0,!0),n.gesture=i,i.target.dispatchEvent(n)}(e,i);var n=this.handlers[e]&&this.handlers[e].slice();if(n&&n.length){i.type=e,i.preventDefault=function(){i.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](i),r++}},destroy:function(){this.element&&Ve(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},r(Oe,{INPUT_START:1,INPUT_MOVE:2,INPUT_END:4,INPUT_CANCEL:8,STATE_POSSIBLE:1,STATE_BEGAN:2,STATE_CHANGED:4,STATE_ENDED:8,STATE_RECOGNIZED:8,STATE_CANCELLED:16,STATE_FAILED:Ee,DIRECTION_NONE:1,DIRECTION_LEFT:2,DIRECTION_RIGHT:4,DIRECTION_UP:8,DIRECTION_DOWN:16,DIRECTION_HORIZONTAL:6,DIRECTION_VERTICAL:L,DIRECTION_ALL:30,Manager:Ne,Input:V,TouchAction:Ce,TouchInput:ue,MouseInput:Y,PointerEventInput:te,TouchMouseInput:he,SingleTouchInput:oe,Recognizer:Ie,AttrRecognizer:Pe,Tap:Le,Pan:Re,Swipe:De,Pinch:ke,Rotate:Fe,Press:Qe,on:b,off:x,each:d,merge:A,extend:f,assign:r,inherit:v,bindFn:m,prefixed:B}),Oe}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});function jr(e,t,i){var r=t.getBoundingClientRect(),o=r.top,a=r.left,s=r.width,l=r.height;return i&&(a+=s*i.left,o+=l*(1-i.bottom-i.height),s*=i.width,l*=i.height),new n.Vector2((e.x-a)/s*2-1,-(e.y-o)/l*2+1)}var Gr=new n.OrthographicCamera(-1,1,1,-1,0,1),Wr=new n.BufferGeometry;Wr.setAttribute("position",new n.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),Wr.setAttribute("uv",new n.Float32BufferAttribute([0,2,0,0,2,0],2));var Xr=new n.Mesh(Wr),Yr=new n.Scene;Yr.add(Xr);var Zr=function(){function e(e,t){var i;this.renderer=e,this.material=new n.ShaderMaterial({vertexShader:null!==(i=t.vertex)&&void 0!==i?i:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:t.fragment,uniforms:Object.assign({inputBuffer:new n.Uniform(null)},t.uniforms),defines:Object.assign({},t.defines),blending:n.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var i=this.renderer.getRenderTarget(),n=Xr.material;this.material.uniforms.inputBuffer.value=e.texture,Xr.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Yr,Gr),this.renderer.setRenderTarget(i),Xr.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),Jr=function(){function e(e){this.renderer=e,this.material=new n.ShaderMaterial({vertexShader:"\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 inputValue;\nvoid main() {\n gl_FragColor = vec4(inputValue, 1.0);\n}\n",uniforms:Object.assign({inputValue:new n.Uniform(new n.Vector3)}),blending:n.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var i=this.renderer.getRenderTarget(),n=Xr.material;this.material.uniforms.inputValue.value.copy(e),Xr.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Yr,Gr),this.renderer.setRenderTarget(i),Xr.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),$r=function(e){function t(t){return e.call(this,t,{fragment:"\nuniform sampler2D inputBuffer;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n}\n"})||this}return te(t,e),t}(Zr),eo=function(){function e(e){this.enable=!0,this.renderer=e,this.copyPass=new $r(this.renderer)}return e.prototype.render=function(e,t){this.copyPass.render(e,t)},e.prototype.dispose=function(){this.copyPass.dispose()},e}(),to=function(e){function t(i){var n,r=this;r=e.call(this)||this;var o=t.parseArgs(i);return r.pending=!0,r.userAction=o.initial[3],r.destroyed=!1,r.ident=o.ident,r.scene=o.scene,r.parallaxScene=o.parallaxScene,r.helper=o.helper,r.boundingMesh=o.boundingMesh,r.camera=o.camera,r.renderer=o.renderer,r.scissor=o.scissor,r.element=o.element,r.model=o.model,r.enableIOSEDR=null!==(n=o.enableIOSEDR)&&void 0!==n&&n,r.work=o.work,r.imageOptions=o.imageOptions,r.videoTexture=o.videoTexture,r.networkSubscribe=o.networkSubscribe,r.requestProxy=o.requestProxy,r.needsRender=!0,r.maxFov=120,r.minFov=40,r.maxLatitude=+Math.PI/2,r.minLatitude=-Math.PI/2,r.cameraMotion=new dr({longitude:{value:r.camera.pose.longitude,circle:[0,2*Math.PI]},latitude:r.camera.pose.latitude,fov:r.camera.pose.fov}),r.eventUnbinds=[o.element].concat(o.extraElements||[]).map((function(e){return r.bindEvents(e)})),ke.shared.add((function(){return r.initAnimation.apply(r,o.initial)}),!0),r}return te(t,e),t.parseArgs=function(e){return ie({},e)},t.initAnimationEndState=function(e){var t=this.parseArgs(e);return{longitude:t.camera.pose.longitude,latitude:t.camera.pose.latitude,fov:t.camera.pose.fov,offset:t.camera.pose.offset.clone(),distance:t.camera.pose.distance}},t.prototype.destroy=function(){var e;this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var t=0,i=this.eventUnbinds;t<i.length;t++){(0,i[t])()}this.copyEffect&&(this.copyEffect.dispose(),delete this.copyEffect),delete this.panState,null===(e=this.pressState)||void 0===e||e.stop(),delete this.pressState},t.prototype.isReady=function(){return!1===this.pending&&!0===this.cameraMotion.ended},t.prototype.bindExtraElement=function(e){for(var t=0,i=this.eventUnbinds;t<i.length;t++){if(i[t].element===e)return}this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var t=[],i=0,n=this.eventUnbinds;i<n.length;i++){var r=n[i];r.element===e?r():t.push(r)}this.eventUnbinds=t},t.prototype.updateRenderSize=function(){this.needsRender=!0},t.prototype.updateModel=function(e){this.model=e,this.needsRender=!0},t.prototype.updateWork=function(e,t,i,n,r){return this.work=e,this.userAction=r,!1},t.prototype.updateTime=function(e,t){if(!this.destroyed){var i={};this.cameraMotion.ended&&(this.cameraMotion.update(e),i.longitude=this.cameraMotion.value.longitude,i.latitude=this.cameraMotion.value.latitude,i.fov=this.cameraMotion.value.fov),Hr(i)&&this.setCamera(i)}},t.prototype.render=function(){this.renderer.render(this.scene,this.camera)},t.prototype.postProcessing=function(e,t){this.destroyed||(this.copyEffect||(this.copyEffect=new eo(this.renderer)),this.copyEffect.render(e,t))},t.prototype.updateCamera=function(e,t,i){return this.userAction=i,this.cameraMotion.set(e,t).catch(le)},t.prototype.updateCameraWithKeyframes=function(e,t,i){return this.userAction=i,this.cameraMotion.setKeyframes(e,t)},t.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}},t.prototype.moveToPano=function(e,t,i){void 0===t&&(t={}),this.userAction=i;var n={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};t.moveStartCallback&&t.moveStartCallback(e,n),this.emit("moveToPano",e,this.userAction),this.emit("panoWillArrive",e,n,this.userAction),this.emit("panoArrived",e,n,this.userAction),t.moveEndCallback&&t.moveEndCallback(e,n)},t.prototype.initAnimation=function(e,t,i,n){this.pending=!1,this.userAction=n},t.prototype.setCamera=function(e){var t,i,n,r,o;void 0===e&&(e={});var a=null!==(t=e.longitude)&&void 0!==t?t:this.camera.pose.longitude,s=null!==(i=e.latitude)&&void 0!==i?i:this.camera.pose.latitude,l=null!==(n=e.fov)&&void 0!==n?n:this.camera.pose.fov,u=null!==(r=e.distance)&&void 0!==r?r:this.camera.pose.distance,c=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,h=this.camera.position.clone(),d=Ir(a,this.camera.pose.longitude,2*Math.PI)||Ir(s,this.camera.pose.latitude),p=Ir(l,this.camera.pose.fov),f=Ir(u,this.camera.pose.distance),A=Br(c,this.camera.pose.offset);this.camera.setFromPose({longitude:a,latitude:s,fov:l,distance:u,offset:c});var v=Br(h,this.camera.position);p&&this.emit("cameraFovUpdate",l,this.userAction),d&&this.emit("cameraDirectionUpdate",{longitude:a,latitude:s},this.userAction),v&&this.emit("cameraPositionUpdate",this.camera.position.clone(),this.userAction),(p||d||A||f)&&this.emit("cameraUpdate",{longitude:a,latitude:s,fov:l,offset:c,distance:u},this.userAction),this.needsRender=!0},t.prototype.onPanGesture=function(e){var t=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===i){var n=e.pointers.map((function(e){return ui(e,["x","y"])}));this.emit("wantsGesture","pan",n,e.isFinal)||this.emit("gesture","pan",n,e.isFinal)}},t.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return ui(e,["x","y"])}));this.emit("wantsGesture","tap",t,!0)||this.emit("gesture","tap",t,!0)},t.prototype.onPressGesture=function(e,t){var i,n=[e];if(this.emit("wantsGesture","press",n,t))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;this.emit("gesture","press",n,t)},t.prototype.onPinchGesture=function(e){var t=e.pointers.map((function(e){return ui(e,["x","y"])}));this.emit("wantsGesture","pinch",t,e.isFinal)||this.emit("gesture","pinch",t,e.isFinal)},t.prototype.onMouseWheel=function(e){var t=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:t}];this.emit("wantsGesture","mouseWheel",i,!1)||this.emit("gesture","mouseWheel",i,!1)},t.prototype.onMouseMove=function(e){},t.prototype.onMouseOut=function(){},t.prototype.relativeClientPosition=function(e){return jr(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var t=this,i=function(e){var i=jr(e,t.element,t.scissor);return!(Math.abs(i.x)>1||Math.abs(i.y)>1)},n=new Kr.Manager(e),r=function(e){return e.session.firstInput||null};n.add(new Kr.Pan({threshold:10,pointers:0})),n.add(new Kr.Tap({interval:410})),n.add(new Kr.Pinch({threshold:0,pointers:2})),n.on("panstart pan",(function(e){var o=r(n);o&&!i(o.center)||(t.onPanGesture(e),f())})),n.on("tap",(function(e){if("mouse"!==e.pointerType||0===e.srcEvent.button){var o=r(n);o&&!i(o.center)||(t.onTapGesture(e),f())}})),n.on("pinchstart pinch pinchend",(function(e){var o=r(n);o&&!i(o.center)||(t.onPinchGesture(e),f())}));var o=null,a=null,s=function(e,t,i){var n="pinchend"===e?t:t-i.deltaY/280;return{type:e,target:i.target,pointerType:"mouse",srcEvent:i,pointers:[{x:i.clientX,y:i.clientY}],isFirst:"pinchstart"===e,isFinal:"pinchend"===e,scale:Gn(n,.1,10),center:{x:i.clientX,y:i.clientY},velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0}},l=function(e){var n,r={x:e.clientX,y:e.clientY};if(i(r)){if(e.preventDefault(),e.ctrlKey){var l=null!==(n=null==o?void 0:o.prevInput.scale)&&void 0!==n?n:1,u=s(o?"pinch":"pinchstart",l,e);null===o?o={firstInput:u,prevInput:u}:o.prevInput=u,t.onPinchGesture(u),null!==a&&window.clearTimeout(a),a=window.setTimeout((function(){var i;a=null;var n=null!==(i=null==o?void 0:o.prevInput.scale)&&void 0!==i?i:1,r=s("pinchend",n,e);o=null,t.onPinchGesture(r)}),200)}else t.onMouseWheel(e);f()}},u=function(e){if(!Nr()){var n={x:e.clientX,y:e.clientY};i(n)?(t.onMouseMove(e),t.pressState&&Math.abs(e.clientX-t.pressState.x)>10&&Math.abs(e.clientY-t.pressState.y)>10&&f()):t.onMouseOut()}},c=function(){t.onMouseOut(),f()},h=function(e,n){if(i(e)){t.pressState={x:e.x,y:e.y,time:t.pressState?t.pressState.time:n,stop:le};var r=n-t.pressState.time;t.onPressGesture({x:e.x,y:e.y,delta:r},!1),t.pressState&&(t.pressState.stop=ke.shared.add((function(t){return h({x:e.x,y:e.y},t)}),!0,1))}else f()},d=function(e){f(),e.touches.length>1||e.changedTouches.length<=0||h({x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY},ce())},p=function(e){f(),h({x:e.clientX,y:e.clientY},ce())},f=function(){var e;if(t.pressState){var i=ce()-t.pressState.time;t.onPressGesture({x:t.pressState.x,y:t.pressState.y,delta:i},!0),null===(e=t.pressState)||void 0===e||e.stop(),delete t.pressState}},A=null,v=function(e){var t,i="pinch",n=!1,r=!1;switch(e.type){case"gesturestart":i="pinchstart",n=!0;break;case"gestureend":i="pinchend",r=!0}return{type:i,target:e.target,pointerType:"mouse",srcEvent:e,pointers:[{x:e.clientX,y:e.clientY}],isFirst:n,isFinal:r,scale:null!==(t=e.scale)&&void 0!==t?t:1,center:{x:e.clientX,y:e.clientY},velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0}},m=function(e){if(e.preventDefault(),!Nr()){var n=v(e),r=(A={firstInput:n}).firstInput;r&&!i(r.center)||t.onPinchGesture(n)}},g=function(e){if(e.preventDefault(),!Nr()&&A){var n=v(e),r=A.firstInput;r&&!i(r.center)||t.onPinchGesture(n)}},y=function(e){if(e.preventDefault(),!Nr()&&A){var n=v(e),r=A.firstInput;A=null,r&&!i(r.center)||t.onPinchGesture(n)}},b=function(t){if(t&&"function"==typeof t.preventDefault&&t.currentTarget===e&&t.preventDefault(),"function"==typeof getSelection){var i=getSelection();i&&i.focusNode&&(i.removeAllRanges&&i.removeAllRanges(),i.empty&&i.empty())}};e.addEventListener("wheel",l,{passive:!1}),e.addEventListener("mousemove",u,!1),e.addEventListener("mouseout",c,!1),e.addEventListener("touchstart",d,{passive:!0}),e.addEventListener("touchend",f,!1),e.addEventListener("touchcancel",f,!1),e.addEventListener("mousedown",p,!1),e.addEventListener("mouseup",f,!1),e.addEventListener("gesturestart",m,{passive:!1}),e.addEventListener("gesturechange",g,{passive:!1}),e.addEventListener("gestureend",y,{passive:!1}),e.addEventListener("touchstart",b,{passive:!1}),e.addEventListener("contextmenu",b,!1);return Object.assign((function(){n.destroy(),e.removeEventListener("wheel",l,!1),e.removeEventListener("mousemove",u,!1),e.removeEventListener("mouseout",c,!1),e.removeEventListener("touchstart",d,!1),e.removeEventListener("touchend",f,!1),e.removeEventListener("touchcancel",f,!1),e.removeEventListener("mousedown",p,!1),e.removeEventListener("mouseup",f,!1),e.removeEventListener("gesturestart",m,!1),e.removeEventListener("gesturechange",g,!1),e.removeEventListener("gestureend",y,!1),e.removeEventListener("touchstart",b,!1),e.removeEventListener("contextmenu",b,!1)}),{element:e})},t}(se),io=function(e){function t(i){var n,r,o=this,a=t.parseArgs(i);return(o=e.call(this,a)||this).defaultLongitude=a.defaultLongitude,o.defaultLatitude=a.defaultLatitude,o.defaultFov=a.defaultFov,o.maxFov=a.maxFov,o.minFov=a.minFov,o.maxLatitude=a.maxLatitude,o.minLatitude=a.minLatitude,o.locationMotion=new dr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(n=o.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o.currentTapPanoIndex=-1,o.intersectMeshCreator=a.intersectMeshCreator,o.intersectMesh=o.intersectMeshCreator(),o.intersectMesh.name="intersect",o.intersectMesh.visible=!1,o.helper.add(o.intersectMesh),o}return te(t,e),t.distanceFromModel=function(e,t,i){var n=e.bounding,r=Math.pow(Math.pow(n.max.x-n.min.x+1,2)+Math.pow(n.max.y-n.min.y+1,2)+Math.pow(n.max.z-n.min.z+1,2),.5),o=r/2/Math.tan(Math.PI*t/360);return i<1&&(o/=i),isNaN(o)?r:o},t.parseArgs=function(t){var i,n,r,o,a,s,l,u,c=e.parseArgs.call(this,t);return ie(ie({},c),{defaultLongitude:null!==(i=t.defaultLongitude)&&void 0!==i?i:Math.PI/4,defaultLatitude:null!==(n=t.defaultLatitude)&&void 0!==n?n:Math.PI/4,defaultFov:null!==(r=t.defaultFov)&&void 0!==r?r:80,maxFov:null!==(o=t.maxFov)&&void 0!==o?o:120,minFov:null!==(a=t.minFov)&&void 0!==a?a:40,maxLatitude:null!==(s=t.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=t.minLatitude)&&void 0!==l?l:-Math.PI/2,intersectMeshCreator:null!==(u=t.intersectMeshCreator)&&void 0!==u?u:function(){return new Cr}})},t.initAnimationEndPose=function(e){var i,r,o,a=this.parseArgs(e),s=e.initial[1];return{longitude:null!==(i=s.longitude)&&void 0!==i?i:a.defaultLongitude,latitude:Gn(null!==(r=s.latitude)&&void 0!==r?r:a.defaultLatitude,a.minLatitude,a.maxLatitude),fov:null!==(o=s.fov)&&void 0!==o?o:a.defaultFov,offset:e.model.bounding.getCenter(new n.Vector3),distance:t.distanceFromModel(a.model,a.defaultFov,a.camera.aspect)}},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose(),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.mouseMoveState,delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,t,i,n,r){return this.work=e,this.updateCamera(i,null!=n?n:0,r),!0},t.prototype.updateModel=function(i){e.prototype.updateModel.call(this,i);var r=i.bounding.getCenter(new n.Vector3),o=t.distanceFromModel(i,this.defaultFov,this.camera.aspect);this.locationMotion.set({x:r.x,y:r.y,z:r.z,distance:o},0).catch(le)},t.prototype.updateTime=function(e,t){if(!this.destroyed){var i={},r={};this.locationMotion.ended||(this.locationMotion.update(e),i.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gn(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,r.distance=this.locationMotion.value.distance,r.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),Hr(i)||this.model.setMaterial(i),Hr(r)||this.setCamera(r)}},t.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new n.Vector3(t.value.x,t.value.y,t.value.z),distance:t.value.distance}},t.prototype.initAnimation=function(e,i,r,o){var a,s,l,u=this;if(!this.destroyed){this.pending=!1,this.userAction=o;var c={longitude:null!==(a=i.longitude)&&void 0!==a?a:this.defaultLongitude,latitude:Gn(null!==(s=i.latitude)&&void 0!==s?s:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:Gn(null!==(l=i.fov)&&void 0!==l?l:this.defaultFov,this.minFov,this.maxFov),offset:this.model.bounding.getCenter(new n.Vector3),distance:t.distanceFromModel(this.model,this.defaultFov,this.camera.aspect)},h=ui(c,["longitude","latitude","fov"]),d={x:c.offset.x,y:c.offset.y,z:c.offset.z,distance:c.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:c.distance};this.emit("initAnimationWillStart",e,c,this.userAction),this.cameraMotion.set(h,r).catch(le),this.locationMotion.set(d,r).then((function(){u.emit("initAnimationEnded",e,c,u.userAction)}),(function(t){var i=_r(u.camera.pose);u.emit("initAnimationEnded",e,i,u.userAction)})).catch(le)}},t.prototype.updateRenderSize=function(){this.locationMotion.set({distance:t.distanceFromModel(this.model,this.defaultFov,this.camera.aspect)},0).catch(le)},t.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),i=this.model.intersectRaycaster(e)[0];if(!i)return null;var n=qr(t,(function(e){return e.standingPosition.distanceTo(i.point)}),!0),r=n[0];return n[1]<10?r.panoIndex:null},t.prototype.coordinatesForOffset=function(e){var t=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(t.x*this.scissor.width),latitude:2*e.y/(t.y*this.scissor.height)}},t.prototype.requestInteriaMovement=function(e,t){var i=this;if(!1!==this.interiaMovement){for(var n=ie({},e),r={longitude:0,latitude:0},o=0;o<t;o++)n.longitude*=.996,n.latitude*=.994008,r.longitude+=n.longitude,r.latitude+=n.latitude;var a=Qr(this.cameraMotion.value.longitude+r.longitude),s=Gn(this.cameraMotion.value.latitude+r.latitude,this.minLatitude,this.maxLatitude),l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};this.cameraMotion.set({longitude:a,latitude:s},0).catch(le);var u=n.longitude>1e-4||n.longitude<-1e-4||n.latitude>1e-4||n.latitude<-1e-4;this.emit("interiaPan",l,!u),u?ke.shared.add((function(e,t){i.requestInteriaMovement(n,0|t)}),!0,1):this.interiaMovement=!1}},t.prototype.onPanGesture=function(e){var t=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===i){var n=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pan",n,e.isFinal)){var r={x:e.center.x-t.x,y:e.center.y-t.y},o=this.relativeClientPosition(e.center),a=this.camera.pose.latitude<Math.PI/6||o.y<0?-1:1;r.x*=a;var s=this.coordinatesForOffset(r),l=Qr(this.cameraMotion.value.longitude+s.longitude),u=Gn(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(u=this.cameraMotion.value.latitude);var c={longitude:l,latitude:u,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance};if(!this.emit("wantsPanGesture",c,e.isFinal))if(this.emit("gesture","pan",n,e.isFinal),this.emit("panGesture",c,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.hideIntersectMesh(),this.cameraMotion.set({longitude:c.longitude,latitude:c.latitude},0).catch(le),e.isFinal)if(!this.emit("wantsInteriaPan",c)){this.interiaMovement=!0;var h=e.velocityX*a,d=e.velocityY;this.requestInteriaMovement(this.coordinatesForOffset({x:h,y:d}),0)}}}},t.prototype.onPinchGesture=function(e){var t,i=null===(t=this.pinchState)||void 0===t?void 0:t.fov,n=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(n=!0,delete this.panState,delete this.pinchState),void 0!==i){var r=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",r,n)){var o=Gn(i/e.scale,this.minFov,this.maxFov);this.emit("wantsPinchGesture",e.scale,o,n)||this.emit("wantsChangeCameraFov",o)||(this.emit("gesture","pinch",r,n),this.emit("pinchGesture",e.scale,o,n),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:o},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},t.prototype.onMouseMove=function(e){if(this.intersectMesh.parent&&!this.model.empty&&this.model.bvhs&&!0===this.model.bvhs.loaded&&!this.panState){var t=this.relativeClientPosition({x:e.clientX,y:e.clientY}),i=new n.Raycaster;if(i.setFromCamera(t,this.camera),this.emit("wantsShowIntersectionOnModel",i))this.hideIntersectMesh();else{var r=this.model.intersectRaycaster(i)[0];if(r&&r.face){var o=r.face.normal,a=o.clone().multiplyScalar(.05),s=r.point.clone().add(a);this.intersectMesh.position.copy(s);var l=s.clone().add(a);if(this.intersectMesh.lookAt(l),Math.abs(o.y)>.99){var u=this.camera.position.clone().sub(s);this.intersectMesh.rotation.z=-Math.atan2(u.z,u.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",r,this.intersectMesh)}else this.hideIntersectMesh();this.mouseMoveState={clientX:e.clientX,clientY:e.clientY}}}},t.prototype.onMouseOut=function(){this.intersectMesh.parent&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},t.prototype.onMouseWheel=function(e){var t=this,i=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,n=[{x:e.clientX,y:e.clientY,delta:i}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=this.minFov,o=this.maxFov,a=Gn(this.camera.fov-i,r,o);this.emit("wantsMouseWheel",i,a,!1)||this.emit("wantsChangeCameraFov",a)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,a,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:a},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,a,!0)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,a,!0))}),200)})}},t.prototype.onTapGesture=function(e){var t=this,i=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(e.center),o=new n.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.getForwardPanoIndexOrNot(o);if(!qn(a)){this.emit("panoSelected",a);var s={longitude:this.camera.pose.longitude,latitude:0};this.currentTapPanoIndex=a,this.preloadPano(a).then((function(e){t.currentTapPanoIndex===e&&t.emit("wantsMoveToPano",e,s,!0)}))}}}},t.prototype.onPressGesture=function(e,t){var i,r,o=[e];if(this.emit("wantsGesture","press",o,t))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(e),s=new n.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,e.delta,t))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,t),this.emit("pressGesture",s,a,e.delta,t)},t.prototype.preloadPano=function(e,t){var i=this;void 0===t&&(t=le);var n=this.work.observers[e],r=this.work.allowHosts;return Promise.all(["right","left","up","down","front","back"].map((function(t){var o=ie({key:"pano.".concat(e,".").concat(t)},ui(i.imageOptions,["size","format","quality","mappings"])),a=n.images[t];return Be(i.imageOptions.transform?i.imageOptions.transform(a,o):Le(a,o),{allowHosts:r,requestProxy:i.requestProxy,networkSubscribe:i.networkSubscribe})}))).then((function(){return t(e),e}))},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},t}(to),no={longitude:0,latitude:Math.PI/2},ro={longitude:0,latitude:0},oo={longitude:Math.PI/2,latitude:0},ao={longitude:Math.PI,latitude:0},so={longitude:1.5*Math.PI,latitude:0};var lo,uo=function(e){function t(i){var n=t.parseArgs(i);return e.call(this,n)||this}return te(t,e),t.parseArgs=function(t){var i=[t.initial[0],ie(ie({},t.initial[1]),{longitude:0,latitude:Math.PI/2}),t.initial[2],t.initial[3]],n=ie(ie({},t),{initial:i,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return e.parseArgs.call(this,n)},t.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},t.prototype.updateModel=function(e){this.model=e,this.needsRender=!0;var t=e.bounding.getCenter(new n.Vector3);this.locationMotion.set({x:t.x,y:t.y,z:t.z,distance:io.distanceFromModel(this.model,this.defaultFov,this.camera.aspect)},0).catch(le)},t.prototype.initAnimation=function(e,t,i,r){var o,a=this;if(!this.destroyed){this.pending=!1,this.userAction=r;var s={longitude:0,latitude:Math.PI/2,fov:Gn(null!==(o=t.fov)&&void 0!==o?o:this.defaultFov,this.minFov,this.maxFov),offset:this.model.bounding.getCenter(new n.Vector3),distance:io.distanceFromModel(this.model,this.defaultFov,this.camera.aspect)},l=ui(s,["longitude","latitude","fov"]),u={x:s.offset.x,y:s.offset.y,z:s.offset.z,distance:s.distance,modelAlpha:1,perspToOrtho:1,orthoDistance:s.distance};this.cameraMotion.set(l,i).catch(le),this.locationMotion.set(u,i).then((function(){a.emit("initAnimationEnded",e,s,a.userAction)}),(function(t){var i=_r(a.camera.pose);a.emit("initAnimationEnded",e,i,a.userAction)}))}},t.prototype.getZoomOffsetFromFov=function(e,t,i){var r=this.camera.getDirection(new n.Vector3),o=Math.tan(i/2*Math.PI/180),a=Math.tan(t.fov/2*Math.PI/180),s=(a-o)/a,l=new n.Raycaster;l.setFromCamera(e,t);var u=l.ray.direction,c=u.angleTo(r),h=io.distanceFromModel(this.model,this.defaultFov,this.camera.aspect),d=h*Math.tan(c),p=u.clone().setLength(h*Math.cos(c)).projectOnPlane(r),f=p.length(),A=s/f*p.x*d,v=s/f*p.z*d,m=s/f*p.y*d;return new n.Vector3(A,m,v)},t.prototype.requestInteriaMovement=function(e,t){},t.prototype.onPanGesture=function(e){var t=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===i){var r=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pan",r,e.isFinal)){var o=e.center.x-t.x,a=e.center.y-t.y,s=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),l=this.model.bounding,u=l.getCenter(new n.Vector3),c=(l.max.x-l.min.x)/this.defaultFov*this.cameraMotion.value.fov,h=(l.max.y-l.min.y)/this.defaultFov*this.cameraMotion.value.fov,d=(l.max.z-l.min.z)/this.defaultFov*this.cameraMotion.value.fov,p={left:new n.Vector3,up:new n.Vector3,cameraDirection:"y"};this.cameraMotion.value.longitude===no.longitude&&this.cameraMotion.value.latitude===no.latitude?(p.left.set(1,0,0),p.up.set(0,0,-1),p.cameraDirection="y"):this.cameraMotion.value.longitude===ro.longitude&&this.cameraMotion.value.latitude===ro.latitude?(p.left.set(1,0,0),p.up.set(0,1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===ao.longitude&&this.cameraMotion.value.latitude===ao.latitude?(p.left.set(1,0,0),p.up.set(0,-1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===so.longitude&&this.cameraMotion.value.latitude===so.latitude?(p.left.set(0,0,-1),p.up.set(0,-1,0),p.cameraDirection="x"):this.cameraMotion.value.longitude===oo.longitude&&this.cameraMotion.value.latitude===oo.latitude&&(p.left.set(0,0,-1),p.up.set(0,1,0),p.cameraDirection="x");var f=(this.camera.position[p.cameraDirection]-l.min[p.cameraDirection])*Math.tan(this.camera.fov/2*Math.PI/180),A=this.renderer.getSize(new n.Vector2);s.add(function(e,t){var i=(new n.Vector3).copy(t);return i.multiplyScalar(-e),i}(2*o*f/A.y,p.left)),s.add(function(e,t){var i=(new n.Vector3).copy(t);return i.multiplyScalar(e),i}(2*a*f/A.y,p.up)),s.x=Gn(s.x,u.x-c,u.x+c),s.y=Gn(s.y,u.y-h,u.y+h),s.z=Gn(s.z,u.z-d,u.z+d);var v={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:s,distance:this.locationMotion.value.distance};this.emit("wantsPanGesture",v,e.isFinal)||(this.emit("gesture","pan",r,e.isFinal),this.emit("panGesture",v,e.isFinal),this.userAction=!0,this.locationMotion.set({x:s.x,y:s.y,z:s.z},0).catch(le))}}},t.prototype.onPinchGesture=function(e){var t,i=null===(t=this.pinchState)||void 0===t?void 0:t.fov,n=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(n=!0,delete this.pinchState),void 0!==i){var r=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",r,n)){var o=Gn(i/e.scale,this.minFov,this.maxFov),a=this.relativeClientPosition({x:e.center.x,y:e.center.y}),s=this.getZoomOffsetFromFov(a,this.camera,o);this.cameraMotion.value.longitude===no.longitude&&this.cameraMotion.value.latitude===no.latitude?s.y=0:this.cameraMotion.value.longitude===ro.longitude&&this.cameraMotion.value.latitude===ro.latitude||this.cameraMotion.value.longitude===ao.longitude&&this.cameraMotion.value.latitude===ao.latitude?s.z=0:(this.cameraMotion.value.longitude===so.longitude&&this.cameraMotion.value.latitude===so.latitude||this.cameraMotion.value.longitude===oo.longitude&&this.cameraMotion.value.latitude===oo.latitude)&&(s.x=0);var l=this.camera.pose.offset.clone().add(s);this.emit("wantsPinchGesture",e.scale,o,n)||this.emit("wantsChangeCameraFov",o)||(this.emit("gesture","pinch",r,n),this.emit("pinchGesture",e.scale,o,n),this.userAction=!0,this.locationMotion.set({x:l.x,y:l.y,z:l.z},0).catch(le),this.cameraMotion.set({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:o},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},t.prototype.onMouseWheel=function(e){var t=this,i=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,n=[{x:e.clientX,y:e.clientY,delta:i}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=Gn(this.cameraMotion.value.fov-i,this.minFov,this.maxFov),o=this.relativeClientPosition({x:e.clientX,y:e.clientY}),a=this.getZoomOffsetFromFov(o,this.camera,r);this.cameraMotion.value.longitude===no.longitude&&this.cameraMotion.value.latitude===no.latitude?a.y=0:this.cameraMotion.value.longitude===ro.longitude&&this.cameraMotion.value.latitude===ro.latitude||this.cameraMotion.value.longitude===ao.longitude&&this.cameraMotion.value.latitude===ao.latitude?a.z=0:(this.cameraMotion.value.longitude===so.longitude&&this.cameraMotion.value.latitude===so.latitude||this.cameraMotion.value.longitude===oo.longitude&&this.cameraMotion.value.latitude===oo.latitude)&&(a.x=0);var s=this.camera.pose.offset.clone().add(a);this.emit("wantsMouseWheel",i,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,r,!1),this.userAction=!0,this.locationMotion.set({x:s.x,y:s.y,z:s.z},0).catch(le),this.cameraMotion.set({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,r,!0))}),200)})}},t}(io),co=function(e){function t(i){var n=this,r=t.parseArgs(i);return(n=e.call(this,r)||this).defaultLongitude=r.defaultLongitude,n.defaultLatitude=r.defaultLongitude,n.defaultFov=r.defaultFov,n.maxFov=r.maxFov,n.minFov=r.minFov,n.maxLatitude=r.maxLatitude,n.minLatitude=r.minLatitude,n.moveSpeed=r.moveSpeed,n.intersectMeshCreator=r.intersectMeshCreator,n.interiaMovement=!1,n.intersectMesh=n.intersectMeshCreator(),n.intersectMesh.name="intersect",n.intersectMesh.visible=!1,n.helper.add(n.intersectMesh),n}return te(t,e),t.parseArgs=function(t){var i,n,r,o,a,s,l,u,c,h=e.parseArgs.call(this,t);return ie(ie({},h),{defaultLongitude:null!==(i=t.defaultLongitude)&&void 0!==i?i:0,defaultLatitude:null!==(n=t.defaultLatitude)&&void 0!==n?n:0,defaultFov:null!==(r=t.defaultFov)&&void 0!==r?r:90,maxFov:null!==(o=t.maxFov)&&void 0!==o?o:120,minFov:null!==(a=t.minFov)&&void 0!==a?a:40,maxLatitude:null!==(s=t.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=t.minLatitude)&&void 0!==l?l:-Math.PI/2,moveSpeed:null!==(u=t.moveSpeed)&&void 0!==u?u:3.2,intersectMeshCreator:null!==(c=t.intersectMeshCreator)&&void 0!==c?c:function(){return new Cr}})},t.initAnimationEndPose=function(e){var t,i,n,r=this.parseArgs(e),o=e.initial,a=o[0],s=o[1];return{longitude:null!==(t=s.longitude)&&void 0!==t?t:r.defaultLongitude,latitude:Gn(null!==(i=s.latitude)&&void 0!==i?i:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gn(null!==(n=s.fov)&&void 0!==n?n:r.defaultFov,r.minFov,r.maxFov),offset:r.work.observers[a].position.clone(),distance:0}},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.interiaMovement=!1,this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose()),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.mouseMoveState,delete this.panState},t.prototype.isReady=function(){return!this.interiaMovement&&(!this.panState&&(!this.pinchState&&(!this.mouseWheelState&&e.prototype.isReady.call(this))))},t.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Gn(t,2,5)/this.moveSpeed*1e3}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},t.prototype.coordinatesForOffset=function(e){var t=this.cameraMotion.value.fov,i=this.camera.aspect,r=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(r.x*this.scissor.width)*t/95*i,latitude:-2*e.y/(r.y*this.scissor.height)*t/95}},t.prototype.cameraBounce=function(){var e=this.cameraMotion.value,t=e.longitude,i=e.latitude,n=e.fov,r=[{progress:0,value:{longitude:t,latitude:i,fov:n}},{progress:.5,value:{longitude:t,latitude:i,fov:.98*n}},{progress:1,value:{longitude:t,latitude:i,fov:n}}];this.cameraMotion.setKeyframes(r,500).catch(le)},t.prototype.requestInteriaMovement=function(e,t){var i=this;if(!1!==this.interiaMovement){for(var n=ie({},e),r={longitude:0,latitude:0},o=0;o<t;o++)n.longitude*=.996,n.latitude*=.98604,r.longitude+=n.longitude,r.latitude+=n.latitude;var a=Qr(this.cameraMotion.value.longitude+r.longitude),s=Gn(this.cameraMotion.value.latitude+r.latitude,this.minLatitude,this.maxLatitude),l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};this.cameraMotion.set({longitude:a,latitude:s},0).catch(le);var u=n.longitude>1e-4||n.longitude<-1e-4||n.latitude>1e-4||n.latitude<-1e-4;this.emit("interiaPan",l,!u),u?ke.shared.add((function(e,t){i.requestInteriaMovement(n,0|t)}),!0,1):this.interiaMovement=!1}},t.prototype.onPanGesture=function(e){var t=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===i){var n=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pan",n,e.isFinal)){var r={x:e.center.x-t.x,y:e.center.y-t.y},o=this.coordinatesForOffset(r),a=Qr(this.cameraMotion.value.longitude+o.longitude),s=Gn(this.cameraMotion.value.latitude+o.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(s=this.cameraMotion.value.latitude);var l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};if(!this.emit("wantsPanGesture",l,e.isFinal)){this.emit("gesture","pan",n,e.isFinal),this.emit("panGesture",l,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.hideIntersectMesh();var u={longitude:l.longitude,latitude:l.latitude,fov:l.fov};if(this.cameraMotion.set(u,0).catch(le),e.isFinal)if(!this.emit("wantsInteriaPan",l)){this.interiaMovement=!0;var c=e.velocityX,h=.6*e.velocityY;Math.abs(h)>.5&&Math.abs(c)<.5&&(c=0),this.requestInteriaMovement(this.coordinatesForOffset({x:c,y:h}),0)}}}}},t.prototype.onPinchGesture=function(e){var t,i=null===(t=this.pinchState)||void 0===t?void 0:t.fov,n=e.scale,r=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(r=!0,delete this.pinchState),void 0!==i){var o=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",o,r)){var a=Gn(i/n,this.minFov,this.maxFov);this.emit("wantsPinchGesture",n,a,r)||this.emit("wantsChangeCameraFov",a)||(this.emit("gesture","pinch",o,r),this.emit("pinchGesture",n,a,r),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:a},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},t.prototype.onMouseWheel=function(e){var t=this,i=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,n=[{x:e.clientX,y:e.clientY,delta:i}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=Gn(this.cameraMotion.value.fov-i,this.minFov,this.maxFov);this.emit("wantsMouseWheel",i,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,r,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,r,!0))}),200)})}},t.prototype.onMouseMove=function(e){if(this.intersectMesh.parent&&!this.model.empty&&this.model.bvhs&&!0===this.model.bvhs.loaded&&!this.panState){var t=this.relativeClientPosition({x:e.clientX,y:e.clientY}),i=new n.Raycaster;if(i.setFromCamera(t,this.camera),this.emit("wantsShowIntersectionOnModel",i))this.hideIntersectMesh();else{var r=this.model.intersectRaycaster(i)[0];if(r&&r.face){var o=r.face.normal,a=o.clone().multiplyScalar(.05),s=r.point.clone().add(a);this.intersectMesh.position.copy(s);var l=s.clone().add(a);if(this.intersectMesh.lookAt(l),Math.abs(o.y)>.99){var u=this.camera.position.clone().sub(s);this.intersectMesh.rotation.z=-Math.atan2(u.z,u.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",r,this.intersectMesh)}else this.hideIntersectMesh();this.mouseMoveState={clientX:e.clientX,clientY:e.clientY}}}},t.prototype.onMouseOut=function(){this.intersectMesh.parent&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},t.prototype.onPressGesture=function(e,t){var i,r,o=[e];if(this.emit("wantsGesture","press",o,t))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(e),s=new n.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,e.delta,t))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,t),this.emit("pressGesture",s,a,e.delta,t)},t}(to);function ho(){return lo||(lo=new Promise((function(e){var t,i=document.createElement("video");i.muted=!0,i.src="data:video/mp4;base64,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",i.addEventListener("timeupdate",(function n(){i.removeEventListener("timeupdate",n,!1),clearTimeout(t);var r=document.createElement("canvas");r.width=r.height=1;var o=r.getContext("2d");o?(o.drawImage(i,0,0,1,1),o.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),i.addEventListener("canplay",(function e(){i.removeEventListener("canplay",e,!1),i.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))}var po,fo=function(e){function t(t,i){return void 0===i&&(i=.5),e.call(this,t,{uniforms:{inputBuffer:new n.Uniform(null),scale:new n.Uniform(i)},fragment:"\n#include <common>\nuniform sampler2D inputBuffer;\nuniform float scale;\nvarying vec2 vUv;\n\nvoid main() {\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = clamp(linearToRelativeLuminance(rgb), 0.1, 0.9);\n gl_FragColor = vec4(luminance);\n}\n"})||this}return te(t,e),t}(Zr),Ao=function(e){function t(t,i){void 0===i&&(i=.002);var r=e.call(this,t,{uniforms:{targetBuffer:new n.Uniform(null),inputBuffer:new n.Uniform(null),step:new n.Uniform(i)},fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n varying vec2 vUv;\n void main() {\n\n #ifdef GL_EXT_shader_texture_lod\n #if __VERSION__ < 300\n float target = texture2DLodEXT(targetBuffer, vUv, 5.0).r;\n #else\n float target = textureLod(targetBuffer, vUv, 5.0).r;\n #endif\n #else\n float target = texture2D(targetBuffer, vUv).r;\n #endif\n float current = texture2D(inputBuffer, vUv).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this;return r.material.extensions.shaderTextureLOD=!0,r}return te(t,e),Object.defineProperty(t.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),t}(Zr),vo=function(e){function t(t){var i=e.call(this,t,{uniforms:{inputBuffer:new n.Uniform(null),luminanceAdaptiveBuffer:new n.Uniform(null),progress:new n.Uniform(0)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBuffer;\n uniform float progress;\n varying vec2 vUv;\n\n void main() {\n float middleGrey = 1.5;\n float whitePoint = 13.0;\n float exposure = 1.4;\n vec4 inputColor = texture2D(inputBuffer, vUv);\n vec3 rgb = inputColor.rgb * exposure;\n float alpha = inputColor.a;\n float luminance = linearToRelativeLuminance(rgb);\n float lumAvg = texture2D(luminanceAdaptiveBuffer, vec2(0.5)).r;\n float lumScaled = (luminance * middleGrey) / max(lumAvg, 1e-6);\n float lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n lumCompressed /= (1.0 + lumScaled);\n rgb = clamp(lumCompressed * rgb, 0.0, 1.0);\n gl_FragColor = mix(inputColor, vec4(rgb, alpha), progress * 0.9);\n }\n "})||this;return i.material.transparent=!0,i}return te(t,e),Object.defineProperty(t.prototype,"luminanceAdaptiveBuffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBuffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"progress",{get:function(){return this.material.uniforms.progress.value},set:function(e){this.material.uniforms.progress.value=e},enumerable:!1,configurable:!0}),t}(Zr),mo=function(e){function t(t){var i=e.call(this,t)||this;return i.enableTime=ce(),i.renderer=t,i.valuePass=new Jr(i.renderer),i.luminancePass=new fo(i.renderer,Math.sqrt(1/3)),i.nextStepPass=new Ao(i.renderer,.01),i.luminanceAdaptivePass=new vo(i.renderer),i}return te(t,e),t.prototype.render=function(e,t){if(!this.enable)return this.enableTime=null,void this.copyPass.render(e,t);null===this.enableTime&&(this.enableTime=ce()),this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new n.WebGLRenderTarget(128,128,{minFilter:n.LinearMipmapLinearFilter,magFilter:n.LinearFilter,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1,format:n.RGBAFormat,generateMipmaps:!0}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(e,this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new n.WebGLRenderTarget(1,1,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,type:n.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new n.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new n.WebGLRenderTarget(1,1,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,type:n.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new n.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBuffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.progress=Math.min((ce()-this.enableTime)/100,1),this.luminanceAdaptivePass.render(e,t)},t.prototype.dispose=function(){var e,t,i;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(i=this.luminanceNextBuffer)||void 0===i||i.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},t}(eo),go=null!==(po=Math.SQRT1_2)&&void 0!==po?po:Math.sqrt(2),yo={up:new n.Quaternion(go,0,0,go),down:new n.Quaternion(-go,0,0,go),left:new n.Quaternion(0,go,0,go),right:new n.Quaternion(0,-go,0,go),front:new n.Quaternion(0,0,0,1),back:new n.Quaternion(0,1,0,0)},bo=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),xo=new Float32Array([0,0,1,0,0,1,1,1]),wo=new Uint8Array([0,1,2,1,3,2]),Mo=new n.BufferGeometry;Mo.setAttribute("position",new n.BufferAttribute(bo,3)),Mo.setAttribute("uv",new n.BufferAttribute(xo,2)),Mo.setIndex(new n.BufferAttribute(wo,1));var Co=function(e){function t(){var t=e.call(this,{uniforms:{map:{value:null},luminanceMap:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_LUMINANCE)\nuniform sampler2D luminanceMap;\n#endif\nuniform sampler2D map;\nvarying vec2 vUv;\n\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n #if defined(USE_LUMINANCE)\n gl_FragColor.a = 1.0 - texture2D(luminanceMap, vUv).r;\n #endif\n}\n"})||this;return t.depthTest=!1,t.depthWrite=!1,t.blending=n.NoBlending,t.map=t.uniforms.map.value,t.luminanceMap=t.uniforms.luminanceMap.value,Object.defineProperties(t,{map:{get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},luminanceMap:{get:function(){return this.uniforms.luminanceMap.value},set:function(e){this.uniforms.luminanceMap.value=e,this.defines.USE_LUMINANCE=null!==e,this.needsUpdate=!0}}}),t}return te(t,e),t}(n.ShaderMaterial),Eo=function(e){function t(t,i){var r=e.call(this,Mo,new Co)||this;return t.box.getCenter(r.position),r.quaternion.multiplyQuaternions((new n.Quaternion).setFromAxisAngle(new n.Vector3(0,1,0),-Math.PI),yo[t.face]),r.scale.setScalar(t.size),r.node=t,r.name="tiling:tile",r.material.visible=!1,r.activeTime=-1,r.disposed=!1,r.needsRender=!1,r.frustumCulled=!1,i.then((function(e){var t=e[0],i=e[1];r.disposed?(t.dispose(),null==i||i.dispose()):(r.material.map=t,r.material.luminanceMap=i,r.material.needsUpdate=!0,r.material.visible=!0,r.needsRender=!0)})).catch(le),r}return te(t,e),t.prototype.updateTime=function(e){},t.prototype.dispose=function(){var e;this.disposed=!0,this.material.map&&(this.material.map.dispose(),null===(e=this.material.luminanceMap)||void 0===e||e.dispose()),this.material.dispose()},t}(n.Mesh),Io=function(e){function t(){var t=e.call(this)||this;return t.needsRender=!1,t.name="tiling",t}return te(t,e),t}(n.Group),So=function(){function e(e,t,i){this.disposed=!1,this.textureLoader=new Et(e),this.minLevel=t,this.level=0,this.panoIndex=0,this.pedding=0,this.tileTree=Ge(this.minLevel),this.tileMeshes=new Map,this.resource=[],this.luminance=null,this.imageOptions=i,this.object=new Io,this.object.renderOrder=-3}return e.prototype.setAllowHosts=function(e){this.textureLoader.setAllowHosts(e)},e.prototype.setRequestProxy=function(e){this.textureLoader.setRequestProxy(e)},e.prototype.setNetworkSubscribe=function(e){this.textureLoader.setNetworkSubscribe(e)},e.prototype.cleanup=function(){var e=this;this.tileMeshes.forEach((function(t){t.dispose(),e.object.remove(t),e.object.needsRender=!0})),this.tileMeshes.clear()},e.prototype.setRotation=function(e){this.disposed||this.object.quaternion.equals(e)||(this.object.quaternion.copy(e),this.object.needsRender=!0)},e.prototype.setPosition=function(e){this.disposed||this.object.position.equals(e)||(this.object.position.copy(e),this.object.needsRender=!0)},e.prototype.setResource=function(e,t){var i,n;if(!this.disposed&&(this.resource!==e||this.luminance!==t)){this.cleanup(),this.resource=e;var r=null!==(n=null===(i=e.slice().sort((function(e,t){return t.level-e.level}))[0])||void 0===i?void 0:i.level)&&void 0!==n?n:0;this.tileTree=Ge(r),this.luminance=t,this.object.needsRender=!0}},e.prototype.update=function(e,t,i){var r=this;if(!this.disposed){this.level=t;var o=e.planes[5].normal,a=[];t>=this.minLevel&&We(this.tileTree,(function(i){if(!(i.level<r.minLevel))return!(i.level>t)&&(!!e.intersectsBox(i.box)&&void a.push(i))}));var s=new n.Vector3;a.sort((function(e,t){return e.level!==t.level?e.level-t.level:e.box.getCenter(s).angleTo(o)-t.box.getCenter(s).angleTo(o)}));for(var l=new Set,u=function(e){var t=c.resource.filter((function(t){return t.level===e.level}))[0];if(!t)return"continue";if(l.add(e),c.tileMeshes.has(e))return c.tileMeshes.get(e).activeTime=i,"continue";var n=t.size,o=c.imageOptions.transform,a=Math.pow(2,e.level)*e.position.y,s=Math.pow(2,e.level)*e.position.x,u="".concat(c.panoIndex,".").concat(e.face,".").concat(e.level,".").concat(a,".").concat(s),h=ie(ie({key:"pano_tile.".concat(u)},ui(c.imageOptions,["format","size","quality","sharpen","mappings"])),{size:n*e.size==512?void 0:512,cut:[n*e.position.x,n*e.position.y,n*e.size,n*e.size]}),d=c.textureLoader.loadTexture(t[e.face],{imageURL:{transform:o,options:h}}).then((function(e){return e.body})),p=null;if(c.luminance){var f=c.luminance[e.face],A=f.match(/\/cube_(\d+)\//),v=!!A&&Number(A[1]);if(!1!==v){var m=ie(ie({},h),{size:v*e.size==256?void 0:256,cut:[v*e.position.x,v*e.position.y,v*e.size,v*e.size],key:"pano_tile_luminance.".concat(u)});p=c.textureLoader.loadTexture(f,{imageURL:{transform:c.imageOptions.transform,options:m}}).then((function(e){return e.body})).catch((function(){return null}))}}c.pedding++;var g=Promise.all([d,p]).then((function(e){return r.pedding--,e}),(function(e){return r.pedding--,Promise.reject(e)})),y=new Eo(e,g);y.name="tiling:tile-".concat(u),y.activeTime=i,y.renderOrder=e.level,c.tileMeshes.set(e,y),c.object.needsRender=!0,c.object.add(y)},c=this,h=0,d=a;h<d.length;h++){u(m=d[h])}var p=[];this.tileMeshes.forEach((function(e,i){l.has(i)||p.push(i),e.visible=i.level<=t}));for(var f=p.sort((function(e,t){var i,n,o,a;return(null!==(n=null===(i=r.tileMeshes.get(t))||void 0===i?void 0:i.activeTime)&&void 0!==n?n:0)-(null!==(a=null===(o=r.tileMeshes.get(e))||void 0===o?void 0:o.activeTime)&&void 0!==a?a:0)})).slice(Math.max(0,32-l.size)),A=0,v=f;A<v.length;A++){var m=v[A],g=this.tileMeshes.get(m);g&&(g.dispose(),this.object.remove(g),this.object.needsRender=!0),this.tileMeshes.delete(m)}}},e.prototype.dispose=function(){this.cleanup(),this.resource=[],this.disposed=!0},e}(),Bo=new Float32Array([-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,-1,-1,-1,1,-1,-1]),To=new Uint8Array([0,2,1,2,3,1,4,6,5,6,7,5,8,10,9,10,11,9,12,14,13,14,15,13,16,18,17,18,19,17,20,22,21,22,23,21]),Po=new n.BufferGeometry;Po.setAttribute("position",new n.BufferAttribute(Bo,3)),Po.setIndex(new n.BufferAttribute(To,1));var Ro=function(){function e(){this.material=new n.ShaderMaterial({vertexShader:"\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n",fragmentShader:"\nuniform vec2 size;\nuniform mat4 matrix;\nuniform float alpha;\nuniform sampler2D map;\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n vec3 cameraToVertex = worldPosition - cameraPosition;\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * matrix;\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n #endif\n}\n",uniforms:{size:new n.Uniform(null),matrix:new n.Uniform(null),alpha:new n.Uniform(null),map:new n.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor}),this.object=new n.Mesh(Po,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new dr({alpha:0})}return e.prototype.setMaterial=function(e){e?(this.material.uniforms.size.value=e.size,this.material.uniforms.matrix.value=e.matrix,this.material.uniforms.map.value=e.map,this.alphaMotion.set({alpha:e.alpha},500).catch(le),this.material.uniforms.alpha.value=e.alpha):(this.material.uniforms.size.value=null,this.material.uniforms.matrix.value=null,this.material.uniforms.map.value=null,this.alphaMotion.set({alpha:0},0).catch(le));var t=null!==e;t!==this.material.defines.USE_PANO_VIDEO&&(this.material.defines.USE_PANO_VIDEO=t,this.material.needsUpdate=!0,this.object.visible=null!==e)},e.prototype.updateTime=function(e){this.alphaMotion.ended||(this.alphaMotion.update(e),this.material.uniforms.alpha.value=this.alphaMotion.value.alpha)},e.prototype.dispose=function(){this.material.dispose()},e}(),ko=(new n.Matrix4).makeRotationAxis(new n.Vector3(0,1,0),Math.PI),Qo=new n.Vector3(-1,1,1),Fo=function(){function e(e){void 0===e&&(e=0),this.width=e,this.pool=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.pool.length},enumerable:!1,configurable:!0}),e.prototype.create=function(){return new n.WebGLCubeRenderTarget(this.width,{stencilBuffer:!1,depthBuffer:!1})},e.prototype.pop=function(){var e=this.pool.pop();return e||this.create()},e.prototype.push=function(e){-1===this.pool.indexOf(e)&&this.pool.push(e)},e.prototype.clear=function(){for(var e=0,t=this.pool;e<t.length;e++){t[e].dispose()}this.pool.length=0},e}(),Do=function(e){function t(i){var n,r,o,a,s=this,l=t.parseArgs(i);(s=e.call(this,l)||this).TILED_CUBE_TEXTURE_LEVEL=2,s.tileLevel=0,s.initAnimationed=!1,s.forwardPanoIndex=null,s.currentPanoIndex=l.initial[0],s.maxAccessibleDistance=l.maxAccessibleDistance,s.panoTapTriggerRadius=l.panoTapTriggerRadius,s.panoCircleMeshCreator=l.panoCircleMeshCreator,s.tileLevelForFov=l.tileLevelForFov,s.luminanceAdaptiveEffectEnable=l.luminanceAdaptiveEffectEnable,s.colorCubeRenderTargetPool=new Fo,s.luminanceCubeRenderTargetPool=new Fo;var u=s.model.getMaterial()||{},c=u.pano0,h=u.pano1;c&&(null==h?void 0:h.map)!==c.map&&(s.model.setMaterial({pano0:h}),c.map.dispose(),c.map instanceof Ct&&c.map.cubeRenderTarget&&s.colorCubeRenderTargetPool.push(c.map.cubeRenderTarget),c.luminanceMap&&(c.luminanceMap.dispose(),c.luminanceMap instanceof Ct&&c.luminanceMap.cubeRenderTarget&&s.luminanceCubeRenderTargetPool.push(c.luminanceMap.cubeRenderTarget)));for(var d=s.colorCubeRenderTargetPool.size;d<2;d++){var p=Math.max(1024*s.TILED_CUBE_TEXTURE_LEVEL,512),f=s.colorCubeRenderTargetPool.create();f.setSize(p,p),et(null,f,s.renderer),s.colorCubeRenderTargetPool.push(f)}s.panoMeshes=[],s.panoMeshHitTested={},s.updatePanoMeshes(),s.locationMotion=new dr({count:0,distance:s.camera.pose.distance,modelAlpha:null!==(r=null===(n=s.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==r?r:0,perspToOrtho:s.camera.perspToOrtho.x,orthoDistance:s.camera.orthoDistance}),s.panoResources={},s.panoResources[s.locationMotion.keyframes[0].key=s.locationMotion.keyframes[1].key=Bn()]={panoIndex:s.currentPanoIndex,workCode:s.work.workCode,panoPicture:null!==(a=null===(o=s.model.getMaterial())||void 0===o?void 0:o.pano1)&&void 0!==a?a:null,position:s.camera.pose.offset.clone(),effect:"fly"};var A={allowHosts:s.work.allowHosts,requestProxy:s.requestProxy,networkSubscribe:s.networkSubscribe};return s.textureLoader=new Et(A),s.tiling=new So(A,s.TILED_CUBE_TEXTURE_LEVEL+1,s.imageOptions),s.scene.add(s.tiling.object),s.panoVideo=new Ro,s.scene.add(s.panoVideo.object),s}return te(t,e),t.parseArgs=function(t){var i,n,r,o,a,s=e.parseArgs.call(this,t);return ie(ie({},s),{maxAccessibleDistance:null!==(i=t.maxAccessibleDistance)&&void 0!==i?i:5,panoTapTriggerRadius:null!==(n=t.panoTapTriggerRadius)&&void 0!==n?n:.5,panoCircleMeshCreator:null!==(r=t.panoCircleMeshCreator)&&void 0!==r?r:function(e){return new Ar},tileLevelForFov:null!==(o=t.tileLevelForFov)&&void 0!==o?o:function(e,t){var i=2*Math.atan(Math.tan(e/180*Math.PI/2)*(t.width/t.height))/Math.PI*180,n=Math.max(t.width/i,t.height/e);return n>60?4:n>30?3:n>18?2:n>12?1:0},luminanceAdaptiveEffectEnable:null===(a=t.luminanceAdaptiveEffectEnable)||void 0===a||a})},t.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},t.prototype.destroy=function(){var t,i,n=this;e.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),this.colorCubeRenderTargetPool.clear(),this.luminanceCubeRenderTargetPool.clear(),delete this.pendingTextureTask,this.panoMeshes&&(this.panoMeshes.forEach((function(e){n.helper.remove(e),e.dispose()})),this.panoMeshes.length=0),this.interiaMovement=!1;var r=this.videoTexture.image;r.pause(),r.oncanplay=function(){},r.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var o=null!==(t=this.model.getMaterial())&&void 0!==t?t:{},a=o.pano0,s=o.pano1,l=0,u=Object.keys(this.panoResources);l<u.length;l++){var c=u[l],h=this.panoResources[c];if(h.panoPicture){var d=h.panoPicture.map;d&&d!==(null==a?void 0:a.map)&&d!==(null==s?void 0:s.map)&&(d.dispose(),null===(i=h.panoPicture.luminanceMap)||void 0===i||i.dispose(),h.panoPicture=null)}delete this.panoResources[c]}this.luminanceAdaptiveEffect&&(this.luminanceAdaptiveEffect.dispose(),delete this.luminanceAdaptiveEffect)},t.prototype.isReady=function(){return!0===this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.isTileReady=function(){var e,t,i,n=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),r=(null===(e=n.panoPicture)||void 0===e?void 0:e.map)instanceof Ct&&null!==(i=null===(t=n.panoPicture)||void 0===t?void 0:t.map.tilePending)&&void 0!==i?i:0,o=this.tiling.pedding;return this.initAnimationed&&r<=0&&o<=0},t.prototype.updateWork=function(e,t,i,n,r){var o=this;return this.userAction=r,this.work=e,this.currentPanoIndex=t,this.textureLoader.setAllowHosts(this.work.allowHosts),this.tiling.setAllowHosts(this.work.allowHosts),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(t,{effect:"fade",duration:n,longitude:i.longitude,latitude:i.latitude,fov:i.fov,moveEndCallback:function(){o.initAnimationed=!0},moveCancelCallback:function(){o.initAnimationed=!0}},r),!0},t.prototype.updateModel=function(e){this.model=e,this.updatePanoMeshes(!0)},t.prototype.updateTime=function(e,t){var i,r,o,a,s,l,u,c,h,d,p=this;if(!this.destroyed){var f=this.currentPanoIndex,A={},v={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),g=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),y=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(e);var b=this.locationMotion.getKeyFrameSegment(e),x=b[0],w=b[1],M=this.panoResourceFromLocationMotionKeyframe(x),C=this.panoResourceFromLocationMotionKeyframe(w),E=(new n.Vector3).copy(M.position),I=(new n.Vector3).copy(C.position),S=this.locationMotion.value.count-w.value.count+1;A.progress=S,A.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gn(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,C.panoPicture&&(S<1?M.panoPicture&&(A.pano0=M.panoPicture):A.pano0=C.panoPicture,A.pano1=C.panoPicture),y=A.useBlackTransition="instant"===C.effect||"montage"===C.effect,"fade"!==C.effect&&"montage"!==C.effect||(A.pano0&&M.panoPicture&&(A.pano0={map:A.pano0.map,luminanceMap:A.pano0.luminanceMap,matrix:M.panoPicture.matrix.clone().setPosition(C.position)}),E.copy(I)),v.distance=this.locationMotion.value.distance,v.offset=new n.Vector3(E.x+(I.x-E.x)*S,E.y+(I.y-E.y)*S,E.z+(I.z-E.z)*S);for(var B=[],T=[],P=0,R=this.locationMotion.keyframes;P<R.length;P++){var k=R[P],Q=k.key,F=k.progress;void 0!==Q&&(B.push(Q),F>=this.locationMotion.progress&&T.push(Q))}for(var D=0,L=Object.keys(this.panoResources);D<L.length;D++){var O=L[D];if(!(T.indexOf(O)>=0)){var N=this.panoResources[O];if(N.panoPicture){var V=N.panoPicture.map,U=N.panoPicture.luminanceMap;if(V){if(V===(null===(i=A.pano0)||void 0===i?void 0:i.map))continue;if(V===(null===(r=A.pano1)||void 0===r?void 0:r.map))continue;V instanceof Ct&&V.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(V.cubeRenderTarget),V.dispose(),U&&(U instanceof Ct&&U.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(U.cubeRenderTarget),U.dispose()),N.panoPicture=null}}B.indexOf(O)>=0||delete this.panoResources[O]}}M.workCode===C.workCode?this.currentPanoIndex=S<.5?M.panoIndex:C.panoIndex:this.currentPanoIndex=C.panoIndex,this.emit("movingToPano",g.panoIndex,m.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),v.longitude=this.cameraMotion.value.longitude,v.latitude=this.cameraMotion.value.latitude,v.fov=this.cameraMotion.value.fov),!1===Hr(A)&&((null===(o=A.pano0)||void 0===o?void 0:o.map)&&A.pano0.map instanceof Ct&&!A.pano0.map.cubeRenderTarget&&(A.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=A.pano0)||void 0===a?void 0:a.luminanceMap)&&A.pano0.luminanceMap instanceof Ct&&!A.pano0.luminanceMap.cubeRenderTarget&&(A.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=A.pano1)||void 0===s?void 0:s.map)&&A.pano1.map instanceof Ct&&!A.pano1.map.cubeRenderTarget&&(A.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=A.pano1)||void 0===l?void 0:l.luminanceMap)&&A.pano1.luminanceMap instanceof Ct&&!A.pano1.luminanceMap.cubeRenderTarget&&(A.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.model.setMaterial(A));var z=!1;if(!1===Hr(v)&&(this.setCamera(v),z=!0),this.currentPanoIndex!==f&&(this.updatePanoMeshesVisible(),z=!0),z)if(te=this.work.observers[this.currentPanoIndex]){var q=Qt(this.camera.pose).normalize(),H=new n.Raycaster(te.position,q);this.forwardPanoIndex=this.getForwardPanoIndexOrNot(H)}if(this.camera.pose.distance>.1||y){var _=this.work.observers[this.currentPanoIndex];if(_)for(var K=0,j=Y=_.visibleNodes.concat(this.currentPanoIndex);K<j.length;K++){var G=j[K];(ee=this.panoMeshes[G])&&ee.setOpacity(0)}}else{var W=this.work.observers[this.currentPanoIndex];if(W){var X=qr(W.visibleNodes,(function(e){return W.standingPosition.distanceTo(p.work.observers[e].standingPosition)}),!0)[1];X=Gn(X,2.5,1/0);for(var Y=W.visibleNodes.concat(this.currentPanoIndex),Z=this.camera.getDirection(new n.Vector3),J=0,$=Y;J<$.length;J++){G=$[J];var ee,te=this.work.observers[G];if(ee=this.panoMeshes[G])if(te.loadable||te.active){var ie=ee.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ee.setCurrent(!ee.loading&&0===ee.progress&&this.forwardPanoIndex===G),ee.setOpacity(ie<.01?0:Gn(X/ie*1.2,.4,.85));var ne=this.camera.position.clone().setY(ee.position.y);q=(new n.Vector3).copy(ee.position).sub(ne).normalize();if(G===this.currentPanoIndex){var re=Gn((.5-ne.distanceTo(ee.position))/.5,0,1);q.multiplyScalar(1-re).add(Z.clone().multiplyScalar(re))}q.length()>0&&ee.quaternion.setFromEuler(new n.Euler(0,Math.atan2(q.x,q.z),0)),ee.updateTime&&ee.updateTime(e,t)}else ee.setOpacity(0)}}}var oe=this.tileLevel=function(){if(!1===p.tileLevelForFov)return 0;var e=p.renderer.getDrawingBufferSize(new n.Vector2);e.width*=p.scissor.width,e.height*=p.scissor.height;var t=g.panoIndex,i=p.work.observers[t],r=p.imageOptions.size;if(void 0===r&&i){var o=i.images.up.match(/\/cube_(\d+)\//);o&&(r=Number(o[1]))}void 0===r&&(r=2048);var a=0;r>=1024&&(a=1),r>=2048&&(a=2),r>=4096&&(a=3),r>=8192&&(a=4);var s=p.tileLevelForFov(p.camera.fov,e);return s>a?s:0}(),ae=function(){var e,t=p.camera.quaternion.clone();t.premultiply((null!==(e=p.work.observers[g.panoIndex])&&void 0!==e?e:p.work.observers[p.currentPanoIndex]).quaternion.clone().inverse());var i=(new n.Matrix4).makeRotationFromQuaternion(t),r=(new n.Matrix4).getInverse(i);return(new n.Frustum).setFromProjectionMatrix((new n.Matrix4).multiplyMatrices(p.camera.projectionMatrix,r))}();g.panoIndex===this.currentPanoIndex&&((null===(u=g.panoPicture)||void 0===u?void 0:u.map)instanceof Ct&&(g.panoPicture.map.update(ae,oe),!0===g.panoPicture.map.needsRender&&(g.panoPicture.map.needsRender=!1,this.needsRender=!0)),(null===(c=g.panoPicture)||void 0===c?void 0:c.luminanceMap)instanceof Ct&&(g.panoPicture.luminanceMap.update(ae,oe),!0===g.panoPicture.luminanceMap.needsRender&&(g.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0)));var se=this.tiling.object.visible;if(this.initAnimationed){var le=g.panoIndex,ue=this.work.observers[le];ue&&Sr(this.camera.position,ue.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoIndex!==le&&this.tiling.cleanup(),this.tiling.panoIndex=le,this.tiling.setResource(null!==(d=null===(h=ue.images)||void 0===h?void 0:h.tiles)&&void 0!==d?d:[],this.enableIOSEDR&&ue.images.luminance?ue.images.luminance:null),this.tiling.setRotation(ue.quaternion),this.tiling.setPosition(ue.position),oe>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(ae,oe,e):this.tiling.update(ae,0,e)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;se!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}},t.prototype.render=function(){var t=this.work.observers[this.currentPanoIndex];t&&t.video&&(this.needsRender=!0),e.prototype.render.call(this)},t.prototype.postProcessing=function(e,t){if(!this.destroyed)return this.luminanceAdaptiveEffect||(this.luminanceAdaptiveEffect=new mo(this.renderer),this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable),this.luminanceAdaptiveEffect.render(e,t)},t.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1],i=this.panoResourceFromLocationMotionKeyframe(t),n=this.work.observers[i.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},t.prototype.moveToPano=function(e,t,i){var r,o,a,s,l=this,u=this.work.observers[e],c=this.imageOptions.size;if(void 0===c&&u){var h=u.images.up.match(/\/cube_(\d+)\//);h&&(c=Number(h[1]))}void 0===c&&(c=2048);var d=this.imageOptions.transform,p=ie({key:"pano.".concat(e)},ui(this.imageOptions,["format","size","quality","sharpen","mappings"])),f=u.images,A=null!==(o=null===(r=u.images.tiles)||void 0===r?void 0:r.filter((function(e){return e.size>c})))&&void 0!==o?o:null,v=d,m={key:"pano_luminance.".concat(e),size:p.size?p.size/2:1024},g=this.enableIOSEDR&&u.images.luminance?u.images.luminance:null,y=function(){if(!u.images.tiles)return null;if(!g)return null;var e=g.up.match(/\/cube_(\d+)\//),t=!!e&&Number(e[1]);return!1===t?null:null==A?void 0:A.map((function(e){return{level:e.level,size:t,back:g.back,front:g.front,left:g.left,right:g.right,up:g.up,down:g.down}}))}(),b="pano:"+hi([f,p,d]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var x=this.pendingTextureTask.panoIndex;null===(a=this.panoMeshes[x])||void 0===a||a.setProgress(0),this.emit("textureAbort",x,u),this.pendingTextureTask.onError(new Error("texture aborted"))}this.pending=!0;var w,M=this.model.getMaterial()||{},C=M.pano0,E=M.pano1;if(C&&C.map.name===b&&null!==C.luminanceMap===this.enableIOSEDR?w=C:(null==E?void 0:E.map.name)===b&&null!==E.luminanceMap===this.enableIOSEDR&&(w=E),w){var I={panoIndex:e,workCode:this.work.workCode,effect:null!==(s=t.effect)&&void 0!==s?s:"fly",panoPicture:{map:w.map,luminanceMap:w.luminanceMap,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Qo)},position:u.position.clone()};ke.shared.add((function(){l.pending=!1,l.emit("panoLoaded",e),l.doMoveToPano(e,I,t,i)}),!0,1)}else{this.pendingTextureTask={panoIndex:e,hash:b,onLoad:function(r,o){var a,s;if(l.pending=!1,l.destroyed)r.body.dispose();else{r.body.name=b,l.emit("panoLoaded",e);var c={panoIndex:e,workCode:l.work.workCode,effect:null!==(a=t.effect)&&void 0!==a?a:"fly",panoPicture:{map:r.body,luminanceMap:null!==(s=null==o?void 0:o.body)&&void 0!==s?s:null,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Qo)},position:u.position.clone()};l.doMoveToPano(e,c,t,i)}},onError:function(i){l.pending=!1,t.moveCancelCallback&&t.moveCancelCallback(),l.emit("panoLoadError",i,e),l.emit("moveToPanoCanceled",e)}};var S=this.panoMeshes[e];S&&S.tap&&S.tap(),Promise.all([this.tileLevelForFov&&A&&A.length?this.textureLoader.loadTiledCubeTexture(f,A,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:d,options:p},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(t){var i,n;l.emit("textureLoading",t,e,u),(null===(i=l.pendingTextureTask)||void 0===i?void 0:i.hash)===b&&(null===(n=l.panoMeshes[e])||void 0===n||n.setProgress(t))}),this.renderer):this.textureLoader.loadCubeTexture(f,{imageURL:{transform:d,options:p},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(t){var i,n;l.emit("textureLoading",t,e,u),(null===(i=l.pendingTextureTask)||void 0===i?void 0:i.hash)===b&&(null===(n=l.panoMeshes[e])||void 0===n||n.setProgress(t))}),this.renderer),g?this.tileLevelForFov&&y&&y.length?this.textureLoader.loadTiledCubeTexture(g,y,{tileImageSize:256,tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:v,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):this.textureLoader.loadCubeTexture(g,{imageURL:{transform:v,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):Promise.resolve(null)]).then((function(t){var i,n,r=t[0],o=t[1];(null===(i=l.pendingTextureTask)||void 0===i?void 0:i.hash)===b?(l.pendingTextureTask.onLoad(r,o),null===(n=l.panoMeshes[e])||void 0===n||n.setProgress(0),delete l.pendingTextureTask,l.emit("textureLoaded",e,u,r.meta)):(r.body.dispose(),null==o||o.body.dispose())})).catch((function(t){var i,n;(null===(i=l.pendingTextureTask)||void 0===i?void 0:i.hash)===b&&(l.pendingTextureTask.onError(t),null===(n=l.panoMeshes[e])||void 0===n||n.setProgress(0),delete l.pendingTextureTask,l.emit("textureError",t,e,u),l.emit("error",t))})),this.emit("textureStartLoad",e,u)}},t.prototype.initAnimation=function(e,t,i,n){var r,o,a,s=this;if(!this.destroyed){var l=!1;this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:Gn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:Gn(null!==(a=t.fov)&&void 0!==a?a:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){l=!0,s.emit("initAnimationWillStart",e,t,s.userAction)},moveEndCallback:function(e,t){s.emit("initAnimationEnded",e,t,s.userAction),s.initAnimationed=!0},moveCancelCallback:function(){var e={longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:s.camera.pose.distance};!1===l&&s.emit("initAnimationWillStart",s.currentPanoIndex,e,s.userAction),s.emit("initAnimationEnded",s.currentPanoIndex,e,s.userAction),s.initAnimationed=!0}},n)}},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var t=0,i=1;i<e.length;i++){var n=this.panoResourceFromLocationMotionKeyframe(e[i-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[i]).position;t+=n.distanceTo(r)*(e[i].value.count-e[i-1].value.count)}return t},t.prototype.updatePanoMeshesVisible=function(e){var t=this;void 0===e&&(e=!1);for(var i=this.work.observers[this.currentPanoIndex],r=(i?i.visibleNodes:[]).concat(this.currentPanoIndex),o=[],a=0,s=this.work.observers;a<s.length;a++){var l=s[a],u=this.panoMeshes[l.panoIndex];u&&(r.indexOf(l.panoIndex)>=0?u.parent!==this.helper&&(this.helper.add(u),!0!==this.panoMeshHitTested["".concat(this.work.workCode,"_").concat(l.panoIndex)]&&o.push(l)):u.parent===this.helper&&(this.helper.remove(u),u.setOpacity(0)))}e&&(o=r.map((function(e){return t.work.observers[e]})));for(var c=0,h=o;c<h.length;c++){var d=h[c];if(this.model.loaded&&this.model.bvhs.loaded&&this.model.workCode===this.work.workCode&&r.length<=10){this.panoMeshHitTested["".concat(this.work.workCode,"_").concat(d.panoIndex)]=!0;var p=new n.Vector3(0,-1,0),f=new n.Vector3(0,.1,0).add(d.standingPosition),A=new n.Raycaster(f,p,0,.2),v=this.model.intersectRaycaster(A)[0];if(!v)continue;if(d.standingPosition.y>=v.point.y&&d.standingPosition.y-v.point.y<.1)continue;this.panoMeshes[d.panoIndex]&&this.panoMeshes[d.panoIndex].position.copy(v.point)}}},t.prototype.updatePanoMeshes=function(e){var t=this;void 0===e&&(e=!1);for(var i={},n=0,r=this.panoMeshes;n<r.length;n++){i[(f=r[n]).name]=f}this.panoMeshes.length=0,this.panoMeshHitTested={};for(var o=1,a={},s=function(e){if(e.accessibleNodes.length){var i=qr(e.accessibleNodes,(function(i){return Gn(t.work.observers[i].standingPosition.distanceTo(e.standingPosition),1,1/0)}),!0),n=i[1];void 0===a[e.panoIndex]&&(a[e.panoIndex]=n)}},l=0,u=this.work.observers;l<u.length;l++){s(p=u[l])}var c=Object.keys(a).map((function(e){return a[e]}));c.length&&(o=Gn(.6*(c.reduce((function(e,t){return e+t}),0)/c.length),1,3));for(var h=0;h<this.work.observers.length;h++){var d="panoCircle_".concat(this.work.workCode,"_").concat(h),p=this.work.observers[h],f=void 0;i[d]?(!0===(f=i[d]).loading&&!1===p.loadable&&f.setLoading(!1),delete i[d]):(f=this.panoCircleMeshCreator(h)).name=d,f.scale.set(o,1,o),f.position.copy(p.standingPosition),this.panoMeshes[h]=f}for(var A=0,v=Object.keys(i);A<v.length;A++){var m=v[A];this.helper.remove(i[m]),i[m].dispose(),delete i[m]}this.updatePanoMeshesVisible(e)},t.prototype.doMoveToPano=function(e,t,i,r){var o,a,s,l,u=this;void 0===i&&(i={}),this.userAction=r;var c=ce(),h=Bn();this.tiling.cleanup(),this.panoResources[h]=t;var d,p,f;if(this.locationMotion.ended){var A=this.locationMotion.getKeyFrameSegment(c);A[0];var v=A[1],m=this.locationMotion.value,g=(null!==(o=this.panoResourceFromLocationMotionKeyframe(v))&&void 0!==o?o:this.camera).position,y=t.position;d=Math.max(g.distanceTo(y),1),p=[{key:v.key,progress:0,value:ie(ie({},m),{count:0})},{key:h,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],f=0}else{var b=this.locationMotion.getKeyFrameSegment(c),x=b[0],w=(v=b[1],m=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(x).position),M=(g=this.panoResourceFromLocationMotionKeyframe(v).position,y=t.position,v.value.count-m.count),C=Math.max(w.distanceTo(g),1)*M;d=C+Math.max(g.distanceTo(y),1),p=[{key:x.key,progress:0,value:ie({},m)},{key:v.key,progress:C/d,value:v.value},{key:h,progress:1,value:{count:v.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var E=this.locationMotionKeyframesLength(this.locationMotion.keyframes),I=this.locationMotionKeyframesLength(p);f=0===E||0===E?0:this.locationMotion.getProgressVelocity(c)*E/I}var S=this.calculateMovingDuration(i.duration,"fade"===i.effect||"montage"===i.effect?0:d),B={longitude:i.longitude,latitude:i.latitude,fov:i.fov},T={longitude:null!==(a=B.longitude)&&void 0!==a?a:this.camera.pose.longitude,latitude:null!==(s=B.latitude)&&void 0!==s?s:this.camera.pose.latitude,fov:null!==(l=B.fov)&&void 0!==l?l:this.camera.pose.fov,offset:t.position.clone(),distance:this.camera.pose.distance};this.emit("moveToPano",e,r),i.moveStartCallback&&i.moveStartCallback(e,T),this.emit("panoWillArrive",e,T,this.userAction),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=le,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(B,S).catch(le),this.locationMotion.setKeyframes(p,S,f).then((function(){var t,o,a,s={longitude:u.camera.pose.longitude,latitude:u.camera.pose.latitude,fov:u.camera.pose.fov,offset:u.camera.pose.offset.clone(),distance:u.camera.pose.distance};i.moveEndCallback&&i.moveEndCallback(e,s),u.emit("panoArrived",e,s,r);var l=u.work.observers[u.currentPanoIndex];if(l&&l.video&&u.videoTexture&&u.videoTexture.image instanceof HTMLVideoElement){var c=ko.clone().multiply(null!==(a=null===(o=null===(t=u.model.getMaterial())||void 0===t?void 0:t.pano1)||void 0===o?void 0:o.matrix)&&void 0!==a?a:new n.Matrix4).multiply(l.video.matrix),h={map:u.videoTexture,size:l.video.size,matrix:c,alpha:1},d=Bn(),p=u.videoTexture.image;p.setAttribute("uuid",d),ho().then((function(e){e&&l.video&&p.getAttribute("uuid")===d&&(p.oncanplay=function(){p.oncanplay=le,p.play()},p.ontimeupdate=function(){p.currentTime>.5&&(p.ontimeupdate=le,u.panoVideo.setMaterial(h))},p.src=l.video.source)})).catch((function(){p.removeAttribute("uuid")}))}}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),u.emit("moveToPanoCanceled",e)}))},t.prototype.getForwardPanoIndexOrNot=function(e){var t=this,i=this.work.observers[this.currentPanoIndex];if(!i)return null;var r=null!=e?e:new n.Raycaster(this.camera.position.clone(),this.camera.getDirection(new n.Vector3)),o=i.standingPosition.clone();if(i.position.distanceTo(r.ray.origin)>1){var a=this.model.intersectRaycaster(new n.Raycaster(r.ray.origin,new n.Vector3(0,-1,0)))[0];a&&a.distance<=2?o.copy(a.point):o.copy(r.ray.origin).add(new n.Vector3(0,-1.5,0))}var s=this.model.intersectRaycaster(r)[0],l=(s?s.point:r.ray.origin.clone().add(r.ray.direction.clone().normalize().multiplyScalar(3))).clone().sub(o).normalize();if(0===l.length())return null;for(var u=i.accessibleNodes.filter((function(e){if(e===t.currentPanoIndex)return!1;var i=t.work.observers[e],n=i.standingPosition.clone().project(t.camera);return!(Math.abs(n.z)>1)&&(!(Math.abs(n.x)>1)&&(!(Math.abs(n.y)>1)&&(i.loadable||i.active)))})),c=u.slice().sort((function(e,i){return t.work.observers[e].standingPosition.clone().distanceTo(o)-t.work.observers[i].standingPosition.clone().distanceTo(o)})),h=0,d=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];h<d.length;h++)for(var p=d[h],f=0,A=c;f<A.length;f++){var v=A[f],m=this.work.observers[v].standingPosition.clone().sub(o);if(0!==m.length()&&l.angleTo(m)<p)return v}return null},t.prototype.onTapGesture=function(e){var t=this,i=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(e.center),o=new n.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.camera.getDirection(new n.Vector3).setY(0),s=null,l=this.work.observers[this.currentPanoIndex];if(l){var u=l.accessibleNodes.filter((function(e){if(e===t.currentPanoIndex)return!1;var i=t.work.observers[e];return!(i.position.distanceTo(t.camera.position)>t.maxAccessibleDistance)&&(i.loadable||i.active)})),c=this.model.intersectRaycaster(o)[0];if(c){var h=qr(u,(function(e){return t.work.observers[e].standingPosition.clone().distanceTo(c.point)}),!0),d=h[0];h[1]<this.panoTapTriggerRadius&&(s=d)}qn(s)&&(s=this.getForwardPanoIndexOrNot(o));for(var p=0,f=this.locationMotion.keyframes;p<f.length;p++){var A=f[p],v=this.panoResourceFromLocationMotionKeyframe(A);if(!(A.progress<this.locationMotion.progress)&&v.panoIndex===s){s=null;break}}if(this.emit("panoSelected",s),qn(s))!0===this.locationMotion.ended&&this.cameraBounce();else{var m=this.work.observers[s];if(m.active){for(var g={},y=Math.PI/6,b=Math.PI/12,x=m.position.clone().setY(0).sub(l.position.clone().setY(0)).normalize(),w=[],M=0,C=m.accessibleNodes;M<C.length;M++){if((d=C[M])!==this.currentPanoIndex&&d!==s){var E=this.work.observers[d].position.clone().sub(m.position).setY(0);x.angleTo(E)<y&&w.push(E)}}var I=(w.length>0?w:ne(ne([],[],!0),[],!0)).slice().sort((function(e,t){return e.angleTo(x)-t.angleTo(x)}))[0];I&&I.angleTo(a)>b&&(g.longitude=Math.atan2(-I.x,-I.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(g.latitude=Gn(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(g.fov=this.defaultFov),this.emit("wantsMoveToPano",s,g,!0)}else this.panoMeshes[s]&&(this.panoMeshes[s].setDisabled(!1),this.panoMeshes[s].setLoading(!0))}}}}},t}(co),Lo=Math.PI/180,Oo=180/Math.PI,No=function(){var e="undefined"!=typeof navigator&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return e}}(),Vo=function(){var e="undefined"!=typeof navigator&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return e}}(),Uo=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("Firefox")&&-1!==navigator.userAgent.indexOf("Android");return function(){return e}}(),zo=function(){var e="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,t=e?parseInt(e[1],10):null;return function(){return t}}(),qo=function(){var e=!1;if(65===zo()){var t="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/):null;if(t){var i=t[1].split(".");i[0],i[1];var n=i[2],r=i[3];e=3325===parseInt(n,10)&&parseInt(r,10)<148}}return function(){return e}}(),Ho=function(){var e=No()&&Vo()&&"undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("13_4");return function(){return e}}(),_o=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("R7 Build");return function(){return e}}();function Ko(){var e="undefined"!=typeof window&&(90==window.orientation||-90==window.orientation);return _o()?!e:e}var jo,Go=(jo={},function(e,t){void 0===jo[e]&&(console.warn("cardboard: "+t),jo[e]=!0)});function Wo(e){var t,i=e.indexOf("://");t=-1!==i?i+3:0;var n=e.indexOf("/",t);return-1===n&&(n=e.length),e.substring(0,n)}var Xo,Yo=function(e,t,i){var n,r,o,a,s,l,u,c,h,d,p,f,A,v,m,g,y,b,x;n=e,a=(r=t)?r[0]:0,s=r?r[1]:0,l=r?r[2]:0,u=r?r[3]:1,p=a*(c=a+a),f=a*(h=s+s),A=a*(d=l+l),v=s*h,m=s*d,g=l*d,y=u*c,b=u*h,x=u*d,n[0]=1-(v+g),n[1]=f+x,n[2]=A-b,n[3]=0,n[4]=f-x,n[5]=1-(p+g),n[6]=m+y,n[7]=0,n[8]=A+b,n[9]=m-y,n[10]=1-(p+v),n[11]=0,n[12]=o?o[0]:0,n[13]=o?o[1]:0,n[14]=o?o[2]:0,n[15]=1,i&&function(e,t,i){var n,r,o,a,s,l,u,c,h,d,p,f,A=i[0],v=i[1],m=i[2];t===e?(e[12]=t[0]*A+t[4]*v+t[8]*m+t[12],e[13]=t[1]*A+t[5]*v+t[9]*m+t[13],e[14]=t[2]*A+t[6]*v+t[10]*m+t[14],e[15]=t[3]*A+t[7]*v+t[11]*m+t[15]):(n=t[0],r=t[1],o=t[2],a=t[3],s=t[4],l=t[5],u=t[6],c=t[7],h=t[8],d=t[9],p=t[10],f=t[11],e[0]=n,e[1]=r,e[2]=o,e[3]=a,e[4]=s,e[5]=l,e[6]=u,e[7]=c,e[8]=h,e[9]=d,e[10]=p,e[11]=f,e[12]=n*A+s*v+h*m+t[12],e[13]=r*A+l*v+d*m+t[13],e[14]=o*A+u*v+p*m+t[14],e[15]=a*A+c*v+f*m+t[15])}(e,e,i),function(e,t){var i=t[0],n=t[1],r=t[2],o=t[3],a=t[4],s=t[5],l=t[6],u=t[7],c=t[8],h=t[9],d=t[10],p=t[11],f=t[12],A=t[13],v=t[14],m=t[15],g=i*s-n*a,y=i*l-r*a,b=i*u-o*a,x=n*l-r*s,w=n*u-o*s,M=r*u-o*l,C=c*A-h*f,E=c*v-d*f,I=c*m-p*f,S=h*v-d*A,B=h*m-p*A,T=d*m-p*v,P=g*T-y*B+b*S+x*I-w*E+M*C;P&&(P=1/P,e[0]=(s*T-l*B+u*S)*P,e[1]=(r*B-n*T-o*S)*P,e[2]=(A*M-v*w+m*x)*P,e[3]=(d*w-h*M-p*x)*P,e[4]=(l*I-a*T-u*E)*P,e[5]=(i*T-r*I+o*E)*P,e[6]=(v*b-f*M-m*y)*P,e[7]=(c*M-d*b+p*y)*P,e[8]=(a*B-s*I+u*C)*P,e[9]=(n*I-i*B-o*C)*P,e[10]=(f*w-A*b+m*g)*P,e[11]=(h*b-c*w-p*g)*P,e[12]=(s*E-a*S-l*C)*P,e[13]=(i*S-n*E+r*C)*P,e[14]=(A*y-f*x-v*g)*P,e[15]=(c*x-h*y+d*g)*P)}(e,e)},Zo=function(){function e(e,t){void 0===e&&(e=new n.Vector3),void 0===t&&(t=0),this.sample=e,this.timestampS=t}return e.prototype.set=function(e,t){this.sample=e,this.timestampS=t},e.prototype.copy=function(e){this.set(e.sample,e.timestampS)},e}(),Jo=function(){function e(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new Zo,this.currentGyroMeasurement=new Zo,this.previousGyroMeasurement=new Zo,No()?this.filterQ=new n.Quaternion(-1,0,0,1):this.filterQ=new n.Quaternion(1,0,0,1),this.previousFilterQ=new n.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new n.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new n.Vector3,this.measuredGravity=new n.Vector3,this.gyroIntegralQ=new n.Quaternion}return e.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},e.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var i,n=t-this.previousGyroMeasurement.timestampS;i=n,isNaN(i)||i<=.001||i>1||this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},e.prototype.getOrientation=function(){return this.filterQ},e.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var i=new n.Quaternion;i.copy(this.filterQ),i.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(i),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var r,o=new n.Quaternion;o.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),o.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",Oo*((r=o).w>1?0:2*Math.acos(r.w)),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var a=new n.Quaternion;a.copy(this.filterQ),a.multiply(o),this.filterQ.slerp(a,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},e.prototype.accelToQuaternion_=function(e){var t=new n.Vector3;t.copy(e),t.normalize();var i=new n.Quaternion;return i.setFromUnitVectors(new n.Vector3(0,0,-1),t),i.inverse(),i},e.prototype.gyroToQuaternionDelta_=function(e,t){var i=new n.Quaternion,r=new n.Vector3;return r.copy(e),r.normalize(),i.setFromAxisAngle(r,e.length()*t),i},e}(),$o=function(){function e(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new n.Quaternion,this.previousTimestampS=null,this.deltaQ=new n.Quaternion,this.outQ=new n.Quaternion}return e.prototype.getPrediction=function(e,t,i){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=i,e;var r=new n.Vector3;r.copy(t),r.normalize();var o=t.length();if(o<20*Lo)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(Oo*o).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var a=o*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(r,a),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=i,this.outQ},e}(),ea=function(){function e(e){this.coefficients=e}return e.prototype.distortInverse=function(e){for(var t=0,i=1,n=e-this.distort(t);Math.abs(i-t)>1e-4;){var r=e-this.distort(i),o=i-r*((i-t)/(r-n));t=i,i=o,n=r}return i},e.prototype.distort=function(e){for(var t=e*e,i=0,n=0;n<this.coefficients.length;n++)i=t*(i+this.coefficients[n]);return(i+1)*e},e}(),ta=function(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null},ia=function(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0},na=function(){function e(e,t,i,r){this.viewer={id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]},this.device={widthMeters:.11,heightMeters:.062,bevelMeters:.004},this.depthNear=.01,this.depthFar=1e4,this.yawOnly=i,this.accelerometer=new n.Vector3,this.gyroscope=new n.Vector3,this.filter=new Jo(e,r),this.posePredictor=new $o(t,r),this.isFirefoxAndroid=Uo(),this.isIOS=No();var o=zo();this.isDeviceMotionInRadians=!this.isIOS&&null!==o&&o<66,this.isWithoutDeviceMotion=qo()||Ho(),this.filterToWorldQ=new n.Quaternion,No()?this.filterToWorldQ.setFromAxisAngle(new n.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new n.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new n.Quaternion,this.worldToScreenQ=new n.Quaternion,this.originalPoseAdjustQ=new n.Quaternion;var a="undefined"!=typeof window?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new n.Vector3(0,0,1),a),this.setScreenTransform_(),Ko()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new n.Quaternion,this.orientationOut_=new Float32Array(4),this.previousTimestampS=Date.now()}return e.prototype.getPosition=function(){return null},e.prototype.getOrientation=function(){var e;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||(r=(new n.Quaternion).setFromAxisAngle(new n.Vector3(0,0,-1),0),o=new n.Quaternion,"undefined"!=typeof window&&-90===window.orientation?o.setFromAxisAngle(new n.Vector3(0,1,0),Math.PI/-2):o.setFromAxisAngle(new n.Vector3(0,1,0),Math.PI/2),r.multiply(o)),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((i=new n.Quaternion).setFromAxisAngle(new n.Vector3(1,0,0),-Math.PI/2),i),e=this._deviceOrientationQ;var t=new n.Quaternion;return t.copy(e),t.multiply(this.deviceOrientationFilterToWorldQ),t.multiply(this.resetQ),t.multiply(this.worldToScreenQ),t.multiplyQuaternions(this.deviceOrientationFixQ,t),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_}var i,r,o,a=this.filter.getOrientation();e=this.posePredictor.getPrediction(a,this.gyroscope,this.previousTimestampS);var s=new n.Quaternion;return s.copy(this.filterToWorldQ),s.multiply(this.resetQ),s.multiply(e),s.multiply(this.worldToScreenQ),this.yawOnly&&(s.x=0,s.z=0,s.normalize()),this.orientationOut_[0]=s.x,this.orientationOut_[1]=s.y,this.orientationOut_[2]=s.z,this.orientationOut_[3]=s.w,this.orientationOut_},e.prototype.getPose=function(){var e=new ta;return e.orientation=this.getOrientation(),e},e.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),Ko()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},e.prototype.getFrameData=function(e){var t=this.getOrientation(),i=this.getEyeOffset(),n=this.getEyeProjectionMatrix();return e.pose.angularAcceleration=null,e.pose.angularVelocity=null,e.pose.linearAcceleration=null,e.pose.linearVelocity=null,e.pose.orientation=t,e.pose.position=null,e.timestamp=this.previousTimestampS,e.leftProjectionMatrix.set(n.left),e.rightProjectionMatrix.set(n.right),Yo(e.leftViewMatrix,t,i.left),Yo(e.rightViewMatrix,t,i.right),e},e.prototype.start=function(){if("undefined"==typeof window)return function(){};var e=this.onDeviceMotion_.bind(this),t=this.onOrientationChange_.bind(this),i=this.onMessage_.bind(this),n=this.onDeviceOrientation_.bind(this);return No()&&function(){if("undefined"==typeof window)return!1;if("undefined"==typeof document)return!1;var e=window.self!==window.top,t=Wo(document.referrer),i=Wo(window.location.href);return e&&t!==i}()&&window.addEventListener("message",i),window.addEventListener("orientationchange",t),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",n):window.addEventListener("devicemotion",e),function(){window.removeEventListener("devicemotion",e),window.removeEventListener("deviceorientation",t),window.removeEventListener("orientationchange",t),window.removeEventListener("message",i)}},e.prototype.getEyeOffset=function(){return{left:[.5*-this.viewer.interLensDistance,0,0],right:[.5*this.viewer.interLensDistance,0,0]}},e.prototype.getEyeProjectionMatrix=function(){var e=this.getEyeFieldOfView(),t=this.depthNear,i=this.depthFar,n={left:[],right:[]},r=e.left.upDegrees*Lo,o=e.left.downDegrees*Lo,a=2/((l=e.left.leftDegrees*Lo)+(u=e.left.rightDegrees*Lo)),s=2/(r+o);n.left[0]=a,n.left[1]=0,n.left[2]=0,n.left[3]=0,n.left[4]=0,n.left[5]=s,n.left[6]=0,n.left[7]=0,n.left[8]=-(l-u)*a*.5,n.left[9]=(r-o)*s*.5,n.left[10]=i/(t-i),n.left[11]=-1,n.left[12]=0,n.left[13]=0,n.left[14]=i*t/(t-i),n.left[15]=0;var l,u;r=e.right.upDegrees*Lo,o=e.right.downDegrees*Lo,a=2/((l=e.right.leftDegrees*Lo)+(u=e.right.rightDegrees*Lo)),s=2/(r+o);return n.right[0]=a,n.right[1]=0,n.right[2]=0,n.right[3]=0,n.right[4]=0,n.right[5]=s,n.right[6]=0,n.right[7]=0,n.right[8]=-(l-u)*a*.5,n.right[9]=(r-o)*s*.5,n.right[10]=i/(t-i),n.right[11]=-1,n.right[12]=0,n.right[13]=0,n.right[14]=i*t/(t-i),n.right[15]=0,n},e.prototype.getEyeFieldOfView=function(){var e=this.viewer,t=this.device,i=new ea(e.distortionCoefficients),n=e.screenLensDistance,r=(t.widthMeters-e.interLensDistance)/2,o=e.interLensDistance/2,a=e.baselineLensDistance-t.bevelMeters,s=t.heightMeters-a,l=Oo*Math.atan(i.distort(r/n)),u=Oo*Math.atan(i.distort(o/n)),c=Oo*Math.atan(i.distort(a/n)),h=Oo*Math.atan(i.distort(s/n)),d=new ia,p=new ia;return d.leftDegrees=Math.min(l,e.fov),d.rightDegrees=Math.min(u,e.fov),d.downDegrees=Math.min(c,e.fov),d.upDegrees=Math.min(h,e.fov),p.leftDegrees=d.rightDegrees,p.rightDegrees=d.leftDegrees,p.upDegrees=d.upDegrees,p.downDegrees=d.downDegrees,{left:d,right:p}},e.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new n.Quaternion;var t=e.alpha,i=e.beta,r=e.gamma;t=(t||0)*Math.PI/180,i=(i||0)*Math.PI/180,r=(r||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new n.Euler(t,i,-r,"YXZ"))},e.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},e.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,i=e.rotationRate,n=e.timeStamp/1e3,r=n-this.previousTimestampS;return r<0?(Go("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=n)):r<=.001||r>1?(Go("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=n)):(t&&(this.accelerometer.set(-t.x,-t.y,-t.z),i&&(_o()?this.gyroscope.set(-i.beta,i.alpha,i.gamma):this.gyroscope.set(i.alpha,i.beta,i.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,n)),this.filter.addAccelMeasurement(this.accelerometer,n)),void(this.previousTimestampS=n))},e.prototype.onOrientationChange_=function(){this.setScreenTransform_()},e.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&("devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent))},e.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),"undefined"!=typeof window?window.orientation:0){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new n.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new n.Vector3(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},e}(),ra=[0,0,.5,1],oa=[.5,0,.5,1],aa=function(){function e(e){var t=this;this.renderer=e,this.sensor=new na(.98,.04,!1,!1),this.scale=1,this.cameraL=new n.PerspectiveCamera,this.cameraR=new n.PerspectiveCamera;var i=this.sensor.start();this.dispose=function(){var e=t.renderer.getSize(new n.Vector2);t.renderer.setScissor(0,0,e.width,e.height),t.renderer.setViewport(0,0,e.width,e.height),t.renderer.setScissorTest(!1),i()}}return e.prototype.render=function(e,t){var i=this.renderer.getSize(new n.Vector2);if(i.width>i.height){var r=e.autoUpdate;r&&(e.updateMatrixWorld(),e.autoUpdate=!1);var o={x:Math.round(i.width*ra[0]),y:Math.round(i.height*ra[1]),width:Math.round(i.width*ra[2]),height:Math.round(i.height*ra[3])},a={x:Math.round(i.width*oa[0]),y:Math.round(i.height*oa[1]),width:Math.round(i.width*oa[2]),height:Math.round(i.height*oa[3])};this.renderer.setScissorTest(!0),this.renderer.autoClear&&this.renderer.clear(),null===t.parent&&t.updateMatrixWorld(),t.matrixWorld.decompose(this.cameraL.position,this.cameraL.quaternion,this.cameraL.scale),t.matrixWorld.decompose(this.cameraR.position,this.cameraR.quaternion,this.cameraR.scale);var s=this.sensor.getEyeOffset();this.cameraL.translateOnAxis((new n.Vector3).fromArray(s.left),this.scale),this.cameraR.translateOnAxis((new n.Vector3).fromArray(s.right),this.scale);var l=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=l.left.slice(),this.cameraR.projectionMatrix.elements=l.right.slice(),this.renderer.setViewport(o.x,o.y,o.width,o.height),this.renderer.setScissor(o.x,o.y,o.width,o.height),this.renderer.render(e,this.cameraL),this.renderer.setViewport(a.x,a.y,a.width,a.height),this.renderer.setScissor(a.x,a.y,a.width,a.height),this.renderer.render(e,this.cameraR),this.renderer.setViewport(0,0,i.width,i.height),this.renderer.setScissor(0,0,i.width,i.height),this.renderer.setScissorTest(!1),r&&(e.autoUpdate=!0)}else this.renderer.render(e,t)},e.prototype.dispose=function(){},e}(),sa={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},la="undefined"!=typeof navigator&&null!==(Xo=sa[navigator.language.split("-")[0]])&&void 0!==Xo?Xo:sa.zh,ua="\n<style>\n.$id {\n all: initial;\n position: absolute;\n overflow: hidden;\n display: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.$id-modal {\n width: 100%;\n height: 332px;\n position: absolute;\n bottom: -2px;\n left: 0;\n right: 0;\n overflow: hidden;\n pointer-events: none;\n will-change: transform;\n animation: $id-modal-fade-in 0.3s ease 1;\n}\n.$id-modal-bg {\n background: rgba(0, 0, 0, 0.75);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n}\n.$id-modal-bg-line {\n height: 1px;\n background-image: linear-gradient(\n 85deg,\n rgba(162, 177, 255, 0.3) 1%,\n rgba(120, 126, 255, 0.8) 30%,\n rgba(147, 218, 255, 0.8) 66%,\n rgba(250, 255, 184, 0.3) 92%\n );\n}\n.$id-modal-bg-wave svg {\n width: 375px;\n height: 61px;\n display: block;\n}\n.$id-modal-content {\n color: #ffffff;\n padding: 0 14px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n overflow: hidden;\n}\n.$id-modal-content-title {\n font-size: 17px;\n font-family: sans-serif;\n line-height: 18px;\n padding: 20px 0;\n font-weight: bold;\n}\n.$id-modal-content-hit {\n font-size: 14px;\n font-family: sans-serif;\n line-height: 24px;\n opacity: 0.85;\n}\n.$id-modal-content-guide {\n position: relative;\n width: 168px;\n height: 139px;\n margin: 36px auto 0;\n}\n.$id-modal-content-guide-cardboard {\n position: absolute;\n width: 100px;\n height: 82px;\n left: 68px;\n top: 57px;\n}\n.$id-modal-content-guide-cardboard-image {\n width: 100px;\n height: 82px;\n background-image: url(".concat("data:image/png;base64,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",");\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-content-guide-phone {\n position: absolute;\n width: 58px;\n height: 56px;\n left: 0;\n top: 0;\n}\n.$id-modal-content-guide-phone-move-x {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-x 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-move-y {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-y 4s cubic-bezier(0.42, 0, 0.23, 0.98) 0.5s infinite;\n}\n.$id-modal-content-guide-phone-blink {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n will-change: opacity;\n animation: $id-guide-blink 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-image {\n width: 58px;\n height: 56px;\n background-image: url(").concat("data:image/png;base64,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",');\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-close {\n position: absolute;\n top: 20px;\n right: 14px;\n width: 14px;\n height: 14px;\n}\n.$id-modal-close svg {\n width: 14px;\n height: 14px;\n display: block;\n}\n\n@keyframes $id-modal-fade-in {\n 0% { transform: translate3d(0, 100%, 0); opacity: 0.5; }\n 100% { transform: translate3d(0, 0, 0); opacity: 1; }\n}\n@keyframes $id-guide-blink {\n 0% { opacity: 0; }\n 7% { opacity: 0; }\n 12% { opacity: 1; }\n 29% { opacity: 1; }\n 34% { opacity: 0.3; }\n 39% { opacity: 1; }\n 44% { opacity: 0.3; }\n 49% { opacity: 1; }\n 80% { opacity: 1; }\n 100% { opacity: 0; }\n}\n@keyframes $id-guide-move-x {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(70px, 0, 0); }\n 100% { transform: translate3d(70px, 0, 0); }\n}\n@keyframes $id-guide-move-y {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(0, 58px, 0); }\n 100% { transform: translate3d(0, 58px, 0); }\n}\n@media screen and (orientation: portrait) {\n .$id {\n display: block;\n }\n}\n</style>\n<div class="$id-modal">\n <div class="$id-modal-bg">\n <div class="$id-modal-bg-line"></div>\n <div class="$id-modal-bg-wave">\n <svg width="375" height="61" viewBox="0 0 375 61" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <linearGradient x1="0" y1="0%" x2="0" y2="100%" id="$id-2y6_dj_hgp">\n <stop stop-color="#8598FF" stop-opacity="0.15" offset="0%"></stop>\n <stop stop-color="#000" stop-opacity="0" offset="100%"></stop>\n </linearGradient>\n </defs>\n <path transform="translate(187.5, 30.5) scale(-1, 1) translate(-187.5, -30.5)" fill="url(#$id-2y6_dj_hgp)" d="\nM0,1\nC83.001,1.706 140.146,4.164 171.435,8.374\nC218.369,14.688 253.467,26.308 273.002,33\nC292.536,39.691323.501,51 343.709,56\nC357.182,59.333 367.612,61 375,61\nL375,0\nL0,0\nL0,1\nZ\n"></path>\n </svg>\n </div>\n </div>\n <div class="$id-modal-content">\n <div class="$id-modal-content-title">').concat(la.TITLE,'</div>\n <div class="$id-modal-content-hit">').concat(la.HIT,'</div>\n <div class="$id-modal-content-guide">\n <div class="$id-modal-content-guide-phone">\n <div class="$id-modal-content-guide-phone-move-x">\n <div class="$id-modal-content-guide-phone-move-y">\n <div class="$id-modal-content-guide-phone-blink">\n <div class="$id-modal-content-guide-phone-image"></div>\n </div>\n </div>\n </div>\n </div>\n <div class="$id-modal-content-guide-cardboard">\n <div class="$id-modal-content-guide-cardboard-image"></div>\n </div>\n </div>\n </div>\n <div class="$id-modal-close">\n <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <radialGradient cx="50%" cy="50%" fx="50%" fy="50%" r="70%" id="$id-ho0itsc4p9">\n <stop stop-color="#FFF" stop-opacity="0.75" offset="0%"></stop>\n <stop stop-color="#FFF" stop-opacity="0.22" offset="100%"></stop>\n </radialGradient>\n </defs>\n <path transform="translate(-3, -3)" fill="url(#$id-ho0itsc4p9)" fill-rule="nonzero" d="\nM16.791,3.198\nC17.044,3.438 17.067,3.814 16.860,4.080\nL16.791,4.156\nL12.144,9.331\nC11.803,9.711 11.803,10.288 12.144,10.668\nL16.791,15.843\nC17.044,16.084 17.067,16.460 16.860,16.725\nL16.791,16.801\nC16.538,17.042 16.142,17.063 15.864,16.867\nL15.784,16.801\nL10.000,11.250\nL4.215,16.801\nL4.135,16.867\nC3.857,17.063 3.461,17.042 3.208,16.801\nL3.208,16.801\nL3.139,16.725\nC2.932,16.460 2.955,16.084 3.208,15.843\nL3.208,15.843\nL7.855,10.668\nC8.196,10.288 8.196,9.711 7.855,9.331\nL7.855,9.331\nL3.208,4.156\nL3.139,4.080\nC2.932,3.814 2.955,3.438 3.208,3.198\nC3.486,2.933 3.937,2.933 4.215,3.198\nL4.215,3.198 L9.999,8.749\nL15.784,3.198\nC16.062,2.933 16.513,2.933 16.791,3.198\nZ\n"></path>\n </svg>\n </div>\n</div>\n');function ca(e){for(var t=1,i=document.getElementsByTagName("meta"),n=0;n<i.length;n++){var r=i[n];if("viewport"===r.getAttribute("name")){var o=(r.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);o&&(t=Number(o[1])),isNaN(t)&&(t=1)}}return ua.replace(/\n/g," ").replace(/\ +/g," ").replace(/\$id/g,e).replace(/(\d+)px/g,(function(e,i){return function(e){return Math.floor(e*t)+"px"}(Number(i))}))}var ha=new n.CircleBufferGeometry(.12,16),da=function(e){function t(){var t=e.call(this)||this;t.progress=0,t.opacity=0,t.loading=!1,t.current=!1,t.disabled=!1,t.currentMotion=new dr({ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}),t.opacityMotion=new dr({opacity:0}),t.loadingMotion=new dr({opacity:0}),t.disableMotion=new dr({opacity:0});var i={blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor,depthWrite:!1,transparent:!0};return t.hitTestMesh=new n.Mesh(ha,new n.MeshBasicMaterial(ie(ie({},i),{color:0,opacity:0}))),t.hitTestMesh.scale.set(1.5,1.5,1.5),t.ringMesh=new n.Mesh(ha,new n.ShaderMaterial(ie(ie({},i),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nvarying vec2 vUv;\nuniform float opacity;\n\nfloat smoothDist = 0.01;\nvoid main() {\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);\n}\n",uniforms:{opacity:{value:0}}}))),t.panoMesh=new n.Mesh(ha,new n.ShaderMaterial(ie(ie({},i),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform float circleScale;\nuniform float circleFade;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float opacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.98 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 2.0, 0.0, 1.0);\n vec3 color = mix(vec3(0.576, 0.635, 1.0), vec3(1.0, 1.0, 1.0), circleFade * 0.5);\n return vec4(color, 1.0 * gradient * circleOpacity * outside(0.3 * circleScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * outside(0.32 * circleScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * loadingOpacity * inside(0.2 * circleScale) * outside(0.25 * circleScale));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n",uniforms:{circleScale:{value:1.1},circleFade:{value:0},circleOpacity:{value:.5},loadingAngle:{value:0},loadingOpacity:{value:0},opacity:{value:0},disable:{value:0}}}))),t.add(t.hitTestMesh),t.add(t.ringMesh),t.add(t.panoMesh),t.renderOrder=1e4,t.needsRender=!0,t}return te(t,e),t.prototype.setProgress=function(e){this.progress=e,this.setLoading(e>0)},t.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gn(e,0,1),this.opacityMotion.set({opacity:e},30).catch(le))},t.prototype.setCurrent=function(e){if(this.current!==e){if(e){var t=[{progress:0,value:{ringScale:2,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.05,value:{ringScale:1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.15,value:{ringScale:1.2,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.25,value:{ringScale:1.1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.8,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1}},{progress:.9,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:.92,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:1,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1.1}}];this.currentMotion.setKeyframes(t,1500).catch(le)}else{t=[{progress:0,value:ie({},this.currentMotion.value)},{progress:1,value:{ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}}];this.currentMotion.setKeyframes(t,200).catch(le)}this.current=e}},t.prototype.setLoading=function(e){this.loading!==e&&(e?this.loadingMotion.setKeyframes([{progress:0,value:{opacity:0}},{progress:.3,value:{opacity:0}},{progress:1,value:{opacity:.8}}],500).catch(le):this.loadingMotion.set({opacity:0},0).catch(le),this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.needsRender=!0)},t.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({opacity:e?1:0},300).catch(le),this.needsRender=!0)},t.prototype.tap=function(){return Promise.resolve()},t.prototype.updateTime=function(e,t){this.opacityMotion.update(e),this.currentMotion.update(e),this.loadingMotion.update(e);var i=this.opacityMotion.value.opacity,n=this.currentMotion.value,r=n.ringScale,o=n.ringOpacity,a=n.circleFade,s=n.circleOpacity,l=n.circleScale;this.ringMesh.scale.set(r,1,r),this.ringMesh.material.uniforms.opacity.value=o*i,this.panoMesh.material.uniforms.opacity.value=i,this.panoMesh.material.uniforms.circleOpacity.value=s,this.panoMesh.material.uniforms.circleScale.value=l,this.panoMesh.material.uniforms.circleFade.value=a,this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingMotion.value.opacity,this.panoMesh.material.uniforms.disable.value=this.disableMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0},t.prototype.dispose=function(){this.hitTestMesh.material.dispose(),this.ringMesh.material.dispose(),this.panoMesh.material.dispose()},t}(n.Object3D),pa=function(e){function t(i){var n=this,r=t.parseArgs(i);(n=e.call(this,r)||this).cardboard=new aa(n.renderer);var o,a,s,l=(o="five_vr_helper_"+Bn(),a=ca(o),(s=document.createElement("div")).className=o,s.innerHTML=a,s);n.helperElement=l;var u=new Kr(l);return n.element.parentNode&&(n.element.parentNode.insertBefore(l,n.element),n.setHelperElementSize(),u.on("tap",(function(){return n.emit("vrWantsToExit")}))),n.destroyHelper=function(){u.destroy(),l.parentNode&&l.parentNode.removeChild(l),delete n.helperElement},n}return te(t,e),t.parseArgs=function(t){var i=ie(ie({},t),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,i)},t.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.cardboard.dispose(),this.destroyHelper();for(var t=0,i=this.panoMeshes;t<i.length;t++){var n=i[t];this.helper.remove(n),n.dispose()}this.panoMeshes.length=0},t.prototype.isReady=function(){return!1},t.prototype.updateRenderSize=function(){this.needsRender=!0,this.setHelperElementSize()},t.prototype.updatePanoMeshesVisible=function(){for(var e=this.work.observers[this.currentPanoIndex],t=(e?e.visibleNodes:[]).concat(this.currentPanoIndex),i=0,n=this.work.observers;i<n.length;i++){var r=n[i],o=this.panoMeshes[r.panoIndex];o&&(t.indexOf(r.panoIndex)>=0?o.parent!==this.helper&&this.helper.add(o):o.parent===this.helper&&(this.helper.remove(o),o.setOpacity(0)))}},t.prototype.updatePanoMeshes=function(){var e=this;this.panoMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoMeshes.length=0,this.panoMeshHitTested={};for(var t=0;t<this.work.observers.length;t++){var i=this.work.observers[t],n=new da;n.name="panoSphere_".concat(this.work.workCode,"_").concat(t),n.position.copy(i.position),n.needsRender=!0,this.panoMeshes[t]=n}this.updatePanoMeshesVisible()},t.prototype.updateTime=function(e,t){var i,r,o,a,s,l;if(!this.destroyed){var u=this.currentPanoIndex;this.needsRender=!0;var c={},h={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var d=this.locationMotion.getKeyFrameSegment(e),p=d[0],f=d[1],A=this.panoResourceFromLocationMotionKeyframe(p),v=this.panoResourceFromLocationMotionKeyframe(f),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),g=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),y=A.position,b=v.position,x=this.locationMotion.value.count-f.value.count+1;c.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gn(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,c.useBlackTransition="instant"===v.effect,v.panoPicture&&(x<1?A.panoPicture&&(c.pano0=A.panoPicture):c.pano0=v.panoPicture,c.pano1=v.panoPicture),"fade"===v.effect&&(c.pano0&&A.panoPicture&&(c.pano0={map:c.pano0.map,luminanceMap:c.pano0.luminanceMap,matrix:A.panoPicture.matrix.clone().setPosition(v.position)}),y.copy(b)),c.progress=x,h.distance=this.locationMotion.value.distance,h.offset=new n.Vector3(y.x+(b.x-y.x)*x,y.y+(b.y-y.y)*x,y.z+(b.z-y.z)*x);for(var w=[],M=[],C=0,E=this.locationMotion.keyframes;C<E.length;C++){var I=E[C],S=I.key,B=I.progress;void 0!==S&&(w.push(S),B>=this.locationMotion.progress&&M.push(S))}for(var T=0,P=Object.keys(this.panoResources);T<P.length;T++){var R=P[T];if(!(M.indexOf(R)>=0)){var k=this.panoResources[R];if(k.panoPicture){var Q=k.panoPicture.map;if(Q){if(Q===(null===(i=c.pano0)||void 0===i?void 0:i.map))continue;if(Q===(null===(r=c.pano1)||void 0===r?void 0:r.map))continue;Q.dispose(),k.panoPicture=null}}w.indexOf(R)>=0||delete this.panoResources[R]}}this.currentPanoIndex=x<.5?A.panoIndex:v.panoIndex,this.emit("movingToPano",g.panoIndex,m.panoIndex,this.locationMotion.progress)}!1===Hr(c)&&((null===(o=c.pano0)||void 0===o?void 0:o.map)&&c.pano0.map instanceof Ct&&!c.pano0.map.cubeRenderTarget&&(c.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=c.pano0)||void 0===a?void 0:a.luminanceMap)&&c.pano0.luminanceMap instanceof Ct&&!c.pano0.luminanceMap.cubeRenderTarget&&(c.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=c.pano1)||void 0===s?void 0:s.map)&&c.pano1.map instanceof Ct&&!c.pano1.map.cubeRenderTarget&&(c.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=c.pano1)||void 0===l?void 0:l.luminanceMap)&&c.pano1.luminanceMap instanceof Ct&&!c.pano1.luminanceMap.cubeRenderTarget&&(c.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.model.setMaterial(c)),h.offset&&this.camera.position.copy(h.offset),this.currentPanoIndex!==u&&this.updatePanoMeshesVisible();var F=this.camera.pose.longitude,D=this.camera.pose.latitude;this.camera.quaternion.fromArray(this.cardboard.sensor.getOrientation()),this.camera.updateMatrixWorld(),this.camera.computePose();for(var L=0,O=this.work.observers[this.currentPanoIndex].visibleNodes.concat(this.currentPanoIndex);L<O.length;L++){var N=O[L],V=this.work.observers[N],U=this.panoMeshes[N];if(V.loadable||V.active){var z=U.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);z<.05?U.setOpacity(0):U.setOpacity(Gn(1.5/z,0,1)),this.currentPanoIndex===N&&U.setOpacity(0),U.lookAt(this.camera.position)}else U.setOpacity(0)}var q=this.intersect(e);for(N=0;N<this.work.observers.length;N++){null==(U=this.panoMeshes[N])||U.setCurrent(U===q)}for(N=0;N<this.work.observers.length;N++){(U=this.panoMeshes[N])&&U.updateTime&&U.updateTime(e,t)}F===this.camera.pose.longitude&&D===this.camera.pose.latitude||(this.cameraMotion.set(ui(this.camera.pose,["longitude","latitude"]),0).catch(le),this.emit("cameraDirectionUpdate",ui(this.camera.pose,["longitude","latitude"]),!0),this.emit("cameraUpdate",_r(ui(this.camera.pose,["longitude","latitude","fov","offset","distance"])),!0))}},t.prototype.render=function(){this.cardboard.render(this.scene,this.camera)},t.prototype.setCamera=function(e){},t.prototype.destroyHelper=function(){},t.prototype.setHelperElementSize=function(){if(this.helperElement){var e=new n.Vector2(this.element.offsetWidth,this.element.offsetHeight),t=e.x*this.scissor.left,i=e.y*(1-this.scissor.bottom-this.scissor.height),r=e.x*this.scissor.width,o=e.y*this.scissor.height;this.helperElement.style.marginLeft=t+"px",this.helperElement.style.marginTop=i+"px",this.helperElement.style.width=r+"px",this.helperElement.style.height=o+"px"}},t.prototype.intersect=function(e){var t;if(!1===this.locationMotion.ended)return this.intersectMesh.visible=!1,delete this.activePanoMesh,void delete this.activeTime;if(this.activePanoMesh&&this.activeTime&&e-this.activeTime>1500){var i=this.activePanoMesh;return(u=this.panoMeshes.indexOf(i))>=0&&this.moveToPano(u,{},!0),delete this.activePanoMesh,delete this.activeTime,i}for(var r=this.camera.getDirection(new n.Vector3),o=new n.Raycaster(this.camera.position,r),a=void 0,s=[],l=this.work.observers[this.currentPanoIndex].visibleNodes,u=0;u<this.work.observers.length;u++){var c=this.panoMeshes[u];if(-1!==l.indexOf(u)){var h=o.intersectObject(null!==(t=c.hitTestMesh)&&void 0!==t?t:c,!0)[0];h&&s.push({panoMesh:c,intersection:h})}}var d=s.sort((function(e,t){return e.intersection.distance-t.intersection.distance}))[0];if(d?(a=d.intersection,this.activePanoMesh!==d.panoMesh&&(this.activePanoMesh=d.panoMesh,this.activeTime=e),this.intersectMesh.position.copy(d.panoMesh.position),this.intersectMesh.lookAt(this.camera.position),this.intersectMesh.visible=!1):(this.activePanoMesh=void 0,this.activeTime=void 0),!a)if((a=this.model.intersectRaycaster(o)[0])&&a.face){var p=a.face.normal,f=new n.Quaternion;f.setFromUnitVectors(new n.Vector3(0,0,1),p),this.intersectMesh.quaternion.copy(f);var A=p.clone().multiplyScalar(.05),v=a.point.clone().add(A);this.intersectMesh.position.copy(v),this.intersectMesh.visible=!0,this.emit("intersectionOnModelUpdate",a,this.intersectMesh)}else this.intersectMesh.visible=!1,this.emit("intersectionHidden");return null==d?void 0:d.panoMesh},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t}(Do),fa=function(e){function t(i){var n,r,o=this,a=t.parseArgs(i);return(o=e.call(this,a)||this).currentPanoIndex=a.initial[0],o.locationMotion=new dr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(n=o.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o}return te(t,e),t.parseArgs=function(t){return e.parseArgs.call(this,t)},t.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose()},t.prototype.isReady=function(){return!1!==this.locationMotion.ended},t.prototype.updateWork=function(e,t,i,n,r){this.work=e,this.currentPanoIndex=t,this.hideIntersectMesh();var o={duration:0,longitude:i.longitude,latitude:i.latitude,fov:i.fov};return this.moveToPano(t,o,r),!0},t.prototype.updateTime=function(e,t){if(!this.destroyed){var i={},r={};if(!this.locationMotion.ended){this.locationMotion.update(e),i.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gn(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,r.distance=this.locationMotion.value.distance,r.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var o=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),a=qr(this.work.observers,(function(e){return e.position.distanceTo(o)}));this.currentPanoIndex=this.work.observers.indexOf(a)}this.cameraMotion.ended||(this.cameraMotion.update(e),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),Hr(i)||this.model.setMaterial(i),Hr(r)||this.setCamera(r)}},t.prototype.initAnimation=function(e,t,i,n){var r,o,a,s=this;this.destroyed||(this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:Gn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:Gn(null!==(a=t.fov)&&void 0!==a?a:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){s.emit("initAnimationWillStart",e,t,s.userAction)},moveEndCallback:function(e,t){s.emit("initAnimationEnded",e,t,s.userAction)},moveCancelCallback:function(){var e=s.currentPanoIndex,t={longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:s.camera.pose.distance};s.emit("initAnimationEnded",e,t,s.userAction)}},n))},t.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new n.Vector3(t.value.x,t.value.y,t.value.z),distance:t.value.distance}},t.prototype.moveToPano=function(e,t,i){void 0===t&&(t={});var n=this.work.observers[e];n&&this.moveToPosition(n.position,t,i)},t.prototype.moveToPosition=function(e,t,i){var r,o,a,s=this;void 0===t&&(t={}),this.userAction=i;for(var l=ce(),u=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z).distanceTo(e),c=this.locationMotion.getProgressVelocity(l),h=0,d=1;d<this.locationMotion.keyframes.length;d++){var p=this.locationMotion.keyframes[d-1].value,f=p.x,A=p.y,v=p.z,m=this.locationMotion.keyframes[d].value,g=m.x,y=m.y,b=m.z;h+=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-A,2)+Math.pow(b-v,2))}var x=0===u?0:c*h/u,w=this.calculateMovingDuration(t.duration,u),M={x:e.x,y:e.y,z:e.z,distance:0,modelAlpha:1,perspToOrtho:0,orthoDistance:1},C={longitude:t.longitude,latitude:t.latitude,fov:t.fov},E={longitude:null!==(r=C.longitude)&&void 0!==r?r:this.camera.pose.longitude,latitude:null!==(o=C.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=C.fov)&&void 0!==a?a:this.camera.pose.fov,offset:e.clone(),distance:0},I=qr(this.work.observers,(function(t){return t.position.distanceTo(e)})),S=this.work.observers.indexOf(I);this.emit("moveToPano",S,this.userAction),t.moveStartCallback&&t.moveStartCallback(S,E),this.emit("panoWillArrive",S,E,this.userAction),this.cameraMotion.set(C,w).catch(le),this.locationMotion.set(M,w,x).then((function(){var e=_r(s.camera.pose);t.moveEndCallback&&t.moveEndCallback(S,e),s.emit("panoArrived",S,e,s.userAction)}),(function(){t.moveCancelCallback&&t.moveCancelCallback(),s.emit("moveToPanoCanceled",S)}))},t.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","tap",t,!0)){var i=this.relativeClientPosition(e.center),r=new n.Raycaster;if(r.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",r,i,!0)){this.emit("gesture","tap",t,!0),this.emit("tapGesture",r,i,!0),this.interiaMovement=!1;var o=this.model.intersectRaycaster(r)[0];if(o&&o.face){var a=o.face.normal,s=o.point;if(new n.Vector3(0,1,0).angleTo(a)>Math.PI/3){var l=this.camera.position.clone().setY(s.y),u=s.clone().sub(l).setLength(.3),c=s.clone().sub(u);r.set(c,new n.Vector3(0,-1,0)),o=this.model.intersectRaycaster(r)[0]}}if(o){var h=o.point.clone(),d=qr(this.work.observers.filter((function(e){return Math.abs(e.standingPosition.y-h.y)<1})),(function(e){return e.standingPosition.distanceTo(h)}));if(d)return h.y=d.position.y,void this.moveToPosition(h,{},!0)}this.cameraBounce()}}},t}(co),Aa=function(){var e=113,t=126,i=0,n="";return arguments[i].split(n).map((function(n){return n.charCodeAt(i)>t?n:String.fromCharCode((n.charCodeAt(i)+e)%t)})).join(n)}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-aNb-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),va=function(){var e=113,t=126,i=0,n="";return arguments[i].split(n).map((function(n){return n.charCodeAt(i)>t?n:String.fromCharCode((n.charCodeAt(i)+e)%t)})).join(n)}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f"),ma=Object.assign({opacity:new n.Uniform(1),scale:new n.Uniform(13.1),panoMap:new n.Uniform(null),panoDisplacementMap:new n.Uniform(null),panoPosition:new n.Uniform(new n.Vector3),panoMatrix:new n.Uniform(new n.Matrix4)},{emissive:new n.Uniform(new n.Color(0)),emissiveMap:new n.Uniform(null),specular:new n.Uniform(new n.Color(1118481)),specularMap:new n.Uniform(null),normalMap:new n.Uniform(null),bumpMap:new n.Uniform(null),shininess:new n.Uniform(30)},n.UniformsLib.common,n.UniformsLib.lights),ga=new n.SphereBufferGeometry(.01,128,128);var ya=function(){function e(e){void 0===e&&(e={}),this.textureLoader=new Et({allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe}),this.allowHosts=e.allowHosts,this.requestProxy=e.requestProxy,this.networkSubscribe=e.networkSubscribe}return e.prototype.setAllowHosts=function(e){this.allowHosts=e,this.textureLoader.setAllowHosts(e)},e.prototype.setRequestProxy=function(e){this.requestProxy=e,this.textureLoader.setRequestProxy(e)},e.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e,this.textureLoader.setNetworkSubscribe(e)},e.prototype.load=function(e,t,i,r,o,a,s,l,u){var c=[0,0],h=function(e,t){c[t]=e,l(.8*c[0]+.2*c[1])},d=[this.textureLoader.loadTexture(e,{imageURL:i,viaAjax:!0},void 0,void 0,(function(e){return h(e,1)}),u),this.textureLoader.loadCubeTexture(t,{imageURL:i,viaAjax:!0},void 0,void 0,(function(e){return h(e,0)}),u)];return Promise.all(d).then((function(e){var t=e[0],i=e[1],s=function(e,t,i,r){var o=new n.ShaderMaterial({side:n.BackSide,vertexShader:Aa,fragmentShader:va,transparent:!0,uniforms:n.UniformsUtils.clone(ma)}),a=t;return a.needsUpdate=!0,a.minFilter=n.LinearFilter,a.magFilter=n.LinearFilter,e.needsUpdate=!0,e.minFilter=n.LinearFilter,e.magFilter=n.LinearFilter,o.uniforms.opacity.value=0,o.uniforms.panoMap.value=a,o.uniforms.panoDisplacementMap.value=e,o.uniforms.panoPosition.value=i,o.uniforms.panoMatrix.value=r,Object.assign(new n.Mesh(ga,o),{frustumCulled:!1,dispose:function(){this.material instanceof n.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(t.body,i.body,r,o),l={body:s,meta:ne([t.meta],i.meta,!0)};return a(l),l})).catch((function(e){for(var t=0,i=d;t<i.length;t++){i[t].then((function(e){return e.body.dispose()})).catch(le)}return s(e),Promise.reject(e)}))},e}(),ba=new n.Vector3(-1,1,1),xa=function(e){function t(i){var r,o,a,s,l,u=this,c=t.parseArgs(i);return(u=e.call(this,c)||this).currentPanoIndex=c.initial[0],u.forwardPanoIndex=null,u.maxAccessibleDistance=c.maxAccessibleDistance,u.panoTapTriggerRadius=c.panoTapTriggerRadius,u.panoCircleMeshCreator=c.panoCircleMeshCreator,u.panoModelGroup=new n.Group,u.panoModelGroup.name="panoModels",u.scene.add(u.panoModelGroup),u.panoMeshes=[],u.updatePanoMeshes(),u.helper.remove(u.intersectMesh),u.locationMotion=new dr({count:0,distance:u.camera.pose.distance,modelAlpha:null!==(o=null===(r=u.model.getMaterial())||void 0===r?void 0:r.modelAlpha)&&void 0!==o?o:0,perspToOrtho:u.camera.perspToOrtho.x,orthoDistance:u.camera.orthoDistance}),u.panoResources={},u.panoResources[u.locationMotion.keyframes[0].key=u.locationMotion.keyframes[1].key=Bn()]={panoIndex:u.currentPanoIndex,workCode:u.work.workCode,matrix:null!==(l=null===(s=null===(a=u.model.getMaterial())||void 0===a?void 0:a.pano1)||void 0===s?void 0:s.matrix)&&void 0!==l?l:new n.Matrix4,position:u.camera.pose.offset.clone(),effect:"fly"},u.depthTextureLoader=new ya({allowHosts:u.work.allowHosts,requestProxy:u.requestProxy,networkSubscribe:u.networkSubscribe}),u}return te(t,e),t.parseArgs=function(t){var i,n,r,o=e.parseArgs.call(this,t);return ie(ie({},o),{maxAccessibleDistance:null!==(i=t.maxAccessibleDistance)&&void 0!==i?i:5,panoTapTriggerRadius:null!==(n=t.panoTapTriggerRadius)&&void 0!==n?n:1,panoCircleMeshCreator:null!==(r=t.panoCircleMeshCreator)&&void 0!==r?r:function(e){return new Ar}})},t.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},t.prototype.destroy=function(){var t,i=this;if(e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.pendingTextureTask,this.model&&(this.model.visible=!0),this.panoModelGroup){for(var n=0,r=this.panoModelGroup.children;n<r.length;n++){var o=r[n];"function"==typeof o.dispose&&o.dispose()}this.scene.remove(this.panoModelGroup)}this.panoMeshes&&(this.panoMeshes.forEach((function(e){i.helper.remove(e),e.dispose()})),this.panoMeshes.length=0);for(var a=null!==(t=this.model.getMaterial())&&void 0!==t?t:{},s=a.pano0,l=a.pano1,u=0,c=Object.keys(this.panoResources);u<c.length;u++){var h=c[u],d=this.panoResources[h];d.panoModel&&d.panoModel.material.uniforms.panoMap.value!==(null==s?void 0:s.map)&&d.panoModel.material.uniforms.panoMap.value!==(null==l?void 0:l.map)&&(this.panoModelGroup.remove(d.panoModel),d.panoModel.material.uniforms.panoMap.value.dispose(),d.panoModel.dispose(),delete d.panoModel),delete this.panoResources[h]}this.interiaMovement=!1},t.prototype.isReady=function(){return!1===this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,t,i,n,r){return this.userAction=r,this.work=e,this.currentPanoIndex=t,this.depthTextureLoader.setAllowHosts(this.work.allowHosts),this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(t,{effect:"fade",duration:n,longitude:i.longitude,latitude:i.latitude,fov:i.fov},r),!0},t.prototype.updateTime=function(e,t){var i,r,o=this;if(!this.destroyed){var a=this.currentPanoIndex,s={},l={},u=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),c=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),h=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(e);var d=this.locationMotion.getKeyFrameSegment(e),p=d[0],f=d[1],A=this.panoResourceFromLocationMotionKeyframe(p),v=this.panoResourceFromLocationMotionKeyframe(f),m=(new n.Vector3).copy(A.position),g=(new n.Vector3).copy(v.position),y=this.locationMotion.value.count-f.value.count+1;s.progress=y,s.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gn(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance;for(var b=0,x=this.panoModelGroup.children;b<x.length;b++){var w=x[b];w.visible=w===A.panoModel||w===v.panoModel}A.panoModel&&(A.panoModel.material.uniforms.opacity.value=1-y,A.panoModel.material.depthTest=0!==y),v.panoModel&&(v.panoModel.material.uniforms.opacity.value=y,v.panoModel.material.depthTest=1!==y),v.panoModel&&(y<1?A.panoModel&&(s.pano0={map:A.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:A.matrix}):s.pano0={map:v.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:v.matrix},s.pano1={map:v.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:v.matrix}),h=s.useBlackTransition="instant"===v.effect||"montage"===v.effect,"fade"!==v.effect&&"montage"!==v.effect||(s.pano0&&(s.pano0={map:s.pano0.map,luminanceMap:null,matrix:A.matrix.clone().setPosition(v.position)}),m.copy(g)),l.distance=this.locationMotion.value.distance,l.offset=new n.Vector3(m.x+(g.x-m.x)*y,m.y+(g.y-m.y)*y,m.z+(g.z-m.z)*y);for(var M=[],C=[],E=0,I=this.locationMotion.keyframes;E<I.length;E++){var S=I[E],B=S.key,T=S.progress;void 0!==B&&(M.push(B),T>=this.locationMotion.progress&&C.push(B))}for(var P=0,R=Object.keys(this.panoResources);P<R.length;P++){var k=R[P];if(!(C.indexOf(k)>=0)){var Q=this.panoResources[k];if(Q.panoModel){if(Q.panoModel.material.uniforms.panoMap.value===(null===(i=s.pano0)||void 0===i?void 0:i.map))continue;if(Q.panoModel.material.uniforms.panoMap.value===(null===(r=s.pano1)||void 0===r?void 0:r.map))continue;this.panoModelGroup.remove(Q.panoModel),Q.panoModel.material.uniforms.panoMap.value.dispose(),Q.panoModel.dispose(),delete Q.panoModel}M.indexOf(k)>=0||delete this.panoResources[k]}}A.workCode===v.workCode?this.currentPanoIndex=y<.5?A.panoIndex:v.panoIndex:this.currentPanoIndex=v.panoIndex,this.emit("movingToPano",c.panoIndex,u.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),l.longitude=this.cameraMotion.value.longitude,l.latitude=this.cameraMotion.value.latitude,l.fov=this.cameraMotion.value.fov),!1===Hr(s)&&this.model.setMaterial(s);var F=!1;if(!1===Hr(l)&&(this.setCamera(l),F=!0),this.currentPanoIndex!==a&&(this.updatePanoMeshesVisible(),F=!0),F)if(W=this.work.observers[this.currentPanoIndex]){var D=Qt(this.camera.pose).normalize(),L=new n.Raycaster(W.position,D);this.forwardPanoIndex=this.getForwardPanoIndexOrNot(L)}if(this.camera.pose.distance>.1||h){var O=this.work.observers[this.currentPanoIndex];if(O)for(var N=0,V=H=O.visibleNodes.concat(this.currentPanoIndex);N<V.length;N++){var U=V[N];(G=this.panoMeshes[U])&&G.setOpacity(0)}}else{var z=this.work.observers[this.currentPanoIndex];if(z){var q=qr(z.visibleNodes,(function(e){return z.standingPosition.distanceTo(o.work.observers[e].standingPosition)}),!0)[1];q=Gn(q,2.5,1/0);for(var H=z.visibleNodes.concat(this.currentPanoIndex),_=this.camera.getDirection(new n.Vector3),K=0,j=H;K<j.length;K++){U=j[K];var G,W=this.work.observers[U];if(G=this.panoMeshes[U])if(W.loadable||W.active){var X=G.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);G.setCurrent(!G.loading&&0===G.progress&&this.forwardPanoIndex===U),G.setOpacity(X<.01?0:Gn(q/X*1.2,.65,.98));var Y=this.camera.position.clone().setY(G.position.y);D=(new n.Vector3).copy(G.position).sub(Y).normalize();if(U===this.currentPanoIndex){var Z=Gn((.5-Y.distanceTo(G.position))/.5,0,1);D.multiplyScalar(1-Z).add(_.clone().multiplyScalar(Z))}D.length()>0&&G.quaternion.setFromEuler(new n.Euler(0,Math.atan2(D.x,D.z),0)),G.updateTime&&G.updateTime(e,t)}else G.setOpacity(0)}}}}},t.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1],i=this.panoResourceFromLocationMotionKeyframe(t),n=this.work.observers[i.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone(),distance:0}},t.prototype.moveToPano=function(e,t,i){var r,o=this;void 0===t&&(t={});var a=this.work.observers[e].images.depth,s=ie({key:"pano.".concat(e)},ui(this.imageOptions,["format","size","quality","sharpen","mappings"])),l=this.imageOptions.transform,u=this.work.observers[e].images,c=this.work.observers[e],h=c.position,d=c.quaternion,p=(new n.Matrix4).compose(h,d,new n.Vector3(-1,1,1)),f="pano:"+hi(u);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===f)return;var A=this.pendingTextureTask.panoIndex;null===(r=this.panoMeshes[A])||void 0===r||r.setProgress(0),this.emit("textureAbort",A,this.work.observers[A]),this.pendingTextureTask.onError(new Error("texture aborted"))}this.pending=!0,this.pendingTextureTask={panoIndex:e,hash:f,onLoad:function(n){o.pending=!1,o.destroyed?n.body.dispose():(n.body.name=f,o.emit("panoLoaded",e),o.doMoveToPano(e,n.body,t,i))},onError:function(i){o.pending=!1,t.moveCancelCallback&&t.moveCancelCallback(),o.emit("panoLoadError",i,e),o.emit("moveToPanoCanceled",e)}};var v=this.panoMeshes[e];v&&v.tap&&v.tap(),this.depthTextureLoader.load(a,u,{transform:l,options:s},h,p,(function(t){var i,n;(null===(i=o.pendingTextureTask)||void 0===i?void 0:i.hash)===f?(o.pendingTextureTask.onLoad(t),null===(n=o.panoMeshes[e])||void 0===n||n.setProgress(0),delete o.pendingTextureTask,o.emit("textureLoaded",e,o.work.observers[e],t.meta)):t.body.dispose()}),(function(t){var i,n;(null===(i=o.pendingTextureTask)||void 0===i?void 0:i.hash)===f&&(o.pendingTextureTask.onError(t),null===(n=o.panoMeshes[e])||void 0===n||n.setProgress(0),delete o.pendingTextureTask,o.emit("textureError",t,e,o.work.observers[e]),o.emit("error",t))}),(function(t){var i,n;o.emit("textureLoading",t,e,o.work.observers[e]),(null===(i=o.pendingTextureTask)||void 0===i?void 0:i.hash)===f&&(null===(n=o.panoMeshes[e])||void 0===n||n.setProgress(t))}),this.renderer),this.emit("textureStartLoad",e,this.work.observers[e])},t.prototype.initAnimation=function(e,t,i,n){var r,o,a,s=this;if(!this.destroyed){var l=!1;this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:Gn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:Gn(null!==(a=t.fov)&&void 0!==a?a:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){l=!0,s.emit("initAnimationWillStart",e,t,s.userAction)},moveEndCallback:function(e,t){s.emit("initAnimationEnded",e,t,s.userAction)},moveCancelCallback:function(){var e=_r(s.camera.pose);!1===l&&s.emit("initAnimationWillStart",s.currentPanoIndex,e,s.userAction),s.emit("initAnimationEnded",s.currentPanoIndex,e,s.userAction)}},n)}},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var t=0,i=1;i<e.length;i++){var n=this.panoResourceFromLocationMotionKeyframe(e[i-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[i]).position;t+=n.distanceTo(r)*(e[i].value.count-e[i-1].value.count)}return t},t.prototype.updatePanoMeshesVisible=function(){for(var e=this.work.observers[this.currentPanoIndex],t=(e?e.visibleNodes:[]).concat(this.currentPanoIndex),i=0,n=this.work.observers;i<n.length;i++){var r=n[i],o=this.panoMeshes[r.panoIndex];o&&(t.indexOf(r.panoIndex)>=0?o.parent!==this.helper&&this.helper.add(o):o.parent===this.helper&&this.helper.remove(o))}},t.prototype.updatePanoMeshes=function(){for(var e=this,t={},i=0,n=this.panoMeshes;i<n.length;i++){t[(p=n[i]).name]=p}this.panoMeshes.length=0;for(var r=1,o={},a=function(t){var i=qr(t.accessibleNodes,(function(i){return Gn(e.work.observers[i].standingPosition.distanceTo(t.standingPosition),1,1/0)}),!0),n=i[1];void 0===o[t.panoIndex]&&(o[t.panoIndex]=n)},s=0,l=this.work.observers;s<l.length;s++){a(d=l[s])}var u=Object.keys(o).map((function(e){return o[e]}));u.length&&(r=Gn(.6*(u.reduce((function(e,t){return e+t}),0)/u.length),1,3));for(var c=0;c<this.work.observers.length;c++){var h="panoCircle_".concat(this.work.workCode,"_").concat(c),d=this.work.observers[c],p=void 0;t[h]?(!0===(p=t[h]).loading&&!1===d.loadable&&p.setLoading(!1),delete t[h]):(p=this.panoCircleMeshCreator(c)).name=h,p.scale.set(r,1,r),p.position.copy(d.standingPosition),this.panoMeshes[c]=p}for(var f=0,A=Object.keys(t);f<A.length;f++){var v=A[f];this.helper.remove(t[v]),t[v].dispose(),delete t[v]}this.updatePanoMeshesVisible()},t.prototype.doMoveToPano=function(e,t,i,r){var o,a,s,l,u=this;void 0===i&&(i={}),this.userAction=r;var c=ce(),h=Bn(),d=this.work.observers[e],p=this.panoResources[h]={panoIndex:e,workCode:this.work.workCode,effect:null!==(o=i.effect)&&void 0!==o?o:"fly",panoModel:t,matrix:(new n.Matrix4).compose(d.position,d.quaternion,ba),position:d.position.clone()};t.visible=!1,t.renderOrder=-1,this.panoModelGroup.add(t);var f,A,v;if(this.locationMotion.ended){var m=this.locationMotion.getKeyFrameSegment(c);m[0];var g=m[1],y=this.locationMotion.value,b=this.panoResourceFromLocationMotionKeyframe(g).position,x=p.position;f=Math.max(b.distanceTo(x),1),A=[{key:g.key,progress:0,value:ie(ie({},y),{count:0})},{key:h,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,orthoDistance:1,count:1}}],v=0}else{var w=this.locationMotion.getKeyFrameSegment(c),M=w[0],C=(g=w[1],y=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(M).position),E=(b=this.panoResourceFromLocationMotionKeyframe(g).position,x=p.position,g.value.count-y.count),I=Math.max(C.distanceTo(b),1)*E;f=I+Math.max(b.distanceTo(x),1),A=[{key:M.key,progress:0,value:ie({},y)},{key:g.key,progress:I/f,value:g.value},{key:h,progress:1,value:{count:g.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var S=this.locationMotionKeyframesLength(this.locationMotion.keyframes),B=this.locationMotionKeyframesLength(A);v=0===S||0===S?0:this.locationMotion.getProgressVelocity(c)*S/B}var T=this.calculateMovingDuration(i.duration,"fade"===i.effect||"montage"===i.effect?0:f),P={longitude:i.longitude,latitude:i.latitude,fov:i.fov},R={longitude:null!==(a=P.longitude)&&void 0!==a?a:this.camera.pose.longitude,latitude:null!==(s=P.latitude)&&void 0!==s?s:this.camera.pose.latitude,fov:null!==(l=P.fov)&&void 0!==l?l:this.camera.pose.fov,offset:d.position.clone(),distance:this.camera.pose.distance};this.emit("moveToPano",e,this.userAction),i.moveStartCallback&&i.moveStartCallback(e,R),this.emit("panoWillArrive",e,R,this.userAction),this.cameraMotion.set(P,T).catch(le),this.locationMotion.setKeyframes(A,T,v).then((function(){var t={longitude:u.camera.pose.longitude,latitude:u.camera.pose.latitude,fov:u.camera.pose.fov,offset:u.camera.pose.offset.clone(),distance:u.camera.pose.distance};i.moveEndCallback&&i.moveEndCallback(e,t),u.emit("panoArrived",e,t,r)}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),u.emit("moveToPanoCanceled",e)}))},t.prototype.getForwardPanoIndexOrNot=function(e){var t=this,i=this.camera.getDirection(new n.Vector3),r=this.camera.position.clone(),o=this.work.observers[this.currentPanoIndex];if(!o)return null;var a=o.accessibleNodes.filter((function(e){if(e===t.currentPanoIndex)return!1;var i=t.work.observers[e],o=i.standingPosition.clone().sub(r);return 0!==o.length()&&(!(o.angleTo(new n.Vector3(0,-1,0))<Math.PI/12)&&(i.loadable||i.active))})),s=(e?e.ray.direction.clone():i.clone()).setY(0);if(0===s.length())return null;for(var l=a.slice().sort((function(e,i){var n=t.work.observers[e].position.clone().setY(r.y),o=t.work.observers[i].position.clone().setY(r.y);return n.distanceTo(r)-o.distanceTo(r)})),u=0,c=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];u<c.length;u++)for(var h=c[u],d=0,p=l;d<p.length;d++){var f=p[d],A=this.work.observers[f].position.clone().setY(r.y).sub(r);if(0!==A.length()&&s.angleTo(A)<h)return f}return null},t.prototype.onTapGesture=function(e){var t=this,i=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(e.center),o=new n.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.camera.getDirection(new n.Vector3).setY(0),s=null,l=this.work.observers[this.currentPanoIndex];if(l){var u=l.accessibleNodes.filter((function(e){if(e===t.currentPanoIndex)return!1;var i=t.work.observers[e];return!(i.position.distanceTo(t.camera.position)>t.maxAccessibleDistance)&&(i.loadable||i.active)})),c=o.intersectObject(this.boundingMesh,!0)[0];if(c){var h=qr(u,(function(e){var i=t.work.observers[e].standingPosition.clone();return i.clone().sub(t.camera.position).setY(0).angleTo(a)>Math.PI/2?1/0:i.distanceTo(c.point)}),!0),d=h[0];h[1]<this.panoTapTriggerRadius&&(s=d)}qn(s)&&(s=this.getForwardPanoIndexOrNot(o));for(var p=0,f=this.locationMotion.keyframes;p<f.length;p++){var A=f[p],v=this.panoResourceFromLocationMotionKeyframe(A);if(!(A.progress<this.locationMotion.progress)&&v.panoIndex===s){s=null;break}}if(this.emit("panoSelected",s),qn(s))!0===this.locationMotion.ended&&this.cameraBounce();else{var m=this.work.observers[s];if(m.active){for(var g={},y=Math.PI/6,b=Math.PI/12,x=new n.Vector3(0,1,0),w=m.position.clone().setY(0).sub(l.position.clone().setY(0)).normalize(),M=w.clone().applyAxisAngle(x,y),C=w.clone().applyAxisAngle(x,-y),E=[],I=[],S=[],B=0,T=m.accessibleNodes;B<T.length;B++){if((d=T[B])!==this.currentPanoIndex&&d!==s){var P=this.work.observers[d].position.clone().sub(m.position).setY(0);w.angleTo(P)<y?S.push(P):M.angleTo(P)<y?E.push(P):C.angleTo(P)<y&&I.push(P)}}var R=(S.length>0?S:ne(ne([],E,!0),I,!0)).slice().sort((function(e,t){return e.angleTo(w)-t.angleTo(w)}))[0];R&&R.angleTo(a)>b&&(g.longitude=Math.atan2(-R.x,-R.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(g.latitude=Gn(0,this.minLatitude,this.maxLatitude)),this.emit("wantsMoveToPano",s,g,!0)}else this.panoMeshes[s]&&(this.panoMeshes[s].setDisabled(!1),this.panoMeshes[s].setLoading(!0))}}}}},t}(co);function wa(e,t){var i=new n.Vector3;return i.setFromMatrixColumn(t,0),i.multiplyScalar(-e),i}function Ma(e,t,i){var r=new n.Vector3;return r.setFromMatrixColumn(i,0),r.crossVectors(t,r),r.multiplyScalar(e),r}var Ca=function(e){function t(i){var n,r,o=this,a=t.parseArgs(i);return(o=e.call(this,a)||this).currentPanoIndex=a.initial[0],o.defaultLongitude=a.defaultLongitude,o.defaultLatitude=a.defaultLatitude,o.defaultDistance=a.defaultDistance,o.maxLatitude=a.maxLatitude,o.minLatitude=a.minLatitude,o.maxDistance=a.maxDistance,o.minDistance=a.minDistance,o.locationMotion=new dr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(n=o.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o}return te(t,e),t.parseArgs=function(t){var i,n,r,o,a,s,l,u=e.parseArgs.call(this,t);return ie(ie({},u),{defaultLongitude:null!==(i=t.defaultLongitude)&&void 0!==i?i:Math.PI/4,defaultLatitude:null!==(n=t.defaultLatitude)&&void 0!==n?n:Math.PI/4,defaultDistance:null!==(r=t.defaultDistance)&&void 0!==r?r:100,maxLatitude:null!==(o=t.maxLatitude)&&void 0!==o?o:+Math.PI/2,minLatitude:null!==(a=t.minLatitude)&&void 0!==a?a:0,maxDistance:null!==(s=t.maxDistance)&&void 0!==s?s:100,minDistance:null!==(l=t.minDistance)&&void 0!==l?l:2})},t.distanceFromModel=function(e,t,i){var n=e.bounding,r=Math.pow(Math.pow(n.max.x-n.min.x+1,2)+Math.pow(n.max.y-n.min.y+1,2)+Math.pow(n.max.z-n.min.z+1,2),.5),o=r/2/Math.tan(Math.PI*t/360);return i<1&&(o/=i),isNaN(o)?r:o},t.initAnimationEndPose=function(e){var i,n,r,o,a=this.parseArgs(e),s=e.initial[0],l=e.initial[1];return{longitude:null!==(i=l.longitude)&&void 0!==i?i:a.defaultLongitude,latitude:null!==(n=l.latitude)&&void 0!==n?n:a.defaultLatitude,fov:90,offset:null!==(r=l.offset)&&void 0!==r?r:a.work.observers[s].position.clone(),distance:null!==(o=l.distance)&&void 0!==o?o:t.distanceFromModel(a.model,90,a.camera.aspect)}},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.model.enableTiles=!1,this.locationMotion.dispose(),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.panState},t.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,t,i,n,r){return this.work=e,this.updateCamera(i,n,r),!0},t.prototype.updateModel=function(t){e.prototype.updateModel.call(this,t);var i=t.bounding.getCenter(new n.Vector3);this.locationMotion.set({x:i.x,y:i.y,z:i.z},0).catch(le),this.model.enableTiles=!0},t.prototype.updateTime=function(e,t){if(!this.destroyed){var i={},r={};this.locationMotion.ended||(this.locationMotion.update(e),i.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gn(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,r.distance=this.locationMotion.value.distance,r.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),Hr(i)||this.model.setMaterial(i),Hr(r)||this.setCamera(r)}},t.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,distance:t.value.distance,offset:new n.Vector3(t.value.x,t.value.y,t.value.z)}},t.prototype.initAnimation=function(e,i,r,o){var a,s,l,u,c=this;if(!this.destroyed){this.pending=!1,this.userAction=o;var h={longitude:null!==(a=i.longitude)&&void 0!==a?a:this.defaultLongitude,latitude:Gn(null!==(s=i.latitude)&&void 0!==s?s:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:90,offset:null!==(l=i.offset)&&void 0!==l?l:this.model.bounding.getCenter(new n.Vector3),distance:null!==(u=i.distance)&&void 0!==u?u:t.distanceFromModel(this.model,90,this.camera.aspect)},d=ui(h,["longitude","latitude","fov"]),p={x:h.offset.x,y:h.offset.y,z:h.offset.z,distance:h.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:h.distance};this.emit("initAnimationWillStart",e,h,this.userAction),this.cameraMotion.set(d,r).catch(le),this.locationMotion.set(p,r).then((function(){c.emit("initAnimationEnded",e,h,c.userAction)}),(function(t){var i=_r(c.camera.pose);c.emit("initAnimationEnded",e,i,c.userAction)})).then((function(){c.model.enableTiles=!0}))}},t.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),i=this.model.intersectRaycaster(e)[0];if(!i)return null;var n=qr(t,(function(e){return e.standingPosition.distanceTo(i.point)}),!0),r=n[0];return n[1]<5?this.work.observers.indexOf(r):null},t.prototype.coordinatesForOffset=function(e){var t=this.cameraMotion.value.fov,i=this.camera.aspect,r=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(r.x*this.scissor.width)*t/95*i,latitude:-2*e.y/(r.y*this.scissor.height)*t/95}},t.prototype.onPanGesture=function(e){var t=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===i){var r=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pan",r,e.isFinal))if("mouse"===e.pointerType&&2===e.srcEvent.buttons){var o={x:e.center.x-t.x,y:e.center.y-t.y},a=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),s=this.model.bounding,l=s.getCenter(new n.Vector3),u={x:(s.max.x-s.min.x)/90*this.cameraMotion.value.fov,y:(s.max.y-s.min.y)/90*this.cameraMotion.value.fov,z:(s.max.z-s.min.z)/90*this.cameraMotion.value.fov},c=(this.camera.position.y-s.min.y)*Math.tan(this.camera.fov/2*Math.PI/180),h=this.renderer.getSize(new n.Vector2);a.add(wa(2*o.x*c/h.y,this.camera.matrix)),a.add(Ma(2*o.y*c/h.y,this.camera.up,this.camera.matrix)),a.x=Gn(a.x,l.x-u.x,l.x+u.x),a.z=Gn(a.z,l.z-u.z,l.z+u.z);var d={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:a,distance:this.locationMotion.value.distance};if(this.emit("wantsPanGesture",d,e.isFinal))return;this.emit("gesture","pan",r,e.isFinal),this.emit("panGesture",d,e.isFinal),this.userAction=!0,this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(le)}else{a={x:e.center.x-t.x,y:e.center.y-t.y};var p=this.coordinatesForOffset(a),f=Qr(this.cameraMotion.value.longitude+-1*p.longitude),A=Gn(this.cameraMotion.value.latitude+-1*p.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(A=this.cameraMotion.value.latitude);d={longitude:f,latitude:A,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};if(this.emit("wantsPanGesture",d,e.isFinal))return;this.emit("gesture","pan",r,e.isFinal),this.emit("panGesture",d,e.isFinal),this.userAction=!0,this.interiaMovement=!1;var v={longitude:d.longitude,latitude:d.latitude,fov:d.fov};if(this.cameraMotion.set(v,0).catch(le),e.isFinal)this.emit("wantsInteriaPan",d)||(this.interiaMovement=!0,e.velocityX,e.velocityY)}}},t.prototype.onPinchGesture=function(e){var t=this.pinchState||{},i=t.distance;t.offsetY;var r=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(r=!0,delete this.pinchState),void 0!==i){this.pinchState={distance:i};var o=e.pointers.map((function(e){return ui(e,["x","y"])}));if(this.emit("wantsGesture","pinch",o,r))return;var a=Gn(i/e.scale,this.minDistance,this.maxDistance);if(this.emit("wantsPinchGesture",e.scale,this.camera.pose.fov,r))return;this.emit("gesture","pinch",o,r),this.emit("pinchGesture",e.scale,this.camera.pose.fov,r),this.userAction=!0,this.locationMotion.set({distance:a},0).catch(le)}var s=this.panState,l=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:l,x:e.center.x,y:e.center.y},void 0!==s&&s.pointerLength===l){var u=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",u,r)){var c=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",c,r)){var h={x:e.center.x-s.x,y:e.center.y-s.y},d=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),p=this.model.bounding,f=p.getCenter(new n.Vector3),A={x:(p.max.x-p.min.x)/90*this.cameraMotion.value.fov,y:(p.max.y-p.min.y)/90*this.cameraMotion.value.fov,z:(p.max.z-p.min.z)/90*this.cameraMotion.value.fov},v=(this.camera.position.y-p.min.y)*Math.tan(this.camera.fov/2*Math.PI/180),m=this.renderer.getSize(new n.Vector2);d.add(wa(2*h.x*v/m.y,this.camera.matrix)),d.add(Ma(2*h.y*v/m.y,this.camera.up,this.camera.matrix)),d.x=Gn(d.x,f.x-A.x,f.x+A.x),d.z=Gn(d.z,f.z-A.z,f.z+A.z);var g={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:d,distance:this.locationMotion.value.distance};this.emit("wantsPanGesture",g,e.isFinal)||(this.emit("gesture","pan",c,e.isFinal),this.emit("panGesture",g,e.isFinal),this.userAction=!0,this.locationMotion.set({x:d.x,y:d.y,z:d.z},0).catch(le))}}}}else this.pinchState={distance:this.locationMotion.value.distance}},t.prototype.onMouseWheel=function(e){var t=this,i=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,n=[{x:e.clientX,y:e.clientY,delta:i}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=Gn(this.locationMotion.value.distance-i/2,this.minDistance,this.maxDistance);this.emit("wantsMouseWheel",i,this.camera.pose.fov,!1)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,this.camera.pose.fov,!1),this.userAction=!0,this.locationMotion.set({distance:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,t.camera.pose.fov,!0)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,t.camera.pose.fov,!0))}),200)})}},t.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return ui(e,["x","y"])}));if(!this.emit("wantsGesture","tap",t,!0)){var i=this.relativeClientPosition(e.center),r=new n.Raycaster;if(r.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",r,i,!0)){this.emit("gesture","tap",t,!0),this.emit("tapGesture",r,i,!0),this.interiaMovement=!1;var o=this.getForwardPanoIndexOrNot(r);if(!qn(o)){this.emit("panoSelected",o);var a={longitude:this.camera.pose.longitude,latitude:0};this.emit("wantsMoveToPano",o,a,!0)}}}},t.prototype.onPressGesture=function(e,t){var i,r,o=[e];if(this.emit("wantsGesture","press",o,t))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(e),s=new n.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,e.delta,t))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,t),this.emit("pressGesture",s,a,e.delta,t)},t}(to),Ea={type:"move"},Ia=function(){function e(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return e.prototype.getHandSpace=function(){return null===this._hand&&(this._hand=new n.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},e.prototype.getTargetRaySpace=function(){return null===this._targetRay&&(this._targetRay=new n.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new n.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new n.Vector3),this._targetRay},e.prototype.getGripSpace=function(){return null===this._grip&&(this._grip=new n.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new n.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new n.Vector3),this._grip},e.prototype.dispatchEvent=function(e){return null!==this._targetRay&&this._targetRay.dispatchEvent(e),null!==this._grip&&this._grip.dispatchEvent(e),null!==this._hand&&this._hand.dispatchEvent(e),this},e.prototype.disconnect=function(e){return this.dispatchEvent({type:"disconnected",data:e}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},e.prototype.getAxes=function(){return this._axes},e.prototype.update=function(e,t,i){var r=null,o=null,a=null,s=this._targetRay,l=this._grip,u=this._hand;if(e&&e.gamepad&&e.gamepad.axes&&(this._axes=[e.gamepad.axes[2],e.gamepad.axes[3]]),e&&"visible-blurred"!==t.session.visibilityState)if(null!==s&&null!==(r=t.getPose(e.targetRaySpace,i))&&(s.matrix.fromArray(r.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),r.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(r.linearVelocity)):s.hasLinearVelocity=!1,r.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(r.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(Ea)),u&&e.hand){a=!0;for(var c=0,h=e.hand.values();c<h.length;c++){var d=h[c],p=t.getJointPose(d,i);if(void 0===u.joints[d.jointName]){var f=new n.Group;f.matrixAutoUpdate=!1,f.visible=!1,u.joints[d.jointName]=f,u.add(f)}var A=u.joints[d.jointName];null!==p&&(A.matrix.fromArray(p.transform.matrix),A.matrix.decompose(A.position,A.rotation,A.scale),A.jointRadius=p.radius),A.visible=null!==p}var v=u.joints["index-finger-tip"],m=u.joints["thumb-tip"],g=v.position.distanceTo(m.position);u.inputState.pinching&&g>.025?(u.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!u.inputState.pinching&&g<=.015&&(u.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==l&&e.gripSpace&&null!==(o=t.getPose(e.gripSpace,i))&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1);return null!==s&&(s.visible=null!==r),null!==l&&(l.visible=null!==o),null!==u&&(u.visible=null!==a),this},e}(),Sa=function(e){function t(t,i,r){var o,a,s,l=this;return(l=e.call(this)||this).isPanorama=null===(o=null==r?void 0:r.isPanorama)||void 0===o||o,l.machineType=null!==(a=null==r?void 0:r.machineType)&&void 0!==a?a:"Pico",l.renderer=t,l.gl=i,l.enabled=!1,l.session=null,l.referenceSpaceType=null!==(s=null==r?void 0:r.referenceSpaceType)&&void 0!==s?s:"local-floor",l.referenceSpace=null,l.controllers=[new Ia,new Ia],l.inputSourcesMap=new Map,l.cameraVR=new n.ArrayCamera,l.cameraL=new n.PerspectiveCamera,l.cameraR=new n.PerspectiveCamera,l.cameraL.viewport=new n.Vector4,l.cameraR.viewport=new n.Vector4,l.cameraL.layers.enable(1),l.cameraR.layers.enable(2),l.cameraVR.layers.enable(1),l.cameraVR.layers.enable(2),l.isPresenting=!1,l.currentDepthNear=null,l.currentDepthFar=null,l.cameraLPos=new n.Vector3,l.cameraRPos=new n.Vector3,l}return te(t,e),t.prototype.getController=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getTargetRaySpace()},t.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},t.prototype.updateCamera=function(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.getInverse(e.matrixWorld)},t.prototype.setProjectionFromUnion=function(e,t,i){this.cameraLPos.setFromMatrixPosition(t.matrixWorld),this.cameraRPos.setFromMatrixPosition(i.matrixWorld);var n=this.cameraLPos.distanceTo(this.cameraRPos),r=t.projectionMatrix.elements,o=i.projectionMatrix.elements,a=r[14]/(r[10]-1),s=r[14]/(r[10]+1),l=(r[9]+1)/r[5],u=(r[9]-1)/r[5],c=(r[8]-1)/r[0],h=(o[8]+1)/o[0],d=a*c,p=a*h,f=n/(-c+h),A=f*-c;t.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.translateX(A),e.translateZ(f),e.matrixWorld.compose(e.position,e.quaternion,e.scale),e.matrixWorldInverse.getInverse(e.matrixWorld);var v=a+f,m=s+f,g=d-A,y=p+(n-A),b=l*s/m*v,x=u*s/m*v;e.projectionMatrix.makePerspective(g,y,b,x,v,m)},t.prototype.getCamera=function(e){this.cameraVR.near=this.cameraR.near=this.cameraL.near=e.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=e.far,!this.session||this.currentDepthNear===this.cameraVR.near&&this.currentDepthFar===this.cameraVR.far||(this.session.updateRenderState({depthNear:this.cameraVR.near,depthFar:this.cameraVR.far}),this.currentDepthNear=this.cameraVR.near,this.currentDepthFar=this.cameraVR.far);var t=e.parent,i=this.cameraVR.cameras;this.updateCamera(this.cameraVR,t);for(var n=0;n<i.length;n++)this.updateCamera(i[n],t);e.matrixWorld.copy(this.cameraVR.matrixWorld);for(var r=e.children,o=(n=0,r.length);n<o;n++)r[n].updateMatrixWorld(!0);return 2===i.length?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},t.prototype.updateInputSources=function(e){if(this.session){for(var t=this.session.inputSources,i=0;i<this.controllers.length;i++)this.inputSourcesMap.set(t[i],this.controllers[i]);for(i=0;i<e.removed.length;i++){var n=e.removed[i];(r=this.inputSourcesMap.get(n))&&(r.dispatchEvent({type:"disconnected",data:n}),this.inputSourcesMap.delete(n))}for(i=0;i<e.added.length;i++){var r;n=e.added[i];(r=this.inputSourcesMap.get(n))&&r.dispatchEvent({type:"connected",data:n})}}else console.warn("session is lose!")},t.prototype.onSessionEvent=function(e){var t=this.inputSourcesMap.get(e.inputSource);t&&t.dispatchEvent({type:e.type})},t.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach((function(e,t){e.disconnect(t)})),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,ke.shared.setContext(null),this.emit("webXRSessionEnd")},t.prototype.onRequestReferenceSpace=function(e){this.referenceSpace=e,this.isPresenting=!0,this.emit("webXRSessionStart")},t.prototype.setSession=function(e){var t=this;if(this.session=e,this.session){this.session.addEventListener("select",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectstart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeeze",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezestart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezeend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("end",(function(e){t.onSessionEnd()}));var i=this.gl.getContextAttributes();this.gl.makeXRCompatible().then((function(){var e={antialias:null==i?void 0:i.antialias,alpha:null==i?void 0:i.alpha,depth:null==i?void 0:i.depth,stencil:null==i?void 0:i.stencil,framebufferScaleFactor:1};if(t.session){switch(t.machineType){case"Pico":t.session.updateRenderState({baseLayer:new XRWebGLLayer(t.session,t.gl,e)});break;case"Oculus":t.session.updateRenderState({layers:[new XRWebGLLayer(t.session,t.gl,e)]});break;default:t.machineType}t.session.requestReferenceSpace(t.referenceSpaceType).then((function(e){t.onRequestReferenceSpace(e)})),t.session.addEventListener("inputsourceschange",(function(e){t.updateInputSources(e)}))}else console.error("session is lose while set session!")}))}},t}(se),Ba=["webXRSessionStart","webXRSessionEnd"],Ta=function(e){function t(){var t=e.call(this)||this;t.type="LineSegmentsGeometry";return t.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),t.setAttribute("position",new n.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),t.setAttribute("uv",new n.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2)),t}return te(t,e),t.prototype.applyMatrix4=function(e){var t=this.attributes.instanceStart,i=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),i.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},t.prototype.setPositions=function(e){var t;t=e instanceof Float32Array?e:Array.isArray(e)?new Float32Array(e):new Float32Array;var i=new n.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new n.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceEnd",new n.InterleavedBufferAttribute(i,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},t.prototype.setColors=function(e){var t;t=e instanceof Float32Array?e:Array.isArray(e)?new Float32Array(e):new Float32Array;var i=new n.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceColorStart",new n.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceColorEnd",new n.InterleavedBufferAttribute(i,3,3)),this},t.prototype.fromWireframeGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromEdgesGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromMesh=function(e){return this.fromWireframeGeometry(new n.WireframeGeometry(e.geometry)),this},t.prototype.fromLineSegments=function(e){var t=e.geometry;if(t instanceof n.Geometry){var i=(new n.BufferGeometry).fromGeometry(t);this.setPositions(i.attributes.position.array)}else t instanceof n.BufferGeometry&&this.setPositions(t.attributes.position.array);return this},t.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new n.Box3);var e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){var i=new n.Box3;this.boundingBox.setFromBufferAttribute(e),i.setFromBufferAttribute(t),this.boundingBox.union(i)}},t.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new n.Sphere),null===this.boundingBox&&this.computeBoundingBox();var e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){var i=this.boundingSphere.center;this.boundingBox.getCenter(i);for(var r=0,o=new n.Vector3,a=0,s=e.count;a<s;a++)o.fromBufferAttribute(e,a),r=Math.max(r,i.distanceToSquared(o)),o.fromBufferAttribute(t,a),r=Math.max(r,i.distanceToSquared(o));this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}},t.prototype.toJSON=function(){},t}(n.InstancedBufferGeometry);Object.assign(Ta.prototype,{isLineSegmentsGeometry:!0});var Pa={uniforms:n.UniformsUtils.merge([n.UniformsLib.common,n.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new n.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\tvarying vec2 vUv;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\tvUv = uv;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec2 ndcStart = clipStart.xy / clipStart.w;\n\t\t\tvec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd - ndcStart;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t// perpendicular to dir\n\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\n\t\t\t// undo aspect ratio adjustment\n\t\t\tdir.x /= aspect;\n\t\t\toffset.x /= aspect;\n\n\t\t\t// sign flip\n\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t// endcaps\n\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\toffset += - dir;\n\n\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\toffset += dir;\n\n\t\t\t}\n\n\t\t\t// adjust for linewidth\n\t\t\toffset *= linewidth;\n\n\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\toffset /= resolution.y;\n\n\t\t\t// select end\n\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t// back to clip space\n\t\t\toffset *= clip.w;\n\n\t\t\tclip.xy += offset;\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\tfloat a = vUv.x;\n\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t}\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"},Ra=function(e){function t(t){var i=e.call(this,{uniforms:n.UniformsUtils.clone(Pa.uniforms),vertexShader:Pa.vertexShader,fragmentShader:Pa.fragmentShader,clipping:!0})||this;return i.type="LineMaterial",i.dashed=!1,Object.defineProperties(i,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}}}),i.setValues(t),i}return te(t,e),t}(n.ShaderMaterial);Object.assign(Ra.prototype,{isLineMaterial:!0});var ka=function(e){function t(t,i){var n=e.call(this)||this;return n.type="LineSegments2",n.geometry=void 0!==t?t:new Ta,n.material=void 0!==i?i:new Ra({color:16777215*Math.random()}),n}return te(t,e),t.prototype.computeLineDistances=function(){for(var e=this.geometry,t=e.attributes.instanceStart,i=e.attributes.instanceEnd,r=new Float32Array(2*t.count),o=new n.Vector3,a=new n.Vector3,s=0,l=0,u=t.count;s<u;s++,l+=2)o.fromBufferAttribute(t,s),a.fromBufferAttribute(i,s),r[l]=0===l?0:r[l-1],r[l+1]=r[l]+o.distanceTo(a);var c=new n.InstancedInterleavedBuffer(r,2,1);return e.setAttribute("instanceDistanceStart",new n.InterleavedBufferAttribute(c,1,0)),e.setAttribute("instanceDistanceEnd",new n.InterleavedBufferAttribute(c,1,1)),this},t.prototype.raycast=function(e,t){null===e.camera&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var i=e.ray,r=e.camera,o=r.projectionMatrix,a=this.geometry,s=this.material,l=s.resolution,u=s.linewidth,c=a.attributes.instanceStart,h=a.attributes.instanceEnd,d=new n.Vector4,p=new n.Vector4,f=new n.Vector4,A=new n.Vector3,v=new n.Matrix4,m=new n.Line3,g=new n.Vector3;i.at(1,f),f.w=1,f.applyMatrix4(r.matrixWorldInverse),f.applyMatrix4(o),f.multiplyScalar(1/f.w),f.x*=l.x/2,f.y*=l.y/2,f.z=0,A.copy(f);var y=this.matrixWorld;v.multiplyMatrices(r.matrixWorldInverse,y);for(var b=0,x=c.count;b<x;b++){d.fromBufferAttribute(c,b),p.fromBufferAttribute(h,b),d.w=1,p.w=1,d.applyMatrix4(v),p.applyMatrix4(v),d.applyMatrix4(o),p.applyMatrix4(o),d.multiplyScalar(1/d.w),p.multiplyScalar(1/p.w);var w=d.z<-1&&p.z<-1,M=d.z>1&&p.z>1;if(!w&&!M){d.x*=l.x/2,d.y*=l.y/2,p.x*=l.x/2,p.y*=l.y/2,m.start.copy(d),m.start.z=0,m.end.copy(p),m.end.z=0;var C=m.closestPointToPointParameter(A,!0);m.at(C,g);var E=n.MathUtils.lerp(d.z,p.z,C),I=E>=-1&&E<=1,S=A.distanceTo(g)<.5*u;if(I&&S){m.start.fromBufferAttribute(c,b),m.end.fromBufferAttribute(h,b),m.start.applyMatrix4(y),m.end.applyMatrix4(y);var B=new n.Vector3,T=new n.Vector3;i.distanceSqToSegment(m.start,m.end,T,B),t.push({point:T,pointOnLine:B,distance:i.origin.distanceTo(T),object:this,faceIndex:b})}}}},t}(n.Mesh);Object.assign(ka.prototype,{isLineSegments2:!0});var Qa=function(e){function t(t,i){var n=e.call(this,t,i)||this;return n.type="Line2",n}return te(t,e),t}(ka);Object.assign(Qa.prototype,{isLine2:!0});var Fa=function(e){function t(){var t=e.call(this)||this;return t.type="LineGeometry",t}return te(t,e),t.prototype.setPositions=function(t){for(var i=t.length-3,n=new Float32Array(2*i),r=0;r<i;r+=3)n[2*r]=t[r],n[2*r+1]=t[r+1],n[2*r+2]=t[r+2],n[2*r+3]=t[r+3],n[2*r+4]=t[r+4],n[2*r+5]=t[r+5];return e.prototype.setPositions.call(this,n),this},t.prototype.setColors=function(t){for(var i=t.length-3,n=new Float32Array(2*i),r=0;r<i;r+=3)n[2*r]=t[r],n[2*r+1]=t[r+1],n[2*r+2]=t[r+2],n[2*r+3]=t[r+3],n[2*r+4]=t[r+4],n[2*r+5]=t[r+5];return e.prototype.setColors.call(this,n),this},t.prototype.fromLine=function(e){var t=e.geometry;if(t instanceof n.Geometry){var i=(new n.BufferGeometry).fromGeometry(t);this.setPositions(i.attributes.position.array)}else t instanceof n.BufferGeometry&&this.setPositions(t.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(Ta);Object.assign(Fa.prototype,{isLineGeometry:!0});var Da=null,La=function(e){function t(t,i){void 0===t&&(t=new n.Vector3),void 0===i&&(i=new n.Vector3);var r=e.call(this)||this;r.type="FiveLine",r.needsRender=!0;var o=new Fa,a=new Ra({color:14467195,linewidth:2,dashScale:20,dashed:!1});r.line=new Qa(o,a);var s=new n.BufferGeometry,l=new n.PointsMaterial({color:14467195,size:8,map:Da||(Da=(new n.TextureLoader).load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==")),sizeAttenuation:!1,transparent:!0});return r.points=new n.Points(s,l),r.points.renderOrder=11,r.points.frustumCulled=!1,r.setPoints(t,i),r.add(r.line,r.points),r}return te(t,e),Object.defineProperty(t,"version",{get:function(){return"5.0.0-alpha.191"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,t){var i=[].concat(e.toArray(),t.toArray());this.points.geometry.setAttribute("position",new n.BufferAttribute(new Float32Array(i),3)),this.line.geometry.setPositions(i),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new n.Vector3(e[0],e[1],e[2]),new n.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var t=this.line.material;for(var i in e)if(e.hasOwnProperty(i)){var n=e[i];"dashed"===i?(t.dashed=n,n?t.defines.USE_DASH="":delete t.defines.USE_DASH,t.needsUpdate=!0):t[i]=e[i]}this.needsRender=!0},t.prototype.setResolution=function(e,t){var i=this.line.material.resolution;i.x===e&&i.y===t||(i.set(e,t),this.needsRender=!0)},t}(n.Object3D);Object.assign(La.prototype,{isFiveLine:!0});var Oa=(new n.Matrix4).makeRotationAxis(new n.Vector3(0,1,0),Math.PI),Na=new n.Vector3(-1,1,1),Va=function(e){function t(t){var i=e.call(this,t)||this;i.xrManager=new Sa(i.renderer,i.renderer.getContext()),i.xrControllerRay=new n.Raycaster,i.pointerLine=new La,i.scene.add(i.pointerLine),i.pointerLine.line.material.depthTest=!1,i.pointerLine.points.material instanceof Array?i.pointerLine.points.material.forEach((function(e){e.depthTest=!1})):i.pointerLine.points.material.depthTest=!1,i.pointerLine.setMaterial({color:new n.Vector3(1,1,1)}),i.panoResources={},i.panoResources[i.locationMotion.keyframes[0].key=i.locationMotion.keyframes[1].key=Bn()]={panoIndex:i.currentPanoIndex,workCode:i.work.workCode,leftPanoPicture:null,position:i.camera.pose.offset.clone(),effect:"fade"},i.parallaxCameraMatrixs=[];var r=ke.shared.getContext();if(!r)return console.error("获取session失败,请退出重试"),i;i.xrManager.setSession(r),i.on("webXRSelected",(function(e){"Select"===e&&i.checkSelectedPano()}));for(var o=function(e){a.xrManager.on(e,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];i.emit.apply(i,ne([e],t,!1))}))},a=this,s=0,l=Ba;s<l.length;s++){o(l[s])}return i.xrControllerState={axes:[{left:{isTap:!1,startTime:0},right:{isTap:!1,startTime:0}},{up:{isTap:!1,startTime:0},down:{isTap:!1,startTime:0}},{left:{isTap:!1,startTime:0},right:{isTap:!1,startTime:0}},{up:{isTap:!1,startTime:0},down:{isTap:!1,startTime:0}}],select:{startTime:0,istap:!1},squeeze:{startTime:0,istap:!1},leftButtonA:{startTime:0,istap:!1},leftButtonB:{startTime:0,istap:!1},rightButtonA:{startTime:0,istap:!1},rightButtonB:{startTime:0,istap:!1}},i}return te(t,e),t.parseArgs=function(t){var i=ie(ie({},t),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,i)},t.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},t.prototype.moveToPano=function(e,t,i){var r,o,a,s,l=this,u=this.work.observers[e],c=this.imageOptions.size;if(void 0===c&&u){var h=u.images.up.match(/\/cube_(\d+)\//);h&&(c=Number(h[1]))}void 0===c&&(c=2048);var d=this.imageOptions.transform,p=function(e,t){return function(e,t){if(!t)return e;var i=e.match(/\d+_[a-z].png/);return e.substring(0,i.index)+t+"/"+e.substring(i.index)}(Oe(e,d,t))},f=ie({key:"pano.".concat(e)},ui(this.imageOptions,["format","size","quality"])),A=u.images,v=null!==(o=null===(r=u.images.tiles)||void 0===r?void 0:r.filter((function(e){return e.size>c})))&&void 0!==o?o:null,m="pano:"+hi([A,f,d]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===m)return;var g=this.pendingTextureTask.panoIndex;null===(a=this.panoMeshes[g])||void 0===a||a.setProgress(0),this.emit("textureAbort",g,u),this.pendingTextureTask.onError(new Error("texture aborted"))}var y,b=this.model.getMaterial()||{},x=b.pano0,w=b.pano1;if((null==x?void 0:x.map.name)===m?y=x:(null==w?void 0:w.map.name)===m&&(y=w),y){var M={panoIndex:e,workCode:this.work.workCode,effect:null!==(s=t.effect)&&void 0!==s?s:"fade",leftPanoPicture:{map:y.map,luminanceMap:y.luminanceMap,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Na)},position:u.position.clone()};this.doMoveToPano(e,M,t,i)}else this.pending=!0,this.pendingTextureTask={panoIndex:e,hash:m,onLoad:function(r){var o;if(l.pending=!1,l.destroyed)r.body.dispose();else{r.body.name=m;var a={panoIndex:e,workCode:l.work.workCode,effect:null!==(o=t.effect)&&void 0!==o?o:"fade",leftPanoPicture:{map:r.body,luminanceMap:null,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Na)},position:u.position.clone()};l.doMoveToPano(e,a,t,i)}},onError:function(i){l.pending=!1,t.moveCancelCallback&&t.moveCancelCallback(),l.emit("panoLoadError",i,e),l.emit("moveToPanoCanceled",e)}},Promise.all([this.tileLevelForFov&&v&&v.length?this.textureLoader.loadTiledCubeTexture(A,v,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:p,options:f},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(t){var i,n;l.emit("textureLoading",t,e,u),(null===(i=l.pendingTextureTask)||void 0===i?void 0:i.hash)===m&&(null===(n=l.panoMeshes[e])||void 0===n||n.setProgress(t))}),this.renderer):this.textureLoader.loadCubeTexture(A,{imageURL:{transform:p,options:f},format:n.RGBAFormat},void 0,void 0,(function(t){var i,n;(null===(i=l.pendingTextureTask)||void 0===i?void 0:i.hash)===m&&(null===(n=l.panoMeshes[e])||void 0===n||n.setProgress(t)),l.emit("textureLoading",t,e,u)}),this.renderer)]).then((function(t){var i,n,r=t[0];(null===(i=l.pendingTextureTask)||void 0===i?void 0:i.hash)===m?(l.pendingTextureTask.onLoad(r),null===(n=l.panoMeshes[e])||void 0===n||n.setProgress(0),delete l.pendingTextureTask,l.emit("textureLoaded",e,u,r.meta)):r.body.dispose()})).catch((function(t){var i,n;(null===(i=l.pendingTextureTask)||void 0===i?void 0:i.hash)===m&&(l.pendingTextureTask.onError(t),null===(n=l.panoMeshes[e])||void 0===n||n.setProgress(0),delete l.pendingTextureTask,l.emit("textureError",t,e,u),l.emit("error",t))})),this.emit("textureStartLoad",e,u)},t.prototype.doMoveToPano=function(e,t,i,r){var o,a,s,l=this;void 0===i&&(i={}),this.userAction=r;var u=ce(),c=Bn();this.panoResources[c]=t;var h,d,p;if(this.locationMotion.ended){var f=this.locationMotion.getKeyFrameSegment(u);f[0];var A=f[1],v=this.locationMotion.value,m=this.panoResourceFromLocationMotionKeyframe(A).position,g=t.position;h=Math.max(m.distanceTo(g),1),d=[{key:A.key,progress:0,value:ie(ie({},v),{count:0})},{key:c,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],p=0}else{var y=this.locationMotion.getKeyFrameSegment(u),b=y[0],x=(A=y[1],v=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(b).position),w=(m=this.panoResourceFromLocationMotionKeyframe(A).position,g=t.position,A.value.count-v.count),M=Math.max(x.distanceTo(m),1)*w;h=M+Math.max(m.distanceTo(g),1),d=[{key:b.key,progress:0,value:ie({},v)},{key:A.key,progress:M/h,value:A.value},{key:c,progress:1,value:{count:A.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var C=this.locationMotionKeyframesLength(this.locationMotion.keyframes),E=this.locationMotionKeyframesLength(d);p=this.locationMotion.getProgressVelocity(u)*C/E}var I=this.calculateMovingDuration(i.duration,h),S={longitude:i.longitude,latitude:i.latitude,fov:i.fov},B={longitude:null!==(o=S.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=S.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=S.fov)&&void 0!==s?s:this.camera.pose.fov,offset:t.position.clone(),distance:0};this.emit("moveToPano",e,this.userAction),i.moveStartCallback&&i.moveStartCallback(e,B),this.emit("panoWillArrive",e,B,this.userAction),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=le,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(S,I).catch(le),this.locationMotion.setKeyframes(d,I,p).then((function(){var t,o,a,s={longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:0};i.moveEndCallback&&i.moveEndCallback(e,s),l.emit("panoArrived",e,s,r);var u=l.work.observers[l.currentPanoIndex];if(u&&u.video&&l.videoTexture&&l.videoTexture.image instanceof HTMLVideoElement){var c=Oa.clone().multiply(null!==(a=null===(o=null===(t=l.model.getMaterial())||void 0===t?void 0:t.pano1)||void 0===o?void 0:o.matrix)&&void 0!==a?a:new n.Matrix4).multiply(u.video.matrix),h={map:l.videoTexture,size:u.video.size,matrix:c,alpha:1},d=Bn(),p=l.videoTexture.image;p.setAttribute("uuid",d),ho().then((function(e){e&&u.video&&p.getAttribute("uuid")===d&&(p.oncanplay=function(){p.oncanplay=le,p.play()},p.ontimeupdate=function(){p.currentTime>.5&&(p.ontimeupdate=le,l.panoVideo.setMaterial(h))},p.src=u.video.source)})).catch((function(){p.removeAttribute("uuid")}))}}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),l.emit("moveToPanoCanceled",e)}))},t.prototype.checkSelectedPano=function(){var e=this,t=this.xrControllerRay;this.interiaMovement=!1;var i=this.camera.getDirection(new n.Vector3).setY(0),r=null,o=this.work.observers[this.currentPanoIndex];if(!o)return r;var a=o.accessibleNodes.filter((function(t){if(t===e.currentPanoIndex)return!1;var i=e.work.observers[t];return!(i.position.distanceTo(e.camera.position)>e.maxAccessibleDistance)&&(i.loadable||i.active)})),s=this.model.intersectRaycaster(t)[0];if(s){var l=qr(a,(function(t){return e.work.observers[t].standingPosition.clone().distanceTo(s.point)}),!0),u=l[0];l[1]<this.panoTapTriggerRadius&&(r=u)}qn(r)&&(r=this.getForwardPanoIndexOrNot(t));for(var c=0,h=this.locationMotion.keyframes;c<h.length;c++){var d=h[c],p=this.panoResourceFromLocationMotionKeyframe(d);if(!(d.progress<this.locationMotion.progress)&&p.panoIndex===r){r=null;break}}if(this.emit("panoSelected",r),qn(r))return!0===this.locationMotion.ended&&this.cameraBounce(),r;var f=this.work.observers[r];if(!f.active)return this.panoMeshes[r]&&(this.panoMeshes[r].setDisabled(!1),this.panoMeshes[r].setLoading(!0)),r;for(var A={effect:"fade"},v=Math.PI/6,m=Math.PI/12,g=new n.Vector3(0,1,0),y=f.position.clone().setY(0).sub(o.position.clone().setY(0)).normalize(),b=y.clone().applyAxisAngle(g,v),x=y.clone().applyAxisAngle(g,-v),w=[],M=[],C=[],E=0,I=f.accessibleNodes;E<I.length;E++){if((u=I[E])!==this.currentPanoIndex&&u!==r){var S=this.work.observers[u].position.clone().sub(f.position).setY(0);y.angleTo(S)<v?C.push(S):b.angleTo(S)<v?w.push(S):x.angleTo(S)<v&&M.push(S)}}var B=(C.length>0?C:ne(ne([],w,!0),M,!0)).slice().sort((function(e,t){return e.angleTo(y)-t.angleTo(y)}))[0];return B&&B.angleTo(i)>m&&(A.longitude=Math.atan2(-B.x,-B.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(A.latitude=Gn(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(A.fov=this.defaultFov),this.emit("wantsMoveToPano",r,A,!0),r},t.prototype.destroy=function(){e.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateTime=function(e,t){for(var i,r,o,a,s,l,u,c=this,h=[],d=2;d<arguments.length;d++)h[d-2]=arguments[d];var p=this.currentPanoIndex,f={},A={},v=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),g=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(e);var y=this.locationMotion.getKeyFrameSegment(e),b=y[0],x=y[1],w=this.panoResourceFromLocationMotionKeyframe(b),M=this.panoResourceFromLocationMotionKeyframe(x),C=(new n.Vector3).copy(w.position),E=(new n.Vector3).copy(M.position),I=this.locationMotion.value.count-x.value.count+1;f.progress=I,f.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gn(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,M.leftPanoPicture&&(I<1?w.leftPanoPicture&&(f.pano0=w.leftPanoPicture):f.pano0=M.leftPanoPicture,f.pano1=M.leftPanoPicture),g=f.useBlackTransition="instant"===M.effect||"montage"===M.effect,"fade"!==M.effect&&"montage"!==M.effect||(f.pano0&&w.leftPanoPicture&&(f.pano0={map:f.pano0.map,luminanceMap:f.pano0.luminanceMap,matrix:w.leftPanoPicture.matrix.clone().setPosition(M.position)}),C.copy(E)),A.distance=this.locationMotion.value.distance,A.offset=new n.Vector3(C.x+(E.x-C.x)*I,C.y+(E.y-C.y)*I,C.z+(E.z-C.z)*I);for(var S=[],B=[],T=0,P=this.locationMotion.keyframes;T<P.length;T++){var R=P[T],k=R.key,Q=R.progress;void 0!==k&&(S.push(k),Q>=this.locationMotion.progress&&B.push(k))}for(var F=0,D=Object.keys(this.panoResources);F<D.length;F++){var L=D[F];if(!(B.indexOf(L)>=0)){var O=this.panoResources[L];if(O.leftPanoPicture){var N=O.leftPanoPicture.map;if(N){if(N===(null===(i=f.pano0)||void 0===i?void 0:i.map))continue;if(N===(null===(r=f.pano1)||void 0===r?void 0:r.map))continue;N instanceof Ct&&N.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(N.cubeRenderTarget),N.dispose(),O.leftPanoPicture=null}}S.indexOf(L)>=0||delete this.panoResources[L]}}w.workCode===M.workCode?this.currentPanoIndex=I<.5?w.panoIndex:M.panoIndex:this.currentPanoIndex=M.panoIndex,this.emit("movingToPano",m.panoIndex,v.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),A.longitude=this.cameraMotion.value.longitude,A.latitude=this.cameraMotion.value.latitude,A.fov=this.cameraMotion.value.fov),!1===Hr(f)&&((null===(o=f.pano0)||void 0===o?void 0:o.map)&&f.pano0.map instanceof Ct&&!f.pano0.map.cubeRenderTarget&&(f.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=f.pano1)||void 0===a?void 0:a.map)&&f.pano1.map instanceof Ct&&!f.pano1.map.cubeRenderTarget&&(f.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.model.setMaterial(f)),!1===Hr(A)&&this.setCamera(A);var V=h[1];if(V)if(this.xrManager.session){var U=this.xrManager.referenceSpace;if(U){var z=this.xrManager.cameraVR,q=this.xrManager.cameraL,H=this.xrManager.cameraR,_=[q,H],K=V.getViewerPose(U),j=new n.Vector3(0,0,0);if(K){var G=void 0;switch(this.xrManager.machineType){case"Pico":G=this.xrManager.session.renderState.baseLayer;break;case"Oculus":var W=this.xrManager.session.renderState.layers;W&&(G=W[0]);break;default:this.xrManager.machineType}var X=K.views;if(!G)return void console.error("no layer found");this.renderer.setFramebuffer(G.framebuffer);var Y=!1;X.length!==z.cameras.length&&(z.cameras.length=0,Y=!0),this.parallaxCameraMatrixs=[];var Z=new n.Vector3,J=new n.Vector3;(new n.Matrix4).fromArray(X[0].transform.matrix).decompose(Z,new n.Quaternion,new n.Vector3),(new n.Matrix4).fromArray(X[1].transform.matrix).decompose(J,new n.Quaternion,new n.Vector3),J.clone().sub(Z).normalize();var $=new n.Vector3,ee=new n.Quaternion,te=new n.Vector3;this.camera.matrix.decompose($,ee,te);for(var ie=0;ie<X.length;ie++){var ne=X[ie],re=G.getViewport(ne),oe=_[ie];oe.matrix.fromArray(ne.transform.matrix);var ae=new n.Vector3,se=new n.Quaternion,le=new n.Vector3;oe.matrix.decompose(ae,se,le),j.copy($),oe.position.copy($),oe.quaternion.copy(se),oe.scale.copy(le),oe.updateMatrix(),oe.projectionMatrix.fromArray(ne.projectionMatrix),oe.viewport.set(re.x,re.y,re.width,re.height),!0===Y&&z.cameras.push(oe)}}var ue=this.xrManager.session.inputSources;for(ie=0;ie<this.xrManager.controllers.length;ie++){var ce=this.xrManager.controllers[ie],he=ue[ie];ce.update(he,V,U)}var de=this.xrManager.getController(0),pe=de.position.clone().add(j).sub(new n.Vector3(0,1.35,0));this.xrControllerRay.set(pe,new n.Vector3(0,0,-1).applyEuler(de.rotation));var fe=this.model.intersectRaycaster(this.xrControllerRay);if(0===fe.length&&(fe=this.xrControllerRay.intersectObject(this.boundingMesh,!0)),fe.length>=1&&fe[0].face){this.pointerLine.setPoints(pe,fe[0].point);var Ae=fe[0].face.normal,ve=Ae.clone().multiplyScalar(.05),me=fe[0].point.clone().add(ve);this.intersectMesh.position.copy(me);var ge=me.clone().add(ve);if(this.intersectMesh.lookAt(ge),Math.abs(Ae.y)>.99){var ye=this.camera.position.clone().sub(me);this.intersectMesh.rotation.z=-Math.atan2(ye.z,ye.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",fe[0],this.intersectMesh)}if(this.currentPanoIndex!==p&&this.updatePanoMeshesVisible(),this.camera.pose.distance>.1||g){var be=this.work.observers[this.currentPanoIndex];if(be)for(var xe=0,we=Se=be.visibleNodes.concat(this.currentPanoIndex);xe<we.length;xe++){var Me=we[xe];(ke=this.panoMeshes[Me])&&ke.setOpacity(0)}}else{var Ce=this.work.observers[this.currentPanoIndex];if(Ce){var Ee=qr(Ce.visibleNodes,(function(e){return Ce.standingPosition.distanceTo(c.work.observers[e].standingPosition)}),!0),Ie=Ee[1];Ie=Gn(Ie,2.5,1/0);for(var Se=Ce.visibleNodes.concat(this.currentPanoIndex),Be=this.getForwardPanoIndexOrNot(),Te=this.camera.getDirection(new n.Vector3),Pe=0,Re=Se;Pe<Re.length;Pe++){Me=Re[Pe];var ke,Qe=this.work.observers[Me];if(ke=this.panoMeshes[Me])if(Qe.loadable||Qe.active){var Fe=ke.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ke.setCurrent(!ke.loading&&0===ke.progress&&Be===Me),ke.setOpacity(Fe<.01?0:Gn(Ie/Fe*1.2,.65,.98));var De=this.camera.position.clone().setY(ke.position.y),Le=(new n.Vector3).copy(ke.position).sub(De).normalize();if(Me===this.currentPanoIndex){var Oe=Gn((.5-De.distanceTo(ke.position))/.5,0,1);Le.multiplyScalar(1-Oe).add(Te.clone().multiplyScalar(Oe))}Le.length()>0&&ke.quaternion.setFromEuler(new n.Euler(0,Math.atan2(Le.x,Le.z),0)),ke.updateTime&&ke.updateTime(e,t)}else ke.setOpacity(0)}}}var Ne,Ve=function(){if(!1===c.tileLevelForFov)return 0;var e=new n.Vector2(4e3,4e3),t=m.panoIndex,i=c.work.observers[t],r=c.imageOptions.size;if(void 0===r&&i){var o=i.images.up.match(/\/cube_(\d+)\//);o&&(r=Number(o[1]))}void 0===r&&(r=2048);var a=0;r>=1024&&(a=1),r>=2048&&(a=2),r>=4096&&(a=3),r>=8192&&(a=4);var s=c.tileLevelForFov(q.fov,e);return s>a?s:0}(),Ue=((Ne=new n.PerspectiveCamera).applyMatrix4(z.matrix),Ne.position.set(0,0,0),Ne.quaternion.premultiply(c.work.observers[m.panoIndex].quaternion.clone().inverse()),Ne.updateProjectionMatrix(),Ne.updateMatrixWorld(!0),(new n.Frustum).setFromProjectionMatrix((new n.Matrix4).multiplyMatrices(Ne.projectionMatrix,Ne.matrixWorldInverse)));m.panoIndex===this.currentPanoIndex&&(null===(s=m.leftPanoPicture)||void 0===s?void 0:s.map)instanceof Ct&&(m.leftPanoPicture.map.update(Ue,Ve),!0===m.leftPanoPicture.map.needsRender&&(this.needsRender=!0));var ze=this.tiling.object.visible;if(Ve>this.TILED_CUBE_TEXTURE_LEVEL&&this.initAnimationed){var qe=m.panoIndex,He=this.work.observers[qe];He&&Sr(this.camera.position,He.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoIndex!==qe&&this.tiling.cleanup(),this.tiling.panoIndex=qe,this.tiling.setResource(null!==(u=null===(l=He.images)||void 0===l?void 0:l.tiles)&&void 0!==u?u:[],this.enableIOSEDR&&He.images.luminance?He.images.luminance:null),this.tiling.setRotation(He.quaternion),this.tiling.setPosition(He.position),this.tiling.update(Ue,Ve,e)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;ze!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e);var _e=ue[0].gamepad;if((null==_e?void 0:_e.axes)&&this.emit("webXRSelected","Axes",{axes:_e.axes}),-1===(null==_e?void 0:_e.axes[2])){if(!this.xrControllerState.axes[2].left.isTap){var Ke=e-this.xrControllerState.axes[2].left.startTime;Ke>=300&&this.emit("webXRSelected","RightAxesLeftTap"),this.xrControllerState.axes[2].left.isTap=!0}}else this.xrControllerState.axes[2].left.isTap=!1,this.xrControllerState.axes[2].left.startTime=0;if(1===(null==_e?void 0:_e.axes[2])){if(!this.xrControllerState.axes[2].right.isTap){var je=e-this.xrControllerState.axes[2].right.startTime;je>=300&&this.emit("webXRSelected","RightAxesRightTap"),this.xrControllerState.axes[2].right.isTap=!0}}else this.xrControllerState.axes[2].right.isTap=!1,this.xrControllerState.axes[2].right.startTime=0;if(-1===(null==_e?void 0:_e.axes[3])){if(!this.xrControllerState.axes[3].up.isTap){var Ge=e-this.xrControllerState.axes[3].up.startTime;Ge>=300&&this.emit("webXRSelected","RightAxesUpTap"),this.xrControllerState.axes[3].up.isTap=!0}}else this.xrControllerState.axes[3].up.isTap=!1,this.xrControllerState.axes[3].up.startTime=0;if(1===(null==_e?void 0:_e.axes[3])){if(!this.xrControllerState.axes[3].down.isTap){var We=e-this.xrControllerState.axes[3].down.startTime;We>=300&&this.emit("webXRSelected","RightAxesDownTap"),this.xrControllerState.axes[3].down.isTap=!0}}else this.xrControllerState.axes[3].down.isTap=!1,this.xrControllerState.axes[3].down.startTime=0;if(null==_e?void 0:_e.buttons[0].pressed){if(!this.xrControllerState.select.isTap){var Xe=e-this.xrControllerState.select.startTime;Xe>=300&&this.emit("webXRSelected","Select",{raycaster:this.xrControllerRay}),this.xrControllerState.select.isTap=!0}}else this.xrControllerState.select.isTap=!1,this.xrControllerState.select.startTime=0;if(null==_e?void 0:_e.buttons[1].pressed){if(!this.xrControllerState.squeeze.isTap){var Ye=e-this.xrControllerState.squeeze.startTime;Ye>=300&&this.emit("webXRSelected","Squeeze",{raycaster:this.xrControllerRay}),this.xrControllerState.squeeze.isTap=!0}}else this.xrControllerState.squeeze.isTap=!1,this.xrControllerState.squeeze.startTime=0;if(null==_e?void 0:_e.buttons[2].pressed){if(!this.xrControllerState.leftButtonA.isTap){var Ze=e-this.xrControllerState.leftButtonA.startTime;Ze>=300&&this.emit("webXRSelected","LeftButtonA",{raycaster:this.xrControllerRay}),this.xrControllerState.leftButtonA.isTap=!0}}else this.xrControllerState.leftButtonA.isTap=!1,this.xrControllerState.leftButtonA.startTime=0;if(null==_e?void 0:_e.buttons[3].pressed){if(!this.xrControllerState.leftButtonB.isTap){var Je=e-this.xrControllerState.leftButtonB.startTime;Je>=300&&this.emit("webXRSelected","LeftButtonB",{raycaster:this.xrControllerRay}),this.xrControllerState.leftButtonB.isTap=!0}}else this.xrControllerState.leftButtonB.isTap=!1,this.xrControllerState.leftButtonB.startTime=0;if(null==_e?void 0:_e.buttons[4].pressed){if(!this.xrControllerState.rightButtonA.isTap){var $e=e-this.xrControllerState.rightButtonA.startTime;$e>=300&&this.emit("webXRSelected","RightButtonA",{raycaster:this.xrControllerRay}),this.xrControllerState.rightButtonA.isTap=!0}}else this.xrControllerState.rightButtonA.isTap=!1,this.xrControllerState.rightButtonA.startTime=0;if(null==_e?void 0:_e.buttons[5].pressed){if(!this.xrControllerState.rightButtonB.isTap){var et=e-this.xrControllerState.rightButtonB.startTime;et>=300&&this.emit("webXRSelected","RightButtonB",{raycaster:this.xrControllerRay}),this.xrControllerState.rightButtonB.isTap=!0}}else this.xrControllerState.rightButtonB.isTap=!1,this.xrControllerState.rightButtonB.startTime=0}}else console.error("session丢失,请重试");else console.error("xrFrame丢失,请重试")},t.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.scene,e)},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t}(Do),Ua=["Panorama","DepthPanorama","Model"],za={Floorplan:io,Topview:uo,Panorama:Do,VRPanorama:pa,Model:fa,DepthPanorama:xa,Mapview:Ca,XRPanorama:Va};function qa(e){for(var t=0,i=Ua;t<i.length;t++){var n=i[t];if("string"==typeof e){if(n===e)return!0}else if(e instanceof to&&e instanceof za[n])return!0}return!1}var Ha=["cameraDirectionUpdate","cameraUpdate","cameraPositionUpdate","panoSelected","moveToPano","moveToPanoCanceled","panoWillArrive","movingToPano","panoArrived","panoWillLoad","panoLoaded","panoLoadError","initAnimationEnded","initAnimationWillStart","wantsGesture","gesture","wantsTapGesture","tapGesture","wantsPressGesture","pressGesture","wantsPanGesture","wantsInteriaPan","panGesture","interiaPan","wantsPinchGesture","pinchGesture","wantsMouseWheel","mouseWheel","wantsShowIntersectionOnModel","intersectionOnModelUpdate","intersectionHidden","textureStartLoad","textureLoading","textureAbort","textureLoaded","textureError","webXRSessionStart","webXRSessionEnd","webXRSelected"];function _a(e){for(var t,i,n={},r=0,o=e.split(/(\;|\,)/);r<o.length;r++){var a=o[r].split("="),s=null===(t=a[0])||void 0===t?void 0:t.trim(),l=null===(i=a[1])||void 0===i?void 0:i.trim();s&&l&&(n[s]=l)}return n}function Ka(){for(var e,t=document.getElementsByTagName("meta"),i=0;i<t.length;i++){var n=t[i];if("viewport"===n.getAttribute("name")){var r=_a(null!==(e=n.getAttribute("content"))&&void 0!==e?e:""),o=Number(r["initial-scale"]);if(!isNaN(o))return o}}return 1}var ja=[351,63],Ga=[20,20],Wa=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),Xa=new Float32Array([0,0,1,0,0,1,1,1]),Ya=new Uint8Array([0,1,2,1,3,2]),Za=new n.BufferGeometry;Za.setAttribute("position",new n.BufferAttribute(Wa,3)),Za.setAttribute("uv",new n.BufferAttribute(Xa,2)),Za.setIndex(new n.BufferAttribute(Ya,1));var Ja=new n.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),$a=new n.Mesh(Za,Ja);$a.matrixAutoUpdate=!1;var es=new n.Scene;es.add($a),es.matrixAutoUpdate=!1;var ts=new n.OrthographicCamera(-.5,.5,.5,-.5,.1,1);ts.position.set(0,0,.5),ts.lookAt(0,0,0),ts.updateMatrixWorld(!0),ts.matrixAutoUpdate=!1;var is=new n.Vector4,ns=new n.Vector4;function rs(e){if(Ja.map){var t=e.getViewport(is),i=e.getScissor(ns),r=e.getScissorTest(),o=e.autoClear,a=i.x+Ga[0]/3,s=i.y+Ga[1]/3,l=ja[0]/3,u=ja[1]/3;e.setViewport(a,s,l,u),e.setScissor(a,s,l,u),e.setScissorTest(!0),e.autoClear=!1,e.render(es,ts),e.setViewport(t),e.setScissor(i),e.setScissorTest(r),e.autoClear=o}else{var c=new n.Texture,h=new Image;h.onload=function(){c.image=h,c.wrapS=n.ClampToEdgeWrapping,c.wrapT=n.ClampToEdgeWrapping,c.minFilter=n.LinearFilter,c.needsUpdate=!0,c.generateMipmaps=!1,Ja.needsUpdate=!0,h.onload=le},h.src="data:image/png;base64,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",Ja.map=c}}var os=new n.Box3(new n.Vector3(-50,-50,-50),new n.Vector3(50,50,50)),as=function(e){return e.replace("//vrlab-public.ljcdn.com/","//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/","//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/","//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/","//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/","//vr-image-1.realsee-cdn.cn/")},ss=new n.Vector2,ls=new n.Frustum,us=new n.Matrix4,cs=new WeakMap,hs=new WeakMap,ds=function(e){function t(t){void 0===t&&(t={});var i,r,o,a,s,l,u,c,h,d,p=this;if((p=e.call(this)||this).ident=Bn(),ps.instances[p.ident]=p,p.renderSwitch01=0,p.panoIndex=0,p.needsRender=!1,p.onlyRenderIfNeeds=null===(i=t.onlyRenderIfNeeds)||void 0===i||i,p.imageOptions=ie({},null!==(r=t.imageOptions)&&void 0!==r?r:{}),p.textureOptions=ie({},null!==(o=t.textureOptions)&&void 0!==o?o:{}),p.poweredByRealsee=null===(a=t.poweredByRealsee)||void 0===a||a,p.extraElements=[],p.controllerInits={Panorama:Object.assign({},t.panorama),Model:Object.assign({},t.model),Floorplan:Object.assign({},t.floorplan),Topview:Object.assign({},t.topview),Mapview:Object.assign({},t.mapview),DepthPanorama:Object.assign({},t.depthPanorama),VRPanorama:Object.assign({},t.vrPanorama),XRPanorama:Object.assign({},t.xrPanorama)},p.fps={testCount:0,testTime:ce()},p.modeChangeDuration=null!==(s=t.modeChangeDuration)&&void 0!==s?s:800,p.panoramaLikeSavedPose={},"undefined"!=typeof window)if(t.renderer)t.renderer instanceof Rt&&p.throwError(new Error("cannot render a internal renderer")),p.renderer=t.renderer;else try{p.renderer=new Rt({preserveDrawingBuffer:t.preserveDrawingBuffer,backgroundColor:t.backgroundColor,backgroundAlpha:t.backgroundAlpha,antialias:t.antialias,webgl2:null==t?void 0:t.webgl2});var f=Ka();p.renderer.setPixelRatio(1===f?window.devicePixelRatio:1),p.renderer.setSize(512,512)}catch(e){e instanceof Error&&p.throwError(e)}p.copyEffect=new eo(p.renderer),p.getPixelsRenderTarget=new n.WebGLRenderTarget(1,1,{encoding:null!==(u=null===(l=p.renderer)||void 0===l?void 0:l.outputEncoding)&&void 0!==u?u:n.sRGBEncoding}),p.scissor=Object.assign({left:0,bottom:0,width:1,height:1},t.scissor),p.camera=new zt(80),p.scene=new kt,p.parallaxScene=new kt,p.lastLoadWorkTask=Promise.resolve(),p.requestProxy=null!==(c=t.requestProxy)&&void 0!==c?c:as,p.networkSubscribe=new Ee,p.networkSubscribe.on("network",(function(e,t,i,n){var r;p.emit("network",e,t,i,n),null===(r=p.analysis)||void 0===r||r.network(p.work,e,t,i,n)})),p.boundingMesh=Rr(new n.Box3(new n.Vector3(-.5,-.5,-.5),new n.Vector3(.5,.5,.5))),p.scene.add(p.boundingMesh),p.model=new jn({allowHosts:[],requestProxy:p.requestProxy,networkSubscribe:p.networkSubscribe});var A=Rr(os);A.name="model_empty",p.model.add(A),p.model.visible=!1,p.readyCallbacks=[],p.modelPending=!1,p.syncingState=!1,p.scene.add(p.model),p.helperGroup=new n.Group,p.helperGroup.name="helper",p.scene.add(p.helperGroup),p.videoTexture=new n.VideoTexture(t.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),function(e){(t=new n.DirectionalLight(16777215,.5)).position.copy(new n.Vector3(1,1,1)),e.add(t);var t=new n.DirectionalLight(16777215,.3);e.add(t),t=new n.AmbientLight(16777215,.3),e.add(t)}(p.scene),p.state={mode:null!==(h=p.currentMode)&&void 0!==h?h:"Panorama",panoIndex:null!==(d=p.panoIndex)&&void 0!==d?d:0,longitude:p.camera.pose.longitude,latitude:p.camera.pose.latitude,fov:p.camera.pose.fov,offset:p.camera.pose.offset.clone(),distance:p.camera.pose.distance},p.stateSynced=!1,p._enableIOSEDR=!1,p.destroyed=!1,p.paused=!0,"undefined"!=typeof window&&(!1!==t.play&&p.play(),p.stopAnimationLoop=ke.shared.add((function(e,t){for(var i=[],n=2;n<arguments.length;n++)i[n-2]=arguments[n];p.updateTime.apply(p,ne([e,t],i,!1))}),!1,0,10));var v=function(){"undefined"!=typeof document&&null===document.fullscreenElement&&"VRPanorama"===p.currentMode&&p.controller.emit("vrWantsToExit")};if("undefined"!=typeof document&&document.addEventListener("fullscreenchange",v,!1),p.removeEventListeners=function(){"undefined"!=typeof document&&document.removeEventListener("fullscreenchange",v,!1)},p.plugins={},t.plugins&&t.plugins.length)for(var m=0,g=t.plugins;m<g.length;m++){var y=g[m];if("function"==typeof y)y(p);else if(Array.isArray(y)){var b=y[0],x=y[1],w=y[2];if("function"==typeof b){var M=b(p,w);"string"==typeof x&&(p.plugins[x]?p.throwError(new Error("plugin name ".concat(x," is exists."))):p.plugins[x]=M)}}}return p.gpuPickingRenderTarget=new n.WebGLRenderTarget(1,1),p.meshReplaceMaterialMap=new Map,p.meshOriginMaterialMap=new Map,p}return te(t,e),Object.defineProperty(t,"version",{get:function(){return"5.0.0-alpha.191"},enumerable:!1,configurable:!0}),t.prototype.getGPUPicking=function(e,t,i,r,o){var a=this;if(void 0===r&&(r=1),void 0===o&&(o=new n.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");this.model.setMaterial({modelColorInfo:o}),this.scene.traverse((function(e){if(e instanceof n.Mesh&&!(e instanceof ze)){var t=Object.keys(i).filter((function(t){return t===e.uuid}))[0];if(t)if(a.meshOriginMaterialMap.set(t,e.material),a.meshReplaceMaterialMap.get(t))e.material=a.meshReplaceMaterialMap.get(t);else{var r=new n.ShaderMaterial({uniforms:{color:{value:i[t]}},vertexShader:"\n void main() {\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n ",fragmentShader:"\n uniform vec3 color;\n void main() {\n gl_FragColor = vec4( color, 1.0 );\n }\n "});r.depthTest=e.material.depthTest,r.side=e.material.side,a.meshReplaceMaterialMap.set(t,r),e.material=r}}}));var s=this.renderer.getSize(new n.Vector2);this.camera.setViewOffset(s.width,s.height,e*r,t*r,1,1),this.renderer.setRenderTarget(this.gpuPickingRenderTarget),this.render();var l=new Uint8Array(4);this.renderer.readRenderTargetPixels(this.gpuPickingRenderTarget,0,0,1,1,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),this.scene.traverse((function(e){e instanceof n.Mesh&&!(e instanceof ze)&&a.meshOriginMaterialMap.get(e.uuid)&&(e.material=a.meshOriginMaterialMap.get(e.uuid))})),this.model.setMaterial({modelColorInfo:null});var u=Object.keys(i).filter((function(e){return i[e].equals((new n.Color).setRGB(l[0]/255,l[1]/255,l[2]/255))}))[0];return u||!1},t.prototype.dispose=function(){var e,t;if(!0!==this.destroyed){delete ps.instances[this.ident],this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),null===(e=this.renderer)||void 0===e||e.setAnimationLoop(null),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var i=this.getElement();i&&i.parentNode&&i.parentNode.removeChild(i),this.scene.remove(this.model);var n=this.model.getMaterial();n&&(n.pano0&&n.pano0.map.dispose(),n.pano1&&n.pano1.map!==(null===(t=n.pano0)||void 0===t?void 0:t.map)&&n.pano1.map.dispose()),this.model.dispose(),this.diposeGPUPickingMaterial(),this.renderer instanceof Rt&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},t.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize()},Object.defineProperty(t.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpersVisibleChange",e),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR!==e&&(this._enableIOSEDR=e,this.currentMode&&"Panorama"===this.currentMode&&this.changeMode(this.currentMode,{},0,!1,!0))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enablePostProcessing",{get:function(){return void 0!==this.screenBuffers},set:function(e){var t,i,r,o;if(e){if(!this.screenBuffers){var a=this.getDrawingBufferSize(ss);this.screenBuffers=[new n.WebGLRenderTarget(a.x,a.y,{encoding:null!==(i=null===(t=this.renderer)||void 0===t?void 0:t.outputEncoding)&&void 0!==i?i:n.sRGBEncoding}),new n.WebGLRenderTarget(a.x,a.y,{encoding:null!==(o=null===(r=this.renderer)||void 0===r?void 0:r.outputEncoding)&&void 0!==o?o:n.sRGBEncoding})]}}else this.screenBuffers&&(this.screenBuffers[0].dispose(),this.screenBuffers[1].dispose(),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),t.prototype.updateConfiguration=function(e){var t=!1;e.panorama&&(Object.assign(this.controllerInits.Panorama,e.panorama),"Panorama"===this.currentMode&&(t=!0)),e.model&&(Object.assign(this.controllerInits.Model,e.model),"Model"===this.currentMode&&(t=!0)),e.floorplan&&(Object.assign(this.controllerInits.Floorplan,e.floorplan),"Floorplan"===this.currentMode&&(t=!0)),e.topview&&(Object.assign(this.controllerInits.Topview,e.topview),"Topview"===this.currentMode&&(t=!0)),e.mapview&&(Object.assign(this.controllerInits.Mapview,e.topview),"Mapview"===this.currentMode&&(t=!0)),e.depthPanorama&&(Object.assign(this.controllerInits.DepthPanorama,e.depthPanorama),"DepthPanorama"===this.currentMode&&(t=!0)),e.vrPanorama&&(Object.assign(this.controllerInits.VRPanorama,e.vrPanorama),"VRPanorama"===this.currentMode&&(t=!0)),e.imageOptions&&(Object.assign(this.imageOptions,e.imageOptions),"Panorama"!==this.currentMode&&"DepthPanorama"!==this.currentMode&&"VRPanorama"!==this.currentMode||(t=!0)),t&&this.controller&&this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0),e.textureOptions&&(Object.assign(this.textureOptions,e.textureOptions),this.model.updateTexture(this.textureOptions))},t.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof Rt){var i=this.getElement();if(i){e.appendChild(i),this.refresh(t);var n=window.getComputedStyle(e).position;"relative"!==n&&"absolute"!==n&&"fixed"!==n&&"sticky"!==n&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},t.prototype.refresh=function(e,t){if(void 0===e&&(e={}),this.renderer){var i=this.getElement();if(i){var r=i.parentNode;if(r&&r.nodeName){var o=e.width,a=void 0===o?r.offsetWidth:o,s=e.height,l=void 0===s?r.offsetHeight:s;this.renderer instanceof Rt&&(t&&this.renderer.setPixelRatio(t),this.renderer.setSize(a,l))}var u=this.renderer.getSize(new n.Vector2);this.camera.aspect=u.x*this.scissor.width/(u.y*this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(),this.needsRender=!0}}},t.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},t.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},t.prototype.getPose=function(){var e=this.camera.copyPose(),t=e.longitude,i=e.latitude,n=e.fov,r=e.offset,o=e.distance;return{longitude:t,latitude:i,fov:n,offset:r.clone(),distance:o}},t.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.updateCamera=function(e,t,i){return void 0===i&&(i=!0),this.controller?this.controller.updateCamera(e,t,i):Promise.reject(new Error("controller is not initialized."))},t.prototype.updateCameraWithKeyframes=function(e,t,i){return void 0===i&&(i=!0),this.controller?this.controller.updateCameraWithKeyframes(e,t,i):Promise.reject(new Error("controller is not initialized."))},t.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},t.prototype.getOffset=function(){return this.getPose().offset},t.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var e=this.work.observers[this.panoIndex],t=new n.Object3D;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.set(1,1,1),t.updateMatrixWorld(!0),function(e,t){var i=new n.Vector3(0,0,-1);i.applyQuaternion(e.quaternion);var r=t.quaternion.clone().inverse();return i.applyQuaternion(r),{theta:Math.atan2(i.x,-i.z),phi:-Math.asin(i.y),lookAtVector:i}}(this.camera,t)}},Object.defineProperty(t.prototype,"work",{get:function(){var e=hs.get(this);if(e&&nr.get(e))return e},enumerable:!1,configurable:!0}),t.prototype.load=function(e,t,i,n){var r=this;if(void 0===n&&(n=!0),!this.renderer)throw new Error("renderer is not initialized");var o=this.lastLoadWorkTask.then((function(){return!(o=e)||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then?r.load_(e,t,i,n):e.then((function(e){return r.load_(e,t,i,n)}));var o}));return this.lastLoadWorkTask=o.catch((function(e){r.throwError(e)})),o},t.prototype.load_=function(e,i,r,o){var a,s,l,u,c,h,d,p,f,A=this;void 0===o&&(o=!0);var v,m,g,y=lr(e),b=this.work;void 0===i&&(i=b?"inherit":"initial"),"inherit"===i?(v="number"==typeof this.panoIndex&&y.observers[this.panoIndex]?this.panoIndex:y.initial.panoIndex,m=null!==(a=this.currentMode)&&void 0!==a?a:y.initial.mode,g={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===i?(m=null!==(s=this.currentMode)&&void 0!==s?s:y.initial.mode,v=y.initial.panoIndex,g=m===t.Mode.Panorama||m===t.Mode.DepthPanorama||m===t.Mode.Model||m===t.Mode.VRPanorama||m===t.Mode.XRPanorama?{longitude:y.initial.longitude,latitude:y.initial.latitude,fov:y.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(v=null!==(l=i.panoIndex)&&void 0!==l?l:y.initial.panoIndex,m=null!==(c=null!==(u=i.mode)&&void 0!==u?u:this.currentMode)&&void 0!==c?c:"Panorama",g={longitude:null!==(h=i.longitude)&&void 0!==h?h:y.initial.longitude,latitude:null!==(d=i.latitude)&&void 0!==d?d:y.initial.latitude,fov:null!==(p=i.fov)&&void 0!==p?p:y.initial.fov}),this.emit("willLoad",e,y,{panoIndex:v,mode:m,longitude:g.longitude,latitude:g.latitude,fov:g.fov});var x=function(){var t;A.panoIndex=v,A.panoramaLikeSavedPose.longitude=y.initial.longitude,A.panoramaLikeSavedPose.latitude=y.initial.latitude,A.panoramaLikeSavedPose.fov=y.initial.fov;var i=A.controller?null!=r?r:A.modeChangeDuration:0,n=ie(ie({initial:[v,g,i,o]},A.commonParams()),A.controllerInits[m]);A.controller?!1===A.controller.updateWork(y,v,g,i,o)&&(A.controller.destroy(),A.controller=A.applyController(m,n)):A.controller=A.applyController(m,n),A.emit("load",e,y,{panoIndex:v,mode:m,longitude:g.longitude,latitude:g.latitude,fov:g.fov}),null===(t=A.analysis)||void 0===t||t.work(y)},w=function(e){var t;void 0===e&&(e=le),y.model&&(A.model.name!==(null===(t=y.model)||void 0===t?void 0:t.file)?(A.emit("modelWillLoad",y.model),A.loadModel(y.workCode,y.model,y.allowHosts,e,!0)):e&&e())};hs.set(this,y);for(var M=new n.Box3,C=0,E=y.observers;C<E.length;C++){var I=E[C];M.expandByPoint(I.standingPosition),M.expandByPoint((new n.Vector3).fromArray([I.position.x,2*I.position.y-I.standingPosition.y,I.position.z]))}return this.model.bounding.union(M),m===t.Mode.Floorplan||m===t.Mode.Topview||m===t.Mode.Mapview||m===t.Mode.Model?w((function(){x(),A.needsRender=!0})):(this.controller||(this.camera.setFromPose({distance:0,fov:y.initial.fov,longitude:y.initial.longitude,latitude:y.initial.latitude,offset:y.observers[y.initial.panoIndex].position}),this.needsRender=!0),x(),null===(f=this.controller)||void 0===f||f.once("panoLoaded",(function(){A.needsRender=!0,A.emit("cameraUpdate",A.camera.copyPose(),o),w()}))),this.ready().then((function(){A.emit("loaded",e,A.work)}))},t.prototype.changeMode=function(e,i,n,r,o){var a=this;if(void 0===i&&(i={}),void 0===n&&(n=this.modeChangeDuration),void 0===r&&(r=!0),void 0===o&&(o=!1),!this.renderer)throw new Error("renderer is not initialized.");return new Promise((function(s,l){if(!t.Mode.hasOwnProperty(e)){var u=new Error('mode "'.concat(e,'" is not existed'));return a.throwError(u),void l(u)}if((e===t.Mode.Floorplan||e===t.Mode.Topview||e===t.Mode.Mapview||e===t.Mode.Model)&&(qn(a.model)||!0!==a.model.loaded)){u=new Error("model is not ready.");return a.throwError(u),void l(u)}if(qn(a.controller)){u=new Error("controller is not ready.");return a.throwError(u),void l(u)}var c=a.controller,h=a.currentMode,d=function(){var u,d,p,f;if(a.emit("wantsChangeMode",e,h))l(new Error("change mode canceled."));else{if(a.controller&&!1===o&&h===e)e===t.Mode.Panorama||e===t.Mode.DepthPanorama||e===t.Mode.Model||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama?"number"==typeof i.panoIndex&&i.panoIndex!==a.panoIndex?a.controller.moveToPano(null!==(d=null!==(u=i.panoIndex)&&void 0!==u?u:a.panoIndex)&&void 0!==d?d:0,ie({duration:n},i),r):a.controller.updateCamera(i,n,r).catch(le):("number"==typeof i.panoIndex&&i.panoIndex!==a.panoIndex&&(a.panoIndex=i.panoIndex),a.controller.updateCamera(i,n,r).catch(le));else{c.destroy();var A=null!==(f=null!==(p=i.panoIndex)&&void 0!==p?p:a.panoIndex)&&void 0!==f?f:0,v=qa(e)?a.panoramaLikeSavedPose:{};e===t.Mode.Mapview&&(v.longitude=a.panoramaLikeSavedPose.longitude),"number"!=typeof i.longitude&&"number"!=typeof i.latitude||(v.longitude=i.longitude,v.latitude=i.latitude),"number"==typeof i.fov&&(v.fov=i.fov),"Mapview"===e&&(v.distance=i.distance,v.offset=i.offset);var m=ie(ie({initial:[A,v,n,r]},a.commonParams()),a.controllerInits[e]);a.saveControllerPose(c),a.controller=a.applyController(e,m);var g=za[e].initAnimationEndPose(m);a.emit("modeChange",e,h,A,g,r)}s()}};if(e===t.Mode.VRPanorama)a.requestFullscreen(),("undefined"==typeof location||"https:"!==location.protocol?Promise.reject(new Error("Request DeviceOrientation Permission denied.")):"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return d()})).catch((function(e){e instanceof Error&&(a.exitFullscreen(),a.throwError(e),l(e))}));else if(e===t.Mode.XRPanorama){var p=ke.shared.getContext();p?p.end():function(){if("xr"in navigator)return navigator.xr.isSessionSupported("immersive-vr").then((function(e){return e?Promise.resolve():Promise.reject()})).then((function(){return navigator.xr.requestSession("immersive-vr",{optionalFeatures:["local-floor","bounded-floor"]}).then((function(e){return Promise.resolve(e)}))}));var e=new Error("Request XR Permission denied.");return Promise.reject(e)}().then((function(e){ke.shared.setContext(e),d()})).catch((function(e){e instanceof Error&&(a.throwError(e),l(e))}))}else d()}))},t.prototype.getPixels=function(e,t,i,r,o){if(void 0===o&&(o=1),!this.renderer)throw new Error("renderer is not initialized.");var a=this.getPixelsRenderTarget,s=this.renderer.getSize(new n.Vector2);e=Gn(e,Math.floor(i/2),Math.floor(s.x-i)),t=Gn(t,Math.floor(r/2),Math.floor(s.y-r)),a.setSize(i*o,r*o),this.renderer.setRenderTarget(a),this.camera.setViewOffset(s.width,s.height,e,s.height-t-r,i,r),this.controller?this.controller.render():this.renderer.render(this.scene,this.camera);var l=new Uint8Array(i*o*r*o*4);return this.renderer.readRenderTargetPixels(a,0,0,i*o,r*o,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),l},t.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},t.prototype.render=function(e,t){var i,n=this;if(void 0===t&&(t=!1),!this.renderer)return null;var r=Ue.shared,o=null===(i=this.model.getMaterial())||void 0===i?void 0:i.clippers;if(o&&r.update(o,this.camera),this.model.setMaterial({clipperPlanesArray:o?r.clipperPlanes:null,clipperFloors:o?r.clipperFloors:null}),t){var a=this.renderer.getSize(ss);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(a.x,a.y)}))}if(this.controller&&this.screenBuffers&&null===this.renderer.getRenderTarget()){var s=this.getDrawingBufferSize(ss);return this.screenBuffers[0].setSize(s.x,s.y),this.screenBuffers[1].setSize(s.x,s.y),this.renderer.setRenderTarget(this.screenBuffers[0]),this.controller.render(),"VRPanorama"!==this.currentMode&&"XRPanorama"!==this.currentMode&&this.poweredByRealsee&&rs(this.renderer),this.renderer.setRenderTarget(null),e&&ke.shared.add(e,!0),this.screenBuffers[0]}return this.aroundScissor((function(){n.renderer&&(n.controller?n.controller.render():n.renderer.render(n.scene,n.camera),n.poweredByRealsee&&"VRPanorama"!==n.currentMode&&"XRPanorama"!==n.currentMode&&rs(n.renderer)),e&&ke.shared.add(e,!0)})),null},t.prototype.updateTime=function(e,t){for(var i,r,o,a=this,s=[],l=2;l<arguments.length;l++)s[l-2]=arguments[l];if(!this.destroyed){this.syncingState=this.syncState(e,t),this.controller&&(i=this.controller).updateTime.apply(i,ne([e,t],s,!1)),this.syncingState=!1,this.camera.updateTime(e,t);var u=new n.Vector2(512,512),c=new n.Vector2(512,512);this.renderer&&(this.renderer.getSize(u),u.x*=this.scissor.width,u.y*=this.scissor.height,this.renderer.getDrawingBufferSize(c),c.x*=this.scissor.width,c.y*=this.scissor.height),this.renderer&&this.model.update(this.renderer,this.camera);var h=new n.Box3;this.work&&h.union(this.work.boundingBox),this.model.empty||h.union(this.model.bounding),h.max.x+=1,h.max.y+=1,h.max.z+=1,h.min.x-=1,h.min.y-=.001,h.min.z-=1,h.getCenter(this.boundingMesh.position),h.getSize(this.boundingMesh.scale),this.boundingMesh.boundingBox.copy(h);var d=null!==(r=this.model.getMaterial())&&void 0!==r?r:{},p=1-(null!==(o=d.modelAlpha)&&void 0!==o?o:0);d.opacity=Gn(4*p-3,0,1),delete d.clipperFloors,delete d.clipperPlanesArray,delete d.clippers,this.boundingMesh.setMaterial(d),this.boundingMesh.setTransparent(1!==p);var f=[];us.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),ls.setFromProjectionMatrix(us);for(var A=0,v=this.scene.children;A<v.length;A++){var m=v[A];m!==this.model&&(m instanceof n.Object3D&&m.traverseVisible((function(t){if(t.setResolution&&t.setResolution(u.x,u.y),t.setTime&&t.setTime(e),t.mixer instanceof n.AnimationMixer){var i=cs.get(t.mixer);i||(i=new n.Clock,cs.set(t.mixer,i)),t.mixer.update(i.getDelta())}(t instanceof n.Mesh||t instanceof n.Line||t instanceof n.Points)&&(t instanceof n.ImmediateRenderObject||!t.frustumCulled||ls.intersectsObject(t))&&f.push(t)})))}if(c.width*c.height>8388608?this.renderSwitch01=1^this.renderSwitch01:this.renderSwitch01=0,this.renderer&&!1===this.paused&&0===this.renderSwitch01){var g=void 0;if(!0!==this.onlyRenderIfNeeds)g=this.render();else{if(this.controller&&!0===this.controller.needsRender&&(this.controller.needsRender=!1,this.needsRender=!0),!0===this.camera.needsRender&&(this.camera.needsRender=!1,this.needsRender=!0),!0===this.model.needsRender&&(this.model.needsRender=!1,this.needsRender=!0),!0!==this.needsRender)for(var y=0,b=f;y<b.length;y++){var x=b[y],w=function(e){!0===e.needsRender?(e.needsRender=!1,a.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(a.needsRender=!0)};w(x),x.traverseAncestors(w)}!1!==this.needsRender&&(g=this.render())}if(this.needsRender=!1,this.controller&&this.screenBuffers){var M=this.controller,C=this.screenBuffers;this.aroundScissor((function(){M.postProcessing(C[0],C[1]),a.copyEffect.render(C[1],void 0)}))}this.hasListener("renderFrame")&&this.emit("renderFrame",void 0!==g)}this.fps.testTime&&e-this.fps.testTime<1e3?this.fps.testCount++:(this.emit("fps",this.fps.testCount),this.fps.testTime=e,this.fps.testCount=0)}},t.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof Rt&&this.renderer.clear(!0,!0,!0)},t.prototype.play=function(){this.needsRender=!0,this.paused=!1},t.prototype.moveToPano=function(e,i,n){var r=this;void 0===i&&(i={}),void 0===n&&(n=!0);var o=this,a=o.controller,s=o.currentMode,l=o.renderer;return a?l?(s===t.Mode.Floorplan||s===t.Mode.Topview||s===t.Mode.Mapview?qn(e)||(this.panoIndex=e,this.once("initAnimationWillStart",(function(e,n){r.currentMode===t.Mode.Panorama&&i.moveStartCallback&&i.moveStartCallback(e,n)})),this.once("initAnimationEnded",(function(e,n){r.currentMode===t.Mode.Panorama&&i.moveEndCallback&&i.moveEndCallback(e,n)})),this.changeMode(t.Mode.Panorama,i,void 0,n)):a.moveToPano(e,i,n),this.ready()):(this.throwError(new Error("renderer is not initialized.")),Promise.resolve()):(this.throwError(new Error("controller is not initialized.")),Promise.resolve())},t.prototype.preloadPano=function(e,t){var i=this;if(void 0===t&&(t=le),!this.work)return Promise.reject(new Error("work never loaded"));var n=this.work.observers[e],r=this.work.allowHosts,o=ce();return Promise.all(["right","left","up","down","front","back"].map((function(t){var o=ie({key:"pano.".concat(e,".").concat(t)},ui(i.imageOptions,["size","format","quality","mappings"])),a=n.images[t];return Be(i.imageOptions.transform?i.imageOptions.transform(a,o):Le(a,o),{allowHosts:r,requestProxy:i.requestProxy,networkSubscribe:i.networkSubscribe})}))).then((function(){var e=ce()-o;return t(e),e}))},t.prototype.project2d=function(e,t){if(void 0===t&&(t=!1),!this.renderer)return null;if(!1===this.model.empty&&t){var i=this.camera.position,r=e.clone().sub(i),o=new n.Raycaster(i,r.clone().normalize()),a=this.model.intersectRaycaster(o)[0];if(a&&a.distance+.01<r.length())return null}var s=e.clone().project(this.camera);if(Math.abs(s.z)>1)return null;var l=this.renderer.getSize(new n.Vector2),u=l.x*this.scissor.width,c=l.y*this.scissor.height,h=l.x*this.scissor.left+(s.x+1)/2*u,d=l.y*(1-this.scissor.bottom-this.scissor.height)+(1-s.y)/2*c;return new n.Vector2(h,d)},t.prototype.getRenderObjects=function(e){us.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),ls.setFromProjectionMatrix(us),e||(e=this.scene);var t=[];return e.traverseVisible((function(e){(e instanceof n.Mesh||e instanceof n.Line||e instanceof n.Points)&&(e instanceof n.ImmediateRenderObject||!e.frustumCulled||ls.intersectsObject(e))&&t.push(e)})),t},t.prototype.getCurrentState=function(){return ie(ie({},this.getPose()),{mode:this.currentMode||t.Mode.Panorama,panoIndex:this.panoIndex||0})},t.prototype.setState=function(e,i,r){var o,a,s,l,u,c,h,d,p;void 0===i&&(i=!1),void 0===r&&(r=!0),!(e=Object.assign({},e)).offset||e instanceof n.Vector3||(e.offset=new n.Vector3(e.offset.x,e.offset.y,e.offset.z));var f,A,v,m,g,y=null!==(o=e.panoIndex)&&void 0!==o?o:this.state.panoIndex,b=null!==(a=e.mode)&&void 0!==a?a:this.state.mode;if(this.work)if(this.work.observers[y])if(e.mode!==t.Mode.Floorplan&&e.mode!==t.Mode.Topview&&e.mode!==t.Mode.Mapview&&e.mode!==t.Mode.Model||!qn(this.model)&&!0===this.model.loaded){if(this.state.mode!==b){if("VRPanorama"===b)return void this.changeMode("VRPanorama",void 0,void 0,!0);var x=void 0;x=qa(this.state.mode)&&qa(b)?ie({},this.state):qa(b)?ie({},this.panoramaLikeSavedPose):b===t.Mode.Mapview?{longitude:this.panoramaLikeSavedPose.latitude}:ie({},e),"number"==typeof e.longitude&&(x.longitude=e.longitude),"number"==typeof e.latitude&&(x.latitude=e.latitude),"number"==typeof e.fov&&(x.fov=e.fov),"number"==typeof e.distance&&"Mapview"===e.mode&&(x.distance=e.distance),e.offset instanceof n.Vector3&&"Mapview"===e.mode&&(x.offset=e.offset);var w=ie(ie({initial:[y,x,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[b]),M=za[b].initAnimationEndPose(w);f=M.longitude,A=M.latitude,v=M.fov,m=M.offset,g=M.distance}else f=null!==(s=e.longitude)&&void 0!==s?s:this.state.longitude,A=null!==(l=e.latitude)&&void 0!==l?l:this.state.latitude,v=null!==(u=e.fov)&&void 0!==u?u:this.state.fov,m=null!==(c=e.offset)&&void 0!==c?c:this.state.offset,g=null!==(h=e.distance)&&void 0!==h?h:this.state.distance;var C={panoIndex:y,mode:b,longitude:f,latitude:A,fov:v,offset:m,distance:g};this.emit("setState",C),Ur(this.state,C)||(this.controller&&"VRPanorama"===C.mode&&C.mode!==this.state.mode?(Vr(this.state,C),this.changeMode("VRPanorama")):this.controller&&"XRPanorama"===C.mode&&C.mode!==this.state.mode?(Vr(this.state,C),this.changeMode("XRPanorama")):(Vr(this.state,C),this.controller&&(this.controller.userAction=r),i&&this.state.mode===C.mode&&(this.syncingState=this.syncState(ce(),0,i),this.syncingState&&(null===(d=this.controller)||void 0===d||d.updateTime(ce(),0),this.syncingState=!1)),this.emit("stateChange",this.state,r),null===(p=this.analysis)||void 0===p||p.state(this.work,this.state)))}else this.throwError(new Error("model is not ready."));else this.throwError(new Error("panoIndex not found in work"));else this.throwError(new Error("work never load."))},t.prototype.aroundScissor=function(e){if(this.renderer)if("XRPanorama"!==this.state.mode){var t=new n.Vector2,i=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||1!==this.scissor.height;if(i){this.renderer.getSize(t);var r=Math.floor(t.x*this.scissor.left),o=Math.floor(t.y*this.scissor.bottom),a=Math.floor(t.x*this.scissor.width),s=Math.floor(t.y*this.scissor.height);this.renderer.setViewport(r,o,a,s),this.renderer.setScissor(r,o,a,s),this.renderer.setScissorTest(!0)}e(),i&&(this.renderer.setViewport(0,0,t.x,t.y),this.renderer.setScissor(0,0,t.x,t.y),this.renderer.setScissorTest(!1))}else e()},t.prototype.syncState=function(e,i,r){void 0===r&&(r=!1);var o=this.stateSynced;if(this.stateSynced=!1,!this.work)return!1;if(!this.controller)return!1;if(this.state.mode!==this.currentMode){var a={mode:this.state.mode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.changeMode(this.state.mode,a,this.modeChangeDuration,this.controller.userAction),!0}if(!1===this.controller.isReady())return!1;if(this.controller instanceof za.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,ie(ie({},s),{duration:r?0:void 0}),!1),!0}}else if(this.state.panoIndex!==this.panoIndex){s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.controller.moveToPano(this.state.panoIndex,s,!1),!0}if(this.controller instanceof za.Topview||this.controller instanceof za.Mapview){var l=1,u=Math.PI/45,c=r?this.state.fov:Lr(this.camera.pose.fov,this.state.fov,l),h=r?this.state.distance:Lr(this.camera.pose.distance,this.state.distance,.2),d=r?new n.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new n.Vector3(Lr(this.camera.pose.offset.x,this.state.offset.x,.2),Lr(this.camera.pose.offset.y,this.state.offset.y,.2),Lr(this.camera.pose.offset.z,this.state.offset.z,.2)),p=r?{longitude:this.state.longitude,latitude:this.state.latitude}:Or({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},u),f=p.longitude,A=p.latitude;if(this.controller instanceof za.Mapview){if(Ir(c,this.camera.pose.fov)||Br(d,this.camera.pose.offset)||Ir(h,this.camera.pose.distance)||Ir(f,this.camera.pose.longitude,2*Math.PI)||Ir(A,this.camera.pose.latitude)){var v={x:d.x,y:d.y,z:d.z},m={fov:c};return Object.assign(v,{distance:h}),Object.assign(m,{longitude:f,latitude:A}),this.controller.cameraMotion.set(m,0).catch(le),this.controller.locationMotion.set(v,0).catch(le),!0}}else if(Ir(c,this.camera.pose.fov)||Br(d,this.camera.pose.offset)){v={x:d.x,y:d.y,z:d.z},m={fov:c};return this.controller.cameraMotion.set(m,0).catch(le),this.controller.locationMotion.set(v,0).catch(le),!0}}else{l=1,u=Math.PI/45,c=r?this.state.fov:Lr(this.camera.pose.fov,this.state.fov,l);var g=r?{longitude:this.state.longitude,latitude:this.state.latitude}:Or({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},u);f=g.longitude,A=g.latitude;if(Ir(f,this.camera.pose.longitude,2*Math.PI)||Ir(A,this.camera.pose.latitude)||Ir(c,this.camera.pose.fov))return this.controller.cameraMotion.set({longitude:f,latitude:A,fov:c},0).catch(le),!0}if(this.stateSynced=!0,!1===o&&this.emit("stateSynced",this.state),this.readyCallbacks.length&&this.stateSynced){var y=this.currentMode;if(!(y===t.Mode.Floorplan||y===t.Mode.Topview||y===t.Mode.Mapview||y===t.Mode.Model)||!this.modelPending){var b=this.readyCallbacks.slice();this.readyCallbacks.length=0;for(var x=0,w=b;x<w.length;x++){var M=w[x];this.controller instanceof za.Panorama?!0!==M.tile||this.controller.isTileReady()?M():this.readyCallbacks.push(M):M()}}}return!1},t.prototype.ready=function(e){var t=this;return void 0===e&&(e={}),new Promise((function(i){var n;t.readyCallbacks.push(Object.assign(i,{tile:null!==(n=e.tile)&&void 0!==n&&n}))}))},t.prototype.requestFullscreen=function(){var e;if(Nr()){var t=null===(e=this.getElement())||void 0===e?void 0:e.parentNode;t&&"requestFullscreen"in t&&"undefined"!=typeof document&&null===document.fullscreenElement&&t.requestFullscreen()}},t.prototype.exitFullscreen=function(){"undefined"!=typeof document&&document.fullscreenElement&&"exitFullscreen"in document&&document.exitFullscreen()},t.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},t.prototype.loadModel=function(e,t,i,r,o){var a=this,s=t.file;this.emit("modelWillLoad",t);var l=new jn({allowHosts:i,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe});l.workCode=e,l.once("bvhLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&a.emit("modelBvhLoaded",l)})),l.once("materialLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&a.emit("modelMaterialLoaded",l)})),l.once("geometryLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&(l.bounding.max.y-l.bounding.min.y<1.5&&(l.bounding.max.y=l.bounding.min.y+10),a.emit("modelGeometryLoaded",l))})),l.once("loaded",(function(){var e,t,i,o,u;if(!a.destroyed&&s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)){var c,h=a.model;h&&(h.show(),c=h.getMaterial()||{},a.scene.remove(h),h.dispose(),l.setTransparent(h.getTransparent())),c&&l.setMaterial(c),a.model=l,a.scene.add(l),null===(i=a.controller)||void 0===i||i.updateModel(l),null===(o=a.renderer)||void 0===o||o.compile(a.scene,a.camera),a.needsRender=!0,a.modelPending=!1,r();var d=[];null===(u=a.model.originModel)||void 0===u||u.children.forEach((function(e){var t=new n.Box3;e.traverse((function(e){e instanceof n.Mesh&&t.union(e.geometry.boundingBox)})),d.push(new n.Vector3(t.max.y,t.min.y,0))})),a.model.setMaterial({globalFloorInfo:d}),a.model.updateTexture(a.textureOptions),a.emit("modelLoaded",l)}})),l.on("shownFloorChange",(function(e,t){var i,n;a.destroyed||s===(null===(n=null===(i=a.work)||void 0===i?void 0:i.model)||void 0===n?void 0:n.file)&&a.emit("modelShownFloorChange",e,t)})),l.on("error",(function(e){var t,i,o,u;if(!a.destroyed&&s===(null===(i=null===(t=a.work)||void 0===t?void 0:t.model)||void 0===i?void 0:i.file)){l.bounding.makeEmpty();for(var c=0,h=a.work.observers;c<h.length;c++){var d=h[c];l.bounding.expandByPoint(d.standingPosition),l.bounding.expandByPoint((new n.Vector3).fromArray([d.position.x,2*d.position.y-d.standingPosition.y,d.position.z]))}var p=Rr(l.bounding,new n.Vector3(1,0,1));p.visible=!0,p.name="model_empty",l.add(p);var f,A=a.model;A&&(A.show(),f=A.getMaterial()||{},a.scene.remove(A),A.dispose(),l.setTransparent(A.getTransparent())),f&&l.setMaterial(f),a.model=l,a.scene.add(l),null===(o=a.controller)||void 0===o||o.updateModel(l),null===(u=a.renderer)||void 0===u||u.compile(a.scene,a.camera),a.emit("modelLoadError",e,l),a.throwError(e),a.modelPending=!1,r()}})),this.modelPending=!0,l.load(t,this.textureOptions).catch(le)},t.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,parallaxScene:this.parallaxScene,helper:this.helperGroup,boundingMesh:this.boundingMesh,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,enableIOSEDR:this._enableIOSEDR,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe,requestProxy:this.requestProxy}},t.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&qa(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},t.prototype.applyController=function(e,i){var n=this;if(!this.renderer)throw new Error("renderer is not initialized.");var r=za[e];e===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(e===t.Mode.Floorplan||e===t.Mode.Topview||e===t.Mode.Model||e===t.Mode.Mapview),this.currentMode=e;for(var o=new r(i),a=function(e){o.on(e,(function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];var r=n.emit.apply(n,ne([e],t,!1));if(r)return!1}))},s=0,l=Ha;s<l.length;s++){a(l[s])}var u=za[e].initAnimationEndPose(i),c=i.initial[3],h={panoIndex:i.initial[0],mode:e,longitude:u.longitude,latitude:u.latitude,fov:u.fov,offset:u.offset,distance:u.distance};return Ur(this.state,h)||(Vr(this.state,h),this.emit("stateChange",this.state,c)),this.emit("currentStateChange",this.getCurrentState(),c),o.on("cameraUpdate",(function(t,i){var r;if(n.controller){var o=ie(ie({},n.controller.getTargetPose()),{panoIndex:n.panoIndex,mode:e});i&&!1===n.syncingState&&n.state.mode===o.mode&&!Ur(n.state,o)&&(Vr(n.state,o),n.emit("stateChange",n.state,i),null===(r=n.analysis)||void 0===r||r.state(n.work,n.state))}n.emit("currentStateChange",n.getCurrentState(),i)})),o.on("initAnimationWillStart",(function(t,i,r){var o,a=ie(ie({},i),{panoIndex:t,mode:e});r&&n.state.mode===a.mode&&!Ur(n.state,a)&&(Vr(n.state,a),n.emit("stateChange",n.state,r),null===(o=n.analysis)||void 0===o||o.state(n.work,n.state))})),o.on("initAnimationEnded",(function(t,i,r){var o,a=ie(ie({},i),{panoIndex:t,mode:e});r&&n.state.mode===a.mode&&!Ur(n.state,a)&&(Vr(n.state,a),n.emit("stateChange",n.state,r),null===(o=n.analysis)||void 0===o||o.state(n.work,n.state))})),o.on("panoWillArrive",(function(t,i,r){var o;n.panoIndex=t;var a=ie(ie({},i),{panoIndex:t,mode:e});r&&n.state.mode===a.mode&&!Ur(n.state,a)&&(Vr(n.state,a),n.emit("stateChange",n.state,r),null===(o=n.analysis)||void 0===o||o.state(n.work,n.state))})),o.on("panoArrived",(function(t,i,r){var o,a=ie(ie({},i),{panoIndex:t,mode:e});r&&n.state.mode===a.mode&&!Ur(n.state,a)&&(Vr(n.state,a),n.emit("stateChange",n.state,r),null===(o=n.analysis)||void 0===o||o.state(n.work,n.state))})),o.on("moveToPano",(function(e,t){n.emit("currentStateChange",n.getCurrentState(),t)})),o.on("wantsMoveToPano",(function(e,t,i){var r=n.emit("wantsMoveToPano",e,t,i);r||(r=n.emit("wantsToMoveToPano",e,t,i)),r||n.moveToPano(e,t,i)})),o.on("vrWantsToExit",(function(){n.currentMode===t.Mode.VRPanorama&&(n.exitFullscreen(),n.changeMode(t.Mode.Panorama))})),o.on("error",(function(e){return n.throwError(e)})),o},t.prototype.removeEventListeners=function(){},t.prototype.diposeGPUPickingMaterial=function(){this.meshReplaceMaterialMap.forEach((function(e){e.dispose()})),this.meshOriginMaterialMap.forEach((function(e){e.dispose()}))},t.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",Mapview:"Mapview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama",XRPanorama:"XRPanorama"},t.Line=null,t}(se),ps={instances:{},constructor:ds};"undefined"!=typeof window&&Object.assign(window,{__FIVE_DEBUG__:ps});var fs=function(){function e(){}return e.createButton=function(e){var t=document.createElement("button");function i(){t.style.display="",t.style.cursor="auto",t.style.left="calc(50% - 75px)",t.style.width="150px",t.onmouseenter=null,t.onmouseleave=null,t.onclick=null,t.textContent="VR NOT SUPPORTED"}function n(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return t.id="VRButton",t.style.display="none",n(t),navigator.xr.isSessionSupported("immersive-vr").then((function(n){n?(t.style.display="",t.style.cursor="pointer",t.style.left="calc(50% - 50px)",t.style.width="100px",t.textContent="ENTER VR",t.onmouseenter=function(){t.style.opacity="1.0"},t.onmouseleave=function(){t.style.opacity="0.5"},t.onclick=function(){e&&e()}):i()})),t;var r=document.createElement("a");return!1===window.isSecureContext?(r.href=document.location.href.replace(/^http:/,"https:"),r.innerHTML="WEBXR NEEDS HTTPS"):(r.href="https://immersiveweb.dev/",r.innerHTML="WEBXR NOT AVAILABLE"),r.style.left="calc(50% - 90px)",r.style.width="180px",r.style.textDecoration="none",n(r),r},e}();exports.AnimationFrameLoop=ke,exports.BVH=Xt,exports.BVHIntersect=_t,exports.BVHNode=Ht,exports.BVHVector3=qt,exports.Camera=zt,exports.Clipper=Ue,exports.Five=ds,exports.InternalWebGLRenderer=Rt,exports.IntersectMesh=Cr,exports.Model=jn,exports.NetworkSubscribe=Ee,exports.PBMContainer=qe,exports.PBMGroup=He,exports.PBMMaterial=Pt,exports.PBMMesh=ze,exports.PROXY_CONTROLLER_EVENT_NAMES=Ha,exports.PanoCircleMesh=Ar,exports.PanoCircleMeshCustom=xr,exports.PanoCircleMeshSolid=gr,exports.Scene=kt,exports.Subscribe=se,exports.TextureLoader=Et,exports.Tile3D=wn,exports.Tile3DModel=zn,exports.TileBoundingSphere=Gi,exports.TileCacheNode=Li,exports.TileCubeTextureTarget=Ct,exports.TileCullingVolume=Hi,exports.TileOrientedBoundingBox=pn,exports.TileRequestScheduler=Di,exports.Tileset3D=In,exports.Tileset3DTraverser=Cn,exports.TilesetCache=Ni,exports.Work=rr,exports.XRButton=fs,exports.defaultImageURLTransform=Le,exports.getViewportScale=Ka,exports.imageSupport=function(){return Ve||(Ve=Promise.all([Ne("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A="),Ne("data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA")]).then((function(e){var t=e[0];return{webp:e[1],avif:t}})).catch((function(){return{webp:!1,avif:!1}})))},exports.parseWork=lr;
|