try { (function() { /* RequireJS 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. Available via the MIT or new BSD license. see: http://github.com/jrburke/requirejs for details */ var requirejs,require,define; (function(){var version="0.25.0",commentRegExp=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,cjsRequireRegExp=/require\(["']([^'"\s]+)["']\)/g,currDirRegExp=/^\.\//,jsSuffixRegExp=/\.js$/,ostring=Object.prototype.toString,ap=Array.prototype,aps=ap.slice,apsp=ap.splice,isBrowser=!!(typeof window!=="undefined"&&navigator&&document),isWebWorker=!isBrowser&&typeof importScripts!=="undefined",readyRegExp=/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera!=="undefined"&&opera.toString()==="[object Opera]", reqWaitIdPrefix="_r@@",empty={},contexts={},globalDefQueue=[],interactiveScript=null,isDone=false,checkLoadedDepth=0,useInteractive=false,req,cfg={},currentlyAddingScript,s,head,scripts,script,src,subPath,mainScript,dataMain,i,scrollIntervalId,ctx,checkLoadedTimeoutId;function isFunction(it){return ostring.call(it)==="[object Function]"}function isArray(it){return ostring.call(it)==="[object Array]"}function mixin(target,source,force){for(var prop in source)if(!(prop in empty)&&(!(prop in target)|| force))target[prop]=source[prop];return req}function makeError(id,msg,err){var e=new Error(msg+"\nhttp://requirejs.org/docs/errors.html#"+id);if(err)e.originalError=err;return e}function configurePackageDir(pkgs,currentPackages,dir){var i,location,pkgObj;for(i=0;pkgObj=currentPackages[i];i++){pkgObj=typeof pkgObj==="string"?{name:pkgObj}:pkgObj;location=pkgObj.location;if(dir&&(!location||location.indexOf("/")!==0&&location.indexOf(":")===-1))location=dir+"/"+(location||pkgObj.name);pkgs[pkgObj.name]= {name:pkgObj.name,location:location||pkgObj.name,main:(pkgObj.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}}}if(typeof define!=="undefined")return;if(typeof requirejs!=="undefined")if(isFunction(requirejs))return;else{cfg=requirejs;requirejs=undefined}if(typeof require!=="undefined"&&!isFunction(require)){cfg=require;require=undefined}function newContext(contextName){var context,resume,config={waitSeconds:7,baseUrl:s.baseUrl||"./",paths:{},pkgs:{}},defQueue=[],specified={"require":true, "exports":true,"module":true},urlMap={},defined={},loaded={},waiting={},waitAry=[],waitIdCounter=0,managerCallbacks={},plugins={},pluginsQueue={},resumeDepth=0,normalizedWaiting={};function trimDots(ary){var i,part;for(i=0;part=ary[i];i++)if(part==="."){ary.splice(i,1);i-=1}else if(part==="..")if(i===1&&(ary[2]===".."||ary[0]===".."))break;else if(i>0){ary.splice(i-1,2);i-=2}}function normalize(name,baseName){var pkgName,pkgConfig;if(name.charAt(0)===".")if(baseName){if(config.pkgs[baseName])baseName= [baseName];else{baseName=baseName.split("/");baseName=baseName.slice(0,baseName.length-1)}name=baseName.concat(name.split("/"));trimDots(name);pkgConfig=config.pkgs[pkgName=name[0]];name=name.join("/");if(pkgConfig&&name===pkgName+"/"+pkgConfig.main)name=pkgName}return name}function makeModuleMap(name,parentModuleMap){var index=name?name.indexOf("!"):-1,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,normalizedName,url,pluginModule;if(index!==-1){prefix=name.substring(0, index);name=name.substring(index+1,name.length)}if(prefix)prefix=normalize(prefix,parentName);if(name){if(prefix){pluginModule=defined[prefix];if(pluginModule)if(pluginModule.normalize)normalizedName=pluginModule.normalize(name,function(name){return normalize(name,parentName)});else normalizedName=normalize(name,parentName);else normalizedName="__$p"+parentName+"@"+name}else normalizedName=normalize(name,parentName);url=urlMap[normalizedName];if(!url){if(req.toModuleUrl)url=req.toModuleUrl(context, normalizedName,parentModuleMap);else url=context.nameToUrl(normalizedName,null,parentModuleMap);urlMap[normalizedName]=url}}return{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,url:url,originalName:originalName,fullName:prefix?prefix+"!"+normalizedName:normalizedName}}function isPriorityDone(){var priorityDone=true,priorityWait=config.priorityWait,priorityName,i;if(priorityWait){for(i=0;priorityName=priorityWait[i];i++)if(!loaded[priorityName]){priorityDone=false;break}if(priorityDone)delete config.priorityWait}return priorityDone} function makeSetExports(moduleObj){return function(exports){moduleObj.exports=exports}}function makeContextModuleFunc(func,relModuleMap,enableBuildCallback){return function(){var args=[].concat(aps.call(arguments,0)),lastArg;if(enableBuildCallback&&isFunction(lastArg=args[args.length-1]))lastArg.__requireJsBuild=true;args.push(relModuleMap);return func.apply(null,args)}}function makeRequire(relModuleMap,enableBuildCallback){var modRequire=makeContextModuleFunc(context.require,relModuleMap,enableBuildCallback); mixin(modRequire,{nameToUrl:makeContextModuleFunc(context.nameToUrl,relModuleMap),toUrl:makeContextModuleFunc(context.toUrl,relModuleMap),defined:makeContextModuleFunc(context.requireDefined,relModuleMap),specified:makeContextModuleFunc(context.requireSpecified,relModuleMap),ready:req.ready,isBrowser:req.isBrowser});if(req.paths)modRequire.paths=req.paths;return modRequire}function updateNormalizedNames(pluginName){var oldFullName,oldModuleMap,moduleMap,fullName,callbacks,i,j,k,depArray,existingCallbacks, maps=normalizedWaiting[pluginName];if(maps)for(i=0;oldModuleMap=maps[i];i++){oldFullName=oldModuleMap.fullName;moduleMap=makeModuleMap(oldModuleMap.originalName,oldModuleMap.parentMap);fullName=moduleMap.fullName;callbacks=managerCallbacks[oldFullName]||[];existingCallbacks=managerCallbacks[fullName];if(fullName!==oldFullName){if(oldFullName in specified){delete specified[oldFullName];specified[fullName]=true}if(existingCallbacks)managerCallbacks[fullName]=existingCallbacks.concat(callbacks);else managerCallbacks[fullName]= callbacks;delete managerCallbacks[oldFullName];for(j=0;j0)return undefined;if(config.priorityWait)if(isPriorityDone())resume();else return undefined;for(prop in loaded)if(!(prop in empty)){hasLoadedProp=true;if(!loaded[prop])if(expired)noLoads+=prop+" ";else{stillLoading=true;break}}if(!hasLoadedProp&&!context.waitCount)return undefined;if(expired&&noLoads){err=makeError("timeout","Load timeout for modules: "+noLoads);err.requireType="timeout";err.requireModules=noLoads;return req.onError(err)}if(stillLoading|| context.scriptCount){if((isBrowser||isWebWorker)&&!checkLoadedTimeoutId)checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0;checkLoaded()},50);return undefined}if(context.waitCount){for(i=0;manager=waitAry[i];i++)forceExec(manager,{});if(checkLoadedDepth<5){checkLoadedDepth+=1;checkLoaded()}}checkLoadedDepth=0;req.checkReadyState();return undefined}function callPlugin(pluginName,dep){var name=dep.name,fullName=dep.fullName,load;if(fullName in defined||fullName in loaded)return;if(!plugins[pluginName])plugins[pluginName]= defined[pluginName];if(!loaded[fullName])loaded[fullName]=false;load=function(ret){if(req.onPluginLoad)req.onPluginLoad(context,pluginName,name,ret);execManager({prefix:dep.prefix,name:dep.name,fullName:dep.fullName,callback:function(){return ret}});loaded[fullName]=true};load.fromText=function(moduleName,text){var hasInteractive=useInteractive;context.loaded[moduleName]=false;context.scriptCount+=1;if(hasInteractive)useInteractive=false;req.exec(text);if(hasInteractive)useInteractive=true;context.completeLoad(moduleName)}; plugins[pluginName].load(name,makeRequire(dep.parentMap,true),load,config)}function loadPaused(dep){if(dep.prefix&&dep.name.indexOf("__$p")===0&&defined[dep.prefix])dep=makeModuleMap(dep.originalName,dep.parentMap);var pluginName=dep.prefix,fullName=dep.fullName,urlFetched=context.urlFetched;if(specified[fullName]||loaded[fullName])return;else specified[fullName]=true;if(pluginName)if(defined[pluginName])callPlugin(pluginName,dep);else{if(!pluginsQueue[pluginName]){pluginsQueue[pluginName]=[];(managerCallbacks[pluginName]|| (managerCallbacks[pluginName]=[])).push({onDep:function(name,value){if(name===pluginName){var i,oldModuleMap,ary=pluginsQueue[pluginName];for(i=0;i0;i--){parentModule=syms.slice(0,i).join("/");if(paths[parentModule]){syms.splice(0,i,paths[parentModule]);break}else if(pkg=pkgs[parentModule]){if(moduleName===pkg.name)pkgPath=pkg.location+"/"+pkg.main;else pkgPath=pkg.location;syms.splice(0,i,pkgPath);break}}url=syms.join("/")+(ext||".js");url=(url.charAt(0)=== "/"||url.match(/^\w+:/)?"":config.baseUrl)+url}return config.urlArgs?url+((url.indexOf("?")===-1?"?":"&")+config.urlArgs):url}};context.resume=resume;return context}req=requirejs=function(deps,callback){var contextName=defContextName,context,config;if(!isArray(deps)&&typeof deps!=="string"){config=deps;if(isArray(callback)){deps=callback;callback=arguments[2]}else deps=[]}if(config&&config.context)contextName=config.context;context=contexts[contextName]||(contexts[contextName]=newContext(contextName)); if(config)context.configure(config);return context.require(deps,callback)};if(typeof require==="undefined")require=req;req.toUrl=function(moduleNamePlusExt){return contexts[defContextName].toUrl(moduleNamePlusExt)};req.version=version;req.isArray=isArray;req.isFunction=isFunction;req.mixin=mixin;req.jsExtRegExp=/^\/|:|\?|\.js$/;s=req.s={contexts:contexts,skipAsync:{},isPageLoaded:!isBrowser,readyCalls:[]};req.isAsync=req.isBrowser=isBrowser;if(isBrowser)head=s.head=document.getElementsByTagName("head")[0]; req.onError=function(err){throw err;};req.load=function(context,moduleName,url){var loaded=context.loaded;isDone=false;if(!loaded[moduleName])loaded[moduleName]=false;context.scriptCount+=1;req.attach(url,context,moduleName)};function getInteractiveScript(){var scripts,i,script;if(interactiveScript&&interactiveScript.readyState==="interactive")return interactiveScript;scripts=document.getElementsByTagName("script");for(i=scripts.length-1;i>-1&&(script=scripts[i]);i--)if(script.readyState==="interactive")return interactiveScript= script;return null}define=req.def=function(name,deps,callback){var node,context;if(typeof name!=="string"){callback=deps;deps=name;name=null}if(!req.isArray(deps)){callback=deps;deps=[]}if(!name&&!deps.length&&req.isFunction(callback))if(callback.length){callback.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(match,dep){deps.push(dep)});deps=(callback.length===1?["require"]:["require","exports","module"]).concat(deps)}if(useInteractive){node=currentlyAddingScript||getInteractiveScript(); if(!node)return req.onError(makeError("interactive","No matching script interactive for "+callback));if(!name)name=node.getAttribute("data-requiremodule");context=contexts[node.getAttribute("data-requirecontext")]}(context?context.defQueue:globalDefQueue).push([name,deps,callback]);return undefined};define.amd={multiversion:true,plugins:true};req.exec=function(text){return eval(text)};req.execCb=function(name,callback,args,exports){return callback.apply(exports,args)};req.onScriptLoad=function(evt){var node= evt.currentTarget||evt.srcElement,contextName,moduleName,context;if(evt.type==="load"||readyRegExp.test(node.readyState)){interactiveScript=null;contextName=node.getAttribute("data-requirecontext");moduleName=node.getAttribute("data-requiremodule");context=contexts[contextName];contexts[contextName].completeLoad(moduleName);node.removeEventListener("load",req.onScriptLoad,false)}};req.attach=function(url,context,moduleName,callback,type){var node,loaded;if(isBrowser){callback=callback||req.onScriptLoad; node=context&&context.config&&context.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");node.type=type||"text/javascript";node.charset="utf-8";node.async=!s.skipAsync[url];if(context)node.setAttribute("data-requirecontext",context.contextName);node.setAttribute("data-requiremodule",moduleName);node.addEventListener("load",callback,false);node.src=url;currentlyAddingScript=node;head.appendChild(node);currentlyAddingScript=null;return node}else if(isWebWorker){loaded= context.loaded;loaded[moduleName]=false;importScripts(url);context.completeLoad(moduleName)}return null};if(isBrowser){scripts=document.getElementsByTagName("script");for(i=scripts.length-1;i>-1&&(script=scripts[i]);i--){if(!head)head=script.parentNode;if(dataMain=script.getAttribute("data-main")){if(!cfg.baseUrl){src=dataMain.split("/");mainScript=src.pop();subPath=src.length?src.join("/")+"/":"./";cfg.baseUrl=subPath;dataMain=mainScript.replace(jsSuffixRegExp,"")}cfg.deps=cfg.deps?cfg.deps.concat(dataMain): [dataMain];break}}}s.baseUrl=cfg.baseUrl;req.pageLoaded=function(){if(!s.isPageLoaded){s.isPageLoaded=true;if(scrollIntervalId)clearInterval(scrollIntervalId);req.callReady()}};req.checkReadyState=function(){var contexts=s.contexts,prop;for(prop in contexts)if(!(prop in empty))if(contexts[prop].waitCount)return;s.isDone=true;req.callReady()};req.callReady=function(){var callbacks=s.readyCalls,i,callback,contexts,context,prop;if(s.isPageLoaded&&s.isDone)if(callbacks.length){s.readyCalls=[];for(i=0;callback= callbacks[i];i++)callback()}};req.ready=function(callback){if(s.isPageLoaded&&s.isDone)callback();else s.readyCalls.push(callback);return req};if(isBrowser){if(document.addEventListener){document.addEventListener("DOMContentLoaded",req.pageLoaded,false);window.addEventListener("load",req.pageLoaded,false)}else if(window.attachEvent){window.attachEvent("onload",req.pageLoaded);if(self===self.top)scrollIntervalId=setInterval(function(){try{if(document.body){document.documentElement.doScroll("left"); req.pageLoaded()}}catch(e){}},30)}if(document.readyState==="complete")req.pageLoaded()}req(cfg);if(req.isAsync&&typeof setTimeout!=="undefined"){ctx=s.contexts[cfg.context||defContextName];ctx.requireWait=true;setTimeout(function(){ctx.requireWait=false;ctx.takeGlobalQueue();if(!ctx.scriptCount)ctx.resume();req.checkReadyState()},0)}})();var qa=typeof Object.defineProperties=="function"?Object.defineProperty:function(a,m,h){if(a==Array.prototype||a==Object.prototype)return a;a[m]=h.value;return a};function ra(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var m=0;m0;){var d=this.yU[0];this.yU=this.yU.slice(1);this.U4.push(d);this.g0a(d)}};h.prototype.QAa=function(d){var f=document.createElement("a");f.href=d;return f.href};h.prototype.E2a=function(){var d=document.currentScript;d||(d=document.getElementsByTagName("head")[0].getElementsByTagName("script"),d=d[d.length-1]);return this.QAa(d.src)};h.prototype.g0a=function(d){var f=this,l=d.vr.get(m.SELECTED_SCRIPT_URL); setTimeout(function(){var p=document.createElement("script");p.type="text/javascript";p.src=l;document.getElementsByTagName("head")[0].appendChild(p);f.M_.cnb(d)},1)};h.prototype.defineScript=function(d){for(var f=[],l=this.E2a(),p=0;p0){for(var f=0;f|=|<=|>=)\s*(\d+)\s*x\s*(\d+)\s*$/)){d=parseInt(f[2]);var l=parseInt(f[3]);switch(f[1]){case "<":var p=function(q,r){return q":p=function(q,r){return q>r};break;case "=":p=function(q,r){return q==r};break;case "<=":p=function(q, r){return q<=r};break;case ">=":p=function(q,r){return q>=r}}return p(screen.width,d)&&p(screen.height,l)||this.mobile&&p(screen.width,l)&&p(screen.height,d)}return!1}if(n(d)){for(f=0;f1?h.prototype.v_:h.prototype.Yba:k("linux")||k("x11")?h.prototype.iua:h.prototype.Zba;h.prototype.browser=h.prototype.Tb=k("ipad")||k("iphone")||k("ipod")||k("macintosh")&&navigator.maxTouchPoints>1?h.prototype.Ji:k("opera")?h.prototype.WZ:k("edge")?h.prototype.QK:k("chrome")||k("crmo")?h.prototype.Pp:k("safari")?h.prototype.Yj:k("trident")||k("msie")?h.prototype.tF:!k("compatible")&& k("mozilla")?h.prototype.nx:k("android")?h.prototype.VZ:h.prototype.Haa;h.prototype.browserType=h.prototype.DO=h.prototype.Tb==h.prototype.Ji||h.prototype.Tb==h.prototype.Pp||h.prototype.Tb==h.prototype.VZ||h.prototype.Tb==h.prototype.Yj||k("webkit")?h.prototype.HQ:h.prototype.Tb==h.prototype.WZ||k("opera")?h.prototype.Maa:k("trident")||k("msie")?h.prototype.Laa:!k("compatible")&&k("mozilla")?h.prototype.Kaa:h.prototype.Naa;h.prototype.browserSubtype=h.prototype.Dc=window.location.hash&&window.location.hash.indexOf("xrapp")>= 0?h.prototype.uu:window.location.hash&&window.location.hash.indexOf("vrapp")>=0?h.prototype.tu:k("picobrowser")?h.prototype.su:k("oculusbrowser")?h.prototype.ox:k("xiaomi")||k("miui")?h.prototype.Iaa:k("samsungbrowser")&&k("android")?k("mobile vr")?h.prototype.a_:h.prototype.$Z:k("ipad")||k("iphone")||k("ipod")?k("crios")?h.prototype.EQ:k("fban")||k("fbav")?h.prototype.ZZ:k("safari")&&k("version")&&!navigator.standalone?h.prototype.FQ:h.prototype.GQ:k("electron")?h.prototype.zB:k("chrome")&&k("wv")? h.prototype.RK:k("edg/")?h.prototype.bta:!k("compatible")&&k("mozilla")&&k("mobile vr")?h.prototype.yB:h.prototype.Jaa;h.prototype.browserVersion=h.prototype.QIa=function(){if(h.prototype.Tb==h.prototype.tF){var d=b.match(RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"));if(d!=null)return parseFloat(d[1]);d=b.match(RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"));if(d!=null)return parseFloat(d[1])}return h.prototype.Oaa}();h.prototype.device=h.prototype.xk=k("ipad")||k("macintosh")&&navigator.maxTouchPoints>1?h.prototype.KQ: k("iphone")?h.prototype.c_:k("ipod")?h.prototype.Saa:g("picog2")?h.prototype.d_:g("piconeo2")?h.prototype.e_:g("piconeo3")?h.prototype.WK:g("vivefocus")?h.prototype.f_:g("oculusquest3")?h.prototype.LQ:g("oculusquest2")?h.prototype.VK:g("oculusquest")?h.prototype.VK:h.prototype.Dc==h.prototype.su&&k("pico 4 ultra")?h.prototype.NQ:h.prototype.Dc==h.prototype.uu&&k("picoa9210")?h.prototype.NQ:h.prototype.Dc==h.prototype.su&&k("pico 4")?h.prototype.MQ:h.prototype.Dc==h.prototype.uu&&k("picoa8110")?h.prototype.MQ: h.prototype.Dc==h.prototype.su&&k("pico g3")?h.prototype.OQ:h.prototype.Dc==h.prototype.uu&&k("picoa7q10")?h.prototype.OQ:h.prototype.Dc==h.prototype.uu&&k("pico neo 3")?h.prototype.WK:h.prototype.Dc==h.prototype.su&&k("pico neo 3")?h.prototype.WK:h.prototype.Dc==h.prototype.ox&&(k("quest 3")||k("quest pro"))?h.prototype.LQ:h.prototype.Dc==h.prototype.ox&&k("quest 2")?h.prototype.VK:h.prototype.Taa;a:{switch(h.prototype.Nd){case h.prototype.Xba:case h.prototype.v_:case h.prototype.aca:case h.prototype.$ba:var c= !0;break a}c=!1}h.prototype.mobile=h.prototype.mobile=c;e.PlayerAPI=e.qb=new h;m.prototype.append=m.prototype.append=function(d,f,l){d==m.SCRIPT_URL&&(typeof l=="undefined"&&(l=f,f="default"),f=[f,l]);n(this.yj[d])||(this.yj[d]=[]);this.yj[d].push(f)};m.prototype.set=m.prototype.set=function(d,f){this.yj[d]=f};m.prototype.get=m.prototype.get=function(d){return this.yj[d]};m.SCRIPT_URL=m.SCRIPT_URL="ScriptURL";m.SCRIPT_DATA=m.SCRIPT_DATA="ScriptData";m.FLASH_EXPRESS_INSTALLER_URL=m.FLASH_EXPRESS_INSTALLER_URL= "FlashExpressInstallerURL";m.FLASH_AUDIO_PLAYER_URL=m.FLASH_AUDIO_PLAYER_URL="FlashAudioPlayerURL";m.FLASH_VIDEO_PLAYER_URL=m.FLASH_VIDEO_PLAYER_URL="FlashVideoPlayerURL";m.FLASH_PANORAMA_PLAYER_URL=m.FLASH_PANORAMA_PLAYER_URL="FlashPanoramaPlayerURL";m.GS_URL=m.GS_URL="GSURL";m.THREE_JS_WEBGL_URL=m.THREE_JS_WEBGL_URL="ThreeJSWebGLURL";m.WEBVR_POLYFILL_URL=m.WEBVR_POLYFILL_URL="WebVRPolyfillURL";m.WEBXR_POLYFILL_URL=m.WEBXR_POLYFILL_URL="WebXRPolyfillURL";m.WEBXR_INPUT_PROFILES_DIR_URL=m.YB="WebXRInputProfilesDirURL"; m.CAPTURA_VIEWER_URL=m.CAPTURA_VIEWER_URL="CapturaViewerURL";m.DASH_URL=m.DASH_URL="DashURL";m.HLS_URL=m.HLS_URL="HlsURL";m.BASIS_URL=m.Gaa="BasisURL";m.DRACO_URL=m.Xaa="DRACOURL";m.CONTAINER=m.CONTAINER="Container";m.SELECTED_SCRIPT_URL=m.SELECTED_SCRIPT_URL="SelectedScriptURL";m.BASE_DIR_URL=m.BASE_DIR_URL="BaseDirURL";m.QUERY_STRING_PARAMETERS=m.QUERY_STRING_PARAMETERS="QueryStringParameters";m.CURSORS_DIR_URL=m.CURSORS_DIR_URL="CursorsDirURL";m.BACKGROUND_PRELOAD_ENABLED=m.BACKGROUND_PRELOAD_ENABLED= "BackgroundPreloadEnabled";m.ACTIVE_VIDEO_ELEMENT=m.ACTIVE_VIDEO_ELEMENT="ActiveVideoElement";m.SERVICE_WORKER_URL=m.SERVICE_WORKER_URL="ServiceWorkerURL";m.PINCH_TO_ZOOM_ENABLED=m.PVa="PinchToZoomEnabled";m.DOWNLOAD_DISABLED=m.g_="DownloadDisabled";e.PlayerSettings=e.PlayerSettings=m;e.PlayerEvent=e.z_=function(d,f,l,p){this.name=d;this.data=this.originalEvent=f;this.sourceClassName=l[l.length-1];this.sourceClassPath=l;this.sourceId=p};a.prototype.olb=function(d){this.xv=d};a.prototype["delete"]= function(){this.xv&&(this.xv.clear(),this.xv=null)};a.prototype.getById=a.prototype.ZD=function(d){return this.xv?this.xv.Xfb(d):null};a.prototype.getByClassName=a.prototype.Ci=function(d){return this.xv?this.xv.Ci(d):[]};a.prototype.createInstance=a.prototype.Ai=function(d){return this.xv.Ai(d)};a.prototype.disposeInstance=a.prototype.jw=function(d){return this.xv.jw(d)};a.prototype.bind=a.prototype.bind=function(d,f,l,p){var q=d.split(":");d=q[0];q=q.length>1?q[1]:"*";this.bd[d]=this.bd[d]||{}; this.bd[d][q]=this.bd[d][q]||[];this.bd[d][q].push({handler:f,context:l,immediate:p});return this};a.prototype.unbind=a.prototype.h=function(d,f,l,p){var q=d.split(":");d=q[0];q=q.length>1?q[1]:"*";if(d in this.bd&&q in this.bd[d]){for(var r=[],t=this.bd[d][q],u=0;uq?(v&&(clearTimeout(v),v=null),z=A,y=p.apply(w,x),v||(w=x=null)):v||r.tqb===!1||(v=setTimeout(u,D));return y}function u(){z=r.Thb===!1?0:Date.now();v=null;y=p.apply(w,x);v||(w=x=null)}var v,w,x,y,z=0;r||(r={});t.cancel= function(){v&&clearTimeout(v);z=0;v=w=x=null};return t},yoa:function(p,q,r){var t=new XMLHttpRequest;t.responseType="json";t.open("GET",p,!0);t.onload=function(){q(t.response)};t.onerror=function(){r(t.statusText)};t.send(null)},Beb:function(p,q,r){var t=new XMLHttpRequest;t.open("GET",p,!1);t.onreadystatechange=function(){if(t.readyState===4)if(t.status===200){var u=t.responseText,v=document.createElement("script");v.textContent=u;document.head.appendChild(v);document.head.removeChild(v);q(u)}else r(t.statusText)}; t.onerror=function(){r("Network Error")};t.send()},ngb:function(p){var q=document.createElement("script");q.textContent=p;document.head.appendChild(q);document.head.removeChild(q)},offset:function(p){p=p.getBoundingClientRect();return{left:p.left+window.scrollX,top:p.top+window.scrollY}},web:function(p){document.readyState==="complete"||document.readyState==="interactive"?setTimeout(p,1):document.addEventListener("DOMContentLoaded",p)}}}); define("tdv/constants/EventName",["require","exports"],function(){return{L:function(a){return a+"_change"},De:"default",Sa:"mouseDown",gb:"mouseMove",$a:"mouseUp",Qk:"mouseWheel",ma:"click",fi:"doubleClick",uc:"rollOver",Eb:"rollOut",UF:"mouseEnter",Qr:"mouseLeave",Lm:"pointerOver",Sob:"pointerOut",Du:"pointerDown",TB:"pointerUp",Yf:"pointerClick",QUa:"focusIn",RUa:"focusOut",HB:"gestureStart",Mba:"gestureChange",YK:"gestureEnd",aVa:"gestureRotate",ZK:"gestureScale",xc:"progress",CB:"close",OPEN:"open", Xr:"select",Rb:"resize",b_:"changing",V:"change",Pd:"stateChange",Bl:"cueChange",YF:"preloaded",ia:"loaded",$c:"loadingError",Up:"start",Fg:"stop",Ex:"play",iL:"pause",UZ:"beforeFrame",Zd:"frame",vd:"ready",hVa:"instanceCreation",Dr:"begin",Ub:"end",Eob:"cancel",Rk:"press",Nm:"release",Vr:"repeatEnd",Wr:"scroll",Pta:"movementChange",Dob:"beforeShow",jUa:"beforeHide",INIT:"init",od:"show",jd:"hide",YQ:"showEnd",aL:"hideEnd",iVa:"loadingScript",SVa:"processingScript",XK:"enableCookies",gUa:"applicationSet", eG:"userInteraction",Sua:"userInteractionStart",Rua:"userInteractionEnd",pca:"transitionEnd",jWa:"toolTipShow",Gua:"toolTipHide",Mm:"positionSet",Aua:"sizeSet",fta:"controllerConnected",gta:"controllerDisconnected"}});define("tdv/events/Event",["require","exports"],function(){return function(){return function(a,m){m===void 0&&(m=void 0);this.name=a;this.data=m;this.source=void 0}}()}); define("tdv/player/script/definitions",["require"],function(){return[123,34,70,97,100,101,73,110,69,102,102,101,99,116,34,58,32,256,112,114,111,112,101,114,116,105,101,115,270,272,125,44,32,34,112,97,114,101,110,269,271,34,264,266,268,34,286,288,77,111,260,108,51,68,68,105,115,112,108,97,121,298,267,295,272,289,291,293,319,34,66,97,115,101,79,98,106,318,301,287,34,80,104,111,116,111,65,108,98,117,109,80,314,121,76,311,116,73,116,101,109,284,273,275,277,279,281,283,271,256,109,101,100,105,97,357,34, 116,121,277,284,336,338,340,342,344,356,302,289,348,278,371,373,375,296,337,339,341,343,345,347,315,386,125,383,290,292,294,376,396,349,351,353,355,334,288,396,110,101,304,306,308,330,332,300,364,289,359,278,280,282,371,293,99,305,105,110,103,371,260,102,97,117,108,324,115,114,103,98,34,335,388,101,376,293,345,91,108,431,101,291,287,441,443,93,410,34,117,112,89,387,374,448,296,110,345,98,398,335,260,112,116,104,84,282,319,256,435,437,439,284,116,114,117,101,446,467,376,98,111,111,108,461,104,101, 105,103,104,481,372,492,469,471,473,288,119,105,100,477,466,389,288,470,109,472,114,461,463,90,515,468,517,508,521,383,463,88,525,376,518,520,461,99,327,116,83,104,259,111,119,533,296,494,496,461,97,116,116,97,99,478,111,80,322,403,421,483,438,319,436,108,328,491,516,34,548,497,383,110,111,114,109,97,108,532,421,447,534,528,461,574,576,578,465,581,506,527,519,509,34,586,577,108,524,590,569,535,594,115,512,526,482,101,436,563,376,102,275,403,568,526,34,450,109,91,100,111,117,98,108,490,32,612,111, 294,287,98,554,107,460,399,335,401,323,376,69,120,354,114,110,578,415,101,307,68,418,333,383,81,117,259,72,339,312,339,558,586,97,577,79,118,278,348,77,97,112,371,274,276,424,362,357,400,559,324,654,656,658,112,660,97,662,664,666,114,348,73,577,103,101,326,328,461,86,605,111,51,54,48,82,282,622,114,99,606,422,674,361,426,421,115,623,280,116,625,115,85,82,76,546,288,115,487,431,433,335,311,85,690,486,488,101,383,663,98,311,629,105,99,434,608,484,324,574,413,445,288,582,296,618,91,749,626,102,111,97, 635,335,625,666,566,725,34,291,114,315,91,699,260,701,703,705,115,707,709,76,101,765,762,288,103,97,431,745,609,485,271,49,615,583,593,529,335,542,115,65,117,368,111,789,747,735,489,794,547,495,572,678,402,324,773,101,775,704,706,117,708,101,781,765,461,405,632,99,107,326,521,421,673,360,425,363,320,632,114,326,829,103,275,117,110,100,67,496,575,310,292,268,105,629,767,755,338,114,105,122,629,553,108,287,689,280,538,108,784,34,727,101,112,541,543,545,600,616,571,461,328,625,268,367,83,354,874,542, 621,877,320,753,288,880,400,348,499,259,841,107,843,622,846,848,108,575,82,551,854,837,256,893,768,114,770,121,756,528,870,882,318,885,887,87,512,514,878,376,575,918,796,287,360,709,294,870,839,66,575,260,114,908,368,117,911,505,601,584,896,315,898,100,875,890,83,274,455,100,767,602,797,726,887,939,114,941,943,105,945,960,949,335,872,112,900,902,845,847,849,114,851,318,854,110,856,518,91,858,860,862,578,865,675,868,920,648,922,953,887,954,544,79,290,99,105,373,971,796,881,997,884,999,873,965,941, 83,860,710,913,961,1010,883,354,1013,888,876,657,859,861,294,578,781,432,927,892,591,595,972,726,1011,1024,886,1014,633,977,904,980,908,280,111,946,913,769,771,961,870,100,821,909,855,928,507,1009,950,121,952,1001,119,1003,554,1006,121,1008,536,383,974,1068,956,292,259,1074,603,1E3,889,544,86,994,1032,293,103,1035,912,1037,1021,1076,887,1070,1005,1007,1062,592,1075,637,897,958,1015,278,968,970,1101,1038,1064,1104,951,958,1068,905,575,767,429,906,962,871,1041,923,873,1068,66,108,821,1109,1052,1094, 1039,570,291,1107,114,1118,832,1036,569,1121,1119,1065,1067,1085,119,1087,361,868,1033,1091,104,1082,1123,921,1012,1043,975,940,278,1140,1120,980,881,1084,1027,575,990,1031,108,1153,1092,947,616,1095,335,839,1098,1072,1156,461,313,1115,259,1068,1028,1171,863,1174,1155,1111,1178,963,873,925,513,1193,1142,616,930,961,933,278,935,116,870,1185,1066,1106,1162,1139,1166,1111,1144,1123,1210,952,1198,1175,913,1203,528,1205,822,936,461,938,1213,1017,122,1019,1134,1113,894,1137,1045,844,1047,1122,1049,910, 767,1054,917,1056,1184,1105,899,1231,1018,1183,1076,1125,1025,1254,973,1168,890,1164,1216,1166,1255,1023,1126,975,1239,903,979,1122,767,930,1246,91,1217,93,287,1277,1229,1238,842,1240,1271,1119,1111,1274,915,771,1277,1279,980,920,964,1269,978,1262,1201,929,114,91,1275,1291,32,1280,1146,1116,1148,767,895,1114,1211,656,500,502,504,1223,1301,1204,32,934,323,1294,1044,1283,1270,1140,1243,1051,1245,1289,1247,919,1167,873,72,1315,503,1273,1319,1225,1321,1206,1323,1022,998,1160,1138,1132,1258,1040,1266, 1025,976,1284,1140,982,853,1061,1299,754,987,989,1030,863,993,1151,578,1324,1026,890,1129,1131,259,969,1133,948,1236,871,1260,1002,1004,1182,1194,1135,1158,1042,1381,119,1079,958,1351,384,1186,100,1181,1100,1361,1102,594,1219,1308,876,1373,942,1375,1110,1399,1112,1103,1352,1347,887,1337,501,1339,1287,1341,932,1343,1227,1208,1249,1395,1355,1327,980,1358,1050,985,1111,857,1170,1365,992,32,866,743,1369,1335,1161,966,1163,1215,1409,1217,1441,1138,1232,1234,1378,1411,1124,1353,1160,1117,1445,1093,1143, 1264,1312,952,1426,1297,1458,1176,1300,1302,1332,1276,1293,1292,1122,1370,1377,1177,1386,1256,1456,1148,1150,867,1089,1034,1200,1459,1477,1379,684,604,1430,1393,1387,1267,1397,1073,1385,1064,813,639,296,85,73,848,109,684,413,403,383,816,818,777,779,823,782,648,672,423,713,911,1500,560,288,1511,1513,821,780,1516,572,335,405,350,727,408,356,421,1516,294,946,727,276,371,311,68,608,278,292,959,271,487,489,1096,291,504,1544,1546,915,367,807,737,1179,101,103,788,421,1556,266,1558,1549,32,1551,1561,288, 293,1570,256,1567,1547,1559,1550,736,636,288,638,1523,325,327,329,331,333,637,1519,836,371,366,368,370,1111,77,367,369,1167,551,1451,616,755,1541,112,277,100,457,553,361,432,933,348,729,1612,276,112,729,870,314,472,497,1111,727,859,432,301,1583,34,956,499,292,647,649,651,420,320,834,675,714,320,1447,561,746,610,296,35,265,1652,102,751,1467,296,1447,383,770,944,946,562,791,32,53,809,1400,1123,577,120,1350,1498,1453,475,477,479,727,805,1649,1571,736,1667,570,811,461,109,431,1672,1409,1095,1522,324, 641,643,645,108,1637,417,1590,300,383,692,97,694,412,414,305,648,1699,419,504,1642,1520,1543,693,1605,376,1703,694,1526,822,461,428,430,1630,1647,790,440,442,444,1683,755,453,413,456,32,458,98,635,1692,404,314,413,1698,650,1700,269,653,655,100,657,116,659,116,661,575,663,97,665,667,315,1518,712,1594,364,1741,296,1752,1754,1756,770,688,1761,1073,1749,682,1753,684,1755,686,1757,1773,690,315,1719,695,1588,427,666,1539,371,104,605,1543,115,1545,1568,1548,1560,1076,338,891,1577,1796,1557,1799,1581,1552, 1767,288,696,1589,1711,1655,1713,1765,320,276,1071,1398,607,1728,284,793,752,1235,1674,351,686,709,1393,105,1716,767,1786,1721,1831,1065,828,107,80,1051,1006,984,1476,376,1275,681,100,1771,1758,1760,176,1784,121,827,633,1842,1491,984,870,1438,709,1846,296,1275,1851,577,1842,431,1423,399,383,84,104,471,645,105,1173,351,1789,323,946,555,686,694,1795,1797,1579,1570,1572,1632,1585,324,1503,1505,1507,639,1592,1764,676,421,275,108,108,1853,1535,558,100,368,432,84,1542,1673,594,1006,355,76,97,1625,70,862, 87,1338,1317,1037,755,494,108,1611,32,1928,941,287,453,1316,278,287,49,48,48,287,50,1940,287,51,1944,32,52,1947,53,1947,703,1941,32,55,1947,56,1947,57,1947,596,1440,383,1916,346,259,1910,103,1912,671,1914,1157,1256,1535,1464,1241,907,1060,1864,288,1275,1248,1659,496,1905,689,1535,1918,1625,479,642,1068,1496,1832,354,109,1989,648,1991,540,1481,1088,1173,1090,1222,1827,594,1903,1986,278,1975,1213,781,102,116,1689,1487,795,1453,2009,1906,1996,1138,939,552,111,109,82,1416,2016,1407,1980,1410,594,348, 622,1925,569,755,1862,1436,1364,991,869,461,1965,1349,2030,1298,2018,1657,1461,1412,1012,2012,1443,840,339,340,2028,2030,2017,1656,1668,461,2021,1987,1996,1998,108,2E3,1457,1272,1263,1272,1265,998,1535,1874,1876,787,108,1993,1383,1821,2064,2034,1973,1353,2056,941,1970,2063,1020,1478,2090,2023,1213,2029,1316,2050,2087,1658,335,2067,2011,2098,2057,2100,503,1450,1995,355,1068,1310,1685,1984,1904,2022,355,1976,1285,1141,2051,288,1288,916,1471,1474,1473,575,870,2106,114,2091,278,1970,2112,1972,2046,2069, 1919,1999,101,1992,1148,1994,2140,1964,1996,1908,1968,2110,2038,1488,1453,1494,100,2079,1875,519,1877,2083,2002,1368,2004,1485,1393,2134,2136,114,1970,2014,2031,1661,2169,1985,2120,109,2122,1405,1679,1664,1954,2087,1195,1454,2078,2142,1990,2145,2001,876,2148,1690,1135,2170,2108,941,2174,2102,913,2104,2054,1024,1907,1967,729,2174,2113,2180,1213,2138,1253,2149,731,2023,1296,1977,2124,2087,2127,1290,1472,1305,1293,2141,2121,1213,2025,2060,2202,1037,2204,2188,2055,2199,2137,276,2154,2094,2007,1123,2047, 2219,100,2182,1727,806,271,2185,2095,1379,2047,2013,608,116,2233,1460,2076,2217,355,2080,2162,2082,669,120,1415,1316,1493,99,2009,831,2195,2125,2088,881,2272,1985,831,1221,1486,2186,2096,2189,355,2152,729,2231,2027,2211,2024,2059,2027,2139,2196,1379,2158,1975,2246,1357,105,852,1492,1432,1363,1434,2044,1367,1483,2045,1065,1533,2155,1742,315,2314,2228,109,2264,98,2163,2269,1417,2297,1453,1965,2321,2163,1188,2308,1172,1192,2177,2119,2068,2229,2057,2174,2296,2276,2187,2255,2109,2030,2341,2284,2298,1974, 2238,942,2346,2215,2326,1915,2151,2208,432,2290,1536,2355,2089,2286,2320,2161,2322,2082,1138,2259,616,2235,2344,967,2062,2032,1493,2350,2338,941,2370,376,2372,2190,2144,2146,1169,1029,2044,2334,2216,2205,367,2160,2081,1878,1078,957,1081,2391,34,2198,2379,278,2347,2253,2157,2378,2180,2246,2275,2348,2327,2351,2360,2242,1452,2356,1917,2143,108,1858,1844,1360,2276,1733,2257,287,340,112,287,859,1316,631,2294,109,996,2097,2263,2366,2330,1148,1189,1435,2167,1154,2377,2438,109,2411,2406,603,2408,2293,2026, 109,2381,2052,2261,288,2373,2239,112,2457,288,2235,2402,2365,2395,2164,876,2116,549,2150,355,1482,1439,108,342,501,1431,1409,1927,2435,287,1687,1909,625,2428,276,2133,2178,2337,2212,2057,2360,2405,2243,2278,2273,291,2443,2044,669,442,1565,2362,2319,2329,2082,2115,1111,1311,2392,2159,2218,1326,978,2248,320,1663,319,2252,2498,2474,2409,2517,846,2450,2524,973,2408,2070,1921,294,2497,569,1224,1420,604,1233,460,731,115,2296,1891,2105,2492,2107,2439,2469,2529,2417,1123,2467,2070,2072,2442,2332,1191,2005, 2283,2451,1123,1793,260,83,2279,1904,66,117,2026,110,2033,2513,34,2461,2172,276,2174,2416,2156,2418,1997,2420,70,845,1359,2481,2276,42,2508,2440,2368,1252,1233,2447,2364,2509,1878,2552,2582,2244,2384,2071,2192,2073,1286,1446,2053,2401,2548,2135,2604,2534,2258,1466,2203,2610,2041,2478,1935,2589,2087,2483,2455,2485,512,100,2488,1571,2490,1346,2237,2403,2578,112,2580,2376,2400,2577,2464,34,2383,2419,1625,2502,1172,2479,103,2623,913,755,1207,1937,32,625,2015,2431,2030,870,2328,2593,1878,1349,2639,2507, 2525,2070,71,670,2271,2500,114,699,604,624,1717,1362,451,2134,287,578,119,315,115,2491,2336,2549,2494,2380,2617,2234,2610,2467,2122,1328,1979,1331,2128,1983,2547,2688,2613,2645,648,2615,1923,2030,986,451,1932,2434,1929,2655,1935,503,2655,1939,1954,1943,1954,1946,1954,1949,1954,1951,1954,1953,287,1956,1954,1958,1954,1960,1954,1962,2312,2702,2010,2704,2526,901,1356,1428,2303,983,2424,2624,2307,2388,1172,2310,2477,2661,2414,2435,2241,2666,2342,2197,2612,1535,2601,2019,2583,2533,862,886,121,625,2710, 619,1006,578,743,287,2737,2755,2550,2265,2396,2147,2085,1497,2667,2739,2179,2288,2359,2435,2211,2599,1905,2784,2792,2663,108,2282,2597,2634,2468,2781,2470,1261,2692,2260,1145,2787,2493,2665,2176,2400,2299,2357,1909,729,1970,2800,2206,2614,862,2642,2235,344,2572,2567,2009,85,1971,1409,2223,917,930,1812,2570,2572,287,73,429,110,2836,340,110,93,1278,32,2834,1588,2842,629,2838,2840,2850,2844,2437,2364,2511,1409,2575,2245,2527,2123,1329,2033,1982,1334,2525,1138,2340,2354,2760,1379,553,98,262,260,120,1393, 2043,2648,2622,2772,1276,323,2715,2427,32,2432,503,920,2568,108,831,2823,2610,2662,2469,2567,578,1707,260,2883,757,287,102,1878,864,627,1006,95,431,604,260,2905,2910,2037,2913,758,2910,340,95,511,1199,2915,116,95,2921,499,2660,2633,2820,2635,2496,2871,2412,2452,2448,2869,2257,2895,2459,2576,2351,2093,2375,2812,2786,288,2467,2858,2276,2860,2351,2581,2765,2554,2762,1996,2793,1128,1130,1406,2947,2872,2407,2938,2230,2435,2638,2964,2936,2957,2703,2171,2360,2941,2808,2460,2944,2240,2759,2972,2319,2556, 2192,1545,429,770,2305,2482,987,978,667,454,287,111,689,1734,626,2999,45,477,844,502,2777,629,101,937,2571,2843,2827,1985,2154,1340,1469,2128,2848,328,2854,2852,629,2854,2845,2996,1301,2835,3010,2851,32,2839,3022,3028,2855,461,786,2830,2965,2008,2958,2287,2358,103,2210,2400,2555,2420,2557,876,2476,1152,2561,2819,2393,2959,2797,1449,2935,2563,2499,2280,291,2504,1564,2651,2530,2949,3040,2584,1920,2768,373,2771,2306,451,2774,453,99,3006,587,2738,2979,2780,2367,2782,3049,2003,2390,2948,2236,2932,3069, 2385,2193,1372,2962,2955,1063,2413,355,647,2183,748,575,597,1655,2652,987,2737,2428,2797,45,629,108,121,1934,2420,3112,110,3114,2779,2742,1046,2123,1429,984,2883,2880,1366,1437,2003,3121,2960,1148,2977,2363,2801,2985,2386,890,2647,2560,2168,2813,2453,2301,2806,1202,1301,1303,2225,1306,2262,2802,3084,2893,1213,3135,2066,3068,1138,1970,3158,2118,2740,2171,2093,2982,3059,3164,2179,2048,1316,3097,2065,1076,2892,831,3050,646,291,3064,2335,3165,2815,2153,2709,3144,2967,2339,2257,3174,2277,3170,2493,3133, 876,1391,2399,3089,2467,2793,3057,2596,3045,3068,3138,3094,544,1405,3192,2187,2814,2635,3211,2761,2974,3055,2898,2783,1820,2785,3038,2603,2705,108,2615,2536,3148,931,520,457,1018,2542,2460,2544,2354,2546,3067,3217,2933,2757,3168,3066,2943,355,2764,3098,3039,3240,3154,2163,2369,3147,2382,2610,3213,2690,278,2870,3204,3089,2897,2803,2267,2799,3188,2364,3172,503,3215,2254,2351,3228,2956,537,862,323,1070,113,489,2472,1530,2514,1988,2585,1922,1924,2883,2712,1931,496,1933,2656,2030,2718,1947,2721,1945,1947, 2725,287,2727,287,2729,1955,1957,1959,1961,3104,1963,3153,2767,294,258,1687,3114,767,1628,729,3159,3250,3269,2616,2074,2609,2942,1965,3207,2961,1374,2971,3169,1179,3033,3012,1904,3044,2831,3149,1470,3018,695,3033,3021,2841,3033,3024,2847,3026,2849,3344,3030,2853,3347,2856,2801,3161,276,3274,3248,3136,3091,3358,2463,3254,2458,2978,3090,3054,3225,3048,2805,3325,2276,2466,3068,3196,3140,2559,1484,2446,3267,3137,3286,2535,3072,2678,1574,987,3076,2776,32,2778,2931,3370,3092,2605,642,2987,1757,2990,2425, 2992,846,2994,413,2996,2998,2995,3294,413,3002,104,3004,104,3006,413,3356,3091,2789,103,3014,3383,3091,3378,544,3282,3395,2515,3083,2441,1404,3096,3243,2553,2984,3385,3324,2608,3375,2896,1996,3141,578,2649,3065,2039,987,2654,114,1934,2887,2889,1871,2809,2689,3207,3400,2989,3126,3074,619,2993,690,3410,2997,3406,3E3,454,3413,3415,3417,3008,3321,3184,3225,3227,3058,1037,2538,3231,1737,3233,1655,311,2545,1582,3334,2826,2892,68,544,3447,3229,1275,3342,3020,3353,3032,2572,3348,3497,3352,3031,3346,3501, 3121,3421,3338,3223,2319,2454,2060,2970,1376,3053,3430,3397,3372,1086,3087,3052,3205,3250,3426,1149,3522,3143,3262,3218,2803,2397,1080,1576,2983,2868,2256,2015,3271,2020,3377,2797,2607,2221,2618,2942,2695,2410,2795,3424,3396,3513,2027,3540,3249,3476,3258,2058,2455,3515,1408,3511,2525,3526,3210,3435,2602,3475,3171,2213,2240,2946,3516,3551,3518,3203,3388,3193,1632,1867,97,67,663,278,1598,1641,1593,1901,285,637,679,376,82,339,1060,1696,3583,366,770,826,378,557,348,2318,833,3588,1644,1577,1996,2865,1470, 391,340,1532,407,1996,1740,3591,814,2316,406,1678,383,848,111,107,362,1842,3077,3222,711,835,3589,256,821,1626,1409,3319,1630,2543,733,3637,3238,34,694,111,843,670,1793,99,65,1080,3015,1275,3639,103,2846,3656,3618,1584,3592,296,1812,1639,1748,335,1769,1779,3581,1853,691,1834,3606,1900,3608,1810,34,3668,685,687,1759,2998,1785,1716,1812,826,1781,1772,97,1869,1523,358,3675,946,121,97,1803,3536,637,1006,555,1254,3677,3664,1747,461,669,112,3615,1534,1996,1763,3633,3608,34,1596,1602,1599,2671,1065,386, 3719,3709,385,529,3677,3710,352,3712,1510,700,67,3281,1537,1790,1753,371,472,3182,1566,1805,1798,1580,1681,1552,335,1575,1887,1806,3744,1891,3704,1588,3665,1815,3607,946,1575,84,1833,3578,3212,1613,116,3760,366,3703,3731,101,119,278,3652,455,3713,1643,1540,717,1006,720,3520,119,3163,1312,1840,831,2181,2962,3102,284,2523,3436,383,109,1708,2071,557,3688,1758,84,770,115,314,1430,68,1059,3402,34,2521,1824,3303,1826,3792,3784,633,831,2324,2315,296,3481,2655,1322,1228,1076,3778,719,282,3544,1165,2942,487, 686,1859,629,3101,3462,91,2677,846,1618,627,259,101,95,2037,95,436,260,2911,2844,461,118,114,2670,1233,3691,643,72,605,3766,3762,1135,673,843,282,115,2122,3247,3175,474,741,108,666,3800,3832,2423,110,3805,3460,2748,3333,1584,275,3864,115,3866,2595,3861,1379,2825,2843,777,3764,3654,3341,3350,3019,3504,3354,3507,3025,91,3027,2837,3499,3506,2843,2845,1424,121,3785,291,80,3883,292,3885,3868,3193,1899,3884,3866,1282,2743,1427,3374,2222,3340,2128,1304,3152,726,3825,720,2360,3015,1320,3822,3455,1584,348, 3911,114,350,666,68,770,103,3064,433,2512,2117,3814,829,831,3594,2703,310,312,348,3428,383,3852,2321,727,743,107,3594,553,1430,1160,3789,2251,1683,2187,2906,114,727,3874,2573,3876,3878,3596,1393,1210,3941,2696,3366,2126,3927,2224,2130,2226,1474,537,291,100,494,3995,3856,1444,3925,3546,3368,3890,629,405,558,945,3578,2832,91,3503,3904,3505,3023,2846,4012,2843,3345,4015,3909,3941,1337,1187,1148,3566,3332,3244,3984,3815,2501,1106,3146,4001,3480,3989,917,3929,2227,3961,114,3999,114,83,1041,984,2102,3809, 1650,265,54,1953,3106,2693,2942,4029,3953,291,3510,3926,3230,3821,1344,3823,3952,830,3912,3914,3865,3986,1122,3125,3880,1926,2750,1190,1436,2620,3009,2572,1912,3947,625,83,3932,3715,1318,3016,771,4017,3029,4014,3355,3901,3903,4018,3905,4020,383,759,99,945,3773,97,2899,3073,2520,1648,2184,46,1666,3812,3568,3824,114,436,709,705,867,4083,4045,629,4047,4108,324,1651,1653,1654,1683,2235,4056,4066,4041,4068,3885,3577,1493,4085,3886,2057,3360,3869,288,120,942,1985,1393,4004,110,405,3894,3017,3896,3343,4013, 3899,3907,4016,4153,3498,4092,3507,881,821,4116,101,4118,743,625,2411,4048,32,48,46,54,3973,1386,4138,3253,4034,2807,1157,4138,2E3,3459,3982,3836,3464,2999,3408,3468,1934,3470,3003,622,3005,3393,3007,1209,3940,4030,840,4033,850,2746,2588,3127,3380,2908,4078,1229,3335,2429,4151,4089,4159,3898,3500,4157,4094,3351,4155,4218,629,3908,1839,4201,4023,953,1309,3950,2473,4065,3816,1403,3373,3440,2103,2610,368,3958,315,1912,496,280,112,262,4084,4115,554,101,4044,1023,3461,4107,1823,1808,626,2087,2575,4131, 3786,2099,3567,3275,3824,98,718,720,3509,2257,4147,3033,65,82,699,3770,4214,2833,4216,4222,3906,4224,4158,3902,4221,4096,4161,4157,4021,4201,3423,3339,4061,3451,1421,1207,920,4138,2951,4259,3951,1981,97,69,645,2677,3535,4171,1572,1683,4260,4134,115,3817,3935,1342,3937,4199,315,3941,3913,3647,3915,3921,2862,2697,1050,3611,2700,2867,973,4138,4305,1919,625,4308,4124,1560,4311,4302,34,3852,4042,4123,4256,288,4126,1653,4053,4181,4163,4249,4117,101,4119,4251,4121,110,4170,4338,792,4176,1489,4313,4059,4087, 3936,4063,3938,1394,3910,4201,3934,1418,4294,1226,4297,1184,4313,3786,4203,1406,4328,2699,1055,4331,288,4343,111,1870,278,3957,553,110,1831,2249,1680,50,4363,2157,4138,3421,4374,3089,2192,278,1696,1856,4057,3545,1037,4409,4132,4290,4410,4228,2811,3574,3089,4261,4031,259,3266,4293,4368,1422,4319,4372,4416,958,3917,3212,4183,2606,4025,3434,4027,3813,3882,4323,4069,3157,3987,2643,2619,4041,4390,294,278,1853,4345,2250,4347,1940,55,554,744,4129,2610,3863,4324,4418,3562,3699,3939,4320,4373,3549,3221,1393, 4406,644,578,4322,3920,831,767,4475,4462,291,4415,4132,4228,2331,2751,3142,3382,3089,4144,80,3701,2562,3244,3852,1921,666,4186,4255,4453,3791,4113,335,538,966,3997,966,4042,4393,1830,3888,1453,4461,4069,291,4432,3862,4200,4410,4136,2400,4389,4391,4043,4358,3860,3971,32,49,3298,4112,4265,4332,4267,3779,282,3421,2818,2400,4513,4135,4382,2864,4385,1333,796,4428,4321,4380,4263,4438,4502,4466,4429,4132,4424,2276,3820,4295,4318,4482,2274,3550,3089,716,4534,3826,2544,2558,4486,3381,2006,4439,871,4138,2670, 3037,4465,372,622,555,1853,4103,4105,710,4171,1825,4578,3831,2573,3803,984,3978,3833,110,956,101,3744,3563,4503,3995,4506,1850,4448,643,4252,2747,110,3783,3931,4566,3780,4435,2387,4076,2445,4572,4552,711,4476,1137,4550,4419,4599,4610,4268,282,3867,4563,4624,4619,4480,4326,2745,2304,4254,3403,451,3128,4077,3131,4163,4611,282,2615,3315,1878,3631,913,3656,4642,4626,4568,3433,3331,4623,4578,4565,4652,4070,4237,4002,1218,4518,4483,1212,2057,4609,372,770,4590,3596,4593,3980,3806,4636,4578,290,3681,1912, 1637,3874,3802,3596,3981,3807,4586,1940,4501,4532,4625,4535,115,4516,1489,4664,4234,899,4382,4072,3494,449,4075,2444,2753,995,4561,4422,4229,3086,2166,3088,4630,4540,4693,4629,4677,4380,2246,2519,1822,4500,4400,594,4148,86,4275,281,3698,4087,3496,4280,4287,4156,4283,4220,3897,4281,4098,4233,4067,4441,4541,4633,4180,3495,1470,4038,3993,383,4240,4394,4396,4499,1680,4587,3881,4574,4643,4653,890,3179,4616,4493,4573,4658,4692,4762,3446,2883,2429,2627,2487,626,494,2455,4298,4353,4166,4355,4168,101,4452, 1680,34,4348,1652,4350,2371,4239,311,1210,4243,439,105,4246,110,1912,117,555,2827,4597,2573,3960,3919,4480,4202,4744,4204,4635,4073,3448,4638,4208,4705,3311,4440,3920,4292,4557,1419,3482,4560,383,4148,4007,697,4375,4731,4285,4737,4733,4223,2855,4736,4154,4832,4282,3034,4226,4430,1314,3187,4425,4317,4369,937,625,3839,1911,4670,4594,4685,4676,4757,4589,4852,4675,4811,4618,4766,4567,2084,4470,2813,4138,3444,2621,2480,2883,2657,116,1279,2885,4295,3454,870,4856,4591,629,4673,1430,4334,4307,4804,4691,4567, 3781,4694,4512,4664,886,1604,2883,1608,1610,1616,315,3840,290,4008,100,1057,622,2677,67,3077,107,65,4206,4397,1664,4579,4082,3843,102,438,566,2272,4802,4788,4702,451,340,4914,3846,4917,115,4919,293,3473,4298,4759,3421,4819,4677,3798,577,1912,3581,4681,4851,3876,4883,4336,4527,4310,4531,810,4232,4886,720,3478,3261,4820,4376,3483,2541,4379,4742,4325,3923,1465,4745,1468,3150,3991,3930,4631,4514,2058,4667,4444,4130,4696,4708,3533,1392,4865,4759,3781,4762,4712,4717,4960,4404,4955,4426,4378,383,4504,3996, 760,4507,4604,2404,4525,3761,3983,4718,4971,1016,3479,4573,4144,89,3697,4137,4759,2615,4668,4421,114,4417,4542,2698,1111,2866,4546,4707,5013,4666,5002,4954,4677,4975,5021,4024,2194,4716,4757,5012,4479,4442,4972,4964,3367,4182,4980,1913,4844,1420,4823,335,118,4728,3835,2991,451,1736,727,686,100,3995,865,114,4932,4652,2707,3288,3836,3290,1932,2715,3295,4295,2719,1942,1947,2723,287,3301,1665,1952,1947,2731,287,2733,287,2735,3079,597,5057,4692,3227,3387,2883,3391,3078,4197,3080,4547,4373,4443,5036,2465, 1264,383,1538,3737,421,5045,3770,647,67,542,432,710,1578,1569,1800,3677,1895,2027,1897,614,288,366,477,305,946,1210,677,3591,4008,5123,963,5040,123,1659,480,1554,677,1632,3760,4336,1836,820,822,824,1517,3674,3714,946,275,3782,903,3818,4142,4445,108,848,845,5148,3579,3619,1501,288,5137,778,1527,1515,825,383,83,453,260,79,2571,317,1640,3693,5143,387,804,3836,4871,2489,2430,2888,2030,2434,4776,1631,5156,1586,5170,3666,1811,111,120,1745,3755,3735,1882,672,1843,3969,4355,3749,3743,1890,3488,726,1018,4044, 1555,3742,1889,5111,5185,1693,642,4407,646,3795,1710,1591,4440,5173,561,3946,786,2677,88,848,294,1903,115,4783,4912,4126,4688,48,4921,5037,461,2999,4556,3808,4361,4528,4723,1123,4165,5230,4125,4127,4128,4948,5096,2942,1687,110,5239,4757,2999,4360,4346,4756,3244,5253,4315,2400,100,5222,4335,101,89,5226,487,496,5229,1466,4171,4785,1940,265,1940,5235,5251,3368,1675,478,480,4946,1682,5250,1684,4950,3808,5266,2677,90,5270,5228,5246,376,35,5233,265,5280,5150,5282,5292,625,3652,5145,4983,4171,1951,5243, 461,2923,1175,4586,5312,4750,873,5315,5241,5260,4573,5253,1545,476,4764,4618,2999,5297,4049,4127,5302,2235,5265,1704,5223,4083,112,1635,4166,2982,5310,5317,798,5060,4754,1664,5322,4618,1490,3980,5305,4585,5241,565,567,5288,2575,2540,101,3945,5336,5267,4527,5356,4258,913,2575,4165,5258,4722,5288,1691,383,3679,116,3708,3671,315,3708,3775,1714,1766,5211,376,5376,5378,3683,121,1786,3686,383,1745,1837,710,1816,3634,289,5197,984,599,5347,2522,5344,1584,5400,629,580,5403,3790,5405,5399,4594,589,5410,3972, 5373,2761,3968,5401,4527,4689,3361,3159,5420,629,5415,4721,1680,5423,5149,275,5426,4359,2057,4527,34,88,89,524,1732,987,5439,90,287,88,90,89,287,89,5447,5450,90,88,287,5454,5449,32,5448,88,870,3636,3318,728,3640,3235,3642,1800,2547,5434,5409,5429,2184,5412,764,648,1662,5241,91,2846,2087,1275,5394,5138,1528,783,2278,2900,4527,5349,4690,2576,110,866,5402,5473,564,578,5357,4301,5290,431,866,5428,5240,4346,5366,4340,5502,5494,424,5472,5506,4453,5508,5358,4341,4878,3596,5513,4171,5431,3918,752,4851,4879, 110,5505,5522,5412,5519,1430,5496,5514,5430,5317,3677,5484,5160,5139,1529,461,5165,605,262,5187,5382,1817,256,628,2361,4637,619,5177,2631,5179,3454,5182,2060,3660,321,3620,296,5547,383,70,3803,3670,5389,4413,2422,3807,5397,3715,1819,1099,4648,3244,280,366,5051,1506,1393,3696,4729,3244,2009,3983,4492,3703,5385,3663,3754,3706,5566,3803,5376,5569,1774,5391,1788,5194,1791,421,2565,5108,5208,5110,4257,1801,3427,3741,1888,5609,3745,737,3753,328,3755,1899,5220,1818,4716,5316,5418,1379,4751,4510,2271,5489, 4911,319,5491,5424,4840,1841,5407,4803,5017,1470,5567,551,5599,1854,5571,5638,2661,3673,1409,5159,1514,461,111,265,328,116,5513,4757,5654,102,5656,5505,4757,2929,2270,2400,4639,4868,2650,2883,3450,3452,2658,5180,1316,870,5314,5327,5492,1621,116,3702,4521,2003,4769,5061,2484,32,2486,2629,626,2429,2891,2900,5047,5553,91,2906,1904,2925,3849,2918,5701,2917,605,5701,2921,5678,5707,111,95,5665,503,4931,461,5585,3183,3768,335,1812,925,846,5612,320,5099,1883,906,4827,320,5109,1807,5616,4824,608,575,101,3858, 2902,5613,3750,5202,1809,5592,288,5270,787,413,521,5621,3776,371,99,5728,4836,4005,4324,367,4889,594,5753,1051,5755,2841,5015,4384,5640,4330,5019,4990,5754,2854,3913,3865,367,4179,4661,4054,3368,952,278,4660,4411,2537,4036,2129,2132,2131,5056,537,5771,3033,4403,2791,5667,958,5781,4469,5577,2879,5796,5001,5781,2435,4668,5761,4831,629,3955,2740,5782,4700,4207,4570,4209,4641,383,4626,5464,1629,433,5770,5762,2854,5809,1853,5776,5783,4789,3830,4535,5010,4973,2610,5780,4807,4962,2220,5812,3836,5668,4815, 3081,2643,5791,2572,5263,3089,5835,4520,5848,5801,5827,3829,3368,5806,5763,5825,689,5782,4278,5786,5056,5788,937,305,121,3323,4141,5524,1684,100,5867,5798,1384,5851,3842,5802,2636,4668,759,339,5803,2345,2101,5833,2942,5856,5772,5757,2247,4382,5861,4748,2132,1229,5866,5793,2455,1393,5888,3033,3787,821,5422,5412,5881,643,3553,2456,5886,4003,5866,5909,4668,494,5872,5860,4828,4747,3151,4039,5345,5877,4934,4843,4630,5901,2572,5773,3885,5775,4699,4205,3807,3107,4813,5814,5842,870,5907,5797,4808,5828,4965, 5920,4967,5922,2465,5845,2843,3505,5847,4630,5835,5898,2060,1393,5941,5878,3260,4511,4724,5913,5094,5777,4351,4824,5964,2057,2214,5024,4757,5916,1855,3042,4538,3089,4626,4953,4009,4821,2655,5360,3234,2576,3236,3261,3644,5928,5951,2840,5255,3244,5849,3538,540,5003,4618,5959,3364,5869,2187,5990,629,3505,5915,5913,4719,3788,5632,5411,5626,1453,5974,5925,5666,3089,6004,4149,3042,4366,3244,5974,5782,4543,5767,4386,5769,1179,5969,941,2934,5972,5579,4535,4888,5030,5994,5801,4537,5128,4578,5995,5970,3359, 5998,5492,3794,5053,3637,2952,4341,6024,5996,5805,5950,5808,2612,6025,5016,1409,5018,520,4877,5831,3287,5926,2749,2711,3292,2713,3293,2716,643,1938,3297,5069,3300,1950,5074,1954,5076,32,5078,32,5080,5090,5082,461,6E3,2099,2353,6034,4573,6019,5930,328,2247,3887,4147,6031,2404,6047,5635,4503,6057,110,5858,5883,5023,5962,1123,6096,5976,6042,5664,5852,6092,1316,6002,1135,6091,6045,3365,5095,5303,6113,6107,6097,5932,5943,6026,6062,1470,2701,5949,5823,5902,5965,5944,5236,383,5849,5765,1244,6027,4545,6064, 461,4626,4184,267,3401,4854,4074,451,4188,3466,3409,3407,3411,101,3471,4195,3416,4197,3418,5790,6138,2572,6109,5836,3123,4720,5535,5474,6013,594,5835,5953,4578,6019,5759,1123,4626,4867,5686,5048,5554,2887,5672,5675,2890,6169,5807,6020,2816,432,4935,4757,6019,5993,4573,6151,4613,4236,6141,5281,1123,6054,6124,6007,5917,5996,6121,1379,6123,2200,2940,5911,6210,5897,6021,4271,2400,6211,2374,5885,6126,2235,4626,4270,2015,5800,5924,6224,6234,5795,5877,5903,2221,5530,6178,6128,6170,2843,6130,2159,2840,350, 413,6203,4618,6232,6115,4577,4855,6036,6206,544,4867,4983,6201,6107,4463,2033,2187,6205,3139,3521,4711,3523,6018,6265,5892,5919,3928,5921,4749,335,6E3,5874,2086,6258,3826,5085,2770,3578,755,5088,5081,4816,372,6259,6270,119,4026,4656,6285,625,5956,2291,6239,6032,6119,503,4668,5835,4768,2882,5687,2626,5689,2628,2630,5693,6195,5763,6248,6006,6221,6318,5824,2762,6250,454,6253,5492,6019,6172,4628,4864,3089,6024,5933,4810,4701,2679,619,5841,3130,2166,870,6330,6325,4122,6322,5822,6196,3505,6251,101,6328, 6105,288,6218,4E3,5966,5829,3368,6282,2862,6175,6243,4657,1802,3320,6011,271,5516,5501,3283,5844,6246,5756,5774,5891,2862,6184,6323,5902,6336,4607,5813,4615,5939,6090,495,5908,2968,2455,6216,1453,5959,6181,6264,6375,6108,2612,6380,6143,6118,3190,2015,6056,6398,5850,5954,6403,6305,6392,6104,5149,5979,862,4646,3317,1627,5465,5821,6281,6389,5942,5837,2863,6061,2276,6063,278,5940,6423,6173,2744,4071,5934,6155,4812,6340,4814,6342,2311,6431,5882,5878,6393,594,6255,6198,3422,6068,6397,6196,6248,6241,5905, 6244,6381,2572,6332,5799,2149,1632,1849,5644,348,5646,4594,5548,5398,5576,5875,4630,5580,5131,5583,5684,1151,4086,1037,1866,4937,3690,4604,5561,1893,376,3705,1814,383,3581,3598,3585,3957,1210,5572,4676,5574,1521,5744,34,3967,3596,578,6492,770,6494,6466,5638,461,79,114,740,116,350,6017,256,5726,5196,4594,5206,5200,5209,5610,3677,6515,1339,5750,5383,320,115,1148,1912,625,4670,4753,5497,3790,4110,5412,1646,5416,4347,5248,5333,2610,5717,6369,4172,6540,539,4300,4171,6371,5368,4341,6531,876,2063,4171,56, 5412,4391,3979,2086,5625,4578,4240,1210,1337,108,360,5365,5499,5367,1037,2575,6049,5354,4346,34,2906,120,367,2927,5711,1613,694,269,5442,451,6582,6584,2921,538,3599,97,2915,6583,100,6585,2927,3181,4355,2491,5434,5362,3947,5364,6548,6554,6576,4341,5681,5683,6542,5523,3212,4025,369,5478,4346,6617,1386,1148,3708,2347,4171,1949,57,4175,6457,1872,335,4509,4395,101,6491,3584,770,304,666,366,3692,3632,5751,5384,3661,5563,288,6635,4117,3595,1430,6504,6639,97,6641,355,639,383,1033,115,5642,292,6465,1762,5142, 6646,320,6547,4420,5590,6226,625,554,1793,1726,6616,5412,2677,6676,729,6651,6579,4500,46,52,5537,6500,6666,1775,335,1511,3581,1881,5604,5725,846,6522,5615,5989,489,5105,1885,5607,5614,5732,3752,6690,6482,3756,3694,5752,489,4329,771,1511,3733,3474,383,906,6042,6553,6574,5509,6373,437,2429,3959,6548,4947,6372,1631,5375,683,339,5388,5600,3685,5602,3587,6713,5101,5685,6311,6542,3716,6315,448,6590,619,4775,2060,4772,5691,5178,5648,1704,3578,5651,5161,5653,5655,4355,5521,5241,6623,1379,5660,5662,6456,6043, 5346,6537,5417,6043,4208,6188,6775,2465,4874,5302,2653,4874,5673,4872,6193,4370,5678,6772,4757,3631,6365,4757,2878,6548,6768,2157,868,2901,6685,4784,5699,497,6751,756,3007,2915,5700,2909,2926,2912,5706,6811,3844,2571,5703,6815,5708,926,6166,2906,2926,2928,1924,6485,3662,1811,5594,6489,1531,276,463,6691,6469,3715,5053,114,107,293,2122,5286,808,5517,5290,4131,6496,629,6716,917,1842,112,6834,6482,5379,1855,4664,6848,3850,1964,5649,2276,6761,1722,3961,311,105,2677,6573,566,6575,569,2575,5045,774,767, 1525,5485,448,400,6673,4420,6833,112,6684,2177,5434,5534,4757,5433,3596,5663,5587,6653,984,5658,3244,6671,4630,6722,4908,2684,121,1912,5738,101,4526,6548,2721,6798,1083,4893,6548,1380,1620,1559,6806,4895,367,4897,121,4899,437,6098,1209,6884,2267,6396,4035,4376,5043,288,5606,69,327,6368,6747,2999,4481,6806,6939,4295,3280,259,3849,287,6944,6600,2037,6947,1750,3849,6816,6787,4101,740,99,6946,1305,623,743,6954,1279,6961,6958,431,6963,32,6944,279,6959,6970,2926,6950,6969,655,6971,6967,6975,3280,1870,6972, 117,6982,6980,6984,294,6953,2037,125,1623,495,6902,4242,111,6906,6843,6872,879,6556,1802,6935,604,6678,6780,34,6942,6783,987,6942,6951,6945,431,7011,6949,2571,7014,6989,7016,6960,6957,6959,6956,6962,6975,7023,6966,110,6968,6973,6983,1554,7029,6977,6812,7028,6986,6982,7013,6976,6985,7019,6981,6988,6979,2571,870,5606,4853,2748,4687,1947,4677,6927,97,120,6354,3988,6931,4846,881,1802,7049,2623,7051,6911,2564,759,118,1393,6722,6257,6612,5290,6728,276,6730,2859,2117,5098,3736,946,6934,6699,5740,5201,5469, 963,1604,6704,5107,6700,6708,5203,617,7084,5730,5608,7093,3746,5949,3965,7092,3744,5366,5611,119,4305,3535,5731,3751,1582,3727,6855,5389,1655,5118,338,100,1540,4213,6647,4371,5126,321,5125,7122,5606,7124,6531,5724,5129,1632,1634,278,743,3581,70,1772,5396,3757,371,312,5340,3015,6864,709,287,1511,702,819,5540,709,1324,292,111,7134,292,7145,1716,5395,7148,700,7150,5395,6827,6649,336,6482,7138,3584,3707,450,1535,6696,5100,320,2021,2571,7103,5742,1573,2611,2703,7180,7087,5844,7102,7085,6523,3841,6871, 1892,6828,1587,5619,3706,6528,5549,2643,1793,1929,402,4544,91,1600,470,1535,1623,2420,5819,3320,6633,288,4248,4165,4167,5753,6801,1638,3706,6668,6529,482,1829,6636,6791,5994,4208,6870,5500,6555,5290,5283,1677,504,4309,5287,6733,7193,7167,1694,5214,1697,5216,1746,6831,7214,1779,6526,504,6518,833,5638,6521,7189,6701,7112,6500,7250,6712,5622,7224,5051,7226,6797,5412,5351,3804,5353,7230,6998,493,4341,1885,4106,6780,703,5412,260,538,6793,5241,4399,6632,4503,5274,5241,4785,6544,4459,2942,6899,6176,5404, 7285,1584,6882,6780,7066,7061,6558,5342,5321,5412,6557,1372,6620,7227,4573,6563,1491,7282,5259,7279,4791,348,6570,6572,6610,6725,6845,6373,6796,6679,7296,2611,6606,7270,7320,6871,6726,3994,727,6552,5355,7321,7239,335,7313,5372,4677,618,98,3600,7266,7326,122,7309,4860,6625,670,6627,5241,6629,6631,3536,3580,3602,801,803,6836,6499,6648,5157,34,1600,1597,7360,854,3601,392,6505,6483,6468,7222,7199,5578,5004,1393,861,2027,258,268,6359,4265,5618,1813,652,3667,6736,1780,3681,6856,4103,7175,946,3794,4008, 781,97,666,7185,5610,335,7398,328,2829,7403,7191,328,3793,622,328,3492,119,2623,7110,1570,7105,2787,7179,7256,7099,7182,2134,7409,5989,4907,7409,7420,5117,7413,101,4305,643,7427,7258,7364,1586,6488,5218,6645,7223,2643,821,778,6208,7095,451,2521,287,3648,98,287,5106,1930,3794,666,1057,7316,6994,4244,4795,262,4798,4800,4929,5639,6542,6732,7232,6373,577,6125,7385,3819,1301,1217,44,6290,1716,44,4856,1893,44,686,121,4225,335,4008,72,5052,3733,3976,7476,894,5518,811,3760,7072,569,4650,7213,34,1849,5598, 7114,6739,6759,7362,7124,6486,296,7506,7391,6691,5601,697,383,6511,6513,1745,7373,7511,1566,110,1844,578,6886,6548,5634,5149,1670,7530,3089,5324,7225,6536,6567,4904,625,4906,3965,4909,4686,7288,3450,7008,451,6192,757,7166,7365,7523,6656,461,2070,7525,320,759,3386,6288,5087,863,3392,3394,3961,6745,4869,3836,4771,6314,4773,5559,2027,4877,2986,6153,3879,6338,3389,6157,3405,3465,6161,3467,7585,3469,3412,4194,117,4196,7552,6388,3314,663,4647,7211,1630,5817,2192,7599,6421,752,6260,3527,6272,3529,6473,7606, 6298,4464,5664,6778,6746,5697,5555,6192,4876,7595,116,2708,6516,6069,6752,6071,3291,2714,4295,6074,3296,2720,6078,2724,6080,2728,5075,3307,2734,3309,5091,7621,5869,4558,3232,4958,2543,3487,7100,372,7606,4668,354,6296,6401,6422,294,7653,7606,6262,6273,3563,5112,1504,5114,3007,1509,335,3665,308,7396,371,906,3842,7109,7098,7111,5743,7439,1894,7665,1506,7667,6589,5219,6669,5550,7139,6850,91,7146,6720,7339,5007,6462,5596,551,7507,7393,7115,7376,3634,3677,7699,1782,3682,1774,461,262,5748,5192,7221,6742, 7262,2401,267,500,666,4300,7472,5653,1747,73,3535,4649,6420,7333,3208,5586,6873,7079,6500,7712,7247,7366,670,6856,7559,5129,6500,7441,1701,5720,4286,2748,7252,3587,3865,7437,7650,292,6675,5729,1804,6707,7678,7182,5753,7188,7097,7756,7419,6574,7240,7365,5113,7683,1508,7685,7443,7199,957,5931,100,6331,6383,4910,6189,988,6440,4210,400,5890,4981,3528,4488,4713,5890,6172,6152,2988,4498,5697,6158,7586,6160,7589,6163,7591,7593,4198,6150,7652,6348,1592,6377,7558,6419,5820,5237,7210,7809,7212,7806,7774,6172, 5980,4316,2539,3484,7648,3237,7094,2134,4863,6461,3089,2036,7422,7779,6341,7782,446,7578,7792,5935,6156,3463,7584,4189,2847,7797,4192,7590,3414,6165,5715,7783,6377,7817,6067,7624,5936,7626,1929,6072,5064,1936,5066,6077,2722,6079,2726,6081,2730,7639,5079,7641,6089,3194,278,5832,6230,4460,7789,2612,3781,7612,6267,3862,7876,2703,5914,7805,3882,6377,4645,7597,6418,3638,7727,1964,5992,6821,7819,4822,7060,7849,7816,6059,6306,5997,6094,5350,5890,5952,6774,4060,4988,1345,7899,6098,7720,7073,6373,7773,6098, 6331,3571,874,6413,5870,2134,6037,6333,7788,6377,6001,7922,6268,7660,4208,6263,4028,7882,3165,7894,1199,7896,4062,4427,4379,7850,2612,7888,3316,7378,616,7503,7834,6296,7879,3183,1853,6287,7276,7625,91,6291,6088,6293,7917,5775,6100,3524,2740,3828,2075,3368,6578,2883,6853,6531,2489,4914,1209,7936,1853,1068,4982,7662,4578,2134,3323,4668,7825,4230,7078,6846,7978,5859,6009,5904,7346,4717,7944,2703,7785,7608,7787,7996,7774,2939,6405,7885,7651,7655,6038,4573,7561,3439,7448,3376,2703,3330,2963,6299,7935, 7997,2740,7925,7827,7927,8003,7993,6242,6767,5412,7984,8026,7349,5680,7991,6110,2462,5011,7906,7938,4617,1468,7910,4064,3239,5810,6145,1330,6147,4294,7977,8020,1906,2840,6929,5784,4956,6932,422,8051,5859,7902,8037,7887,7852,2325,5697,5062,3292,7858,2717,7860,7633,7862,7635,7864,7637,6082,7867,6086,7869,7962,5890,7884,7874,2942,8011,7644,5982,4295,5984,3485,5987,526,3644,2874,2876,2145,4999,6377,3781,7661,7609,8002,7918,7945,3071,7563,3836,7960,7567,7815,7913,3134,8006,7963,7775,7901,2495,2435,6446, 2973,5810,6215,7930,3216,8021,7606,7981,8102,5031,8034,5960,2257,8120,3569,689,7818,4375,1320,8090,7822,5988,7094,8086,5086,8108,7565,5089,8110,7886,7900,8015,8113,8084,3368,8115,6460,6472,4578,8011,7623,8065,7958,8067,7629,4192,7859,6076,8072,3299,8074,3302,7865,3306,2732,3308,2736,3310,5843,8156,8123,7904,8033,8059,2137,7932,5814,7934,4573,8115,8022,8158,8130,8184,6433,3924,1978,5766,6134,5768,6149,7912,7964,5035,7496,6127,7943,8003,8061,8006,7987,4614,2444,8188,7905,8063,7658,8006,7654,7729,8128, 8001,8193,8151,7967,4436,4655,7613,8019,8208,8118,6412,8182,6355,7183,8225,4710,2311,8214,5492,7984,6391,2232,8114,8131,7873,8205,4130,8131,8004,8012,5854,8121,1853,8100,7933,7982,6890,8117,6411,2060,8134,6143,7615,7570,7779,6192,5555,7620,8202,6099,5884,2111,8124,3889,3033,71,844,7501,7949,7892,8111,367,7776,5943,5893,6279,5895,8270,7791,6154,4859,4922,7839,941,7841,7587,7841,3001,7800,199,6166,7594,7871,8195,978,7656,8150,6098,6060,8198,6428,6135,4387,3645,2671,4539,8249,7965,3200,8259,8036,8244, 8216,540,8145,7779,8109,8178,1861,7569,5670,6312,6754,7573,6756,5556,2687,7937,629,8054,3229,8042,4370,8115,7980,7786,8040,8234,8156,7777,7837,6438,7780,5938,6441,2754,2046,2853,5735,292,7808,7989,7916,5890,8016,3555,1218,8131,7914,7731,5290,7924,7804,8154,8253,689,8290,7580,2883,7795,626,8297,3410,8299,7846,7592,8301,7802,8270,4885,8235,7979,1148,3198,7725,6894,7883,6055,8322,8224,5826,6140,8252,8207,8104,7998,8373,8247,2694,8320,2636,8262,8282,4709,3379,8187,8257,3244,8011,6417,7948,376,7950,8044, 8401,8204,8013,7875,8099,8407,8427,4055,8249,6283,8421,8348,7784,7611,4437,8018,4573,8030,8285,6277,3990,5787,3992,8288,3456,6445,8274,3541,8406,7952,8439,8228,8189,8364,8393,2398,8395,8457,8194,4977,3199,8024,8405,2740,8306,8058,7774,8469,8115,6172,4485,4615,8239,8436,7928,6276,4293,4966,8446,4968,8344,3220,8023,7983,6059,8350,6437,1606,4703,2309,8355,4706,8270,8474,8486,8192,8396,8122,8272,7903,6112,8135,2011,8039,5679,7477,8056,7898,8413,8137,5041,3482,8140,3235,7649,7182,8180,6212,8210,8105,7596, 7947,7603,8357,8339,7908,4367,4845,7942,8303,5059,6451,7838,3837,7627,5063,7630,5065,8168,5068,8073,5071,7636,3304,7638,8175,7640,8177,7642,7504,699,2650,4355,354,1745,1858,116,673,1863,7003,3949,7714,7687,8206,6914,5299,5233,5234,7291,3368,431,5748,6559,6767,46,55,5412,6471,6565,8578,51,8581,2571,1108,7303,7314,6632,5538,7245,8560,8562,3865,7814,6650,359,7415,2623,7747,256,1884,7091,7423,7757,7765,1586,7767,5115,7770,6498,371,8211,890,8390,1210,3605,1409,3728,4959,1506,5154,8423,3369,4603,112,2829, 5918,3326,8155,276,2829,6041,8279,5680,8633,1371,1382,7926,7053,8628,112,4576,8098,7774,5307,544,5880,6416,7889,8435,963,7810,7601,6296,5011,8638,8157,6284,3244,769,3209,8359,823,7812,8362,7621,8658,8643,6266,3983,8638,8475,8213,8417,6204,1919,8096,7324,4630,8442,6425,2642,4010,5894,5789,8656,116,4185,8351,8492,7583,8295,6159,4191,6162,6164,8386,7848,637,8674,8226,8017,8456,4618,8683,3123,4327,6146,8199,6028,8201,7951,8220,8346,8509,5149,1624,5141,7891,8655,798,8264,8331,7779,7618,6785,6788,6926, 8671,8480,3441,8085,2768,7922,7645,4957,3474,8141,8093,7094,8473,2612,8648,5146,8374,550,915,544,7057,5870,8744,7883,8733,4060,8482,5863,8447,8688,8413,8630,4955,8758,2846,8484,8703,2471,4231,7916,8659,8031,7995,5031,8638,6016,8162,4855,7606,8472,8082,8046,7690,6136,914,5145,8645,8316,6377,8369,6999,6846,8768,4761,8717,1393,3036,5958,8064,5154,2483,7856,7628,6073,8542,4528,7861,8170,8546,8075,8548,8077,8550,7868,8552,7870,2531,1353,6852,2829,8246,8431,3368,2134,8820,1268,8443,8631,1218,8794,8649, 8218,8186,8476,8677,5999,8106,7957,7854,7959,8147,6292,8179,8776,6237,5154,2187,684,8643,8822,8403,8497,2612,8791,7273,8793,8643,8464,8461,8707,8745,8750,8747,8408,3830,8438,8227,7880,1379,8663,119,8340,5492,8871,8062,8400,7992,6132,6427,5482,8312,6029,5406,8643,6302,5552,8488,2703,8826,8851,7969,3726,6735,1778,6737,7737,5389,1786,7739,7704,7391,6738,1854,7518,6880,3667,84,77,724,7702,3715,8144,8107,8326,8842,7961,5843,8219,8691,8491,8293,91,8380,4190,7588,7844,7799,8385,7801,6168,4099,8651,8526, 7813,7600,8715,8345,8E3,8347,6414,8867,8705,8869,1453,2840,354,6644,7726,8723,6356,8800,3289,8539,8068,8541,8167,8807,8169,32,5070,1948,8547,32,3305,6083,6085,6087,8149,6581,8736,8233,7058,8139,7821,8518,7823,7650,8219,7968,8829,7803,8008,8641,4757,8011,7659,642,6779,7958,6192,106,945,280,102,3115,2656,3453,2930,8689,8675,2389,8836,7386,6500,8610,7684,461,968,5215,416,309,7461,316,265,333,8911,5478,2573,6907,3761,1545,7077,6780,51,46,7300,1076,401,328,258,260,7383,340,8027,6622,46,7532,5870,260,9019, 9031,101,9033,4237,5522,9037,5412,5253,1833,395,4604,7353,4346,50,9026,7305,277,367,9044,9035,6686,50,4111,7357,7733,7245,6507,315,5565,335,1923,98,7170,3767,421,7117,5120,8614,608,3915,1486,8608,7681,1896,9007,7198,5398,5463,8935,730,5467,734,7404,726,2892,4944,4598,7338,1981,1904,544,1970,78,7401,501,7793,7294,4339,7322,522,3119,760,100,87,499,110,5738,9040,8390,2912,4355,1138,3960,1632,1511,7672,1537,7096,7755,5741,7186,4101,4782,5106,1886,8606,7181,9083,376,7367,1602,9087,3715,5668,8989,5275, 7548,6806,8267,8998,5676,537,6715,7204,6718,489,6344,821,814,6908,7536,8587,7271,7332,4990,7846,4938,3414,282,338,1929,5800,8536,6095,9167,3582,8006,6790,2813,3968,6289,987,1210,6923,4901,1619,1609,367,1861,700,6877,700,5395,1229,4848,1968,8032,8234,1058,8378,6477,2311,9146,7288,5690,2771,6806,6753,2027,6755,6316,2632,3176,5695,1708,5437,6823,5702,1794,6806,2904,6815,6813,2914,6815,5705,9225,9218,6820,2924,6819,5711,5713,4370,7075,5122,6731,7238,7721,6721,495,4577,6724,7331,9110,9166,275,577,83,3794, 339,6677,8565,7663,383,65,519,281,294,79,99,5753,945,984,8559,1051,8561,275,8563,6937,5172,8567,4928,5631,6542,5067,7326,2037,6853,7236,7288,3809,6806,7451,32,97,111,2661,4449,6564,7340,4755,6680,7308,8774,6023,8455,6621,4453,6688,7326,455,8564,7063,4527,3811,4578,6840,644,648,8577,9054,9064,4757,5253,1513,1130,7546,6622,6689,7680,9140,8593,9267,8595,3885,8597,7168,3681,7373,4044,3280,428,7140,6743,3590,9322,296,6502,6654,5151,6656,9332,489,7226,6490,6482,3728,7174,9017,1595,1601,3586,2276,6695,4990, 7556,1111,6638,6596,3909,3722,8620,9348,3725,5184,9338,411,3604,3616,409,5164,574,119,6835,9351,715,3764,9305,6909,5233,7305,2429,9380,6542,6910,9027,1259,6913,6747,9184,5466,7958,9392,103,9187,1610,9289,7528,2083,9181,5437,9395,7549,619,9395,9397,9189,1603,279,4892,354,7972,1617,1615,1737,2429,9398,2046,9290,7312,5422,6539,7326,312,4597,4337,9036,9063,9321,5562,7365,6835,6661,6068,8613,7122,7513,6829,7196,7735,5642,116,7705,3689,7394,3653,9377,9337,9432,1586,9445,1852,5389,7395,383,6684,9340,984, 6655,6596,6658,6643,1712,7141,5605,7068,9022,553,5584,3697,9469,9354,4677,4492,9473,5591,9368,6501,6895,629,9461,3585,9463,6660,5720,3033,7739,8391,1987,2840,722,8910,8722,3320,3641,9093,5733,731,9492,723,8527,9497,3643,8743,8038,629,9493,9503,9092,9505,7650,8754,8338,110,9509,9090,8091,5468,6524,7741,7745,985,9347,3681,7369,5175,8566,7223,5538,9353,9527,461,4103,5387,8897,7708,9449,7740,9479,9536,112,7738,3624,6965,7137,7139,9489,6956,6760,7160,6879,5896,5899,1111,7692,6150,6116,1037,9557,4824,633, 1835,9552,7152,8906,1196,7155,3733,472,9564,6759,9194,1659,9174,616,9561,6281,613,5154,9578,288,4871,9572,1720,9553,9139,390,7169,9548,6490,3725,7206,117,9350,5725,7081,5752,7429,9137,284,7105,7387,5620,7686,7444,8720,6051,2087,7503,6463,1750,9074,6637,7508,1854,9127,320,7406,1515,7401,6706,9131,9094,34,7128,9601,9625,7130,3698,7418,7186,4100,945,5168,5207,7762,7186,7178,9637,9624,9499,8951,4101,115,262,7750,7425,2612,9648,5770,7760,9130,7086,6370,7764,7405,7433,7435,9363,9654,7190,6709,9479,6835, 9143,5121,6858,5638,7690,6464,9616,6466,9669,4594,5462,328,7492,904,7446,8205,2575,9179,3089,9089,9495,9393,732,9498,3644,6568,348,4793,4245,7465,4580,104,4801,293,2574,4341,293,5267,9428,4453,7471,7915,3851,994,6479,569,6481,3681,3856,4877,7499,4795,8527,6402,9576,5492,4523,554,4882,4306,4945,9238,6844,9099,4445,9290,352,4449,770,853,7402,7330,7231,9708,6861,7510,9556,9565,5652,5817,4851,9439,6780,6611,8370,812,6490,3602,9489,9684,4630,1833,9742,5650,9744,6762,9720,7853,8418,453,4246,1716,4867,7890, 6052,7233,4858,7581,5870,437,803,7690,3613,341,802,854,7553,1586,9141,370,1702,6862,617,9598,421,7759,829,7430,7764,7664,9085,7769,7261,8567,9145,7616,8990,8729,8268,8999,7490,9498,2276,4650,9504,7186,9274,625,5696,7958,9222,6804,5701,9224,2919,6974,6817,6814,9229,5711,5709,9232,5712,6826,9709,2166,8989,8840,9209,109,9211,5692,9213,1632,65,7527,577,2206,9761,1722,9539,7716,277,551,9198,5149,612,3584,9385,4630,2906,1696,9614,5437,314,1678,6806,3975,727,3116,727,2491,5146,5153,1493,9402,6914,6919,959, 6918,9418,6920,1321,9415,9396,1321,6924,9409,4990,496,5152,8948,4494,6867,2677,79,4595,7121,7470,9239,9740,9579,3584,9887,8847,1135,9236,9023,9108,4257,9165,7080,5195,9378,5132,9628,9643,7095,7676,9638,9625,292,9849,116,7108,9651,3677,9557,7405,4355,7118,9668,6667,9450,4900,7754,1096,5128,7504,84,6603,2016,9481,3597,6656,9068,121,9485,6644,9437,892,9937,1043,7155,3648,5339,743,9060,1393,6587,4355,72,7068,9955,9937,5006,7730,5350,551,8718,7449,6190,5674,5558,1737,858,354,9865,2656,629,694,9867,1335, 9950,770,9952,99,9060,4596,9098,4855,9937,4491,5682,9966,1691,6500,9459,9482,9342,9462,3467,9464,826,5E3,9489,938,8490,8292,6339,8353,6386,8495,6293,10003,8828,8764,5946,8483,5948,1136,5878,8366,1184,4369,4147,4621,8426,8852,1179,4515,8009,4618,1230,4140,8451,4724,3922,8709,1048,8880,1053,8882,8201,9796,7666,9798,5375,8908,76,2E3,9489,4928,2673,8752,3212,3177,291,4668,10049,3061,114,3063,2506,4630,10056,2569,10027,8984,3244,10062,2893,291,2675,6868,8839,8537,2681,9286,108,6903,2686,498,116,109,9609, 8949,9328,10067,3178,2003,10059,9774,2187,7587,102,906,9963,8922,10067,7455,2628,4930,1437,9890,625,2891,2673,4867,10088,9478,9451,9084,10042,9486,288,1849,6694,9673,9929,9272,7444,6847,9670,7204,9672,7700,1774,6467,3876,870,9703,4307,262,4726,6997,9165,4503,9176,1874,9081,3292,1393,9692,7462,4794,4796,7466,9698,7468,9701,5290,3847,329,2571,9855,9905,32,4530,4578,1862,9711,616,9713,7706,9715,1723,9726,2393,9893,5052,3995,10132,9246,5044,9191,1111,6878,9566,9195,1575,9271,10153,9388,3389,9704,262, 3583,4505,4993,9705,1680,9707,9751,9153,10158,1847,1470,9156,7693,4388,700,10070,9891,9893,9559,10190,9247,2027,9177,8748,1553,9413,9873,9877,9875,5288,1607,10211,6921,9185,6925,2046,9788,913,9582,34,8582,9292,5348,5531,9717,8636,296,8625,9723,2588,9097,10187,1664,10189,8792,6373,368,6337,3445,9781,9528,9749,7337,9240,10134,9248,4104,9251,477,10178,4757,5628,7265,9685,9678,7493,9681,7448,2575,10128,9727,9895,9729,10247,6356,3842,262,10152,4171,10155,5256,9242,8390,9903,10116,7239,9908,6697,365,7433, 7400,9737,7761,9642,3644,5051,354,7090,9136,10286,9655,9913,9627,10293,9663,7094,9630,9651,6422,9645,9636,10301,7088,279,10305,7445,9134,6705,10308,9640,10308,3748,9912,3644,9634,9646,7417,7677,9138,8449,10308,9792,107,9794,7192,9658,4008,9660,2221,9632,9521,9665,10115,1073,9925,5119,7119,672,9023,678,7126,9450,1608,5133,9435,1744,7245,5193,9529,7199,10224,5490,6540,7287,6580,4786,5301,8573,1123,7234,5285,9728,7272,4949,6373,9756,10153,9038,6268,9937,5534,6794,5579,9937,6766,9320,7326,9956,116,5529, 8028,8591,6500,7242,4473,7244,9011,3755,1873,9937,7555,9997,6642,5157,10117,7199,10381,7535,6473,9961,7695,3089,5585,558,5320,6580,7130,279,5285,6941,9151,5714,9971,575,9973,6787,906,5107,9978,5817,10373,9960,442,6765,10425,6588,6893,8678,10426,116,4496,10428,4355,9989,6615,7663,9066,9011,7373,9944,5188,7366,339,984,1405,9266,727,9326,8564,9489,7311,8158,6566,4757,115,663,313,6837,7283,9027,8592,9011,8594,9269,8596,8936,288,9542,9447,3774,5603,7176,256,10313,10316,7824,9650,10478,7650,10325,10327, 7411,9604,7197,9606,7199,7474,8685,7478,980,7480,3390,7482,7484,679,7486,110,7488,9677,5737,10259,7495,10261,7498,496,7500,9719,9125,9193,6879,5140,9609,9946,3635,9808,9610,7727,9811,9625,893,9809,8281,9100,5339,6657,670,9517,9687,9091,5986,9520,9913,1490,643,10530,10524,7810,10521,9913,9853,6596,10209,4564,708,10351,2590,498,8530,3244,10369,6201,1708,744,5840,50,54,4111,104,10558,52,937,1006,2989,8505,9588,9440,7388,7743,303,7245,9331,101,9333,10256,10398,5398,9918,455,9281,8590,4578,577,846,551, 575,10225,5498,9245,9730,3915,3764,10443,9892,85,328,2135,9734,9724,4676,9244,9739,10203,2105,5131,279,10443,9022,10278,9315,9998,323,8680,1393,7458,6659,10281,8881,2128,10394,9484,10613,3823,10280,10475,1380,7089,9135,9623,10294,3644,3739,10060,5986,9916,9913,10315,10297,7257,7751,873,10581,9921,10481,5617,9522,9441,7442,9077,10340,833,10342,5124,9932,1259,9934,5134,9988,6482,10442,10624,9465,9336,9540,10108,376,9936,10432,9994,9940,10395,10618,10444,4288,7746,9790,7748,3885,10312,997,6741,9662, 10641,7758,9600,10640,5732,9603,9005,7682,8611,9799,7444,2170,9501,9494,10539,9496,9511,7186,8115,3505,10538,10519,10540,10701,9625,2620,9833,8537,9835,9837,6757,8404,8283,6400,10028,8183,8877,8507,9508,9502,9518,8263,5814,10711,8352,8728,9734,2659,9152,7893,10723,10698,10706,10700,10533,9690,7094,7971,3836,7973,6166,4924,103,10102,4211,2572,8277,622,10229,8654,9328,8095,3405,8681,8888,8468,10719,8234,10497,402,99,121,7545,105,10285,9771,8363,6377,8781,6377,9124,5393,9532,10243,9489,10277,8653,5289, 812,6500,9533,383,10671,9483,6640,10663,9618,6517,9129,10636,10287,7438,10667,5593,10649,300,9667,434,9773,4471,6936,7004,7958,7010,6976,7012,110,7017,6986,10810,6968,7026,7022,6965,10815,10818,7045,6787,7030,7039,7030,10813,6978,7036,7042,6987,7035,6951,7041,10822,10830,7018,4370,5585,9985,8860,5492,104,7068,10839,5589,9990,10844,7696,1531,9365,397,2221,10516,570,5792,9904,4730,3895,4830,5763,4019,4093,3349,10859,4160,4734,4839,3489,2843,10184,4992,3995,4276,10094,8510,4829,4095,4091,10866,3502, 4732,10878,4833,7489,1981,8863,75,101,121,800,7778,7005,6891,9413,6806,10893,5692,5526,1604,8701,10197,3770,3772,9448,1409,10873,10903,3774,4114,4165,4606,2588,4768,432,10072,4573,4148,90,495,109,9647,8444,4279,10864,4217,4838,10880,10924,4738,3355,10749,2843,6658,6200,6930,10876,9523,10861,3900,10863,10877,10811,4097,10930,4750,9013,405,7738,9738,10366,7497,5290,4148,886,10202,4746,4152,10928,4837,4015,4835,10865,10883,7047,9959,6226,5792,9883,5861,4090,10942,10676,4834,10940,10937,10943,4162,6866, 6876,10173,7163,703,5425,3596,10234,8617,7298,4578,4148,3892,9911,8481,10858,10941,10938,4219,10974,6196,10995,4283,461,6840,3910,10186,4593,3803,4357,4253,629,9841,10747,6802,1664,1960,9048,670,405,9661,8757,1470,3708,11017,8759,11021,3725,9190,5103,9216,3836,7264,6838,1930,4991,4602,5055,1623,10768,9615,3681,9942,4413,831,1160,10147,6373,7381,109,10985,8770,7943,7674,100,11048,10265,10950,10782,1686,8593,9366,1599,11058,10851,5716,10404,4630,6875,817,3581,11040,5026,8390,716,4778,10911,1430,6187, 10914,10567,335,9724,655,108,72,70,79,86,9871,9390,5697,9874,10216,9416,9931,9884,4600,9361,9359,10661,7556,5817,9697,5295,496,9815,8840,5335,103,95,4457,997,7580,287,11106,95,10893,1860,550,4304,10164,10840,10367,5237,11037,11068,10946,11070,11049,383,786,1233,647,11053,10245,10591,10267,768,268,11081,86,11084,11086,5667,5265,11124,4241,6857,4467,4410,8390,621,623,7542,4907,10767,7050,7288,431,1635,1006,9405,91,10746,625,4926,1904,10049,4802,2428,10898,354,287,11157,7135,4370,11129,6801,10887,121, 848,5739,10531,3035,121,275,4928,674,4762,6607,3948,11132,9730,4148,4081,11011,71,11183,1051,429,516,10013,10957,10994,10976,10996,10970,10999,10867,894,10855,315,10934,8055,10936,10998,11203,4735,10997,10860,11215,11207,10854,5929,6466,10968,10922,4011,10881,10971,10879,4284,11202,10972,10884,6581,120,97,11118,9704,11149,11125,11147,4414,11127,9389,279,9161,5927,9159,323,11246,10988,11209,121,8600,10969,11227,11206,10927,11231,11229,10931,4005,348,7408,11225,11205,11219,11258,10975,11232,4079,3011, 10146,378,11255,10958,10882,10926,11230,11269,11260,10909,4250,11074,984,11190,11135,9620,11102,10389,9182,7450,3946,11108,9262,11110,3596,11112,11293,11115,4224,11261,4149,3604,6225,10992,11201,11280,10963,10961,10925,4739,11208,4080,3647,11011,5376,2033,4010,11266,11270,11310,10929,10977,10868,3834,3467,6022,11212,10993,11308,11278,11322,10959,10944,11325,110,4726,10873,11275,11259,11309,11217,10962,11278,498,7391,115,11190,7237,10266,9897,7101,829,11154,7064,7288,757,11160,1210,95,11093,10900, 11221,2843,10918,2027,10304,11265,11256,11267,11279,11214,11270,3475,4272,2572,6658,11264,11306,4215,11276,11228,11342,11320,11281,11336,11193,625,3854,6801,11340,11331,10960,11343,11311,11335,11313,10932,3467,11254,11369,11382,11257,11372,11218,11374,678,3681,4478,6711,4824,3033,11388,4251,4164,11283,4358,11392,11373,11229,11333,11277,11312,3716,11028,7779,436,9974,6944,453,373,870,6840,873,1745,76,9113,367,925,5119,2571,11437,538,9319,5515,10246,11352,768,100,106,4250,294,3581,6859,11348,11119, 8390,103,11196,11185,277,11286,11448,104,11143,6482,11069,11241,11042,887,11044,9367,9789,9909,320,5102,119,5104,10630,10308,10617,9464,10291,10631,10298,7650,10289,10310,8605,10688,8607,9925,1597,6996,10646,3793,9353,541,7131,10794,10632,7094,4008,10599,643,10601,629,10645,11491,10322,7886,11051,9785,11499,9631,10321,9132,6656,6859,11484,10308,11051,729,5033,10680,11496,7490,10598,262,11506,2588,4892,10307,11496,10486,1814,10338,9927,1595,3467,1912,672,291,3584,643,837,91,3511,335,645,9075,288,5717, 302,11549,517,7171,296,6614,1155,11555,2983,11550,11558,8044,410,11556,595,11565,9626,9959,125,93,7412,3944,3493,7124,11046,11368,9450,10617,4819,1255,101,10326,833,11544,5118,278,11547,11568,11551,616,7268,3126,11573,10343,10656,7432,666,11379,10666,10458,7719,11273,339,7512,9883,7524,9438,10654,1040,10433,7139,10125,5573,11588,4355,11590,284,11548,11563,11557,11552,5413,3876,301,11574,1312,11583,10657,3037,1065,11602,1255,1755,6509,11587,7139,11546,11621,11592,11570,11554,287,11643,11625,11560, 11567,11623,11569,11625,5588,11562,3059,11564,11625,10842,2997,11628,11636,9614,4881,984,6859,11543,11640,11620,271,11622,11656,11624,11594,6509,11597,10606,5051,11534,11581,11327,11305,10666,6588,9699,4149,11638,7177,4355,821,7469,372,115,58,123,120,271,1320,121,11697,528,125,47,11695,58,1954,11699,48,125,1815,11618,11641,11670,11647,616,11645,2507,11657,11594,5590,11676,4553,3510,11128,10436,9348,11687,10476,11689,644,837,11692,11694,5585,11700,5042,4492,11735,520,11702,123,11734,1954,11560,11705, 11709,3619,11545,11669,32,11671,2498,11718,376,2878,11655,11752,11673,376,1775,11629,2949,282,345,4782,9358,9930,348,11401,9450,11046,10921,285,9840,10243,9194,9847,4861,720,10705,10083,9688,721,10740,7650,9686,10699,11782,10534,3644,739,741,7527,10556,6747,11358,9221,6808,627,760,870,11315,10534,11787,10532,9689,9512,7182,1506,51,11803,10737,11788,11784,7182,10149,9636,11250,10375,4573,786,10635,10456,2524,11536,7389,411,10336,11616,6497,9466,5623,10065,8441,9939,10430,8861,5471,9955,3761,5582,10753, 5870,7293,5664,10965,6672,9990,1393,118,11846,8682,4146,6462,10648,10570,10444,8621,10474,1883,9135,10178,10333,7410,7758,11480,11535,11855,9605,7771,5398,2299,10757,2211,9778,9370,3711,355,1740,9525,7706,10662,10396,9945,11831,10666,9439,9480,5434,10788,6657,10790,3624,11016,10336,10791,11425,7399,455,10769,11501,11486,9649,2119,7830,10684,7424,8303,10324,10687,11906,7104,9657,7432,10330,9734,9922,6710,10123,9617,10801,561,7538,11078,3067,9872,6542,9750,10238,550,11077,9851,5870,7491,10504,7447, 9120,10220,9560,9845,1838,798,11851,4578,454,361,9474,10603,11055,895,1632,1745,9841,9758,5573,11885,5493,2877,1393,686,11954,984,5839,11795,8178,11160,3109,10075,1695,1604,870,11593,9719,4503,11248,294,11250,8985,431,578,9859,6914,9861,7770,8840,9864,10419,539,9158,1558,294,11963,5697,759,114,2684,966,631,633,11996,4902,1603,10545,7005,9874,11160,11090,9879,4898,11092,9883,12001,4750,10803,2400,7071,9164,10170,1981,2571,7076,10278,11948,9907,3747,10678,256,11488,11521,9912,7431,9914,10484,7425,10643, 551,11509,11911,7763,7192,11825,10800,5117,9926,9078,10653,10116,11598,606,9933,11633,10606,689,9932,3580,11098,6596,11666,9539,3677,10787,9996,3585,11666,383,5547,9847,9200,9107,4757,9303,10253,8537,10808,6948,7031,7015,10834,10814,7025,10820,10942,10816,12080,7021,10821,7011,10827,12087,9822,12078,10827,7033,7038,10942,7043,12090,10832,7044,10828,9235,9842,4684,6436,10005,7582,619,11967,578,11969,354,6991,10955,8856,10783,1574,12026,10628,11679,12038,9602,11913,6581,9548,12030,12122,292,12053,7434, 10793,11863,12031,10639,12120,9656,10328,11762,12128,11533,9641,10294,10690,9479,7742,7770,10651,1883,4510,6051,1065,7129,9894,10666,12127,11590,12049,335,6588,12058,11688,116,11690,11731,5374,6693,10981,48,9349,3712,9847,3717,9474,913,7149,10982,9357,11096,1409,12061,7524,1553,11245,4998,4539,11059,9364,9714,9366,10568,336,11876,3729,9372,7390,8895,5377,9537,9617,12170,8315,1409,10471,5389,5381,8303,9942,8390,11934,9680,10505,12017,10592,2762,11938,569,12202,7509,1886,8303,5381,1111,12216,1854,12204, 731,12214,616,12222,3672,7510,2077,1012,12211,11135,10263,9098,11350,11949,6556,1974,12226,5386,8902,12197,12229,12218,8818,998,12220,12201,12243,9543,12203,3720,11079,1080,7690,12228,315,4103,9783,324,8903,3959,1873,859,684,847,11894,11919,9904,10516,3677,3583,3709,11895,10392,10670,9939,11890,10443,9489,290,8940,9967,452,10414,6787,10410,10418,1934,9976,480,4877,9988,10987,9987,10432,9958,11660,2400,10381,9962,10107,11887,12179,6656,12281,11880,3689,9489,7474,11443,3596,9299,1680,5480,1683,10160, 3689,3708,12313,1430,870,6578,1173,111,11444,1845,4527,12317,5288,12319,1758,11436,12327,3596,1209,1554,369,10082,11464,7068,77,10635,8531,932,8057,11649,9296,4573,11659,7069,2400,11033,10186,9594,767,12357,738,10243,9778,6482,9527,1861,11943,8985,7689,7204,9547,3584,870,259,11451,1207,3581,7690,65,11450,11452,7392,7706,10964,2997,2267,10139,11923,1912,5567,495,9061,4755,8579,5906,9766,1786,9769,10781,6874,10058,450,12358,12401,383,8297,2685,12369,10336,12261,9140,9353,698,700,9376,10352,5398,10119, 4594,12362,12270,315,11829,11301,5098,11119,10130,82,10169,9730,555,10249,10136,9170,10138,5264,9013,9694,7464,4797,9697,11685,11472,4824,9196,10178,11819,5999,3842,9636,10271,10462,10180,6581,10269,3877,12014,9386,7052,12070,12425,10166,10586,966,12428,11135,11066,10244,2087,10174,9745,3700,11848,2813,6800,11104,8537,9818,9223,3979,9228,2916,9823,12480,6824,9826,6821,5710,9829,5181,6167,10196,4342,12366,3244,12235,2159,4608,4601,10186,12464,11448,9133,7690,10195,6605,6892,6887,5520,9471,10874,5149, 12466,10199,4169,10201,11842,2575,12430,10205,10055,11926,12004,10211,12006,10215,12008,6922,12010,4901,6758,10292,6863,11940,9567,10223,5624,7304,10380,10228,11973,2460,10600,10233,11457,10365,10133,288,10240,4607,10242,7361,10949,12546,7200,10249,9250,6389,9253,12386,7264,7539,4757,12208,847,10260,51,8390,12495,12500,10605,6933,12493,11834,1904,7070,10275,11243,12019,6729,10611,9740,10626,7397,10283,11899,11485,10685,10208,11489,12531,11901,12586,798,1794,11527,726,1802,10308,10318,11580,12134, 9913,11678,12140,11902,4990,6703,11866,11510,9639,2178,11905,12590,11907,3747,12130,11517,9625,10318,11772,12600,3644,7426,12594,7187,9793,12125,12136,11897,328,10331,11917,10335,12420,10337,12043,10339,9928,3222,12048,12151,10658,3731,774,7150,9489,12466,3015,12174,7151,1514,2682,10194,12166,7165,9190,774,9949,817,12647,12653,6879,12651,2128,12648,12654,11473,11887,10114,11409,5393,11016,12185,10578,3715,7474,12358,12254,11398,6058,9181,4906,12327,107,511,7754,11019,11307,11420,11384,11370,11407, 9658,11883,5377,11426,5697,2840,1628,5747,9878,612,4597,95,11106,2905,292,3843,11113,5052,11114,9939,457,121,4395,2922,1006,104,3846,281,1929,3844,102,95,11477,11271,12679,7089,5147,1163,906,829,12684,5981,4088,10923,11341,11332,11395,11323,4289,11412,2572,11366,2449,12611,10857,12687,11406,11421,12738,11334,11324,12678,110,12743,12619,12686,11381,12736,11394,11385,10963,3851,4728,10907,12172,1037,10906,114,9456,12581,11540,12693,12029,12608,10334,10797,10569,11869,12146,371,11579,11905,383,11771, 2589,12050,7124,10896,9900,12729,12682,12732,12788,6653,4782,12730,12683,311,12049,11951,12401,11859,8614,12610,12603,12591,8424,689,11909,9653,12612,11912,12040,7733,7173,3712,11921,11832,8487,10254,11923,4527,7284,10759,5826,8756,4662,8506,114,8891,8981,8932,8525,7598,10725,12247,1012,8763,4238,2942,1840,10035,10207,8449,8469,2158,12831,8734,6361,2822,6348,5134,68,5135,282,5539,5652,9847,11051,1017,624,729,12315,10236,9896,9751,455,9524,3747,8750,2172,9937,4527,7356,5031,291,328,2267,74,111,98, 12864,319,8585,7326,108,488,3583,555,414,431,9053,4453,3305,4578,1547,575,12432,7130,9172,12015,12888,6676,414,7055,12893,1680,6085,7540,7416,11513,7055,12880,12882,12874,11015,120,5325,12284,9992,9479,12857,9762,12194,1770,11895,12803,421,12618,10320,10637,10317,12327,9635,12611,11863,9664,12777,9329,7706,7738,12818,3693,1711,12236,7336,11134,11448,2134,12206,12576,7095,10182,11337,12427,12552,12018,3716,670,12883,11621,5481,10038,10957,9443,9453,1783,668,670,287,12967,7707,12223,12970,32,7515,12195, 6691,3708,11233,1965,12961,11670,12963,6480,10858,12966,7516,10336,1786,12971,12989,12633,12991,12976,1750,12972,6856,1786,11233,12495,4247,11416,709,11284,11155,4346,10237,12114,2066,10575,6984,5732,11133,10604,11929,12424,11238,12545,12958,608,299,5154,9070,12808,278,12066,1409,13025,12453,260,10270,12456,6780,10273,12494,12460,4892,12462,10235,319,13009,11121,1964,12542,9725,13019,11054,12553,13002,12955,11440,104,11390,4042,8390,2467,12983,11750,12985,9712,12987,5597,12993,12941,8898,7482,32, 12998,13067,6759,287,12977,12926,12994,1716,11233,12563,7494,11936,12952,3450,1853,12951,8668,13018,10129,12497,10185,10168,12957,9730,11816,10151,13034,10153,13036,12572,2740,3708,13059,12331,10620,11381,12988,12978,10336,3708,12992,13107,12633,13109,12996,1777,13075,13066,1774,12980,12372,12256,12330,13061,10159,13063,7698,13065,9446,9455,1080,13110,13116,13128,1774,4103,13073,12997,13127,9454,13134,1080,4225,1632,12306,6596,9344,9334,9489,10580,9850,2400,10585,5053,9034,12398,4341,10593,1554,10595, 9516,11529,13046,8921,13044,11677,10594,10663,10610,10781,2187,11482,10614,11873,13151,10663,7690,13144,10623,12693,5561,8602,12032,12623,13149,9920,12615,12932,10796,11887,12144,7116,12044,10652,1641,11612,7125,12054,7697,9444,13138,12968,5380,12200,12673,7363,12939,13106,13132,13139,8904,6740,7519,335,9266,4523,11896,9620,6658,11481,7433,11769,12620,7094,10483,12623,11150,4905,11910,12812,11511,12628,101,11602,13229,5210,12143,6830,7442,10853,1170,3064,11836,5492,13240,431,6897,4573,13244,12754, 12386,6337,6889,3244,12548,2588,13242,9199,12104,110,13246,4113,5134,2797,8277,512,11896,8604,12589,12937,13188,7194,9006,9798,12943,9490,2689,8635,2211,3313,7622,10551,8352,8164,8805,8957,9277,4530,8961,5072,3811,8965,8078,8968,8328,2319,13277,3575,2300,8879,8310,13104,6148,6430,12829,3285,2191,8983,12820,3244,3328,3047,8127,8796,7966,3570,6404,2175,8440,8861,3322,8242,3554,3573,8706,9722,2954,2049,8006,3257,5909,2758,4551,8240,3206,13311,8657,13328,2408,3526,12846,2453,7920,10019,12231,3363,8209, 12844,13026,2741,5868,10032,3224,109,8855,13164,13348,13298,8684,4444,8686,8287,8761,13356,2980,7921,8972,5870,13310,13306,7729,8469,1965,8777,9901,2349,2448,3526,8221,12920,8125,13315,2092,2579,3191,4264,8234,3548,6363,6010,7325,4657,2532,13335,13370,10761,5432,3160,8398,13347,8626,2207,6449,11328,4618,2577,5971,11924,3245,3122,6434,8205,13360,5947,6280,3082,3558,2976,13337,3189,13382,112,13331,13318,13325,2121,8773,13390,4757,2577,2201,8006,3263,3155,6928,13281,4860,10053,114,8469,3201,3543,7988, 10770,3060,10063,114,10051,2285,2801,8886,2292,13321,13353,13351,3429,13357,12843,4809,6384,5840,7781,5816,1312,8619,9355,12191,2592,2469,8873,8234,13432,3432,8415,8835,8129,13309,1996,8752,8738,8057,2577,2154,8412,3284,13326,6120,13454,2525,13450,13297,3531,3155,5853,8892,3512,7902,13343,12837,13345,10024,13494,2668,13393,9001,2333,9003,8234,3257,3526,8394,7954,2810,8318,10061,3145,6379,13395,13367,2756,2455,13497,13415,2070,12159,7617,2887,7572,9970,9835,3419,3396,3526,8101,8222,10066,2408,13340, 13419,5803,2455,4668,13405,276,13541,1996,12344,5254,7895,2640,1996,6310,8265,8066,5688,9206,9838,112,8337,13381,13539,8261,13487,973,13437,10105,3181,12345,13476,3431,2510,13442,9730,13329,13426,7299,6562,2516,6425,13537,2364,13279,8087,4956,8517,5986,8519,8303,2394,2803,13439,13334,13369,13504,4487,13379,1379,5606,3336,2893,3033,12442,3153,3364,3561,8944,2583,3202,13513,13391,13376,2797,13371,2604,3781,7986,13591,2706,12851,13399,10710,9802,9834,13554,6749,10715,13344,3552,7920,13604,2211,13469, 8973,8532,4989,13602,8402,13501,3312,2420,6187,13621,8537,9150,9969,9806,13415,13607,2109,13385,5149,13368,648,8788,4564,13437,12513,11291,619,10074,2683,2685,13558,13512,13500,12832,8449,13456,13410,4383,8711,8311,8200,13303,13587,2821,294,8161,8801,987,13283,8069,6075,8958,8544,8809,8962,8811,8964,8549,5077,8176,8843,13662,2689,5811,13258,6385,4704,10009,5843,2577,2415,13323,13605,8375,2689,13612,3477,8838,13657,8841,2775,8148,13294,3564,13441,5029,11833,13319,3557,13489,3530,13569,2600,13517,2343, 13491,2163,13447,13375,2598,13716,6207,10025,13363,3214,13649,5870,3257,13296,4564,13392,3070,8217,13399,10953,2892,13233,12746,12758,11393,10862,12761,11345,13626,3518,13354,10951,6373,2861,13358,1242,10037,12986,13672,13362,13408,8250,13483,372,8679,13173,5848,8725,9774,6784,10731,8997,13644,10733,13563,2673,13544,3225,3265,13548,13722,3251,2510,12474,12695,9816,11798,12477,9218,9820,5704,12482,9821,6601,9827,9825,12488,13780,13484,3241,8232,13407,13329,13398,8865,8574,13364,13422,13324,13386,3068, 13757,11056,3537,13648,13332,13816,3525,13732,3209,9298,3517,2975,2969,13384,13822,13396,13320,8231,8243,13399,13542,13421,13737,13726,3371,7835,8291,13775,3404,8695,7796,8697,8384,3472,12490,13530,3518,3565,13827,2400,8798,13314,2493,6233,13374,8452,3557,3329,2165,8238,13506,5149,13508,3056,13608,13428,13545,7055,13631,7923,13616,3226,13709,7564,13712,13692,5653,689,10092,11500,8840,10096,32,2565,9040,865,10101,12491,13471,13570,8237,2477,8477,13869,13742,3093,8365,13840,1135,1965,12475,8352,11967, 477,2469,3118,3114,3116,1625,13913,7488,3512,10004,13845,5937,10008,7833,13646,13825,8864,8823,3362,3396,13865,8212,9002,13475,4765,13515,13761,13411,5785,8687,3132,13871,13664,12849,13705,13349,7920,13615,13834,6219,2015,13769,2695,13342,13905,1379,13953,8503,13521,13408,13546,13876,10052,2673,4762,10106,13859,13276,3042,11211,13404,13874,7056,13786,13514,13538,3942,13831,13423,13823,3557,13509,8460,13511,2689,13647,6111,13984,2741,13931,3095,8868,13828,2954,13955,13863,2179,13339,13725,13906,13675, 8504,7940,8089,8975,13585,8977,11903,3557,13330,13995,2583,13590,13824,2469,13493,13665,13805,3558,5961,2796,2469,13785,7939,13490,3214,13703,13451,10031,13366,6003,3277,9260,290,9333,11071,13902,13879,13676,13435,8922,13680,8956,8070,8543,10154,7634,8810,8172,8076,7866,8814,8079,8816,6293,10085,3062,13566,10089,14E3,13708,12834,9770,11812,7604,13275,13946,8503,13783,3519,8942,13959,13809,6124,13769,14073,13420,10055,14037,13614,8523,14014,3532,4569,13474,13534,13935,2448,13581,8325,5697,8327,8553, 13498,13930,13393,8920,12105,12285,8924,7842,13849,4193,8929,8387,8931,14094,3518,13373,13993,13723,2804,13887,11448,13651,14038,8251,13637,13415,13640,13552,9803,13777,9805,13804,14066,13305,3093,14097,13921,8294,8697,8382,6161,13850,7847,13852,13304,14001,13582,8974,7647,8976,8142,7650,13746,2009,13221,12757,12735,13751,10939,13753,11424,13372,8846,14028,8260,2027,13629,14025,14070,6296,13378,9991,13380,3195,13926,14164,14021,14083,3197,13983,13549,2635,14160,8319,14082,3155,8980,13944,14138,13425, 13516,13718,5492,14076,13560,3554,14011,13945,13829,3560,13978,13815,13650,13727,13897,13991,8943,13988,3166,3572,3173,14190,13455,3273,13487,1632,3943,11038,7706,11896,13184,12037,13234,192,12776,11887,6695,13274,431,9400,9614,10615,2400,10543,6907,4942,1430,11977,8418,7139,9942,14230,3792,1632,9557,12859,1529,7690,7692,10514,12409,10798,11856,461,9936,98,661,8721,6517,12117,13267,12585,11907,12273,991,11945,10694,7199,2158,14247,14080,13399,2874,6663,13618,13811,13929,100,14247,12848,12840,8155, 6759,13740,10402,12882,7790,8430,13734,13770,14278,8524,8324,8914,14091,8916,8969,14265,14279,8454,13992,12301,1919,115,8377,12069,8537,14100,14133,7798,8699,8930,12491,290,1705,3042,4986,13609,998,14247,8660,13169,1135,14290,7877,8780,13999,2873,14295,8255,8416,13934,6254,14295,8514,4987,1342,13584,3486,14007,10423,14283,2703,14272,12828,14333,115,143,13524,10807,13526,276,10732,10415,13529,6150,14295,14313,3517,14312,12827,6930,7479,9286,10014,5056,12294,14334,8126,14163,13313,5978,14326,8933,12835, 11181,14338,8535,9764,13282,8954,8165,3294,13285,8808,8960,7863,14049,8812,14051,13690,8551,13883,13755,14351,13299,13670,13301,8049,14347,12882,12839,4087,14354,8765,13853,14271,8971,12733,14141,8740,14143,8742,8978,14348,8783,7204,8785,14261,1919,14297,8692,8922,14300,7843,8698,8300,11363,14265,13769,14265,7999,13867,14324,5492,14422,14071,14205,14338,8284,13937,7448,930,14395,14356,11233,14410,98,8191,8661,8678,12882,14440,14314,13730,1012,14398,14039,9721,10006,14042,8166,14044,13683,14046,8545, 13686,14379,13688,8813,14382,8815,14384,446,14295,3421,9960,14359,8254,13843,9201,7779,14415,14102,7845,13851,8302,3591,14307,13402,11682,4588,14295,7851,2535,8737,8088,7646,14402,14006,14144,7182,11872,11958,14294,12882,7956,13710,14092,8817,3661,9977,7204,14247,14249,2421,6759,14358,115,14431,3123,13579,14447,14411,8834,8676,14425,13507,1256,14262,13312,8939,14165,14320,14443,14280,14118,8626,14521,14292,14200,14496,14510,8489,14387,8047,8712,13302,13766,14265,13653,14277,14534,14335,8952,5687, 8803,8540,14453,13682,13286,14047,14458,5073,14050,8174,14462,14053,14464,14502,9615,6449,13970,14426,14484,14317,6296,13533,13595,2966,14311,1919,14498,13881,3077,14560,14282,800,13641,13909,8178,11171,5511,3976,626,3450,11879,335,14505,686,648,558,12589,10853,9608,10510,6500,5746,14258,11893,5494,327,1706,7734,9016,12415,3715,538,14602,2033,2591,9357,14610,3860,11841,4471,4395,1725,9254,10153,871,1730,11160,10808,1738,14243,9369,14591,14605,10571,377,392,12168,409,12170,12411,9359,9754,12176,3585, 4478,3602,12180,3727,12191,7174,9457,11923,10622,10789,12693,9489,5585,9477,12435,12560,5361,648,9470,14225,2997,14655,11847,555,14663,4630,12918,14659,12766,4573,122,14666,4578,11253,14669,12304,7194,14650,11891,14652,13198,13070,12217,9335,7262,3677,13207,3669,12990,13211,12534,9785,9489,13911,2803,11811,11781,11805,11783,11807,6721,8667,11804,12666,7194,13190,5164,274,1916,14630,10664,7715,5532,984,6352,5330,6543,5332,10361,6150,11169,14715,454,5371,9293,7326,11595,629,11188,6609,11927,11447,12569, 871,1018,65,552,450,9107,12023,13021,14618,9197,9873,14623,6941,454,5050,1730,12530,9551,9573,9587,474,5353,6352,5239,11823,4573,10363,1678,13020,9730,9234,10139,14756,14724,12536,10583,10254,5353,5225,862,5296,10357,4453,7289,102,5233,6545,2942,9813,11012,5633,5531,14722,14729,7329,14732,12948,14734,10553,13253,5353,5294,14774,5272,14717,5276,4688,10360,5288,6231,14787,110,6352,13656,12233,11448,11106,5337,4251,5339,278,4782,14776,4784,10359,5249,14273,10362,14767,413,14799,14819,14781,3368,14714, 629,14757,13974,10370,7279,5353,5269,14797,566,14825,5277,14779,8572,14803,2610,14829,14806,13868,9039,5353,7157,5341,2971,5343,10380,14805,10374,10384,4588,14805,10383,10379,14858,3832,5527,10378,7341,4757,1830,858,14865,5430,9424,4578,14868,575,14860,6686,9314,14794,5363,2677,8746,5309,5241,5311,9425,1018,14730,6869,13092,9240,12771,7253,6520,5199,12623,5360,7255,12775,5733,3677,10387,1696,14711,13191,12636,371,12158,105,6583,2083,6800,9079,12161,11730,8041,1342,2993,9857,9884,3580,6884,6691,12422, 2623,10853,11300,13249,3205,5434,13256,13396,11838,12301,11840,553,6476,10405,11064,6043,12571,5350,12296,11824,11868,5595,10849,12633,8900,14945,9442,11615,12927,9597,11475,10282,11898,9622,10308,10296,13222,11487,12596,12623,12598,12936,12616,9913,10477,14899,12933,9645,12756,13269,7751,10480,14970,13223,13228,12131,12122,9620,12630,11867,12632,13117,11920,10488,5398,11850,12300,4420,9675,3876,12419,14986,9674,11241,6859,10502,9679,12564,12210,12952,14927,14931,13877,14933,9685,10518,14698,9519, 11814,3164,12559,4792,811,9695,12439,4799,10145,12706,7469,13443,13087,10264,6780,13043,13758,498,14941,14426,12539,12836,6933,14040,13470,13162,11508,12544,13049,12958,14793,4573,11844,4028,14943,6095,14032,9733,11531,280,11900,14741,9730,9758,12589,10221,12533,14721,3832,9748,10153,11928,13010,8554,12166,11022,14949,14985,3689,15068,12642,11067,12672,11870,3715,4825,10856,10935,11330,12688,12737,14153,11397,3808,11240,121,14,10948,14790,13016,15065,11336,4006,11224,11380,14150,15082,12760,12690, 11386,2465,11975,3765,12183,6274,7544,10891,14621,11796,10213,9183,348,11361,9883,11363,10953,12152,14149,11226,11403,11371,11422,11383,13754,335,4144,11463,14734,4825,15095,11200,13750,15098,13752,15100,12762,12587,4894,12525,9407,9882,12529,12763,10979,10905,9191,10945,11145,11041,4481,12952,4008,1511,9614,1049,14784,9109,11191,3033,10990,12119,15119,15084,14152,15136,15125,12547,15087,3941,262,88,12956,13086,10171,10902,12769,10904,2276,12768,12770,12025,14955,10628,10290,12607,14961,11808,9353, 11495,14977,7650,12171,11515,12631,12939,13190,11538,12045,6530,12152,12150,9438,15131,11584,11586,1641,11711,11749,11751,3436,11753,11559,11675,11761,7716,12602,10347,335,15172,5722,8616,9076,13192,7082,12593,10345,14963,15207,11668,3976,11642,6733,15212,6781,9734,1559,11597,7387,15221,3427,13274,14811,14731,13015,12238,7074,12020,67,6782,14890,12580,12309,12334,670,12322,11830,10665,34,14445,1453,12675,3723,11930,11011,1393,10758,4757,5045,2676,10915,13017,12041,11857,6482,83,645,112,7130,14712, 8567,14728,9774,9360,12063,11675,12225,9759,12532,14753,10175,12189,14707,13213,7245,5395,10514,9489,11786,14064,15012,14701,14465,103,13102,13123,5945,2128,755,3794,740,10102,2846,15309,12881,1878,3008,14627,7195,14245,9787,15290,1514,15297,9847,553,15304,5861,755,957,11051,44,15310,15316,44,4795,259,673,44,12934,1130,115,103,111,15332,15315,764,3451,15333,15347,50,694,10811,629,260,13152,3348,15329,7752,9113,15345,15311,490,15336,100,15338,15340,945,15343,15361,15316,3852,15370,15350,15352,15339, 3405,15356,5462,15010,1037,9810,10708,9913,3648,10889,14912,12952,14765,2400,15043,8215,109,563,4795,453,367,342,10527,9124,14950,11826,34,15249,1878,729,12274,12414,13204,11608,7167,15407,12276,3667,68,82,6695,12859,345,11979,6636,11484,14234,4618,1670,9050,1997,15419,645,10577,10584,7055,76,15428,4510,11484,10847,7536,14221,15393,15427,5253,5629,11854,15070,1758,461,14683,12974,4577,12272,6500,15448,12245,1787,13212,10572,10465,9325,10467,9327,10806,10853,4240,13048,15245,12553,15464,2677,9115, 15316,6641,12445,12947,15091,13355,12953,4884,14763,11135,15468,625,15470,625,10597,2011,13162,10806,15054,14891,15401,14631,12681,6196,10453,6326,6252,14832,8223,6098,6351,6327,15498,8229,8467,8052,6347,13399,9514,15506,14806,15502,14024,14177,9515,14831,15513,9757,2840,8876,15500,15519,14081,9515,3163,7387,2854,461,14599,5748,9352,14906,715,2892,11530,111,11339,11639,11748,15231,11713,2087,13272,1898,11758,1657,7201,959,11721,871,2892,11542,15538,11589,15540,11750,11714,11754,11650,11672,11652, 11715,11661,10041,7768,15544,15076,1540,13655,13894,2883,13659,10076,13661,13444,10068,5013,4208,13966,7828,315,2037,2883,14295,496,8587,5842,7455,4208,10103,10057,5805,15049,3279,3734,15174,2465,15547,402,11530,3585,12543,15465,13572,13437,13729,6799,2673,15579,10061,13437,8469,13858,13773,10727,14580,8693,619,13643,6787,8269,5044,8330,14130,8538,6313,13555,13625,13781,10057,13965,14058,1393,10091,10093,4894,2892,10097,1909,10099,15269,10071,12491,555,1878,5265,293,7204,15543,8043,2643,1080,1430, 3629,743,10781,6290,110,12378,118,4510,11112,648,397,12012,1632,15649,7251,12117,9620,10284,14254,7757,1683,304,10330,3736,9558,10508,4795,15194,12623,14960,14216,11864,7106,12033,7412,4008,13233,14974,11055,15675,12629,15677,11100,15679,112,15190,15187,13045,11159,12623,9620,14148,15691,15674,9659,15695,474,7541,12796,12811,15706,5288,15693,7434,15709,8424,14966,13187,11351,569,15716,69,15718,14066,9648,15707,15676,10111,12624,15206,15187,15729,15694,15731,3915,2935,15691,15688,12629,11916,10646, 15735,15717,6660,15273,14259,5398,12842,1284,6364,14857,4855,10228,14109,6226,13452,13814,13704,15678,2071,4795,7878,13856,6334,13496,14429,446,15756,14308,5794,3089,11080,578,13962,1135,15751,1270,1786,14697,15381,10520,15383,8094,10228,14327,7909,14329,14005,14331,14492,15696,15763,112,14369,8778,10712,14372,13284,14454,14552,14457,13289,8173,8966,13691,8917,12324,431,15606,6447,10228,14233,15105,5927,4874,13260,6329,4874,15006,6618,8769,15596,11136,12161,578,15812,6222,13316,7653,15787,14365,14063, 15011,9562,5943,11992,7958,7832,13462,7497,14029,13407,494,6124,14072,7001,9015,5171,2087,13030,340,15697,14574,8146,13882,15809,2066,14450,13632,5042,8512,12541,15537,15825,7306,544,13510,15758,13835,14159,14194,15761,5968,14074,13562,15843,13950,13317,14195,5870,9835,14003,4377,7911,15770,15697,14276,4936,6449,5977,4630,15846,13420,15760,1493,8153,14268,1281,10012,15119,13940,15762,7500,14423,13899,14847,6268,10228,14120,8726,13525,5674,7619,13645,1684,8503,13769,15895,14188,2028,15769,752,15033, 14367,6030,15872,13453,14030,14315,10228,8672,8316,1819,786,10290,13228,11135,431,9263,13032,14806,15581,12745,11448,290,14481,6238,5978,10228,14180,14821,7301,8795,14523,9955,10228,14322,14085,14570,15813,15697,8938,14424,14086,7350,13717,13308,10916,4622,15882,2187,15921,2352,6229,15900,9763,15798,8055,8342,9190,15270,3578,2575,15854,15795,14336,5778,6210,8434,15958,15964,8704,13959,15975,5011,15772,9555,15951,11842,13479,15864,34,15391,14916,15863,8533,15888,15795,14393,14353,10493,32,755,10763, 1323,13693,13438,14319,15261,431,15777,2254,15038,263,15040,15024,973,14084,14517,15967,15032,15697,6408,6182,12565,3836,9285,7456,9716,16035,13636,14017,4579,15697,14263,15978,16030,4654,14532,15767,6124,14176,5954,605,13028,2276,15853,15952,16031,13933,16033,10762,15833,9101,11478,7433,8390,1670,15829,15901,14432,6133,13671,8713,13673,15928,14077,8218,15933,15992,12301,16061,14172,3534,15993,15795,8469,10354,16084,15994,15969,8500,6204,15771,15949,13862,5963,13316,15920,13452,15832,16047,14318, 14185,8234,1670,16024,4512,13969,15861,5870,9584,8138,13633,7911,1632,4700,4474,12363,10778,9847,15045,5323,7055,15426,11010,15271,5680,15047,13261,11918,7706,10785,15294,9011,12282,5638,14888,7957,15489,11448,1724,14744,6747,1738,14624,14748,8089,14750,4352,7216,4780,7218,13546,15996,2246,3581,11780,15783,10707,10739,15302,3235,11437,7675,14809,15129,97,6840,14270,2192,821,10461,5507,14733,13017,11079,294,12340,6620,2209,5542,12350,4618,12068,14413,8348,4995,7448,13214,11916,9214,625,16141,15157, 12135,15475,15029,9028,11158,868,7492,576,742,99,115,2267,1545,3864,16198,6549,12538,15697,12540,7006,2030,7690,7250,1294,11088,14621,12005,6806,15141,11093,1930,9874,6344,11766,2276,14679,10163,5045,613,9464,15600,9291,10355,7326,538,7334,13571,11135,759,103,1545,16240,16186,14186,13004,11007,4607,11349,15474,15246,6373,11072,10910,4358,848,608,4527,12885,4657,16253,7217,9814,7055,16158,15902,14394,16014,16016,9747,679,11233,13886,1978,14852,5321,12452,15660,859,686,8624,10525,7716,709,11037,13818, 2575,11960,778,5271,1621,9983,1878,643,16184,825,16251,8234,9857,11980,12124,6938,539,11160,11986,9866,4370,12881,1711,15305,12318,11020,10350,1747,6431,103,14825,7290,14843,3547,9939,16197,16169,16179,1981,12102,1430,7690,11952,16333,11116,4099,6722,5021,6068,12446,5492,10140,9014,13023,12358,9067,9013,13030,1621,14910,1329,13546,4584,16241,10988,2246,15781,10724,11181,10541,3644,4144,12357,1599,12403,11974,11990,15104,11552,9856,16340,14725,10226,7326,1670,78,455,10593,3665,115,14808,16304,5149, 119,575,1929,85,7527,3765,111,1600,11712,6883,10450,15460,10452,6548,13103,12964,771,10449,9268,12327,10468,3657,16153,4250,16269,14851,4656,14759,4618,293,16236,629,9464,16161,7502,15784,16164,9633,16340,10491,5862,287,16276,15061,16278,12324,3795,16348,9011,9574,8702,4523,16317,12332,16319,15458,4523,12112,12516,7274,12020,9237,15090,16258,11473,13181,13224,15191,15692,7433,1745,15725,15731,13226,11152,15713,14967,15028,10445,4008,16457,15695,9531,1597,14905,11539,421,16387,690,100,4700,1912,12313, 9609,292,14914,11691,1087,7384,114,51,11710,15230,11591,12468,318,575,16487,15234,15086,6337,15559,1037,669,728,120,52,1655,11972,296,9843,859,7056,16388,15548,15215,16448,11886,15204,335,16474,1929,6859,16478,12336,16480,11729,16483,16492,16486,16488,15539,16490,12173,16525,16494,15545,5406,6468,11756,15723,551,16508,16503,16495,16507,14909,87,16510,11661,12157,4355,16394,259,551,9474,16481,12162,4965,10500,287,14918,454,12012,11632,7124,11684,7468,14340,16553,14915,296,1753,11694,11696,3393,1342, 11699,16572,1420,15641,2677,271,571,12868,125,124,470,12573,11747,15554,16529,12767,16531,16504,11570,15282,16498,8055,3656,16557,3405,14919,12001,16495,16315,652,15215,6588,6684,12388,16340,14913,16554,8510,1320,16558,413,16600,6648,16528,15232,16530,16485,16532,15561,376,16593,15549,16298,15733,7716,16482,11731,930,1745,15716,15600,14585,2588,16597,435,16559,5985,401,16617,15541,15560,16505,4143,16594,3568,16495,11760,7601,1534,9734,328,15108,16566,11691,930,571,16637,608,16639,16527,16587,16618, 16589,16620,16591,11648,5638,49,16647,376,16484,9034,16621,16645,11626,1430,50,16546,785,16548,16538,16543,16545,1902,16523,16630,1301,16500,16539,16660,16599,16640,15208,15555,15210,3229,16596,32,16613,9409,16495,13265,15238,3624,15547,14904,12928,1641,7254,14895,16454,12189,14902,9010,1709,7246,13238,11956,15282,16329,15251,14734,5253,16544,16475,4939,14909,648,16356,14225,11979,3226,16308,7005,11983,16311,2303,9974,11983,2661,115,16167,260,13041,12121,14791,16331,1136,16172,2E3,16175,13059,15064, 15476,16188,13163,13869,15387,9276,8029,9939,14856,14861,8258,14930,11932,2187,14927,14870,6177,4657,12521,16224,12523,16226,9880,933,12011,9408,16560,6356,16340,9312,4453,1939,7267,5638,16765,14866,4028,5638,16772,7295,7053,5414,16769,1386,6800,16723,16449,12553,14927,6511,941,5437,5451,5441,15111,451,5444,5446,5448,5450,5452,32,5440,5455,5459,5439,5456,5451,16231,16244,15824,16029,4388,291,369,9888,16421,8950,10223,1747,16439,14389,14711,12505,7269,14880,16142,16257,12553,11960,9843,12329,8048, 16336,11961,12423,11079,552,6676,4939,6828,15466,12958,16280,16341,7624,16343,10762,14855,16799,2873,14859,16866,8945,15103,15423,5492,16860,16375,16796,4855,14805,16795,6012,4578,12016,12952,16071,16510,16729,14910,16732,7536,16433,11060,16435,14754,11762,16291,7719,16245,11448,10780,16330,15065,1632,71,495,11011,13101,308,12855,16209,15295,9553,9847,9029,12905,120,12914,13059,16788,7326,670,105,11177,16217,12897,12872,10432,12823,12452,10420,1564,12161,11180,4630,16924,12899,9171,16747,792,16928, 12903,12890,2267,12907,1664,2727,16928,909,16931,13407,890,9112,259,12879,12881,13059,1946,5475,16940,499,16355,2935,4171,2723,10463,6500,84,12854,15316,16909,16892,15291,335,13264,979,1031,14258,9847,13907,15811,15503,4765,13564,15578,15632,9202,2477,10728,15617,15625,8333,15627,8336,15575,2894,8006,8946,3278,14034,15595,16828,7200,15645,15599,16026,15128,16750,14056,13446,16980,13971,355,13876,16003,16009,9095,15608,16984,13654,2673,15612,13203,6777,15615,14121,8840,15619,14344,4370,1965,13478, 14488,4296,15887,13415,13434,16113,13841,109,13961,15036,16760,13964,15570,3836,15572,10077,15590,13445,15631,2505,14059,6769,13885,15635,11029,15637,13890,10098,10942,16577,10748,2525,14023,15962,6113,15598,15647,8048,15667,6344,15652,11665,496,15655,5087,15658,100,15660,6636,15662,385,15665,10691,9797,15731,15240,3698,12780,5605,15226,11603,15228,273,16696,16588,569,15529,386,16495,6486,16536,11929,16495,3450,15237,11574,15239,431,8616,13274,666,2782,544,16058,15852,15850,10444,17111,5151,13359, 13939,13361,8329,1878,6906,17114,913,13030,17118,15753,16766,4494,500,2794,16107,12511,17133,8710,14537,16076,14539,17123,17119,6435,16497,13460,8354,7782,1632,15172,14506,9489,1875,16937,11864,15467,12822,7531,5412,7293,16863,17136,1878,14839,8571,14827,6113,15049,767,15667,550,15248,15250,16803,12958,15243,14889,17174,9730,6049,578,16900,15476,12349,13427,15046,16887,16761,7299,9026,48,10371,1135,17118,16875,16880,14771,16842,5361,17157,17178,15490,13236,10799,10444,16709,14954,10619,15683,15740, 16030,11500,17210,11914,7407,4577,17213,13231,15705,16463,10479,11904,12806,12613,13348,12810,12625,16714,15748,13274,16091,16762,9302,12460,4274,12568,16750,5606,1812,1396,3877,17200,16858,9730,13051,10131,15479,11448,16017,294,4103,10767,15053,16844,12958,13079,16038,15041,17244,16028,10153,16464,10262,17116,767,13030,2134,17126,1037,13030,13051,13039,11031,17236,15092,10181,13088,4726,13053,13055,16191,8390,1121,5166,15244,17261,12866,17237,605,149,15483,13232,13161,15051,15473,16177,16749,17275, 16046,15795,16217,5606,17290,15472,15488,17254,12212,2703,16256,13008,17287,17297,15330,9113,17182,16201,6106,3965,17308,9706,17310,13044,1632,13190,12067,16551,767,14612,731,11120,2460,9040,8994,281,8893,1531,7359,394,8887,13181,12133,15684,12938,11887,14693,13274,8618,1880,14638,14633,13466,9241,12113,15476,9776,14388,16402,6851,17336,381,12364,6734,335,16716,11290,7220,1814,16124,16869,594,10758,17161,5870,7348,16385,8753,679,7724,14597,12922,16320,7735,10443,9779,11610,14607,1662,13096,12070, 10805,14620,8840,12074,6952,10824,6952,10813,6600,12086,7020,6962,7039,12083,7019,10816,17398,10823,12095,7034,7033,7032,17405,10835,17394,10833,12098,7035,6954,9399,280,4474,11727,2087,17383,11519,15286,752,9988,17421,913,17423,12057,11675,3727,14643,11099,7390,2751,16973,17206,15409,421,17231,6780,17192,5627,10768,6867,6849,5490,12452,14761,10582,17319,15722,16750,843,512,16324,14719,16326,5855,4874,6352,5273,3925,5275,14826,14720,1076,16961,16283,9431,11887,17363,14904,9256,9258,323,7260,9847, 6541,7005,17467,17460,2244,9421,10455,12537,9065,9479,7260,5596,15088,689,16234,9847,11434,15698,7908,12237,17156,14657,17368,1669,16023,17040,9039,15711,7543,11354,15108,5275,11046,11160,11046,7848,10464,16718,12180,14947,7706,11981,17385,387,2797,15782,16833,10738,11806,7186,12405,10889,12407,12633,920,15277,15279,14995,3689,15276,12960,378,15318,15293,288,12755,9788,13181,11504,16634,11507,16027,9915,10795,7650,11051,9098,17217,15779,1297,14979,17220,11785,17292,15601,3969,3893,14896,6800,12774, 15700,15564,10693,14220,1716,13403,14186,17188,11944,1716,13080,8205,755,16040,5052,14751,9585,4779,16971,15102,1541,109,17012,14488,8057,9645,2060,17030,7059,17014,2576,9768,17506,2343,1716,16072,9741,694,15893,4657,13790,16932,7958,13795,12479,13799,9227,13799,9230,477,12487,9234,6964,17591,14588,1524,10512,10175,9847,3771,98,109,17526,8280,16163,17529,9629,4138,16420,17634,17528,14700,7186,1506,52,17633,8422,16422,17636,10295,327,9533,17247,14734,15389,3089,16006,8234,11802,15380,17527,11813,16165, 7006,14239,9155,17627,15323,1529,870,11821,11356,14770,8662,9258,778,11793,5437,15110,13792,6161,759,761,14705,7167,17544,6501,5747,15408,15567,371,17442,10179,46,9430,9425,9379,13096,10272,9382,17696,276,12450,9054,17700,6182,14817,5231,16325,15954,15138,6914,9404,16778,12009,9881,16230,9420,9400,9412,16213,4371,10738,8840,15141,17717,12181,8324,16223,17724,16779,9417,6916,16783,5493,8947,9422,6797,14872,10457,9058,17154,4173,14878,14235,16134,13133,9617,5393,10573,16232,17690,9076,7055,13252,16126, 120,15819,16108,7055,15822,13906,5691,13146,15430,913,14679,17764,11941,1040,10576,1863,13122,16318,10621,17750,13145,13012,9334,15810,110,10434,14934,366,1912,7724,16130,8348,16132,6048,7055,10437,14524,1453,15127,17260,16143,14734,15031,8234,16125,13404,16391,12340,17768,3578,17767,17778,9346,9389,12003,16776,17733,11359,17731,16228,16782,12372,12020,16379,291,258,12391,1664,16756,17315,5117,13245,10616,431,17761,1379,5253,17755,4618,77,3852,17318,1680,17825,13819,446,14805,15437,17443,9048,431, 17792,17829,5528,14939,9315,7055,17782,3262,17803,11980,14991,6780,55,17744,12447,17823,5633,12458,8662,17819,16380,17822,6533,3585,15430,17371,16770,9939,17843,14833,7326,14221,17419,579,17503,17718,17879,14876,5536,17877,17855,598,17881,383,11002,4602,17837,12865,17454,17297,17878,12340,12303,17374,2187,10255,12561,13309,17887,17847,17900,1135,14982,17796,5241,17262,4341,1670,17899,3089,1735,17862,6538,17191,17159,15266,7380,10107,13181,15282,14898,15700,11528,15486,17293,15039,17553,11502,17563, 17930,17565,984,12139,15195,13189,13237,12042,3716,15224,7142,10436,17421,16641,16664,16643,1037,2591,17099,15214,15202,9930,16515,5127,12051,11613,10954,1548,14340,17949,11619,16697,10549,17954,16535,17106,1702,8053,12251,15089,17440,17957,7167,12258,6692,15457,17518,12307,10790,16710,7688,11565,17928,3389,17933,12604,17229,14988,3715,121,17875,6795,17996,15046,10846,17741,5958,3842,7138,2027,10152,8985,3842,1912,18006,3244,122,17998,8010,2997,18013,12447,260,1912,8658,7375,17185,14760,17387,12494, 17389,4870,16150,7017,17394,6945,17396,10836,6964,12085,12082,10818,12084,17400,12100,12089,7031,6971,10826,17416,7037,12099,17415,12093,12099,17417,6090,18003,9248,4668,10838,18001,14656,4752,14813,9427,5719,17981,649,14634,8887,10853,12171,16434,16718,9362,16192,11061,121,398,14645,2317,9371,382,12165,774,18065,12311,14637,15146,6876,17727,16872,8348,15075,12173,12413,12188,18076,3622,12192,18079,10112,13137,13111,14996,12259,15178,17752,17977,7365,15453,18102,10908,335,13177,770,17964,11956,872, 9980,3649,9953,9724,8205,2187,17801,10841,17799,5149,17184,10439,17203,15320,13213,9303,16175,17439,11474,10619,17902,12588,15672,13230,6578,17570,17341,13270,7241,5213,10388,14904,13274,322,97,13581,14487,13583,3484,14702,1625,17195,4362,7326,18136,13279,4668,18160,2420,8469,17451,17314,17840,10885,455,18157,16214,7053,1870,2267,13959,18149,2070,16012,5967,16437,13744,9045,7288,17483,17710,12255,455,13279,8420,16217,401,17879,6684,18178,14352,18180,18169,11947,15754,4028,12339,7529,11923,2070,8469, 5257,14769,16787,16789,1870,6607,15998,11946,108,18194,3438,18190,15034,462,16391,13059,17944,728,4458,16811,619,5118,859,5089,1833,360,12340,6926,1870,4451,8218,591,12004,729,9207,18226,91,8564,2630,15393,10142,17061,3870,14657,18189,8652,16217,16345,558,18214,18216,1625,17274,17353,1080,18205,16021,2035,3438,16943,5633,12824,12346,8516,15791,8092,7186,9608,7946,14366,14704,738,18261,3438,8658,18174,1688,15924,15086,18250,2420,18179,6360,8830,1870,13959,18192,12340,18257,13617,18182,13928,461,18136, 17889,763,18280,17707,5247,17459,18186,9583,18287,8756,17466,8571,14842,18307,18285,1210,18295,9609,17500,12958,18149,17458,4349,17468,18249,1210,4103,8361,17243,11135,18293,18203,18286,13743,14002,16116,7820,4958,400,4604,16837,17356,7205,18131,1636,17380,318,10162,7412,17612,17025,15652,626,1601,6787,12724,11122,14824,18304,5298,17709,14337,18249,18059,18151,13366,8738,8090,6721,15512,10408,18209,8591,8894,13208,13201,5390,14691,11896,17209,17562,14493,17092,18142,7679,15196,17942,8612,11956,17692, 16414,16344,17242,17610,9275,17844,14727,14993,16334,17533,18101,11146,4554,14999,10983,1430,17831,3541,15008,9757,12241,296,10222,12352,12509,2879,13774,5671,9804,12287,1209,17789,8234,13620,17024,15799,15626,13624,16992,16195,11391,3836,13794,2910,13796,9226,13798,12487,13801,2920,9233,1924,11363,14990,12353,15514,18062,7736,15450,11956,9049,15440,12743,9954,2400,17531,16335,12244,315,5940,12719,1396,102,10873,12999,17615,8469,17657,13650,17887,18453,18119,7448,17604,15288,2087,18413,17603,6122, 18461,79,18463,4728,6856,1132,16888,9856,18480,18482,3770,18465,2918,5880,12395,9768,4208,15835,11448,2906,648,18462,18464,5389,9636,18492,13328,17611,13710,9817,18434,17615,13797,1753,9824,18440,12715,9231,13802,9234,12324,16127,18452,10919,18454,3089,18499,1929,18481,18502,1774,18504,605,6401,16469,1602,9753,392,380,345,17652,17523,15203,7167,9785,16136,288,12378,12374,323,15417,17207,10627,1387,15687,17992,18104,7263,18059,3983,6711,11097,12669,12614,12954,7215,11417,11008,17672,17453,16450,15025, 12946,17309,17895,15476,18122,8234,1840,12E3,17915,9255,18110,12279,12062,6506,10946,17948,18114,643,817,9951,3650,18524,18127,12939,18111,7374,11627,18536,379,17337,15068,9847,15078,12579,11329,12747,11344,15099,15121,12691,17214,14227,3875,16189,12106,3837,12444,9416,10067,12725,110,16379,642,11419,12748,12689,18610,15101,11364,11262,12421,15131,15163,15166,18609,12759,15085,11477,12765,9192,15176,9456,15770,15020,11664,14098,1927,18618,17716,2892,18621,10954,16002,5785,15164,11204,18635,15085, 17795,15603,11135,15130,10344,15132,15097,18626,15083,18658,12752,15184,13710,12007,16227,12011,16432,4008,18646,12455,14472,15894,15160,10607,5154,11319,18669,18657,18628,15137,637,17358,345,14642,18537,17337,11302,5773,5045,7413,18625,18608,15135,18688,15167,4579,18645,14228,11962,18024,17745,12116,15183,12028,15186,18384,15188,11494,17090,18715,11497,1597,15681,17228,15491,12145,17945,12046,12638,10655,12156,17959,7124,413,18624,7122,13157,12119,7849,18698,3562,7504,17430,14641,11777,18507,2903, 13793,18510,6818,9218,17617,18438,12486,9828,18519,17684,7365,17686,18540,17976,12027,16775,5275,16225,18242,18673,17815,18675,17171,12551,1409,9527,16436,4951,282,15180,18103,18091,18642,3653,17351,9243,17305,17202,18134,18552,17567,16714,17810,18137,10314,13186,17554,10647,18128,12779,18726,13194,12047,18729,12640,11633,1632,9042,9636,17114,15451,9479,13030,6694,1743,7219,5217,15851,17339,18792,17934,7758,12606,10311,14984,12939,14604,18346,17943,10853,12502,17666,774,6719,11989,9160,15816,10584, 9163,16724,16750,15056,14752,9586,17589,7095,429,16146,12004,14746,18242,14625,16152,10204,9168,10137,12901,6018,9176,12520,17729,8537,18674,9186,17732,9188,17734,12646,10980,774,18773,570,18649,18301,12547,18709,4618,16899,18836,17297,16882,17201,12501,9176,12556,9252,12072,14235,10786,18583,17384,18760,768,12020,16847,99,10671,17875,4687,6562,17763,17808,17903,569,18596,17805,17882,12340,14340,251,913,18596,12064,731,17887,18902,1111,18901,18898,12534,14811,729,18593,17876,6567,9013,10443,7690, 10669,6588,18596,9942,10443,17818,2060,909,99,12743,18894,17471,18159,9013,6511,501,17846,17428,1037,18926,18586,16535,12614,643,3856,2817,6995,2332,18167,6577,686,11081,18893,18057,9276,12909,4757,17497,262,9400,6859,9892,11005,14740,18783,11448,328,17771,10192,1865,1470,18913,18971,18520,470,578,18933,18957,18396,6777,8136,18472,18870,6294,17784,111,17786,10567,15748,10776,327,18132,18824,11637,1870,14653,17922,2400,17373,2667,18992,17520,12320,7245,15256,2748,10853,18576,9852,575,709,1637,16745, 17294,11446,17296,17183,18422,5149,15260,17369,10616,16890,1409,1745,461,19002,18594,17941,17204,461,70,16740,1755,11590,11326,10441,17751,10853,17497,6181,18319,17179,12906,1414,18478,1379,17283,17447,3877,11619,17511,17911,17320,17826,3808,17508,11153,19055,6580,5532,6750,18242,19064,11363,12797,15716,18952,7732,17379,19040,9361,9592,11062,3741,86,2775,8116,11607,9906,17993,946,4389,3114,6804,18486,14873,538,15355,743,87,1604,587,6839,14309,18269,7941,13634,15925,15020,1545,5045,18899,16750,1170, 323,14298,8352,684,279,770,1006,3116,846,9274,277,18621,16390,15393,17811,13749,18666,18701,15165,18703,11424,19122,15985,7274,19091,355,19093,19095,577,6839,17609,19099,4559,16004,554,3842,1687,99,19094,643,19137,107,17576,16611,16117,15650,12355,3995,65,15660,1878,17285,16246,4927,7468,17005,17297,16260,18566,4607,19157,2082,19160,11448,4148,77,18835,15096,15120,18637,19127,19178,12740,7286,3626,3628,17073,10765,5861,3625,3627,4536,19185,7488,287,19188,19184,3630,9716,15020,19164,15476,3852,11289, 6534,19169,19159,17177,17E3,6643,117,12369,9593,12816,11878,11302,11414,19174,19123,15080,18607,11396,19179,14151,19181,12547,3493,11051,17893,10590,16200,18168,1136,2862,5773,19226,17910,18573,18570,11336,10331,2586,11165,7468,18700,19220,18687,19180,11E3,11128,11460,11198,101,19204,1624,17787,19058,311,304,15362,11149,4124,4726,13056,11982,1588,5749,18242,11175,9866,16078,4143,4041,14591,766,8048,17150,19272,7047,327,9966,8625,2684,19148,291,16627,19045,11287,15346,12891,112,7474,1621,432,19199, 19058,19143,19092,19146,19136,19283,14564,19152,16008,19101,7006,12682,5758,859,19109,18615,12285,19112,3831,19115,2656,5052,19118,12491,4148,641,1006,19240,4918,15022,19243,12739,11216,18656,19247,11387,11315,625,19321,11166,17067,19176,19327,10973,19336,11233,19295,19134,19297,19282,6839,19071,7074,12769,19158,19253,19131,10148,19162,15022,258,1904,1840,5437,3845,5654,3846,9548,6806,19358,12722,14226,11363,4490,19272,11456,15603,17797,16750,3852,19252,19171,16725,9532,9736,3596,9815,5275,511,5723, 545,6806,19382,890,631,3347,6090,19352,4802,19374,19206,9730,16638,17803,17448,8048,12144,5985,1213,3790,5318,115,107,2429,12344,19289,670,19291,103,19293,19230,9620,9115,4597,108,19227,15158,15480,4124,16366,14538,91,755,4916,19241,15022,2485,15586,2888,9939,13142,15182,10619,15217,12626,7411,335,19108,1031,1430,18141,14980,12627,17549,16026,15687,18909,14657,67,17071,2748,15740,14256,16975,15530,15198,13193,256,6588,65,12882,15585,354,11811,16656,11731,15382,5562,16642,15556,15300,16495,5463,15549, 10601,15660,354,18759,19471,17950,19473,913,16569,40,41,32,61,62,1437,4390,10212,16622,1657,578,343,9563,15549,4919,1604,262,17502,16687,16629,6487,18387,16663,17966,17095,17640,9393,16677,5753,327,115,9104,3767,15549,311,19503,18059,18481,4906,19516,16609,16567,15029,16586,19510,16665,17661,10532,19514,9861,19517,7171,17101,19507,19033,16704,2573,18558,15549,6568,5762,19522,15443,15229,19472,16698,19540,14245,19542,17502,15549,6588,66,11178,19536,19518,710,19468,10193,2128,19400,19509,16395,19552, 10230,16422,19535,19516,19562,15563,9457,8993,17689,13239,18208,14871,17444,1828,19504,6616,17739,10066,9384,17698,12451,17864,4765,17697,18680,13097,17705,10554,17465,18184,18361,15990,12002,17721,17713,18242,17725,10211,17418,17804,18762,7288,19605,9394,17731,17726,11244,17728,19217,19111,19615,19608,9420,17736,17487,9036,19583,603,18981,17693,18268,14944,15445,18376,1E4,111,12945,100,16500,7135,16717,17365,14606,18888,9566,18580,4657,1514,15398,542,18986,10381,9570,6907,16174,7158,1111,17327,517, 16380,1706,19345,6675,12869,726,1514,17834,14565,10432,19646,12297,19462,6571,19650,17907,2298,1514,19653,16753,19656,1409,19658,13770,10432,19667,10762,10377,10435,10382,1493,107,5867,5190,19662,12868,881,1514,17758,13869,1514,18407,18075,10386,18145,14903,18996,3707,18073,11018,10853,18604,10781,18685,19128,18702,19246,11220,19711,4826,12733,11213,18667,18636,19222,19328,12753,11414,1079,1916,11318,18655,18686,19326,19732,11220,4101,16370,18088,5149,15117,17352,7058,19721,19126,19245,19724,19717, 10967,18664,18634,19714,19221,15134,18670,11488,15139,17733,11091,9881,16228,7460,15149,11126,15867,14709,9973,19419,19083,15159,6171,18683,19324,12751,19745,19753,19223,11425,306,18069,649,12763,18779,10473,15146,19782,9786,14892,7560,16736,15684,12031,17312,16952,11498,18383,17217,18713,18820,18788,12043,18717,17612,17217,15193,19795,18381,15292,19508,19459,12637,11608,18664,11724,12694,306,4491,17187,18395,16628,16610,13869,15201,4600,476,16175,18009,16551,10705,19564,19571,16834,11604,4251,11606, 481,5130,19437,11773,9256,16181,2775,327,16404,10451,10178,10853,3885,11236,83,10459,625,15324,9386,9048,13791,18763,10458,370,6918,19857,44,102,11235,17683,12189,19843,16398,7212,125,19614,17034,1598,14085,17583,6736,18655,8047,13964,12313,14839]}); define("tdv/events/async",["require","exports","tdv/utils"],function(a,m,h){function n(){var d=e.length,f=e.splice(0,d);k+=d;for(var l=0;l0&&(new Date).getTime()-b>100&&n()},100);return{ME:function(d,f){f===void 0&&(f=void 0);if(f!==void 0&&f>0)return-1-setTimeout(d,f||1);e.length==0&&(c.then(n),b=(new Date).getTime());g++;e.push(d);return g-1}, cancel:function(d){if(d<0)clearTimeout(-1-d);else{var f=d-k;if(f>=0){if(!e[f])throw"invalid async handle: "+d;e[f]=null}}}}}); define("tdv/events/EventDispatcher",["require","exports","tdv/events/Event","tdv/events/async","tdv/utils"],function(a,m,h,n,g){var k=function(){return function(){}}();return function(){function e(){this.bd={}}e.prototype.ycb=function(b,c,d){this.ewa(b,c,d,!0,c,!0,!1)};e.prototype.bind=function(b,c,d,f,l,p){p===void 0&&(p=!1);return this.ewa(b,c,d,f,l||c,!1,p)};e.prototype.ewa=function(b,c,d,f,l,p,q){if(b===void 0)throw"Event name undefined";if(c===void 0)throw"Event handler undefined";d=d||this; f=f?!0:!1;b in this.bd||(this.bd[b]=[]);var r=new k;r.DX=c;r.vgb=l||c;r.context=d;r.GMa=f;r.VMa=q;b=this.bd[b];p?b.unshift(r):b.push(r);return this};e.prototype.h=function(b,c,d){b in this.bd&&(d=d||this,this.bd[b]=this.bd[b].filter(function(f){return f.DX!=c||f.context!=d}),this.bd[b].length==0&&delete this.bd[b]);return this};e.prototype.jnb=function(b){b in this.bd&&delete this.bd[b]};e.prototype.usa=function(){this.bd={}};e.prototype.o=function(b,c){c===void 0&&(c=void 0);typeof b=="string"&& (b=new h(b,c));b.name in this.bd&&(b.source=this,this.jC(b,!0),b.name in this.bd&&this.P_a(b));return this};e.prototype.P_a=function(b){e.M0.push({caller:this,event:b});e.Aea||(e.Aea=!0,n.ME(e.txa))};e.txa=function(){for(var b=(new Date).getTime()+1E3;e.M0.length;){var c=e.M0.shift();e.prototype.jC.call(c.caller,c.event,!1);if((new Date).getTime()>b)break}e.M0.length>0?n.ME(e.txa,1):e.Aea=!1};e.prototype.f8=function(b){return b in this.bd};e.prototype.EX=function(b){if(b in this.bd){b=this.bd[b]; for(var c=0;c=0&&(g=h.substr(0,n+2), h=h.substr(n+2));n=h.indexOf("/");n>0&&(h=h.substr(0,n));m=g+h+m}else m=h+m;this.Yo.href=m;m=this.Yo.href}return m};a.vhb=function(){switch(window.location.protocol){case "http:":case "https:":return!0;default:return!1}};a.Khb=function(m){return m.indexOf("//")===0};a.v8=function(m){if(!m)return!1;var h=m.indexOf("://");return h>=3&&h<=5?!0:m.indexOf("filesystem:")==0};a.Fhb=function(m){return m&&m.indexOf("/pdfjs/")>=0};a.getDirectory=function(m){m=this.lB(m);m=m.split("?")[0];m=m.split("/");m.length> 1&&m.splice(m.length-1,1);return m.join("/")+"/"};a.Bk=function(m){this.iN||(this.iN=this.cza());return this.iN[m]!==void 0};a.getQueryParameter=function(m){this.iN||(this.iN=this.cza());return this.iN[m]};a.iSa=function(m,h){var n=m.split(h);m=n[0];(n=n.slice(1).join(h))&&(n=h+n);return[m,n]};a.MD=function(m,h){if(!h)return m;var n=this.iSa(m,"#"),g=n[1];n=this.iSa(n[0],"?");var k=n[1];return k.indexOf(h)>=0?m:n[0]+(k+(k?"&":"?")+h)+g};a.parse=function(m){this.Yo.href=m;m={};m.protocol=this.Yo.protocol; m.hostname=this.Yo.hostname;m.port=this.Yo.port;m.pathname=this.Yo.pathname;m.search=this.Yo.search;m.hash=this.Yo.hash;m.host=this.Yo.host;var h=m.pathname?m.pathname.lastIndexOf("."):-1;m.Ceb=h>=0?m.pathname.substr(h).toLowerCase():"";return m};a.getExtension=function(m){m=this.parse(m).pathname;var h=m.lastIndexOf(".");return h>=0?m.substr(h,m.length):""};a.Tg=function(m,h){m=(this.getQueryParameter(m)||"").toLowerCase();return this.cjb(m,h)};a.cjb=function(m,h){switch(m){case "false":case "0":case "no":case "n":return!1; case "true":case "1":case "yes":case "y":return!0;default:return h}};a.qLa=function(m,h){m=parseInt(this.getQueryParameter(m));return isNaN(m)?h:m};a.K7=function(m){m=parseFloat(this.getQueryParameter(m));return isNaN(m)?void 0:m};a.cza=function(){for(var m={},h=window.location.hash.substring(1).split("&").concat(window.location.search.substring(1).split("&")),n=0;n1?decodeURIComponent(g[1]):null;m[k]=g}return m};a.Yo=document.createElement("a"); a.iN=null;a.hE=function(m){return m&&m.indexOf("data:")==0};return a}()}); define("tdv/player/view/util/Device",["require","exports","tdv/utils","tdv/player/view/util/URL"],function(a,m,h,n){var g={};g.vj=TDV.qb.v_;g.uB=TDV.qb.Xba;g.Wua=TDV.qb.jua;g.lpb=TDV.qb.aca;g.r_=TDV.qb.Yba;g.Eta=TDV.qb.iua;g.Vob=TDV.qb.$ba;g.Zba=TDV.qb.Zba;g.HQ=TDV.qb.HQ;g.Maa=TDV.qb.Maa;g.Laa=TDV.qb.Laa;g.Kaa=TDV.qb.Kaa;g.Naa=TDV.qb.Naa;g.Ji=TDV.qb.Ji;g.WZ=TDV.qb.WZ;g.Yj=TDV.qb.Yj;g.Pp=TDV.qb.Pp;g.QK=TDV.qb.QK;g.tF=TDV.qb.tF;g.VZ=TDV.qb.VZ;g.nx=TDV.qb.nx;g.Haa=TDV.qb.Haa;g.$Z=TDV.qb.$Z;g.ox=TDV.qb.ox; g.su=TDV.qb.su;g.a_=TDV.qb.a_;g.Iaa=TDV.qb.Iaa;g.FQ=TDV.qb.FQ;g.EQ=TDV.qb.EQ;g.RK=TDV.qb.RK;g.GQ=TDV.qb.GQ;g.zB=TDV.qb.zB;g.bta=TDV.qb.bta;g.yB=TDV.qb.yB;g.tu=TDV.qb.tu;g.uu=TDV.qb.uu;g.ZZ=TDV.qb.ZZ;g.Jaa=TDV.qb.Jaa;g.Oaa=TDV.qb.Oaa;g.c_=TDV.qb.c_;g.KQ=TDV.qb.KQ;g.Saa=TDV.qb.Saa;g.VK=TDV.qb.VK;g.LQ=TDV.qb.LQ;g.d_=TDV.qb.d_;g.OQ=TDV.qb.OQ;g.e_=TDV.qb.e_;g.WK=TDV.qb.WK;g.MQ=TDV.qb.MQ;g.NQ=TDV.qb.NQ;g.f_=TDV.qb.f_;g.Taa=TDV.qb.Taa;g.cH=function(e){e="force_"+e;if(n.Bk("debug")&&n.Bk(e))return n.getQueryParameter(e)}; g.b1a=g.cH("os");g.Nd=function(){return g.b1a||TDV.qb.Nd};g.X0a=g.cH("browser");g.Tb=function(){return g.X0a||TDV.qb.Tb};g.Y0a=g.cH("browser_type");g.DO=function(){return g.Y0a||TDV.qb.DO};g.hya=g.cH("browser_subtype");g.Dc=function(){return g.hya?g.hya:TDV.qb.Dc};g.Z0a=g.cH("browser_version");g.QIa=function(){return g.Z0a||TDV.qb.QIa};g.a1a=g.cH("device");g.xk=function(){return g.a1a||TDV.qb.xk};g.ub=function(){return TDV.qb.mobile};g.G0a=function(){for(var e=navigator.userAgent.toLowerCase(),b= ["SM-G960","SM-G965"],c=0;c=0)return!0;return!1}();g.kZa=g.Tb()!=g.Pp||navigator.userAgent.indexOf("; wv")<0?!1:!0;g.$0a=!!g.cH("chromewebview");g.hJa=function(){return g.$0a||g.kZa};g.kf=function(){return g.Dc()==g.ox||g.Dc()==g.su||g.Dc()==g.a_||g.Dc()==g.tu||g.Dc()==g.uu||g.Dc()==g.yB};g.E8=function(){return g.KJ()};g.D8=function(){return g.xP()||g.YMa()||g.jNa()||g.dNa()};g.epa=function(){return g.Dc()==g.tu};g.Dma=void 0;g.tob=function(){if(g.Dma=== void 0){var e=void 0;g.iE()&&(window.location.hash.split("&").forEach(function(b){b.split("=")[0]=="app-version"&&(e=b.split("=")[1])}),e&&(e=parseInt(e)));e=e||0;g.Dma=e}return g.Dma};g.iE=function(){return g.TX()||g.epa()};g.TX=function(){return g.Dc()==g.uu};g.Hhb=function(){return g.xk()==g.d_};g.zhb=function(){return g.xk()==g.e_};g.YMa=function(){return g.xk()==g.WK};g.Ghb=function(){return g.xk()==g.MQ};g.bNa=function(){return g.xk()==g.NQ};g.cNa=function(){return g.xk()==g.OQ};g.dNa=function(){return!!(window.location.hash&& window.location.hash.indexOf("device=picoxr")>=0)};g.jNa=function(){return g.xk()==g.f_};g.KJ=function(){return g.xk()==g.LQ};g.xP=function(){return g.xk()==g.VK};g.fI=void 0;g.qjb=function(){g.fI===void 0&&(g.fI=parseInt(n.getQueryParameter("sts")),isNaN(g.fI)&&(g.kf()&&!g.G0a?g.fI=512:g.ub()&&g.Nd()==g.vj?g.fI=512:g.fI=g.ub()?256:1024));return g.fI};g.x7a=function(){if(g.Tb()==g.Yj||g.Tb()==g.Ji)try{var e=/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent);if(e)return parseFloat(e[1])}catch(b){}}(); g.BQa=function(){return g.x7a};g.g3a=function(){try{var e=parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||!1}catch(b){}e||(e=g.BQa());return e}();g.Toa=function(){return g.g3a};g.FXa=function(){if(g.Nd()==g.uB)try{var e=/Android ([0-9]+\.?[0-9]*)/i.exec(navigator.userAgent);if(e)return parseFloat(e[1])}catch(b){}}();g.jcb=function(){return g.FXa};g.sza=function(){var e={bMa:"unknown", Xhb:1},b=document.createElement("canvas");if(b&&(b=b.getContext("webgl")||b.getContext("experimental-webgl"))){var c=b.getExtension("WEBGL_debug_renderer_info");c&&(e.bMa=b.getParameter(c.UNMASKED_RENDERER_WEBGL));e.maxTextureSize=b.getParameter(b.MAX_TEXTURE_SIZE);if(c=b.getExtension("EXT_texture_filter_anisotropic")||b.getExtension("MOZ_EXT_texture_filter_anisotropic")||b.getExtension("WEBKIT_EXT_texture_filter_anisotropic"))e.Xhb=b.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}return e}();g.ogb= function(){return g.sza};g.HXa=function(){var e=g.sza.bMa.match(/Apple\s+(.+)\s+GPU/);return e?e[1].toUpperCase():"unknown"}();g.Kpb=function(){return g.HXa};g.V3a=g.xk()==g.KQ?!0:!1;g.DA=function(){return g.V3a};g.YIa=function(){return g.Tb()==g.Yj&&g.BQa()>=14};var k=!1;try{k=window.localStorage.getItem("tdvp_video_drift_2")=="true"}catch(e){}g.Lgb=function(){return k};g.Elb=function(){k=!0;try{window.localStorage.setItem("tdvp_video_drift_2","true")}catch(e){}};g.RS="ontouchstart"in window||typeof window.PointerEvent!== "undefined"&&typeof navigator.maxTouchPoints!=="undefined"&&navigator.maxTouchPoints>0?!0:!1;g.psa=function(){return g.RS};g.b4a=n.Bk("touchenabled")?n.Tg("touchenabled"):"ontouchstart"in window?g.Nd()==g.Wua?!1:!0:!1;g.Jp=function(){return g.b4a};g.summary=function(){return["browser: "+g.Tb(),"browserType: "+g.DO(),"browserSubtype: "+g.Dc(),"device: "+g.xk(),"isMobile: "+g.ub(),"chromeWebView: "+g.hJa(),"touchDevice"+g.psa(),"touchEnabled"+g.Jp()].join(", ")};g.log=function(){h.log("browser: "+g.Tb()); h.log("browserType: "+g.DO());h.log("browserSubtype: "+g.Dc());h.log("device: "+g.xk());h.log("isMobile: "+g.ub());h.log("chromeWebView: "+g.hJa());h.log("touchDevice: "+g.psa());h.log("touchEnabled: "+g.Jp())};return g}); define("tdv/player/view/util/Flags",["require","exports","tdv/player/view/util/URL"],function(a,m,h){a={};a.vu=h.Tg("debug",!1);a.dVa=h.Bk("hqhls");a.$sa=h.Tg("audiocontext",!0);a.epb=h.Tg("testhash",!1);a.PUa=h.Tg("exitvronblur",!1);a.yUa=h.Tg("download",!0);a.oWa=h.Tg("updatewhilehidden",!1);a.VUa=h.Tg("webgl2",!1);a.UUa=h.Tg("webgl1",!1);a.SUa=h.Tg("lowp",!1);a.wta=h.Tg("antialias");a.sWa=h.Tg("unlimited-video-resolution",!1);return a}); define("tdv/player/texts",["require"],function(){return{"bg-bg":{mute:"\u0417\u0430\u0433\u043b\u0443\u0448\u0430\u0432\u0430\u043d\u0435","cardboard-v1":"\u0410\u043a\u043e \u043d\u0435 \u0441\u0442\u0435 \u0441\u0438\u0433\u0443\u0440\u043d\u0438 \u043a\u043e\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Cardboard \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0445\u043e\u0442\u0441\u043f\u043e\u0442 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435. \u0421\u043b\u0435\u0434 \u0442\u043e\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0449\u0435 \u043f\u043e\u0433\u043b\u0435\u0434\u043d\u0435\u0442\u0435 \u0445\u043e\u0442\u0441\u043f\u043e\u0442\u0430 \u0438 \u0449\u0435 \u0438\u0437\u0447\u0430\u043a\u0430\u0442\u0435, \u0434\u043e\u043a\u0430\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043e \u0441\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430.", "download-tour":"\u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435 \u043d\u0430 \u0442\u0443\u0440\u0430 \u0437\u0430 \u0432\u044a\u0437\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043e\u0444\u043b\u0430\u0439\u043d","change-to-drag-and-release":"\u041f\u0440\u043e\u043c\u0435\u043d\u0435\u0442\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u041f\u043b\u044a\u0437\u0433\u0430\u043d\u0435 \u0438 \u041f\u0443\u0441\u043a\u0430\u043d\u0435", accept:"\u041f\u0440\u0438\u0435\u043c\u0435\u0442\u0435",cancel:"\u041e\u0442\u043a\u0430\u0437","storage-not-provided-bookmark":"\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0442\u043e \u0441\u044a\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u043e. \u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u0442\u0430\u0437\u0438 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0432 \u043e\u0442\u043c\u0435\u0442\u043a\u0438 \u0438 \u0434\u0430 \u044f \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0434\u0438\u0442\u0435.", "dont-display-again":"\u041d\u0435 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u0439 \u0442\u0430\u0437\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0432\u043e","web-server-required":"\u0422\u043e\u0437\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u0435\u043b\u0435\u043d \u0442\u0443\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0443\u0441\u043d\u0430\u0442 \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u041c\u043e\u043b\u044f, \u043a\u0430\u0447\u0435\u0442\u0435 \u0433\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.\n\u0410\u043a\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u0435, \u0438\u0437\u0442\u0435\u0433\u043b\u0435\u0442\u0435 htm \u0444\u0430\u0439\u043b\u0430 (\u0438\u043b\u0438 \u0446\u044f\u043b\u0430\u0442\u0430 \u043f\u0430\u043f\u043a\u0430 \u043d\u0430 \u0442\u0443\u0440\u0430) \u0432\u044a\u0440\u0445\u0443 \u0438\u043a\u043e\u043d\u0430\u0442\u0430 \u043d\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e TourViewer.", download:"\u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435","change-to-click-and-move":"\u041f\u0440\u043e\u043c\u0435\u043d\u0435\u0442\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u041a\u043b\u0438\u043a\u0432\u0430\u043d\u0435 \u0438 \u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435",yes:"\u0434\u0430","delete-downloaded":"\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435","use-safari-for-vr":"\u041f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430\u043c\u0435 Safari, \u0437\u0430 \u0434\u0430 \u0440\u0430\u0437\u0433\u043b\u0435\u0434\u0430\u0442\u0435 \u0442\u043e\u0437\u0438 \u0442\u0443\u0440 \u0432 \u0440\u0435\u0436\u0438\u043c VR", "exit-fullscreen":"\u0418\u0437\u043b\u0435\u0437\u0442\u0435 \u043e\u0442 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",no:"\u043d\u0435","download-failed":"\u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435\u0442\u043e \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438","giroscope-disabled-http":"\u0418\u043c\u0430\u0442\u0435 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0442\u0430\u0437\u0438 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0447\u0440\u0435\u0437 http, \u0442\u0430\u043a\u0430 \u0447\u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u044a\u0442 \u0434\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0432\u0430\u0448\u0435\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0440\u0435\u0436\u0438\u043c\u044a\u0442 VR \u0441\u0430 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0438, \u043c\u043e\u043b\u044f, \u043e\u0442\u0432\u043e\u0440\u0435\u0442\u0435 \u0433\u043e \u0447\u0440\u0435\u0437 https, \u0437\u0430 \u0434\u0430 \u0433\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u0442\u0435.", "cookies-notice":"\u0422\u0430\u0437\u0438 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0438 \u0437\u0430 \u0441\u044a\u0431\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u0430\u043d\u043d\u0438 \u0437\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e. \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043c\u043e\u043b\u044f, \u043f\u043e\u0441\u0435\u0442\u0435\u0442\u0435 \u041f\u0440\u0430\u0432\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0438\u0442\u0435 .", "use-cardboard":"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439 Cardboard","launch-default-browser":"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435","refresh-downloaded":"\u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435","rotate-device":"\u041c\u043e\u043b\u044f \u0437\u0430\u0432\u044a\u0440\u0442\u0435\u0442\u0435 \u0432\u0430\u0448\u0435\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e", "exit-vr":"\u0418\u0437\u043b\u0438\u0437\u0430\u043d\u0435 \u043e\u0442 \u0440\u0435\u0436\u0438\u043c VR",reject:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u0442\u0435","disable-measure":"Stop measuring",downloading:"\u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435","cardboard-v2":"\u0410\u043a\u043e \u0438\u043c\u0430\u0442\u0435 \u043e\u0447\u0438\u043b\u0430 Cardboard v2, \u043a\u043e\u0438\u0442\u043e \u0440\u0430\u0437\u043f\u043e\u043b\u0430\u0433\u0430\u0442 \u0441 \u0431\u0443\u0442\u043e\u043d, \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u043e\u0433\u043b\u0435\u0434\u043d\u0435\u0442\u0435 \u0445\u043e\u0442\u0441\u043f\u043e\u0442\u0430 \u0438 \u0434\u0430 \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430, \u0437\u0430 \u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043e \u043c\u0443.", "enable-video-audio-prompt":"\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0430\u0443\u0434\u0438\u043e?","storage-not-provided-launch-from-desktop":"\u041c\u043e\u043b\u044f, \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0439\u0442\u0435 \u043e\u0431\u0438\u043a\u043e\u043b\u043a\u0430\u0442\u0430 \u043e\u0442 \u0438\u043a\u043e\u043d\u0430\u0442\u0430 \u043d\u0430 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430, \u0437\u0430 \u0434\u0430 \u044f \u0438\u0437\u0442\u0435\u0433\u043b\u0438\u0442\u0435.", downloaded:"\u0422\u043e\u0437\u0438 \u0442\u0443\u0440 \u0435 \u0438\u0437\u0442\u0435\u0433\u043b\u0435\u043d \u0437\u0430 \u0432\u044a\u0437\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043e\u0444\u043b\u0430\u0439\u043d.","samsung-internet-vr-app-info":"\u0410\u043a\u043e \u0438\u043c\u0430\u0442\u0435 \u043e\u0447\u0438\u043b\u0430 Gear VR, \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 \u0441 \u0442\u043e\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438 \u0441\u0442\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043b\u0438 Samsung Internet for VR, \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0433\u0438 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438 \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0432\u044a\u0432 VR. \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u0435 Samsung Internet \u0431\u0440\u0430\u0443\u0437\u044a\u0440 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435.", "samsung-internet-vr-info":"\u0410\u043a\u043e \u0438\u043c\u0430\u0442\u0435 \u043e\u0447\u0438\u043b\u0430 Gear VR, \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 \u0441 \u0442\u043e\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438 \u0441\u0442\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043b\u0438 Samsung Internet for VR, \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0433\u0438 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438 \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0432\u044a\u0432 VR. \u0421\u0435\u0433\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u043b\u043e\u0436\u0438\u0442\u0435 \u043c\u043e\u0431\u0438\u043b\u043d\u0438\u044f \u0441\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0432 \u043e\u0447\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430 \u0440\u0435\u0430\u043b\u043d\u043e\u0441\u0442.", "enable-video-prompt":"\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e?","giroscope-disabled-safari-request-permission":["\u0414\u043e\u0441\u0442\u044a\u043f\u044a\u0442 \u0437\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u0432\u0430\u0448\u0435\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0440\u0435\u0436\u0438\u043c\u044a\u0442 VR \u0441\u0430 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0438 \u0437\u0430 \u0442\u043e\u0437\u0438 \u0441\u0430\u0439\u0442.", "\u0417\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u0442\u0430\u0437\u0438 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043c\u043e\u043b\u044f, \u043a\u043b\u0438\u043a\u043d\u0435\u0442\u0435 \u0432\u044a\u0440\u0445\u0443 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438 \u0438 \u043f\u0440\u0438\u0435\u043c\u0435\u0442\u0435 \u0438\u0441\u043a\u0430\u043d\u0435\u0442\u043e \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435."], "storage-not-provided-launch-from-homescreen":"\u041c\u043e\u043b\u044f, \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0439\u0442\u0435 \u043e\u0431\u0438\u043a\u043e\u043b\u043a\u0430\u0442\u0430 \u043e\u0442 \u0438\u043a\u043e\u043d\u0430\u0442\u0430 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043d\u0438\u044f \u0435\u043a\u0440\u0430\u043d, \u0437\u0430 \u0434\u0430 \u044f \u0438\u0437\u0442\u0435\u0433\u043b\u0438\u0442\u0435.","enter-fullscreen":"\u0412\u043b\u0435\u0437\u0442\u0435 \u0432 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d", "use-cardboard-v2":"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439 Cardboard v2",unmute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u0437\u0432\u0443\u043a","enter-vr":"\u0412\u043b\u0435\u0437 \u0432\u044a\u0432 VR \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435","enable-measure":"Start measuring","use-cardboard-info":"\u041c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0432\u0441\u044f\u043a\u0430\u043a\u0432\u0438 \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 Google Cardboard \u043e\u0447\u0438\u043b\u0430, \u0437\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0432\u044a\u0432 VR.", "ar-mobile-info":"\u041c\u0435\u0434\u043b\u0435\u043d\u043e \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u0439\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0441\u0438, \u0437\u0430 \u0434\u0430 \u0441\u043a\u0430\u043d\u0438\u0440\u0430\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e\u0442\u043e \u0441\u0438.\n\u0429\u0435 \u0441\u0435 \u043f\u043e\u044f\u0432\u0438 \u043a\u0440\u044a\u0433, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u044a\u0434\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u043f\u043e\u0432\u044a\u0440\u0445\u043d\u043e\u0441\u0442\u0442\u0430.\n\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430, \u0437\u0430 \u0434\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u043e\u0431\u0435\u043a\u0442\u0430 \u0442\u0430\u043c.", "use-default-cardboard":"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435","enable-audio-prompt":"\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0443\u0434\u0438\u043e?"},"fi-fi":{mute:"Poista \u00e4\u00e4ni k\u00e4yt\u00f6st\u00e4","cardboard-v1":"Mik\u00e4li et ole varma, mit\u00e4 Cardboard-versiota k\u00e4yt\u00e4t, valitse oletusarvoinen hotspot-hallinta. T\u00e4m\u00e4n j\u00e4lkeen katsomalla hotspotia, toiminto k\u00e4ynnistyy.", "download-tour":"Lataa t\u00e4m\u00e4 sis\u00e4lt\u00f6 offline-toistoa varten","change-to-drag-and-release":"Muuta ohjaustilaa vet\u00e4m\u00e4ll\u00e4 ja vapauttamalla",accept:"Hyv\u00e4ksy",download:"Lataa","storage-not-provided-bookmark":"Tallennus ep\u00e4onnistui. Kokeile lis\u00e4t\u00e4 t\u00e4m\u00e4 verkkosivu kirjanmerkkeihin ja suorita lataus uudelleen.","dont-display-again":"\u00c4l\u00e4 n\u00e4yt\u00e4 t\u00e4t\u00e4 ilmoitusta uudelleen","web-server-required":"T\u00e4t\u00e4 sis\u00e4lt\u00f6\u00e4 ei voi toistaa paikalliselta asemalta. Lataa sis\u00e4lt\u00f6 internet-palvelimelle ja yrit\u00e4 uudelleen.\nVoit my\u00f6s vet\u00e4\u00e4 htm-tiedoston (tai koko kansion) TourViewer-sovelluskuvakkeen p\u00e4\u00e4lle.", cancel:"Sulje","change-to-click-and-move":"Muuta ohjaustilaa klikkaamalla ja siirt\u00e4m\u00e4ll\u00e4",yes:"Kyll\u00e4","delete-downloaded":"Poista","use-safari-for-vr":"Suosittelemme Safari-selainta t\u00e4m\u00e4n sis\u00e4ll\u00f6n katseluun VR-tilassa.","exit-fullscreen":"Sulje koko n\u00e4yt\u00f6n n\u00e4kym\u00e4",no:"Ei","download-failed":"Lataus ep\u00e4onnistui","giroscope-disabled-http":"K\u00e4yt\u00e4t t\u00e4t\u00e4 verkkosivua http:n kautta, joten laitteesi liiketunnistimet sek\u00e4 VR-tila on poistettu k\u00e4yt\u00f6st\u00e4. Ota ne k\u00e4ytt\u00f6\u00f6n siirtym\u00e4ll\u00e4 sivulle https:n kautta.", "cookies-notice":"T\u00e4m\u00e4 verkkosivu k\u00e4ytt\u00e4\u00e4 ev\u00e4steit\u00e4 k\u00e4ytt\u00f6tilastojen ker\u00e4\u00e4miseen. Lis\u00e4tietoja ev\u00e4stek\u00e4yt\u00e4nn\u00f6st\u00e4.","use-cardboard":"K\u00e4yt\u00e4 Cardboardia","launch-default-browser":"K\u00e4ynnist\u00e4 oletusselaimessa","refresh-downloaded":"P\u00e4ivit\u00e4","rotate-device":"K\u00e4\u00e4nn\u00e4 laitettasi","exit-vr":"Poistu VR-tilasta",reject:"Hylk\u00e4\u00e4","disable-measure":"Lopeta mittaaminen", downloading:"Ladataan","cardboard-v2":"Mik\u00e4li sinulla on Cardboard v2 -virtuaalilasit, joissa on painike, voit katsoa hotspotia ja aktivoida sen painamalla painiketta.","enable-video-audio-prompt":"Otetaanko \u00e4\u00e4ni ja video k\u00e4ytt\u00f6\u00f6n?","storage-not-provided-launch-from-desktop":"Uudelleenk\u00e4ynnist\u00e4 t\u00e4m\u00e4 sis\u00e4lt\u00f6 ty\u00f6p\u00f6yd\u00e4n kuvakkeesta aloittaaksesi lataamisen.",downloaded:"T\u00e4m\u00e4 sis\u00e4lt\u00f6 on ladattu offline-toistoa varten", "samsung-internet-vr-app-info":"Mik\u00e4li sinulla on t\u00e4m\u00e4n laitteen kanssa yhteensopivat Gear VR -virtuaalilasit ja olet asentanut Samsung Internet for VR:n, voit k\u00e4ytt\u00e4\u00e4 virtuaalilaseja t\u00e4m\u00e4n sis\u00e4ll\u00f6n katseluun VR-tilassa. Sinun on lis\u00e4ksi m\u00e4\u00e4ritett\u00e4v\u00e4 Samsung Internet oletusselaimeksi.","samsung-internet-vr-info":"Mik\u00e4li sinulla on t\u00e4m\u00e4n laitteen kanssa yhteensopivat Gear VR -virtuaalilasit ja olet asentanut Samsung Internet for VR:n, voit k\u00e4ytt\u00e4\u00e4 virtuaalilaseja t\u00e4m\u00e4n sis\u00e4ll\u00f6n katseluun VR-tilassa. Aseta \u00e4lypuhelin virtuaalilaseihin aloittaaksesi.", "enable-video-prompt":"Otetaanko video k\u00e4ytt\u00f6\u00f6n?","giroscope-disabled-safari-request-permission":["Laitteesi liiketunnistimen k\u00e4ytt\u00f6oikeus ja VR-tila on poistettu k\u00e4yt\u00f6st\u00e4 t\u00e4ll\u00e4 sivustolla.","N\u00e4hd\u00e4ksesi t\u00e4m\u00e4n verkkosivun oikein, valitse jatka ja hyv\u00e4ksy lupapyynt\u00f6 pyydett\u00e4ess\u00e4."],"storage-not-provided-launch-from-homescreen":"Uudelleenk\u00e4ynnist\u00e4 t\u00e4m\u00e4 sis\u00e4lt\u00f6 kotin\u00e4yt\u00f6n kuvakkeesta aloittaaksesi lataamisen", "enter-fullscreen":"Avaa koko n\u00e4yt\u00f6n n\u00e4kym\u00e4","use-cardboard-v2":"K\u00e4yt\u00e4 Cardboard v2:sta",unmute:"Ota \u00e4\u00e4ni k\u00e4ytt\u00f6\u00f6n","enter-vr":"Siirry VR-tilaan","enable-measure":"Aloita mittaaminen","use-cardboard-info":"Voit k\u00e4ytt\u00e4\u00e4 mit\u00e4 tahansa yhteensopivia Google Cardboard -virtuaalilaseja katsellaksesi t\u00e4t\u00e4 sis\u00e4lt\u00f6\u00e4 VR-tilassa.","ar-mobile-info":"Liikuta laitteesi hitaasti avaruuteesi skannataksesi.\nYmpyr\u00e4 ilmestyy, kun pinta l\u00f6ytyy.\nPit\u00e4k\u00f6nt\u00e4n\u00e4 n\u00e4pp\u00e4in paikkaa objektia siell\u00e4.", "use-default-cardboard":"K\u00e4yt\u00e4 oletuksena","enable-audio-prompt":"Otetaanko \u00e4\u00e4ni k\u00e4ytt\u00f6\u00f6n?"},"sk-sk":{mute:"St\u00ed\u0161i\u0165","cardboard-v1":"Ak ste si nie ist\u00ed, ktor\u00fa verziu Cardboardu pou\u017e\u00edvate, vyberte si predvolen\u00e9 ovl\u00e1danie hotspotu. Potom sa jednoducho pozriete na hotspot a po\u010dkajte, k\u00fdm sa akcia nespust\u00ed.","download-tour":"Stiahnu\u0165 prehliadku na hranie v offline re\u017eime","change-to-drag-and-release":"Zmeni\u0165 re\u017eim ovl\u00e1dania na Presun\u00fa\u0165 a Uvo\u013eni\u0165", accept:"s\u00fahlasi\u0165",cancel:"Zru\u0161i\u0165","storage-not-provided-bookmark":"Trval\u00e9 \u00falo\u017eisko odmietnut\u00e9. Sk\u00faste si t\u00fato webov\u00fa str\u00e1nku ulo\u017ei\u0165 a na\u010d\u00edta\u0165 ju znova.","dont-display-again":"Tieto inform\u00e1cie u\u017e nezobrazova\u0165","web-server-required":"T\u00e1to virtu\u00e1lna prehliadka sa ned\u00e1 prehra\u0165 z lok\u00e1lneho disku. Nahrajte ju na internet a sk\u00faste to znova.\nAk chcete, potiahnite s\u00fabor htm (alebo cel\u00fd prie\u010dinok prehliadky) na ikonu aplik\u00e1cie TourViewer.", download:"Stiahnu\u0165","change-to-click-and-move":"Zmeni\u0165 re\u017eim ovl\u00e1dania na Klikn\u00fa\u0165 a Presun\u00fa\u0165",yes:"\u00e1no","delete-downloaded":"Zmaza\u0165","use-safari-for-vr":"Odpor\u00fa\u010dame pou\u017e\u00edva\u0165 Safari prehliada\u010d pre t\u00fato prehliadku v re\u017eime VR","exit-fullscreen":"Ukon\u010di\u0165 cel\u00fa obrazovku",no:"nie","download-failed":"S\u0165ahovanie zlyhalo","giroscope-disabled-http":"Na t\u00fato webov\u00fa str\u00e1nku pristupujete cez http protokol, preto pr\u00edstup k pohybu a orient\u00e1cii v\u00e1\u0161ho zariadenia a re\u017eim VR s\u00fa deaktivovan\u00e9. Ak ich chcete povoli\u0165, nav\u0161t\u00edvte str\u00e1nku cez https.", "cookies-notice":"T\u00e1to webov\u00e1 str\u00e1nka pou\u017e\u00edva s\u00fabory cookie na zhroma\u017e\u010fovanie \u0161tatist\u00edk pou\u017e\u00edvania. \u010eal\u0161ie inform\u00e1cie n\u00e1jdete v pravidl\u00e1ch pou\u017e\u00edvania s\u00faborov cookie .","use-cardboard":"Pou\u017eite Cardboard okuliare.","launch-default-browser":"Spusti\u0165 v predvolenom prehliada\u010di","refresh-downloaded":"Obnovi\u0165","rotate-device":"Oto\u010dte svoje zariadenie","exit-vr":"Ukon\u010denie VR", reject:"Odmietnu\u0165","disable-measure":"Ukon\u010di\u0165 meranie",downloading:"S\u0165ahovanie","cardboard-v2":"Ak m\u00e1te n\u00e1hlavn\u00fa s\u00fapravu Cardboard v2, ktor\u00e1 je dod\u00e1van\u00e1 s tla\u010didlom, m\u00f4\u017eete sa pozrie\u0165 na hotspot a stla\u010den\u00edm tla\u010didla spusti\u0165 akciu.","enable-video-audio-prompt":"Povoli\u0165 video a zvuk?","storage-not-provided-launch-from-desktop":"Znovu na\u010d\u00edtajte prehliadku pomocou desktop ikony pre jej stiahnite.", downloaded:"T\u00e1to prehliadka je stiahnut\u00e1 na hranie v offline re\u017eime.","samsung-internet-vr-app-info":"Ak m\u00e1te Gear VR sl\u00fachadl\u00e1\u00e1 kompatibiln\u00e9 s t\u00fdmto zariaden\u00edm a m\u00e1te nain\u0161talovan\u00fd program Samsung Internet pre VR, m\u00f4\u017eete ho tie\u017e pou\u017ei\u0165 na prezeranie tohto obsahu vo VR. Mus\u00edte si nastavi\u0165 Samsung Internet ako predvolen\u00fd prehliada\u010d.","samsung-internet-vr-info":"Ak m\u00e1te Gear VR sl\u00fachadl\u00e1 kompatibiln\u00e9 s t\u00fdmto zariaden\u00edm a m\u00e1te nain\u0161talovan\u00fd program Samsung Internet pre VR, m\u00f4\u017eete ho tie\u017e pou\u017ei\u0165 na prezeranie tohto obsahu vo VR. Sta\u010d\u00ed teraz vlo\u017ei\u0165 mobiln\u00fd telef\u00f3n do n\u00e1hlavnej s\u00fapravy.", "enable-video-prompt":"Povoli\u0165 video?","giroscope-disabled-safari-request-permission":["Pre t\u00fato str\u00e1nku s\u00fa pr\u00edstup k pohybu a orient\u00e1cii v\u00e1\u0161ho zariadenia a re\u017eim VR deaktivovan\u00e9.","Aby ste korektne videli t\u00fato webov\u00fa str\u00e1nku, pros\u00edm kliknite pokra\u010dova\u0165 a akceptujte po\u017eadovan\u00e9 povolenie."],"storage-not-provided-launch-from-homescreen":"Znovu na\u010d\u00edtajte prehliadku pomocou ikony na ploche pre jej stiahnite.", "enter-fullscreen":"Prejs\u0165 na cel\u00fa obrazovku","use-cardboard-v2":"Pou\u017eite Cardboard v2",unmute:"Zapn\u00fa\u0165 zvuk","enter-vr":"Vlo\u017ei\u0165 VR obsah","enable-measure":"Za\u010da\u0165 meranie","use-cardboard-info":"Na zobrazenie tohto obsahu vo VR m\u00f4\u017eete pou\u017ei\u0165 \u013eubovo\u013en\u00fa kompatibiln\u00fa n\u00e1hlavn\u00fa s\u00fapravu Google Cardboard.","ar-mobile-info":"Pomaly pohybujte svojim zariaden\u00edm, aby ste skanovali svoj priestor.\nKruh sa zobraz\u00ed, ke\u010f sa n\u00e1jde povrch.\nDotknite sa obrazovky, aby ste umiestnili objekt tam.", "use-default-cardboard":"Pou\u017ei\u0165 predvolen\u00e9","enable-audio-prompt":"Povoli\u0165 zvuk?"},"uk-ua":{mute:"\u0412\u0438\u043c\u043a\u043d\u0443\u0442\u0438 \u0437\u0432\u0443\u043a","cardboard-v1":"\u042f\u043a\u0449\u043e \u0432\u0438 \u043d\u0435 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u044f\u043a\u0443 \u0432\u0435\u0440\u0441\u0456\u044e Cardboard \u0432\u0438 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u0442\u0435, \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c. \u041f\u043e\u0442\u0456\u043c \u0432\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u0438\u0432\u0438\u0442\u0435\u0441\u044f \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0442\u0430 \u043f\u043e\u0447\u0435\u043a\u0430\u0439\u0442\u0435, \u0434\u043e\u043a\u0438 \u0434\u0456\u044f \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f.", "download-tour":"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0442\u0435 \u0442\u0443\u0440 \u0434\u043b\u044f \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0432 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u043c\u0443 \u0440\u0435\u0436\u0438\u043c\u0456","change-to-drag-and-release":"\u0417\u043c\u0456\u043d\u0456\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043d\u0430 \u041f\u0435\u0440\u0435\u0442\u044f\u0433\u043d\u0456\u0442\u044c \u0456 \u0432\u0456\u0434\u043f\u0443\u0441\u0442\u0456\u0442\u044c", accept:"\u041f\u0440\u0438\u0439\u043c\u0456\u0442\u044c",cancel:"\u0412\u0456\u0434\u043c\u0456\u043d\u0438\u0442\u0438","storage-not-provided-bookmark":"\u041f\u043e\u0441\u0442\u0456\u0439\u043d\u0435 \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u043d\u043d\u044f \u0437\u0430\u0431\u043e\u0440\u043e\u043d\u0435\u043d\u043e. \u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0434\u043e\u0434\u0430\u0442\u0438 \u0446\u044e \u0432\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0443 \u0432 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0442\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0457\u0457.", "dont-display-again":"\u041d\u0435 \u043f\u043e\u043a\u0430\u0437\u0443\u0439\u0442\u0435 \u0446\u044e \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044e \u0437\u043d\u043e\u0432\u0443","web-server-required":"\u0426\u0435\u0439 \u0432\u0456\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0438\u0439 \u0442\u0443\u0440 \u043d\u0435 \u043c\u043e\u0436\u043d\u0430 \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430. \u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0442\u0435 \u0439\u043e\u0433\u043e \u0432 \u0406\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0456 \u043f\u043e\u0432\u0442\u043e\u0440\u0456\u0442\u044c \u0441\u043f\u0440\u043e\u0431\u0443.\n\u042f\u043a\u0449\u043e \u0431\u0430\u0436\u0430\u0454\u0442\u0435, \u043f\u0435\u0440\u0435\u0442\u044f\u0433\u043d\u0456\u0442\u044c \u0444\u0430\u0439\u043b htm (\u0430\u0431\u043e \u0432\u0441\u044e \u043f\u0430\u043f\u043a\u0443 \u0442\u0443\u0440\u0443) \u043d\u0430 \u043f\u0456\u043a\u0442\u043e\u0433\u0440\u0430\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438 TourViewer.", download:"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438","change-to-click-and-move":"\u0417\u043c\u0456\u043d\u0456\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043d\u0430 \u041a\u043b\u0430\u0446\u043d\u0456\u0442\u044c \u0456 \u043f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0456\u0442\u044c",yes:"\u0442\u0430\u043a","delete-downloaded":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438","use-safari-for-vr":"\u041c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0454\u043c\u043e Safari \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u044c\u043e\u0433\u043e \u0442\u0443\u0440\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0456 VR", "exit-fullscreen":"\u0412\u0438\u0439\u0442\u0438 \u0437 \u043f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0443",no:"\u043d\u0456","download-failed":"\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438","giroscope-disabled-http":"\u0412\u0438 \u043e\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0446\u0456\u0454\u0457 \u0432\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 http, \u0442\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0440\u0443\u0445\u0443 \u0442\u0430 \u043e\u0440\u0456\u0454\u043d\u0442\u0430\u0446\u0456\u0457 \u0432\u0430\u0448\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e \u0442\u0430 \u0440\u0435\u0436\u0438\u043c VR \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e. \u0429\u043e\u0431 \u0443\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0457\u0445, \u043f\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044c \u0434\u043e \u043d\u0438\u0445 \u0447\u0435\u0440\u0435\u0437 https.", "cookies-notice":"\u0426\u044f \u0432\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454 \u0444\u0430\u0439\u043b\u0438 cookie \u0434\u043b\u044f \u0437\u0431\u043e\u0440\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f. \u0414\u043b\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0434\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u043e\u0457 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u0457 \u0432\u0456\u0434\u0432\u0456\u0434\u0430\u0439\u0442\u0435 \u041f\u043e\u043b\u0456\u0442\u0438\u043a\u0443 \u0449\u043e\u0434\u043e \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f \u0444\u0430\u0439\u043b\u0456\u0432 cookie.", "use-cardboard":"\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 Cardboard","launch-default-browser":"\u0417\u0430\u043f\u0443\u0441\u0442\u0456\u0442\u044c \u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0456 \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","refresh-downloaded":"\u041e\u043d\u043e\u0432\u0438\u0442\u0438","rotate-device":"\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u043e\u0432\u0435\u0440\u043d\u0456\u0442\u044c \u0441\u0432\u0456\u0439 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439", "exit-vr":"\u0412\u0438\u0439\u0434\u0456\u0442\u044c \u0456\u0437 VR",reject:"\u0412\u0456\u0434\u0445\u0438\u043b\u0438\u0442\u0438","disable-measure":"\u041f\u0440\u0438\u043f\u0438\u043d\u0456\u0442\u044c \u0432\u0438\u043c\u0456\u0440\u044e\u0432\u0430\u043d\u043d\u044f",downloading:"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","cardboard-v2":"\u042f\u043a\u0449\u043e \u0443 \u0432\u0430\u0441 \u0454 \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0430 Cardboard v2, \u044f\u043a\u0430 \u043f\u043e\u0441\u0442\u0430\u0447\u0430\u0454\u0442\u044c\u0441\u044f \u0437 \u043a\u043d\u043e\u043f\u043a\u043e\u044e, \u0432\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0438\u0432\u0438\u0442\u0438\u0441\u044f \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0442\u0430 \u043d\u0430\u0442\u0438\u0441\u043d\u0443\u0442\u0438 \u043a\u043d\u043e\u043f\u043a\u0443, \u0449\u043e\u0431 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0438 \u0457\u0457.", "enable-video-audio-prompt":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0432\u0456\u0434\u0435\u043e \u0442\u0430 \u0430\u0443\u0434\u0456\u043e?","storage-not-provided-launch-from-desktop":"\u0429\u043e\u0431 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0456\u0442\u044c \u043e\u0433\u043b\u044f\u0434 \u0456\u0437 \u0437\u043d\u0430\u0447\u043a\u0430 \u043d\u0430 \u0440\u043e\u0431\u043e\u0447\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0456.", downloaded:"\u0426\u0435\u0439 \u0442\u0443\u0440 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043e \u0434\u043b\u044f \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0432 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u043c\u0443 \u0440\u0435\u0436\u0438\u043c\u0456.","samsung-internet-vr-app-info":"\u042f\u043a\u0449\u043e \u0443 \u0432\u0430\u0441 \u0454 \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0430 Gear VR, \u0441\u0443\u043c\u0456\u0441\u043d\u0430 \u0437 \u0446\u0438\u043c \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u0454\u043c, \u0456 \u0432\u0438 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 Samsung Internet \u0434\u043b\u044f VR, \u0432\u0438 \u0442\u0430\u043a\u043e\u0436 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0457\u0457 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u044c\u043e\u0433\u043e \u0432\u043c\u0456\u0441\u0442\u0443 \u0443 VR, \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u0437\u0440\u043e\u0431\u0438\u0442\u0438 Samsung Internet \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c.", "samsung-internet-vr-info":"\u042f\u043a\u0449\u043e \u0443 \u0432\u0430\u0441 \u0454 \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0430 Gear VR, \u0441\u0443\u043c\u0456\u0441\u043d\u0430 \u0437 \u0446\u0438\u043c \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u0454\u043c, \u0456 \u0432\u0438 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 Samsung Internet \u0434\u043b\u044f \u0432\u0456\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0457 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0456, \u0432\u0438 \u0442\u0430\u043a\u043e\u0436 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0457\u0457 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u044c\u043e\u0433\u043e \u0432\u043c\u0456\u0441\u0442\u0443 \u0443 VR, \u0432\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0440\u0430\u0437 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043f\u0456\u0434\u2019\u0454\u0434\u043d\u0430\u0442\u0438 \u043c\u043e\u0431\u0456\u043b\u044c\u043d\u0438\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0434\u043e \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0438.", "enable-video-prompt":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0432\u0456\u0434\u0435\u043e?","giroscope-disabled-safari-request-permission":["\u0414\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0440\u0443\u0445\u0443 \u0442\u0430 \u043e\u0440\u0456\u0454\u043d\u0442\u0430\u0446\u0456\u0457 \u0432\u0430\u0448\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e, \u0430 \u0442\u0430\u043a\u043e\u0436 \u0440\u0435\u0436\u0438\u043c VR \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e \u0434\u043b\u044f \u0446\u044c\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0443.", "\u0429\u043e\u0431 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u0443\u0442\u0438 \u0446\u044e \u0432\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0443, \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u00ab\u041f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438\u00bb \u0442\u0430 \u043f\u0440\u0438\u0439\u043c\u0456\u0442\u044c \u0437\u0430\u043f\u0438\u0442 \u043d\u0430 \u0434\u043e\u0437\u0432\u0456\u043b, \u044f\u043a\u0449\u043e \u0437\u2019\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0438\u0442."], "storage-not-provided-launch-from-homescreen":"\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0456\u0442\u044c \u0442\u0443\u0440 \u0437\u0456 \u0437\u043d\u0430\u0447\u043a\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u0435\u043a\u0440\u0430\u043d\u0430, \u0449\u043e\u0431 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438.","enter-fullscreen":"\u041f\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044c \u0443 \u043f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c", "use-cardboard-v2":"\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 Cardboard v2",unmute:"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0437\u0432\u0443\u043a","enter-vr":"\u041e\u0431\u0435\u0440\u0456\u0442\u044c \u0432\u043c\u0456\u0441\u0442 VR","enable-measure":"\u041f\u043e\u0447\u043d\u0456\u0442\u044c \u0432\u0438\u043c\u0456\u0440\u044e\u0432\u0430\u0442\u0438","use-cardboard-info":"\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0431\u0443\u0434\u044c-\u044f\u043a\u0443 \u0441\u0443\u043c\u0456\u0441\u043d\u0443 \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0443 Google Cardboard \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u044c\u043e\u0433\u043e \u0432\u043c\u0456\u0441\u0442\u0443 \u0443 VR.", "ar-mobile-info":"\u041f\u043e\u0432\u0456\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0456\u0449\u0443\u0439\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439, \u0449\u043e\u0431 \u043f\u0440\u043e\u0441\u043a\u0430\u043d\u0443\u0432\u0430\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u0456\u0440.\n\u041a\u043e\u043b\u0438 \u0431\u0443\u0434\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u044e, \u0437\u2019\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043a\u0456\u043b\u044c\u0446\u0435.\n\u0422\u043e\u0440\u043a\u043d\u0456\u0442\u044c\u0441\u044f \u0435\u043a\u0440\u0430\u043d\u0430, \u0449\u043e\u0431 \u0440\u043e\u0437\u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0442\u0430\u043c \u043e\u0431\u2019\u0454\u043a\u0442.", "use-default-cardboard":"\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","enable-audio-prompt":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0430\u0443\u0434\u0456\u043e?"},"en-us":{mute:"Mute","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"Download Tour for offline playing","change-to-drag-and-release":"Change control mode to Drag and Release",accept:"Accept",cancel:"Cancel","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.", download:"Download","change-to-click-and-move":"Change control mode to Click and Move",yes:"yes","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Exit fullscreen",no:"no","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"This web page uses cookies to collect usage statistics. For more information, please visit the Cookie Policy.", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Reject","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Enable video and audio?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Enable video?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Enter fullscreen","use-cardboard-v2":"Use Cardboard v2",unmute:"Unmute","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Slowly move your device to scan your space.\nA ring will appear when a surface is found.\nTap the screen to place the object there.","use-default-cardboard":"Use Default","enable-audio-prompt":"Enable audio?"},"sv-se":{mute:"Inaktivera ljud","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"Download Tour for offline playing","change-to-drag-and-release":"\u00c4ndra kontrolll\u00e4ge f\u00f6r att dra och sl\u00e4ppa",accept:"Acceptera",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.", cancel:"Cancel","change-to-click-and-move":"\u00c4ndra kontrolll\u00e4ge f\u00f6r att klicka och flytta",yes:"ja","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Avsluta fullsk\u00e4rmen",no:"Nej","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Denna webbsida anv\u00e4nder cookies f\u00f6r att samla in anv\u00e4ndningsstatistik. F\u00f6r mer information, bes\u00f6k Cookie Policy.", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Avvisa","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Aktivera ljud och video?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Aktivera video?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Ange fullsk\u00e4rm","use-cardboard-v2":"Use Cardboard v2",unmute:"Aktivera ljud","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Flytta enheten sakta f\u00f6r att skanna rummet.\nEn ring kommer att visas n\u00e4r en yta hittas.\nTryck p\u00e5 sk\u00e4rmen f\u00f6r att placera objektet d\u00e4r.","use-default-cardboard":"Use Default","enable-audio-prompt":"Aktivera ljud?"},"id-id":{mute:"Mute","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"Download Tour for offline playing","change-to-drag-and-release":"Change control mode to Drag and Release",accept:"Menerima",cancel:"Cancel","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.", download:"Download","change-to-click-and-move":"Change control mode to Click and Move",yes:"yes","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Exit fullscreen",no:"no","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Halaman web ini menggunakan cookie untuk mengumpulkan statistik penggunaan. Untuk informasi lebih lanjut, silakan kunjungi Kebijakan Cookie.", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Menolak","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Enable video and audio?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Enable video?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Enter fullscreen","use-cardboard-v2":"Use Cardboard v2",unmute:"Unmute","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Gerakkan perangkat Anda perlahan untuk memindai ruang Anda.\nLingkaran akan muncul ketika permukaan ditemukan.\nSentuh layar untuk meletakkan objek di sana.","use-default-cardboard":"Use Default","enable-audio-prompt":"Enable audio?"},"pt-br":{mute:"Desativar som","cardboard-v1":"Se voc\u00ea n\u00e3o tiver certeza de qual vers\u00e3o do Cardboard est\u00e1 usando, selecione o controle de ponto de acesso padr\u00e3o. Voc\u00ea simplesmente olha para um ponto de acesso e espera at\u00e9 que a a\u00e7\u00e3o seja acionada.", "download-tour":"Download do Tour para reprodu\u00e7\u00e3o offline","change-to-drag-and-release":"Alterar controle para arrastar e soltar",accept:"Aceitar",cancel:"Cancelar","storage-not-provided-bookmark":"Armazenamento persistente negado. Tente marcar esta p\u00e1gina da Web e recarreg\u00e1-la.","dont-display-again":"N\u00e3o exibir essas informa\u00e7\u00f5es novamente","web-server-required":"Este passeio virtual n\u00e3o pode ser reproduzido a partir de uma unidade local. Envie-o para a Internet e tente novamente.\nSe preferir, arraste o arquivo htm (ou toda a pasta do tour) para o \u00edcone do aplicativo TourViewer.", download:"Download","change-to-click-and-move":"Alterar controle para clicar e mover",yes:"sim","delete-downloaded":"Apagar","use-safari-for-vr":"Recomendamos o Safari para ver este passeio no modo VR","exit-fullscreen":"Sair da tela cheia",no:"n\u00e3o","download-failed":"Falha no Download","giroscope-disabled-http":"Voc\u00ea est\u00e1 acessando esta p\u00e1gina da Web por meio do http, para que o acesso \u00e0 orienta\u00e7\u00e3o e movimento do dispositivo e o modo VR sejam desativados, acesse-o atrav\u00e9s de https para ativ\u00e1-los.", "cookies-notice":"Esta p\u00e1gina da web usa cookies para coletar estat\u00edsticas de uso. Para obter mais informa\u00e7\u00f5es, visite a Pol\u00edtica de cookies.","use-cardboard":"Use Cardboard","launch-default-browser":"Iniciar no navegador padr\u00e3o","refresh-downloaded":"Atualizar","rotate-device":"Por favor, gire seu dispositivo","exit-vr":"Sair do VR",reject:"Rejeitar","disable-measure":"Stop measuring",downloading:"Baixando","cardboard-v2":"Se voc\u00ea tiver um fone de ouvido Cardboard v2, que vem com um bot\u00e3o, poder\u00e1 observar um ponto de acesso e pressionar o bot\u00e3o para acionar sua a\u00e7\u00e3o.", "enable-video-audio-prompt":"Ativar \u00e1udio e v\u00eddeo?","storage-not-provided-launch-from-desktop":"Por favor, reinicie o tour no \u00edcone da \u00e1rea de trabalho para fazer o download.",downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"Se voc\u00ea possui um fone de ouvido Gear VR compat\u00edvel com este dispositivo e instalou o Samsung Internet for VR, tamb\u00e9m pode us\u00e1-lo para visualizar esse conte\u00fado em VR. Voc\u00ea precisa tornar o Samsung Internet o seu padr\u00e3o. browser.", "samsung-internet-vr-info":"Se voc\u00ea possui um fone de ouvido Gear VR compat\u00edvel com este dispositivo e instalou o Samsung Internet for VR, tamb\u00e9m pode us\u00e1-lo para visualizar esse conte\u00fado em VR. Basta colocar o celular no fone de ouvido agora.","enable-video-prompt":"Ativar v\u00eddeo?","giroscope-disabled-safari-request-permission":["O acesso a movimento e orienta\u00e7\u00e3o do dispositivo e o modo VR est\u00e3o desativados para este site.","Para ver corretamente esta p\u00e1gina da web, clique em continuar e aceite a solicita\u00e7\u00e3o de permiss\u00e3o, se solicitado."], "storage-not-provided-launch-from-homescreen":"Reinicie o tour no \u00edcone da tela inicial para fazer o download.","enter-fullscreen":"Entrar em tela cheia","use-cardboard-v2":"Use Cardboard v2",unmute:"Ativar som","enter-vr":"Inserir conte\u00fado VR","enable-measure":"Start measuring","use-cardboard-info":"Voc\u00ea pode usar qualquer fone de ouvido compat\u00edvel do Google Cardboard para visualizar este conte\u00fado em VR","ar-mobile-info":"Mova lentamente o dispositivo para escanear o espa\u00e7o.\nUm anel aparecer\u00e1 quando uma superf\u00edcie for encontrada.\nToque na tela para colocar o objeto ali.", "use-default-cardboard":"Use o padr\u00e3o","enable-audio-prompt":"Ativar \u00e1udio?"},"it-it":{mute:"Disattiva audio","cardboard-v1":"Se non sei sicuro della versione di Cardboard, seleziona il controllo hotspot predefinito. Baster\u00e0 guardare un hotspot e attendere che l'azione venga attivata.","download-tour":"Scarica il tour per la riproduzione offline","change-to-drag-and-release":"Cambia modalit\u00e0 di controllo in Trascina e Rilascia",accept:"Accetta",cancel:"Annulla","storage-not-provided-bookmark":"Archiviazione persistente negata. Prova ad aggiungere questa pagina ai segnalibri e ricaricala.", "dont-display-again":"Non mostrare pi\u00f9 queste informazioni","web-server-required":"Questo tour virtuale non pu\u00f2 essere riprodotto da un'unit\u00e0 locale. Caricalo su internet e riprova.\nIn alternativa, trascina il file html (o l'intera cartella del tour) sull'icona dell'app TourViewer.",download:"Scarica","change-to-click-and-move":"Cambia modalit\u00e0 di controllo in Clicca e Sposta",yes:"s\u00ec","delete-downloaded":"Elimina","use-safari-for-vr":"Consigliamo l'uso di Safari per visualizzare questo tour in modalit\u00e0 VR", "exit-fullscreen":"Esci da schermo intero",no:"no","download-failed":"Download fallito","giroscope-disabled-http":"Stai accedendo a questa pagina tramite http, quindi l'accesso al movimento, all'orientamento e alla modalit\u00e0 VR del dispositivo \u00e8 disabilitato. Accedi tramite https per abilitarli.","cookies-notice":"Questo sito web utilizza i cookie per raccogliere statistiche di utilizzo. Per ulteriori informazioni, visita la Politica sui Cookie.","use-cardboard":"Usa Cardboard","launch-default-browser":"Apri nel browser predefinito", "refresh-downloaded":"Aggiorna","rotate-device":"Ruota il dispositivo","exit-vr":"Esci dalla VR",reject:"Rifiuta","disable-measure":"Interrompi misurazione",downloading:"Download in corso","cardboard-v2":"Se hai un visore Cardboard v2, con un pulsante, guarda l'hotspot e premi il pulsante per attivare l'azione.","enable-video-audio-prompt":"Abilitare video e audio?","storage-not-provided-launch-from-desktop":"Avvia il tour dall'icona sul desktop per scaricarlo.",downloaded:"Questo tour \u00e8 stato scaricato per la riproduzione offline.", "samsung-internet-vr-app-info":"Se hai un visore Gear VR compatibile con questo dispositivo e hai installato Samsung Internet for VR, puoi usarlo per visualizzare questo contenuto in VR. \u00c8 necessario impostare Samsung Internet come browser predefinito.","samsung-internet-vr-info":"Se hai un visore Gear VR compatibile con questo dispositivo e hai installato Samsung Internet for VR, puoi usarlo per visualizzare questo contenuto in VR. Basta inserire il telefono nel visore ora.","enable-video-prompt":"Abilitare il video?", "giroscope-disabled-safari-request-permission":["L'accesso al movimento e all'orientamento del dispositivo e la modalit\u00e0 VR sono disabilitati per questo sito.","Per visualizzare correttamente questa pagina, fai clic su continua e accetta la richiesta di autorizzazione se viene mostrata."],"storage-not-provided-launch-from-homescreen":"Avvia il tour dall'icona nella schermata iniziale per scaricarlo.","enter-fullscreen":"Vai a schermo intero","use-cardboard-v2":"Usa Cardboard v2",unmute:"Attiva audio", "enter-vr":"Accedi ai contenuti VR","enable-measure":"Inizia misurazione","use-cardboard-info":"Puoi usare un visore compatibile con Google Cardboard per visualizzare questo contenuto in VR.","ar-mobile-info":"Muovi lentamente il dispositivo per scansionare lo spazio.\nUn anello apparir\u00e0 quando viene trovata una superficie.\nTocca lo schermo per posizionare l'oggetto l\u00ec.","use-default-cardboard":"Usa Predefinito","enable-audio-prompt":"Abilitare l'audio?"},"zh-tw":{mute:"\u975c\u97f3","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"\u4e0b\u8f09\u865b\u64ec\u5c0e\u89bd\uff0c\u4ee5\u9032\u884c\u96e2\u7dda\u64ad\u653e","change-to-drag-and-release":"\u5c07\u63a7\u5236\u6a21\u5f0f\u66f4\u6539\u70ba\u201c\u62d6\u653e\u6a21\u5f0f\u201c",accept:"\u63a5\u53d7",cancel:"\u53d6\u6d88","storage-not-provided-bookmark":"\u88dd\u7f6e\u5167\u6c38\u4e45\u5b58\u5132\u88ab\u62d2\u7d55\u3002\u8acb\u5617\u8a66\u5c07\u6b64\u7db2\u9801\u65b0\u589e\u70ba\u66f8\u7c64\uff0c\u4e26\u91cd\u65b0\u8f09\u5165\u3002","dont-display-again":"\u4e0d\u518d\u986f\u793a\u672c\u8a0a\u606f", "web-server-required":"\u672c\u865b\u64ec\u5c0e\u89bd\u7121\u6cd5\u5728\u672c\u5730\u96fb\u8166\u4e0a\u64ad\u653e\u3002 \u8acb\u5c07\u5176\u4e0a\u50b3\u5230\u7db2\u969b\u7db2\u8def\u4f3a\u670d\u5668\uff0c\u7136\u5f8c\u91cd\u8a66\u3002\n\u5982\u679c\u9700\u8981\u672c\u5730\u9810\u89bd\uff0c\u8acb\u5c07htm\u6a94\u6848\uff08\u6216\u865b\u64ec\u5c0e\u89bd\u7684\u6574\u500b\u8cc7\u6599\u593e\uff09\u62d6\u653e\u5230TourViewer\u61c9\u7528\u7a0b\u793a\u7684\u5716\u793a\u4e0a\u3002",download:"\u4e0b\u8f09", "change-to-click-and-move":"\u5c07\u63a7\u5236\u6a21\u5f0f\u66f4\u6539\u70ba\u201c\u9ede\u64ca\u4e26\u79fb\u52d5\u201d",yes:"\u662f","delete-downloaded":"\u522a\u9664","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"\u9000\u51fa\u5168\u87a2\u5e55",no:"\u5426","download-failed":"\u4e0b\u8f09\u5931\u6557","giroscope-disabled-http":"\u60a8\u6b63\u5728\u901a\u904ehttp(\u672a\u52a0\u5bc6)\u700f\u89bd\u672c\u7db2\u9801\uff0c\u56e0\u6b64\u8a2d\u5099\u7684\u904b\u52d5\u548c\u65b9\u5411\u53d6\u7528\u6b0a\u9650\uff0c\u4ee5\u53caVR\u6a21\u5f0f\u5747\u5df2\u7981\u7528\uff0c\u8acb\u53e6\u901a\u904ehttps(\u52a0\u5bc6)\u7db2\u5740\u5c0d\u5176\u9032\u884c\u555f\u7528\u3002", "cookies-notice":"\u8a72\u7db2\u9801\u4f7f\u7528cookie\u4f86\u6536\u96c6\u4f7f\u7528\u60c5\u6cc1\u7d71\u8a08\u4fe1\u606f\u3002 \u6709\u95dc\u66f4\u591a\u4fe1\u606f\uff0c\u8acb\u8a2a\u554f Cookie\u653f\u7b56\u3002","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"\u91cd\u65b0\u6574\u7406","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"\u62d2\u7d55","disable-measure":"Stop measuring",downloading:"\u6b63\u5728\u4e0b\u8f09", "cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"\u5141\u8a31\u5f71\u7247\u53ca\u8072\u97f3\u64ad\u653e?","storage-not-provided-launch-from-desktop":"\u8acb\u5f9e\u684c\u9762\u9ede\u64ca\u5716\u793a\uff0c\u91cd\u65b0\u555f\u52d5\u865b\u64ec\u5c0e\u89bd\uff0c\u4ee5\u9032\u884c\u4e0b\u8f09\u3002",downloaded:"\u865b\u64ec\u5c0e\u89bd\u5df2\u4e0b\u8f09\uff0c\u53ef\u9032\u884c\u96e2\u7dda\u64ad\u653e\u3002", "samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.","enable-video-prompt":"\u5141\u8a31\u5f71\u7247\u64ad\u653e?", "giroscope-disabled-safari-request-permission":["\u8a72\u7db2\u7ad9\u5df2\u7981\u7528\u60a8\u8a2d\u5099\u7684\u904b\u52d5\u548c\u65b9\u5411\u53d6\u7528\u6b0a\u9650\uff0cVR\u6a21\u5f0f\u4e5f\u88ab\u7981\u7528\u3002","\u8981\u6b63\u78ba\u67e5\u770b\u672c\u7db2\u9801\uff0c\u8acb\u55ae\u64ca\u7e7c\u7e8c\uff0c\u4e26\u5728\u51fa\u73fe\u63d0\u793a\u6642\u63a5\u53d7\u8a31\u53ef\u8acb\u6c42\u3002"],"storage-not-provided-launch-from-homescreen":"\u8acb\u4e3b\u9801\u9762\u87a2\u5e55\u9ede\u64ca\u5716\u793a\uff0c\u91cd\u65b0\u555f\u52d5\u865b\u64ec\u5c0e\u89bd\uff0c\u4ee5\u9032\u884c\u4e0b\u8f09\u3002", "enter-fullscreen":"\u9032\u5165\u5168\u87a2\u5e55","use-cardboard-v2":"Use Cardboard v2",unmute:"\u53d6\u6d88\u975c\u97f3","enter-vr":"Enter VR content","enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"\u7de9\u6162\u79fb\u52d5\u8a2d\u5099\uff0c\u4ee5\u6383\u63cf\u7a7a\u9593\u3002\n\u7576\u627e\u5230\u8868\u9762\u6642\uff0c\u6703\u51fa\u73fe\u4e00\u500b\u5713\u5708\u3002\n\u9ede\u64ca\u5c4f\u5e55\uff0c\u5c07\u7269\u9ad4\u653e\u5728\u90a3\u88e1\u3002", "use-default-cardboard":"Use Default","enable-audio-prompt":"\u5141\u8a31\u8072\u97f3\u64ad\u653e?"},"nb-no":{mute:"Skru av lyd","cardboard-v1":"Hvis du ikke er sikker, hvilken Cardboard versjon du bruker, velger du standard hotspot-kontrollen. Du vil da bare se p\u00e5 et hotspot og vente til handlingen utl\u00f8ses.","download-tour":"Last ned visningen, s\u00e5 den kan bli sett uten internett","change-to-drag-and-release":"Endre kontrollmodus til Trekk og Slipp",accept:"Aksepterer",cancel:"Avbryt", "storage-not-provided-bookmark":"Vedvarende lagring nektet. Pr\u00f8v \u00e5 bokmerke denne nettsiden og laste den inn p\u00e5 nytt.","dont-display-again":"Ikke vis denne informasjonen igjen","web-server-required":"Denne virtuelle visningen kan ikke spilles av lokalt. Vennligst last den opp til internett, og fors\u00f8k igjen.\ndersom du prefererer det, kan du dra htm filen (eller hele mappen som inneholder visningen) over 'TourViewer' appen.",download:"Last ned","change-to-click-and-move":"Endre kontrollmodus til Klikk og Flytt", yes:"Ja","delete-downloaded":"Slett","use-safari-for-vr":"Vi anbefaler Safari for \u00e5 se p\u00e5 venne visningen i VR modus","exit-fullscreen":"G\u00e5 ut av full skjerm",no:"Nei","download-failed":"Nedlastning feilet","giroscope-disabled-http":"Du er koblet til denne nettsiden via http. Dermed er enhetens bevegelses- og orienteringstilgang og VR-modus deaktivert. Koble til via https for \u00e5 aktivere denne.","cookies-notice":"Denne websiden bruker informasjonskapsler for \u00e5 samle inn bruksstatistikk. For mer informasjon, bes\u00f8k retningslinjer for informasjonskapsler.", "use-cardboard":"Bruk Cardboard","launch-default-browser":"\u00c5pne i standard nettleser","refresh-downloaded":"Last inn p\u00e5 nytt","rotate-device":"Vennligst roter enheten","exit-vr":"G\u00e5 ut av VR",reject:"Avvis","disable-measure":"Stop measuring",downloading:"Laster ned","cardboard-v2":"Dersom du har Cardboard versjon 2, hvilket kommer med en knapp, kan du kikke p\u00e5 en klikkbar ting i visningen, og bruke knappen for \u00e5 bruke disse tingene, p\u00e5 samme m\u00e5te som p\u00e5 en laptop eller telefon.", "enable-video-audio-prompt":"Aktivere video og lyd?","storage-not-provided-launch-from-desktop":"Start turen p\u00e5 nytt fra skrivebordsikonet for \u00e5 laste ned.",downloaded:"Denne visningen er lastet ned, s\u00e5 den kan bli sett uten internett.","samsung-internet-vr-app-info":"Hvis du har et Gear VR-headset som er kompatibelt med denne enheten og har installert Samsung Internet for VR, kan du ogs\u00e5 bruke det til \u00e5 se dette innholdet i VR, du m\u00e5 ogs\u00e5 gj\u00f8re Samsung Internet til standard nettleser.", "samsung-internet-vr-info":"Hvis du har et Gear VR-headset som er kompatibelt med denne enheten, og du har installert Samsung Internet for VR, kan du ogs\u00e5 bruke det til \u00e5 se dette innholdet i VR, du trenger bare \u00e5 sette mobiltelefonen p\u00e5 headsettet n\u00e5.","enable-video-prompt":"Aktivere video?","giroscope-disabled-safari-request-permission":["Din enhet sin bevegelses- og orienterings tilgang, samt VR modus er deaktivert for denne nettsiden.","For \u00e5 se denne siden korrekt, vennligst klikk p\u00e5 fortsett og godta tillatelsesforesp\u00f8rselen hvis du blir bedt om dette."], "storage-not-provided-launch-from-homescreen":"Start turen p\u00e5 nytt fra startskjermikonet for \u00e5 laste ned.","enter-fullscreen":"G\u00e5 til full skjerm","use-cardboard-v2":"Bruk Cardboard Versjon 2",unmute:"Skru p\u00e5 lyd","enter-vr":"\u00c5pne VR Modus","enable-measure":"Start measuring","use-cardboard-info":"Du kan bruke hvilke some helst Google Cardboard kompatible headsett for \u00e5 se denne visningen i VR.","ar-mobile-info":"Flytt enheten din sakte for \u00e5 skanne rommet ditt.\nEn ring vil vises n\u00e5r en overflate blir funnet.\nTrykk p\u00e5 skjermen for \u00e5 plassere objektet der.", "use-default-cardboard":"Bruk Standard","enable-audio-prompt":"Aktivere audio?"},"pt-pt":{mute:"Desativar som","cardboard-v1":"Se voc\u00ea n\u00e3o tiver certeza de qual vers\u00e3o do Cardboard est\u00e1 usando, selecione o controle de ponto de acesso padr\u00e3o. Voc\u00ea simplesmente olha para um ponto de acesso e espera at\u00e9 que a a\u00e7\u00e3o seja acionada.","download-tour":"Download do Tour para reprodu\u00e7\u00e3o offline","change-to-drag-and-release":"Alterar controle para arrastar e soltar", accept:"Aceitar",cancel:"Cancelar","storage-not-provided-bookmark":"Armazenamento persistente negado. Tente marcar esta p\u00e1gina da Web e recarreg\u00e1-la.","dont-display-again":"N\u00e3o exibir essas informa\u00e7\u00f5es novamente","web-server-required":"Este passeio virtual n\u00e3o pode ser reproduzido a partir de uma unidade local. Envie-o para a Internet e tente novamente.\nSe preferir, arraste o arquivo htm (ou toda a pasta do tour) para o \u00edcone do aplicativo TourViewer.",download:"Download", "change-to-click-and-move":"Alterar controle para clicar e mover",yes:"sim","delete-downloaded":"Apagar","use-safari-for-vr":"Recomendamos o Safari para ver este passeio no modo VR","exit-fullscreen":"Sair da tela cheia",no:"n\u00e3o","download-failed":"Falha no Download","giroscope-disabled-http":"Voc\u00ea est\u00e1 acessando esta p\u00e1gina da Web por meio do http, para que o acesso \u00e0 orienta\u00e7\u00e3o e movimento do dispositivo e o modo VR sejam desativados, acesse-o atrav\u00e9s de https para ativ\u00e1-los.", "cookies-notice":"Esta p\u00e1gina da web usa cookies para coletar estat\u00edsticas de uso. Para obter mais informa\u00e7\u00f5es, visite a Pol\u00edtica de cookies.","use-cardboard":"Use Cardboard","launch-default-browser":"Iniciar no navegador padr\u00e3o","refresh-downloaded":"Atualizar","rotate-device":"Por favor, gire seu dispositivo","exit-vr":"Sair do VR",reject:"Rejeitar","disable-measure":"Stop measuring",downloading:"Baixando","cardboard-v2":"Se voc\u00ea tiver um fone de ouvido Cardboard v2, que vem com um bot\u00e3o, poder\u00e1 observar um ponto de acesso e pressionar o bot\u00e3o para acionar sua a\u00e7\u00e3o.", "enable-video-audio-prompt":"Ativar \u00e1udio e v\u00eddeo?","storage-not-provided-launch-from-desktop":"Por favor, reinicie o tour no \u00edcone da \u00e1rea de trabalho para fazer o download.",downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"Se voc\u00ea possui um fone de ouvido Gear VR compat\u00edvel com este dispositivo e instalou o Samsung Internet for VR, tamb\u00e9m pode us\u00e1-lo para visualizar esse conte\u00fado em VR. Voc\u00ea precisa tornar o Samsung Internet o seu padr\u00e3o. browser.", "samsung-internet-vr-info":"Se voc\u00ea possui um fone de ouvido Gear VR compat\u00edvel com este dispositivo e instalou o Samsung Internet for VR, tamb\u00e9m pode us\u00e1-lo para visualizar esse conte\u00fado em VR. Basta colocar o celular no fone de ouvido agora.","enable-video-prompt":"Ativar v\u00eddeo?","giroscope-disabled-safari-request-permission":["O acesso a movimento e orienta\u00e7\u00e3o do dispositivo e o modo VR est\u00e3o desativados para este site.","Para ver corretamente esta p\u00e1gina da web, clique em continuar e aceite a solicita\u00e7\u00e3o de permiss\u00e3o, se solicitado."], "storage-not-provided-launch-from-homescreen":"Reinicie o tour no \u00edcone da tela inicial para fazer o download.","enter-fullscreen":"Entrar em tela cheia","use-cardboard-v2":"Use Cardboard v2",unmute:"Ativar som","enter-vr":"Inserir conte\u00fado VR","enable-measure":"Start measuring","use-cardboard-info":"Voc\u00ea pode usar qualquer fone de ouvido compat\u00edvel do Google Cardboard para visualizar este conte\u00fado em VR","ar-mobile-info":"Mova lentamente o dispositivo para escanear o espa\u00e7o.\nUm anel aparecer\u00e1 quando uma superf\u00edcie for encontrada.\nToque na tela para colocar o objeto ali.", "use-default-cardboard":"Use o padr\u00e3o","enable-audio-prompt":"Ativar \u00e1udio?"},"hr-hr":{mute:"nijem","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"Download Tour for offline playing","change-to-drag-and-release":"Promijenite na\u010din upravljanja u povla\u010denje i otpu\u0161tanje",accept:"Prihvatiti",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.", "dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.",cancel:"Cancel","change-to-click-and-move":"Promijenite na\u010din upravljanja na Klik i Premjesti",yes:"Da","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Iza\u0111ite s punog zaslona", no:"Ne","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Ova web stranica koristi kola\u010di\u0107e za prikupljanje statistike upotrebe. Za vi\u0161e informacija posjetite Pravila o kola\u010di\u0107ima.","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh", "rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Odbiti","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Omogu\u0107iti videozapis i zvuk?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.",downloaded:"This tour is downloaded for offline playing.", "samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.","enable-video-prompt":"Omogu\u0107ite videozapis?", "giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Unesite cijeli zaslon","use-cardboard-v2":"Use Cardboard v2",unmute:"Uklju\u010di mikrofon","enter-vr":"Enter VR content","enable-measure":"Start measuring", "use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Pomaknite ure\u0111aj sporo kako biste skenirali svoj prostor.\nKrug \u0107e se pojaviti kada se prona\u0111e povr\u0161ina.\nTapnite ekran kako biste postavili objekt tamo.","use-default-cardboard":"Use Default","enable-audio-prompt":"\u017delite li omogu\u0107iti zvuk?"},"ja-jp":{mute:"\u30df\u30e5\u30fc\u30c8","cardboard-v1":"\u4f7f\u7528\u3057\u3066\u3044\u308bCardboard\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u308f\u304b\u3089\u306a\u3044\u5834\u5408\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30db\u30c3\u30c8\u30b9\u30dd\u30c3\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u6b21\u306b\u3001\u30db\u30c3\u30c8\u30b9\u30dd\u30c3\u30c8\u3092\u6ce8\u8996\u3057\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u304c\u52d5\u4f5c\u3059\u308b\u307e\u3067\u5f85\u6a5f\u3057\u307e\u3059\u3002\uff08\u4e00\u90e8\u52d5\u4f5c\u3057\u306a\u3044\u30a2\u30af\u30b7\u30e7\u30f3\u6709\u308a\uff09", "download-tour":"\u30aa\u30d5\u30e9\u30a4\u30f3\u518d\u751f\u7528\u30c4\u30a2\u30fc\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b","change-to-drag-and-release":"\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30e2\u30fc\u30c9\u3092\u30c9\u30e9\u30c3\u30b0\uff06\u30ea\u30ea\u30fc\u30b9\u306b\u5909\u66f4",accept:"\u53d7\u3051\u5165\u308c\u308b",cancel:"\u30ad\u30e3\u30f3\u30bb\u30eb","storage-not-provided-bookmark":"\u6c38\u7d9a\u7684\u306a\u4fdd\u5b58\u304c\u62d2\u5426\u3055\u308c\u305f\u3002\u3053\u306eWeb\u30da\u30fc\u30b8\u3092\u30d6\u30c3\u30af\u30de\u30fc\u30af\u3057\u3001\u66f4\u65b0\u3057\u3066\u304f\u3060\u3055\u3044", "dont-display-again":"\u4eca\u5f8c\u3053\u306e\u60c5\u5831\u3092\u8868\u793a\u3057\u306a\u3044","web-server-required":"\u3053\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30c4\u30a2\u30fc\u306f\u3001\u30ed\u30fc\u30ab\u30eb\u30c9\u30e9\u30a4\u30d6\u304b\u3089\u518d\u751f\u3067\u304d\u307e\u305b\u3093\u3002\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3057\u3001\u3082\u3046\u4e00\u5ea6\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\n\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3001htm\u30d5\u30a1\u30a4\u30eb\uff08\u307e\u305f\u306f\u30c4\u30a2\u30fc\u306e\u30d5\u30a9\u30eb\u30c0\u30fc\u5168\u4f53\uff09\u3092\u300eTourViewer\u300f\u30a2\u30d7\u30ea\u306e\u30a2\u30a4\u30b3\u30f3\u306b\u30c9\u30e9\u30c3\u30b0\u3057\u307e\u3059", download:"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9","change-to-click-and-move":"\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30e2\u30fc\u30c9\u3092\u30af\u30ea\u30c3\u30af\uff06\u30e0\u30fc\u30d6\u306b\u5909\u66f4",yes:"\u306f\u3044","delete-downloaded":"\u524a\u9664","use-safari-for-vr":"\u3053\u306e\u30c4\u30a2\u30fc\u3092VR\u30d3\u30e5\u30fc\u3067\u8868\u793a\u3059\u308b\u306b\u306f\u3001Safari\u30d6\u30e9\u30a6\u30b6\u306e\u5229\u7528\u3092\u304a\u52e7\u3081\u3057\u307e\u3059","exit-fullscreen":"\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u3092\u7d42\u4e86\u3059\u308b", no:"\u3044\u3044\u3048","download-failed":"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5931\u6557\u3057\u307e\u3057\u305f","giroscope-disabled-http":"\u3053\u306eWeb\u30da\u30fc\u30b8\u306b\u300ehttp\u300f\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u3054\u5229\u7528\u7aef\u672b\u306e\u30e2\u30fc\u30b7\u30e7\u30f3\u3068\u753b\u9762\u306e\u5411\u304d\u3078\u30a2\u30af\u30bb\u30b9\u304c\u3067\u304d\u305a\u3001VR\u30e2\u30fc\u30c9\u304c\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u300ehttps\u300f\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3057\u6709\u52b9\u306b\u3057\u3066\u304f\u3060\u3055\u3044", "cookies-notice":"\u3053\u306e\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u306fCookie\u3092\u4f7f\u7528\u3057\u3066\u4f7f\u7528\u7d71\u8a08\u3092\u53ce\u96c6\u3057\u307e\u3059\u3002 \u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001Cookie\u30dd\u30ea\u30b7\u30fc\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002","use-cardboard":"Cardboard\u5229\u7528","launch-default-browser":"\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u8d77\u52d5","refresh-downloaded":"\u66f4\u65b0","rotate-device":"\u7aef\u672b\u3092\u56de\u8ee2\u3055\u305b\u3066\u304f\u3060\u3055\u3044", "exit-vr":"VR\u30d3\u30e5\u30fc \u7d42\u4e86",reject:"\u62d2\u5426\u3059\u308b","disable-measure":"Stop measuring",downloading:"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u4e2d","cardboard-v2":"\u30dc\u30bf\u30f3\u304c\u4ed8\u5c5e\u3057\u3066\u3044\u308bCardboard v2\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u3092\u304a\u6301\u3061\u306e\u5834\u5408\u306f\u3053\u3061\u3089\u3002","enable-video-audio-prompt":"\u30d3\u30c7\u30aa\u3068\u97f3\u58f0\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u304b\uff1f","storage-not-provided-launch-from-desktop":"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306e\u30a2\u30a4\u30b3\u30f3\u304b\u3089\u30c4\u30a2\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044", downloaded:"\u3053\u306e\u30c4\u30a2\u30fc\u306f\u3001\u30aa\u30d5\u30e9\u30a4\u30f3\u3067\u518d\u751f\u3059\u308b\u305f\u3081\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3092\u3059\u308b","samsung-internet-vr-app-info":"\u3053\u306e\u7aef\u672b\u3068\u4e92\u63db\u6027\u306e\u3042\u308bVR\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u6a5f\u5668\u3092\u304a\u6301\u3061\u3067\u3001VR\u7528\u306e\u300eSamsung Internet\u300f\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u308b\u5834\u5408\u3002VR\u30d3\u30e5\u30fc\u3067\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u305d\u306e\u969b\u3001\u300eSamsung Internet\u300f\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30d6\u30e9\u30a6\u30b6\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059", "samsung-internet-vr-info":"\u3053\u306e\u7aef\u672b\u3068\u4e92\u63db\u6027\u306e\u3042\u308bVR\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u6a5f\u5668\u3092\u304a\u6301\u3061\u3067\u3001VR\u7528\u306e\u300eSamsung Internet\u300f\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u308b\u5834\u5408\u3002VR\u30d3\u30e5\u30fc\u3067\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u305d\u306e\u969b\u3001\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3092\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u306b\u88c5\u7740\u3059\u308b\u3060\u3051\u3067\u3059", "enable-video-prompt":"\u30d3\u30c7\u30aa\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u304b\uff1f","giroscope-disabled-safari-request-permission":["\u3054\u5229\u7528\u7aef\u672b\u306e\u30e2\u30fc\u30b7\u30e7\u30f3\u3068\u753b\u9762\u306e\u5411\u304d\u3078\u30a2\u30af\u30bb\u30b9\u304c\u3067\u304d\u305a\u3001VR\u30e2\u30fc\u30c9\u304c\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002","\u3053\u306eWeb\u30da\u30fc\u30b8\u3092\u6b63\u3057\u304f\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u300eOK\u300f\u3092\u30af\u30ea\u30c3\u30af\u3057\u300e\u8a31\u53ef\u300f\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u3051\u5165\u308c\u3066\u304f\u3060\u3055\u3044"], "storage-not-provided-launch-from-homescreen":"\u30db\u30fc\u30e0\u753b\u9762\u306e\u30a2\u30a4\u30b3\u30f3\u304b\u3089\u30c4\u30a2\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044","enter-fullscreen":"\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u3067\u5165\u529b\u3059\u308b","use-cardboard-v2":"Cardboard v2\u5229\u7528",unmute:"\u30df\u30e5\u30fc\u30c8\u89e3\u9664","enter-vr":"VR\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u5165\u529b","enable-measure":"Start measuring", "use-cardboard-info":"\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092VR\u30d3\u30e5\u30fc\u3067\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u4e92\u63db\u6027\u306e\u3042\u308b\u4efb\u610f\u306eGoogle Cardboard\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u3092\u5229\u7528\u3067\u304d\u307e\u3059","ar-mobile-info":"\u30b9\u30da\u30fc\u30b9\u3092\u30b9\u30ad\u30e3\u30f3\u3059\u308b\u305f\u3081\u306b\u3001\u30c7\u30d0\u30a4\u30b9\u3092\u3086\u3063\u304f\u308a\u3068\u52d5\u304b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\u8868\u9762\u304c\u898b\u3064\u304b\u308b\u3068\u3001\u5186\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\n\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u305d\u3053\u306b\u914d\u7f6e\u3059\u308b\u306b\u306f\u3001\u753b\u9762\u3092\u30bf\u30c3\u30d7\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "use-default-cardboard":"\u30c7\u30d5\u30a9\u30eb\u30c8\u5229\u7528","enable-audio-prompt":"\u97f3\u58f0\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u304b\uff1f"},"zh-cn":{mute:"\u9759\u97f3","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"\u4e0b\u8f7d\u5168\u666f\u6f2b\u6e38\uff0c\u4ee5\u8fdb\u884c\u79bb\u7ebf\u64ad\u653e","change-to-drag-and-release":"\u5c06\u63a7\u5236\u6a21\u5f0f\u66f4\u6539\u4e3a\u201c\u62d6\u653e\u201d", accept:"\u63a5\u53d7",cancel:"\u53d6\u6d88","storage-not-provided-bookmark":"\u88c5\u7f6e\u5185\u6c38\u4e45\u5b58\u50a8\u88ab\u62d2\u7edd\u3002\u5c1d\u8bd5\u5c06\u6b64\u7f51\u9875\u6dfb\u52a0\u4e3a\u4e66\u7b7e\uff0c \u5e76\u91cd\u65b0\u52a0\u8f7d\u3002","dont-display-again":"\u4e0d\u518d\u663e\u793a\u6b64\u4fe1\u606f","web-server-required":"\u6b64\u5168\u666f\u6f2b\u6e38\u65e0\u6cd5\u4ece\u672c\u5730\u9a71\u52a8\u5668\u4e0a\u64ad\u653e\u3002 \u8bf7\u5c06\u5176\u4e0a\u4f20\u5230\u4e92\u8054\u7f51\u670d\u52a1\u5668\uff0c\u7136\u540e\u91cd\u8bd5\u3002\n\u5982\u679c\u9700\u8981\u672c\u5730\u9884\u89c8\uff0c\u53ef\u4ee5\u5c06htm\u6587\u4ef6\uff08\u6216\u5168\u666f\u6f2b\u6e38\u7684\u6574\u4e2a\u6587\u4ef6\u5939\uff09\u62d6\u5230TourViewer\u5e94\u7528\u7a0b\u5e8f\u7684\u56fe\u6807\u4e0a\u3002", download:"\u4e0b\u8f7d","change-to-click-and-move":"\u5c06\u63a7\u5236\u6a21\u5f0f\u66f4\u6539\u4e3a\u201c\u5355\u51fb\u5e76\u79fb\u52a8\u201d",yes:"\u662f","delete-downloaded":"\u5220\u9664","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"\u9000\u51fa\u5168\u5c4f",no:"\u5426","download-failed":"\u4e0b\u8f7d\u5931\u8d25","giroscope-disabled-http":"\u60a8\u6b63\u5728\u901a\u8fc7http(\u672a\u52a0\u5bc6)\u8bbf\u95ee\u6b64\u7f51\u9875\uff0c\u56e0\u6b64\u8bbe\u5907\u7684\u8fd0\u52a8\u548c\u65b9\u5411\u8bbf\u95ee\u6743\u9650\u4ee5\u53caVR\u6a21\u5f0f\u5747\u5df2\u7981\u7528\uff0c\u8bf7\u901a\u8fc7https(\u52a0\u5bc6)\u5bf9\u5176\u8fdb\u884c\u542f\u7528\u3002", "cookies-notice":"\u8be5\u7f51\u9875\u4f7f\u7528cookie\u6765\u6536\u96c6\u4f7f\u7528\u60c5\u51b5\u7edf\u8ba1\u4fe1\u606f\u3002 \u6709\u5173\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u8bbf\u95eeCookie\u653f\u7b56\u3002","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"\u5237\u65b0","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"\u62d2\u7edd","disable-measure":"Stop measuring",downloading:"\u6b63\u5728\u4e0b\u8f7d", "cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"\u542f\u7528\u89c6\u9891\u548c\u97f3\u9891\uff1f","storage-not-provided-launch-from-desktop":"\u8bf7\u4ece\u684c\u9762\u70b9\u51fb\u56fe\u6807\uff0c\u91cd\u65b0\u542f\u52a8\u5168\u666f\u6f2b\u6e38\uff0c\u4ee5\u8fdb\u884c\u4e0b\u8f7d\u3002",downloaded:"\u6b64\u5168\u666f\u6f2b\u6e38\u5df2\u4e0b\u8f7d\uff0c\u53ef\u8fdb\u884c\u79bb\u7ebf\u64ad\u653e\u3002", "samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.","enable-video-prompt":"\u542f\u7528\u89c6\u9891\uff1f", "giroscope-disabled-safari-request-permission":["\u8be5\u7ad9\u70b9\u5df2\u7981\u7528\u8bbe\u5907\u7684\u8fd0\u52a8\u548c\u65b9\u5411\u8bbf\u95ee\u6743\u9650\uff0cVR\u6a21\u5f0f\u4e5f\u88ab\u7981\u7528\u3002","\u8981\u6b63\u786e\u67e5\u770b\u6b64\u7f51\u9875\uff0c\u8bf7\u5355\u51fb\u7ee7\u7eed\uff0c\u5e76\u5728\u51fa\u73b0\u63d0\u793a\u65f6\u63a5\u53d7\u8bb8\u53ef\u8bf7\u6c42"],"storage-not-provided-launch-from-homescreen":"\u8bf7\u4ece\u4e3b\u5c4f\u5e55\u70b9\u51fb\u56fe\u6807\uff0c\u91cd\u65b0\u542f\u52a8\u5168\u666f\u6f2b\u6e38\uff0c\u4ee5\u8fdb\u884c\u4e0b\u8f7d\u3002", "enter-fullscreen":"\u8fdb\u5165\u5168\u5c4f","use-cardboard-v2":"Use Cardboard v2",unmute:"\u53d6\u6d88\u9759\u97f3","enter-vr":"Enter VR content","enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"\u7f13\u6162\u79fb\u52a8\u8bbe\u5907\uff0c\u4ee5\u626b\u63cf\u7a7a\u95f4\u3002\n\u5f53\u627e\u5230\u8868\u9762\u65f6\uff0c\u4f1a\u51fa\u73b0\u4e00\u4e2a\u5706\u5708\u3002\n\u70b9\u51fb\u5c4f\u5e55\uff0c\u5c06\u5bf9\u8c61\u653e\u5728\u90a3\u91cc\u3002", "use-default-cardboard":"Use Default","enable-audio-prompt":"\u542f\u7528\u97f3\u9891\uff1f"},"nl-nl":{mute:"Schakel audio uit","cardboard-v1":"Als u niet weet wat voor versie van Cardboard u gebruikt, selecteer dan de default hotspot control. Dan zult u moeten wachten op een hotspot tot er een bepaald actie is gestart.","download-tour":"Download Tour voor offline afspelen","change-to-drag-and-release":"Verander de besturingsmodus om te slepen en los te laten",accept:"Aanvaarden",download:"Download", "storage-not-provided-bookmark":"Aanhoudende inhoud geweigerd. Probeer deze pagina als bookmark op te slaan en te verversen.","dont-display-again":"Niet meer laten zien","web-server-required":"Deze virtuele tour kan niet worden afgespeeld vanaf een lokale schijf. Upload dit alstublieft op het internet. Je kan ook de htm bestand slepen naar het icoon van de TourViewer app.",cancel:"Annuleren","change-to-click-and-move":"Verander de bedieningsmodus om te klikken en te verplaatsen",yes:"Ja","delete-downloaded":"Verwijderen", "use-safari-for-vr":"We raden aan om in Safari deze tour te bekijken in VR mode","exit-fullscreen":"Volledig scherm verlaten",no:"Nee","download-failed":"Download mislukt","giroscope-disabled-http":"Jij betreedt deze pagina door http, dus uw toestel's motion en orientation access en VR modus zijn uitgeschakeld. Betreed deze pagina door https om ze weer aan te schakelen.","cookies-notice":"Deze webpagina maakt gebruik van cookies om gebruiksstatistieken te verzamelen. Raadpleeg het Cookiebeleid voor meer informatie.", "use-cardboard":"Gebruik Cardboard","launch-default-browser":"Start op in standaard browser","refresh-downloaded":"Verversen","rotate-device":"Draai uw toestel om, alstublieft","exit-vr":"VR verlaten",reject:"Weigeren","disable-measure":"Stop meten",downloading:"Downloaden","cardboard-v2":"Als u een Cardboard v2 headset heeft, wat met een knop komt, kunt u wachten op een hotspot en een op een knop drukken om een actie te starten.","enable-video-audio-prompt":"Audio en video inschakelen?","storage-not-provided-launch-from-desktop":"Start de tour alstublieft opnieuw up vanaf het bureaublad om te kunnen downloaden.", downloaded:"Deze tour is gedownload voor offline afspelen.","samsung-internet-vr-app-info":"Als u een Gear VR headset heeft dat werkt met dit toestel en u Samsung Internet voor VR heeft ge\u00efnstalleerd, kunt u dit ook bekijken in VR. U moet alleen Samsung Internet instellen als uw standaard browser.","samsung-internet-vr-info":"Als u een Gear VR headset heeft dat werkt met dit toestel en u Samsung Internet voor VR heeft ge\u00efnstalleerd, kunt u dit ook bekijken in VR, u moet alleen uw mobiele toestel op uw headset zetten.", "enable-video-prompt":"Video inschakelen?","giroscope-disabled-safari-request-permission":["Uw toestel's motion en orientation access en VR modus zijn uitgeschakeld voor deze site..","Om deze pagina goed te kunnen zien, druk op doorgaan en geef toestemming als dat gevraagd wordt."],"storage-not-provided-launch-from-homescreen":"Start de tour alstublieft opnieuw up vanaf het homescherm om te kunnen downloaden.","enter-fullscreen":"Volledig scherm inschakelen","use-cardboard-v2":"Gebruik Cardboard v2", unmute:"Schakel audio in","enter-vr":"Voer VR inhoud in","enable-measure":"Begin meten","use-cardboard-info":"U kunt elk werkend Google Cardboard headset gebruiken om dit te bekijken.","ar-mobile-info":"Verplaats uw apparaat langzaam om uw ruimte te scannen.\nEen ring verschijnt wanneer een oppervlak wordt gevonden.\nTik op het scherm om het object daar te plaatsen.","use-default-cardboard":"Standaard gebruiken","enable-audio-prompt":"Audio inschakelen?"},"hu-hu":{mute:"N\u00e9m\u00edt\u00e1s","cardboard-v1":"Ha nem vagy biztos benne, hogy milyen VR eszk\u00f6zt haszn\u00e1lsz, akkor v\u00e1laszd az alap\u00e9rtelmezettet \u00e9s az egyes hotspot-ok megtekint\u00e9s\u00e9hez csak tartsd ott a jel\u00f6l\u0151t.", "download-tour":"T\u00fara let\u00f6lt\u00e9se offline megtekint\u00e9shez","change-to-drag-and-release":"Ir\u00e1ny\u00edt\u00e1s \u00e1t\u00e1ll\u00edt\u00e1sa: megfog \u00e9s mozgat m\u00f3dra",accept:"Elfogad",cancel:"M\u00e9gsem","storage-not-provided-bookmark":"Pr\u00f3b\u00e1lja meg az oldalt megjel\u00f6lni \u00e9s \u00fajrat\u00f6lteni!","dont-display-again":"Ne mutasd \u00fajra","web-server-required":"Ez a t\u00fara nem j\u00e1tszat\u00f3 le helyi futtat\u00e1ssal, k\u00e9rlek t\u00f6lsd fel az internetre \u00e9s pr\u00f3b\u00e1ld meg \u00fajra\nM\u00e1sik megold\u00e1s, ha a Tourviewer applik\u00e1ci\u00f3ra h\u00fazod a t\u00fara f\u00e1jlt, vagy az azt tartalmaz\u00f3 t\u00fara mapp\u00e1t.", download:"Let\u00f6lt\u00e9s","change-to-click-and-move":"Ir\u00e1ny\u00edt\u00e1s \u00e1t\u00e1ll\u00edt\u00e1sa kattint \u00e9s k\u00f6rben\u00e9z m\u00f3dra",yes:"igen","delete-downloaded":"T\u00f6rl\u00e9s","use-safari-for-vr":"Azt javasoljuk, hogy haszn\u00e1lj Safari b\u00f6ng\u00e9sz\u0151t a VR n\u00e9zet megtekint\u00e9s\u00e9hez","exit-fullscreen":"Kil\u00e9p\u00e9s a teljesk\u00e9perny\u0151 m\u00f3db\u00f3l",no:"nem","download-failed":"Let\u00f6lt\u00e9s sikertelen","giroscope-disabled-http":"Az oldalt https el\u0151taggal sz\u00fcks\u00e9ges megnyitnod ahhoz, hogy a k\u00e9sz\u00fcl\u00e9ked mozg\u00e1s\u00e1t \u00e9rz\u00e9kelni tudja.", "cookies-notice":"Ez a weboldal s\u00fctiket haszn\u00e1l a haszn\u00e1lati statisztik\u00e1k gy\u0171jt\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1togasson el a s\u00fctikre vonatkoz\u00f3 ir\u00e1nyelvekbe.","use-cardboard":"Cardboard haszn\u00e1lata","launch-default-browser":"Futtat\u00e1s az alap\u00e9rtelmezett b\u00f6ng\u00e9sz\u0151ben","refresh-downloaded":"Friss\u00edt\u00e9s","rotate-device":"Forgasd el a telefont!","exit-vr":"Kil\u00e9p\u00e9s a VR m\u00f3db\u00f3l", reject:"Elutas\u00edt","disable-measure":"Stop measuring",downloading:"Let\u00f6lt\u00e9s","cardboard-v2":"Ha Cardboard 2.0 t\u00edpus\u00fa eszk\u00f6zt haszn\u00e1lsz, akkor a kapcsol\u00f3kkal ir\u00e1ny\u00edthatod a t\u00far\u00e1t, kattinthatsz az egyes hotspotokra","enable-video-audio-prompt":"Hang \u00e9s vide\u00f3 enged\u00e9lyez\u00e9se","storage-not-provided-launch-from-desktop":"K\u00e9rlek ind\u00edtsd \u00fajra az oldalt az asztalon tal\u00e1lhat\u00f3 iconra kattintva.",downloaded:"Let\u00f6ltve offline megtekint\u00e9shez", "samsung-internet-vr-app-info":"Ha Samsung Gear VR szem\u00fcveget szeretn\u00e9l haszn\u00e1lni, akkor nyisd meg a Samsung internetb\u00f6ng\u00e9sz\u0151ben a t\u00far\u00e1t.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.","enable-video-prompt":"Vide\u00f3 enged\u00e9lyez\u00e9se","giroscope-disabled-safari-request-permission":["A megjelen\u00edt\u0151 eszk\u00f6z\u00f6d nem adott hozz\u00e1f\u00e9r\u00e9st a mozg\u00e1s \u00e9rz\u00e9kel\u00e9s\u00e9hez ezen az oldalon.", "Ahhoz hogy megfelel\u0151en l\u00e1sd az oldalt k\u00e9rlek enged\u00e9lyezd a hozz\u00e1f\u00e9r\u00e9st."],"storage-not-provided-launch-from-homescreen":"Ind\u00edtsd \u00fajra a t\u00far\u00e1t a home ikonra kattintva.","enter-fullscreen":"Teljesk\u00e9perny\u0151","use-cardboard-v2":"Cardboard 2.0 haszn\u00e1lata",unmute:"N\u00e9m\u00edt\u00e1s kikapcsol\u00e1sa","enter-vr":"VR tartalom megtekint\u00e9se","enable-measure":"Start measuring","use-cardboard-info":"Haszn\u00e1lhatsz b\u00e1rmilyen google cardboard-ot ahhoz, hogy VR m\u00f3dban l\u00e1sd a t\u00far\u00e1t.", "ar-mobile-info":"Mozgasson lassan a k\u00e9sz\u00fcl\u00e9k\u00e9t, hogy a teret skann\u00e1lja.\nEgy k\u00f6r jelenik meg, amikor egy fel\u00fcletet tal\u00e1l.\n\u00c9rintse meg a k\u00e9perny\u0151t, hogy oda helyezzen el egy objektumot.","use-default-cardboard":"Alap\u00e9rtelmezett haszn\u00e1lata","enable-audio-prompt":"Hang enged\u00e9lyez\u00e9se"},"ar-ar":{mute:"\u062a\u0639\u0637\u064a\u0644 \u0627\u0644\u0635\u0648\u062a","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"Download Tour for offline playing","change-to-drag-and-release":"\u062a\u063a\u064a\u064a\u0631 \u0648\u0636\u0639 \u0627\u0644\u062a\u062d\u0643\u0645 \u0644\u0644\u0633\u062d\u0628 \u0648\u0627\u0644\u0625\u0641\u0631\u0627\u062c",accept:"\u0642\u0628\u0648\u0644",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.", cancel:"Cancel","change-to-click-and-move":"\u062a\u063a\u064a\u064a\u0631 \u0648\u0636\u0639 \u0627\u0644\u062a\u062d\u0643\u0645 \u0644\u0644\u0646\u0642\u0631 \u0648\u0627\u0644\u062a\u062d\u0631\u0643",yes:"\u0646\u0639\u0645 \u0641\u0639\u0644\u0627","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"\u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0648\u0636\u0639 \u0645\u0644\u0626 \u0644\u0644\u0634\u0627\u0634\u0629", no:"\u0644\u0627","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"\u062a\u0633\u062a\u062e\u062f\u0645 \u0635\u0641\u062d\u0629 \u0627\u0644\u0648\u064a\u0628 \u0647\u0630\u0647 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 \u0644\u062c\u0645\u0639 \u0625\u062d\u0635\u0627\u0626\u064a\u0627\u062a \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645. \u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u060c \u064a\u0631\u062c\u0649 \u0632\u064a\u0627\u0631\u0629 \u0633\u064a\u0627\u0633\u0629 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 .", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"\u064a\u0631\u0641\u0636","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0635\u0648\u062a \u0648\u0627\u0644\u0641\u064a\u062f\u064a\u0648\u061f", "storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.",downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0641\u064a\u062f\u064a\u0648\u061f","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"\u0623\u062f\u062e\u0644 \u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629", "use-cardboard-v2":"Use Cardboard v2",unmute:"\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0635\u0648\u062a","enter-vr":"Enter VR content","enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"\u062a\u0642\u0631\u064a\u0628\u0627\u064b \u062d\u0631\u0643 \u062c\u0647\u0627\u0632\u0643 \u0628\u0628\u0637\u0621 \u0644\u062a\u0645\u0631\u064a\u0631 \u0627\u0644\u0645\u0633\u0627\u062d\u0629.\n\u0633\u064a\u0638\u0647\u0631 \u062d\u0644\u0642\u0629 \u0639\u0646\u062f \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0633\u0637\u062d.\n\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0627\u0644\u0634\u0627\u0634\u0629 \u0644\u0648\u0636\u0639 \u0627\u0644\u0643\u0627\u0626\u0646 \u0647\u0646\u0627\u0643.", "use-default-cardboard":"Use Default","enable-audio-prompt":"\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0635\u0648\u062a\u061f"},"ca-es":{mute:"Silenciar","cardboard-v1":"Si no esteu segurs de quina versi\u00f3 de cartr\u00f3 utilitzeu, seleccioneu el control de punt d'acc\u00e9s per defecte. Despr\u00e9s, simplement veureu un punt d'acc\u00e9s i espereu fins que s'activi l'acci\u00f3.","download-tour":"Descarregueu la visita virtual per a jugar fora de l\u00ednia","change-to-drag-and-release":"Canvieu el mode de control a Arrossegar i deixeu anar", accept:"Accepta",cancel:"Cancel\u00b7lar","storage-not-provided-bookmark":"S'ha denegat l'emmagatzematge persistent. Proveu de marcar aquesta p\u00e0gina web i torneu-la a carregar.","dont-display-again":"No tornis a mostrar aquesta informaci\u00f3","web-server-required":"Aquesta visita virtual no es pot reproduir des d'una unitat local. Carregueu-lo a Internet i torneu-ho a provar.\nSi ho preferiu, arrossegueu el fitxer htm (o tota la carpeta de la visita virtual) a la icona de l'aplicaci\u00f3 TourViewer.", download:"Descarregar","change-to-click-and-move":"Canvieu el mode de control a Fer clic i desplaceu",yes:"s\u00ed","delete-downloaded":"Suprimeix","use-safari-for-vr":"Recomanem Safari per a visualitzar aquesta visita virtual en mode VR","exit-fullscreen":"Surt de pantalla completa",no:"no","download-failed":"Error de desc\u00e0rrega","giroscope-disabled-http":"Accediu a aquesta p\u00e0gina web a trav\u00e9s de http de manera que el moviment i l\u2019orientaci\u00f3 del dispositiu i el mode VR estan desactivats, accediu-hi mitjan\u00e7ant https per habilitar-les.", "cookies-notice":"Aquesta p\u00e0gina web utilitza cookies per recopilar estad\u00edstiques d\u2019\u00fas. Per obtenir m\u00e9s informaci\u00f3, visiteu la Pol\u00edtica de cookies.","use-cardboard":"Utilitzeu Cardboard","launch-default-browser":"Inicieu el navegador per defecte","refresh-downloaded":"Actualitzaci\u00f3","rotate-device":"Gireu el dispositiu","exit-vr":"Surt de VR",reject:"Rebutjar","disable-measure":"Stop measuring",downloading:"Baixant","cardboard-v2":"Si teniu unes Cardboard v2, que venen amb un bot\u00f3, podeu mirar cap a un punt de vista i pr\u00e9mer el bot\u00f3 per activar-lo.", "enable-video-audio-prompt":"Habilitar v\u00eddeo i \u00e0udio?","storage-not-provided-launch-from-desktop":"Torneu a iniciar la visita virtual des de la icona de l'escriptori per a descarregar-la.",downloaded:"Aquesta visita virtual es descarrega per a reproduir-la fora de l\u00ednia.","samsung-internet-vr-app-info":"Si teniu un auricular Gear VR compatible amb aquest dispositiu i heu instal\u00b7lat Samsung Internet per a VR, tamb\u00e9 podeu utilitzar-lo per visualitzar aquest contingut en VR, heu de fer que Samsung Internet sigui el vostre navegador predeterminat.", "samsung-internet-vr-info":"Si teniu un auricular Gear VR compatible amb aquest dispositiu i heu instal\u00b7lat Samsung Internet per a VR, tamb\u00e9 podeu utilitzar-lo per visualitzar aquest contingut en VR, nom\u00e9s heu de posar el tel\u00e8fon m\u00f2bil als auriculars.","enable-video-prompt":"Activar v\u00eddeo?","giroscope-disabled-safari-request-permission":["Aquest lloc web est\u00e0 desactivat en el moviment i en la direcci\u00f3 o en mode VR del dispositiu.","Per veure correctament aquesta p\u00e0gina web, feu clic a Continuar i accepteu la sol\u00b7licitud de perm\u00eds si se us demana."], "storage-not-provided-launch-from-homescreen":"Torneu a iniciar la visita virtual des de la icona de la pantalla inicial.","enter-fullscreen":"Entra a pantalla completa","use-cardboard-v2":"Utilitzeu Cardboard v2",unmute:"No activa","enter-vr":"Introdu\u00efu contingut de VR","enable-measure":"Start measuring","use-cardboard-info":"Podeu utilitzar qualsevol auricular de Google Cardboard compatible per a visualitzar aquest contingut en VR.","ar-mobile-info":"Mou lentament el dispositiu per a escanejar l'espai.\nUn anell apareixer\u00e0 quan es trobi una superf\u00edcie.\nToca la pantalla per a situar l'objecte all\u00e0.", "use-default-cardboard":"\u00das per defecte","enable-audio-prompt":"Activar \u00e0udio?"},"ru-ru":{mute:"\u0411\u0435\u0437 \u0437\u0432\u0443\u043a\u0430","cardboard-v1":"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u043a\u0430\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Cardboard \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0445\u043e\u0442\u0441\u043f\u043e\u0442 \u043a\u0430\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0417\u0430\u0442\u0435\u043c \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0445\u043e\u0442\u0441\u043f\u043e\u0442 \u0438 \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435.", "download-tour":"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0442\u0443\u0440 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f","change-to-drag-and-release":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u0435", accept:"\u041f\u0440\u0438\u043d\u044f\u0442\u044c",download:"\u0421\u043a\u0430\u0447\u0430\u0442\u044c","storage-not-provided-bookmark":"\u0412 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u043e. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0435.", "dont-display-again":"\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e","web-server-required":"\u042d\u0442\u043e\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0443\u0440 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430. \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0435\u0433\u043e \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437.\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 htm-\u0444\u0430\u0439\u043b (\u0438\u043b\u0438 \u0432\u0441\u044e \u043f\u0430\u043f\u043a\u0443 \u0442\u0443\u0440\u0430) \u043d\u0430 \u0437\u043d\u0430\u0447\u043e\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f TourViewer.", cancel:"\u041e\u0442\u043c\u0435\u043d\u0430","change-to-click-and-move":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0430\u0436\u0430\u043d\u0438\u0435 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435",yes:"\u0434\u0430","delete-downloaded":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","use-safari-for-vr":"\u041c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c Safari \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u0442\u0443\u0440\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 VR.", "exit-fullscreen":"\u0412\u044b\u0439\u0442\u0438 \u0438\u0437 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430",no:"\u043d\u0435\u0442","download-failed":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","giroscope-disabled-http":"\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u0442\u043e\u0439 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0447\u0435\u0440\u0435\u0437 http, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0440\u0435\u0436\u0438\u043c VR \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 \u043d\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 https, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0445.", "cookies-notice":"\u042d\u0442\u0430 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0430\u0439\u043b\u044b cookie \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043c. \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 cookie.", "use-cardboard":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Cardboard","launch-default-browser":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","refresh-downloaded":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c","rotate-device":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0432\u0435\u0440\u043d\u0438\u0442\u0435 \u0432\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e", "exit-vr":"\u0412\u044b\u0439\u0442\u0438 \u0438\u0437 VR",reject:"\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c","disable-measure":"\u041f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f",downloading:"\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435","cardboard-v2":"\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430 Cardboard v2 \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u0445\u043e\u0442\u0441\u043f\u043e\u0442 \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435.", "enable-video-audio-prompt":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0438 \u0430\u0443\u0434\u0438\u043e?","storage-not-provided-launch-from-desktop":"\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0442\u0443\u0440 \u0441\u043e \u0437\u043d\u0430\u0447\u043a\u0430 \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0441\u0442\u043e\u043b\u0435..", downloaded:"\u042d\u0442\u043e\u0442 \u0442\u0443\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.","samsung-internet-vr-app-info":"\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430 Gear VR, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430\u044f \u0441 \u044d\u0442\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u0438 \u0432\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 Samsung Internet \u0434\u043b\u044f VR, \u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432 VR, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c Samsung Internet \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.", "samsung-internet-vr-info":"\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430 Gear VR, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430\u044f \u0441 \u044d\u0442\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u0438 \u0432\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 Samsung Internet \u0434\u043b\u044f VR, \u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432 VR, \u0432\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0434\u0435\u0442\u044c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0443 \u0441\u0435\u0439\u0447\u0430\u0441.", "enable-video-prompt":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e?","giroscope-disabled-safari-request-permission":["\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0436\u0438\u043c VR \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430.", "\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u0443 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u00ab\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c\u00bb \u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043e."], "storage-not-provided-launch-from-homescreen":"\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0442\u0443\u0440 \u0441\u043e \u0437\u043d\u0430\u0447\u043a\u0430 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435.","enter-fullscreen":"\u0412\u043e\u0439\u0442\u0438 \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c", "use-cardboard-v2":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Cardboard v2",unmute:"\u0421\u043e \u0437\u0432\u0443\u043a\u043e\u043c","enter-vr":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c VR \u043a\u043e\u043d\u0442\u0435\u043d\u0442","enable-measure":"\u041d\u0430\u0447\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f","use-cardboard-info":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0443\u044e \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0443 Google Cardboard \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432 VR.", "ar-mobile-info":"\u041c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0439\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e.\n\u0411\u0443\u0434\u0435\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043a\u043e\u043b\u044c\u0446\u043e, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c.\n\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0430\u043c.", "use-default-cardboard":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","enable-audio-prompt":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0443\u0434\u0438\u043e?"},"nn-no":{mute:"Skru av lyd","cardboard-v1":"Hvis du ikke er sikker, hvilken Cardboard versjon du bruker, velger du standard hotspot-kontrollen. Du vil da bare se p\u00e5 et hotspot og vente til handlingen utl\u00f8ses.","download-tour":"Last ned visningen, s\u00e5 den kan bli sett uten internett", "change-to-drag-and-release":"Endre kontrollmodus til Trekk og Slipp",accept:"Aksepterer",cancel:"Avbryt","storage-not-provided-bookmark":"Vedvarende lagring nektet. Pr\u00f8v \u00e5 bokmerke denne nettsiden og laste den inn p\u00e5 nytt.","dont-display-again":"Ikke vis denne informasjonen igjen","web-server-required":"Denne virtuelle visningen kan ikke spilles av lokalt. Vennligst last den opp til internett, og fors\u00f8k igjen.\ndersom du prefererer det, kan du dra htm filen (eller hele mappen som inneholder visningen) over 'TourViewer' appen.", download:"Last ned","change-to-click-and-move":"Endre kontrollmodus til Klikk og Flytt",yes:"Ja","delete-downloaded":"Slett","use-safari-for-vr":"Vi anbefaler Safari for \u00e5 se p\u00e5 venne visningen i VR modus","exit-fullscreen":"G\u00e5 ut av full skjerm",no:"Nei","download-failed":"Nedlastning feilet","giroscope-disabled-http":"Du er koblet til denne nettsiden via http. Dermed er enhetens bevegelses- og orienteringstilgang og VR-modus deaktivert. Koble til via https for \u00e5 aktivere denne.", "cookies-notice":"Denne websiden bruker informasjonskapsler for \u00e5 samle inn bruksstatistikk. For mer informasjon, bes\u00f8k retningslinjer for informasjonskapsler.","use-cardboard":"Bruk Cardboard","launch-default-browser":"\u00c5pne i standard nettleser","refresh-downloaded":"Last inn p\u00e5 nytt","rotate-device":"Vennligst roter enheten","exit-vr":"G\u00e5 ut av VR",reject:"Avvis","disable-measure":"Stop measuring",downloading:"Laster ned","cardboard-v2":"Dersom du har Cardboard versjon 2, hvilket kommer med en knapp, kan du kikke p\u00e5 en klikkbar ting i visningen, og bruke knappen for \u00e5 bruke disse tingene, p\u00e5 samme m\u00e5te som p\u00e5 en laptop eller telefon.", "enable-video-audio-prompt":"Aktivere video og lyd?","storage-not-provided-launch-from-desktop":"Start turen p\u00e5 nytt fra skrivebordsikonet for \u00e5 laste ned.",downloaded:"Denne visningen er lastet ned, s\u00e5 den kan bli sett uten internett.","samsung-internet-vr-app-info":"Hvis du har et Gear VR-headset som er kompatibelt med denne enheten og har installert Samsung Internet for VR, kan du ogs\u00e5 bruke det til \u00e5 se dette innholdet i VR, du m\u00e5 ogs\u00e5 gj\u00f8re Samsung Internet til standard nettleser.", "samsung-internet-vr-info":"Hvis du har et Gear VR-headset som er kompatibelt med denne enheten, og du har installert Samsung Internet for VR, kan du ogs\u00e5 bruke det til \u00e5 se dette innholdet i VR, du trenger bare \u00e5 sette mobiltelefonen p\u00e5 headsettet n\u00e5.","enable-video-prompt":"Aktivere video?","giroscope-disabled-safari-request-permission":["Din enhet sin bevegelses- og orienterings tilgang, samt VR modus er deaktivert for denne nettsiden.","For \u00e5 se denne siden korrekt, vennligst klikk p\u00e5 fortsett og godta tillatelsesforesp\u00f8rselen hvis du blir bedt om dette."], "storage-not-provided-launch-from-homescreen":"Start turen p\u00e5 nytt fra startskjermikonet for \u00e5 laste ned.","enter-fullscreen":"G\u00e5 til full skjerm","use-cardboard-v2":"Bruk Cardboard Versjon 2",unmute:"Skru p\u00e5 lyd","enter-vr":"\u00c5pne VR Modus","enable-measure":"Start measuring","use-cardboard-info":"Du kan bruke hvilke some helst Google Cardboard kompatible headsett for \u00e5 se denne visningen i VR.","ar-mobile-info":"Flytt enheten din sakte for \u00e5 skanne rommet ditt.\nEn ring vil vises n\u00e5r en overflate blir funnet.\nTrykk p\u00e5 skjermen for \u00e5 plassere objektet der.", "use-default-cardboard":"Bruk Standard","enable-audio-prompt":"Aktivere audio?"},"es-es":{mute:"Silenciar","cardboard-v1":"Si no esta seguro de que versi\u00f3n de Cardboard debe usar escoja la selecci\u00f3n de hotspot por defecto. Solo tendr\u00e1 que apuntar al hotspot y esperar para que se ejecute la acci\u00f3n.","download-tour":"Descargar el tour para reproducirlo sin conexi\u00f3n","change-to-drag-and-release":"Cambiar el modo de control a arrastrar y soltar",accept:"Aceptar","use-cardboard-v2":"Usar Cardboard v2", "storage-not-provided-bookmark":"Almacenamiento persistente denagado. Intente a\u00f1adir la p\u00e1gina a los marcadores y recargarla.","dont-display-again":"No volver a mostrar esta informaci\u00f3n","web-server-required":"Este tour virtual no puede reproducirse desde una unidad local. Por favor s\u00fabalo a internet y pruebe de nuevo.\nSi lo prefiere puede arrastrar el archivo html o la carpeta con el tour sobre el icono de la aplicaci\u00f3n Tour Viewer de su escritorio.",download:"Descargar", "change-to-click-and-move":"Cambiar el modo de control a pulsar y mover",yes:"s\u00ed","delete-downloaded":"Borrar","use-safari-for-vr":"Recomendamos Safari para ver este tour en modo VR","exit-fullscreen":"Salir de pantalla completa",no:"no","download-failed":"La descarga ha fallado","giroscope-disabled-http":"Est\u00e1 accediendo a esta p\u00e1gina web por http por lo que el acceso al movimiento y la orientaci\u00f3n del dispositivo est\u00e1 deshabilitado, por favor acceda por https.","cookies-notice":"Esta p\u00e1gina usa cookies para recolectar estad\u00edsticas de uso. Para m\u00e1s informaci\u00f3n, visite la Pol\u00edtica de Cookies.", "use-cardboard":"Usar Cardboard","launch-default-browser":"Lanzar en el navegador por defecto","refresh-downloaded":"Actualizar","rotate-device":"Por favor, gire el dispositivo","exit-vr":"Salir de VR","storage-not-provided-launch-from-desktop":"Por favor lance el tour desde el escritorio para descargarlo.","disable-measure":"Stop measuring",cancel:"Cancel",downloading:"Descargando","cardboard-v2":"Si tiene unas gafas Cardboard v2, que vienen con un bot\u00f3n, puede apuntar al hotspot y pulsar el bot\u00f3n para que se ejecute su acci\u00f3n.", "enable-video-audio-prompt":"\u00bfActivar v\u00eddeo y audio?",reject:"Rechazar",downloaded:"Este tour esta descargado para reproducirlo sin conexi\u00f3n.","samsung-internet-vr-app-info":"Si tiene unas gafas Gear VR compatibles con este dispositivo y tiene instalado Samsung Internet for VR puede usarlo para ver este contenido en VR, necesita hacer Samsung Internet su navegador por defecto.","samsung-internet-vr-info":"Si tiene unas gafas Gear VR compatibles con este dispositivo y tiene instalado Samsung Internet for VR puede usarlo para ver este contenido en VR, solo tiene que poner ahora el dispositivo en las gafas.", "enable-video-prompt":"\u00bfActivar v\u00eddeo?","giroscope-disabled-safari-request-permission":["El acceso al movimiento y la orientaci\u00f3n del dispositivo est\u00e1 deshabiltado para este sitio.","Para ver correctamente la p\u00e1gina por favor pulse Continuar y acepte la petici\u00f3n de permiso si se muestra."],"storage-not-provided-launch-from-homescreen":"Por favor lance el tour desde el icono de la pantalla de inicio para descargarlo.","enter-fullscreen":"Mostrar en pantalla completa", unmute:"Habilitar sonido","enter-vr":"Entrar al contenido VR","enable-measure":"Start measuring","use-cardboard-info":"Puede usar unas gafas compatibles con Google Cardboard para ver este contenido en VR.","ar-mobile-info":"Mueve lentamente el dispositivo para escanear el espacio.\nAparecer\u00e1 un anillo cuando se encuentre una superficie.\nToca la pantalla para colocar el objeto all\u00ed.","use-default-cardboard":"Usar versi\u00f3n por defecto","enable-audio-prompt":"\u00bfActivar audio?"},"el-gr":{mute:"\u0391\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u03ae\u03c7\u03bf", "cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"Download Tour for offline playing","change-to-drag-and-release":"\u0391\u03bb\u03bb\u03ac\u03be\u03c4\u03b5 \u03c4\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03cd\u03c1\u03b5\u03c4\u03b5 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b1\u03c0\u03b5\u03bb\u03b5\u03c5\u03b8\u03b5\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5", accept:"\u0391\u03c0\u03bf\u03b4\u03ad\u03c7\u03bf\u03bc\u03b1\u03b9",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.",cancel:"Cancel","change-to-click-and-move":"\u0391\u03bb\u03bb\u03ac\u03be\u03c4\u03b5 \u03c4\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03bc\u03b5\u03c4\u03b1\u03ba\u03b9\u03bd\u03b7\u03b8\u03b5\u03af\u03c4\u03b5", yes:"\u039d\u03b1\u03af","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"\u0388\u03be\u03bf\u03b4\u03bf\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c0\u03bb\u03ae\u03c1\u03b7 \u03bf\u03b8\u03cc\u03bd\u03b7",no:"\u03cc\u03c7\u03b9","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.", "cookies-notice":"\u0391\u03c5\u03c4\u03ae \u03b7 \u03b9\u03c3\u03c4\u03bf\u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af cookie \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03c3\u03c5\u03bb\u03bb\u03bf\u03b3\u03ae \u03c3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ce\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7\u03c2. \u0393\u03b9\u03b1 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2, \u03b5\u03c0\u03b9\u03c3\u03ba\u03b5\u03c6\u03b8\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ae cookie .", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"\u0391\u03c0\u03bf\u03c1\u03c1\u03af\u03c0\u03c4\u03c9","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ae\u03c7\u03bf\u03c5 \u03ba\u03b1\u03b9 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf;", "storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.",downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf;","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03bb\u03ae\u03c1\u03b7 \u03bf\u03b8\u03cc\u03bd\u03b7", "use-cardboard-v2":"Use Cardboard v2",unmute:"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ae\u03c7\u03bf\u03c5","enter-vr":"Enter VR content","enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"\u039c\u03b5\u03c4\u03b1\u03ba\u03b9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03c3\u03b1\u03c2 \u03b1\u03c1\u03b3\u03ac \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03b1\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03c7\u03ce\u03c1\u03bf \u03c3\u03b1\u03c2.\n\u0398\u03b1 \u03b5\u03bc\u03c6\u03b1\u03bd\u03b9\u03c3\u03c4\u03b5\u03af \u03ad\u03bd\u03b1\u03c2 \u03b4\u03b1\u03ba\u03c4\u03cd\u03bb\u03b9\u03bf\u03c2 \u03cc\u03c4\u03b1\u03bd \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03c4\u03b5\u03af \u03bc\u03b9\u03b1 \u03b5\u03c0\u03b9\u03c6\u03ac\u03bd\u03b5\u03b9\u03b1.\n\u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03c4\u03b7\u03bd \u03bf\u03b8\u03cc\u03bd\u03b7 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c4\u03bf\u03c0\u03bf\u03b8\u03b5\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b1\u03bd\u03c4\u03b9\u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03b5\u03ba\u03b5\u03af.", "use-default-cardboard":"Use Default","enable-audio-prompt":"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ae\u03c7\u03bf\u03c5;"},"da-dk":{mute:"Deaktiver lyd","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"Download Tour for offline playing","change-to-drag-and-release":"Skift kontroltilstand for at tr\u00e6kke og slippe", accept:"Acceptere",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.",cancel:"Cancel","change-to-click-and-move":"Skift kontroltilstand for at klikke og flytte", yes:"Ja","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Afslut fuldsk\u00e6rm",no:"ingen","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Denne webside bruger cookies til at indsamle brugsstatistikker. For mere information, se venligst Cookiepolitik .", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Afvise","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Aktiv\u00e9r lyd og video?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Aktiv\u00e9r video?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Indtast fuldsk\u00e6rm","use-cardboard-v2":"Use Cardboard v2",unmute:"Aktiv\u00e9r lyd","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Flyt dit enhed langsomt for at skanne dit rum.\nEn ring vil vises, n\u00e5r en overflade findes.\nTryk p\u00e5 sk\u00e6rmen for at placere objektet der.","use-default-cardboard":"Use Default","enable-audio-prompt":"Aktiv\u00e9r lyd?"},"pl-pl":{mute:"Wycisz","cardboard-v1":"Je\u015bli nie masz pewno\u015bci, kt\u00f3rej wersji Cardboard u\u017cywasz, wybierz domy\u015blne sterowanie hotspotem. Nast\u0119pnie skieruj wzrok na hotspot i poczekaj na uruchomienie ich dzia\u0142ania.", "download-tour":"Pobierz spacer do odtwarzania w trybie offline","change-to-drag-and-release":"Zmie\u0144 tryb na Przeci\u0105gnij i Upu\u015b\u0107",accept:"Zaakceptowa\u0107",cancel:"Anuluj","storage-not-provided-bookmark":"Odmowa zapisu w pami\u0119ci sta\u0142ej. Spr\u00f3buj doda\u0107 stron\u0119 do zak\u0142adek i za\u0142aduj j\u0105 ponownie.","dont-display-again":"Nie wy\u015bwietlaj tego ponownie","web-server-required":"Nie mo\u017cna odtworzy\u0107 tego spaceru z dysku lokalnego. Prze\u015blij go do internetu i spr\u00f3buj ponownie.\nMo\u017cesz te\u017c przeci\u0105gn\u0105\u0107 plik htm (lub ca\u0142y folder spaceru) na ikon\u0119 aplikacji TourViewer.", download:"Pobierz","change-to-click-and-move":"Zmie\u0144 tryb na to Kliknij i Przenie\u015b",yes:"tak","delete-downloaded":"Usu\u0144","use-safari-for-vr":"Zalecamy Safari, jako przegl\u0105dark\u0119 spacer\u00f3w w trybie VR","exit-fullscreen":"Wyjd\u017a z trybu pe\u0142nego ekranu",no:"nie","download-failed":"Pobieranie nie powiod\u0142o si\u0119","giroscope-disabled-http":"To jest dost\u0119p za po\u015brednictwem protoko\u0142u http, wi\u0119c dost\u0119p do ruchu i orientacji oraz tryb VR s\u0105 wy\u0142\u0105czone. Prze\u0142\u0105cz si\u0119\u00a0na protok\u00f3\u0142 https, aby je w\u0142\u0105czy\u0107.", "cookies-notice":"Ta strona u\u017cywa plik\u00f3w cookie do zbierania statystyk u\u017cytkowania. Aby uzyska\u0107 wi\u0119cej informacji, odwied\u017a Zasady dotycz\u0105ce plik\u00f3w cookie.","use-cardboard":"U\u017cyj Cardboard","launch-default-browser":"Uruchom w domy\u015blnej przegl\u0105darce","refresh-downloaded":"Od\u015bwie\u017c","rotate-device":"Obr\u00f3\u0107 urz\u0105dzenie","exit-vr":"Wyjd\u017a z VR",reject:"Odrzuca\u0107","disable-measure":"Stop measuring",downloading:"Pobieranie", "cardboard-v2":"Je\u015bli masz okulary Cardboard v2, kt\u00f3re maj\u0105 przycisk, mo\u017cesz spojrze\u0107 na hotspot i nacisn\u0105\u0107 przycisk, aby uruchomi\u0107 ich dzia\u0142anie.","enable-video-audio-prompt":"W\u0142\u0105czy\u0107 video i d\u017awi\u0119k?","storage-not-provided-launch-from-desktop":"Aby pobra\u0107, uruchom ponownie spacer klikaj\u0105c ikon\u0119 pulpitu.",downloaded:"Spacer jest pobierany do odtwarzania w trybie offline.","samsung-internet-vr-app-info":"Je\u015bli masz okulary zgodne z Gear VR i zainstalowa\u0142e\u015b Samsung Internet for VR, mo\u017cesz je u\u017cy\u0107 do przegl\u0105dania zawarto\u015bci w VR. Musisz w tym przypadku ustawi\u0107 Samsung Internet jako domy\u015bln\u0105 przegl\u0105dark\u0119.", "samsung-internet-vr-info":"Je\u015bli masz okulary Gear VR i zainstalowa\u0142e\u015b Samsung Internet for VR, to mo\u017cesz u\u017cy\u0107 ich do przegl\u0105dania zawarto\u015bci w VR. Umie\u015b\u0107 teraz telefon w okularach Gear VR.","enable-video-prompt":"W\u0142\u0105czy\u0107 video?","giroscope-disabled-safari-request-permission":["Dost\u0119p do funkcji ruchu i orientacji oraz tryb VR s\u0105 wy\u0142\u0105czone dla tej strony.","Aby poprawnie wy\u015bwietli\u0107 stron\u0119, kliknij kontynuuj i zaakceptuj wszystkie zgody."], "storage-not-provided-launch-from-homescreen":"Aby pobra\u0107, uruchom ponownie spacer klikaj\u0105c ikon\u0119 strony g\u0142\u00f3wnej.","enter-fullscreen":"Uruchom pe\u0142ny ekran","use-cardboard-v2":"U\u017cyj Cardboard v2",unmute:"Wy\u0142\u0105cz Wycisz","enter-vr":"Wejd\u017a do VR","enable-measure":"Start measuring","use-cardboard-info":"Do wy\u015bwietlania w VR mo\u017cesz u\u017cy\u0107 oklular\u00f3w zgodnych z Google Cardboard.","ar-mobile-info":"Poruszaj urz\u0105dzeniem powoli, aby zeskanowa\u0107 sw\u00f3j obszar.\nPojawi si\u0119 okr\u0105g, gdy zostanie znaleziona powierzchnia.\nDotknij ekranu, aby umie\u015bci\u0107 obiekt tam.", "use-default-cardboard":"U\u017cyj Domy\u015blnych","enable-audio-prompt":"W\u0142\u0105czy\u0107 d\u017awi\u0119k?"},"fr-fr":{mute:"Couper le son","cardboard-v1":"Si vous n'\u00eates pas s\u00fbr de la version de votre Cardboard, s\u00e9lectionnez le contr\u00f4le de hotspot par d\u00e9faut. Ensuite, vous n'aurez qu'\u00e0 fixer un hotspot du regard et attendre que l'action se d\u00e9clenche.","download-tour":"T\u00e9l\u00e9charger la visite pour jouer hors ligne","change-to-drag-and-release":"Changer le mode de contr\u00f4le en glisser-d\u00e9poser", accept:"Accepter",cancel:"Annuler","storage-not-provided-bookmark":"Stockage persistant refus\u00e9. Essayez de mettre cette page Web en signet et de la recharger.","dont-display-again":"Ne plus afficher ces informations","web-server-required":"Cette visite virtuelle ne peut pas \u00eatre lue \u00e0 partir d'un lecteur local. Veuillez la t\u00e9l\u00e9charger sur Internet et r\u00e9essayer.\nSi vous pr\u00e9f\u00e9rez, faites glisser le fichier htm (ou l'int\u00e9gralit\u00e9 du dossier de la visite) sur l'ic\u00f4ne de l'application TourViewer.", download:"T\u00e9l\u00e9charger","change-to-click-and-move":"Changer le mode de contr\u00f4le pour cliquer et d\u00e9placer",yes:"Oui","delete-downloaded":"Supprimer","use-safari-for-vr":"Nous recommandons Safari pour visionner cette visite en mode VR","exit-fullscreen":"Quitter le mode plein \u00e9cran",no:"Non","download-failed":"\u00c9chec du t\u00e9l\u00e9chargement","giroscope-disabled-http":"Vous acc\u00e9dez \u00e0 cette page Web via http, donc l'acc\u00e8s au mouvement et \u00e0 l'orientation de votre appareil et le mode VR sont d\u00e9sactiv\u00e9s, veuillez y acc\u00e9der via https pour les activer.", "cookies-notice":"Cette page Web utilise des cookies pour collecter des statistiques d'utilisation. Pour plus d'informations, veuillez consulter la Politique en mati\u00e8re de cookies.","use-cardboard":"Utiliser le Cardboard","launch-default-browser":"Lancer dans le navigateur par d\u00e9faut","refresh-downloaded":"Rafra\u00eechir","rotate-device":"Veuillez faire pivoter votre appareil","exit-vr":"Quitter la r\u00e9alit\u00e9 virtuelle",reject:"Rejeter","disable-measure":"Arr\u00eatez de mesurer", downloading:"T\u00e9l\u00e9chargement","cardboard-v2":"Si vous disposez d'un casque Cardboard v2, qui est \u00e9quip\u00e9 d'un bouton, vous pouvez fixer un hotspot du regard et appuyer sur le bouton pour d\u00e9clencher son action.","enable-video-audio-prompt":"Activer la vid\u00e9o et l'audio?","storage-not-provided-launch-from-desktop":"Veuillez relancer la visite \u00e0 partir de l'ic\u00f4ne du bureau pour t\u00e9l\u00e9charger.",downloaded:"Cette visite est t\u00e9l\u00e9charg\u00e9e pour jouer hors ligne.", "samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"Si vous disposez d'un casque Gear VR compatible avec cet appareil et que vous avez install\u00e9 Samsung Internet pour VR, vous pouvez \u00e9galement l'utiliser pour visualiser ce contenu en r\u00e9alit\u00e9 virtuelle. Il vous suffit de placer maintenant le t\u00e9l\u00e9phone mobile sur le casque.", "enable-video-prompt":"Activer la vid\u00e9o?","giroscope-disabled-safari-request-permission":["L'acc\u00e8s au mouvement et \u00e0 l'orientation de votre appareil et le mode VR sont d\u00e9sactiv\u00e9s pour ce site.","Pour voir correctement cette page Web, veuillez cliquer sur Continuer et accepter la demande d'autorisation si vous y \u00eates invit\u00e9."],"storage-not-provided-launch-from-homescreen":"Veuillez relancer la visite \u00e0 partir de l'ic\u00f4ne de l'\u00e9cran d'accueil pour t\u00e9l\u00e9charger.", "enter-fullscreen":"Passer en mode plein \u00e9cran","use-cardboard-v2":"Utiliser le Cardboard v2",unmute:"R\u00e9tablir le son","enter-vr":"Entrez le contenu VR","enable-measure":"Commencer \u00e0 mesurer","use-cardboard-info":"Vous pouvez utiliser n'importe quel casque Google Cardboard compatible pour visualiser ce contenu en r\u00e9alit\u00e9 virtuelle.","ar-mobile-info":"D\u00e9placez lentement votre appareil pour scanner votre espace.\nUn anneau appara\u00eetra lorsqu'une surface sera trouv\u00e9e.\nAppuyez sur l'\u00e9cran pour placer l'objet l\u00e0.", "use-default-cardboard":"Utiliser par d\u00e9faut","enable-audio-prompt":"Activer le son?"},"de-de":{mute:"Deaktiviere Audio","cardboard-v1":"Wenn Sie sich nicht sicher sind, welche Cardboard-Version Sie verwenden, w\u00e4hlen Sie die Standard-Hotspot-Steuerung. Sie schauen dann einfach auf einen Hotspot und warten, bis die jeweilige Aktion ausgel\u00f6st wird.","download-tour":"Tour zum Offline-Abspielen herunterladen","giroscope-disabled-safari-request-permission":["Der Bewegungs- und Orientierungszugriff, sowie VR Modus Ihres Ger\u00e4ts ist f\u00fcr diese Seite deaktiviert.", "Um diese Webseite korrekt anzuzeigen, klicken Sie auf Weiter und akzeptieren Sie die Erlaubnisanfrage, wenn Sie dazu aufgefordert werden."],accept:"Akzeptieren",download:"Download",downloading:"Downloading","dont-display-again":"Diese Info nicht mehr anzeigen","web-server-required":"Diese Virtual Tour kann nicht von einem lokalen Laufwerk abgespielt werden. Laden Sie Ihre Tour ins Internet und versuchen Sie es erneut.\nAlternativ, ziehen Sie die htm Datei (oder den ganzen Tour Ordner) auf das Icon der Tour Viewer App, um die Tour direkt lokal abzuspielen.", cancel:"Abbrechen","change-to-click-and-move":"\u00c4ndern Sie den Steuerungsmodus, um zu klicken und zu drehen",yes:"ja","delete-downloaded":"L\u00f6schen","use-safari-for-vr":"Wir empfehlen Safari, um diese Tour im VR-Modus zu sehen","exit-fullscreen":"Vollbild verlassen",no:"nein","storage-not-provided-bookmark":"Dauerhafte Speicherung verweigert. Versuchen Sie, diese Seite als Lesezeichen zu speichern und erneut zu laden.","download-failed":"Download fehlgeschlagen","giroscope-disabled-http":"Der Bewegungs- und Ausrichtungsszugriff Ihres Ger\u00e4ts ist f\u00fcr diese Webseite deaktiviert. Greifen Sie bitte \u00fcber https darauf zu.", "cookies-notice":"Diese Webseite verwendet Cookies, um Nutzungsstatistiken zu sammeln. Weitere Informationen finden Sie in der Cookie-Richtlinie.","use-cardboard":"Cardboard verwenden","launch-default-browser":"Im Standardbrowser starten","refresh-downloaded":"Aktualisieren","rotate-device":"Bitte drehen Sie Ihr Ger\u00e4t","exit-vr":"VR verlassen",reject:"Ablehnen","disable-measure":"Messung beenden","change-to-drag-and-release":"\u00c4ndern Sie den Steuerungsmodus zu Ziehen und Loslassen", "cardboard-v2":"Wenn Sie ein Cardboard v2-Headset haben, das mit einer Taste ausgestattet ist, k\u00f6nnen Sie auf einen Hotspot blicken und die Taste dr\u00fccken, um dessen Aktion auszul\u00f6sen.","enable-video-audio-prompt":"Video und Audio aktivieren?","storage-not-provided-launch-from-desktop":"Bitte starten Sie die Tour erneut \u00fcber das Desktop-Symbol, um sie herunterzuladen.",downloaded:"Diese Tour ist zum Offline-Abspielen heruntergeladen.","samsung-internet-vr-app-info":"Wenn Sie ein Gear VR-Headset haben, das mit diesem Ger\u00e4t kompatibel ist, und Sie Samsung Internet f\u00fcr VR installiert haben, k\u00f6nnen Sie es auch verwenden, um diese Inhalte in VR anzusehen. Machen Sie dazu Samsung Internet zu Ihrem Standardbrowser.", "samsung-internet-vr-info":"Wenn Sie ein Gear VR-Headset haben, das mit diesem Ger\u00e4t kompatibel ist, und Sie Samsung Internet f\u00fcr VR installiert haben, k\u00f6nnen Sie es auch verwenden, um diese Inhalte in VR zu sehen. Setzen Sie dazu nun das Mobiltelefon auf das Headset.","enable-video-prompt":"Video aktivieren?","storage-not-provided-launch-from-homescreen":"Bitte starten Sie die Tour erneut \u00fcber das Symbol auf dem Startbildschirm, um sie herunterzuladen.","enter-fullscreen":"Vollbildmodus aktivieren", "use-cardboard-v2":"Cardboard v2 verwenden",unmute:"Audio aktivieren","enter-vr":"VR Inhalt eingeben","enable-measure":"Messung beginnen","use-cardboard-info":"Sie k\u00f6nnen jedes kompatible Google Cardboard-Headset verwenden, um diese Inhalte in VR zu sehen.","ar-mobile-info":"Bewegen Sie Ihr Ger\u00e4t langsam, um Ihr Raum zu scannen.\nEin Ring wird angezeigt, wenn eine Oberfl\u00e4che gefunden wird.\nTippen Sie auf den Bildschirm, um das Objekt dort zu platzieren.","use-default-cardboard":"Standard verwenden", "enable-audio-prompt":"Audio aktivieren?"},"tr-tr":{mute:"Sesi devre d\u0131s\u0131 b\u0131rakmak","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"Download Tour for offline playing","change-to-drag-and-release":"S\u00fcr\u00fckleyip b\u0131rakmak i\u00e7in kontrol modunu de\u011fi\u015ftirin",accept:"Kabul etmek",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.", "dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.",cancel:"Cancel","change-to-click-and-move":"T\u0131klamak ve ta\u015f\u0131mak i\u00e7in kontrol modunu de\u011fi\u015ftirin",yes:"evet","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode", "exit-fullscreen":"Tam ekrandan \u00e7\u0131k",no:"hay\u0131r","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Bu web sayfas\u0131, kullan\u0131m istatistiklerini toplamak i\u00e7in tan\u0131mlama bilgileri kullan\u0131r. Daha fazla bilgi i\u00e7in l\u00fctfen \u00c7erez Politikas\u0131n\u0131 ziyaret edin.", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Reddet","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Ses ve video etkinle\u015ftirilsin mi?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Video aktif edilsin mi?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Tam ekran yap","use-cardboard-v2":"Use Cardboard v2",unmute:"Sesi etkinle\u015ftir","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Cihaz\u0131n\u0131z\u0131 yava\u015f\u00e7a hareket ettirerek alan\u0131n\u0131z\u0131 taray\u0131n.\nBir daire g\u00f6r\u00fcnecektir kullan\u0131c\u0131 aray\u00fcz\u00fcnde bir y\u00fczey bulundu\u011funda.\nEkran\u0131na dokunun ve objeyi oraya yerle\u015ftirin.","use-default-cardboard":"Use Default","enable-audio-prompt":"Ses aktif edilsin mi?"}}}); define("tdv/player/l10n",["require","exports","tdv/player/texts","tdv/utils","tdv/player/view/util/URL"],function(a,m,h,n,g){function k(f){return h[d][f]||h.en[f]||f}for(var e in h)h[e.substring(0,2)]=h[e];h["zh-hk"]=h["zh-mo"]=h["zh-tw"];h.no=h.nn;var b=function(){var f=window.navigator,l=["language","browserLanguage","systemLanguage","userLanguage"],p,q,r=[];(p=g.getQueryParameter("language"))&&r.push(p.toLowerCase());var t=f.languages;if(Array.isArray(t))for(p=0;p=0)return l;l=l.substr(0,2);if(c.indexOf(l)>=0)return l}return"en"}();k.log=function(){n.log("translation lang: "+d);n.log("browser lang: "+b.join(", "))};return k}); define("tdv/view/util/UserInitiatedAction",["require","exports","tdv/player/view/util/Device"],function(a,m,h){function n(){for(;l.length;)l.shift()();document.body.removeEventListener("click",n,!0);document.body.removeEventListener("touchstart",e,!0);document.body.removeEventListener("touchmove",k,!0);document.body.removeEventListener("touchend",g,!0);d=!1}function g(){f&&n()}function k(){f=!1}function e(){f=!0;h.Nd()==h.vj&&n()}function b(){document.body.addEventListener("click",n,!0);document.body.addEventListener("touchstart", e,!0);document.body.addEventListener("touchmove",k,!0);document.body.addEventListener("touchend",g,!0)}function c(q,r){var t=this;return function(){r&&n();p+=1;var u=q.apply(t,arguments);--p;return u}}var d=!1,f=!1,l=[];a={wait:function(q){l.push(q);d||(d=!0,document.body?b():document.addEventListener("DOMContentLoaded",b))},rqb:function(q){q=l.indexOf(q);q>=0&&l.splice(q,1)}};var p=0;a.Br=c;a.Wsa=c;a.B8=function(){return p>0};return a}); define("tdv/view/av/DummyVideoData",["require","exports"],function(){var a={};a.src=a.nqb="data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE="; return a}); define("tdv/view/av/PlaybackRequiresUserAction",["require","exports","tdv/view/av/DummyVideoData","tdv/player/view/util/Device"],function(a,m,h,n){function g(p){l=p;for(d=!0;f.length;)f.shift()(l)}function k(p){var q=!1,r=document.createElement("video");r.setAttribute("webkit-playsinline","true");r.setAttribute("playsinline","true");r.src="";r.play()["catch"](function(t){q=t.name!=="NotAllowedError"}).finally(function(){p(!q)})}function e(p){var q=document.createElement("video");q.setAttribute("webkit-playsinline","true"); q.setAttribute("playsinline","true");q.src=h.src;var r=!1;q.play().then(function(){r=!0;q.pause();p(!1)})["catch"](function(){r||p(!0)})}function b(){c||(c=!0,n.Tb()==n.Yj?g(!0):n.Tb()==n.Ji?e(g):k(function(p){p?e(g):g(!1)}))}var c=!1,d=!1,f=[],l;return{test:function(p){d||c||b();f.push(p);if(d)for(;f.length;)f.shift()(l)}}}); define("tdv/view/util/AudioActivation",["require","tdv/player/l10n","tdv/view/util/UserInitiatedAction","tdv/view/av/PlaybackRequiresUserAction"],function(a){function m(e,b){this.eg=e;this.Hn=b;this.Ss=this.Ss.bind(this);this.Ts=!1}function h(){this.Ss=this.Ss.bind(this);this.tma=this.tma.bind(this);this.I="not tested";this.Bva=[];this.Sx=[];this.a4=!1;g.wait(this.tma)}var n=a("tdv/player/l10n"),g=a("tdv/view/util/UserInitiatedAction"),k=a("tdv/view/av/PlaybackRequiresUserAction");h.prototype.Umb= function(){this.I=="not tested"&&(this.I="testing",k.test(function(e){this.I=e?"requires action":"allowed";this.S4a()}.bind(this)))};h.prototype.S4a=function(){this.I=="allowed"?this.Ss(!0):this.a4&&(this.a4=!1,this.Sx.forEach(function(e){e.request()}))};h.prototype.Tsa=function(e){this.I=="allowed"?e.call(this,!0):this.Bva.push(e)};h.prototype.request=function(e){this.rD(e)};h.prototype.cancel=function(e){this.zR(e)};h.prototype.active=function(){return this.I=="allowed"};h.prototype.xlb=function(){this.I== "allowed"&&(this.I="requires action")};h.prototype.tma=function(){setTimeout(this.fZa.bind(this),300);this.Nu(!0)};h.prototype.fZa=function(){for(;this.Sx.length;)this.Sx.pop().cancel()};h.prototype.rD=function(e){this.I=="testing"||this.I=="not tested"?(this.Oca(e),this.a4=!0):this.I=="requires action"&&this.Oca(e).request()};h.prototype.zR=function(e){this.I=="testing"||this.I=="not tested"?this.a4=!1:this.I=="requires action"&&this.Oca(e).cancel()};h.prototype.Ss=function(e){var b=this.Sx;this.Sx= [];b.forEach(function(c){e||c.eg.set("mute",!0);c.cancel()});this.Nu(e)};h.prototype.Nu=function(e){this.I="allowed";this.Bva.forEach(function(b){b.call(window,e)})};h.prototype.Oca=function(e){for(var b=null,c=0;c=10&&c<11||c>=11.3)return!0}return!1};b.Z2a=function(){return g.Tb()==g.Yj||g.Tb()==g.Ji?!0:!1};b.aJa=function(c){try{return this.HIa||(this.HIa=document.createElement("audio")),!!this.HIa.canPlayType(c).replace(/^no$/,"")}catch(d){}return!1};b.IO=function(c){try{return this.K6||(this.K6=document.createElement("video"),this.K6.setAttribute("webkit-playsinline","true"),this.K6.setAttribute("playsinline","true")),!!this.K6.canPlayType(c).replace(/^no$/, "")}catch(d){}return!1};b.Ecb=function(){return g.Tb()==g.Ji?g.Toa()>=15||n?!0:!1:!0};b.a3a=function(){try{if(document.createElement("canvas").getContext("webgl"))return!0}catch(c){}try{if(document.createElement("canvas").getContext("experimental-webgl"))return!0}catch(c){}return!1};b.GSa=function(c,d,f,l){if(k.sWa)return!0;if(g.Nd()==g.vj){if(c<=4096&&d<=2048)return!0}else if((g.xP()||g.KJ())&&!g.iE()){if(c<=4320&&d<=4320||c<=8192&&d<=4096)return!0}else if((g.xP()||g.KJ())&&g.epa()){if(l=="h264"&& (c<=5760&&d<=5760||c<=7680&&d<=3840)||c<=3840&&d<=2160)return!0}else if(g.bNa()){if(c<=7680&&d<=3840||c<=5760&&d<=5760)return!0}else if(g.TX())if(l=="h264"){if(c<=5760&&d<=5760||c<=7680&&d<=3840)return!0}else{if(c<=4400&&d<=2200)return!0}else if(g.ub()){if(c<=3840&&d<=2160)return!0}else if(c<=4096&&d<=2048)return!0;return!1};b.Gcb=function(){return g.TX()||(g.xP()||g.KJ())&&g.Dc()==g.ox||!g.ub()&&b.Ema&&g.Tb()==g.Pp?!0:!1};b.FSa=function(c){return b.GSa(c.get("width"),c.get("height"),c.get("framerate"), c.get("codec"))};b.Fcb=function(){return b.Ema?!0:!1};b.Hcb=function(){return k.wta!==void 0?k.wta:g.KJ()||g.TX()||g.Ghb()||g.bNa()||g.cNa()||g.xP()&&!g.iE()||!g.kf()&&g.Nd()!=g.uB&&g.Nd()!=g.vj?!0:!1};b.Pmb=function(c,d){return b.GSa(c,d,0)};b.log=function(){h.log("webgl: "+b.ci);h.log("html5 audio: "+b.BMa);h.log("html5 video: "+b.EMa)};b.Ema=!1;b.SPa=!k.VUa&&k.UUa?1:2;b.DMa=b.aJa('audio/ogg; codecs="vorbis"');b.CMa=b.aJa("audio/mpeg");b.BMa=b.DMa||b.CMa;b.Poa=b.IO('video/ogg; codecs="theora"'); b.IO('video/mp4; codecs="avc1.42E01E"');b.Qoa=b.IO('video/webm; codecs="vp8, vorbis"');b.Wgb=b.IO('video/mp4; codecs="hev1"');b.k8=b.IO("video/mp4");b.Xgb=b.IO("video/quicktime");b.Ygb=b.h3a();b.pMa=b.Z2a();b.Dgb=b.pMa||b.k8&&b.Y2a();b.EMa=b.Poa||b.k8||b.Qoa;b.ci=b.a3a();b.summary=["webgl:"+b.ci,"html5audio:"+b.BMa,"html5video:"+b.EMa].join(" ");return b}();e.Bk("debug")&&e.Bk("capabilities")&&a.log();return a}); define("tdv/player/view/util/geo/Quaternion",["require"],function(){var a=Math.PI/180,m=180/Math.PI,h=new THREE.Euler(0,0,0,"YXZ"),n=new THREE.Quaternion;return{create:function(){return{x:0,y:0,z:0,w:0}},iX:function(g,k,e,b){n.setFromEuler(h.set(k*a,-g*a,e*a,"YXZ"));g=b||{};g.x=n.x;g.y=n.y;g.z=n.z;g.w=n.w;return g},jaa:function(g,k){h.setFromQuaternion(n.set(g.x,g.y,g.z,g.w),"YXZ");g={};g.Xa=-h.y*m;g.pitch=h.x*m;g.Mg=h.z*m;k||(g.pitch=Math.min(90,Math.max(-90,g.pitch)));return g},Xa:function(g){h.setFromQuaternion(n.set(g.x, g.y,g.z,g.w),"YXZ");return-h.y*m}}}); define("tdv/player/view/util/MathUtil",["require"],function(){var a={};a.degToRad=Math.PI/180;a.radToDeg=180/Math.PI;a.Vector2=function(m,h){this.x=m||0;this.y=h||0};a.Vector2.prototype={constructor:a.Vector2,set:function(m,h){this.x=m;this.y=h;return this},copy:function(m){this.x=m.x;this.y=m.y;return this},subVectors:function(m,h){this.x=m.x-h.x;this.y=m.y-h.y;return this}};a.Vector3=function(m,h,n){this.x=m||0;this.y=h||0;this.z=n||0};a.Vector3.prototype={constructor:a.Vector3,set:function(m,h, n){this.x=m;this.y=h;this.z=n;return this},copy:function(m){this.x=m.x;this.y=m.y;this.z=m.z;return this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var m=this.length();m!==0?this.multiplyScalar(1/m):this.z=this.y=this.x=0;return this},multiplyScalar:function(m){this.x*=m;this.y*=m;this.z*=m},applyQuaternion:function(m){var h=this.x,n=this.y,g=this.z,k=m.x,e=m.y,b=m.z;m=m.w;var c=m*h+e*g-b*n,d=m*n+b*h-k*g,f=m*g+k*n-e*h;h=-k*h-e*n-b*g;this.x= c*m+h*-k+d*-b-f*-e;this.y=d*m+h*-e+f*-k-c*-b;this.z=f*m+h*-b+c*-e-d*-k;return this},dot:function(m){return this.x*m.x+this.y*m.y+this.z*m.z},crossVectors:function(m,h){var n=m.x,g=m.y;m=m.z;var k=h.x,e=h.y;h=h.z;this.x=g*h-m*e;this.y=m*k-n*h;this.z=n*e-g*k;return this}};a.Quaternion=function(m,h,n,g){this.x=m||0;this.y=h||0;this.z=n||0;this.w=g!==void 0?g:1};a.Quaternion.prototype={constructor:a.Quaternion,set:function(m,h,n,g){this.x=m;this.y=h;this.z=n;this.w=g;return this},copy:function(m){this.x= m.x;this.y=m.y;this.z=m.z;this.w=m.w;return this},jRa:function(m,h,n){var g=Math.cos(m/2),k=Math.cos(h/2),e=Math.cos(n/2);m=Math.sin(m/2);h=Math.sin(h/2);n=Math.sin(n/2);this.x=m*k*e+g*h*n;this.y=g*h*e-m*k*n;this.z=g*k*n-m*h*e;this.w=g*k*e+m*h*n;return this},setFromAxisAngle:function(m,h){h/=2;var n=Math.sin(h);this.x=m.x*n;this.y=m.y*n;this.z=m.z*n;this.w=Math.cos(h);return this},multiply:function(m){return this.multiplyQuaternions(this,m)},multiplyQuaternions:function(m,h){var n=m.x,g=m.y,k=m.z; m=m.w;var e=h.x,b=h.y,c=h.z;h=h.w;this.x=n*h+m*e+g*c-k*b;this.y=g*h+m*b+k*e-n*c;this.z=k*h+m*c+n*b-g*e;this.w=m*h-n*e-g*b-k*c;return this},inverse:function(){this.x*=-1;this.y*=-1;this.z*=-1;this.normalize();return this},normalize:function(){var m=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);m===0?(this.z=this.y=this.x=0,this.w=1):(m=1/m,this.x*=m,this.y*=m,this.z*=m,this.w*=m);return this},slerp:function(m,h){if(h===0)return this;if(h===1)return this.copy(m);var n=this.x,g= this.y,k=this.z,e=this.w,b=e*m.w+n*m.x+g*m.y+k*m.z;b<0?(this.w=-m.w,this.x=-m.x,this.y=-m.y,this.z=-m.z,b=-b):this.copy(m);if(b>=1)return this.w=e,this.x=n,this.y=g,this.z=k,this;m=Math.acos(b);var c=Math.sqrt(1-b*b);if(Math.abs(c)<.001)return this.w=.5*(e+this.w),this.x=.5*(n+this.x),this.y=.5*(g+this.y),this.z=.5*(k+this.z),this;b=Math.sin((1-h)*m)/c;h=Math.sin(h*m)/c;this.w=e*b+this.w*h;this.x=n*b+this.x*h;this.y=g*b+this.y*h;this.z=k*b+this.z*h;return this},setFromUnitVectors:function(){var m, h;return function(n,g){m===void 0&&(m=new a.Vector3);h=n.dot(g)+1;h<1E-6?(h=0,Math.abs(n.x)>Math.abs(n.z)?m.set(-n.y,n.x,0):m.set(0,-n.z,n.y)):m.crossVectors(n,g);this.x=m.x;this.y=m.y;this.z=m.z;this.w=h;this.normalize();return this}}()};return a}); define("tdv/player/view/util/DeviceOrientationSensor",["require","tdv/constants/EventName","tdv/events/Event","tdv/events/EventDispatcher","tdv/player/view/util/MathUtil"],function(a){function m(){d||(d=!0,q=new c.Vector3(0,0,1),r=new c.Quaternion,t=new c.Quaternion(-Math.sqrt(.5),0,0,Math.sqrt(.5)),u=new c.Quaternion,n(),window.addEventListener("orientationchange",n,!1),window.addEventListener("deviceorientation",g,!1),h())}function h(){if(v&&l!==void 0&&p!==void 0){v=!1;var y=c.degToRad*p;u.jRa(c.degToRad* l.beta,c.degToRad*l.alpha,-(c.degToRad*l.gamma));u.multiply(t);u.multiply(r.setFromAxisAngle(q,-y));w||(x++,x>=5&&(w=!0,f.o(new e(k.vd))));f.o(new e(k.V))}}function n(){p=window.orientation||0;v=!0;h()}function g(y){l=y;v=!0;h()}var k=a("tdv/constants/EventName"),e=a("tdv/events/Event"),b=a("tdv/events/EventDispatcher"),c=a("tdv/player/view/util/MathUtil"),d=!1,f=new b,l,p,q,r,t,u,v,w=!1,x=0;m.prototype.Gt=function(){h();return u};m.prototype.bind=function(){f.bind.apply(f,arguments)};m.prototype.h= function(){f.h.apply(f,arguments)};m.prototype.stop=function(){window.removeEventListener("orientationchange",n,!1);window.removeEventListener("deviceorientation",g,!1)};return m}); define("tdv/player/view/util/FusionPoseSensor","require tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Device tdv/player/view/util/MathUtil".split(" "),function(a){function m(l){this.Rhb=l;this.zna=new g;this.e7=new g;this.Aqa=new g;this.rJ=new c.Quaternion;this.zqa=new c.Quaternion;this.SHa=new c.Quaternion;this.$Ma=!1;this.m7=new c.Vector3;this.Epa=new c.Vector3;this.pgb=new c.Quaternion}function h(){this.deviceId="webvr-polyfill:fused";this.WNa=!1;this.VNa= 0;this.wW=new c.Vector3;this.d8=new c.Vector3;this.filter=new m(.98);this.njb=new n(.04);this.tP=f.tP();this.gr=f.gr();f.moa();this.opa=f.rhb();this.r7=new c.Quaternion;f.gr()?this.r7.setFromAxisAngle(new c.Vector3(1,0,0),Math.PI/2):this.r7.setFromAxisAngle(new c.Vector3(1,0,0),-Math.PI/2);this.u8=new c.Quaternion;this.AQ=new c.Quaternion;this.kPa=new c.Quaternion;this.kPa.setFromAxisAngle(new c.Vector3(0,0,1),-window.orientation*Math.PI/180);this.IRa();f.XMa()&&this.r7.multiply(this.u8);this.Rw= new c.Quaternion;this.tP=f.tP();this.gr=f.gr();this.qhb=f.moa()>=66;this.UJ=this.UJ.bind(this);this.jY=this.jY.bind(this);this.iY=this.iY.bind(this);screen&&screen.orientation&&screen.orientation.addEventListener?screen.orientation.addEventListener("change",this.UJ):window.addEventListener("orientationchange",this.UJ);this.opa?window.addEventListener("deviceorientation",this.jY):window.addEventListener("devicemotion",this.iY)}function n(l){this.pjb=l;this.U9=new c.Quaternion;this.ZP=null;this.XJa= new c.Quaternion;this.rY=new c.Quaternion}function g(l,p){this.set(l,p)}var k=a("tdv/constants/EventName"),e=a("tdv/events/Event"),b=a("tdv/events/EventDispatcher");a("tdv/player/view/util/Device");var c=a("tdv/player/view/util/MathUtil"),d=new b;m.prototype.Lbb=function(l,p){this.zna.set(l,p)};m.prototype.Tbb=function(l,p){this.e7.set(l,p);f.Mhb(p-this.Aqa.iaa)&&this.ckb();this.Aqa.copy(this.e7)};m.prototype.ckb=function(){if(this.$Ma){var l=this.qgb(this.e7.sample,this.e7.iaa-this.Aqa.iaa);this.pgb.multiply(l); this.rJ.copy(this.zqa);this.rJ.multiply(l);l=new c.Quaternion;l.copy(this.rJ);l.inverse();this.m7.set(0,0,-1);this.m7.applyQuaternion(l);this.m7.normalize();this.Epa.copy(this.zna.sample);this.Epa.normalize();l=new c.Quaternion;l.setFromUnitVectors(this.m7,this.Epa);l.inverse();var p=new c.Quaternion;p.copy(this.rJ);p.multiply(l);this.rJ.slerp(p,1-this.Rhb);this.zqa.copy(this.rJ)}else this.SHa=this.Kbb(this.zna.sample),this.zqa.copy(this.SHa),this.$Ma=!0};m.prototype.Gt=function(){return this.rJ}; m.prototype.Kbb=function(l){var p=new c.Vector3;p.copy(l);p.normalize();l=new c.Quaternion;l.setFromUnitVectors(new c.Vector3(0,0,-1),p);l.inverse();return l};m.prototype.qgb=function(l,p){var q=new c.Quaternion,r=new c.Vector3;r.copy(l);r.normalize();q.setFromAxisAngle(r,l.length()*p);return q};h.prototype.stop=function(){screen&&screen.orientation&&screen.orientation.addEventListener&&screen.orientation.removeEventListener("change",this.UJ);window.removeEventListener("orientationchange",this.UJ); window.removeEventListener("deviceorientation",this.jY);window.removeEventListener("devicemotion",this.iY)};h.prototype.vm=function(){return null};h.prototype.Gt=function(){var l=void 0;if(this.opa&&this.N0){this.ZJa=this.ZJa||function(){var q=(new c.Quaternion).setFromAxisAngle(new c.Vector3(0,0,-1),0),r=new c.Quaternion;this.T4=="landscape-secondary"?r.setFromAxisAngle(new c.Vector3(0,1,0),Math.PI/-2):r.setFromAxisAngle(new c.Vector3(0,1,0),Math.PI/2);return q.multiply(r)}();this.YJa=this.YJa|| function(){var q=new c.Quaternion;q.setFromAxisAngle(new c.Vector3(1,0,0),-Math.PI/2);return q}();l=this.N0;var p=new c.Quaternion;p.copy(l);p.multiply(this.YJa);p.multiply(this.Rw);p.multiply(this.AQ);p.multiplyQuaternions(this.ZJa,p);this.xqb&&(p.x=0,p.z=0,p.normalize());this.I9[0]=p.x;this.I9[1]=p.y;this.I9[2]=p.z;this.I9[3]=p.w;return this.I9}l=this.filter.Gt();l=this.njb.Tfb(l,this.d8,this.ZP);p=new c.Quaternion;p.copy(this.r7);p.multiply(this.Rw);p.multiply(l);p.multiply(this.AQ);return p}; h.prototype.resetPose=function(){this.Rw.copy(this.filter.Gt());this.Rw.x=0;this.Rw.y=0;this.Rw.z*=-1;this.Rw.normalize();f.XMa()&&this.Rw.multiply(this.u8);this.Rw.multiply(this.kPa)};h.prototype.jY=function(l){this.N0=this.N0||new c.Quaternion;var p=l.alpha,q=l.beta;l=l.gamma;p=(p||0)*Math.PI/180;q=(q||0)*Math.PI/180;l=(l||0)*Math.PI/180;this.N0.jRa(q,p,-l)};h.prototype.iY=function(l){var p=l.rotationRate;if(p){var q=l.accelerationIncludingGravity;l=l.timeStamp/1E3;this.tP&&(l/=1E3);var r=l-this.ZP; r<=f.Lta||r>f.Hta?this.ZP=l:(this.wW.set(-q.x,-q.y,-q.z),this.d8.set(p.alpha,p.beta,p.gamma),(this.gr||this.tP||this.qhb)&&this.d8.multiplyScalar(Math.PI/180),this.filter.Lbb(this.wW,l),this.filter.Tbb(this.d8,l),this.ZP=l,this.WNa||(this.VNa++,this.VNa>=5&&(this.WNa=!0,d.o(new e(k.vd)))),this.T4!=this.aLa()&&this.UJ(),d.o(new e(k.V)))}else this.opa=!0,window.addEventListener("deviceorientation",this.jY),window.removeEventListener("devicemotion",this.iY)};h.prototype.bind=function(){d.bind.apply(d, arguments)};h.prototype.h=function(){d.h.apply(d,arguments)};h.prototype.UJ=function(){this.IRa();d.o(new e(k.V))};h.prototype.IRa=function(){this.AQ.set(0,0,0,1);this.T4=this.aLa();switch(this.T4){case "landscape-primary":this.AQ.setFromAxisAngle(new c.Vector3(0,0,1),-Math.PI/2);break;case "landscape-secondary":this.AQ.setFromAxisAngle(new c.Vector3(0,0,1),Math.PI/2)}this.u8.copy(this.AQ);this.u8.inverse()};h.prototype.aLa=function(){var l=screen.orientation&&screen.orientation.type;if(!l)switch(window.orientation){case 0:l= "portrait-primary";break;case 90:l="landscape-primary";break;case -90:l="landscape-secondary";break;case 180:l="portrait-secondary"}l=="landscape-primary"&&(this.wW.z>4.9||this.wW.z<-4.9?l=this.T4||l:this.wW.x>0&&(l="landscape-secondary"));return l};n.prototype.Tfb=function(l,p,q){if(!this.ZP)return this.U9.copy(l),this.ZP=q,l;q=new c.Vector3;q.copy(p);q.normalize();p=p.length();if(pf.Hta?!1:!0}};f.gr=function(){var l=/iPad|iPhone|iPod/.test(navigator.platform);return function(){return l}}();f.gqb=function(){var l=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return l}}();f.tP=function(){var l=navigator.userAgent.indexOf("Firefox")!== -1&&navigator.userAgent.indexOf("Android")!==-1;return function(){return l}}();f.moa=function(){var l=navigator.userAgent.match(/.*Chrome\/([0-9]+)/),p=l?parseInt(l[1],10):null;return function(){return p}}();f.rhb=function(){var l=!1;if(f.moa()===65){var p=navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(p){p=p[1].split(".");var q=p[3];l=parseInt(p[2],10)===3325&&parseInt(q,10)<148}}return function(){return l}}();f.XMa=function(){return window.orientation==90||window.orientation==-90};return h}); define("tdv/player/view/util/Gyroscope","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/geo/Quaternion tdv/player/view/util/Device tdv/player/view/util/DeviceOrientationSensor tdv/player/view/util/FusionPoseSensor tdv/player/view/util/URL".split(" "),function(a){function m(){function w(){p=!0;f.o(new n(h.V))}function x(){var C;!F||!y&&A?A&&(C=z):C=D;q!=C&&(q&&(q.h(h.V,w),q.stop()),q=C)&&(q.bind(h.V,w,this,!0),w())}var y=e.Nd()==e.vj||d.Bk("debug")&& d.getQueryParameter("sensor")=="deviceorientation",z=new c,A=!1;z.bind(h.vd,function(){A=!0;x()},this,!0);var D=new b,F=!1;D.bind(h.vd,function(){F=!0;x()},this,!0)}a("tdv/utils");var h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/util/geo/Quaternion"),e=a("tdv/player/view/util/Device"),b=a("tdv/player/view/util/DeviceOrientationSensor"),c=a("tdv/player/view/util/FusionPoseSensor"),d=a("tdv/player/view/util/URL"),f=new g,l={},p=!1,q,r= [],t=!1,u=!1;l.Pqa=function(w){w&&r.push(w);if(!l.disabled)for(;r.length;)r.pop()();else if(e.Nd()==e.vj&&window.DeviceMotionEvent&&DeviceMotionEvent.requestPermission){DeviceOrientationEvent.requestPermission().then(function(y){y==="granted"&&(u=!0,x())})["catch"](function(){});DeviceMotionEvent.requestPermission().then(function(y){y==="granted"&&(t=!0,x())})["catch"](function(){});var x=function(){if(l.disabled&&t&&u)for(l.disabled=!1,m();r.length;)r.pop()()};x()}};l.bind=function(w,x){f.bind(h.V, w,x)};l.h=function(w,x){f.h(h.V,w,x)};l.Wib=function(){return p};l.Gt=function(){p=!1;if(q){var w=q.Gt();w=k.jaa(w);return{yaw:w.Xa,pitch:w.pitch,roll:w.Mg}}return{yaw:0,pitch:0,roll:0}};if(e.Nd()==e.Wua||e.Nd()==e.r_||e.Nd()==e.Eta||e.kf())l.ol=!1,l.disabled=!1;else if(e.Nd()==e.uB&&e.Tb()==e.Pp&&window.location.protocol!="https:"&&window.location.hostname!="localhost")l.ol=!0,l.disabled=!0;else if(e.Nd()==e.vj)if(l.ol=!0,l.disabled=!0,window.DeviceMotionEvent&&DeviceMotionEvent.requestPermission)l.Pqa(); else{var v=function(){window.removeEventListener("deviceorientation",v,!1);l.disabled=!1;m()};window.addEventListener("deviceorientation",v,!1)}else l.ol=window.DeviceMotionEvent!=void 0,l.disabled=!1;l.ol&&!l.disabled&&m();return l}); define("tdv/player/view/util/LibsLoader",["require","exports","tdv/player/view/util/URL"],function(a,m,h){m=function(){function g(){this.O8=null;this.P6=[]}g.prototype.initialize=function(k){this.O8=h.lB(k);this.OZ=this.OZ.bind(this);this.update()};g.prototype.load=function(k,e){this.P6.push({call:k,context:e||window});this.EP||(this.EP=this.s7());this.update()};g.prototype.pj=function(){return this.EP!==void 0};g.prototype.update=function(){this.P6.length>0&&(this.EP!==void 0?this.feb():this.O8&& this.xpa())};g.prototype.OZ=function(){var k=this.s7();k===void 0?setTimeout(this.OZ,250):(this.EP=k,this.update())};g.prototype.xpa=function(){throw Error("Method not implemented.");};g.prototype.s7=function(){throw Error("Method not implemented.");};g.prototype.feb=function(){for(;this.P6.length>0;){var k=this.P6.pop();k.call.call(k.context,this.EP)}};return g}();a=function(g){function k(e){var b=g.call(this)||this;b.uNa=e;return b}P(k,g);k.prototype.xpa=function(){this.script||(this.script=document.createElement("script"), this.script.type="text/javascript",this.script.src=this.O8,document.getElementsByTagName("head")[0].appendChild(this.script),this.OZ())};k.prototype.s7=function(){for(var e=window,b=0;b-1&&b!==this.XR.Vn.length-1&&(this.XR.Vn.splice(b,1),this.XR.Vn.splice(this.XR.Vn.length,0,g));this.XR.Nqa.set(g,k);this.XR.Mqa.set(g,e);g!==this.XR.Uf||this.XR.XA===k&&this.XR.Nw===e||(this.XR.XA=k,this.XR.Nw=e,this.XR.M.o(h.Pd))};n.add=function(g){this.remove(g);this.XR.Vn.push(g)};n.remove=function(g){var k= this.XR.Vn.indexOf(g);k!=-1&&(this.XR.Vn.splice(k,1),this.XR.Nqa.delete(g),this.XR.Mqa.delete(g))};return n}()});define("tdv/player/view/util/xr/RendererType",["require","exports"],function(){return{bca:"Panorama",Tba:"Model3D"}});define("tdv/player/view/util/xr/pointer/SelectionMode",["require","exports"],function(){return{RF:"gaze",YUa:"gaze_click"}});define("tdv/player/view/util/xr/SessionMode",["require","exports"],function(){return{Xp:"immersive-vr",Np:"immersive-ar"}}); define("tdv/player/view/util/xr/Type",["require","exports"],function(){return{mo:"Cardboard",kpb:"WebVR",yWa:"WebXR"}});define("tdv/constants/RenderOrder",["require","exports"],function(){return{tVa:-1,DVa:0,uVa:0,bVa:0,Iob:1,zUa:2,AUa:101,aWa:0,bWa:2,hWa:2,pVa:2,gWa:2,ZUa:2,nWa:100,J_:900,TVa:10,iUa:-1E3,tta:1E3,CWa:999,BWa:998,AWa:999,zWa:1E3,YVa:1E3,npb:1001,DWa:1E3,KVa:1E3,Yua:1E4}}); define("tdv/player/view/util/xr/ui/DraggingPointerState",["require","exports"],function(){var a=function(){return function(){}}();a;return a});define("tdv/player/view/util/xr/ui/UIPointerState",["require","exports"],function(){return function(){return function(){}}()});define("tdv/view/util/EaseDimension",["require","exports"],function(){return function(){return function(a,m,h,n){n===void 0&&(n=void 0);this.name=a;this.from=m;this.to=h;this.Yhb=n}}()}); define("tdv/view/util/Ease",["require","exports","tdv/view/util/EaseDimension"],function(a,m,h){function n(c){return function(d,f,l){d=Math.abs(f-d);return d/l<1?0:1/(1-Math.pow((d-l)/d,1/c))}}function g(c){var d=new b;d.goa=function(f,l,p,q){return f+(l-f)*Math.pow(p<=0?0:p>=q?1:p/q,c)};d.Hpa=n(c);return d}function k(c){var d=new b;d.goa=function(f,l,p,q){return f+(l-f)*(1-Math.pow(1-(p<=0?0:p>=q?1:p/q),c))};d.Hpa=n(c);return d}function e(c){var d=new b;d.goa=function(f,l,p,q){p=p<=0?0:p>=q?1:p/ q;p<.5?p=Math.pow(p*2,c):(p=1-Math.pow(1-(p*2-1),c),p+=1);return f+p*.5*(l-f)};d.Hpa=n(c);return d}a=function(){function c(d,f,l){l===void 0&&(l=void 0);switch(d){case "quad_in":this.curve=g(2);break;case "quad_out":this.curve=k(2);break;case "quad_in_out":this.curve=e(2);break;case "cubic_in":this.curve=g(3);break;case "cubic_out":this.curve=k(3);break;case "cubic_in_out":this.curve=e(3);break;case "quart_in":this.curve=g(4);break;case "quart_out":this.curve=k(4);break;case "quart_in_out":this.curve= e(4);break;case "quint_in":this.curve=g(5);break;case "quint_out":this.curve=k(5);break;case "quint_in_out":this.curve=e(5);break;default:this.curve=g(1)}this.mA=f.slice();this.time=0;this.duration=this.UIa(f,l);this.Ena={};for(d=0;d0};c.prototype.Ve= function(){return this.time>=this.duration};c.prototype.mj=function(){return this.duration};c.prototype.vm=function(){return this.time/this.duration};c.prototype.getTime=function(){return this.time};c.prototype.setTime=function(d){this.time=Math.min(Math.max(0,d),this.duration);for(d=0;d0&&p.push(this.curve.Hpa(r.from,r.to,t/1E3))}if(p.length>0){d=p[0];for(q=1;q0?Math.max(f,d):d}return f!==void 0?Math.max(f,.001):this.UIa(d,f,1E3)};c.mj=function(){return(new c(void 0,[new h("",void 0,void 0,void 0)])).mj()};return c}();var b=function(){return function(){}}();return a}); define("tdv/view/util/Animation",["require","exports","tdv/utils","tdv/view/util/Visibility","tdv/player/view/util/Flags"],function(a,m,h,n,g){var k=window.requestAnimationFrame.bind(window),e=window.cancelAnimationFrame.bind(window),b=function(){function d(){}d.requestFrame=function(f,l,p){for(var q=0;q0&&(d.Qw=d.FY(d.z7)))};d.HRa=function(f,l){d.FY!=f&&(d.Qw!==void 0&&(d.ina(d.Qw),d.Qw=f(d.z7)),d.FY=f,d.ina=l)};d.Wjb=function(){d.HRa(k,e)};d.z7=function(f){d.yKa(f);d.Qw=d.Qt.length>0?d.FY(d.z7):void 0};d.yKa=function(f){f1?p<100?p:100:1;d.Af=f;d.gX=p;for(f=0;f0?E[0]:null)&&E.uv.x>= 0&&E.uv.x<=1&&E.uv.y>=0&&E.uv.y<=1){var G=E.uv.x;var N=E.uv.y;var O=E.distance}else if((H=this.Cg)===null||H===void 0?0:H.pressed)E=y.intersectObjects([this.qJ],!1),(E=E.length>0?E[0]:null)&&E.uv.x>=0&&E.uv.x<=1&&E.uv.y>=0&&E.uv.y<=1&&(G=(E.uv.x-.5)*this.qJ.scale.x+.5,N=(E.uv.y-.5)*this.qJ.scale.y+.5,O=E.distance);E?(H=G*this.canvas.width,N=(1-N)*this.canvas.height,this.Cg||(this.Cg=new e),this.Cg.uPa=H,this.Cg.vPa=N,this.Cg.distance=O,this.Cg.pressed=B.pressed,this.Cg.Wmb=B.Qb.x,this.Cg.Xmb=B.Qb.y): this.Cg=null}else this.Cg=null};C.prototype.Bnb=function(B){var H;if(B&&this.draggable){y.ray.copy(B.ray).applyMatrix4(B.matrixWorld);if(B.pressed){if(!this.Bi)return;this.Bi.pressed||(this.Bi.pressed=!0,this.omb(y))}else this.Yra(),B=y.intersectObjects([this.ut],!1),B.length>0?(this.Bi||(this.Bi=new k),this.Bi.We=!0,this.Bi.pr=!0,this.Bi.pressed=!1,this.Bi.distance=B[0].distance):this.Bi=null;if((H=this.Bi)===null||H===void 0?0:H.pressed)this.znb(y),y.ray.intersectSphere(this.j7,t)&&(this.Bi.distance= t.distanceTo(y.ray.origin))}else this.Bi=null};C.prototype.Anb=function(){var B,H,E;(B=this.Bi)===null||B===void 0||!B.We||(H=this.Bi)!==null&&H!==void 0&&H.pressed?this.eRa(.75):this.eRa(1);this.zkb(((E=this.Bi)===null||E===void 0?0:E.pressed)?1:.75)};C.prototype.omb=function(B){B=B.intersectObjects([this.ut],!1);B.length===0?this.Yra():(this.nKa=B[0].distance,t.copy(B[0].point).applyMatrix4(r.copy(this.group.matrixWorld).invert()),this.j7.radius=t.length(),t.normalize(),this.group.add(this.vt), this.vt.rotation.set(t.y==0&&t.z==0?0:-Math.atan2(t.y,Math.sqrt(t.z*t.z+t.x*t.x)),t.x==0&&t.z==0?0:Math.atan2(t.x,t.z),0,"YXZ"),this.vt.updateMatrixWorld(!0),this.Ke.updateMatrixWorld(!0),t.setFromMatrixPosition(this.Ke.matrixWorld).applyMatrix4(r.copy(this.vt.matrixWorld).invert()),this.h7.position.set(t.x,t.y,t.z))};C.prototype.Yra=function(){var B;(B=this.vt.parent)===null||B===void 0||B.remove(this.vt)};C.prototype.znb=function(B){this.vt.updateMatrixWorld(!0);if(this.Nna)t.copy(B.ray.origin).addScaledVector(B.ray.direction, this.nKa);else if(this.j7.center.setFromMatrixPosition(this.vt.matrixWorld),!B.ray.intersectSphere(this.j7,t)){this.Yra();return}this.group.updateMatrixWorld(!0);t.applyMatrix4(r.copy(this.group.matrixWorld).invert());this.vt.rotation.set(t.y==0&&t.z==0?0:-Math.atan2(t.y,Math.sqrt(t.z*t.z+t.x*t.x)),t.x==0&&t.z==0?0:Math.atan2(t.x,t.z),0,"YXZ");B=t.length();this.vt.scale.set(B,B,B);this.group.updateMatrixWorld(!0);this.h7.updateMatrixWorld(!0);B=w;var H=x;t.setFromMatrixPosition(this.h7.matrixWorld).applyMatrix4(r.copy(this.group.matrixWorld).invert()); this.Nna&&this.Yn(t.length());H.setFromUnitVectors(u,t.normalize());B.setFromEuler(v.set(this.vl.rotation.x,this.vl.rotation.y,0,"YXZ"));B.slerp(H,.2);B.angleTo(H)<.001&&B.copy(H);v.setFromQuaternion(B,"YXZ");this.vl.rotation.x=v.x;this.vl.rotation.y=v.y};C.prototype.Rc=function(){return this.group};C.prototype.Zn=function(B){this.Ke.material.opacity=B;this.Ke.material.needsUpdate=!0};C.prototype.Yn=function(B){this.Ke.position.set(0,0,-B)};C.prototype.sj=function(B){this.vl.rotation.y=-B*p};C.prototype.Kc= function(){return-this.vl.rotation.y*q};C.prototype.$n=function(B){this.vl.rotation.x=B*p};C.prototype.Jc=function(){return this.vl.rotation.x*q};C.prototype.$cb=function(){this.CTa(l)};C.prototype.CTa=function(B){B.width!==this.Sj||B.height!==this.Rj?(this.Fna(this.Ke.material),this.Ke.material=this.wna(B)):this.canvas!==B&&(this.bKa(this.Ke.material),this.Ke.material.map=this.HJa(B));this.Ke.material.map.needsUpdate=!0;this.Ke.material.needsUpdate=!0;this.canvas=B;this.Sj=this.canvas.width;this.Rj= this.canvas.height;this.yTa();this.oTa();this.vsa()};C.prototype.Ogb=function(){return this.canvas!==l};C.prototype.kZ=function(B){this.P9!==B&&(this.P9=B,this.yTa())};C.prototype.yTa=function(){this.Ke.scale.set(this.Sj*this.P9,this.Rj*this.P9,1);this.vsa()};C.prototype.Nra=function(B){this.ix.material.opacity=B;this.ix.material.needsUpdate=!0;this.ix.visible=B>0};C.prototype.L$=function(B){this.ix.material.color=f.Ip(B||"#000000");this.ix.material.needsUpdate=!0};C.prototype.Kg=function(){this.l8? this.qTa():this.J6&&this.onb()};C.prototype.s$=function(B){this.l8!=B&&((this.l8=B)?this.qTa():this.group.rotation.set(0,0,0,"YXZ"))};C.prototype.qTa=function(){this.group.rotation.setFromQuaternion(C.XR.yl)};C.prototype.k$=function(B){this.J6!=B&&(this.J6=B)&&(v.setFromQuaternion(C.XR.yl,"YXZ"),this.vl.rotation.x=v.x,this.vl.rotation.y=v.y)};C.prototype.onb=function(){v.setFromQuaternion(C.XR.yl,"YXZ");v.z=0;z.setFromEuler(v);A.setFromEuler(this.vl.rotation);if(this.BO){if(this.BO.Nb(d.gX),A.slerp(z, this.BO.ob("centering")),v.setFromQuaternion(A,"YXZ"),this.vl.rotation.x=v.x,this.vl.rotation.y=v.y,z.angleTo(A)D&&(this.ucb.copy(z),this.BO=new b("linear",[new c("centering",0,1)],2E3))};C.prototype.UY=function(B){this.draggable!=B&&((this.draggable=B)?this.Ke.add(this.ut):this.Ke.remove(this.ut))};C.prototype.n$=function(B){this.Nna=B};C.prototype.ykb=function(B,H){this.kKa=B;this.lKa=H;this.vsa()};C.prototype.eRa=function(B){this.Ona=B;this.oTa()}; C.prototype.oTa=function(){this.ut.scale.set(128/this.Sj*this.Ona,32/this.Rj*this.Ona,1)};C.prototype.zkb=function(B){this.ut.material.opacity=B;this.ut.material.needsUpdate=!0};C.prototype.vsa=function(){this.ut.position.set(-.5+this.kKa/this.Sj,.5-this.lKa/this.Rj,0)};return C}();var p=Math.PI/180,q=180/Math.PI,r=new h.Matrix4,t=new h.Vector3,u=new h.Vector3(0,0,-1),v=new h.Euler,w=new h.Quaternion,x=new h.Quaternion,y=new h.Raycaster,z=new h.Quaternion,A=new h.Quaternion,D=35*p,F=2*p;return a}); define("tdv/player/view/util/xr/ui/UI",["require","exports","tdv/player/view/util/xr/ui/UIPanel","tdv/constants/EventName"],function(a,m,h,n){return function(){function g(){}g.Hdb=function(){var k=new h;this.Fk.push(k);this.XR.Zq.add(k.Rc());return k};g.deb=function(k){var e=this.Fk.indexOf(k);e!==-1&&(this.XR.Zq.remove(k.Rc()),this.Fk.splice(e,1),k.dispose())};g.initialize=function(){this.XR.M.bind(n.V,this.Ta,this,!0);this.Ta()};g.Ta=function(){this.XR.isPresenting?this.XR.M.bind(n.Zd,this.Kg,this, !0):this.XR.M.h(n.Zd,this.Kg,this)};g.Nnb=function(){this.Fk=[].concat(this.Fk.filter(function(k){return!k.pE&&!k.sP()}),this.Fk.filter(function(k){return!k.pE&&k.sP()}),this.Fk.filter(function(k){return k.pE}));this.Fk.forEach(function(k,e){return k.ilb(e)})};g.Kg=function(){this.Nnb();this.FZ()};g.FZ=function(){for(var k,e,b=this.XR.ud.reduce(function(t,u){return t===null||t.YP= 0;q--)if(c||p)this.Fk[q].xQ(null);else{l=l||((k=this.Fk[q].Bi)===null||k===void 0?void 0:k.pressed)||((e=this.Fk[q].Cg)===null||e===void 0?void 0:e.pressed)||!1;this.Fk[q].xQ(b);var r=this.Fk[q].Bi;r&&r.We&&r.distance0&&(p=!0)}l&&b&&!b.pressed&&this.XR.QY(b,50);k=this.Fk.some(function(t){return t.pE});if(c||this.We||k||this.pE||p||this.tPa)for(q=0;q-1;this.FTa=n.Bk("vr");if(this.iE||this.FTa)this.fTa(),document.addEventListener("visibilitychange",function(){document.hidden||this.fTa()}.bind(this),!1)};k.fTa=function(){this.adb();this.Xma=0;this.rSa()};k.rSa=function(){this.Xma++; this.haa=setTimeout(this.Tib.bind(this),this.FTa?500:this.Xma*1E3)};k.adb=function(){this.haa&&(clearTimeout(this.haa),this.haa=null)};k.Tib=function(){this.haa=null;this.iE&&this.Xma>5?window.location.reload():document.hidden||k.XR.isPresenting||(!this.xt(g.Xp)||this.iE)&&this.rSa()};k.xt=function(e){if(!this.XR.$J)return!1;for(var b=this.XR.$J.Ci("Model3DPlayer"),c=0;c0!==u)if(u){var w=new c.DirectionalLight(16777215,Math.PI);w.position.set(10, 20,0);(v=this.Un)===null||v===void 0||v.add(w);this.Ei.push(w)}else for(;this.Ei.length;)v=this.Ei.pop(),(w=this.Un)===null||w===void 0||w.remove(v)};t.MRa=function(u){this.laa!==u&&((this.laa=u)?this.hw.forEach(this.UNa.bind(this)):this.hw.forEach(this.wQa.bind(this)))};t.jkb=function(u,v){u=this.Qfb(u);u!=-1&&(u=this.a7[u])&&u.hapticActuators&&u.hapticActuators.length&&(u=u.hapticActuators[0],u.pulse&&u.pulse(.6,v))};t.Ta=function(){this.XR.isPresenting?this.Wa():this.ya()};t.Wa=function(){d.forEach(function(u){this.Olb(u); this.Plb(u)}.bind(this))};t.ya=function(){d.forEach(function(u){this.Omb(u);this.Nmb(u);this.Mmb(u)}.bind(this))};t.Kg=function(){this.llb(this.enabled&&this.XR.Vh||null);this.FZ();this.wnb()};t.FZ=function(){var u=this;if(this.enabled){for(;this.XR.ud.length;)this.XR.ud.pop();d.forEach(function(v){var w=u.controllers[v];if(w&&u.QO[v]){var x=u.jA[v];x&&(u.xnb(v),x.matrixWorld.copy(w.matrixWorld),x.ray.origin.set(0,0,0),x.ray.direction.set(0,0,-1),w=(w=(w=u.hw[v].motionController)&&w.components["xr-standard-thumbstick"])&& w.values,x.gx=w&&w.state=="pressed"||!1,x.Qb.set(w&&w.xAxis||0,w&&w.yAxis||0),x.SIa=u.cpa(v,"buttonB"),u.Snb(v),u.XR.ud.push(x))}})}};t.Snb=function(u){var v=this,w,x=this.jA[u];if(x)if(x.i8){var y=!1;if(!this.iA[u])this.iA[u]=this.XR.session.requestHitTestSource({space:this.sna[u].targetRaySpace,offsetRay:new XRRay({x:0,y:0,z:0,w:1},{x:0,y:0,z:-1,w:0})}).then(function(A){v.iA[u]=A}).catch(function(A){console.error(A);v.iA[u]=null});else if(this.iA[u]instanceof XRHitTestSource){var z=(w=this.XR.Uf)=== null||w===void 0?void 0:w.xr.getFrame();(w=z&&z.getHitTestResults(this.iA[u]))&&w.length&&(w=w[0],z=w.getPose(this.XR.referenceSpace))&&(this.OW[u]=w,x.It||(x.It=new c.Matrix4),x.It.fromArray(z.transform.matrix).premultiply(this.XR.Vh.matrixWorld).decompose(l,q,r).compose(l,q,r.set(1,1,1)),y=l.setFromMatrixPosition(x.matrixWorld).distanceTo(p.setFromMatrixPosition(x.It))/this.XR.zi>.2)}y||(x.It=null,this.OW[u]=null)}else typeof XRHitTestSource!=="undefined"&&this.iA[u]instanceof XRHitTestSource&& (this.iA[u].cancel(),this.iA[u]=null,this.OW[u]=null)};t.wnb=function(){this.enabled&&d.forEach(function(u){u=this.PW[u];u===null||u===void 0||u.update()}.bind(this))};t.Vlb=function(){if(!this.$na){var u=this.XR.Uf,v=u.xr.enabled;u.$q=!0;u.xr.enabled=!1;var w=new c.RoomEnvironment(u);this.$na=(new c.PMREMGenerator(u)).fromScene(w).texture;u.$q=!1;u.xr.enabled=v}};t.Olb=function(u){var v=this.XR.Uf.xr.getController(u);this.controllers[u]!=v&&(v.addEventListener("selectstart",this.Gw),v.addEventListener("selectend", this.PA),v.addEventListener("connected",this.i9),v.addEventListener("disconnected",this.l9),v.userData.PJ=!0,this.controllers[u]=v,this.jA[u]=new e,this.tna[u]=0,this.jA[u].type=e.H_)};t.Mmb=function(u){var v=this.controllers[u];v&&(v.removeEventListener("selectstart",this.Gw),v.removeEventListener("selectend",this.PA),v.removeEventListener("connected",this.i9),v.removeEventListener("disconnected",this.l9),this.controllers[u]=null)};t.Plb=function(u){if(!this.iJ[u]){var v=this.XR.Uf.xr.getControllerGrip(u); v.userData.PJ=!0;this.b7||(this.b7=new c.XRControllerModelFactory);this.b7.path=c.YB.endsWith("/")?c.YB.slice(0,-1):c.YB;var w=this.b7.createControllerModel(v,this.Aob);w.addEventListener("loaded",this.j9);this.hw[u]=w;v.add(w);this.iJ[u]=v}};t.Aob=function(u){u=Array.from(u.profiles);if(g.KJ())u=["meta-quest-touch-plus"].concat(u);else if(g.xP())u=["oculus-touch-v3"].concat(u);else if(g.cNa())u=["generic-trigger"].concat(u);else if(g.dNa()||u.indexOf("pico-phoenix")>=0||u.indexOf("pico-4")>=0)u= ["pico-4"].concat(u);else if(g.jNa()||u.indexOf("htc-vive-focus-3")>=0||u.indexOf("htc-vive-focus-3-plus")>=0)u=["htc-vive-focus-3"].concat(u);else if(g.Hhb()||g.zhb()||g.YMa()||u.indexOf("pico-g2")>=0||u.indexOf("pico-neo2")>=0||u.indexOf("pico-neo3")>=0)u=["generic-trigger"].concat(u);return u};t.Nmb=function(u){var v,w=this.iJ[u];if(w){var x=this.hw[u];this.hw[u]=null;x.removeEventListener("loaded",this.j9);w.remove(x);this.iJ[u]=null;(v=w.parent)===null||v===void 0||v.remove(w)}};t.Qlb=function(u){if(!this.PW[u]){var v= new k(this.jA[u],this.XR.Al);this.PW[u]=v;this.controllers[u].add(v.sa)}};t.Omb=function(u){var v=this.PW[u];v&&(v.dispose(),this.PW[u]=null)};t.llb=function(u){this.Un!==u&&(this.Un=u,this.Pnb())};t.Pnb=function(){this.controllers.forEach(function(u){var v,w;u&&u.parent!=this.Un&&((v=u.parent)===null||v===void 0||v.remove(u),(w=this.Un)===null||w===void 0||w.add(u))}.bind(this));this.iJ.forEach(function(u){var v,w;u&&u.parent!=this.Un&&((v=u.parent)===null||v===void 0||v.remove(u),(w=this.Un)=== null||w===void 0||w.add(u))}.bind(this));this.Ei.forEach(function(u){var v,w;u.parent!==this.Un&&((v=u.parent)===null||v===void 0||v.remove(u),(w=this.Un)===null||w===void 0||w.add(u))}.bind(this))};t.Gw=function(u){var v=this.F7(u.target);if(this.QO[v]){var w=Date.now()-this.FJa[v];if(w<60){var x={target:u.target};setTimeout(function(){t.Gw(x)},60-w)}else u=this.jA[v],u.pressed=!0,u.YP=Date.now(),this.XR.M.o(h.Du,{pointerState:u}),this.tna[v]=Date.now()}};t.PA=function(u){var v=this;u=this.F7(u.target); if(this.QO[u]){var w=this.jA[u];w.pressed=!1;this.Zma&&(this.cpa(u,"buttonB")||this.cpa(u,"pico"))?window.location.href=this.Zma:(this.XR.M.o(h.TB,{pointerState:w}),this.tna[u]+300>Date.now()&&(this.XR.Wq&&this.OW[u]&&this.OW[u].createAnchor().then(function(x){v.XR.Wq(x)}).catch(function(x){v.XR.vO(x)}),this.XR.M.o(h.Yf,{pointerState:w})))}};t.i9=function(u){var v,w;if(u.data.targetRayMode!="gaze"){var x=this.F7(u.target);this.Qlb(x);(v=this.Un)===null||v===void 0||v.add(this.controllers[x]);(w=this.Un)=== null||w===void 0||w.add(this.iJ[x]);this.QO[x]=!0;this.FJa[x]=Date.now();this.a7[x]=u.data.gamepad;this.sna[x]=u.data;this.jA[x].handedness=u.data.handedness;this.XR.M.o(h.fta)}};t.gpa=function(u){return u.profiles.some(function(v){return v.indexOf("hand")>=0})};t.l9=function(u){var v,w;u=this.F7(u.target);(v=this.Un)===null||v===void 0||v.remove(this.controllers[u]);(w=this.Un)===null||w===void 0||w.remove(this.iJ[u]);this.QO[u]=!1;this.a7[u]=null;this.sna[u]=null;this.XR.M.o(h.gta)};t.j9=function(u){var v= this.hw[this.ifb(u.target)];v.userData.gpa=this.gpa(u.target.motionController.xrInputSource);v.userData.pj=!0;v.userData.gNa=!1};t.Rlb=function(u){u=this.hw[u];this.Vlb();u.setEnvironmentMap(this.$na);this.laa?this.UNa(u):this.wQa(u);u.userData.gNa=!0};t.xnb=function(u){var v=this.hw[u];v.userData.pj&&(v.userData.gNa||this.Rlb(u),u=this.jA[u],v.visible=v.userData.gpa||u.hidden?!1:!0)};t.cpa=function(u,v){v=f.indexOf(v);u=this.a7[u];if(!u)return!1;u=u.buttons.length>v?u.buttons[v]:null;return!!u&& u.pressed};t.UNa=function(u){u&&u.traverse(function(v){if("isMesh"in v&&v.material){var w=v.material;if(!w.userData.Pt){var x=w.userData.cib;x||(x=w.clone(),w.userData.cib=x,x.userData.Pt=w,x.transparent||(x.transparent=!0,x.opacity=1,"map"in x&&x.map&&(x.map=this.rdb(x.map)),x.needsUpdate=!0));v.material=x}v.userData.lqa===void 0&&(v.userData.lqa=v.renderOrder);v.renderOrder=n.zWa}}.bind(this))};t.wQa=function(u){u&&u.traverse(function(v){if("isMesh"in v&&v.material){var w=v.material;w.userData.Pt&& (v.material=w.userData.Pt);v.userData.lqa==void 0&&(v.renderOrder=v.userData.lqa)}}.bind(this))};t.rdb=function(u){if(!u)return null;var v=document.createElement("canvas");v.width=u.image.width;v.height=u.image.height;var w=v.getContext("2d");w.drawImage(u.image,0,0);for(var x=w.getImageData(0,0,v.width,v.height),y=x.data,z=0;zthis.Yca;)this.pG-=this.Yca;this.iZa(this.pG/this.Yca);this.GM=a.b_;return!0};a.prototype.Lxa=function(m,h){this.Xk(this.Fxa*h+this.Jq,0,this.Qz,this.j5,0,2*Math.PI);this.Xk(this.Fxa*h,0,this.Qz,m,0,2*Math.PI)};a.prototype.n0a=function(m){this.Xk(this.q0-(this.Sm+this.Jq)*.5,this.Sm+this.Jq,this.j5,this.Qz,0,2*Math.PI);this.Xk(this.q0-this.Sm*.5,this.Sm,this.nZa,this.Qz,0,2*Math.PI);this.Xk(this.q0- this.Sm*.5,this.Sm,this.oZa,this.Qz,.5*Math.PI,(.5+m*2)*Math.PI)};a.prototype.i0a=function(m,h){this.Xk(this.Hwa-(this.Sm+this.Jq)*.5,this.Sm+this.Jq,this.j5,this.Qz,0,2*Math.PI);this.Xk(this.Hwa-this.Sm*.5,this.Sm,this.lZa,this.Qz,0,2*Math.PI);m=(.5+m*2)*Math.PI;for(h=(.5+h*2)*Math.PI;h1||f<0||f>1))))return{gTa:e.x+(d.x-e.x)*b+(k.x-e.x)*f,HTa:e.y+(d.y-e.y)*b+(k.y-e.y)*f,materialIndex:c.materialIndex}};m.Lya=function(k,e,b,c){var d=k.faces[e], f=g[0],l=g[1],p=g[2];f.copy(k.vertices[d.a]).applyMatrix4(b);l.copy(k.vertices[d.b]).applyMatrix4(b);p.copy(k.vertices[d.c]).applyMatrix4(b);b=l.x-f.x;var q=l.y-f.y,r=l.z-f.z;l=p.x-f.x;var t=p.y-f.y;p=p.z-f.z;var u=q*p-r*t,v=r*l-b*p,w=b*t-q*l,x=c.direction.x*u+c.direction.y*v+c.direction.z*w;if(x!=0&&(w=-(u*(c.origin.x-f.x)+v*(c.origin.y-f.y)+w*(c.origin.z-f.z))/x,!(w<=0))){u=c.origin.x+c.direction.x*w-f.x;v=c.origin.y+c.direction.y*w-f.y;c=c.origin.z+c.direction.z*w-f.z;if((f=t*b-l*q)!=0)b=(v*b- u*q)/f,q=(v*l-u*t)/-f;else if((f=p*b-l*r)!=0)b=(v*b-u*q)/f,q=(v*l-u*t)/-f;else if((f=p*q-t*r)!=0)b=(c*q-v*r)/f,q=(c*t-v*p)/-f;else return;if(!(q<0||q>1||b<0||b>1||q+b>1))return l=k.faceVertexUvs[0][e][0],t=k.faceVertexUvs[0][e][1],k=k.faceVertexUvs[0][e][2],{gTa:l.x+(t.x-l.x)*q+(k.x-l.x)*b,HTa:l.y+(t.y-l.y)*q+(k.y-l.y)*b,materialIndex:d.materialIndex}}};m.J2a=function(k,e,b){var c=Array.prototype.concat.apply([],k.userData.gjb.map(function(d){return m.eza(e,b,d,k.vertices,0,0,k.userData.AMa,k.userData.KTa).map(function(f){return f.materialIndex})})); return m.qza(c)};m.K2a=function(k){k=k.faces.map(function(e){return e.materialIndex});return m.qza(k)};m.qza=function(k){var e={};k.forEach(function(c){e[c]=!0});k=[];for(var b in e)k.push(b);return k};m.eza=function(k,e,b,c,d,f,l,p){var q=[];if(m.t$a(k,e,c[b[f][d][0].a],c[b[f+p-1][d][0].b],c[b[f+p-1][d+l-1][0].c],c[b[f][d+l-1][1].c]))if(l==1&&p==1)q.push(b[f][d][0]);else for(f=p>1?[f,f+Math.ceil(p*.5),f+p]:[f,f+p],d=l>1?[d,d+Math.ceil(l*.5),d+l]:[d,d+l],l=1;l2){for(k=0;k1&&c.x>1&&d.x>1||b.x<-1&&c.x<-1&&d.x<-1||b.y>1&&c.y>1&&d.y>1||b.y<-1&&c.y<-1&&d.y<-1))return!0}return!1};m.QJa=function(k,e,b,c,d,f,l,p,q){var r=k*h,t=-r*.5+Math.PI*.5,u=e*h,v=(Math.PI-u)*.5-b*h,w=m.$Va*.5,x=64/Math.PI,y=Math.max(2,Math.ceil(r/c*x));x=Math.max(2,Math.ceil(u/d*x));for(var z=c*y,A=d*x,D=this.TL(),F=0,C=[],B=0;B<=A;B++){for(var H=[],E=v+B*u/A, G=0;G<=z;G++){var N=-(t+G*r/z);D.vertices.push(new THREE.Vector3(-w*Math.cos(N)*Math.sin(E),+w*Math.cos(E),+w*Math.sin(N)*Math.sin(E)));H.push(F++)}C.push(H)}for(t=r=0;t=x&&this.XR.M.o(h.Yf,{pointerState:this.cb});this.rPa= w;(q=this.Df)===null||q===void 0||q.rK(this.We&&this.cb.pr,Math.min(1,w/x))}else(w=this.Df)===null||w===void 0||w.rK(this.cb.pr);this.cb.We||this.cb.In?this.GX=void 0:this.GX==void 0&&(q=this.XR.Al.WKa,q!==void 0&&(this.GX=v+q));v=(this.GX!==void 0?this.GX:Infinity)-v;(r=this.Df)===null||r===void 0||r.nf(this.cb.hidden?0:Math.max(.01,Math.min(1,v/500)));(t=this.Df)===null||t===void 0||t.cB(this.cb.In);(u=this.Df)===null||u===void 0||u.update()}};p.Gw=function(){this.cb.pressed=!0;this.cb.YP=Date.now(); this.XR.M.o(h.Du,{pointerState:this.cb})};p.PA=function(){this.cb.pressed=!1;this.XR.M.o(h.Du,{pointerState:this.cb});this.XR.M.o(h.Yf,{pointerState:this.cb})};p.cb=new n;p.enabled=!1;p.camera=null;p.Df=null;p.We=!1;p.qSa=0;p.rPa=0;p.GX=void 0;p.controller=null;p.AA=null;p.HX=null;return p}();var b=new e.Vector3,c=new e.Quaternion,d=new e.Vector3,f=new e.Matrix4,l=new e.Vector3(1,1,1);return a}); define("tdv/player/view/util/xr/pointer/XRPointer","require exports tdv/constants/EventName tdv/player/view/util/Device tdv/player/view/util/xr/pointer/PointerType tdv/player/view/util/xr/SessionMode tdv/player/view/util/xr/pointer/XRControllers tdv/player/view/util/xr/pointer/XRGazePointer".split(" "),function(a,m,h,n,g,k,e,b){return function(){function c(){}c.vlb=function(d){this.wqa=d;this.GZ()};c.initialize=function(){this.XR.M.bind(h.V,this.Ta.bind(this),this,!0);this.XR.M.bind(h.Zd,this.Kg.bind(this), this,!0);this.XR.M.bind(h.fta,this.pib.bind(this),this,!0);this.XR.M.bind(h.gta,this.qib.bind(this),this,!0)};c.Ta=function(){this.GZ()};c.Kg=function(){this.Wq!==this.XR.Wq&&(this.Wq=this.XR.Wq,this.GZ())};c.pib=function(){this.GZ()};c.qib=function(){this.GZ()};c.GZ=function(){var d=this.XR.isPresenting?this.XR.Wq&&n.ub()&&!n.kf()?g.RF:this.wqa===g.SF&&e.isConnected()?g.SF:this.wqa!==g.SF||this.XR.Em!==k.Np||n.kf()?g.RF:g.SF:null;this.pointerType!==d&&(this.pointerType=d,e.Ra(d===g.SF),b.Ra(d=== g.RF))};c.wqa=g.SF;c.pointerType=null;c.Wq=null;return c}()});define("tdv/player/view/util/xr/XRSettings",["require","exports"],function(){return function(){return function(){this.WKa=1E3;this.Q9="#ffffff";this.JPa=2;this.sqa="#007acc";this.S9="#ff6600";this.NPa=1200;this.SKa=0}}()});define("tdv/view/core/ZIndex",["require","exports"],function(){return{kUa:"2",Pua:"1",rWa:"auto",ZVa:"1",kua:"2",GVa:"auto",Faa:"2",eta:"3",nUa:"auto",zua:"5",kWa:"100",Gob:"101",TUa:999998,jpb:999999,gVa:1E6}}); define("tdv/view/util/Assets",["require","exports"],function(){return{mo:"data:image/png;base64,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", $Ua:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdAAAADzCAMAAAABzLceAAAAdVBMVEUAAAAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyAjHyBXyBg6AAAAJ3RSTlMAsx6tiweSVEKneZtMoGZ/E1kLlyhGM4MjhmIaLXM9Fjlebg9qT6R+WQwnAAAdy0lEQVR42uyc65aiMAyAU66CAgKCIBcFxPd/xD07QtOm3Zk9zJ79wfT75RWcfCQpEQcMBoPBYDD8Y+7FLfGO0dFzurR04f+RlfOtC5NwHE6X/7Fft5yfYV3X1y493GGvtInNBKJhUuIe1omIM4NEKT1d33j8uqv0REV23L3E/cYWiNyc+gMnhQ+m6/pAiVuoxc0X/ONc3w+MIGHFEUPsuoc94o6MEpVUOSN4IOEzCXtNtobJPEAgU3ecgoDHFuqljLCVE6ycmMgR3hRsIQAR32aE6xl2h+swDcRowQhBBiIzk2nWVPlks1POVJ6AXNlCuAjlPg6wctDut2cLOQg8mUpQwd4ImQ57kqsff5wtVESoXtzpkwz1mI5iu1BM3YdOqM90vDLYFyXTcwMEYxuENsZUE6xgsTRLSfHi7nrgpExL4H5HaPhnoQ3TM8K+uGIDGk5pjm0URKI1QIUtCad2gmfAo4Rb90bVhBuwlTyOr4zTbxaKnaDUCB2FV3mRVKb3xJkHycsAwK3ZigWIxRZqHtQERAZe83JxGeO+7yU+FlS1MnSuJGbcIBR5/EloFmBdniArI7wLe6Ilbe9C7pMSFmKuutoeW74tHF1Rwa1Qg5eSGtvxhecmofZy5hXrhOIfhu3AsvdZc/EIfy/gp0C3fvGxszraShWzhfYmPtsu8e9RqFIBHbJ8crZl6JwLBltVaE+bdIInRXvihK2ElOAekI4LwZul9ozgcljEimc71YOHXV1ce+SDeNuElk/sFDqhM91+jEfQnijYSvwWGtkL2jOMErulDwjmm1Ut5sWguTzsvnqM2NY/ydBLKRwyF1VoSrcf42v2REnP4bJpwQXOZHNfeAR0WqGVux4eWNZe+KZU7bosv3/s11poNmaoK7Tg6i+EDsz+YGcZemfIM/tq5RRleNsDXU1u4Sg0pvwdQky/QTd7ej2AsEFoAR5ORP5GaNacP2gm2BUOQ6ICKLQc4hEQnHXjpnLRcBQa8hM3cBOPJGS8f1voCQZczFkaoftsmV9NipwSNMRCZN2Idy2t0KWW2ndsZScUGktVGrGH7JtC57V2jD9cKIxMImk/iewgpnQBSIJCcZmLN2fN7D2LmEg0f1eoG/FT4Mb+wUIXGUjXgAwmZSG2y1i3jRYqfOmw1uYTCkWaiEnk/XeE+vzQvHwttBkEZtgbI5OxTyBhsZULiYwa+3bNvBvX7AEU2qlM4zGZq/UtoQ9eRu5fCH0wEdgdJ5vJhBkI9Nz0XQzhywVOjUKX2wlf5HaC0I4eSoRis9CUj2s9gHPwudBS/lZ8fzS07B7vusn70ZWmv5VmrdyuU6Och9UXhIYg00dMJt0sFAt/Y4QC9EcmEU2aJexVDmuvEXpZh2z2tC5yS1Uokg2kOvgbhQ54blvAZISC6wdMpAaOJ3fAiGQTFdout9ZgN0LYE1BoSN1ttwm94QtCcF+fC22DKAp2LhTgHNNvFmkcfblfhhrnFz4oPEDKv2c7YI5ruEgFP98mNMaPFgB8IRRc1013LxSg4q7E2JfE8aiGHnIulNtNoeM2DjTvP2ul7Xah/rqF6Ovz0PkHCAVINRf3zGQV5LMF+8zrtSS0W+qzw5vbgUaTkglJmm4S+hROsIa/EervU+jgrZT0Mr1G+aIrk89iWMmFHrlzHrt6mUcc9EKv+YKTyfbYuFkofhuQ/1ihCSNBCjEf6YLHoxdznNQxXsWN522Aj6hf0eDiNiPX/ISbhI7i1LlxfqzQjl5tVzIyfJ9opM/8gadeqLVcRIjjB43QI70wtlOEJnTHnwntxE9/ShShviJ0n19wd3RVW9EMvTA6vM2VJc704m/is9/giK/p1eAd6cDpqUyTQiqUfFZV6Hq+kqgZWtCPMOxzWh/TqduDXDUGhVJhr8q6CZO2whdgFuuEejhPJNPDWBkMHmnxKFWhoXiA2uos90ErT47v3BO4hHWIrcjlykkYn8q1u/dAeiSmP054iMND2qtvpDKc1CW3T76LbzRCyX0qtMHJ0G+j505YVe+JC+OElgvNUzkPrRV9M+270NjSawqGlFSoshEWW1NzCEgGyQO6sawKj2giQmmfpa90GOfahS8m7G9X5AzJPZvRRHEjLLBKoAe90JYhZ0lolGkvQXnhftE57pqSaoQm9PijQnsms88WSv9O9feClvqXV4y2H0vO4swmEUWhE+neKgfgFH/8aBxlqDjrhWIzoezu94Qh09KjcLr6zF4kXlQoeKhcFvo6w4rrMR3h15/tAYgyVLT+KDTT7nCHP+LWHrk+LKSaQufRlXBFlit0xVHy5LoLAXaYSkLnHiqF9kJxj/YQ9Td0bsgoxxJ2yMAoER63tSaQNU2WCxHqkwR4iM8jg81k7BQIfsBkvBZE+uD1QZDgO16cgDTIg8NEomFvv/ZdsJ5HqU7NGXAexQpWy0uxYsEHU7Hyfue9WHn3zHOxcMjkHQ+5YDNPG1A4z84LE6p7gIx7P7/J8B0CExAuc5JHgW0HRyd+7FTn8t9exsTxPCeMTxf4n1T9HI/jGM+9BX/g3B5OfjoXj8qFf0F2b5od/rMMg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDIZf7J3bmpowFIUTQJCTylEQFATp+z9ie9GvVnfIDquZXtT+l51xhuFvVnYOkP/85z//+c8W5qa+VckSLNW+Lv+ts6Q+jrkOouKb/A039g77f+4xSoAhC17IOmGG8/7Bn6ceBTqS/Vh2O/FnOMk5lWr8qf6HH+4x4iTfmNBncPPnU5ha3KK91IMAyfdHqSV99OKjub7fEGHELpSvHMjDyTrCY4I8W9XdU8njVeKDGeUbPfaxkghlCKdSbGM4uNKM4t86npGBa2pQw44FEcoTNeDbj3n8f/C9BF+Zufn7zb0QoUYccmFI6cttRIP4TGjmQomLCZWxYe5mcjPhh3alOclcPHGpUJ5K8Myt1PIhZ5ETDOUAHe8FFyozPm5jieE74gOpSXwiiYsLlRf2t8GEnzgo3aUkc/FG7UiAjD3gF2cUn8dE9ECJiwuVN9Ynzj/5Hq6NmdtjiYsLdU+ai8P4Z19NCmUu3qQdCXEWKzSu1OL+gOtHP29pbWvmputVjWO3q8vTdZX+YxnLbhg6p78FUyFXST9uBYZmLlgWU6Fx8CS7TOdYqomFklaucFwG8Uq3nJn2z5OXVXC4Rufz8frIqvokYHblPjhcj+djNN0T4Af91cx9aGQ4zL3cddU1lAr2G+aH3EOjzueDqymjOerM+/YW1v7hhrgolzZ9+0H3Wjw57V9pntfw+oX65dY5/Xjb3+pyEAROUbpJ/10j1BOUOVMoLVSCpJLH+l80XMFXQjeXlcwOo3EnttAFvlRRZB0pKskRtOFaU2mCNv51SUVUORYztyd3ixFKGUg6Kn+l8h77vdAxflN+iCnbz1JDEeQb3gLryjXcw+ntdpNA9KXyPM1bS7uRm7bRfdswefMgbYsVSrnSdqc63oMyce3ldJQK7mKdupUM6SKMGB5MwR0gQktPqigcO3XuLib3ChAqSJtI303lLjiVf5CUaD0iI2lAMQqeJZQcXrlZ6CJXGLDClU9cSGhOorHnvbg19j7zdC/WqEJpxnXm0raVJiQbhd7lCo9Nhc7FOHF9AQkVt9UzAchxNcQ5x8F0GT2/Wlu6HV1pxl2UG4QGco0GGorw6jNQqCj0qXjHJtppoLfrIk6+3MJeF7fSmMQxFkrcG9d5NfFvmrgOKjTQDlx2KTKapJ8OE01IpnIbCZPyhpxdQ6GRiHXXAgwuKQeiARVaKg4jerJH5nvoD59OYpWGdOOw0YsE4IVOmVzDzQWFH4xQiHhUKF2Ec7STfuG8/aCXttcVMaHcTsWEjV2hqQtsr2GKV/bbYKHC05Q8HdOB8cQyrYSGU2pteXWU1oTCi4L88PJilLi+wIVGmnsVMDUAzzjpQ8mXtpZuB/frhQK342CUue/aM4tCR13i1sIuD6nEj4JbX5blmBxadSR7q0lDSb1zdD16sX2hiWApSZgC32RJKB2E+sIutfL+3/uXlqd+MGoxHLC0SZ//TL9mH4VWhbqz4IkN6twLbca40PO60JEpRiwsGBLiakcL4YkN3VkZuOHdeeuyg/jPhIZpHKfhc33GTuYWRDoslF59vT6sC3fCKhdJuKh/Re8z88JXpaKT6uEcFxUaTlWT74TYzWVydU33SfV8IdWQxMWF0sn3Zr3xXoVVOpq2pI/WnOjZMGu2RS+UOB4kNFzy17YuY2EEX+deaM+GC+01A80UHLOgTyvHnVjnqmuikSSc8/UfBQj1BtKuemhKW8Zs4mZ/IjRbj/jOZVaKLDfQdN52vvBT/6BdqaNMm4V6ggOfW2jU87j2J+d7hesvHLK4DrznKqPFLRMOG4V+ywVOyjTAjCYuLrTXLJ/djP/TX9qzKW2w1nnftg5yvu1oN0XX6dX4jFDTa7NR5/pUAS7U19Rgi/EGkkJy0MPQq+0V13FlhFVun5IbXEYoELhg5ja0K8GF3nU7czPjeZFWclBx5+2D9GZlavxO3bAEjFCggYJzC3ciCxe61z5UeOH/LFzo7JI/kqdV73P1kPFyzAjFxt/A1HtBEhcWmkiCo7mO0abQG12G5dkrsyt3kTX4xFzoUcDw2xFo4qJC50kSzroytLYp9ED+lYVOLlfK++WegJcg6IRmAoZfTMlMXDl8ET9kKbPO+IUtlH6kaD0TXJWDBWtQEyuU3hX7mcvXuLzQXd4HEanyyPd9UR86PTdKQFB1D2xCa2SEkoTEKUnmMrMKnNAwenL0YpfZk/ilVe6DXCFOoRrNuJ0A8psIpRGOQyf3tiQufrsO+rLhDguldXQtUWj56YETWj4j1OKTrXeSueaJiwuNmU3YVytCMzKtgOMOdNuOeU16NRQa7wQIH6wO+YJFoQ1TbftWhCZ0XI/jKB7neEDNxr5Qo8FmQO8xLpSpeehqy8mG0JF2HTiNoi+8C0OWLxfKL3l6RLQ1oRU/fLrZENrQ1oFTUqHmo8bkq4XymxI6LnFxoTeDyfAJ3YxJp4QuHyZ0pc4NmBoXFpr2QkFG16vU3LJghaRVZ01mUWhIxJiRAUKt1rk0cRdLQqOcWYDEVx3O6ucpA3tC8xTc+fQAhFqdW6CJO1gRGldCzewyU4g83UpXXdkTuivAxcszIBQnVpQ/C5O4oNDOfBtPiSUN7fVHaYVekVvhDOwKhoXimcslLi70br7E5P3pVupCfYVegrAsJ+XTOUAI4kLxzOUSF+9DO2a6E+9Fk7UF9DwkWQ5zIb/DiAAQanduYWF6NFjokdnFQwpdY9LVzPbsLWjssUNvfECozcxtSY+WGAt10xfM91TdzPa7AluWHuzgER+018CnUKF45n6rv5HENRXq5fOTfI7Mu8YUeYSOXgb1VhHTJtQnk47aA6bmUaF45rqpOnGBHQud+ZtNAkmogb+AriwOyINt83f2zm47URgIwDMJIBRUQIlgQPwB3v8R9+yVzTbNZJTK9hy/655o+chEhmQGp9jHjQISgS8XWqCbEfxnKHUUICVLMNyRLfP1lP2ZP2Btjb5/76Cl66enQBK8XqhANz1DKPnrdWRMUVSPHhYUjhO6R+9VqNNUAoRO/434YqF0yrsBhlDyYiclMUUNssd8bp0tNlvvAhSyCKmjKifq1lhCaEFFXL5Q+p4m4hmzB4mJcD4STbn/8cM0pgqgtOBAJIsIFehCs4TSNbdyYrUxiRS4aG3R5UpsP97dGLn0xjCWsipM1hMuIJSIuQE8JTRMvB8wNbtLZT7Y34RSr8XT2hFvOzQwl9KKsy6oBBcSWjAiLlMojP5BKkM7nQIb+pL4vULfMwrxisBd9Sn1bnUZbhCXEiqI/W5soc4oFRGLl4WoaEMw0PFWfqPfa539EFYJK2odV2hBWqqaxykuIJSOuQ08KzS2TSH++c90e4nbWvda7FV2DQyblqtC16IZvsTdstohIpFVPqCN9dEYTY87xCWE0jE3e1oopOid1NYS3dCdlWr/jmpNUd9nVq6GNdpQnpXhgqFqdd/r/el4kIjLCq0Zte7YQk+Mu6TFJznxgvnUdJtLUWy6IPEtDR6jBwsJpWPuAfhC6UCalD/VzW4kcgU09H90/Q1CC7RTzSH0zGkKqyQ+zgq+QyfoCV0BJ/gFQgWjaiBbKAScbMV+mscn3fiQJhFgodz9/0IhYmwxYAttWa+v+whp+OGk5RuVNVi5pcigkUsILRiXiC0UGlbXirLDB0gUOOEXnZ/qOfpLrMQiM1SgjXwmoXtmCbRMIpeDBgodIIfAMWK5RU+61+36o2PuAWYSCltmVxax5S+fNOGADnht1y7eC6ZaRuiKiLgcofQf0t/+xKoaVoMf5xT9SE9zDCUrWEyoZmQV+EKh48+pLEU/ojN4E14kenAMfYZCgkDAckIhYERcvtCc31sGwixCmiAGFvpKKu0EeCE+0EEyAiwpdMWIuHyhMFiWFxp1ndDFdFXARlzWriGHGrzZdxLtTJcc7EKH77Lc6xB+Nub2bKEREFOUv4u9PG12aGd9jUt4iPA82J0mXcUcUo/NV6fy8GkYJU2O96AoDaIQZqUhswr0DGX9LOzO4Ieujh87abhsNlkdwhOE+9VgZOSTqCtUCQ/QZ59HksGQ9cYn5Qb9/TNuucEN5qWshUEJJKEw6Z32/6XWHAE30Z6rKsuqWNV5CbNQ6vb8d8jq1IrnLudNqDgbs1iJG7x58+bNmzd/2INjEwBhIACAkWglWoWAPIQX99/RDcRKLO4OAAAAAAAAAAAAAAA+FK33HE8ye4ul8HtXnsdapzfqNu8jCnd7Z7ruKAqEYcp939eoMRr1/i9x5ggGXKLmxJlx+vH90zkqSvioooC0dWIirYPP4GPlMtSzogjwG3T5X5VULMsyc9DFFpEAv8VX0KFspyfpPHSxjgXfYK+azPGC8peg6zgCfIcZoBUOF1T9cwTNgicaU+Zfmwdnwtc80BvOJmgSKoTwHvz3r52QZnlGbWi+1VMF+N8o+rWgFjB0NYf+W3yoZmnf6y/9rXlcvv45pxP0BrxEMHn80sMPObuFCnAM6qLrP6GgEp0CGSaAgj7j7IJacBQCWuLEgv5NqQP/aUc8t6A5HEeLFji3oCj5OPv5yQX14TCW+/rJBUX2p57l3IIqcCTbNRE9ES3jlI54rKCJ4lZylG0I2n7cPU4tqA9Hwj/XxbjZvq6nTTST+V5IKq/qWuvgv0O5bVt6s0xuW/k+FTT5OcrMlh4/f3MvoSTAxIa4JugD+Ax9wqkFjeBY3LXROn73pm+Fdiv15rxyuwbjnGb6VFB5Eon1CoYLa19+uCJoxLxNNzFutSVHIsJwOZU6y5/U9IPheCBb9c3gaIzVl8irpkUER6maxn2IiMUJq9qSgzVBxYfLlBOD/MmWzwPxg8xrfNrctmhsFRbQ977GumbMU5vFyqI5Trjy6HvBVFBj8qrdXkMF39MHlmJFUOU19EcpYEyS4byguwCeChrTBUJcLWGap7UGjSTuHRIDq6RhmD71HA4K0VtBDXOoyvB9Utas6XfYznbZyQ7agxdKn6wuVG/feRzPV5xE/UtBb6QZfbUvKa4IaoFOa5g2bqWpAMKTBBgRE2s86UTPIf9CbLm1BNARIy2g/qlGmmL1ExPAL6qbxjNJ2DgdoNMqtzABWhQvCOqiAkCq3ZsNAKlIshdxbBxhoEUeMCN10G4amFFtBV88ECyqNHumRQcI6vU6FpyInLzhgVsbQ00ohnoU+IlPGcAXf27Dv2pZ9LfG+BCTNiYpAO4q6CKx0JsFVjbYSwcqLlTWAOHrILhPHCnwYBQLgrbWkOE9a8ig8mSHswZUES1y+3JxYK5ouuoK9DbIklBgU1hl0OMbQZY8NNDQEYLmbFW4aC3KtQByUuTGTs5rPCL5ZFjg1Xp4VIbtgwOwmPR1LhHUZG5TQJfRz6pH9IIHs6zRLQjagS0yI5XMVgVHGNbeRGHq88skSaa44nBrcagklaLG5krOBB4jaPBrQSN6ZsaN7bSeBaQPSfQwvnWC/QpHKmA/B5/bYo9bsx2jIl+8BuZoxiaN9VQISf3dcRLfuaDgI4qGv21EOh6p1d7cpfKX60zLjyJBjj3RN3vFs9pixfJfC8rh/pMtC2oaBLlQhzEqmKTU16HBjqUlrdoiARTS4CmuOBPncKR4ze46uaMYsQCb2DBicBcFZatSku+kQ/0ywxQt46izeeTX89h8UfdpFvxeYON1xkGU7y2UbjgIlVKuDzO8OzSsOXEpPm7cGOHBNEMG2MTUWlwPcdQBDCwXM7ppo4jijuX1x+7SWRLURywpVtIdfHb2fquS+355vdm1LWpMsydZQ1jU4jO/FzReFDShigmGN90+E1LhhzQuQmdo/ImXuONeFgLv9c+XelMhvi/DFwTJC86HCgsqsPWxOHqF3I9nTxWUiUXMBa0nFY6ppfbKdrsTnGvfJwO9v73qhijh8LQbVnaKv8flhu8FRRHjfPRoOobOiaFZWm5wcA8tQO7vf+/7orSYDb8h89AV71X2yflHtXkzbWGRQSBXxsQZVP+5oNV0FUnBTyOmWi0LGlF7eS9ouiwocixzuVI3kPYLilKwEBLxzMfoa6yDSx5uMuimvCCoarJIz17Qx6ag1aSJhaERSjxIZbszM0roU4pdLleerty3w/qNiz9MkcYyKHNBh6M+W4gKihfP4g4w2ZagxcTvhyTgN0DvPS52eryHOICE+GQPzajHY7qLpnjdZE3AnAs6sSsL7CGylGlwtS8oggx9iL4VFFFB9GnW1mo4Y6IpwjjklhcFjehHGkoriEWMahzw5huCtkw0ww6GDgCHCmgRIj63JcUTgGxDUA3qpYlesbEda4MpjktYTKDm8BB9IIeFPuO+Lyl9NnF8HAwulVveGdfGw2O8KGjyugs9gwVlUXgA0G8bgmbjkqI6tLMAIRrWmgwosIsk9rIhaLsUvVTjqUSxJCgY4/3C6FXHALuMt8Sr08htRHNnNl1hlNnf651jJ778JB8gQsIOzQmd9SwJKqqjeUvMCCpG4/G4KzYERTbo4yjcGVSxksGvO9CVKgTDJaa4LqgD0C71nIKdzy0Kys7jBOrAUrghAeSP0vjpT7TCdoew1xaNycJm5DNbbQaeXOA9yySGOyOhnmGRu7mgzONdZn5JQ3stG1pQ3WOhiGPrbtBmzsC0QX41rvZq3nL8ZcW5oKgBPppd0gDIVE9+adoigV/SLgJ36g+FBMD5bDtUz9Feynh/xnEBeqTabcjHzmPWGPpNiSalUZVPdkdzLmp4mAvKOvxUSRJDAIwyXMQX9+zplWF/fy1aFZSM85Li9XuPBRvvC4zfatnZVzgUQGKpaM2CoKIE0OBUlV5QCQk+KABo/XYmZwFE9YKgoQFq++zjOoHdaRQ7Xl+fiXgqzClyD20jctVS4WR3/JW/Wz0M5/tAc0Hf5ttX2Oi9M4eHidPtsjmPDoAXtNgcR+QyE/yXo+UORQXgJdtOzdeaTDFelXvGfQJSO5Z42jaeDQC6bfvwY8DCbNKWgttHgYIWd5Ow5oafv0INS3SptkWKm2r/vCdhCsznJCwFrvseQTN1UdBEX/mtk9xpaBnnpgMQe6ZkvhnSGKaLEaWsfMAIFlar6ppJ1KgBptPoL2GUFPufpvy5o4HGNF2LUK7RqlAyfmtmGcCxGCsOOmXFCRAl8pd+xeKyx37K+gv/+4xjbFSQsX3PE9TXiMUT37ud5BEquTM56LE2h8ZwURjeg3LlN3BOoIRKxHnjYo9QCTx694XnlVEYRiUaY4KB1hHgSFQRrXCPASNMaiXKg6RqzdEI0Maq8FqAGr5TU2zpqtqpTCwtE0klGXnq3xDLL28+ENI7+lOIALzNS47ERetwD7lylQTNydumqN3H2Diyh1y1/e8wvdIpnzTN9HNU1HDdMBhOvaQWc8MqCitM0J+DvWNxNj3SQK/3LfxT0I2zLTg4jj/Ht50TC0y0TQtHoaGLfxJPhRvagQbH4F8O95/F2LsyK8ARqCW6+CcRTZB2mrIE38P/SdHkKcnVTtnrnL+3UfPS85/Gc577rbmA70gvf3syQhW+oEIXZ6Msfm+eAbo4IUHxOzkf6OKkcK4En+Fbl3Wem0SxUr3jeViH51VdqI0cXZyfLHiERiuv0RrhI+eulaGLi4uLi4uLi/8dfwG1HApczIfKrQAAAABJRU5ErkJggg==", Sba:"data:image/jpeg;base64,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rxJZ3nS21dfsU3oJ4wXgb8RvT67RXVVh+I9Mk1fRbuxt2EdyyB7Z/wC5PGQ8Lfg4FP8AD+rR67otlqyJ5X2qIM8Z6xyD5ZIz7owKn6UAbNFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/1v1QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuI0dl0fxTqfh8/JBqKnVrMdssQl2g/wB2QrJ/20rt64Hx/v03TrXxdbqTL4anF5IF6tZkeXdpgdf3RLgf3kWgDvqKjikjmjSWJg8bgMrDoQRkEfhUlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/1/1QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACo5Yo54ngmQPHIpRlPQqRgj8qkooA85+G8sllp174MumY3PhO4+wIWzl7MqJLKTJ6/uSqE/wB9G9K9Gry3xK3/AAjPjvw/4pXCWOtgaBqJ4ADuTJp8rHj7su+Ee8w9K9SoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//Q/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOZ8Y+HI/FnhjU/DzyG3a9gKwzLjdDOvzQzLkfejkCsvuKq+AvEcnirwpp+r3KLDf7Wt7+FTkQ3tsxhuYu33JUYfSuwrynSD/wi3xM1XQmyun+MITrNn94qt7bBIL2IfwrvTyZVUdT5hxwaAPVqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9H9UKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8u+LVhef8ACMp4p0eBrjV/B1wmtWkUahpJVtwRc26AlRme2aSJcnALA9q9RppAYFSMg9qAKWl6lY6zplnq+mTLcWV/BHcW8qEFXilUMjAjsQRV+vH/AIV48OS698MHAjXwrciTTE+UZ0i+3S2m1VAwkLCW2UY6QivYKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//S/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDxz4ib/C/irwp8R4mZbW3n/sLWAC237DqTqsMpVQQTDdCL5jwkbyHgZr2OsTxJoGneKvD+qeGtWj8yx1a1ltJ1/2JVKnHoRnj0rkPhPr2p614PgtPEDZ8QaBNJo+q8Bd11ZHyzMFBOFnTZMgz9xxQB6VRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/T/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArxyVY/BnxbiuQVi0z4iQCCQfKqjWNPiLRtgDJe4tFZSSeluoAr2OuA+Jvhy+8TeDr610ZhHrViY9R0qQlgFv7JhNb7tuDsZl2OO6MV6GgDv6K5vwf4ls/GPhfSPFFijRwatax3IjkBV4y4+aN1PIZGyrA9CMV0lABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//1P1QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPHvBYh8I+OPEfw/wALDZ6kz+JNHQbVBjuZMahEgByTFdHzWOAALhRXsNeQ/F2ObRtM074kWCM914Iuft06pnMumSDy9QjwqszYhPnKgHMkSV6zBNFcQx3EDiSKVQ6MvRlYZBH1FAEtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//V/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAimhinheCZBJFIpR0IyGUjBBH0ryf4RtNoumaj8OL12a48E3P2G2Z85l0yQeZp8mWZmbbCfJZj954mr12vGvHLL4P8c+GfiCu2Kx1B08Na0SVUeVdyf8S+ZvlJJiuiIlGQALhj2oA9lopKWgAooooAKKKKACiiigAooooAKKKKACiiigD//W/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKwPFPh2x8W+HNU8M6juFrqtrJbOyMUdN64Doy4KspwykYIIBFb9FAHnvww8Qanr/hC1/t/H9v6U8ml6sFUoPttm3lSuqnJCS4Esf+wymvQq8iZI/BvxUE4xFpvxCjEbj5VUavYRfI3AyWuLRdpyf+XdR3r1ygBaKKKACiiigAooooAKKKKACiiigAooooA//9f9UKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo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", yua:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUsAAAFLCAMAAABoaV6sAAADAFBMVEUAAAAJCQkDAwMDAwMLCwsFBQXb29qgoKDg4ODy8vJRUVHBwcH19fWXl5fZ2djW1tX5+fny8vLY2Njp6el5eXnV1dSwsK/v7+/Ly8vu7u6goKDu7u7ExMO1tbTOzs10dHO6urnJycnAwL/Z2djQ0dDIyMja2tktnuotmez09PQso+koYMf8/Pwule3v7+8sp+cvke/6UFPOFR4nZcWsrKwrr+Urq+br7OwqtOMvi/EnasQncMfn6Ocoe8zj4+MqueLDw8QndckoeMongMwnbMYog8/d3dwojtModM3g4OAohtApktUomNUni9ApndgpsOAofNApptspq94qqOEocMssmOUqmdowh/EpcdEpodkpd9Eqf9cqitgqj9kro+MqdNYpidQpldkrnuMretgse90rbdUpbMwqa9Epf9MoZ8krmd8qhtsqg9kqnd4qot4tlegrkt8theUqZ88skeQrjd0pZMwtf+QugOkteOIsjeIphdUshuAsgd4ti+YrcNktkOgsdN4uiesqetQsdtru8vUujusvgu7Hx8jR0tMog9MveufMzc0snecrgdsWQG8sieEolNEqktvg6/UrleHM4fXn7/UobMnX5/W7v8Z3uPIqitwaS4AuhenA3PRcqfCcyvMgd6ao0PSEvvJPp+9Hm++11fORxfNts/FskMk5mO8caI9lr/Cwucijs8sklcOEn8mZq8hTne8ecZo2bsgwaMcbXIQ7n+1EpO5GeMo/cshhicmvv9SaueSpwuNnldXGzNMkhMEnoM4/gdl1pOZlnOfM1d9Vg8shYaq1yeNNfMdAhuV4l8kdUpTe5OrS3OeOpcpAju62trcghq3gMDY4d9IkY7gijrcifLRUkOhKjdmBrd0fWp+8xdKJsejAzd7E0+aTsNZ5oNTwVlrDHid8hZ4wWX1bjtVCpdSpqquINUgldb2sJTOipaqIlaFefZfMZXNrjLRLaoo1aI1kRl6an6W5b3s+UnLdWmPlu7ybdpBVmr+yhYlYU3CLmraxbYKtSmBvYR20AAAAJnRSTlMADRUdLSTtHFmoOi7dUODF681AbUnWbL+wlWSAmnm8NIajjKeLetZ4Pp0AAF5LSURBVHja7JpLbuJAEIbDChBeGHuBEAdIWspIs+UkuVCf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", B_:"data:image/png;base64,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", iWa:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAADcCAMAAADA8VqlAAAAM1BMVEUAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBprCkqAAAAEHRSTlMAQL8QgO/fn89gMHAgUI+vkrzZGQAAB8pJREFUeNrtXduW2yAM5H63zf9/bdukjdYBjI0t4KHz1Obsnp0INJKQjMl//MeM4I7MDaM4mRk6xo1MDB9/Q5BpYeMLlEwKJ98E5aTbMMj4F4bMCG7iByuZEFv8gYVMBx1/Qk6n1zbuYSZzFBq/oclMcDIm8GQecBUzmGgbmpjDPGmDjnkwMgdElt08aYPNcpsnbXDxADKQ0Qgyy2yatIHnHXietIHFGixpALLAzJM2OPZBBMyZNnzb7SUw9IUpCa5kNsybKGQJSjIb6JxpAoDOmCUcEKT5sLgIT8kApASzP8Le23OMdWktReB6rHLTSkXHzeDYQisF3fZmtrJRMk6PfWT5hL/wMmUgvRF2BJMlVFDkcTmmqt/VmxkDglkt/ERPHMYR/dNoHGzcE4epjNodyJkh5d6RE/O9dushsVAdODHda7cY4CVQPYGIFBnRIekOO4jEsKYgSaQ39IHKsK9lH+LGoqQy4LZD3RgIQrOuaDE24vyVHqTT33tONOhMV4J2hBtzIGiPCIIu9gYQpDWCfIjOmDJBCZV88kE/MCBY00HCRnTzBASSKsF1hBv7CwQ9qGU/0DLB7du16YikmmcJgjCPd+M6QYAaEY3ZBYLbCC9ZswQhtA33Ep8czJRTaNr/kBPcmJUJAj6VgVvZq1clmUCPLUWCLlUV9laeRe0KfkvwAIWdylNPN6zmW9JTQbQiDM4cE4TDEGU6d878IcFQkHVmX1ZznqF3WCgQrARjyM7Uj48Dw55nuUJwzZ21euR5FlYiuKWba8mWLxZ38EskBMtlHIcKNWEoN+EpRqhe4Hy1SpCYUlgEmKfFmycp/0HoXWE1088Bag2Pb0JajXVgbn1ijEnz5zbhBYK8FHZCOlVgn1VCm/+beUu5oq/JQP329KyfLLQ6cwRFSfS4gpNkLuSjzSl9QDBkzc3Kw1bqTXd9kqEFcTsOJRB4eCEvgr1C5XOrzMEodYKsGDbsPrMM5rkmOUs8s9x5EOXsRe5HM7iE/92Er8Y6gIOdlucOy+rk26CO0ps0Q5mgLtgpHPQmA3xxgNKUtMNUlDpNwe1Bdi4KU2ys3Y6+SNAUUnB9kHfI4qC2vbPGPu/dheFNVpL8PQ/21PAVOw4lqd7Jo9xSJSYU3N4rDSwQ/KLiCu0pkoWQ0WhP03alg73RBC6PQ0kqyPRa0cg+v+hb4zHLe6UvqMly+pvDvqSy3VMoEKw2l9SVbM/+HK2zN8ZPFasoNcCLJVyoef6YzXgOdNseFxDgek83sSkNez/f2qQQ/o15bL41O0ruayEcm3PVOoyfc0uMgSgKi3wfDONcXzz2xAUI4fOLbEgz8Lvsy63Epkfjgd1UB/RpHnrThPjTPOzeF8ef5qE3HRl/msc8VdQzpB6DfS3NtDrzt3oR8+oMIeKG0mBP84A+2Hl1hhDdrDT4+QwoTZg0n3lB3anjewz/+nv9e/zhXy4fcZNlt5cndBOHN0jhXm4ya7rwLyCv06YLjW5C/eKQyxIAvxxN3PvoTwcCEMk6POsm20XHf4OFshsPjCY+AgSyG0M08dfCmmHQqiy58ZCkC+IutwoY4rkxJEvuemLgX5vRF914gBQCQWhiSY7pxlCbyIsEIQwJVDcGKVxacj/xMiGmG8MG0i1hF5Kh1I0HrDEQ3Km8QnVjqD+XiwRBASimG4Mh9PnAo/Y7csN0YwilsumsbXntPVQ3hjVuKD8gUKZuPGiNoYCDgTGTbUaMWGPw1r2bBPwZ/rpWp08QA2OPcQaXavV60tQqyQ8Z4hlc/eHvdIo7rQs5+kMGvJpzgdPazEf4T+6aeiQAc6W1P7bOwFaqq6DJkbbIOgO2qedaPveh5LgE4XH/uhq5bF1ocBMuCCZ1V8q7dtQIp5ipwrWdlnODfKUeWCe0tQ2dxCUIQmPbCBKHQLAeJK4MeNjqLbf4m/A4p/K4V0rBJmzWIo1KEDZhe4FqotSOYGKtp1z24M7s4AgylnpPkN9skOL3BPW4a8fPlRWhcWSp3wjR2i53fVpuXLUOH/bqnNPO95Ndf4BeD7wJWJ7501y2jTr0G4BZWoJa10E71vUSuobrbILsc+1N+0CvH3ZV8dm1M2MiHmRc04rhenZz6QY/6TrCwEf5iTp7FuwHxRN/ever7hdYwdL59iFdfKynDcPG5F3htHvSQa8qMadXTo9Z5PW0XbhsYdhzko02HHfgF5/pkRHr7ClA8CxDeahLQwkSK6s3Bo0lSJyJL5hi2BtKEO4iwLdi++VtjjVQ7Dv3Tj8UBbJHg1C3UpQ6EERAqGunGNlCMphgLNjp5KobBOg7eWhY4dWFNtmNUzzBwb2Ci4P3HKd52o7q+AHzgbww1/OK3BvgqPTynCHDYydrblURoLR1jwQRA7XkUxwBRt/ek/rpAw0nTNxhs/f4IZS6fFl3JNVygx/WkRVfBJNgRX6HnyNYCFarGy9Z4Qz44WFhrQydAX6ooKrpXU9eAj9k8IZ7rALDvIc0ZXjVF4XsW92GayZcVPc3bK0X4illsX158Z8PsSo2mw9/VhGyXxZIX4i60nALJQ4lveEqSRO3WxxBD6AOVNd5Fj/QjgzBkv/rYZdUROU5GQX9bwGZ+AvN9qmjXMcYDxgeQenxL4u3ssSO+TlevAmuCmDaz/DeZoCji/gLP8t7Xv/jP87hF6zG3Qlg7TIVAAAAAElFTkSuQmCC", Paa:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAF+CAMAAADDZlLkAAAAz1BMVEX///8MDAwTExP29vYWFhb7+/siIiLm5uYnJyceHh7p6ek5OTlmZmYaGhra2tpRUVGdnZ00NDTx8fHi4uI9PT23t7d6enosLCzf39+CgoKlpaXW1tbt7e1CQkJGRkbFxcWhoaF2dnZxcXFMTEzJycnMzMyvr68wMDBcXFy/v7+zs7PR0dFra2u7u7uMjIx9fX2VlZVYWFjBwcGSkpKsrKyPj4+Hh4dgYGDPz89UVFQqKiqpqalubm5KSkqZmZnz8/NiYmLv7+/T09OJiYmFhYX9Q91KAAAtFElEQVR42uzay07CUBCA4ZlWChWEyiWgICZNERMDIgXlYmJ5/5cypQgs3AAbmvm/7dn+Z3ImOQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdm3CJKmMJ3FcFVhU9DTzKLCIAIwjAOMIwDgCMK7ha2YtsOhNdyKBRQvdGQgsWjABbCMA4wjAOAIwjgCMYw00LmINtK2lmZuOwCICMI4AjCMA4wjgYu5GcowALrW+byfz6EdyigAuE9V0q/QxHvUkh0Z/AfAt/AyNb0cPvP5nK3f3aK0ZvyE4kTv3NVX2dM9/Cl86BcmPWDPDuuA0s7Km+lMpjsa1ku45zUrQdSUfJpppE8BpBktNrYKCbLnTOFnpQbsSP+dhEhDAWYqhs73r7z05Uq8GX2VH90rL+fRWrlugmWEear0WhYmnqdfuP2fVWdi8O4qg/9C6uvfVL3t3tp0oEIQBuFpAVFARFBfccEHFFXHXmEwy7/9ME2DMNKJZXGmH72LuJueEFNZPdTcy2lprOmTkWHXZZ9FWJKV73Y3uNP90H47JZfKlKPpAl3pryU+XlTGQBx1uOSIdCHxi4TT/yIiBT4mZmRFG/3AbYeGbj9kEjY4q+alUfScmO81fjcE3/GpMjRb6EMrORxV/zAyH6JjQKwSOYbYRZFkq8G2iUp1z2A23qg8qLNzbrwg6QoXAMZm00/w1+CllInNYMozWZZ1l4J4EdFiE6KWtq3ptI0vYpOAkkjasu5JhrZBg4F4YDrkFh4Q/VxzSdofcsGf9lE7eiGBFkNoUmgzchY4OeYLAQcIKWZJNOFusOVq2Qmgn1DJGzRjcXh0dsIDAAR2n+ac0uBBqUe2laKzzJvOdWxdBM4Q8ZAh4KbyT3KbPcFGJgpzG/gjxpKzdNBny3gQYLAh4iXknvvM5uDyG1VU8GcbT8kSBG5HoIAF+reA0//oYrobtzJJZPBny1S4FNzBEbmUI7BmXkaW1hisTG4KRxfpByjAXRbgyMYJwoS4EXHJOl4zPRLiJhVDDV5PDxixz3SIQghngJ55nTnPmE3A7VG5dK2O9OfqU1yS4ForDEyCRm1qvZ5JCllIHbk7KqE/4PkNOvVYy1IMEeESzjiyrKtwJOzaTEWxcxM0FRYSLqwczwEOknn3p6WER7omqjHg8GWbn04Z44UIPBQnQgzKd5t/2w8o49TrquZPh4KLJkA8S4D4tvdvx5ReUpPXKcawISvlMAi4jRwcJ0KWZdC7IFnxG6s/KWDKk05tJgoLz5YMEiJFUZ8eXfP89O4fE+tMllgxRmt8q1CWmQXUIWMQsshh+XhSlGlM+hY3vIi9mh4IzbIME+IEpWbeVDn73rFR51wmU5KDDnr43KEiAroZYATIktFopiidD+cSzyZNwkAB3xgihKZBD0t/w1eRQqVfNUfBDTNAAPlARhFqEXQ+xM2vjZ5NTPaEZnO04Zy4S4jukXUCxac5dybC9HQe7e06h7Q539/1+rNeDUtY8fvhg9fTbBydQiKOlkSP8siYwGyUmw1IcX02WNck3JxLJwAgp9Fd8XiXxFmL1fDKKzwxrVQUC3/c8aGGHuAQiX59VrOQNfJ9hli80SAs2d1RFGLo0JfMG+tXctlvYuKi1NBvEJZt7oGQa7SkNCX2yYrqFDRd3nUAhL97eWMWOgTSN3Di5Q2qayq2HZeyTgK4P1757a41vUHn7UiWV2NaII7esmiHzc+BdLCMnI/gJFHXySmpBX9Nryb5HTLBI63ZkvwZedHI/QWOV6dJ1AuWluvDHC0t8Y0qjd08K7BR1fr8GIu0quTUAVKP6kqXxZDgIkuGO8mTPUWcM4KiMmkJu8faIuJcC4xShhh9LjS5nBH+uXY5g9/x0BTyoippGbnRy5Ic9oydjchMV32cYLw81oov6bOwSWWTm2PNU3t6C4R4Q+Hnr0DdInWEZT4bcRvtvk6FgD0+5MXyiOyrRyC09rBD7YOAojrcGvs+Qexl1/7+FRHaOLBsRvpAQliHklpL7hNcAUM1tL4X9Xqv2oPJfFcFkZQdiHb4jJ7TjyC2i6sRfLyohbFzJMDnQSVwKO4FYQxa+CN/Frueeh8P5A1wuJqfv7zPUiVwL+xE9a/8BNfiRmM6vkFvUKJBfAwBsf1B3ff1Fr5Agvcd9glKRxZBO+K+63PI8HJI9INgR+2Y7jCdD3lw8ZhGM0/ZHXQFOQ429A4KySebq8T5qYfKca5+h2Sc+6eyh8siSzMHpmEW+tD8g4N4e5MvYqUShl8bfZ1h/6z/QQmLDLnB6BOd6Nb0DApX0AcGHREYuub8YTSfqi9G+WPmpd+ESEkKSRm6pGrmrx/tYfZCM4vW9EUhPht26fftP4WIk74BgVdMep22KlUE76zqBQnLiHdHYys/FsNqBAcH6ER4O/xK7oxfuAd4tnEsiS56Bi4tleivkFl5WCb5VPJiutuGiRBdAwc40XAWug8p4BgShpZl4iOC0E6uRWwA5A1nUZ7gepjNM79dA2WzCXcSkxrvJpNJoNKUiXEQjS2wBTOwundXhypjFsLxfA9ygAbdDKZmRanCraDz0DiHr32iY47cdFs40phEKEVkARR5Zar/gFhTvgIBTGyJcX6zyVm+F0BHRNC80WDiZEkfod5bEAnBWfrITuJmEUI8jt9bmyjNVtmpE0JeiJX5UKTLwc8of6s5zO3EkiMJ1WxIoIjJIIHLOYIKNAYed93+m9dJrLxlsNaz5/viccZKnr1SlW13VKvAsBe5PALzwi1mQbkow3JCxjdoZX00DiVcLF2N5nUE3+E1Np4AC6fcngJEBAIEC3R69ttdiEGhcwyCQwnFsY0XKjQ9eG3bO0HAQzZgNuhe/pYTmwANR8N4EoPTxD40Y/T/o3U5qVwO2aIPAreM/5LrtjB9j0uc8oaRn4ThyxP7TymTpHNkI4ND9CSBvAIC1Ij+INwhkuxciUVTLGxXJ5DijfAUh1zRwEfPyYlXRlRM6jgMO3Z8AeMtf+f8v1XedPYNgOamKsrc5VmNrqkGNJwUILE1n5bqDjmfhJHL8dfrclo6v/90JIMMrP79jApxU3TcI4r08+eRlBs4yHNxKCiIAEDFX7bevaKhXVp2yipOwgNcZJHa2iEsesKC7EwAv/HptEsDLy1s6nX6sVCoj1x1/fMik09mX7xsEOXlve7mvo+X1HNa8VvYPPpmXRhLtob/XinZdxknY3Hvt1R7TevSDdNsGTLo3AYTKAMAciX6GlA2G8rXCxFk0hrlcPZWSt4cHyPK87pUbi2kh8R58Ub6xg2DfIGhm6Wek61jTp02CDQCGGz3pFvYadQtnkAOpD2QAJt2bAHjPT7zy/fOb8rWwU2rkjADDQRhje/+Uys36q0RGutQg0LBN4GcGQSiCNX9ok2YKqLvKJacUPSziFi7ApDsTQKzBKz8SXUo203V7C9vQ5J17IGKUbdPs//VX4dntViuVtq7rHx+6rttzzEY5Ppc3vtjrTFqXyCD7PAvsGQTjIH2PRxVrHmiTAgMWOl2Iks0POksVh0i5vekHq1aI7kwArra+/i5dQDQ0CidtQ91sj0kZuddkz221MzFdUs78B8YyzXB/5tWt/x4Hyed29LxBYPo0CGpcemxFm7iA7B6RXfaYBay3x8XlXhFhQZ/clwCC/1Z+sueWPp3oveZSDOBYqmHOzFq3HYvS91FilVrPjH8GjpTtJM4dCi01+6k9g+AhRJfxwPj6t2iTJmCNaJ+q8xSfz+dGblgM5w9fmNRO9IYpC1+U0tF7FEBrvl6AxOmTuQrJ/+amyKnyouc2QxIlDMP3abAF5/PkN5ZLnusaUpqOgR3KvUeFzvFiYk2gub0+6vb6B9vddlChjL3T4r4oHPOA04nJIi6DM5+F7k0A2Q5/LQoe39r03C9r7HNqUiNZyOvSxqmqPSFHO7ifx4Nb3jTxdsYg+HPAIKjQSd7jWJPa+bpXYPz1lyaKEYuBWblwAJDLHWcyKZnlCAP3gJNHB4RIHvDKHQO1dl8CaNYBQDsWBCsPn4c1s9Sy6Lb3noUeLF1UJMr3bJ5cqU9uiE6SmSz3DYKqcsbiAOIx2qICdIijFCLYwEj/957T7DUin0nHwQsrAn0iPfNsAii93I8ApOTxyk+20rPnfO1V22llDtsveaBE4sjmH8oBHg2mGeWcQaBhG2PRjNIB2ktwnnb/iBmsIK3pGgDU2SqR7/YBxkzaQqkW+E5mVn5I0w4uUCZOQgUio3sRAC/8agXaIzR4VcH97mLh5PjPBuQMCSVbS/Knbm76rpzZ0THb1UCqtDeHIlRk4JSU3V+lfmbuUwCey781CdlVTdpD6vL5N6zhbgWpjAxV/7qmIcB6dyEA6c/hyo+UcOKM34XF8bnEnDIMQ/GXVp3yUWTeIHRGLe5M3dNAYWMfV6Uog8MeaJcq0Fpnog3AGii0JmihRJZJh1CqDu+TLTXpk6gBtnnPDzTAln6/ADKfwx539+uneLTsJGJ0CcUrHSAV6nkMgGXXpDMa2DcIWKCeG3aSyWQnzgCOlqA9XLAYEUVzQDyzcRpGW5HN40lxkteNOrU0zyN3naUEYPx+AfC0aPm+lYw3TRU812nTpegaPLoO74M4ANT7mbP958kUTrM8JOcC5ChRzABmUfrEQUBRUmU6jtI1Nd7j3s+/PQM7YnGA/G8PAXzYI7aGPVb5Ngx1Mda/J6VrHqma788BYJhQ6DTKiAfow7D+we8P/yOAbBwobnzahKfQOX/DZq88Q54bUPXdoNj47TnAild+NiLXW3jJAKidmvSDg0TrEl0N6fmJAfDC0vlmrGkOB/GOBKkxmE7lnRV6hU30JJ/8dTE2JCk/5YVKZhSfY5sCYpnfLYAg7/nZuCkySRWAPKxl6Qe4QI+uSaaoApj3Lri60GSvUCN7YYUOUwVGU6BDmyQRkaiP0OnEh0sqmOBZBjRvOnr7/Jmd3/0aWNCArZfV/JABMH7cxczdoKuSHRgA1EskQNn3pjstDYdeJJIbvv51aoBXNoA4Q3lbHw+wotRF+OQDIL4hT5e3g2P+tMooZMOK/WYBBBv8lfgr6WnZAJiZ8GMnAiW6Nq0luAREYgMIBGk3ic/Qi5Y7aX7kd6pUE97XgvgQcH6zE1hbizXytdyjMgCtmCFfDLkbdF24VOcDicRRABDedzZcoiS6J2Je59DQg89JWN60/VsF8NYBAFb8+lsbANSpTj55Z2jQDeh6AIyawNBiYa7QNlIKRaKgrLXpMG15/nZsjCiPBrIjzgfQ8+6f0gd/XP9zaau8pKE+jEeZYJSifQZof+nknyIwolvQigOwqyQIyYOcpx2esORxzQ4fqgHHAqieKm/3cgyIJHwLQMmGRoOOp+KL+ZOr+9O7hy+s1DIFsGKM/MPdIIVugVJIAawvkRhiGuK7F+5A04mo+sQAo7hbX8qrqNFp2jaATvBnApCiejVRcDpPcRX7qMU0+aAtA4jkVIDz9EiCmABjug3ZvgwYCXEXPqG9LLDK7+ZEMgLIW/0jA8gtOktYBdTC5QJ4C7bzreeHaamxjAQYdlE/YOBof/yI/y8AnvQWe2wN+jPbJWFI3A26DY82gEWWRKAYkKu0RZAh/PXp0MpmQMThLQPNHCKPF2+zszNcAA5tI0l6LFatdlvjyaS4eCob84AmsyMjCmaTUeztg1j3L5t/TdxPBIzjSq6NCzzQzSgEgHlLjJoYIjt9PREUtxYzUUoBgaE7Mb7RN9GKrJNBKQCYj4/VWm086fVKprnMxesRVdNwElmNLDu9WjW4UyDjexLC9GMqDGDvdAU8HjlvRNDkXqYAHoDhrjvwtCeT1dqGcIJ0MVGHAUZBxcUw658q5mIaruUz+pH4x7s3HfoxDoCcQuJp3vh9d6wCXoYEYO76WEUEooeGF+QV+haPZZyBb6m3zZIzKdSa7ZiknP+hHgAU6adIBoABXYEnyCG6IWkbsGrkH2m5o4A8UCQhhAPb3XFqPeXlco2G6Tirwng0SgezUembspJM+FrCCnAd3+6dYUY3pccAh/yTNQBv8xW7IazCHVwAYKVuLV+tZtL/NI+SfxwAqPy+ILAARnRTmnNgGCXf6PH1K3Z1w75jLVHXaADaXwqJpASgQz9FigCYkHiCFhfWDUnngHiafJPtGQBQLki0psnEKUDqyUB9TCIxgIDkJ12DnCbxTIEa3RbFBFJtIXNpGjKAef+Rp5gMWJEYeJ9RQ2TY/QtAy5dzD5vEE50jpdCNmQKamMiTdiIAmL3uPE/IfBu5GFwVkHsSiaLN4CfhkuoAwiQeFxjQrQlD2ONaSQxlAKnkO1GmDuQyJAi9yIBIS6DrAi1LvoKAlSbxeAjodGvGjPvzQghN6wDQGJPU4E0zgsgvAZhpEsMAwJh+XxDoAn26OQkLLEGikGo2A5CahFYaMORLJsoU0B4UMTqVAdtXtL5SEHji6eWNyVtgIxJHqJ8CYJnJOWDxoCbMFIg3SQRlwAr6uWmw/QPu1w1a02XQHkkgUs2WAQQAIJcnUYw8UXEgDMBXfOoAaJB4OmB5uj1jhnmMhJJxUuCwUkyYsB40MXEgJgM58kFWBfBMwglaWCp0e8JA/IXEIhVscLQHiQSRngHw/MeBoV8zJ8F3RAvH4RbFzXFwjeDzXkxhTd0VJuuEAaBzZvHOCs6FX6vKvE4QeFERUegkb+2u61ZiCgnFvM5Wl+h4yfAPRuGFxKBMNMCanFzjsh06u6EZHvlBV3GVts7CGTeowg+MA4svhJ4ZKsWBBF2DajHAnwIDURJImwAizycj2vS84JEhP4wBqFkSjWJAzZ6b1sawJuWkSRghC2qQxMN7Z7kEVqIkO8oBsCt0GD2AepROU/O/u28GwCThJIDkqdDFzHEmlq6GZ3MAVlLcmtUAm65FtcTPURtESQzhFMA6oWN3d+JsbAoAhkJ+0AO4SsZmg6WPt2PWH7/uq9YTgMCDQoIoASu6Gnoht5aAqDeCqGMBcjF20FA1L/prUSX/QUAn0Twed4NaO4rLNwB4VRKDZFx5W9poEQDfgSCEkMkAufS+t2PjopJKU8CZlMPrBAHz6I6l1d7e4W4ckFckhgpDma5KDQDUMYmB3wDsNbT7Rlu4rBfDdzNG2sI1UueYdWwdwnsCIKnHAFNQZO0DYboiigHN5O31gqi+rp8Csa325NzFJb28/wo+UlESzfRYbtEFmrRLPgIYIRJCBFqQrkcRWFFNBepNEkVoIQOa87UK3qWdGxUIGMzwBGBBonlRjySounYobGVngDoS1Z4wo6uRZ3haH6/AhD4432cAUgXl0wL4c/HjCGrUv3cPdEk0hWOP4iFU6bCRa7VE5R9NuhJvKWgxft+IzZ34oI7ciIiCGiLS5fY3EgKW6hp9ncfcoMSRN7UCE2RLBjUYCl2H0md2FvqbunNdS5WLovAcICqCoqJpZabiMQ/pLk0tO+77v6bv2fCImqDAmlrf+2v/2JbBhLHWPIwVB5JvxIV7bpVuhgrgOYABiWIJK4nPjb736xrLe35AYqpOvp6sMbEILNxrxm6QKk9VQNUlDELN+qofDBnUU0x0WIiZnlfRL9yGMaYIKOztNLgFIAsMkvyjkOUXAIjnQw224pmlwVBjF4GW5KOSC0hN8qIYgzTkWQfW6QS8rAXA/CfTT9CIE7dCIL1fU1CuJZY17wqn6OXUIc19cg8d2e8dkG6SOMZJ8oFDYOKmz4b0AGlcJnZqSSD2JVNAqkAsxdJiiiYxU07D8Ct16r4im2S4qNcS3ombSnKdn23bK68MANXIskdaqg5AG4ZoDbxi6TL333vw9wZ1gazvlkTLs7x8rokZHWiv+yhsm7hZDv+wLj8VYqVZtfcDgVsDuySMcnMKEfjwywZVlpB6vkHTZekM0ImXtiu2DXcko3fp2K4VLv/wxYDrMZUNKHdQMzyzZtKcmMn6VWdbMd/WjSdgRsLU7VcAswAknLu+HaJK/2uFf5R4L56pAzDkgLn8AYkzAvid/pScX6ayBhRk78+wNHaZ3K8AHXhel2pV89vpVVYaqBIvRS1YrjElIVdnmjbEJTFz5/sz//oGuBnnKOe88L4C2sD7gXJjuc5fhJQXwbpbancKcfAZA2LsImAhbfo+Uu++UWMpJMh1jDO7mUhimVqLl9eXUzpQy8TLRwmxPp2PGYACtwi0/EuNhm8Cus6RyHnnnHzrurJ04/Nm6Um4kYmXphTghnAK9ik8JHXAJ4plyzcCVsAjQ+jNiIkrV44ffC/RJTAgZkbHCsPsAce/fS7HYBzo42/4TSzEPsXVpyQTC6aKZX6dMfN9Jg1gRsxYkM4pAvcAquw/1H9Rb2qALnumxCVobyRGm82+egLcue3OTfKhkgNqxEsmFmVrJuYh+UC8fMT9y/OVFbCQfV5+L+L21SviYHMw4NXBxcl1HNIz8TIKElSsIsBfRhkf+BtkC6hWyANDPBsw4xG0RBydj3WrSentiBm/GwHcmRR/frsIHPwb5Ceg8+m98YonhJcf9ySO4TZLvB8LyqHEHgHF83ruyKUTGAm3D66O6kC86P2prrB2L2WOdHbdvRf6sdvF/w4wQmxneWreUE3ipXrwR059fEsHwJ1w5N0x1LQ7zms/3wnwTirGuFdRf4BLOiONE9iHtQ5vkR/TwED2Kr8s86K96TqDAPTIph7o4b5VuXeDBuLhL8Mv85B8B+bkT18DCn2vlHBdNJrVFJcA/AEWFIB+nLnFdgjU6Iz0AO/8PX9vkEuqC8T2o84QXcbfAjXBL77uk5G1oFclowFdmfjQsKJzMjiBCNSB4VHn//fU/raqK/o6m5AIltspNwu+ODarQDVBbEwjPAe/zT6sEkeBDtIrAaXifk23L6oBFbHThO4jpOTkLtDhu2fXEqZ0Tu5OYB/2CkxlOsSHDqCe/76T10U1oE2RyUiu3VU1XCg2gHSRuLiJYgb1yzwklSSgPaSOWqqXdu+XvncufWKeUkLlNXSR7avUdOP3b9h3h5RlzKX26ZykltwiIOsSAKj1Fh2g3AXQzWwLw7cnuF2NSbGbaeqw3iQSihtBAiXBB9d/o6yG7plux4ALhVgwYwGGkH61CHxYgIO0KB49V2Embz/Bf3fWkg7JV/Lj8z4Xj6tJrTu+lZ1Czm3kSpw7LjWJMHDcTNrHGbGwsKXonDyxikBZAwBDhc1BJag0AJSuPjZ2Dy87C4nkuDeuArBM8uRegktOH8qKilF0AWiRzWOknX2iCmjXxMFVlNnN32Mf1kwCQJbMUQc28UbrwP+2AJQadwnZGZJ53XypNHIJWxgKQPzOZ/EV645qtdGLlrZj4FJDNfJUy8i9GKUPCs+bDsSHxEBFxYDOyzOfh2QxDUC1pVy+suBgtBX/eC8AQCxn3KSBXGVbk3tkI18AmHmWzqoZcjCv9DgAREwGziW3b30QeSsxA6RXnmV5PE/npQvwRF3WFu3bjU+sCpvcQ8Lfq3+ShINVJhcNFq1pq17NRNauu1rl0UJUCw0NUl/cc+Y5DdQVlqLwI52XBJMIXNqyX6YN5jQHG/Vl7q9Bt6/1rj693c2HZHcTrpa853ZzT7tcNyRcRnt2v8hGFnKdapWARYWEKWFBofkNHpIDADC+KajSNiTYGI8yBaW9O7tWmewlXFteIbuCFWVSzk38XYjVExIW0JkzPEfnP4lnIe4h+WEA3n2fzZc0bLRpIrCW7LpnKoPvk8RDr3TdLIJ8KgXErl2bC0vUsgjqHcPs5pTOTFnYOSZRgP/QcWK0VoJGK2gAVPZKTCt5J/Ertbyqqc0IujXehEJGfEOF8f8uHews34Ra61tJHDzUQm5bcLAe5ZBvAHfXZyg7q4S2V2fgOHwFoUqbQRCGxZT4UvBVwBdaSAQaYtu/dPuIBft6T/BlRggAetr5gvklLr3MFPWwh2u7T33GXgsIB8DkBljIonaOdTo3ZRXRTRezEoDSLR0h9aDBJj1ohg8A2doxSDG8sj7dsPfwAnigrUEQ8QD4qlSBG5NEmAi8jYVEoPMWedQUuUywE/pgIxltOWQAUCKJ9OaXjLyc6WYhU0FNyT0Evwbcc+ynL0jWgVxZcFdWpLOzAlCP6KgGWB8UjH4jDpvO1AwXANRKI9nbKuCPvJIo/VAC4IZUQkVHZgkAZ+Ri2aToyEmB7qZz24flDQB4V0JcpnHOVYJQAZAvbBcuqx5ls3K40vaW1cMTMCSuAKAxkL6l6NSd3gh++D0kTXf7FwLlbgEH40oOGgDmvQps+UlkPd6T+VKYrzIEFpuxAp34AoBeAfWTItMEsnR+VuGdYz47EXe+85e1EozKQQIg5dz+rW+YV2F51HUnIdpI3ebftyXiFb4AcCKgJPAQa+ypAH4RcLd/sedoV2u83hPozWMBUJk64bKUtqoWM49ti45CmGa+7Oafj8QaADQGDKHu4D6dn2lIEchKTvUvKsOFBJvq1duBAMhPlwDsgzYeANegp6LuN9HPgk8Y9QBjkw2aEF8AeFeW+Ydd+VHC2YfNANHjX+b1tRLMTJ8AkF9L+Ef8MuF0bLkGPbP9VUAtcDY330G6vNkMmOwBIJdEGq0MdBQSQMRDsh9itBCrFIlReSjAJja49QgApabBefoTmzNw627qvaBErQY0gNpWOYCrqx/jbTlSRFIBQ/oBvgLbh8kTAHhiCFPlbqME+d0AkGs5JzhezG1jC7RdnX3dW8a0g/bCdte3jc0nYbhTD3mAVKao5JPQ6ScoABgF3v5dEA/9etw9X3irGvioObe/kdndra4LuIr2faD+LR3sYU5teVJUuSz6lAK2df9a6GjTAdQK/QD9WCAj4XkHvB5DqexaCZ56RDUkFXq8gc0gs9/GrMnex64qHdwHdoN1GLPNeI8AVJXt0lRVyCugRj/BfRAj4WHc2f6xUpysleBuinhtBZunPU3P5wAM3GDofUsEDMIJQDm9jiaO43ik1m5rj0khEQgfJmTteGanJgFQe8RN5iIJmxjg8DT37uLdOdBlt5C2oKN8LDe9fxO24zOM7ynRlpAGzCBl6CdoAkd+9dde9Y9XCVwWc//KpdT3dHMboBD4PAj38yw87x/Jd4OC0LjqXxJATARWx7Z/1RSdiGJXgs2id2CF5PYILnZ72e7RCbLF0jdjGEuZb9K+uFddaf7vUgFEcu6QCLxNgB1bDH4+/ymBMTymU7ojArt13BmS8vF0jdsCrbMNRTUAdPcnPetCQ2I9+hFuAaQzPoFeBXDyjqXK6/Mxh3g3SGs7RqO146fxdzcCMAS6fNdMNb3OzhUZEnshAQSj2fK+8CUAmNKP8wh3yT0B2js5xKBusPT2H3t3upVKDoVheL81QBXIPKMMgogoiDjRilPb5/6vqbtlKRxBpoSpO8/vc1wuCVXJl52d3PBfq3PDQHxaMlTcvyjgIyeH+E/LP6soO+CYzw3XkDf23TvFOZz3Ang8GlUEFvVFAPWpnVPr2+t7pb+HZNEBAi3ZBXaazz28zFiZSAca814A56NUOSb6IoBDmVRQ2dZ1E8RkS2rAw7TdYnIXshuika+XUXa0h5mZk2MWoTZ6bDtRfRFAQaZIWdRkZb+UogD1RsLVyYcupZDsinP43DIrQWahAZB3RmuGS7jTHAFM6hP4cw+jgOFLIJL/1g8Nerbsju5Xd5u8j59aZADEoKP9goaQB3RkqpZSdV+dhC1bcgD0fm+CAseyS9w6EPss6iy78wdAFWpjV7Q09L0v3+QHYZU0MA7XsiUhb3wlEE3syPLvN6nAV/eQLNTmDIBhaJSUiYMgiq4BPzjrM9ynfjEjGYCn4SSk5e/M8m/ydzz/fLjH5w2AB2iNTnLnbH27Z1X5Scinv49RwPAlAFbs7rZ6YAH+biz/JssSA/nhEwurMnsAvIy9w3pwre9XqM8KLFQKg1oKSYXGjn87tfybPNX87H7EJg5ecNYAiEZGU6pTaOurpbfeZxcKdvcyCvjHS45PpZTspJAHZD/fts+jziGTyliVUcWdF9JZBTBLDC+5f1UBQ0fFWABw0je7tPz7zfVoGpCF7uDH+djVWAnjk7ZOXEWYt1Q7h+peRgFDwZNK5VB22N1o7/IBmgRCP/0lw/Zo0Jxp7LLZkdnChN29jAL2xBmQtocXev7c8/J59AKww9ouy2ov0l3rSmXCWYVdnH3vkqMcn/lO1IemTHM1FtYXIK41Aph/oeqDShRwIMZMDeur5X0lQviHApK0Ozr+VBbRWAUwV1dlJtcmcCTGTHH4vIL8jNj0IxujxUFJ2708fwH1xZaKx/sZBeyLg68i0Tpv0z+pXzLWDU5fBOAsNJbeVDp+JKiLMVvyq0g0QVYmXIy9AFIRwrbeKoD5Kir7KJc4UTFme3eAFxE7ws20U++jeDAGJ7ojgPnK5GyFKOBejDmKgNUYnQ6eaAeu/SBIKLBEZ8VTKO7fAYG98gQ07cqU73fDoWyP9uYeXzcYAYwyfYVmAbe7Voixk+w0UCtiRSf/9k5UtB8EuV7ugpIbhTDILkNVjEVaXHmT79ru2ASsA28aI4CqLOxIJQwKenAtxhy3AJQm77Mvj9oIarsh7xfwLEsoqNwI2XAImJXAXF0mX8t2eOyU2zEMRItDC5zDJW+EfFKa46aTYszmlicPaBYYrQsrFg+iRx0oLBtWBV6V7mPqmaXAPHmfbzuvJ+MP6rS2y3iqsPQubQdO1fY8u2LM0f62G/yaGDvccA9XokXIZ/lZmf3IgVIHKrMUmO8vsKLTu8HKoUNJ49bDwQr/y7NldalHnIoYc/PAhnxpWcTGK0L+EC1aq91Reg4VUVBxCOTFmKUCxA7H24HnRftBEDsBVFe6CqggKgZmKTBPHsCqBSdfAKkICVdfBBCTFdSJiZIC9MWY278W//JIRE7GP6czbVnau8WK+7PHyoeRzqy4GDPdpgFoVl2x7xOpsZTwSWMEcLnqDOVClBydiDGHfeUBkM6I2GM93LwjfRFA2F41PhyIsXZHhQgADycyfnmDxiqAiqzEfqQgxgbk2xYAb/mvdduZvqiJtqwoxoMYG1HpAeAFh+s2/KC2CEChs1yNhBgbkknz2eiqC3HR1wugqHCKzTMl/hvjViPAy0dz8WfRowDEVCoWrHcxNiYDOFFJayurvrBQ+lnX5pzfZmWB+iX8JXo8o/azDh1OxdgcOwxA2tVaBbC6oG92dDerYQGRE41VAC1RYHvmiMeG3QF1jVUAbVGS45cYm+SWIZLXNaVUbiyUMCc8Nq2IpkIwuwkURU3dbOduWigCpR2IAIZivImxWQfAoaaDAHkzAPbPOdDVEwFcihkA++fVg7CrpwrADIB99ARU9BwEUBYzk8DNa6BeDnbw9TPMMnDvuGHwXkVFZtR/0gRB+6cLZJQjgIGocx9NFLwFF0B/6xHAsKDQbAZtQxn8kHoVgLqoY8qCt+EGqCqNHy5Fh4opCNmKlAMPKn1odbWWPIU/xNi8GFip1Ys4tJ0qi+Pv6MUr/3EDhSvv+kBN9CiQM21etiHkQ0khAkiKHn1KYmxDH6x31QhAXZq2GNuQAbqKEYC6I2fn7l79v7A9SLgrRgB50aRhVoFbcwxUVosA7kSXOJZp97lWbjBa+ZAPTUYwPK0UAaRd0aVmboBbl+R75qoWC3u+w4eIn6tnB4fftgTtVSKAE9Hm2ZwOX4f8abacs5jCSt+kxmdzpyoRgLqQb/pDaGdXYxYAlp94qF0WB63rf3QG8Wzv0QIiheSoqPNNJQJQ1zJzQO0yYYDHXqF4kpTvLm7qQKIjH0oseXPXawK4FX26+KY7gF73QCLbSMpPrutAzZZ/vADVZSOAB9GoTEwMne7Bj9syU9WH0uFwS5C6LK4xjAD0CUbMFECvFpRSMk+qB5GiiDyAlZeFlYAb0ShjpgCapb/uf3Ebxftut1BtuDLFvQVdkcFSdR1XQNoWjWp4JgXQqQEv8q/MQQSGvKJMkfGgn7QDkF4mArAqopHbNLeA63Xz8Yp2q00o/2pFU6lopRDgRqbIlyD9WgP+UIgA1FzDrRga1Wi6kkng3UTlU7JEVqaw+9C8t6Cw+IFC70/RKUskKIZGx6SDNZwrW8YkH3j6aVHnWCx4B2uyie7vq/1oToVpdoPf5Cwlv3P79F9lirgFi/b4yYLu2P4WzsXQqQMUZVKNZ1umOHUADhSqAFTEyJk1gF62h9WVKS4Jp2SKkwBAqT3Iu9ojgPljyqRA2v2Rg3pQJl3RPJQpomELAKuUrdjyo5dhFYBWBzimIFy71DMkLmTSAH/qes9Nnf/q5wDIFa5lupQP1ololY+YctC1qIFzKpM6lpWRHyQv7mI+QPolOCMC0OrJFIOtyYs1Pd+t+DOXccHbng/4TxdTI4DHV9HqAp7EWItMAPq2TIjmiMssqZcSQK8iv3nNAaeiVwzHPADW5TAB5ZRMSIW5l9laBw5wVvkeAfREr1vMEmCNkj3INWTCUZmsLbPljyNAO/V7BJASrZI5vD/FWJ8uOLcywe1RkXny2Qj4d/b6IgBpY24JWLP49K3+Kg2ZL9oG0p1hvLyGCODc3Pe6fp0AtF355skKyiJaJfh4XaQiwIloFfLwzDbg2l0k4OFIfvcYlgVdRSAdlR5wLHrFzC7QRiRjfA+AW/wli8rHINIG7WVbx5jekJvhtsFryZj6Um1hLgG0f1vjUDZNQTbkEpyBfMksGeheN/VHAB3LTAA2qOjAX6MSnGVLsIJ1yGVEo4aP0xBjY1r+KHTvM1jlhU3tSHQ58c0EcMOiCTizhzWAT7K8Uw+8or7P33SG3bRUHcpBkSrPtqwg2Afq16JBIwBXYmyYfQbhaJVESFZzmwDeLkRVx4cbMTbvCRzKIVmVfemDdaA4BKoWVlyMbbhX3dHPZx2g11LcnzLzv22Jg6/2139vW0B94MpKgj3wTsTYlqIFRVGSP/aB5n1elldJQMmUAG1TRn0ESPCyCUTOOrYs596CtjkFsl2dCBRFkT14toBE9lAW9/4Mjpn+bd0fHhRFWSMbAIjdpGQh7l0ESuZWiB1wEYCiqEsOG9FFHoopmes6DXTN438nXAR0HfGOXoYB/FgxKrPkD4B0RYzdcOLo6/LSKDQBrOfLQ1emCw3LS83u/+7Quxvf6iYASGczrzIhdB8A2uYE6E6J6y3ItRuFMgCBfvxdxh0eB4AH8/TfNU9wLVpF47EAgJWonUdlqNV3gHpHjF0TClAS3YKd44QF4JSPT1P5Qhqweib53Ul3EJc1uIi/ecNB4ACBrFn576jXBIGQrIXduDt7BIi9mCbgu+vv9u4lBWEgCMJwl0QTYVwYIS587BQRMmIgyywCuf+ZcopAQv3fKWa6iu5WSrGY+ytnUp91SxQzvY2VDlTznb2lT8BYop3trb6quAV8dTs9iGidTdIvYGzgL+jtctSJpNbZl0UN5hqpCfjaP9nW562smAZ4a6VzHfCVpT8PQWep6APGSk53AgAAAACA7ZoB7FRpPjg6f/IAAAAASUVORK5CYII=", Ex:"data:image/png;base64,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", jL:115,w_:115,iL:"data:image/png;base64,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", MVa:115,LVa:115,Xp:"data:image/png;base64,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", tWa:115,ipb:117,BUa:"data:image/png;base64,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", vWa:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABdwAAALuCAMAAACD/iR+AAAC/VBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMiNjY36+voAAADa2trn5+fMzMzp6ekAAAD19fUAAACbmprCwsLu7u6ysrKSkpLt7Ovj4+PPz8/x8fGIiIje3d7t7e3y8vKCgoGmpqbj4uLU1NSppa3s7Ozq6up4eHjY19fCwsMAAABgYGDj4+O4uLnl5OPS0tKlpaUxMTGoqKjd29tWVlVvb27Dw8Q7Ozs2Nja4t7grKyuJh4Xe29uDg4L4+PiXlZOampnGxcNWV1TY2Njz8vPn5ue6ubp8fHva19dwcG9/dW3Ly8pkZGLs6+u1tLTa1tdJSkihoJyKf3RMTEyRjYkFBQXc3NzV1NSvrazk4uP8/Px1dHPd1NbHxMXPz894bWI/QDzV0dKdnZ3Hwciwr7S4tLNeXlmrqKdMTExzcm/19fWAfXhubGhzcW2vrLRIR0NraWTf3Nyurbbf39+trKloX1RkYl1iYF0tLS11c2+8uL6JfnNRUUzAvcGPhn5XVU++q53CvMXo5eXTzs/m39/Kt6mjoqmDdmiooqCVkpGLg3ns5ebPx8jc0tLArqGYjIK8qJn////9/v3l3+TZ2ODi3OL19/W2ubr4+fhfYV9vcXDx8vrV1t6ztrfd2uD6+vrv8O++wcatr7D8/Pzw8Pfx8vHz9PPGydDLztaws7TMzs/q7Orm5+a3u7/j5OPt6e3Z2tnV1tXR0tLu7fTg4eDDxcXu6/Dd3t3s7u3GyMipq6u6vcPBxMx0dXS7vbxaXFro6ejr5uq9wMDS1d/LysqioqXy9Px9fn1rbGp4eXimp6fQ0tmNj4+Bg4JmZ2aHiYmgn57n6vHCwMGYm5uwrbaTlZWXjIL49fje4efj5evb3eNPUE68t76tsb3VzdGflpGurKq2opSfkYWtmoy2srqqpKGOhoHs4eK1sbCjqbc1NjLQwLNMOE4bAAAApHRSTlMABgoWEyUyGR8iEA4cKDYMOisvPS1DQEZJG02jdPVRltSg0lrpVWmozYlvA8ady3i439t+YpCa/s/RZL2SYlbXmwive1KSDmBtfURLWV0+Gl3nUoQW/qrrsbCFJEn+tXm/cDX+Iv43kHHLhkeh847+ZcX9/Emb/rkz6qlsLcih6bPq5Mpt1NwQ+tiVb9Td1Mu+tqz+7+XXWfno58jJcPDt6sTn55TCpGMAALXGSURBVHja7MGBAAAAAICg/akXqQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYPbgQAAAAAAAyP+1EVRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVhT04EAAAAAAA8n9tBFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYQ8OBAAAAACA/F8bQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV2IMDAQAAAAAg/9dGUFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVduwQBWEADKDw7rMqWAwWw8BLuGI1LNk9gNm6ycBkVDAONBsMhulAEPQQ7hy/33eIFx4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8szRNAAgjLxZZNhqvBwkAYayOdb393u7zBIAwNsNdVVWNuANEsnwfyrI6iTtAJJP20sfdlgEIZdZexR0gmmn36eN+foo7QCBFtxd3gGjyR9PH/SXuP/bOPDaKKgzgW9vdnrvde3stKpSWHkLFarQttS1gwVYqFfFoFa034lXrbTyrKIqioibe0bcI1otW1zZGiaDR4q01GrwlHm2iRpCo8R+/970382b23rWLi7xfvGdm93uz8fe++eYdexxpaYY9hT0oVInkf0PXN++D3D+Rct+TSKOwv6a6N/egUCWS/xcd370Hcv9Qyn2PIU0l5ZW5B4UqkfzvqHr8eUL8Hz4t5b6HgGnwPiq7z5lC0SkfqkQiAR560Uf8T4WVe3Nf/xGG/wKZ9IUVJogyPz8XyM/nzjQkG1FcQVI5VIlEwuX+mT+S3M9dPXJKj2H3khaEQQpe3BrwZW5OBpKTm79blJlGERk4JVVDlUj2Ijoipt53/TBA/M+Hk3vHTevJ4HG7L3kXYt+HykQgE3gEhQm+TE/PBNLTwZl4bwzJQ6g9H1Az8NQMVSLZm+ioWdER4fAlX4+Qwb/DyL254gI/Ib6RU/qaDbsDReyUfCAXYUYB9nq/M2FmpGcW5mUBeYWZ6RnJVyZXe25ODiTgObmK3lMxVIlkL6K54rXh47vCHz/mu6GBgXByb187QQD/yCOHdBmSjir2fBAJmEQA/waOl2/lFGFmZRuNZrPRmJ2lKNOQHER5JScDc/D0dPg1WIEl9UKVSPYq+tZO+IaPD182r/1m06YNOz8KKfclN20mwODrT309fuNKQzIRagexc5EAhYWFmeypniWNe7feoeFgWRCm0Wxz2u1Om9kIygTXJvGOiPJKJkvBM9UCS8qFKpHsTUDRfJD4hu8Na/f2bVveGAoj91N/86Pbd/51xi2tVYZkkkbhZk/nz/LZKuCUvExqFbDDXvxoT+9QTgYIs7a2DKmtXZSVmZGT1HyYuZ2qPdsIZFO9C7tHC/XMgFBl6i6RTA5VJ2x81keIb+CR+w2h6fnihQ/f+DKk3C9fPbE73Q5qxwSRaiQbHuXNNhV4rs9Gq2Rk5Oanot13z/telg3nZduIyr7ZeSwfNiQHkYJnQwoO2MzZIgUP13gRam1gqFLuEsmkcOqvn24dIMDgWL8hJF0fbN+xY1eomvsRl43BhQNvgNtv6E6y2w2aZ38Qu81mNwEWDvyjHQzP6rY5KWd3MVjTkKS4hGdzIRs22zXGNEM+nJu8GyKeFsy1p5xHyOylZ9ICC/0VAse+w5/BodYGhppiv51Esoey5IGTvvnhrWEC+DcfHFLQHdt2/X7P72ccFJz0z4eijG8I3b7IkFRY2o5qxxot1brV4XC4OQ6HFQxvp3rPo15JrWf7NB1JLpBg4m4iKofYaD6clBsiEvcM+FLz8YRxXqcZvhItHUxQqGUBocq6jEQyOSx6oPeLr198zUcIeHpFlyGY5id2nXT7+Yuag5P+7yeI7+23ku/2NOWVHVO7yQRid88raSqun4q0FDeVtLrcIHiTzUztnlKv5dIoyZ9iL0odWUa7RWNMuzErmcWONMM+LAVfThQWn2lWqufhGi9CLdOHKusyEslk0XFd7wfffbZlAO1eHcru1y27vCpU0n/9iM839M6f42fc0m1IFiI5ZKPmzE5q9raK+lISgHdqcaXDYnJSu6fSiDp1iA8laVPshTGpZ01WonKAiZo2acYUZf7FRGUhpuDQ2LCNF6GWBYYq5S6RTBIrH4bSzPZPhnyE+Iere0KU1oXadUWZjX7f0Kc7we3LklpvTwNoSQYEYrSB2t1zq0kYvDVzqd0LU2hEXZpBO8c+J7lve1kdG6oyDq0xbdnJl3uWsZsIjncas2hdhhK68SLUysBQc6XcJZJJourq63q/+O7drXSq6Yb9+mI09bmXTviHPv0zyW4HuNsz82jabnVXlJJILD6k25hKr+UwejbHXkyxT0JswpiF2TaLm6jsb0miMUUKbqwlghlO9hsAoRpPr1JDrdSHWpg6P51E8j8Akvfeb374dIOPkIl774/J1UtuGtu6ldZkrkjI7c1XL2qOz+1ZNG13lJSSqCzPSp26jFpRysvD+T2ZSVxAJY0ZM8/o1MvdicZMVn8SQe751O05QY0HDCLUSl2oxjwpd4lkMqladA28V33+tREfGXjk4CNiuOCsP3d++Td1e2MCbu9ov2bV6Qm4va2axEBt6tRllPVTCuOZ35N4BYiNQAFjugKNmXy5n0kES51sMCRdJSJk41k/hKGWBISanpNqA1klkj2b5qMhef/srY8HfYObj+8wROPyaz/6dtt4Qm6v6qp48NpVK2MVlnC7tc5LYmAxvM0LL/fIgxHjHLAYdYgjdzsM8ukkyMFsfg8GN0lBiPP5u02j3bq75A4fqnypbQZROdVmzKNpOrgdG7+cIO2i8fTGsFC1crfajfjTyXX6JZLJpBPs/tMnmwZgwPuKqLn76Q/fccuxx56UQL39iAtv2tG7bGU8U9u52ytITCw0c7kzYh5uHuf68PyEiFcw3eKb4BXKJExMacWowISDCD6f9yRZerkXozFB7ol0ddGOYwtZEzWzkWbY6U8Acs/lr8FnE6RWNF70QyX6ULNQ/3KdfolkMllyTe9JX7/4+utPfXfSqlhqK51n3b6sOc6svad89fZdvXVxTbkEQcThdu+ZfLgML+4GoVo/LYTHYlsfXnyWQFwR8NiRjl3TYmUSpphlxc5NOIjg86lm2UhIT3i5R9+ZWhyNfpzPQIDSi9m50MvdfiRUZQrpOj/odrOtmzBqlcYDrB8yB8jdZMZavVynXyKZZDrv6P1m+5/bjr04KZOSQO0nvPf3+PgVsX66yHxDu70Upi8B9VO9RDvNkdV7tV5QJBUkDa2omB0Vwi8PL04Xa8qHvCJN89hxtDpPhwkuV4RnSCQIIMT5ucymJkd0uQf3e2G6DdEZ6k7Qfn0u68DsRzZUH3ro0jKTHRd4zAC30//uNDUQRpnS+HzRD+nk7jDRjjkD7qeKXKZfIpkUVp7V+8W2jy5eZkgCzX1rLr30z/HxO083xAq3I+jKWkkCqJ4Pk1LdDorb3VhRowi+WxWIQFgQKgWAmFCjzcHxoGZ9eDRLGO/p15QPvoKfpT52LCWMAywouHQWoLBWfEEA+vNV0LKWiHKPvjW1OJoPhDiu793Yij/ZOHUYMNltRmwij8ZknU0YlaLxWLEpzA6Su80Ix7Hl6i2Qu6tKJJMzbOaOW067s9kw2UCpffWlX32/Y/yku5fEPxLDaWn0Eh31bLkBiwmgSrFarWxu0/E8a9Qnf4qLwTcUPqFGb3Z2MJMj1ofXi02cLs4PeYWoRoPe3KWEsb+DCg6KFkLvcQYh7Bp8Pq6XabZb3AWR5S5agQh5iqOs20BylQCCruZnZKDcjTANwUR/ECf8BFTR6dztjYRTwhtP9c2ugelWWrm7LTjBODPwFuRKvUsk/54lq24ISq2bu7qa/53aT139yrqNH+4Y713QnMg6WI7DiJYDF3jcVkgRnbjYL/zFabeDVY7cdzFpB3mgErl3uJ64i8F+lEwlddZaFQ/yNeL5tm+as4ImnIo15UNcsY/q9kyU7QLVXy4QnM0IQYrF5+MMQkShPz+LAooFnbqKIsudfV+uSI91E2e1/Ya+Kwy+Gg7Tv/AF3ewmwG4DgeehoGmJyOJuIpxZvPFwFKCXBMjdZTXRwwxxC2gEcvNsieRfc/qiKn0yf/nCk+87Z2l/R+Jq7zlh7ZObX/8b8vZlKxNYwNZkbdCn7fPAEia6dw/8/48WMBrNiPFC1EoGzycVMrjYqfwAtvI7CoMXjeE4HGUfw5aHF2cJsQnv4ensfBsDLtRdAfAxnE6okpxMOOUFGLrZqD01La4g9FGIIMyIzWmC74ssd7ief5+aHXN5aldpE5ub6rdWEpvqiX2w+DrMTup2J5M7HGRPEZ4DCecg0fgs7JLMcG9mEZVyD5U/tFpzC/Bk3F5V6l0imVy6Gh59cmxiYmK0ur8qsVr7uWvWPjk8DKvQjD+woCr+BWyhhtzm1bm9wG1V/MgoBFUwMCnPoGbnSS3VSCG1D9OgzYbbScC1qlrZRBsmJ7sJYY5SDSwqLWLlYe35Fgu/AlSkuBjI5ePzwbXHqf6aUoAPHU6b5sPjCcJg0EYReD48wIDbXQVTosldbQUgNsYDFLer/UbQ7CPx7WpyjaY2mlkkdowZ/huTt6eVKJzIG8+7ZSOdl+bWyr2APY852YMYID4OIpS7Z0skk0jVuas3jvgJ4Jt4pD+RD7i8/NGNo4Ovfg+vUm/trkpsjcPiILeDGzFF56TzKi0rIgA076TCoWQjNL+l6gNYWbiQvdjDc1FN9KDV6kCsYn34ALHlMwubbeL84Cv4owPYF4sky4jCCdOmFHlcDkXvvCOAKGIPQtgXz4fT1Qis9Fpwe9H0SHIX02bxppj55/PeQ+xbTfsNAFQs9q7mbuffzq42svvLb6+iYzA/RAeNbxJyVxtvx6TcBsd1ci/yuOEoxSoaBWezCKTdJZKY6eqKVlBpXzvqI34/Lvc+ckFP3Fn75Q1rNw77/a99uH3XGXdebQASSdyJhv2Y29GLIEYkVxm3wgvs6FWwE+bpWJinZXn0YOX+MFxvxowV+3ZSu1PQU+AZOFhXsX/NYZTi4pI2qhmlF4AUX3E7m3Bqs9Pz3XUlxcXVU4HDWoor6qiZlNeJ7IPZ280pFwm5z5k2vajAg2cyZWHQ2iDaKvcvxiBq4CODgxD2NZrZ+XPZuvY1xXMb3W63y1NQNGVaFLmzoek817arG+MJdxfyJgJUrvD9wv6s3JStltjB5VgaojdY7Y8AdHvBUQcShfM1jYfODZvr0sqdut/txtFP7LZWF1eUwOk8ggxpd4kkRvqn3t8c0c0Vj04Q/8gAyB3wr18ab9betPbJUT/ZsPX5HbvOWLUygbVkgxJ3byt966aOdhTkC1iJo3PmzJkzKEebADR7Ix8wyeeKFrK3ftySc/GgYHZDIyoY8lpW8RUZLy49XLn/YSSA6oo2Lu08LESzusQxxxGV4w4H9oPOgPYwM1ewcTOaIBobZgcuYiyCYHpl83/yMAhY2R7cKTiwaV5BUdH0aRHkLvbFW8HvDwTSLTbGU+ddHTLj0EMPA2iknUZufzF237x8hnL1zG76Tnsh/OOhAPwNhM+q/25Pueam3qtt/IyFWELSyv2E6VOKCgo8rS2lultQXcHX6U9PmfXgJJJUZ/nQpuWRjrdf+hLxDw0SzvrHOuJy+6lrnxuFiwdeB7efdH5zgouTW9xa6TZ52GBoZjrBPgKeWdYSToPDgVvyzasnGhYyBUOCj6oOuZJwfavDilpRpk2q69wsrA63onwb5JlYJWafbC2ZSsIyEwcGwjsDHkRjDQmmtEIJghXo8eGBr39c7A0KoPwocPuciHLnM8P21e6uYeTqFPOuFhPBUhtfw1eM77SLXmixHarkpkOIipKXOyKtz3wI7qjl0cp92rTpU46qD3ULrDhEPlXWg5NIUp7y1wY3rwgv7K7VY7Afh58ojH16vyF2Ll/zyhjtFwa3/A0rDqyK922sWFpqLhGUFrgtynqyaaEQIxBVubd4PC6PxzNLL8JaHHTH6tzWynASamlzMK1wu6NXF604j4TF2wB5Jn9jaLaXHUoiMNPGeoEsDKKthYSmtJIFkYkFeu52u8VRdyAJwXHL5syZc3NEuTN/dxKVGpOyZgN3N86pFcw28dXYeP8GX3+k9mrAcgBRsVrwv4DaI3AALa27tXK/cs60aWd5SSgOa6R3IFNuwieRxMaaV6CSfm9/mJy6uemCCd+wn6iM/F3e1dd3//39/f0XXtjX19N1RFV4tTddCmoHBmAI5K7eZQYgsaqMo5oI5nus4CF1g05xtkErd/3Oy/sVUeYTPbVQyWavAS3W/UlYDqwTdueJ+/EkMjVYRcCi8ykkIjNoJwAYaRB1s0lYilW7A4rbK7wkNJfMOTuC3MUIU3F9KfaYrIl4zG5pIFqOtJvZcb42mdOi6XLnWgDtTcSieje0Jy65Q01+zslh+8w6izOldmGRSFKZqtUv+wgJm7y3r93sHx4kAt/2nZvGNjPGNq3f8tuj960pv7CvK1jxSyrWrpvwEWDDGzt37epdYAASrcpos1JM3MM/nqdpZrWqcvdOmz59One7AAfkmWmhu62GRMAr7A5Jc3S5AzVuKM3Ql7h2EkXuTvbmEbch8Ub8SBoEn9SPq3SB20lYLjl7TdTMHZJzTbuPZqk5bSJ7ie3QV5MqLDYjHueJu8naQlTarPSFhkbuOOaljMQtdwg7LN5GWo6TqbtEEgsdz29kw2BC7q235KbnJjZsIBomvh5nbh8dHR3ijL255bf7Wvp7mrUpf/vq9UztZPgVcPutdYluGZeHKaLgZKi4myPmbyIvFXKBp/1LSCCgX4AWhiHDjG53+kIxJxeXyOok0SimdnfCh0eVu02Zd8RaGd3u7OUruL2EROCay6LJvRDkrukeGix2mhfTFmLibp0X8PXwwITHaVEI93oqFTUbcDmMHComKi53QnJfdQmJwGz6zCZTd4kkFnr++PnVCbT2IwcHJ++n/rp5kB4VbPrg802bEUXuw4yxNy94rKa/iz8PtK/57SWmdt+rb1G3X53YDj+85F5MBAtcFruyWY8hjN3FzsvicX8ZCWQx2tdusjpqSBS8rQ4LW2qSr3M4k0QDrqBTiqLJfabTxt0efR+SFofFaWaTg+h72nneiCHfF13uuiGm1Q5qznRe9LGZAp8LvA5M7cHufDHHVk1XhnJ3aX4nOtqRyz2eF6q3hWmT2HZEpu4SSUz0/fjZl59sGR6kpZmbewKHuF/2ysSAj2jZ+u2xW9Yj69atgwLNKNhdYWjT+ntX9HRAwt/0wrpBwhj6nrp9UeKb6tOS+1R9VcYmsrcImbtu5+VLbjsuOGk24RAPi6NJX2Ivnz9r1qymeq/uP7qsTG18YlKtNp/EZYdb9iM6ql3U7tHlrjw8zNMP/qsvhyCOKde/L53roGNmstkYHNdUEo3oZRmH+AIvK3dlALhigque6KljqT2Xv64oBOP7Aa3cC1yxyF0MhYwNbxtL3aXcJZIoVLVv+2vHD9tf/H7LsM8/cm/AkPdzr18/OEB0vPH0aVzuquKp4RW9vz32yOHL29c8OeEniG/onT93jV8L01ITgZXObSY3EdSzqkz45E3kpdqdly+7jARxCnd7HdFwTivMsXG5YGxNwXytbpvcqDawO1a8jYsJUrq00g3gxKGj5us6kFY3jhgpK6ssOejEK4nKReefeNBBs0oqK8vKymprO7nbXdVah81Xg2jVKra0jY6IZBV69zFEx+HzFxQVFcyb1XRObHLPZ3Jv0Rgaih60hXwhXo836GPYWuv46GLXyt9L83SHO0DuFsuRrPEXEZUrdY3vFpOYAqhumkWH61910Mn6KBpY6i7rMhJJ1KUFbrz2lme2fb1j+85P357Yuv183VCZE34dGtQn7r7vj/1lvZ518Afk8KPDlJGRodd+vXTUp5z+9lt8yYH4EQayNOoGuVvt4n/vKLX6EhKMt7qppNJxZFnt8lrUqi4D9h5TVOBy46B40PVRGk965/GqBJ9LuhBHtB9ttapz5V2eIrhA0ERTd7udfkPBlBO1Q7mnF2Fei+vGADY7TsEXnHOUJoiiY7y6FXHp+HH69tVTqnuyOAi7AwD6g5Ojyl2MQyrRBAwtZCV9fJ26QG06YUx1Q2mKHsfdQKyaAOpdallGyB0ayFe5OYGonK82Xiw/ECz3+lZsDM60PQquFpTSDkjWZST/sHfmQVVVcRynRbISerG9x5P30gCNoAQ3LNxINhfENDM1JLeiTdOK0pr2xfbVmvbtPsWAKbBe0IxSZJmtqDQwYAEyhFCj4Vo6Nv3O75x7zzlvf0TTP+drU+S7775zeDOf87vf8zu/n1IAevTuN+57bF15Rdu+P99vO/mM2Fjjsp+3VDk1SVWHls4Vub4B2U4FfK+pqfv0h8oqgnXCd+duKCez/Bn0ZPoMd+au8JqxvNuzP7ib3OGekJ2FW32ULfSUjUDwIiQPvIyVBcxWAdaDaXa9QfebL596bShXeDi5Pl+wUYaYCdzJs0GMWYJ7otWonUUU5orqDJdB5IlLjLFgZEs0zMcj/Sa2yIxCHvs7oUpbrfJLU3CGseRUVxgE5sM1qkeMh57psKFLTn1hN5AYwXLPhvG6wh0LgOHkrXgnqgXi5HnhMEm2URZcLMgWLSmSI+2xQsKM8mWUlAJU8rKZBPDt9XNP5vJ2eDe93flxpcMlcN+879YWxnX2B4T/RjVs/OGXrxyIdlDZ9p+A7c/77brkz12R8q2zqOV+jj+4887Loi7LYlEjgpXGjQJWb7djRVrdi4eqKPME64G5EqwOzExe6xfErkeIc76F452AxNZRYvkUAB/QjdRaxNpapJOHgOq0fJdB2CfLjwOYYmJJE0N9qyUG34LcB5wW2fzAPQR/RcRZT+EzjDaRbByo8ou1ztJ0R+txw/In+w4DY2Mxxz5aGFUWWS/d4B5Kt6ujJbizyQslf13hbsuj84e50MkkLnL1ZRTclZQCVuay2SseXHOSgTh54Zi3V648ceBbhybJ+cWek62M7B5U+dFHDU5EO7L9i52E7bycTJ8zIYdKxAztO9yzhXKzA/H4qJSAOAnDSkA/JqhjUXQBunNiwqkvA2IVf0EYfVNvBUEkMDcPMYb1VSwi3C1kcxazXoCTuDkaiSRlGuU2iMR5nPwYoMMn5Yo4zMd3kPKMejH363zAXT5CIMwwjpR1IAsOybPMMnIqi43nA8jWASrTXB1zijAoLOToAndySBc3ByzDhcnRyYvNOrCeu6A5xNEhk9Fr01jzbWJCZoQy3ZWUglNyzrJZyZT0D73d27ty5aHOTS5wr+ksP/mxO9R/Y2zv+rSHhPdO6uB88z747ZztfYe7eFgmzUL3U4OHO7Ld6JIB8SlrRydsZN5lt2IrCQoWGjXPE4xlPVvkbNpVjvUIQWFBRAL3+aKDROAOrwBtRbibkZFoXsNdkKSC87LKwyAEYyIX6E7ciuHivJCkMC0EM/LUPskn3Hkt5chc1x53uOgJ0C8uXq97WjHhWDMHi6FZbGL7JPSQxDx31nQDy0KKcGeTF9vsyXAfYo1mpfr5ZITQ/fxIZborKfVVBVf29hK4/9xYpUlybP95/8neDV70UdfGKoJ2B2P7zo7u7jUF8voRPNwJo4XSi0MQ7hC5BQ93pCrt3My4SuA+XQjc4+0WgavETgGuyL4MhTuG7iLdeeS+QPg8DFLhJdwzlP4aj7uybtaEpMLytcDDIPIFXwa3Gi1WIdSfZ8XedDQYjqWeinWOH7hz0z2BgxPvM4C26cvQ715c/KyQTwPABuRi20BDcbC2eIA7nr09V4b7CJw8Pv+wBtl8U1fGv9GFTza1EugRNgV3JaWglfzySwTtpaW9P/+CoOaq+rrt1rmeyf77B11bSNjudGqosm/eh/Ltz9+Yqd+1YMnitVMzg4b7aa5wNzO4nxIk3LEKPDZn1vs00ZyPKYLjHk+D5gjqoruZ6LngWjDTnXWgQ7SHgQzPPd4N7iSoR1tZ2pnFCmCwSCDcwd/mpPY0iPhJ4m6rGZJI8t2qZA5kwTDr/GSf5xPu3PMSFxa4URRdUiKNRMhVxcW383wa9EswHOeWu42lBclwhzFh4R74hMEC3MnksXSxXqYHvoM4TVyp8FsaxCdDQneNi5hjCu5KSsFr4diSxsbeSvDUG5s2umyn1naUn9xX2tt54ERTx6+/djQder+zt5KF7ccayBV65mTNF6TE7+M51MC/7YaMV44ePpyUHNKfcA8JEu4jeBX4s88xosZU4XRkPHruuJep70wmxrub7pTtQu/SKGPvzx4/wRXucI0L3OkagdUd3c96rvI4CG72pJF65xaIZbmydL+IVb7BJHRrhm+480z3ORJ6Q8l8gNN5vE7jhCd4Po3JyMQcool/i1lBHuB+JvHURbiTyWPhYlZg0xXui8zGQVis9EBehx6FCu5KSv9SL79VUtK4ErdLd/76hUNie83XzUtPVrSUG9oFaq9v/b5xW1cvCduNxMnqLSeA7UXJmUteHnPN+tqGzr2Fy//KBrb/b3BHQyfcqAKPUaPrCc0JE+LtJKOQdOHDjBSImRPjbe7JkHoba2zuRPMgMWkRQmwJ7mYGdywDI8I9TCq/KPF1rcdBCGeg7FaQfbi8DXGuWK03lszLku0X7nApolOTzPMI+hBixPOkerDBVjSMMAXGohnCRhr4kCHCHfsgomsu/nUcTF4qCz/Q5WuagysVK68MdMeMHquwgwCpsGfGqnQZJaXglHlDSUlJL8uEOdG6TYL7pm86dp08WS5oF1V5W1cDQXuZQ0+YbDwEbZdev+ma9VhkbFtHW0vL6ucyQ/5XuGdHo2WuB43u9SYfAbgnAlghx5oIm9Ulxk/gXLksmuZ5g13P+lJTrJNmn3hE1Q6XS3AH6tJecxLc2TkcYxChYsS7wuMgVvAL8hHuGWKsa4rgwNSjYXOub7jzwj3RUtoLc8/NacaSB1rFH15MeIFUDybX2DeW4Y6ZN65w54eQeLX+OOlcb7gU2uOXZBkiwF3lQiopBa2cizo7ke0U7s2NTo3LufWntqUn95dL2gWAb28lYbujzNh93bwF2P43cB1Vu3Pv3ory8nuxptj/6LkjNQZJjeLk81HPFiPdwdPWT0daSUOjR8T9RuLZs0Qb7BeKWI8hV8Pl9sQFC1as8AB34FucjFocB4eXcEbW0yAkuI+yW+GTJomrFjuSz4GJ0a4PuMvJkGLCOoTmmLGey3eZQbfz9Q2THk1iemMaS3qMcoP7mRTuJhHuLJPRK9zNfMOUZ/RIcDcpuCspBcv2wQc6S9CSQR2r2FmmcVV/+Wc7Cdx3zd1PNHfdutWrVxcWrq5PLwWsO8ucuntTDWw/+nctY/uXHXv3NgPb40JQ/1u2TAKvFIzicA9YmExCm/rr3bGjs+Imkz7OGlcf4B5wCTAO93mSUc4ObaKMaDfNN9w5OvMEU8RMa/eas3mxBFAR/y2yNHtrmlyrkj6fyHAPw2zGME9wx7F6+pqGRHP688JxZgnuEQruSkrBKHnJswcOlFQysh/fsKFzV9NmIcX9ixN/7T+5f+7c/UuX7n9gzTOPPfjgg08+/W73wZJqDNsdeoCPcfuJb2g7j4ZtsPF6aN+eilGZ/yLPPVWEex/z3GVqGIdfhwYLd3aylVgXWXMyeBqhV7iDPMKdsJ0NIloLBu5WAneNy8JjXTna9Qt392TIRVjUBnYPrjc+LtHONx54mn2+wGu2s3Bu4HA/2xvcsX4NtdRZaI8ekwh3WltIwV1JKWC23/bUgQONtLAA1cr9bds1Ixzf9v7Bllv3t7c/9uCKS6++e9kVOUQFSV2lVYD2TU7jwq3A9u7urh8bqEprd9RU9ZT23rTkX5xQHSyirI/lBy6TqCHc2r84eNBcZmiP47Z3n+GOg+gPuDMbW4p2fcFdTobkM0mzWqgZZNDcTh4U7Abrs2m1SuscsVJwBHYr7Be4pxhfL4r6NgruSkp9V/ItTx3jbKcqb99ZpW+Rfvlhx/J1Dzw3Z+YyIQQvWNtY49CcmzBs11tzQNy+Jr3rsw2M7juqnE5nT0PppNuCHpPH8NrKTIhg4T5YoEaIAXdTMHC/BGvF0JT2OHBSAoJ7mH+4m4KC+wiLRYa7mRtVNB73CXc/yZD5NI1+lNB8lnxeNq9ig68LZ7tSsIMIwt3UZ7jLqUQK7kpK/cv2Xr0kGFPr/tZah4OYLrsbT3R0Fz5zd6ZcLvjhSicJ2x0aZ/t3ELevmf3HHz8g3JHuPUD3qroN62/rcwvVKW5VIU8LHu6CndNXuLNyVuEmPPjz/8HdYvUE91PYzHQrY3gAcKeXZgmmO820XCQciCUwv8uI0+F1YLtQQmcy24jwCPdBwcNdfgw5W8FdSelfaclTXcd6DbQzvHcurf9pU5WzrOfz74Dt3euuDnFp5bEBsL5JrD9T8+WJg92riwoY3GW6D1nYHyV/s80mHqgGCXf+tj7BfRymAULYPn2k9v/BPQ6rnPcL3FlgLG7oLkq0gzi78yApkxSVTzBcIXxdsNwnhkewEL0f4X6qgruSUv+w/WFkO2u9wbSydW57685vtm/7+kOwWo6unigXoMk+ANutVTVVYiY8sv3WAgL3Bq46Qndtx4b1C4OGu3snpkXEYkZ/JUi4mxgC+w73CzDFG9ieprkr4fzzzx9y/fz5q/5ruF+IGfV+4R7pG+5yMuRgbrrHJ4J4oA5sxw3URZz+oPjr+LzxZNegQf0Dd/41KbgrKfUH2+/v6gK2y65MZ317+7rC1j8PHfrzYPfRIw/OlMP2h1fCTuomsNy5arYB29fduiZnIcC9dgMjO4jQHdLfG9YX9LGHaoImbPnF8LTu4OAO75LgHitvqK5/5JFJkyYNGTLkfHddcsm4cRdcGUoP+GS4YD0jCVvt0fNGKwKF+zkeN1Rt3gaBoxgHo5gFWegWq7ShKge7OtwXeYS7v2TIJ+JBa3klzEgTpj7O4fQn4ve+DOaIuf/BwP0sH3Dnr4couCsp/TstvD+9awtDu4H371va29srVq+rb17effjw8qIc6STr4hd3aJqzWmqwWo1x+6XL7skEuH/U2VyCbIc/nO4XBEt3TNYLNaVoXPnoy+hbo57kjxo8aJX2atcWT4iPZ8eHYnRFg+A/2BiJ+e1xcke4EWZ8lVUKiF8QDNzdUyFtPgdBRkE+yCzDne8m0GwZP6mQPtsxrYDPn2AkxyTFsKlZJPpPSOM9u7HBxxlnBAn3U33BXUXuSkr9ooKH07saxdZ58E/lry2gvw6/0H3vmnWvPr1gmbwa3AEVIB1lm50S27d8DGzPIwVkAO7pze3tnQTulO47ejDnpu6ChX04oiq3YsrGZEgEhBe6S0cf3QEn2vki3O8gtWUgFRAhKgvAjnky2HJVNGXmQfMJWuWL9vG32gOBO8BYgPu5Uiqkz0Hw7kwek0NRLAUmxgvc/SVDzp8AMlhPuvrRcgOGLX/7BF5JDISuDFbnDQzufMfE19ekInclpX+vzDvS0xsrS7kgbG9sA7RXHHzhhRfmL8wpyHHJrFn8cKkTwvYaTWY75MkUAttBS/74o7W+ZVf7hwh2FKV7XcM1V/QlXeZSscu/NZrXUgG5h+3BwH2KUH5gAhZkjKQxekQUcJQIf4S2SCAshyiOJS3fasaqWUbXIP9w59l+vPxAmmCL+B0EdnYSjKo8lsHPgMkWjBirf7jzZMgk3rEP2F3EKwuYcD0RK/w+Cxdw7ymFNdXG0sWBwJ0/Zvj7mlTkrqT073RLenonsp3DvbeVsP3I4RdemOweaecsfhEOLlVVy12ayr74sKN7+eOPhlC4p7cB3He1HxDoTsL8nrrah4KoDclNYZvGdZcFu/CfhjjzKHibX7gz9+JCYdWYIDbrGMCk/4gNigjcxSzIIqsZC6vQV6NI6O4Z7tJICA9ZVUj32jILvA4Cx8A+R6TdHHL2lj4KwLT0qUdbbR7n7i8Z0lZcXLyWDxXrt8O0uS2/Hi64g7c0RY/stIDhjiV/6cLMPl1F7kpK/Su+mZp+rLKylPzR1bsX2F5/5PDh9xbnuBv0axt7HI5N1TxLhvXU68Be2Azuv+6pryD1Ig/UGSKNs7WahrQg0t15bJcqutxWWpgdy8LqFAgR0U5ryfqCO993FOzu+EQah2OHVQ/CDkRilL0q0Uo7guKrctMg+YSq23GqQUY99zPlk51rfQxiEIh9Tob0McBRqZQx2U/N9zZ3j5Uh+ayeKC5eJXdeGhAm9REHuD/CEyFZFeSA4W6Ub8PBYgVLFbkrKfW/0HBfiXCX2V545OjRd5bwKFs8uOQAS8ahiXJuh17Yhch2Cve2+uYjq0m19xJO9xosY9BwTUGwZ1TRPZFDd71XG+DdXXqddF9wD9GxNlKIw4HVEKqyHqtnoKCFNRH5z8CB2HZD47rODg8RRqFICvdsF7gDo13gPhwj7TNYN4rYM+V67td7G0Qs/R/W+XWw3GEqSm7WEYUtuf3Bnf9+xXZM9xQXz3OvLCDY8iuKi21C0zvCatozKSC4s8kj3VmvEhW5Kyn1vwomp6f3VgLcuXpbK1oqmoHta90pvDDpxTqHc9PmHk1SWe1Pf/5ViJ4M6rb0+uajh4+sAbq3fMnpjm34Go6PSe6DL5Mguu52o2EedlXSdTYKf/JFDRlrVwop9MjVKNaa/zTUGYZiAd9hoRLc4+1m/fpYHe6L/MPdTH3q0083ev1lidlAPgZBfiQfBOUP5PwhvCHpEYU9p3Egw/3AXf79juD7ysXFGlMqjn8gbYidxC94QhOuCKPtS7zDXfrrUbzREu+hqiJ3JaX+ViawvaQSxG2Z3n0VFRXLjwLbczyE7ZAlU7W5usqF7du//hM8GWQ7hfu+Nuiqt3bm80D35tI6ph1ou286/uZtQfsyLtUbh1OrewA2zgBGEp2ui7U49Q13vpc4RfBlYHsUg2bC1dOYXOBuutAT3NEuQS/cPs8z3HOFv6ZL0yCjSzegOE142ccg4EfWATvLJX+IkDQW4U8je4s9LRC487qLNqNnSfHjRiIkBTSuW5FZ/IJ7eCIki8PP8gn3JAHubPK4ILCVKFJF7kpK/SoMsZuOVaJKdbUytr/jbrfPuH+D01G2tUaT5dz99aEjy9csE267F9j+zsKQR+8DundwuFdjxszxqwqCzJcB/k23aSLOSJtR9KVpy3+kHwcgpYZfuAPWgDw2gavwSEA99EFixA7ibrcMdws1Lpjlzs0QGe4E34LxYjXifRbwS/0ybPleBsE8GjIz2fqfZKdrHbP+4dVIs7VI8wN3OdmUt2Oax7dLp+PhU/xEwZa3wQX8CgzDyWrqAvdoCnccrPA1TMbJ40qESxuxkFTkrqTU37rijqb0XkS7Ebp/DGzfQ9DsBuDkGffXwZnU3T2aLAcp4L5cKjxz20HYjF1CPuAxsN2/Y2wHkZC/5/ibY4LyZXjoLtLdEm3CbUdj3/FMqoGMiRDf+oY7ggN8mVSBq3fhZua5BNc60bko3KfLcI/GNQYzaYCpvNmnBHfZqp9EXXV4hfX9gDfmigUWvA0C/hc5fyYB4mSpCrA5BvNrsGE35tsnXh8o3FnCDt8rKH5JT4Q00hzRxR8sXYA6n7W7JnAf5BHuSG9hQZzPtxQGGtsYI1TkrqTUr0pOakJTRgjdO+srKuo9sj0z6cUasGS2Ol3ZDkUHgO2XShk4wHbqvSy7d1d5xTaCdtRXDrIYNLwZ8FEmZDC6wtPkvhiTSRdpwHsEy/4GqKHCGBMBKj7hzu3miVLeOktDhLtQDWDCnwGcSGm+A8uoei6t8R7Nu1KLcAfDRnpbvt34FIPGGeLK5XEQuIzxqYnLwTzwk+hRKnaWymK/TvMLd9l05/d7fL1w2goab4Nk8wQvQE2GK+jWsGe408GKcE/jmZ56dqkJ4O4nco8WOzEpuCsp+dOSV5o6dbTTP73N9RX13eDJXOG2lfoaZEDW1G7WZEEo/8WHB5evLpK3aQ+/N4P9OBsare5rALbX7SCAJ1k2VQ0NNwUdumPCjKhJd0HwzsoCMJGfgBqjb7oRw2wZ7kOFvsqynT/Ole5kzcB1AheMKBD8zy0zKYdjbMKxJzhMaobL6adDA6M8mwx3Wg0X+1ikCdFrPF+ZQFFuNQ2yPQ2C/DzzFmbvR2BuvJhiw34ZpPcf1BUrsgUKd/wtSO2YnjMSIWkSDqbCEGfJxi/gV8CNadoPqYA2VGIwwD0WdwjEp50FOHk6OzK3CFgTR3j6mmCwCu5KSn1Szh1NXR8A2HnoXrmvvr5+efeR13hkzcv7Op01u8vc2F72+U7o4vF8pny5kES5oLy8/bsdhqr6GLoPiAD/RFZGntVCCtJGCpo1/pqbNW3GmSB/cDfs/ImaSPc8i1laMvDc/9VjL9dGsxOql4ihe7wdLyeKjDZn2+SSvxi9sibRKYL7A2+zYtkCIdjOkN7paRChi6/RLobbMfM/SRPpng93xHI0WBB4FB+IPHcv3a6kZMiXeCKkbqjLtvxLQkVIdGVIehJe4gJ35teHivsaaU/g5COFBw0vcA/h/bIkuIerBtlKSr51S1PTFgZ2Zrl/TNi+fPm7N7peuvhYtaPq261Od7bXfv3nX6shUUZWgbCEPFlevrfWgPsnELqX1TWMCS5hBiE8za2KetqiUfkWi5kqb87gFAaR0WBhDAhzgzvrsuf6TBB6kYzkXLJkRDJigy4dPxJvei4I4szxmojpRIQq1oTM5fzmCe16xki49Lbr4uF9Zoy1Z12NpSYjs2zSzOa4DGL6lFRywcW4a0pDd8mnmnc73NFqAVmteei3+4c792VYrr2sVOa5YDa+VKNAToQ8nWSfusE9JhzyaGJhi4CY7ini1Ir45Bfj1Dnc+deEcA8x4H6+gruSUsC64rWmYxsrRf3SvKd+D8B9iqs3v/hYj7Nq626H5qqyb7cc6l79zLIQH7qwvLxlixy6Vzek5QQMdwZhoMssm+ZBQ1CaqNFoZsupLUOl7nzyM8FIlzsOH5FrJq1C4+KSBl9i028aRS2UiZqoRUV2O2FqbhIHmHAUNcrwnS+Vl6X5C0aNGjH4MrCEhoVSuk9xLSScPQIHkRsXNzhVH+HFLO9SzttB2VZNHgUazpt2e587F68B4FZUfgp6LgTddNfDlOvpCjxtCvfAQwNDXQuKkYQYGOt4TdT1a2Hyc3BSYCOZYjjc+VB55B7rUp8BK+kouCspedfUpnQSuPPY/ZeOPXv2FBYWPudiuOckvVjtrNmKcbssZzVsphaumeh7EYHQvaPOgHuPhq77yyHBGTPAH6S7f2GQTeEu7uRdFMr7aotciyXGTCD3HRaBoXuo6RJNFqm+LqJLKCIDNXAMa2Kkt/uyUsJQtMaPEO5wQxDa+ClagBoa6hXuPGsoxvV200MJRQm6mekSk+B6BXNlWJEc6RmI7CVjKn8seejSvIg8lyDcpa+JR+4slydSgHsk+VAFdyUlX7upBzZWiqH798179tSvLnz6TjlsvxOKyVR9+3m1Q3PfTN3+fkfhuiI/J05n31tev9GA+1dOjVR2vyaoY6oYYgdO99E0DyVCgrtRBN7LM4F/uOPuJt7Uh1bFc7jTg6MgEronebuv0XQ7NQC442qBy0VU+PQEzYfmr/U4d6/5MqbJLh1j0ZUBihrodl1+RvIraEqTCHd4jdUlILvh3qYWSUyn6DjPXxMfm7jRwWpqKrgrKXlW8h0d6b8QtG/UA/fGvc3N9S0t916YLGe3P7Wyp2fz52Wau8q2fkc2Ux/1dwz2vvL2j3dIoXtPw/ElgcM9hECY0X1kgJE7zbIbphkai5UTORP4qjEosFVjGGTv0ecBXxFzRmL89dxiiKCphPTc0UhvcIcb01TK1IDgjlUI8I6X+hj1pPgiD3P3dZJgoiZpPJbeZNXI8IySa8LSUH4F83bG8hdh7liXgJYU8/ZsFImhe5znr4l7RmJGUzheoeCupORFS5qaOjeCKnVt7GhubobuS3GPurRcqquqqd3t1NxVVb3t0F/rHrg7xJ9mt7e3/S5tqTqgwkww5cM43addGQjcWQ51hAh32uBDgjvSPdBVYzTLzIYxeL82w2q1ZwsWA7Gd9VP2s7w/EaCLBKUXh/qFOzu575fuafmJifN8zB0lZw2Z5AeBWUbRfGA3WuqhJs3bFewRSIB7KAE/O94Ebx3vDe4kefNCj18TT9Q8N3ScfGO4QsFdSclH4C7YMqWde9vaKsrLn8yR/PKkkuqems/5Vqp0eunznQfXLc3FQN+P695esYV6MuQPOaZad3xIZp/oHhE+LME/3PWCAKM1Q+dREMGtPNwXQOl31RgNdjfIJ91TzaAsA1QYuGMqIS4gSZ7hDidc8agqPBT4ndzFAwbiHf3RPSUL0mYyfM0dJWcNSQ8Ol2N9L9pVg4XueCSAyyZdgb7MefxVmPsZNAMeXhBuLot2mxrm+WviR9giLhBuzK5QcFdS8hK4l2DgvtEI3Nvamst37ZotbaWC3d7zbe1Wh+ZBmzZ/2VG4FEwZv0q+rh19ma+Q71/1YPmwDUtCgqc7AA3siyQ/BBw5E4vwAodFuOsg8nrfYeM077p86rXM7SYn5qcx2MiyJUUSxYw0QEVqPyLg8AR/6BSbl0WDlhQmddOnXeTLILpqtn5HNujwaR4HPRQbr05xm7vPkwRRi6WPIk8dvL0TltmMGu/9CgzdBbgD+GmSJKM79+NF0Uz+YV6+Jr7wXMyvgMBduTJKSl41ueljZLthzHxHAvddu57MdDmV2rP7m281T3JC4N4994FlIQFodkt76+8scv/qK+LLODeU3pAZPN1PG0SCd8iCSfWKwAtuuBrSBVmFrRmaoTEAInyY93HfYV5Mb1vqsAhagxJbDpGVYGqCe9g+EY8ahRsp7ecRU+YsCjgau090/4CbZ7Mbk/GSQUwbn+BlzRp/LczMuCMMGouVXTjSfSAmPKs6jc+dQdjHIeDYgWHXaoIWw+ApRDm7w2ZrgqbqV3D8j+GvsqLtIDZ5T4vn5bDfABrt7WvS7zvgYvnGypVRUvKigleaPgWuU7xj4P7z3r17oITjjfKp1J6ardvLNI/a9O22jvaTeYGl1D/Zsuc76smA0Jc5XpoS8ClV7o+jG4F4N104dJzNlX4pFw3DglxYCZjsOs4ccx7TmBk6iNzvC8kgiGxC1impLqxMgJtihTLwQ7ACOxtC+JQUm4D/lPHTQvVyAlezz5xBDHdsJ0LpTgY+8cqR4oivWowPBLT+LQAWBxE+a7zr3MZdmXQ1DIKxnfUjgesh2IfLr0wQl4CJ5OwnaurYsd7nLofuuL5NPW/s2ItA5G3XwnwZudnvntCdXiBfwfF/xox/2DuTmJeiKADfmucpNpYSqahYkdiIRISYgohKsKISC4LEbCHGhQQLESIkRNRU1FizhqpSM0VTQ6mgMRSxEFGJc8+7r6dXe/U9GuP5zJx73nn3T753nL7X0n5jpVAn2V1ePLuUX4bH9JIvNwDD5YpqpXrsC89g+HcJROBReSrDMNWZkO4d3qE4IDmRzeWe+P2LtKdSL708lDgbqe724LHonU+BJc667+4L7+99Kht3BOcyh5LT17txu7J7C9RwY1Rgm3ZDfb7OFt18vqHQrjZBC+PHVlhzaYht3BoEIq2omldDXhkrX9SEvF5vnx6Ytb9vJLTAkLQ9JsB5CJZgS9jbAwJ7dPOiT9vjgeCA9iFbodtJcGrVEF83mbyPV100WlHisiL6evtbRfTx+YZQEXgWcBqYEq8zoHfIKUvu0aO/FwuBSrAKiV3Hd3pd5e5OeOwOcGGA23dowzyWY5X/MaKJHkH6b1qx34B28n19ffDr5R3ZRu6YeuBWrgIqv0xleeV77NgR3LgzTHX6LceJOw1mdhzJZjN+v38ehQyY8/LooUQ0uK06oWPJh3u+9BXOGLV37+NztttxLvNy+vSp3YXr3r2trUBlmTYlmljKsS1MtgRgpk2qMuQtpQUFAVZOSooXDNUyt7BCVWQpSIqK3qEXV2CXjYLD4Q+u6ihXqXrtcu32vmYRECoTUsqm9lbohSBUh1pV839F5GZYRYusDtoQAQiye6dWtN/YX5tPHk8J36Uet6y5/mWqLA2wL1TcuDNMdWZZjTsNZuLPs9knhQI17uPnvn95IZq4vM1E6FA8i427Iyat3HsjjGK/dOHYhaPyLQiS79eNEK7waHq3LCOnIBL4lbplsDDKEkMb4gd4kN9MeTEtOgTSyrwItpPNSdQISlVFUpD2yUl4SDKxdv1Qq6heSly7CHWxoL2wcyKYkj6fr6lehzBBG0BupkV6RKuqEbSH+n6bT94yO5aHlerLqpTWtJP8FFmIYLczjJGx6d07yjmwP5/P+QuFUaWnUjdMB7fHjhvdHtx1/N7jL2uEQwYuunHj8AWA5jLb32+ZKAi3ekcHguElYDSgGVpNqazMlhJqoY1pUSGoVnnhKGF5jHpwFYoVYKQ6Mn3gnwQ/7I+WINoqlVrJCsNcFSFI7yocsQPLP3qQ6jBsKv3vRR4boQ2r3PnqERSAaJUaTh4rpQ2r9mXS8zYsRbDcGaYq4xf3PrGjvHN/9DSfv1EorBhYeip159FL0cSubUaCodCVBzCVccrkGw/SaiYjf0CGc/fuLRNusZVme6gpIO8ihJ4OsJVD7TKGAtDJkxLMeoe0LTAtYSUlV5GEsYJvgqz/MSgalI5JB6hcRZmdF0F7QUpWcRgIJ0xQHUY8JYfCsSUtKyUrIMAYgQGG/aaTN25ZW1ylLas8MAJHZbczjInufXq/CMNYhjj8/Hn+VsA/rvRUaurCuUTi4DYzwWDk9I2Z84RTRj14kKWZ+9EI3G0zZ07n7uJH9a4004jAZpX0QLJEyIoGTGnRY5RUFUCe04I0aIlqjmmVXi9ldlaEsNErwThMaajD4b4CVfdLBRgjjPttPHnaMsMyylsewW5nGAPjl/c+DHIPU+d+5OnTXCGwdJL9VOqlS7eT0UgQMMo9Eow9LjiX+6THDzKvlNoBOXS/92wVDd3d6p0001KBxiGzqziN79+No9tLJQUq/agVgFCQ+Zh0AFpVmdlQRE3xOazDjKeUjDK4jDAck3bX+ZYZ87LaGcbMjGLvk1rn/uhhOn0/EBgkJFPmvr907mzsDLodMcg97qZzH7j6Qea05Xb5TQ7d379d63boTg60MLSoem+r/6X7tJpRTJF0GMMxTasozHkRhnCzLR3asKZBazq22jE9ppN3UWp5BKudYQz0G1t8FwawdUeuXL361B+YPwnH7YsPXErFksciEbC72e/wd+cfuJB798mZzCnq3OXQPfH28wzhGuoFDZQCKLYOeR1FGlLWWOW6CNKmKVz8zL4KTcwuIirqc7VlRmvTabLYGea7jFhevBZGu9vcPHIkD1OZgfhUagrcfv74wYgkSFTKPfk4ME84pn8mk7Y7dwDynXv7uY9A6mF4o5OcS57k5CQrhbq2Dq1yX4Q5Zd3t5/nJCI/jk9d/XysXK55hqjOrWDwp1V6ye/jm7t2ZQKAnPpV6DkYyyV0HJZHvCB7+cOjpninCMVNyj/N24269ohp69mHuQPFn4XEcWOf0/4G7al6f/tN9YZi6MRimMtpY5tGdO7ufFPzD4anUZ5dSifOJUOhgCZPfg/CKaGakcMykTY9zr7Ftl3rHofvph8tHCIZhGKYeDFxevB4GSO/xK1eO+OEm93nwUur25PloCFFuNzXw8PPl/GThmNGzc7mwmrgrucfSG+YJhmEYpj5PML07qdyuiMfj2UJhGryUem47jNtDiBJ8SCm+muCDHzYKx3T35rIn0O3IPlgfTT+dIBiGYZj63Aj57q7euZ+PnX9SKGxam0qdTcZ2Scr0jpDfSfAwNX/2ebyLoXs2e025Xb2ieuzh826CYRiGqQd9itdI7Wj3ZPK033//xfbUAbgFcpdNiLAHNFr/Lucqb4cJx0zM5t+R2/EZ1Yf5Bd0FwzAM8/MMnGuN3Gkw8yYavel/8DYF4/bk8ZLav9U7fEciiKX3Y8+6CseMyOdf6HI/eCS/6U+7XYZhGObvZPzi4klb7Zbeo4cOPczdS+08f/7s8eNod/K7bnj9FpqDcL/M5tHCKf02PC+S2/ENCHZnN/HtMgzDMPW5y/3dozBAg5kLL2NHDmzfGY+fOa7QBR8yDGgOBuFte2cIx4DcceZOt8tczG3l22WY3wO/Qw3zrzG4eO0ujWXuQud+8MDH7XCXTOzysePELo2Q1sCrFh6m7qH36/oJpyxPl8l9H97o/jg3RTDML8YjEfwmZMxX9s49tqkqjuMrW9tV29oX0wmLkRDjYBrEiQEJgWGIgBGYjkxhBolggo8Z4zNR1BjjIz7DX0RNjDnjVRxshTnAbSCdzFaFIWw4xsZD6CYayphji/zh7/zuvT3nbr3r6bW4tu4bsxi4Z72/y+/3ud/zO+f2pplmX9nR0sJZ921/NoSgJdO631eL2uULNoDq2coqB3i1gQc8V5U/nyGql45d+Y3B/VcY3djWVpwxqlFdRY1+xeSo/i+i66ktSPcWeUl1d2jDBn+TP1gL8tUf2B8AEx8IHGg44PN5Vf0Z72C+Q9c9WP7oPGG4X2Fwr6yspLtt2tpvyUgvpTk0Uj88dOyjXw7/Hynl0yWlBN8atqcFBHDHrsy2HaENVQHw7aCGgN/vb9ry9yXU9qaAj8GdIZ6ppoJUlItb94cVuFeCEO772r4eH38ISWu8DFRpwL90Dk/9vqjR1zpFm8sk8veO4v0/1MvwfGoLFcCdEj50+UhVoG6fDzy7v7Gueeel/p7ugVXtZW0DPWf6twRqvZvVDXgv/pBVTcC63zNPGO5hHu4VhPzSfvwJ3WnIs0b0cCaRz4n3rNTvDErijE7z8DSl/aZX4fRhSo/2ztA7dqKCSYd0STHRzTIId2R7R+jikY2tTQ3Bhv3+uuZLQPaBge7usude/+CDt155t6zzzFkw7/wCqxrwNTXxWPeHwxLcKyNwr28/tVYH2ccYBN5iwVKVl/pPBdJdkJOGQa9QSl5PmObhxRD3qm4QvnIcA9EIPM35LvheGP2/O9XTJcX07JW9KrZv2NjY1LCv0V+3/Scge3dv38CnjxQvmkP3pb985+tlnVuCNUh31JAuDSFkV3mRoHX/RIJ7JYN78NBWQbgPwUuUN+tFe+WzlrTLcUhBx1UdcF7yy0yT9E3OaR6eENuzMs251myQNdecmcXorpE+gko5vhtQ6oICJchps5e9p266pJrmw2YZWZTtm6DJvs/f2vrtCUB7z7q+jx5ZxjfoPy3rbNpcvUtzi2QNIRWbvlwpDPfvObjDWF/71jcmx5WH1yFeRN8cjccPEZfAKJ0vY2YHs/qQXu+fKb/aHz4mydI5zcOLKYXt2Raj0WYzGi3ZCt2jR45RCwiOS7XVWf7l6lErikWjv/0FvzeV0yXVNBs3y6D2XAa2/9jU6G/dTjvtPb1fffrF42rWPvREe9d+r5fukOSktu6+8mlzBOG+F+BeGTfcWR4yuoBy8SfmDRoDLhf541GZkjQSGEepB6Ji2A2+OlD0g8xmq2QKzXTKn2T5nObhicQPwAG2G21Oj8vlcdqMQHfADgtDI300hUmVenMZVYhKQakrise7/vaXOYXTJdWEOyEl7Q5drPI3HW1t3ULR3tf31doH3hly/Dtr23fW19SCogMeNszUBASt+4fhn5HtDO617YffmCO8wUFqlWK2WBRB3lhpOkbwztsG6fhcKy/MYExgOoZlMPsk/CCB9TZ2sFL8ZnpyFjCF6AnhvGg+J1E6p3l4Ysb9mixz9gOFhbegCguB7lnXsDDUkWPMudZYgpSSczBF6G4AsRDp7dqirijKYmq1ddNYYjtFO+SLnC6jdL/KWvS2AveDl6ug3X70KPTaEe13MtPO6/H32uu8u4DsGoD3VpAfyqeJ9FYmfxjewbH9VwZ34RkeBTtOqJ2KYG5twcxhpYXCxMXjgUa8+ATGQQzv8EPxG7KPwQM06pV9CjAPhR9GPaFkCi3MFMarq7Q+lwThjezKo2TcrZabSEROi1UKQ8N1WiDmWIJjUsqcMrRDiHxBqSsqi92sdE+RLJAvID5dkiIT0lIr376yG9m+48KmbY0/Nu+kvfa+vrKSOydrIPn9U82+XbAJvjY64Ks3i1r3ReHwQY7tCPdDAHehRMRFMMhDnE+bTCa7JPg/nFxbsLQY3WEAJi49nmaXi8qDkhPYiPXI+60I2+WillNcC2D4KVJ5sPqHT3MtmDaVkKdXPGZjplDn7uAEf/1JYsIrXJFHyNSlq1l4Ix9ZHBfgWjDuNg7uLhuEcS1eA9VlkrlHqedBuaKIpZTNKF3OVKC7QfbVuPbACopVlBQOqyj9UySjbXnpEkKWlBZjumCyqfe+J/3VSiGtXH8M4b73QlVH61FpGbW3+/jWU5oPE913eOeBzT5QdMBvrq4hPwh13ZeFw7sZ2xHuPiG4j0HK5GIiuiALHQ63O0eS2+1wQD56EO8471MQTQfIx8MIlB3F3RKMvOfn2W5BL4MFq2SkBvxkAijymEyL84ikUhuYwiwcnAxPlGRkJCS8KUTS08UsvBGPLB7kgHF3TiMRmdC6s3sUu0zoOhn1HNHEMgrNaUp0qiIVhWinEWJBsYqCcFxSRemlO2ZPFlxp23wiaz6my7Vj0mEHabLqeQnuP1/Y5G/aeaz/zMmedX+tCpw5rv2k6PKSMwGvD6QB+OpqUh348nmBjw6HOxjbEe5BgPvkGC6DEcnpgTyELByfP65oAqpoXP74sTmQjhTv2bmZOJEEyWx3uvD4sZzYLcFOAR/BO4xRkh6rGswMFizNcKzXqKQE+OGxTPYFS4iiNbZsNljXdpbEZr7B8O/Dm0kULVkdCW/EI4urK5NtdHFwt7uM2aq+jEG5TBR8dsQel0HXK1KllFtJQYrDJLfuWFEQIFdRM1QFda9UUZAcusMxZIyRpkjFJKJimzLTS4JMSE/dv/7cnpaOyxc2NTaf6O8fGFjXV3bJS04cOvSg1ohXX+naXx308XjnJFn3I+VFAjvsw+GNCtup6ENMXwPcBZt3WGoL5xbdQQbpjnEzctyYjFacSIJwhJFo6I4JBePyJ2FBusC/StNpHIfdHCt0VaL4jSgzfPQmK9jRS6FS8gnDH+vn6tnOktDdF+yUn+VO0BMzvGLCtADCm8hdGxbeCESmF+4UOabbWBQOE4UOi4KFTuKWdDWTHe7IdqWi3LNmFpBByiuYPcPtMLnYrV/v2oazlERUKqfLmGTIhPTU/efO7ekIvVhVt5Oivbev7NiebwjZ3t6mCffHX+msC6I0CO/1Em95ecyu+7yZ4fB5xnaEe8Pxw2sF2I42Clz43ClauM7PcdgxGYHuIBzhJMNr+s0zFMNllXsz1+F0fA07ZoXLxggWLX1tqwnTDLB5/CkuZ6ZQz3YWPKVEwl2yU0+TiBbHDO8pdnCB2+2eRZhKPSw8PZGNFNwtTh7ubujLMLjz7WIStzxo3ZO7L8N2gzoB7ZMKSHTlTZlr90SSw6BziuRZwjsJYzauSYBGPBPSU4Vd52AL5LamExTtvavAxrd8T0jTyZMvaI146L3TTQ1BRT5esnmvrhCx7ovoA6o83Akh+06VPCPiNq0WYHv+RKKtiePdCt3BD0BTxmIzkZiaWDRLmYBm4sBr6Gct592qhy24RVuac83nfhudwE8nTIVGZgpFK49twcPF3kT6GrnjXMpPNWKFx1VnPoQ3njDd6lHCG/HIBIVRAdztN7MocuwAd7wCg+9rJG6ZJBomM9x5tjtmFZBhlFdabGTJoWeKZPQMufUh3Ec+E9JThZ2dd1/c/Xd/N3Xtnbi2+hsh/tOnP5+jCfeTZ2uDIE3Ae6vJ74GY1n3lh6G9lYPgHtha8ojQqrvNM38JGV5FOXYsLvqEEiaWnYioYBJ4fiea9ywYmElHTuWIZnIa+YJVEwAqpIA7g7GgCf8C7mybjxUf/DAncG8dO+fHuNuRO0Z4iwnTvRCdTrgbNCIbCbjnWjxquHssuQzuXOwkbsHFTH64y/MSj8mRn0diqNRixsXmBML9OuyacpmQKvtHU0CFncf8Z/sH2vp6y7oA7VR/gIPu7NR8U/W8j082+4L19fVBLcJT614b07o/GwodHAz3usMlXwg174pvJzE1YSF6d4A0RbTN5CBiKpgFvRlq+nFkLtjVmdxfQk+Wc3ZqZwuzgwWE6T66ylZEmFbH15Zh23wS/uAHTy0PV9MzYoS3lLsSN0B49xKmpZG2jEGI7boiSzzcrUYV3MfaPUbrYLhnZWbrhDt0HpJ5RVWZklHfPoXE1BpdfRmDnGpqmzQV4Q5dU7DtI54J6am56y8297T1rOs+dLBF1nlCgl1dny0aBu6U7ajofPdWkIr9F5dlDKuZoVDHYLifLSlZLLClKvsuIqLpbruH7pmhD91BY9VNBJU3Exv22WYzjrSZ+M7yQlr8nH1Rc9KezzX+gX4qbztVwxXzUtcEst0KCwxSX/w1fPBjmMw3qCW4V2QKP90ZPjyuE/Yghsd1nR6TwhM7OyWyFQRlYZElGl68ROGeQOc+GO4jseXPgBrOLImxnSzX13Q3RK7hNM4LOI3YNAW2YyYUE9RdApkwumtSSE++2XoJvvrxr1XH9nS0dLSg/iTk93Pn1i8TgDsomoPfVUPId+VrYnzvQSh0fjDcvy05vFzEaEwlQipyU+9kBtGuTA4R1vSFUmvGTB+UAs9fwPVl+O0UiuTTUh85+wbcaMnwV2iz5Kq5aYguZm+x8oxOuXNyOzCQPZoVvYJFv4ebUcu1mOvLjB02PO7IvBsxvEmsK+PC8JTHUqKWYwb8x9gOkSnLz7bokYkUMPtr4QvCx0UvgGMcB3eHC4ic6J67gT8jsX8g8dD1P0tgYIl7M4mtFU4lHpDw+Rnk5g9d91qdF8mf1VLPVF7XMjrlpfqbomeCxs1xFPCamvwPe+cCXdVVhGGoJTaVhCQ3Nze5eRhegQQkUKqBBEKAAAEabHmUQhVaoaX1QUXtg1JbarUu329dvnWtg1gIgkBaIASKSQDDS4KVCIXwhgqkxapVulzL2XP2uTNzz9m552LAulYmWFdLcrNnn32+M2f27H/uePbtC4D2f7UeOH78+J/q4EsZiLLvO9f6sQ7gjlA3A16F7i8+8osOQ/d7nz1/Xuynrocr2zpr6VMxXvBwMU7/hOXLilJUYiYLjt7ABmzQ8m/9SpPhuaBUCfCNtZBlI9SOW5b7DKMd2U61yCaFVL1zYOoIvZonqweNc2SRQUfqxJKxra6hGu66/setX9nhZ3WQbnXF41UduseyMmVh2z0nUTtwCrlnNHtYTokp1N45289p5JlvYXQJSQMCDBMSE+6dUy2TpM/Yc/Nxga7ddVOrAoOkNb2SFfnx537FYwIv/Ik1PvJaZ3/uvEvXytypXqpxQwxXQmrCXRruUSshht58VwBvsLH3l4CKDETtW+qO14Eh3SF8B2nHg62tn+wQ7ocOHeoA8JtWqNB9VIc1mOfP7xeBu1ILbpu1dGHsnRlYjR+1uMFZi2JlA8pmR6XdA8mAHCA0VNek+IY7ohjpDpIEiQrunNmVKXTMRdwjKv4RWZlgIAVPMhbdPWLE4FFT0ugIJ5poduHWzsbyY50OdQDq1P8IAXqx4OVn0R1iTjknpnJmjwt25J7Iymj3powaPGLE3QUJ6J6Eu4zVyXSWtUd6ZPtZVzaRtI+H+Vei9zkh3WPAvTPq3OlxRyNCi9V6IH7Xaa5p4r2ebq5yIbqytPzzx2WDDe6Ta4niRZ0zucn3+Mh1XeSWMHnoiBFDJ8NyUR8WqVmIvBR+wL3GxVWVU9jV1MnE9sLTf/3b3z91clUd2p8ieIdC96ZjJRXmUsiDh7QZAb/aUqH7Bzt4aYCUex1jO8L9hVdnfWmmrw3VpCGRZTguBw4FogVDmeHhYyxupZg8vwVzKyH6z8+PHt23f144MzMEVlU8YVy+ie6JiaqiPoPnZUQltCypC/CsTCgDyirBFN/xfJS+NWi9k3g2kx52CM/YPt6ybYTNQKFvxjsseH+WYenTsBNK2StLqAP3SnlWxuTeTRIpdD+Cq47djFnWdNp+DkjPpHn64BXBcQjEmhD/cO+mj1bccbvSjiwCy8nJKS4ePnzu4ifp55YsXjx3+PDiYvi7IjAQmESFSZLAoMvtr/WAf9eFGSeefpfIytBWEVlZVWYI7qmAOo1bPn7cbZYMqq/l0jgHCW39D1wuTsmCvcadAON9XmucX1V0R1zSrmOtLrt3wum//ePri55Z83IdmeL7caiF3P5m7TcnGuH+yiFuXjmaTXhMdXJHapTnay8S28FWrFix7eis5WP9VW49+AmbRYWoHeCofWQEM8MTXFn3RAy/JdyB7WoBB5Spx0LljLJoumPevYcNd5mXSde3f3eZ30hLruRZmWAA4JemRZgSVPW8o9ziFs/WhmrguGB1EQFudWU4QxuJDIS32QgEu3tL2xuU7U0HNAMiL2N2bxzPykj36HS6NoqsNGVJBR11mhNFuivIPEP3nb4YCkpEJTLiNxi/v/1NCFoMuBu1ZVCDAAKJ/n0X0889DksqnImpKqYtQwIY8nL7aD2A5t91tI4mnik6u1/J+CbWsPmwnaK9sDV0ygsH6zN4CF3nVdPvpdGZuFu5ekW6Pgn+Ls32DGcJ9o5e4+y5RYrT0VPYhXdhE5/853dee3rhE189uo7Ajn/Ujurmt9/+Gou7pebvqbPbtm/fLvh+KJrvL/wFjqkuGWSucn+29vxOAff169c317R/2deReUDD/ZjGVksQVb/A0iEoSMmQdB+Woc7VJSqSBBjcx8CNiAs4QceeAXgsTIrC+20BpDtIiiQHKnN5XiYhiRIXApLsGfBwZkYKDixdr2YVqtgn8vQ6vVXL55IcPTZ6wwVrh7dYqpOcken88j5BHBIsfXyhFdxQt0mW67PMquJEbQm3eUHunvkZ4Okewl1zDA3ZrJmWpdt6gN2CZ91T6IUo0/Gsp+O+jnDVv5ELJiV6TmwwnxMi/TfDXapCosfJyYEg0H0u/dwce0k5yzHJUSlyMMsut1frAQpQyTF/rhMBDROvJZrfLSSI5Qndcn7LVNsvZXhPKW/xAj/40bvug3WHyw4/OZ7xkZIHyteAgcyHfa3fpdd4laUtW67xXjKCkXOIl/T/Szn/htjMJ//29+VPQPz+1ZP76uq21DE7vhay34+9/t2PmOQHTp3dsd02cwC/ARIzzVc+ae7uV1t7gNiubPPmTbtntQ/3UZxtF9HdY338QSWyauv1KoCrhQN0z3vY4mdSILnnAfe8TL2Ak5L0YwHwXiV1anqnQIABBp8aLDPnZbrrszCpInszIRTAz9f4g3HiwajIUrfbIqAiOqpnC+VhWLB63cNbQ2iGpS1f0QPG5IADioR1eOaWtk8iHW7j0o8MvJzlZTIN7omszOyw2z27+AGjOham34x8sUdHBgEcXCp60cljnmUp7/EDsDFGFqOSsa+1JLavCYkJd5OeO35mWrJaaQLuuKTS8CJqPXeNNj0g0kr31XoAFPZ9u66D444mPlFKEMvrP4q9sC4DtuOlwJsKBwwGY31Ke4Rkj3t8zm2blJ6GywXhjtVouMbnWdoGiDVOzuEHkN58kj2D2q8uvHO795evPT0NA/jlNa1btki8H1dgfv3sZKO2zG6EuzZDigYKZjZf+b6xWP4LJedXCrj/BsorW9tnfchPySxuxz04vUeSvrpIALVtihwOL7PIclISvODePxwEcqu/cTpOKLyHwjJ4V2l3tY4gsphhzsvYjLgFGMGzMpXqF+hHhwxt9V2o1jUKouNfq4gvIkavAhLgGq77ABvUmLxMDKpIvRKjKMSOo8RNH2Y/925hyvbmvMxtLCY3ujeOxfeZbvccrQdq54NNiewro3juqOjjz6jQl96x+mrP0H0V0eofA5NUMve1JmD38jchvuEuOzFloTv2ShvO4O4sKb0cdR6kVyTgzJJa6QmOULpOMLtaD/h3Hb0h+rknPhXbY7AGsbJaKJ3XuM/JU5c21X7K2t7aZof+ym6Oc3xIXnh1kZE7ThTes2qNz47A3bXGe/FNeLqodL/g93X1ZHXsiZ8sn2anTAY9XXNhi7I69aXt95CXeezsvLEGVci2vTuI7gR4SfgNL1jWI4+YQvfPPFuycedLfEP199u37zjVvvQpv+LTuHjAnBsJgYIrJTNvmIB7qgfc8yDwTMfgQZm+WyGAEDkdzHErgCnEGvIyxqxMKAOfDPZSpKQ0hra6LwIudJSjR9PCwzbgEvGZkwYIDPfPZS8c4VAw4Cz9LHA7cqsleX0Y3kTmQ3/E7VGGvIwxK+PtHt79Gq3U5woc0UL6pHieEgjyV6zREc/SbO/BkEtgnErmvtbypSjLz4Tg95rhbuqhivGwzSQOd72k7I5emAnWaI9gCQeE40FVYPCWWg/g6PVrh4aYX9eJnoaJ1w8TlCCOKrvXDzd2FG0Z+uHsdlKCG5xCn/QbTLzjw1nAbQs1HE13uMY6HptP88jXOP1wpJUIXVR2SXG4XaI0aB97GtGONrembUs03S9CrcuVwz+/1yT5C3BXtl0iPgrwm1dbe64smeldK1NRUrv2JWWRasgdzc31R9vNxTIURukoSnfdd24knaNOVUvl4ZhwDyuC0QLGJk3I8PA8i1khhqepxrwM7uDpisJ0mZUJpqhVp6lmr0G7sFffHolYOABl8EWjsgeP7AM2ODt7fKkjPAyG7/6AwEdp2HrTzpHXxvG/iz5MaduPz85WHzZyZHbv8eW2yiXdgN3jystI92RWxtO9njidDpt0TyIn7RUIFPUePHIElE2C+qaqbMpbZhHcmWd2ZkNxKZ0237KISqa+1o4IFR54dCZkqiP2P3Jwdu+iqXxCevmCO5X2UemJ3g1JCRbTzw1wlpTDdedRo7HkXO6cCigwVJadnVOZwWVIeesBgJh/13FVEf74xOPVKR01FKZ94D3vvV9o9iKHXSWu/Zkf+BoGRrU94L6e3rjHh084nIUIksGQ7Zl5SwjuYo3jlcJieOrgALdM7+yRyoZmF5biIxKH8f/R9up6273TWEyeU3PkAMId+W4D/jiUqV+9cuUHJrgf3hGx7cYQfsMma8UjV+4wnGAqeevSzpdsvNuAb2hsrG1pJzV3o8lO9LdScQVWNKh69vCAWHDPz8xIRmkLXLA6saGTILyWsp8K3cE6yMt0d0oORFYmNzMS2Q4cOHAE2MCBQybjUgWLiGeXjnMpW468u0gBLh0sQbG9io0ndwxYPoAKP26IojugHaNUW9v+NrdQq7pHaOXHm5ch90RWpiLi3mRyz74TMa6bPmTIkIHK7ozsWJcPpXef7BDUmlTzFNjz3LOB09Mxl68+AP99yMdJO5fXTE3WvwXmYrpddagDX9SvhSKPof1csp+lakI0TeHS+4E71VcSr+0zzxzutKR6iZp+glqgPPs213AwBYEwZSLTPT6OjqFn3q5PJ9cn229MyPbP6omfHCkVmNqb5gAukQ7dJdwDUQnLtCT76dcrqqicpnc6jW+y1/jIAxgQ0t1+IsLPqeWCFxn3u/B9ecZsFjeINf5xrJvBAEY3SykfdVv0EsfnAATvXXQHE+mWO0/+YeOWiNXZX5BS2fzII+/3JO2DNRfqie34D/XPbXu2HRKE37Z5hfW7KwPGeoqGlZQcOLNz586Xdjrh+86mpqa2We1zfQxf1nzRnWTfcmnJAHdZ6O4Bd4xOMeSg8MrevsxcliuOuOKuoTkvA6ZLDkRWpiykMzrpKDRMdcJYIKCbQhX2M2tn462ZkgEVPGaz00o9ke1T2JqX/IBtYZMQN2WdDXkZ4R4b7aSIe0wsBBFle3e7pW1UIIBpiErhx4RwuHpArtmxAiyxTLaISqTKY+hrfbvW7tdwhAKQuw2ze9t4PSFaDPoWI9zNh17ht2epKeFw50uKfScuLFsrfaSnvF0hbsPqKkP93Ehlunjert/OlpX6WR0ykNa+nvjsXEv2x4gB92ERuMuHVNTZC/7rPcfHPXDGhwuDLrK6s1SEk9PHMpqKGLLsfVf7eT3Ua4kXBlLsB2QX3aVNe+boy1u2YPBOgL8EeZmrV/M9t0M/VHMO4C6soaFh1/YN217YsI2H8JB1X//Iz5/w1JUpqV25E+hOfL9UX1+/BvdT/eNdmo7cAe48teJdCpkfCgC/6PRg5Dx8goz7raEIMczLjHPlZYAAVCwtszIz1OYaZi0Yoj6AcjWAYwwsiyR8pN31vinJtJRNcLf1EcC52zv6xn4Fyekk+2JQNJ/K8zKe7pUyAoQj7onuoz3wRoSHTeQeHhcKqU50xZLkwzXajXBPxqCTqQlT22pDX+vbMShFOGKrzoGW2UaUJ6eTGHRsuJOJs/QAxRwGd7GktDnLCtZP6Uijemmp6humz2vqIIMN39v126NjBvvdM3KFQjjxk2T51wdIlNmYlumr0zI6b9VdmP1Yg/EVsF/vNT7hgRPTAPI53O0ApgDVOYxwx21V2F3D/M3UcaYlXhTQCrDv/Ja1N9IWPnOy9sCBA4B3RneVl9l09eoPvOF+unH7rl27iO2NTXsPrjq4u2nHhr9sOEQpmm0boGnHlVGDPAP318+cOYN413xv3Lt3d0u7QXzAdLg5iu0RPOdTmEaHmCTcKTgVx6PVt1Vz8EzF9EMqVeJiXMS0E+kgSFRWxk5JY/zJTlZrGscUasqdkkLRtMGUZ2CJ02LpHxc6PTi8OyxFK55VebknsjLkHuthhMTsmaXi1ILIRIeVTbCkEdpNcMejBwzHCanOgAx9rQvgGzAWx7Okd8XSloCxYrLgZr9w57UzNCcc7nJJUXt1O93X4bXMzkjBJyPGt5jwYcTzdr1AxgwITy5LnBcGq6J5ZnAH32JtqMInkgIAGXUtKGIf6jm+BAZ3FO/DN7r0Av5SrB7h91kd2kC1WQqGb7qlt3UwhZru7/iWtTfUJj5Xc+6Asi0c8Jsta/0fr97jCt3HTuxWjnC3zY7b61e9+dfX/vXa6Tdfad6weg/RfdN6a/WV79/rcTq1pOT4GWU7I4Q/vHv3sfb25yb6ILuMoeiINb73YV0VO6Gq7hoAoAfcI/iCD3PojonUzHleW6qBYD9DXgZ+0JWVCVKJPP3X95FaTUyB1buhIGCEP7j3SCKWGekulcXNB9ApLyPdk1kZck90H9U6Piywy+3bv39/ZLuAuxUD7il4rIzBndpWG/paF2CAeysYQG6aD+Ug1Emxlf5jwd18+EvCPY0ox7YWke3my03rBSbP0ZhOYZfe2/UCtqzSsEYHN40sx+bDxM/PjZ5XgrsohUwezEs6sRTSoPSDWzTgUBH79Z7j448nNj4OdzwEa8WAe7q97Zqq0jcdhgRDke5Z7/DeKDfUsBby1AFtRHeol1nx+6s/+3w3aV+cO71bKcB9xy5m9buP/fW1v3/1S898+LV/7t2zevMhZ5t12ybL+tXh+91K7hC4Xzpj206b7pdeeeWVEwsWzI1LI1oWMNgVL+oUE4NJERY8AlBdcMc7UWzy634UgdAysWawnFt9rlde5ia80V1ZmWLcb+yBBTjsNoDB9LCjkFFWDCuPB+4ko2bOYqeS3LCnvozMy7jdK+U7FuQe7z5Kz64CVuPY91ErfriD98EQr0klIWLZ15ocxLwMwh1V4mO9GIGHiqXXBvfuRrjTktIrCuONmBLVwyrVoxEFTDEQYaG0t+sFImZQiekstcgtxxaP7ktsJ7g7j/ioYqnebGaq80LwXuZ0miS64yuLRz7qfZ7j4y8DzvjEwrByMnzB3a5KALY7AktmuuP76Tu+IfkNteKaP+w/wA0zMy9aL26+evW+btIW1RQB3FsF3CFwP/3AA8sXzpy26JkjFw5uW//CdqeOZtOL1ubD35wZHbg/W1JSh2Qnvq89ePDgyQXtlHKPHb9LCRG9sYi16rMJUxRNJqS44U7rgPoJqJz9MAY6KnV352Vw84yyMlx9S3Ec6ceSC70RieqzymN2g4KFz8I384Yq+gZCOzGsX3Kadw88221DXobcE1mZCcw92aAORoSnUooYZOa7BxMT7nYdvFT3THTuW3qbYHAvAoJQFp1Su0YUaH0qYA445xvuBEU33OWSYjkMGbebY3f7YY3b+myP0dv1Ir6s1BrPUk+FZFZR+JXZ7l4btKHK5QeSQDlObKmGcBOAjhB110YCecXs13uOL8A8YOMr4nAPpMSE+xCMrLCwLDd294bkd35bwxts02uOriOwO9mZSy+++JerV69KCYKiGhvuDRzuTU21/2r53FOYv1/+4bZ129dv3qENsu4rHvl5tDD85JKSty6eOXOJ4f3S3lWratsX+Eu5U707VshotYlEfaRdnDIdb9/CWT1NcKdlQCs3I5PDp1zBvYcK3V15Gd3e152VGReMFGAKuEeq5ofKsO3hAQOys8v65HK8gQ20OjZ1y7wbc9zvtchUBXX2gLJhlrBRCSjT7jMvE3K7x51n7vV2Kz2It/ZHPRjTJztuuHOVefhy97UuUjc27UgOYaFon8FqQgajA2SlCjlZmCzoXLjLwD3RTx8Myrvbe/8pvPOut+sc7njmqGfPRN4meMlDXIRDtqSO+EZlrnxyxlRrAQKIHWT0TjobEu7u8YnHE42PD7s46AfuqWCK7ZXi8uWWDQCF7xkD5CIfr3aCu0J3uaNa07px44GNLHSHP3Uv/fk3f7x69R4h9tVWU5PTraqmtRlOHDVH4H649einv63PuxZ9+NS+hvWbnEJJUJj542MVg2SNuwrcL126dAb+OLZ23bp1FxYs+PZY32gXgh8oIICVxMD2ATz+BaSpTkw+4E57i3DwUK4YnYHIqIjOy2Bc08udlamiGp2UoNz0waJ5HrjPfrQ6L6wEKsHKC3Ux+F0JCVALeGdBUfHwuUy/5HuoKpujBWXvgHtPq3N8yNk/HlUaET9eNiA3KnTv2WFeJpAr8zLSvVIuiUbucXAR8hn0Hn/c47VkUk6OUsxlt+Zi8gxcmwI7bRLu2PzOIQj1tRb5N3tH1dYHn+z8qsLyyIRUlYnQHfu4XD+4U/a5KCpGnzA8HIbRTCiTsWiOznVhHMEkqD1dl3DHjXoM+engwGLLZZ/AehLxuoqO4GOSL8n5QHc6J8ei95t0jj7I4e41Pgl3Gp+EOwQwoKGcM3wul04WK2G6ZntwMEf7hDC2eAyFpNhfv6lqJ6UrdGc2dnnLqY1gyHfC++XfvPR7CN0/w7Zel1zQcG9UcEeDrEzj4XOz/l0eOfz6oxOtRPdtUA15+GsydJ8DGfeLl5SdUV9ou2trtx5d0F7qf9Sa7RENkQQ8jwhXO59fbCyKwHfv2HCnTGqwWqqH2dKQCYFJjE94y+FBD0CjOyujMKey4dFwT0hPT5MtPb6ij1s75/LvHAo5lsmpzqIGXVm3mCUpb4Ah3e/B8sly/SmYsQ7nzeeBTWlCUoy8zFD2dHK5x7My5F5suJPlDq7IycmYWlQwqgCvVF7fMeyEKsl0ptuup3C45wvCdfNofZqjB4zlMhAk3qUedYVT5IQsymXDCVDGrvPh7mBOvPPgt1UjmDIATZnV8vFbycQuDHAn13P4Co3A07MHfH52Ts7UQEHB5MmJ4rwRT5GX58oHUDUKvKRJvEc2YFJMcKfx8XcPNr4cDne42vgUlwJszkpA3RgwfB8vtsgers4MYhMwdc45PIONPFvvFXXBnZLuLWte1nRnfK+DTDiE7vdR2D35t+dqaoo53HfB/xqa9rYt+MZTJFvz9RPHmtfv0XTfsN5qeP3JqDLI2suXyBTfL657881j7Queiycr47DdkezAE+3FZaIkIoV2zWLBHSwSdQTDuSzCI2QFh0XnZbD27l3RWZkBQWoREg33NOAWJ+VXiGppaLCk77/vwUiJQCivrzg+KEWVlOHhlenWkPsTyJLxHYbKJURqVE4kFbKPl3kZck8SKreSu5ftE+79JlQGMclqjw9gG85jcO8b8SxJBa+oB8zhTshF84A7fgM+jXBVfNS6Z7p7Qh61ovfarxfcKXAv5EsSpNJxGrTKdBXPWWXDBOKbnYS7dN0D7tkpCRFH3I/UAZNCQTWzCGouLUOjpKlkPwYEDRDeYWK5Fk9wOP/1cnxuuNP4BNxxVGm4S8bhTiuhB90F7AFZptXmdTgXrmKj1t3ru2rdIzZtKeRltDG8r4S8yVWodScF9s0C7toaG3af+PS3v9iN0f1f+3Zs2GMXSh7abG06+/ZMuZtaf/HipYsa7fiP+n379p1asKBqbFyBu6P+jxe5Mqd4wOBckcmuUklgLB72DfdeOunOsDMSw1QlcCTzMhnJegfvZldWZhI195Nwz7BXM6uF+N5owhrGKYptEeEsFMrpz+CuVGVJDtXR1FEwmwYhjjZHdBFi4znMD60p4ClB4M7LcPdkVqYsk9wTWAwpuIPBJ7ngPq5SP8BS0exbmsPd9iwVJY/tbL4B7hgeUo8NCXdblk1NyFMP9vCakDGCifSI6uwNVV5CKtgespEGA0IZ0mr+LlGJEvlpynUGd2/XfcI9fxLJsd1CvUndDbKn9HNt8U6yg45UbJ2hxRH0id4Qh7vn+IL5MeGOFxzcleqaA/hKgKWAhWoTuNw8DAtF852Lyu7KCjsm6crLkLT7cy1H9m8UhqkZIPCv4JjqRF0y+fjr1umamuHdSltOM7g3NO46e+TTyxSWKTPTdnDDiu12IfyGFS8efv12phh27NhbF8EQ7w7fVx07dgxqZcRhVn9NO+6wTDavOhTAc3++4U5J98yHWbqX9XISeZmUNP7hlWz5AeXsttyx4f68gnswoAMVpwGBLbaqlQfz2LCxBFnHUpGWOEwMEIMd/SqrItWvMHTYtes3+czLcPdkVmYGuecb7hOAacxHzCsLguU5ninXUQeW4C6vF5oZ7hhdmidkEbuCTnIp9brA/SaPBnYTgO16GjCVCEOq4ikbpFZC1NRI1+ODe5kOHEyyuKQWkHBnrjufMwNeM0i/yxYng+VggDtaPHCPnA/M5HDXK0HdBVn2gb8Af2UeDi7hG47eZYOLOpv35unKywgbtLilpnb//v0seEe8/+nixV//+urVz9vf9MmSJqtVwb285XTTjoZm9YVZmYaDf8CUO31ezgMXDm/YbMP90Gpr1+tPQm7H+ZTWkuOAdsH3lftaW8+1L/jSIL8jpiJiE9zHzM0LO2cx4oI7Sm2IchnFAF2hxt81K1V+T586kVmZClSQAkj5gPtsjNx1d4JEFOLW3fbwg/G8LRs2qbFSr1XqTAHUpFYYyYplEKnKemn3ZpMTbclShnkh5p7MymSSe7HhTrWTJHWeZQvvi9wD6cwqQ3GYgIC7z8i9V6wJERU46fjU7ny485O/I4XQtAIaToP9YiYrs/phAxncbhBwjz9yJ7Y7E69l1YntMnRnWTlZtFqp8K4bnqL6FzrVGZF7TsCuQ0uPUtdkKwGzrumiCHlJnhMLgamMjZBNtcrx/bQL7jwv09K237YI38G2rLx8eeWvrv7sI4MwKVOyx4H7OYA7GvAd4L5qzb+nyS3aRSdOH169Aem+fRNIw//TOaV6xw9bWzdevkiGcN99+vTpI5CV8T1gHRmZ4J67ZDHog2f6hzstdBPce2KVLkf4BMUGFO5CsTKelVFc1CXUaTHgbi220zLYMBi7VFCXPcU4GcD20bIfUnkQWcZhRoEqz8sUJVODJWFcGow4w90TWZkQd0/APWBvPRPc6X5FPmjndIspUe/nCJqg644ORLyRO1XmmydkjFt2qPPhTlkZURg1PDMDOZcVUY8DrlXmRlcHArA6J3IfE8aJV5dRdlCVrkToTiMR2RmEKfwG++Jlwa/plMg9xzksEQV3ZyUos8Wi+PHBubpnVyrTxK6Oyst0Jd2ZffG5lpOr9gu8I9/rVq5cu/Lq9vug2H3m4yVvrbCO1dTM7fahlnP1uzTZkfBbT/47KqEy81v/Ot282k7M7FmxYsfbRTod/4XW1vPwyLh88TLj++V9586dq1kwa2FccEcJIxLH47VUD40GeXCM3DEtEz/cQ1FwtxVhZPJlMC5C/ItUmZVBVT28f73gnp4mkhyzVbWMbDHnCGkj4yTcM3TBH+ssSa1LkGRJYJRiHu0T7m5R3yrmnszKkHs+4Z6fqU880i4BwERWy2WiZ++mrg7qKlxb5A6w6mBCGNyDWJff6XCXG4uFojUhPhdJoBdFMcrY+5IK3XGzuTMi99xqmvhbqZO2671NiyTAxko/y4x3W/TOfp0MdE7kbu+/J0np5Gy9EnCh6FtoGM2hvlvS7K0U105KGb6fdhVDMvtpS8u5/WQbHcIfX7v2+G//+Lv7Pjjo/hLIylj7bLiD5G+DY43NzVtr/i00aHBT9VTtts1QTAOh+2pr/Vs/HoSbqY+3QlLmMhqj+15g+6n29uXdOgfu1uzn5yzW2Y50pcYUo1qGzAx3O4KV26aVATqRmREd0qs72BPu6WpFFvLRzu2vgxHdVtLp/491KpJxfaj8XPaCpvacuqMx9gwEli1mcDemI6kdB+cMd4+H9OSeT7gXS60SGLAWzOVwJ8/Urh1dr3hz7r1iTMgcUd1zXeAOhKOy2sHeiu+9SBN+Bs/LqJpYNdLOiNwHhL1EYrpF013fSipTNoVGK/Feifv4Kviw1RE6J3LXh7bkgddsWzkZ5wif8mKra4lTf6CiJOx8LN9Ph6mf7tpR5bbwS1ANCRaN9wN1a48f/9Xvfvfxj4DU1yHLqq2pWdztwZYLhxncG5traz49MzqNX/BA29k9G5rBdoDAzN5/qtB+YgWwfQuSnfP98r4LF9pOtrdP69YJaRnKzMzHXXcIuh0xpmuHu6N7JFPrE1jpX1QyXgkY2fp+Eu4qAEp1qQ8sWZanN65YchTMHcCOJFVZyfYs6suPTdV0ITnAXVSCJ2YZ4E6N9CjMlJWNlIzn7vmBez5W19iVGtqQ3kJAhfRywbCG0Ah3c+R+i10K2eGEPC5LN69b5I5OyNaEw0P0BGOa8CGLrBo6EKmhdkbknlvNJ16vF3NRsZ0lGu8dvOdWBCHznqSlgzopck8hwVbujb0S8Cmt1wl7/D05GrvtquNPeFkzIHDv3/dJnmvrgru0QYtaWo69jLafTNH9ONgf92xbUlLy8h7Lerum5uluT7W07WVwb2je1/Lpia5Mz6IT55o34EHW7eutHW/mwC+ZDJupj61UJvhef+HChSOz2nE7tRM2VAkIVSrj6ID5v8m5kwiJyMuE6NCJu4zmZjAPuKfZ9QEjoiIj6Divgnc6NMLiFg53qSrLDnJh8YXuUhoI4IlMWPSjBdxTIOJ2wd3YAruKucfLaIR7ZrjLh6C+XbsL8KVwuDuekcZP3JG7U5h/cwcTwuEeoiZd1wPuePWmWmJfQQso6mapWFYoMDgcQvdAoHMi97Jw9MTHOA5od5DpnestOj8J0/c9MI0SyOyMyJ0JtkpvcCWQ8kUGuzrqlRzoDmcFlOHB4/4ihJnaBfdou3dpy4mXtYnofcvxurq1h3acLzm/cZtlrUO4Lz21m8F91659LZ8b666v/PqprTs2Yej+grX67Z/AZmoJHE1dq9AOX0T3y7VtbSpwHw4/1GmlkHQqJBVlLaQqpLlaxgB3Ff3r7c0yFqJjPS5WtBkK4N1wT0/C+oACd9UZxiMJuO/Iy84k3ElVVhn1ItatTLHzsn0uO5zXv3ru4sVPCvwR3M2tVCkvQ+4ZCuD9wX0S/gQ9kojeAu7kmdbTjTdyx8t0M5hxQpbBhCzh473OcJcSMGPCkJWBidDvXaQmOoBnbhS2guwIwLVH7hMyxcTH6kp8q9P7kfXlkyrJAd1ZUbUr66TIPdGGu/SGNk/cMjUPqWa7Sq5DyQ8otAPbZfKxC+4um9tSs+/liLHoXbVUXXsAAncF91UK7guXnji4o7GxsUF9QbGMgrtH1P2xB9oO/2WPCt23rbDO/vXeyc+CXtjatWtXAt95+F5/oa3txKxZS2fGN2B9iOljumnkiBG5XuHGVKS7Dg/817mL+jSkhlMnEJgRVeAHBrW2HkdXcUM0Gu4JWB8Asc9Qj6qzSYj3dN1RGMwId7yPwKibsj6iOylHtcfmqgM+4U6tVCkvE3FvBs/KcPfMcJdaDEKJlejN4B40wd1/5I7ZIiyfYxNSOkO1x+a0ukFw12AqlJI81OCK6dRV8CdqCJ5GHO7XHrkv4xMfK1ISfcUDhbcZ6K4742V0UuSuD5HFgDvlPI3WBfeO7INLW46sepkZp3v9GyVvbNwIOfeDCPdvnFh1qFEbbKgS3KVBPeSubSoxA6XuO07/uATYfnwtms12G+8rT59qO3V01qy5cQ4Y16MtP5CkaiGwKfqosn5RdNdKhXgHx3FCNZ8DVWZZctndCqkUrFybxKVbIyInbrgjTVA3cYrX7TN4Bu4V6eDdo8hnpB617B4Fvqnk46RCOqFrgLuBWgRUrjNfFXGvjIXh5J5PuOczbtNLF8FdIpX4YIQ7iQC54N5T66jZE1JVYaCCHO/1gTtJm1FUTpUc4AQ9UIuZn5CeA7hnGuBOrvuAe5hPvNmouRSe7E208V5aZqC72pxOMcCdjy/0X8Jdsd1RA7HigXvXhqrbFkPWfRWYi+8b6+vq3oDAfeN2y3oF4D5o5jde3YqRO/7hkbu0mT86tWrbJhW677HWv0lsb8A/mvCXV506depIS8tSUW8Tv3AYrEgEfLBKrspxKhOCicLYcKdYKjxGAhXTELoysSxq+0vtf7HYawZumtmtjj3hfguYie5Wvwpdl4CJIPiFRrgT21GHJVhIIIsX7uS6zMuEHfdyqRghk7nnD+7juGQt2n8FdzBvuOvjCBB84oRUVuBz/n8K9x4ecNewpQJU/3BH8w33YWGa+A5Jh4PRwbuKJzTep1JrbS5thsJAQVPk3ulw79kjTrgXdOkPeIbufwC2e/B9Y13dW+fh/wDuZ2tqlg+a+I0/1ALctTU1MrhLK4CDqnsOQSH8rr88ptheB5uzaxvXasI3IN7XtgHcj7ZAhWWcJiR/ddUbvosHJ+WLJzkq9uIukA9VSC1oGuaqkLYWUSQFzvMy+BINZRjDKLoJOZtYBHd5F2I5mdI8v9u7LiG7Um0D2520Y8C9l9OgM1hIJIsb7rKVKsvL5Gn3mMcV5J4R7tEbZKx+oVPgThvfAu7UByqNyPS/hDuCKTu6g7ZOqvEdnhzfcCfXY8M9PzOuwhFdeUV491pVZepdDuvwJdzd4+tEuKfEB/e0LtFftz0Nte7rVq16QwAe+X5gy1vqiNMOy9qt4D7222uO7WqIwL1p15u0oSps7NdB/XdTM8D9rNpLBbaD/anxeCOAXYfwK9edgMC9pua5D8YPd1qOultHYg99HrmMJ2aYjqoZ7lJjRfTZG6XiHwxVbQktnpcB/KldHfbtZdTDqJcb7pQ6QG1rQ9lZoT4ygqdijXDXtaCK7ZUUtccPd9myg+dl5mv3eFaGuecX7uxYSedE7oTF7OjzjnoJ4GkcX3BPur5w59MzQcKdarMmcbhnGuEuXfcB9/jO83R34T0FXklxsfPrr+vwOdw9x+cX7j07G+6piV2ykC5buLTl6D7omWHj/WXG9/0H4H8I970K7oO+fbTVBHdp0x9oO7hnW8Ph12sdtjeq4F19Ndp4r2s7ceLEmpqTd8bPdvjiffaA8DoiBrrzJjSlWPOh4J7prxMT7KdOcCXxsDTR/ttxLC8DXRdgw96dlXmPEe76UBVmU4xlZ1OB7lRT7IY7DJs0QUQDsvjhbm6lOq+/7Z47K/Oe+OCOSOtUuPfygDs+xIHtKBLxDoT7cBPcQ3HBvZdfuIdo4v3eURLv6laqnCdD95CqQewQ7r3+t3C/vauNqnfBTMuJrYruwPd17vh9/y7LOgxwH9vtyyfPgRhkE3wpuDfvqjXBfdC3jpxr3PPYebD9dXVA9yab743w9SeM348B248cPbmcKQb/Vy2ytZDiJJl1T7C3+GPAnWrTwjz0p9M1+uAkO8b5KFRlQYkdy8oEqUrXAHe9VYr7oKays36lMGbaKvAohSQ1P2+239anT37+kjlznvcNd2qlSke90T2elSH3/MM9RSOtE+B+K6szJLiTxiBcZxPb+6gJmTdnzuwbCHeZlqmQtKUgtyp2WsbtenFsuNPE+yG7cz8R3lHSK3OGWF5KlB/GJ+DuOb7M/xXcu7qoetnML7XUnAO4a767EvCXHbjPb2lrbm4CA74j3GvoEJO0J350aut+xfaNdbYpvKM1YgS/+8SRE0fWHH1m+rWNuLtej2h4MtERUiwTBTPQ/sgEd9lxTNce5uUySjK1Qc1+4vHDffuDVbMnCaYtzHDXB21sZRFAt7HsrDyZtgo84a6fNWkpU6MKH4eNGw+t9pzjHY+b4R67lep8dI/FbpXoXtxw1/c+R6Oxzt0I9wRJENz4FnDXWuiuh12f7KJympDnXXC/sdUySJ64NlS9XfcFd5p4n3jvRnh/t50UhIYifD5n4Pgk3D3H99/CvZfnhmru88+PGTMmPz+/j9tGjhgxcOCQ6XCDdWVlvDplQ2Jm6xvr3lin/rj43mxZ9ZAdH9utfNap+l2IdrAO4T720b8qtL+1t76+vq6+Dq3peBOQHaP3pgtHjhx5dc2aRWOvCe3wh0yrAWohxRkWWTDSAcE7EsTPol71UT89TjcRY62iRR8lMKY4WuX0+VLmhjsdkb+Vl50NzXVH3vC+4d4qGAn3kQ6cdeCejFyixT9OZUWT8WC2EA6TcPebl+mrbDY9y0LcPd9wT+sEuFPUy9s09xFw15UcfaLKj+SEjLlxcH+3ZynkzbFLIWWdu7frA2LDnSY+nlhJ452EzcKLLO4Enh3iffGyPccXtjoB7q5SyNyHRvftq88wZTgWBMtQffdwqyoLfrYrK+NGMSRmjtRuBQO0A9+VMb43WFYTwH1itw/NOrJ3R5NtqhTybQPcx36s4lmF9o1b6m2z4a7wbkfw+46AffjDX194jUE7/EPy3clUiBYIlVid64J7AsEEDR8NdtzPU/bjHZzZHx+Vl1k0GmwJoUQpJuoD5h3BnRRhdNmZu9qlt1LRxmySl/wAJYkqZd+dIDIOlbJUI7u+Brj7y8sMU94t40IC5F6ccH+PGe5u+QHnHIzYHaS/p6nNj+7ICQifITq2VEZPyA2BO0WwozgXDYeYJNxV2kPID3i77gPu5Ejc9xMuUKA79kzJG8MvRMgFd8/xXTvcaY3rBwVPy6DcK3YqTEmWpgRXVZEZ3F9dgbuHLXyupeY0wn2rQjsG7w7fCe6gP/DqbgV3tPrGXVtJOIzbzPu/cN5h+xYVuBPege+A9y0nbLgvGhQ32mkldsMvyWfRvcjKMcBdqLTwsH8ZD4Vd0BF5mSUKf7myplvveBrhjt2CSLoQpcYDwWK8nXk7SI8Xjj60AeBs71a4ezPgviI+FuKCOwJL5mW+At4xAYNKcq/T4U6lHV4zl09RL4W84mBwsVOlN1h2PpITcqPhLuUHgtThk8kPBF3yA1Jbxtv1eTHhHtsRckfeT2BIVh0p5S3iTx833D3HVx033OXHcfmBYbLlMOqGYcthSLc6jYdVl8oe2A+wK3D3tulLVWJGmx27E94B7o0I92mz1hzcHgPuE5949Ifnlb1+YIsywDsY8R1s77lXX331yAMP/CRu4QG3xQ93oa9oa4Dr11ARuA/l9yMuNgHU2Q899NCXRVYGP5UeBSa4I54jeEfp0mKZPFcFkfZpQC/J30hhJvuh2dXY6AdP5GK2Hvqv+oG7uZXqo+DewywrI93rTLhn8oRPLw+4OydynPQbKd1Tnwvspcvb5IfdE3Lj4I7nBsqFnHsKW3SRdy8u6F7xH/bOLjaqIorjGkORKHVbBCm4xUq7uEuLLQWsbVMqpUKXFqsgivIhoiIajRXrB/j5oCaKRmNi/EqMuk+GJj6AD4ZGDZA2pMVCYtpASUsJiC9gTMUQo/HMf+bumbP33t1bqD7tQY26e/eeM3fmN2fOnTnHI3GYt+k3jBvcQXQW6e1MzpdVfIsN3O2Yu6d+lRcPd96Q5c4tc99sq1jHBCP63yY5lQSzjrunzKXAzCDobvjuBGgU4Pc7cG/dfGxv14FOA/cDXd/s2naHJPvjjR/f8uefCu27e4js/fTHAJ7jM51g+4ULXz5+cXtkjHiGZaa3ZII7YFIA0PL+AF2QWqzrq6kDGpwl69nb+aXfevRRdm0rnLR/aeGOYYCbgu46gQLqBIldxaXTQoghC7ibrF2cVWyp8FNRfVIU1w4OdzaP8958SHBnnVaxeeMOd05y5QF39nqdMX8Fql8tt+FOmRtC5LjbT2+Hq0H+R7ibwzzWI1UpeGEkOgB3Vnv9gUPBshKTp+kzwu5K3/5wDz6eZA2YifpeJdbNNNxFRWtP/ewVJesXBO6mJ/DmY/vpbBdFKYVcTWgH27OOu7e8+eqRIx29e/b+IvEOIbjvI7ivviy2eVdvF7jeqeF+woL7bQ9ueu61X/7UsrsH8l2PAnynxjsCNCS9gyQXfv110xhT/dJfGBpauFOKF6qVNp894e7UTUD6RfN6E5sDWmzCVuWatzu8v02uE7c/+ugb7HfxgW8ST7ibFKwwQN8YzjvoPr1wo3XvYgoWu+BuylabZAiocsCCwjs4AovjT2BZW3C4X+aY12C9v3r0SVE8VZh3KXDHHrdbU9PhqkXJNYYQEu6FqMo98Qo8Lide0CjhjkzoVoyjotCjQf6PrZAQd3K0LTNMESsu1qHq8trz81KsPyTcPU3fkRgPuDPaSR8SHlDJoDvgbu31VXCfKuHupV9h28XCfY7pCfg5V7K+rSgnn++U44VQHW38O42LLNszlO04Mrhnz569BvC/gfAQqsR00MD9yMmu/cRnRXeG+9w7Hnymae07f51TQmQ/t7u75yf8IbrTX3Dfk4D/+mhf3+CFP/7YHlg1eUya8IZ6m+iSELMVEmO4XuyWyXUFrxebmp0mR6zJJAi2V7jSEAFnYhNvve3biuKpCBf6w91kVDTqkiRvno867httvae44H6DU6eNrlIVTMXLuMUoMo2E8AVJllUEgjuEzQtbC5PnRPFUmDdecM+1wFeoLbsiWV1Ntly40MzGeF5IukDPsyYF7lMk3Nd6NEjLf3+IiWuoFsg3qm3QRxvBZfbsKaoCZfZUjM6C+3Iv0xvHCe7WQUAIRpTpnrgZepF4oYrdPJUWb730wyQaFO6yHU0fJ130z8nlaYuCOx6qojkEhMd/mDqxWbr7F8umLTMkAHxSbLivOnv2TNe+Tke6vj7x96dr32v7/PNTp84Z+fPcod3dWojtBu8Qg/efh/v6+o6eP//p7ReRc+AqMNE8XPRIEhwNMl2rcKvlAWMrpNjnLkA4UY18c2wdbBeOO8ch9LQi4jLwbd+yojK5vJ/PF+7wu6EwhCwwiQxDaqveVg+4F7uqkZKbYmg1x8sm8lP1Ya7CHYngcGfzynlhYq1LVrF5lwp3gE/kPTZOtsmGqRExVY7pkCnjiUAWrAu74C5c3rUeDdL+P8H9MmemrLZmKDZCPXVnvrE0XqKeOXJI3ygcfrfpW8cH7lYKDyakEWgoehHcC32KyYJ7hZd+8FKCw32Z1Y7JnkBizq1U2LUDrzO5l6CsTXfAPeu5p90PuevIriFNd8n3zkSiC3DfcvfmkQMHtefe2Q+4D5w79eyzz+4+dOjcOfqL/vHzbpLun+gP/dWj/XeL7z2nie2Df5w/3zx2v93ZZwIx6zESQNp4wDbTSk3hUgn3EuqRiNwpUYeFFEbpQvlSs5Uj7rg5qCTjMm9tl1EZfN0f7tRr9fCxeqV5qUoYF7tbzEC3vbgw6sKaamcw1YY7AIkPEWFWk9zagHCXJTsarIVJWEZlYJ4f3EMO3EMZ4Y43ZUXWeSlYhnkrmXtnqgXvdl000RiHRdaMxkQmuLsbZLEH3Me/zJ79BqNYGIFeh2ix88ztvrqcbERlUHvPT5uH6bhofOCOKBiNHboeYWwn2IF0q9rl2G5biQWS2Gu8w61fSVtguIt5HG/B2e/SCy6R8T7cgrvh86QgLpMNy2SWN2NE95FeC++/JOH+I+D+8pHNR3u62HM/fOzvXoX23QR3BfZDQLsRjXfiO+EdArYPKLb/Ojoa5YB78Op6XP1YDU10SRJOHDajxPZr6mmiR24ZAffZasQo6iuhoA0CnTMaCSciIWQeH2YWgQveLvj+hxyVCfF2Pj+4I6gCqlN/pJGkJDkmUuAeAtxFlg4dccTZVR2mXyXgricsNES+aoiWcCC4+5dSvectKyrD5l0y3K9Jhft9HEulRjEsvtEa8rML6Y2p3iShjFMz4T0Jj7DMBgvu7gap9MwKOf5wl3EZBhN6HT0/9QCRmkscVyrGw4UjYikU9jAd7LzU3TI8nlZiOEGSA2pS8j1/i9XQq5A5jFrSHmEu/eDrB9wtowvPC78LzUB6QAlZxRKZqHHAD1F3M34gpj5lFu7pZO71THfbge9OJL7fteuV1XNf3rW57/CPnf30hzz3/q6fO7bdArafOqTAfuhnyG4ifLcBvHHhie/fAfADgx19fX+Mjn5x+5gdd1ToWNk8gXCdj62uBOfJEIwK1LhvT1hSF/I46rmYtsuqSvO54CeRHXFEUJRlPsFGZCHimhYcBXwn2fNLeRuzP9yxfDU5LCGKPCA1Yu423LUXR0iyl+h6Ixg2+Oak0CqsdgBjvtLJj6eCAQHhLs3jM7ifslfJ5o0T3HMsuG/gLW5646KCe43tHpJ1fB5JzcRYtKR7obrV1SAtFf8h3PlCMVPGw7ZGykqyIj9pRaNNSWzcVMqK/DjtLtMrE+MBdx5PL81voptCsGNcDKeSNnkikIRjhfAAXPqVLA4Kd536lODO0sI9QY0M+Gt2T2jkjgLhgXRlQXYnZEa6x144cmK4t3cPA7534MzIcOe3gPttr55QeyGJ6+pPf//B7r5tvbsJ6z8oOXz48M82308pwncnBQ78yb6Ojr5fie3YZDP2sthUOXVek2KyPqaWYyRXu9+S7bcqf3ByapKWN7jOrqmevKy+IiElHEfhNriqrnIepclfsjamy7evnBlDwF1184VPTcDooYEE0aRWuU8qbMUpJ47y7paIFQdqrULUfuiNCZv85NSEdHPgQ4AjONzZvGpuKC6e6m1ekY1FFJpiuHM+fFzmSh7fYDX227BMcY/YAsDxapynY/iNxHCmIu9z1y6lfc3bqQ3CjBAFsiXcoe94wB0zJdYnVqJNUgmaogrKdBGbDi8NOXEiPAFumxTTN4YDwP1GNiRjmfmXEoknyhtCNBYwosRwAtvF/lwsJ+2zYmuFfrgkENxVaL2gAPWN51u/luwJGB2YYugySXd0FPQUfEefYVr5FNE967pnoHv70OmBXhLwvff46aGjfR3E471dBPeHbt95YvOu410HQPZOBffBbQPmFOthw3fgHcLxGceB7x5QP3ZhdPSrB4MqJLBA+0SaVZdfU62TSkxDn0QtdIX2HVsTsliHUx5Iwl3RXWW0pdLJ05ev2gCoSra35nB5YVdNC/asZPFU5/u+cEe8/KXEnY+tywGheRzRkmO2Fd1cglTFym+xedVuTl8rwThK2IeYQP4QCX5uQ0LCPeNgZ/PYL+PiqcK8S4A7v7ltTbC0zYZlYLGzMAHh+AsojDwV5a7ht7vgTs2I7UMcyxENsvSGxDjCHdYLuIsL0ULSdYcVLXZ158JGAWnEmifpd7/2RRVvC9NFnkYB9/yxwx277efpHl8eXWrStCR9nsLKxXI0KeTmoyS8Je1Cv5atCSmsXyrcsYxV0C+1Bt5G3cexrHaWOGJanoOnyl6dHkebHki8dOXEbGaZDHIH1bLudeT08GCHI2cU3FfvPHb3kdMH92u09/fs6zm67eTXRhTeDwv/HQ78KU13SK9i+9Hzo18FfZnq7owLTDeoqV8+nfgMUZSm/LTUC6Tjrl6+6BEsssstVnKDEvF9wfYJznFCd+7EFe4CqGpDGMdcL3O2hEyz88UYZebhgtq6KRAMJJTnt99/NqjYLCLrgnFrmXHLlk+XrxcqWvCRToFIB16lxALA3ZjnUSVquad5weBuNscLNuI2YZvEbyvLrlODOr4gJx85wMQcU3Gf+gIyzM9o5DAwJw7TBV8FSkusBpEvVKS+lhXToG9AuMd84E7CSZlrE/YMTCAkK5SkgLPYbMrXLm656IztbDoHD7lb4Tq8hLbgntkQ6KhOOs9jJWrqb1423RlOlVjOymWwiRstEx9s3ZHUr2WOKw0e62c3WExtRStQb89RI4YlvMX0BAJ46zqc5JuyNCy6wiqsus20TbKiAcn35tEbrWxqmfRS67B94PQIyK5l/fqHH17//urVO0/sOjvUta+fBHDvH95GNZwcge/O7rv6G9EZx33fq9g+eH509GLYbipULLCTZdXMqa9UsmrOhsUeqXOvNW/qEf0OLJLtclQjw0Fp6hVR3gUuIzgS7sjSPi85lKLXm4mJRu0Gm1jFZomutnaGBR02bKmsvLl+5o3hxMxU3y9cv4NoRrKcR6WsC+872KV51a4M89f5mCewmI+Xl3IMF4nbygyUpUL5tvb7KisbZ5YWJ27K0UN6plSiYkM7nvNWbhBxDhk7R2vEFe0tukFuXsIThVtfYYXQN8O+opjrFD7DncupVMmutXVOJUm9ftwiBp3n0A6/LJ5623Z10ZwavkisjSh4jV2IAu4ZDGEV56U+bXg97lau5hajt91CFq/dQvo1zvHylVg/CXfsjqfdETS9VssHvfY+6uMzl1DDRUxXaEjRsKbxZiyAll1//cxyJ6gzb0I24W8GeZCK4h0/roIxDPa+9YT2L99fcP/cyx565UTH5uGegw7cD3aObDvDGSSVMN9J2H9XAr+974/zo5vmXkQqSIZ7MInCGdIdC5gNKPPjYLtIQiTO6NN2QSlhaxe4TNVij0KEiAzcZR2JYpfmmJXgVy7xVhJwbwmn6EGj0gJ7eLE4kJWBWmxeapL5ej/zyqyyJkblyWIMl4ly9CIDZT43opSbcvWQXgHjAtaZ0ueQQ3RricUbRONWMB2nsb5FlhWsb6ZJUMJ9SgpMTSFEciviQcyopRsDdmaXf1VQy7GpS1fmzbPhzoZkGk/oj0FUVGwnT4kXZ8GE9RNwJ3uxdaxgEmr3egngjseKRNuZZB69JMuW6kgnt79+yy0nzwwPppD9sy2PI+26gvvw2cFT3/f39PfAcz8wshlwd/H9sOK7BPxJ7befPw+2j5nuY4R7lGiKrdP6MOAYhosX22UtvpQBW8PvG+VuiZDFORocDPe0UmVmJaCnzhfu5PDPSaST9ieD1oWX5tUmpCzzMU/AnWsDCrjzbWX4h+BY7Gd9jg7MALpprGuz/EDnFcWtaVdkG9d66GtbEcrcTGy9gHvKhVa1rNbMdC+fwsc8cU0k/ffb2rmFdSfHm0krhMKG+JsxJriX69K+5gAd2jldQ/MsyvrZVkVw6AOHpYj6UV+4U5Afb2DKA8E9W4cpLdubbhkY7mBZT/LulseTG1vmLug7MXTk2Dc/Au60r3H/gaHNQ0hR4M/3wzr+/sNQh463j9FvlzHCwHCPakYnT7oFRHtVK8jKbPf0bVP6WgMfZk35os057N8KAPfieI7SgASKr/GBu4rntEhASmmcPTscsC681DplPqmY5mfeIstBy3HmI3sMLxIXCjj6uu5V2O2pHLb5aQFn1UmJqM1x2M5enRY5szd66VtmWTGWZrLsLOILBTsppA26Z2a7Pr2sc8J5vvcQ71h3cLfCgU50lXyrDQMYwmGZQGzn0aT0q0trU/tsnngt/Wy45zs1J5HCRj5p+Vz1VtbyLNwvVYjtg0mX/en16z95P/L8bdbL1vpbTg4OHdt1/GBnD6R7//4zBHeSJN9lAJ79928waTw8OvrBU2D7JbxQDSDhGHqj7j8YLsEiMg10GXUST7bz4ZQcyaVwSGWZdO+JF87UIhzSCQD3+a3JJTrWHPFib7hPnUb7E5aH/dk+o7CwJmhdeGmeHGu1vuZZcM9RodWCAhUCs+HucVtunFIfuMMNJ1Kni2jUFJYw4SI49oLDT1H/LrGcGqTYQ1/biszNxPscI2Lm5riV3Gmo6O7NLt4apUJEBajSlczYVZWG7S0lnL1lkcNcupEV2mJDMo0nwD1ATCZvksggE0vnVZSU8NsgSz8b7tReSMWhVyqtPnDPx6snhfdQUWa4Z2Pu6eT+11TkBPL000T2TWIv+twHn6OA/MDA8N2n9x0wcD+w/8xZgjskrf++F2w/OvrBRbKdR0tzEEcjblJUUPcxOZACXFUaQz7RKzHOJNvl4iEvNyzdmjzyk+Si3FQ5tThnzmhnGkxVcc12Ti/l7fkV0X4B2mlT7QfAqPLsVwWtCy/Nk3GZOl/zZvGXsNwhIVfYmn1nydvy1bhNXECPwURDGiM6DRWXqKBUOGmd07Z5+b50D1erBlni1ldYkbGZ2HrbzkXuC50SA5if0/id4QYkJdCbtFFbAPSMl/pdcONSMr2UWxg5ebA8tdqQ9ckwSU3EVshM7gZGk0nWaOjeEPYzqJH04wwFrJ/dYAs4lSRaKOoNd5NtA1UPIn6rVH6hmt0t4y+31Q8pv/3YMSL7u1vuev72lJANbZJUW2nOnB3p3+fAfd/psyOa7ZLvLIrvXx/H+9kLH3zwUfNFsp3DmAseCARp9EZyhkz/yUj2aFy5jBMwJZjDEJf7zC+Tr703pQ9yv5Jb4SzOqRNMKk3ZY0+kC8not8Cm44PuPowry1USmlJd7Pk71dhkuSI5mAIsWdm8dfIFp695Fhax1wN50CbYcBe3dfm0gmAMJmwZxUFVH8QVXz9VSWnSOuWFTzQJNqOe1KlagQZpsPW9QutrWyH0zeDy2nCXqSok3RUKI37TVPkKp/inYjuaxtCzzBudtTC9lrsVL08t0LEhmSapq1fOQodM1yV5NCG1ttbPZ+a9dRkUTD4ESz8b7vR7WKk4dPecKxaQp6WWVzpta7wsXSzo3rsmXZ3d5+4vzSOa7Dvfv37l6lQGw23HLsmBs0e7uwzcO/edvHuETrGm5/teTBp9v3/00TvPjFkrCQUMlnW1pf59saiOgrba/zbFGJFFNp1nUloUU+dn4CdM9M/5fzny/SHP9F0JljvheJl+xaqi1wrOmbRYjzQ94KdIyjjSmhPjitzduklHpnNyV7g/DJfFc3NxvsO5U3Mmr0aaZyvY5G/eQv6WKmB5BXI62kurhV4rZdzGWNZU7B6leTpzCNKj5USqPJ6wPksZShKu2ckjiOT4dW4/+c5ormkQp63AdugrrMi4smfrbTtnyQsl3a+G4xmt8iB1eR0e+JVJf4LpznaIC1Zo01u5hbHIgx9gwT2IIby02FQe9vd51HFQHk3UKx39QtFij7im1o8PJrF+aDDuj2J05nlZ+8RdThJNU08+XlvsM3BqH5k8Keu4p5HV7x47duyVnVvueug295vWp7TbDrm74+sfk3AfANw9+M6AH4DbfvSDf/7ZcP8l6MeuEFZpZaXzXc+4PFoXcvxvxFYgV6ly1LNmzVpUVlakZObMIkeisRiGS04+8lVw+iH/YqPo2xPo1xaVkSxaNGsTXXeFe00Ofi2cZWRhM2rFaADlxTetqQqnIKu0FiNdURL9nns+unWVzaoHmtbpBFQqA1VuPCo+LG/KcU5vX7vA3H1lkNN7bF6zZd4j/uY1s3mkNRKV09UrLaPFbeXlxrJoadiC1021d+HhYRGg4yx1ZbZ1xeUNyCmQT7JuEakH6/DckC/UXDLf7hVrItwgTY6+BUl9bSsyNhOrX0B2UitBh2ZRd198EZ0PmUfr8AxZLVii+6rjTzDdr1R2xGtF49DiEqYr0aajhZ1oScHCpCFNAQyRj6G1tlxrJxquIQ60w+UxCXVBd6NfKLZGNnRrUr8FRr+FrB8azOqPV6X08Tr5Y/duegRs12lUqTOgr7fWpg6cqjXRdWqGzB5QTScvfrLz5RhiMS60PwO3/Tikt/fEid4fO5Esprt/3/Ejw2C7L9/3DPUhJPPRP/98sfpS2A6XSbtCSKtHDkJdLFZrMB2L1U0BpfOE/01i6G6uoauUcN30HA12ukij3VzmpwN+DV3t2nxcSt1KZLUQGSyRcY9/3ABIjXViciQW1brXxiJGdZ6VoDl6vunWoViD+m5ZJBLHN630ffRhpKGMPitroA/pU9ySbm3fXHo1420emg6DWPxf79viQbJlrTFMug0RzG7OiOYS4uSo6sccjcTNPKx3lSohO+XNcQk1bhQNEonkejdIcH2lSOsnqxwnvheaR2geuTKkThmC3hpyrxWZ7mwHXRFFF4nUeZgOO1DAauyG0IfyVnS0IIY+hocRq9MaEtodt91Tv1Ashm7ZEBmzfu4+HneMjbCfg6fkdAbV13Pr0NkxbmJYohpvLpsV8l/2zh5EaiCK4xkVGwURbAQbGxuxUrDeRqwUxCvEL/ADW0FrFbUUP0EXROxlF2zstJBdcVEXcsJhyCbsbpZd1uYKv7AKzrxM8nxmn9nZJKKSn4KSzMu8/8y8/87dcRmew/i9GEJtz8O9Cj/GUy8g6ES0PjcG9CWS1N+fjWDbbn8Kw7p7zcqF0O6uy0rNNLg1cWlq0oBcWtHpAypIH5q+BdgsiVabCmKtHRH0vcPUOUWqHbwrW4FmorYwMjYyz/Uk9bjS9bJP5Kq+dHOiUrERnwXATdCj4F6HWrC8jVv1iEMR41WMpLDKEivRmz0tTzVA7XiEplanO4feo5DNmzMGBDyHz3f+UZLgEPFCwd6jrJIZl0uPTjiGyKzmk742+fp0k6EQ7EqPMltO8DSspkLyg8u/XeMwNjixuBh0lzpHrIbqjb+LUDtn254bOL7v+ECw1H/zOjb3Z9Lc9Usk06d8PPUHTYX7PQzD742rtZzubgmcaLkR06+FU6BLU2sHkhgV9BNQmnC6Ljg7RmUUBHEE4pzpdmvxnBhcplvhNe6QPqB3oKnUQS56bdI0sifF2vTN6K4m6jyVYRny4uM38SrbLaMM99Q/DRVMNJW3NdJHDljTvZO1wQ+IWb4UgerVGZ4yGRpIW6ZXLDBjwmkIrhJWOuoQ5kJwGmaUE52OZNsOMcXlp8hYCTixMIaq0ezCqU7HXpDatsuNxtCeOL4D/j5ZHXRevtPm/nzodgHwd+ruz6Z2U/GxHoZfRs+ap49a+RASnGgwa0ni0lDEWC5kNcJ51HBuC6IKEyLUIpRBGMUTZyB9FViXdMdkCkAb4iZJ9vgJw6T+S3vtuNHuFvLAm/oceLgL6MNmiX+UJg8ukqtMt7wyMEpS0dHnDMoDLwVRcS/YuepdhmQPiFG+AKt+bbZQMufchKdCDKTnEILJbU2V00acjuhpotj84JG/XwkQjTNLyj6phuqMvVwcvTSUuBPHUebuLNnLbz9oc3+qzT21fX/enXrN+Cep9x/cCbru6WNWTnCZgP3o88+1S8deRPxR/cUYCdpWvAK1scsgg8qWvgpsYApJWORkeXh8KntIX+9ysBbSqWN72hSeP/Mm9LgJgP9iiuXKI1f5bnllIIyMFTSg8pQ+ANVh7wYDwuSbBS6piCyhgs45M+EJ5tLNhWBugi0nmmFZ+QnBrwSMxsLBEyqxZXU2dh527rgs3b0H9u74w2G3/aqjGLee9Fy/C1CHdwK7qbBHYfj4+kHr0NlJf/WkheSzd20/636GujQJ0TEyiAJFD4hMa08/ToLdCaaZRiBx9iR15ksH0j79YbQGh4LepKC2suXRq1y3vDJd+NQQQB0vTxAMBsQgX1Z9diDNiplwiqF0cyF8VwjJUJSWH78SsGsMzyqcyt4X4eClIdj7dOQ47vtJ+814PO6Mx61lW5m7n1g7eHt3Mois3RvVw3DXQRm/704wXbpr5QW3G9p/EpeWsEZG1hZf6UYZCBLM1A1BxyWeLJn5CcPIJfshaoD8TcSyypbHXGTglCVhKXk4TKw64wFZZJiMAzPmiRkbM+nCyiUko5zKzE9krQSAKxydZbVtz8ehGz2FHUymS8FKqzNWtFY8z1d0E/xJ4Glr/ySt/cQpHX522rhlFYLQ/N6lBQnJgLbm0c3mrKPU8/nshWYOtYLA3LQE7f2PyWO7NVCm7s0eqsy5MxgQYZovhWZgpJRqTWEoXTADX1Q5lZmf4GYN22UXTmXt+antvtxTNN1V7+nrd2PJSrvjeo6vUc4+6nt2hPf1Xr1++wH+jlTQu1qzCkKwdm0aYomFM4A/HLim8UpW9gapM/eY5xQvD7XgJXKVYqrMRB72zobMocIIQUZp8RVrHME2zSeEL6fy8+Oflt2ocvbC2HngCth7c7XntF+Aub/qDGJzd5zJNHBjax98UtZ+/jBGbzvbPH3QKhJhUZPml1bJCIM2WE987rxa2pS/+eflmYUaJQ+3Mj5tjAdE5F4qwjxQWOyE55ZOESWUU/n54azxEbRwqu+yF0btwCVp7833jemL9gqY+7ugOZX0g2AAxg64H7/U6/XtF8mvu565aV84YFUYlt7//EMiqeyfeObf0tv/i6hG+y+gdubRjcuNpcFyayzf0r786kP/vQ2m7gHyX/fjN/n2xyPn5al8hJ17jp/eb1X8YO/uVRqGwjiMn6spaO7AQXDpWKUkix90iLgERMwSlyJ28GOROOokbpKAS7dmMgeCtBCF0mIqbSgWJ3c3TxO3IjqG8PzOPTyc4YU/ABTTaa1pxL2nKIt78GH4edpj9UavX2oi9e72YGtNLNDczwsBACgq7TiZycE87l0V9yTO+DvZkPbNkpWXfZFzdiUAAIXV8MaBzOIuZ4Zx+OPadZctXfxKa10KAEBh1YxJP8zjPjXMzUqlXrecdU38wTnRBQCgqPSjuP34rrZRIzl8MffEf61UBQCgsJrpVHZV3AfyzTO3BQCgDDbScSCzn3vPs1cFAKAMds8nz6GK+71spzbX6wBQDtXWqBP253HvJHZDAABKYT8ZhpGKe/Dgm8T9m527aU0jiOM4PsZCwC14zmvIq8glvYUcklegt0IvuYZY0msg0LtvYKngxVs9qbiHCbiFUPEBdYthT3kNnZ0dMw6xQkkbcPL9hIDMD58uvx0G9w8AnjhdpO12Vu7hoMJ9pwDgiWptvuxm5R5PKtx3CgCeyA7dO8tQlfvo8euhAAB44VNj2P+pyn05f7w9EgAAL9QXaa+ryj1Kzm+57xQAPHFZS2Q/bEbR7JyJMQDgi7Mvo1Yvbt7L2Y/rqgAAeOHwajDtSFXu6TfKHQC8UR+ncU+V+8Pi+lIAAPxwUkua/WYsf40rlDsA+OLsZjTtxFm5XzDzFwB8oQ7d07aM5bDxdmb+FnICAPx1Op6H3VhOBxcfhDcKazYkYvW/gQoEvQ9g51Vrk7u+lHcTf2b+Zs3tENZ6JExi6ZCNPQAPHH1uPPTuZWvky8zfQm4vV8g5mU3+fFUQtDuA3VZfJHEUteaezPy19V0ul9f63cnyZNuuXtc7JzYAdtfJzajVjr4nXpS77mTd3kFQUoKgrFvcyLNAM8Hzy4Ld1zshJzYAdsrx1WDYiZozP2b+rvq79M4oOfWuI52VVOC0u44zdsO/jXgxrhwA/quP47QdhbPXm/lrzzheThQ2HMlk1V4s7ivFYtHWu659HSlmfVWn7rbeHNu49gzzvo6tfW2+rvuxnTXx9MfvNAH8K8e1eSTD9NVm/rodZx+7x91O7bmZXbHr9jV0t6tqP3ifOdh/qnezo1elv1o37W7keS4wz7BZlip22RLP6tgsmvCvCfodv9k7k1UngigMO6VNxLSddCcd0RAUCU5xiDfBCXHWqERzlRDwCooSISoIunDhsNC14Dv0SnTpWyioSxWcUHwM//NXVSrBASXGVX1gbnedrurK5qvj6bp9HY5/wN13L56/+vZ/3vn7O98tMPwu+JsU3hRelMDTGSGdXrp4IWswgNZH5E6SJA22D+1uqzmNO73bqmqDoMYW8a320eMXBfrRGf/+K9i2cVz27nA4/gGnnn798urrf5L7vF8pzebGf8+YLUXht6837mzatKlyPQW/L6feIWcERPqpTSJ3Zf3Rig2rOQPEziOrp99hcsK+CLKdfteM5fKjbv/z78fxLeYCp3eHwzEpZ99+evXq6+vpy33ce8ssWnBLiHHqeBT8PDQueHH0opvnE8O1QSoDjdPKTOgzqWxW5F5JZdA8VrFhXt9ArKOr9TQ8MTV8BpjW2xnLlIyM7VdE2Lia8Hr79dhmmhZZeEfGndwdDseEbHj45hnk/j9e6G7EZ00+FCjtK8iBjWnG5GeD47LUj0zFz5ZelnqHlFmrSWVzEeUuzbS7rtjoQj0z9zSK8hS5BhGE0rfv3HmwlCuFnZTO8Xl3jVkqgIQU+nLz9WyTGt4gJ2pAp3eHwzEp215+fvX1yfTlblJrI2vrTiO45cutVH+M/iykFar9Trk/SED9aqWiEviWaDy9FCi1e95atDajHJqHol5EtUuhHjX3Pov17KIkLxGEWqjmIMCHscBMyu68IabAQ+h+oC8nbCVsWs6pEd7SDujk7nA4JuLW0/ePIfepv9B9zHzKmRYKbmhVC3TP69KEDVgDTNDIkjYEfJ56Pum1afG5umg+ykHvQgpuz3u+T7l7Uc5WbBYqtfMSIQUyJE0QQeC8TvjhX5PMC5iFfjZr3U5rL1eTMxbX30H8DaSFTXpqRN0RcdnK4+TucDgmrct8ePa/5G53I9KZFgpOeTUzhrnO2k/Obczmukbut6+kM0rj1QR4+Rz0jsEpfD8ItqOx5tPu0puIZXmJJkv0bBBBoC/VHIzETjQ7JyXn1u4s+rMCZOZmx+fldv0yA2TByF05oLO7w+H4N5shpy/34Sb0QaPRaCsvtiugnSVzOGzNykdW0VLHKcDjuQEv5rnuSFm2Md4DbXftVi33IEiA78HjoD84v2lt90AYbqHcfQ4npqVmrzcqlQu53IzcNJ+PhNnKeWy5udpqi3yjOanybEK40VBd+tcZr8zCxkrG5v7ciNke9O7cuXP1QRv/z+DS0W9d5XB9s3ydaFRaGPkCms8P5jwvn++3enLc5sNe1N2d3B0OxyTMvvz69ePF/rxpwm2Q3ITegyQHKkkeJKASETnuzeHjWj4i1yQYRTlBjufYkaeR7shklx117syiCOSaSVHuIeXueyLOFsYQ6jtX4XNV4Pek37Bi08EZrN7Ej7WecGptYtg0EyFgkeT7BFyvqc8au1u3tzclhoHK0CvXhjt4soqKfL/Zum5u+v4Fc0kDdl+0xKXuDodjMs6ce/9t+nJnVQbmfSAbUnJRPu959GfdIyLLA7449hTPq4lwQYmWl7WkI89tx3yUk47XRYZiV9Z9hnI/gNDGIPDhdyvn8haRexhURbSm/jIrJ8c8j3L3walyYkFanYwgC0IjsVxrZ9T9l/HucPvsNRu9Imrv1xNLL+IKJXJv2QtrmK3henqpS90dDsfEPPrw/uPU/4gqqzLIa28zO/dQEj+WkGNi30Bkejzs4nM3z3EEur6wW454eRlntqNY2xM99tMmdWdRX8t9zxqE1och9K6Wio212vaErCqGQUcWjygSz0ZXxbmYEuUegI1cBmrNXocrit+srZVQs4nCTAr0ryWd7oVqtUtbY9c8t1XKzZenMwiCeqWC3nXzMDZBh2a3k4CrHjDrTb1W28hFp8wJruWVmbSk7k7uDodjIqovP72d+h9RpdxFvHXJzqFvSay3w78HQrAzwUmxyFw7FHDVFpgPR8q01SBgxyAIQ9NRtC1Z/aZUmnJdZuSehtyr3TJC64rFIsYQZZbZd2fZyL1GoSs6ak5+Tcs9TMBxGd+fa1Y9RHh5zffySPblAetgBm2hzBjkUlxd+EuwKK/3ZP2ayeG6TPtEBldfSMBuvVCBqseFBJSrcrd1CY93ypflBbPp5QtdXcbhcEzIyXMf/pfcUTK5KqKDZouQ937821KAgHdLY6FwUBxXBHtwIMLfI3IuozEMVVovQdNRvC0dB1l5BGnlfiLRbF9ZKBQ4GlgXBHLX9VruoTSWfSLy7UDWNPj2ECQA14jeSTAid5CLWNMvYvg1aJ+RCSwCrPf3E9CKKHeAlUAq8D1fsUWqSz6o0fiYE6hzguqGHflGGanLOLk7HI5Jf0n17dT/QjZEpeQ+I9lxWKQWT+9NkjVxXChsFJlDlTvwE0aOkcvW4zKEhzaR/MZikVreXgCmo4hbOs5mU6ouA0bkXu5iRIFLRydQci+u0XIPpOuBQNjCxDoYkzsXD2P3YETuOXkYrN0ex7HMeIap+8JFC6Uok23J3fKQu9lHSdvv8UnAheYYB9QHXLe4qPF+clxBXcYV3R0Ox6Rcfvf2xtF5U8XKPSsV6aJy9pGj+DgKRUpyHoO9OF+BnxDvrhI+NuJ4t8nYyziAT4/ajoVCWSr4cKsqevMX/xdT7mTNAVk5CvtF1aHyKJeDVSFYN6wBlUW+wajct7D3uuNiWxJauYPIuL1k5J5ZCrszcec2mN6I3HMzYnuldtBRTwI4YF2NHa5SVSm0qjlUUlJ0d3J3OByTcevhtOVOu6uaO58uri/EknuXSvDq3lJps9g31ln66hKbD5VwRbmE3JjlGa3llfFIxzheKR09upV2Z9n79okTMzO7t5RZ64ihdxmhFtKjSqSrKG0+xC3qSn8wJvfjZb21Zmc4Ivem70HaORZlTq3auGNNoqhGWXn9JF9fo4owTW8o92yuYvbgBMJaTiYMdX2f1MyCEzi5OxyOf8e+uyzLTBduhRS5D8RkcbxaknNm56XSCtFwQRCpKtkfKTE7L8WSQ4fCbqb1pZGOsXRsebkst5rzkeai4T73Y0y/j1i52yy5ZqoxfOLKn4EPlNxp9+2mbn/K+rfpQe50+4VOMkI1n03J68bg9tQPck/9Vu6+gMHZJmG/6eTucDj+FdWP/0vuyzPZOVFmfFCMWirtpcxX4/OgPPosiGg3l/bD5yp/X8HkvCve4yPQHWMdmdUf81TibN7nJYpVRfE6ovvjwlDutr7C7ZanVDH/uKToyrI2mw7D9Ubv68blHsHtLQbWrN6/YsUayl29yyAtd45E7i0ld/Vamt/I3VeoOQHfd3J3OBz/jkv3prxbxm6XwTbFDmRaOC0+j+MjIvMYH3WWnIvrEim3bBUpx/Eu1GjiFeq5p6hROsYjHVeyow+5p9T7vMwrwLKUO5P0HfjvwHa6k5gno6QjdRnesstfZIVYrYaxnwa7KYU9o3LPR/n8HHfNH4lLYIfIXf7vAJObdwrbzJ1yHww1PpS7DMhWjzRZ8wFO7g6H419y+P7/kPt8LfersjVmP7Sst76s2MnknNn5cdHmQfE5YqJdbqQ55pPuTzv6Xg5yh90JayNK7oF+TlmUft1A06V7BW46X8dS/illWS13Ino/jhGkK0613GH3PC9bU+Dz1NjInWk65X5VuuRH5G4fqHKFkg5G7hzQyN2KvpJZ6nbLOBzf2TtjV6ehKIyrWDVahT4H6SBdpKBgkNBbHN4iTkooVkSKvCFdMiQpdHBsF+nu6OSWP9TzfecmN5Xo1A6F84MHeffknnu7/HpJb841TsC388s9PHRfw6lvsSFRxfv2JX2n8kvEm9j0iBhM/+pFWOD2d7x31RZrZBldL3fJ9cY/QtetkE+UhJa+glNvuF/mOUsZoFzY1YTCBc3q/brR/dyv3AUpf4A5wO7PuM99yhkAyL3AaF2556xh4IfXrZA+YSyDggmTE87BRVZ/wDCMU7D4kd86M3wu8xBLd8juNRbhT4X32JDO14lUql8hzvCeKm+8vkcJXn3s7cjqvdEuLYeAxXu1vO/H5/4JCIU6fUKmuJ74PS8Z2jGA5AAQa3yPeL1PKXe/oF515P5atkIKfCdqRpPnaRmhItoNmtYjlTvtnrGvjr9qvj8od9Y+w7iYk0K5PxjbS0yGYZyALz93t87N7XYzZCxL226hGHF41vxWOa0ZvGbwK2P1Z5EnC+/2dqRZy434E25fugXkjkxJu2KGjTefWBFsSbn790zXco1YLjkA5Q7DVjfQu3BNLwtrpMj1S6ZCN7wR5asZzNoZsCh8zPIDLM2+cygcNquF4h4oeL98Q1DisRaN57iTEeG1s7KQhmGcht/nP0OVz2WwdI+KGqxCiUe+ru8FvvGVGMGM10uetgFv9nbkQ5kM16XIHfej7voqYXjeyZPN51lNJgNNONpoQl8qYOAoXFEsTur7MJutV35hPtL1+KaaVAm+E2D399P3b2pCkTM11+43zJo4V+3rOsXaveLHqObVksO1Eo+lH3BhTpyDs4LuhmGchi/vepvPsXQfPyhVyyMyUZlTrxBupj5X1L1YAwvR4HNfR0b3uE5l6V4H6FGFdiXJB8jT5xto+xYPUADljkkcH7JN4Hki8k9Cuhnkjv46AxZvxxCEc8JA7OyJ88eNxPcyLHCck8JreSPL5G4YxoWgJd1hdy5t8wGhsJeNXiNd1lcDhaY/4NdSnmgU9XeUMC29kL0yXY0mWFIrRWvWnI89JCHylcwR+Z9jhypcYVk3bCZ+dZ3HtSLub6+zHBs7U0xBZ6AH6pVJ273UQ/aKTcinZ+1xLJmGwHGdnr+n13ftnD3DMC6Hxu73D865AoYDTtjCrmA4XDih9LHUCTu/h12iPR21525fbw7MME7dai9URdk94npRZHFcpWJWyZEyIUYrkGOIAcB3+e/AA17Lotrv49htc6Yg20rSum0kDLYVz9h7LMt05xZI0MxgqP1dhpt/6bylKWLv6pA3B32nGCuMizkRtH9HiUuTu2EYFwLkDrvDd7Jgva+Mh7iE5e7KHxuGbYwhiRD2E5p+AsNtHHi/AsbBmC2KmrzNR/i/z/BXB6Zo2whDkdImDHTnHcYJU2KAMBymHprM7YZhXBRq90eoAEOC1WA0cNTSCT0SGA3BrgyVVpP3PYwfNbFRE2qH7gB9KYKhG45UPw43HE2BsK0Z5jidhvoRtZvbDcO4KGB36v1vUK8XPPpH6I7QF2U80PXrkUHZBtiIse5wtDA2BmDLf3IEjhfa/XNga/OhtJNvJowFQhs/7G2Tu2EYf9ixox0EYSCIokz//6ON2EinKZM+SELlHmPQ3TK8bRsWojree6WylvdqN/XrkPQNY2dFu8MCcsZXt7V4RDuoj1q96ahGYrYDWIveyoh1nKoyx4e+Vy0wPMAzera1ZNLpPqJWV9uY7QCWof2rS5XGsPyDDHcaMIzUDI7tANajsTT2t9DN8sM8/y4+p3bO7gAWIr/6z1EvNfeP/xuNSW9YpCX4Ws/wstt0lnCUOJMD+H9qprRib7oZRnagUAgRaZ+RL7HKbC7HdgC4kuwaFgS8YgHwIEq9W4xJMbABAAAAAABe7MGBAAAAAACQ/2sjqKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoq7MGBAAAAAACQ/2sjqKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoKe3AgAAAAAADk/9oIqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrCHhwIAAAAAAD5vzaCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwBwcCAAAAAED+r42gqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqirswYEAAAAAAJD/ayOoqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkp7cEgAAAAAIOj/a2dYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEv6MVrR60c73AAAAAElFTkSuQmCC", cG:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}}); define("tdv/view/util/Fullscreen","require exports tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Device".split(" "),function(a,m,h,n,g,k){if(k.Dc()!=k.GQ){var e=document.createElement("div"),b=function(p){return!(!(p||e).requestFullscreen&&!document.exitFullscreen)&&k.Dc()!=k.EQ};if(!(a=b()))try{a=window.self===window.top}catch(p){a=!1}if(a)a=function(p){function q(r){var t=p.call(this)||this;t.qa=r;t.ha=t.Kfa();document.addEventListener("fullscreenchange", function(){t.ela()});window.addEventListener("resize",function(){t.ela()});return t}P(q,p);q.hra=function(){};q.prototype.ol=function(){return b(this.qa)};q.prototype.xt=function(){this.enabled()||this.toggle()};q.prototype.sm=function(){this.enabled()&&this.toggle()};q.prototype.toggle=function(){this.enabled()?document.exitFullscreen():this.qa.requestFullscreen();this.ela()};q.prototype.enabled=function(){return this.ha&&this.Kfa()};q.prototype.Kfa=function(){return this.qa===document.fullscreenElement}; q.prototype.ela=function(){var r=this.Kfa();this.ha!=r&&(this.ha=r,this.o(new n(h.V)),q.M.o(h.V))};q.enabled=function(){return!!document.fullscreenElement};q.fullscreenElement=function(){return document.fullscreenElement};q.sm=function(){q.enabled()&&document.exitFullscreen()};q.M=new g;return q}(g);else{var c=!0;a=function(p){function q(r){var t=p.call(this)||this;t.qa=r;return t}P(q,p);q.hra=function(r){c=r=="out_of_frame"};q.prototype.ol=function(){return c};q.prototype.xt=function(){this.toggle()}; q.prototype.sm=function(){};q.prototype.toggle=function(){c&&window.open(window.self.location.href,"_blank")};q.prototype.enabled=function(){return q.enabled()};q.enabled=function(){return!1};q.fullscreenElement=function(){return null};q.sm=function(){};q.M=new g;return q}(g)}}else{a=function(p){function q(r){var t=p.call(this)||this;t.qa=r;return t}P(q,p);q.prototype.ol=function(){return!0};q.prototype.xt=function(){this.enabled()||this.toggle()};q.prototype.sm=function(){this.enabled()&&this.toggle()}; q.prototype.toggle=function(){if(this.enabled())d("fullscreen"),q.By=null;else{q.By&&q.By.sm();d("fullscreen");var r=f();r.push("fullscreen");l(r);q.By=this}this.o(new n(h.V));q.M.o(h.V)};q.prototype.enabled=function(){return this==q.By};q.enabled=function(){return!!q.fullscreenElement()};q.fullscreenElement=function(){return q.By&&q.By.qa};q.sm=function(){q.enabled()&&q.By&&q.By.sm()};q.hra=function(){};q.M=new g;q.By=null;return q}(g);var d=function(p){for(var q=f(),r=[],t=0;t',v='',w='',x='', y='';g.ub()?(r+=" margin:0 1vmin; min-width:20vmin; padding:2.2vmin 4vmin; font-size:3.6vmin; font-weight:bold; min-width:30vmin;",f+=" font-size:3.6vmin; line-height:4.3vmin;",l+=" margin:5vmin 0;",p+=" margin:5vmin 0;",q+=" margin:3vmin 0;",t+=" height:4vmin; margin:0 1vmin 0 0; width:4vmin;"):r+=" font-size:19px; padding:17px 34px;";l+=f;m.prototype.fea=function(){this.Nc||(this.Nc=document.createElement("div"),this.Nc.style.position="fixed",this.Nc.style.zIndex= e.gVa,this.Nc.style.left="0",this.Nc.style.top="0",this.Nc.style.margin="0",this.Nc.style.padding="0",this.Nc.style.height="100%",this.Nc.style.width="100%",this.Nc.style.backgroundColor="rgba(255, 255, 255, 0.99)",this.Nc.innerHTML=this.PZa,this.Nc.querySelectorAll("button").forEach(R=>R.addEventListener("click",Q=>this.U4a(Q.currentTarget.id))))};m.prototype.pka=function(R,Q){var K={},L;for(L in Q)K[L]=R.style[L];this.ala.push({el:R,css:K});for(L in Q)R.style[L]=Q[L]};m.prototype.u7a=function(){for(;this.ala.length;){var R= this.ala.pop(),Q;for(Q in R.css)R.el.style[Q]=R.css[Q]}};m.prototype.show=function(R,Q,K){R||(R=function(){});Q||(Q=function(){});if(this.Jz){var L=this.x0;this.x0=function(){L();R()};var U=this.m0;this.m0=function(){U();Q()}}else{this.fea();this.x0=R;this.m0=Q;var T=this.G1a();if(T===void 0){this.Jz=!0;T=c.fullscreenElement()||document.body;if(K!==!0)for(K=0;K
\n
',u,'
'+n("use-cardboard-info")+"
",'
","
",'
',"
",'
','
'+n("samsung-internet-vr-app-info")+"
",'
","
",x,"
\n
",'
','", "
"].join("\n");m.call(this,"ChromeAppInfoWindow",R)});var z=h.extend(m,function(){var R=['
\n
',u,'
'+n("use-cardboard-info")+"
",'
',"
",'
',"
",'
','
'+ n("samsung-internet-vr-info")+"
","
",x,"
\n
",'
','","
"].join("\n");m.call(this,"SamsungInternetInfoWindow",R)}),A=h.extend(m,function(){m.call(this,"SamsungInternetForGearVRInfoWindow",['
\n
', x,'
This content requires access to the WebVR API.
To enable WebVR open the "More" menu you\'ll find above this window and then click on the "Labs" item.
','
',"
\n
"].join("\n"))}),D=h.extend(m,function(){var R=['
','
','
","
"].join("\n");m.call(this,"ExternalVRDisplayVRInfoWindow",R)});D.prototype.fea=function(){m.prototype.fea.call(this);k.Tg("vrv")===!0&&(this.Nc.style.backgroundColor="")};var F=h.extend(m,function(){var R=g.Tb()==g.Ji?window.location.protocol!="https:"&&window.location.hostname!="localhost"?"
"+n("giroscope-disabled-http")+ "
":n("giroscope-disabled-safari-request-permission").map(function(Q){return"
"+Q+"
"}).join("\n"):"
"+n("giroscope-disabled-http")+"
";R=['
\n
','
',R,"
",'
',"
\n
",'
','","
"].join("\n");m.call(this,"GiroscopeDisabledInfoWindow",R)}),C=h.extend(m,function(){var R=['
\n
',u,'
'+n("use-cardboard-info")+ '
","
",'
',"
",x,'
It looks like this device is compatible with Gear VR. If you have a Gear VR headset you can view this content using the Carmel Web Browser (by Oculus).
','
',"
\n
"].join("\n");m.call(this,"CarmelInstallationPromptVRInfoWindow",R)}),B=h.extend(m, function(){var R=['
\n
',u,'
'+n("cardboard-v1")+"
",'
","
",'
',"
",'
'+n("cardboard-v2")+"
",'
",w,"
\n
",'
','","
"].join("\n");m.call(this,"CardboardV2InfoWindow",R)}),H=h.extend(m,function(){var R=['
', '
','
","
"].join("\n");m.call(this,"EnterVRInfoWindow",R)}),E=h.extend(m,function(){m.call(this,"PreparingVRInfoWindow",['
','
Preparing VR...
',"
"].join("\n"))}), G=h.extend(m,function(){var R=['
',v,'
\n
',y,'
'+n("use-safari-for-vr")+"
",'
',"
",'
','","
"].join("\n");m.call(this,"UseSafariVRInfoWindow",R)}),N=h.extend(m,function(){var R=['
','','
\n
\n
', '','
'+n("rotate-device")+"
","
\n
"].join("\n");m.call(this,"RotateVRInfoWindow",R)});h=h.extend(m,function(){var R=['
','
'+n("ar-mobile-info").split("\n").map(Q=>'
'+Q+"
").join("")+"
",'','
',"
",'
','","
"].join("\n");m.call(this,"MobileARInfoWindow",R)});var O={};O.$ob=new z;O.apb=new A;O.sta=new D;O.Fob=new C;O.Job=new H;O.Uob=new E;O.Tua=new G;O.B_=new N;O.yta=new F;O.mUa=new a;O.Paa=new B;O.Sba=new h;return O});define("tdv/view/constants/State",["require","exports"],function(){return{De:void 0,ea:"over",Fb:"pressed",qc:"pressedOver",oa:"selected"}}); define("tdv/binding/Bindable",["require","exports","tdv/constants/EventName","tdv/events/Event","tdv/events/EventDispatcher"],function(a,m,h,n,g){return function(k){function e(){var b=k.call(this)||this;b.cs={};return b}P(e,k);e.prototype.set=function(b,c){var d=this;if(typeof b==="object"){c=[];var f=0;for(b=Object.entries(b);f=0},aIa:function(a){a&&(a.indexOf("#")<0&&(a+="#"),a+="&tdvflipx");return a},Leb:function(a,m,h){var n=document.createElement("canvas");n.width=m;n.height=h;h=n.getContext("2d");h.translate(m,0);h.scale(-1,1);h.drawImage(a,0,0);a.src=n.toDataURL()}}}); define("tdv/util/LoadRequest",["require","exports"],function(){return function(){function a(m,h,n,g,k,e){this.Dqa=m;this.url=h;this.priority=n;this.time=g;this.nmb=k;this.Kcb=e}a.prototype.loaded=function(){this.Dqa.dZ(this.url);this.Dqa.remove(this)};a.prototype.cancel=function(){this.Dqa.remove(this)};return a}()}); define("tdv/util/LoadQueue","require exports tdv/player/view/util/Device tdv/player/view/util/URL tdv/events/async tdv/util/LoadRequest".split(" "),function(a,m,h,n,g,k){var e=h.Dc()===h.zB,b=!(n.Bk("debug")&&n.Tg("disable-cache"));return function(){function c(){}c.add=function(d,f,l,p){d=new k(this,d,f,(new Date).getTime(),l,p);this.yz.push(d);this.za();return d};c.Cmb=function(d){this.VN.push(d);this.za()};c.Bmb=function(d){d=this.VN.indexOf(d);d>=0&&this.VN.splice(d,1);this.za()};c.vob=function(d){var f; return e?!0:b?(f=this.mAa[d])!==null&&f!==void 0?f:!1:!1};c.dZ=function(d){e||b&&(this.mAa[d]=!0)};c.za=function(){this.nma||(this.nma=g.ME(c.rab.bind(this)))};c.rab=function(){this.nma=null;for(var d=this.E7a(),f=0,l=this.KM;f=0&&this.yz.splice(f,1);f=this.KM.indexOf(d);f>=0&&this.KM.splice(f,1);this.za()};c.yz=[];c.KM=[];c.VN=[];c.nma=null;c.mAa={};return c}()}); define("tdv/view/images/ImageLoader","require exports tdv/events/Event tdv/events/EventDispatcher tdv/constants/EventName tdv/constants/Priority tdv/player/view/util/URL tdv/view/images/fliputil tdv/util/LoadQueue".split(" "),function(a,m,h,n,g,k,e,b,c){var d=0;return function(f){function l(p){var q=f.call(this)||this;q.Se=null;q.Id=null;q.Pa=null;q.Ha=null;q.QC=!1;q.pq=null;q.BN=null;q.H4=0;q.Cga=[];q.mH=d++;q.K1=q.K1.bind(q);q.L1=q.L1.bind(q);q.zv=p||k.qVa;return q}P(l,f);l.prototype.load=function(p){this.cancel(); this.Se=p;this.H4=0;this.eEa()};l.prototype.eEa=function(){this.pq=c.add(this.Se,this.zv,this.N9a.bind(this),this.eZa.bind(this))};l.prototype.cancel=function(){this.pq&&(this.pq.cancel(),this.pq=null);this.Iwa();this.Se=null};l.prototype.xhb=function(){return!!this.Id&&!this.QC||!!this.BN};l.prototype.pj=function(){return this.QC};l.prototype.yg=function(p){return p?(p=this.Id.cloneNode(!0),this.Cga.push(p),p):this.Id};l.prototype.hg=function(){return this.Pa};l.prototype.xg=function(){return this.Ha}; l.prototype.rl=function(){return this.Se};l.prototype.N9a=function(){this.Id=this.r_a(this.Se)};l.prototype.eZa=function(){this.xhb()&&this.Iwa()};l.prototype.Iwa=function(){if(this.Id){this.BN&&(clearTimeout(this.BN),this.BN=null);for(this.QC=!1;this.Cga.length;)this.Cxa(this.Cga.shift());this.Cxa(this.Id);this.Id=null}};l.prototype.iXa=function(p){p.addEventListener("load",this.K1);p.addEventListener("error",this.L1)};l.prototype.YDa=function(p){p.removeEventListener("load",this.K1);p.removeEventListener("error", this.L1)};l.prototype.K1=function(){this.Id.width&&this.Id.height||!(this.Se.indexOf(".svg")>-1)||this.K0a();this.pq.loaded();this.pq=null;this.YDa(this.Id);this.QC=!0;this.Pa=this.Id.width;this.Ha=this.Id.height;b.Cgb(this.Se)&&b.Leb(this.Id,this.Pa,this.Ha);this.o(new h(g.ia))};l.prototype.L1=function(){var p=this;if(this.Se){var q=this.Se;this.cancel();this.Se=q;this.H4<5?(this.H4++,this.BN=setTimeout(function(){p.BN=null;p.eEa()},Math.pow(2,this.H4)*1E3)):this.o(new h(g.$c))}};l.prototype.K0a= function(){var p=new XMLHttpRequest;p.open("GET",this.Se,!1);p.send();var q=document.createElement("div");q.innerHTML=p.responseText;p=q.children[0];this.Id.width=p.width.baseVal.value;this.Id.height=p.height.baseVal.value};l.prototype.r_a=function(p){var q=document.createElement("img");e.dpa(p)?q.setAttribute("crossOrigin","Anonymous"):q.removeAttribute("crossOrigin");q.setAttribute("draggable","false");q.style.position="static";q.style.border="none";q.style.display="none";this.iXa(q);q.src=p;return q}; l.prototype.Cxa=function(p){this.YDa(p);p.parentNode&&p.parentNode.removeChild(p);p.src=""};l.gaa=function(p){return c.vob(p)};return l}(n)}); define("tdv/view/core/UIBase","require exports tdv/binding/Bindable tdv/constants/EventName tdv/constants/Priority tdv/events/Event tdv/view/constants/Cursor tdv/view/core/visualprops/UIBaseVisualProperties tdv/view/images/ImageLoader".split(" "),function(a,m,h,n,g,k,e,b,c){function d(p){if(p!==void 0)return typeof p==="string"&&(p=parseInt(p)),p%1!==0&&(p=Math.round(p)),p}function f(p){typeof p==="string"&&(p=parseInt(p));p%1!==0&&(p=Math.round(p));return p}function l(p){if(p!==void 0)return typeof p=== "string"?parseFloat(p):p}return function(p){function q(){var r=p.call(this)||this;r.mH=q.mH++;r.u=r.VL();r.u.id=r.mH;r.Tga=!1;r.Gb=null;r.Ia=null;r.eC=null;r.Y_=void 0;r.Vi=e.De;r.Py=!1;r.nq=!0;r.fn=0;r.dn=0;r.lT=0;r.kT=0;r.pK(!0);r.xka(!0);return r}P(q,p);q.prototype.VL=function(){return new b};q.prototype.gf=function(r){this.NL=r};q.prototype.tA=function(){return this.NL};q.prototype.Xb=function(){return this.Gb};q.prototype.wa=function(){if(!this.q6)throw Error("Visuals not initialized");return this.q6}; q.prototype.pLa=function(){if(!this.zM)throw Error("Input event manager not initialized");return this.zM};q.prototype.z8=function(r,t){return this.VI||this.KS?this.VI===r&&this.KS===t:!0};q.prototype.co=function(r,t,u,v){this.Gb&&this.SD();this.Gb=r;if(!this.z8(t,u))throw Error("Component visuals already created for a different rendering type");this.q6||(this.VI=t,this.q6=t.create(this));this.zM||(this.KS=u,this.zM=u.create(this,v));this.JS();this.Yz();this.IGa();this.o(n.gUa)};q.prototype.SD=function(){this.Tga= !1;this.Gb=null;this.Yz()};q.prototype.Dra=function(r){r=r||this.NL;this.u.className!==r&&(this.u.className=r,this.tb())};q.prototype.Xjb=function(){this.Dra()};q.prototype.getParent=function(){return this.Ia};q.prototype.nw=function(){return this.u.x||0};q.prototype.sA=function(){return this.u.y||0};q.prototype.nb=function(){return this.u.width};q.prototype.Mb=function(){return this.u.height};q.prototype.ygb=function(){return this.u.width!==void 0&&this.u.height!==void 0};q.prototype.Xh=function(){return this.u.width- this.u.Dd-this.u.Ce};q.prototype.Wh=function(){return this.u.height-this.u.ie-this.u.Ef};q.prototype.kg=function(r){this.u.visible!=r&&(this.u.visible=r,this.Tf(),this.Ia&&(this.Ia.lc(),this.Ia.Bf()),this.Yz())};q.prototype.Yz=function(){var r=!1;this.Gb&&this.u.visible&&this.pw()>0&&(r=!this.Ia||this.Ia.Py);this.Py!=r&&this.gda(r)};q.prototype.gda=function(r){this.Py=r;this.set("inView",r);this.Py?this.o(new k(n.od)):this.o(new k(n.jd))};q.prototype.J8a=function(r){this.nq!=r&&(this.nq=r,this.Ia&& this.Ia.Bf())};q.prototype.t8a=function(r){r=d(r);this.jM!=r&&(this.jM=r,this.lc())};q.prototype.s8a=function(r){r=d(r);this.iM!=r&&(this.iM=r,this.lc())};q.prototype.r8a=function(r){r=d(r);this.hM!=r&&(this.hM=r,this.lc())};q.prototype.q8a=function(r){r=d(r);this.gM!=r&&(this.gM=r,this.lc())};q.prototype.u8a=function(r){r=d(r);this.Mo!=r&&(this.Mo=r,this.Mo!==void 0&&(this.lp=void 0),this.lc())};q.prototype.p8a=function(r){r=d(r);this.WG!=r&&(this.WG=r,this.WG!==void 0&&(this.kp=void 0),this.lc())}; q.prototype.W8a=function(r){r=l(r);this.lp!=r&&(this.lp=r,this.lp!==void 0&&(this.Mo=void 0),this.lc())};q.prototype.S8a=function(r){r=l(r);this.kp!=r&&(this.kp=r,this.kp!==void 0&&(this.WG=void 0),this.lc())};q.prototype.M8a=function(r){r=d(r);this.Uy!=r&&(r!==void 0&&(this.e4=void 0),this.Uy=r,this.Ia&&this.Ia.Bf(),this.lc())};q.prototype.m9a=function(r){r=d(r);this.ct!=r&&(r!==void 0&&(this.g4=void 0),this.ct=r,this.Ia&&this.Ia.Bf(),this.lc())};q.prototype.Y8a=function(r){r=d(r);this.ZU!=r&&(r!== void 0&&(this.f4=void 0),this.ZU=r,this.Ia&&this.Ia.Bf(),this.lc())};q.prototype.e8a=function(r){r=d(r);this.qR!=r&&(r!==void 0&&(this.d4=void 0),this.qR=r,this.Ia&&this.Ia.Bf(),this.lc())};q.prototype.T8a=function(r){r=l(r);this.e4!=r&&(r!==void 0&&(this.Uy=void 0),this.e4=r,this.Ia&&this.Ia.Bf(),this.lc())};q.prototype.V8a=function(r){r=l(r);this.g4!=r&&(r!==void 0&&(this.ct=void 0),this.g4=r,this.Ia&&this.Ia.Bf(),this.lc())};q.prototype.U8a=function(r){r=l(r);this.f4!=r&&(r!==void 0&&(this.ZU= void 0),this.f4=r,this.Ia&&this.Ia.Bf(),this.lc())};q.prototype.R8a=function(r){r=l(r);this.d4!=r&&(r!==void 0&&(this.qR=void 0),this.d4=r,this.Ia&&this.Ia.Bf(),this.lc())};q.prototype.i8a=function(r){r=d(r);this.lC!=r&&(this.lC=r,this.Ia&&this.Ia.Bf())};q.prototype.j8a=function(r){r=d(r);this.mC!=r&&(this.mC=r,this.Ia&&this.Ia.Bf())};q.prototype.sw=function(){return isNaN(this.Mo)?this.fn:this.Mo};q.prototype.rw=function(){return isNaN(this.WG)?this.dn:this.WG};q.prototype.r2a=function(){return isNaN(this.D0a)? this.vAa:this.D0a};q.prototype.ow=function(){return isNaN(this.jM)?this.lT:this.jM};q.prototype.vA=function(){return isNaN(this.iM)?this.kT:this.iM};q.prototype.T7=function(){return isNaN(this.hM)?1E4:this.hM};q.prototype.S7=function(){return isNaN(this.gM)?1E4:this.gM};q.prototype.aFa=function(r){r=f(r);this.u.paddingLeft!=r&&(this.u.paddingLeft=r,this.u.Dd=this.u.paddingLeft+this.u.Te,this.lc(),this.tb())};q.prototype.Zya=function(){return this.u.paddingLeft};q.prototype.cFa=function(r){r=f(r); this.u.paddingTop!=r&&(this.u.paddingTop=r,this.u.ie=this.u.paddingTop+this.u.Ue,this.lc(),this.tb())};q.prototype.aza=function(){return this.u.paddingTop};q.prototype.bFa=function(r){r=f(r);this.u.paddingRight!=r&&(this.u.paddingRight=r,this.u.Ce=this.u.paddingRight+this.u.yf,this.lc(),this.tb())};q.prototype.$ya=function(){return this.u.paddingRight};q.prototype.$Ea=function(r){r=f(r);this.u.paddingBottom!=r&&(this.u.paddingBottom=r,this.u.Ef=this.u.paddingBottom+this.u.xf,this.lc(),this.tb())}; q.prototype.Yya=function(){return this.u.paddingBottom};q.prototype.JN=function(r){this.u.Jw!=r&&(this.u.Jw=r,this.tb())};q.prototype.H8a=function(r){this.u.Lc!=r&&(this.u.Lc=r,this.tb())};q.prototype.s9a=function(r){this.u.Mc!=r&&(this.u.Mc=r,this.tb())};q.prototype.hZ=function(r){if(this.u.offsetX!=r){var t=this.u.offsetX==0!=(r==0);this.u.offsetX=r;this.tb();t&&this.Ia&&this.Ia.Bf()}};q.prototype.CLa=function(){return this.u.offsetX};q.prototype.iZ=function(r){if(this.u.offsetY!=r){var t=this.u.offsetY== 0!=(r==0);this.u.offsetY=r;this.tb();t&&this.Ia&&this.Ia.Bf()}};q.prototype.DLa=function(){return this.u.offsetY};q.prototype.Hgb=function(){return this.u.offsetX!=0||this.u.offsetY!=0};q.prototype.Zn=function(r){this.u.opacity!=r&&(this.u.opacity=r,this.Yz(),this.tb())};q.prototype.pw=function(){return this.u.opacity};q.prototype.b8a=function(r){this.u.borderTopLeftRadius!=r&&(this.u.borderTopLeftRadius=r,this.tb())};q.prototype.c8a=function(r){this.u.borderTopRightRadius!=r&&(this.u.borderTopRightRadius= r,this.tb())};q.prototype.U7a=function(r){this.u.borderBottomLeftRadius!=r&&(this.u.borderBottomLeftRadius=r,this.tb())};q.prototype.V7a=function(r){this.u.borderBottomRightRadius!=r&&(this.u.borderBottomRightRadius=r,this.tb())};q.prototype.Y7a=function(r){this.u.Te!=r&&(this.u.Te=r,this.u.Dd=this.u.paddingLeft+this.u.Te,this.lc(),this.tb())};q.prototype.d8a=function(r){this.u.Ue!=r&&(this.u.Ue=r,this.u.ie=this.u.paddingTop+this.u.Ue,this.lc(),this.tb())};q.prototype.$7a=function(r){this.u.yf!=r&& (this.u.yf=r,this.u.Ce=this.u.paddingRight+this.u.yf,this.lc(),this.tb())};q.prototype.W7a=function(r){this.u.xf!=r&&(this.u.xf=r,this.u.Ef=this.u.paddingBottom+this.u.xf,this.lc(),this.tb())};q.prototype.X7a=function(r){this.u.borderLeftColor!=r&&(this.u.borderLeftColor=r,this.tb())};q.prototype.a8a=function(r){this.u.borderTopColor!=r&&(this.u.borderTopColor=r,this.tb())};q.prototype.Z7a=function(r){this.u.borderRightColor!=r&&(this.u.borderRightColor=r,this.tb())};q.prototype.T7a=function(r){this.u.borderBottomColor!= r&&(this.u.borderBottomColor=r,this.tb())};q.prototype.g5=function(r){this.u.kB!=r&&(this.u.kB=r,this.tb())};q.prototype.d9a=function(r){this.u.hu!=r&&(this.u.hu=r,this.tb())};q.prototype.g9a=function(r){this.u.iu!=r&&(this.u.iu=r,this.tb())};q.prototype.b9a=function(r){this.u.eo!=r&&(this.u.eo=r,this.tb())};q.prototype.f9a=function(r){this.u.wK!=r&&(this.u.wK=r,this.tb())};q.prototype.e9a=function(r){this.u.$w!=r&&(this.u.$w=r,this.tb())};q.prototype.c9a=function(r){this.u.shadowColor!=r&&(this.u.shadowColor= r,this.tb())};q.prototype.L7a=function(r){this.u.dJ!=r&&(this.u.dJ=r,this.tb())};q.prototype.HEa=function(r){this.u.pm!=r&&(this.u.pm=r,this.tb())};q.prototype.GEa=function(r){this.u.backgroundColor!==r&&(this.u.backgroundColor=r,r===void 0?r=[]:Array.isArray(r)||(r=[r]),this.O7a(r))};q.prototype.O7a=function(r){this.u.vk!==r&&(this.u.vk=r,this.tb())};q.prototype.N7a=function(r){this.u.L6!==r&&(this.u.L6=r,this.tb())};q.prototype.M7a=function(r){this.u.OD!=r&&(this.u.OD=r,this.tb())};q.prototype.P7a= function(r){if(this.Y_!=r){this.eC&&(this.eC.h(n.ia,this.cwa,this),this.eC.cancel(),this.eC=null,this.u.aw=null);if(this.Y_=r)this.eC=new c(g.Bua),this.eC.bind(n.ia,this.cwa,this,!1),this.eC.load(this.Y_);this.tb()}};q.prototype.cwa=function(){this.u.aw=this.eC.yg();this.tb()};q.prototype.wD=function(r){this.Vi!=r&&(this.Vi=r,this.IGa())};q.prototype.IGa=function(){var r=this.Gb&&this.Gb.wea.ZKa(this.Vi)||"inherit";this.u.cursor!=r&&(this.u.cursor=r,this.tb())};q.prototype.j9a=function(r){this.u.tabIndex!== r&&(this.u.tabIndex=r,this.tb())};q.prototype.J7a=function(r){this.u.ariaLabel!=r&&(this.u.ariaLabel=r,this.tb())};q.prototype.K7a=function(r){this.u.zO!=r&&(this.u.zO=r,this.tb())};q.prototype.pK=function(r){this.u.LJ!=r&&(this.u.LJ=r,this.tb())};q.prototype.xka=function(r){this.u.sY!=r&&(this.u.sY=r,this.tb())};q.prototype.bs=function(){this.Yz();this.LX()};q.prototype.np=function(){this.Yz()};q.prototype.Uja=function(){};q.prototype.JS=function(){this.LX();this.Tf();this.lc();this.Bf();this.tb()}; q.prototype.Zy=function(){this.kT=this.lT=this.dn=this.fn=0;this.vAa=void 0};q.prototype.LX=function(){var r=this.Xb();r&&r.HM.LX(this)};q.prototype.Tf=function(){var r=this.Xb();r&&r.HM.Tf(this)};q.prototype.lc=function(){var r=this.Xb();r&&r.HM.lc(this)};q.prototype.Bf=function(){var r=this.Xb();r&&r.HM.Bf(this)};q.prototype.tb=function(){var r=this.Xb();r&&r.HM.tb(this)};q.prototype.hga=function(){var r=isNaN(this.e4)&&isNaN(this.Uy),t=isNaN(this.f4)&&isNaN(this.ZU);return isNaN(this.Mo)&&isNaN(this.lp)&& (r||t)?!0:!1};q.prototype.tza=function(){var r=isNaN(this.g4)&&isNaN(this.ct),t=isNaN(this.d4)&&isNaN(this.qR);return isNaN(this.WG)&&isNaN(this.kp)&&(r||t)?!0:!1};q.prototype.Tab=function(){this.Zy();var r=this.r2a();if(r){var t=this.hga(),u=this.tza();t&&!u?(t=this.Wh(),t!=0&&(this.fn=t*r+this.u.Dd+this.u.Ce,this.dn=t+this.u.ie+this.u.Ef)):!t&&u&&(t=this.Xh(),t!=0&&(this.dn=t/r+this.u.Dd+this.u.Ce,this.fn=t+this.u.Dd+this.u.Ce))}!isNaN(this.jM)&&this.fnthis.hM&&(this.fn=this.hM);!isNaN(this.iM)&&this.dnthis.gM&&(this.dn=this.gM)};q.prototype.Kb=function(){};q.prototype.Lnb=function(){this.Tab();var r=this.sw(),t=this.rw(),u=this.ow(),v=this.vA();return r!=this.N4a||t!=this.M4a||u!=this.J4a||v!=this.I4a||this.lp!=this.L4a||this.kp!=this.K4a?(this.N4a=r,this.M4a=t,this.J4a=u,this.I4a=v,this.L4a=this.lp,this.K4a=this.kp,!0):!1};q.prototype.jb=function(){this.tb()};q.prototype.Lk=function(){}; q.prototype.XQa=function(r,t,u,v){if(this.u.x!=r||this.u.y!=t||this.u.width!=u||this.u.height!=v)this.u.x=r,this.u.y=t,this.u.width=u,this.u.height=v,this.Bf(),this.tb(),this.o(new k(n.Rb))};q.prototype.pu=function(){!this.Tga&&this.Gb&&(this.Tga=!0,this.Gb.npa()?this.yM():this.Gb.bind(n.Up,this.yM,this,!0))};q.prototype.yM=function(){this.o(n.INIT)};q.mH=0;return q}(h)}); define("tdv/view/core/UICustomizable","require exports tdv/constants/EventName tdv/events/Event tdv/view/constants/State tdv/view/core/UIBase".split(" "),function(a,m,h,n,g,k){return function(e){function b(){var c=e.call(this)||this;c.a2=!1;c.Qy=!1;c.Z1=!1;c.A={};c.iya=void 0;c.xz=void 0;c.nD={};c.fya=!0;c.CFa={};c.Q_a();c.Pb();c.gf("UICustomizable");c.Tf();c.set("inView",!1);c.set("toolTip",void 0);return c}P(b,e);b.prototype.Q_a=function(){this.CFa[g.qc]=g.Fb};b.prototype.Pb=function(){this.Jl(b.ad)}; b.prototype.Jl=function(c){for(var d in c){var f=c[d],l=f&&f.length;l&&typeof f!="string"?l==1?this.m(d,f[0]):l==2?this.D(d,f[0],f[1]):l==3&&this.D(d,f[0],f[1],f[2]):this.m(d,f)}};b.prototype.m=function(c,d){this.A[c]={i:!0,d}};b.prototype.w2a=function(){var c=[],d;for(d in this.A)c.push(d);return c};b.prototype.kV=function(c){this.Qy!=c&&(this.Qy=c,this.jh())};b.prototype.KN=function(c){this.Z1!=c&&(this.Z1=c,this.jh())};b.prototype.gFa=function(c){this.a2!=c&&(this.a2=c,this.jh())};b.prototype.jh= function(){this.Qy?this.LN(g.oa):this.Z1&&this.a2?this.LN(g.qc):this.Z1?this.LN(g.Fb):this.a2?this.LN(g.ea):this.LN(g.De)};b.prototype.D=function(c,d,f,l){this.nD[d]||(this.nD[d]={});this.m(c,l);this.nD[d][f]=c};b.prototype.LN=function(c,d){d===void 0&&(d=!1);if(d)this.iya=c;else if(this.iya!=void 0)return;if(this.xz!=c){if(d=this.nD[this.xz])for(var f in d)(this.A[f]||(this.A[f]={})).i=!0;this.xz=c;if(d=this.nD[this.xz])for(f in d)(this.A[f]||(this.A[f]={})).i=!0;this.Tf()}};b.prototype.xa=function(c){if(typeof c=== "string")this.set(c,void 0);else{var d=c;for(c in d)this.set(c,d[c])}};b.prototype.set=function(c,d){var f=this.A[c];f?(d==void 0&&(d=f.d),this.get(c)!==d&&(c=="state"&&this.LN(d,!0),e.prototype.set.call(this,c,d),f.i=!0,this.Tf())):e.prototype.set.call(this,c,d)};b.prototype.get=function(c,d){switch(c){case "actualWidth":return this.nb();case "actualHeight":return this.Mb();default:var f=e.prototype.get.call(this,c);f===void 0&&((c=this.A[c])&&(f=c.d),f===void 0&&(f=d));return f}};b.prototype.ada= function(c){for(var d=0;d=2)return parseFloat(c[1])};b.ad={ariaLabel:void 0,ariaRole:void 0,visible:!0,includeInLayout:!0,state:void 0,left:void 0,right:void 0,top:void 0,bottom:void 0,centerX:void 0,centerY:void 0,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0,maxWidth:void 0, maxHeight:void 0,actualWidth:void 0,actualHeight:void 0,paddingLeft:0,paddingTop:0,paddingRight:0,paddingBottom:0,opacity:1,borderRadius:0,borderTopRadius:void 0,borderBottomRadius:void 0,borderLeftRadius:void 0,borderRightRadius:void 0,borderTopLeftRadius:void 0,borderTopRightRadius:void 0,borderBottomLeftRadius:void 0,borderBottomRightRadius:void 0,borderSize:0,borderLeftSize:void 0,borderTopSize:void 0,borderRightSize:void 0,borderBottomSize:void 0,borderColor:void 0,borderLeftColor:void 0,borderTopColor:void 0, borderRightColor:void 0,borderBottomColor:void 0,shadow:!1,shadowHorizontalLength:0,shadowVerticalLength:3,shadowBlurRadius:6,shadowSpread:0,shadowColor:"#000000",shadowOpacity:void 0,tabIndex:void 0,backgroundBlur:0,backgroundOpacity:1,backgroundColor:void 0,backgroundColorRatios:void 0,backgroundColorDirection:void 0,backgroundImageUrl:void 0,hideEffect:void 0,showEffect:void 0};return b}(k)}); define("tdv/view/core/UIComponent",["require","exports","tdv/constants/EventName","tdv/view/constants/State","tdv/view/core/UICustomizable"],function(a,m,h,n,g){return function(k){function e(){var b=k.call(this)||this;b.gf("UIComponent");b.set("propagateClick",!0);return b}P(e,k);e.prototype.Pb=function(){this.Jl(e.ad)};e.prototype.bwa=function(){this.gFa(!0)};e.prototype.awa=function(){this.gFa(!1)};e.prototype.Zva=function(){this.KN(!0)};e.prototype.$va=function(){this.KN(!1)};e.prototype.JS=function(){this.yD("interactionEnabled"); k.prototype.JS.call(this)};e.prototype.jb=function(){this.S("autoRolledOver")&&(this.h(h.uc,this.bwa,this),this.h(h.Eb,this.awa,this),this.G("autoRolledOver")&&(this.bind(h.uc,this.bwa,this,!1),this.bind(h.Eb,this.awa,this,!1)),this.$("autoRolledOver"));this.S("autoPressed")&&(this.h(h.Sa,this.Zva,this),this.h(h.$a,this.$va,this),this.G("autoPressed")&&(this.bind(h.Sa,this.Zva,this,!1),this.bind(h.$a,this.$va,this,!1)),this.$("autoPressed"));var b=!1;this.S("contentOpaque")&&(b=!0,this.$("contentOpaque")); this.S("inheritedInteractionEnabled")&&(b=!0,this.$("inheritedInteractionEnabled"));this.S("interactionEnabled")&&(b=!0,this.$("interactionEnabled"));if(this.S("backgroundOpacity")||this.S("backgroundColor")||this.S("inView"))b=!0;this.S("inView")&&(b=!0);g.prototype.jb.call(this);if(b){var c=!!(this.u.pm>0&&(this.u.vk.length>0||this.u.dJ>0)),d=this.G("contentOpaque"),f=this.G("inheritedInteractionEnabled"),l=this.G("interactionEnabled"),p=this.G("inView");this.uI(f&&l&&(d||c)&&p)}if(b||this.S("cursor")|| this.S("inheritedCursor"))this.$("cursor"),this.$("inheritedCursor"),this.zM.rLa()?this.wD(this.G("cursor")):this.wD(this.G("inheritedCursor"))};e.prototype.pu=function(){this.q6.update(this.u);k.prototype.pu.call(this)};e.prototype.uI=function(b){this.zM.oRa(b)};e.prototype.log=function(b){if(b){b=[];for(var c=this;c;)b.push(c),c=c.getParent();console.log(b.map(function(d){return d.cs}))}else console.log(this.cs)};e.ad=Object.assign({},g.ad,{autoRolledOver:!1,autoPressed:!1,contentOpaque:!0,cursor:void 0, inView:void 0,inheritedCursor:void 0,inheritedInteractionEnabled:!0,interactionEnabled:!0,rollOverOpacity:[n.ea,"opacity"],rollOverShadow:[n.ea,"shadow"],toolTipFollowMouse:!1});return e}(g)}); define("tdv/view/effects/Effect","require tdv/utils tdv/binding/Bindable tdv/constants/EventName tdv/events/Event tdv/view/util/Animation tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable");a("tdv/constants/EventName");var n=a("tdv/events/Event"),g=a("tdv/view/util/Animation"),k=a("tdv/view/util/Ease"),e=a("tdv/view/util/EaseDimension"),b={},c=m.extend(h,function(){h.call(this);this.I="stopped";this.ac=void 0;this.Oq=[];this.set("easing", "linear");this.set("duration",1E3);this.set("loop",!1);this.set("animationDirection","normal")});c.prototype.play=function(d){d||(d=b);this.vP(d)||(this.I=="stopped"||this.Oq.indexOf(d)<0?(this.I="playing",this.Oq.push(d),this.dh=0,this.ac=Math.max(this.get("duration",1E3),1),this.bh=new k(this.get("easing","linear"),[new e("pos",0,1)],this.ac),this.bh.setTime(this.dh),this.ON(),this.Jv(),this.IU()):this.I="playing")};c.prototype.reverse=function(d){d||(d=b);this.Ihb(d)||(this.I=="stopped"||this.Oq.indexOf(d)< 0?(this.I="playingReverse",this.Oq.push(d),this.dh=this.ac=Math.max(this.get("duration",1E3),0),this.bh=new k(this.get("easing","linear"),[new e("pos",0,1)],this.ac),this.bh.setTime(this.dh),this.ON(),this.Jv(),this.IU()):this.I="playingReverse")};c.prototype.stop=function(){this.I!="stopped"&&(this.I="stopped",this.dh!==0&&(this.dh=0,this.bh.setTime(this.dh),this.Jv(),this.IU()))};c.prototype.end=function(){this.I!="stopped"&&(this.dh=this.ac,this.bh.setTime(this.dh),this.Jv(),this.IU())};c.prototype.cancel= function(){this.I="stopped";this.dh=0;this.Oq=[]};c.prototype.vP=function(d){return this.I=="playing"&&this.Oq.indexOf(d)>=0};c.prototype.Ihb=function(d){return this.I=="playingReverse"&&this.Oq.indexOf(d)>=0};c.prototype.sq=function(d){this.I!="stopped"&&(this.dh=this.I=="playing"?Math.min(this.ac,this.dh+d):Math.max(0,this.dh-d),this.bh.setTime(this.dh),this.Jv(),this.IU())};c.prototype.vm=function(){return this.bh&&this.bh.ob("pos")||0};c.prototype.BC=function(d){if(this.Oq)for(var f=0;f=this.ac?(this.dh=this.ac,this.MN(),this.Oq=[],this.I!="stopped"&&(this.I= "stopped",this.get("animationDirection")=="alternate"?this.reverse():this.get("loop")&&this.play())):this.I!="stopped"&&g.requestFrame(this.sq,this)};c.NUa="start";c.eba="frame";c.Cl="end";c.LUa="reverseStart";c.wx="reverseEnd";return c}); define("tdv/view/effects/FadeEffect",["require","tdv/utils","tdv/view/effects/Effect"],function(a){var m=a("tdv/utils"),h=a("tdv/view/effects/Effect");a=m.extend(h,function(){h.call(this);this.Tca=this.Rca=null});a.prototype.ON=function(){h.prototype.ON.call(this);this.Rca=[];this.Tca=[];this.BC(function(n){this.Rca.push(this.get("alphaFrom",n.pw()));this.Tca.push(this.get("alphaTo",n.pw()))});this.C4()};a.prototype.Jv=function(){h.prototype.Jv.call(this);this.C4()};a.prototype.C4=function(){this.BC(function(n, g){var k=this.Rca[g];g=k+(this.Tca[g]-k)*this.vm();!(n.pw()>0&&n.u.visible)&&g>0?(n.Zn(0),n.kg(!0),n.Zn(g)):g==0?(n.kg(!1),n.Zn(1)):n.Zn(g)})};a.prototype.MN=function(){this.C4();h.prototype.MN.call(this)};a.prototype.NN=function(){this.C4();h.prototype.NN.call(this)};return a}); define("tdv/view/effects/FadeInEffect",["require","tdv/utils","tdv/view/effects/FadeEffect"],function(a){var m=a("tdv/utils"),h=a("tdv/view/effects/FadeEffect");return m.extend(h,function(){h.call(this);this.set("alphaFrom",0);this.set("alphaTo",1)})});define("tdv/view/effects/FadeOutEffect",["require","tdv/utils","tdv/view/effects/FadeEffect"],function(a){var m=a("tdv/utils"),h=a("tdv/view/effects/FadeEffect");return m.extend(h,function(){h.call(this);this.set("alphaFrom",1);this.set("alphaTo",0)})}); define("tdv/player/view/UserInteractionWindow","require exports tdv/view/util/Assets tdv/constants/EventName tdv/player/view/util/Device tdv/view/core/UIComponent tdv/view/effects/FadeInEffect tdv/view/effects/FadeOutEffect".split(" "),function(a,m,h,n,g,k,e,b){a=function(q){function r(){var t=q.call(this)||this;t.gf("UserInteractionWindow");t.Cc=null;t.Cv=[];var u=new e;u.set("duration",500);u.set("easing","cubic_in");var v=new b;v.set("duration",500);v.set("easing","cubic_out");t.xa({contentOpaque:!0, left:0,top:0,right:0,bottom:0,hideEffect:v,showEffect:u,visible:!1});t.bind(n.Rb,t.vma,t,!0);t.bind(n.ma,t.obb,t,!0);return t}P(r,q);r.prototype.vma=function(){this.Cc&&this.Cc.setSize(this.Xh(),this.Wh())};r.prototype.obb=function(){var t=this.Cv.slice();this.Cv=[];this.g6();t.forEach(function(u){u.Hn.call(u.context)})};r.prototype.Kb=function(){q.prototype.Kb.call(this);if(!this.Cc){this.Cc=new p;this.Cc.setSize(this.Xh(),this.Wh());this.Cc.kg(!0);var t=this.Cc.cc();t.style.position="absolute"; t.style.left="0";t.style.top="0";t.style.right="0";t.style.bottom="0";t.style.overflow="hidden";this.wa().uk(t);this.g6()}};r.prototype.bs=function(){q.prototype.bs.call(this);this.getParent().bind(n.Rb,this.vma,this,!0);r.mXa(this)};r.prototype.np=function(){this.getParent().h(n.Rb,this.vma,this,!0);q.prototype.np.call(this);r.$6a(this)};r.prototype.Sjb=function(t){this.rD(f,t)};r.prototype.EY=function(t){this.rD(d,t)};r.prototype.rD=function(t,u){this.Cv.push(new c(t,u));this.Cv.sort(function(v, w){return l[v.reason]-l[w.reason]});this.g6()};r.prototype.Ncb=function(t){this.cancel(f,t)};r.prototype.Lcb=function(){var t;t===void 0&&(t=void 0);this.cancel(d,t)};r.prototype.cancel=function(t,u){t=this.z2a(t,u);t>=0&&this.k7a(t)};r.prototype.z2a=function(t,u){for(var v=0;v0?this.Cv[0]:null};r.mXa=function(t){r.zd.push(t);r.Xia.forEach(function(u){r.Kza(t,u)});r.Xia=[]};r.$6a=function(t){r.zd.splice(r.zd.indexOf(t),1)};r.ready=function(){return r.zd.length>0};r.EY=function(t){r.zd.length?r.zd.forEach(function(u){r.Kza(u,t)}):r.Xia.push(t)};r.Kza=function(t,u){t.EY(function(){r.zd.forEach(function(v){v!=t&&v.Lcb()}); u()})};r.zd=[];r.Xia=[];return r}(k);var c=function(){return function(q,r){this.reason=q;this.Hn=r;this.context=this}}(),d="vr",f="play",l={};l[d]=0;l[f]=1;var p=function(){function q(){this.Ld=!1;this.KV=null;this.Ha=this.Pa=100;this.yga=this.Cj=void 0;this.zga=100;this.qa=document.createElement("div");this.qa.style.opacity="0";this.qa.style.display="none";this.qa.style.transition="opacity 0.3s";this.qa.addEventListener("transitionend",this.rla.bind(this,!1));this.ae=document.createElement("div"); this.VQa(!0);this.ae.style.position="absolute";this.ae.style.left="0";this.ae.style.top="0";this.ae.style.right="0";this.ae.style.bottom="0";this.qa.appendChild(this.ae);this.Id=document.createElement("img");this.Id.style.cursor="pointer";this.Id.style.position="absolute";this.Id.style.left="50%";this.Id.style.top="50%";this.Id.style.transform="translate(-50%, -50%)";this.qa.appendChild(this.Id)}q.prototype.cc=function(){return this.qa};q.prototype.setSize=function(r,t){if(this.Pa!==r||this.Ha!== t)this.Pa=r,this.Ha=t,this.mHa()};q.prototype.VQa=function(r){this.ae.style.backdropFilter=r?"blur(8px)":"none"};q.prototype.kg=function(r){this.Ld!=r&&(this.Ld=r,this.KV&&(clearTimeout(this.KV),this.KV=null),this.Ld?(this.qa.style.display="block",this.qa.style.opacity="0",this.KV=setTimeout(function(){this.KV=null;this.qa.style.opacity="1"}.bind(this),30)):this.qa.style.opacity="0")};q.prototype.mra=function(r){this.Cj!=r&&(this.Cj=r,this.zab())};q.prototype.rla=function(){this.Ld||(this.qa.style.display= "none")};q.prototype.zab=function(){switch(this.Cj){case q.Nba:this.yga=h.Ex;this.zga=h.jL;break;case q.Ata:this.yga=h.Xp,this.zga=h.tWa}this.Id.src=this.yga||"";this.mHa()};q.prototype.mHa=function(){g.ub()?(this.Id.style.maxWidth=Math.round(this.Pa*.5)+"px",this.Id.style.width="20vmin"):(this.Id.style.maxWidth=Math.round(this.Pa*.33)+"px",this.Id.style.width=this.zga+"px")};q.Nba="play";q.Ata="vr";return q}();a.lua=p;return a}); define("tdv/player/view/util/xr/Hash",["require","exports"],function(){return function(){function a(){}a.addParameter=function(m){this.removeParameter(m);var h=this.toArray();h.push(m);this.PSa(h)};a.removeParameter=function(m){var h=this.toArray().filter(function(n){return n!=m});this.PSa(h)};a.toArray=function(){var m=window.location.hash.substring(1);return m.length?m.split("&"):[]};a.PSa=function(m){window.location.hash="#"+(m.length?m.join("&"):"")};return a}()}); define("tdv/player/view/util/xr/VRPreconditionsChecker","require exports tdv/player/view/util/Device tdv/player/view/util/Gyroscope tdv/player/view/util/InfoWindow tdv/view/util/Fullscreen tdv/view/util/UserInitiatedAction tdv/player/view/UserInteractionWindow tdv/player/view/util/xr/Hash tdv/player/view/util/xr/pointer/SelectionMode tdv/player/view/util/xr/SessionMode tdv/player/view/util/URL".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l){var p=!1;e.wait(function(){setTimeout(function(){p=!0},10)}); return function(){function q(){}q.jB=function(r,t){this.sKa(r,t)};q.sKa=function(r,t){function u(){w.sKa(r,t)}function v(){w.fmb(r,t)}var w=this;this.XR.wP?n.disabled?g.yta.show(function(){n.Pqa(u)}):k.enabled()||!e.B8()?(k.sm(),b.EY(u)):v():this.XR.h$?v():h.iE()?v():h.Dc()==h.ox||h.Dc()==h.su?p?v():e.B8()?setTimeout(v,10):b.EY(function(){setTimeout(v,10)}):e.B8()?v():b.EY(v)};q.fmb=function(r,t){function u(){v.gkb(r,t)}var v=this;h.Dc()==h.RK?(c.removeParameter("vr"),g.mUa.show(u,function(){c.addParameter("vr")}.bind(this))): h.Dc()==h.EQ?g.Tua.show(u):h.Dc()==h.ZZ?g.Tua.show():r==f.Np&&h.ub()&&!h.kf()?g.Sba.show(u):u()};q.gkb=function(r,t){function u(){w.XR.Yqa=d.YUa;t()}function v(){w.XR.Yqa=d.RF;t()}var w=this;r==f.Np?u():!h.ub()||h.kf()?v():l.getQueryParameter("cardboard_version")=="1"?v():l.getQueryParameter("cardboard_version")=="2"?u():g.Paa.show(u,v)};return q}()}); define("tdv/view/util/FullWindow",["require","exports","tdv/view/util/Fullscreen"],function(a,m,h){function n(){d==document.body&&(k.style.height=window.innerHeight+"px")}function g(p,q){var r={},t=p.style,u;for(u in q)r[u]=t[u];f.push({el:p,css:r});for(u in q)t[u]=q[u]}var k=document.createElement("div");k.style.position="fixed";k.style.bottom="0";k.style.left="0";k.style.height="100vh";k.style.width="100vw";var e=document.createElement("div"),b=null,c=null,d=null,f=[],l=null;return function(){function p(q){this.qa= q}p.prototype.xt=function(){this.enabled()||this.toggle()};p.prototype.sm=function(){this.enabled()&&this.toggle()};p.prototype.toggle=function(){this.enabled()?p.cancel():p.request(this.qa)};p.prototype.enabled=function(){return p.enabled(this.qa)};p.request=function(q){if(q!==b){p.cancel();b=q;d=h.fullscreenElement()||document.body;c=q;c.parentElement.insertBefore(e,c);k.appendChild(c);for(q=0;q','','\n
\n
'].join("\n"), b=e+['','
'+k("rotate-device")+"
"].join("\n")+"
\n
",c=e+['','
Please, swipe up to
enter Fullscreen Mode
'].join("\n")+ "\n";m=m.extend(g,function(){g.call(this);this.Ks=this.sC=this.vC=this.bT=this.cT=this.nha=this.oha=void 0;this.N1=!1;this.tD=this.lja=this.mha=this.Nc=null;this.lya=[];this.yM=this.Ts=!1;this.kd=this.kd.bind(this)});m.prototype.request=function(){this.Ts||(this.Ts=!0,this.h_a(),window.addEventListener("resize",this.kd),document.body.appendChild(this.Nc),document.body.appendChild(this.tD),this.h$a=document.documentElement.style.overflow,this.g$a=document.body.style.overflow,document.documentElement.style.overflow= "auto",document.body.style.overflow="auto",this.mU())};m.prototype.cancel=function(){this.Ts&&(this.Ts=!1,window.removeEventListener("resize",this.kd),document.body.style.overflow=this.g$a,document.documentElement.style.overflow=this.h$a,document.body.removeChild(this.Nc),document.body.removeChild(this.tD),this.REa(!1))};m.prototype.enabled=function(){return this.N1};m.prototype.h_a=function(){this.Nc||(this.Nc=this.D0({position:"fixed",top:0,left:0,zIndex:9999998},!0),this.Nc.id="tdvminuictr",this.lja= this.D0({position:"fixed",backgroundColor:"#fff",top:0,left:0,textAlign:"center"},!0,b),this.Nc.appendChild(this.lja),this.mha=this.D0({position:"fixed",backgroundColor:"#fff",top:0,left:0,textAlign:"center"},!0,c),this.Nc.appendChild(this.mha),this.tD=this.D0({position:"absolute",top:0,left:0,right:0,height:"999999999vmax",zIndex:9999999},!1),this.tD.id="tdvminuiscrl",this.tD.addEventListener("touchend",this.kd))};m.prototype.D0=function(d,f,l){var p=document.createElement("div");this.eV(p,d);l!== void 0&&this.F8a(p,l);f&&this.lya.push(p);return p};m.prototype.kd=function(){[0,250,1E3,2E3].forEach(function(d){setTimeout(this.lU.bind(this),d)}.bind(this))};m.prototype.lU=function(){this.vC==window.innerWidth&&this.sC==window.innerHeight||this.mU()};m.prototype.mU=function(){this.vC=window.innerWidth;this.sC=window.innerHeight;this.Ks=this.vC>this.sC?"landscape":"portrait";if(this.Ks=="landscape"){this.oha&&this.nha&&this.Z3a(this.oha,this.nha)&&(!this.cT&&!this.bT||this.$3a(this.cT,this.bT))&& (this.cT=this.vC,this.bT=this.sC);this.T3a()&&(this.cT=this.vC,this.bT=this.sC);this.oha=this.vC;this.nha=this.sC;var d=this.cT==this.vC&&this.bT==this.sC}else d=!1;this.lya.forEach(function(q){q.style.height=this.sC+"px";q.style.width=this.vC+"px"}.bind(this));var f=this.Ts&&this.Ks=="portrait",l=this.Ts&&this.Ks=="landscape"&&!d,p=this.Ts&&this.Ks=="landscape";this.eV(this.Nc,{display:f||l?"block":"none"});this.eV(this.lja,{display:f?"block":"none"});this.eV(this.mha,{display:l?"block":"none"}); this.eV(this.tD,{display:p?"block":"none",right:l?0:"99.9%"});this.REa(d)};m.prototype.REa=function(d){this.Z4!=null&&(clearTimeout(this.Z4),this.Z4=null);this.N1!=d&&(this.Z4=setTimeout(function(){this.Z4=null;(this.N1=d)?this.o(new n(h.Dr)):this.o(new n(h.Ub));this.o(new n(h.V))}.bind(this),d?1E3:0))};m.prototype.T3a=function(){var d=window.innerWidth,f=window.innerHeight,l=Infinity;[[480,320],[960,640],[1136,640],[1334,750],[1920,1080],[2001,1125],[2048,1536],[2172,1125],[2208,1242],[2732,2048], [2436,1125]].forEach(function(p){l=Math.min(l,Math.abs(100-d*p[1]*100/(f*p[0])))});return l<=1?!0:!1};m.prototype.Z3a=function(d,f){return d*window.innerHeight>f*window.innerWidth};m.prototype.$3a=function(d,f){return d*window.innerHeight>=f*window.innerWidth};m.prototype.eV=function(d,f){for(var l in f)d.style[l]=f[l]};m.prototype.F8a=function(d,f){d.innerHTML=f};return new m}); define("tdv/view/util/KeepAwake",["require","exports"],function(){return function(){function a(){}a.enable=function(){this.wakeLock===null&&navigator.wakeLock&&navigator.wakeLock.request("screen").then(function(m){this.wakeLock=m}.bind(this))};a.disable=function(){this.wakeLock!==null&&(this.wakeLock.release(),this.wakeLock=null)};a.wakeLock=null;return a}()}); define("tdv/view/util/LandscapeAnimation",["require","exports","tdv/player/l10n","tdv/view/util/Assets"],function(a,m,h,n){return new (function(){function g(){this.container=null;this.enabled=!1;this.kd=this.kd.bind(this);this.lU=this.lU.bind(this)}g.prototype.TL=function(){this.container||(this.container=document.createElement("div"),this.container.style.position="fixed",this.container.style.zIndex="1000000",this.container.style.left="0",this.container.style.top="0",this.container.style.margin="0", this.container.style.padding="0",this.container.style.height="100%",this.container.style.width="100%",this.container.style.backgroundColor="rgba(255, 255, 255, 0.99)",this.container.innerHTML=['
','','
\n
\n
','','
'+h("rotate-device")+"
","
\n
"].join("\n"))};g.prototype.show=function(k){this.enabled||(this.enabled=!0,this.TL(),k.appendChild(this.container),window.addEventListener("resize",this.kd),this.mU())};g.prototype.oe=function(){this.enabled&&(this.enabled=!1,window.removeEventListener("resize",this.kd),this.container.parentElement.removeChild(this.container))}; g.prototype.kd=function(){[0,250,1E3,2E3].forEach(function(k){setTimeout(this.lU,k)}.bind(this))};g.prototype.lU=function(){this.VJa==window.innerWidth&&this.UJa==window.innerHeight||this.mU()};g.prototype.mU=function(){this.VJa=window.innerWidth;this.UJa=window.innerHeight;this.orientation=this.VJa>this.UJa?"landscape":"portrait";this.container.style.display=this.orientation!="landscape"?"block":"none"};return g}())}); define("tdv/player/view/util/xr/XRSessionManager","require exports tdv/constants/EventName tdv/player/view/util/Device tdv/player/view/util/InfoWindow tdv/player/view/util/xr/Hash tdv/player/view/util/xr/SessionMode tdv/view/util/Fullscreen tdv/view/util/FullWindow tdv/view/util/IOSFullscreen tdv/view/util/KeepAwake tdv/view/util/LandscapeAnimation tdv/view/util/Animation three.mod".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p,q){function r(w,x){w?setTimeout(x,200):x()}var t=new q.Vector3,u=new q.Quaternion, v=new q.Vector3;return function(){function w(){}w.request=function(x,y,z){this.XR.isPresenting||this.XR.SX||(this.Dm=x,this.HY=y,this.c$=z,this.Dm&&(this.XR.SX=!0,this.jib(),this.requestSession().then(function(A){this.Oib(A);this.Dm.xr.setReferenceSpaceType("local-floor");this.Dm.xr.setFoveation(this.c$.SKa);return this.Dm.xr.setSession(A)}.bind(this)).then(function(){this.XR.referenceSpace=this.Dm.xr.getReferenceSpace();this.XR.SX=!1;this.Pib()}.bind(this)).catch(function(A){console.error(A);this.XR.SX= !1;this.Nib()}.bind(this))))};w.end=function(){this.XR.session&&this.XR.session.end()};w.requestSession=function(){return navigator.xr.requestSession(this.HY,this.Zfb())};w.Zfb=function(){var x,y=["local-floor","bounded-floor"];((x=this.Dm)===null||x===void 0?0:x.capabilities.isWebGL2)&&y.push("layers");this.HY==e.Np&&(y=y.concat(["anchors","hit-test"]));return{optionalFeatures:y}};w.jib=function(){p.jZ(!0);this.Hkb(this.Dm);this.dmb()};w.Oib=function(x){this.iqa||(this.iqa=this.Mib.bind(this));this.jqa|| (this.jqa=this.Qib.bind(this));x.addEventListener("end",w.iqa);x.addEventListener("select",w.jqa)};w.Nib=function(){p.jZ(!1);this.CSa()};w.Pib=function(){var x;(x=this.Dm)===null||x===void 0||x.xr.setAnimationLoop(this.Bp.bind(this));p.HRa(this.requestFrame.bind(this),this.Ocb.bind(this));p.jZ(!1);this.GRa(this.Dm,this.HY,this.c$);this.c$=this.HY=this.Dm=null;this.XR.Em==e.Xp&&(n.ub()?b.enabled()&&n.Dc()!=n.FQ&&l.show(b.fullscreenElement()):g.sta.show(this.XR.sm.bind(this.XR)))};w.Mib=function(){var x; this.XR.session&&(this.XR.session.removeEventListener("end",w.iqa),this.XR.session.removeEventListener("select",w.jqa),this.XR.anchors=[],this.XR.YI.clear(),(x=this.Dm)===null||x===void 0||x.xr.setAnimationLoop(null),p.Wjb(),this.CSa(),this.GRa(null,null,null))};w.Qib=function(){this.XR.M.o(h.Xr)};w.GRa=function(x,y,z){this.XR.Uf!==x&&(window.XR=this.XR,this.XR.Uf=x,this.XR.Em=y,this.XR.Al=z,this.XR.session=x?x.xr.getSession():null,this.XR.isPresenting=!!x,this.XR.XA=x?this.XR.Nqa.get(x)||null:null, this.XR.Nw=x?this.XR.Mqa.get(x)||null:null,this.pTa(),r(!this.XR.isPresenting,function(){this.XR.M.o(h.V)}.bind(this)))};w.Hkb=function(x){var y=void 0;n.KJ()?y=1.2545454545454546:n.kf()?y=1.4222222222:n.ub()&&this.XR.wP&&(y=this.XR.T9);y&&x.xr.setFramebufferScaleFactor(y)};w.dmb=function(){var x;c.request((x=this.Dm)===null||x===void 0?void 0:x.domElement);this.XR.wP&&(this.Dm.domElement.width=this.Dm.domElement.height=100,n.Dc()==n.GQ?k.addParameter("vr"):f.enable(),n.Dc()==n.FQ&&d.request())}; w.CSa=function(){c.cancel();l.oe();n.ub()||g.sta.oe();this.XR.wP&&(k.removeParameter("vr"),d.cancel(),f.disable())};w.Bp=function(x){var y,z=(y=this.XR.Uf)===null||y===void 0?void 0:y.xr.getFrame();z&&(this.pTa(),y=this.A7,this.A7=null,this.mnb(z),this.XR.M.o(h.UZ),y&&y(x),this.XR.M.o(h.Zd))};w.mnb=function(x){var y=this;this.XR.anchors.forEach(function(z){if(x.trackedAnchors&&x.trackedAnchors.has(z)&&y.XR.referenceSpace){var A=x.getPose(z.anchorSpace,y.XR.referenceSpace);A&&(y.XR.YI.has(z)||y.XR.YI.set(z, new q.Matrix4),y.XR.YI.get(z).fromArray(A.transform.matrix).premultiply(y.XR.Vh.matrixWorld).decompose(t,u,v).compose(t,u,v.set(1,1,1)))}})};w.pTa=function(){if(this.XR.session&&this.XR.session.renderState)if(this.XR.session.renderState.baseLayer)this.XR.framebufferWidth=this.XR.session.renderState.baseLayer.framebufferWidth,this.XR.framebufferHeight=this.XR.session.renderState.baseLayer.framebufferHeight;else{var x=this.XR.session.renderState.layers;x&&x.length>0&&x[0].textureWidth&&(this.XR.framebufferWidth= x[0].textureWidth,this.XR.framebufferHeight=x[0].textureHeight)}};w.requestFrame=function(x){this.A7=x;return 0};w.Ocb=function(){this.A7=null};w.Dm=null;w.c$=null;w.HY=null;w.A7=null;return w}()}); define("tdv/player/view/util/XR","require exports tdv/utils tdv/events/EventDispatcher tdv/player/view/util/xr/APIAvailabilityChecker tdv/player/view/util/xr/CameraPosition tdv/player/view/util/xr/pointer/PointerType tdv/player/view/util/xr/RendererList tdv/player/view/util/xr/RendererType tdv/player/view/util/xr/pointer/SelectionMode ./xr/SessionMode tdv/player/view/util/xr/Type tdv/player/view/util/xr/ui/UI tdv/player/view/util/xr/ui/UIPanel tdv/player/view/util/xr/VisibilityListener tdv/player/view/util/xr/VRAutoStart tdv/player/view/util/xr/pointer/XRControllers tdv/player/view/util/xr/pointer/XRGazePointer tdv/player/view/util/xr/pointer/XRPointer tdv/player/view/util/xr/XRSettings tdv/player/view/util/xr/VRPreconditionsChecker tdv/player/view/util/xr/XRSessionManager three.mod".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q,r,t,u,v,w,x,y,z,A){a=function(){function D(){}D.initialize=function(F){g.initialize(function(){this.Vn.forEach(function(C){C.xr.enabled=this.zQ}.bind(this));r.initialize();t.initialize();u.initialize();v.initialize();w.initialize();k.initialize();p.initialize();this.JMa=!0;F()}.bind(this))};D.getType=function(){return this.wP?this.Kx.mo:this.Kx.yWa};D.xt=function(F,C,B){this.JMa?!this.zQ||this.isPresenting||this.SX||this.jB(C,function(){z.request(F,C,B)}.bind(z)):this.initialize(function(){D.xt(F, C,B)}.bind(D))};D.sm=function(){z.end()};D.QRa=function(F){w.vlb(F)};D.setScale=function(F){k.setScale(F)};D.setPosition=function(F){k.setPosition(F)};D.mK=function(F){k.mK(F)};D.d$=function(){k.d$()};D.wra=function(F,C,B,H){b.Okb(F,C,B);switch(H){case c.bca:u.MRa(!0);u.ARa(!0);break;default:u.MRa(!1),u.ARa(!1)}};D.dcb=function(F){F.xr.enabled=this.zQ;b.add(F)};D.Kjb=function(F){b.remove(F)};D.YE=function(F,C,B,H){H===void 0&&(H=void 0);F.We=C;F.pr=B;F.zw=H;C&&(F.sPa=Date.now())};D.ERa=function(F, C){F.eA=C};D.C$=function(F,C){C!=F.disabled&&(F.disabled=C)};D.QY=function(F,C){u.jkb(F,C)};D.qlb=function(F,C){F.In=C};D.slb=function(F,C){F.hidden=C};D.FRa=function(F,C){F.i8=C};D.Rjb=function(){var F=this;return(new Promise(function(C,B){F.Wq=C;F.vO=B})).then(function(C){F.anchors.push(C);return C}).finally(function(){F.Wq=F.vO=null})};D.Jcb=function(){this.vO&&this.vO("cancelled")};D.ieb=function(F){var C=this.anchors.indexOf(F);C!=-1&&(this.anchors.splice(C,1),this.YI.delete(F),F.delete&&F.delete())}; D.log=function(){h.log("VR: "+(this.zQ?"available":"not available"))};D.jB=function(F,C){y.jB(F,C)};D.tua=e;D.Kx=l;D.XQ=c;D.Fl=f;D.Xua=x;D.zQ=!0;D.pIa=!0;D.wP=!1;D.Uf=null;D.XA=null;D.Nw=null;D.isPresenting=!1;D.SX=!1;D.session=null;D.Em=null;D.framebufferWidth=void 0;D.framebufferHeight=void 0;D.wg=new A.Quaternion;D.HO=1.7;D.Ec=new A.Vector3;D.zi=1;D.yl=new A.Quaternion;D.xaa=new A.Vector3;D.T9=Math.min(1,1280/(Math.max(screen.width,screen.height)*window.devicePixelRatio));D.Vn=[];D.Al=null;D.Nqa= new Map;D.Mqa=new Map;D.M=new n;D.referenceSpace=null;D.JMa=!1;D.ud=[];D.eP=new A.Ray;D.h$=null;D.anchors=[];D.YI=new Map;D.Wq=null;D.vO=null;return D}();g.XR=a;k.XR=a;b.XR=a;p.XR=a;q.XR=a;r.XR=a;t.XR=a;u.XR=a;v.XR=a;w.XR=a;y.XR=a;return z.XR=a}); define("tdv/player/parser/helper/AppResizeUpdater",["require","exports","tdv/constants/EventName","tdv/player/view/util/XR"],function(a,m,h,n){var g=/^\s*((\+|\-)?(\d*\.)?\d+)\s*(vmin|vmax|vw|vh|px|%)?\s*$/i;return function(){function k(e){this.Gb=e;this.GO=this.GO.bind(this);this.Gb.bind(h.Rb,this.kd,this,!0);n.M.bind(h.V,this.kd,this,!0);this.Fka=new Map;this.j0=[];this.kd()}k.prototype.kd=function(){var e=this;this.jbb();this.Fka.forEach(function(b){for(var c in b)e.GO(b[c])});this.j0.forEach(this.GO)}; k.prototype.jbb=function(){var e;if(n.isPresenting)var b=e=1024;else e=this.Gb.nb(),b=this.Gb.Mb();this.r6=e*.01;this.l6=b*.01;this.KHa=Math.min(this.r6,this.l6);this.JHa=Math.max(this.r6,this.l6)};k.prototype.GO=function(e){e(this.r6,this.l6,this.KHa,this.JHa)};k.prototype.Mbb=function(e){this.j0.push(e)};k.prototype.zjb=function(e){e=this.j0.indexOf(e);e>=0&&this.j0.splice(e,1)};k.prototype.z6=function(e,b,c,d){function f(p,q,r,t){b.call(e,c,l(p,q,r,t))}var l=k.q1a(d);(d=this.Fka.get(e))||this.Fka.set(e, d={});d[c]=f;f(this.r6,this.l6,this.KHa,this.JHa)};k.get=function(e){var b=k.zd.get(e);b||(b=new k(e),k.zd.set(e,b));return b};k.z6=function(e,b,c,d){var f=e.get&&e.get("application")||e.Xb&&e.Xb();f?(k.GDa(),k.get(f).z6(e,b,c,d)):k.vXa(e,b,c,d)};k.vXa=function(e,b,c,d){k.Yia.push({instance:e,cmb:b,name:c,value:d});k.lN||(k.lN=setTimeout(function(){k.lN=null;k.GDa()},100))};k.GDa=function(){k.lN&&(clearTimeout(k.lN),k.lN=null);var e=k.Yia;k.Yia=[];e.forEach(function(b){k.z6(b.instance,b.cmb,b.name, b.value)})};k.q1a=function(e){var b=k.CG[e];if(b)return b;if(typeof e!="string")return k.CG[e]=function(){return e};var c=(b=g.exec(e))&&parseFloat(b[1]);switch(b&&b[4]&&b[4].toLowerCase()){case "vw":return k.CG[e]=function(d){return d*c};case "vh":return k.CG[e]=function(d,f){return f*c};case "vmin":return k.CG[e]=function(d,f,l){return l*c};case "vmax":return k.CG[e]=function(d,f,l,p){return p*c};default:return k.CG[e]=function(){return e}}};k.zd=new Map;k.Yia=[];k.lN=null;k.CG={};return k}()}); define("tdv/player/parser/ClassInfo","require exports tdv/player/script/definitions tdv/player/parser/helper/AppResizeUpdater tdv/player/view/util/URL tdv/utils".split(" "),function(a,m,h,n,g,k){h=k.ceb(h);var e=function(){function b(c,d,f){this.NL=c;this.CR=f;this.W3=d.parent;this.c4a=d.isValidRoot||!1;this.Qia={};this.Mia=[];this.mDa=[];this.lDa=[];this.L0={};c=d.properties||{};for(var l in c)f=c[l],this.Qia[l]=f.type,f.isUrl&&this.mDa.push(l),f.isSize&&this.lDa.push(l),f.order!==void 0&&(this.Mia[f.order]= l),f["default"]!==void 0&&(this.L0[l]=f["default"]);this.jDa=[];this.kDa=[];d=d.events||{};for(var p in d)d[p].isDeferred?this.jDa.push(p):this.kDa.push(p);this.KC=this.yC=this.dS=this.k5=this.wI=this.h6=this.OI=this.cM=this.BL=this.mR=void 0;this.Zza=!1}b.prototype.Nfb=function(){if(this.W3)return b.Ci(this.W3)};b.prototype.tA=function(){return this.NL};b.prototype.mX=function(){return this.FC()?this.Hy().mX().concat(this.NL):[this.NL]};b.prototype.hasAttributes=function(){return this.getAttributeNames().length> 0};b.prototype.hasAttribute=function(c){return this.joa(c)?!0:!1};b.prototype.getAttributeNames=function(){this.mR==void 0&&this.fxa();return this.mR};b.prototype.ELa=function(){return this.Mia?this.Mia:this.FC()?this.Hy().ELa():[]};b.prototype.cLa=function(){if(this.cM)return this.cM;this.cM={};if(this.FC()){var c=this.Hy().cLa(),d;for(d in c)this.cM[d]=c[d]}if(this.L0)for(d in this.L0)this.cM[d]=this.L0[d];return this.cM};b.prototype.joa=function(c){this.BL==void 0&&this.fxa();return this.BL[c]}; b.prototype.Pgb=function(){return this.XLa().length>0};b.prototype.XLa=function(){this.OI==void 0&&this.mxa();return this.OI};b.prototype.dgb=function(){this.h6==void 0&&this.mxa();return this.h6};b.prototype.Mgb=function(){return this.RLa().length>0};b.prototype.RLa=function(){this.wI==void 0&&this.lxa();return this.wI};b.prototype.agb=function(){this.k5==void 0&&this.lxa();return this.k5};b.prototype.zgb=function(){return this.ooa().length>0};b.prototype.nMa=function(c){this.yC==void 0&&this.UL(); return this.yC.indexOf(c)!=-1};b.prototype.ooa=function(){this.yC==void 0&&this.UL();return this.yC};b.prototype.Egb=function(){return this.woa().length>0};b.prototype.oMa=function(c){this.KC==void 0&&this.UL();return this.KC.indexOf(c)!=-1};b.prototype.woa=function(){this.KC==void 0&&this.UL();return this.KC};b.prototype.Bgb=function(c){this.dS==void 0&&this.UL();return this.dS.indexOf(c)!=-1};b.prototype.ofb=function(){this.dS==void 0&&this.UL();return this.dS};b.prototype.sLa=function(){return this.c4a|| this.FC()&&this.Hy().sLa()};b.prototype.Ai=function(c,d,f,l){this.E6a(d,f);var p=this.CR;var q=l&&l.length>0?new (k.extend(p,function(){p.apply(this,l)})):new p;q.set("application",c);q.set("baseDirectoy",d);q.set("queryStringParameters",f);q.set("class",this.tA());return q};b.prototype.Wma=function(c){var d=this.cLa(),f;for(f in d)c.set(f,d[f])};b.prototype.E6a=function(c,d){this.Zza||(this.Zza=!0,this.N_a(c,d),this.E0a(),this.dXa())};b.prototype.N_a=function(c,d){if(this.Pgb()||this.Mgb()){var f= this.CR.prototype,l=this.dgb(),p=this.agb(),q=f.set;f.set=function(r,t){l[r]?(!t||g.hE(t)||g.v8(t)||g.Fhb(t)||(t=g.MD(g.lB(t,c),d)),q.call(this,r,t)):p[r]?n.z6(this,q,r,t):q.call(this,r,t)}}};b.prototype.dXa=function(){var c=this.CR.prototype;this.getAttributeNames().forEach(function(d){Object.defineProperty(c,d,{get:function(){return this.get(d)},set:function(f){this.set(d,f)},enumerable:!0,configurable:!0})})};b.prototype.E0a=function(){var c=this.CR.prototype,d=this;this.hasAttributes()&&(c.set= c.set,c.get=c.get);if(this.zgb()||this.Egb())c.bind=c.bind,c.getBindings=c.jP,c.hasBindings=c.f8,c.trigger=c.o,c.unbind=c.h;c.getClassName=function(){return d.tA()};c.getClassPath=function(){return d.mX()};c.getAttributeNames=function(){return d.getAttributeNames()};c.getEventNames=function(){return d.ofb()};c.hasEvent=function(f){return d.Bgb(f)}};b.prototype.fxa=function(){this.mR=[];this.BL={};for(var c in this.Qia)this.mR.push(c),this.BL[c]=b.Mfa(this.Qia[c]);if(this.FC())for(var d=this.Hy(), f=d.getAttributeNames(),l=0;l=0&&c.lastIndexOf("]")==c.length-1};b.v1a=function(c){return c.substring(0,c.indexOf("["))};b.rya=function(c){return c.substring(c.indexOf("[")+1,c.lastIndexOf("]"))};b.sya=function(c){c=b.rya(c);for(var d=[],f="",l=0,p=0;p>2]|=b<>2]|=(192|b>>6)<=57344?l[d>>2]|=(224|b>>12)<>2]|=(240|b>>18)<>2]|=(128|b>>12&63)<>2]|=(128|b>>6&63)<>2]|=(128|b&63)<=64?(this.block=l[16],this.start=d-64,this.hash(),this.h8=!0):this.start=d}this.bytes>4294967295&&(this.Moa+=this.bytes/4294967296<<0,this.bytes%=4294967296);return this}};a.prototype.AKa=function(){if(!this.eoa){this.eoa=!0;var e=this.ena,b=this.Shb; e[16]=this.block;e[b>>2]|=h[b&3];this.block=e[16];b>=56&&(this.h8||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0);e[14]=this.Moa<<3|this.bytes>>>29;e[15]=this.bytes<<3;this.hash()}};a.prototype.hash=function(){var e=this.vX,b=this.wX,c=this.xX,d=this.yX,f=this.zX,l=this.AX,p=this.BX,q=this.CX,r=this.ena,t;for(t=16;t<64;++t){var u=r[t-15];var v=(u>>>7|u<<25)^(u>>>18|u<<14)^u>>>3;u=r[t-2];u=(u>>>17|u<<15)^(u>>>19|u<<13)^u>>>10;r[t]= r[t-16]+v+r[t-7]+u<<0}var w=b&c;for(t=0;t<64;t+=4){if(this.first){var x=704751109;u=r[0]-210244248;q=u-1521486534<<0;d=u+143694565<<0;this.first=!1}else{v=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10);u=(f>>>6|f<<26)^(f>>>11|f<<21)^(f>>>25|f<<7);x=e&b;var y=x^e&c^w;var z=f&l^~f&p;u=q+u+z+g[t]+r[t];v+=y;q=d+u<<0;d=u+v<<0}v=(d>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10);u=(q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7);w=d&e;y=w^d&b^x;z=q&f^~q&l;u=p+u+z+g[t+1]+r[t+1];v+=y;p=c+u<<0;c=u+v<<0;v=(c>>>2|c<<30)^(c>>> 13|c<<19)^(c>>>22|c<<10);u=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7);x=c&d;y=x^c&e^w;z=p&q^~p&f;u=l+u+z+g[t+2]+r[t+2];v+=y;l=b+u<<0;b=u+v<<0;v=(b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10);u=(l>>>6|l<<26)^(l>>>11|l<<21)^(l>>>25|l<<7);w=b&c;y=w^b&d^x;z=l&p^~l&q;u=f+u+z+g[t+3]+r[t+3];v+=y;f=e+u<<0;e=u+v<<0}this.vX=this.vX+e<<0;this.wX=this.wX+b<<0;this.xX=this.xX+c<<0;this.yX=this.yX+d<<0;this.zX=this.zX+f<<0;this.AX=this.AX+l<<0;this.BX=this.BX+p<<0;this.CX=this.CX+q<<0};a.prototype.Sgb=function(){this.AKa(); var e=this.vX,b=this.wX,c=this.xX,d=this.yX,f=this.zX,l=this.AX,p=this.BX,q=this.CX;return m[e>>28&15]+m[e>>24&15]+m[e>>20&15]+m[e>>16&15]+m[e>>12&15]+m[e>>8&15]+m[e>>4&15]+m[e&15]+m[b>>28&15]+m[b>>24&15]+m[b>>20&15]+m[b>>16&15]+m[b>>12&15]+m[b>>8&15]+m[b>>4&15]+m[b&15]+m[c>>28&15]+m[c>>24&15]+m[c>>20&15]+m[c>>16&15]+m[c>>12&15]+m[c>>8&15]+m[c>>4&15]+m[c&15]+m[d>>28&15]+m[d>>24&15]+m[d>>20&15]+m[d>>16&15]+m[d>>12&15]+m[d>>8&15]+m[d>>4&15]+m[d&15]+m[f>>28&15]+m[f>>24&15]+m[f>>20&15]+m[f>>16&15]+m[f>> 12&15]+m[f>>8&15]+m[f>>4&15]+m[f&15]+m[l>>28&15]+m[l>>24&15]+m[l>>20&15]+m[l>>16&15]+m[l>>12&15]+m[l>>8&15]+m[l>>4&15]+m[l&15]+m[p>>28&15]+m[p>>24&15]+m[p>>20&15]+m[p>>16&15]+m[p>>12&15]+m[p>>8&15]+m[p>>4&15]+m[p&15]+m[q>>28&15]+m[q>>24&15]+m[q>>20&15]+m[q>>16&15]+m[q>>12&15]+m[q>>8&15]+m[q>>4&15]+m[q&15]};a.prototype.digest=function(){this.AKa();var e=this.vX,b=this.wX,c=this.xX,d=this.yX,f=this.zX,l=this.AX,p=this.BX,q=this.CX;return[e>>24&255,e>>16&255,e>>8&255,e&255,b>>24&255,b>>16&255,b>>8&255, b&255,c>>24&255,c>>16&255,c>>8&255,c&255,d>>24&255,d>>16&255,d>>8&255,d&255,f>>24&255,f>>16&255,f>>8&255,f&255,l>>24&255,l>>16&255,l>>8&255,l&255,p>>24&255,p>>16&255,p>>8&255,p&255,q>>24&255,q>>16&255,q>>8&255,q&255]};return function(e){return(new a(!0)).update(e).Sgb()}}); define("tdv/player/parser/Sign",["require","tdv/util/Sha256"],function(a){function m(){for(var k=[[256,"9799e3eb6096a48f515a94324200b7af24251a4131eccf9a2cd65d012a1f5c71"],[1024,"cbab1f6d618e723188cfdb1c7c3f47146e46da4da56030386d85055016afd5d9"],[1E4,"d9c4539649520e3f4a35e5a3331b0fbdc67958dd64ef65a83a75d545413643dd"]],e=0;eString.fromCharCode(d%256)).join("");if(g(b)!=k[e][1])return!1}return!0}function h(k){var e=Array.isArray(k)?"array": k===null?"null":typeof k;switch(e){case "array":return"["+k.map(h).join(",")+"]";case "object":return"{"+Object.keys(k).sort().map(function(b){return h(b)+":"+h(k[b])}).join(",")+"}";case "boolean":return k?"true":"false";case "number":return k.toFixed(3);case "string":return'"'+k.split('"').join('\\"')+'"';case "null":case "undefined":return e;case "function":return"<"+e+">"}return""}function n(k){return k.map(function(e){return String.fromCharCode(e)}).join("")}var g=a("tdv/util/Sha256");return{validate:function(k){var e= [104,97,115,104],b=[116,100,118],c=window.location[n([111,114,105,103,105,110])],d=k[n(e)];delete k[n(e)];k=n(b)+h(k);k=g(k);b=n(b)+c;b=g(b);return k==d||b==d||!m()}}}); define("tdv/player/view/util/geo/Point",["require"],function(){function a(m,h,n){this.set(typeof m!="undefined"?m:0,typeof h!="undefined"?h:0,typeof n!="undefined"?n:0)}a.prototype.set=function(m,h,n){this.x=m;this.y=h;this.z=n;return this};a.prototype.clone=function(){return new a(this.x,this.y,this.z)};a.prototype.apply=function(m){m.yO(this)};a.prototype.project=function(m){m.project(this)};return a}); define("tdv/player/view/util/geo/Vector",["require","tdv/utils","tdv/player/view/util/geo/Point"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/util/geo/Point"),n=m.extend(h,function(g,k,e){h.call(this,g,k,e)});n.prototype.clone=function(){return new n(this.x,this.y,this.z)};n.prototype.Kc=function(){return this.x==0&&this.z==0?0:-Math.atan2(this.x,this.z)};n.prototype.Jc=function(){return this.y==0&&this.z==0?0:Math.atan2(this.y,Math.sqrt(this.z*this.z+this.x*this.x))};n.prototype.Boa=function(){return Math.sqrt(this.x* this.x+this.y*this.y+this.z*this.z)};n.prototype.eZ=function(g){g/=this.Boa();this.x*=g;this.y*=g;this.z*=g;return this};n.prototype.normalize=function(){return this.eZ(1)};n.prototype.VO=function(g){return this.x*g.x+this.y*g.y+this.z*g.z};n.prototype.d7=function(g){var k=this.z*g.x-this.x*g.z,e=this.x*g.y-this.y*g.x;this.x=this.y*g.z-this.z*g.y;this.y=k;this.z=e;return this};n.YD=function(g,k){return new n(k.x-g.x,k.y-g.y,k.z-g.z)};n.H7=function(g,k){g=NaN-g;k=NaN-k;return Math.sqrt(g*g+k*k+NaN)}; n.At=function(g,k,e){var b=Math.cos(k)*Math.sin(g),c=Math.sin(k);g=Math.cos(k)*Math.cos(g);return e?e.set(b,c,g):new n(b,c,g)};return n}); define("tdv/player/script/AdjacentPanorama",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo","tdv/player/view/util/geo/Vector"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/view/util/geo/Vector");a=h.define("AdjacentPanorama",m,function(){m.call(this);this.yma=this.oy=void 0});a.prototype.eLa=function(){if(this.oy===void 0){for(this.oy=this.Iya()-this.get("yaw");this.oy>180;)this.oy-=360;for(;this.oy<-180;)this.oy+=360}return this.oy}; a.prototype.nfb=function(){this.yma===void 0&&(this.yma=n.At(this.Iya()*Math.PI/180,0));return this.yma};a.prototype.Icb=function(){return this.get("yaw")!==void 0&&this.get("backwardYaw")!==void 0};a.prototype.Iya=function(){return this.get("backwardYaw")-180};return a});define("tdv/player/script/AmbientLight",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("AmbientLight",m,function(){m.call(this)})}); define("tdv/player/script/Model3DPostprocessing",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("Model3DPostprocessing",m,function(){m.call(this)});a.prototype.aF=function(h){this.Tq!==h&&(this.Tq=h,this.JGa())};a.prototype.Gp=function(h){this.SM!==h&&(this.SM=h,this.JGa())};a.prototype.JGa=function(){this.set("disabled",this.SM&&this.get("disableWhileMoving")||this.Tq&&this.get("disableWhileUserInteracting"))}; return a});define("tdv/player/script/AmbientOcclusionModel3DPostprocessing",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DPostprocessing"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DPostprocessing");return m.define("AmbientOcclusionModel3DPostprocessing",h,function(){h.call(this)})});define("tdv/constants/PlaybackState",["require","exports"],function(){return{ca:"stopped",PLAYING:"playing",$b:"paused"}}); define("tdv/player/script/ImageResource",["require","exports","tdv/player/parser/ClassInfo","tdv/binding/Bindable"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);return k}(n);h.create("ImageResource",a);return a}); define("tdv/player/script/AnimatedImageResource","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/script/ImageResource".split(" "),function(a){a("tdv/utils");var m=a("tdv/constants/EventName"),h=a("tdv/constants/PlaybackState"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/ImageResource");a=n.define("AnimatedImageResource",g,function(){g.call(this)});a.prototype.play=a.prototype.play=function(){this.set("state",h.PLAYING)};a.prototype.pause= a.prototype.pause=function(){this.set("state",h.$b)};a.prototype.stop=a.prototype.stop=function(){this.set("state",h.ca)};a.prototype.set=function(k,e){switch(k){case "state":(this.get("state")||h.ca)==h.ca&&e==h.PLAYING&&this.o(m.Up)}g.prototype.set.call(this,k,e)};a.prototype.zk=function(k,e,b){e||(e=1);b||(b=1);return g.prototype.zk.call(this,k,e*this.get("colCount",1),b*this.get("rowCount",1))};return a}); define("tdv/player/script/AntialiasModel3DPostprocessing",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DPostprocessing"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DPostprocessing");return m.define("AntialiasModel3DPostprocessing",h,function(){h.call(this)})}); define("tdv/player/script/HotspotMapOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("HotspotMapOverlay",m,function(h){m.call(this);this.CN=h===void 0?!0:h;this.IM=this.Ws=this.Us=this.Ja=void 0});a.prototype.getItem=function(){if(this.Ja===void 0){var h=this.get("image");this.Ja=h?h.c7(this.CN):null}return this.Ja};a.prototype.LLa=function(){if(this.Us===void 0){var h=this.get("rollOverImage"); this.Us=h?h.c7(this.CN):null}return this.Us};a.prototype.QLa=function(){if(this.Ws===void 0){var h=this.get("selectedImage");this.Ws=h?h.c7(this.CN):null}return this.Ws};a.prototype.Dfb=function(){if(this.IM===void 0){this.IM=[];var h=this.getItem();h&&this.IM.push(h);(h=this.LLa())&&this.IM.push(h);(h=this.QLa())&&this.IM.push(h)}return this.IM};return a}); define("tdv/player/script/AreaHotspotMapOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotMapOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotMapOverlay");return m.define("AreaHotspotMapOverlay",h,function(){h.call(this,!0)})}); define("tdv/player/script/AudioResource",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("AudioResource",m,function(){m.call(this)})});define("tdv/view/constants/CreationPolicy",["require","exports"],function(){return{cL:"inAdvance",hta:"delayed"}}); define("tdv/view/buttons/ButtonGroup",["require","exports","tdv/constants/EventName"],function(a,m,h){return function(){function n(){var g=this;this.fk=[];this.oBa=function(k){g.IEa(k.source)}}n.prototype.register=function(g){this.eXa(g);this.fk.push(g);g.get("pressed")&&this.IEa(g)};n.prototype.unregister=function(g){this.V6a(g)};n.prototype.eXa=function(g){g.bind(h.Rk,this.oBa,this,!0)};n.prototype.V6a=function(g){g.unbind(h.Rk,this.oBa,this)};n.prototype.IEa=function(g){this.fk.forEach(function(k){k.set("pressed", k==g)})};n.register=function(g,k){this.unregister(g);k=this.Bj(k);g.set("__button_group",k);k.register(g)};n.unregister=function(g){var k=g.get("__button_group");k&&(k.unregister(g),g.set("__button_group",void 0))};n.Bj=function(g){return this.Lza[g]||(this.Lza[g]=new n)};n.Lza={};return n}()});define("tdv/view/constants/ButtonMode",["require","exports"],function(){return{af:"push",bk:"toggle"}}); define("tdv/view/constants/OverflowPolicy",["require","exports"],function(){return{mL:"visible",zta:"hidden",Wr:"scroll"}});define("tdv/view/constants/Alignment",["require","exports"],function(){return{fb:"left",Db:"right",$e:"center",Tc:"top",Hc:"bottom",$d:"middle"}});define("tdv/view/constants/ScrollBarVisiblePolicy",["require","exports"],function(){return{uc:"rollOver",ALWAYS:"always"}}); define("tdv/view/constants/LayoutMode",["require","exports"],function(){return{TZ:"absolute",Ni:"horizontal",JB:"grid",Uk:"vertical"}});define("tdv/view/containers/layout/ChildBounds",["require","exports"],function(){return function(){return function(a){this.ge=a;this.height=this.width=this.y=this.x=0}}()});define("tdv/view/containers/layout/MeasureResult",["require","exports"],function(){return function(){return function(){this.minHeight=this.minWidth=this.height=this.width=0}}()}); define("tdv/view/containers/layout/Layout",["require","exports","tdv/view/constants/Alignment","tdv/view/containers/layout/ChildBounds","tdv/view/containers/layout/MeasureResult"],function(a,m,h,n,g){return function(){function k(){this.dc=null;this.JD=h.Tc;this.GC=h.fb;this.QI=this.Ky=0}k.prototype.mRa=function(e){this.Ky!=e&&(this.Ky=e,this.wh())};k.prototype.M$=function(e){this.QI!=e&&(this.QI=e,this.wh())};k.prototype.JRa=function(e){this.dc=e;this.wh()};k.prototype.eQ=function(e){this.GC!=e&& (this.GC=e,this.wh())};k.prototype.kP=function(){return this.GC};k.prototype.kQ=function(e){this.JD!=e&&(this.JD=e,this.wh())};k.prototype.mP=function(){return this.JD};k.prototype.measure=function(){return new g};k.prototype.update=function(){var e=this.b_a();this.aW(e);this.l8a(e)};k.prototype.aW=function(){};k.prototype.u1=function(){for(var e=this.rza(),b=[],c=0;cb&&(b=this.zH,p=!0),p&&(b=Math.max(1,Math.floor((r+c)/(b+c))),b=(r-(b-1)*c)/b);else b=this.Sy;b=Math.max(1,b);var t=Math.max(1,Math.floor(.001+ (r+c)/(b+c)));var u=t*b,v=t*(b+c)-c;p=0;if(r>=v)switch(this.kP()){case h.Db:p=r-v;break;case h.$e:p=Math.round((r-v)*.5);break;default:p=0}r=[];v=[];for(var w=0;wu&&(u=this.US,p=!0),p&&(u=Math.max(1, Math.floor((w+c)/(u+c))),u=(w-(u-1)*c)/u);else u=this.Ry;q=Math.max(1,Math.ceil(q/t));p=q*u;d=q*(u+c)-c;var x=0;if(w>=d)switch(this.mP()){case h.Hc:x=w-d;break;case h.$d:x=Math.round((w-d)*.5);break;default:x=0}d=[];for(var y=[],z=0;z0?c/p:0);l=[];for(d=p=0;dw?(r.width=w,c-=r.width,b=!0):(p+=t.lp,l.push(r))}q.length=0;q.push.apply(q,l)}while(b);for(d=0;d0?c/p:0),r.width=Math.round(t.lp*f),c-=r.width,p-=t.lp}};e.prototype.Ila= function(b){if(this.dc){for(var c=this.Ky,d=this.dc.Xh(),f=this.dc.Wh(),l=0,p=0,q=0;q=l)switch(this.kP()){case h.Db:d-=l;break;case h.$e:d=Math.round((d-l)*.5);break;default:d=0}else d=0;for(q=0;q=r.height)switch(this.mP()){case h.Hc:r.y=f-r.height;break;case h.$d:r.y=Math.round((f-r.height)*.5);break;default:r.y=0}else r.y=0;r.x=d;d+=r.width+c}else r.x=0,r.y=0}};return e}(n)}); define("tdv/view/containers/layout/VerticalLayout",["require","exports","tdv/view/constants/Alignment","tdv/view/containers/layout/Layout","tdv/view/containers/layout/MeasureResult"],function(a,m,h,n,g){return function(k){function e(){return k.call(this)||this}P(e,k);e.prototype.measure=function(){for(var b=new g,c=this.u1(),d=0;d0?c/p:0);l=[];for(d=p=0;dw?(r.height=w,c-=r.height,b=!0):(p+=t.kp,l.push(r))}q.length=0;q.push.apply(q,l)}while(b);for(d=0;d0?c/p:0),r.height=Math.round(t.kp*f),c-=r.height,p-=t.kp}};e.prototype.Ila= function(b){if(this.dc){for(var c=this.QI,d=this.dc.Wh(),f=this.dc.Xh(),l=0,p=0,q=0;qf&&(f=r.width),p++)}l+=c*(p-1);if(d>=l)switch(this.mP()){case h.Hc:d-=l;break;case h.$d:d=Math.round((d-l)*.5);break;default:d=0}else d=0;for(q=0;q=0&&!t;v--)this.jq.includes(this.qe[v])||(t=this.qe[v]);for(v=r+1;v0){var n=m.vk.slice();n=[].concat([n[0]],n,[n[n.length-1]]);m=a.Acb(m);m=[].concat([0],m,[1]);for(var g=0;g=0&&h.push({color:n[g],ratio:k})}for(g=0;g0?m.L6.map(function(n){return Math.min(1,Math.max(0,n))}):h==1?[.5]:Array.from({length:h}).map(function(n,g){return 1*g/(h-1)});m.lengthh&&m.splice(h,m.length-h);return m}};return a}); define("tdv/view/core/visuals/dom/DOMUIBaseVisuals","require exports tdv/view/constants/GradientDirection tdv/view/core/visualprops/UIBaseVisualProperties tdv/view/core/ZIndex tdv/view/core/visuals/Visuals tdv/view/core/visuals/util tdv/utils".split(" "),function(a,m,h,n,g,k,e,b){return function(c){function d(){var f=c.call(this)||this;f.element=null;f.Ik=null;f.Uh=null;f.Je=null;f.Fh=null;f.wl=null;f.gw=null;f.qKa=!1;return f}P(d,c);d.prototype.tp=function(){return new n};d.prototype.uk=function(f){this.$D().appendChild(f)}; d.prototype.a$=function(f){this.$D().removeChild(f)};d.prototype.appendChild=function(f){this.$D().appendChild(f.cc())};d.prototype.MMa=function(f,l){this.$D().insertBefore(f.cc(),l.cc().nextSibling)};d.prototype.NMa=function(f,l){this.$D().insertBefore(f.cc(),l.cc())};d.prototype.removeChild=function(f){f=f.cc();f.parentElement==this.$D()&&this.$D().removeChild(f)};d.prototype.cc=function(){this.element||(this.element=document.createElement("div"),this.element.style.height="0",this.element.style.margin= "0",this.element.style.padding="0",this.element.style.position="absolute",this.element.style.overflow="hidden",this.element.style.display="block",this.element.style.visibility="hidden",this.element.style.width="0",this.element.style.zIndex=g.Pua);return this.element};d.prototype.JLa=function(f){var l=b.offset(this.element);f=b.offset(f.cc());return{left:l.left-f.left,top:l.top-f.top}};d.prototype.$fb=function(){this.Ik||(this.Ik=document.createElement("div"),this.Ik.setAttribute("tdvlayer","shadow"), this.Ik.style.position="absolute",this.Ik.style.left="0",this.Ik.style.top="0",this.Ik.style.right="0",this.Ik.style.bottom="0",this.Ik.style.zIndex=g.ZVa);return this.Ik};d.prototype.U7=function(){this.Fh||(this.Fh=document.createElement("div"),this.Fh.setAttribute("tdvlayer","overShadow"),this.Fh.style.cursor="inherit",this.Fh.style.height="0",this.Fh.style.left="0",this.Fh.style.position="absolute",this.Fh.style.top="0",this.Fh.style.width="0",this.Fh.style.zIndex=g.kua);return this.Fh};d.prototype.Zeb= function(){this.Uh||(this.Uh=document.createElement("div"),this.Uh.setAttribute("tdvlayer","filter"),this.Uh.style.cursor="inherit",this.Uh.style.display="none",this.Uh.style.left="0",this.Uh.style.position="absolute",this.Uh.style.top="0",this.Uh.style.userSelect="none",this.Uh.style["-webkit-user-select"]="none",this.Uh.style.zIndex=g.kUa);return this.Uh};d.prototype.Xeb=function(){this.Je||(this.Je=document.createElement("canvas"),this.Je.setAttribute("tdvlayer","background"),this.Je.style.cursor= "inherit",this.Je.style.display="none",this.Je.style.left="0",this.Je.style.position="absolute",this.Je.style.top="0",this.Je.style.userSelect="none",this.Je.style["-webkit-user-select"]="none",this.Je.style.zIndex=g.Faa);return this.Je};d.prototype.NLa=function(){this.wl||(this.wl=document.createElement("div"),this.wl.setAttribute("tdvlayer","content"),this.wl.style.position="absolute",this.wl.style.cursor="inherit",this.wl.style.inset="0",this.wl.style.overflow="visible",this.wl.style.zIndex=g.eta); return this.wl};d.prototype.$D=function(){this.gw||(this.gw=document.createElement("div"),this.gw.style.cursor="inherit",this.gw.style.inset="0",this.gw.style.position="absolute");return this.gw};d.prototype.Dnb=function(){this.qKa||(this.qKa=!0,this.kA())};d.prototype.kA=function(){this.cc().appendChild(this.$fb());this.cc().appendChild(this.U7());this.U7().appendChild(this.Zeb());this.U7().appendChild(this.Xeb());this.U7().appendChild(this.NLa());this.NLa().appendChild(this.$D())};d.prototype.update= function(f){this.Dnb();this.rh(f);this.vSa(f)};d.prototype.rh=function(f){this.Mnb(f);this.JK(f);this.Znb(f);this.pnb(f);this.Msa(f)};d.prototype.Mnb=function(f){this.K.id!==f.id&&(f.id?this.element.setAttribute("id",f.id.toString()):this.element.removeAttribute("id"));this.K.className!==f.className&&(f.className?this.element.setAttribute("tdvclass",f.className):this.element.removeAttribute("tdvclass"));this.K.tabIndex!==f.tabIndex&&(f.tabIndex!==void 0?this.element.setAttribute("tabIndex",f.tabIndex.toString()): this.element.removeAttribute("tabIndex"));this.K.ariaLabel!==f.ariaLabel&&(f.ariaLabel?this.element.setAttribute("aria-label",f.ariaLabel):this.element.removeAttribute("aria-label"));this.K.zO!==f.zO&&(f.zO?this.element.setAttribute("aria-role",f.zO):this.element.removeAttribute("aria-role"));this.K.LJ!==f.LJ&&(f.LJ?(this.Fh.style.zIndex=g.kua,this.wl.style.zIndex=g.eta):(this.Fh.style.zIndex=g.GVa,this.wl.style.zIndex=g.nUa));this.K.sY!==f.sY&&(this.element.style.zIndex=f.sY?g.Pua:g.rWa);this.K.cursor!== f.cursor&&(this.element.style.cursor=f.cursor)};d.prototype.JK=function(f){this.K.opacity!==f.opacity&&(this.element.style.opacity=f.opacity.toString());if(this.K.x!==f.x||this.K.y!==f.y||this.K.width!==f.width||this.K.height!==f.height||this.K.offsetX!==f.offsetX||this.K.offsetY!==f.offsetY||this.K.visible!==f.visible)f.visible?(this.Fh.style.width=f.width+"px",this.Fh.style.height=f.height+"px",this.element.style.left=(f.x||0)+f.offsetX+"px",this.element.style.top=(f.y||0)+f.offsetY+"px",this.element.style.width= f.width+"px",this.element.style.height=f.height+"px",this.element.style.visibility="inherit",this.element.style.overflow="visible",f.visible&&this.Fh.clientWidth===0&&f.width!=0&&(this.element.style.width="0",this.element.style.width=f.width+"px")):(this.element.style.visibility="hidden",this.element.style.width="0",this.element.style.height="0",this.element.style.overflow="hidden",this.Fh.style.width="0",this.Fh.style.height="0")};d.prototype.Msa=function(f){this.K.Jw!==f.Jw&&(this.wl.style.overflow= f.Jw?"visible":"hidden",this.gw.style.right=f.Jw?"0":"initial",this.gw.style.bottom=f.Jw?"0":"initial");this.K.Dd!==f.Dd&&(this.wl.style.left=f.Dd+"px");this.K.ie!==f.ie&&(this.wl.style.top=f.ie+"px");this.K.Ce!==f.Ce&&(this.wl.style.right=f.Ce+"px");this.K.Ef!==f.Ef&&(this.wl.style.bottom=f.Ef+"px");this.K.Lc!==f.Lc&&(this.gw.style.left=-f.Lc+"px");this.K.Mc!==f.Mc&&(this.gw.style.top=-f.Mc+"px")};d.prototype.Znb=function(f){if(this.K.borderTopLeftRadius!==f.borderTopLeftRadius||this.K.borderTopRightRadius!== f.borderTopRightRadius||this.K.borderBottomLeftRadius!==f.borderBottomLeftRadius||this.K.borderBottomRightRadius!==f.borderBottomRightRadius||this.K.kB!==f.kB||this.K.hu!==f.hu||this.K.iu!==f.iu||this.K.eo!==f.eo||this.K.wK!==f.wK||this.K.shadowColor!==f.shadowColor||this.K.$w!==f.$w){var l=f.hu+"px "+f.iu+"px "+f.eo+"px "+f.wK+"px "+f.shadowColor;this.Ik.style.display=f.kB?"block":"none";this.Ik.style.boxShadow=l;this.Ik.style.borderTopLeftRadius=f.borderTopLeftRadius+"px";this.Ik.style.borderTopRightRadius= f.borderTopRightRadius+"px";this.Ik.style.borderBottomLeftRadius=f.borderBottomLeftRadius+"px";this.Ik.style.borderBottomRightRadius=f.borderBottomRightRadius+"px";this.Ik.style.opacity=f.$w.toString()}};d.prototype.pnb=function(f){if(this.K.dJ!==f.dJ||this.K.borderTopLeftRadius!==f.borderTopLeftRadius||this.K.borderTopRightRadius!==f.borderTopRightRadius||this.K.borderBottomLeftRadius!==f.borderBottomLeftRadius||this.K.borderBottomRightRadius!==f.borderBottomRightRadius||this.K.width!==f.width|| this.K.height!==f.height||this.K.visible!==f.visible){var l=Math.round(f.dJ*25),p=f.visible&&l>0;p?(this.Uh.style.display="block",this.Uh.style.backdropFilter="blur("+l+"px)",this.Uh.style.borderTopLeftRadius=f.borderTopLeftRadius+"px",this.Uh.style.borderTopRightRadius=f.borderTopRightRadius+"px",this.Uh.style.borderBottomLeftRadius=f.borderBottomLeftRadius+"px",this.Uh.style.borderBottomRightRadius=f.borderBottomRightRadius+"px",this.Uh.style.width=f.width+"px",this.Uh.style.height=f.height+"px"): this.Uh.style.display="none"}if(this.K.width!==f.width||this.K.height!==f.height||this.K.vk!==f.vk||this.K.OD!==f.OD||this.K.pm!==f.pm||this.K.Te!==f.Te||this.K.borderLeftColor!==f.borderLeftColor||this.K.Ue!==f.Ue||this.K.borderTopColor!==f.borderTopColor||this.K.yf!==f.yf||this.K.borderRightColor!==f.borderRightColor||this.K.xf!==f.xf||this.K.borderBottomColor!==f.borderBottomColor||this.K.aw!==f.aw||this.K.visible!==f.visible){var q=f.vk&&f.vk.length>0;l=!!f.aw;p=f.Te>0&&f.borderLeftColor||f.Ue> 0&&f.borderTopColor||f.yf>0&&f.borderRightColor||f.xf>0&&f.borderBottomColor;if(p=f.visible&&(q||l||p)){p=Math.max(0,f.width-(f.Te+f.yf));var r=Math.max(0,f.height-(f.Ue+f.xf));this.Je.width=p;this.Je.height=r;var t=this.Je.getContext("2d");if(q){q=e.TIa(f);var u=f.OD==h.q_?t.createLinearGradient(0,0,p,0):t.createLinearGradient(0,0,0,r);q.forEach(function(v){u.addColorStop(v.ratio,v.color)});t.fillStyle=u;t.fillRect(0,0,p,r)}else t.clearRect(0,0,p,r);l&&t.drawImage(f.aw,0,0,p,r);this.Je.style.opacity= f.pm.toString();this.Je.style.borderTopLeftRadius=f.borderTopLeftRadius+"px";this.Je.style.borderTopRightRadius=f.borderTopRightRadius+"px";this.Je.style.borderBottomLeftRadius=f.borderBottomLeftRadius+"px";this.Je.style.borderBottomRightRadius=f.borderBottomRightRadius+"px";this.Je.style.borderLeft=this.E7(f.Te,f.borderLeftColor);this.Je.style.borderTop=this.E7(f.Ue,f.borderTopColor);this.Je.style.borderRight=this.E7(f.yf,f.borderRightColor);this.Je.style.borderBottom=this.E7(f.xf,f.borderBottomColor); this.Je.style.width=p+"px";this.Je.style.height=r+"px";this.Je.style.display="block";this.Je.clientWidth===0&&this.Je.width!==0&&(this.Je.style.width="0",this.Je.style.width=this.Je.width+"px")}else this.Je.style.display="none"}};d.prototype.E7=function(f,l){return f>0?l?f+"px solid "+l:f+"px solid transparent":"none"};return d}(k)}); define("tdv/view/core/visualprops/ContainerVisualProperties",["require","exports","tdv/view/core/visualprops/UIBaseVisualProperties"],function(a,m,h){return function(n){function g(){var k=n!==null&&n.apply(this,arguments)||this;k.contentHeight=0;k.contentWidth=0;k.Ck=!1;k.Wg=0;k.Cf=0;k.$t="#000000";k.au=.5;k.ph=10;k.Wn=5;k.Xn=5;k.Mk=!1;return k}P(g,n);return g}(h)}); define("tdv/constants/Key",["require","exports"],function(){var a={ck:38,Ki:40,Db:39,fb:37,kL:32,Mp:65,EWa:90,uo:87,qo:83,Sp:68,Q:81,E:69,x_:187,t_:189,i_:27,ua:{}};a.ua.ck="ArrowUp";a.ua.Ki="ArrowDown";a.ua.Db="ArrowRight";a.ua.fb="ArrowLeft";a.ua.Mp="KeyA";a.ua.EWa="KeyZ";a.ua.uo="KeyW";a.ua.qo="KeyS";a.ua.Sp="KeyD";a.ua.Q="KeyQ";a.ua.E="KeyE";a.ua.x_="BracketRight";a.ua.t_="Slash";a.ua.i_="Escape";a.ua.kL="Space";a.ua.h_="Enter";return a}); define("tdv/view/util/KeyboardControl",["require","exports","tdv/constants/EventName","tdv/constants/Key","tdv/events/EventDispatcher"],function(a,m,h,n,g){a=function(){function e(){}e.yp=function(){return document.activeElement&&document.activeElement!==document.body};e.rfb=function(){return document.activeElement};e.thb=function(b){return Array.isArray(b)?b.includes(document.activeElement):b==document.activeElement};e.Rqa=function(b,c){b===void 0&&(b=void 0);c===void 0&&(c=void 0);this.Uj||(this.Uj= document.createElement("div"));document.querySelectorAll("*[tabindex]").forEach(function(d){d.tabIndex>this.Uj.tabIndex&&(this.Uj.tabIndex=d.tabIndex+1)}.bind(this));document.body.appendChild(this.Uj);b!=void 0&&c!=void 0?(this.Uj.style.position="absolute",this.Uj.style.top=c+"px",this.Uj.style.left=b+"px",this.Uj.style.width="1px",this.Uj.style.height="1px"):(this.Uj.style.position="fixed",this.Uj.style.top="0",this.Uj.style.left="0",this.Uj.style.width="100%",this.Uj.style.height="100%");this.Uj.focus(); this.Uj.blur();document.body.removeChild(this.Uj);this.fX.o(h.V)};e.blur=function(){document.activeElement.blur()};e.Rma=function(b){this.VW.push(b)};e.Iqa=function(b){b=this.VW.indexOf(b);b!=-1&&this.VW.splice(b,1)};e.ecb=function(b){this.PY.push(b)};e.Mjb=function(b){b=this.PY.indexOf(b);b!=-1&&this.PY.splice(b,1)};e.hIa=function(b,c){this.fra(b,c.map(function(d){return[d]}))};e.Vbb=function(b,c){this.fra(b,[c])};e.Sbb=function(b,c,d,f){for(var l=[],p=0;p=this.ZO.length||(c=c.kdb+d,c<0||c>=this.ZO[b].length||this.ZO[b][c].focus())}};return e}();return a}); define("tdv/view/containers/ScrollableContainer","require exports tdv/constants/EventName tdv/events/Event tdv/view/constants/Alignment tdv/view/constants/OverflowPolicy tdv/view/constants/ScrollBarVisiblePolicy tdv/view/containers/BaseContainer tdv/view/core/visuals/dom/DOMUIBaseVisuals tdv/view/core/visualprops/ContainerVisualProperties tdv/view/util/Animation tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/util/KeyboardControl".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p,q){return function(r){function t(){var u= r.call(this)||this;u.gf("ScrollableContainer");u.bxa=0;u.cxa=0;u.hn=!1;u.jn=!1;u.Apb=!1;u.vpb=!1;u.jka=!1;u.Vs=null;u.Pia=k.zta;u.vS=!1;u.lW=!1;u.tja=void 0;u.uja=void 0;return u}P(t,r);t.prototype.VL=function(){return new d};t.prototype.Yz=function(){r.prototype.Yz.call(this);this.Py?(q.fX.bind(h.V,this.tia,this,!1),this.tia()):q.fX.h(h.V,this.tia,this)};t.prototype.tia=function(){if(q.yp()){var u=this.wa();u&&u instanceof c&&(u=this.Cb().map(function(v){return v.wa().cc()}).indexOf(q.rfb()),u!== -1&&this.scrollIntoView(this.Cb()[u]))}};t.prototype.scrollIntoView=function(u){var v=u.nw(),w=u.sA();this.scrollTo(Math.min(v,Math.max(v+u.nb()-this.u.Cf,this.u.Lc)),Math.min(w,Math.max(w+u.Mb()-this.u.Wg,this.u.Mc)))};t.prototype.scrollTo=function(u,v){var w=this.u.Lc;u>this.u.Lc?this.U6()&&(w=Math.min(u,this.u.contentWidth-this.u.Cf)):uthis.u.Mc?this.JO()&&(u=Math.min(v,this.u.contentHeight-this.u.Wg)):vthis.u.Mc+this.u.Wg&&z>=v&&z=u+this.u.Wg&&yw+this.u.Wg&&(w=y-this.u.Wg)}this.CV(this.u.Lc,w)}};t.prototype.LO=function(){return this.MO()&&this.u.Mc>0};t.prototype.KQa=function(){if(this.U6()){for(var u=Math.max(0,this.u.contentWidth-this.u.Cf),v=Math.min(u,this.u.Lc+this.u.Cf*.5),w=u=Math.min(u,this.u.Lc+this.u.Cf),x=this.Cb().slice(),y=x.shift();x.length;y= x.shift())if(y.get("visible")){var z=y.nw();z+y.nb()>this.u.Lc+this.u.Cf&&z>=v&&z=u+this.u.Cf&&yw+this.u.Cf&&(w=y-this.u.Cf)}this.CV(w, this.u.Mc)}};t.prototype.T6=function(){return this.KO()&&this.u.Lc>0};t.prototype.CV=function(u,v){this.Ww(this.u.Lc!=u);this.Xw(this.u.Mc!=v);this.gW();this.kcb(u,v)};t.prototype.MO=function(){return this.lW&&this.u.Wgthis.u.contentWidth-this.u.Cf?!1:!0);this.Vs.oX("vScrollPosition")&&(this.u.Mc=this.Vs.ob("vScrollPosition"),v=this.u.Mc<0||this.u.Mc>this.u.contentHeight-this.u.Wg?!1:!0);this.Ww(u);this.Xw(v);this.MI();f.requestFrame(this.Bia,this)}else this.Ww(!1),this.Xw(!1),this.Vs=null};t.prototype.MI= function(u){if(u){if(!this.vS)switch(this.G("horizontalAlign")){case g.Db:this.u.Lc=this.u.contentWidth-this.u.Cf;break;case g.$e:this.u.Lc=(this.u.contentWidth-this.u.Cf)/2;break;default:this.u.Lc=0}if(!this.lW)switch(this.G("verticalAlign")){case g.Hc:this.u.Mc=this.u.contentHeight-this.u.Wg;break;case g.$d:this.u.Mc=(this.u.contentHeight-this.u.Wg)/2;break;default:this.u.Mc=0}}this.u.Lc=Math.max(0,Math.min(this.u.contentWidth-this.u.Cf,this.u.Lc));this.u.Mc=Math.max(0,Math.min(this.u.contentHeight- this.u.Wg,this.u.Mc));this.H8a(this.u.Lc);this.s9a(this.u.Mc);this.tb();if(this.tja!=this.u.Lc||this.uja!=this.u.Mc)this.tja!==void 0&&this.uja!==void 0&&this.o(new n(h.Wr)),this.tja=this.u.Lc,this.uja=this.u.Mc};t.prototype.$E=function(u){this.jka!==u&&(this.jka=u,this.gW())};t.prototype.Ww=function(u){this.hn!==u&&(this.hn=u,this.gW())};t.prototype.Xw=function(u){this.jn!==u&&(this.jn=u,this.gW())};t.prototype.gW=function(){var u=this.get("scrollBarVisible")==e.ALWAYS||this.hn||this.jn||this.jka; this.u.Ck=this.vS&&u;this.u.Mk=this.lW&&u;this.tb()};t.prototype.jb=function(){this.S("overflow")&&(this.Pia=this.G("overflow"),this.$("overflow"),this.Bf());this.S("scrollBarColor")&&(this.u.$t=this.G("scrollBarColor"),this.$("scrollBarColor"));this.S("scrollBarWidth")&&(this.u.ph=this.G("scrollBarWidth"),this.$("scrollBarWidth"));if(this.S("scrollBarMargin")||this.S("scrollBarVerticalMargin")||this.S("scrollBarHorizontalMargin"))this.u.Wn=this.G("scrollBarHorizontalMargin","scrollBarMargin"),this.u.Xn= this.G("scrollBarVerticalMargin","scrollBarMargin"),this.$("scrollBarMargin"),this.$("scrollBarVerticalMargin"),this.$("scrollBarHorizontalMargin");this.S("scrollBarOpacity")&&(this.u.au=this.G("scrollBarOpacity"),this.$("scrollBarOpacity"));r.prototype.jb.call(this)};t.prototype.Lk=function(){r.prototype.Lk.call(this);this.qab();this.Nab();this.Lab();this.gW();this.tb()};t.prototype.qab=function(){for(var u=0,v=0,w=0,x=0,y=this.Cb(),z=0;zthis.u.Cf||this.u.contentHeight>this.u.Wg;this.Pia==k.Wr?(this.vS=this.u.Cf0|| q.textShadowVerticalLength>0||q.textShadowBlurRadius>0)&&q.textShadowOpacity>0)}d.prototype.jb.call(this)};f.prototype.r8=function(){var l=this,p=b.Y7({fontSize:this.u.fontSize,fontFamily:this.u.fontFamily,fontWeight:this.u.fontWeight,fontStyle:this.u.fontStyle});this.zha!==p&&(this.PEa(!1),this.zha=p,document.fonts.load(p).then(function(){l.zha===p&&l.PEa(!0)}))};f.prototype.zJ=function(){return this.wa().zJ()};f.prototype.yJ=function(){return this.wa().yJ()};f.ad=Object.assign({},k.ad,{fontFamily:void 0, fontSize:void 0,fontColor:void 0,fontWeight:void 0,fontStyle:void 0,horizontalAlign:n.fb,verticalAlign:n.$d,direction:g.Ni,text:"",textDecoration:void 0,textShadowBlurRadius:3,textShadowColor:"#000000",textShadowHorizontalLength:0,textShadowOpacity:0,textShadowVerticalLength:0});return f}(k);var c=function(){function d(){p||f()&&(p=setTimeout(function(){p=null;var q=(new Date).getTime()-5E3,r;for(r in l){var t=l[r];t.timestamp0?this.Ff.reverse():this.Ff&&this.Ff.vm()!=0&&this.Ff.vm()!=1||(this.Ff&&this.Ff.stop(),this.Kl.play())))},Qxa:function(){this.SG&& (this.SG=!1,this.Kl&&(this.Kl.vm()>0?this.Kl.reverse():this.Ff&&this.Ff.get("loop")&&this.Ff.play()))},Oxa:function(){this.Zea()},Zea:function(){this.SG&&this.Kl&&(this.Ff.stop(),this.Kl.play())},Txa:function(){this.SG||(this.Kl.stop(),this.Ff&&this.Ff.get("loop")&&this.Ff.play())},Nxa:function(){this.Ff&&this.Ff.h(h.Cl,this.Oxa,this,!0);this.Ff&&this.Ff.h(h.wx,this.Zea,this,!0);(this.Ff=this.get("effect"))&&this.Ff.bind(h.Cl,this.Oxa,this,!0);this.Ff&&this.Ff.bind(h.wx,this.Zea,this,!0)},Sxa:function(){this.Kl&& this.Kl.h(h.wx,this.Txa,this,!0);(this.Kl=this.get("rollOverEffect"))&&this.Kl.bind(h.wx,this.Txa,this,!0)}}}); define("tdv/player/script/Model3DObject",["require","tdv/utils","tdv/binding/Bindable","tdv/player/parser/ClassInfo","tdv/player/script/mixin/EffectsMixin"],function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable"),n=a("tdv/player/parser/ClassInfo");a=a("tdv/player/script/mixin/EffectsMixin");n=n.define("Model3DObject",h,function(){h.call(this);this.set("hidden",!1);this.r0a();this.Tq=this.SM=this.qga=this.pga=!1;this.Gga=!0;this.Hga=this.Ega=this.pH=!1});m.D6(n,[a]);var g="enabledInStandard enabledInVR enabledInVRWithGazePointer enabledInAR hideBasedOnDistance hideWhileUserInteracting hideWhileMoving".split(" "); n.prototype.set=function(k,e){h.prototype.set.call(this,k,e);g.indexOf(k)!=-1&&this.Xz()};n.prototype.lra=function(k){this.qga!==k&&(this.qga=k,this.Xz())};n.prototype.aF=function(k){this.Tq!==k&&(this.Tq=k,this.Xz())};n.prototype.Gp=function(k){this.SM!==k&&(this.SM=k,this.Xz())};n.prototype.u$=function(k){this.Gga!==k&&(this.Gga=k,this.Xz())};n.prototype.dB=function(k){this.pH!==k&&(this.pH=k,this.Xz())};n.prototype.v$=function(k){this.Hga!==k&&(this.Hga=k,this.Xz())};n.prototype.nRa=function(k){this.Ega!== k&&(this.Ega=k,this.Xz())};n.prototype.kra=function(k){this.pga!==k&&(this.pga=k,this.Xz())};n.prototype.Xz=function(){this.set("hidden",this.qga||this.pga||this.pH&&this.get("enabledInVR")===!1||this.Ega&&this.get("enabledInAR")===!1||this.Hga&&this.get("enabledInVRWithGazePointer",this.get("enabledInVR"))===!1||this.Gga&&this.get("enabledInStandard")===!1||this.SM&&this.get("hideWhileMoving")||this.Tq&&this.get("hideWhileUserInteracting"))};return n}); define("tdv/player/script/BoxModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("BoxModel3DObject",h,function(){h.call(this)})});define("tdv/view/constants/ScaleMode",["require","exports"],function(){return{NONE:"none",GB:"fill",uj:"fit_inside",Kr:"fit_outside",Tp:"fit_to_width",Pk:"fit_to_height",pUa:"custom"}}); define("tdv/view/core/visualprops/ImageVisualProperties",["require","exports","tdv/view/core/visualprops/UIBaseVisualProperties","tdv/view/constants/Alignment"],function(a,m,h,n){return function(g){function k(){var e=g!==null&&g.apply(this,arguments)||this;e.image=null;e.Yh=n.fb;e.verticalAlign=n.$d;e.contentWidth=0;e.contentHeight=0;return e}P(k,g);return k}(h)}); define("tdv/view/images/Image","require exports tdv/constants/EventName tdv/constants/Priority tdv/view/constants/Alignment tdv/view/constants/ScaleMode tdv/view/core/UIComponent tdv/view/images/ImageLoader tdv/view/core/visualprops/ImageVisualProperties".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(f){function l(p){var q=f.call(this)||this;q.k3a=function(){q.v0=!0;q.Tf()};q.l3a=function(){q.rHa()};q.gf("Image");q.yda=p||1;q.rma=!1;q.gka=!1;q.eN=0;q.dN=0;q.Nia=!1;q.v0=!1;q.pd=null;q.bind(h.Rb, q.k3a,q,!1);q.bind(h.od,q.l3a,q,!1);return q}P(l,f);l.prototype.VL=function(){return new c};l.prototype.Xfa=function(){var p=this;this.pd=new d(this.yda);this.Xfa=function(){return p.pd};return this.pd};l.prototype.Pb=function(){f.prototype.Pb.call(this);this.m("horizontalAlign",g.fb);this.m("verticalAlign",g.Tc);this.m("scaleMode",k.NONE)};l.prototype.set=function(p,q){p=="url"&&this.get("url")!=q&&(this.rma=!0,this.Tf());f.prototype.set.call(this,p,q)};l.prototype.eQ=function(p){this.u.Yh!=p&&(this.u.Yh= p,this.tb())};l.prototype.kP=function(){return this.u.Yh};l.prototype.kQ=function(p){this.u.verticalAlign!=p&&(this.u.verticalAlign=p,this.tb())};l.prototype.mP=function(){return this.u.verticalAlign};l.prototype.gQ=function(p){this.ti!=p&&(this.ti=p,this.gka=!0,this.Tf(),this.lc())};l.prototype.m8a=function(p,q){if(this.u.contentWidth!=p||this.u.contentHeight!=q)this.u.contentWidth=p,this.u.contentHeight=q,this.tb()};l.prototype.Rva=function(p,q,r){this.eN=q?q:0;this.dN=r?r:0;this.u.image=p;this.Nia= !0;this.Tf();this.lc();this.tb();this.u.image&&this.o(h.ia)};l.prototype.Zy=function(){this.fn=this.eN+this.u.Dd+this.u.Ce;this.dn=this.dN+this.u.ie+this.u.Ef;this.vAa=this.eN==0&&this.dN==0?0:this.eN/this.dN;this.kT=this.lT=0};l.prototype.jb=function(){this.S("scaleMode")&&(this.gQ(this.G("scaleMode")),this.$("scaleMode"));this.S("horizontalAlign")&&(this.eQ(this.G("horizontalAlign")),this.$("horizontalAlign"));this.S("verticalAlign")&&(this.kQ(this.G("verticalAlign")),this.$("verticalAlign"));this.ada("paddingLeft paddingTop paddingRight paddingBottom borderRadius borderTopRadius borderBottomRadius borderLeftRadius borderRightRadius borderTopLeftRadius borderTopRightRadius borderBottomLeftRadius borderBottomRightRadius borderSize borderLeftSize borderTopSize borderRightSize borderBottomSize".split(" "))&& (this.v0=!0);f.prototype.jb.call(this);this.rHa();if(this.ygb()||this.gka||this.Nia||this.v0){var p=this.Xh(),q=this.Wh(),r=this.eN,t=this.dN,u=0,v=0;if(r==0||t==0)v=u=0;else switch(this.ti){case k.NONE:u=r;v=t;break;case k.GB:u=p;v=q;break;case k.uj:r*q>t*p?(u=p,v=t*p/r):(u=r*q/t,v=q);break;case k.Kr:r*q>t*p?(u=r*q/t,v=q):(u=p,v=t*p/r);break;case k.Tp:u=p;v=t*p/r;break;case k.Pk:u=r*q/t,v=q}this.m8a(u,v);this.v0=this.Nia=this.gka=!1;this.lc();this.tb()}};l.prototype.rHa=function(){if(this.rma){var p= this.get("url");p?this.Xfa().load(p,this.Rva,this):(this.Xfa().clear(),this.Rva(null,0,0));this.rma=!1}};return l}(e);var d=function(){function f(l){this.yda=l;this.Sd=[];this.Tm=null}f.prototype.LZa=function(l){f.Yo.href=l;return f.Yo.href};f.prototype.load=function(l,p,q){var r=this;l=this.LZa(l);this.Tm&&!this.Tm.pj()&&(this.Tm.cancel(),this.Sd=this.Sd.filter(function(v){return v!==r.Tm}));(this.Tm=this.Sd.find(function(v){return v.rl()==l})||null)?this.Sd=this.Sd.filter(function(v){return v!== r.Tm}):(this.Tm=new b(n.Bua),this.Tm.load(l));for(this.Sd.splice(0,0,this.Tm);this.Sd.length>this.yda;)this.Sd.pop().cancel();if(p){var t=this.Tm,u=function(){p.call(q||window,t.yg(),t.hg(),t.xg())};this.Tm.pj()?u():this.Tm.bind(h.ia,u,void 0,!1)}};f.prototype.clear=function(){this.Sd.forEach(function(l){l.cancel()});this.Tm=null};f.Yo=document.createElement("a");return f}();return a}); define("tdv/view/buttons/Button","require exports tdv/view/constants/ScaleMode tdv/view/constants/State tdv/view/buttons/BaseButton tdv/view/images/Image".split(" "),function(a,m,h,n,g,k){return function(e){function b(){return e.call(this)||this}P(b,e);b.prototype.Pb=function(){e.prototype.Pb.call(this);this.m("iconURL");this.D("rollOverIconURL",n.ea,"iconURL");this.D("pressedIconURL",n.Fb,"iconURL");this.D("pressedRollOverIconURL",n.qc,"iconURL")};b.prototype.gea=function(){var c=new k(3);c.set("scaleMode", h.uj);return c};b.prototype.jb=function(){if(this.S("iconURL")){var c=this.G("iconURL");this.Cj.set("url",c);this.Cj.set("visible",c?!0:!1);this.$("iconURL")}e.prototype.jb.call(this)};return b}(g)});define("tdv/player/script/Button",["require","tdv/player/parser/ClassInfo","tdv/view/buttons/Button"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/buttons/Button");return m.define("Button",h,function(){h.call(this)})}); define("tdv/player/script/ExternalModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("ExternalModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/PlaneModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/ExternalModel3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/ExternalModel3DObject");return m.define("PlaneModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/CanvasPlaneModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/PlaneModel3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PlaneModel3DObject");return m.define("CanvasPlaneModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/CapPanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("CapPanoramaOverlay",m,function(){m.call(this)})}); define("tdv/player/script/CeilingCapPanoramaOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/CapPanoramaOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/CapPanoramaOverlay");return m.define("CeilingCapPanoramaOverlay",h,function(){h.call(this)})}); define("tdv/player/script/ChildModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("ChildModel3DObject",h,function(){h.call(this);this.set("floorColor","transparent")})}); define("tdv/player/script/CloseButton",["require","tdv/player/parser/ClassInfo","tdv/view/buttons/CloseButton"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/buttons/CloseButton");return m.define("CloseButton",h,function(){h.call(this)})});define("tdv/player/script/CookiesPolicy",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("CookiesPolicy",m,function(){m.call(this)})}); define("tdv/player/script/Container",["require","tdv/events/async","tdv/player/parser/ClassInfo","tdv/view/containers/Container"],function(a){var m=a("tdv/events/async"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/view/containers/Container");a=h.define("Container",n,function(){n.call(this)});a.prototype.scrollTo=function(g,k){n.prototype.scrollTo.call(this,g,k)};a.prototype.scrollIntoView=function(g){m.ME(function(){n.prototype.scrollIntoView.call(this,g)}.bind(this))};return a}); define("tdv/player/script/PanoramaFrame",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/parser/ClassInfo");a=h.define("PanoramaFrame",m,function(){m.call(this);this.Ba=null});a.prototype.get=function(n,g){switch(n){case "overlays":return this.Zfa();case "hfov":case "vfov":case "pitch":case "flipImageHorizontally":case "minFaceSize":if(this.Ba)return this.Ba.get(n,g)}return m.prototype.get.call(this,n,g)};a.prototype.Zfa= function(){var n=m.prototype.get.call(this,"overlays");n||(n=[]);return this.Mka(n)};a.prototype.Mka=function(n){if(this.PN===void 0||this.n2!=n){var g=function(e){return h.Oa("PopupPanoramaOverlay",e)},k=function(e){return h.Oa("LensFlarePanoramaOverlay",e)};this.n2=n;this.PN=[].concat(n.filter(function(e){return!(g(e)||k(e))}),n.filter(k),n.filter(g))}return this.PN};a.prototype.pcb=function(n){this.Ba=n};a.prototype.cE=function(){return this.Ba};a.prototype.Mn=function(){return!1};return a}); define("tdv/player/script/CubicPanoramaFrame",["require","tdv/player/parser/ClassInfo","tdv/player/script/PanoramaFrame"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PanoramaFrame");return m.define("CubicPanoramaFrame",h,function(){h.call(this)})}); define("tdv/view/av/omnitone",["require","tdv/player/view/util/Flags"],function(a){function m(S,W,Z){this.ga=p.SMa(S)?S:p.throw("BufferList: Invalid BaseAudioContext.");this.YH={dataType:ia.DQ,waa:!1};Z&&(Z.dataType&&p.shb(ia,Z.dataType)&&(this.YH.dataType=Z.dataType),Z.waa&&(this.YH.waa=!!Z.waa));this.jwa=[];this.Tu=this.YH.dataType===ia.DQ?W:W.slice(0);this.G4a=this.Tu.length;this.jEa=null;this.RU=new Function}function h(S,W){this.ga=S;this.kl=this.ga.createChannelSplitter(4);this.Rl=this.ga.createChannelMerger(4); this.input=this.kl;this.output=this.Rl;this.cra(W||da.De)}function n(S){this.ga=S;this.kl=this.ga.createChannelSplitter(4);this.FS=this.ga.createGain();this.O1=this.ga.createGain();this.ES=this.ga.createGain();this.w2=this.ga.createGain();this.z2=this.ga.createGain();this.A2=this.ga.createGain();this.B2=this.ga.createGain();this.C2=this.ga.createGain();this.D2=this.ga.createGain();this.E2=this.ga.createGain();this.F2=this.ga.createGain();this.G2=this.ga.createGain();this.uU=this.ga.createGain();this.P3= this.ga.createGain();this.tU=this.ga.createGain();this.Rl=this.ga.createChannelMerger(4);this.kl.connect(this.FS,1);this.kl.connect(this.O1,2);this.kl.connect(this.ES,3);this.FS.gain.value=-1;this.ES.gain.value=-1;this.FS.connect(this.w2);this.FS.connect(this.z2);this.FS.connect(this.A2);this.O1.connect(this.B2);this.O1.connect(this.C2);this.O1.connect(this.D2);this.ES.connect(this.E2);this.ES.connect(this.F2);this.ES.connect(this.G2);this.w2.connect(this.uU);this.z2.connect(this.P3);this.A2.connect(this.tU); this.B2.connect(this.uU);this.C2.connect(this.P3);this.D2.connect(this.tU);this.E2.connect(this.uU);this.F2.connect(this.P3);this.G2.connect(this.tU);this.kl.connect(this.Rl,0,0);this.uU.connect(this.Rl,0,1);this.P3.connect(this.Rl,0,2);this.tU.connect(this.Rl,0,3);this.uU.gain.value=-1;this.tU.gain.value=-1;this.pZ(new Float32Array([1,0,0,0,1,0,0,0,1]));this.input=this.kl;this.output=this.Rl}function g(S,W){this.ga=S;this.NS=this.yo=!1;this.sR();W&&this.r$(W);this.enable()}function k(S,W){this.ga= p.SMa(S)?S:p.throw("FOARenderer: Invalid BaseAudioContext.");this.Si={ar:h.tUa.De,$A:X.Zsa};W&&(W.ar&&(Array.isArray(W.ar)&&W.ar.length===4?this.Si.ar=W.ar:p.throw("FOARenderer: Invalid channel map. (got "+W.ar+")")),W.j8&&(Array.isArray(W.j8)&&W.j8.length===2?this.Si.yPa=W.j8:p.throw("FOARenderer: Invalid HRIR URLs. It must be an array with 2 URLs to HRIR files. (got "+W.j8+")")),W.$A&&(Object.values(X).includes(W.$A)?this.Si.$A=W.$A:p.log("FOARenderer: Invalid rendering mode order. (got"+W.$A+') Fallbacks to the mode "ambisonic".'))); this.sR();this.WFa=new Float32Array(16);this.PS=!1}function e(S,W,Z){this.ga=S;this.NS=this.yo=!1;this.S_=W;this.TAa=(this.S_+1)*(this.S_+1);this.sR();Z&&this.r$(Z);this.enable()}function b(S,W,Z,ca){return S[W-1][(ca+W)*(2*W+1)+(Z+W)].gain.value}function c(S,W,Z,ca,fa){return ca===fa?b(S,1,W,1)*b(S,fa-1,Z,fa-1)-b(S,1,W,-1)*b(S,fa-1,Z,-fa+1):ca===-fa?b(S,1,W,1)*b(S,fa-1,Z,-fa+1)+b(S,1,W,-1)*b(S,fa-1,Z,fa-1):b(S,1,W,0)*b(S,fa-1,Z,ca)}function d(S){for(let pa=2;pa<=S.length;pa++){var W=S,Z=pa;for(let ma= -Z;ma<=Z;ma++)for(let na=-Z;na<=Z;na++){var ca=ma,fa=na,ja=Z,ha=ca===0?1:0;fa=Math.abs(fa)===ja?1/(2*ja*(2*ja-1)):1/((ja+fa)*(ja-fa));ca=[Math.sqrt((ja+ca)*(ja-ca)*fa),.5*(1-2*ha)*Math.sqrt((1+ha)*(ja+Math.abs(ca)-1)*(ja+Math.abs(ca))*fa),-.5*(1-ha)*Math.sqrt((ja-Math.abs(ca)-1)*(ja-Math.abs(ca)))*fa];Math.abs(ca[0])>0&&(ca[0]*=c(W,0,ma,na,Z));if(Math.abs(ca[1])>0){ja=ca[1];ha=W;fa=ma;var ka=na,la=Z;if(fa===0)ha=c(ha,1,1,ka,la)+c(ha,-1,-1,ka,la);else if(fa>0){var oa=fa===1?1:0;ha=c(ha,1,fa-1,ka,la)* Math.sqrt(1+oa)-c(ha,-1,-fa+1,ka,la)*(1-oa)}else oa=fa===-1?1:0,ha=c(ha,1,fa+1,ka,la)*(1-oa)+c(ha,-1,-fa-1,ka,la)*Math.sqrt(1+oa);ca[1]=ja*ha}Math.abs(ca[2])>0&&(ja=ca[2],ha=W,fa=ma,ka=na,la=Z,ha=fa===0?0:fa>0?c(ha,1,fa+1,ka,la)+c(ha,-1,-fa-1,ka,la):c(ha,1,fa-1,ka,la)-c(ha,-1,-fa+1,ka,la),ca[2]=ja*ha);W[Z-1][(na+Z)*(2*Z+1)+(ma+Z)].gain.value=ca[0]+ca[1]+ca[2]}}}function f(S,W){this.ga=S;this.S_=W;S=(W+1)*(W+1);this.kl=this.ga.createChannelSplitter(S);this.Rl=this.ga.createChannelMerger(S);this.Pg= [];let Z,ca,fa,ja;for(let ha=1;ha<=W;ha++){S=ha*ha;Z=2*ha+1;this.Pg[ha-1]=[];for(let ka=0;kaZ[fa]=W.charCodeAt(fa));return Z.buffer};const ia={DQ:"base64",URL:"url"};m.prototype.load=function(){return new Promise(this.J6a.bind(this))};m.prototype.J6a=function(S,W){typeof S!=="function"?p.throw("BufferList: Invalid Promise resolver."):this.jEa=S;typeof W==="function"&&(this.RU=W);for(S=0;S ["+S.toString()+"])."),this.Si.ar=S.slice(),this.pfa.cra(this.Si.ar))};k.prototype.pZ=function(S){this.PS&&this.jS.pZ(S)};k.prototype.G$=function(S){this.PS&&this.jS.G$(S)};k.prototype.zlb=function(S){this.PS&&(p.nhb(this.WFa,S.elements),this.jS.G$(this.WFa))};k.prototype.wlb=function(S){if(S!==this.Si.$A){switch(S){case X.Zsa:this.lM.enable();this.g0.disconnect(); break;case X.lUa:this.lM.disable();this.g0.connect(this.output);break;case X.EVa:this.lM.disable();this.g0.disconnect();break;default:p.log('FOARenderer: Rendering mode "'+S+'" is not supported.');return}this.Si.$A=S;p.log("FOARenderer: Rendering mode changed. ("+S+")")}};e.prototype.sR=function(){var S=Math.ceil(this.TAa/2);this.Iza=this.ga.createChannelSplitter(this.TAa);this.Wka=[];this.HR=[];this.x5=[];this.rja=this.ga.createGain();this.$ha=this.ga.createGain();this.wH=this.ga.createGain();this.FL= this.ga.createChannelMerger(2);this.hDa=this.ga.createGain();for(var W=0;W=0?this.x5[ca].connect(this.rja,Z%2):this.x5[ca].connect(this.$ha,Z%2)}this.rja.connect(this.FL, 0,0);this.rja.connect(this.FL,0,1);this.$ha.connect(this.FL,0,0);this.$ha.connect(this.wH);this.wH.connect(this.FL,0,1);this.wH.gain.value=-1;this.input=this.Iza;this.output=this.hDa};e.prototype.r$=function(S){if(!this.NS){for(let W=0;W0)&&this.eD< 1?(this.B9a(),this.mO&&u.push(this.mO)):this.VFa();this.QR?(this.y9a(),this.sDa&&u.push(this.sDa)):this.TFa();this.Uca&&(this.t9a(),this.iS&&u.push(this.iS));u.length>0&&this.v9a();this.rG&&(u=[new d(null,this.rG)].concat(u));(g===null||g===void 0?0:g.destination)&&u.push(new d(g.destination,null));this.oYa(u);this.Zla()};t.prototype.oYa=function(u){if(!n.x8(this.iI,u)){for(var v=0;v0&&this.kn(),this.eW()):this.fa.log("PlaybackController","onPause event received when not visible")};p.prototype.MH=function(){this.fa.log("PlaybackController","on can play");this.eW()};p.prototype.az=function(){this.fa.log("PlaybackController","can play through");this.eW();this.Y4(!1)};p.prototype.eW=function(){if(this.oFa()){if(this.V_&&this.fa.currentTime==0){this.fa.log("PlaybackController", "updatePlaying applying ios hack");this.V_=!1;try{this.fa.currentTime=.3}catch(q){}}b.Tb()!=b.QK&&this.lEa()}};p.prototype.oFa=function(){return this.I==n.PLAYING&&f.visible&&this.fa.paused&&this.fa.readyState>=3};p.prototype.lEa=function(q){q===void 0&&(q=!1);this.mEa||(q?this.oFa()&&(this.fa.log("PlaybackController","updatePlaying retrying play"),this.kj=n.PLAYING,this.Ska()):this.mEa=setTimeout(function(){this.mEa=null;this.lEa(!0)}.bind(this),500))};p.prototype.LT=function(){this.kj==n.PLAYING&& (this.fa.log("PlaybackController","onError waiting to play"),this.kj=null,this.kN?this.NU():b.Tb()==b.Ji?this.o(new k(p.dba)):this.kj=n.PLAYING)};p.prototype.gl=function(){this.fa.log("PlaybackController","on loaded metadata");!isNaN(this.fa.duration)&&this.fa.currentTime==this.fa.duration&&this.fa.duration>0&&this.kn()};p.prototype.kn=function(){this.fa.log("PlaybackController","onEnded");this.V_=!1;if(this.I==n.PLAYING&&!this.kj||this.kj==n.ca)this.fa.log("PlaybackController","onEnded finalizing video"), this.Y4(!1),this.kj=n.ca,this.Rka(),this.o(new k(p.Cl))};p.prototype.Y4=function(q){this.Pea!=q&&(this.fa.log("PlaybackController","downloading changed to: "+q),(this.Pea=q)?d.Cmb(g.Ita):d.Bmb(g.Ita))};p.dba="deactivated";p.Cl="end";p.Aba="play";return p}(e)}); define("tdv/view/av/TextTracksController",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher"],function(a,m,h,n){return function(g){function k(e){var b=g.call(this)||this;b.ll=null;b.bf=[];b.gl=b.gl.bind(b);b.dia=b.dia.bind(b);b.Fj=b.Fj.bind(b);b.fa=e;b.ll=null;b.bf=[];b.fa.addEventListener("loadedmetadata",b.gl,!0);b.fa.textTracks.addEventListener("addtrack",b.dia,!1);return b}P(k,g);k.prototype.set=function(e){e&&this.zXa(e)};k.prototype.clear=function(){this.m7a()};k.prototype.fP= function(){return this.ll&&this.ll.track.activeCues?Array.from(this.ll.track.activeCues):[]};k.prototype.gl=function(){this.pHa()};k.prototype.dia=function(){this.pHa()};k.prototype.Fj=function(){this.CEa(this.fP())};k.prototype.CEa=function(e){e||(e=[]);if(this.bf.length!=0||e.length!=0)this.bf=Array.from(e),this.o(h.Bl,this.bf)};k.prototype.zXa=function(e){this.fa.log("TextTracksController","add text track src: "+e);this.ll=document.createElement("track");this.ll.kind="subtitles";this.ll.src=e; this.fa.appendChild(this.ll)};k.prototype.m7a=function(){this.ll&&(this.fa.log("TextTracksController","remove text track"),this.ll.track.removeEventListener("cuechange",this.Fj),this.ll.track.mode="disabled",this.ll.src="",this.fa.removeChild(this.ll),this.ll=null,this.CEa([]))};k.prototype.pHa=function(){for(var e=0;e=this.fa.HAVE_ENOUGH_DATA&&this.TM!==void 0){this.fa.log("TimeController","updateCurrentTime when can play through set time to: "+this.TM);try{this.fa.currentTime=this.TM}catch(c){}this.TM=void 0}};b.prototype.Nf=function(){this.o(new h(b.Dg))};b.prototype.M3=function(){if(g.YIa()&&!g.Lgb()&&!this.fa.paused&&this.fa.readyState>= this.fa.HAVE_ENOUGH_DATA){var c=(new Date).getTime();this.p2||(this.p2=c);this.qha&&c-this.qha>500&&(this.kla++,this.kla/((c-this.p2)*.001)>.4&&g.Elb());this.qha=c}if(this.lR!==void 0&&this.fa.currentTime>this.lR){this.lR=void 0;try{this.fa.currentTime-=.01}catch(d){}}this.Nf()};b.prototype.Bka=function(c){!!this.CI!=c&&(this.CI?(clearInterval(this.CI),this.CI=null):this.CI=setInterval(this.Nf,16))};b.prototype.rM=function(){return this.fa.currentSrc||this.fa.children.length&&this.fa.children[0].src|| ""};b.Dg="time update";b.Zj="duration update";return b}(n)}); define("tdv/view/av/DummyAudioData",["require","exports"],function(){var a={};a.src=a.fib="data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU2LjM2LjEwMAAAAAAAAAAAAAAA//OEAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAEAAABIADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV6urq6urq6urq6urq6urq6urq6urq6urq6v////////////////////////////////8AAAAATGF2YzU2LjQxAAAAAAAAAAAAAAAAJAAAAAAAAAAAASDs90hvAAAAAAAAAAAAAAAAAAAA//MUZAAAAAGkAAAAAAAAA0gAAAAATEFN//MUZAMAAAGkAAAAAAAAA0gAAAAARTMu//MUZAYAAAGkAAAAAAAAA0gAAAAAOTku//MUZAkAAAGkAAAAAAAAA0gAAAAANVVV";return a}); define("tdv/view/av/SrcSetter","require exports tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Capabilities tdv/player/view/util/URL tdv/player/view/util/Flags tdv/player/view/util/FileType tdv/player/view/util/LibsLoader tdv/view/av/DummyAudioData".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){a=function(p){function q(r,t){var u=p.call(this)||this;u.fa=r;u.rp=t;u.Aha=!1;u.n5=[];u.bM=null;u.ef=null;u.bg=null;return u}P(q,p);q.prototype.set=function(r,t,u){this.fa.log("SrcSetter", "set: "+r+" subtitles: "+t+" startTime: "+u);r=new l(r,t,u);this.ef&&this.ef.isEqual(r)||(!this.ef&&this.bM&&this.bM.isEqual(r)?this.S5():(this.ef=r,this.m4a()))};q.prototype.clear=function(){this.bg&&(this.bg.destroy(),this.bg=null);this.bM=null;this.l7a();this.rp.clear()};q.prototype.Igb=function(){return!!this.ef};q.prototype.m4a=function(){this.Aha=!0;this.gEa(this.ef.src)&&!d.HLS.pj()?(this.fa.log("SrcSetter","hls lib required"),d.HLS.load(this.iAa,this)):this.iAa()};q.prototype.iAa=function(){this.Aha&& (this.Aha=!1,this.hYa())};q.prototype.hYa=function(){this.clear();this.n8a(this.p7a(this.ef.src));this.gEa(this.ef.src)?this.WXa():this.Vga(this.ef.src)?this.iYa():this.jYa()};q.prototype.WXa=function(){var r=d.HLS.EP,t=navigator.connection,u=(t?Math.max(t.downlink,2):2)*1024*1024,v=u*.66;this.bg=new r({debug:b.vu,startPosition:this.ef.startTime===0?-1:this.ef.startTime,playlistLoadPolicy:{"default":{maxTimeToFirstByteMs:6E4,maxLoadTimeMs:6E4}},startLevel:-1,maxMaxBufferLength:12,autoStartLoad:!1, abrEwmaDefaultEstimate:u});this.bg.loadSource(this.ef.src);this.bg.attachMedia(this.fa);var w=function(){this.bg.off(r.Events.MANIFEST_PARSED,w);var x=this.bg.levels.filter(function(z){return z.bitrate<=u});if(x.length){x.sort(function(z,A){return A.width-z.width});var y=this.bg.levels.indexOf(x[0]);this.bg.startLevel=y}x=this.bg.levels.filter(function(z){return z.bitrate<=v});x.length&&(x.sort(function(z,A){return A.width-z.width}),this.bg.config.minAutoBitrate=x[0].bitrate-1);x=this.bg.levels.filter(function(z){return k.Pmb(z.width, z.height)});b.dVa&&(x.sort(function(z,A){return A.width-z.width}),y=this.bg.levels.indexOf(x[0]),this.bg.startLevel=y);x.length&&x.length 0};r.prototype.Z9=function(t){this.Gf=[t].concat(this.Gf.filter(function(u){return u!==t}));this.bja();p()};r.prototype.appendItem=function(t){this.Gf.push(t);this.bja();p()};r.prototype.wY=function(t){this.Gf=this.Gf.filter(function(u){return u!==t});this.bja()};r.prototype.bja=function(){var t=this.v2a();if(r.Qua)for(;this.Kv.length0?n.PLAYING:n.ca);t.forEach(function(u){if(!this.U1a(u)){var v= this.L1a(u.getType(),u.Qqa());v||u.Qqa()||this.Kv.push(v=new l(new d(f.Wp,!1)));v&&v.use(u)}}.bind(this));this.M1a().forEach(function(u){u.Wx.stop()})};r.prototype.v2a=function(){return this.Gf.map(function(t,u){var v={};v.index=u;v.priority=t.ILa();v.item=t;return v}).sort(function(t,u){return t.priority-u.priority||t.index-u.index}).map(function(t){return t.item})};r.prototype.Jd=function(t){this.I!=t&&(this.I=t,this.o(new g(this.I==n.ca?h.Fg:h.Up)))};r.prototype.L1a=function(t,u){t=this.Kv.filter(function(v){return v.fpa()}); return t.length?(u?(u=t.filter(function(v){return v.w8()}),u.length||(u=t.filter(function(v){return v.zaa()}))):(u=t.filter(function(v){return!v.zaa()}),u.length||(u=t.filter(function(v){return!v.w8()}))),u.length&&(t=u),b.Tb()==b.Yj?(t.sort(function(v,w){return w.rha-v.rha}),t[Math.min(2,t.length-1)]):t[0]):null};r.prototype.M1a=function(){return this.Kv.filter(function(t){return t.fpa()})};r.prototype.lza=function(){return this.Kv.filter(function(t){return!t.fpa()})};r.prototype.U1a=function(t){for(var u= 0;u=0;return r}(k);var p=function(){if([b.yB,b.tu].indexOf(b.Dc())>=0){var q=document.createElement("video"); q.muted=!1;q.setAttribute("loop","");q.src="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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"; return function(){try{q.pause(),setTimeout(function(){q.play()["catch"](function(){})},0)}catch(r){}}}return function(){}}();return a}); define("tdv/view/av/AudioPlayer","require exports tdv/events/Event tdv/events/EventDispatcher tdv/constants/EventName tdv/constants/PlaybackState tdv/view/av/HTMLMediaPlayer tdv/view/av/Subtitle tdv/view/av/AVProperties tdv/view/av/MediaType tdv/view/av/SharedPlayerOrchestrator tdv/view/util/Animation tdv/player/view/util/Capabilities".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p){return function(q){function r(t,u,v,w){var x=q.call(this)||this;x.Gb=t;x.C=u;x.QR=v;x.zv=w;x.pV();x.j3=x.j3.bind(x); x.C.bind(g.L("gain"),x.QH,x,!0);x.C.bind(g.L("ambisonic"),x.LH,x,!0);x.C.bind(g.L("mp3Url"),x.nk,x,!0);x.C.bind(g.L("oggUrl"),x.nk,x,!0);x.C.bind(g.L("subtitlesURL"),x.nk,x,!0);x.C.bind(g.L("url"),x.nk,x,!0);x.I=k.ca;x.Ql=!1;x.ac=0;x.qC=0;x.vf=!1;x.kt=1;x.gq=null;x.Vx=null;x.fS=!1;x.kM=1;x.Vc=null;x.bq=[];return x}P(r,q);r.prototype.Xb=function(){return this.Gb};r.prototype.Zc=function(t){this.I==t||t==k.$b&&this.I!=k.PLAYING||(this.I=t,this.I==k.PLAYING?(this.dZa(),f.Z9(this)):this.K9a(),this.zla())}; r.prototype.K9a=function(){this.fS||(this.fS=!0,this.cya=this.C.get("fadeOutTime"),this.cya==0?this.KFa():this.j3(0))};r.prototype.j3=function(t){this.Vc&&this.kM!=0&&this.fS&&!this.H3a()?(this.kM=Math.max(0,this.kM-t/this.cya),this.W_(),l.requestFrame(this.j3)):this.KFa()};r.prototype.dZa=function(){this.fS=!1;this.kM=1;this.W_()};r.prototype.KFa=function(){this.fS=!1;this.kM=1;this.Vc&&(f.wY(this),this.I==k.ca&&this.Aka())};r.prototype.getState=function(){return this.I};r.prototype.mj=function(){return this.ac}; r.prototype.setCurrentTime=function(t){this.qC=t;this.Vc&&this.Vc.play(this.Gb,this.A,this.qC)};r.prototype.getCurrentTime=function(){return this.qC};r.prototype.iB=function(t){this.kt=t;this.W_()};r.prototype.W_=function(){this.Vc&&this.Vc.iB(this.kt*this.kM)};r.prototype.cu=function(t){this.Vc?this.Vc.cu(t):this.gq=(t===null||t===void 0?void 0:t.clone())||null};r.prototype.Uw=function(t){this.Vc?this.Vc.Uw(t):this.Vx=(t===null||t===void 0?void 0:t.clone())||null};r.prototype.Bg=function(t){this.vf= t;this.Vc&&this.Vc.Bg(t)};r.prototype.setLoop=function(t){this.Ql=t;this.Vc&&this.Vc.setLoop(t)};r.prototype.Qqa=function(){return!this.vf};r.prototype.getType=function(){return d.hUa};r.prototype.ILa=function(){return this.zv};r.prototype.uKa=function(t){this.Vc=t;setTimeout(function(){this.Vc&&this.Vc.bind(e.Cl,this.KT,this,!0)}.bind(this),0);this.pV();this.Vc.bind(e.Dg,this.Nf,this,!0);this.Vc.bind(e.Zj,this.$o,this,!0);this.Vc.bind(g.Bl,this.Fj,this,!0);this.Vc.Bg(this.vf);this.W_();this.Vc.setLoop(this.Ql); this.Vc.Uw(this.Vx);this.Vc.cu(this.gq);this.Vc.play(this.Gb,this.A,this.qC)};r.prototype.tNa=function(){this.qC=this.Vc.getCurrentTime();this.Vc.h(e.Cl,this.KT,this);this.Vc.h(e.Dg,this.Nf,this);this.Vc.h(e.Zj,this.$o,this);this.Vc.h(g.Bl,this.Fj,this);this.Vc=null};r.prototype.clear=function(){this.Zc(k.ca);this.C&&(this.C.h(g.L("gain"),this.QH,this),this.C.h(g.L("ambisonic"),this.LH,this),this.C.h(g.L("mp3Url"),this.nk,this),this.C.h(g.L("oggUrl"),this.nk,this),this.C.h(g.L("subtitlesURL"),this.nk, this),this.C.h(g.L("url"),this.nk,this),this.C=null)};r.prototype.nk=function(){var t=this;this.jI&&clearTimeout(this.jI);this.jI=setTimeout(function(){t.jI=null;t.Vc&&(t.A.src=t.rM(t.C),t.A.Gm=t.C.get("subtitlesURL"),t.Vc.play(t.Gb,t.A,t.qC))},10)};r.prototype.QH=function(){if(this.Vc){var t=this.C.get("gain");this.A.gain!=t&&(this.A.gain=t,this.Vc.WY(this.A.gain))}};r.prototype.LH=function(){if(this.Vc){var t=this.C.get("ambisonic")=="foa";this.A.mt!=t&&(this.A.mt=t,this.Vc.SY(this.A.mt))}};r.prototype.pV= function(){this.A=new c;this.A.src=this.rM(this.C);this.A.Gm=this.C.get("subtitlesURL");this.A.gE=!0;this.A.gain=this.C.get("gain");this.A.mt=this.C.get("ambisonic")=="foa";this.A.UW=this.QR};r.prototype.rM=function(t){var u=t.get("url");if(u)return u;var v=t.get("mp3Url");return v&&p.CMa?v:(t=t.get("oggUrl"))&&p.DMa?t:u||v||t};r.prototype.$o=function(){this.ac=this.Vc.mj();this.ula()};r.prototype.Nf=function(){this.ac!=this.Vc.mj()&&this.$o();this.qC=this.Vc.getCurrentTime();this.ZV()};r.prototype.Fj= function(){var t=this;this.bq=this.Vc.fP().map(function(u){for(var v=null,w=0;w0?(e=new g(e[0],b, c,d,g.jx(null,e.slice(1),b,c,d)),e.$ja(k),e):null};return g}()}); define("tdv/view/list/dropdown/DropDownArrow",["require","exports","tdv/view/canvas/Canvas"],function(a,m,h){return function(n){function g(){var k=n.call(this)||this;k.gf("DropDownArrow");return k}P(g,n);g.prototype.Pb=function(){n.prototype.Pb.call(this);this.m("color","#000000");this.m("direction",g.Uaa)};g.prototype.jb=function(){this.ada(["color","direction"])&&(this.$("color"),this.$("direction"),this.MX());n.prototype.jb.call(this)};g.prototype.wsa=function(){var k=this.u.canvas.width,e=this.u.canvas.height, b=this.G("color"),c=this.G("direction"),d=[k*.5,0,k];c=c==g.Uaa?[e,0,0]:[0,e,e];var f=this.fLa();f.clearRect(0,0,k,e);f.beginPath();f.moveTo(d[0],c[0]);f.lineTo(d[1],c[1]);f.lineTo(d[2],c[2]);f.fillStyle=b;f.fill();n.prototype.wsa.call(this)};g.Uaa="down";return g}(h)}); define("tdv/view/list/dropdown/DropDownButton","require exports tdv/events/Event tdv/view/constants/Alignment tdv/view/constants/Cursor tdv/constants/EventName tdv/view/constants/LayoutMode tdv/view/constants/State tdv/view/containers/Container tdv/view/list/dropdown/DropDownArrow tdv/view/text/Label".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){return function(l){function p(){var q=l.call(this)||this;q.gf("DropDownButton");q.Za=null;q.$B=null;q.lha=!0;q.set("ariaRole","dropdown");q.set("autoRolledOver", !0);q.set("autoPressed",!0);q.set("childrenInteractionEnabled",!1);q.set("contentOpaque",!0);q.set("cursor",g.qf);q.bind(k.ma,q.Wea,q,!1);return q}P(p,l);p.prototype.Pb=function(){l.prototype.Pb.call(this);this.m("arrowColor","#000000");this.m("arrowBeforeLabel");this.m("arrowWidth",9);this.m("arrowHeight",5);this.m("arrowGap",5);this.m("shadow",!1);this.m("layout",e.Ni);this.m("verticalAlign",n.$d);this.m("borderRadius",5);this.m("borderColor","#AAAAAA");this.m("borderSize",1);this.m("backgroundColor", ["#FAFAFA","#E5E5E5"]);this.m("backgroundColorRatios",[0,1]);this.m("backgroundColorDirection","vertical");this.m("paddingLeft",5);this.m("paddingTop",5);this.m("paddingRight",5);this.m("paddingBottom",5);this.m("fontFamily");this.m("fontSize");this.m("fontColor","#555555");this.m("fontWeight");this.m("fontStyle");this.m("textDecoration");this.m("textShadowColor");this.m("textShadowHorizontalLength");this.m("textShadowVerticalLength");this.m("textShadowBlurRadius");this.m("textShadowOpacity");this.D("rollOverBorderColor", b.ea,"borderColor");this.D("rollOverArrowColor",b.ea,"arrowColor");this.D("rollOverBackgroundColor",b.ea,"backgroundColor");this.D("rollOverBackgroundColorRatios",b.ea,"backgroundColorRatios");this.D("rollOverShadow",b.ea,"shadow");this.D("pressedBorderColor",b.Fb,"borderColor");this.D("pressedArrowColor",b.Fb,"arrowColor");this.D("pressedBackgroundColor",b.Fb,"backgroundColor");this.D("pressedBackgroundColorRatios",b.Fb,"backgroundColorRatios");this.D("pressedShadow",b.Fb,"shadow");this.D("pressedRollOverBorderColor", b.qc,"borderColor");this.D("pressedRollOverArrowColor",b.qc,"arrowColor");this.D("pressedRollOverBackgroundColor",b.qc,"backgroundColor");this.D("pressedRollOverBackgroundColorRatios",b.qc,"backgroundColorRatios");this.D("pressedRollOverShadow",b.qc,"shadow");this.D("pressedBorderColor",b.oa,"borderColor");this.D("pressedArrowColor",b.oa,"arrowColor");this.D("pressedBackgroundColor",b.oa,"backgroundColor");this.D("pressedBackgroundColorRatios",b.oa,"backgroundColorRatios");this.D("pressedShadow", b.oa,"shadow")};p.prototype.set=function(q,r){q=="label"&&this.get("label")!=r&&(this.lha=!0,this.Tf());l.prototype.set.call(this,q,r)};p.prototype.Kb=function(){l.prototype.Kb.call(this);this.Za||(this.Za=new f,this.Za.set("width","100%"),this.mb(this.Za));this.$B||(this.$B=new d,this.$B.set("direction",d.Uaa),this.mb(this.$B))};p.prototype.Wea=function(){this.open();this.o(new h(k.OPEN))};p.prototype.open=function(){this.h(k.ma,this.Wea,this);this.kV(!0)};p.prototype.close=function(){this.bind(k.ma, this.Wea,this,!1);this.kV(!1)};p.prototype.Ux=function(){return this.Za&&this.Za.get("text")||l.prototype.Ux.call(this)};p.prototype.jb=function(){if(this.lha){var q=this.get("label");this.Za.set("text",q);this.lha=!1}this.Pc("horizontalAlign fontFamily fontSize fontColor fontWeight fontStyle textDecoration textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "),{},[this.Za],!0,!0);this.S("arrowGap")&&(this.set("gap",this.G("arrowGap")), this.$("arrowGap"));this.S("arrowColor")&&(this.$B.set("color",this.G("arrowColor")),this.$("arrowColor"));this.S("arrowBeforeLabel")&&(this.G("arrowBeforeLabel")==1?this.rr(this.$B,0):this.rr(this.Za,0),this.$("arrowBeforeLabel"));this.S("arrowWidth")&&(this.$B.set("width",this.G("arrowWidth")),this.$("arrowWidth"));this.S("arrowHeight")&&(this.$B.set("height",this.G("arrowHeight")),this.$("arrowHeight"));l.prototype.jb.call(this)};return p}(c)}); define("tdv/view/list/dropdown/DropDownPopup","require exports tdv/player/view/util/Device tdv/events/Event tdv/view/constants/Alignment tdv/view/constants/Cursor tdv/view/constants/OverflowPolicy tdv/constants/EventName tdv/view/containers/Container tdv/view/containers/VerticalContainer tdv/view/text/Label".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){return function(l){function p(q){var r=l.call(this)||this;r.tda=!1;r.Yb=null;r.aT=[];r.CD=!0;r.V4=!1;r.je=q;r.gf("DropDownPopup");r.set("ariaRole","listbox"); return r}P(p,l);p.prototype.yLa=function(){return this.Yb.Cb()};p.prototype.open=function(){this.AG=this.YKa();this.tda=!0;this.AG.mb(this);this.set("overIndex",-1);this.set("visible",!0);this.bind(b.Sa,this.te,this,!1);this.AG.bind(b.$a,this.nv,this,!1);this.AG.bind(b.Rb,this.kd,this,!1)};p.prototype.close=function(){this.set("visible",!1);this.Yb.set("overflow",e.mL);this.Yb.set("contentOpaque",!0);this.h(b.Sa,this.te,this);this.AG.h(b.$a,this.nv,this);this.AG.bind(b.Rb,this.kd,this,!1);this.AG.removeChild(this); this.AG=null};p.prototype.Kb=function(){c.prototype.Kb.call(this);this.Yb||(this.Yb=new d,this.Yb.set("overflow",e.mL),this.Yb.bind(b.Rb,this.kd,this,!1),this.Yb.bind(b.Wr,this.tD,this,!1),this.mb(this.Yb))};p.prototype.YKa=function(){for(var q=this.je.getParent();q.getParent();)q=q.getParent();return q};p.prototype.kd=function(){this.cHa()};p.prototype.te=function(){this.V4=!1};p.prototype.tD=function(){this.V4=!0};p.prototype.nv=function(){this.get("overIndex")!=-1||this.V4&&h.Jp()||this.o(new n(b.CB)); this.V4=!1};p.prototype.g5a=function(q){this.set("overIndex",this.Wfa(q.source))};p.prototype.h5a=function(q){q=this.Wfa(q.source);this.get("overIndex")==q&&this.set("overIndex",-1)};p.prototype.f5a=function(q){q=this.Wfa(q.source);this.set("overIndex",q);this.set("selectedIndex",q);this.o(new n(b.Xr))};p.prototype.Wfa=function(q){for(var r=0;r=z?(this.CD=!0,this.Yb.set("top",r.top+u+v),this.Yb.set("maxHeight",y)):(this.CD=!1,this.Yb.set("top",r.top-z+v),this.Yb.set("maxHeight",z)),this.Yb.set("overflow",e.Wr));u=A==g.$e?r.left+Math.round((t-w)*.5):A==g.Db?r.left+t-w:r.left;u<0?u=r.left:r.left+w>q.nb()&&(u=r.left+t-w);this.Yb.set("left",u);this.CGa()};p.prototype.CGa=function(){var q=this.G("popUpBorderRadius");this.Yb.xa({borderTopRadius:this.CD?0:q,borderBottomRadius:this.CD? q:0});for(var r=this.Yb.Cb(),t=0;t=0&&f>=l.length&&(f=-1);this.set("selectedIndex",f);this.pk.set("items",this.G("items"));this.pk.set("selectedIndex", this.G("selectedIndex"));this.$("items");this.$("selectedIndex");this.Cn&&(this.Cn=!1,this.o(new h(n.V)))}d&&(d=this.G("label"),d||(f=this.G("selectedIndex"),d=f<0?this.G("prompt"):this.G("items")[f]),this.je.set("label",d));this.sFa&&(this.pk.set("minWidth",this.je.nb()),this.pk.set("buttonWidth",this.je.nb()));this.Pc("fontFamily fontSize fontColor fontWeight fontStyle tabIndex textDecoration horizontalAlign textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "), {},[this.je,this.pk],!0,!0);this.Pc("popUpBorderRadius popUpGap popUpPaddingBottom popUpPaddingLeft popUpPaddingRight popUpPaddingTop popUpBackgroundColor popUpBackgroundOpacity popUpBackgroundBlur rollOverPopUpBackgroundColor selectedPopUpBackgroundColor popUpFontColor rollOverPopUpFontColor selectedPopUpFontColor popUpShadow popUpShadowBlurRadius popUpShadowColor popUpShadowHorizontalLength popUpShadowOpacity popUpShadowSpread popUpShadowVerticalLength".split(" "),{},[this.pk],!0,!0);this.Pc("arrowBeforeLabel arrowWidth arrowHeight arrowColor rollOverArrowColor pressedArrowColor pressedRollOverArrowColor arrowGap shadow shadowBlurRadius shadowColor shadowHorizontalLength shadowOpacity shadowSpread shadowVerticalLength borderRadius borderTopRadius borderBottomRadius borderLeftRadius borderRightRadius borderTopLeftRadius borderTopRightRadius borderBottomLeftRadius borderBottomRightRadius borderSize borderLeftSize borderTopSize borderRightSize borderBottomSize borderColor borderLeftColor borderTopColor borderRightColor borderBottomColor rollOverBorderColor pressedBorderColor pressedRollOverBorderColor backgroundColor backgroundColorRatios backgroundColorDirection backgroundOpacity rollOverBackgroundColor rollOverBackgroundColorRatios rollOverShadow pressedBackgroundColor pressedBackgroundColorRatios pressedShadow pressedRollOverBackgroundColor pressedRollOverBackgroundColorRatios pressedRollOverShadow paddingLeft paddingTop paddingRight paddingBottom".split(" "), {},[this.je],!0,!0);b.prototype.jb.call(this)};return c}(g)}); define("tdv/player/script/DropDown",["require","tdv/binding/ChangeWatcher","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/view/list/dropdown/DropDown"],function(a){var m=a("tdv/binding/ChangeWatcher"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/view/list/dropdown/DropDown");a=n.define("DropDown",g,function(){g.call(this);this.Td=null;this.aAa=[];this.bind(h.V,this.Z4a,this)});a.prototype.set=function(k,e){if(k=="playList"){if(this.Td)for(this.Td.h("change", this.lz,this);this.aAa.length;)this.aAa.shift().jF();(this.Td=e)?(m.jx(this.Td,"items.label",this.X5,this),m.jx(this.Td,"items.media.label",this.X5,this),this.X5(),this.Td.bind("change",this.lz,this),this.lz()):this.X5()}g.prototype.set.call(this,k,e)};a.prototype.X5=function(){this.Td?this.set("items",this.Td.get("items").map(function(k){return k.get("label")||k.get("media")&&k.get("media").get("label")})):this.set("items",[])};a.prototype.lz=function(){this.set("selectedIndex",this.Td.get("selectedIndex"))}; a.prototype.Z4a=function(){this.Td&&this.Td.set("selectedIndex",this.get("selectedIndex"))};return a});define("tdv/player/script/DustPanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("DustPanoramaOverlay",m,function(){m.call(this)});a.prototype.get=function(h,n){h=="startState"&&n===void 0&&(n=this.get("initialState"));return m.prototype.get.call(this,h,n)};return a}); define("tdv/player/script/Effect",["require","tdv/player/parser/ClassInfo","tdv/view/effects/Effect"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/effects/Effect");a=m.define("Effect",h,function(){h.call(this)});a.prototype.cancel=function(){return h.prototype.cancel.apply(this,arguments)};a.prototype.getPosition=function(){return h.prototype.vm.apply(this,arguments)};a.prototype.play=function(){return h.prototype.play.apply(this,arguments)};a.prototype.reverse=function(){return h.prototype.reverse.apply(this, arguments)};a.prototype.stop=function(){return h.prototype.stop.apply(this,arguments)};return a});define("tdv/player/script/FadeInEffect",["require","tdv/player/parser/ClassInfo","tdv/view/effects/FadeInEffect"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/effects/FadeInEffect");return m.define("FadeInEffect",h,function(){h.call(this)})}); define("tdv/player/script/FadeOutEffect",["require","tdv/player/parser/ClassInfo","tdv/view/effects/FadeOutEffect"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/effects/FadeOutEffect");return m.define("FadeOutEffect",h,function(){h.call(this)})}); define("tdv/player/script/Model3DCamera","require tdv/binding/Bindable tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/events/async".split(" "),function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/events/async");a=g.define("Model3DCamera",m,function(){m.call(this);this.set("userInteracting",!1);this.set("moving",!1);this.set("mouseDisabled",!1);this.set("clickTranslationDisabled", !1);this.set("doubleClickDisabled",!1);this.Mea=this.z4a=this.Qda=this.Pda=!1;"distance fov yaw pitch x y z".split(" ").forEach(function(e){this.bind(h.L(e),this.F5a,this,!0)}.bind(this))});a.prototype.Amb=function(){this.UN={x:this.get("x"),y:this.get("y"),z:this.get("z"),yaw:this.get("yaw"),pitch:this.get("pitch"),distance:this.get("distance"),fov:this.get("fov")}};a.prototype.setPosition=function(e){e.x!==void 0&&this.set("x",e.x);e.y!==void 0&&this.set("y",e.y);e.z!==void 0&&this.set("z",e.z); e.distance!==void 0&&this.set("distance",e.distance);e.yaw!==void 0&&this.set("yaw",e.yaw);e.pitch!==void 0&&this.set("pitch",e.pitch);e.fov!==void 0&&this.set("fov",e.fov);e.easing!==void 0?this.set("easing",e.easing):this.set("easing",0)};a.prototype.h9a=function(e){this.UN||(this.UN={});for(var b in e)this.UN[b]=e[b]};a.prototype.Zjb=function(){this.UN&&this.setPosition(this.UN)};a.prototype.xRa=function(e){this.xAa!==e&&(this.xAa=e,this.Iab())};a.prototype.Iab=function(){this.set("mouseDisabled", this.z4a||this.xAa)};a.prototype.YQa=function(e){this.Pda!==e&&(this.Pda=e,this.EGa())};a.prototype.ZQa=function(e){this.Qda!==e&&(this.Qda=e,this.EGa())};a.prototype.EGa=function(){this.set("clickTranslationDisabled",this.Pda||this.Qda)};a.prototype.xkb=function(e){this.Mea!==e&&(this.Mea=e,this.sab())};a.prototype.sab=function(){this.set("doubleClickDisabled",this.Mea)};a.prototype.F5a=function(){this.uDa||(this.uDa=!0,k.ME(function(){this.uDa=!1;this.T$a()}.bind(this)))};a.prototype.T$a=function(){this.o(h.Mm)}; a.Tob=100;a.prototype.setStoredPosition=function(e){this.h9a(e)};a.prototype.play=function(){this.set("state",n.PLAYING)};a.prototype.pause=function(){this.set("state",n.$b)};a.prototype.stop=function(){this.set("state",n.ca)};return a}); define("tdv/player/script/FirstPersonModel3DCamera",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DCamera"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DCamera");return m.define("FirstPersonModel3DCamera",h,function(){h.call(this);this.set("distance",0)})}); define("tdv/player/script/HotspotPanoramaOverlay",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/view/effects/Effect"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/view/effects/Effect");a=n.define("HotspotPanoramaOverlay",m,function(){m.call(this);this.bind(h.od,this.cp,this,!0);this.bind(h.jd,this.ap,this,!0);this.xj=[];this.Ld=!1});a.prototype.set=function(k,e){switch(k){case "enabledInCardboard":this.set("enabledInVR", e);break;case "effect":case "rollOverEffect":case "areas":this.X6a(),this.xj=[]}m.prototype.set.call(this,k,e);switch(k){case "enabledInCardboard":this.set("enabledInVR",e);break;case "effect":case "rollOverEffect":case "areas":this.hXa()}};a.prototype.hXa=function(){this.get("effect")&&this.get("effect").bind(g.wx,this.xBa,this,!0);this.get("rollOverEffect")&&this.get("rollOverEffect").bind(g.wx,this.JCa,this,!0);this.get("areas",[]).forEach(function(k){k.bind(h.uc,this.lBa,this,!0);k.bind(h.Eb, this.kBa,this,!0)}.bind(this))};a.prototype.X6a=function(){this.get("effect")&&this.get("effect").h(g.wx,this.xBa,this,!0);this.get("rollOverEffect")&&this.get("rollOverEffect").h(g.wx,this.JCa,this,!0);this.get("areas",[]).forEach(function(k){k.h(h.uc,this.lBa,this,!0);k.h(h.Eb,this.kBa,this,!0)}.bind(this))};a.prototype.lBa=function(k){this.xj.indexOf(k.source)<0&&(this.xj.push(k.source),this.xj.length==1&&this.G3())};a.prototype.kBa=function(k){k=this.xj.indexOf(k.source);k>=0&&(this.xj.splice(k, 1),this.xj.length==0&&this.Fs())};a.prototype.G3=function(){var k=this.get("effect"),e=this.get("rollOverEffect");e&&(k&&k.vm()>0?k.reverse():e.play())};a.prototype.Fs=function(){var k=this.get("rollOverEffect");if(k){var e=this.get("effect");k.vm()>0?k.reverse():e&&e.get("loop")&&e.play()}};a.prototype.xBa=function(){if(this.xj.length>0){var k=this.get("rollOverEffect");k&&(this.get("effect").stop(),k.play())}};a.prototype.JCa=function(){if(this.xj.length==0){this.get("rollOverEffect").stop();var k= this.get("effect");k&&k.get("loop")&&k.play()}};a.prototype.cp=function(){var k=this.get("effect");k&&k.play()};a.prototype.ap=function(){var k=this.get("effect");k&&k.stop();(k=this.get("rollOverEffect"))&&k.stop()};return a}); define("tdv/player/script/FlatHotspotPanoramaOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlay");return m.define("FlatHotspotPanoramaOverlay",h,function(){h.call(this)})}); define("tdv/player/script/HotspotPanoramaOverlayArea",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("HotspotPanoramaOverlayArea",m,function(){m.call(this);this.set("displayTooltipInTouchScreens",!0)})}); define("tdv/player/script/FlatHotspotPanoramaOverlayArea",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlayArea"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlayArea");return m.define("FlatHotspotPanoramaOverlayArea",h,function(){h.call(this)})}); define("tdv/player/script/QuadPanoramaOverlayPlaybackPosition",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("QuadPanoramaOverlayPlaybackPosition",m,function(h,n,g){m.call(this);h!==void 0&&this.set("vertices",h);this.set("opacity",n!==void 0?n:1);g!==void 0&&this.set("timestamp",g)})}); define("tdv/player/script/FlatPanoramaOverlayPlaybackPosition",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("FlatPanoramaOverlayPlaybackPosition",m,function(h,n,g,k,e){m.call(this);h!==void 0&&this.set("yaw",h);n!==void 0&&this.set("pitch",n);g!==void 0&&this.set("roll",g);this.set("opacity",k!==void 0?k:1);e!==void 0&&this.set("timestamp",e)})}); define("tdv/player/script/PanoramaOverlayPlaybackPosition",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PanoramaOverlayPlaybackPosition",m,function(h,n,g,k,e,b,c,d,f){m.call(this);h!==void 0&&this.set("yaw",h);n!==void 0&&this.set("pitch",n);g!==void 0&&this.set("rotationX",g);k!==void 0&&this.set("rotationY",k);e!==void 0&&this.set("roll",e);b!==void 0&&this.set("hfov",b);c!==void 0&&this.set("vfov", c);this.set("opacity",d!==void 0?d:1);f!==void 0&&this.set("timestamp",f)})});define("tdv/player/script/PanoramaPoint",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PanoramaPoint",m,function(h,n){m.call(this);this.set("yaw",h);this.set("pitch",n)})}); define("tdv/player/script/PopupPanoramaOverlayPlaybackPosition",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PopupPanoramaOverlayPlaybackPosition",m,function(h,n,g,k,e,b,c){m.call(this);h!==void 0&&this.set("yaw",h);n!==void 0&&this.set("pitch",n);g!==void 0&&this.set("rotationX",g);k!==void 0&&this.set("rotationY",k);e!==void 0&&this.set("rotationZ",e);b!==void 0&&this.set("hfov",b);c!== void 0&&this.set("timestamp",c)})}); define("tdv/player/script/helper/PlaybackPositionHelper","require tdv/binding/Bindable tdv/player/script/QuadPanoramaOverlayPlaybackPosition tdv/player/script/FlatPanoramaOverlayPlaybackPosition tdv/player/script/PanoramaOverlayPlaybackPosition tdv/player/script/PanoramaPoint tdv/player/script/PopupPanoramaOverlayPlaybackPosition".split(" "),function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/script/QuadPanoramaOverlayPlaybackPosition"),n=a("tdv/player/script/FlatPanoramaOverlayPlaybackPosition"),g= a("tdv/player/script/PanoramaOverlayPlaybackPosition"),k=a("tdv/player/script/PanoramaPoint"),e=a("tdv/player/script/PopupPanoramaOverlayPlaybackPosition");return{qfb:function(b){return this.v1(b,this.S0a)},Hoa:function(b){return this.v1(b,this.v6a)},Sfb:function(b){return this.v1(b,this.C6a)},Ioa:function(b){return this.v1(b,this.M6a)},S0a:function(b){return new n(m.prototype.get.call(b,"yaw",0),m.prototype.get.call(b,"pitch",0),m.prototype.get.call(b,"roll",0),m.prototype.get.call(b,"opacity",1), 0)},M6a:function(b){var c=m.prototype.get.call(b,"vertices",[null,null,null,null]);return new h([c[0]||new k(0,0),c[1]||new k(0,0),c[2]||new k(0,0),c[3]||new k(0,0)],m.prototype.get.call(b,"opacity",1),0)},v6a:function(b){function c(d,f){return m.prototype.get.call(b,d,f)}return new g(c("yaw",0),c("pitch",0),c("rotationX",0),c("rotationY",0),c("roll",0),c("hfov",c("vfov")===void 0?45:void 0),c("vfov"),c("opacity",1),0)},C6a:function(b){function c(d,f){return m.prototype.get.call(b,d,f)}return new e(c("yaw", 0),c("pitch",0),c("rotationX",0),c("rotationY",0),c("rotationZ",0),c("hfov",45),0)},v1:function(b,c){var d=m.prototype.get.call(b,"playbackPositions")||[];return d.length>0?d.slice().sort(function(f,l){return f.get("timestamp")-l.get("timestamp")||d.indexOf(f)-d.indexOf(l)}):[c(b)]}}}); define("tdv/player/script/FlatHotspotPanoramaOverlayImageBase",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("FlatHotspotPanoramaOverlayImageBase",m,function(){m.call(this);this.Gd=void 0});a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd=== void 0&&(this.Gd=g.qfb(this)),this.Gd}return m.prototype.get.call(this,k,e)};a.prototype.set=function(k,e){var b=!1;switch(k){case "opacity":case "distance":case "pitch":case "roll":case "yaw":case "playbackPositions":this.Gd=void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};return a}); define("tdv/player/script/FlatHotspotPanoramaOverlayImage",["require","tdv/player/parser/ClassInfo","tdv/player/script/FlatHotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/FlatHotspotPanoramaOverlayImageBase");return m.define("FlatHotspotPanoramaOverlayImage",h,function(){h.call(this)})}); define("tdv/player/script/FlatHotspotPanoramaOverlayMap",["require","tdv/player/parser/ClassInfo","tdv/player/script/FlatHotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/FlatHotspotPanoramaOverlayImageBase");return m.define("FlatHotspotPanoramaOverlayMap",h,function(){h.call(this)})}); define("tdv/player/script/FlyOverModel3DCamera",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DCamera"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DCamera");return m.define("FlyOverModel3DCamera",h,function(){h.call(this)})}); define("tdv/player/script/FramePanoramaOverlay",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("FramePanoramaOverlay",m,function(){m.call(this);this.Gd=void 0});a.prototype.set=function(k,e){var b=!1;switch(k){case "hfov":case "pitch":case "rotationX":case "rotationY":case "roll":case "vfov":case "yaw":case "playbackPositions":this.Gd= void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd===void 0&&(this.Gd=g.Hoa(this)),this.Gd}return m.prototype.get.call(this,k,e)};return a}); define("tdv/player/script/Model3DResource",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("Model3DResource",m,function(){m.call(this)});a.prototype.get=function(h,n){switch(h){case "levels":n=[this];break;case "url":for(var g=m.prototype.get.call(this,h),k=this.get("levels"),e=0;k&&e3&&this.QC()}.bind(this);this.sB.send()};l.prototype.xwa=function(){this.sB&&(this.sB.abort(),this.sB=null)};l.prototype.stop=function(){this.status==l.D_&&(this.status=l.hca,this.xwa(),this.pq&&this.pq.cancel())};l.prototype.QC=function(){this.sB=null;this.pq&&(this.pq.loaded(),this.pq=null);this.status=l.cWa;this.o(new n(k.ia))};l.hca="not loaded";l.D_="loading";l.cWa="loaded";h.prototype.Ybb=function(p){p.forEach(function(q){this.items.indexOf(q)< 0&&(this.items.push(q),q.IP(this.priority),q.Kpa(1))}.bind(this))};h.prototype.Ejb=function(p){var q=this.items;this.items=[];q.forEach(function(r){p.indexOf(r)<0?this.items.push(r):(r.IP(-this.priority),r.Kpa(-1))}.bind(this))};h.prototype.wjb=function(){this.items.forEach(function(p){p.IP(-this.priority);p.Kpa(-1)}.bind(this));this.items=[];this.priority=0};h.prototype.IP=function(p){this.priority+=p;this.items.forEach(function(q){q.IP(p)})};m.ni=[];m.XDa=[];m.c1a=0;m.gIa=function(p,q){this.x4(p).Ybb(q.map(function(r){return this.Ja(r)}.bind(this))); this.m5();this.za()};m.Njb=function(p,q){this.x4(p).Ejb(q.map(function(r){return this.Ja(r)}.bind(this)));this.m5();this.za()};m.xjb=function(p){this.x4(p).wjb();this.m5();this.za()};m.X8=function(p,q){this.x4(p).IP(q);this.m5();this.za()};m.m5=function(){this.ni.sort(function(p,q){return q.priority-p.priority})};m.za=function(p){if(this.enabled()&&(p||!this.Vv))if(p){this.Vv&&clearTimeout(this.Vv);this.Vv=null;p=this.W1a();var q=this.X1a();f.difference(p,q).forEach(function(r){r.stop()});f.difference(q, p).forEach(function(r){r.start()})}else this.Vv=setTimeout(function(){this.Vv=null;this.za(!0)}.bind(this),1E3)};m.Vv=null;m.W1a=function(){return this.ni.filter(function(p){return p.status==l.D_})};m.X1a=function(){for(var p=this.Y1a(),q=[],r=0;r0&&(t.status==l.hca||t.status==l.D_)&&q.push(t)}return q};m.Y1a=function(){return this.c1a>0?0:5};m.x4=function(p){var q=this.XDa.find(function(r){return r.Eqa==p});q||(q=new h(p),this.XDa.push(q)); return q};m.Ja=function(p){var q=this.ni.find(function(r){return r.url==p});q||(q=new l(p),q.bind(k.ia,this.za,this),this.ni.push(q));return q};m.enabled=function(p){if(p===void 0)return m.V_a||m.W_a?!1:m.bfa!==void 0?m.bfa:m.ha;m.ha=p};m.ha=!0;m.Cra=function(p){m.bfa=p.get(TDV.PlayerSettings.BACKGROUND_PRELOAD_ENABLED)};m.bfa=void 0;m.W_a=b.Tg("disable-background-preload",!1);m.V_a=!1;return m}); define("tdv/player/script/Media","require exports tdv/utils tdv/binding/Bindable tdv/player/parser/ClassInfo tdv/player/view/util/Preloader".split(" "),function(a,m,h,n,g,k){a=function(e){function b(){var c=e.call(this)||this;c.cma=h.nr(c.cma,c);return c}P(b,e);b.prototype.cma=function(){k.gIa(this,this.tw())};b.prototype.tw=function(){return[]};b.prototype.Jjb=function(){k.xjb(this)};b.prototype.set=function(c,d){e.prototype.set.call(this,c,d);this.cma()};return b}(n);g.create("Media",a);return a}); define("tdv/player/script/Panorama",["require","tdv/player/parser/ClassInfo","tdv/player/script/Media"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Media");a=m.define("Panorama",h,function(){h.call(this);this.n2=this.PN=void 0;this.set("minFaceSize",void 0)});a.prototype.get=function(n,g){switch(n){case "overlays":return this.Zfa();case "frames":return this.Oya();case "partial":if(this.get("hfov")<359.9)return!0}return h.prototype.get.call(this,n,g)};a.prototype.set= function(n,g){switch(n){case "cardboardMenu":this.set("vrMenu",g)}h.prototype.set.call(this,n,g)};a.prototype.Zfa=function(){var n=h.prototype.get.call(this,"overlays");n||(n=[]);return this.Mka(n)};a.prototype.Mka=function(n){if(this.PN===void 0||this.n2!=n){var g=function(e){return m.Oa("PopupPanoramaOverlay",e)},k=function(e){return m.Oa("LensFlarePanoramaOverlay",e)};this.n2=n;this.PN=[].concat(n.filter(function(e){return!(g(e)||k(e))}),n.filter(k),n.filter(g))}return this.PN};a.prototype.wMa= function(){return this.get("overlays").filter(function(n){return m.Oa("TripodCapPanoramaOverlay",n)}).length>0};a.prototype.mMa=function(){return this.get("overlays").filter(function(n){return m.Oa("CeilingCapPanoramaOverlay",n)}).length>0};a.prototype.RMa=function(){if(!this.bpa())return!1;var n=this.get("pitch",0),g=this.get("vfov",180);if(g>=179.9)return!0;var k=this.mMa()?90:n+g*.5;n=this.wMa()?-90:n-g*.5;return k-n>=179.9?!0:!1};a.prototype.bpa=function(){return this.get("hfov")>=359.9&&!this.get("partial")}; a.prototype.Mn=function(){var n=this.Oya();return n.length>0&&n[0].Mn()};a.prototype.pX=function(){return 0};a.prototype.Oya=function(){var n=h.prototype.get.call(this,"frames",[]);n.forEach(function(g){g.pcb(this)}.bind(this));return n};return a}); define("tdv/player/script/HDRPanorama",["require","tdv/player/parser/ClassInfo","tdv/player/script/Panorama"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Panorama");a=m.define("HDRPanorama",h,function(){h.call(this)});a.prototype.pX=function(){var n=this.get("frames")||[];return Math.floor((n.length-1)/2)};return a}); define("tdv/player/script/HorizonGridModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("HorizonGridModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/HotspotMapOverlayArea",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("HotspotMapOverlayArea",m,function(){m.call(this)})}); define("tdv/player/script/ImageResourceLevel",["require","exports","tdv/player/parser/ClassInfo","tdv/binding/Bindable"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);k.prototype.get=function(e,b){switch(e){case "tags":return(e=n.prototype.get.call(this,e))||(e=[]),Array.isArray(e)||(e=[e]),e.indexOf(k.Ku)<0&&n.prototype.get.call(this,"grayscale")&&(e=e.concat([k.Ku])),e}return n.prototype.get.call(this,e,b)};k.prototype.vMa=function(e){return this.get("tags").indexOf(e)>= 0};k.Ku="preload";k.E_="mobile";k.Eua="ipadpro";k.F_="mobilevr";k.mca="mobilevr2gen";k.nca="ondemand";return k}(n);h.create("ImageResourceLevel",a);return a}); define("tdv/player/script/helper/LevelUtil",["require","tdv/player/script/ImageResourceLevel","tdv/player/view/util/Device","tdv/player/view/util/URL"],function(a){var m=a("tdv/player/script/ImageResourceLevel"),h=a("tdv/player/view/util/Device"),n=a("tdv/player/view/util/URL");return{Ft:function(g){return this.zk(g,"load")},xJ:function(g){return this.zk(g,"preload")},pP:function(g){return this.Ft(g)!=this.xJ(g)},zk:function(g,k){g=g.get("levels")||[];var e=this.l1a(g);e=this.t2a(k,e);g=this.M0a(g, k);(k=this.Xya(g,e[0],e[1],this.s2a(k)))||(k=this.Xya(g,e[0],e[1],void 0));return k},M0a:function(g,k){k=="preload"?g=this.gS(g,m.Ku):k=="load"&&(g=this.L0a(g,m.Ku));h.DA()&&(g=this.gS(g,m.Eua));if(h.D8()||h.E8())g=this.gS(g,m.mca);h.kf()&&(g=this.gS(g,m.F_));h.ub()&&(g=this.gS(g,m.E_));return g},l1a:function(g){if(g.length==0)return 1;g.sort(function(k,e){return e.get("width")-k.get("width")});return g[0].get("width")/g[0].get("height")},t2a:function(g,k){if(g=="preload")return[0,0];g=1E4;this.W0a()|| (h.kf()?g=2048:h.DA()?g=2048:h.ub()&&(g=2048));return k<1?[g*k,g]:[g,g/k]},s2a:function(g){if(g=="load")return!1},W0a:function(){return h.DA()&&n.Tg("recent_ipad_use_max_res",!1)},gS:function(g,k){var e=g.filter(function(b){return b.vMa(k)});e.length==0&&(e=g);return e},L0a:function(g,k){var e=g.filter(function(b){return!b.vMa(k)});e.length==0&&(e=g);return e},Xya:function(g,k,e,b){function c(d){return Math.abs(d.get("width")*d.get("height")-k*e)}g=g.filter(function(d){return b!==void 0&&b!=d.get("grayscale", !1)?!1:!0});if(g.length==0)return null;g.sort(function(d,f){return c(d)-c(f)});return g[0]}}}); define("tdv/player/script/HotspotMapOverlayImageBase",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo","tdv/player/script/helper/LevelUtil"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/script/helper/LevelUtil");a=h.define("HotspotMapOverlayImageBase",m,function(){m.call(this)});a.prototype.Ft=function(){return this.get("image")?n.Ft(this.get("image")):null};a.prototype.xJ=function(){return this.get("image")?n.xJ(this.get("image")): null};return a});define("tdv/view/events/ProgressEvent",["require","tdv/utils","tdv/events/Event"],function(a){var m=a("tdv/utils"),h=a("tdv/events/Event");return m.extend(h,function(n,g){h.call(this,n);this.percent=g})}); define("tdv/player/view/image/Item",["require","tdv/utils","tdv/binding/Bindable","tdv/constants/EventName","tdv/view/events/ProgressEvent"],function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable"),n=a("tdv/constants/EventName"),g=a("tdv/view/events/ProgressEvent");a=m.extend(h,function(){h.call(this);this.jW=[];this.Sg=void 0;this.I="initial"});a.prototype.eE=function(){return this.jW};a.prototype.iQ=function(k){this.jW!=k&&(this.jW=k,this.QC=this.Sg=void 0)};a.prototype.blb=function(k){this.Sg!== k&&(this.I="loading",this.Sg=k,this.o(new g(n.xc,this.Sg)))};a.prototype.dZ=function(){this.I!=="loaded"&&(this.I="loaded",this.o(n.ia))};a.prototype.Akb=function(){this.I!=="loaded"&&(this.I="error",this.o(n.$c))};return a}); define("tdv/player/view/map/renderer/item/Item",["require","tdv/utils","tdv/player/view/image/Item"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/image/Item");a=m.extend(h,function(n){h.call(this);this.Qf=n;this.C=void 0});a.prototype.getType=function(){return this.Qf};a.prototype.Kgb=function(n){return this.C!==void 0&&this.C===n.C};a.Nua="map";a.Oua="overlay";return a}); define("tdv/player/view/map/renderer/item/Overlay",["require","tdv/utils","tdv/player/view/map/renderer/item/Item"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/item/Item");a=m.extend(h,function(n,g,k){h.call(this,h.Oua);this.j6a=n;this.ec=g;this.fc=k});a.prototype.getX=function(){return this.ec};a.prototype.getY=function(){return this.fc};a.Mua="image";a.Lua="fov";return a}); define("tdv/player/view/map/renderer/item/ImageOverlay",["require","tdv/utils","tdv/player/view/map/renderer/item/Overlay"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/item/Overlay");a=m.extend(h,function(n,g,k,e,b,c,d,f,l,p,q,r){h.call(this,h.Mua,k,e);this.C=n;this.Se=g;this.sEa=b;this.aia=c;this.bia=d;this.Pa=f;this.Ha=l;this.ti=p;this.GC=q;this.JD=r;this.jW=[g]});a.prototype.rl=function(){return this.Se};a.prototype.CLa=function(){return this.aia};a.prototype.DLa=function(){return this.bia}; a.prototype.hg=function(){return this.Pa};a.prototype.xg=function(){return this.Ha};a.prototype.kP=function(){return this.GC};a.prototype.mP=function(){return this.JD};return a}); define("tdv/player/script/HotspotMapOverlayImage",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotMapOverlayImageBase","tdv/player/script/helper/LevelUtil","tdv/player/view/map/renderer/item/ImageOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotMapOverlayImageBase"),n=a("tdv/player/script/helper/LevelUtil"),g=a("tdv/player/view/map/renderer/item/ImageOverlay");a=m.define("HotspotMapOverlayImage",h,function(){h.call(this);this.Wy=void 0}); a.prototype.getItem=function(){return this.cr()};a.prototype.cr=function(){this.Wy===void 0&&(this.Wy=this.c7());return this.Wy};a.prototype.c7=function(k){var e=this.get("image");return e?(e=n.Ft(e),new g(this,e.get("url"),this.get("x"),this.get("y"),k,this.get("offsetX"),this.get("offsetY"),this.get("width"),this.get("height"),this.get("scaleMode"),this.get("horizontalAlign"),this.get("verticalAlign"))):null};return a}); define("tdv/player/script/HotspotMapOverlayMap",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotMapOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotMapOverlayImageBase");return m.define("HotspotMapOverlayMap",h,function(){h.call(this)})}); define("tdv/player/script/HotspotPanoramaOverlayImageBase",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("HotspotPanoramaOverlayImageBase",m,function(){m.call(this);this.Gd=void 0});a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd=== void 0&&(this.Gd=g.Hoa(this)),this.Gd}return m.prototype.get.call(this,k,e)};a.prototype.set=function(k,e){var b=!1;switch(k){case "distance":case "hfov":case "vfov":case "pitch":case "rotationX":case "rotationY":case "roll":case "yaw":case "opacity":case "playbackPositions":this.Gd=void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};return a}); define("tdv/player/script/HotspotPanoramaOverlayImage",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlayImageBase");return m.define("HotspotPanoramaOverlayImage",h,function(){h.call(this)})}); define("tdv/player/script/HotspotPanoramaOverlayMap",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlayImageBase");return m.define("HotspotPanoramaOverlayMap",h,function(){h.call(this)})}); define("tdv/view/html/HTMLParser",["require"],function(){function a(f){var l={};f=f.split(",");for(var p=0;p\s]+))?)*)\s*(\/?)>/,h=/^<\/([-A-Za-z0-9_]+:?[-A-Za-z0-9_]*)[^>]*>/,n=/([-A-Za-z0-9_]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g,g=a("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"),k=a("address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul"), e=a("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"),b=a("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"),c=a("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),d=a("script,style");return function(f,l){function p(w,x,y,z){x=x.toLowerCase();if(k[x])for(;r.kE()&&e[r.kE()];)q("",r.kE());b[x]&&r.kE()== x&&q("",x);(z=g[x]||!!z)||r.push(x);if(l.start){var A=[];y.replace(n,function(D,F){var C=arguments[2]?arguments[2]:arguments[3]?arguments[3]:arguments[4]?arguments[4]:c[F]?F:"";A.push({name:F,value:C,aoa:C.replace(/(^|[^\\])"/g,'$1\\"')})});l.start&&l.start(x,A,z)}}function q(w,x){if(x)for(x=x.toLowerCase(),w=r.length-1;w>=0&&r[w]!=x;w--);else w=0;if(w>=0){for(x=r.length-1;x>=w;x--)l.end&&l.end(r[x]);r.length=w}}var r=[],t=f;for(r.kE=function(){return this[this.length-1]};f;){var u=!0;if(r.kE()&& d[r.kE()])f=f.replace(new RegExp("(.*?)]*>"),function(w,x){x=x.replace(/\x3c!--(.*?)--\x3e/g,"$1").replace(/=0&&(l.ldb&&l.ldb(f.substring(4,v)),f=f.substring(v+3),u=!1)}else if(f.indexOf("= 0?k.DO()==k.HQ?this.s3a(c):this.r3a(c):this.q3a(c)};b.prototype.q3a=function(c){this.Nc.innerHTML=c;this.nGa()};b.prototype.s3a=function(c){this.Nc.textContent="";var d=this.Nc,f=null,l=[],p=null;new e(c,{start:function(q,r,t){if(q=="script"){t=void 0;for(var u=0;u",q.push(F),r=void 0)}},JW:function(y){u?u.content+=y:v+=y},end:function(y){y=="script"?(t.push(u),u=null):(r=q[q.length-1],q.pop())}});this.Nc.innerHTML=v;this.Nc.classList.add(p);for(c=0;c0){this.tC=this.aV[0];this.aV.splice(0,1);var c=this.tC.src;if(c){var d=this;b.j4a(c,function(){d.nAa()},function(){d.q4a()})}else{var f=this.tC.parent;c=this.tC.previousSibling;var l=c?c.nextSibling:f.firstChild;c=document.write;document.write=l?function(p){f.insertBefore(document.createTextNode(p),l)}: function(p){f.append(document.createTextNode(p))};m.ngb(this.tC.content);document.write=c;this.nAa()}}else this.nGa()};b.prototype.q4a=function(){this.tC=null;this.u2()};b.prototype.nAa=function(){this.tC=null;this.u2()};b.prototype.nGa=function(){this.o(new n(h.Ub))};b.lAa={};b.j4a=function(c,d,f){b.lAa[c]?d.call(window):m.Beb(c,()=>{b.lAa[c]=!0;d.call(window)},f)};return b}); define("tdv/view/timer/Timer",["require","exports","tdv/constants/EventName","tdv/events/Event","tdv/events/EventDispatcher"],function(a,m,h,n,g){return function(k){function e(b,c){var d=k.call(this)||this;d.B3a=b;d.ha=c;d.tk=null;return d}P(e,k);e.prototype.bind=function(b,c,d,f){b=k.prototype.bind.call(this,b,c,d,f);this.fW();return b};e.prototype.h=function(b,c,d){b=k.prototype.h.call(this,b,c,d);this.fW();return b};e.prototype.start=function(){this.ha=!0;this.fW()};e.prototype.stop=function(){this.ha= !1;this.fW()};e.prototype.nU=function(){this.o(new n(h.De))};e.prototype.fW=function(){if(this.ha&&this.f8(h.De)){if(this.tk==null){var b=this;this.tk=window.setTimeout(function(){b.tk=null;b.nU();b.fW()},this.B3a)}}else this.tk!=null&&(clearTimeout(this.tk),this.tk=null)};return e}(g)}); define("tdv/view/core/visualprops/HTMLVisualProperties",["require","exports","tdv/view/core/visualprops/UIBaseVisualProperties"],function(a,m,h){return function(n){function g(){var k=n!==null&&n.apply(this,arguments)||this;k.td=null;return k}P(g,n);return g}(h)}); define("tdv/view/html/HTML","require exports tdv/utils tdv/constants/EventName tdv/player/parser/helper/AppResizeUpdater tdv/player/view/util/Color tdv/view/constants/Alignment tdv/view/core/UIComponent tdv/view/html/HTMLFragment tdv/view/util/Font tdv/view/timer/Timer tdv/view/core/visualprops/HTMLVisualProperties".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l){var p=/[^\d]((\d*\.)?\d+)\s*(vmin|vmax|vw|vh)/i;return function(q){function r(){var t=q.call(this)||this;t.gf("HTML");t.FG=r.L_;t.O2=0;t.N2= 0;t.tFa=(new Date).getTime();t.u.td=null;t.yL=t.yL.bind(t);t.Zca=[];return t}P(r,q);r.prototype.wa=function(){return q.prototype.wa.call(this)};r.prototype.Pb=function(){q.prototype.Pb.call(this);this.m("content");this.m("horizontalAlign",e.fb);this.m("verticalAlign",e.$d);this.m("fontFamily");this.m("fontSize");this.m("fontColor");this.m("fontWeight");this.m("fontStyle");this.m("textAlign");this.m("textDecoration");this.m("textShadowBlurRadius",3);this.m("textShadowColor","#000000");this.m("textShadowHorizontalLength", 0);this.m("textShadowOpacity",0);this.m("textShadowVerticalLength",0)};r.prototype.VL=function(){return new l};r.prototype.co=function(t,u,v,w){this.Gb&&g.get(this.Gb).zjb(this.yL);q.prototype.co.call(this,t,u,v,w);this.Gb&&(g.get(this.Gb).Mbb(this.yL),g.get(this.Gb).GO(this.yL))};r.prototype.Kb=function(){q.prototype.Kb.call(this);this.u.td||(this.u.td=document.createElement("div"),this.u.td.style.display="inline",this.u.td.style.boxSizing="border-box",this.JN(!1),this.zza=new c(this.u.td),this.pu(), this.zza.bind(n.Ub,this.e3a,this,!0),this.bind(n.Rb,this.Aza,this,!0))};r.prototype.jb=function(){var t=this,u=!1;this.S("visible")&&(u=!0);this.S("content")&&(u=this.G("content"),this.zza.khb(u),this.$("content"),u=!0);if(this.S("width")||this.S("height"))u=!0;this.S("fontFamily")&&(u=this.G("fontFamily"),h.EA(u)||(u=""),this.u.td.style.fontFamily=d.qA(u),this.$("fontFamily"),u=!0);this.S("fontSize")&&(u=this.G("fontSize"),h.ZMa(u)?u+="px":h.EA(u)||(u=""),this.u.td.style.fontSize=u,this.$("fontSize"), u=!0);this.S("fontColor")&&(u=this.G("fontColor"),h.EA(u)||(u=""),this.u.td.style.color=u,this.$("fontColor"),u=!0);if(this.S("fontWeight")){u=this.G("fontWeight");switch(u){case "bold":case "bolder":case "lighter":case "100":case "200":case "300":case "400":case "500":case "600":case "700":case "800":case "900":case "normal":break;default:u="normal"}this.u.td.style.fontWeight=u;this.$("fontWeight");u=!0}if(this.S("fontStyle")){u=this.G("fontStyle");switch(u){case "italic":case "normal":break;default:u= "normal"}this.u.td.style.fontStyle=u;this.$("fontStyle");u=!0}if(this.S("textDecoration")){u=this.G("textDecoration");switch(u){case "underline":case "overline":case "line-through":case "none":break;default:u="none"}this.u.td.style.textDecoration=u;this.$("textDecoration");u=!0}if(this.S("textAlign")){u=this.G("textAlign");switch(u){case "left":case "right":case "center":case "justify":break;default:u=""}this.u.td.style.textAlign=u;this.$("textAlign");u=!0}var v=["textShadowColor","textShadowHorizontalLength", "textShadowVerticalLength","textShadowBlurRadius","textShadowOpacity"];if(v.some(function(x){return t.S(x)})){var w={};v.forEach(function(x){w[x]=t.G(x);t.$(x)});this.u.td.style.textShadow=[w.textShadowHorizontalLength+"px",w.textShadowVerticalLength+"px",w.textShadowBlurRadius+"px",k.gF(w.textShadowColor,w.textShadowOpacity)].join(" ")}["paddingTop","paddingRight","paddingBottom","paddingLeft"].some(function(x){return t.S(x)})&&(u=!0);q.prototype.jb.call(this);u&&this.OAa()};r.prototype.OAa=function(){this.Aza(); this.lc();this.G("visible")&&this.G("content")?this.dV(r.uca):this.dV(r.L_)};r.prototype.Zy=function(){q.prototype.Zy.call(this);this.O2=this.wa().toa();this.N2=this.wa().soa();this.fn=this.O2+this.u.Dd+this.u.Ce;this.dn=this.N2+this.u.ie+this.u.Ef};r.prototype.aFa=function(t){this.Zya()!=t&&(this.u.td.style.paddingLeft=t+"px",this.lc())};r.prototype.Zya=function(){return parseInt(this.u.td.style.paddingLeft)||0};r.prototype.cFa=function(t){this.aza()!=t&&(this.u.td.style.paddingTop=t+"px",this.lc())}; r.prototype.aza=function(){return parseInt(this.u.td.style.paddingTop)||0};r.prototype.bFa=function(t){this.$ya()!=t&&(this.u.td.style.paddingRight=t+"px",this.lc())};r.prototype.$ya=function(){return parseInt(this.u.td.style.paddingRight)||0};r.prototype.$Ea=function(t){this.Yya()!=t&&(this.u.td.style.paddingBottom=t+"px",this.lc())};r.prototype.Yya=function(){return parseInt(this.u.td.style.paddingBottom)||0};r.prototype.e3a=function(){this.Zca=Array.prototype.slice.call(this.u.td.querySelectorAll("*[style]")).map(function(t){var u= {};u.wt=t;u.style=t.getAttribute("style");return u}).filter(function(t){return p.test(t.style)}).map(function(t){for(var u=t.style,v=[];;){var w=p.exec(u);if(w)v.push(function(x){return function(){return x}}(u.substr(0,w.index+1))),v.push(function(x,y){switch(y){case "vw":return function(z){return Math.round(z*x)+"px"};case "vh":return function(z,A){return Math.round(A*x)+"px"};case "vmin":return function(z,A,D){return Math.round(D*x)+"px"};case "vmax":return function(z,A,D){return Math.round(D*x)+ "px"}}}(parseFloat(w[1]),w[3].toLowerCase())),u=u.substr(w.index+w[0].length);else return v.push(function(x){return function(){return x}}(u)),t.Seb=v,t}});this.Gb&&g.get(this.Gb).GO(this.yL)};r.prototype.yL=function(t,u,v,w){this.Zca.length!=0&&(this.Zca.forEach(function(x){var y=x.Seb.map(function(z){return z(t,u,v,w)}).join("");x.wt.setAttribute("style",y)}),this.OAa())};r.prototype.Aza=function(){var t="auto",u="auto";if(!this.hga()){this.fn!=this.nb()&&this.lc();var v=this.nb()-(this.u.Dd+this.u.Ce); v>0&&(t=v+"px")}this.tza()||(this.dn!=this.Mb()&&this.lc(),v=this.Mb()-(this.u.ie+this.u.Ef),v>0&&(u=v+"px"));this.u.td.style.width=t;this.u.td.style.height=u};r.prototype.rBa=function(){var t=this.wa().toa(),u=this.wa().soa();this.O2!=t||this.N2!=u?(this.O2=t,this.N2=u,this.lc(),this.dV(r.uca)):(t=(new Date).getTime()-this.tFa,t>r.ZWa?this.dV(r.IWa):t>r.YWa&&this.dV(r.HWa))};r.prototype.t7a=function(){this.tFa=(new Date).getTime()};r.prototype.dV=function(t){this.FG==r.uca&&this.t7a();this.FG!=t&& (this.FG!=r.L_&&r.Gwa[this.FG].h(n.De,this.rBa,this),this.FG=t,this.FG!=r.L_&&r.Gwa[this.FG].bind(n.De,this.rBa,this,!0))};r.L_="stopped";r.IWa="slow";r.HWa="normal";r.uca="fast";r.ZWa=3E4;r.YWa=5E3;r.Gwa={slow:new f(2E3,!0),normal:new f(500,!0),fast:new f(100,!0)};return r}(b)});define("tdv/player/script/HTML",["require","tdv/view/html/HTML","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/html/HTML");return a("tdv/player/parser/ClassInfo").define("HTML",m,function(){m.call(this)})}); define("tdv/view/containers/AbsoluteContainer",["require","exports","tdv/view/containers/Container","tdv/view/constants/LayoutMode"],function(a,m,h,n){return function(g){function k(){return g.call(this)||this}P(k,g);k.prototype.Pb=function(){this.Jl(k.ad)};k.ad=Object.assign({},h.ad,{layout:n.TZ});return k}(h)}); define("tdv/view/text/HTMLText",["require","exports","tdv/view/constants/OverflowPolicy","tdv/view/containers/AbsoluteContainer","tdv/view/html/HTML"],function(a,m,h,n,g){return function(k){function e(){var b=k.call(this)||this;b.HC=null;b.tpb=!0;return b}P(e,k);e.prototype.Pb=function(){k.prototype.Pb.call(this);this.m("overflow",h.Wr);this.m("html")};e.prototype.Kb=function(){k.prototype.Kb.call(this);this.HC==null&&(this.HC=new g,this.HC.xa({left:0,toolTipDisabled:!0}),this.mb(this.HC))};e.prototype.jb= function(){this.S("html")&&(this.HC.set("content",this.G("html")),this.$("html"));this.Pc(["paddingLeft","paddingTop","paddingRight","paddingBottom"],{},[this.HC],!0,!0);this.Pc(["cursor"],{},[this.HC],!0,!1);k.prototype.jb.call(this);this.HC.set("width",this.hga()?void 0:"100%")};return e}(n)}); define("tdv/player/script/HTMLText",["require","tdv/view/text/HTMLText","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/text/HTMLText");return a("tdv/player/parser/ClassInfo").define("HTMLText",m,function(){m.call(this)})}); define("tdv/view/buttons/IconButton","require exports tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/view/util/URL tdv/view/buttons/ButtonGroup tdv/view/constants/Cursor tdv/view/constants/ScaleMode tdv/view/constants/State tdv/view/constants/ButtonMode tdv/view/images/Image".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l){var p=k.Bk("debug");return function(q){function r(){var t=q.call(this,3)||this;t.i3a=function(){t.K9()};t.tR=function(){t.get("pressed")?(t.set("pressed",!1),t.o(new g(n.Nm))): (t.set("pressed",!0),t.o(new g(n.Rk)))};t.gf("Button");t.set("ariaRole","button");t.set("autoRolledOver",!0);t.set("autoPressed",!0);t.set("cursor",b.qf);t.set("scaleMode",c.uj);t.Rda=document.createElement("canvas");t.Rda.width=1;t.Rda.height=1;t.Sda=t.Rda.getContext("2d");t.Sda.globalCompositeOperation="copy";t.bind(n.Eb,t.i3a,t,!1);return t}P(r,q);r.prototype.Pb=function(){q.prototype.Pb.call(this);this.m("buttonGroup");this.m("mode",f.af);this.m("pressed");this.m("iconURL");this.m("transparencyActive"); this.D("rollOverOpacity",d.ea,"opacity");this.D("rollOverIconURL",d.ea,"iconURL");this.D("pressedOpacity",d.Fb,"opacity");this.D("pressedIconURL",d.Fb,"iconURL");this.D("pressedRollOverOpacity",d.qc,"opacity");this.D("pressedRollOverIconURL",d.qc,"iconURL")};r.prototype.K9=function(t){t?q.prototype.set.call(this,"cursor",t):q.prototype.set.call(this,"cursor",this.O_a)};r.prototype.Ahb=function(t){if(!this.u.image)return!1;var u=this.Gb?this.Gb.fD:1,v=h.offset(this.u.image),w=(t.AE-v.left)/u,x=this.u.image.clientWidth; t=(t.BE-v.top)/u;u=this.u.image.clientHeight;if(w>=0&&t>=0&&w0)return!0}return!1};r.prototype.set=function(t,u){t==="cursor"&&(this.O_a=u);return q.prototype.set.call(this,t,u)};r.prototype.jb=function(){this.S("transparencyActive")&&(this.K8a(this.G("transparencyActive")),this.$("transparencyActive"));var t=!1;if(this.S("backgroundOpacity")||this.S("backgroundColor")|| this.S("backgroundBlur"))t=!0;if(this.S("iconURL")){var u=this.G("iconURL");this.set("url",u);this.$("iconURL")}u=!1;this.S("mode")&&(this.G("mode")==f.af?(this.h(n.ma,this.tR,this),this.set("autoPressed",!0)):(this.bind(n.ma,this.tR,this,!0),this.set("autoPressed",!1)),this.$("mode"),u=!0);if(u||this.S("pressed"))this.G("mode")==f.bk?this.KN(this.G("pressed")==1):u&&this.KN(!1);this.S("buttonGroup")&&((u=this.G("buttonGroup"))?e.register(this,u):e.unregister(this),this.$("buttonGroup"));q.prototype.jb.call(this); !t||this.u.pm!=0&&this.u.vk.length!=0&&this.u.dJ!=0||(this.HEa(.001),this.GEa(["#000000"]))};r.prototype.K8a=function(t){this.zM.pRa(t)};return r}(l)});define("tdv/player/script/IconButton",["require","tdv/view/buttons/IconButton","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/buttons/IconButton");return a("tdv/player/parser/ClassInfo").define("IconButton",m,function(){m.call(this)})}); define("tdv/player/script/IconHotspotMapOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotMapOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotMapOverlay");return m.define("IconHotspotMapOverlay",h,function(){h.call(this,!1)})}); define("tdv/player/script/Image",["require","tdv/view/images/Image","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/images/Image");a=a("tdv/player/parser/ClassInfo").define("Image",m,function(){m.call(this)});a.prototype.set=function(h,n){m.prototype.set.call(this,h,n)};return a}); define("tdv/player/script/ImagePlaneModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/PlaneModel3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PlaneModel3DObject");return m.define("ImagePlaneModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/InnerModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("InnerModel3DObject",h,function(){h.call(this)})});define("tdv/player/script/Label",["require","tdv/view/text/Label","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/text/Label");return a("tdv/player/parser/ClassInfo").define("Label",m,function(){m.call(this)})}); define("tdv/player/script/LensFlarePanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("LensFlarePanoramaOverlay",m,function(){m.call(this)})}); define("tdv/player/script/LineModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("LineModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/LivePanorama",["require","tdv/player/parser/ClassInfo","tdv/player/script/Panorama"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Panorama");a=m.define("LivePanorama",h,function(){h.call(this)});a.prototype.pX=function(){return this.get("initialFrameIndex",0)};return a}); define("tdv/player/script/Light",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("Light",m,function(){m.call(this)})}); define("tdv/player/view/map/renderer/item/Map",["require","tdv/utils","tdv/player/view/map/renderer/item/Item"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/item/Item");a=m.extend(h,function(n,g,k,e,b,c,d){h.call(this,h.Nua);this.C=n;this.Se=g;this.Pa=k;this.Ha=e;this.ti=b;this.T0a=c;this.xq=d.slice()});a.prototype.eE=function(){for(var n=[this.Se],g=0;g{c.h(h.Rk,this.pwa,this,!0);c.h(h.Nm,this.qwa,this,!0);c.h(h.ma,this.lwa,this,!0);c.h(h.Sa,this.nwa,this,!0);c.h(h.$a,this.owa,this,!0);c.h(h.uc,this.swa,this,!0);c.h(h.Eb,this.rwa,this,!0)});m.difference(b,this.fk).forEach(c=> {c.xa(this.hC);c.bind(h.Rk,this.pwa,this,!0);c.bind(h.Nm,this.qwa,this,!0);c.bind(h.ma,this.lwa,this,!0);c.bind(h.Sa,this.nwa,this,!0);c.bind(h.$a,this.owa,this,!0);c.bind(h.uc,this.swa,this,!0);c.bind(h.Eb,this.rwa,this,!0)},this);this.fk=b;this.BG=this.BG.filter(function(c){return this.fk.indexOf(c)>=0}.bind(this))};a.prototype.pwa=function(){this.o(new n(h.Rk))};a.prototype.qwa=function(){this.o(new n(h.Nm))};a.prototype.lwa=function(){this.o(new n(h.ma))};a.prototype.nwa=function(){this.o(new n(h.Sa))}; a.prototype.owa=function(){this.o(new n(h.$a))};a.prototype.swa=function(b){this.BG.push(b.source);this.lm()};a.prototype.rwa=function(b){this.BG=this.BG.filter(function(c){return c!=b.source});this.lm()};a.prototype.set=function(b,c){this.hC[b]=c;this.fk.forEach(function(d){d.xa(this.hC)}.bind(this));this.lm()};a.prototype.lm=function(){this.fk.forEach(function(b){b.get("state")==e.Fb&&this.BG.indexOf(b)>=0?b.set("state",e.qc):b.get("state")==e.qc&&this.BG.indexOf(b)<0&&b.set("state",e.Fb)}.bind(this))}; return a}); define("tdv/binding/BindingsHandler",["require","exports","tdv/utils","tdv/binding/ChangeWatcher"],function(a,m,h,n){var g=function(){return function(){}}();return function(){function k(){}k.ba=function(e,b,c,d){this.Dva(e,b,c,d,!1)};k.KD=function(e,b,c,d){this.Dva(e,b,c,d,!0)};k.Dva=function(e,b,c,d,f){function l(){for(var r=[],t=0;tf;)this.S_a(this.Qh.pop());for(;this.Qh.length1)return window.devicePixelRatio}q=[Math.max(document.documentElement.clientWidth,q),Math.max(document.documentElement.clientHeight,r)].sort(function(t,u){return u-t});q=[p[0]/q[0],p[1]/q[1]].sort()[0];if(q!==Infinity)return q}else if(h.Nd()==h.Eta&&h.Tb()==h.Pp)return 1;return window.devicePixelRatio};e.XKa=function(q){if(!h.ub()||h.Nd()!=h.uB||!k.enabled()||!q)return e.getPixelRatio();q=[q.clientWidth,q.clientHeight].sort(function(r,t){return t-r});return[p[0]/q[0], p[1]/q[1]].sort()[0]};var f=!1,l=[];e.I$=function(q){f=q;l.forEach(function(r){r(q)})};e.fcb=function(q){l.push(q)};e.Lhb=function(){return f};var p=[screen.width*window.devicePixelRatio,screen.height*window.devicePixelRatio].sort(function(q,r){return r-q});return e});define("tdv/player/view/panorama/renderer/3d/util/Util",["require","tdv/player/view/webgl/system/util/Util"],function(a){return a("tdv/player/view/webgl/system/util/Util")}); define("tdv/player/view/common/SceneFaderState",["require","exports"],function(){return function(){return function(){this.XD=this.bP=void 0}}()}); define("tdv/player/view/common/SceneFader",["require","exports","tdv/player/view/panorama/renderer/3d/util/Util","three.mod","tdv/constants/RenderOrder"],function(a,m,h,n,g){a=function(){function e(b,c,d,f){this.state=b;this.renderer=c;this.scene=d;this.camera=f;this.zdb()}e.prototype.dispose=function(){this.Vcb()};e.prototype.update=function(b,c){if(this.state.XD!==void 0)if(this.vp.material.opacity=1-this.state.XD,b=c.parent!=null?c:b,this.vp.parent!==b&&b.add(this.vp),c.isPerspectiveCamera){this.vp.position.z= -c.near*1.01;var d=this.renderer.getSize(new n.Vector2),f=d.height;b=this.o7.width;var l=this.o7.height;c=f/(2*Math.tan(c.fov*k/2));c=Math.max(f/c,d.width/(c*b/l));this.vp.scale.y=c;this.vp.scale.x=c*b/l}else c.isOrthographicCamera&&(this.vp.position.z=-(c.near+.1),this.renderer.getSize(new n.Vector2),this.vp.scale.y=c.top-c.bottom,this.vp.scale.x=c.right-c.left)};e.prototype.Sf=function(){return this.scene};e.prototype.zdb=function(){this.o7=this.Rcb();this.vp=this.Pdb(this.o7)};e.prototype.Rcb= function(){this.renderer.$q=!0;var b=h.TJa(this.renderer),c=this.renderer.getRenderTarget();this.renderer.setRenderTarget(b);this.renderer.render(this.scene,this.camera);this.renderer.setRenderTarget(c);this.renderer.$q=!1;return b};e.prototype.Pdb=function(b){b=new n.SpriteMaterial({map:b.texture});b.sizeAttenuation=!1;b.transparent=!0;b.visible=!0;b.opacity=1;b.depthTest=!1;b.needsUpdate=!0;b=new n.Sprite(b);b.renderOrder=g.YVa;return b};e.prototype.Vcb=function(){var b,c,d,f=this.vp.material;(b= f.map)===null||b===void 0||b.dispose();(c=f.envMap)===null||c===void 0||c.dispose();f.dispose();this.vp.geometry.dispose();this.o7.dispose();(d=this.vp.parent)===null||d===void 0||d.remove(this.vp)};return e}();var k=Math.PI/180;return a}); define("tdv/player/view/common/XRSceneFader",["require","exports","tdv/player/view/util/XR","three.mod","tdv/constants/RenderOrder"],function(a,m,h,n,g){return function(){function k(e,b,c){this.state=e;this.scene=c;this.yna()}k.prototype.dispose=function(){this.cdb()};k.prototype.update=function(){this.cP.material.opacity=Math.max(this.state.bP===void 0?0:1-this.state.bP,this.state.XD===void 0?0:this.state.XD)};k.prototype.Sf=function(){return this.scene};k.prototype.yna=function(){var e=new n.SphereGeometry(1, 32,16,0,Math.PI*2,0,Math.PI),b=new n.MeshBasicMaterial({color:0,side:n.DoubleSide,depthTest:!1,depthWrite:!1,transparent:!0});e=new n.Mesh(e,b);e.renderOrder=g.DWa;e.frustumCulled=!1;e.userData.PJ=!0;this.cP=e;h.Zq.add(this.cP)};k.prototype.cdb=function(){var e;this.cP.material.dispose();this.cP.geometry.dispose();(e=this.cP.parent)===null||e===void 0||e.remove(this.cP)};return k}()}); define("tdv/player/view/common/WebGLRendererAugmenter","require exports tdv/constants/EventName tdv/player/view/common/SceneFaderState tdv/player/view/common/SceneFader tdv/player/view/common/XRSceneFader tdv/player/view/util/XR tdv/player/view/util/Device tdv/player/view/util/Flags".split(" "),function(a,m,h,n,g,k,e,b,c){return function(){function d(f){this.Y$=this.X$=this.$$=this.aaa=this.Z$=this.baa=void 0;this.Zt=null;this.mpa=!1;this.aX=void 0;this.renderer=f;this.Tw=new n;this.lPa=this.renderer.render.bind(f); this.renderer.render=this.render.bind(this);this.nPa=this.renderer.setSize.bind(f);this.renderer.setSize=this.setSize.bind(this);this.Xib=this.renderer.clear.bind(f);this.renderer.clear=this.clear.bind(this);this.mPa=this.renderer.setRenderTarget.bind(f);this.renderer.setRenderTarget=this.setRenderTarget.bind(this);e.M.bind(h.V,this.Ta,this,!0);window.startFadeOut=this.cF.bind(this);window.setFadeOutPosition=this.QE.bind(this);window.endFadeOut=this.VD.bind(this)}d.prototype.dispose=function(){var f; e.M.h(h.V,this.Ta,this);(f=this.Zt)===null||f===void 0||f.dispose()};d.prototype.setSize=function(f,l,p){p===void 0&&(p=!0);!this.renderer.$q&&this.oj()?(this.baa=f,this.Z$=l,this.aaa=p):this.nPa(f,l,p)};d.prototype.setRenderTarget=function(f,l,p){l===void 0&&(l=0);p===void 0&&(p=0);this.oj()&&!this.Phb(f)?(this.$$=f,this.X$=l,this.Y$=p):this.mPa(f,l,p)};d.prototype.Phb=function(f){return this.mpa||this.renderer.$q||f.isXRRenderTarget||f.textures&&f.textures.length>0&&f.textures[0].name&&f.textures[0].name.includes("PMREM")? !0:!1};d.prototype.render=function(f,l){var p;if(f.isScene){if(!this.renderer.$q){if(this.Zt&&this.Zt.Sf()===f&&f!==this.M8)return;e.wra(this.renderer,f,l,this.Xsa);if(this.oj()||this.renderer.getRenderTarget()===null||(l===null||l===void 0?0:l.isPerspectiveCamera)&&((p=this.renderer.getRenderTarget())===null||p===void 0?0:p.fNa))this.M8=f,this.lNa=l,this.Zt&&this.Zt.update(f,l)}if(this.Ieb(f,l))return}this.mpa=!0;try{this.lPa(f,l)}catch(q){c.vu&&console.error("render error:",q)}this.mpa=!1};d.prototype.clear= function(f,l,p){this.Xib(f,l,p)};d.prototype.Ta=function(){this.oj()||(this.baa!==void 0&&this.Z$!==void 0&&this.aaa!==void 0&&(this.nPa(this.baa,this.Z$,this.aaa),this.aaa=this.Z$=this.baa=void 0),this.$$!==void 0&&this.X$!==void 0&&this.Y$!==void 0&&(this.mPa(this.$$,this.X$,this.Y$),this.Y$=this.X$=this.$$=void 0))};d.prototype.oj=function(){return e.isPresenting&&e.Uf===this.renderer};d.prototype.cF=function(){this.Tw.XD=0;this.IZ()};d.prototype.QE=function(f){this.Tw.XD=f};d.prototype.VD=function(){this.Tw.XD= void 0;this.IZ()};d.prototype.zK=function(){this.Tw.bP=0;this.IZ()};d.prototype.nK=function(f){this.Tw.bP=f;this.IZ()};d.prototype.oJ=function(){this.Tw.bP=void 0;this.IZ()};d.prototype.Ieb=function(f,l){if(!e.isPresenting||this.aX===0)return!1;if(this.aX===void 0){if(b.Dc()!=b.tu&&b.Dc()!=b.yB)return this.aX=0,!1;this.aX=20}this.aX--;var p=l.near,q=l.far;l.near=Math.min(p,.1);l.far=Math.max(q,1E3);this.lPa(f,l);l.near=p;l.far=q;return!0};d.prototype.IZ=function(){var f=this.M8&&(e.isPresenting&& this.Tw.bP!==void 0||this.Tw.XD!==void 0);f!==!!this.Zt&&(f?this.oj()?this.Zt=new k(this.Tw,this.renderer,this.M8,this.lNa):this.Zt=new g(this.Tw,this.renderer,this.M8,this.lNa):this.Zt&&(this.Zt.dispose(),this.Zt=null))};return d}()}); define("tdv/player/view/common/RenderersContainer","require exports tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/Util tdv/player/view/util/Flags tdv/player/view/util/XR tdv/player/view/common/WebGLRendererAugmenter three.mod tdv/view/util/Fullscreen".split(" "),function(a,m,h,n,g,k,e,b,c){function d(f,l){return f.Loa!==l.Loa?f.Loa-l.Loa:f.renderOrder!==l.renderOrder?f.renderOrder-l.renderOrder:f.object.Aw||l.object.Aw?(f.object.Aw?-1:1)-(l.object.Aw?-1:1):f.z!==l.z?l.z-f.z:f.id- l.id}return function(){function f(l){this.vW=!0;this.qr=this.renderer=null;this.Lqa=void 0;this.Hk=0;this.vW=l;this.container=document.createElement("div")}f.prototype.dispose=function(){this.ya()};f.prototype.y6=function(){this.Hk++};f.prototype.Jgb=function(){return this.Hk>0};f.prototype.b$=function(){this.Hk--;this.Hk===0&&this.ya()};f.prototype.cc=function(){return this.container};f.prototype.xMa=function(){return!!this.renderer};f.prototype.sl=function(){this.PRa();return this.renderer};f.prototype.afb= function(){this.Slb();return this.TD};f.prototype.bfb=function(){this.Tlb();return this.tt};f.prototype.qmb=function(){this.E$(f.vua)};f.prototype.pmb=function(){this.E$(f.VVa)};f.prototype.vmb=function(){this.E$(f.WVa)};f.prototype.smb=function(){this.E$(f.wua)};f.prototype.cF=function(){var l;(l=this.qr)===null||l===void 0||l.cF()};f.prototype.QE=function(l){var p;(p=this.qr)===null||p===void 0||p.QE(l)};f.prototype.VD=function(){var l;(l=this.qr)===null||l===void 0||l.VD()};f.prototype.zK=function(){var l; this.PRa();(l=this.qr)===null||l===void 0||l.zK()};f.prototype.nK=function(l){var p;(p=this.qr)===null||p===void 0||p.nK(l)};f.prototype.oJ=function(){var l;(l=this.qr)===null||l===void 0||l.oJ()};f.prototype.Slb=function(){this.TD||(this.TD=new b.CSS3DRenderer,this.TD.domElement.style.position="absolute",this.TD.domElement.style.zIndex="0",this.container.prepend(this.TD.domElement))};f.prototype.PRa=function(){if(!this.renderer){var l={alpha:!0};g.SUa&&(l.precision="lowp");f.qna.length>0?(l.context= f.qna.pop(),l.canvas=l.context.canvas):(l.canvas=document.createElement("canvas"),l.context=n.Ydb(l.canvas));this.renderer=new b.WebGLRenderer(l);this.qr=new e(this.renderer);this.renderer.setAnimationLoop(null);this.renderer.setPixelRatio(n.getPixelRatio());this.renderer.debug.checkShaderErrors=g.vu;this.renderer.domElement.style.position="absolute";this.renderer.domElement.style.zIndex="1";this.renderer.domElement.style.pointerEvents="none";this.renderer.outputColorSpace=b.SRGBColorSpace;this.renderer.shadowMap.type= b.PCFShadowMap;this.renderer.setTransparentSort(d);this.tt?this.container.insertBefore(this.renderer.domElement,this.tt.domElement):this.container.appendChild(this.renderer.domElement);this.zTa();k.dcb(this.renderer);c.M.bind(h.V,this.xOa,this,!0)}};f.prototype.xOa=function(){setTimeout(function(){this.renderer&&this.renderer.setPixelRatio(n.XKa(this.renderer.domElement))}.bind(this),100)};f.prototype.E$=function(l){this.Lqa!==l&&(this.Lqa=l,this.zTa())};f.prototype.zTa=function(){if(this.renderer)switch(this.Lqa){case f.vua:this.renderer.setClearColor(0, 1);this.renderer.autoClear=!1;this.renderer.shadowMap.enabled=!1;this.renderer.localClippingEnabled=!1;this.qr.Xsa=k.XQ.bca;break;case f.wua:this.renderer.setClearColor(0,0);this.renderer.autoClear=!1;this.renderer.shadowMap.enabled=!0;this.renderer.localClippingEnabled=!0;this.qr.Xsa=k.XQ.Tba;break;default:this.renderer.setClearColor(0,0),this.renderer.autoClear=!1,this.renderer.shadowMap.enabled=!0,this.renderer.localClippingEnabled=!1,this.qr.Xsa=k.XQ.Tba}};f.prototype.Tlb=function(){this.tt|| (this.tt=new b.CSS3DRenderer,this.tt.domElement.style.position="absolute",this.tt.domElement.style.zIndex="2",this.tt.domElement.style.pointerEvents="none",this.container.appendChild(this.tt.domElement))};f.prototype.ya=function(){var l;this.tt&&(this.container.removeChild(this.tt.domElement),this.tt=null);this.renderer&&(c.M.h(h.V,this.xOa,this),k.Kjb(this.renderer),this.container.removeChild(this.renderer.domElement),f.qna.push(this.renderer.getContext()),this.renderer.clear(),this.renderer.dispose(), this.renderer=null,(l=this.qr)===null||l===void 0||l.dispose(),this.qr=null);this.TD&&(this.container.removeChild(this.TD.domElement),this.TD=null)};f.vua=0;f.VVa=1;f.WVa=2;f.wua=3;f.qna=[];return f}()}); define("tdv/player/view/ScreenJoystick",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher","tdv/player/view/util/Device"],function(a,m,h,n,g){return function(k){function e(b,c){var d=k.call(this)||this;d.enabled=!1;d.a9=0;d.b9=0;d.mqa=null;d.Tj=null;d.Cm=null;d.oQ=null;d.Hk=0;d.eb=b;d.mqa=c;return d}P(e,k);e.prototype.dispose=function(){this.Ra(!1);this.mqa=this.eb=null};e.prototype.y6=function(){this.Hk++;this.Hk>=1&&this.Ra(!0)};e.prototype.b$=function(){this.Hk--;this.Hk<= 0&&this.Ra(!1)};e.prototype.Ra=function(b){this.enabled!=b&&((this.enabled=b)?(this.eb.Dra("Button"),this.hcb()):(this.eb.Xjb(),this.ona(),this.stop(),this.Pjb()))};e.prototype.getX=function(){return this.a9};e.prototype.getY=function(){return this.b9};e.prototype.$h=function(b){this.lf(b);this.enabled&&(this.Ppa=this.Npa=b.x,this.Qpa=this.Opa=b.y,this.Flb())};e.prototype.Vj=function(b){this.Ppa=b.x;this.Qpa=b.y;this.oQ?this.Tmb():this.Tj&&this.JK()};e.prototype.lf=function(){this.ona();this.stop()}; e.prototype.yOa=function(){this.lf()};e.prototype.tl=function(){this.vmin=Math.min(this.eb.nb(),this.eb.Mb())/100};e.prototype.start=function(){this.kA();this.o(h.Up);this.JK()};e.prototype.stop=function(){this.Tj&&(this.meb(),this.o(h.Fg))};e.prototype.Tmb=function(){var b=this.Ppa-this.Npa,c=this.Qpa-this.Opa;Math.sqrt(b*b+c*c)>this.vmin*e.wUa&&this.ona()};e.prototype.Flb=function(){this.oQ=window.setTimeout(this.umb.bind(this),e.xUa)};e.prototype.ona=function(){this.oQ&&(clearTimeout(this.oQ), this.oQ=null)};e.prototype.kA=function(){this.Tj=document.createElement("div");this.Tj.setAttribute("tdvclass","Button");this.Tj.style.position="absolute";this.Tj.style.width=this.Tj.style.height=Math.round(e.dta*2*this.vmin)+"px";this.Tj.style.borderRadius="50%";this.Tj.style.backgroundColor="rgba(255, 255, 255, 0.5)";this.Tj.style.transform="translate(-50%, -50%)";this.Tj.style.zIndex="1000";this.Tj.style.left=this.Npa+"px";this.Tj.style.top=this.Opa+"px";this.mqa.wa().uk(this.Tj);this.Cm=document.createElement("div"); this.Cm.setAttribute("tdvclass","Button");this.Cm.style.position="absolute";this.Cm.style.width=this.Cm.style.height=Math.round(e.RVa*2*this.vmin)+"px";this.Cm.style.borderRadius="50%";this.Cm.style.backgroundColor="rgba(255, 255, 255, 0.5)";this.Cm.style.transform="translate(-50%, -50%)";this.Cm.style.zIndex="1000";this.Tj.appendChild(this.Cm)};e.prototype.JK=function(){var b=this.Ppa-this.Npa,c=this.Qpa-this.Opa;if(b==0&&c==0)this.b9=this.a9=0;else{var d=Math.atan2(-c,b);b=Math.min(Math.sqrt(b* b+c*c)/(this.vmin*e.dta),e.mVa);this.a9=Math.cos(d)*b;this.b9=Math.sin(d)*b}this.Cm.style.left=(50+this.a9*50).toFixed(2)+"%";this.Cm.style.top=(50-this.b9*50).toFixed(2)+"%";this.o(h.V)};e.prototype.meb=function(){var b,c;(b=this.Cm.parentNode)===null||b===void 0||b.removeChild(this.Cm);this.Cm=null;(c=this.Tj.parentNode)===null||c===void 0||c.removeChild(this.Tj);this.Tj=null};e.prototype.umb=function(){this.oQ=null;this.start()};e.prototype.hcb=function(){this.eb.bind(h.Sa,this.$h,this,!0);this.eb.bind(h.gb, this.Vj,this,!0);this.eb.bind(h.$a,this.lf,this,!0);this.eb.bind(h.Rb,this.tl,this,!0);this.eb.bind(h.HB,this.yOa,this,!0);this.tl()};e.prototype.Pjb=function(){this.eb.h(h.Sa,this.$h,this);this.eb.h(h.gb,this.Vj,this);this.eb.h(h.$a,this.lf,this);this.eb.h(h.Rb,this.tl,this);this.eb.h(h.HB,this.yOa,this)};e.wUa=g.ub()?5:.5;e.xUa=g.ub()?300:600;e.dta=g.ub()?10:6.6;e.RVa=g.ub()?5:3.3;e.mVa=6;return e}(n)}); define("tdv/player/view/Subtitles","require tdv/utils tdv/constants/EventName tdv/view/constants/Alignment tdv/view/util/Animation tdv/view/util/Font".split(" "),function(a){function m(f){this.Zra=f;this.element=document.createElement("div");this.ksa=document.createElement("span");this.element.appendChild(this.ksa);this.ksa.innerHTML=f.text.split("
").join("\n").split("\n").map(n).join("
");this.Z6=!1}function h(f){this.P=f;this.bW=g.msa(this.bW.bind(this),100);this.cW=g.msa(this.cW.bind(this), 100);this.qa=document.createElement("div");this.qa.style.position="absolute";this.qa.style.left=0;this.qa.style.top=0;this.qa.style.right=0;this.qa.style.bottom=0;this.qa.style.zIndex=1;this.qa.style.cursor="inherit";this.qa.style.display="none";this.qn=document.createElement("div");this.qn.style.position="absolute";this.qn.style.left=0;this.qn.style.right=0;this.qn.style.zIndex=1;this.qn.style.cursor="inherit";this.qa.appendChild(this.qn);this.tV=[];this.FV=[];this.bj=[];this.Tia={};this.jO=e.Hc; this.P.bind(k.L("subtitlesEnabled"),this.Vz,this);h.mua.forEach(function(l){this.P.bind(k.L(l),this.bW,this)}.bind(this));h.nua.forEach(function(l){this.P.bind(k.L(l),this.cW,this)}.bind(this));this.Vz();this.bW();this.cW()}function n(f){d.innerHTML=f;return d.innerText}var g=a("tdv/utils"),k=a("tdv/constants/EventName"),e=a("tdv/view/constants/Alignment"),b=a("tdv/view/util/Animation"),c=a("tdv/view/util/Font");h.prototype.clear=function(){this.qqb(null);this.P&&(this.P.h(k.L("subtitlesEnabled"), this.Vz,this),h.mua.forEach(function(f){this.P.h(k.L(f),this.bW,this)}.bind(this)),h.nua.forEach(function(f){this.P.h(k.L(f),this.cW,this)}.bind(this)),this.P=null)};h.prototype.cc=function(){return this.qa};h.prototype.Tma=function(f){this.tV.indexOf(f)<0&&(this.tV.push(f),f.bind(k.L("activeSubtitles"),this.e3,this,!0),this.e3())};h.prototype.Kqa=function(f){var l=this.tV.indexOf(f);l>=0&&(this.tV.splice(l,1),f.h(k.L("activeSubtitles"),this.e3,this,!0),this.e3())};h.prototype.e3=function(){var f= [];this.tV.forEach(function(l){f=f.concat(l.get("activeSubtitles")||[])});this.i9a(f)};h.prototype.Vz=function(){this.ha=this.P.get("subtitlesEnabled");this.ima()};h.prototype.bW=function(){this.jO=this.mS("subtitlesVerticalAlign",[e.Tc,e.$d,e.Hc],e.Hc);this.qn.style["text-align"]=this.mS("subtitlesHorizontalAlign",[e.fb,e.Db,e.$e],e.$e);this.qn.style.bottom=this.jO==e.Hc?this.Nl("subtitlesBottom",0):"";this.qn.style.top=this.jO==e.Tc?this.Nl("subtitlesTop",0):this.jO==e.$d?"50%":"";this.qn.style.transform= this.jO==e.$d?"translate(0, -50%)":"";this.ima()};h.prototype.cW=function(){var f={};f["background-color"]=this.bga("subtitlesBackgroundColor","subtitlesBackgroundOpacity");f.border=[this.Nl("subtitlesBorderSize"),"solid",this.Bj("subtitlesBorderColor")].join(" ");f["box-shadow"]=this.Bj("subtitlesShadow",!1)?[this.Nl("subtitlesShadowHorizontalLength"),this.Nl("subtitlesShadowVerticalLength"),this.Nl("subtitlesShadowBlurRadius"),this.bga("subtitlesShadowColor","subtitlesShadowOpacity","#000000",0)].join(" "): "";f.display="inline-block";f["font-family"]=c.qA(this.Bj("subtitlesFontFamily"));f["font-size"]=this.Nl("subtitlesFontSize");f.color=this.Bj("subtitlesFontColor");f["font-weight"]=this.mS("subtitlesFontWeight","bold bolder lighter 100 200 300 400 500 600 700 800 900 normal".split(" "),"normal");f["font-style"]=this.mS("subtitlesFontStyle",["italic","normal"],"normal");f["margin-bottom"]=this.Nl("subtitlesGap");f.opacity=this.Bj("subtitlesOpacity");f["padding-top"]=this.Nl("subtitlesPaddingTop"); f["padding-bottom"]=this.Nl("subtitlesPaddingBottom");f["padding-left"]=this.Nl("subtitlesPaddingLeft");f["padding-right"]=this.Nl("subtitlesPaddingRight");f.position="relative";f["text-align"]=this.mS("subtitlesHorizontalAlign",["left","right","center"],"center");f["text-decoration"]=this.Bj("subtitlesTextDecoration",["underline","overline","line-through","none"],"none");f["text-shadow"]=[this.Nl("subtitlesTextShadowHorizontalLength"),this.Nl("subtitlesTextShadowVerticalLength"),this.Nl("subtitlesTextShadowBlurRadius"), this.bga("subtitlesTextShadowColor","subtitlesTextShadowOpacity","#000000",0)].join(" ");this.Tia=f;this.fYa()};h.prototype.i9a=function(f){this.FV=f;this.ima()};h.prototype.ima=function(){for(var f=this.ha?this.FV:[],l=this.bj.length-1;l>=0;l--){var p=this.bj[l];if(f.indexOf(p.Zra)>=0)break;this.qn.removeChild(p.element)}for(var q=[],r=!1;l>=0;l--)p=this.bj[l],!p.Z6&&f.indexOf(p.Zra)<0&&(p.Z6=!0,p.element.style.visibility="hidden",r=!0),q.splice(0,0,p);r&&b.requestFrame(this.Twa,this);this.bj=q; var t=this.bj.filter(function(u){return!u.Z6}).map(function(u){return u.Zra});f.filter(function(u){return t.indexOf(u)<0}).forEach(function(u){u=new m(u);this.Tva(u);this.jO==e.Hc&&this.bj.length>0?this.qn.insertBefore(u.element,this.bj[this.bj.length-1].element):this.qn.appendChild(u.element);this.bj.push(u)}.bind(this));this.qa.style.display=this.bj.length>0?"block":"none"};h.prototype.Twa=function(f){var l=!1;f=Math.round(200*f/1E3);for(var p=0;p=q.element.clientHeight)f-=q.element.clientHeight,this.qn.removeChild(q.element),this.bj.splice(p,1),p--;else{q.element.style.height=q.element.clientHeight-f+"px";break}}l&&b.requestFrame(this.Twa,this)};h.prototype.fYa=function(){this.bj.forEach(this.Tva.bind(this))};h.prototype.Tva=function(f){for(var l in this.Tia)f.ksa.style[l]=this.Tia[l]};h.prototype.Bj=function(f,l){return this.P.get(f,l)};h.prototype.Nl=function(f,l){f=this.P.get(f,l);isNaN(f)||(f=Math.round(f)+"px");return f};h.prototype.mS= function(f,l,p){f=this.P.get(f);return l.indexOf(f)<0?p:f};h.prototype.bga=function(f,l,p,q){f=this.P.get(f,p);l=this.P.get(l,q);return"rgba("+parseInt("0x"+f.substr(1,2))+", "+parseInt("0x"+f.substr(3,2))+", "+parseInt("0x"+f.substr(5,2))+", "+l+")"};h.mua=["subtitlesHorizontalAlign","subtitlesVerticalAlign","subtitlesTop","subtitlesBottom"];h.nua="subtitlesBackgroundColor subtitlesBackgroundOpacity subtitlesBorderColor subtitlesBorderSize subtitlesFontFamily subtitlesFontColor subtitlesFontSize subtitlesFontStyle subtitlesFontWeight subtitlesGap subtitlesOpacity subtitlesPaddingTop subtitlesPaddingBottom subtitlesPaddingLeft subtitlesPaddingRight subtitlesShadow subtitlesShadowBlurRadius subtitlesShadowHorizontalLength subtitlesShadowVerticalLength subtitlesShadowColor subtitlesTextDecoration subtitlesTextShadowBlurRadius subtitlesTextShadowColor subtitlesTextShadowHorizontalLength subtitlesTextShadowOpacity subtitlesTextShadowVerticalLength".split(" "); var d=document.createElement("div");return h}); define("tdv/player/view/SubtitlesListener","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo".split(" "),function(a,m,h,n,g,k){a=function(){function l(p){this.nQ=new Map;this.Fm=p}l.prototype.add=function(p){k.Oa("PanoramaPlayer",p)?this.nQ.set(p,new e(this.Fm,p)):k.Oa("VideoPlayer",p)?this.nQ.set(p,new b(this.Fm,p)):k.Oa("PhotoAlbumPlayer",p)?this.nQ.set(p,new c(this.Fm,p)):k.Oa("Audio",p)&&this.nQ.set(p,new f(this.Fm,p))}; l.prototype.remove=function(p){var q=this.nQ.get(p);q&&(q.clear(),this.nQ.delete(p))};return l}();m=function(){function l(p,q){this.Fm=p;this.source=q}l.prototype.clear=function(){};return l}();var e=function(l){function p(q,r){q=l.call(this,q,r)||this;q.bJ=new d(q.Fm);q.ig=null;q.source.bind(n.L("panorama"),q.fqa,q,!0);q.fqa();return q}P(p,l);p.prototype.clear=function(){this.source&&(this.source.h(n.L("panorama"),this.fqa,this),this.source=null,this.Wf(null),this.bJ.clear(),this.bJ=null)};p.prototype.fqa= function(){this.Wf(this.source.get("panorama"))};p.prototype.Wf=function(q){if(this.ig!=q){this.ig&&(this.ig.h(n.L("audios"),this.RJ,this),this.Fm.Kqa(this.ig));if(this.ig=q)this.Fm.Tma(this.ig),this.ig.bind(n.L("audios"),this.RJ,this,!0);this.RJ()}};p.prototype.RJ=function(){this.bJ.bra(this.ig&&this.ig.get("audios")||[])};return p}(m),b=function(l){function p(q,r){q=l.call(this,q,r)||this;q.video=null;q.source.bind(n.L("video"),q.WJ,q,!0);q.source.bind(n.Pd,q.WJ,q,!0);q.WJ();return q}P(p,l);p.prototype.clear= function(){this.source&&(this.source.h(n.L("video"),this.WJ,this),this.source.h(n.Pd,this.WJ,this),this.source=null,this.N$(null))};p.prototype.WJ=function(){var q;this.N$(((q=this.source)===null||q===void 0?void 0:q.get("state"))!=g.ca?this.source.get("video"):null)};p.prototype.N$=function(q){this.video!=q&&(this.video&&this.Fm.Kqa(this.video),(this.video=q)&&this.Fm.Tma(this.video))};return p}(m),c=function(l){function p(q,r){q=l.call(this,q,r)||this;q.TJ=q.TJ.bind(q);q.bJ=new d(q.Fm);q.tc=null; h.ba(q.source,"photoAlbum.playList.items",q.TJ,!1);h.ba(q.source,"photoAlbum.playList.selectedIndex",q.TJ,!1);q.TJ();return q}P(p,l);p.prototype.clear=function(){this.source&&(h.da(this.source,"photoAlbum.playList.items",this.TJ),h.da(this.source,"photoAlbum.playList.selectedIndex",this.TJ),this.source=null,this.CRa(null),this.bJ.clear(),this.bJ=null)};p.prototype.TJ=function(){var q=this.source.get("photoAlbum");q=(q=q?q.get("playList"):null)&&q.get("selectedIndex")>=0?q.get("items")[q.get("selectedIndex")]: null;this.CRa(q?q.get("media"):null)};p.prototype.CRa=function(q){this.tc!=q&&(this.tc&&this.tc.h(n.L("audios"),this.RJ,this),(this.tc=q)&&this.tc.bind(n.L("audios"),this.RJ,this,!0),this.RJ())};p.prototype.RJ=function(){this.bJ.bra(this.tc&&this.tc.get("audios")||[])};return p}(m),d=function(){function l(p){this.I6=[];this.H6=new Map;this.Fm=p}l.prototype.clear=function(){this.bra([])};l.prototype.bra=function(p){this.I6!=p&&(this.I6.forEach(function(q){p.indexOf(q)>=0||(this.H6.get(q).clear(),this.H6.delete(q))}.bind(this)), this.I6=p,this.I6.forEach(function(q){this.H6.has(q)||this.H6.set(q,new f(this.Fm,q))}.bind(this)))};return l}(),f=function(l){function p(q,r){q=l.call(this,q,r)||this;q.IE=!1;q.source.bind(n.L("state"),q.Xpa,q,!0);q.Xpa();return q}P(p,l);p.prototype.clear=function(){this.source&&(this.UQa(!1),this.source.h(n.L("state"),this.Xpa,this),this.source=null)};p.prototype.Xpa=function(){this.UQa(this.source.get("state")!=g.ca)};p.prototype.UQa=function(q){this.IE!=q&&(this.IE&&this.Fm.Kqa(this.source),(this.IE= q)&&this.Fm.Tma(this.source))};return p}(m);return a}); define("tdv/player/script/ViewerArea","require three.mod tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/PlaybackState tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/view/PlaybackBar tdv/player/view/ProgressBar tdv/player/view/common/RenderersContainer tdv/player/view/ScreenJoystick tdv/player/view/Subtitles tdv/player/view/SubtitlesListener tdv/player/view/util/Device tdv/player/view/util/XR tdv/view/constants/ButtonMode tdv/view/constants/Cursor tdv/view/constants/CreationPolicy tdv/view/constants/State tdv/view/containers/Container tdv/view/core/UIComponent".split(" "),function(a){function m(){function G(){v.XA== R&&v.Nw==Q?O.sl().render(R,Q):v.M.h(k.Zd,G,this)}v.h$=new b(k.cpb);var N=H=new v.Xua,O=E=new p,R=new h.Scene,Q=new h.PerspectiveCamera;v.wra(O.sl(),R,Q,v.XQ.bca);v.xt(O.sl(),v.Fl.Xp,N);v.M.bind(k.Zd,G,this,!0);v.h$=null}var h=a("three.mod"),n=a("tdv/utils"),g=a("tdv/binding/BindingsHandler"),k=a("tdv/constants/EventName"),e=a("tdv/constants/PlaybackState"),b=a("tdv/events/Event"),c=a("tdv/player/parser/ClassInfo"),d=a("tdv/player/script/helper/ButtonProperty"),f=a("tdv/player/view/PlaybackBar"),l= a("tdv/player/view/ProgressBar"),p=a("tdv/player/view/common/RenderersContainer"),q=a("tdv/player/view/ScreenJoystick"),r=a("tdv/player/view/Subtitles"),t=a("tdv/player/view/SubtitlesListener"),u=a("tdv/player/view/util/Device"),v=a("tdv/player/view/util/XR"),w=a("tdv/view/constants/ButtonMode"),x=a("tdv/view/constants/Cursor"),y=a("tdv/view/constants/CreationPolicy"),z=a("tdv/view/constants/State"),A=a("tdv/view/containers/Container"),D=a("tdv/view/core/UIComponent"),F=180/Math.PI,C=new h.Euler, B=c.define("ViewerArea",A,function(){A.call(this);this.set("childrenInteractionEnabled",!0);this.set("contentOpaque",!0);this.set("creationPolicy",y.cL);this.set("subtitlesEnabled",!0);this.set("checkToolTipOcclusion",!0);this.set("isKeyboardTarget",!1);this.Pv=this.YS=this.ss=this.fj=this.qD=this.bv=this.ve=this.b1=this.ej=null;this.FV=new r(this);this.D5=new t(this.FV);this.gja=this.wv=!1;this.Jj=e.ca;this.zo=this.Gl=null;this.So=!1;this.VU=[];this.vL=[];this.uL=new Set;this.bind(B.pua,this.C5a, this,!0);this.bind(B.oua,this.B5a,this,!0);this.bind(k.Sa,this.tCa,this);this.bind(k.Sa,this.tCa,this);this.bind(k.uc,this.Z5a,this);this.bind(k.Eb,this.Y5a,this);this.bind(k.od,this.O3,this,!0);this.bind(k.jd,this.W5a,this,!0);this.GL=new d(this,"buttonPause",w.bk);this.GL.bind(k.ma,this.WH,this);this.GL.set("state",z.De);this.HL=new d(this,"buttonPlay",w.bk);this.HL.bind(k.ma,this.XH,this);this.HL.set("state",z.De);this.yG=new d(this,"buttonPlayPause",w.bk);this.yG.bind(k.ma,this.y5a,this);this.yG.set("state", z.De);this.JL=new d(this,"buttonStop",w.bk);this.JL.bind(k.ma,this.cD,this);this.JL.set("state",z.Fb);this.XYa=new d(this,"buttonRestart",w.af);this.XYa.bind(k.ma,this.bD,this);this.e0=new d(this,"buttonToggleSubtitles",w.bk);this.e0.bind(k.Rk,function(){this.set("subtitlesEnabled",!0)},this,!0);this.e0.bind(k.Nm,function(){this.set("subtitlesEnabled",!1)},this,!0);this.bind(k.L("subtitlesEnabled"),function(){this.e0.set("pressed",this.get("subtitlesEnabled"))},this);this.e0.set("pressed",this.get("subtitlesEnabled")); (new d(this,"buttonVRView",w.af)).bind(k.ma,function(){this.set("viewMode","vr")},this,!0);(new d(this,"buttonARView",w.af)).bind(k.ma,function(){this.set("viewMode","ar")},this,!0);this.E3a=n.nr(this.mbb,this);this.bind(k.fi,this.V5a,this,!0);this.bind(B.A_,this.X5a,this,!0);v.M.bind(k.V,function(){this.set("viewMode",this.Bya())},this,!0)});B.prototype.play=function(){this.XH()};B.prototype.pause=function(){this.WH()};B.prototype.stop=function(){this.cD()};B.prototype.restart=function(){this.bD()}; B.ad=Object.assign({},A.ad,{progressBackgroundColor:void 0,progressBackgroundColorDirection:void 0,progressBackgroundColorRatios:void 0,progressBackgroundOpacity:void 0,progressBackgroundBlur:0,progressBarBackgroundColor:void 0,progressBarBackgroundColorDirection:void 0,progressBarBackgroundColorRatios:void 0,progressBarBorderColor:void 0,progressBarBorderRadius:void 0,progressBarBorderSize:void 0,progressBarOpacity:void 0,progressBorderColor:void 0,progressBorderRadius:void 0,progressBorderSize:void 0, progressBottom:0,progressHeight:20,progressLeft:0,progressOpacity:void 0,progressPercent:0,progressRight:0,progressVisible:!1,externalPlaybackBar:void 0,externalProgressBar:void 0,playbackBarBackgroundColor:void 0,playbackBarBackgroundColorDirection:void 0,playbackBarBackgroundOpacity:void 0,playbackBarBackgroundBlur:0,playbackBarBorderColor:void 0,playbackBarBorderRadius:void 0,playbackBarBorderSize:void 0,playbackBarBottom:10,playbackBarHeight:void 0,playbackBarWidth:void 0,playbackBarLeft:void 0, playbackBarOpacity:void 0,playbackBarRight:void 0,playbackBarLiveDragging:void 0,playbackBarDuration:100,playbackBarPosition:0,playbackBarRollOverDisplay:!1,plabackBarSteps:void 0,plabackBarSelectedStep:void 0,playbackBarVisible:!1,playbackBarProgressBackgroundColor:void 0,playbackBarProgressBackgroundColorDirection:void 0,playbackBarProgressBackgroundColorRatios:void 0,playbackBarProgressBorderColor:void 0,playbackBarProgressBorderRadius:void 0,playbackBarProgressBorderSize:void 0,playbackBarProgressOpacity:void 0, playbackBarHeadBackgroundColor:void 0,playbackBarHeadBackgroundColorDirection:void 0,playbackBarHeadBackgroundColorRatios:void 0,playbackBarHeadBorderColor:void 0,playbackBarHeadBorderRadius:void 0,playbackBarHeadBorderSize:void 0,playbackBarHeadOpacity:void 0,playbackBarHeadWidth:void 0,playbackBarHeadHeight:void 0,playbackBarHeadShadow:void 0,playbackBarHeadShadowBlurRadius:void 0,playbackBarHeadShadowColor:void 0,playbackBarHeadShadowHorizontalLength:void 0,playbackBarHeadShadowOpacity:void 0, playbackBarHeadShadowSpread:void 0,playbackBarHeadShadowVerticalLength:void 0,playbackBarStepBackgroundColor:void 0,playbackBarStepBackgroundColorDirection:void 0,playbackBarStepBackgroundColorRatios:void 0,playbackBarStepBorderColor:void 0,playbackBarStepBorderRadius:void 0,playbackBarStepBorderSize:void 0,playbackBarStepOpacity:void 0,playbackBarStepWidth:void 0,playbackBarStepHeight:void 0,playbackBarStepShadow:void 0,playbackBarStepShadowBlurRadius:void 0,playbackBarStepShadowColor:void 0,playbackBarStepShadowHorizontalLength:void 0, playbackBarStepShadowOpacity:void 0,playbackBarStepShadowSpread:void 0,playbackBarStepShadowVerticalLength:void 0,playbackBarStepSelectedBackgroundColor:void 0,playbackBarStepSelectedBackgroundColorDirection:void 0,playbackBarStepSelectedBackgroundColorRatios:void 0,playbackBarStepSelectedBorderColor:void 0,playbackBarStepSelectedBorderRadius:void 0,playbackBarStepSelectedBorderSize:void 0,playbackBarStepSelectedOpacity:void 0,playbackBarStepSelectedWidth:void 0,playbackBarStepSelectedHeight:void 0, playbackBarStepSelectedShadow:void 0,playbackBarStepSelectedShadowBlurRadius:void 0,playbackBarStepSelectedShadowColor:void 0,playbackBarStepSelectedShadowHorizontalLength:void 0,playbackBarStepSelectedShadowOpacity:void 0,playbackBarStepSelectedShadowSpread:void 0,playbackBarStepSelectedShadowVerticalLength:void 0,subtitlesBackgroundColor:"#000000",subtitlesBackgroundOpacity:1,subtitlesBorderColor:void 0,subtitlesBorderSize:0,subtitlesBottom:"10%",subtitlesFontFamily:void 0,subtitlesFontColor:"#ffffff", subtitlesFontSize:"12px",subtitlesFontStyle:void 0,subtitlesFontWeight:void 0,subtitlesGap:10,subtitlesHorizontalAlign:"center",subtitlesOpacity:1,subtitlesPaddingTop:5,subtitlesPaddingBottom:5,subtitlesPaddingLeft:5,subtitlesPaddingRight:5,subtitlesShadow:!1,subtitlesShadowBlurRadius:void 0,subtitlesShadowHorizontalLength:0,subtitlesShadowVerticalLength:0,subtitlesShadowColor:"#000000",subtitlesShadowOpacity:0,subtitlesTextDecoration:void 0,subtitlesTextShadowBlurRadius:void 0,subtitlesTextShadowColor:"#000000", subtitlesTextShadowHorizontalLength:0,subtitlesTextShadowOpacity:0,subtitlesTextShadowVerticalLength:0,subtitlesTop:void 0,subtitlesVerticalAlign:"bottom",transitionDuration:500,blendingTransitionDuration:void 0,disolveTransitionDuration:void 0,translationTransitionDuration:void 0,translationTransitionEnabled:!0,toolTipEnabled:!0});B.prototype.get=function(G,N){switch(G){case "viewMode":if(v.isPresenting&&this.Fc().xMa()&&v.Uf==this.Fc().sl()){if(v.Em==v.Fl.Xp)return"vr";if(v.Em==v.Fl.Np)return"ar"}return"standard"; case "xrYaw":return v.isPresenting?-C.setFromQuaternion(v.yl,"YXZ").y*F:0;case "xrPitch":return v.isPresenting?C.setFromQuaternion(v.yl,"YXZ").x*F:0;case "xrRoll":return v.isPresenting?-C.setFromQuaternion(v.yl,"YXZ").z*F:0}return A.prototype.get.call(this,G,N)};B.prototype.set=function(G,N){G=="playbackState"&&(N=this.Jj,this.get(G)!=N&&(this.gja=!0,this.E3a()));switch(G){case "toolTipEnabled":this.set("toolTipDisabled",N===!1);break;case "cardboardPointerDistance":this.set("vrPointerDistance",N); break;case "cardboardPointerColor":this.set("vrPointerColor",N);break;case "cardboardPointerSelectionColor":this.set("vrPointerSelectionColor",N);break;case "cardboardPointerSelectionTime":this.set("vrPointerSelectionTime",N);break;case "playbackBarVisible":case "playbackBarRollOverDisplay":this.dW();break;case "viewMode":var O=A.prototype.get.call(this,G);this.Fc().Jgb()&&(N!="vr"||v.isPresenting?N!="ar"||v.isPresenting?N!="vr"&&N!="ar"&&v.isPresenting&&v.Uf==this.Fc().sl()&&v.sm():v.xt(this.Fc().sl(), v.Fl.Np,this.b8()):v.xt(this.Fc().sl(),v.Fl.Xp,this.b8()));N=this.Bya();O!=N&&this.o(B.Jba)}A.prototype.set.call(this,G,N)};B.prototype.Bya=function(){if(v.isPresenting&&this.Fc().xMa()&&v.Uf==this.Fc().sl()){if(v.Em==v.Fl.Xp)return"vr";if(v.Em==v.Fl.Np)return"ar"}return"standard"};B.prototype.Pb=function(){this.Jl(B.ad)};B.prototype.Kb=function(){A.prototype.Kb.call(this);this.qD==null&&(this.qD=new D,this.qD.set("width","100%"),this.qD.set("height","100%"),this.qD.set("interactionEnabled",!1),this.qD.set("toolTipDisabled", !0),this.mb(this.qD),this.qD.wa().uk(this.Fc().cc()));this.ss==null&&(this.ss=new D,this.ss.set("width","100%"),this.ss.set("height","100%"),this.ss.set("toolTipDisabled",!0),this.ss.set("interactionEnabled",!1),this.mb(this.ss),n.defer(function(){this.ss.set("cursor",x.LB)}.bind(this)),this.YS=new q(this,this.ss),this.YS.Ra(!1));this.Pv==null&&(this.Pv=new D,this.Pv.set("width","100%"),this.Pv.set("height","100%"),this.Pv.set("toolTipDisabled",!0),this.Pv.set("interactionEnabled",!1),this.mb(this.Pv), this.Pv.wa().uk(this.FV.cc()));this.ej==null&&(this.ej=new l,this.mb(this.ej));this.ve==null&&(this.ve=new f,this.ve.bind(k.V,this.dja,this,!0),this.mb(this.ve),this.dW())};B.prototype.b8=function(){if(this.RHa)return this.RHa;if(H){var G=H;H=null}else G=new v.Xua;g.ba(this,"vrGazePointerHideTime vrFoveation vrPointerColor vrPointerDistance vrPointerOverColor vrPointerSelectionColor vrPointerSelectionTime".split(" "),function(){G.WKa=this.get("vrGazePointerHideTime");G.SKa=this.get("vrFoveation"); G.Q9=this.get("vrPointerColor");G.JPa=this.get("vrPointerDistance");G.sqa=this.get("vrPointerOverColor");G.S9=this.get("vrPointerSelectionColor");G.NPa=this.get("vrPointerSelectionTime")}.bind(this),!0);return this.RHa=G};B.prototype.yfb=function(){return this.ve};B.prototype.Fc=function(){this.fj||(E?(this.fj=E,E=null):this.fj=new p(this.get("aaEnabled")));return this.fj};B.prototype.Lk=function(){A.prototype.Lk.call(this);for(var G=[],N=this.VU.length-1;N>=0;N--)G.push(this.VU[N].j);this.Pv&&G.push(this.Pv); this.ss&&G.push(this.ss);this.ve&&G.push(this.ve);this.ej&&G.push(this.ej);var O=this.Cb();G=G.filter(function(R){return O.indexOf(R)>=0});O=O.filter(function(R){return G.indexOf(R)==-1}).concat(G);O.forEach(function(R,Q){R&&this.loa(R)!=Q&&this.rr(R,Q)}.bind(this))};B.prototype.jb=function(){this.S("externalProgressBar")&&((this.b1=this.G("externalProgressBar"))?this.removeChild(this.ej):this.mb(this.ej),this.$("externalProgressBar"),B.tva.forEach(N=>{this.yD(N)}));this.Pc(B.MWa,B.lva,[this.ej], !0,!0);var G=[this.ej];this.b1&&G.push(this.b1);this.Pc(B.tva,B.uva,G,!0,!0);this.S("externalPlaybackBar")&&(this.bv&&this.bv.h(k.V,this.dja,this,!0),(this.bv=this.G("externalPlaybackBar"))?this.removeChild(this.ve):this.mb(this.ve),this.dW(),this.bv&&this.bv.bind(k.V,this.dja,this,!0),this.$("externalPlaybackBar"),B.qva.forEach(N=>{this.yD(N)}));this.Pc(B.LWa,B.kva,[this.ve],!0,!0);G=[this.ve];this.bv&&G.push(this.bv);this.Pc(B.qva,B.rva,G,!0,!0);A.prototype.jb.call(this)};B.prototype.mbb=function(){this.gja&& (this.gja=!1,this.GL.set("state",this.Jj==e.$b?z.Fb:z.De),this.HL.set("state",this.Jj==e.PLAYING||this.Jj==e.$b?z.Fb:z.De),this.yG.set("state",this.Jj==e.PLAYING?z.Fb:z.De),this.JL.set("state",this.Jj==e.ca?z.Fb:z.De))};B.prototype.Jd=function(G){this.Jj=G;this.set("playbackState",G)};B.prototype.O3=function(){B.cp(this)};B.prototype.W5a=function(){B.ap(this)};B.prototype.WH=function(){this.Jj==e.$b?this.tn():this.tv()};B.prototype.XH=function(){this.tn()};B.prototype.y5a=function(){this.Jj==e.PLAYING? this.tv():this.tn()};B.prototype.cD=function(){this.Zs()};B.prototype.bD=function(){this.Zs();this.tn()};B.prototype.V5a=function(){if(!this.Gl||!this.Gl.mna())switch(this.get("doubleClickAction")){case "toggle_fullscreen":var G=this.Xb().lk;G&&G.ol()&&G.toggle()}};B.prototype.X5a=function(G){this.VU.forEach(function(N){this.D5.remove(N)}.bind(this));this.VU=G.data.players;this.VU.forEach(function(N){this.D5.add(N)}.bind(this));this.Bf()};B.prototype.tn=function(){this.zo&&this.zo.play()};B.prototype.tv= function(){this.zo&&this.zo.pause()};B.prototype.Zs=function(){this.zo&&this.zo.stop()};B.prototype.C5a=function(G){this.DEa(G.data.player)};B.prototype.B5a=function(G){this.Gl==G.data.player&&this.DEa(null)};B.prototype.tCa=function(){B.tr(this)};B.prototype.Z5a=function(){this.So=!0;this.dW()};B.prototype.Y5a=function(){this.So=!1;this.dW()};B.prototype.dW=function(){this.ve&&this.ve.set("visible",this.get("playbackBarVisible")&&(this.So||!this.get("playbackBarRollOverDisplay")||u.Jp()))};B.prototype.DEa= function(G){this.Gl!=G&&(this.set("playbackBarVisible",!1),this.Gl&&this.Gl.tr(!1),this.zo&&this.zo.h(k.L("state"),this.Lca,this),this.F6a=this.Gl,(this.Gl=G)&&this.Gl.tr(!!this.Ro),(this.zo=this.Gl&&this.Gl.cZa?this.Gl:null)&&this.zo.bind(k.L("state"),this.Lca,this,!0),this.Lca())};B.prototype.tr=function(G){this.Ro=G;this.set("isKeyboardTarget",G);this.Gl&&this.Gl.tr(!!this.Ro)};B.prototype.uob=function(){return!this.F6a};B.prototype.Lca=function(){this.zo?this.Jd(this.zo.get("state")):this.Jd(e.ca)}; B.prototype.dja=function(){var G=(this.bv?this.bv:this.ve).get("position");this.o(new b(B.Bba,{position:G}))};B.prototype.OX=function(G){return this.uL.size==1&&this.uL.has(G)};B.prototype.Pma=function(G){this.uL.add(G)};B.prototype.release=function(G){this.uL["delete"](G);this.SGa()};B.prototype.Ssa=function(G,N){this.vL.push({Eqa:G,Hn:N});this.SGa()};B.prototype.SGa=function(){if(this.uL.size==1&&this.vL.length>0)for(var G=this.uL.values().next().value,N=0;N-1&&B.UI.splice(N,1);B.UI.push(G);this.tr(this.hza())};B.ap=function(G){var N=B.UI.indexOf(G);N>-1&&B.UI.splice(N,1);B.CH==G&&B.tr(B.UI.length?this.hza():null)};B.hza=function(){var G=B.UI.slice();G.sort(function(N,O){var R=N.get("actualWidth")*N.get("actualHeight"), Q=O.get("actualWidth")*O.get("actualHeight");N=G.indexOf(N)-G.indexOf(O);return R-Q||N});return G[G.length-1]};var H=null,E=null;navigator.xr&&navigator.xr.addEventListener("sessiongranted",function(){m()});return B}); define("tdv/player/script/MediaPlayer",["require","tdv/utils","tdv/binding/Bindable","tdv/events/Event","tdv/player/script/ViewerArea"],function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable"),n=a("tdv/events/Event"),g=a("tdv/player/script/ViewerArea"),k=m.extend(h,function(e){h.call(this);this.cZa=e;this.rV=this.UC=null});k.di="mediaShow";k.oo="mediaHide";k.prototype.tr=function(){};k.prototype.mna=function(){return!1};k.prototype.oV=function(e){this.UC!=e&&(this.UC&&this.Fla(this.UC),(this.UC= e)&&this.qda(this.UC))};k.prototype.qda=function(e){e.bind(g.A_,this.HHa,this,!0);e.bind(g.Bba,this.DU,this)};k.prototype.Fla=function(e){e.h(g.A_,this.HHa,this);e.h(g.Bba,this.DU,this)};k.prototype.hK=function(e){this.UC.o(new n(g.A_,{players:e||[this]}))};k.prototype.HHa=function(e){e.data.players.indexOf(this)<0&&this.TN()};k.prototype.DU=function(){};k.prototype.TN=function(){};k.prototype.nT=function(e){this.o(new n(k.di,{media:e}));this.rV=this.UC;this.rV.o(new n(g.pua,{player:this}))};k.prototype.mT= function(e){this.o(new n(k.oo,{media:e}));this.rV&&(this.rV.o(new n(g.oua,{player:this})),this.rV=null)};return k});define("tdv/player/view/map/constants/MovementMode",["require"],function(){return{uF:"constrained",XUa:"free_drag",Mob:"free_drag_and_rotation",jca:"sync_with_field_of_view"}}); define("tdv/player/view/map/control/camera/LimitsManager",["require","tdv/utils","tdv/player/view/map/constants/MovementMode","tdv/view/constants/ScaleMode"],function(a){function m(){this.Rd=!0;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.ti=n.uj;this.Zo=h.uF;this.Gha=this.Lha=1;this.tf=this.uf=this.Ao=this.Bo=100;this.op=m.iG}a("tdv/utils");var h=a("tdv/player/view/map/constants/MovementMode"),n=a("tdv/view/constants/ScaleMode");m.prototype.sMa=function(){return this.op!==m.iG};m.prototype.rMa=function(){return this.op& m.rL?!0:!1};m.prototype.tMa=function(){return this.op&m.sL?!0:!1};m.prototype.uMa=function(){return this.op&m.lG?!0:!1};m.prototype.qMa=function(){return this.op&m.hG?!0:!1};m.prototype.getX=function(){this.sp();return this.ec};m.prototype.getY=function(){this.sp();return this.fc};m.prototype.yA=function(){this.sp();return this.kc};m.prototype.iP=function(){this.sp();return this.Ed};m.prototype.setConfiguration=function(g,k,e,b,c){this.uf=g;this.tf=k;this.ti=e;this.Lha=b;this.Gha=c;this.fc=this.ec= .5;this.Ed=0;this.kc=b;this.Rd=!0};m.prototype.setPosition=function(g,k,e,b){this.ec=g;this.fc=k;this.Ed=e;this.kc=b;this.Rd=!0};m.prototype.eu=function(g){this.Zo=g;this.Rd=!0};m.prototype.setSize=function(g,k){this.Bo=g;this.Ao=k;this.Rd=!0};m.prototype.sp=function(){if(this.Rd){this.Rd=!1;var g=m.iG;this.kc>this.Gha?(this.kc=this.Gha,g|=m.PWa):this.kcthis.tf*this.Bo?(k=this.uf*this.Ao/this.tf,e=this.Ao):(k=this.Bo,e=this.tf*this.Bo/this.uf);break;default:case n.uj:this.uf*this.Ao>this.tf*this.Bo?(k=this.Bo,e=this.tf*this.Bo/this.uf):(k=this.uf*this.Ao/this.tf,e=this.Ao)}k*=this.kc;e*=this.kc;var b=Math.min(.5*this.Bo/k,.5);k=Math.max(1-.5*this.Bo/k,.5);var c=Math.min(.5*this.Ao/e,.5);e=Math.max(1-.5*this.Ao/e,.5)}else b=0,k=1,c=0,e=1;this.eck&&(this.ec=k,g|=m.sL);this.fce&&(this.fc=e,g|=m.hG);this.Zo!=h.uF&&this.Zo!=h.XUa||this.Ed==0||(this.Ed=0,g|=m.VWa);this.op=g}};m.iG=0;m.rL=1;m.sL=2;m.lG=4;m.hG=8;m.QWa=16;m.PWa=32;m.VWa=64;return m}); define("tdv/player/view/map/control/camera/MovementManager",["require"],function(){function a(){this.ZR=.1;this.K0=this.kea=this.nea=this.mea=this.uea=this.jea=this.sea=this.rea=this.uW=this.Oma=this.nG=this.Xca=this.sW=this.Lma=this.rW=this.Jma=0}a.prototype.o$=function(m){this.ZR=m};a.prototype.yRa=function(m,h,n,g,k,e,b,c){this.Jma=m;this.Lma=h;this.Xca=n;this.Oma=g;this.rW+=k;this.sW+=e;this.nG+=b;this.uW+=c};a.prototype.Vf=function(){return this.rea!=0||this.sea!=0||this.jea!=0||this.uea!=0|| this.Jma!=0||this.Lma!=0||this.Xca!=0||this.Oma!=0||this.rW!=0||this.sW!=0||this.nG!=0||this.uW!=0};a.prototype.Nb=function(m){m=1E3/m;this.mea=this.X0(this.rea/m,this.Jma/m+this.rW,this.ZR);this.nea=this.X0(this.sea/m,this.Lma/m+this.sW,this.ZR);this.kea=this.X0(this.jea/m,this.Xca/m+this.nG,this.ZR);this.K0=this.X0(this.uea/m,this.Oma/m+this.uW,this.ZR);this.rea=this.mea*m;this.sea=this.nea*m;this.jea=this.kea*m;this.uea=this.K0*m;this.uW=this.nG=this.sW=this.rW=0};a.prototype.X0=function(m,h,n){return h== 0?this.bh(m,h,n):h};a.prototype.bh=function(m,h,n){m=(h-m)*(1-n);Math.abs(m)<.01&&(m=0);return h-m};return a}); define("tdv/player/view/map/control/camera/MouseManager","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/view/constants/ScaleMode".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher");a("tdv/view/constants/ScaleMode");var k=m.extend(g,function(){g.call(this);this.WR=7;this.Y2=this.Xga=!1;this.a3=void 0;this.Ed=0;this.kc=1;this.tf=this.uf=100;this.l2=1;this.mja=!0;this.nja=!1; this.Ibb=!0;this.Nma=!1;this.Ab=null});k.prototype.VY=function(e){this.WR=e};k.prototype.Zc=function(e,b,c,d){this.Ed=e;this.kc=b;this.uf=c;this.tf=d};k.prototype.ulb=function(e){this.mja=e;this.d5(this.mja&&!!this.Ab)};k.prototype.bu=function(e){this.Ab!=e&&(this.d5(!1),this.Eka(!1),this.Jn(),this.Ab=e,this.d5(this.mja&&!!this.Ab),this.Eka(this.Ibb&&!!this.Ab))};k.prototype.Jn=function(){this.d5(!1);this.Eka(!1);this.Ab=null};k.prototype.d5=function(e){this.nja!=e&&((this.nja=e)?this.EYa():this.aab())}; k.prototype.Eka=function(e){this.Nma!=e&&((this.Nma=e)?this.HYa():this.cab())};k.prototype.EYa=function(){this.Ab.bind(h.Sa,this.te,this,!0);this.Ab.bind(h.gb,this.bl,this,!0);this.Ab.bind(h.$a,this.cl,this,!0)};k.prototype.aab=function(){this.Ab.h(h.Sa,this.te,this);this.Ab.h(h.gb,this.bl,this);this.Ab.h(h.$a,this.cl,this)};k.prototype.HYa=function(){this.Ab.bind(h.Qk,this.JH,this,!0);this.Ab.bind(h.ZK,this.bH,this,!0)};k.prototype.cab=function(){this.Ab.h(h.Qk,this.JH,this);this.Ab.h(h.ZK,this.bH, this)};k.prototype.te=function(e){this.P9a(e)};k.prototype.bl=function(e){this.bHa(e)};k.prototype.cl=function(){this.dfa()};k.prototype.JH=function(e){this.pma(e)};k.prototype.bH=function(e){this.qma(e)};k.prototype.P9a=function(e){this.Xga=!0;this.Y2=!1;this.a3=e;this.bHa(e)};k.prototype.bHa=function(e){if(this.Xga){var b=e.pageX-this.a3.pageX,c=e.pageY-this.a3.pageY;this.Y2||(Math.sqrt(b*b+c*c)>this.WR?this.Y2=!0:b=c=0);this.Y2&&(this.a3=e);e=this.Ed*Math.PI/180;this.o(new n(k.Hr,{xDelta:-((b* Math.cos(e)+c*Math.sin(e))/this.uf),yDelta:-((c*Math.cos(e)-b*Math.sin(e))/this.tf)}))}};k.prototype.dfa=function(){this.Xga=!1};k.prototype.qma=function(e){if(this.l2!=e.scale){this.dfa();var b=this.l2;this.l2=e.scale;this.o(new n(k.Jr,{zoomDelta:this.kc*this.l2/b-this.kc}))}};k.prototype.pma=function(e){e.delta!=0&&(this.dfa(),this.o(new n(k.Jr,{zoomDelta:this.kc*e.lA*.1})))};k.Hr="position change";k.Jr="zoom change";k.Zob="vieport navigation";k.Yob="relative navigation";k.Xob="relative exponential navigation"; k.Wob="dragging";return k});define("tdv/player/view/map/control/constants/Movement",["require"],function(){return{dca:"rotateClockwise",eca:"rotateCounterClockwise",Mx:"zoomIn",Nx:"zoomOut",Fg:"stop"}}); define("tdv/player/view/map/control/camera/ManualCameraController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/view/constants/ScaleMode tdv/player/view/util/Device tdv/player/view/map/control/camera/MovementManager tdv/player/view/map/control/camera/MouseManager tdv/player/view/map/control/constants/Movement tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/view/constants/ScaleMode"),k=a("tdv/player/view/util/Device"), e=a("tdv/player/view/map/control/camera/MovementManager"),b=a("tdv/player/view/map/control/camera/MouseManager"),c=a("tdv/player/view/map/control/constants/Movement");a("tdv/constants/EventName");var d=m.extend(n,function(f,l){n.call(this);this.j=f;this.va=l;this.hv=this.w4=this.ha=!1;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.tf=this.uf=100;this.ti=g.uF;this.Ac=new e;this.Hb=new b;k.Jp()?(this.Hb.VY(d.Hca),this.Ac.o$(d.Ica)):(this.Hb.VY(0),this.Ac.o$(1));this.Hb.bind(b.Hr,this.o5a,this,!0);this.Hb.bind(b.Jr, this.ZC,this,!0)});d.prototype.clear=function(){this.Hb.h(b.Hr,this.oqb,this,!0);this.Hb.h(b.Jr,this.ZC,this,!0);this.Hb.Jn();this.j=this.va=this.Ac=this.Hb=null};d.prototype.xl=function(f){switch(f){case c.dca:this.md(0,0,+d.xca,0,0,0,0,0);break;case c.eca:this.md(0,0,-d.xca,0,0,0,0,0);break;case c.Mx:this.md(0,0,0,+d.eR,0,0,0,0);break;case c.Nx:this.md(0,0,0,-d.eR,0,0,0,0);break;case c.Fg:this.md(0,0,0,0,0,0,0,0)}};d.prototype.setPosition=function(f,l,p,q,r,t){this.ec=f;this.fc=l;this.Ed=p;this.kc= q;this.uf=r;this.tf=t;this.Hb.Zc(this.Ed,this.kc,this.uf,this.tf)};d.prototype.Vf=function(){return this.ha&&this.Ac.Vf()};d.prototype.Nb=function(f){this.Ac.Nb(f);this.va.setPosition(this.ec+this.Ac.mea,this.fc+this.Ac.nea,this.Ed+this.Ac.kea,this.kc+this.Ac.K0);this.ec=this.va.getX();this.fc=this.va.getY();this.Ed=this.va.iP();this.kc=this.va.yA()};d.prototype.$Y=function(f){this.hv=f;this.Hb.ulb(!this.hv)};d.prototype.Ra=function(f){(this.ha=f)?this.Hb.bu(this.j.getParent()):this.Hb.Jn()};d.prototype.o5a= function(f){this.md(0,0,0,0,f.data.xDelta,f.data.yDelta,0,0)};d.prototype.ZC=function(f){this.md(0,0,0,0,0,0,0,f.data.zoomDelta)};d.prototype.md=function(f,l,p,q,r,t,u,v){this.Ac.yRa(f,l,p,q,r,t,u,v);this.ij()};d.prototype.ij=function(){this.o(new h(d.Li))};d.Li="position change request";d.Hca=7;d.Ica=.2;d.eR=.5;d.xca=30;return d}); define("tdv/player/view/map/control/camera/SyncFovCameraController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/view/util/Ease tdv/view/util/EaseDimension tdv/player/view/util/Device tdv/player/view/map/control/camera/MovementManager tdv/player/view/map/control/camera/MouseManager tdv/player/view/map/control/constants/Movement tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/view/util/Ease"), k=a("tdv/view/util/EaseDimension"),e=a("tdv/player/view/util/Device"),b=a("tdv/player/view/map/control/camera/MovementManager"),c=a("tdv/player/view/map/control/camera/MouseManager"),d=a("tdv/player/view/map/control/constants/Movement");a("tdv/constants/EventName");var f=m.extend(n,function(l,p){n.call(this);this.j=l;this.va=p;this.ha=!1;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.tf=this.uf=100;this.la=null;this.Yea=!0;this.rd=null;this.U3=0;this.Rv=this.km=this.Nz=void 0;this.Ac=new b;this.Hb=new c; e.Jp()?(this.Hb.VY(f.Hca),this.Ac.o$(f.Ica)):(this.Hb.VY(0),this.Ac.o$(1));this.Hb.bind(c.Jr,this.ZC,this,!0)});f.prototype.clb=function(l,p){this.uf=l;this.tf=p;this.eO()};f.prototype.hB=function(l){this.rd!=l&&(this.rd=l,this.U3=void 0,this.eO())};f.prototype.ur=function(l,p){this.rd==l&&(this.U3=p,this.eO())};f.prototype.eO=function(){if(this.rd&&this.U3!=void 0){var l=this.rd.get("x",0)/this.uf;var p=this.rd.get("y",0)/this.tf;var q=-(this.U3+this.rd.get("angle",0))}else q=p=l=void 0;this.Rv!= q&&(this.Rv=q,this.ij());if(this.Nz!=l||this.km!=p)this.Nz=l,this.km=p,this.D3a(),this.ij()};f.prototype.D3a=function(){this.Yea=!0;this.ij()};f.prototype.HI=function(){if(this.Yea||this.la&&this.la.Ve())if(this.Yea=!1,this.la=null,this.Nz!=void 0&&this.km!=void 0&&this.Rv!=void 0){for(var l=this.Rv-this.Ed;l>180;)l-=360;for(;l<-180;)l+=360;this.ec!=this.Nz||this.fc!=this.km?this.la=new g("quad_in_out",[new k("x",this.ec,this.Nz,1),new k("y",this.fc,this.km,1),new k("angleDif",l,l,360)],500):this.Rv!= this.Ed&&(this.la=new g("quad_in_out",[new k("x",this.ec,this.ec,1),new k("y",this.fc,this.fc,1),new k("angleDif",l,0,360)],500))}};f.prototype.clear=function(){this.Hb.h(c.Jr,this.ZC,this,!0);this.Hb.Jn();this.j=this.va=this.la=this.Ac=this.Hb=null};f.prototype.xl=function(l){switch(l){case d.Mx:this.md(+f.eR,0);break;case d.Nx:this.md(-f.eR,0);break;case d.Fg:this.md(0,0)}};f.prototype.setPosition=function(l,p,q,r,t,u){this.ec=l;this.fc=p;this.Ed=q;this.kc=r;this.Hb.Zc(this.Ed,this.kc,t,u)};f.prototype.Vf= function(){return this.ha&&(this.la||this.Ac.Vf()||this.Nz!=void 0&&this.ec!=this.Nz||this.km!=void 0&&this.fc!=this.km||this.Rv!=void 0&&this.Ed!=this.Rv)?!0:!1};f.prototype.Nb=function(l){this.HI();this.la?(this.la.Nb(l),this.ec=this.la.ob("x"),this.fc=this.la.ob("y"),this.Ed=this.Rv-this.la.ob("angleDif")):(this.Nz!=void 0&&(this.ec=this.Nz),this.km!=void 0&&(this.fc=this.km),this.Rv!=void 0&&(this.Ed=this.Rv));this.Ac.Nb(l);this.va.setPosition(this.ec,this.fc,this.Ed,this.kc+this.Ac.K0);this.ec= this.va.getX();this.fc=this.va.getY();this.Ed=this.va.iP();this.kc=this.va.yA()};f.prototype.Ra=function(l){(this.ha=l)?(this.Hb.bu(this.j.getParent()),this.eO()):this.Hb.Jn()};f.prototype.ZC=function(l){this.md(0,l.data.zoomDelta)};f.prototype.md=function(l,p){this.Ac.yRa(0,0,0,l,0,0,0,p);this.ij()};f.prototype.ij=function(){this.o(new h(f.Li))};f.Li="position change request";f.Hca=7;f.Ica=.2;f.eR=.5;f.xca=30;return f}); define("tdv/player/view/map/control/CameraController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/player/view/map/constants/MovementMode tdv/view/constants/ScaleMode tdv/player/view/map/control/camera/LimitsManager tdv/player/view/map/control/camera/ManualCameraController tdv/player/view/map/control/camera/SyncFovCameraController tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/player/view/map/constants/MovementMode"), k=a("tdv/view/constants/ScaleMode"),e=a("tdv/player/view/map/control/camera/LimitsManager"),b=a("tdv/player/view/map/control/camera/ManualCameraController"),c=a("tdv/player/view/map/control/camera/SyncFovCameraController"),d=a("tdv/constants/EventName"),f=m.extend(n,function(l){n.call(this);this.j=l;this.j.bind(d.Rb,this.kd,this);this.Zo=g.uF;this.rd=null;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.ab=null;this.M4=this.L4=this.Zv=this.Yv=!1;this.pp=!0;this.ha=!1;this.va=new e;this.va.eu(this.Zo); this.rc=new b(this.j,this.va);this.rc.bind(b.Li,this.Es,this,!0);this.Pj=new c(this.j,this.va);this.Pj.bind(c.Li,this.Es,this,!0);this.y4()});f.prototype.clear=function(){this.rc.h(b.Li,this.Es,this);this.rc.clear();this.rc=null;this.Pj.h(c.Li,this.Es,this);this.Pj.clear();this.ab=this.va=this.Pj=null;this.j.h(d.Rb,this.kd,this);this.j=null};f.prototype.stop=function(){this.Ge=this.ab=null;this.ha=!1;this.rc.Ra(!1);this.Pj.Ra(!1);this.Fz(0,0,0)};f.prototype.start=function(l){var p=l.ab,q=p.get("width", 100),r=p.get("height",100),t=p.get("scaleMode",k.uj),u=p.get("minimumZoomFactor",1),v=p.get("maximumZoomFactor",1),w=p.get("initialZoomFactor",1);this.ab=p;this.ha=!0;this.Ge=l.getItem();this.Fz(0,0,0);this.Pj.clb(q,r);this.va.setConfiguration(q,r,t,u,v);this.va.setPosition(.5,.5,0,w);this.j.pra(this.Ge,this.va.getX(),this.va.getY(),this.va.iP(),this.va.yA());this.y4()};f.prototype.xl=function(l){this.rc.xl(l);this.Pj.xl(l)};f.prototype.eu=function(l){this.Zo!=l&&(this.Zo=l,this.va.eu(l),this.y4())}; f.prototype.hB=function(l){this.rd!=l&&(this.rd=l,this.Pj.hB(l),this.y4())};f.prototype.$Y=function(l){this.rc&&this.rc.$Y(l)};f.prototype.ur=function(l,p,q,r){this.Pj.ur(l,p,q,r)};f.prototype.YA=function(l){this.ha&&(this.Pj.Vf()?(this.Pj.Nb(l),this.wn(this.Pj.ec,this.Pj.fc,this.Pj.Ed,this.Pj.kc),this.bb()):this.rc.Vf()?(this.rc.Nb(l),this.wn(this.rc.ec,this.rc.fc,this.rc.Ed,this.rc.kc),this.bb()):this.Fz(0,0,0))};f.prototype.ze=function(){if(this.Ge){var l=this.j.P7(this.Ge),p=this.j.Q7(this.Ge), q=this.j.O7(this.Ge),r=this.j.Bfb(this.Ge),t=this.j.N7(this.Ge),u=this.j.M7(this.Ge),v=l-this.ec,w=p-this.fc,x=r-this.kc;this.ec=l;this.fc=p;this.Ed=q;this.kc=r;this.Fz(v,w,x);this.Pj.setPosition(l,p,q,r,t,u);this.rc.setPosition(l,p,q,r,t,u)}};f.prototype.y4=function(){this.Zo==g.jca&&this.rd!=null&&this.rd.get("map")==this.ab?(this.rc.Ra(!1),this.Pj.Ra(!0)):(this.rc.Ra(!0),this.Pj.Ra(!1))};f.prototype.Es=function(){this.bb()};f.prototype.kd=function(){this.va.setSize(this.j.nb(),this.j.Mb());this.bb()}; f.prototype.bb=function(){this.o(new h(f.oc))};f.prototype.wn=function(l,p,q,r){this.j.pra(this.Ge,l,p,q,r)};f.prototype.Fz=function(l,p,q){l=!1;this.Zv!=q<0&&(this.Zv=!this.Zv,l=!0);this.Yv!=q>0&&(this.Yv=!this.Yv,l=!0);this.L4!=this.nG>0&&(this.L4=!this.L4,l=!0);this.M4!=this.nG<0&&(this.M4=!this.M4,l=!0);this.pp!=(q==0)&&(this.pp=!this.pp,l=!0);l&&this.o(new h(f.Dl,{rotatingClockwise:this.L4,rotatingCounterClockwise:this.M4,zoomingIn:this.Yv,zoomingOut:this.Zv,stopped:this.pp}))};f.oc="request frame"; f.Dl="movement change";return f}); define("tdv/player/view/map/control/DisplayController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/view/constants/ScaleMode tdv/player/view/map/control/camera/LimitsManager".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/view/constants/ScaleMode"),k=a("tdv/player/view/map/control/camera/LimitsManager"),e=m.extend(n,function(b,c){n.call(this);this.P=b;this.j=c;this.va=new k;this.Ah=[];this.sb=e.wo;this.js=this.Vk= this.Um=null;this.Rh=this.P.get("transitionDuration");this.Bn=void 0});e.prototype.eu=function(b){this.va.eu(b)};e.prototype.XW=function(b){b.QX()&&this.Nda();this.Ah.push(b);this.C3()};e.prototype.oe=function(){this.Nda();this.Ah.push(null);this.C3()};e.prototype.clear=function(){this.sb=e.wo;this.Nda();this.W6a();this.Nja();this.j=null};e.prototype.ze=function(b){this.sb==e.wo||this.sb!=e.vo&&this.sb!=e.tL||(this.Bn+=b,b=Math.min(1,this.Bn/this.Rh),this.sb==e.vo?this.j.eB(this.js,b):this.j.eB(this.P0, 1-b),this.Bn0&&this.KXa(this.Ah[0],this.Vk);)this.Ah.shift();this.Ah.length>0&&this.$x()}};e.prototype.KXa=function(b,c){return b==c||!!b&&!!c&&b.isEqual(c)};e.prototype.$x=function(){!this.Vk||this.Ah[0]&&!this.Ah[0].QX()||this.Vk.ab==(this.Ah[0]&&this.Ah[0].ab)||this.o(new h(e.yF,{map:this.Vk.ab}));this.P.get("transitionMode","blending")!="fade_out_fade_in"||!this.Vk||this.Ah[0]&& !this.Ah[0].QX()?(this.js=(this.Um=this.Ah.shift())&&this.Um.getItem(),this.Um?this.Zx():this.Vk&&this.ay()):this.ay()};e.prototype.Zx=function(){this.gXa();this.Um.QX()&&this.S7a();this.Bn=0;this.sb=e.vo;this.bb()};e.prototype.xy=function(){this.Nja();this.Vk=this.Um;this.P0=this.js;this.js=this.Um=null;this.dM()};e.prototype.ay=function(){this.Bn=0;this.sb=e.tL;this.bb()};e.prototype.t0a=function(){this.Nja();this.Vk=null;this.dM()};e.prototype.dM=function(){this.sb=e.wo;this.Vk&&this.Vk.QX()&& this.o(new h(e.zF,{map:this.Vk.ab}));this.Ah.length==0?this.Vk?this.o(new h(e.nba,{level:this.Vk})):this.o(new h(e.Zaa)):this.$x()};e.prototype.S7a=function(){var b=this.Um.ab;this.Um.zk();this.va.setConfiguration(b.get("width",100),b.get("height",100),b.get("scaleMode",g.uj),b.get("minimumZoomFactor",1),b.get("maximumZoomFactor",1));this.va.setPosition(.5,.5,0,b.get("initialZoomFactor",1));this.j.pra(this.js,this.va.getX(),this.va.getY(),this.va.iP(),this.va.yA())};e.prototype.bb=function(){this.o(new h(e.oc))}; e.prototype.Nda=function(){for(;this.Ah.length>0;){var b=this.Ah.shift();b&&this.j.ho(b.getItem())}};e.prototype.gXa=function(){this.Um&&(this.j.Xbb(this.js),this.j.zcb(this.js),this.j.eB(this.js,0),this.o(new h(e.mba,{level:this.Um})))};e.prototype.Nja=function(){this.Vk&&(this.j.removeItem(this.P0),this.o(new h(e.k_,{level:this.Vk})),this.j.ho(this.P0),this.P0=this.Vk=null)};e.prototype.W6a=function(){this.Um&&(this.j.removeItem(this.js),this.o(new h(e.k_,{level:this.Um})),this.j.ho(this.js),this.js= this.Um=null)};e.wo="stopped";e.vo="blending";e.tL="disolving";e.oc="request frame";e.mba="level added";e.k_="level removed";e.nba="level fully displayed";e.Zaa="all pending maps hidden";e.zF="map show";e.yF="map hide";return e}); define("tdv/player/view/map/control/Level",["require"],function(){function a(m,h){this.ab=m;this.lb=m.get("image");this.Qf=h;this.Rga=void 0}a.prototype.getItem=function(){switch(this.Qf){case a.y_:return this.ab.HLa();default:return this.ab.cr()}};a.prototype.zk=function(){switch(this.Qf){case a.y_:return this.ab.xJ();default:return this.ab.Ft()}};a.prototype.QX=function(){return this.Rga===void 0?this.getIndex()==0:this.Rga};a.prototype.Qkb=function(m){this.Rga=m};a.prototype.RX=function(){return this.Qf== a.Fta};a.prototype.isEqual=function(m){return m&&this.ab==m.map&&this.Qf==m.type};a.prototype.getIndex=function(){return this.Qf==a.y_||this.ab.pP()?0:1};a.prototype.bLa=function(){return this.ab.pP()?2:1};a.y_="preload";a.Fta="load";return a}); define("tdv/player/view/map/control/LoadController","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/map/control/Level tdv/player/view/util/Device".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/Event"),k=a("tdv/events/EventDispatcher"),e=a("tdv/player/view/map/control/Level"),b=a("tdv/player/view/util/Device"),c=m.extend(k,function(d){k.call(this); this.j=d;this.Ah=[];this.PR=this.EH=this.Kh=null;this.xH=!1;this.m2=null;this.s3=m.nr(this.s3,this)});c.prototype.clear=function(){this.stop();this.j=null};c.prototype.ENa=function(d,f){if(this.m2!=d||f)this.stop(),this.ab=d,this.ab.Vjb(),h.KD(this.ab,"image.levels.url",this.s3),f=[],d.pP()&&b.ub()&&f.push(new e(d,e.y_)),f.push(new e(d,e.Fta)),f=f.filter(function(l){return l.getItem().rl()}),f.length&&(this.Ah=this.Ah.concat(f),this.C3())};c.prototype.s3=function(){this.reload()};c.prototype.reload= function(){this.ENa(this.ab,!0)};c.prototype.stop=function(){h.da(this.ab,"image.levels.url",this.s3);this.m2=this.ab=null;this.Ah=[];this.IFa();this.xH&&(this.xH=!1,this.Cla(),this.j.ho(this.Kh.getItem()),this.Kh=null,this.o(new g(c.l_)))};c.prototype.C3=function(){this.xH||this.yha()};c.prototype.yha=function(){this.Ah.length>0?(this.Kh=this.Ah.shift(),this.xH||(this.xH=!0,this.o(new g(c.j_,{level:this.Kh,percent:0}))),this.yYa(),this.j.FA(this.Kh.getItem()),this.j.isa(this.Kh.getItem())&&this.hia()): this.xH&&(this.xH=!1,this.o(new g(c.l_)))};c.prototype.hia=function(){this.Cla();this.G9a();this.Kh=null;this.yha()};c.prototype.G9a=function(){this.IFa();this.EH=this.Kh;var d=this;this.PR=setTimeout(function(){d.PR=null;d.Y4a()},500)};c.prototype.Y4a=function(){var d=this.EH.ab;this.EH.Qkb(d!=this.m2);this.m2=d;this.o(new g(c.oba,{level:this.EH}));this.EH=null};c.prototype.IFa=function(){this.PR!=null&&(clearTimeout(this.PR),this.PR=null,this.j.ho(this.EH.getItem()),this.EH=null)};c.prototype.tBa= function(){this.Cla();this.Kh=null;this.yha()};c.prototype.uBa=function(d){this.o(new g(c.j_,{level:this.Kh,percent:d.percent}))};c.prototype.yYa=function(){var d=this.Kh.getItem();d.bind(n.ia,this.hia,this);d.bind(n.$c,this.tBa,this);d.bind(n.xc,this.uBa,this)};c.prototype.Cla=function(){var d=this.Kh.getItem();d.h(n.ia,this.hia,this);d.h(n.$c,this.tBa,this);d.h(n.xc,this.uBa,this)};c.j_="level loading progress";c.oba="level loaded";c.l_="load stopped";return c}); define("tdv/player/view/map/control/overlays/Point",["require"],function(){function a(m,h){this.x=m;this.y=h}a.prototype.rotate=function(m){var h=Math.cos(m);m=Math.sin(m);var n=this.x*m+this.y*h;this.x=this.x*h-this.y*m;this.y=n;return this};a.prototype.translate=function(m,h){this.x+=m;this.y+=h;return this};a.prototype.scale=function(m,h){this.x*=m;this.y*=h;return this};return a}); define("tdv/view/images/ScalableImage",["require","tdv/view/constants/ScaleMode","tdv/view/constants/Alignment"],function(a){function m(g,k,e){this.gj=g;this.wFa=k;this.uFa=e;this.ti=h.GB;this.GC=n.$e;this.JD=n.$d}var h=a("tdv/view/constants/ScaleMode"),n=a("tdv/view/constants/Alignment");m.prototype.gQ=function(g){this.ti=g};m.prototype.eQ=function(g){this.GC=g};m.prototype.kQ=function(g){this.JD=g};m.prototype.WO=function(g,k,e){var b=this.wFa,c=this.uFa,d;switch(this.ti){case h.NONE:var f=d=1; break;case h.uj:d=f=Math.min(k/b,e/c);break;case h.Kr:d=f=Math.max(k/b,e/c);break;case h.Tp:d=f=k/b;break;case h.Pk:d=f=e/c;break;default:d=k/b,f=e/c}var l=Math.min(this.wFa*d,k);d=Math.min(k/d,b);switch(this.GC){case n.fb:b=k=0;break;case n.Db:k-=l;b-=d;break;default:k=(k-l)*.5,b=(b-d)*.5}var p=Math.min(this.uFa*f,e);f=Math.min(e/f,c);switch(this.JD){case n.Tc:c=e=0;break;case n.Hc:e-=p;c-=f;break;default:e=(e-p)*.5,c=(c-f)*.5}g.drawImage(this.gj,Math.round(b),Math.round(c),Math.round(d+b-Math.round(b)), Math.round(f+c-Math.round(c)),Math.round(k),Math.round(e),Math.round(l+k-Math.round(k)),Math.round(p+e-Math.round(e)))};return m}); define("tdv/player/view/map/control/overlays/HotspotMapOverlayMapController","require tdv/constants/EventName tdv/constants/Priority tdv/player/view/map/control/overlays/Point tdv/view/images/ImageLoader tdv/view/images/ScalableImage".split(" "),function(a){function m(b,c,d,f){this.j=b;this.ab=c;this.uf=this.ab.get("width");this.tf=this.ab.get("height");this.Ge=this.ab.cr();this.xza=d;this.mq=f;this.kH=null;if(this.mq){if(this.CN=this.xza.CN,this.Pa=this.mq.get("width"),this.Ha=this.mq.get("height"), this.ec=this.mq.get("x",0),this.fc=this.mq.get("y",0),this.aia=this.mq.get("offsetX",0),this.bia=this.mq.get("offsetY",0),this.hb=this.mq.Ft())this.IC=new k(n.Jm),this.IC.load(this.hb.get("url")),this.IC.bind(h.ia,this.$Ba,this)}else this.IC=null}var h=a("tdv/constants/EventName"),n=a("tdv/constants/Priority"),g=a("tdv/player/view/map/control/overlays/Point"),k=a("tdv/view/images/ImageLoader"),e=a("tdv/view/images/ScalableImage");m.prototype.clear=function(){this.mq=this.xza=this.Ge=this.ab=this.j= null;this.IC&&(this.IC.h(h.ia,this.$Ba,this),this.IC.cancel(),this.IC=null);this.kH=null};m.prototype.uLa=function(b,c){this.yza=void 0;if(this.kH&&b!=void 0&&c!=void 0){var d=this.j.nb()*.5,f=this.j.Mb()*.5,l=this.j.O7(this.Ge)*Math.PI/180,p=this.j.N7(this.Ge),q=this.j.M7(this.Ge),r=this.j.P7(this.Ge),t=this.j.Q7(this.Ge);b=new g(b,c);b.translate(-d,-f);b.rotate(-l);b.scale(1/p,1/q);b.translate(r,t);b.scale(this.uf,this.tf);b.translate(-this.ec,-this.fc);this.CN||(b.rotate(l),b.scale(p/this.uf,q/ this.tf));b.translate(this.aia,this.bia);d=Math.round(b.x);f=Math.round(b.y);d>=0&&d=0&&f0?"#"+this.xda(f[d+0])+this.xda(f[d+1])+this.xda(f[d+2]):"transparent")}return this.yza};m.prototype.$Ba=function(){var b=new e(this.IC.yg(),this.hb.get("width"),this.hb.get("height"));b.gQ(this.mq.get("scaleMode"));b.eQ(this.mq.get("horizontalAlign"));b.kQ(this.mq.get("verticalAlign"));var c=document.createElement("canvas"); c.width=Math.round(this.Pa);c.height=Math.round(this.Ha);var d=c.getContext("2d");b.WO(d,c.width,c.height);this.kH=d.getImageData(0,0,c.width,c.height);c.width=c.height=0};m.prototype.xda=function(b){for(b=b.toString(16);b.length<2;)b="0"+b;return b};return m}); define("tdv/player/view/map/control/overlays/HotspotMapOverlayController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Color tdv/player/view/util/Device tdv/player/view/map/control/overlays/HotspotMapOverlayMapController tdv/view/constants/Cursor tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/util/Color"), e=a("tdv/player/view/util/Device"),b=a("tdv/player/view/map/control/overlays/HotspotMapOverlayMapController"),c=a("tdv/view/constants/Cursor"),d=a("tdv/view/util/Ease"),f=a("tdv/view/util/EaseDimension"),l=m.extend(g,function(p,q,r){g.call(this);this.j=p;this.ab=q;this.Cc=r;this.Ja=this.Cc.getItem();this.Us=this.Cc.LLa();this.Ws=this.Cc.QLa();this.Qy=this.So=void 0;this.P=this.j.getParent();this.P.bind(h.gb,this.tg,this);this.P.bind(h.Eb,this.XT,this);this.P.bind(h.Sa,this.uq,this);this.P.bind(h.$a, this.gz,this);this.P.bind(h.ma,this.fz,this);r.bind(h.L("selected"),this.OCa,this);r.bind(h.L("enabled"),this.Bs,this);this.H2=new b(this.j,this.ab,this.Cc,this.Cc.get("map",null));this.J2=new b(this.j,this.ab,this.Cc,this.Cc.get("rollOverMap",this.Cc.get("map",null)));this.K2=new b(this.j,this.ab,this.Cc,this.Cc.get("selectedMap",this.Cc.get("rollOverMap",this.Cc.get("map",null))));this.H1=new b(this.j,this.ab,this.Cc,this.Cc.get("image",null));this.I1=new b(this.j,this.ab,this.Cc,this.Cc.get("rollOverImage", this.Cc.get("image",null)));this.J1=new b(this.j,this.ab,this.Cc,this.Cc.get("selectedImage",this.Cc.get("rollOverImage",this.Cc.get("image",null))));this.Bd=this.Ad=void 0;this.bO=null;this.Tx=[];this.Ou=[];this.BR=[];this.Ri={};this.rAa=[];this.Jy=!1;this.sma=this.Cc.get("useHandCursor");this.la=null;this.SN=void 0;this.W4=this.J4=this.c2=0;p=this.Cc.get("areas",[]);for(q=0;q0),this.tla(m.difference(p,q),"rollOut"),this.hW())}};l.prototype.hW=function(){for(var p="",q=0;qq.get("useHandCursor")===!0));this.Jy!=p&&((this.Jy=p)?this.j.Y9(c.qf):this.j.WP(c.qf))};l.prototype.k1a=function(){if(this.Cc.get("enabled")===!1)return[];var p=[],q=this.Qy?this.K2:this.So?this.J2:this.H2;q&&(q=q.uLa(this.Ad,this.Bd))&&(this.Ri.any&&(p=p.concat(this.Ri.any)),q=="transparent"&&this.Ri.transparent&&(p=p.concat(this.Ri.transparent)),q!="transparent"&& (p=this.Ri[q]?p.concat(this.Ri[q]):p.concat(this.Ri[k.fkb(q,this.rAa)]||[]),this.Ri.image&&(p=p.concat(this.Ri.image))));if(q=this.Qy?this.J1:this.So?this.I1:this.H1)if(q=q.uLa(this.Ad,this.Bd))this.Ri.any&&(p=p.concat(this.Ri.any)),q=="transparent"&&this.Ri.transparent&&(p=p.concat(this.Ri.transparent)),q!="transparent"&&this.Ri.image&&(p=p.concat(this.Ri.image));q=[];for(var r=0;r=0&&this.iT.splice(d,1);this.Uga(c)||(this.ZDa(c),this.Pja(c))};b.prototype.Uga=function(c){return this.iT.includes(c)};b.prototype.ze=function(c){for(var d=0;d=0&&b.splice(c,1)}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/view/images/ImageLoader"),e=a("tdv/player/view/image/RepositoryEntry");m.prototype.isa=function(b){b=b.eE();for(var c=0,d=b.length;cr!==b);for(var d=b.eE(),f=0,l=d.length;fu!==d))}};m.prototype.lS=function(b){var c= this.Xxa[b];c||(this.Xxa[b]=c=new e);return c};m.prototype.Uya=function(b){for(var c=[],d=0;d0&&this.Pa>=1&& this.Ha>=1){h.save();var n=Math.round(this.Uy),g=Math.round(this.ct),k=Math.round(this.Pa*this.Ev),e=Math.round(this.Ha*this.Fv);h.scale(this.ne,this.ne);h.translate(n+k,g+e);h.rotate(this.jl*Math.PI/180);h.globalAlpha=this.Of;h.drawImage(this.ja,-k,-e);h.restore()}};m.prototype.B7=function(){this.ja.width=this.ja.height=1;this.U1=this.S1=!0};m.Gta=Math.min(window.devicePixelRatio||1,a.Nd()==a.uB?2:Infinity);m.ul=m.Gta;m.kVa=a.Nd()==a.vj?16E6:256E6;return m}); define("tdv/player/view/map/renderer/renderers/ItemContainerRenderer",["require","tdv/utils","tdv/player/view/map/renderer/renderers/ItemRenderer"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/renderers/ItemRenderer");a=m.extend(h,function(n,g){h.call(this,n,g);this.rf=[];this.v6=null;this.Mma=!0});a.prototype.$Ha=function(n){n=this.cea(n);if(!n)throw"Container renderer can't create child renderer for an item";this.rf.push(n);this.t8();this.q8()};a.prototype.cea=function(){}; a.prototype.nQa=function(n){var g=this.kw(n);g&&(this.rf=this.rf.filter(k=>k!==g),this.t8(),this.q8())};a.prototype.bX=function(n){for(var g=h.prototype.bX.call(this,n),k=0;kg!==n);this.rf.push(n);this.t8();this.q8()};a.prototype.t8=function(){this.Mma=!0;this.Tf()};a.prototype.q8=function(){this.p8()};a.prototype.jb=function(){h.prototype.jb.call(this);for(var n=0;n0||g>0){var e=this.cn*this.Y3,b=this.cn*this.X3;e=Math.ceil(Math.sqrt(e*e+b*b))*this.Ja.xA()/this.ne;b=Math.round(this.Pa*.5);var c=Math.round(this.Ha*.5),d=this.kb*Math.PI/ 180,f=-d*.5;d=f+d;k>0&&(this.ga.fillStyle=this.Ja.g6a,this.ga.globalAlpha=k,this.ga.rect(0,0,this.Pa,this.Ha),this.ga.fill(),this.ga.globalCompositeOperation="destination-out",this.ga.fillStyle="#FFFFFF",this.ga.globalAlpha=1,this.ga.beginPath(),this.ga.moveTo(b,c),this.ga.arc(b,c,e,f,d,!1),this.ga.lineTo(b,c),this.ga.closePath(),this.ga.fill(),this.ga.globalCompositeOperation="source-over");g>0&&(this.ga.fillStyle=this.Ja.t3a,this.ga.globalAlpha=g,this.ga.beginPath(),this.ga.moveTo(b,c),this.ga.arc(b, c,e,f,d,!1),this.ga.lineTo(b,c),this.ga.closePath(),this.ga.fill())}h.prototype.gh.call(this)};return a}); define("tdv/player/view/map/renderer/renderers/ImageOverlayRenderer","require tdv/utils tdv/player/view/map/renderer/renderers/ItemRenderer tdv/player/view/map/renderer/renderers/OverlayRenderer tdv/player/view/image/Repository tdv/view/images/ScalableImage".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/renderers/ItemRenderer"),n=a("tdv/player/view/map/renderer/renderers/OverlayRenderer"),g=a("tdv/player/view/image/Repository"),k=a("tdv/view/images/ScalableImage"); a=m.extend(n,function(e,b){n.call(this,e,b);this.UEa(this.Ja.sEa?0:2);this.Id=g.yg(this.Ja.rl());this.P4=new k(this.Id,this.Id.width,this.Id.height);this.P4.gQ(this.Ja.ti);this.P4.kQ(this.Ja.mP());this.P4.eQ(this.Ja.kP());this.gT=0;this.cn=1;this.Dha=!0});a.prototype.w$=function(e,b){if(this.gT!=e||this.cn!=b)this.gT=e,this.cn=b,this.Dha=!0,this.Tf()};a.prototype.Sh=function(){if(this.Dha){this.Dha=!1;var e=this.Ja.getX(),b=this.Ja.getY(),c=this.Ja.hg(),d=this.Ja.xg(),f=this.Ja.CLa(),l=this.Ja.DLa(); if(this.Ja.sEa)this.e5(0),this.wn((e-f)*this.cn,(b-l)*this.cn),this.mV(c*this.cn,d*this.cn);else{c*=h.ul;d*=h.ul;f*=h.ul;l*=h.ul;var p=Math.cos(-this.gT*Math.PI/180),q=Math.sin(-this.gT*Math.PI/180);e=e*this.cn-this.Ev*c-(f-this.Ev*c)*p+(l-this.Fv*d)*q;b=b*this.cn-this.Fv*d-(l-this.Fv*d)*p-(f-this.Ev*c)*q;this.e5(-this.gT);this.wn(e,b);this.mV(c,d)}}n.prototype.Sh.call(this)};a.prototype.gh=function(){this.P4.WO(this.ga,this.ja.width,this.ja.height);n.prototype.gh.call(this)};return a}); define("tdv/player/view/map/renderer/renderers/MapRenderer","require tdv/utils tdv/view/constants/ScaleMode tdv/player/view/image/Repository tdv/player/view/map/renderer/item/Item tdv/player/view/map/renderer/item/Overlay tdv/player/view/map/renderer/renderers/FovOverlayRenderer tdv/player/view/map/renderer/renderers/ImageOverlayRenderer tdv/player/view/map/renderer/renderers/ItemContainerRenderer".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/view/constants/ScaleMode"),n=a("tdv/player/view/image/Repository"), g=a("tdv/player/view/map/renderer/item/Item"),k=a("tdv/player/view/map/renderer/item/Overlay"),e=a("tdv/player/view/map/renderer/renderers/FovOverlayRenderer"),b=a("tdv/player/view/map/renderer/renderers/ImageOverlayRenderer"),c=a("tdv/player/view/map/renderer/renderers/ItemContainerRenderer");a=m.extend(c,function(d,f){c.call(this,d,f,d.xq);this.ji=this.Ja.hg();this.gk=this.Ja.xg();this.ti=this.Ja.ti;this.U0a=this.Ja.T0a;this.Ng=this.Og=100;this.Vda=!0;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.p4= !0;this.Mj=1;this.Id=n.yg(this.Ja.rl())});a.prototype.cea=function(d){if(d.getType()!=g.Oua)throw"Invalid item type";switch(d.j6a){case k.Lua:d=new e(d,this);break;case k.Mua:d=new b(d,this);break;default:d=null}d&&d.w$(this.Ed,this.Mj*this.kc);return d};a.prototype.getX=function(){return this.ec};a.prototype.getY=function(){return this.fc};a.prototype.iP=function(){return this.Ed};a.prototype.yA=function(){return this.kc};a.prototype.nb=function(){return Math.round(this.ji*this.kc*this.Mj)};a.prototype.Mb= function(){return Math.round(this.gk*this.kc*this.Mj)};a.prototype.l$=function(d,f){if(this.Og!=d||this.Ng!=f)this.Og=d,this.Ng=f,this.Vda=!0,this.Tf()};a.prototype.setPosition=function(d,f,l,p){if(this.ec!=d||this.fc!=f||this.Ed!=l||this.kc!=p)this.ec=d,this.fc=f,this.Ed=l,this.kc=p,this.p4=!0,this.Tf()};a.prototype.Sh=function(){if(this.Vda){this.Vda=!1;switch(this.ti){case h.NONE:this.Mj=1;break;case h.Tp:this.Mj=this.Og/this.ji;break;case h.Pk:this.Mj=this.Ng/this.gk;break;case h.Kr:this.Mj=this.ji* this.Ng>this.gk*this.Og?this.Ng/this.gk:this.Og/this.ji;break;default:this.Mj=this.ji*this.Ng>this.gk*this.Og?this.Og/this.ji:this.Ng/this.gk}this.p4=!0}if(this.p4){this.p4=!1;var d=this.nb(),f=this.Mb(),l=Math.cos(this.Ed*Math.PI/180),p=Math.sin(this.Ed*Math.PI/180);this.wn(this.Og*.5-this.Ev*d+(this.Ev-this.ec)*l*d-(this.Fv-this.fc)*p*f,this.Ng*.5-this.Fv*f+(this.Fv-this.fc)*l*f+(this.Ev-this.ec)*p*d);this.e5(this.Ed);this.mV(d,f);for(d=0;d=0&&this.xC.splice(f,1);this.eHa()};a.prototype.eHa=function(){var f=this.xC.length>0?this.xC[this.xC.length-1]:c.De;this.getParent().set("cursor",f)};a.prototype.t0=function(){this.xC.length>0&&(this.getParent().set("cursor",c.De),this.xC=[])};a.prototype.tjb=function(f){this.DI.push(f); this.hW()};a.prototype.mjb=function(f){f=this.DI.lastIndexOf(f);f>=0&&this.DI.splice(f,1);this.hW()};a.prototype.hW=function(){var f=this.DI.length==0?"":this.DI[this.DI.length-1]||"";this.jc!=f&&(this.jc=f,this.getParent().set("toolTip",this.jc))};a.prototype.AZa=function(){this.jc&&this.getParent().set("toolTip","");this.jc="";this.DI=[]};a.prototype.np=function(){this.AZa();this.t0();d.prototype.np.call(this)};a.prototype.kd=function(){this.YGa();this.ama()};a.prototype.YGa=function(){var f=this.oi.cc(); f.style.transform=k.ul!=1?"scale("+(1/k.ul).toFixed(3)+")":"none";f.style.transformOrigin="0% 0%";this.oi.setSize(this.nb()*k.ul,this.Mb()*k.ul);this.render()};a.prototype.cp=function(){this.Vja=!0;this.dma()};a.prototype.ap=function(){this.Vja=!1;this.dma()};a.prototype.dma=function(){var f=this.Vja&&!b.isPresenting;this.Wja!=f&&((this.Wja=f)?(this.kd(),this.render()):this.oi.B7())};return a}); define("tdv/player/script/MapPlayer","require tdv/utils tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/script/MediaPlayer tdv/player/view/map/control/Controller tdv/player/view/map/control/constants/Movement tdv/player/view/map/renderer/Renderer tdv/constants/EventName tdv/view/constants/ButtonMode tdv/view/constants/State".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/ButtonProperty"), k=a("tdv/player/script/MediaPlayer"),e=a("tdv/player/view/map/control/Controller"),b=a("tdv/player/view/map/control/constants/Movement"),c=a("tdv/player/view/map/renderer/Renderer"),d=a("tdv/constants/EventName"),f=a("tdv/view/constants/ButtonMode"),l=a("tdv/view/constants/State"),p=n.define("MapPlayer",k,function(){k.call(this,"map");this.Z2=this.Cha=this.jj=!1;this.hp=this.rd=this.U=this.j=null;this.hC={};for(var q in p.Ox)this.hC[q]=this.ZZa(q);this.be=m.nr(this.Sh,this)});p.prototype.stop=function(){this.md(b.Fg)}; p.prototype.rotateClockwise=function(){this.md(b.dca)};p.prototype.rotateCounterClockwise=function(){this.md(b.eca)};p.prototype.zoomIn=function(){this.md(b.Mx)};p.prototype.zoomOut=function(){this.md(b.Nx)};p.prototype.set=function(q,r){if(this.get(q)!=r){switch(q){case "map":this.Cha=!0;this.be();break;case "viewerArea":this.jj=!0;this.be();break;case "panoramaMapLocation":this.Wia=!0;this.be();break;case "movementMode":this.Z2=!0,this.be()}k.prototype.set.call(this,q,r)}};p.prototype.ZZa=function(q){var r= p.Ox[q];q=new g(this,q,f.af);q.bind(d.Sa,function(){this.md(r.movement)},this);r.stopOnRelease&&q.bind(d.$a,function(){this.md(b.Fg)},this);return q};p.prototype.ccb=function(q){this.hp=null;this.set("map",q.get("map"));this.set("panoramaMapLocation",q)};p.prototype.Hjb=function(q){this.get("panoramaMapLocation")==q&&(this.set("panoramaMapLocation",null),this.hp=null)};p.prototype.ur=function(q,r,t,u){this.U&&this.U.ur(q,r,t,u);this.hp={yaw:r,pitch:t,hfov:u}};p.prototype.Sh=function(){this.jj&&(this.jj= !1,this.ny(),this.get("viewerArea")&&this.my(),this.oV(this.get("viewerArea")));if(this.U){if(this.Cha){this.Cha=!1;var q=this.get("map");q?(this.hK(),this.U.uRa(q)):this.U.bB();this.Wia=this.Z2=!0}this.Wia&&(this.Wia=!1,q=this.get("panoramaMapLocation"),this.U.hB(q),q&&this.hp&&this.U.ur(q,this.hp.yaw,this.hp.pitch,this.hp.hfov));this.Z2&&(this.Z2=!1,this.U.eu(this.get("movementMode")))}};p.prototype.TN=function(){this.set("map",null)};p.prototype.my=function(){var q=this.get("viewerArea");this.j= new c;this.j.xa({left:0,top:0,bottom:0,right:0});q.mb(this.j);this.U=new e(q,this.j);this.U.bind(e.Dl,this.Cs,this);this.U.bind(e.vx,this.Gj,this);this.U.bind(e.xF,this.ZM,this);this.U.bind(e.zF,this.XC,this);this.U.bind(e.yF,this.cz,this);this.U.bind(e.tj,this.kU,this,!0)};p.prototype.ny=function(){this.j&&(this.U.h(e.Dl,this.Cs,this),this.U.h(e.vx,this.Gj,this),this.U.h(e.xF,this.ZM,this),this.U.h(e.zF,this.XC,this),this.U.h(e.yF,this.cz,this),this.U.h(e.tj,this.kU,this),this.U.clear(),this.j.getParent().removeChild(this.j), this.j=null)};p.prototype.XC=function(q){this.nT(q.data.map)};p.prototype.cz=function(q){this.mT(q.data.map)};p.prototype.Cs=function(q){for(var r in p.Ox)this.hC[r].set("state",q.data[p.Ox[r].pressedOn]?l.Fb:l.De);this.o(new h(d.Pta,q.data))};p.prototype.kU=function(q){this.o(new h(p.tj,{yawDelta:q.data.yawDelta}))};p.prototype.Gj=function(q){this.j.getParent().xa({progressPercent:q.data.percent,progressVisible:!0})};p.prototype.ZM=function(){this.j.getParent().set("progressVisible",!1)};p.prototype.md= function(q){this.U&&this.U.xl(q)};p.Ox={buttonRotateClockwise:{movement:b.dca,pressedOn:"rotatingClockwise",stopOnRelease:!0},buttonRotateCounterClockwise:{movement:b.eca,pressedOn:"rotatingCounterClockwise",stopOnRelease:!0},buttonZoomIn:{movement:b.Mx,pressedOn:"zoomingIn",stopOnRelease:!0},buttonZoomOut:{movement:b.Nx,pressedOn:"zoomingOut",stopOnRelease:!0}};p.tj="requestYawChange";return p}); define("tdv/player/script/PlayListItem","require exports tdv/player/parser/ClassInfo tdv/constants/EventName tdv/events/Event tdv/binding/Bindable".split(" "),function(a,m,h,n,g,k){a=function(e){function b(){var c=e.call(this)||this;c.I="stopped";return c}P(b,e);b.prototype.get=function(c,d){d===void 0&&(d=void 0);return c=="state"?this.I:k.prototype.get.call(this,c,d)};b.prototype.start=function(){this.inb()};b.prototype.inb=function(){if(this.I=="stopped"||this.I=="stopping")this.I="startin",this.o(new g(n.Up))}; b.prototype.PD=function(){this.aTa()};b.prototype.aTa=function(){if(this.I=="startin"||this.I=="stopping")this.I="playing",this.o(new g(n.Dr))};b.prototype.stop=function(){this.uQ()};b.prototype.uQ=function(){if(this.I=="playing"||this.I=="startin")this.I="stopping",this.o(new g(n.Fg))};b.prototype.end=function(){this.bTa()};b.prototype.bTa=function(){if(this.I=="stopping"||this.I=="startin")this.I="stopped",this.o(new g(n.Ub))};return b}(k);h.create("PlayListItem",a);return a}); define("tdv/player/script/MapPlayListItem",["require","tdv/player/parser/ClassInfo","tdv/player/script/MediaPlayer","tdv/player/script/PlayListItem"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/MediaPlayer"),n=a("tdv/player/script/PlayListItem");a=m.define("MapPlayListItem",n,function(){n.call(this)});a.prototype.start=function(){n.prototype.start.call(this);var g=this.get("player");g&&(g.bind(h.di,this.XC,this),g.set("map",this.get("media")))};a.prototype.stop=function(){var g= this.get("player");g&&g.get("map")==this.get("media")&&g.set("map",null);n.prototype.stop.call(this)};a.prototype.XC=function(){this.get("player").h(h.di,this.XC,this);this.get("player").bind(h.oo,this.cz,this);this.PD();this.get("player").get("map")!=this.get("media")&&this.cz()};a.prototype.cz=function(){this.get("player").h(h.oo,this.cz,this);this.stop();this.end()};return a}); define("tdv/player/script/MeasureModel3DObject",["require","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/ExternalModel3DObject"],function(a){var m=a("tdv/constants/EventName"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/script/ExternalModel3DObject"),g=h.define("MeasureModel3DObject",n,function(){n.call(this);this.bind(m.L("mode"),function(){this.o(g.IUa)},this,!0);this.bind(m.L("distance"),function(){this.o(g.EUa)},this,!0)});g.IUa="modeChange";g.EUa="distanceChange"; return g});define("tdv/player/script/MeasureModel3DObjectPoint",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("MeasureModel3DObjectPoint",m,function(){m.call(this)})}); define("tdv/player/script/OrbitModel3DCamera",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DCamera"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DCamera");return m.define("OrbitModel3DCamera",h,function(){h.call(this)})}); define("tdv/player/view/util/LoadingGroup",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher"],function(a,m,h,n){var g=function(){return function(k){this.tJa=k;this.percent=0;this.finished=!1}}();return function(k){function e(b){var c=k.call(this)||this;c.To=new Map;c.fM=b||c;return c}P(e,k);e.prototype.Bkb=function(b){if(this.fM=b)this.hh(),this.Z5()};e.prototype.update=function(){this.hh();this.Z5()};e.prototype.kJa=function(){this.To.forEach(function(b,c){this.z4(c)}.bind(this)); this.To=new Map};e.prototype.pj=function(){var b=0;this.To.forEach(function(c){c.finished&&b++});return b==this.To.size};e.prototype.dispose=function(){this.kJa();this.To.clear();this.fM=void 0};e.prototype.uO=function(b,c){c===void 0&&(c=1);if(this.To.has(b))return b;this.To.set(b,new g(c));this.pXa(b);return b};e.prototype.$P=function(b){this.To.has(b)&&(this.To["delete"](b),this.z4(b))};e.prototype.iw=function(b){b===void 0&&(b=1);var c=new n;return this.uO(c,b)};e.prototype.Pe=function(b){b=b.source; var c=this.To.get(b);c&&(this.z4(b),c.percent=100,c.finished=!0,this.hh(),this.Z5())};e.prototype.Gj=function(b){this.To.get(b.source).percent=b.data.percent;this.hh()};e.prototype.yh=function(b){b=b.source;this.z4(b);b=this.To.get(b);b.finished=!0;b.percent=100;this.fM.o(h.$c);this.hh();this.Z5()};e.prototype.hh=function(){var b=0,c=0;this.To.forEach(function(d){c+=d.tJa;b+=d.percent*d.tJa});this.fM.o(h.xc,{percent:c?b/c:100})};e.prototype.Z5=function(){this.pj()&&this.fM.o(h.ia)};e.prototype.pXa= function(b){b.bind(h.ia,this.Pe,this,!0);b.bind(h.xc,this.Gj,this,!0);b.bind(h.$c,this.yh,this,!0)};e.prototype.z4=function(b){b.h(h.ia,this.Pe,this);b.h(h.xc,this.Gj,this);b.h(h.$c,this.yh,this)};return e}(n)}); define("tdv/player/script/Model3D","require tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/script/Media tdv/player/script/OrbitModel3DCamera tdv/player/view/util/LoadingGroup".split(" "),function(a){function m(r,t){Array.isArray(t)?r.fromArray(t):r.copy(t);return r}function h(r,t){Array.isArray(t)?r.fromArray(t):r.copy(t);return r}function n(r,t){if(Array.isArray(t))return r.toArray(t);t.x=r.x;t.y=r.y;t.z=r.z;return t}var g=a("tdv/constants/EventName"), k=a("tdv/constants/PlaybackState"),e=a("tdv/player/parser/ClassInfo"),b=a("tdv/player/script/Media"),c=a("tdv/player/script/OrbitModel3DCamera"),d=a("tdv/player/view/util/LoadingGroup");a=e.define("Model3D",b,function(){b.call(this);this.set("camera",new c);this.set("geometryQuery",void 0);this.set("objectQuery",void 0);this.set("metadataQuery",void 0);this.set("preload",!0)});a.prototype.Sqa=function(){this.Lj&&(this.Lj.h(g.ia,this.cN,this),this.Lj.dispose());this.Lj=new d;this.Lj.bind(g.ia,this.cN, this,!0);this.sf&&this.sf.dispose();this.sf=new d(this)};a.prototype.cN=function(){this.o(g.YF)};a.prototype.R7=function(){this.sf||this.Sqa();return this.sf};a.prototype.V7=function(){this.Lj||this.Sqa();return this.Lj};a.prototype.pause=function(){this.get("state")==k.PLAYING&&this.set("state",k.$b)};a.prototype.play=function(){this.set("state",k.PLAYING)};a.prototype.stop=function(){this.set("state",k.ca)};a.prototype.worldPositionToLocal=function(r,t){h(f,r);m(p,t);p.invert();f.applyMatrix4(p); return n(f,r)};a.prototype.getMatrixWorld=function(r){var t=this.get("objectQuery");return t&&t.wLa(r)};a.prototype.worldDirectionToLocal=function(r,t){h(f,r);m(q,t);p.extractRotation(q);p.invert();f.applyMatrix4(p);return n(f,r)};a.prototype.testIntersection=function(r,t){var u=this.get("geometryQuery");if(u)return h(f,r),h(l,t),u.CK(f,l)};a.prototype.getDistanceToFloor=function(r){var t=this.get("geometryQuery");if(t)return h(f,r),t.mfb(f)};a.prototype.getMetadata=function(){var r=this.get("metadataQuery"); if(r)return r.getMetadata()};a.prototype.pick=function(r,t){var u=this.get("picker");if(u)return u.rqa(r,t)};a.prototype.getScreenPosition=function(r,t){var u=this.get("projectionQuery");if(u)return u.Joa(h(f,r),t)};var f=new THREE.Vector3,l=new THREE.Vector3,p=new THREE.Matrix4,q=new THREE.Matrix4;a.prototype.tw=function(){return[]};return a}); define("tdv/player/script/Model3DAnimation",["require","tdv/binding/Bindable","tdv/constants/PlaybackState","tdv/constants/EventName","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/PlaybackState"),n=a("tdv/constants/EventName");a=a("tdv/player/parser/ClassInfo").define("Model3DAnimation",m,function(){m.call(this);this.bind(n.L("state"),function(){this.o(n.Pd)},this,!0)});a.prototype.pause=function(){this.get("state")==h.PLAYING&&this.set("state",h.$b)}; a.prototype.play=function(){this.set("currentDirection","forward");this.set("state",h.PLAYING)};a.prototype.reverse=function(){this.set("currentDirection","backward");this.set("state",h.PLAYING)};a.prototype.stop=function(){this.set("currentTime",0);this.set("state",h.ca)};return a}); define("tdv/player/script/Model3DCameraSequence",["require","tdv/binding/Bindable","tdv/constants/PlaybackState","tdv/player/parser/ClassInfo","tdv/constants/EventName"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/PlaybackState"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/constants/EventName");a=n.define("Model3DCameraSequence",m,function(){m.call(this);this.set("state",h.ca);this.bind(g.L("state"),function(){this.o(g.Pd)},this,!0)});a.prototype.play=a.prototype.play=function(){this.set("state", h.PLAYING)};a.prototype.pause=a.prototype.pause=function(){this.get("state")==h.PLAYING&&this.set("state",h.$b)};a.prototype.stop=a.prototype.stop=function(){this.set("state",h.ca)};return a});define("tdv/player/script/Model3DDisplayEffect",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("Model3DDisplayEffect",m,function(){m.call(this)})}); define("tdv/player/script/PlaybackMediaPlayer","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/script/helper/ButtonProperty tdv/player/script/MediaPlayer tdv/constants/PlaybackState tdv/view/constants/ButtonMode tdv/view/constants/State".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/script/helper/ButtonProperty"),k=a("tdv/player/script/MediaPlayer"),e=a("tdv/constants/PlaybackState"),b=a("tdv/view/constants/ButtonMode"), c=a("tdv/view/constants/State");a=m.extend(k,function(){k.call(this,!0);this.wv=!1;this.RN=!0;this.I=e.ca;this.yG=new g(this,"buttonPlayPause",b.bk);this.yG.bind(h.Rk,this.z5a,this,!0);this.yG.bind(h.Nm,this.A5a,this,!0);this.GL=new g(this,"buttonPause",b.af);this.GL.bind(h.ma,this.WH,this,!0);this.HL=new g(this,"buttonPlay",b.af);this.HL.bind(h.ma,this.XH,this,!0);this.JL=new g(this,"buttonStop",b.af);this.JL.bind(h.ma,this.cD,this,!0);this.YYa=new g(this,"buttonRestart",b.af);this.YYa.bind(h.ma, this.bD,this,!0);this.Oza=m.nr(this.Rab,this);this.Oza()});a.prototype.set=function(d,f){d!="state"&&k.prototype.set.call(this,d,f)};a.prototype.get=function(d,f){switch(d){case "state":return this.I}return k.prototype.get.call(this,d,f)};a.prototype.Rab=function(){this.RN&&(this.RN=!1,this.GL.set("state",this.I==e.$b?c.Fb:c.De),this.HL.set("state",this.I==e.PLAYING||this.I==e.$b?c.Fb:c.De),this.yG.set("pressed",this.I==e.PLAYING),this.JL.set("state",this.I==e.ca?c.Fb:c.De))};a.prototype.xD=function(d){this.wv!= d&&((this.wv=d)||this.Jd(e.ca))};a.prototype.Jd=function(d){var f=this.I;this.I=d;k.prototype.set.call(this,"state",d);f!=this.I&&(this.RN=!0,this.Oza(),this.o(new n(h.Pd,{oldState:f,state:this.I})))};a.prototype.WH=function(){this.wv&&(this.I==e.$b?this.tn():this.tv())};a.prototype.XH=function(){this.wv&&this.tn()};a.prototype.z5a=function(){this.wv&&this.tn()};a.prototype.A5a=function(){this.wv&&this.tv()};a.prototype.cD=function(){this.wv&&this.Zs()};a.prototype.bD=function(){this.wv&&(this.Zs(), this.tn())};a.prototype.tn=function(){};a.prototype.tv=function(){};a.prototype.Zs=function(){};return a}); define("tdv/player/view/common/MediaDisplayController",["require","exports","tdv/view/util/Animation","tdv/events/EventDispatcher","tdv/player/view/util/XR"],function(a,m,h,n,g){var k={isEqual:function(e){return e==this}};return function(e){function b(c){var d=e.call(this)||this;d.P=c;d.jp=null;d.li=null;d.cf=null;d.Rh=0;d.Bn=0;d.sb=b.wo;return d}P(b,e);b.prototype.display=function(c){this.jp=null;c.isEqual(this.cf)&&this.sb==b.wo||(this.P.Pma(this),this.jp=c,this.nCa())};b.prototype.oe=function(){if(this.cf|| this.li)this.jp=k,this.nCa()};b.prototype.clear=function(){this.sb=b.wo;this.jp=null;if(this.cf||this.li)this.li&&(this.xN(this.li),this.li=null),this.cf&&(this.xN(this.cf),this.cf=null),this.P.release(this)};b.prototype.Yg=function(c){this.sb==b.wo||this.sb!=b.vo&&this.sb!=b.tL&&this.sb!=b.iR||(this.Bn+=c,c=Math.min(1,this.Bn/this.Rh),this.sb==b.vo?this.FT(c):this.sb==b.iR?this.JT(c):this.IT(c),this.Bn{this.o(new n(e.CF,{model:b.model}))}))};e.prototype.xN=function(b){b.model&&(this.j.rQa(b.model),this.o(new n(e.qba,{model:b.model})))};e.oc="request frame";e.pba="model added";e.qba= "model removed";e.CF="model start";e.BF="model show";e.AF="model hide";e.$aa="all pending models hidden";return e}); define("tdv/player/view/model3d/controller/LoadController",["require","tdv/utils","tdv/events/EventDispatcher","tdv/constants/EventName"],function(a){var m=a("tdv/utils"),h=a("tdv/events/EventDispatcher"),n=a("tdv/constants/EventName");a=m.extend(h,function(g,k){h.call(this);this.P=g;this.j=k;this.xh=null});a.prototype.clear=function(){this.stop();this.j=null};a.prototype.load=function(g){g!=this.xh&&(this.stop(),this.j.Ggb(g)?(this.sGa(g),this.P5(g)):(this.xh=g,this.xh.set("opacity",0),this.CYa(), this.j.cIa(this.xh)))};a.prototype.stop=function(){this.xh&&(this.Ela(),this.j.rQa(this.xh),this.xh=null)};a.prototype.cN=function(){this.vGa();this.sGa(this.xh)};a.prototype.Pe=function(){this.xh.f8(n.YF)&&this.cN();this.Ela();var g=this.xh;this.xh=null;this.P.set("progressVisible",!1);this.P5(g)};a.prototype.yh=function(){this.Ela();this.xh=null;this.P.set("progressVisible",!1)};a.prototype.Gj=function(g){this.P.xa({progressPercent:g.data.percent,progressVisible:!0})};a.prototype.FYa=function(){this.xh.bind(n.YF, this.cN,this,!0)};a.prototype.vGa=function(){this.xh.h(n.YF,this.cN,this,!0)};a.prototype.CYa=function(){this.FYa();this.xh.bind(n.ia,this.Pe,this,!0);this.xh.bind(n.xc,this.Gj,this,!0);this.xh.bind(n.$c,this.yh,this,!0)};a.prototype.Ela=function(){this.vGa();this.xh.h(n.ia,this.Pe,this,!0);this.xh.h(n.xc,this.Gj,this,!0);this.xh.h(n.$c,this.yh,this,!0)};a.prototype.sGa=function(g){this.o(n.YF,{model:g})};a.prototype.P5=function(g){this.o(n.ia,{model:g})};a.prototype.Jhb=function(){return this.xh&& this.xh.f8(n.YF)};a.rta=n.YF;a.ota=n.ia;return a}); define("tdv/player/view/model3d/controller/PlaybackController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/constants/PlaybackState".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/PlaybackState"),e=m.extend(g,function(){g.call(this);this.Fa=null;this.I=k.ca});e.prototype.start=function(b){this.Fa=b;this.Fa.bind(h.L("camera"),this.fia,this,!0);this.Fa.bind(h.L("state"), this.Gia,this,!0);this.Fa.bind(h.L("currentTime"),this.L3,this,!0);this.Fa.bind(h.L("duration"),this.L3,this,!0);this.Gia();this.fia()};e.prototype.end=function(){this.stop();this.zc&&(this.zc.h(h.L("state"),this.GT,this,!0),this.zc=null);this.Fa&&(this.Fa.h(h.L("camera"),this.fia,this,!0),this.Fa.h(h.L("state"),this.Gia,this,!0),this.Fa.h(h.L("currentTime"),this.L3,this,!0),this.Fa.h(h.L("duration"),this.L3,this,!0),this.Fa=null)};e.prototype.clear=function(){this.end()};e.prototype.play=function(){this.Fa&& this.Fa.set("state",k.PLAYING)};e.prototype.pause=function(){this.Fa&&this.Fa.set("state",k.$b)};e.prototype.stop=function(){this.Fa&&this.Fa.set("state",k.ca)};e.prototype.setTime=function(b){this.Fa&&this.Fa.set("currentTime",b)};e.prototype.getTime=function(){return this.Fa&&this.Fa.get("currentTime")||void 0};e.prototype.Gia=function(){var b=this.Fa.get("state");this.I!=b&&(this.I=b,this.zc&&this.zc.set("state",b),this.o(new n(e.gd,{state:this.I})))};e.prototype.L3=function(){this.o(new n(e.Ok, {model:this.Fa,time:this.Fa.get("currentTime"),duration:this.Fa.get("duration")}));this.GT()};e.prototype.fia=function(){this.zc&&this.zc.h(h.L("state"),this.GT,this,!0);(this.zc=this.Fa.get("camera"))&&this.zc.bind(h.L("state"),this.GT,this,!0);this.GT()};e.prototype.GT=function(){this.Fa.get("duration")===0&&this.Fa.set("state",this.zc?this.zc.get("state"):k.ca)};e.gd="playback state change";e.Ok="time change";return e}); define("tdv/player/view/model3d/controller/Controller","require tdv/utils tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/player/view/model3d/controller/DisplayController tdv/player/view/model3d/controller/LoadController tdv/player/view/model3d/controller/PlaybackController".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/PlaybackState"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/model3d/controller/DisplayController"), e=a("tdv/player/view/model3d/controller/LoadController"),b=a("tdv/player/view/model3d/controller/PlaybackController"),c=m.extend(g,function(d,f){g.call(this);this.P=d;this.j=f;this.j.set("visible",!1);this.Fe=new e(this.P,this.j);this.Ya=new k(this.P,this.j);this.Ua=new b(this.j);this.Fe.bind(e.rta,this.eCa,this,!0);this.Fe.bind(e.ota,this.ez,this,!0);this.Ya.bind(k.AF,this.YC,this,!0);this.Ya.bind(k.BF,this.ln,this,!0);this.Ya.bind(k.CF,this.WT,this,!0);this.Ya.bind(k.pba,this.bCa,this,!0);this.Ya.bind(k.qba, this.fCa,this,!0);this.Ya.bind(k.$aa,this.aBa,this,!0);this.Ua.bind(b.gd,this.Mf,this,!0);this.Ua.bind(b.Ok,this.Gs,this,!0)});c.prototype.clear=function(){this.Fe.clear();this.Ya.clear();this.Ua.clear();this.Fe.h(e.rta,this.eCa,this);this.Fe.h(e.ota,this.ez,this);this.Ya.h(k.AF,this.YC,this);this.Ya.h(k.BF,this.ln,this);this.Ya.h(k.CF,this.WT,this);this.Ya.h(k.pba,this.bCa,this);this.Ya.h(k.qba,this.fCa,this);this.Ya.h(k.$aa,this.aBa,this);this.Ua.h(b.gd,this.Mf,this);this.Ua.h(b.Ok,this.Gs,this); this.P=this.j=this.Ua=this.Ya=this.Fe=null};c.prototype.flb=function(d){this.j.set("visible",!0);this.Fe.load(d)};c.prototype.bB=function(){this.Fe.Jhb()&&this.Fe.stop();this.Ya.oe();this.Ua.end()};c.prototype.play=function(){this.Ua.play()};c.prototype.stop=function(){this.Ua.stop()};c.prototype.pause=function(){this.Ua.pause()};c.prototype.setTime=function(d){this.Ua.setTime(d)};c.prototype.getTime=function(){return this.Ua.getTime()};c.prototype.qX=function(){return this.Ya.qX()};c.prototype.eCa= function(d){this.Ya.display(d.data.model)};c.prototype.ez=function(){};c.prototype.bCa=function(d){this.Ua.start(d.data.model)};c.prototype.WT=function(d){d=d.data.model;this.j.set("visible",!0);this.o(new n(c.CF,{model:d}))};c.prototype.fCa=function(){};c.prototype.ln=function(d){d=d.data.model;d.get("autoplay")&&d.get("state")!=h.PLAYING&&d.set("state",h.PLAYING);this.o(new n(c.BF,{model:d}))};c.prototype.YC=function(d){this.o(new n(c.AF,{model:d.data.model}))};c.prototype.aBa=function(){this.j.set("visible", !1)};c.prototype.Gs=function(d){this.o(new n(c.rba,d.data))};c.prototype.Mf=function(d){this.o(new n(c.gd,{state:d.data.state}))};c.BF="modelShow";c.AF="modelHide";c.Lob="modelEnd";c.CF="modelStart";c.rba="videoTimeChange";c.gd="playbackStateChange";return c}); define("tdv/player/view/webgl/ecs/Component",["require","exports"],function(){return function(){function a(){}a.prototype.clear=function(){};a.zb=function(m){this.id=m+"Component";this.aa="!"+this.id};a.Ob=function(m){this.zb(m+"SystemState");this.G8=!0};a.G8=!1;return a}()}); define("tdv/player/view/webgl/components",["require","exports","tdv/player/view/webgl/ecs/Component","three.mod"],function(a,m,h,n){var g;(function(k){var e=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Rf=null;I.FQa=null;I.jE=!0;I.enabled=!0;I.locked=!1;I.TO=!0;I.pf=void 0;I.Kk=0;return I}P(M,J);return M}(h);k.Hob=e;var b=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bias=0;I.oKa=500;I.intensity=1;I.scale=100;I.kNa=25;I.ONa=0;I.fna=4;I.output= null;return I}P(M,J);return M}(h);k.OK=b;b.zb("AmbientOcclusionEffect");var c=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.color="#ffffff";I.intensity=1;return I}P(M,J);return M}(h);k.AmbientLight=c;c.zb("AmbientLight");var d=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.light=null;return I}P(M,J);return M}(h);k.wB=d;d.Ob("AmbientLight");var f=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;return I}P(M, J);return M}(h);k.Animation=f;f.zb("Animation");var l=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.lx=l;l.Ob("Animation");var p=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.UKa=!1;I.mSa=!1;I.uZ=2;return I}P(M,J);return M}(h);k.rF=p;p.zb("AntialiasEffect");var q=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.pF=q;q.zb("ARAnchor");var r=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.anchor=null;I.fd=null;I.EJ=[];return I}P(M,J);return M}(h);k.kx=r;r.Ob("ARAnchorSystemState");var t=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.locked=!0;I.wb=null;return I}P(M,J);return M}(e);k.vB=t;t.zb("ARControls");var u=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Cr=u;u.Ob("ARControlsSystemState");var v=function(J){function M(){return J!==null&&J.apply(this, arguments)||this}P(M,J);return M}(h);k.Xf=v;v.Ob("ARPerspectiveCamera");var w=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.v=[];I.renderOrder=null;I.M=null;return I}P(M,J);return M}(h);k.lo=w;w.zb("Area");var x=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.v=[];return I}P(M,J);return M}(h);k.xB=x;x.Ob("Area");var y=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.F6=[];return I}P(M,J);return M}(h);k.sF=y;y.Ob("AreaPoint"); var z=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.AB=z;z.zb("Beacon");var A=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.position=null;return I}P(M,J);return M}(h);k.BB=A;A.Ob("Beacon");var D=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.M=null;return I}P(M,J);return M}(h);k.Qp=D;D.zb("BeaconTracker");var F=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.position=null; return I}P(M,J);return M}(h);k.qx=F;F.Ob("BeaconTracker");var C=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;I.rotate=!1;return I}P(M,J);return M}(h);k.SK=C;C.zb("CameraOffsetTransform");var B=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;return I}P(M,J);return M}(h);k.rUa=B;B.Ob("CameraOffsetTransform");var H=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;return I}P(M,J);return M}(h); k.TK=H;H.zb("CameraSequence");var E=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.sx=E;E.Ob("CameraSequence");var G=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.source=null;I.xK=null;I.opacity=1;I.isSprite=!1;I.hidden=!1;I.depthTest=!0;return I}P(M,J);return M}(h);k.Kf=G;G.zb("CanvasMaterial");var N=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J); return M}(h);k.DB=N;N.Ob("CanvasMaterial");var O=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.vF=O;O.zb("ClippingRect");var R=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.EB=R;R.Ob("ClippingRect");var Q=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.QQ=Q;Q.zb("Data");var K=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.target=null; return I}P(M,J);return M}(h);k.DirectionalLight=K;K.zb("DirectionalLight");var L=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.zp=null;return I}P(M,J);return M}(h);k.Er=L;L.Ob("DirectionalLight");var U=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.M=null;I.direction=null;I.min=null;return I}P(M,J);return M}(h);k.ux=U;U.zb("Draggable");var T=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Pna=null;return I}P(M,J);return M}(h); k.FB=T;T.Ob("Draggable");var Y=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.Im=Y;Y.zb("Dragging");var aa=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.PF=aa;aa.zb("FirstPersonControls");var ba=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Lr=ba;ba.Ob("FirstPersonControls");var ea=function(J){function M(){var I=J!==null&&J.apply(this, arguments)||this;I.color="#ffffff";I.opacity=1;I.height=0;I.radius=1;I.renderOrder=0;return I}P(M,J);return M}(h);k.Mr=ea;ea.zb("Floor");var ia=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.floor=null;return I}P(M,J);return M}(h);k.yx=ia;ia.Ob("Floor");var da=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.distance=0;I.IX=!1;I.x=0;I.y=0;I.z=0;return I}P(M,J);return M}(h);k.zx=da;da.zb("FloorTransform");var V=function(J){function M(){var I=J!==null&& J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.wu=V;V.Ob("FloorTransform");var X=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.QF=X;X.zb("FlyOverControls");var S=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Nr=S;S.Ob("FlyOverControls");var W=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.geometry=null;return I}P(M,J);return M}(h); k.Geometry=W;W.zb("Geometry");var Z=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.eJa="#ffffff";I.depthTest=!0;I.Kna=10;I.cMa="#ffffff";I.size=10;return I}P(M,J);return M}(h);k.xu=Z;Z.zb("Grid");var ca=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.grid=null;return I}P(M,J);return M}(h);k.KB=ca;ca.Ob("Grid");var fa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.group=null;return I}P(M,J);return M}(h);k.Group=fa;fa.zb("Group"); var ja=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.group=null;return I}P(M,J);return M}(h);k.$K=ja;ja.Ob("Group");var ha=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;I.xw=null;I.M=null;I.Ap=null;I.priority=void 0;I.isSprite=!1;I.qJa=null;return I}P(M,J);return M}(h);k.Oi=ha;ha.zb("ImageMaterial");var ka=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.MB=ka; ka.Ob("ImageMaterial");var la=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.CQa=7;I.intensity=1;return I}P(M,J);return M}(h);k.TQ=la;la.zb("MotionBlurEffect");var oa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.line=null;I.renderOrder=0;return I}P(M,J);return M}(h);k.Line=oa;oa.zb("Line");var pa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.line=null;return I}P(M,J);return M}(h);k.PB=pa;pa.Ob("Line");var ma=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.color="#ffffff";I.opacity=1;I.width=1;I.transparent=!0;I.depthTest=!0;return I}P(M,J);return M}(h);k.ei=ma;ma.zb("LineMaterial");var na=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.OB=na;na.Ob("LineMaterial");var va=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.F=null;I.position=null;return I}P(M,J);return M}(h);k.zu=va;va.zb("LineToTransform");var wa=function(J){function M(){return J!== null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.QB=wa;wa.Ob("LineToTransform");var xa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.material=null;return I}P(M,J);return M}(h);k.Material=xa;xa.zb("Material");var ya=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.name=null;return I}P(M,J);return M}(h);k.Bx=ya;ya.zb("MaterialVariant");var za=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M, J);return M}(h);k.Rr=za;za.Ob("MaterialVariant");var Aa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ke=null;I.renderOrder=0;return I}P(M,J);return M}(h);k.Mesh=Aa;Aa.zb("Mesh");var Ba=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ke=null;return I}P(M,J);return M}(h);k.Bu=Ba;Ba.Ob("Mesh");var Ca=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;I.Jpa=null;I.TPa=null;I.Ap=null;I.M=null;I.Koa=null;I.eb=null; return I}P(M,J);return M}(h);k.Pi=Ca;Ca.zb("Model");var Da=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Cx=Da;Da.Ob("Model");var Ea=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.VF=Ea;Ea.zb("NotCollidable");var Fa=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.CVa=Fa;Fa.Ob("NotCollidable");var Ga=function(J){function M(){var I=J!==null&& J.apply(this,arguments)||this;I.ssa=!0;I.tsa=!0;return I}P(M,J);return M}(h);k.Sr=Ga;Ga.zb("NotSelectable");var Ha=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.WF=Ha;Ha.Ob("NotSelectable");var Ia=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.sa=null;return I}P(M,J);return M}(h);k.Object3D=Ia;Ia.zb("Object3D");var Ja=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.id=null;I.container=null;return I} P(M,J);return M}(h);k.hL=Ja;Ja.zb("Object3DId");var Ka=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Dx=Ka;Ka.Ob("Object3DId");var La=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.yW=void 0;I.castShadow=void 0;I.receiveShadow=void 0;I.opacity=1;I.FW=void 0;I.M=null;return I}P(M,J);return M}(h);k.gi=La;La.zb("ObjectTransform");var Ma=function(J){function M(){return J!==null&&J.apply(this,arguments)||this} P(M,J);return M}(h);k.RB=Ma;Ma.Ob("ObjectTransform");var Na=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.XF=Na;Na.zb("OrbitControls");var Oa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Tr=Oa;Oa.Ob("OrbitControls");var Pa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.width=100;I.height=100;return I}P(M,J);return M}(h);k.OrthographicCamera=Pa;Pa.zb("OrthographicCamera"); var Qa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.camera=null;I.width=void 0;I.height=void 0;return I}P(M,J);return M}(h);k.Cu=Qa;Qa.Ob("OrthographicCamera");var Ra=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.F=null;I.attach=!1;I.id=null;return I}P(M,J);return M}(h);k.pb=Ra;Ra.zb("Parent");var Sa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.parent=null;I.ge=null;I.id=void 0;I.attach=!1;return I}P(M,J);return M}(h); k.Eu=Sa;Sa.Ob("Parent");var Ta=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.width=100;I.height=100;I.Nk=void 0;I.Wd=void 0;I.fov=75;I.near=.01;I.far=100;I.Yma=!1;I.GIa=0;I.oj=!1;return I}P(M,J);return M}(h);k.PerspectiveCamera=Ta;Ta.zb("PerspectiveCamera");var Ua=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.camera=null;I.zl=null;I.scene=null;I.boundingBox=null;I.gna=null;I.M9=!1;I.width=void 0;I.height=void 0;I.fov=void 0;I.Wd=void 0;I.Nk=void 0; I.near=void 0;I.far=void 0;return I}P(M,J);return M}(h);k.Sk=Ua;Ua.Ob("PerspectiveCamera");var Va=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Le=1;I.Ye=1;I.Gh=1;I.scale=1;I.nE=void 0;I.oE=void 0;return I}P(M,J);return M}(h);k.Tk=Va;Va.zb("PixelScaleTransform");var Wa=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.ZF=Wa;Wa.Ob("PixelScaleTransform");var Xa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this; I.renderOrder=null;return I}P(M,J);return M}(h);k.Plane=Xa;Xa.zb("Plane");var Ya=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.geometry=null;return I}P(M,J);return M}(h);k.UB=Ya;Ya.Ob("Plane");var Za=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;I.M=null;I.matrixWorld=null;I.origin=new n.Vector3;I.direction=new n.Vector3;I.Qb=new n.Vector2;I.pressed=!1;I.gx=!1;I.rna=!1;I.Ug=!1;I.enabled=!0;return I}P(M,J);return M}(h);k.yc=Za;Za.zb("Pointer"); var $a=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.F=null;I.rotate=!0;I.M=null;return I}P(M,J);return M}(h);k.El=$a;$a.zb("PointerOverTransform");var ab=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Fu=ab;ab.Ob("PointerOverTransform");var bb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Fx=bb;bb.Ob("PointerDragging");var cb=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Gx=cb;cb.Ob("PointerSelection");var db=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bF=null;I.rZ=null;I.zZ=null;return I}P(M,J);return M}(h);k.po=db;db.zb("ProjectedMaterial");var eb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bF=null;I.sa=null;I.lQ=null;I.MA=null;I.material=null;I.GP=null;return I}P(M,J);return M}(h);k.Ur=eb;eb.Ob("ProjectedMaterial");var fb= function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.eb=null;I.renderer=null;I.MY=[];return I}P(M,J);return M}(h);k.wj=fb;fb.zb("Renderer");var gb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Gu=gb;gb.Ob("Renderer");var hb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.opacity=1;I.locked=!1;I.enabled=!0;I.scene=null;I.Ea=null;I.backgroundColor=null;I.$ma=null;I.IIa=null;I.environmentIntensity= 1;I.xKa=null;I.Zna=null;I.QKa=null;I.RKa=0;I.$W=0;I.outputColorSpace=null;I.O9=1;I.M=null;return I}P(M,J);return M}(h);k.Scene=hb;hb.zb("Scene");var ib=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.scene=null;I.manager=null;return I}P(M,J);return M}(h);k.Vp=ib;ib.Ob("Scene");var jb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.M=null;I.hF=!1;I.nt=!0;I.Yt=!1;I.pB=!1;return I}P(M,J);return M}(h);k.wd=jb;jb.zb("Selectable");var kb=function(J){function M(){return J!== null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.$F=kb;kb.Ob("Selectable");var lb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.color="#ffffff";I.opacity=1;I.depthTest=!0;I.doubleSided=!1;return I}P(M,J);return M}(h);k.xd=lb;lb.zb("SolidMaterial");var mb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Hx=mb;mb.Ob("SolidMaterial");var nb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)|| this;I.radius=1;I.widthSegments=32;I.heightSegments=16;I.renderOrder=0;return I}P(M,J);return M}(h);k.Sphere=nb;nb.zb("Sphere");var ob=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.aG=ob;ob.Ob("Sphere");var pb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.SpotLight=pb;pb.zb("SpotLight");var qb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.light=null;I.zp=null;return I}P(M,J); return M}(h);k.Iu=qb;qb.Ob("SpotLight");var rb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.wO=.5;I.xO=.5;I.height=100;I.width=100;I.scale=1;I.sizeAttenuation=!1;I.Gi=null;I.renderOrder=0;return I}P(M,J);return M}(h);k.Sprite=rb;rb.zb("Sprite");var sb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Ju=sb;sb.Ob("Sprite");var tb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bA= !1;I.positionX=0;I.positionY=0;I.positionZ=0;I.Yd=0;I.fd=0;I.Xe=0;I.mf="XYZ";I.scale=1;I.Le=1;I.Ye=1;I.Gh=1;I.translationX=0;I.translationY=0;I.Ze=0;I.easing=0;I.M=null;return I}P(M,J);return M}(h);k.ta=tb;tb.zb("Transform");var ub=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bA=!1;I.positionX=0;I.positionY=0;I.positionZ=0;I.Yd=0;I.fd=0;I.Xe=0;I.mf="XYZ";I.scale=1;I.Le=1;I.Ye=1;I.Gh=1;I.translationX=0;I.translationY=0;I.Ze=0;return I}P(M,J);return M}(h);k.Gg=ub;ub.Ob("Transform"); var vb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.dG=vb;vb.Ob("TransformEasing");var wb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.translate=!0;I.rotate=!0;I.scale=!0;I.M=null;return I}P(M,J);return M}(h);k.Hh=wb;wb.zb("TransformControls");var xb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.kaa=null;I.Gk=null;I.pe=null;return I}P(M,J);return M}(h);k.Om=xb;xb.Ob("TransformControls");var yb= function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.pf=void 0;return I}P(M,J);return M}(e);k.Jx=yb;yb.zb("TransitionControls");var zb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Lu=zb;zb.Ob("TransitionControlsSystemState");var Ab=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;I.Psa=null;I.M=null;return I}P(M,J);return M}(h);k.ro=Ab;Ab.zb("VideoMaterial");var Bb=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.XB=Bb;Bb.Ob("VideoMaterial");var Cb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;I.width=null;I.height=null;return I}P(M,J);return M}(h);k.so=Cb;Cb.zb("Viewport");var Db=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;I.properties=null;return I}P(M,J);return M}(h);k.fG=Db;Db.zb("ViewportPlaneGeometry");var Eb=function(J){function M(){var I=J!== null&&J.apply(this,arguments)||this;I.geometry=null;I.cSa=void 0;I.aSa=void 0;I.Yh=void 0;I.verticalAlign=void 0;I.NE=void 0;I.zIndex=void 0;return I}P(M,J);return M}(h);k.Lx=Eb;Eb.Ob("ViewportPlaneGeometry");var Fb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.qPa=1;I.KMa=.5;I.color="#000000";I.opacity=.5;return I}P(M,J);return M}(h);k.nL=Fb;Fb.zb("VignetteEffect");var Gb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.ng=Gb; Gb.Ob("XRPerspectiveCamera");var Hb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.locked=!0;return I}P(M,J);return M}(h);k.gG=Hb;Hb.zb("XRBasicControls");var Ib=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Yp=Ib;Ib.Ob("XRBasicControlsSystemState");var Jb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.oL=Jb;Jb.zb("XRDragControls");var Kb=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Zp=Kb;Kb.Ob("XRDragControlsSystemState");var Lb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.pL=Lb;Lb.zb("XRFlyControls");var Mb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.$p=Mb;Mb.Ob("XRFlyControlsSystemState");var Nb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M, J);return M}(e);k.qL=Nb;Nb.zb("XRTeleportControls");var Ob=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.aq=Ob;Ob.Ob("XRTeleportControlsSystemState")})(g||(g={}));return g}); define("tdv/player/view/Flash",["require","exports","tdv/player/view/util/Device"],function(a,m,h){return function(){function n(){this.qa=document.createElement("div");this.qa.style.position="absolute";this.qa.style.left="0";this.qa.style.top="0";this.qa.style.right="0";this.qa.style.bottom="0";this.qa.style.zIndex="0";this.qa.style.pointerEvents="none";this.qa.style.backgroundColor="#ffffff";this.qa.style.display="none";this.qa.style.opacity="0";this.qa.style.transition="opacity 100ms ease-in-out"; this.m9=this.m9.bind(this);this.n9=this.n9.bind(this)}n.prototype.cc=function(){return this.qa};n.prototype.m9=function(){this.qa.removeEventListener("transitionend",this.m9);this.qa.style.opacity="0";this.qa.addEventListener("transitionend",this.n9)};n.prototype.n9=function(){this.qa.removeEventListener("transitionend",this.n9);this.qa.style.display="none"};n.prototype.o=function(){h.Tb()!==h.Ji&&(this.qa.style.display="block",this.qa.style.opacity="0",this.qa.offsetHeight,this.qa.style.opacity= "1",this.qa.addEventListener("transitionend",this.m9))};return n}()}); define("tdv/player/view/webgl/ecs/Entity",["require","exports"],function(){return function(){function a(m,h){this.T=m;this.tag=h||"Entity";this.id=this.tag+"_"+a.dY++;this.components={};this.DY={};this.$ra=0}a.prototype.getComponent=function(m){return this.components[m.id]};a.prototype.O=function(m,h){h===void 0&&(h=!1);var n=this.components[m.id];n?this.T.Tcb(this,m):h&&(n=this.N(m));return n};a.prototype.N=function(m){if(m.id in this.components)return this.components[m.id];m.G8&&this.$ra++;var h= this.components[m.id]=new m;this.T.Qbb(this,m);return h};a.prototype.ka=function(m){var h;h===void 0&&(h=!1);m.id in this.components&&(m.G8&&this.$ra--,h?this.components[m.id].clear():this.DY[m.id]=this.components[m.id],delete this.components[m.id],this.T.pQa(this,m,h))};a.prototype.Ycb=function(){for(var m in this.DY)this.DY[m].clear(),delete this.DY[m]};a.prototype.yjb=function(){for(var m in this.components){var h=this.components[m].constructor;h.G8||(this.DY[m]=this.components[m],delete this.components[m], this.T.pQa(this,h,!1))}};a.dY=0;return a}()});define("tdv/player/view/webgl/ecs/Query",["require","exports"],function(){return function(){function a(){this.id=a.E4a++;this.v=[]}a.E4a=0;return a}()}); define("tdv/player/view/webgl/ecs/SystemQuery",["require","exports"],function(){return function(){function a(m,h){this.id=a.dY++;this.name=h;this.v=m.v;this.fe=m.v.slice();this.Da=[];this.Xg=[]}a.prototype.Ucb=function(){this.fe.length&&(this.fe=[]);this.Da.length&&(this.Da=[]);this.Xg.length&&(this.Xg=[])};a.dY=0;return a}()}); define("tdv/player/view/webgl/ecs/QueriesManager",["require","exports","tdv/player/view/webgl/ecs/Query","tdv/player/view/webgl/ecs/SystemQuery"],function(a,m,h,n){function g(b){return typeof b=="string"?b:b.id}function k(b,c){b.indexOf(c)<0&&b.push(c);return b}function e(b,c){c=b.indexOf(c);c>=0&&b.splice(c,1);return b}return function(){function b(){this.Qgb={};this.J={};this.fK={};this.$O={};this.rA={};this.dK={};this.NW={};this.cK={}}b.prototype.na=function(c){this.NW[c.id]={};this.NW[c.aa]={}}; b.prototype.Qdb=function(c,d){c=this.x2a(c);d=new n(c,d);this.fK[c.id].push(d);return d};b.prototype.x2a=function(c){var d=this.Vfb(c);if(d=this.Qgb[d])return d;d=new h;this.J[d.id]=d;c=c.map(g);this.cK[d.id]={};for(var f=0;f=0;d--)this.TW[d].$ra==0&&(this.eK.sib(this.TW[d]),this.TW.splice(d,1))}};return e}()});define("tdv/player/view/webgl/ecs/System",["require","exports"],function(){return function(){function a(){this.order=0;this.T=null;this.name=""}a.prototype.initialize=function(m,h,n){n===void 0&&(n=0);this.T=m;this.name=h;this.order=n;return this};a.prototype.Yc=function(){};return a}()}); define("tdv/player/view/webgl/system/light/AmbientLightSystem","require exports three.mod tdv/player/view/util/Color tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System".split(" "),function(a,m,h,n,g,k){a=function(e){function b(){var c=e.call(this)||this;c.xb=c.xb.bind(c);c.ib=c.ib.bind(c);c.gg=c.gg.bind(c);c.Ca=c.Ca.bind(c);return c}P(b,e);b.prototype.Yc=function(){this.lE.v.length&&this.lE.v.slice().forEach(this.xb);this.mE.v.length&&this.mE.v.slice().forEach(this.Ca);this.Ei.Da.length&& this.Ei.Da.slice().forEach(this.ib);this.Ei.v.length&&this.Ei.v.slice().forEach(this.gg)};b.prototype.xb=function(c){var d=c.N(g.wB),f=c.N(g.Object3D);d.light=f.sa=new h.AmbientLight;this.ib(c)};b.prototype.ib=function(c){var d=c.getComponent(g.AmbientLight);c=c.getComponent(g.wB).light;c.color=n.Ip(d.color).convertLinearToSRGB();c.intensity=d.intensity*Math.PI;c.visible=c.intensity>0};b.prototype.gg=function(){};b.prototype.Ca=function(c){var d=c.getComponent(g.wB).light;d.parent&&d.parent.remove(d); c.ka(g.wB);c.ka(g.Object3D)};b.J={};return b}(k);a.J={};a.J.lE=[g.AmbientLight,g.wB.aa];a.J.Ei=[g.AmbientLight,g.wB];a.J.mE=[g.AmbientLight.aa,g.wB];return a}); define("tdv/player/view/webgl/system/animation/AutoplayController",["require","tdv/constants/EventName","tdv/constants/PlaybackState"],function(a){function m(g,k,e,b,c){this.A=g;this.He=k;this.Zg=e;this.Hl=b;this.Na=c;this.i5()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState");m.prototype.getAnimations=function(){return this.Zg};m.prototype.jX=function(){return this.Hl};m.prototype.frame=function(g){this.I==n.PLAYING&&(this.Gv(this.hi.time+g/1E3),this.Na())};m.prototype.dispose= function(){this.H5();this.ZB=this.oG=this.hi=this.Na=this.Hl=this.Zg=this.He=this.A=null};m.prototype.i5=function(){this.hi=new THREE.AnimationMixer(this.He);this.ac=0;this.Sb=!1;this.oG=[];this.ZB=[];for(var g=0;gthis.ac)this.A.get("loop")?this.A.set("currentTime",g%this.ac): (this.Sb=!0,this.A.o(h.Ub),this.A.set("state",n.ca));else{for(var k=this.Pm||0;g>this.ZB[k].end;)k++;for(;gk;e--)b=this.Zg[e],c=this.oG[e],b.set("currentTime",0),c.stop();this.Pm=k}else c=this.oG[this.Pm],gb;this.Zg[this.Pm].set("currentTime",k?2*b-g:g);this.Zg[this.Pm].set("currentDirection", k?"backward":"forward");this.A.set("currentTime",this.hi.time);this.Na()}};return m}); define("tdv/player/view/webgl/system/animation/NonAutoplayController",["require","tdv/constants/EventName","tdv/constants/PlaybackState"],function(a){function m(g,k,e,b,c){this.A=g;this.He=k;this.Zg=e;this.Hl=b;this.Na=c;this.wia=this.wia.bind(this);this.nia=this.nia.bind(this);this.i5()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState");m.prototype.dispose=function(){this.H5();this.Na=this.Hl=this.Zg=this.He=this.A=null};m.prototype.getAnimations=function(){return this.Zg};m.prototype.jX= function(){return this.Hl};m.prototype.frame=function(g){this.Rx.length>0&&(this.hi.update(g/1E3),this.Rx.forEach(function(k){this.Ova(k)}.bind(this)),this.Na())};m.prototype.i5=function(){this.hi=new THREE.AnimationMixer(this.He);this.hi.addEventListener("loop",this.wia);this.hi.addEventListener("finished",this.nia);this.Qx=new Map;this.T_=new Map;this.Rx=[];for(var g=0;g0&&k._loopCount%2==1&&e;g.set("currentDirection",e?"backward":"forward");k=k.time;var b=g.get("duration");e?g.set("currentTime",b-k):g.set("currentTime",k);this.Mva=!1};m.prototype.$N=function(g){if(!this.Mva){var k=this.Qx.get(g),e=g.get("animationDirection")=="alternate",b=g.get("currentDirection")=="backward"&&e,c=g.get("loop"),d=g.get("finalFrame")=="last",f=g.get("currentTime");g=g.get("duration");c?(k.loop=e?THREE.LoopPingPong: THREE.LoopRepeat,k.repetitions=Infinity,k.clampWhenFinished=!1):b?(k.loop=THREE.LoopPingPong,k.repetitions=2,k.clampWhenFinished=!1):(k.loop=THREE.LoopOnce,k.repetitions=1,k.clampWhenFinished=d||e);e=!e||k._loopCount!=-1&&k._loopCount%2!=0?e&&k._loopCount%2==1?g-f:f:b?g+g-f:f;k.time!=e&&(k.time=e,k.paused&&k.enabled&&e==0&&k.stop());this.Na()}};m.prototype.jBa=function(g){this.yGa(g.source)};m.prototype.yGa=function(g){var k=this.Qx.get(g),e=g.get("state");var b=this.Rx.indexOf(g)>=0?n.PLAYING:k.paused&& k.enabled&&k.time=0||(c.push(b),e.add(b),this.maa(e))};k.Gqa=function(e,b){var c=e.userData.Wra;if(c){var d=c.indexOf(b);d<0||(c.splice(d,1),e.remove(b))}};k.maa=function(e){var b=e.userData.Wra; if(b){var c=-e.far*.99;b.forEach(function(d){d.position.z=c})}};k.Pbb=function(e,b){var c=e.userData.Rra||(e.userData.Rra=[]);c.indexOf(b)>=0||(c.push(b),e.add(b),this.mTa(e))};k.mQa=function(e,b){var c=e.userData.Rra;if(c){var d=c.indexOf(b);d<0||(c.splice(d,1),e.remove(b))}};k.mTa=function(e){var b=e.userData.Rra;if(b){var c=e.far*.99;b.forEach(function(d){d.scale.x=d.scale.y=d.scale.z=c})}};k.Obb=function(e,b){var c=e.userData.Spa||(e.userData.Spa=[]);c.indexOf(b)>=0||(c.push(b),e.add(b),this.lTa(e))}; k.lQa=function(e,b){var c=e.userData.Spa;if(c){var d=c.indexOf(b);d<0||(c.splice(d,1),e.remove(b))}};k.lTa=function(e){var b=e.userData.Spa;if(b){var c=e.near*1.001;b.forEach(function(d){d.position.z=-c;d.scale.x=d.scale.y=d.scale.z=2*Math.tan((e.aspect>1?n.Ar(e.fov,e.aspect,1):e.fov)*this.bG*.5)*c*2}.bind(this))}};k.wJ=function(e){if((e=this.Rc(e))&&e.parent){var b=this.$La(e);if(b)return this.fY.setFromMatrixScale(e.parent.matrixWorld),b/Math.max(this.fY.x,this.fY.y,this.fY.z)}};k.$La=function(e){if((e= this.Rc(e))&&e.parent){var b=this.rX(e);if(b){var c=this.uw(b);if(c)return e.matrixWorld.decompose(this.objectPosition,this.hib,this.fY),this.objectPosition.applyMatrix4(c.matrixWorldInverse),this.zi.setFromMatrixScale(c.matrixWorld),Math.abs(this.objectPosition.z)*2*Math.tan(c.fov*this.bG/2)*Math.max(this.zi.x,this.zi.y,this.zi.z)/this.dE(b)}}};k.ZD=function(e,b){if(e.userData.id===b)return e;for(var c=e;!c.userData.OO&&c.parent;)c=c.parent;if(c&&c.userData.OO&&c.userData.OO.has(b))return c.userData.OO.get(b); c=null;if(e.children)for(var d=0;d=0&&(p.splice(p.indexOf(y),1),v.get("autoplay")?(q.push(y), r.push(v)):(t.push(y),u.push(v)))}.bind(this));this.A&&r.length==0&&p.length>0&&(r=p.map(function(v){if(this.W0.has(v))return this.W0.get(v);var w=new e;this.W0.set(v,w);return w}.bind(this)),q=p);h(this.Qm&&this.Qm.getAnimations()||[],r)&&h(this.Qm&&this.Qm.jX()||[],q)||(this.Qm&&(this.Qm.dispose(),this.Qm=null),r.length>0&&(this.Qm=new b(this.A,this.He,r,q,this.Na.bind(this))));h(this.ov&&this.ov.getAnimations()||[],u)&&h(this.ov&&this.ov.jX()||[],t)||(this.ov&&(this.ov.dispose(),this.ov=null), u.length>0&&(this.ov=new c(this.A,this.He,u,t,this.Na.bind(this))))};m.prototype.r7a=function(){(this.A&&this.A.get("animations")||[]).forEach(function(f){f.set("state",g.ca);f.set("currentTime",0)});this.W0.clear()};m.prototype.Na=function(){this.ih||(this.ih=!0,this.B.T.Qa())};m.Wa=function(f){f.N(k.lx).manager=new m(f)};m.ya=function(f){var l=f.getComponent(k.lx);l.manager.dispose();l.manager=null;f.ka(k.lx)};m.update=function(f){f.getComponent(k.lx).manager.update()};m.frame=function(f,l,p){f.getComponent(k.lx).manager.frame(l, p)};return m}); define("tdv/player/view/webgl/system/animation/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/animation/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/animation/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(k,e){this.mIa.v.length&&this.mIa.v.slice().forEach(g.Wa);this.animations.Da.length&& this.animations.Da.slice().forEach(function(b){g.update(b,k,e)});this.animations.v.length&&this.animations.v.slice().forEach(function(b){g.frame(b,k,e)});this.nIa.v.length&&this.nIa.v.slice().forEach(g.ya)};a.J={};a.J.mIa=[n.Animation,n.lx.aa];a.J.nIa=[n.Animation.aa,n.lx];a.J.animations=[n.Animation,n.lx];return a}); define("tdv/player/view/webgl/system/aranchor/System","require exports three.mod tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k){a=function(l){function p(){var q=l.call(this)||this;q.xb=q.xb.bind(q);q.ib=q.ib.bind(q);q.Ca=q.Ca.bind(q);return q}P(p,l);p.prototype.Yc=function(){this.vIa.v.length&&this.vIa.v.slice().forEach(this.xb);this.uIa.v.length&&this.uIa.v.slice().forEach(this.ib);this.wIa.v.length&&this.wIa.v.slice().forEach(this.Ca); this.xIa.v.length&&this.xIa.v.slice().forEach(this.Ca)};p.prototype.xb=function(q){q.N(g.kx);this.ib(q)};p.prototype.ib=function(q){var r=q.N(g.Object3D).sa,t=q.getComponent(g.kx);k.isPresenting&&k.Em==k.Fl.Np?t.anchor&&t.anchor instanceof XRAnchor&&k.YI.has(t.anchor)?(r.visible=!0,r.matrixAutoUpdate=!1,q=k.YI.get(t.anchor),t.fd||(e.copy(k.Ec).applyMatrix4(d.copy(q).invert()).normalize(),c.setFromQuaternion(b.setFromUnitVectors(f,e),"YXZ"),t.fd=(new h.Matrix4).makeRotationY(c.y)),r.matrix.identity().multiply(q).multiply(t.fd), this.nna(t)):t.anchor&&t.anchor instanceof Promise?(r.visible=!1,this.Knb(t,r.parent)):(r.visible=!1,t.anchor=k.Rjb().then(function(u){t.anchor=u}).catch(function(u){console.error(u);t.anchor=null})):(r.visible=!0,r.matrixAutoUpdate=!0,r.matrix.identity(),this.iJa(t),this.nna(t))};p.prototype.Knb=function(q,r){if(r){for(;q.EJ.length>k.ud.length;)q.EJ.pop().removeFromParent();for(;q.EJ.length0)for(z=w;z=w;z-=y)A=r(z,v[z],v[z+1],A);A&&c(A,A.next)&&(t(A),A=A.next);return A}function m(v,w){if(!v)return v;w||(w=v);do{var x=!1;if(v.sSa||!c(v,v.next)&&b(v.Xd,v,v.next)!==0)v=v.next;else{t(v);v=w=v.Xd;if(v===v.next)break;x=!0}}while(x||v!==w);return w}function h(v,w,x,y,z,A,D){if(v){if(!D&& A){var F=v,C=F;do C.z===0&&(C.z=k(C.x,C.y,y,z,A)),C.Vt=C.Xd,C=C.Rn=C.next;while(C!==F);C.Vt.Rn=null;C.Vt=null;F=C;var B,H,E,G,N=1;do{C=F;var O=F=null;for(H=0;C;){H++;var R=C;for(B=E=0;B0||G>0&&R;)E!==0&&(G===0||!R||C.z<=R.z)?(B=C,C=C.Rn,E--):(B=R,R=R.Rn,G--),O?O.Rn=B:F=B,B.Vt=O,O=B;C=R}O.Rn=null;N*=2}while(H>1)}for(F=v;v.Xd!==v.next;){C=v.Xd;R=v.next;if(A)O=n(v,y,z,A);else a:{var Q=v;O=Q.Xd;G=Q.next;if(b(O,Q,G)>=0)O=!1;else{H=O.x;E=Q.x;N=G.x;B=O.y;Q=Q.y;var K=G.y, L=HE?H>N?H:N:E>N?E:N,Y=B>Q?B>K?B:K:Q>K?Q:K;for(G=G.next;G!==O;){if(G.x>=L&&G.x<=T&&G.y>=U&&G.y<=Y&&e(H,B,E,Q,N,K,G.x,G.y)&&b(G.Xd,G,G.next)>=0){O=!1;break a}G=G.next}O=!0}}if(O)w.push(C.Dh/x|0),w.push(v.Dh/x|0),w.push(R.Dh/x|0),t(v),F=v=R.next;else if(v=R,v===F){if(D)if(D===1){v=m(v);D=w;F=x;C=v;do R=C.Xd,O=C.next.next,!c(R,O)&&d(R,C,C.next,O)&&p(R,O)&&p(O,R)&&(D.push(R.Dh/F|0),D.push(C.Dh/F|0),D.push(O.Dh/F|0),t(C),t(C.next),C=v=O),C=C.next;while(C!== v);v=m(C);h(v,w,x,y,z,A,2)}else{if(D===2)a:{D=v;do{for(F=D.next.next;F!==D.Xd;){if(C=D.Dh!==F.Dh){C=D;R=F;if(O=C.next.Dh!==R.Dh&&C.Xd.Dh!==R.Dh){b:{O=C;do{if(O.Dh!==C.Dh&&O.next.Dh!==C.Dh&&O.Dh!==R.Dh&&O.next.Dh!==R.Dh&&d(O,O.next,C,R)){O=!0;break b}O=O.next}while(O!==C);O=!1}O=!O}if(O){if(O=p(C,R)&&p(R,C)){O=C;H=!1;E=(C.x+R.x)/2;N=(C.y+R.y)/2;do O.y>N!==O.next.y>N&&O.next.y!==O.y&&E<(O.next.x-O.x)*(N-O.y)/(O.next.y-O.y)+O.x&&(H=!H),O=O.next;while(O!==C);O=H}O=O&&(b(C.Xd,C,R.Xd)||b(C,R.Xd,R))||c(C, R)&&b(C.Xd,C,C.next)>0&&b(R.Xd,R,R.next)>0}C=O}if(C){v=q(D,F);D=m(D,D.next);v=m(v,v.next);h(D,w,x,y,z,A,0);h(v,w,x,y,z,A,0);break a}F=F.next}D=D.next}while(D!==v)}}else h(m(v),w,x,y,z,A,1);break}}}}function n(v,w,x,y){var z=v.Xd,A=v.next;if(b(z,v,A)>=0)return!1;var D=z.x,F=v.x,C=A.x,B=z.y,H=v.y,E=A.y,G=DF?D>C?D:C:F>C?F:C,R=B>H?B>E?B:E:H>E?H:E,Q=k(G,N,w,x,y);w=k(O,R,w,x,y);x=v.Vt;for(v=v.Rn;x&&x.z>=Q&&v&&v.z<=w;){if(x.x>=G&&x.x<=O&&x.y>=N&&x.y<=R&&x!==z&& x!==A&&e(D,B,F,H,C,E,x.x,x.y)&&b(x.Xd,x,x.next)>=0)return!1;x=x.Vt;if(v.x>=G&&v.x<=O&&v.y>=N&&v.y<=R&&v!==z&&v!==A&&e(D,B,F,H,C,E,v.x,v.y)&&b(v.Xd,v,v.next)>=0)return!1;v=v.Rn}for(;x&&x.z>=Q;){if(x.x>=G&&x.x<=O&&x.y>=N&&x.y<=R&&x!==z&&x!==A&&e(D,B,F,H,C,E,x.x,x.y)&&b(x.Xd,x,x.next)>=0)return!1;x=x.Vt}for(;v&&v.z<=w;){if(v.x>=G&&v.x<=O&&v.y>=N&&v.y<=R&&v!==z&&v!==A&&e(D,B,F,H,C,E,v.x,v.y)&&b(v.Xd,v,v.next)>=0)return!1;v=v.Rn}return!0}function g(v,w){return v.x-w.x}function k(v,w,x,y,z){v=(v-x)*z|0; w=(w-y)*z|0;v=(v|v<<8)&16711935;v=(v|v<<4)&252645135;v=(v|v<<2)&858993459;w=(w|w<<8)&16711935;w=(w|w<<4)&252645135;w=(w|w<<2)&858993459;return(v|v<<1)&1431655765|((w|w<<1)&1431655765)<<1}function e(v,w,x,y,z,A,D,F){return(z-D)*(w-F)>=(v-D)*(A-F)&&(v-D)*(y-F)>=(x-D)*(w-F)&&(x-D)*(A-F)>=(z-D)*(y-F)}function b(v,w,x){return(w.y-v.y)*(x.x-w.x)-(w.x-v.x)*(x.y-w.y)}function c(v,w){return v.x===w.x&&v.y===w.y}function d(v,w,x,y){var z=l(b(v,w,x)),A=l(b(v,w,y)),D=l(b(x,y,v)),F=l(b(x,y,w));return z!==A&&D!== F||z===0&&f(v,x,w)||A===0&&f(v,y,w)||D===0&&f(x,v,y)||F===0&&f(x,w,y)?!0:!1}function f(v,w,x){return w.x<=Math.max(v.x,x.x)&&w.x>=Math.min(v.x,x.x)&&w.y<=Math.max(v.y,x.y)&&w.y>=Math.min(v.y,x.y)}function l(v){return v>0?1:v<0?-1:0}function p(v,w){return b(v.Xd,v,v.next)<0?b(v,w,v.next)>=0&&b(v,v.Xd,w)>=0:b(v,w,v.Xd)<0||b(v,v.next,w)<0}function q(v,w){var x=new u(v.Dh,v.x,v.y),y=new u(w.Dh,w.x,w.y),z=v.next,A=w.Xd;v.next=w;w.Xd=v;x.next=z;z.Xd=x;y.next=x;x.Xd=y;A.next=y;y.Xd=A;return y}function r(v, w,x,y){v=new u(v,w,x);y?(v.next=y.next,v.Xd=y,y.next.Xd=v,y.next=v):(v.Xd=v,v.next=v);return v}function t(v){v.next.Xd=v.Xd;v.Xd.next=v.next;v.Vt&&(v.Vt.Rn=v.Rn);v.Rn&&(v.Rn.Vt=v.Vt)}function u(v,w,x){this.Dh=v;this.x=w;this.y=x;this.next=this.Xd=null;this.z=0;this.Rn=this.Vt=null;this.sSa=!1}return function(v,w,x){x=x||2;var y=w&&w.length,z=y?w[0]*x:v.length,A=a(v,0,z,x,!0),D=[];if(!A||A.next===A.Xd)return D;var F;if(y){var C=A;var B=x;A=[];var H;y=0;for(H=w.length;y=H.next.y&&H.next.y!==H.y&&(O=H.x+(G-H.y)*(H.next.x-H.x)/(H.next.y-H.y),O<=E&&O>N&&(N=O,B=H.x=H.x&&H.x>=Q&&E!==H.x&&e(GB.x)&&(U=H.x===B.x)){U=B;var T=H;U=b(U.Xd,U,T.Xd)<0&&b(T.next,U,U.next)<0}U&&(B=H,L=O)}H=H.next}while(H!==R)}else B=null}B&&(w=q(B,w),m(w,w.next),C=m(B,B.next))}A=C}if(v.length>80*x){var Y=F=v[0];var aa=y=v[1];for(C=x;CF&&(F=w),B>y&&(y=B);F=Math.max(F-Y,y-aa);F=F!==0?32767/F:0}h(A,D,x,Y,aa,F,0);return D}}); define("tdv/player/view/webgl/system/util/material/Util",["require","exports","three.mod"],function(a,m,h){return function(){function n(){}n.Lfb=function(g){return g.userData.Pt||g.material};n.ND=function(g,k){if(g.material!=k&&g.userData.Pt!=k){var e=g.userData.ZX,b=g.userData.Bpa;this.IY(g);g.material=k;b?this.GJa(g):e&&this.Yna(g);g.needsUpdate=!0}};n.Yna=function(g,k){k===void 0&&(k=null);g.userData.ZX||(g.userData.ZX=!0,g.userData.Pt=g.material,g.material=k||this.jdb(g.material))};n.IY=function(g){g.userData.ZX&& (this.oeb(g.material),g.material=g.userData.Pt,delete g.userData.Pt,delete g.userData.ZX,delete g.userData.Bpa)};n.tnb=function(g){if(g.userData.ZX){var k=g.userData.Pt;g=g.material;g.side=k.side;g.depthTest=k.depthTest;g.map&&k.map&&(g.map.colorSpace=k.map.colorSpace);g.emissiveMap&&k.emissiveMap&&(g.emissiveMap.colorSpace=k.emissiveMap.colorSpace)}};n.GJa=function(g){this.xgb(g)||(this.IY(g),this.Yna(g,this.hdb(g.material)),g.userData.Bpa=!0)};n.xgb=function(g){return!(!g.userData.Bpa&&g.material&& !this.y8(g.material))};n.y8=function(g){return Array.isArray(g)?!!g.every(function(k){return n.y8(k)}):g?!(g.isMeshPhysicalMaterial||g.isMeshStandardMaterial):!1};n.hdb=function(g){return Array.isArray(g)?g.map(function(k){return n.rJa(k)}):g?this.rJa(g):g};n.rJa=function(g){return(new h.MeshBasicMaterial).copy(g)};n.jdb=function(g){return Array.isArray(g)?g.map(function(k){return k.clone()}):g?g.clone():g};n.oeb=function(g){Array.isArray(g)?g.forEach(function(k){k.dispose()}):g&&g.dispose()};return n}()}); define("tdv/player/view/webgl/system/area/System","require tdv/utils tdv/constants/EventName tdv/player/view/util/geo/Tessellate tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/material/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/util/geo/Tessellate"),g=a("tdv/player/view/webgl/ecs/System"),k=a("tdv/player/view/webgl/components"),e=a("tdv/player/view/webgl/system/util/entity/Util"), b=a("tdv/player/view/webgl/system/util/material/Util");a=m.extend(g,function(){g.apply(this,arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this);this.paa=this.paa.bind(this)});a.prototype.Yc=function(){this.zIa.v.length&&this.zIa.v.slice().forEach(this.xb);this.yIa.Da.length&&this.nnb(this.yIa.Da.slice());this.areas.Da.length&&this.areas.Da.slice().forEach(this.ib);this.AIa.v.length&&this.AIa.v.slice().forEach(this.Ca);this.BIa.v.length&&this.BIa.v.slice().forEach(this.Ca)}; a.prototype.xb=function(E){E.N(k.xB);this.ib(E)};a.prototype.ib=function(E){this.Gnb(E);this.io(E)};a.prototype.nnb=function(E){var G=[];E.forEach(function(N){N.getComponent(k.sF).F6.forEach(function(O){G.indexOf(O)===-1&&G.push(O)})});G.forEach(this.paa)};a.prototype.Gnb=function(E){this.Rnb(E);this.paa(E)};a.prototype.Rnb=function(E){var G=E.getComponent(k.lo),N=G&&G.v||[],O=(G=E.getComponent(k.xB))&&G.v||[];O.forEach(function(R){if(N.indexOf(R)===-1){var Q=R.getComponent(k.sF).F6.filter(function(K){return K!== K});Q.length==0?R.ka(k.sF):R.O(k.sF).F6=Q}});N.forEach(function(R){O.indexOf(R)===-1&&R.O(k.sF,!0).F6.push(E)})};var c=new THREE.Matrix4,d=[];a.prototype.paa=function(E){var G=E.getComponent(k.lo);for(G=G&&G.v||[];d.length1E-4});G=this.cgb(N);if(G.length===0)this.Axa(E),this.kGa(E);else{this.E8a(E,G.length*3);this.Tnb(E, d,G);c.copy(E.getComponent(k.Object3D).sa.matrixWorld).invert();d.forEach(function(L){L.applyMatrix4(c)});E=E.getComponent(k.Geometry);for(var O=E.geometry.attributes.position.array,R=0,Q=0;RMath.PI*.5&&(N=Math.PI-N);if(N>y)return[]}p.copy(E[1]).sub(E[0]).normalize();q.copy(f.normal).cross(p).normalize();G=[];for(O=0;O=0&&b.splice(c,1);this.jOa["delete"](e);e.ka(g.qx)};a.prototype.Era=function(e){e.N(g.BB).position=new THREE.Vector3;var b=k.Rc(e);this.iOa.set(e,b);(b=this.GW.get(e.T))||this.GW.set(e.T,b=[]);b.indexOf(e)<0&&b.push(e)};a.prototype.eaa= function(e){var b=this.GW.get(e.T),c=b.indexOf(e);c>=0&&b.splice(c,1);this.iOa["delete"](e);e.ka(g.BB)};return a}); define("tdv/player/view/webgl/system/camera/System","require tdv/utils tdv/constants/EventName tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/util/geo/Fov tdv/player/view/util/XR tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/webgl/ecs/System"),g=a("tdv/player/view/webgl/components"),k=a("tdv/player/view/util/geo/Fov"),e=a("tdv/player/view/util/XR"),b=a("tdv/player/view/webgl/system/util/entity/Util"); a=m.extend(n,function(){n.apply(this,arguments);this.Hra=this.Hra.bind(this);this.Ira=this.Ira.bind(this);this.raa=this.raa.bind(this);this.saa=this.saa.bind(this);this.dsa=this.dsa.bind(this);this.esa=this.esa.bind(this);e.M.bind(h.V,this.Ta,this,!0)});a.prototype.Yc=function(){this.oPa.v.length&&this.oPa.v.slice().forEach(this.Hra);this.APa.v.length&&this.APa.v.slice().forEach(this.Ira);this.XJ.Da.length&&this.XJ.Da.slice().forEach(this.raa);this.St.Da.length&&this.St.Da.slice().forEach(this.saa); this.pPa.v.length&&this.pPa.v.slice().forEach(this.dsa);this.BPa.v.length&&this.BPa.v.slice().forEach(this.esa)};a.prototype.Ta=function(){this.St.v.forEach(function(q){q.O(g.PerspectiveCamera)})};a.prototype.Hra=function(q){var r=q.O(g.OrthographicCamera),t=q.N(g.Cu);q.N(g.Object3D).sa=t.camera=r.camera=new THREE.OrthographicCamera;this.raa(q)};a.prototype.Ira=function(q){var r=q.O(g.PerspectiveCamera),t=q.N(g.Sk);t.boundingBox=new THREE.Box3;t.M9=!0;q.N(g.Object3D).sa=t.camera=r.camera=new THREE.PerspectiveCamera; this.saa(q)};a.prototype.raa=function(q){var r=q.getComponent(g.OrthographicCamera);q=q.getComponent(g.Cu);q.width=r.width;q.height=r.height;q=q.camera;q.left=r.width*-.5;q.right=r.width*.5;q.top=r.height*.5;q.bottom=r.height*-.5;q.updateProjectionMatrix()};a.prototype.saa=function(q){var r=q.getComponent(g.PerspectiveCamera),t=q.getComponent(g.Sk);r.oj&&e.Uf?(q.N(e.Em==e.Fl.Xp?g.ng:g.Xf),t.width=e.framebufferWidth?e.framebufferWidth*.5:r.width,t.height=e.framebufferHeight||r.height,q=t.zl=e.Uf.xr.getCamera(), q.aspect=t.width/t.height,q.fov=t.fov=q&&q.cameras.length?Math.atan2(1,q.cameras[0].projectionMatrix.elements[5])*2*f:r.fov,q.near=t.near=.1,q.far=t.far=1E3,b.maa(q)):(q.ka(g.Xf),q.ka(g.ng),t.fov=r.fov,t.Wd=r.Wd,t.Nk=r.Nk,t.width=r.width,t.height=r.height,t.zl=null,q=t.camera,q.aspect=t.width/t.height,q.fov=r.Wd?k.wm(r.Wd,t.width,t.height):r.Nk?r.Nk:t.width>t.height?k.wm(t.fov,t.width,t.height):t.fov,q.near=t.near=r.near,q.far=t.far=r.far,b.maa(q),t.camera.updateProjectionMatrix())};a.prototype.dsa= function(q){var r=q.getComponent(g.Cu);r.camera.parent&&r.camera.parent.remove(r.camera);r.camera=null;q.ka(g.Cu);q.ka(g.Object3D)};a.prototype.esa=function(q){var r=q.getComponent(g.Sk),t=r.camera;e.fqb&&t.parent&&t.parent.remove(t);r.camera=null;q.ka(g.Sk);q.ka(g.Object3D)};a.J={};a.J.oPa=[g.OrthographicCamera,g.Cu.aa];a.J.pPa=[g.OrthographicCamera.aa,g.Cu];a.J.APa=[g.PerspectiveCamera,g.Sk.aa];a.J.BPa=[g.PerspectiveCamera.aa,g.Sk];a.J.XJ=[g.OrthographicCamera,g.Cu];a.J.St=[g.PerspectiveCamera, g.Sk];a.PK=m.extend(n,function(){n.apply(this,arguments);this.qqa=this.qqa.bind(this)});a.PK.prototype.Yc=function(){this.St.v.length&&this.St.v.slice().forEach(this.qqa)};a.PK.prototype.qqa=function(q){var r=q.getComponent(g.PerspectiveCamera);if(r.Yma){var t=q.getComponent(g.Sk),u=t.scene||b.Sf(q),v=t.camera;if(u&&v&&b.rX(v)===u){var w=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(r.oj)w=.1,x=1E3;else{var y=!1;t.M9&&(t.boundingBox=this.MZa(u,t.boundingBox),t.M9=!1,y=!0);u=t.boundingBox; u=[[u.min.x,u.max.x],[u.min.y,u.max.y],[u.min.z,u.max.z]];for(var z=0;z<2;z++)for(var A=0;A<2;A++)for(var D=0;D<2;D++)p.set(u[0][z],u[1][A],u[2][D]).applyMatrix4(v.matrixWorldInverse),-p.z>x&&(x=-p.z),-p.z0?w:x>20?.1:.01}if(Math.abs(r.near-w)>d||Math.abs(r.far-x)>d)v.far=t.far=r.far=x,v.near=t.near=r.near=w,b.maa(v),b.mTa(v),b.lTa(v),v.updateProjectionMatrix();y||t.gna||(t.gna=setTimeout(function(){t.gna= null;t.M9=!0;q.T&&q.T.Qa()},c))}}};a.PK.prototype.MZa=function(q,r){r||(r=new THREE.Box3);r.makeEmpty();q.traverse(function(t){if(t.boundingBox)var u=t.boundingBox;else{if(!t.geometry||t.isSprite||t.Aw||t.material&&!t.material.visible)return;t.updateWorldMatrix(!1,!1);u=t.geometry;u.boundingBox===null&&u.computeBoundingBox();u=u.boundingBox}l.copy(u);l.applyMatrix4(t.matrixWorld);r.union(l)});return r};var c=500,d=1E-4,f=180/Math.PI,l=new THREE.Box3,p=new THREE.Vector3;a.PK.J={};a.PK.J.St=[g.PerspectiveCamera, g.Sk];return a}); define("tdv/player/view/webgl/system/cameraControls/ARBehaviour","require exports tdv/player/view/util/XR tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k){a=function(){function r(t){this.locked=!0;this.Di=!1;this.pf=1;this.F=t;this.update()}r.prototype.update=function(){var t=this.F.getComponent(g.vB),u=(t===null||t===void 0?void 0:t.locked)||!1;!u&&this.locked&&(this.Di=!0);this.locked=u;this.pf=(t===null||t===void 0?void 0: t.pf)||1;this.properties=t.properties;this.Di&&h.d$();this.locked||h.setScale(this.pf)};r.prototype.frame=function(){this.locked||(this.Di=!1,this.$I())};r.prototype.$I=function(){if(h.isPresenting){var t=this.F.getComponent(g.vB);t=t.wb&&n.Rc(t.wb);p.compose(h.Ec,h.wg,f);t&&p.premultiply(l.copy(t.matrixWorld).decompose(c,b,d).compose(c,b,f).invert());p.decompose(c,b,d);this.properties.set("x",c.x);this.properties.set("y",c.y);this.properties.set("z",c.z);e.setFromQuaternion(b);this.properties.set("yaw", -e.y*q);this.properties.set("pitch",e.x*q);this.properties.set("roll",e.z*q);this.properties.set("distance",0)}};r.prototype.dispose=function(){};r.Wa=function(t){t.N(g.Cr).manager=new r(t)};r.update=function(t){t.getComponent(g.Cr).manager.update()};r.frame=function(t,u,v){t.getComponent(g.Cr).manager.frame(u,v)};r.ya=function(t){var u=t.getComponent(g.Cr);u.manager.dispose();u.manager=null;t.ka(g.Cr)};return r}();var e=new k.Euler(0,0,0,"YXZ"),b=new k.Quaternion,c=new k.Vector3,d=new k.Vector3, f=new k.Vector3(1,1,1),l=new k.Matrix4,p=new k.Matrix4,q=180/Math.PI;return a}); define("tdv/player/view/webgl/system/util/RaycastUtil",["require","exports","three.mod","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a,m,h,n,g){a=function(){function d(){}d.G6=function(f,l,p){f.camera=l;l=p.getComponent(n.yc);p=(p=g.Rc(p))&&p.matrixWorld;p||(p=l.matrixWorld);p?(f.ray.origin.copy(l.origin).applyMatrix4(p),f.ray.direction.copy(l.origin).add(l.direction).applyMatrix4(p).sub(f.ray.origin).normalize()):(f.ray.origin.copy(l.origin),f.ray.direction.copy(l.direction).normalize()); return f};d.intersect=function(f,l){k.length=0;l.forEach(function(p){this.UPa(p);p.isSkinnedMesh&&!p.userData.bna&&(p.userData.bna=p.geometry.boundingBox,p.geometry.boundingBox=b,p.userData.RIa=p.geometry.boundingSphere,p.geometry.boundingSphere=c,k.push(p))}.bind(this));f.firstHitOnly=!0;l=l.filter(function(p){return(p.isScene||p.parent)&&(!p.isMesh||p.geometry)});e.length=0;e=f.intersectObjects(l,!1,e);k.forEach(function(p){p.geometry.boundingBox=p.userData.bna;delete p.userData.bna;p.geometry.boundingSphere= p.userData.RIa;delete p.userData.RIa});e=e.filter(function(p){return p.object.isLine?!1:!0});e.length>1&&e.sort(function(p,q){var r=-p.object.renderOrder,t=-q.object.renderOrder;r==t&&(r=p.object.material&&!p.object.material.depthTest?0:1,t=q.object.material&&!q.object.material.depthTest?0:1);r==t&&(r=p.distance,t=q.distance);return r-t});return e};d.UPa=function(f){if(f.isMesh&&f.geometry&&f.geometry.attributes&&f.geometry.attributes.position&&!f.geometry.userData.PIa&&!f.isSkinnedMesh){try{f.geometry.computeBoundsTree()}catch(l){}f.geometry.userData.PIa= !0}};return d}();var k=[],e=[],b=new h.Box3;b.min.x=b.min.y=b.min.z=-Infinity;b.max.x=b.max.y=b.max.z=Infinity;var c=new h.Sphere;c.center.x=c.center.y=c.center.z=0;c.radius=Infinity;return a}); define("tdv/player/view/webgl/system/cameraControls/CollidableObjects",["require","exports","tdv/player/view/webgl/system/util/entity/Util","tdv/player/view/webgl/system/util/RaycastUtil","three.mod"],function(a,m,h,n,g){a=function(){function c(d){this.lK=null;this.eKa=new g.Vector3;this.Jna=void 0;this.Ea=d}c.prototype.refresh=function(){this.lK=null};c.prototype.CK=function(d,f){return this.intersect(d,f).length>0};c.prototype.mhb=function(d){var f=h.Bt(this.Ea);if(!f)return[];k.far=f.far;k.setFromCamera(d, f);return n.intersect(k,this.X7())};c.prototype.KX=function(d){var f=h.Bt(d.Ea||this.Ea);if(!f)return[];k.far=Infinity;k.camera=f;k.ray.origin.copy(d.origin);k.ray.direction.copy(d.direction);d.matrixWorld&&k.ray.applyMatrix4(d.matrixWorld);return n.intersect(k,this.X7())};c.prototype.intersect=function(d,f){k.far=d.distanceTo(f);k.ray.origin.copy(d);k.ray.direction.copy(f).sub(d).normalize();return n.intersect(k,this.X7())};c.prototype.YW=function(d){if(this.eKa.equals(d)&&this.Jna!==void 0)return this.Jna; k.far=Infinity;k.ray.origin.copy(d);var f=[],l=[];this.X7().forEach(function(q){q.isGaussianCloud||q.Aw?l.push(q):f.push(q)});var p=Infinity;[f,l].forEach(function(q){(q==l?b:[e]).forEach(function(r){k.ray.direction.copy(r);r=n.intersect(k,q);r.length!=0&&(r=d.y-r[0].point.y,r0;){var l=d.pop();l.userData.PJ||l.isSprite||l.isLine||l.isSkinnedMesh||l.material&&!l.material.visible||f.indexOf(l)!==-1||(l.children&&d.push.apply(d,l.children),this.lK.push(l))}return this.lK};c.hlb=function(d){this.eY.clear();d.forEach(function(f){this.eY.has(f.T)||this.eY.set(f.T,[]);this.eY.get(f.T).push(f)}.bind(this))};c.eY=new Map;return c}();var k=new g.Raycaster,e=new g.Vector3(0,-1,0),b=[(new g.Vector3(0,-1,.1)).normalize(),(new g.Vector3(0, -1,.1)).normalize().applyMatrix4((new g.Matrix4).makeRotationY(Math.PI*2/3)),(new g.Vector3(0,-1,.1)).normalize().applyMatrix4((new g.Matrix4).makeRotationY(-Math.PI*2/3))];return a}); define("tdv/player/view/webgl/system/cameraControls/SequenceController","require exports tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/view/webgl/components tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a,m,h,n,g,k,e,b){return function(){function c(d,f,l){this.F=d;this.properties=f;this.ai=l;this.Oqa=0;this.YJ=this.LA=void 0;this.L9=!1;this.y$(0);this.doa=this.p7=this.coa=this.n7=this.state=void 0;this.Zc(n.ca);this.ai.bind(h.L("state"), this.VJ,this,!0);this.ai.bind(h.L("movementIndex"),this.LOa,this,!0)}c.prototype.yQ=function(){this.ai.get("mandatory")||(this.X6(),this.ai.get("restartMovementOnUserInteraction")?this.state==n.PLAYING&&(this.uSa(),this.Zc(n.$b,!0)):this.state==n.PLAYING&&this.Zc(n.ca))};c.prototype.kob=function(){this.state==n.$b&&this.L9&&this.ai.get("restartMovementOnUserInteraction")&&this.tmb()};c.prototype.frame=function(d){this.state==n.PLAYING&&this.zf!==null&&(this.zf.npa()||this.LA!=0||this.ai.o(h.Dr),this.zf.Nb(d), this.Enb(),this.properties.set("x",this.zf.ob("x")),this.properties.set("y",this.zf.ob("y")),this.properties.set("z",this.zf.ob("z")),this.properties.set("yaw",this.JE(this.zf.ob("yaw"),-180,180)),this.properties.set("pitch",this.zf.ob("pitch")),this.properties.set("distance",this.zf.ob("distance")),this.properties.set("fov",this.zf.ob("fov")),this.properties.set("easing",0),d=this.ai.get("movements")[this.LA],d.set("position",this.zf.vm()),d.o(h.Zd),this.zf.Ve()&&(d.o(h.Ub),this.y$((this.LA+1)%this.ai.get("movements").length, !0),this.LA==0&&(this.Oqa++,this.ai.o(h.Vr),this.Oqa==this.ai.get("repeat")&&(this.qQa(),this.Zc(n.ca),this.ai.o(h.Ub)))))};c.prototype.Enb=function(){var d=this.n7!==void 0&&this.coa!==void 0,f=this.p7!==void 0&&this.doa!==void 0;if(d||f){var l=this.MLa(this.F);if(l){var p=this.zf.getTime(),q=this.zf.mj();l=l.O(k.Scene);d=d&&p0||d>0?f>d?(l.aP=this.doa,l.$W=f):(l.aP=this.coa,l.$W=d):(l.aP="#000000",l.$W=0)}}};c.prototype.qQa=function(){var d= this.MLa(this.F);d&&(d.O(k.Scene).$W=0)};c.prototype.dispose=function(){this.X6();this.ai.h(h.L("state"),this.VJ,this);this.ai.h(h.L("movementIndex"),this.LOa,this);this.Zc(n.ca)};c.prototype.VJ=function(){var d=this.ai.get("state");this.state!=d&&(d==n.$b&&this.state==n.ca?this.ai.set("state",n.ca):this.Zc(d))};c.prototype.Zc=function(d,f){f===void 0&&(f=void 0);this.state!=d&&(this.state=d,this.state==n.PLAYING?(this.X6(),this.L9=!1,this.KJa(),this.Wcb()):this.state==n.$b?(this.L9=!!f,this.uSa()): this.state==n.ca&&(this.L9=!1,this.X6(),this.Oqa=0,d=this.zf.getTime(),f=this.zf.mj(),d>0&&d=q?this.JE(y,q-360,q):this.JE(y,q,q+360);break;default:y=this.JE(y,q-180,q+180)}}else g.Oa("DistanceModel3DCameraMovement",d)&&(v=f+d.get("xDelta",0),w=l+d.get("yDelta",0),x=p+d.get("zDelta",0),y=q+d.get("yawDelta",0),z=r+d.get("pitchDelta",0),A=u+d.get("fovDelta",0),D=t+d.get("distanceDelta",0));this.zf=new e(d.get("easing"),[new b("x",f,v,d.get("xSpeed")),new b("y",l,w,d.get("ySpeed")),new b("z",p,x,d.get("zSpeed")),new b("yaw",q, y,d.get("yawSpeed")),new b("pitch",r,z,d.get("pitchSpeed")),new b("fov",u,A,d.get("fovSpeed")),new b("distance",t,D,d.get("distanceSpeed"))],d.get("duration"));this.n7=d.get("fadeFromDuration");this.coa=d.get("fadeFromColor");this.p7=d.get("fadeToDuration");this.doa=d.get("fadeToColor")};c.prototype.Wcb=function(){this.YJ=void 0};c.prototype.uSa=function(){if(this.zf){this.YJ=void 0;var d=this.zf&&this.zf.oX("yaw");d&&(d.to>d.from?this.YJ="right":d.tol;)d-=l-f;return d};return c}()}); define("tdv/player/view/webgl/system/cameraControls/SequencesController","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/webgl/system/cameraControls/SequenceController tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a,m,h,n,g,k,e){return function(){function b(c,d){this.F=c;this.properties=d;this.C9=this.C9.bind(this);this.A9=this.A9.bind(this);this.VJ=this.VJ.bind(this);this.xm=this.yw=null;this.dQ=[];this.kh=null; this.kF=!1;this.hA=new Map;h.ba(this.properties,["userInteracting"],this.C9,!0);h.ba(this.properties,["initialSequence","idleSequence","sequences.movements"],this.A9,!0);h.ba(this.properties,["state"],this.VJ,!0);this.ready=!1}b.prototype.frame=function(c){if(!this.ready){var d=e.Sf(this.F),f=0;d&&d.traverse(function(l){(l.isMesh||l.isSprite)&&f++});if(f>0)this.ready=!0,this.Jib();else return!1}this.kh&&this.hA.get(this.kh).frame(c);(c=this.kh&&this.kh.get("state")==g.PLAYING)&&this.F.T.Qa();this.properties.set("controllingPosition", c)};b.prototype.dispose=function(){this.kh&&this.kh.get("mandatory")&&this.properties.set("inMandatorySequence",!1);this.kh&&this.properties.set("controllingPosition",!1);h.da(this.properties,["userInteracting"],this.C9);h.da(this.properties,["initialSequence","idleSequence","sequences.movements"],this.A9);h.da(this.properties,["state"],this.VJ);this.V$();this.xm&&this.UO(this.xm);this.yw&&this.UO(this.yw);this.dQ.forEach(this.UO.bind(this));this.dQ=[]};b.prototype.vZ=function(){this.kF||this.GJ|| !this.xm||this.kh||!this.properties.get("timeToIdle")||(this.GJ=setTimeout(function(){this.GJ=null;this.vib()}.bind(this),this.properties.get("timeToIdle")))};b.prototype.V$=function(){this.GJ&&(clearTimeout(this.GJ),this.GJ=null)};b.prototype.vib=function(){this.xm&&this.xm.set("state",g.PLAYING)};b.prototype.Jib=function(){this.yw?this.yw.set("state",g.PLAYING):this.vZ()};b.prototype.VJ=function(){this.kh?this.kh.set("state",this.properties.get("state")):this.properties.get("state")==g.PLAYING? (this.vZ(),this.GJ||this.properties.set("state",g.ca)):this.V$()};b.prototype.C9=function(){var c=this.properties.get("userInteracting");this.kF!=c&&(this.kF&&(this.kh&&this.hA.get(this.kh).kob(),!this.xm||this.kh&&this.kh!=this.xm||this.vZ()),this.kF=c)&&(this.V$(),this.kh&&this.hA.get(this.kh).yQ())};b.prototype.A9=function(){var c=this.Vqa(this.properties.get("initialSequence"));this.yw!=c&&(this.yw&&this.UO(this.yw),(this.yw=c)&&this.xna(this.yw));c=this.Vqa(this.properties.get("idleSequence")); this.xm!=c&&(this.xm&&this.UO(this.xm),(this.xm=c)&&this.xna(this.xm));var d=(this.properties.get("sequences")||[]).filter(this.Vqa.bind(this));this.dQ.forEach(function(l){d.indexOf(l)<0&&this.UO(l)}.bind(this));var f=this.dQ;this.dQ=d;this.dQ.forEach(function(l){f.indexOf(l)<0&&this.xna(l)}.bind(this));this.kh||!this.xm||this.GJ||this.vZ()};b.prototype.Vqa=function(c){var d=c&&c.get("movements");return d&&d.length!=0?c:null};b.prototype.WOa=function(c){c=c.source;var d=c.get("state");d==g.PLAYING? (this.V$(),d=this.kh,this.kh=c,d&&d!=this.kh&&d.set("state",g.ca),this.properties.set("state",g.PLAYING),this.properties.set("inMandatorySequence",c.get("mandatory")),this.F.T.Qa()):d==g.$b?c==this.kh&&this.properties.set("state",g.$b):d==g.ca&&c==this.kh&&(this.properties.set("state",g.ca),this.properties.set("inMandatorySequence",!1),this.kh=null,c!=this.xm&&this.vZ())};b.prototype.xna=function(c){if(this.hA.has(c))this.hA.get(c);else{c.set("state",g.ca);c.bind(n.L("state"),this.WOa,this,!0);var d= new k(this.F,this.properties,c);this.hA.set(c,d)}};b.prototype.UO=function(c){this.hA.has(c)&&(c.set("state",g.ca),c.h(n.L("state"),this.WOa,this),this.hA.get(c).dispose(),this.hA["delete"](c))};return b}()}); define("tdv/player/view/webgl/system/cameraControls/CameraSequenceBehaviour",["require","exports","tdv/player/view/webgl/system/cameraControls/SequencesController","tdv/player/view/webgl/components"],function(a,m,h,n){return function(){function g(k){this.RY=this.properties=null;this.F=k;this.update()}g.prototype.update=function(){var k=this.F.getComponent(n.TK);this.fQ(k&&k.properties)};g.prototype.fQ=function(k){var e;this.properties&&((e=this.RY)===null||e===void 0||e.dispose(),this.RY=null);if(this.properties= k)this.RY=new h(this.F,this.properties)};g.prototype.frame=function(k){this.RY&&this.RY.frame(k)};g.prototype.dispose=function(){this.fQ(null)};g.Wa=function(k){k.N(n.sx).manager=new g(k)};g.update=function(k){k.getComponent(n.sx).manager.update()};g.frame=function(k,e,b){k.getComponent(n.sx).manager.frame(e,b)};g.ya=function(k){k.getComponent(n.sx).manager.dispose();k.ka(n.sx)};return g}()}); define("tdv/player/view/webgl/system/cameraControls/DraggingObserver",["require","exports"],function(){return function(){function a(){}a.sP=function(m){return this.Baa.indexOf(m)>=0};a.gra=function(m){this.Baa=[];m.forEach(function(h){h=h.T;this.Baa.indexOf(h)<0&&this.Baa.push(h)}.bind(this))};a.Baa=[];return a}()}); define("tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin",["require"],function(){return{ppb:function(){},qpb:function(){},X1:function(){return this.A&&this.A.get("inMandatorySequence")||this.A&&!this.A.get("keyboardEnabled")?!0:!1},Zm:function(){return this.A&&this.A.get("inMandatorySequence")||this.A&&(!this.A.get("mouseEnabled")||this.A.get("mouseDisabled"))?!0:!1},Qza:function(){return this.A&&this.A.get("doubleClickDisabled")?!0:!1},JBa:function(){this.DM()||this.Dy||this.zHa()}, IBa:function(){this.DM()||this.Dy||this.yHa()},bN:function(){this.Rza()||this.zHa()},aN:function(){this.Rza()||this.yHa()},zHa:function(){this.A&&this.A.set("userInteracting",!0)},yHa:function(){this.A&&this.A.set("userInteracting",!1)}}}); define("tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter",["require","exports","tdv/player/view/webgl/system/util/entity/Util","three.mod"],function(a,m,h,n){return function(){function g(k){this.matrixWorld=new n.Matrix4;this.tE=!1;this.timeout=null;this.F=k}g.prototype.fQ=function(k,e){if(this.BK!=k||this.propertyName!=e)this.BK&&this.BK.set(this.propertyName,!1),this.BK=k,this.propertyName=e,this.BK&&this.BK.set(this.propertyName,this.tE)};g.prototype.Dsa=function(){var k=h.Rc(this.F), e=!!k&&!k.matrixWorld.equals(this.matrixWorld);e&&this.matrixWorld.copy(k.matrixWorld);this.Gp(e);this.timeout&&(clearTimeout(this.timeout),this.timeout=null);e&&(this.timeout=setTimeout(function(){this.timeout=null;this.Gp(!1)}.bind(this),g.AVa))};g.prototype.ya=function(){this.Gp(!1);this.timeout&&clearTimeout(this.timeout)};g.prototype.Gp=function(k){this.tE!=k&&(this.tE=k,this.BK&&this.BK.set(this.propertyName,k))};g.AVa=100;return g}()}); define("tdv/player/view/webgl/system/cameraControls/PropertiesSetter",["require","exports"],function(){return function(){function a(m){this.properties=m}a.prototype.hRa=function(m){this.properties.set("fov",this.FP(m,this.properties.get("minFov",.1),this.properties.get("maxFov",180)))};a.prototype.sj=function(m){this.properties.set("yaw",this.j$(this.Vhb(m,this.properties.get("minYaw"),this.properties.get("maxYaw"),this.properties.get("yaw"))))};a.prototype.$n=function(m){this.properties.set("pitch", this.FP(m,this.properties.get("minPitch",-90),this.properties.get("maxPitch",90)))};a.prototype.setX=function(m){this.properties.set("x",this.FP(m,this.properties.get("minX"),this.properties.get("maxX")))};a.prototype.setY=function(m){this.properties.set("y",this.FP(m,this.properties.get("minY"),this.properties.get("maxY")))};a.prototype.setZ=function(m){this.properties.set("z",this.FP(m,this.properties.get("minZ"),this.properties.get("maxZ")))};a.prototype.Yn=function(m){this.properties.set("distance", this.FP(m,this.properties.get("minDistance"),this.properties.get("maxDistance")))};a.prototype.Xj=function(m){this.properties.set("easing",m)};a.prototype.Vhb=function(m,h,n,g){if(h!==void 0||n!==void 0){var k=this.j$(m-g);if(h!==void 0&&k<0){if(this.j$(g)+k0&&this.j$(g)+k>n)return n}return m};a.prototype.FP=function(m,h,n){if(isNaN(m))throw"invalid value";h!==void 0&&mn&&(m=n);return m};a.prototype.j$=function(m){for(;m<-180;)m+=360;for(;m> 180;)m-=360;return m};return a}()}); define("tdv/player/view/webgl/system/util/mixin/KeyboardMixin",["require","tdv/view/util/KeyboardControl"],function(a){var m=a("tdv/view/util/KeyboardControl");return{iha:function(h){this.g2=this.g2.bind(this);this.h2=this.h2.bind(this);this.FR=this.sk=!1;this.Ig={};for(var n=0;n0},h2:function(h){if(!(m.yp()||this.X1&&this.X1())){var n=!1;this.sk!=h.shiftKey&&(this.sk=h.shiftKey,n=!0);this.FR!=h.ctrlKey&&(this.FR=h.ctrlKey,n=!0);this.Ig[h.code]===!0&&(this.Ig[h.code]=!1,n=!0,this.tq&&this.tq(h.code),this.ZS--,this.ZS==0&&this.IBa&&this.IBa());n&&this.ST&&this.ST()}},g2:function(h){if(!(m.yp()||this.X1&&this.X1())){var n=!1;this.sk!=h.shiftKey&& (this.sk=h.shiftKey,n=!0);this.FR!=h.ctrlKey&&(this.FR=h.ctrlKey,n=!0);this.Ig[h.code]===!1&&(n=this.Ig[h.code]=!0,this.SH&&this.SH(h.code),this.ZS++,this.ZS==1&&this.JBa&&this.JBa());n&&this.ST&&this.ST()}},Cpb:function(){return this.sk},wpb:function(){return this.FR}}}); define("tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager",["require","exports","tdv/view/constants/Cursor"],function(a,m,h){a=function(){function g(){this.Gf=[]}g.prototype.bu=function(k){this.aRa(k);this.Ab=k;this.vea=null};g.prototype.bRa=function(k){this.aRa(k?k.SLa():null);this.Ab=null;this.vea=k};g.prototype.Hlb=function(k,e){this.Ab&&this.Ab.set("cursor",k);this.vea&&this.vea.m$(k,e)};g.prototype.aRa=function(k){this.Oe&&(this.Oe.Djb(this),this.Oe=void 0);k&&(this.Oe=n.get(k), this.Oe.Wbb(this))};g.prototype.dispose=function(){this.bu(null);this.Gf=[]};g.prototype.push=function(k){this.Gf.push(k);this.Oe&&this.Oe.update()};g.prototype.pop=function(k){for(var e=this.Gf.length-1;e>=0;e--)if(this.Gf[e]==k){this.Gf.splice(e,1);this.Oe&&this.Oe.update();break}};g.prototype.has=function(k){return this.Gf.indexOf(k)>=0};g.prototype.top=function(){if(this.Gf.length)return this.Gf[this.Gf.length-1]};g.prototype.all=function(){return this.Gf};return g}();var n=function(){function g(k){this.dc= k;this.zd=[]}g.prototype.Wbb=function(k){this.zd.push(k);this.update()};g.prototype.Djb=function(k){this.zd.splice(this.zd.indexOf(k),1);this.update();this.zd.length==0&&g.clear(this.dc)};g.prototype.update=function(){var k=this.EXa();var e=this.ega(h.cG)?h.cG:this.ega(h.Mi)?h.Mi:this.ega(h.qf)?h.qf:this.ct()||h.De;this.zd.forEach(function(b){b.Hlb(e,k)})};g.prototype.ega=function(k){for(var e=this.zd.length-1;e>=0;e--)if(this.zd[e].has(k))return!0;return!1};g.prototype.EXa=function(){var k=[];this.zd.forEach(function(e){e.all().forEach(function(b){k.indexOf(b)< 0&&k.push(b)})});return k};g.prototype.ct=function(){for(var k,e=this.zd.length-1;e>=0&&k===void 0;e--)k=this.zd[e].top();return k};g.get=function(k){var e=this.ab.get(k);e||this.ab.set(k,e=new g(k));return e};g.clear=function(k){this.ab["delete"](k)};g.ab=new Map;return g}();return a}); define("tdv/view/util/MouseLocker",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher"],function(a,m,h,n){return function(g){function k(e){var b=g.call(this)||this;if(e instanceof HTMLElement)b.XNa=e;else throw Error("invalid element");b.y9=b.y9.bind(b);document.addEventListener("pointerlockchange",b.y9.bind(b),!1);return b}P(k,g);k.prototype.dispose=function(){document.removeEventListener("pointerlockchange",this.y9)};k.prototype.lock=function(){if(!this.hr())return this.XNa.requestPointerLock()}; k.prototype.unlock=function(){this.hr()&&document.exitPointerLock()};k.prototype.hr=function(){return document.pointerLockElement===this.XNa};k.prototype.y9=function(){this.o(h.V)};k.hr=function(){return document.pointerLockElement!==null};return k}(n)}); define("tdv/player/view/webgl/system/util/mixin/MouseMixin",["require","tdv/constants/EventName","tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager","tdv/view/util/MouseLocker"],function(a){function m(e,b){var c=b.x-e.x;e=b.y-e.y;return Math.sqrt(c*c+e*e)}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager"),g=a("tdv/view/util/MouseLocker"),k=180/Math.PI;return{Rha:function(){this.W2=this.$y=this.Dy=this.nv=!1;this.r4= this.df=null;this.Q1=new n;this.vT=null;this.q5a=this.B4a.bind(this)},Sha:function(){this.a5(null);this.Q1.dispose()},DAa:function(e){this.Mq(e);if(!this.Zm||!this.Zm()){var b=this.CM();this.nv||(this.nv=!0,b||this.bN&&this.bN());this.$y=!e.zE||!e.zE.buttons||(e.zE.buttons&2)===0;this.r4=e;this.uq&&this.uq(e.x,e.y);this.w3&&this.w3(e.x,e.y)}},CM:function(){return this.nv||this.Dy||this.W2},DM:function(){return this.nv},xpb:function(){return this.Dy},ypb:function(){return this.$y},zpb:function(){return this.W2}, FAa:function(e){this.Mq(e);if(this.Zm&&this.Zm())this.rT(e);else if(this.tg&&this.tg(e.x,e.y),this.nv||this.OM.hr()){var b=e.movementX!==void 0?e.movementX:e.x-this.r4.x,c=e.movementY!==void 0?e.movementY:e.y-this.r4.y;this.OM.hr()&&(b*=-1,c*=-1);this.r4=e;this.v3&&this.v3(b,c,e.x,e.y)}},rT:function(e){this.nv&&(e&&this.Mq(e),this.$y=this.nv=!1,this.gz&&this.gz(this.Ad,this.Bd),this.TH&&this.TH(),this.CM()||this.aN&&this.aN())},zAa:function(e){this.Zm&&this.Zm()||(this.Mq(e),this.fz&&this.fz(e.x, e.y))},AAa:function(e){this.Zm&&this.Zm()||this.Qza&&this.Qza()||(this.Mq(e),this.$M&&this.$M(e.x,e.y))},GAa:function(e){this.Mq(e);if(!this.Zm||!this.Zm()){e=e.lA/10;var b=this.CM();this.vT||(this.W2=!0,this.r5a&&this.r5a(),b||this.bN&&this.bN());this.x3&&this.x3(e);this.vT&&clearTimeout(this.vT);this.vT=setTimeout(this.q5a,100)}},B4a:function(){this.vT=null;this.p5a&&this.p5a();this.W2=!1;this.CM()||this.aN&&this.aN()},CAa:function(e){if(!(this.Zm&&this.Zm()||e.touches.length<2)){var b=this.CM(); this.Dy||(this.Dy=!0,this.C4a(e.touches),b||this.bN&&this.bN());this.BBa&&this.BBa();this.rT()}},BAa:function(e){this.Zm&&this.Zm()||e.touches.length<2||!this.Dy||(this.HAa(e.touches),this.pia&&this.pia(this.F$a,this.G$a,this.pla,this.H$a),this.ABa&&this.ABa(this.Lga,this.Mga,this.TV,this.VV,1,this.pla,this.IS,this.ola,this.Kga,this.SV))},Qha:function(){this.Dy&&(this.Dy=!1,this.qia&&this.qia());this.CM()||this.aN&&this.aN()},C4a:function(e){this.Kga=this.Mga=this.Lga=this.IS=this.pla=this.VV=this.TV= this.ola=this.SV=void 0;this.RV=e;this.HAa(e)},HAa:function(e){m(e[0],this.RV[0])+m(e[1],this.RV[1])>m(e[0],this.RV[1])+m(e[1],this.RV[0])&&(e=[e[1],e[0]]);var b=e[0];var c=e[1];b=Math.atan2(-(c.y-b.y),c.x-b.x)*k;c=m(e[0],e[1]);var d=(e[0].x+e[1].x)/2,f=(e[0].y+e[1].y)/2;this.pla=this.IS!==void 0?c/this.IS:1;this.H$a=this.SV!==void 0?b-this.SV:0;this.SV=b;this.ola=c;this.F$a=this.TV!==void 0?d-this.TV:0;this.G$a=this.VV!==void 0?f-this.VV:0;this.TV=d;this.VV=f;this.Lga!==void 0||(this.Lga=this.TV); this.Mga!==void 0||(this.Mga=this.VV);this.Kga!==void 0||(this.Kga=this.SV);this.IS!==void 0||(this.IS=this.ola);this.RV=e},EAa:function(){},z0a:function(){this.rT();this.Qha()},pS:function(){return this.df?this.df.nb():100},fH:function(){return this.df?this.df.Mb():100},Gy:function(){return this.df?Math.max(this.df.nb(),this.df.Mb()):100},a5:function(e){this.df!=e&&(this.df&&(this.df.h(h.Sa,this.DAa,this,!0),this.df.h(h.gb,this.FAa,this,!0),this.df.h(h.$a,this.rT,this,!0),this.df.h(h.ma,this.zAa, this,!0),this.df.h(h.fi,this.AAa,this,!0),this.df.h(h.Qk,this.GAa,this,!0),this.df.h(h.Mba,this.BAa,this,!0),this.df.h(h.HB,this.CAa,this,!0),this.df.h(h.YK,this.Qha,this,!0),this.OM.h(h.V,this.EAa,this,!0),this.OM.dispose(),this.OM=null),this.df=e,this.Q1.bu(this.df),this.df&&(this.df.bind(h.Sa,this.DAa,this,!0),this.df.bind(h.gb,this.FAa,this,!0),this.df.bind(h.$a,this.rT,this,!0),this.df.bind(h.ma,this.zAa,this,!0),this.df.bind(h.fi,this.AAa,this,!0),this.df.bind(h.Qk,this.GAa,this,!0),this.df.bind(h.Mba, this.BAa,this,!0),this.df.bind(h.HB,this.CAa,this,!0),this.df.bind(h.YK,this.Qha,this,!0),this.OM=new g(this.df.wa().cc()),this.OM.bind(h.V,this.EAa,this,!0)))},tT:function(e){e.x=-1+2*e.x/this.pS();e.y=1-2*e.y/this.fH();return e},Mq:function(e){this.Ad=e.x;this.Bd=e.y;this.PM=e.pageX;this.QM=e.pageY},kI:function(e){this.Q1.push(e)},o4:function(e){this.Q1.pop(e)}}}); define("tdv/player/view/webgl/system/util/mixin/ScreenJoystickMixin",["require","tdv/constants/EventName"],function(a){var m=a("tdv/constants/EventName");return{A7a:function(){this.S4=!1;this.Hq=null;this.BH=this.EM=0;this.rI=!1;this.wEa(!0)},B7a:function(){this.wEa(!1);this.hFa(null)},wEa:function(h){this.S4!=h&&((this.S4=h)||this.R4())},hFa:function(h){this.Hq!=h&&(this.R4(),this.Hq&&(this.Hq.h(m.Up,this.xEa,this,!0),this.Hq.h(m.Fg,this.R4,this,!0),this.Hq.h(m.V,this.vEa,this,!0),this.BH=this.EM= 0),this.Hq=h)&&(this.Hq.bind(m.Up,this.xEa,this,!0),this.Hq.bind(m.Fg,this.R4,this,!0),this.Hq.bind(m.V,this.vEa,this,!0))},xEa:function(){!this.rI&&this.S4&&(this.rI=!0,this.NCa&&this.NCa())},vEa:function(){this.rI&&(this.EM=this.Hq.getX(),this.BH=this.Hq.getY(),this.LCa&&this.LCa())},R4:function(){this.rI&&(this.rI=!1,this.BH=this.EM=0,this.MCa&&this.MCa())},Bpb:function(){return this.rI}}}); define("tdv/player/view/webgl/system/cameraControls/FirstPersonBehaviour","require tdv/utils tdv/constants/EventName tdv/constants/Key tdv/player/view/webgl/components tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/system/cameraControls/DraggingObserver tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter tdv/player/view/webgl/system/cameraControls/PropertiesSetter tdv/player/view/webgl/system/util/mixin/KeyboardMixin tdv/player/view/webgl/system/util/mixin/MouseMixin tdv/player/view/webgl/system/util/mixin/ScreenJoystickMixin tdv/view/constants/Cursor tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){function m(L){this.TR= !1;this.Nea=0;this.Gxa=!1;this.Hxa=L}function h(L){this.B=L;this.xs=new f(L);this.iha(y);this.Rha();this.A7a();this.yI=.025;this.gn=.25;this.T2=this.U2=this.V2=this.q1=0;this.Ka=null;this.k0=this.M5=!1;this.Ha=void 0;this.dAa=new THREE.Vector3(void 0,void 0,void 0);this.dv=[];this.v4a=5;this.s4a=10;this.gy=new c(this.B);this.kI(t.IB);this.FM={};[k.ua.ck,k.ua.Ki,k.ua.fb,k.ua.Db].forEach(function(U){this.FM[U]=new m(300)}.bind(this));[k.ua.Mp,k.ua.qo,k.ua.Sp,k.ua.uo,k.ua.Q,k.ua.E].forEach(function(U){this.FM[U]= new m(300)}.bind(this));this.update()}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/constants/Key"),e=a("tdv/player/view/webgl/components"),b=a("tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin"),c=a("tdv/player/view/webgl/system/cameraControls/CollidableObjects"),d=a("tdv/player/view/webgl/system/cameraControls/DraggingObserver"),f=a("tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter"),l=a("tdv/player/view/webgl/system/cameraControls/PropertiesSetter"), p=a("tdv/player/view/webgl/system/util/mixin/KeyboardMixin"),q=a("tdv/player/view/webgl/system/util/mixin/MouseMixin"),r=a("tdv/player/view/webgl/system/util/mixin/ScreenJoystickMixin"),t=a("tdv/view/constants/Cursor"),u=a("tdv/view/util/Ease"),v=a("tdv/view/util/EaseDimension");n.D6(h,[b,p,q,r]);h.prototype.update=function(){var L=this.B.getComponent(e.PF);this.Oj(L&&L.properties);this.xs.fQ(L&&L.properties,"moving");var U=(!L.TO||!d.sP(this.B.T))&&L.enabled;this.a5(L&&(U?L.Rf:null));this.$S(!!L&& U&&L.jE);this.hFa(!!L&&U&&L.FQa);U||this.TH();U&&L.jE||(this.Wo=this.Vo=this.Ol=this.Zk=this.Pl=0)};h.prototype.frame=function(L){this.I3a()?this.U2a(L):this.V2a(L);this.O0a()};h.prototype.I3a=function(){return this.properties&&this.properties.get("playingSequence")||this.Wi};h.prototype.U2a=function(L){this.properties&&this.properties.get("playingSequence")||this.IXa(L)};h.prototype.IXa=function(L){this.Wi&&(this.Wi.Nb(L),this.Ka.setX(this.Wi.ob("x")),this.Ka.setY(this.Wi.ob("y")),this.Ka.setZ(this.Wi.ob("z")), this.Ka.Xj(0),this.Wi.Ve()&&(this.Wi=null),this.B.T.Qa())};var w=1E3/3600*8/1.7;h.prototype.V2a=function(L){H.set(this.A.get("x"),this.A.get("y"),this.A.get("z"));this.Z1a(L,N,R);this.j2a(H,N,E);this.Ka.setX(E.x);this.Ka.setY(E.y);this.Ka.setZ(E.z);this.Ka.sj(this.A.get("yaw")+R.x);this.Ka.$n(this.A.get("pitch")+R.y);this.Ka.Xj(this.gn);N.x==0&&N.y==0&&N.z==0&&R.x==0&&R.y==0||this.B.T.Qa()};h.prototype.O0a=function(){this.ibb();this.mab();this.xs.Dsa();this.rI&&this.B.T.Qa();this.gy.refresh()};h.prototype.Z1a= function(L,U,T){L/=1E3;var Y=this.sk?.2:1,aa=1.7*w;aa*=this.A.get("translationSpeed")*Y;var ba=this.A.get("rotationSpeed")*Y;Y=this.T2;var ea=this.U2,ia=this.V2,da=this.q1;this.T2=this.U2=this.V2=this.q1=0;var V=(Y*Y+ea*ea)/x;V=V>1?1/Math.sqrt(V):1;Y*=V;ea*=V;var X=F*Math.atan2(this.EM,Math.abs(this.BH));V=Math.sqrt(this.EM*this.EM+this.BH*this.BH);var S=Math.max(this.fH(),this.pS()),W=this.A.get("fov")/S*2;Y=-Y*W*ba;ea=ea*W*ba;ia=-ia*25*aa;W=this.oS(k.ua.Mp,k.ua.Sp)*aa;var Z=this.oS(k.ua.uo,k.ua.qo)* aa,ca=this.oS(k.ua.Q,k.ua.E)*aa,fa=this.oS(k.ua.Ki,k.ua.ck)*ba*30,ja=this.oS(k.ua.fb,k.ua.Db)*ba*30;da=2*da*1.7/S;ba*=X*V*.125;aa*=-V*.5*this.BH;(V=this.B.getComponent(e.ta))&&(Y||ea||ia||W||ca||Z||fa||ja||ba||aa||da)?(C.makeRotationFromEuler(B.set(0,V.fd*D,0,V.mf)),U.set(W*L,ca*L+da,(Z+aa+ia)*L).applyMatrix4(C),T.set(Y+(ja+ba)*L,ea+fa*L)):(U.set(0,0,0),T.set(0,0))};h.prototype.oS=function(L,U){L=this.FM[L].getState();if(L===m.Waa)return-3;if(L===m.Ki)return-1.5;U=this.FM[U].getState();return U=== m.Waa?3:U===m.Ki?1.5:0};h.prototype.j2a=function(L,U,T){T.copy(L).add(U);if(!T.equals(L)){var Y=!this.dAa.equals(L);this.RGa(T,Y);this.Ha!==void 0&&U.y!==0&&(this.Ha=Math.max(.595,this.Ha+U.y));var aa=this.gy.YW(T);(Y||aa==Infinity)&&this.vZa();var ba=aa!==Infinity?T.y-aa:void 0;if(this.A.get("keepHeight")&&aa!==Infinity){aa=this.nS();if(ba>(Y?ba:this.a2a(L))+this.A.get("maxStepHeight",aa*.25)){T.copy(L);return}T.y=(Y?ba:this.h2a(ba))+aa}if(this.A.get("collisionDetection")&&(O.copy(U).normalize().multiplyScalar(.1).add(T), this.gy.CK(L,O))){T.copy(L);return}ba!==void 0&&this.jXa(ba);this.dAa.copy(T)}};h.prototype.vZa=function(){this.dv=[]};h.prototype.a2a=function(L){return this.dv.length==0?L:this.dv[this.dv.length-1]};h.prototype.h2a=function(L){return this.dv.lengthU+T,0)/this.dv.length};h.prototype.jXa=function(L){this.dv.push(L);this.dv.length>this.s4a&&this.dv.shift()};h.prototype.RGa=function(L,U){if(this.Ha===void 0||U)L=this.gy.YW(L),L!==Infinity&&(this.Ha=L)};h.prototype.nS= function(){return this.Ha===void 0?1.7:this.Ha};h.prototype.SH=function(L){this.B.T.Qa();this.FM[L].cqa()};h.prototype.tq=function(L){this.FM[L].dqa()};h.prototype.w3=function(){this.zj=!0;this.kI(t.Mi)};h.prototype.$M=function(L,U){if(this.A.get("doubleClickAction")=="translate"&&(this.tT(K.set(L,U)),L=this.gy.mhb(K),L.length!=0)){var T=L[0];L=H.set(this.A.get("x"),this.A.get("y"),this.A.get("z"));U=E.copy(T.point);this.RGa(L);var Y=this.nS();T.face&&T.face.normal?(T=G.copy(T.face.normal).transformDirection(T.object.matrixWorld), T=Math.abs(Math.acos(T.dot(Q)))Y*.05||(this.Wi=new u("cubic_in_out",[new v("x",L.x,U.x),new v("y",L.y,U.y),new v("z",L.z,U.z)],1500),this.B.T.Qa())}};var x=2500;h.prototype.v3=function(L,U){this.zj&&(this.T2+=L,this.U2+=U,this.B.T.Qa())};h.prototype.TH=function(){this.zj=!1;this.o4(t.Mi);this.B.T.Qa()}; h.prototype.x3=function(L){this.V2+=L;this.B.T.Qa()};h.prototype.pia=function(L,U){this.q1+=U;this.B.T.Qa()};h.prototype.NCa=function(){this.z0a();this.kI(t.Mi)};h.prototype.LCa=function(){this.B.T.Qa()};h.prototype.MCa=function(){this.o4(t.Mi)};h.prototype.Oj=function(L){this.A!=L&&(this.A&&(this.Ka=null,z.forEach(function(U){this.A.h(g.L(U),this.Kia,this,!0)}.bind(this)),A.forEach(function(U){this.A.h(g.L(U),this.gia,this,!0)}.bind(this)),this.A.set("userInteracting",!1)),this.A=L)&&(this.Ka=new l(this.A), z.forEach(function(U){this.A.bind(g.L(U),this.Kia,this,!0)}.bind(this)),this.Kia(),A.forEach(function(U){this.A.bind(g.L(U),this.gia,this,!0)}.bind(this)),this.gia(),this.A.set("userInteracting",!1))};h.prototype.Kia=function(){this.M5||(this.M5=!0,this.B.T.Qa())};h.prototype.ibb=function(){if(this.M5&&this.B&&this.A){this.M5=!1;var L=this.B.O(e.ta,!0);L.translationX=this.A.get("x");L.translationY=this.A.get("y");L.Ze=this.A.get("z");L.fd=-this.A.get("yaw");L.Yd=this.A.get("pitch");L.Xe=0;L.mf="YXZ"; L.positionX=0;L.positionY=0;L.positionZ=0;L.easing=this.A.get("easing")}};h.prototype.gia=function(){this.k0||(this.k0=!0,this.B.T.Qa())};h.prototype.mab=function(){this.k0&&this.B&&this.A&&(this.k0=!1,this.B.O(e.PerspectiveCamera,!0).fov=this.A.get("fov"))};var y=[k.ua.ck,k.ua.Ki,k.ua.fb,k.ua.Db,k.ua.Mp,k.ua.qo,k.ua.Sp,k.ua.uo,k.ua.Q,k.ua.E],z="minYaw maxYaw yaw minPitch maxPitch pitch minX maxX x minY maxY y minZ maxZ z distance easingSpeed".split(" "),A=["minFov","maxFov","fov"],D=Math.PI/180, F=180/Math.PI,C=new THREE.Matrix4,B=new THREE.Euler,H=new THREE.Vector3,E=new THREE.Vector3,G=new THREE.Vector3,N=new THREE.Vector3,O=new THREE.Vector3,R=new THREE.Vector2,Q=new THREE.Vector3(0,1,0),K=new THREE.Vector2;h.prototype.dispose=function(){this.Oj(null);this.jha();this.Sha();this.B7a();this.xs.ya();this.gy=null};h.Wa=function(L){L.N(e.Lr).manager=new h(L)};h.ya=function(L){var U=L.getComponent(e.Lr);U.manager.dispose();U.manager=null;L.ka(e.Lr)};h.update=function(L){L.getComponent(e.Lr).manager.update()}; h.frame=function(L,U,T){L.getComponent(e.Lr).manager.frame(U,T)};m.prototype.cqa=function(){this.TR||(this.TR=!0,this.Gxa=Date.now()-this.Nea180?V-=360:V<-180&&(V+=360);return V}function n(){return(new Date).getTime()}var g=a("tdv/utils"),k=a("tdv/constants/EventName"), e=a("tdv/constants/Key");a("tdv/player/view/util/geo/Fov");var b=a("tdv/player/view/webgl/system/util/entity/Util"),c=a("tdv/player/view/webgl/components"),d=a("tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin"),f=a("tdv/player/view/webgl/system/cameraControls/DraggingObserver"),l=a("tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter"),p=a("tdv/player/view/webgl/system/cameraControls/PropertiesSetter");a("tdv/player/view/webgl/system/cameraControls/SequencesController"); var q=a("tdv/player/view/webgl/system/util/mixin/KeyboardMixin"),r=a("tdv/player/view/webgl/system/util/mixin/MouseMixin"),t=a("tdv/view/constants/Cursor"),u=a("tdv/view/util/Ease"),v=a("tdv/view/util/EaseDimension");g.D6(m,[d,q,r]);m.prototype.update=function(){var V=this.B.getComponent(c.QF);this.Oj(V&&V.properties);this.xs.fQ(V&&V.properties,"moving");var X=(!V.TO||!f.sP(this.B.T))&&V.enabled;this.a5(V&&(X?V.Rf:null));this.$S(!!V&&X&&V.jE);X||this.TH();X&&V.jE||(this.Wo=this.Vo=this.Ol=this.Zk= this.Pl=0)};m.prototype.frame=function(V){this.Wi&&(this.Wi.Nb(V),this.Ka.setX(this.Wi.ob("x")),this.Ka.setY(this.Wi.ob("y")),this.Ka.setZ(this.Wi.ob("z")),this.Ka.Yn(this.Wi.ob("distance")),this.Ka.Xj(0),this.Wi.Ve()&&(this.Wi=null));this.uh&&(this.uh=Math.max(0,this.uh-V/this.Iga),this.Ka.setX(this.A.get("x")+this.tH*this.uh),this.Ka.setY(this.A.get("y")+this.uH*this.uh),this.Ka.setZ(this.A.get("z")+this.vH*this.uh),this.Ka.sj(this.A.get("yaw")+this.rH*this.uh),this.Ka.$n(this.A.get("pitch")+this.qH* this.uh),this.Ka.Xj(0),this.B.T.Qa(),this.uh==0&&this.PU());if(this.Wo||this.Vo||this.Ol||this.Zk||this.Pl){var X=V/1E3;this.Wha(this.Ol*X,this.Zk*X,this.Pl*X,this.Wo*X,this.Vo*X)}if(this.qd==w&&this.km!==void 0&&!this.Zk&&this.A.get("keepHeight")&&this.yS!==void 0&&Math.abs(this.km-this.A.get("y"))>T){this.tM=Math.max(this.tM-V,0);X=this.A.get("y");var S=this.km-X;this.Ka.setY(X+Math.min(V*this.yS,Math.abs(S))*(S>0?1:-1));this.B.T.Qa()}this.qd!=w||!this.Ns||this.uh||this.Wi||(this.HG(),this.B.T.Qa()); this.xs.Dsa()};m.prototype.ST=function(){this.Ula()};m.prototype.Ula=function(){var V=this.Pl!=0||this.Zk!=0||this.Ol!=0;this.Wo=this.Vo=this.Pl=this.Zk=this.Ol=0;var X=this.Ig[e.ua.Mp]?1:this.Ig[e.ua.Sp]?-1:0,S=this.Ig[e.ua.uo]?1:this.Ig[e.ua.qo]?-1:0,W=this.Ig[e.ua.Q]?1:this.Ig[e.ua.E]?-1:0,Z=this.Ig[e.ua.ck]?1:this.Ig[e.ua.Ki]?-1:0,ca=this.Ig[e.ua.fb]?1:this.Ig[e.ua.Db]?-1:0;if(Z||ca||X||S||W){var fa=this.sk?.2:1;X&&(this.Ol=-X*fa*this.A.get("translationSpeed"));W&&(this.Zk=-W*fa*this.A.get("translationSpeed")); S&&(this.Pl=-S*fa*this.A.get("translationSpeed"));ca&&(this.Wo=-ca*fa*100*this.A.get("rotationSpeed"));Z&&(this.Vo=Z*fa*100*this.A.get("rotationSpeed"));this.HG();this.B.T.Qa();this.Kja();this.y0a();X=this.Pl!=0||this.Zk!=0||this.Ol!=0;!V&&X&&this.PU()}};m.prototype.w3=function(){this.zj=!0;this.qd==F||this.qd==C||n()1?1/Math.sqrt(Z):1;V*=Z;X*= Z;Z=this.e2a();this.qd!=Z?(this.qd=Z,this.qd==x?this.I9a(S,W):this.qd==y?this.AFa():this.qd==z?this.W9a():this.qd==D&&this.U9a()):this.qd!=w&&(this.qd==x?this.tab(V,X,S,W):this.qd==y?this.Xab(V,X):this.qd==z?this.Zab(V,X):this.qd==D&&this.Wab(V,X))}};m.prototype.TH=function(){this.o4(t.Mi);this.zj=!1;this.qd!=w&&(this.qd=w,this.jk=null,this.yFa(),this.Kja(),this.Fza(),this.B.T.Qa())};m.prototype.x3=function(V){this.qd!=A?(this.qd=A,this.Q9a()):this.Jab(V);this.Vha&&clearTimeout(this.Vha);this.Vha= setTimeout(function(){this.Vha=null;this.qd==A&&(this.qd=w,this.Dv())}.bind(this),1E3)};m.prototype.ABa=function(V,X,S,W,Z,ca,fa,ja,ha,ka){this.qd!=F&&this.qd!=C?(V=Math.abs(ca-Z)>.05,S=h(ha,ka)>5,X=Math.abs(W-X)>.02*this.fH(),ha=Math.min(Math.abs(ha),180-Math.abs(ha),Math.abs(ka),180-Math.abs(ka))<10,fa=fa/this.Gy()<.2,(V||X)&&(ha||fa)?(this.qd=C,this.V9a()):!S&&!V||ha&&fa||(this.qd=F,this.X9a())):this.qd==F?this.$ab(Z,ca,ha,ka):this.qd==C&&this.Yab(X,W,Z,ca)};m.prototype.qia=function(){this.jk= null;this.qd==F&&this.yFa();this.qd=w;this.nya=n();this.Kja();this.Fza();this.B.T.Qa()};m.prototype.$M=function(V,X){if(this.A.get("doubleClickAction")=="zoom"){var S=b.Sf(this.B),W=b.Bt(this.B);W&&S&&(ea.set(V,X),this.tT(ea),V=this.MS(ea,W),V.length!=0&&(this.Dv(),this.HG(),V=V[0].point,B.setFromMatrixPosition(W.matrixWorld),this.Wi=new u("quad_in_out",[new v("x",B.x,(V.x+B.x)*.5),new v("y",B.y,(V.y+B.y)*.5),new v("z",B.z,(V.z+B.z)*.5),new v("distance",0,0)],500)))}};m.prototype.e2a=function(){return this.$y? this.sk?y:x:this.DM()?this.sk?D:z:w};m.prototype.I9a=function(V,X){this.yN();this.HG();this.SXa(V,X);this.A.get("keepHeight")&&this.B5();this.B.T.Qa()};m.prototype.tab=function(V,X,S,W){var Z=b.Bt(this.B);Z&&(B.setFromMatrixPosition(Z.matrixWorld),this.jk?(H.set(S,W,0),this.tT(H),H.unproject(Z),V=this.jk.x-B.x,X=this.jk.z-B.z,Math.atan2(this.jk.y-B.y,Math.sqrt(X*X+V*V))*U>-2?(G.copy(this.jk).applyMatrix4(Z.matrixWorldInverse),N.copy(H).applyMatrix4(Z.matrixWorldInverse),V=G.z/N.z,E.copy(N).multiplyScalar(V).applyMatrix4(Z.matrixWorld).sub(this.jk), E.y!=0&&this.Dv()):(V=(this.jk.y-B.y)/(H.y-B.y),E.copy(H).sub(B).multiplyScalar(V).add(B).sub(this.jk)),E.multiplyScalar(-1)):(Y.makeRotationFromEuler(ia.set(0,-this.A.get("yaw")*L,0,"YXZ")),aa.set(-V*this.A.get("translationSpeed")/this.Gy(),0,-X*this.A.get("translationSpeed")/this.Gy()).applyMatrix4(Y),E.copy(aa).multiplyScalar(this.zI*10)),this.Ka.setX(B.x+E.x),this.Ka.setY(B.y+E.y),this.Ka.setZ(B.z+E.z),this.cO(E.x,E.y,E.z,0,0),this.Ka.Xj(this.gn))};m.prototype.AFa=function(){this.yN();this.jk= null;this.jda();this.Dv();this.B.T.Qa()};m.prototype.Xab=function(V,X){var S;S||(S=1);V=V*360/this.pS()*this.A.get("rotationSpeed");X=-X*180/this.fH()*this.A.get("rotationSpeed");this.Ka.sj(this.A.get("yaw")+V);this.Ka.$n(this.A.get("pitch")+X);this.Ka.Yn(this.$ia/S);this.cO(0,0,0,V,X);this.Ka.Xj(this.gn);this.B.T.Qa()};m.prototype.W9a=function(){this.AFa()};m.prototype.Zab=function(V,X){var S=b.Bt(this.B),W=this.A.get("distance")||this.hj||1;X=X*W*2*Math.tan(S.fov*L/2)/this.fH();X!=0&&this.Dv(); this.Ka.setY(this.A.get("y")+X);V=V*360/this.pS()*this.A.get("rotationSpeed");this.Ka.sj(this.A.get("yaw")+V);this.cO(0,X,0,V,0);this.Ka.Xj(this.gn)};m.prototype.U9a=function(){this.yN();this.HG();this.Dv();this.B.T.Qa()};m.prototype.Wab=function(V,X){V=-V*360/this.pS()*this.A.get("rotationSpeed");X=X*180/this.fH()*this.A.get("rotationSpeed");this.Ka.sj(this.A.get("yaw")+V);this.Ka.$n(this.A.get("pitch")+X);this.cO(0,0,0,V,X);this.Ka.Xj(this.gn);this.B.T.Qa()};m.prototype.Q9a=function(){this.Dv(); this.yN();this.jk=null;this.HG();this.A.get("keepHeight")&&this.B5();this.B.T.Qa()};m.prototype.Jab=function(V){this.D8a(aa);aa.multiplyScalar(-V*this.A.get("translationSpeed")*(this.zI||1));this.hj&&this.Vva(this.hj+aa.y);this.Ka.setX(this.A.get("x")+aa.x);this.Ka.setY(this.A.get("y")+aa.y);this.Ka.setZ(this.A.get("z")+aa.z);this.Ka.Xj(this.yI)};m.prototype.X9a=function(){this.yN();this.jk=null;this.jda();this.Dv();this.B.T.Qa();this.yv=void 0};m.prototype.$ab=function(V,X,S,W){this.yv!==void 0|| (this.yv=S);S=h(this.yv,W);this.yv=W;this.Ka.sj(this.A.get("yaw")+S);this.Ka.Yn(this.$ia*V/X);this.cO(0,0,0,S,0);this.Ka.Xj(this.gn);this.B.T.Qa()};m.prototype.V9a=function(){this.yN();this.jk=null;this.jda();this.Dv();this.B.T.Qa();this.t4=void 0};m.prototype.Yab=function(V,X,S,W){this.t4!==void 0||(this.t4=V);V=-(X-this.t4)*180/this.fH();this.t4=X;this.Ka.$n(this.A.get("pitch")+V);this.Ka.Yn(this.$ia*S/W);this.cO(0,0,0,0,V);this.Ka.Xj(this.gn);this.B.T.Qa()};m.prototype.SXa=function(V,X){var S= b.Sf(this.B),W=b.Bt(this.B);this.jk=null;W&&S&&(ea.set(V,X),this.tT(ea),V=this.MS(ea,W),V.length&&(this.jk=V[0].point))};m.prototype.jda=function(){this.Ns=null;var V=b.Sf(this.B),X=b.Bt(this.B);X&&V&&(ea.set(0,0),V=this.MS(ea,X),V.length&&(this.Ns=V[0].point),this.Ns||(this.Ns=(new THREE.Vector3).setFromMatrixPosition(X.matrixWorld)),this.A.set("distance",B.setFromMatrixPosition(X.matrixWorld).distanceTo(this.Ns)),this.$ia=this.A.get("distance"),this.A.set("x",this.Ns.x),this.A.set("y",this.Ns.y), this.A.set("z",this.Ns.z),this.A.set("easing",0))};m.prototype.HG=function(){this.Ns&&(this.Ns=null,B.setFromMatrixPosition(b.Bt(this.B).matrixWorld),this.A.set("distance",0),this.A.set("x",B.x),this.A.set("y",B.y),this.A.set("z",B.z),this.A.set("easing",0))};var w="none",x="dragging",y="rotating",z="rotating yaw dragging y",A="moving front",D="rotating around camera",F="rotating yaw gesture",C="rotating pitch gesture",B=new THREE.Vector3,H=new THREE.Vector3,E=new THREE.Vector3,G=new THREE.Vector3, N=new THREE.Vector3;m.prototype.Oj=function(V){this.A!=V&&(this.A&&(this.Ka=null,R.forEach(function(X){this.A.h(k.L(X),this.$Ga,this,!1)}.bind(this)),Q.forEach(function(X){this.A.h(k.L(X),this.$z,this,!1)}.bind(this)),K.forEach(function(X){this.A.h(k.L(X),this.et,this,!1)}.bind(this)),this.A.set("userInteracting",!1)),this.A=V)&&(this.Ka=new p(this.A),R.forEach(function(X){this.A.bind(k.L(X),this.$Ga,this,!1)}.bind(this)),Q.forEach(function(X){this.A.bind(k.L(X),this.$z,this,!1)}.bind(this)),K.forEach(function(X){this.A.bind(k.L(X), this.et,this,!1)}.bind(this)),this.$z(),this.et(),this.A.set("userInteracting",!1))};m.prototype.$z=function(){if(this.B&&this.A){var V=this.B.O(c.ta,!0);V.translationX=this.A.get("x");var X=this.A.get("y")-V.translationY;Math.abs(X)>T&&(V.translationY=this.A.get("y"),this.qd!=w||this.Ol||this.Zk||this.Pl||this.Wo||this.Vo||this.Wi||this.uh||this.Dv());V.Ze=this.A.get("z");V.fd=-this.A.get("yaw");V.Yd=this.A.get("pitch");V.Xe=0;V.mf="YXZ";V.positionX=0;V.positionY=0;V.positionZ=this.A.get("distance"); V.easing=this.A.get("easing");(this.A.get("minHeight")!==void 0||this.A.get("keepHeight"))&&this.nHa()}};m.prototype.et=function(){this.B&&this.A&&(this.B.O(c.PerspectiveCamera,!0).fov=this.A.get("fov"))};m.prototype.Wha=function(V,X,S,W,Z){var ca=this.B.getComponent(c.ta);ca&&(Y.makeRotationFromEuler(ia.set(0,ca.fd*L,0,ca.mf)),aa.set(V,X,S).applyMatrix4(Y).multiplyScalar(this.zI),this.hj!==void 0&&(this.hj+=aa.y,this.PU()),this.Ka.setX(this.A.get("x")+aa.x),this.Ka.setY(this.A.get("y")+aa.y),this.Ka.setZ(this.A.get("z")+ aa.z),this.Ka.sj(this.A.get("yaw")+W),this.Ka.$n(this.A.get("pitch")+Z),this.Ka.Xj(this.gn))};m.prototype.D8a=function(V){var X=this.B.getComponent(c.ta);X&&(Y.makeRotationFromEuler(ia.set(X.Yd*L,X.fd*L,X.Xe*L,X.mf)),V.set(0,0,1).applyMatrix4(Y))};m.prototype.yN=function(){this.AC=n();this.ik=1;this.sy=this.ty=this.vy=this.uy=this.qy=0;this.uh=this.tH=this.uH=this.vH=this.rH=this.qH=void 0};m.prototype.cO=function(V,X,S,W,Z){var ca=n();this.ik=ca-this.AC;this.AC=ca;this.sy=V;this.ty=X;this.vy=S;this.uy= W;this.qy=Z};m.prototype.yFa=function(){this.ik&&(this.tH=this.sy/this.ik,this.uH=this.ty/this.ik,this.vH=this.vy/this.ik,this.rH=this.uy/this.ik,this.qH=this.qy/this.ik,this.uh=1)};m.prototype.$Ga=function(){this.A.get("minHeight")!==void 0&&(this.hj===void 0&&this.B5(),this.hj!==void 0&&this.hj0)return W[0].distance;W=this.Nga(aa.set(V,X+1E3,S),ba.set(0,-1,0));if(W.length>0)return W[W.length-1].distance-1E3};m.prototype.Nga=function(V,X){da.ray.origin.copy(V);da.ray.direction.copy(X);return da.intersectObjects(this.hH(),!1)};m.prototype.MS=function(V,X){da.setFromCamera(V,X);return da.intersectObjects(this.hH(),!1)};m.prototype.hH=function(){var V=this.B&&b.Sf(this.B);if(!V)return[]; var X=[];V.traverse(function(S){S.isSprite||S.isLine||X.push(S)});return X};m.prototype.ns=function(V){V.set(0,0,0);this.A&&(V.applyMatrix4(Y.makeTranslation(0,0,this.A.get("distance"))),V.applyMatrix4(Y.makeRotationFromEuler(ia.set(this.A.get("pitch")*L,-this.A.get("yaw")*L,0*L,"YXZ"))),V.applyMatrix4(Y.makeTranslation(this.A.get("x"),this.A.get("y"),this.A.get("z"))))};m.prototype.N1a=function(V){this.A?(Y.makeRotationFromEuler(ia.set(this.A.get("pitch")*L,-this.A.get("yaw")*L,0,"YXZ")),V.set(0, 0,-1).applyMatrix4(Y)):V.set(0,0,-1)};var O=[e.ua.ck,e.ua.Ki,e.ua.fb,e.ua.Db,e.ua.Mp,e.ua.qo,e.ua.Sp,e.ua.uo,e.ua.Q,e.ua.E],R=["minHeight"],Q="minYaw maxYaw yaw minPitch maxPitch pitch minX maxX x minY maxY y minZ maxZ z distance easingSpeed".split(" "),K=["minFov","maxFov","fov"],L=Math.PI/180,U=180/Math.PI,T=1E-6,Y=new THREE.Matrix4,aa=new THREE.Vector3(0,0,0),ba=new THREE.Vector3(0,0,0),ea=new THREE.Vector2(0,0),ia=new THREE.Euler,da=new THREE.Raycaster;m.prototype.dispose=function(){this.HG(); this.Oj(null);this.jha();this.Sha();this.xs.ya()};m.Wa=function(V){V.N(c.Nr).manager=new m(V)};m.ya=function(V){var X=V.getComponent(c.Nr);X.manager.dispose();X.manager=null;V.ka(c.Nr)};m.update=function(V){V.getComponent(c.Nr).manager.update()};m.frame=function(V,X,S){V.getComponent(c.Nr).manager.frame(X,S)};return m}); define("tdv/player/view/webgl/system/cameraControls/OrbitBehaviour","require tdv/utils tdv/constants/EventName tdv/constants/Key tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin tdv/player/view/webgl/system/cameraControls/DraggingObserver tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter tdv/player/view/webgl/system/cameraControls/PropertiesSetter tdv/player/view/webgl/system/util/mixin/KeyboardMixin tdv/player/view/webgl/system/util/mixin/MouseMixin tdv/view/constants/Cursor".split(" "),function(a){function m(B){this.B= B;this.iha(D);this.Rha();this.xs=new d(B);this.jl=new THREE.Matrix4;this.yI=.05;this.gn=.25;this.Ol=this.Zk=this.Pl=this.Wo=this.Vo=0;this.tH=this.uH=this.vH=this.rH=this.qH=this.AC=this.ik=this.sy=this.ty=this.vy=this.uy=this.qy=void 0;this.Iga=1E3;this.oEa=720;this.iGa=4;this.bAa=720;this.kha=2;this.Ka=null;this.kI(q.IB);this.update()}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Key"),k=a("tdv/player/view/webgl/components"),e=a("tdv/player/view/webgl/system/util/entity/Util"), b=a("tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin"),c=a("tdv/player/view/webgl/system/cameraControls/DraggingObserver"),d=a("tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter"),f=a("tdv/player/view/webgl/system/cameraControls/PropertiesSetter"),l=a("tdv/player/view/webgl/system/util/mixin/KeyboardMixin"),p=a("tdv/player/view/webgl/system/util/mixin/MouseMixin"),q=a("tdv/view/constants/Cursor");h.D6(m,[b,l,p]);m.prototype.update=function(){var B=this.B.getComponent(k.XF); this.Oj(B&&B.properties);this.xs.fQ(B&&B.properties,"moving");var H=(!B.TO||!c.sP(this.B.T))&&B.enabled;this.a5(B&&(H?B.Rf:null));this.$S(!!B&&H&&B.jE);H||this.TH();H&&B.jE||(this.Wo=this.Vo=this.Ol=this.Zk=this.Pl=0)};m.prototype.frame=function(B){this.uh&&(this.uh=Math.max(0,this.uh-B/this.Iga),this.Ka.setX(this.A.get("x")+this.tH*this.uh),this.Ka.setY(this.A.get("y")+this.uH*this.uh),this.Ka.setZ(this.A.get("z")+this.vH*this.uh),this.Ka.sj(this.A.get("yaw")+this.rH*this.uh),this.Ka.$n(this.A.get("pitch")+ this.qH*this.uh),this.B.T.Qa());if(this.Wo||this.Vo||this.Ol||this.Zk||this.Pl)B/=1E3,this.Wha(this.Ol*B,this.Zk*B,this.Pl*B,this.Wo*B,this.Vo*B);this.xs.Dsa()};m.prototype.ST=function(){this.Ula()};m.prototype.Ula=function(){this.Wo=this.Vo=this.Pl=this.Zk=this.Ol=0;var B=this.Ig[g.ua.Mp]?1:this.Ig[g.ua.Sp]?-1:0,H=this.Ig[g.ua.uo]?1:this.Ig[g.ua.qo]?-1:0,E=this.Ig[g.ua.Q]?1:this.Ig[g.ua.E]?-1:0,G=this.Ig[g.ua.ck]?1:this.Ig[g.ua.Ki]?-1:0,N=this.Ig[g.ua.fb]?1:this.Ig[g.ua.Db]?-1:0;if(B||H||E||G||N){var O= this.sk?.2:1;B&&(this.Ol=-B*O*this.kha*this.A.get("translationSpeed"));E&&(this.Zk=-E*O*this.kha*this.A.get("translationSpeed"));H&&(this.Pl=-H*O*this.kha*this.A.get("translationSpeed"));N&&(this.Wo=N*O*this.bAa*this.A.get("rotationSpeed"));G&&(this.Vo=-G*O*this.bAa*this.A.get("rotationSpeed"));this.B.T.Qa()}};m.prototype.w3=function(){this.kI(q.Mi);this.zj=!0;this.AC=(new Date).getTime();this.ik=1;this.sy=this.ty=this.vy=this.uy=this.qy=0;this.uh=this.tH=this.uH=this.vH=this.rH=this.qH=void 0;this.B.T.Qa()}; m.prototype.v3=function(B,H){if(this.zj){var E=(B*B+H*H)/2500;E=E>1?1/Math.sqrt(E):1;B*=E;H*=E;E=(new Date).getTime();this.ik=E-this.AC;this.AC=E;this.sy=this.ty=this.vy=this.uy=this.qy=0;E=this.$y;this.sk&&(E=!E);E?(this.uy=+B*this.A.get("rotationSpeed")*this.oEa/this.Gy(),this.qy=-H*this.A.get("rotationSpeed")*this.oEa/this.Gy(),this.nEa(this.uy,this.qy)):(this.Gya(B*this.iGa/this.Gy(),H*this.iGa/this.Gy(),u),this.sy=u.x,this.ty=u.y,this.vy=u.z,this.sla(this.sy,this.ty,this.vy));this.Ka.Xj(this.gn)}}; m.prototype.Gya=function(B,H,E){var G=this.B.getComponent(k.ta);E.set(-B*this.A.get("translationSpeed"),+H*this.A.get("translationSpeed"),0*this.A.get("translationSpeed"));E.applyMatrix4(z.makeRotationFromEuler(y.set(G.Yd*r,G.fd*r,G.Xe*r,G.mf)));E.multiplyScalar(this.A.get("distance"))};m.prototype.TH=function(){this.o4(q.Mi);this.zj&&(this.zj=!1,this.ik&&(this.tH=this.sy/this.ik,this.uH=this.ty/this.ik,this.vH=this.vy/this.ik,this.rH=this.uy/this.ik,this.qH=this.qy/this.ik,this.uh=1,this.Ka.Xj(this.gn)), this.AC=void 0)};m.prototype.x3=function(B){this.Ka.Yn(this.A.get("distance")-B*this.A.get("distance")*this.A.get("translationSpeed"));this.Ka.Xj(this.yI)};m.prototype.$M=function(B,H){if(this.A.get("doubleClickAction")=="center"){var E=e.Sf(this.B),G=e.Bt(this.B);G&&E&&(w.set(B,H),this.tT(w),B=this.MS(w,G),B.length!=0&&(B=B[0].point,H=u.setFromMatrixPosition(G.matrixWorld).sub(B),G=H.length(),x.setFromUnitVectors(v.set(0,0,1),H.normalize()),y.setFromQuaternion(x,"YXZ"),H=y.x*t,this.Ka.sj(-y.y*t), this.Ka.$n(H),this.Ka.Yn(G),this.Ka.setX(B.x),this.Ka.setY(B.y),this.Ka.setZ(B.z),this.Ka.Xj(this.yI)))}};m.prototype.BBa=function(){this.Gza=this.A.get("distance");this.zj=!1};m.prototype.pia=function(B,H,E){this.Gya(B/this.Gy(),H/this.Gy(),u);this.sla(u.x,u.y,u.z);this.Ka.Yn(this.Gza/E);this.Ka.Xj(this.gn)};m.prototype.qia=function(){this.Gza=this.A.get("distance")};m.prototype.Wha=function(B,H,E,G,N){var O=this.B.getComponent(k.ta);O&&(z.makeRotationFromEuler(y.set(0,O.fd*r,0,O.mf)),u.set(B,H, E).applyMatrix4(z).multiplyScalar(this.A.get("distance")),this.sla(u.x,u.y,u.z),this.nEa(G,N),this.Ka.Xj(this.gn))};m.prototype.sla=function(B,H,E){this.Ka.setX(this.A.get("x")+B);this.Ka.setY(this.A.get("y")+H);this.Ka.setZ(this.A.get("z")+E)};m.prototype.nEa=function(B,H){this.Ka.sj(this.A.get("yaw")+B);this.Ka.$n(this.A.get("pitch")+H)};m.prototype.Oj=function(B){this.A!=B&&(this.A&&(this.Ka=null,F.forEach(H=>{this.A.h(n.L(H),this.$z,this)}),C.forEach(H=>{this.A.h(n.L(H),this.et,this)}),this.A.set("userInteracting", !1)),this.A=B)&&(this.A.set("userInteracting",!1),this.Ka=new f(this.A),F.forEach(H=>{this.A.bind(n.L(H),this.$z,this)}),C.forEach(H=>{this.A.bind(n.L(H),this.et,this)}),this.$z(),this.et())};m.prototype.MS=function(B,H){A.setFromCamera(B,H);return A.intersectObjects(this.hH(),!1)};m.prototype.hH=function(){var B=this.B&&e.Sf(this.B);if(!B)return[];var H=[];B.traverse(function(E){E.isSprite||E.isLine||H.push(E)});return H};m.prototype.$z=function(){if(this.B&&this.A){var B=this.B.O(k.ta,!0);B.translationX= this.A.get("x");B.translationY=this.A.get("y");B.Ze=this.A.get("z");B.fd=-this.A.get("yaw");B.Yd=this.A.get("pitch");B.Xe=0;B.mf="YXZ";B.positionX=0;B.positionY=0;B.positionZ=this.A.get("distance");B.easing=this.A.get("easing")}};m.prototype.et=function(){this.B&&this.A&&(this.B.O(k.PerspectiveCamera,!0).fov=this.A.get("fov"))};var r=Math.PI/180,t=180/Math.PI,u=new THREE.Vector3(0,1,0),v=new THREE.Vector3(0,1,0),w=new THREE.Vector2(0,0),x=new THREE.Quaternion,y=new THREE.Euler,z=new THREE.Matrix4, A=new THREE.Raycaster,D=[g.ua.ck,g.ua.Ki,g.ua.fb,g.ua.Db,g.ua.Mp,g.ua.qo,g.ua.Sp,g.ua.uo,g.ua.Q,g.ua.E],F="easing minYaw maxYaw yaw minPitch maxPitch pitch minDistance maxDistance distance minX maxX x minY maxY y minZ maxZ z".split(" "),C=["minFov","maxFov","fov"];m.prototype.dispose=function(){this.Oj(null);this.jha();this.Sha();this.xs.ya()};m.Wa=function(B){B.N(k.Tr).manager=new m(B)};m.ya=function(B){var H=B.getComponent(k.Tr);H.manager.dispose();H.manager=null;B.ka(k.Tr)};m.update=function(B){B.getComponent(k.Tr).manager.update()}; m.frame=function(B,H,E){B.getComponent(k.Tr).manager.frame(H,E)};return m}); define("tdv/player/view/webgl/system/cameraControls/TransitionBehaviour","require exports tdv/player/view/util/XR tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k){a=function(){function r(t){this.F=t;this.properties=this.F.getComponent(g.Jx).properties;this.oj()&&this.tcb();this.update()}r.prototype.update=function(){this.properties=this.F.getComponent(g.Jx).properties;this.oj()||this.FIa()};r.prototype.frame=function(){this.oj()? this.scb():this.FIa()};r.prototype.tcb=function(){this.tKa();var t=this.GLa();h.setPosition({x:t.x,y:t.y,z:t.z,yaw:this.properties.get("yaw")});this.TRa()};r.prototype.scb=function(){this.tKa();var t=this.GLa();h.setPosition({x:t.x,y:t.y,z:t.z,yaw:void 0});this.TRa();this.properties.set("yaw",-c.setFromQuaternion(h.wg).y*e)};r.prototype.TRa=function(){h.setScale(this.F.getComponent(g.Jx).pf||1)};r.prototype.FIa=function(){var t=this.F.O(g.ta,!0);t.translationX=this.properties.get("x");t.translationY= this.properties.get("y");t.Ze=this.properties.get("z");t.fd=-this.properties.get("yaw");t.Yd=this.properties.get("pitch");t.Xe=0;t.mf="YXZ";t.positionX=0;t.positionY=0;t.positionZ=this.properties.get("distance",0);t.easing=0;this.F.O(g.PerspectiveCamera,!0).fov=this.properties.get("fov")};r.prototype.tKa=function(){var t=n.Sf(this.F),u=this.F.getComponent(g.Sk);u=u&&u.camera;h.Nw!==u&&h.wra(h.Uf,t,u,h.XQ.Tba)};r.prototype.oj=function(){return this.F.getComponent(g.PerspectiveCamera).oj};r.prototype.GLa= function(){var t=this.properties.get("x"),u=this.properties.get("y"),v=this.properties.get("z"),w=this.properties.get("pitch"),x=this.properties.get("yaw"),y=this.properties.get("distance");d.identity();d.multiply(f.makeTranslation(t,u,v));d.multiply(f.makeRotationFromEuler(c.set(w*b,-x*b,0,"YXZ")));d.multiply(f.makeTranslation(0,0,y));d.decompose(l,q,p);return l};r.Wa=function(t){t.N(g.Lu).manager=new r(t)};r.update=function(t){t.getComponent(g.Lu).manager.update()};r.frame=function(t,u,v){t.getComponent(g.Lu).manager.frame(u, v)};r.ya=function(t){t.getComponent(g.Lu).manager=null;t.ka(g.Lu)};return r}();var e=180/Math.PI,b=Math.PI/180,c=new k.Euler,d=new k.Matrix4,f=new k.Matrix4,l=new k.Vector3,p=new k.Vector3,q=new k.Quaternion;return a}); define("tdv/player/view/webgl/system/cameraControls/XRBasicBehaviour",["require","exports","tdv/constants/EventName","tdv/player/view/util/XR","tdv/player/view/webgl/components"],function(a,m,h,n,g){return function(){function k(e){this.locked=!0;this.Di=!1;this.F=e;n.M.bind(h.V,this.Ta,this,!0);this.update()}k.prototype.update=function(){var e=this.F.getComponent(g.gG);e=(e===null||e===void 0?void 0:e.locked)||!1;!e&&this.locked&&(this.Di=!0);this.locked=e;this.Di&&n.d$()};k.prototype.frame=function(){this.locked|| (this.Di=!1)};k.prototype.dispose=function(){n.M.h(h.V,this.Ta,this)};k.prototype.Ta=function(){this.F.O(g.Yp)};k.Wa=function(e){e.N(g.Yp).manager=new k(e)};k.update=function(e){e.getComponent(g.Yp).manager.update()};k.frame=function(e,b,c){e.getComponent(g.Yp).manager.frame(b,c)};k.ya=function(e){var b=e.getComponent(g.Yp);b.manager.dispose();b.manager=null;e.ka(g.Yp)};return k}()}); define("tdv/player/view/webgl/system/cameraControls/XRDragBehaviour","require exports tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k,e){a=function(){function y(z){this.locked=!0;this.Di=!1;this.Qna=this.rm=this.Ae=null;this.i7=new e.Matrix4;this.mJ=new e.Vector3;this.UP=new Map;this.pf=1;this.fF=0;this.ru=!1;this.Kk=0;this.wk=null;this.FE=new e.Vector3;this.Hd= new e.Vector3;this.Z8=new e.Quaternion;this.zY=this.AY=this.BY=0;this.cA=new e.Box3(new e.Vector3(-Infinity,-Infinity,-Infinity),new e.Vector3(Infinity,Infinity,Infinity));this.F=z;this.Dk=this.Dk.bind(this);this.ot=new g(this.F);n.M.bind(h.V,this.Ta,this,!0);this.update()}y.prototype.update=function(){var z=this.F.getComponent(k.oL),A=(z===null||z===void 0?void 0:z.locked)||!1;!A&&this.locked&&(this.Di=!0);this.locked=A;this.pf=(z===null||z===void 0?void 0:z.pf)||1;this.Kk=z===null||z===void 0?void 0: z.Kk;this.iF();this.properties=z.properties;this.locked||(n.setScale(this.pf),this.HW(),this.Dk());this.Di&&(b.setFromQuaternion(n.yl),n.setPosition({pitch:b.x*w,roll:b.z*w}),this.aJ())};y.prototype.frame=function(z){if(!this.locked){this.ou();this.LZ();this.aJ();if(!this.properties.get("controllingPosition")){this.Hd.copy(n.Ec);this.Z8.copy(n.wg);var A;(A=this.zW())||(A=this.Uma(z));A||(A=this.AW(z));A&&(z={},n.Ec.equals(this.Hd)||(z.x=this.Hd.x,z.y=this.Hd.y,z.z=this.Hd.z),n.wg.equals(this.Z8)|| (b.setFromQuaternion(this.Z8,"YXZ"),z.yaw=-b.y*w,z.pitch=b.x*w,z.roll=b.z*w),n.setPosition(z))}this.$I();this.AO();this.Di=!1}};y.prototype.dispose=function(){n.M.h(h.V,this.Ta,this);this.properties.set("userInteracting",!1);this.iF();this.lf();this.lZ([])};y.prototype.iF=function(){y.NB.forEach(function(z){var A;(A=this.properties)===null||A===void 0||A.h(h.L(z),this.Dk,this)}.bind(this))};y.prototype.HW=function(){y.NB.forEach(function(z){var A;(A=this.properties)===null||A===void 0||A.bind(h.L(z), this.Dk,this,!0)}.bind(this))};y.prototype.Dk=function(){this.cA.min.set(this.properties.get("minX",-Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ",-Infinity));this.cA.max.set(this.properties.get("maxX",Infinity),this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};y.prototype.aJ=function(){var z=this.properties.get("x"),A=this.properties.get("y"),D=this.properties.get("z"),F=this.properties.get("yaw"),C=this.properties.get("pitch"),B=this.properties.get("distance"); if(z!==this.FE.x||A!==this.FE.y||D!==this.FE.z||F!==this.BY||C!==this.AY||B!==this.zY)this.FE.set(z,A,D),l.identity(),l.multiply(p.makeTranslation(z,A,D)),l.multiply(p.makeRotationFromEuler(b.set(C*x,-F*x,0,"YXZ"))),l.multiply(p.makeTranslation(0,0,B)),l.decompose(d,c,f),b.setFromQuaternion(c,"YXZ"),n.setPosition({x:d.x,y:d.y,z:d.z,yaw:-b.y*w})};y.prototype.$I=function(){d.copy(n.Ec).sub(this.FE);var z=d.length();b.setFromQuaternion(c.setFromUnitVectors(u,d.multiplyScalar(1/z)),"YXZ");this.properties.set("x", this.FE.x);this.properties.set("y",this.FE.y);this.properties.set("z",this.FE.z);this.properties.set("yaw",-b.y*w);this.properties.set("pitch",b.x*w);this.properties.set("roll",b.z*w);this.properties.set("distance",z)};y.prototype.AO=function(){this.BY=this.properties.get("yaw");this.AY=this.properties.get("pitch");this.zY=this.properties.get("distance")};y.prototype.ou=function(){this.lZ((y.nF.get(this.F.T)||[]).map(function(z){return z.getComponent(k.yc)}))};y.prototype.lZ=function(z){var A=[], D=[];this.UP.forEach(function(F){z.indexOf(F)===-1&&A.push(F)}.bind(this));z.forEach(function(F){this.UP.has(F.M)||D.push(F)}.bind(this));this.rm&&z.indexOf(this.rm)===-1&&this.lf();A.forEach(function(F){this.CY(F.M);this.UP.delete(F.M)}.bind(this));D.forEach(function(F){this.xW(F.M);this.UP.set(F.M,F)}.bind(this));this.Ae=z.find(function(F){return F.Ug})||null};y.prototype.xW=function(z){z.bind(h.ma,this.Mt,this,!0);z.bind(h.Sa,this.$h,this,!0)};y.prototype.CY=function(z){z.h(h.ma,this.Mt,this); z.h(h.Sa,this.$h,this)};y.prototype.Ta=function(){this.F.O(k.Zp)};y.prototype.Mt=function(z){this.properties.get("inMandatorySequence")||z.data.EX||z.data.type=="other"||this.properties.get("clickTranslationDisabled")||(z=this.UP.get(z.source),z=this.ot.KX(z),z.length!=0&&(this.wk=z[0].point))};y.prototype.$h=function(z){if(!this.properties.get("inMandatorySequence")&&!this.properties.get("mouseDisabled")){this.lf();z=z.source;var A=this.UP.get(z),D=this.ot.KX(A);D.length!=0&&(this.rm=A,this.Qna= z,this.Qna.bind(h.$a,this.lf,this,!0),this.mJ.copy(D[0].point),this.i7.copy(this.rm.matrixWorld))}};y.prototype.lf=function(){this.rm&&(this.rm.M.h(h.$a,this.lf,this),this.rm=this.Qna=null)};y.prototype.zW=function(){if(!this.wk)return!1;this.Hd.copy(this.wk).sub(n.Ec).multiplyScalar(.5).add(n.Ec);this.wk=null;return!0};y.prototype.AW=function(z){return this.BW()?!0:this.DW(z)?!0:!1};y.prototype.BW=function(){if(!this.Ae)return!1;if(this.Ae.Qb.y===0&&this.Ae.Qb.x===0)return this.fF=Date.now(),this.ru= !1;if(this.ru)return!0;var z=Math.sqrt(this.Ae.Qb.y*this.Ae.Qb.y+this.Ae.Qb.x*this.Ae.Qb.x)*this.properties.get("rotationSpeed",1),A=Math.atan2(-this.Ae.Qb.y,this.Ae.Qb.x),D=Math.abs(A)Math.PI*.75;return this.Kk!==0&&z>.95&&(D||A)&&Date.now()-this.fF<100?(this.ru=!0,z=this.Kk*(A?-1:1),z=-b.setFromQuaternion(n.wg,"YXZ").y*w+z,n.setPosition({yaw:z}),!0):!1};y.prototype.DW=function(z){if(!this.Ae||this.Ae.Qb.y===0&&this.Ae.Qb.x===0)return!1;z=4E3/3600/this.pf*this.properties.get("translationSpeed", 1)*(this.Ae.gx?3:1)*z/1E3;var A=d.set(0,0,-1).applyQuaternion(n.wg),D=f.set(1,0,0).applyQuaternion(n.wg);A.normalize().multiplyScalar(-this.Ae.Qb.y*z);D.normalize().multiplyScalar(this.Ae.Qb.x*z);this.Hd.set(n.Ec.x+A.x+D.x,n.Ec.y+A.y+D.y,n.Ec.z+A.z+D.z);return!0};y.prototype.Uma=function(z){if(!this.rm)return!1;this.Vma(z);z=l.copy(this.i7);var A=p.copy(this.rm.matrixWorld),D=q.compose(n.Ec,n.wg,v);A=r.copy(D).invert().multiply(A);t.copy(z).multiply(A.invert()).decompose(this.Hd,this.Z8,d);return!0}; y.prototype.Vma=function(z){if(!this.rm||this.rm.Qb.y===0&&this.rm.Qb.x===0)return!1;z=90*z/1E3*this.properties.get("rotationSpeed",1);var A=q.makeRotationFromQuaternion(c.setFromRotationMatrix(this.i7)),D=r.copy(A).invert(),F=p.identity();F.multiply(l.makeTranslation(this.mJ.x,this.mJ.y,this.mJ.z));F.multiply(A);F.multiply(l.makeRotationFromEuler(b.set(this.rm.Qb.y*z*x,this.rm.Qb.x*z*x,0,"YXZ")));F.multiply(D);F.multiply(l.makeTranslation(-this.mJ.x,-this.mJ.y,-this.mJ.z));this.i7.premultiply(F); return!0};y.prototype.LZ=function(){this.properties.get("inMandatorySequence")?this.properties.set("userInteracting",!1):this.rm?this.properties.set("userInteracting",!0):this.wk?this.properties.set("userInteracting",!0):this.Ae&&this.Ae.pressed&&(this.Ae.Qb.y!==0||this.Ae.Qb.x!==0)?this.properties.set("userInteracting",!0):this.properties.set("userInteracting",!1)};y.tK=function(z,A){this.nF.set(z,A)};y.Wa=function(z){z.N(k.Zp).manager=new y(z)};y.update=function(z){z.getComponent(k.Zp).manager.update()}; y.frame=function(z,A,D){z.getComponent(k.Zp).manager.frame(A,D)};y.ya=function(z){var A=z.getComponent(k.Zp);A.manager.dispose();A.manager=null;z.ka(k.Zp)};y.nF=new Map;y.NB="minX maxX minY maxY minZ maxZ".split(" ");return y}();var b=new e.Euler(0,0,0,"YXZ"),c=new e.Quaternion,d=new e.Vector3,f=new e.Vector3,l=new e.Matrix4,p=new e.Matrix4,q=new e.Matrix4,r=new e.Matrix4,t=new e.Matrix4,u=new e.Vector3(0,0,1),v=new e.Vector3(1,1,1),w=180/Math.PI,x=Math.PI/180;return a}); define("tdv/player/view/webgl/system/cameraControls/XRFlyBehaviour","require exports tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k,e){a=function(){function x(y){this.locked=!0;this.Di=!1;this.qj=this.KY=this.Ae=null;this.Mpa=new e.Matrix4;this.aK=[];this.pf=1;this.fF=0;this.ru=!1;this.Kk=0;this.wk=null;this.Usa=!1;this.Hd=new e.Vector3;this.zY=this.AY=this.BY= this.YPa=this.XPa=this.WPa=0;this.cA=new e.Box3(new e.Vector3(-Infinity,-Infinity,-Infinity),new e.Vector3(Infinity,Infinity,Infinity));this.F=y;this.Dk=this.Dk.bind(this);this.ot=new g(this.F);n.M.bind(h.V,this.Ta,this,!0);this.update()}x.prototype.update=function(){var y=this.F.getComponent(k.pL),z=(y===null||y===void 0?void 0:y.locked)||!1;!z&&this.locked&&(this.Di=!0);this.locked=z;this.pf=(y===null||y===void 0?void 0:y.pf)||1;this.Kk=y===null||y===void 0?void 0:y.Kk;this.iF();this.properties= y.properties;this.locked||(n.setScale(this.pf),this.HW(),this.Dk());this.Di&&(b.setFromQuaternion(n.yl),n.setPosition({pitch:b.x*v,roll:b.z*v}),this.aJ(!0))};x.prototype.frame=function(y){if(!this.locked){this.ou();this.LZ();this.aJ(!1);if(!this.properties.get("controllingPosition")){this.Hd.copy(n.Ec);var z=this.wE=-b.setFromQuaternion(n.wg).y*v;var A=this.zW();this.Usa&&this.qj&&this.Mpa.copy(this.qj.matrixWorld);this.Usa=!1;A||(A=this.Usa=this.Vma(y));A||(A=this.Uma(y));A||(A=this.AW(y));A&&(y= {},n.Ec.equals(this.Hd)||(y.x=this.Hd.x,y.y=this.Hd.y,y.z=this.Hd.z),this.wE!=z&&(y.yaw=this.wE),n.setPosition(y))}this.$I();this.AO();this.Di=!1}};x.prototype.dispose=function(){n.M.h(h.V,this.Ta,this);this.properties.set("userInteracting",!1);this.iF();this.lf();this.lZ([])};x.prototype.iF=function(){x.NB.forEach(function(y){var z;(z=this.properties)===null||z===void 0||z.h(h.L(y),this.Dk,this)}.bind(this))};x.prototype.HW=function(){x.NB.forEach(function(y){var z;(z=this.properties)===null||z=== void 0||z.bind(h.L(y),this.Dk,this,!0)}.bind(this))};x.prototype.Dk=function(){this.cA.min.set(this.properties.get("minX",-Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ",-Infinity));this.cA.max.set(this.properties.get("maxX",Infinity),this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};x.prototype.aJ=function(y){var z=this.properties.get("x"),A=this.properties.get("y"),D=this.properties.get("z"),F=this.properties.get("controllingPosition"),C=this.properties.get("yaw"), B=this.properties.get("pitch"),H=this.properties.get("distance");if(z!==this.WPa||A!==this.XPa||D!==this.YPa||C!==this.BY||B!==this.AY||H!==this.zY)l.identity(),l.multiply(p.makeTranslation(z,A,D)),l.multiply(p.makeRotationFromEuler(b.set(B*w,-C*w,0,"YXZ"))),l.multiply(p.makeTranslation(0,0,H)),l.decompose(d,c,f),b.setFromQuaternion(c,"YXZ"),n.setPosition({x:d.x,y:d.y,z:d.z,yaw:!y||F?void 0:-b.y*v})};x.prototype.$I=function(){this.properties.set("x",n.Ec.x);this.properties.set("y",n.Ec.y);this.properties.set("z", n.Ec.z);b.setFromQuaternion(n.wg);this.properties.set("yaw",-b.y*v);this.properties.set("pitch",b.x*v);this.properties.set("roll",b.z*v);this.properties.set("distance",0)};x.prototype.AO=function(){this.WPa=this.properties.get("x");this.XPa=this.properties.get("y");this.YPa=this.properties.get("z");this.BY=this.properties.get("yaw");this.AY=this.properties.get("pitch");this.zY=this.properties.get("distance")};x.prototype.ou=function(){this.lZ((x.nF.get(this.F.T)||[]).map(function(y){return y.getComponent(k.yc)}))}; x.prototype.lZ=function(y){var z=[],A=[];this.aK.forEach(function(D){y.indexOf(D)===-1&&z.push(D)}.bind(this));y.forEach(function(D){this.aK.indexOf(D)===-1&&A.push(D)}.bind(this));this.qj&&y.indexOf(this.qj)===-1&&this.lf();z.forEach(function(D){this.CY(D);this.aK.splice(this.aK.indexOf(D),1)}.bind(this));A.forEach(function(D){this.xW(D);this.aK.push(D)}.bind(this));this.Ae=y.find(function(D){return D.Ug})||null;this.KY=y.find(function(D){return!D.Ug})||this.Ae};x.prototype.xW=function(y){y.M.bind(h.Sa, this.$h,this,!0);y.M.bind(h.ma,this.Mt,this,!0)};x.prototype.CY=function(y){y.M.h(h.Sa,this.$h,this);y.M.h(h.ma,this.Mt,this)};x.prototype.Ta=function(){this.F.O(k.$p)};x.prototype.Mt=function(y){if(!(this.properties.get("inMandatorySequence")||y.data.EX||y.data.type=="other"||this.properties.get("clickTranslationDisabled"))){var z=this.aK.find(function(A){return y.source===A.M});z&&(z=this.ot.KX(z),z.length!=0&&(this.wk=z[0].point))}};x.prototype.$h=function(y){if(!this.properties.get("inMandatorySequence")&& !this.properties.get("mouseDisabled")){this.lf();var z=this.aK.find(function(A){return y.source===A.M});z&&(this.qj=z,this.qj.M.bind(h.$a,this.lf,this,!0),this.Mpa.copy(this.qj.matrixWorld),z=this.ot.KX(z),z.length!=0&&(this.KA=(new e.Vector3).copy(z[0].point)))}};x.prototype.lf=function(){this.qj&&(this.qj.M.h(h.$a,this.lf,this),this.KA=this.qj=null)};x.prototype.zW=function(){if(!this.wk)return!1;this.Hd.copy(this.wk).sub(n.Ec).multiplyScalar(.5).add(n.Ec);this.wk=null;return!0};x.prototype.AW= function(y){return this.BW()?!0:this.DW(y)?!0:!1};x.prototype.BW=function(){var y=this.KY;if(!y)return!1;if(y.Qb.y===0&&y.Qb.x===0)return this.fF=Date.now(),this.ru=!1;if(this.ru)return!0;var z=Math.sqrt(y.Qb.y*y.Qb.y+y.Qb.x*y.Qb.x),A=Math.atan2(-y.Qb.y,y.Qb.x);y=Math.abs(A)Math.PI*.75;return this.Kk!==0&&z>.95&&(y||A)&&Date.now()-this.fF<100?(this.ru=!0,this.wE+=this.Kk*(A?-1:1),!0):!1};x.prototype.DW=function(y){if(!this.Ae||this.Ae.Qb.y===0&&this.Ae.Qb.x===0)return!1; y=this.WLa(this.Ae.gx)*y/1E3;this.Ae.matrixWorld.decompose(d,c,f);var z=d.set(0,0,-1).applyQuaternion(c),A=f.set(1,0,0).applyQuaternion(c);z.normalize().multiplyScalar(-this.Ae.Qb.y*y);A.normalize().multiplyScalar(this.Ae.Qb.x*y);this.Hd.set(n.Ec.x+z.x+A.x,n.Ec.y+z.y+A.y,n.Ec.z+z.z+A.z);return!0};x.prototype.Uma=function(){if(!this.qj)return!1;var y=this.nJa(l.copy(this.Mpa)),z=this.nJa(p.copy(this.qj.matrixWorld)),A=q.compose(n.Ec,n.wg,u);z=r.copy(A).invert().multiply(z);t.copy(y).multiply(z.invert()).decompose(this.Hd, c,d);this.wE=-b.setFromQuaternion(c).y*v;return!0};x.prototype.nJa=function(y){return y.decompose(d,c,f).compose(d,c.identity(),f)};x.prototype.Vma=function(y){if(!this.qj||!this.KA||this.qj.Qb.y===0&&this.qj.Qb.x===0)return!1;y=this.WLa(this.qj.gx)*y/1E3/this.KA.distanceTo(n.Ec);var z=l.compose(n.Ec,n.wg,u),A=p.identity();A.multiply(q.makeTranslation(this.KA.x,this.KA.y,this.KA.z));A.multiply(q.makeRotationY(-this.wE*w));A.multiply(q.makeRotationFromEuler(b.set(this.qj.Qb.y*y,this.qj.Qb.x*y,0,"YXZ"))); A.multiply(q.makeRotationY(this.wE*w));A.multiply(q.makeTranslation(-this.KA.x,-this.KA.y,-this.KA.z));z.premultiply(A);z.decompose(this.Hd,c,d);this.wE=-b.setFromQuaternion(c).y*v;return!0};x.prototype.WLa=function(y){return 3E4/3600/this.pf*this.properties.get("translationSpeed",1)*(y?3:1)};x.prototype.LZ=function(){this.properties.get("inMandatorySequence")?this.properties.set("userInteracting",!1):this.qj?this.properties.set("userInteracting",!0):this.wk?this.properties.set("userInteracting", !0):this.Ae&&this.Ae.pressed&&(this.Ae.Qb.y!==0||this.Ae.Qb.x!==0)?this.properties.set("userInteracting",!0):this.properties.set("userInteracting",!1)};x.tK=function(y,z){this.nF.set(y,z)};x.Wa=function(y){y.N(k.$p).manager=new x(y)};x.update=function(y){y.getComponent(k.$p).manager.update()};x.frame=function(y,z,A){y.getComponent(k.$p).manager.frame(z,A)};x.ya=function(y){var z=y.getComponent(k.$p);z.manager.dispose();z.manager=null;y.ka(k.$p)};x.nF=new Map;x.NB="minX maxX minY maxY minZ maxZ".split(" "); return x}();var b=new e.Euler(0,0,0,"YXZ");new e.Euler(0,0,0,"YXZ");var c=new e.Quaternion,d=new e.Vector3,f=new e.Vector3,l=new e.Matrix4,p=new e.Matrix4,q=new e.Matrix4,r=new e.Matrix4,t=new e.Matrix4,u=new e.Vector3(1,1,1),v=180/Math.PI,w=Math.PI/180;return a}); define("tdv/player/view/webgl/system/cameraControls/XRTeleportBehaviour","require exports tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k,e){a=function(){function r(t){this.locked=!0;this.Di=!1;this.KY=this.pe=this.Ep=null;this.pf=1;this.fF=0;this.ru=!1;this.Kk=0;this.wk=null;this.Hd=new e.Vector3;this.dX=[];this.Wt=new e.Vector3;this.cA=new e.Box3(new e.Vector3(-Infinity, -Infinity,-Infinity),new e.Vector3(Infinity,Infinity,Infinity));this.F=t;this.Dk=this.Dk.bind(this);this.ot=new g(this.F);n.M.bind(h.V,this.Ta,this,!0);this.update()}r.prototype.update=function(){var t=this.F.getComponent(k.qL),u=(t===null||t===void 0?void 0:t.locked)||!1;!u&&this.locked&&(this.Di=!0);this.locked=u;this.pf=(t===null||t===void 0?void 0:t.pf)||1;this.Kk=t===null||t===void 0?void 0:t.Kk;this.iF();this.properties=t.properties;this.locked||(n.setScale(this.pf),this.HW(),this.Dk());this.Di&& (b.setFromQuaternion(n.yl),n.setPosition({x:this.properties.get("x"),y:this.properties.get("y"),z:this.properties.get("z"),yaw:this.properties.get("yaw"),pitch:b.x*q,roll:b.z*q}))};r.prototype.iF=function(){r.NB.forEach(function(t){var u;(u=this.properties)===null||u===void 0||u.h(h.L(t),this.Dk,this)}.bind(this))};r.prototype.HW=function(){r.NB.forEach(function(t){var u;(u=this.properties)===null||u===void 0||u.bind(h.L(t),this.Dk,this,!0)}.bind(this))};r.prototype.Dk=function(){this.cA.min.set(this.properties.get("minX", -Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ",-Infinity));this.cA.max.set(this.properties.get("maxX",Infinity),this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};r.prototype.frame=function(t){this.locked||(this.ou(),this.LZ(),this.aJ(),this.properties.get("controllingPosition")||(this.Hd.copy(n.Ec),this.zW()||this.AW(t),this.Hd.y=this.oIa(this.Wt.y,this.W7(this.Hd.x,this.Hd.y,this.Hd.z),t),this.eeb()&&(this.Hd.copy(this.Wt),this.Hd.y=this.oIa(this.Wt.y, this.W7(this.Hd.x,this.Hd.y,this.Hd.z),t)),this.cA.clampPoint(this.Hd,this.Hd),n.Ec.equals(this.Hd)||n.setPosition({x:this.Hd.x,y:this.Hd.y,z:this.Hd.z,Xa:void 0})),this.$I(),this.AO(),this.Ujb(),this.Di=!1)};r.prototype.Ujb=function(){this.ot.refresh();this.dX.forEach(function(t){t.y=NaN})};r.prototype.dispose=function(){n.M.h(h.V,this.Ta,this);this.properties.set("userInteracting",!1);this.iF()};r.prototype.aJ=function(){var t=this.properties.get("x"),u=this.properties.get("y"),v=this.properties.get("z"); if(this.Wt.x!==t||this.Wt.y!==u||this.Wt.z!==v)this.properties.get("controllingPosition")||(u=this.W7(t,u,v)),n.setPosition({x:t,y:u,z:v,yaw:void 0}),this.AO()};r.prototype.$I=function(){this.properties.set("x",n.Ec.x);this.properties.set("y",n.Ec.y);this.properties.set("z",n.Ec.z);b.setFromQuaternion(n.wg);this.properties.set("yaw",-b.y*q);this.properties.set("pitch",b.x*q);this.properties.set("roll",b.z*q)};r.prototype.AO=function(){this.Wt.copy(n.Ec);this.VPa=this.qoa(this.Wt)};r.prototype.ou= function(){var t=null,u=null;(r.nF.get(this.F.T)||[]).forEach(function(v){v=v.getComponent(k.yc);v.Ug?t=v:u=v});this.rlb(t,u)};r.prototype.rlb=function(t,u){this.Ep=t;this.KY=u;t=t?t.M:null;this.pe!==t&&(this.pe&&this.CY(this.pe),(this.pe=t)&&this.xW(this.pe))};r.prototype.xW=function(t){t.bind(h.ma,this.Mt,this,!0)};r.prototype.CY=function(t){t.h(h.ma,this.Mt,this)};r.prototype.Ta=function(){this.F.O(k.aq)};r.prototype.Mt=function(t){if(this.Ep&&this.properties&&!this.properties.get("inMandatorySequence")&& !t.data.EX&&t.data.type!="other"&&!this.properties.get("clickTranslationDisabled")&&this.properties.get("doubleClickAction")=="translate"&&(t=this.ot.KX(this.Ep),t.length!=0)){var u=t[0];if(u.face&&u.face.normal){t=c.copy(n.Ec);var v=d.copy(u.point);u=f.copy(u.face.normal).transformDirection(u.object.matrixWorld);if(Math.abs(Math.acos(u.dot(p)))Math.PI*.75;return this.Kk!==0&&u>.95&&(t||v)&&Date.now()- this.fF<100?(this.ru=!0,u=this.Kk*(v?-1:1),u=-b.setFromQuaternion(n.wg,"YXZ").y*q+u,n.setPosition({x:void 0,y:void 0,z:void 0,yaw:u}),!0):!1};r.prototype.DW=function(t){if(!this.Ep||this.Ep.Qb.y===0&&this.Ep.Qb.x===0)return!1;t=4E3/3600/this.pf*this.properties.get("translationSpeed",1)*(this.Ep.gx?3:1)*t/1E3;var u=c.set(0,0,-1).applyQuaternion(n.wg),v=d.crossVectors(u,p);u.y=0;v.y=0;u.normalize().multiplyScalar(-this.Ep.Qb.y*t);v.normalize().multiplyScalar(this.Ep.Qb.x*t);this.Hd.set(n.Ec.x+u.x+v.x, n.Ec.y,n.Ec.z+u.z+v.z);return!0};r.prototype.LZ=function(){this.properties.get("inMandatorySequence")?this.properties.set("userInteracting",!1):this.wk?this.properties.set("userInteracting",!0):this.Ep&&this.Ep.pressed&&(this.Ep.Qb.y!==0||this.Ep.Qb.x!==0)?this.properties.set("userInteracting",!0):this.properties.set("userInteracting",!1)};r.prototype.eeb=function(){if(!this.properties.get("collisionDetection"))return!1;var t=c,u=d;t.copy(this.Hd).sub(this.Wt);u.copy(this.Wt).add(t.setLength(t.length()+ .2/this.pf));if(this.ot.CK(this.Wt,u))return!0;t=this.properties.get("maxStepHeight");t===void 0&&(t=this.I7()*.25);u=this.qoa(this.Hd);return this.VPa>-Infinity&&u>-Infinity&&Math.abs(this.VPa-u)>t?!0:!1};r.prototype.oIa=function(t,u,v){var w=u-t,x=Math.abs(w);v=2/this.pf*(v/1E3);return v>x?u:t+w*v/x};r.prototype.W7=function(t,u,v){t=this.Di?-Infinity:this.qoa(c.set(t,u,v));return t===-Infinity?u:t+this.I7()};r.prototype.qoa=function(t){var u=this.dX.findIndex(function(w){return w.x==t.x&&w.z==t.z&& !isNaN(w.y)});if(u!==-1)return this.dX[u].y;u=this.ot.YW(t);var v=this.dX.find(function(w){return isNaN(w.y)});v||this.dX.push(v=new e.Vector3);v.set(t.x,t.y-u,t.z);return v.y};r.prototype.I7=function(){return n.HO/this.pf};r.tK=function(t,u){this.nF.set(t,u)};r.Wa=function(t){t.N(k.aq).manager=new r(t)};r.update=function(t){t.getComponent(k.aq).manager.update()};r.frame=function(t,u,v){t.getComponent(k.aq).manager.frame(u,v)};r.ya=function(t){var u=t.getComponent(k.aq);u.manager.dispose();u.manager= null;t.ka(k.aq)};r.nF=new Map;r.NB="minX maxX minY maxY minZ maxZ".split(" ");return r}();var b=new e.Euler(0,0,0,"YXZ"),c=new e.Vector3,d=new e.Vector3,f=new e.Vector3,l=new e.Vector3,p=new e.Vector3(0,1,0),q=180/Math.PI;return a}); define("tdv/player/view/webgl/system/cameraControls/System","require tdv/utils tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/cameraControls/ARBehaviour tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/system/cameraControls/CameraSequenceBehaviour tdv/player/view/webgl/system/cameraControls/DraggingObserver tdv/player/view/webgl/system/cameraControls/FirstPersonBehaviour tdv/player/view/webgl/system/cameraControls/FlyOverBehaviour tdv/player/view/webgl/system/cameraControls/OrbitBehaviour tdv/player/view/webgl/system/cameraControls/TransitionBehaviour tdv/player/view/webgl/system/cameraControls/XRBasicBehaviour tdv/player/view/webgl/system/cameraControls/XRDragBehaviour tdv/player/view/webgl/system/cameraControls/XRFlyBehaviour tdv/player/view/webgl/system/cameraControls/XRTeleportBehaviour".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/cameraControls/ARBehaviour"),k=a("tdv/player/view/webgl/system/cameraControls/CollidableObjects"),e=a("tdv/player/view/webgl/system/cameraControls/CameraSequenceBehaviour"),b=a("tdv/player/view/webgl/system/cameraControls/DraggingObserver"),c=a("tdv/player/view/webgl/system/cameraControls/FirstPersonBehaviour"),d=a("tdv/player/view/webgl/system/cameraControls/FlyOverBehaviour"), f=a("tdv/player/view/webgl/system/cameraControls/OrbitBehaviour"),l=a("tdv/player/view/webgl/system/cameraControls/TransitionBehaviour"),p=a("tdv/player/view/webgl/system/cameraControls/XRBasicBehaviour"),q=a("tdv/player/view/webgl/system/cameraControls/XRDragBehaviour"),r=a("tdv/player/view/webgl/system/cameraControls/XRFlyBehaviour"),t=a("tdv/player/view/webgl/system/cameraControls/XRTeleportBehaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(u,v){(this.Upa.fe.length|| this.Upa.Xg.length)&&k.hlb(this.Upa.v);this.WIa.v.length&&this.WIa.v.slice().forEach(e.Wa);this.S6.Da.length&&this.S6.Da.slice().forEach(e.update);this.S6.v.length&&this.S6.v.slice().forEach(function(w){e.frame(w,u,v)});this.XIa.v.length&&this.XIa.v.slice().forEach(e.ya);this.NKa.v.length&&this.NKa.v.slice().forEach(d.ya);this.OKa.v.length&&this.OKa.v.slice().forEach(d.ya);this.PKa.v.length&&this.PKa.v.slice().forEach(d.ya);this.EKa.v.length&&this.EKa.v.slice().forEach(c.ya);this.FKa.v.length&&this.FKa.v.slice().forEach(c.ya); this.GKa.v.length&&this.GKa.v.slice().forEach(c.ya);this.fPa.v.length&&this.fPa.v.slice().forEach(f.ya);this.gPa.v.length&&this.gPa.v.slice().forEach(f.ya);this.hPa.v.length&&this.hPa.v.slice().forEach(f.ya);this.QTa.v.length&&this.QTa.v.slice().forEach(p.ya);this.RTa.v.length&&this.RTa.v.slice().forEach(p.ya);this.STa.v.length&&this.STa.v.slice().forEach(p.ya);this.rIa.v.length&&this.rIa.v.slice().forEach(g.ya);this.sIa.v.length&&this.sIa.v.slice().forEach(g.ya);this.tIa.v.length&&this.tIa.v.slice().forEach(g.ya); this.MKa.v.length&&this.MKa.v.slice().forEach(d.Wa);this.eX.Da.length&&this.eX.Da.slice().forEach(d.update);this.eX.v.length&&this.eX.v.slice().forEach(function(w){d.frame(w,u,v)});this.DKa.v.length&&this.DKa.v.slice().forEach(c.Wa);this.cX.Da.length&&this.cX.Da.slice().forEach(c.update);this.cX.v.length&&this.cX.v.slice().forEach(function(w){c.frame(w,u,v)});this.ePa.v.length&&this.ePa.v.slice().forEach(f.Wa);this.qY.Da.length&&this.qY.Da.slice().forEach(f.update);this.qY.v.length&&this.qY.v.slice().forEach(function(w){f.frame(w, u,v)});this.PTa.v.length&&this.PTa.v.slice().forEach(p.Wa);this.PZ.Da.length&&this.PZ.Da.slice().forEach(p.update);this.PZ.v.length&&this.PZ.v.slice().forEach(function(w){p.frame(w,u,v)});this.cUa.v.length&&this.cUa.v.slice().forEach(t.ya);this.dUa.v.length&&this.dUa.v.slice().forEach(t.ya);this.eUa.v.length&&this.eUa.v.slice().forEach(t.ya);this.VTa.v.length&&this.VTa.v.slice().forEach(q.ya);this.WTa.v.length&&this.WTa.v.slice().forEach(q.ya);this.XTa.v.length&&this.XTa.v.slice().forEach(q.ya);this.ZTa.v.length&& this.ZTa.v.slice().forEach(r.ya);this.$Ta.v.length&&this.$Ta.v.slice().forEach(r.ya);this.aUa.v.length&&this.aUa.v.slice().forEach(r.ya);this.VSa.v.length&&this.VSa.v.slice().forEach(l.ya);this.WSa.v.length&&this.WSa.v.slice().forEach(l.ya);this.qIa.v.length&&this.qIa.v.slice().forEach(g.Wa);this.E6.Da.length&&this.E6.Da.slice().forEach(g.update);this.E6.v.length&&this.E6.v.slice().forEach(function(w){g.frame(w,u,v)});t.tK(this.T,this.Wj.v.slice());this.bUa.v.length&&this.bUa.v.slice().forEach(t.Wa); this.SZ.Da.length&&this.SZ.Da.slice().forEach(t.update);this.SZ.v.length&&this.SZ.v.slice().forEach(function(w){t.frame(w,u,v)});q.tK(this.T,this.Wj.v.slice());this.UTa.v.length&&this.UTa.v.slice().forEach(q.Wa);this.QZ.Da.length&&this.QZ.Da.slice().forEach(q.update);this.QZ.v.length&&this.QZ.v.slice().forEach(function(w){q.frame(w,u,v)});r.tK(this.T,this.Wj.v.slice());this.YTa.v.length&&this.YTa.v.slice().forEach(r.Wa);this.RZ.Da.length&&this.RZ.Da.slice().forEach(r.update);this.RZ.v.length&&this.RZ.v.slice().forEach(function(w){r.frame(w, u,v)});this.USa.v.length&&this.USa.v.slice().forEach(l.Wa);this.rQ.Da.length&&this.rQ.Da.slice().forEach(l.update);this.rQ.fe.length&&this.rQ.fe.slice().forEach(l.update);this.rQ.v.length&&this.rQ.v.slice().forEach(function(w){l.frame(w,u,v)});if(this.oA.fe.length||this.oA.Xg.length)b.gra(this.oA.v),this.cX.v.slice().forEach(c.update),this.eX.v.slice().forEach(d.update),this.qY.v.slice().forEach(f.update),this.PZ.v.slice().forEach(p.update),this.QZ.v.slice().forEach(q.update),this.RZ.v.slice().forEach(r.update), this.SZ.v.slice().forEach(t.update)};a.J={};a.J.Wj=[n.yc];a.J.oA=[n.Im];a.J.Upa=[n.VF];a.J.DKa=[n.PF,n.ng.aa,n.Xf.aa,n.Lr.aa];a.J.cX=[n.PF,n.ng.aa,n.Xf.aa,n.Lr];a.J.EKa=[n.PF.aa,n.Lr];a.J.FKa=[n.ng,n.Lr];a.J.GKa=[n.Xf,n.Lr];a.J.MKa=[n.QF,n.ng.aa,n.Xf.aa,n.Nr.aa];a.J.eX=[n.QF,n.ng.aa,n.Xf.aa,n.Nr];a.J.NKa=[n.QF.aa,n.Nr];a.J.OKa=[n.ng,n.Nr];a.J.PKa=[n.Xf,n.Nr];a.J.ePa=[n.XF,n.ng.aa,n.Xf.aa,n.Tr.aa];a.J.qY=[n.XF,n.ng.aa,n.Xf.aa,n.Tr];a.J.fPa=[n.XF.aa,n.Tr];a.J.gPa=[n.ng,n.Tr];a.J.hPa=[n.Xf,n.Tr];a.J.USa= [n.Jx,n.Sk,n.Lu.aa];a.J.rQ=[n.Jx,n.Sk,n.Lu];a.J.VSa=[n.Sk.aa,n.Lu];a.J.WSa=[n.Jx.aa,n.Lu];a.J.bUa=[n.ng,n.Xf.aa,n.qL,n.aq.aa];a.J.SZ=[n.ng,n.Xf.aa,n.qL,n.aq];a.J.cUa=[n.qL.aa,n.aq];a.J.dUa=[n.ng.aa,n.aq];a.J.eUa=[n.Xf,n.aq];a.J.PTa=[n.ng,n.Xf.aa,n.gG,n.Yp.aa];a.J.PZ=[n.ng,n.Xf.aa,n.gG,n.Yp];a.J.QTa=[n.gG.aa,n.Yp];a.J.RTa=[n.ng.aa,n.Yp];a.J.STa=[n.Xf,n.Yp];a.J.UTa=[n.ng,n.Xf.aa,n.oL,n.Zp.aa];a.J.QZ=[n.ng,n.Xf.aa,n.oL,n.Zp];a.J.VTa=[n.oL.aa,n.Zp];a.J.WTa=[n.ng.aa,n.Zp];a.J.XTa=[n.Xf,n.Zp];a.J.YTa=[n.ng, n.Xf.aa,n.pL,n.$p.aa];a.J.RZ=[n.ng,n.Xf.aa,n.pL,n.$p];a.J.ZTa=[n.pL.aa,n.$p];a.J.$Ta=[n.ng.aa,n.$p];a.J.aUa=[n.Xf,n.$p];a.J.qIa=[n.Xf,n.ng.aa,n.vB,n.Cr.aa];a.J.E6=[n.Xf,n.vB,n.Cr];a.J.rIa=[n.vB.aa,n.Cr];a.J.sIa=[n.Xf.aa,n.Cr];a.J.tIa=[n.ng,n.Cr];a.J.WIa=[n.TK,n.sx.aa];a.J.S6=[n.TK,n.sx];a.J.XIa=[n.TK.aa,n.sx];return a}); define("tdv/player/view/webgl/system/cameraOffsetTransform/System","require exports three.mod tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k){a=function(q){function r(){var t=q.call(this)||this;t.gg=t.gg.bind(t);return t}P(r,q);r.prototype.Yc=function(){this.v.v.length&&this.v.v.slice().forEach(this.gg)};r.prototype.gg=function(t){var u=t.getComponent(n.Object3D);if(u&&u.sa&&u.sa.parent){u=u.sa;var v=t.getComponent(n.SK); if(v.Ea){var w=v.Ea,x=w.getComponent(n.PerspectiveCamera);(w=w.getComponent(n.Object3D))&&w.sa&&(w=w.sa,w.updateMatrixWorld(!0),x.oj?(c.copy(k.Ec),l.copy(k.wg)):w.matrixWorld.decompose(c,l,f),v.rotate||l.identity(),e.copy(u.parent.matrixWorld).invert(),b.compose(c,l,f.set(1,1,1)).premultiply(e),b.decompose(c,l,f.set(1,1,1)),d.setFromQuaternion(l,"YXZ"),t=t.O(n.ta),t.translationX=c.x,t.translationY=c.y,t.Ze=c.z,t.Yd=0,t.fd=d.y*p,t.Xe=0)}}};r.J={};return r}(g);a.J={};a.J.v=[n.SK,n.Object3D,n.ta];var e= new h.Matrix4,b=new h.Matrix4,c=new h.Vector3,d=new h.Euler,f=new h.Vector3,l=new h.Quaternion,p=180/Math.PI;return a}); define("tdv/player/view/webgl/system/canvasMaterial/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(g){this.B=g;this.vFa=this.Aa=null;this.Ha=this.Pa=void 0;this.update()}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.update=function(){var g=this.B.getComponent(h.Kf),k=g.source&&g.source.width||0,e=g.source&&g.source.height||0;!this.Aa||!!this.Aa.isSpriteMaterial== g.isSprite&&this.Pa==k&&this.Ha==e||(this.Aa.map.dispose(),this.Aa.dispose(),this.Aa=null);this.Pa=k;this.Ha=e;this.Aa||(g.isSprite?(this.Aa=new THREE.SpriteMaterial,this.Aa.sizeAttenuation=!1):this.Aa=new THREE.MeshBasicMaterial,this.Aa.map=new THREE.Texture,this.Aa.transparent=!0,this.B.N(h.Material).material=this.Aa);this.Aa.map.image!=g.source&&(this.Aa.map.image=g.source,this.Aa.map.needsUpdate=!0);this.vFa!=g.xK&&(this.vFa=g.xK,this.Aa.map.needsUpdate=!0);this.Aa.opacity=g.opacity||0;this.Aa.depthTest= !!g.depthTest;this.Aa.visible=this.Aa.opacity>0&&!g.hidden;this.Aa.needsUpdate=!0;if(g.colorSpace)var b=g.colorSpace;else(g=n.Sf(this.B))&&(b=n.tX(g));this.Aa.map&&b&&(this.Aa.map.colorSpace=b);this.B.T.Qa()};m.prototype.dispose=function(){this.Aa&&(this.Aa.map.dispose(),this.Aa.map=null,this.Aa.dispose(),this.Aa=null,this.B.ka(h.Material));this.B=null};m.Wa=function(g){g.N(h.DB).manager=new m(g)};m.ya=function(g){var k=g.getComponent(h.DB);k.manager.dispose();k.manager=null;g.ka(h.DB)};m.update= function(g){g.getComponent(h.DB).manager.update()};return m}); define("tdv/player/view/webgl/system/canvasMaterial/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/canvasMaterial/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/canvasMaterial/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.On.v.length&&this.On.v.slice().forEach(g.Wa); this.materials.Da.length&&this.materials.Da.slice().forEach(g.update);this.Pn.v.length&&this.Pn.v.slice().forEach(g.ya)};a.J={};a.J.On=[n.Kf,n.DB.aa];a.J.materials=[n.Kf,n.DB];a.J.Pn=[n.Kf.aa,n.DB];return a}); define("tdv/player/view/webgl/system/clippingRect/System",["require","exports","three.mod","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components"],function(a,m,h,n,g){var k=[new h.Vector3(1,0,0),new h.Vector3(-1,0,0),new h.Vector3(0,1,0),new h.Vector3(0,-1,0)];a=function(e){function b(){var c=e.call(this)||this;c.xb=c.xb.bind(c);c.ib=c.ib.bind(c);c.Ca=c.Ca.bind(c);return c}P(b,e);b.prototype.Yc=function(){this.GE.v.length&&this.GE.v.slice().forEach(this.xb);this.planes.v.length&&this.planes.v.slice().forEach(this.ib); this.tY.v.length&&this.tY.v.slice().forEach(this.Ca)};b.prototype.xb=function(c){c.N(g.EB).planes=[new h.Plane,new h.Plane,new h.Plane,new h.Plane];c.N(g.Object3D).sa=new h.Object3D;this.ib(c)};b.prototype.ib=function(c){var d=c.N(g.Object3D).sa;c=c.N(g.EB);c.planes[0].set(k[0],.5).applyMatrix4(d.matrixWorld);c.planes[1].set(k[1],.5).applyMatrix4(d.matrixWorld);c.planes[2].set(k[2],.5).applyMatrix4(d.matrixWorld);c.planes[3].set(k[3],.5).applyMatrix4(d.matrixWorld)};b.prototype.Ca=function(c){c.ka(g.EB); c.ka(g.Object3D)};b.J={};return b}(n);a.J={};a.J.GE=[g.vF,g.EB.aa];a.J.planes=[g.vF,g.EB,g.ta,g.Object3D];a.J.tY=[g.vF.aa,g.EB];return a}); define("tdv/player/view/webgl/system/light/DirectionalLightHelper",["require","exports","three.mod","tdv/player/view/webgl/system/util/entity/Util"],function(a,m,h,n){a=function(){function d(f){this.light=f;f=new h.EdgesGeometry(new h.PlaneGeometry(2,2));var l=new h.LineBasicMaterial({color:16711680,linewidth:1,depthTest:!1,transparent:!0});this.oh=new h.LineSegments(f,l);f=(new h.BufferGeometry).setFromPoints([new h.Vector3,new h.Vector3]);l=new h.LineBasicMaterial({color:65280,depthTest:!1,transparent:!0}); this.line=new h.Line(f,l);this.light.add(this.oh);this.light.add(this.line)}d.prototype.update=function(){var f=this.Sf();this.oh.parent!=f&&(this.oh.parent&&(this.oh.parent.remove(this.oh),this.line.parent.remove(this.line)),f&&(f.add(this.oh),f.add(this.line)));if(f){this.oh.material.color!=this.light.color&&(this.oh.material.color=this.light.color,this.oh.material.needsUpdate=!0,this.line.material.color=this.light.color,this.line.material.needsUpdate=!0);this.light.updateMatrixWorld(!0);g.setFromMatrixPosition(this.light.matrixWorld); this.light.target.updateMatrixWorld(!0);k.setFromMatrixPosition(this.light.target.matrixWorld);e.copy(k).sub(g).normalize();c.y=Math.atan2(e.x,e.z);c.x=-Math.atan2(e.y,Math.sqrt(e.x*e.x+e.z*e.z));c.z=0;c.order="YXZ";b.setFromEuler(c);f=n.dE(f);this.oh.quaternion.copy(b);var l=n.wJ(this.line)*f*2/7;e.setLength(l).multiplyScalar(-1);l=this.line.geometry.attributes.position;l.setXYZ(0,0,0,0);l.setXYZ(1,e.x,e.y,e.z);l.needsUpdate=!0;this.oh.position.copy(e);this.oh.updateMatrixWorld(!0);f=n.wJ(this.oh)* f/7;this.oh.scale.set(f,f,f);this.oh.updateMatrixWorld(!0)}};d.prototype.dispose=function(){this.oh.geometry.dispose();this.oh.material.dispose();this.oh.parent&&this.oh.parent.remove(this.oh);this.line.geometry.dispose();this.line.material.dispose();this.line.parent&&this.line.parent.remove(this.line)};d.prototype.Sf=function(){for(var f=this.light.parent;f&&!f.isScene;)f=f.parent;return f};return d}();var g=new h.Vector3,k=new h.Vector3,e=new h.Vector3,b=new h.Quaternion,c=new h.Euler;return a}); define("tdv/player/view/webgl/system/light/DirectionalLightSystem","require exports three.mod tdv/player/view/util/Color tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/light/DirectionalLightHelper".split(" "),function(a,m,h,n,g,k,e,b){function c(l,p){p.makeEmpty();var q=new h.Box3;l.traverse(function(r){if(r.geometry&&!r.isSprite&&!r.isLine){r.updateWorldMatrix(!1,!1);var t=r.geometry;t.boundingBox===null&& t.computeBoundingBox();q.copy(t.boundingBox);q.applyMatrix4(r.matrixWorld);p.union(q)}});return p}a=function(l){function p(){var q=l.call(this)||this;q.xb=q.xb.bind(q);q.ib=q.ib.bind(q);q.gg=q.gg.bind(q);q.Ca=q.Ca.bind(q);return q}P(p,l);p.prototype.Yc=function(){this.lE.v.length&&this.lE.v.slice().forEach(this.xb);this.mE.v.length&&this.mE.v.slice().forEach(this.Ca);this.Ei.Da.length&&this.Ei.Da.slice().forEach(this.ib);this.Ei.v.length&&this.Ei.v.slice().forEach(this.gg)};p.prototype.xb=function(q){var r= q.N(g.Er),t=q.N(g.Object3D);r.light=t.sa=new h.DirectionalLight;this.ib(q)};p.prototype.ib=function(q){var r=q.getComponent(g.DirectionalLight),t=q.getComponent(g.Er),u=t.light;u.color=n.Ip(r.color).convertLinearToSRGB();u.intensity=r.intensity*Math.PI;u.visible=u.intensity>0;u.castShadow=u.intensity>0&&r.castShadow;var v=u.castShadow?r.Pra:16;v!=u.shadow.mapSize.width&&(u.shadow.dispose(),u.shadow=u.shadow.clone(),u.shadow.mapSize.width=u.shadow.mapSize.height=v);u.shadow.radius=r.Qra;u.shadow.bias= r.Ora;r.WW!=!!t.zp&&(t=q.O(g.Er),r.WW?t.zp=new b(u):(t.zp.dispose(),t.zp=null))};p.prototype.gg=function(q){this.$nb(q);this.Bsa(q)};p.prototype.$nb=function(q){var r=q.getComponent(g.DirectionalLight);if((q=q.getComponent(g.Er).light)&&q.castShadow){var t=e.Rc(r.target);if(t){var u=q.shadow.camera,v=c(t,d);t=Number.POSITIVE_INFINITY;for(var w=Number.NEGATIVE_INFINITY,x=Number.NEGATIVE_INFINITY,y=Number.POSITIVE_INFINITY,z=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,D=0;D<2;D++)for(var F= 0;F<2;F++)for(var C=0;C<2;C++)f.set(D==0?v.min.x:v.max.x,F==0?v.min.y:v.max.y,C==0?v.min.z:v.max.z).applyMatrix4(u.matrixWorldInverse),f.xw&&(w=f.x),f.y>x&&(x=f.y),f.yA&&(A=-f.z),-f.z 0);if(y!=0&&(y=this.Bh.getComponent(n.yc))){var z=g.Rc(this.Bh);z?(e.copy(y.origin).applyMatrix4(z.matrixWorld),b.copy(y.origin).add(y.direction).applyMatrix4(z.matrixWorld).sub(e).normalize()):(e.copy(y.origin),b.copy(y.direction).normalize());for(y=0;y=0&&y.splice(z,1);w["delete"](x);x.ka(n.FB);x.ka(n.Im)};return m}); define("tdv/player/view/webgl/system/dragging/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/dragging/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/dragging/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.uY.v.length&&this.uY.v.slice().forEach(g.Jra);this.Wj.Da.length&& this.Wj.Da.slice().forEach(g.ou);this.Wj.v.length&&this.Wj.v.slice().forEach(g.frame);this.vY.v.length&&this.vY.v.slice().forEach(g.fsa);this.gKa.v.length&&this.gKa.v.slice().forEach(g.Ulb);this.fKa.v.length&&this.fKa.v.slice().forEach(g.IK);this.iKa.v.length&&this.iKa.v.slice().forEach(g.zSa);this.jKa.v.length&&this.jKa.v.slice().forEach(g.zSa)};a.J={};a.J.uY=[n.yc,n.Fx.aa];a.J.Wj=[n.yc,n.Fx];a.J.vY=[n.yc.aa,n.Fx];a.J.gKa=[n.Object3D,n.ux,n.FB.aa];a.J.fKa=[n.Object3D,n.ux,n.FB];a.J.iKa=[n.Object3D.aa, n.FB];a.J.jKa=[n.ux.aa,n.FB];return a}); define("tdv/player/view/webgl/system/floor/System","require exports three.mod tdv/player/view/util/Color tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System".split(" "),function(a,m,h,n,g,k){a=function(c){function d(){var f=c.call(this)||this;f.xb=f.xb.bind(f);f.ib=f.ib.bind(f);f.Ca=f.Ca.bind(f);f.gg=f.gg.bind(f);return f}P(d,c);d.prototype.Yc=function(){this.KKa.v.length&&this.KKa.v.slice().forEach(this.xb);this.LKa.v.length&&this.LKa.v.slice().forEach(this.Ca);this.v7.Da.length&&this.v7.Da.slice().forEach(this.ib); this.v7.v.length&&this.v7.v.slice().forEach(this.gg)};d.prototype.xb=function(f){var l=f.N(g.yx),p=f.N(g.Object3D);l.floor=p.sa=this.Adb();this.io(f,!0)};d.prototype.ib=function(f){this.io(f)};d.prototype.Ca=function(f){var l=f.getComponent(g.yx).floor;l.parent&&l.parent.remove(l);l.geometry.dispose();l.material.dispose();f.ka(g.yx);f.ka(g.Object3D)};d.prototype.gg=function(f){this.Dkb(f)};d.prototype.Dkb=function(f){var l=f.getComponent(g.Mr),p=(f=(f=f.getComponent(g.yx))&&f.floor)&&f.parent&&f.parent.matrixWorld; if(p){b.setFromMatrixScale(p);var q=Math.max(Math.abs(b.x),Math.abs(b.y),Math.abs(b.z));f.matrix.identity();f.matrix.multiply(e.makeScale(l.radius/q,l.radius/q,l.radius/q));f.matrix.multiply(e.extractRotation(p).invert());f.matrix.multiply(e.makeTranslation(0,l.height/l.radius,0));f.matrix.multiply(e.makeRotationX(-Math.PI*.5));f.updateMatrixWorld(!0)}};d.prototype.Adb=function(){var f=new h.CircleGeometry(1,128);f=new h.Mesh(f);f.receiveShadow=!0;f.needsUpdate=!0;f.matrixAutoUpdate=!1;f.castShadow= !1;return f};d.prototype.io=function(f,l){l===void 0&&(l=!1);var p=f.getComponent(g.Mr);f=f.getComponent(g.yx).floor;var q=p.color=="transparent",r=f.material&&f.material.isShadowMaterial||!1;f.material&&(l||r!=q)&&(f.material.dispose(),f.material=null);q?f.material||(f.material=new h.ShadowMaterial):(f.material||(f.material=new h.MeshStandardMaterial,f.material.defines.USE_UV="",f.material.onBeforeCompile=function(t){var u=t.fragmentShader.lastIndexOf("}");t.fragmentShader=t.fragmentShader.substring(0, u)+"float uvCenterCoef = 2.0 * length(vUv - 0.5);\nfloat uvAlphaCoef = 1.0 - smoothstep(0.97, 1.0, uvCenterCoef);\ngl_FragColor.a = uvAlphaCoef * gl_FragColor.a;\n"+t.fragmentShader.substring(u,t.fragmentShader.length)},f.material.roughness=1,f.material.metalness=0,f.material.envMapIntensity=0,f.material.transparent=!0),f.material.color=n.Ip(p.color));f.material.needsUpdate=!0;f.material.opacity=p.opacity;f.renderOrder=p.renderOrder};d.J={};return d}(k);a.J={};a.J.KKa=[g.Mr,g.yx.aa];a.J.v7=[g.Mr, g.yx];a.J.LKa=[g.Mr.aa,g.yx];var e=new h.Matrix4,b=new h.Vector3;return a}); define("tdv/player/view/webgl/system/floorTransform/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(w){this.B=w;this.qja=!1}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.update=function(){this.qja=!1};m.prototype.frame=function(){this.dg()};m.prototype.dg=function(){if(!this.qja&&(this.Bb=this.Bb||n.Sf(this.B))){var w=n.Rc(this.B),x=w&&w.parent;if(x&&x.matrixWorld){var y= [];this.Bb.traverse(function(F){F.isSprite||F.isLine||F==w||y.push(F)});var z=this.B.O(h.zx);f.set(z.x,z.y,z.z).applyMatrix4(x.matrixWorld);d.ray.origin.set(f.x,f.y,f.z);d.ray.direction.set(0,-1,0);var A=d.intersectObjects(y,!1);if(A.length!=0){var D=A[0];e.copy(x.matrixWorld).invert();A=this.B.O(h.ta,!0);b.setFromMatrixPosition(x.matrixWorld);g.copy(D.object.matrixWorld);c.setFromMatrixPosition(g);k.copy(g).invert();!z.IX&&D.face&&D.face.normal?q.copy(D.face.normal).applyMatrix4(g).sub(c).add(b): q.copy(b).add(r);q.applyMatrix4(e).normalize();u.setFromUnitVectors(p,q);t.setFromQuaternion(u,A.mf);A.Yd=t.x*v;A.fd=t.y*v;A.Xe=t.z*v;f.copy(D.point).applyMatrix4(e);A.translationX=f.x;A.translationY=f.y;A.Ze=f.z;l.setFromMatrixScale(e);x=Math.max(l.x,l.y,l.z);A.positionX=0;A.positionY=0;A.positionZ=x*z.distance;this.qja=!0}}}};m.prototype.dispose=function(){};var g=new THREE.Matrix4,k=new THREE.Matrix4,e=new THREE.Matrix4,b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Raycaster,f=new THREE.Vector3, l=new THREE.Vector3;new THREE.Matrix4;new THREE.Matrix4;var p=new THREE.Vector3(0,0,1),q=new THREE.Vector3,r=new THREE.Vector3(0,1,0),t=new THREE.Euler,u=new THREE.Quaternion,v=180/Math.PI;m.Wa=function(w){w.N(h.wu).manager=new m(w)};m.ya=function(w){var x=w.getComponent(h.wu);x.manager.dispose();x.manager=null;w.ka(h.wu)};m.frame=function(w){w.getComponent(h.wu).manager.frame()};m.update=function(w){w.getComponent(h.wu).manager.update()};return m}); define("tdv/player/view/webgl/system/floorTransform/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/floorTransform/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/floorTransform/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.HKa.v.length&&this.HKa.v.slice().forEach(g.Wa); this.u7.Da.length&&this.u7.v.slice().forEach(g.update);this.u7.v.length&&this.u7.v.slice().forEach(g.frame);this.IKa.v.length&&this.IKa.v.slice().forEach(g.ya);this.JKa.v.length&&this.JKa.v.slice().forEach(g.ya)};a.J={};a.J.HKa=[n.Object3D,n.zx,n.wu.aa];a.J.u7=[n.Object3D,n.zx,n.wu];a.J.IKa=[n.Object3D.aa,n.wu];a.J.JKa=[n.zx.aa,n.wu];return a}); define("tdv/player/view/webgl/system/group/Behaviour",["require","tdv/player/view/webgl/components"],function(a){var m=a("tdv/player/view/webgl/components");return{Wa:function(h){var n=h.N(m.$K),g=h.N(m.Object3D);h.N(m.ta);h=h.O(m.Group);g.sa=n.group=h.group=new THREE.Group},ya:function(h){h.getComponent(m.$K).group=null;h.ka(m.$K);h.ka(m.Object3D)}}}); define("tdv/player/view/webgl/system/group/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/group/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/group/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.hMa.v.length&&this.hMa.v.slice().forEach(g.Wa);this.iMa.v.length&& this.iMa.v.slice().forEach(g.ya)};a.J={};a.J.hMa=[n.Group,n.$K.aa];a.J.iMa=[n.Group.aa,n.$K];return a}); define("tdv/player/view/webgl/system/grid/System","require tdv/utils tdv/player/view/util/Color tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/material/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/util/Color"),n=a("tdv/player/view/webgl/ecs/System"),g=a("tdv/player/view/webgl/components");a("tdv/player/view/webgl/system/util/entity/Util");a("tdv/player/view/webgl/system/util/material/Util"); a=m.extend(n,function(){n.apply(this,arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this)});a.prototype.Yc=function(){this.eMa.v.length&&this.eMa.v.slice().forEach(this.xb);this.dMa.Da.length&&this.dMa.Da.slice().forEach(this.ib);this.fMa.v.length&&this.fMa.v.slice().forEach(this.Ca)};a.prototype.xb=function(k){var e=k.getComponent(g.xu);e=new THREE.LineSegments(this.RO(e),this.st(e));k.N(g.Object3D).sa=k.N(g.KB).grid=e};a.prototype.ib=function(k){var e=k.getComponent(g.xu); k=k.getComponent(g.KB).grid;k.geometry=this.RO(e);k.material=this.st(e)};a.prototype.Ca=function(k){var e=k.getComponent(g.KB).grid;e.material.dispose();e.geometry.dispose();k.ka(g.Object3D);k.ka(g.KB)};a.prototype.RO=function(k){h.Ip(k.eJa);h.Ip(k.cMa);var e=k.size/k.Kna,b=k.size/2,c=[];for(let d=0,f=-b;d<=k.Kna;d++,f+=e)c.push(-b,0,f,b,0,f),c.push(f,0,-b,f,0,b);k=new THREE.BufferGeometry;k.setAttribute("position",new THREE.Float32BufferAttribute(c,3));k.setAttribute("color",new THREE.Float32BufferAttribute([], 3));return k};a.prototype.st=function(k){var e=new THREE.LineBasicMaterial;e.depthTest=k.depthTest;e.toneMapped=!1;e.vertexColors=!0;return e};a.J={};a.J.eMa=[g.xu,g.KB.aa];a.J.dMa=[g.xu,g.KB];a.J.fMa=[g.xu.aa,g.KB];return a}); define("tdv/view/images/ImageAnimation","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/view/util/Animation".split(" "),function(a){function m(f,l,p,q){this.HJ=f;this.src=f.src;this.f$=l;this.MW=p;this.frameCount=q;this.frameWidth=this.HJ.width/this.MW;this.frameHeight=this.HJ.height/this.f$}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/constants/PlaybackState");a("tdv/events/Event");var k=a("tdv/events/EventDispatcher"), e=a("tdv/view/util/Animation");a=h.extend(k,function(f,l,p,q,r,t,u){k.call(this);this.ls=r;this.mi=new m(f,l,p,r);this.dEa=t;this.ira(q);this.mfa=u;this.ja=document.createElement("canvas");this.ja.width=this.mi.frameWidth;this.ja.height=this.mi.frameHeight;this.ga=this.ja.getContext("2d");this.ga.globalCompositeOperation="copy";this.I=g.ca;this.E4=this.Ho=0;this.J0=void 0;this.Yi=b.request(this.mi);this.Yi.bind(n.V,this.Xk,this,!0);this.Xk()});a.prototype.ira=function(f){if(this.dh!==f){var l=this.OV; this.dh=f;this.OV=this.dh*this.mi.frameCount;this.nfa=this.OV-this.dh*.1;l!==void 0&&(this.Ho=this.Ho/l*this.OV)}};a.prototype.gRa=function(f){this.mfa!==f&&(this.mfa=f,this.Xk())};a.prototype.Zc=function(f){if(this.I!=f){if(f==g.$b){if(this.I!=g.PLAYING)return}else f==g.PLAYING?this.I==g.ca&&(this.Ho=this.E4=0,this.Xk()):f!=g.ca||this.Ho==0&&this.E4!=0||(this.Ho=this.nfa,this.Xk());this.I=f;e.requestFrame(this.sq,this);this.o(n.Pd)}};a.prototype.getState=function(){return this.I};a.prototype.sq= function(f){this.I==g.PLAYING&&(this.Ho=Math.min(this.Ho+f,this.Yi.Yi.length*this.dh),this.Ho>=this.OV&&(this.E4++,this.dEa&&this.E4==this.dEa?(this.Zc(g.ca),this.Ho=this.nfa,this.o(n.Ub)):(this.Ho%=this.OV,this.o(n.Vr))),this.Xk(),this.I==g.PLAYING&&e.requestFrame(this.sq,this))};a.prototype.clear=function(){this.Zc(g.ca);this.ja.width=this.ja.height=0;this.ja=null;b.release(this.mi);this.mi=null};a.prototype.If=function(){return this.ja};a.prototype.Xk=function(){var f=this.mfa&&this.Ho>=this.nfa? 0:Math.floor(this.Ho/this.dh);this.J0!=f&&f0?l[0]:this.al[0];l.Eeb();if(l.Yi.length==l.mi.frameCount&&(this.al.splice(this.al.indexOf(l),1),this.al.length==0))return}this.uEa()}}};return a}); define("tdv/player/view/webgl/system/imageMaterial/AnimationPlaybackController",["require","tdv/constants/EventName","tdv/constants/PlaybackState"],function(a){function m(g,k){this.Qd=g;this.Ic=k;this.Ld=!1;this.Nca();this.Qca();this.RH()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState");m.prototype.clear=function(){this.Lja();this.Qja();this.Qd.get("autoplay")||this.Qd.set("state",n.ca);this.Qd=null;this.Ic.Zc(n.ca);this.Ic=null};m.prototype.kg=function(g){this.Ld!=g&&(this.Ld= g,this.Uv())};m.prototype.RH=function(){this.Ic.Zc(this.Qd.get("state"))};m.prototype.PT=function(){this.Uv()};m.prototype.RT=function(){this.Ic.ira(this.Qd.get("frameDuration"))};m.prototype.QT=function(){this.Ic.gRa(this.Qd.get("finalFrame")=="first")};m.prototype.NT=function(){this.Qd.o(h.Vr)};m.prototype.MT=function(){this.Qd.o(h.Ub)};m.prototype.OT=function(){this.Qd.set("state",this.Ic.getState())};m.prototype.Uv=function(){this.Qd.get("autoplay")&&this.Ic.Zc(this.Ld?n.PLAYING:n.ca)};m.prototype.Nca= function(){this.Qd.bind(h.L("state"),this.RH,this,!0);this.Qd.bind(h.L("autoplay"),this.PT,this,!0);this.Qd.bind(h.L("frameDuration"),this.RT,this,!0);this.Qd.bind(h.L("finalFrame"),this.QT,this,!0)};m.prototype.Lja=function(){this.Qd.h(h.L("state"),this.RH,this,!0);this.Qd.h(h.L("autoplay"),this.PT,this,!0);this.Qd.h(h.L("frameDuration"),this.RT,this,!0);this.Qd.h(h.L("finalFrame"),this.QT,this,!0)};m.prototype.Qca=function(){this.Ic.bind(h.Vr,this.NT,this,!0);this.Ic.bind(h.Ub,this.MT,this,!0); this.Ic.bind(h.Pd,this.OT,this,!0)};m.prototype.Qja=function(){this.Ic.h(h.Vr,this.NT,this,!0);this.Ic.h(h.Ub,this.MT,this,!0);this.Ic.h(h.Pd,this.OT,this,!0)};return m}); define("tdv/player/view/webgl/system/imageMaterial/TextureController",["require","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/view/images/ImageAnimation","tdv/player/view/webgl/system/imageMaterial/AnimationPlaybackController"],function(a){function m(e,b,c,d){this.se=e;this.Id=b;this.Ma=c;this.Na=d.bind(this);n.Oa("AnimatedImageResource",this.se)?(this.Ic=new g(this.Id,this.se.get("rowCount",1),this.se.get("colCount",1),this.se.get("frameDuration"),this.se.get("frameCount",this.se.get("rowCount", 1)*this.se.get("colCount",1)),this.se.get("repeat"),this.se.get("finalFrame")=="first"),this.Ma.image=this.Ic.If(),this.Ic.bind(h.V,this.DS,this,!0),this.eq=new k(this.se,this.Ic)):this.Ma.image=this.Id;this.Ma.needsUpdate=!0;this.Na()}var h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/view/images/ImageAnimation"),k=a("tdv/player/view/webgl/system/imageMaterial/AnimationPlaybackController");m.prototype.kg=function(e){this.eq&&this.eq.kg(e)};m.prototype.dispose=function(){this.eq&& (this.eq.clear(),this.eq=null);this.Ic&&(this.Ic.h(h.V,this.DS,this,!0),this.Ic.clear(),this.Ic=null);this.Ma=this.Id=this.se=null};m.prototype.DS=function(){this.Ma.needsUpdate=!0;this.Na()};return m});define("tdv/player/view/webgl/system/util/texture/Util",["require"],function(){var a={},m=null;a.dLa=function(){if(!m){var h=document.createElement("canvas");h.width=128;h.height=128;h.getContext("2d").clearRect(0,0,h.width,h.height);m=h}return m};return a}); define("tdv/view/util/Scale",["require","tdv/player/view/util/geo/Fov","tdv/view/constants/Alignment","tdv/view/constants/ScaleMode"],function(a){var m=a("tdv/player/view/util/geo/Fov"),h=a("tdv/view/constants/Alignment"),n=a("tdv/view/constants/ScaleMode"),g=180/Math.PI,k=Math.PI/180;return{J7:function(e,b,c,d,f,l,p){b||(b=e*d/c);f||(f=n.GB);var q={};switch(f){case n.GB:q.width=e;q.height=b;break;case n.NONE:q.width=c;q.height=d;break;case n.uj:q.width=Math.min(b*c/d,e);q.height=Math.min(e*d/c,b); break;case n.Kr:q.width=Math.max(b*c/d,e);q.height=Math.max(e*d/c,b);break;case n.Tp:q.width=e;q.height=e*d/c;break;case n.Pk:q.width=b*c/d,q.height=b}q.width>e?(q.nB=e/q.width,q.CZ=l==h.fb?0:l==h.Db?1-q.nB:(1-q.nB)*.5,q.width=e):(q.CZ=0,q.nB=1);q.height>b?(q.qB=b/q.height,q.NZ=p==h.Tc?1-q.qB:p==h.Hc?0:(1-q.qB)*.5,q.height=b):(q.NZ=0,q.qB=1);return q},Eoa:function(e,b,c,d,f,l,p,q){b||(b=m.wm(e,c,d));f||(f=n.GB);l||(l=4096/360);var r={};switch(f){case n.GB:r.Wd=e;r.Nk=b;break;case n.NONE:r.Wd=2*Math.atan2(c* .5,l*45)*g;r.Nk=m.wm(r.Wd,c,d);break;case n.uj:r.Wd=Math.min(m.Ar(b,c,d),e);r.Nk=Math.min(m.wm(e,c,d),b);break;case n.Kr:r.Wd=Math.max(m.Ar(b,c,d),e);r.Nk=Math.max(m.wm(e,c,d),b);break;case n.Tp:r.Wd=e;r.Nk=m.wm(e,c,d);break;case n.Pk:r.Wd=m.Ar(b,c,d),r.Nk=b}r.Wd>e?(r.nB=Math.tan(e*.5*k)*c/Math.tan(r.Wd*.5*k)/c,r.CZ=p==h.fb?0:p==h.Db?1-r.nB:(1-r.nB)*.5,r.Wd=e):(r.CZ=0,r.nB=1);r.Nk>b?(r.qB=Math.tan(b*.5*k)*d/Math.tan(r.Nk*.5*k)/d,r.NZ=q==h.Tc?1-r.qB:q==h.Hc?0:(1-r.qB)*.5,r.Nk=b):(r.NZ=0,r.qB=1);return r}}}); define("tdv/player/view/webgl/system/imageMaterial/Behaviour","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/events/Event tdv/player/parser/ClassInfo tdv/player/view/image/Item tdv/player/view/image/Repository tdv/player/view/webgl/system/imageMaterial/TextureController tdv/player/view/webgl/system/util/texture/Util tdv/player/view/webgl/components tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/util/Scale".split(" "),function(a){function m(w){this.B= w;this.vD=this.vD.bind(this);this.Na=this.Na.bind(this);this.Qj=this.Qj.bind(this);w=w.getComponent(l.Oi);this.Oh=w.Ap;this.Ee=w.M;this.se=this.A=null;this.X3a=w.isSprite;this.ih=!1;this.Jo=this.hb=null;this.wy=0;this.Jka=this.Bea=this.Of=this.$0=this.ha=void 0;this.uka(w.xw);this.Oj(w.properties)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Priority"),k=a("tdv/events/Event"),e=a("tdv/player/parser/ClassInfo"),b=a("tdv/player/view/image/Item"),c=a("tdv/player/view/image/Repository"), d=a("tdv/player/view/webgl/system/imageMaterial/TextureController"),f=a("tdv/player/view/webgl/system/util/texture/Util"),l=a("tdv/player/view/webgl/components"),p=a("tdv/view/util/Ease"),q=a("tdv/view/util/EaseDimension"),r=a("tdv/view/util/Scale"),t=["height","scaleMode","width"],u=["levels.url","levels.width","levels.height"],v="depthTest enabled encoding hidden side opacity easeDuration".split(" ");m.prototype.frame=function(w){var x=this.B.getComponent(l.Oi);this.uka(x.xw);this.Oj(x.properties); this.Jo&&(this.Jo.Nb(w),this.wy=this.Jo.ob("alpha"),this.Yla(),this.Jo.Ve()&&(this.Jo=null),this.B.T.Qa());this.oab();this.ih&&(this.ih=!1)};m.prototype.vD=function(){if(this.se&&this.A){var w=this.se&&this.se.get("levels")||[];w=w.filter(function(H){return!!H.get("url")});var x=1,y=1;e.Oa("AnimatedImageResource",this.se)&&(x=this.se.get("rowCount"),y=this.se.get("colCount"));var z=null;if(w.length>0){w.sort(function(H,E){return E.get("width")-H.get("width")});z=this.A.get("width");var A=this.A.get("height"), D=this.A.get("scaleMode","fill"),F=w[0].get("width")/y,C=w[0].get("height")/x,B=r.J7(z,A,F,C,D);z=w.reduce(function(H,E){return!H||H.get("width")>E.get("width")&&E.get("width")/y>=B.width&&E.get("height")/x>=B.height?E:H})}this.hV(z)}};m.prototype.hV=function(w){this.hb!=w&&(this.hb&&(this.a0a(),this.Gea(),this.R0(),this.ks(),this.ih=!1),this.hb=w)&&(this.es(),this.ly(),this.MR(),this.ih=!1,this.Na())};m.prototype.MR=function(){this.de||(this.de=new b,this.de.iQ([this.hb.get("url")]),this.de.bind(n.ia, this.Pe,this,!0),this.de.bind(n.xc,this.TBa,this,!0),this.de.bind(n.$c,this.yh,this,!0),this.zv=this.B.getComponent(l.Oi).priority||g.Jm,c.FA(this.de,this.zv))};m.prototype.ks=function(){this.de&&(this.de.h(n.ia,this.Pe,this,!0),this.de.h(n.xc,this.TBa,this,!0),this.de.h(n.$c,this.yh,this,!0),c.ho(this.de,this.zv),this.de=null)};m.prototype.Pe=function(){this.J_a();this.wla(new k(n.ia))};m.prototype.TBa=function(w){this.wla(new k(n.xc,{percent:w.percent}))};m.prototype.yh=function(){this.wla(new k(n.$c))}; m.prototype.wla=function(w){this.Oh&&this.Oh.o(w)};m.prototype.Na=function(){this.ih||(this.ih=!0,this.B.T.Qa())};m.prototype.es=function(){this.Ma=new THREE.Texture;this.Ma.image=f.dLa();this.Ma.generateMipmaps=!0;this.Ma.minFilter=THREE.LinearMipMapLinearFilter};m.prototype.R0=function(){this.Ma&&(this.Ma.dispose(),this.Ma=null)};m.prototype.ly=function(){this.X3a?(this.Aa=new THREE.SpriteMaterial({map:this.Ma}),this.Aa.sizeAttenuation=!0):this.Aa=new THREE.MeshBasicMaterial({map:this.Ma});this.Aa.transparent= !0;this.Aa.needsUpdate=!0;this.B.N(l.Material).material=this.Aa;this.Sva(0);this.B.O(l.gi,!0);this.B.O(l.Material,!0);this.Qj(!0)};m.prototype.Qj=function(w){var x=this.A.get("enabled")&&!this.A.get("hidden")&&!!this.Pq,y=this.ha!==x;if(y||w){this.ha=x;x=this.wy;var z=this.ha?1:0,A=this.A.get("hidden")?0:this.A.get("easeDuration",200);this.Jo=x!==z?new p("linear",[new q("alpha",x,z,void 0)],Math.abs(x-z)*A):null;this.Yla()}x=this.A.get("encoding");if(this.$0!==x||w)this.$0=x,this.fbb();x=this.A.get("depthTest"); if(this.Bea!==x||w)this.Bea=x,this.Fab();x=this.A.get("opacity");if(this.Of!==x||w)this.Of=x,this.Yla();x=this.A.get("side");if(this.Jka!==x||w)this.Jka=x,this.Gab();y&&this.Ee&&this.Ee.o(this.ha?n.od:n.jd)};m.prototype.oab=function(){if(this.Aa){var w=this.B.getComponent(l.Oi);w=(w=(w=w&&w.qJa)&&w.getComponent(l.EB))?w.planes:null;this.Aa.clippingPlanes!==w&&(this.Aa.clippingPlanes=w,this.Aa.needsUpdate=!0)}};m.prototype.fbb=function(){if(this.Aa&&(this.Aa.map||this.Aa.emissiveMap)){var w=this.$0== "srgb"?THREE.SRGBColorSpace:THREE.LinearSRGBColorSpace;this.Aa.map&&(this.Aa.map.colorSpace=w);this.Aa.emissiveMap&&(this.Aa.emissiveMap.colorSpace=w);this.Aa.needsUpdate=!0}this.B.O(l.gi,!0);this.Na()};m.prototype.Fab=function(){this.Aa&&(this.Aa.depthTest=this.Bea);this.B.O(l.gi,!0);this.Na()};m.prototype.Yla=function(){this.Aa&&this.Sva((this.Of||0)*this.wy);this.Pq&&this.Pq.kg(this.Of>0);this.Na()};m.prototype.Sva=function(w){this.Aa.opacity=w;this.Aa.visible=this.Aa.opacity>0;this.Aa.isShaderMaterial&& this.Aa.uniforms.opacity&&(this.Aa.uniforms.opacity.value=w);this.B.O(l.gi,!0)};m.prototype.Gab=function(){if(this.Aa)switch(this.Jka){case "back":this.Aa.side=THREE.BackSide;break;case "double":this.Aa.side=THREE.DoubleSide;break;default:this.Aa.side=THREE.FrontSide}this.B.O(l.gi,!0);this.Na()};m.prototype.Gea=function(){this.Aa&&(this.Aa.dispose(),this.Aa=null,this.B.ka(l.Material))};m.prototype.J_a=function(){this.Pq=new d(this.se,c.yg(this.hb.get("url")),this.Ma,this.Na);this.Qj(!0)};m.prototype.a0a= function(){this.Pq&&(this.Pq.dispose(),this.Pq=null)};m.prototype.uka=function(w){this.se!=w&&(this.se&&h.da(this.se,u,this.vD),(this.se=w)&&h.ba(this.se,u,this.vD,!1),this.vD())};m.prototype.Oj=function(w){if(this.A!=w){this.A&&(h.da(this.A,t,this.vD),h.da(this.A,v,this.Qj));if(this.A=w)h.ba(this.A,t,this.vD,!1),h.ba(this.A,v,this.Qj,!1);this.vD()}};m.prototype.dispose=function(){this.hV(null);this.uka(null);this.Oj(null);this.B=this.Oh=null};m.Wa=function(w){w.N(l.MB).manager=new m(w)};m.ya=function(w){var x= w.getComponent(l.MB);x.manager.dispose();x.manager=null;w.ka(l.MB)};m.frame=function(w,x){w.getComponent(l.MB).manager.frame(x)};return m}); define("tdv/player/view/webgl/system/imageMaterial/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/imageMaterial/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/imageMaterial/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(k,e){this.Pn.v.length&&this.Pn.v.slice().forEach(g.ya); this.On.v.length&&this.On.v.slice().forEach(g.Wa);this.materials.v.length&&this.materials.v.slice().forEach(function(b){g.frame(b,k,e)})};a.J={};a.J.On=[n.Oi,n.MB.aa];a.J.materials=[n.Oi,n.MB];a.J.Pn=[n.Oi.aa,n.MB];return a}); define("tdv/player/view/webgl/system/lineMaterial/Behaviour",["require","tdv/player/view/util/Color","tdv/player/view/webgl/components"],function(a){function m(g){this.B=g;this.Aa=null;this.update()}var h=a("tdv/player/view/util/Color"),n=a("tdv/player/view/webgl/components");m.prototype.update=function(){this.Aa||(this.Aa=new THREE.LineBasicMaterial,this.B.N(n.Material).material=this.Aa);var g=this.B.getComponent(n.ei);this.Aa.color=h.Ip(g.color||"#ffffff");this.Aa.lineWidth=g.width||1;this.Aa.opacity= g.opacity||0;this.Aa.transparent=g.transparent;this.Aa.depthTest=!!g.depthTest;this.Aa.visible=this.Aa.opacity>0;this.Aa.needsUpdate=!0};m.prototype.dispose=function(){this.Aa&&(this.Aa.dispose(),this.Aa=null,this.B.ka(n.Material));this.B=null};m.Wa=function(g){g.N(n.OB).manager=new m(g)};m.ya=function(g){var k=g.getComponent(n.OB);k.manager.dispose();k.manager=null;g.ka(n.OB)};m.update=function(g){g.getComponent(n.OB).manager.update()};return m}); define("tdv/player/view/webgl/system/lineMaterial/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/lineMaterial/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/lineMaterial/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.On.v.length&&this.On.v.slice().forEach(g.Wa); this.materials.Da.length&&this.materials.Da.slice().forEach(g.update);this.Pn.v.length&&this.Pn.v.slice().forEach(g.ya)};a.J={};a.J.On=[n.ei,n.OB.aa];a.J.materials=[n.ei,n.OB];a.J.Pn=[n.ei.aa,n.OB];return a}); define("tdv/player/view/webgl/system/line/System","require tdv/utils tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/material/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components");a("tdv/player/view/webgl/system/util/entity/Util");var g=a("tdv/player/view/webgl/system/util/material/Util");a=m.extend(h,function(){h.apply(this, arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this)});a.prototype.Yc=function(){this.ANa.v.length&&this.ANa.v.slice().forEach(this.xb);this.lines.Da.length&&this.lines.Da.slice().forEach(this.ib);this.BNa.v.length&&this.BNa.v.slice().forEach(this.Ca);this.CNa.v.length&&this.CNa.v.slice().forEach(this.Ca);this.DNa.v.length&&this.DNa.v.slice().forEach(this.Ca)};a.prototype.xb=function(k){k.N(n.Object3D).sa=new THREE.LineSegments;k.N(n.PB);k.N(n.ta);if(!k.getComponent(n.Geometry)){var e= (new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,1)]);e.userData.TMa=!0;k.N(n.Geometry).geometry=e}this.ib(k)};a.prototype.ib=function(k){var e=k.getComponent(n.Object3D).sa;g.ND(e,k.getComponent(n.Material).material);var b=k.getComponent(n.Geometry).geometry;e.geometry!=b&&(e.geometry&&b.userData.TMa&&e.geometry.dispose(),e.geometry=b,e.needsUpdate=!0);k=k.getComponent(n.Line).renderOrder||0;e.renderOrder!=k&&(e.renderOrder=k,e.needsUpdate=!0)};a.prototype.Ca= function(k){k.ka(n.PB);k.ka(n.Geometry);var e=k.getComponent(n.Object3D);e&&(e=e.sa,e.geometry&&e.geometry.userData.TMa&&e.geometry.dispose(),e.geometry=null,g.ND(e,null),k.ka(n.Object3D))};a.J={};a.J.ANa=[n.Line,n.Material,n.PB.aa];a.J.lines=[n.Line,n.Geometry,n.Material,n.PB];a.J.BNa=[n.Line.aa,n.PB];a.J.CNa=[n.Material.aa,n.PB];a.J.DNa=[n.Geometry.aa,n.PB];return a}); define("tdv/player/view/webgl/system/lineToTransform/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/entity/Util");a=m.extend(h,function(){h.apply(this,arguments);this.xb=this.xb.bind(this);this.Ca=this.Ca.bind(this);this.gg=this.gg.bind(this)});a.prototype.Yc= function(){this.wNa.v.length&&this.wNa.v.slice().forEach(this.xb);this.vNa.v.length&&this.vNa.v.slice().forEach(this.gg);this.xNa.v.length&&this.xNa.v.slice().forEach(this.Ca);this.yNa.v.length&&this.yNa.v.slice().forEach(this.Ca);this.zNa.v.length&&this.zNa.v.slice().forEach(this.Ca)};a.prototype.xb=function(l){l.N(n.QB)};a.prototype.Ca=function(l){l.ka(n.QB)};var k=new THREE.Matrix4,e=new THREE.Quaternion,b=new THREE.Vector3,c=new THREE.Vector3(0,0,1),d=new THREE.Euler,f=180/Math.PI;a.prototype.gg= function(l){var p=l.getComponent(n.ta);if(p){var q=g.Rc(l);if(q&&q.parent){var r=l.getComponent(n.zu),t=r.F;if(t){r=g.Rc(t);if(!r||!r.parent)return;b.setFromMatrixPosition(r.matrixWorld)}else if(r.position)b.copy(r.position);else return;k.copy(q.parent.matrixWorld).invert();b.applyMatrix4(k);b.x-=p.translationX;b.y-=p.translationY;b.z-=p.Ze;q=b.length();e.setFromUnitVectors(c,b.normalize());d.setFromQuaternion(e,p.mf);d.x*=f;d.y*=f;d.z*=f;if(p.scale!=q||p.Yd!=d.x||p.fd!=d.y||p.Xe!=d.z)p=l.O(n.ta), p.scale=q,p.Yd=d.x,p.fd=d.y,p.Xe=d.z,g.fZ(l,p),l.T.Qa()}}};a.J={};a.J.wNa=[n.Object3D,n.zu,n.QB.aa];a.J.vNa=[n.Object3D,n.zu,n.QB,n.ta];a.J.xNa=[n.Object3D.aa,n.QB];a.J.yNa=[n.zu.aa,n.QB];a.J.zNa=[n.ta.aa,n.QB];return a}); define("tdv/player/view/webgl/system/objectTransform/System","require tdv/utils tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/material/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/util/XR"),g=a("tdv/player/view/webgl/ecs/System"),k=a("tdv/player/view/webgl/components"),e=a("tdv/player/view/webgl/system/util/entity/Util"), b=a("tdv/player/view/webgl/system/util/material/Util");a=m.extend(g,function(){g.apply(this,arguments);this.xb=this.xb.bind(this);this.Ca=this.Ca.bind(this);this.ib=this.ib.bind(this)});a.prototype.Yc=function(){this.nOa.v.length&&this.nOa.v.slice().forEach(this.xb);this.Vpa.Da.length&&this.Vpa.Da.slice().forEach(this.ib);this.oOa.v.length&&this.oOa.v.slice().forEach(this.Ca);this.pOa.v.length&&this.pOa.v.slice().forEach(this.Ca)};a.prototype.xb=function(c){c.N(k.RB);this.Vpa.v.forEach(function(d){this.F3a(d, c)&&this.u4(e.Rc(d))}.bind(this));this.ib(c)};a.prototype.ib=function(c){var d=c.getComponent(k.gi);if(c=e.Rc(c))this.kYa(c,d),this.u4(c),this.ye(c,d)};a.prototype.Ca=function(c){c.ka(k.RB);var d=e.Rc(c);d&&(this.BZa(d),this.u4(d),c.ka(k.RB))};a.prototype.kYa=function(c,d){c.userData.dPa=d.opacity;c.userData.yW=d.yW;c.userData.castShadow=d.castShadow;c.userData.receiveShadow=d.receiveShadow;c.userData.FW=d.FW};a.prototype.BZa=function(c){c.userData.dPa=void 0;c.userData.yW=void 0;c.userData.castShadow= void 0;c.userData.receiveShadow=void 0;c.userData.FW=void 0};a.prototype.u4=function(c){if(n.Vh!=c&&!c.Aw){var d=this.vya(c),f=this.r1a(c),l=this.t1a(c),p=this.u1a(c),q=this.s1a(c);if(c.material){if(d===void 0&&q!==!0)b.IY(c);else{var r=c.userData.Pt||c.material,t=b.y8(r),u=b.y8(c.material),v=r.opacity;r=r.transparent;q!==!0&&u&&!t?b.IY(c):q!==!0||u||b.GJa(c);v!==void 0&&(t=v*(d===void 0?1:d),u=t>0,r=t<1?!0:r,c.material.opacity!==t||c.material.visible!==u||c.material.transparent!==r)&&(b.Yna(c),c.material.opacity= t,c.material.transparent=r,c.material.visible=u,c.material.needsUpdate=!0);b.tnb(c)}var w=this.h1a(f);(c.material.map==null?[]:Array.isArray(c.material.map)?c.material.map:[c.material.map]).forEach(function(x){x.anisotropy!==w&&(x.anisotropy=w,x.needsUpdate=!0)})}c.isMesh&&(l!==void 0&&c.castShadow!==l&&(c.castShadow=l),p!==void 0&&c.receiveShadow!==p&&(c.receiveShadow=p));c.children&&c.children.forEach(function(x){x.userData.ghb=d;x.userData.dhb=f;x.userData.fhb=l;x.userData.hhb=p;x.userData.ehb= q;this.u4(x)}.bind(this))}};a.prototype.h1a=function(c){return 1+Math.round((c||0)*(e.gLa().capabilities.getMaxAnisotropy()-1))};a.prototype.vya=function(c){var d=c.userData.dPa;c=c.userData.ghb;if(c!==void 0||d!==void 0)if(d=(c!==void 0?c:1)*(d!==void 0?d:1),d!==1)return d};a.prototype.r1a=function(c){var d=c.userData.yW;if(d!==void 0)return d;c=c.userData.dhb;if(c!==void 0)return c};a.prototype.t1a=function(c){var d=c.userData.castShadow;if(d!==void 0)return d;c=c.userData.fhb;if(c!==void 0)return c}; a.prototype.u1a=function(c){var d=c.userData.receiveShadow;if(d!==void 0)return d;c=c.userData.hhb;if(c!==void 0)return c};a.prototype.s1a=function(c){var d=c.userData.FW;if(d!==void 0)return d;c=c.userData.ehb;if(c!==void 0)return c};a.prototype.ye=function(c,d){var f=this.vya(c);f!==void 0&&(f=f>0,c.userData.sob!==f&&(c.userData.sob=f,d.M&&d.M.o(f?h.od:h.jd)))};a.prototype.F3a=function(c,d){c=e.Rc(c);d=e.Rc(d);if(!c||!d)return!1;for(d=d.parent;d;){if(d===c)return!0;d=d.parent}return!1};a.J={};a.J.nOa= [k.gi,k.Object3D,k.RB.aa];a.J.Vpa=[k.gi,k.Object3D,k.RB];a.J.oOa=[k.gi.aa,k.RB];a.J.pOa=[k.Object3D.aa,k.RB];return a}); define("tdv/player/view/webgl/system/materialVariant/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/material/Util"],function(a){function m(g){this.B=g;this.xma=this.Wm=this.He=null;this.iO=-1}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/webgl/system/util/material/Util");m.prototype.frame=function(){if(!this.Wm&&(this.Wm=this.B.getComponent(h.Pi).Koa)){var g=this.Wm.userData&&this.Wm.userData.gltfExtensions&&this.Wm.userData.gltfExtensions.KHR_materials_variants; this.xma=g&&g.variants||[];this.update()}};m.prototype.update=function(){if(this.xma){var g=this.B.getComponent(h.Bx).name,k=this.xma.findIndex(function(b){return b.name==g}),e=this.Wm.scene;this.He!=e?(this.He&&this.iEa(this.He),this.He=e,this.iO=k,this.He&&this.lFa(this.He,this.iO)):this.iO!=k&&(this.iO=k,this.He&&this.lFa(this.He,this.iO));this.B.T.Qa()}};m.prototype.iEa=function(g){this.Wva(g,-1)};m.prototype.lFa=function(g,k){this.p4a(g,k,function(){this.He==g&&this.iO==k&&this.Wva(g,k)}.bind(this))}; m.prototype.p4a=function(g,k,e){var b=[];g.traverse(function(c){var d=c.isMesh&&c.userData.gltfExtensions&&c.userData.gltfExtensions.KHR_materials_variants;if(d=d&&d.mappings){c.userData.Yib||(c.userData.Yib=n.Lfb(c));c.userData.lF||(c.userData.lF={});for(var f=null,l=d.length-1;l>=0&&!f;--l)d[l].variants.indexOf(k)!=-1&&(f=d[l]);f&&b.push(this.Wm.parser.getDependency("material",f.material).then(function(p){c.userData.lF[k]||(c.userData.lF[k]=p)}))}}.bind(this));Promise.all(b).then(function(){e(g, k)})};m.prototype.Wva=function(g,k){g.traverse(function(e){if(e.userData.lF){var b=e.userData.lF[k];b&&(n.ND(e,b),this.Wm.parser.assignFinalMaterial(e),this.B.O(h.gi,!0))}}.bind(this));this.B.T.Qa()};m.prototype.dispose=function(){this.He&&(this.iEa(this.He),this.B.O(h.gi,!0),this.He=null)};m.Wa=function(g){g.N(h.Rr).manager=new m(g)};m.ya=function(g){var k=g.getComponent(h.Rr);k.manager.dispose();k.manager=null;g.ka(h.Rr)};m.update=function(g){g.getComponent(h.Rr).manager.update()};m.frame=function(g){g.getComponent(h.Rr).manager.frame()}; return m}); define("tdv/player/view/webgl/system/materialVariant/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/materialVariant/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/materialVariant/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.HNa.v.length&&this.HNa.v.slice().forEach(g.Wa);this.Q8.v.length&& this.Q8.v.slice().forEach(g.frame);this.Q8.Da.length&&this.Q8.Da.slice().forEach(g.update);this.INa.v.length&&this.INa.v.slice().forEach(g.ya);this.JNa.v.length&&this.JNa.v.slice().forEach(g.ya);this.KNa.v.length&&this.KNa.v.slice().forEach(g.ya)};a.J={};a.J.HNa=[n.Bx,n.Pi,n.Object3D,n.Rr.aa];a.J.Q8=[n.Bx,n.Pi,n.Object3D,n.Rr];a.J.INa=[n.Bx.aa,n.Rr];a.J.JNa=[n.Object3D.aa,n.Rr];a.J.KNa=[n.Pi.aa,n.Rr];return a}); define("tdv/player/view/webgl/system/mesh/Behaviour",["require","tdv/player/view/webgl/components"],function(a){var m=a("tdv/player/view/webgl/components");return{Wa:function(h){var n=h.N(m.Bu);h.N(m.ta);var g=h.O(m.Mesh);h.N(m.Object3D).sa=n.Ke=g.Ke=new THREE.Mesh(h.getComponent(m.Geometry).geometry,h.getComponent(m.Material).material);g.Ke.renderOrder=g.renderOrder},update:function(h){var n=h.O(m.Bu);n.Ke.geometry=h.getComponent(m.Geometry).geometry;n.Ke.material=h.getComponent(m.Material).material; n.Ke.renderOrder=h.getComponent(m.Mesh).renderOrder},ya:function(h){h.getComponent(m.Bu).Ke=null;h.ka(m.Bu);h.ka(m.Object3D)}}}); define("tdv/player/view/webgl/system/mesh/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/mesh/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/mesh/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.NNa.v.length&&this.NNa.v.slice().forEach(g.Wa);this.MNa.Da.length&& this.MNa.Da.slice().forEach(g.update);this.V8.v.length&&this.V8.v.slice().forEach(g.ya);this.$hb.v.length&&this.V8.v.slice().forEach(g.ya);this.aib.v.length&&this.V8.v.slice().forEach(g.ya)};a.J={};a.J.NNa=[n.Mesh,n.Geometry,n.Material,n.Bu.aa];a.J.MNa=[n.Mesh,n.Geometry,n.Material,n.Bu];a.J.V8=[n.Mesh.aa,n.Bu];a.J.$hb=[n.Geometry.aa,n.Bu];a.J.aib=[n.Material.aa,n.Bu];return a}); define("tdv/player/view/util/FileLoader",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher","tdv/util/LoadQueue"],function(a,m,h,n,g){return function(k){function e(b,c){var d=k.call(this)||this;d.Dq=null;d.iwa=null;d.kC=!1;d.JM=null;d.Se=b;d.zv=c;d.rD=new Request(b);d.AV=d.AV.bind(d);d.zR=d.zR.bind(d);return d}P(e,k);e.prototype.start=function(){this.JM||(this.kC=!1,this.JM=g.add(this.Se,this.zv,this.AV,this.zR))};e.prototype.AV=function(){this.Se.indexOf("filesystem:")=== 0?this.H0a():this.I0a()};e.prototype.H0a=function(){var b=this,c=new XMLHttpRequest;c.open("GET",this.Se,!0);c.responseType="arraybuffer";c.onload=function(){b.WBa(c.response);c.onload=c.onerror=null};c.onerror=function(){b.SBa();c.onload=c.onerror=null};c.send()};e.prototype.I0a=function(){var b=this;fetch(this.rD).then(function(c){function d(t){t===void 0&&(t=null);if(t=t||r)t.close(),r=null,b.Dq=null}function f(t){var u;return(u=b.Dq.read().then(function(v){var w=v===null||v===void 0?void 0:v.value; w&&(q+=w.byteLength,t.enqueue(w));v&&v.done&&(p&&q0&&Date.now()0&&Date.now()=d* .98||!f.object.visible)return!1;f=Array.isArray(f.object.material)&&f.face?f.object.material[f.face.materialIndex]:f.object.material;return!f||f.visible}).length>0};m.prototype.mfb=function(b){n.ray.origin.copy(b);n.ray.direction.copy(k);b=this.hH();var c=h.intersect(n,b);if(c.length>0)return c[0].distance;n.ray.direction.copy(e);c=h.intersect(n,b);if(c.length>0)return-c[0].distance};m.prototype.hH=function(){var b=[];this.Fa.traverse(function(c){c.isSprite||c.isLine||b.push(c)});return b};return m}); define("tdv/player/view/webgl/system/model/MetadataQuery",["require","exports"],function(){return function(){function a(m){this.fE=m}a.prototype.getMetadata=function(){return this.fE.metadata};return a}()}); define("tdv/player/view/webgl/system/model/ObjectQuery",["require","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(n,g){this.Vb=n;this.R2a=g}var h=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.wLa=function(n){return(n=this.Rc(n))&&n.matrixWorld};m.prototype.Rc=function(n){return n?h.ZD(this.R2a,n):h.Rc(this.Vb)};return m}); define("tdv/player/view/webgl/system/model/ProjectionQuery",["require","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(c,d,f){this.Vb=c;this.H4a=d;this.g1a=f}var h=a("tdv/player/view/webgl/system/util/entity/Util"),n=new THREE.Vector3,g=new THREE.Vector3,k=new THREE.Vector3,e=new THREE.Frustum,b=new THREE.Matrix4;m.prototype.Joa=function(c,d){d=this.H4a.wLa(d);if(!d)return null;g.copy(c).applyMatrix4(d);var f=(c=h.Rc(this.Vb))&&h.rX(c);c=f&&h.uw(f);if(!c)return null;b.identity().multiplyMatrices(c.projectionMatrix, c.matrixWorldInverse);e.setFromProjectionMatrix(b);if(!e.containsPoint(g))return null;d=(f&&h.uX(f))/2;f=(f&&h.dE(f))/2;n.copy(g).project(c);d=n.x*d+d;f=-(n.y*f)+f;k.setFromMatrixPosition(c.matrixWorld);c=this.g1a.CK(k,g);return{x:Math.round(d),y:Math.round(f),visible:!c}};return m}); define("tdv/player/view/webgl/system/model/Loader","require tdv/constants/EventName tdv/player/script/Model3DResourceLevel tdv/player/view/webgl/system/model/loaders/GLTFLoader tdv/player/view/webgl/system/model/loaders/GSLoader tdv/player/view/webgl/system/model/loaders/TilesLoader tdv/player/view/webgl/system/model/loaders/TilesLoaderConfig tdv/player/view/webgl/system/model/GeometryQuery tdv/player/view/webgl/system/model/MetadataQuery tdv/player/view/webgl/system/model/ObjectQuery tdv/player/view/webgl/system/model/ProjectionQuery tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/components tdv/player/view/util/Device tdv/player/view/util/FileType tdv/player/view/util/URL".split(" "),function(a){function m(u, v,w,x){this.B=u;this.lq=v;u=this.B.getComponent(q.Pi);this.A=u.properties;this.Lj=x;this.sf=w;this.Ee=this.Lj.iw(1);this.sf.uO(this.Ee,1);this.La=this.Wm=null;w=this.O2a(u.Jpa);this.pd=this.w_a(w);this.rXa();this.pd.type===e.TYPE&&this.pd.qkb(b.Bdb(u.Jpa));this.pd.start(w)}var h=a("tdv/constants/EventName"),n=a("tdv/player/script/Model3DResourceLevel"),g=a("tdv/player/view/webgl/system/model/loaders/GLTFLoader"),k=a("tdv/player/view/webgl/system/model/loaders/GSLoader"),e=a("tdv/player/view/webgl/system/model/loaders/TilesLoader"), b=a("tdv/player/view/webgl/system/model/loaders/TilesLoaderConfig"),c=a("tdv/player/view/webgl/system/model/GeometryQuery"),d=a("tdv/player/view/webgl/system/model/MetadataQuery"),f=a("tdv/player/view/webgl/system/model/ObjectQuery"),l=a("tdv/player/view/webgl/system/model/ProjectionQuery"),p=a("tdv/player/view/webgl/system/util/entity/Util"),q=a("tdv/player/view/webgl/components"),r=a("tdv/player/view/util/Device"),t=a("tdv/player/view/util/FileType");a("tdv/player/view/util/URL");m.prototype.w_a= function(u){return t.is(u,t.xta)?new k(this.A):t.is(u,t.FWa)?new e:new g(this.B)};m.prototype.O2a=function(u){var v=u.get("levels");if(!w&&r.ub())var w=(w=v.find(function(x){return x.get("tags").indexOf(n.E_)>-1}))&&w.get("url");w||v.length&&(w=v[0].get("url"));w||(w=u.get("url"));return w};m.prototype.update=function(){};m.prototype.frame=function(){this.pd.type===e.TYPE?this.hbb():this.pd.type===g.TYPE?this.xab():this.pd.type===k.TYPE&&this.yab()};m.prototype.hbb=function(){var u=p.Sf(this.B),v= u&&p.uw(u);v&&(this.pd.setCamera(v),this.pd.setSize(p.uX(u),p.dE(u)),this.pd.update())};m.prototype.xab=function(){this.pd.update()};m.prototype.yab=function(){this.pd.update()};m.prototype.rXa=function(){this.pd.bind(h.INIT,this.EBa,this,!0);this.pd.bind(h.ia,this.Pe,this,!0);this.pd.bind(h.$c,this.yh,this,!0);this.pd.bind(h.xc,this.Gj,this,!0);this.pd.bind(h.V,this.XBa,this,!0)};m.prototype.c7a=function(){this.pd.h(h.INIT,this.EBa,this);this.pd.h(h.ia,this.Pe,this);this.pd.h(h.$c,this.yh,this); this.pd.h(h.xc,this.Gj,this);this.pd.h(h.V,this.XBa,this)};m.prototype.EBa=function(){this.La=this.pd.roa();this.lq.N(q.Object3D).sa=this.La;var u=this.pd.type==g.TYPE,v=this.pd.type==k.TYPE;this.YXa(this.La,u||v);v=this.B.O(q.Pi,!0);v.Koa=u?this.pd.Wm:null;this.B.O(q.Animation,!0).properties=v.properties};m.prototype.Pe=function(){this.A.set("geometryQuery",new c(this.La));this.A.set("objectQuery",new f(this.B,this.La));this.A.set("projectionQuery",new l(this.B,this.A.get("objectQuery"),this.A.get("geometryQuery"))); this.pd.type==k.TYPE&&this.A.set("metadataQuery",new d(this.pd.fE));this.P5();this.B.O(q.gi)};m.prototype.Gj=function(u){this.Ee.o(h.xc,u.data)};m.prototype.yh=function(){this.Ee.o(h.$c)};m.prototype.XBa=function(){this.B.O(q.Object3D,!0)};m.prototype.P5=function(){this.A.set("isLoaded",!0);this.Ee.o(h.ia)};m.prototype.YXa=function(u,v){u.userData.id===void 0&&(u.userData.id="root");if(v!==!1){u.userData.OO=new Map;for(var w=[u];w.length;){var x=w.shift();v=[];x.children&&(v=v.concat(x.children)); x.isSkinnedMesh&&(v=v.concat(x.skeleton.bones));v.forEach(function(y,z){y.userData.id===void 0&&(y.userData.id=x.userData.id+"/"+z);u.userData.OO.has(y.userData.id)||(u.userData.OO.set(y.userData.id,y),w.push(y))})}}};m.prototype.dispose=function(){this.La&&(this.pd.type!=k.TYPE&&this.La.traverse(function(u){function v(y){y&&w.indexOf(y)<0&&w.push(y)}var w=[];v(u.material);v(u.userData.Pt);if(u.userData.lF)for(var x in u.userData.lF)v(u.userData.lF[x]);w.forEach(function(y){y.dispose();Object.keys(y).forEach(function(z){(z= y[z])&&typeof z==="object"&&"minFilter"in z&&z.dispose()})});u.geometry&&u.geometry.userData.PIa&&u.geometry.disposeBoundsTree();u.geometry&&u.geometry.dispose()}),this.La=null,this.lq.ka(q.Object3D));this.pd&&(this.c7a(),this.pd.dispose(),this.pd=null);this.Ee&&(this.sf.$P(this.Ee),this.Lj.$P(this.Ee),this.sf=this.Ee=null);this.A&&(this.A.set("geometryQuery",null),this.A.set("objectQuery",null),this.A.set("isLoaded",!1),this.A=null)};return m}); define("tdv/player/view/webgl/system/model/object/draggable/DraggableSize3DControls","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){function m(r,t,u){this.Vb=r;this.B=t;this.R=u;this.Tl=this.Tl.bind(this);this.zh=this.zh.bind(this);this.hz=this.hz.bind(this);this.Re=null;this.ha=!1;this.v4=[1,1,1,1,1,1];this.yy=[];this.ah=[this.oO= this.ds(),this.nO=this.ds(),this.qO=this.ds(),this.pO=this.ds(),this.sO=this.ds(),this.rO=this.ds()];this.ah.forEach(function(v){v=v.O(e.xd);v.opacity=.5;v.depthTest=!1}.bind(this));h.ba(this.R,l,this.zh,!0);h.ba(this.R,p,this.Tl,!0);h.ba(this.R,q,this.hz,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/RenderOrder"),k=a("tdv/events/EventDispatcher"),e=a("tdv/player/view/webgl/components"),b=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.frame= function(){if(this.ha&&(this.Q8a(this.ah.map(function(B){return b.wJ(B)||1})),this.Re)){var r=b.Rc(this.B),t=b.Rc(this.qM(this.Re));if(r&&t){d.copy(r.matrixWorld).invert();c.setFromMatrixPosition(t.matrixWorld).applyMatrix4(d);r=this.R.get("x");t=this.R.get("y");var u=this.R.get("z"),v=this.R.get("width"),w=this.R.get("height"),x=this.R.get("depth"),y=0,z=0,A=0,D=0,F=0,C=0;switch(this.Re){case this.oO:D=c.x-v*.5;y=D*.5;break;case this.nO:D=-c.x-v*.5;y=-D*.5;break;case this.qO:F=c.y-w*.5;z=F*.5;break; case this.pO:F=-c.y-w*.5;z=-F*.5;break;case this.sO:C=c.z-x*.5;A=C*.5;break;case this.rO:C=-c.z-x*.5,A=-C*.5}this.R.set("x",r+y);this.R.set("width",v+D);this.R.set("y",t+z);this.R.set("height",w+F);this.R.set("z",u+A);this.R.set("depth",x+C)}}};var c=new THREE.Vector3,d=new THREE.Matrix4;m.prototype.ds=function(){var r=this.Vb.T.sc("DraggingSphere");this.yy.push(r);r.N(e.Mesh).renderOrder=g.AUa;r.N(e.Geometry).geometry=new THREE.SphereGeometry;r.N(e.xd);return r};m.prototype.zh=function(){this.oO.O(e.xd).color= this.R.get("draggableXControlsColor");this.nO.O(e.xd).color=this.R.get("draggableXControlsColor");this.qO.O(e.xd).color=this.R.get("draggableYControlsColor");this.pO.O(e.xd).color=this.R.get("draggableYControlsColor");this.sO.O(e.xd).color=this.R.get("draggableZControlsColor");this.rO.O(e.xd).color=this.R.get("draggableZControlsColor");var r=this.R.get("draggableSphereRadius");this.ah.forEach(function(t,u){t.O(e.ta,!0).scale=r*this.v4[u]}.bind(this))};m.prototype.Tl=function(){this.oO.O(e.ta,!0).positionX= this.R.get("width")/2;this.nO.O(e.ta,!0).positionX=-this.R.get("width")/2;this.qO.O(e.ta,!0).positionY=this.R.get("height")/2;this.pO.O(e.ta,!0).positionY=-this.R.get("height")/2;this.sO.O(e.ta,!0).positionZ=this.R.get("depth")/2;this.rO.O(e.ta,!0).positionZ=-this.R.get("depth")/2};m.prototype.hz=function(){var r=this.R.get("sizeDraggable");this.ha!=r&&(this.ha=r,this.ah.forEach(function(t){r?(t.N(e.pb).F=this.B,this.ah.forEach(function(u){u=u.N(e.wd);u.Yt=!0;u.nt=!0;u.M=new k;u.M.bind(n.uc,this.VM, this,!0);u.M.bind(n.Eb,this.kia,this,!0);u.M.bind(n.Sa,this.iia,this,!0);u.M.bind(n.$a,this.jia,this,!0)}.bind(this))):(t.ka(e.pb),this.ah.forEach(function(u){u.ka(e.wd)}.bind(this)))}.bind(this)))};m.prototype.Q8a=function(r){for(var t=!1,u=0;u0||y<1)?C>B?D=C/A:F=B/(1-y):this.Jja===this.Re&&(A<1||y<1)?H>B?D=H/(1-A):F=B/(1-y):this.Bha===this.Re&&(A>0||y>0)?C>E?D=C/A:F=E/y:this.eka===this.Re&&(A<1||y>0)&&(H>E?D=H/(1-A):F=E/y);F!==void 0&&D===void 0?D=F*this.Nva:D!==void 0&&F===void 0&&(F=D/this.Nva);D!==void 0&&F!==void 0&&(A=this.R.get("sizeAttenuation")? this.Av/this.K_:1,this.R.set("width",this.Pa=D*A),this.R.set("height",this.Ha=F*A))}D=this.Vu.getComponent(e.ta);c.copy(x.parent.matrixWorld).invert().multiply(z.matrixWorld).decompose(d,l,f);r.setFromQuaternion(l,D.mf);r.x*=t;r.y*=t;r.z*=t;if(D.Yd!=r.x||D.fd!=r.y||D.Xe!=r.z)D=this.Vu.O(e.ta),D.Yd=r.x,D.fd=r.y,D.Xe=r.z;x.parent.getWorldScale(d);this.I7a(1/Math.max(d.x,d.y,d.z));this.wka(b.wJ(this.Vu)||1)}}};m.prototype.kab=function(x,y){this.Hla!=null&&clearTimeout(this.Hla);this.Hla=setTimeout(function(){this.Hla= null;if(this.Pa!==x||this.Ha!==y)this.Pa=x,this.Ha=y,this.Nva=this.Pa/this.Ha}.bind(this),100)};m.prototype.ds=function(){var x=this.Vb.T.sc("DraggingSphere");x.N(e.Mesh).renderOrder=g.zUa;x.N(e.Geometry).geometry=new THREE.SphereGeometry;x.N(e.xd);return x};m.prototype.aea=function(){var x=this.Vb.T.sc("BoxBorder");x.N(e.Line);x.N(e.Geometry).geometry=this.H_a();var y=x.N(e.ei);y.color="#0000ff";y.depthTest=!1;y.width=1;return x};m.prototype.H_a=function(){var x=[new THREE.Vector3(-.5,-.5,0),new THREE.Vector3(.5, -.5,0),new THREE.Vector3(.5,-.5,0),new THREE.Vector3(.5,.5,0),new THREE.Vector3(.5,.5,0),new THREE.Vector3(-.5,.5,0),new THREE.Vector3(-.5,.5,0),new THREE.Vector3(-.5,-.5,0)];return(new THREE.BufferGeometry).setFromPoints(x)};m.prototype.zh=function(){var x=this.Su.O(e.ei);x.color=this.R.get("draggableLineColor");x.opacity=this.R.get("draggableLineOpacity");x.width=this.R.get("draggableLineWidth");this.ah.forEach(function(y){y.O(e.xd).color=this.R.get("draggableSphereColor");y.O(e.ta).scale=this.R.get("draggableSphereRadius")* this.Av}.bind(this))};m.prototype.wka=function(x){this.Av!=x&&(this.Av=x,this.UH(),this.zh())};m.prototype.I7a=function(x){this.K_!=x&&(this.K_=x,this.UH(),this.zh())};m.prototype.UH=function(){var x=this.R.get("anchorX"),y=this.R.get("anchorY"),z=this.R.get("width"),A=this.R.get("height"),D=this.R.get("sizeAttenuation")?this.K_:this.Av,F=this.Bha.O(e.ta,!0);F.positionX=-x*z*D;F.positionY=y*A*D;F=this.eka.O(e.ta,!0);F.positionX=(1-x)*z*D;F.positionY=y*A*D;F=this.uha.O(e.ta,!0);F.positionX=-x*z*D; F.positionY=(y-1)*A*D;F=this.Jja.O(e.ta,!0);F.positionX=(1-x)*z*D;F.positionY=(y-1)*A*D;F=this.Su.O(e.ta,!0);F.positionX=(.5-x)*z*D;F.positionY=(y-.5)*A*D;F.Le=z*D;F.Ye=A*D;this.kab(z,A)};m.prototype.hz=function(){var x=this.R.get("sizeDraggable");this.ha!=x&&((this.ha=x)?(this.Vu.N(e.pb).F=this.B,this.ah.forEach(function(y){y=y.N(e.wd);y.Yt=!0;y.nt=!0;y.M=new k;y.M.bind(n.uc,this.VM,this,!0);y.M.bind(n.Eb,this.kia,this,!0);y.M.bind(n.Sa,this.iia,this,!0);y.M.bind(n.$a,this.jia,this,!0)}.bind(this))): (this.Vu.ka(e.pb),this.ah.forEach(function(y){y.ka(e.wd)}.bind(this))))};m.prototype.VM=function(x){(x=this.Ey(x))&&x!=this.Re&&(x.O(e.xd).opacity=1)};m.prototype.kia=function(x){(x=this.Ey(x))&&x!=this.Re&&(x.O(e.xd).opacity=.5)};m.prototype.iia=function(x){x=this.Ey(x);this.lV(x)};m.prototype.jia=function(x){(x=this.Ey(x))&&x==this.Re&&(this.lV(null),this.UH(),(x=this.ah.indexOf(x)!=-1)&&this.R.o(n.Mm),x&&this.R.o(n.Aua))};m.prototype.Ey=function(x){x=this.ah.map(function(y){return y.getComponent(e.wd).M}).indexOf(x.source); if(x==-1)return null;x=this.ah[x];return this.Q3a(x)?x:null};m.prototype.Q3a=function(x){var y=this.R.get("anchorX"),z=this.R.get("anchorY");return this.uha===x&&(y>0||z>0)||this.Jja===x&&(y<1||z>0)||this.Bha===x&&(y>0||z<1)||this.eka===x&&(y<1||z<1)?!0:!1};m.prototype.lV=function(x){this.Re&&(this.Re.O(e.xd).opacity=.5,this.qM(this.Re).ka(e.ux));if(this.Re=x){this.Re.O(e.xd).opacity=1;var y=this.qM(this.Re).N(e.ux),z=b.getWorldPosition(this.B);x=b.getWorldPosition(x);x=(new THREE.Vector3).copy(x).sub(z); var A=Math.min(x.length(),this.Av*10);z=(new THREE.Vector3).copy(z).add(d.copy(x).setLength(A));y.direction=x;y.min=z}};m.prototype.qM=function(x){return this.ah.indexOf(x)!=-1?x:null};m.prototype.dispose=function(){h.da(this.R,v,this.UH);h.da(this.R,u,this.zh);h.da(this.R,w,this.hz);var x=this.Vb.T;this.yy.forEach(function(y){x.dd(y)});this.R=this.Vb=this.ah=this.B=this.yy=null};var u=["draggableLineColor","draggableLineOpacity","draggableLineWidth","draggableSphereColor","draggableSphereRadius"], v="anchorX anchorY height sizeAttenuation x y z width".split(" "),w=["sizeDraggable"];return m}); define("tdv/player/view/webgl/system/model/object/SpriteController","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/constants/RenderOrder tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/webgl/system/model/object/draggable/DraggableSize2DControls tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){function m(y,z,A,D,F){this.Vb=y;this.sf=A;this.Lj=D;this.R=F;this.Tl=this.Tl.bind(this);this.$T=this.$T.bind(this);this.zh= this.zh.bind(this);this.A3=this.A3.bind(this);this.iz=this.iz.bind(this);this.Oh=this.sf.iw(1);this.vwa=new THREE.Vector3;this.i0=new THREE.Euler;this.R.get("preload")&&this.Lj.uO(this.Oh);this.B=this.Vb.T.sc("SpriteContainer");this.B.N(b.Group);y=this.B.N(b.pb);y.F=this.Vb;y.id=this.R.get("parentId");this.WV=this.Vb.T.sc("TranslationSpriteContainer");this.WV.N(b.Group);this.WV.N(b.pb).F=this.B;this.Lv=this.Vb.T.sc("Sprite");this.Lv.N(b.pb).F=this.WV;y=this.Lv.N(b.Oi);y.properties=this.R;y.xw=this.R.get("image"); y.M=this.R;y.Ap=this.Oh;y.isSprite=!0;y.priority=this.R.get("preload")?g.TF:g.Mta;this.Lv.N(b.wd).M=this.R;this.Lv.N(b.AB);this.Lv.N(b.QQ).object=this.R;this.vha=!1;this.Av=1E-4;this.Vy=this.B.T.sc("TranslationLine");this.Vy.N(b.Line);this.Vy.N(b.ei);this.Tea=new c(this.Vb,this.WV,this.R);h.ba(this.R,x,this.iz,!0);h.ba(this.R,t,this.Tl,!0);h.ba(this.R,v,this.$T,!0);h.ba(this.R,w,this.zh,!0);h.ba(this.R,u,this.A3,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Priority"), k=a("tdv/constants/RenderOrder"),e=a("tdv/events/EventDispatcher"),b=a("tdv/player/view/webgl/components"),c=a("tdv/player/view/webgl/system/model/object/draggable/DraggableSize2DControls"),d=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.frame=function(){this.Tea.frame();this.wka(d.wJ(this.B)||1E-4)};m.prototype.Tl=function(){this.B.N(b.pb).id!=this.R.get("parentId")&&(this.B.O(b.pb).id=this.R.get("parentId"));var y=this.B.O(b.ta,!0);y.translationX=this.R.get("x");y.translationY= this.R.get("y");y.Ze=this.R.get("z")};m.prototype.wka=function(y){this.Av!=y&&(this.Av=y,this.R.set("worldPixelScale",d.$La(this.B)),this.$T())};m.prototype.$T=function(){var y=this.B.O(b.ta,!0),z=this.WV.O(b.ta,!0),A=this.Vy.O(b.ta,!0),D=this.R.get("translationLength");p.set(this.R.get("translationX"),this.R.get("translationY"),this.R.get("translationZ"));D=D!==void 0?D*this.Av:p.length();if(this.vwa.equals(p)){var F=this.i0.x;var C=this.i0.y;var B=this.i0.z}else f.setFromUnitVectors(q,p.normalize()), C=Math.atan2(p.x,p.z),F=-Math.atan2(p.y,Math.sqrt(p.x*p.x+p.z*p.z)),B=0;z.translationX=0;z.translationX=0;z.translationY=0;z.Ze=D;A.scale=D;y.Yd=F*r;y.fd=C*r;y.Xe=B*r;y.mf="YXZ";this.WGa()};var f=new THREE.Quaternion,l=new THREE.Euler,p=new THREE.Vector3,q=new THREE.Vector3(0,0,1),r=180/Math.PI;m.prototype.zh=function(){var y=this.Lv.O(b.wd,!0);y.pB=this.R.get("useHandCursor");y.hF=this.R.get("transparentAreaActive");y.nt=this.R.get("clickEnabled");y.Yt=this.R.get("rollOverEnabled");y=this.Vy.O(b.ei); y.color=this.R.get("translationLineColor");y.depthTest=this.R.get("depthTest");y.opacity=this.R.get("hidden")?0:this.R.get("translationLineOpacity");y.transparent=!1;y.width=this.R.get("translationLineWidth");this.WGa();y=this.Vy.O(b.Line,!0);var z=this.Lv.O(b.Sprite,!0);y.renderOrder=z.renderOrder=this.R.get("depthTest")?k.aWa:k.bWa};m.prototype.A3=function(){var y=this.Lv.O(b.Sprite,!0);y.wO=this.R.get("anchorX");y.xO=this.R.get("anchorY");y.width=this.R.get("width");y.height=this.R.get("height"); y.scale=this.R.get("scale");y.sizeAttenuation=this.R.get("sizeAttenuation")};m.prototype.iz=function(){if(this.R.get("positionDraggable")||this.R.get("translationDraggable")){var y=this.B.O(b.Hh,!0);y.M||(y.M=new e,y.M.bind(n.V,this.Am,this,!0));y.translate=this.R.get("positionDraggable")||!1;y.rotate=this.R.get("translationDraggable")||!1;y.scale=!1}else(y=this.B.getComponent(b.Hh))&&y.M.h(n.V,this.Am,this),this.B.ka(b.Hh)};m.prototype.Am=function(y){var z=p.set(this.R.get("translationX"),this.R.get("translationY"), this.R.get("translationZ")).length();l.setFromQuaternion(y.data.quaternion,this.B.getComponent(b.ta).mf);p.copy(q).setLength(z).applyQuaternion(y.data.quaternion);this.vwa.copy(p);this.i0.copy(l);this.R.set({x:y.data.position.x,y:y.data.position.y,z:y.data.position.z,translationX:p.x,translationY:p.y,translationZ:p.z});this.R.o(n.Mm)};m.prototype.WGa=function(){var y=this.R.get("translationLineVisible")&&this.R.get("translationLineOpacity")>0&&(this.R.get("translationX")!=0||this.R.get("translationY")!= 0||this.R.get("translationZ")!=0);this.vha!=y&&((this.vha=y)?this.Vy.N(b.pb).F=this.B:this.Vy.ka(b.pb))};m.prototype.dispose=function(){this.Tea.dispose();this.Tea=null;h.da(this.R,x,this.iz);h.da(this.R,t,this.Tl);h.da(this.R,v,this.$T);h.da(this.R,w,this.zh);h.da(this.R,u,this.A3);this.sf.$P(this.Oh);this.Lj.$P(this.Oh);this.Oh=this.Lj=this.sf=null;var y=this.Vb.T;this.Vb=null;y.dd(this.Lv);this.Lv=null;y.dd(this.Vy);this.Vy=null;y.dd(this.B);this.R=this.B=null};var t=["parentId","x","y","z"],u= "anchorX anchorY width height scale sizeAttenuation".split(" "),v=["translationX","translationY","translationZ","translationLength"],w="clickEnabled depthTest hidden rollOverEnabled transparentAreaActive translationLineColor translationLineOpacity translationLineVisible translationLineWidth useHandCursor".split(" "),x=["positionDraggable","translationDraggable"];return m}); define("tdv/player/view/webgl/system/model/object/ControllerFactory",["require","tdv/player/parser/ClassInfo","tdv/player/view/webgl/system/model/object/BoxController","tdv/player/view/webgl/system/model/object/SpriteController"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/view/webgl/system/model/object/BoxController"),n=a("tdv/player/view/webgl/system/model/object/SpriteController");return{create:function(g,k,e,b,c){return m.Oa("SpriteModel3DObject",c)?new n(g,k,e,b,c):m.Oa("BoxModel3DObject", c)?new h(g,k,c):null}}}); define("tdv/player/view/webgl/system/model/Objects",["require","tdv/binding/BindingsHandler","tdv/player/view/util/LoadingGroup","tdv/player/view/webgl/components","tdv/player/view/webgl/system/model/object/ControllerFactory"],function(a){function m(e,b,c,d){this.B=e;this.lq=b;this.sf=c;this.Lj=d;this.VAa=new n(this.Lj.iw(.1));this.UAa=new n(this.sf.iw(.1));this.VH=this.VH.bind(this);this.aA=e.T;this.A=this.B.getComponent(g.Pi).properties;this.La=(e=this.B.getComponent(g.Object3D))&&e.sa;this.fl= [];this.d3=new Map;h.ba(this.A,["objects.enabled"],this.VH,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/util/LoadingGroup"),g=a("tdv/player/view/webgl/components"),k=a("tdv/player/view/webgl/system/model/object/ControllerFactory");m.prototype.update=function(){var e=this.B.getComponent(g.Object3D);e=e&&e.sa;if(this.La!==e){var b=this.La;this.La=e;this.d6(!!b)}};m.prototype.frame=function(){this.d3.forEach(function(e){e&&e.frame&&e.frame()})};m.prototype.dispose=function(){this.La= null;h.da(this.A,["objects.enabled"],this.VH);this.ZEa([])};m.prototype.VH=function(){this.d6()};m.prototype.d6=function(e){var b=this.A.get("objects").filter(function(c){return c.get("enabled")});this.ZEa(b,e);this.VAa.update();this.UAa.update()};m.prototype.ZEa=function(e,b){if(this.fl!=e||b)this.fl.forEach(function(c){(b||e.indexOf(c)<0)&&this.f7a(c)}.bind(this)),e.forEach(function(c){(b||this.fl.indexOf(c)<0)&&this.tXa(c)}.bind(this)),this.fl=e};m.prototype.tXa=function(e){this.d3.set(e,k.create(this.B, this.lq,this.UAa,this.VAa,e))};m.prototype.f7a=function(e){var b=this.d3.get(e);b&&b.dispose();this.d3["delete"](e)};return m}); define("tdv/player/view/webgl/system/model/Properties",["require","tdv/constants/EventName","tdv/player/view/webgl/components"],function(a){function m(e,b){this.B=e;this.lq=b;this.pi=this.La=this.A=null;this.Oj(this.B.getComponent(n.Pi).properties);this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/webgl/components");m.prototype.frame=function(){this.update()};m.prototype.update=function(){var e=this.lq.getComponent(n.Object3D);e=e&&e.sa;this.La!=e&&(this.La=e,this.qG())};m.prototype.Oj= function(e){this.A&&g.forEach(function(b){this.A.h(h.L(b),this.qG,this,!1)}.bind(this));if(this.A=e)g.forEach(function(b){this.A.bind(h.L(b),this.qG,this,!1)}.bind(this)),this.qG()};m.prototype.qG=function(){this.YEa(this.A.get("model"));this.La&&this.B.T.Qa()};m.prototype.YEa=function(e){this.pi!=e&&(this.pi&&k.forEach(function(b){this.pi.h(h.L(b),this.ida,this,!1)}.bind(this)),this.pi=e)&&(k.forEach(function(b){this.pi.bind(h.L(b),this.ida,this,!1)}.bind(this)),this.ida())};m.prototype.ida=function(){var e= this.lq.O(n.ta,!0);e.positionX=this.pi.get("positionX");e.positionY=this.pi.get("positionY");e.positionZ=this.pi.get("positionZ");e.mf=this.pi.get("rotationOrder");e.Yd=this.pi.get("rotationX");e.fd=this.pi.get("rotationY");e.Xe=this.pi.get("rotationZ");e.scale=this.pi.get("scale");e.Le=this.pi.get("invertX")?-1:1;e.Ye=this.pi.get("invertY")?-1:1;e.Gh=this.pi.get("invertZ")?-1:1;e.translationX=this.pi.get("translationX");e.translationY=this.pi.get("translationY");e.Ze=this.pi.get("translationZ")}; m.prototype.dispose=function(){this.La=null;this.YEa(null);this.Oj(null)};var g=["model"],k="invertX invertY invertZ positionX positionY positionZ rotationOrder rotationX rotationY rotationZ scale translationX translationY translationZ".split(" ");return m}); define("tdv/player/view/webgl/system/model/Behaviour","require tdv/constants/EventName tdv/events/Event tdv/player/view/util/LoadingGroup tdv/player/view/webgl/components tdv/player/view/webgl/system/model/Loader tdv/player/view/webgl/system/model/Objects tdv/player/view/webgl/system/model/Properties".split(" "),function(a){function m(d){this.B=d;this.B.N(k.Group);d=this.B.getComponent(k.Pi);this.lq=d.hJ;this.Lj=new g(d.TPa);this.sf=new g(d.Ap);this.Ee=d.M;this.pd=new e(this.B,this.lq,this.sf,this.Lj); this.fl=new b(this.B,this.lq,this.sf,this.Lj);this.A=new c(this.B,this.lq)}var h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/view/util/LoadingGroup"),k=a("tdv/player/view/webgl/components"),e=a("tdv/player/view/webgl/system/model/Loader"),b=a("tdv/player/view/webgl/system/model/Objects"),c=a("tdv/player/view/webgl/system/model/Properties");m.prototype.update=function(){this.pd.update();this.fl.update();this.A.update()};m.prototype.frame=function(){this.pd.frame();this.fl.frame(); this.A.frame();this.Ee.o(new n(h.Zd))};m.prototype.dispose=function(){this.pd&&(this.pd.dispose(),this.pd=null);this.fl&&(this.fl.dispose(),this.fl=null);this.A&&(this.A.dispose(),this.A=null);this.sf&&(this.sf.dispose(),this.sf=null);this.Ee=this.lq=null};m.Wa=function(d){d.N(k.Cx).manager=new m(d)};m.ya=function(d){var f=d.getComponent(k.Cx);f.manager.dispose();f.manager=null;d.ka(k.Cx)};m.update=function(d){d.getComponent(k.Cx).manager.update()};m.frame=function(d){d.getComponent(k.Cx).manager.frame()}; return m}); define("tdv/player/view/webgl/system/model/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/model/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/model/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.SNa.v.length&&this.SNa.v.slice().forEach(g.Wa);this.W8.Da.length&&this.W8.Da.slice().forEach(g.update); this.W8.v.length&&this.W8.v.slice().forEach(g.frame);this.TNa.v.length&&this.TNa.v.slice().forEach(g.ya)};a.J={};a.J.SNa=[n.Pi,n.Cx.aa];a.J.W8=[n.Pi,n.Cx];a.J.TNa=[n.Pi.aa,n.Cx];return a}); define("tdv/player/view/webgl/system/objectId/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(g){this.B=g;this.He=null}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.frame=function(){if(!this.He){var g=this.B.getComponent(h.hL),k=n.Rc(g.container);if(this.He=k&&g.id&&n.ZD(k,g.id)||null)this.B.N(h.Object3D).sa=this.He,this.B.T.Qa()}};m.prototype.update=function(){this.He&& (this.B.ka(h.Object3D),this.He=null)};m.prototype.dispose=function(){this.He&&(this.B.ka(h.Object3D),this.He=null)};m.Wa=function(g){g.N(h.Dx).manager=new m(g)};m.ya=function(g){var k=g.getComponent(h.Dx);k.manager.dispose();k.manager=null;g.ka(h.Dx)};m.frame=function(g){g.getComponent(h.Dx).manager.frame()};m.update=function(g){g.getComponent(h.Dx).manager.update()};return m}); define("tdv/player/view/webgl/system/objectId/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/objectId/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/objectId/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.lOa.v.length&&this.lOa.v.slice().forEach(g.Wa);this.c9.Da.length&& this.c9.Da.slice().forEach(g.update);this.c9.v.length&&this.c9.v.slice().forEach(g.frame);this.mOa.v.length&&this.mOa.v.slice().forEach(g.ya)};a.J={};a.J.lOa=[n.hL,n.Dx.aa];a.J.c9=[n.hL,n.Dx];a.J.mOa=[n.hL.aa,n.Dx];return a}); define("tdv/player/view/webgl/system/plane/System","require exports three.mod tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/material/Util".split(" "),function(a,m,h,n,g,k){a=function(e){function b(){var c=e.call(this)||this;c.xb=c.xb.bind(c);c.ib=c.ib.bind(c);c.Ca=c.Ca.bind(c);return c}P(b,e);b.prototype.Yc=function(){this.GE.v.length&&this.GE.v.slice().forEach(this.xb);this.planes.Da.length&&this.planes.Da.slice().forEach(this.ib);this.GPa.v.length&& this.GPa.v.slice().forEach(this.Ca);this.HPa.v.length&&this.HPa.v.slice().forEach(this.Ca)};b.prototype.xb=function(c){var d=new h.PlaneGeometry;c.N(g.UB).geometry=d;c.N(g.Object3D).sa=new h.Mesh(d);this.ib(c)};b.prototype.ib=function(c){var d=c.N(g.Object3D).sa,f=c.getComponent(g.Material).material;f&&k.ND(d,f);d.renderOrder=c.getComponent(g.Plane).renderOrder};b.prototype.Ca=function(c){var d=c.getComponent(g.UB);d.geometry.dispose();d.geometry=null;c.ka(g.UB);c.ka(g.Object3D)};b.J={};return b}(n); a.J={};a.J.GE=[g.Material,g.Plane,g.UB.aa];a.J.planes=[g.Plane,g.Material,g.UB];a.J.GPa=[g.Plane.aa,g.UB];a.J.HPa=[g.Material.aa,g.UB];return a}); define("tdv/player/view/webgl/system/parent/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){var m=a("tdv/player/view/webgl/components"),h=a("tdv/player/view/webgl/system/util/entity/Util");return{Wa:function(n){var g=n.getComponent(m.pb),k=h.Rc(g.F);if(k){var e=n.N(m.Eu);e.parent=k;g.id&&(k=k&&h.ZD(k,g.id));e.id=g.id;e.ge=h.Rc(n);e.attach=g.attach;k&&e.ge&&(e.attach?k.attach(e.ge):k.add(e.ge))}},update:function(n){var g=n.getComponent(m.pb), k=n.getComponent(m.Eu),e=h.Rc(g.F),b=h.Rc(n);if(k.parent!=e||k.ge!=b||g.id!=k.id||g.attach!=k.attach||b&&e&&!b.parent)k=n.O(m.Eu),k.ge&&k.ge.parent&&(g.F.O(m.Object3D),k.ge.parent.remove(k.ge)),k.parent=e,g.id&&(e=e&&h.ZD(e,g.id)),k.id=g.id,k.ge=b,k.attach=g.attach,e&&k.ge&&(k.attach?e.attach(k.ge):e.add(k.ge),(g=n.getComponent(m.ta))&&h.fZ(n,g))},ya:function(n){var g=n.getComponent(m.Eu);g.ge&&g.ge.parent&&g.ge.parent.remove(g.ge);g.parent=null;g.ge=null;g.id=void 0;n.ka(m.Eu)}}}); define("tdv/player/view/webgl/system/parent/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/parent/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/parent/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.gY.v.length&&this.gY.v.slice().forEach(g.Wa);this.Lt.v.length&& this.Lt.v.slice().forEach(g.update);this.Lt.Da.length&&this.Lt.Da.slice().forEach(g.update);this.Lt.fe.length&&this.Lt.fe.slice().forEach(g.update);this.fJa.v.length&&this.fJa.v.slice().forEach(g.ya);this.gJa.v.length&&this.gJa.v.slice().forEach(g.ya)};a.J={};a.J.gY=[n.Object3D,n.pb,n.Eu.aa];a.J.Lt=[n.Object3D,n.pb,n.Eu];a.J.fJa=[n.Object3D.aa,n.pb,n.Eu];a.J.gJa=[n.pb.aa,n.Eu];return a}); define("tdv/player/view/webgl/system/pixelScaleTransform/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/entity/Util");a=m.extend(h,function(){h.apply(this,arguments);this.xb=this.xb.bind(this);this.Ca=this.Ca.bind(this);this.gg=this.gg.bind(this)}); a.prototype.Yc=function(){this.DPa.v.length&&this.DPa.v.slice().forEach(this.xb);this.CPa.v.length&&this.CPa.v.slice().forEach(this.gg);this.EPa.v.length&&this.EPa.v.slice().forEach(this.Ca);this.FPa.v.length&&this.FPa.v.slice().forEach(this.Ca)};a.prototype.xb=function(b){b.N(n.ZF)};a.prototype.Ca=function(b){b.ka(n.ZF)};var k=new THREE.Matrix4,e=new THREE.Vector3;a.prototype.gg=function(b){var c=b.getComponent(n.Tk),d=b.getComponent(n.ta);if(d){var f=b.getComponent(n.Object3D).sa;if(f&&f.parent){var l= b.getComponent(n.Gg),p=1E-7;l&&(p=g.wJ(b)||p);k.copy(f.parent.matrixWorld).invert();e.setFromMatrixScale(k);f=Math.max(e.x,e.y,e.z);l&&l.bA&&(p/=f,f=1);l=c.scale*f;c.nE!==void 0&&(l=Math.min(c.nE*p,l));c.oE!==void 0&&(l=Math.max(c.oE*p,l));if(d.scale!=l||d.Le!=c.Le||d.Ye!=c.Ye||d.Gh!=c.Gh)d=b.O(n.ta),d.scale=l,d.Le=c.Le,d.Ye=c.Ye,d.Gh=c.Gh}}};a.J={};a.J.DPa=[n.Object3D,n.Tk,n.ZF.aa];a.J.CPa=[n.Object3D,n.Tk,n.ZF];a.J.EPa=[n.Object3D.aa,n.ZF];a.J.FPa=[n.Tk.aa,n.ZF];return a}); define("tdv/player/view/webgl/system/pointerOverTransform/Behaviour",["require","tdv/constants/EventName","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(u){this.B=u;this.BT=new THREE.Vector3;this.Wb=new THREE.Vector3;this.Jga=this.Cd=this.qla=!1;this.oN=null;this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.update=function(){this.Oia=this.B.getComponent(n.El).F}; m.prototype.frame=function(){this.dHa();this.$z()};m.prototype.dHa=function(){var u=(t.get(this.B.T)||[]).map(function(v){return v.getComponent(n.yc)}).filter(function(v){return v&&v.M}).reduce(function(v,w){return!v||!v.Ug&&w.Ug?w:v},null);u=u&&u.M;this.oN!==u&&(this.oN&&this.j7a(this.oN),(this.oN=u)&&this.yXa(this.oN))};m.prototype.yXa=function(u){u.bind(h.gb,this.tg,this,!0);u.bind(h.Eb,this.Fs,this,!0)};m.prototype.j7a=function(u){u.h(h.gb,this.tg,this);u.h(h.Eb,this.Fs,this)};m.prototype.tg= function(u){if(this.Oia&&g.ZD(g.Rc(this.Oia),u.data.objectId)&&["mesh","gs"].includes(u.data.type)){var v=this.Cd;this.Cd=!0;var w=g.Rc(this.B);if((w=w&&w.parent)&&w.matrixWorld){var x=this.B.getComponent(n.El);x&&(e.setFromMatrixPosition(w.matrixWorld),b.copy(w.matrixWorld).invert(),c.fromArray(u.data.objectMatrixWorld),k.setFromMatrixPosition(c),d.copy(c).invert(),x.rotate?u.data.normal?this.BT.copy(u.data.normal).applyMatrix4(c).sub(k).add(e):this.BT.copy(u.data.cameraPosition):this.BT.copy(p), this.BT.applyMatrix4(b).normalize(),this.Wb.copy(u.data.position).applyMatrix4(b),this.qla=!0,this.B.T.Qa(),v||(u=(x=this.B.getComponent(n.El))&&x.M)&&u.o(h.uc))}}else this.Fs()};var k=new THREE.Vector3,e=new THREE.Vector3,b=new THREE.Matrix4,c=new THREE.Matrix4,d=new THREE.Matrix4;m.prototype.Fs=function(){if(this.Cd){this.Cd=!1;this.B.T.Qa();var u=this.B.getComponent(n.El);(u=u&&u.M)&&u.o(h.Eb)}};m.prototype.$z=function(){if(this.qla||this.Cd){this.qla=!1;var u=this.B.O(n.ta,!0);u.positionX=0;u.positionY= 0;u.positionZ=0;f.setFromUnitVectors(l,this.BT);q.setFromQuaternion(f,u.mf);u.Yd=q.x*r;u.fd=q.y*r;u.Xe=q.z*r;u.translationX=this.Wb.x;u.translationY=this.Wb.y;u.Ze=this.Wb.z;u.easing=this.Jga?.4:0;this.Jga||(g.fZ(this.B,u),this.Jga=!0)}};var f=new THREE.Quaternion,l=new THREE.Vector3(0,0,1),p=new THREE.Vector3(0,1,0),q=new THREE.Euler,r=180/Math.PI;m.prototype.dispose=function(){this.Oia=null;this.dHa()};m.tK=function(u,v){t.set(u,v)};var t=new Map;m.Wa=function(u){u.N(n.Fu).manager=new m(u)};m.ya= function(u){var v=u.getComponent(n.Fu);v.manager.dispose();v.manager=null;u.ka(n.Fu)};m.frame=function(u){u.getComponent(n.Fu).manager.frame()};m.update=function(u){u.getComponent(n.Fu).manager.update()};return m}); define("tdv/player/view/webgl/system/pointerOverTransform/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/pointerOverTransform/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/pointerOverTransform/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){g.tK(this.T,this.Wj.v.slice()); this.KPa.v.length&&this.KPa.v.slice().forEach(g.Wa);this.R9.Da.length&&this.R9.v.slice().forEach(g.update);this.R9.v.length&&this.R9.v.slice().forEach(g.frame);this.LPa.v.length&&this.LPa.v.slice().forEach(g.ya);this.MPa.v.length&&this.MPa.v.slice().forEach(g.ya)};a.J={};a.J.Wj=[n.yc];a.J.KPa=[n.Object3D,n.El,n.Fu.aa];a.J.R9=[n.Object3D,n.El,n.Fu];a.J.LPa=[n.Object3D.aa,n.Fu];a.J.MPa=[n.El.aa,n.Fu];return a}); define("tdv/player/view/webgl/system/util/material/ProjectedMaterial",["require"],function(){var a={Rp:function(){this.lmb=this.bSa=this.kmb=this.T$=this.S$=this.R$=0;this.Tra=!1;this.sZ=new THREE.CubeTexture;this.Imb=this.ySa=this.Hmb=this.daa=this.targetY=this.targetX=this.Q$=0;this.asa=!1;this.AZ=new THREE.CubeTexture;this.caa=0;this.mf="XYZ"},Ppb:function(){return new a.Rp},create:function(n){var g=new THREE.ShaderMaterial;g.uniforms={sCube:{value:n.sZ},sPos:{value:new THREE.Vector3},sRot:{value:new THREE.Matrix4}, sEnabled:{value:!1},sCoef:{value:0},tCube:{value:n.AZ},tPos:{value:new THREE.Vector3},tRot:{value:new THREE.Matrix4},tEnabled:{value:!1},tCoef:{value:0}};g.fragmentShader="uniform samplerCube sCube;\nuniform vec3 sPos;\nuniform mat4 sRot;\nuniform bool sEnabled;\nuniform float sCoef;\nuniform samplerCube tCube;\nuniform vec3 tPos;\nuniform mat4 tRot;\nuniform bool tEnabled;\nuniform float tCoef;\nvarying vec3 vWorldPosition;\nvoid main() {\n vec4 sFragColor;\n vec4 tFragColor;\n if (sEnabled) \n {\n vec4 sCubePosition4 = sRot * vec4((vWorldPosition - sPos), 1);\n vec3 sCubePosition = sCubePosition4.xyz / sCubePosition4.w;\n sFragColor = textureCube(sCube, sCubePosition);\n }\n if (tEnabled)\n {\n vec4 tCubePosition4 = tRot * vec4((vWorldPosition - tPos), 1);\n vec3 tCubePosition = tCubePosition4.xyz / tCubePosition4.w;\n tFragColor = textureCube(tCube, tCubePosition);\n }\n if (sEnabled && tEnabled)\n {\n float alpha = 1.0 - ((1.0 - tCoef) * (1.0 - sCoef));\n vec4 mixedColor = mix(sFragColor, tFragColor, tCoef);\n gl_FragColor = vec4(mixedColor.rgb, mixedColor.a * alpha);\n }\n else if (sEnabled)\n {\n gl_FragColor = vec4(sFragColor.rgb, sFragColor.a * sCoef);\n }\n else if (tEnabled)\n {\n gl_FragColor = vec4(tFragColor.rgb, tFragColor.a * tCoef);\n }\n else\n {\n gl_FragColor = vec4(0, 0, 0, 0);\n }\n#include \n#include \n}"; g.vertexShader="varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";g.side=THREE.DoubleSide;g.depthWrite=!0;g.transparent=!0;g.needsUpdate=!0;this.update(g,n);return g},update:function(n,g){n.uniforms.sCube.value=g.sZ;n.uniforms.sPos.value.set(g.R$,g.S$,g.T$);n.uniforms.sRot.value.makeRotationFromEuler(m.set(g.kmb*h,g.bSa*h,g.lmb*h,g.mf));n.uniforms.sEnabled.value= g.Tra&&g.Q$>0;n.uniforms.sCoef.value=g.Q$;n.uniforms.tCube.value=g.AZ;n.uniforms.tPos.value.set(g.targetX,g.targetY,g.daa);n.uniforms.tRot.value.makeRotationFromEuler(m.set(g.Hmb*h,g.ySa*h,g.Imb*h,g.mf));n.uniforms.tEnabled.value=g.asa&&g.caa>0;n.uniforms.tCoef.value=g.caa;n.needsUpdate=!0;return n}},m=new THREE.Euler,h=Math.PI/180;return a}); define("tdv/player/view/webgl/system/projectedMaterial/System","require tdv/utils tdv/constants/RenderOrder tdv/player/view/util/geo/Fov tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/material/ProjectedMaterial tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/RenderOrder");a("tdv/player/view/util/geo/Fov");var n=a("tdv/player/view/webgl/ecs/System"),g=a("tdv/player/view/webgl/components"), k=a("tdv/player/view/webgl/system/util/material/ProjectedMaterial"),e=a("tdv/player/view/webgl/system/util/entity/Util");a=m.extend(n,function(){n.apply(this,arguments);this.xb=this.xb.bind(this);this.Ca=this.Ca.bind(this);this.ib=this.ib.bind(this)});a.prototype.Yc=function(){this.aQa.v.length&&this.aQa.v.slice().forEach(this.Ca);this.bQa.v.length&&this.bQa.v.slice().forEach(this.Ca);this.$Pa.v.length&&this.$Pa.v.slice().forEach(this.xb);this.ZPa.Da.length&&this.ZPa.Da.slice().forEach(this.ib)}; a.prototype.xb=function(c){var d=c.getComponent(g.po),f=(d=d&&d.bF)&&e.Rc(d),l=e.Sf(d);if(f&&l){var p=c.N(g.Ur);p.bF=d;p.GP=new k.Rp;p.material=this.ly(p.GP);p.sa=this.GZa(f,p.material);p.lQ=this.VZa(p.material);p.MA=this.C_a(p.material);p.colorSpace=e.tX(l);c.N(g.Object3D).sa=p.sa;this.ib(c)}};a.prototype.ib=function(c){this.Qj(c);this.ebb(c);this.dbb(c);this.Kab(c)};a.prototype.Ca=function(c){var d=c.getComponent(g.Ur),f=e.Rc(d.bF);f&&(f.visible=!0);d.sa&&d.sa.traverse(function(l){l.material==d.material&& (l.material=b)});d.lQ&&((f=d.lQ.parent)&&e.mQa(f,d.lQ),d.lQ=null);d.MA&&((f=d.MA.parent)&&e.lQa(f,d.MA),d.MA=null);d.material&&(d.GP.sZ=null,d.GP.AZ=null,d.GP=null,d.material.dispose(),d.material=null);c.ka(g.Ur);c.ka(g.Object3D)};a.prototype.Qj=function(c){var d=c.getComponent(g.po);c=c.getComponent(g.Ur);var f=c.GP;d.rZ?(f.sZ!=d.rZ&&(f.sZ=d.rZ),f.R$=d.R$,f.S$=d.S$,f.T$=d.T$,f.bSa=d.tZ,f.Q$=d.$Ra,f.Tra=!0):(f.Tra=!1,f.Q$=0);d.zZ?(f.AZ!=d.zZ&&(f.AZ=d.zZ),f.targetX=d.targetX,f.targetY=d.targetY,f.daa= d.daa,f.ySa=d.Jmb,f.caa=d.wSa,f.asa=!0):(f.asa=!1,f.caa=0);k.update(c.material,f)};a.prototype.ebb=function(c){c=c.getComponent(g.po);var d=e.Rc(c.bF);d&&(d.visible=(1-(c.rZ?c.$Ra:0))*(1-(c.zZ?c.wSa:0))>0)};a.prototype.dbb=function(c){var d=c.getComponent(g.po),f=c.getComponent(g.Ur).lQ;!!f.parent!=d.YRa&&(c=(c=e.Sf(c)||e.Sf(d.bF))&&e.uw(c),d.YRa?c&&e.Pbb(c,f):c&&e.mQa(c,f))};a.prototype.Kab=function(c){var d=c.getComponent(g.po),f=c.getComponent(g.Ur).MA;!!f.parent!=d.MA&&(c=(c=e.Sf(c)||e.Sf(d.bF))&& e.uw(c),d.MA?c&&e.Obb(c,f):e.lQa(c,f))};var b=new THREE.MeshBasicMaterial;a.prototype.ly=function(c){c=k.create(c);c.polygonOffset=!0;c.polygonOffsetUnits=1;c.polygonOffsetFactor=-10;c.needsUpdate=!0;return c};a.prototype.GZa=function(c,d){if(this.aya(c))return new THREE.Object3D;var f=new Map;c.traverse(function(t){if(t.material&&t.userData){var u={};t.material&&(u.material=t.material,t.material=d);t.userData&&(u.userData=t.userData,t.userData={});var v=t.children.filter(function(w){return!this.aya(w)}.bind(this)); t.children.length!=v.length&&(u.children=t.children,t.children=v);f.set(t,u)}}.bind(this));var l=c.clone();f.forEach(function(t,u){t.material&&(u.material=t.material);t.userData&&(u.userData=t.userData);t.children&&(u.children=t.children)});for(c=[[c,l]];c.length;){var p=c.shift(),q=p[0];p=p[1];q.Me&&(p.Me=q.Me);for(var r=0;r0,this.Lf.params.saoBlurRadius=f.fna,this.Lf.params.saoBlurStdDev=8,this.Lf.params.saoBlurDepthCutoff=.01,(this.Pa!=b||this.Ha!=c)&&this.Lf.setSize(this.Pa=b,this.Ha=c))};return m}); define("tdv/player/view/webgl/system/renderer/effect/Antialias",["require","tdv/player/view/webgl/components"],function(a){function m(n){this.B=n;this.enabled=!1;this.passes=[];this.zm=this.Bm=!1;this.Mu=null}var h=a("tdv/player/view/webgl/components");m.prototype.dispose=function(){this.Mu&&(this.Mu.material.dispose(),this.Mu=null)};m.prototype.update=function(n,g,k,e){n=this.B.getComponent(h.rF);n=!!n&&n.UKa;if(this.Bm=this.enabled!=n)(this.enabled=n)?(this.Mu||(this.Mu=new THREE.ShaderPass(THREE.FXAAShader), this.Mu.needsSwap=!0),this.passes=[this.Mu],this.zm=!0):(this.passes=[],this.zm=!1);!this.enabled||this.Pa==k&&this.Ha==e||(this.Pa=k,this.Ha=e,this.Mu.material.uniforms.resolution.value.x=1/this.Pa,this.Mu.material.uniforms.resolution.value.y=1/this.Ha,this.Mu.setSize(k,e))};return m}); define("tdv/player/view/webgl/system/renderer/effect/MotionBlur",["require","tdv/player/view/webgl/components"],function(a){function m(n){this.B=n;this.enabled=!1;this.cQ=void 0;this.Jo=null;this.wy=0;this.passes=[];this.zm=this.Bm=!1;this.$i=null;this.wja=new THREE.Matrix4;this.zja=new THREE.Matrix4;this.vja=new THREE.Vector3}var h=a("tdv/player/view/webgl/components");m.prototype.dispose=function(){this.$i&&(this.$i.dispose(),this.$i=null)};m.prototype.update=function(n,g){var k=this.B.getComponent(h.TQ), e=!!k,b=k?k.CQa:void 0;if(this.Bm=this.enabled!=e||this.cQ!=b)(this.enabled=e)?(this.cQ!=b&&this.$i&&(this.$i.dispose(),this.$i=null),!this.$i&&n&&g&&(this.$i=new THREE.MotionBlurPass(this.cQ=b),this.$i.needsSwap=!0,this.wja.copy(g.matrixWorldInverse),this.zja.copy(g.projectionMatrix),this.vja.copy(g.position)),this.passes=[this.$i],this.zm=!0):(this.passes=[],this.zm=!1);this.enabled&&(this.$i.uniforms.inverseProjectionMatrix.value.copy(g.projectionMatrix).invert(),this.$i.uniforms.near.value=g.near, this.$i.uniforms.far.value=g.far,this.$i.uniforms.depthLimit.value=.99,this.$i.uniforms.clipToWorldMatrix.value.copy(g.matrixWorld).multiply(this.$i.uniforms.inverseProjectionMatrix.value),this.$i.uniforms.previousWorldToClipMatrix.value.copy(this.zja).multiply(this.wja),this.$i.uniforms.cameraMove.value.copy(g.position).sub(this.vja),this.$i.uniforms.velocityFactor.value=k.intensity);this.wja.copy(g.matrixWorldInverse);this.zja.copy(g.projectionMatrix);this.vja.copy(g.position)};return m}); define("tdv/player/view/webgl/system/renderer/effect/Rendering",["require","tdv/player/view/util/Color","tdv/player/view/webgl/components"],function(a){function m(n){this.B=n;this.enabled=!0;this.passes=[];this.Tpa=this.zm=this.Bm=!1;this.q5=void 0;this.Ui=this.Rs=this.jm=null}a("tdv/player/view/util/Color");var h=a("tdv/player/view/webgl/components");m.prototype.dispose=function(){this.jm&&(this.jm.dispose(),this.jm=null);this.Rs&&(this.Rs=null);this.Ui&&(this.Ui.material.dispose(),this.Ui=null)}; m.prototype.update=function(n,g,k,e,b,c){b=this.B.getComponent(h.rF);c=!!b&&b.mSa&&c;if(this.Bm=this.q5!==c)(this.q5=c)?(this.jm||(this.jm=new THREE.SSAARenderPass(n,g),this.jm.sampleLevel=b.uZ,this.jm.needsSwap=!0,this.jm.clear=!0,this.jm.clearColor=65793,this.jm.clearAlpha=0),this.Ui||(this.Ui=new THREE.ShaderPass(THREE.CopyShader),this.Ui.needsSwap=!0),this.passes=[this.jm,this.Ui],this.Tpa=this.zm=!0):(this.Rs||(this.Rs=new THREE.RenderPass,this.Rs.clear=!0,this.Rs.clearColor=65793,this.Rs.clearAlpha= 0),this.passes=[this.Rs],this.Tpa=this.zm=!1);this.q5?(this.jm.scene=n,this.jm.camera=g,this.jm.sampleLevel=b.uZ,this.Ui.uniforms.opacity.value=Math.pow(2,Math.round(b.uZ>5?5:b.uZ)),this.jm.setSize(k,e)):(this.Rs.scene=n,this.Rs.camera=g,this.Rs.setSize(k,e))};return m}); define("tdv/player/view/webgl/system/renderer/effect/Vignette",["require","tdv/player/view/util/Color","tdv/player/view/webgl/components"],function(a){function m(k){this.B=k;this.enabled=!1;this.passes=[];this.zm=this.Bm=!1;this.jt=null;this.Ne=void 0}var h=a("tdv/player/view/util/Color"),n=a("tdv/player/view/webgl/components");m.prototype.dispose=function(){this.jt&&(this.jt.material.dispose(),this.jt=null)};m.prototype.update=function(){var k=this.B.getComponent(n.nL),e=!!k;if(this.Bm=this.enabled!= e)(this.enabled=e)?(this.jt||(this.jt=new THREE.ShaderPass(g),this.jt.needsSwap=!0),this.passes=[this.jt],this.zm=!0):(this.passes=[],this.zm=!1);this.enabled&&(this.jt.uniforms.innerRadius.value=k.KMa,this.jt.uniforms.outerRadius.value=k.qPa,this.jt.uniforms.opacity.value=k.opacity,this.Ne!==k.color&&(this.Ne=k.color,this.jt.uniforms.color.value=h.Ip(this.Ne)))};var g={uniforms:{tDiffuse:{value:null},innerRadius:{value:.5},outerRadius:{value:.5},opacity:{value:.5},color:{value:new THREE.Color(0, 0,0)}},vertexShader:"varying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform float innerRadius;\nuniform float outerRadius;\nuniform float opacity;\nuniform vec3 color;\nuniform sampler2D tDiffuse;\nvarying vec2 vUv;\nvoid main() {\n vec4 texel = texture2D(tDiffuse, vUv);\n vec2 uv = vUv - vec2(0.5, 0.5);\n float radius = sqrt(dot(uv, uv)) * 1.4142135623730951;\n float coef = clamp((radius - innerRadius) / (outerRadius - innerRadius), 0.0, 1.0);\n float alpha = opacity * coef;\n float composedAlpha = alpha + texel.a * (1.0 - alpha);\n if (composedAlpha > 0.0)\n {\n vec3 rgb = (color * alpha + texel.rgb * texel.a * (1.0 - alpha)) / composedAlpha;\n gl_FragColor = vec4(rgb, composedAlpha);\n }\n else\n {\n gl_FragColor = texel;\n }\n}"}; return m}); define("tdv/player/view/webgl/system/renderer/ScenePostprocessing","require tdv/player/view/webgl/system/renderer/effect/AmbientOcclusion tdv/player/view/webgl/system/renderer/effect/Antialias tdv/player/view/webgl/system/renderer/effect/MotionBlur tdv/player/view/webgl/system/renderer/effect/Rendering tdv/player/view/webgl/system/renderer/effect/Vignette tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){function m(c){this.ee=c;this.Bb=this.zc=this.pg=null;this.Ha=this.Pa=void 0; this.TU=null;this.Cea=!0;this.Ui=this.ev=this.j=null;this.Y0=[new k(c),new h(c),new g(c),new e(c),new n(c)];this.c3=!1}var h=a("tdv/player/view/webgl/system/renderer/effect/AmbientOcclusion"),n=a("tdv/player/view/webgl/system/renderer/effect/Antialias"),g=a("tdv/player/view/webgl/system/renderer/effect/MotionBlur"),k=a("tdv/player/view/webgl/system/renderer/effect/Rendering"),e=a("tdv/player/view/webgl/system/renderer/effect/Vignette"),b=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.dispose= function(){this.j&&(this.j.domElement.style.backgroundColor=void 0);for(;this.Y0.length;)this.Y0.pop().dispose();this.Fea();this.ev&&(this.ev.material.dispose(),this.ev=null);this.Ui&&(this.Ui.material.dispose(),this.Ui=null)};m.prototype.setSize=function(c,d){if(this.Pa!=c||this.Ha!=d)this.Pa=c,this.Ha=d,this.pg&&this.pg.setSize(this.Pa,this.Ha),this.j&&!this.j.xr.isPresenting&&this.j.setSize(this.Pa,this.Ha)};m.prototype.Yw=function(c){this.Bb=c};m.prototype.setCamera=function(c){this.zc=c};m.prototype.setRenderTarget= function(c){this.TU!=c&&(this.TU=c,this.Fea())};m.prototype.ukb=function(c){this.Cea!=c&&(this.Cea=c,this.pg&&(this.pg.renderToScreen=c))};m.prototype.D$=function(c){this.j!=c&&(this.j=c,this.j.setSize(this.Pa,this.Ha),this.Fea())};m.prototype.render=function(c){this.w9a();this.vab(c);this.j.domElement.style.backgroundColor=this.c3?"#000000":void 0;this.pg.renderTarget1.fNa=!0;this.pg.renderTarget2.fNa=!0;this.pg.render()};m.prototype.w9a=function(){this.pg||(this.pg=new THREE.EffectComposer(this.j, this.TU||void 0),this.pg.renderToScreen=this.Cea,this.pg.setSize(this.Pa,this.Ha))};m.prototype.vab=function(c){var d=!1,f=!1;this.c3=!1;this.Y0.forEach(function(p){p.update(this.Bb,this.zc,this.Pa,this.Ha,c,this.pg.renderToScreen);d||(d=p.Bm);f||(f=p.zm);this.c3||(this.c3=p.Tpa)}.bind(this));f=f&&this.j.outputColorSpace==THREE.SRGBColorSpace&&this.pg.renderToScreen;b.Clb(this.Bb,f);f&&!this.ev?(this.ev=new THREE.ShaderPass(THREE.GammaCorrectionShader),d=this.ev.needsSwap=!0):this.ev&&(this.ev.enabled= f);this.pg.renderToScreen||this.Ui?this.Ui&&(this.Ui.enabled=!this.pg.renderToScreen):(this.Ui=new THREE.ShaderPass(THREE.CopyShader),d=this.Ui.needsSwap=!0);if(d){var l=[];this.Y0.forEach(function(p){l=l.concat(p.passes)});this.ev&&l.push(this.ev);for(this.Ui&&l.push(this.Ui);this.pg.passes.length>0;)this.pg.removePass(this.pg.passes[this.pg.passes.length-1]);l.forEach(function(p){this.pg.addPass(p)}.bind(this))}};m.prototype.Fea=function(){this.pg&&(this.pg.renderTarget1!=this.TU&&this.pg.renderTarget1.dispose(), this.pg.renderTarget2!=this.TU&&this.pg.renderTarget2.dispose(),this.pg=null)};return m}); define("tdv/player/view/webgl/system/renderer/SceneRenderer","require tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/Util tdv/player/view/webgl/system/renderer/ScenePostprocessing".split(" "),function(a){function m(l){this.Od=l;this.opacity=0;this.height=this.width=void 0;this.renderTarget=null;this.scene=void 0;this.tEa=!1;this.hka=!0;this.LY=this.camera=void 0;this.oI=!1;this.Q3=void 0; this.Qc=new b(l);this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/util/XR"),g=a("tdv/player/view/webgl/components"),k=a("tdv/player/view/webgl/system/util/entity/Util"),e=a("tdv/player/view/webgl/system/util/Util"),b=a("tdv/player/view/webgl/system/renderer/ScenePostprocessing");m.prototype.update=function(){var l=this.Od.getComponent(g.Scene);this.opacity=l&&l.opacity||0;this.tEa=l?l.locked:!1;this.hka=l?l.enabled:!0;var p=l&&l.scene;this.scene!=p&&(this.scene=p,this.oI=!0,this.Qc.Yw(this.scene)); var q=(p=l&&l.Ea)&&k.lX(p),r=q&&q.width;q=q&&q.height;if(this.width!=r||this.height!=q)this.width=r,this.height=q,this.oI=!0,this.Qc.setSize(this.width,this.height);l=l&&l.outputColorSpace=="srgb"?THREE.SRGBColorSpace:THREE.LinearSRGBColorSpace;this.Q3!=l&&(this.Q3=l,this.oI=!0,k.Blb(this.scene,l));l=p&&k.Bt(p);this.camera!=l&&(this.camera=l,this.oI=!0,this.Qc.setCamera(this.camera));p=p&&k.lX(p).camera;this.LY!=p&&(this.LY=p);this.scene&&(k.Alb(this.scene,this.camera),k.Dlb(this.scene,n.isPresenting? 2048:this.width,n.isPresenting?2048:this.height));return this};m.prototype.render=function(l,p,q){if((p||this.oI||!this.tEa)&&this.hka){this.renderTarget||(this.renderTarget=e.TJa(l));p?(l.xr.isPresenting||l.setRenderTarget(null),this.oI=!0):(l.setRenderTarget(this.renderTarget),this.renderTarget.texture.colorSpace=this.Q3,this.oI=!1);l.outputColorSpace=this.Q3;var r=this.Od.getComponent(g.Scene),t=e.XKa(l.domElement);r&&r.O9!==1&&(t*=r.O9);l.getPixelRatio()!=t&&l.setPixelRatio(t);this.Vgb();l.xr.isPresenting? (l.clear(),l.render(this.scene,this.LY)):(this.Qc.setRenderTarget(this.renderTarget),this.Qc.ukb(p),this.Qc.D$(l),this.Qc.render(q));this.$jb();(r=this.Od.getComponent(g.Scene))&&r.M&&r.M.o(h.Zd)}};m.prototype.Vgb=function(){var l=[],p=[];this.scene.traverse(function(q){q.Aw||q.isGaussianCloud?l.push(q):q.visible&&q.material&&q.material.transparent&&q.material.depthTest&&q.renderOrder<=0&&q.renderOrder>=-100&&q.material.opacity>0&&p.push(q)});c.camera=this.LY;c.ray.origin.setFromMatrixPosition(this.LY.matrixWorld); c.firstHitOnly=!0;p.forEach(function(q){f.setFromMatrixPosition(q.matrixWorld).sub(c.ray.origin);c.ray.direction.copy(f).normalize();var r=f.length();c.far=r;d.length=0;d=c.intersectObjects(l,!1,d);d.length>0&&d[0].distance 0&&this.hka};m.prototype.dispose=function(){this.camera=this.scene=this.Od=null;this.Qc&&(this.Qc.dispose(),this.Qc=null);this.renderTarget&&(this.renderTarget.dispose(),this.renderTarget=null)};return m}); define("tdv/player/view/webgl/system/renderer/Behaviour",["require","tdv/constants/EventName","tdv/player/view/util/XR","tdv/player/view/webgl/components","tdv/player/view/webgl/system/renderer/SceneRenderer"],function(a){function m(e){this.B=e;this.Dz=[];this.fj=null;this.p9a();this.n9a()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/util/XR"),g=a("tdv/player/view/webgl/components"),k=a("tdv/player/view/webgl/system/renderer/SceneRenderer");m.prototype.frame=function(e){var b=!!this.j&& n.Uf==this.j;if(!n.isPresenting||b){var c=this.B.getComponent(g.wj).MY.map(function(l){for(var p=0;p0){b&&d.reduce(function(l,p){return l.opacity>p.opacity?l:p});var f=d.length==1&&d[0].opacity>=1||b;d.forEach(function(l){l.render(this.j,f,e)}.bind(this)); f||this.o7a(d.slice(0,2))}b&&this.B.T.Qa()}};m.prototype.o7a=function(e){this.Fo.material.uniforms.t1.value=e[0].renderTarget.texture;this.Fo.material.uniforms.o1.value=e[0].opacity;e.length>1?(this.Fo.material.uniforms.useT2.value=1,this.Fo.material.uniforms.t2.value=e[1].renderTarget.texture,this.Fo.material.uniforms.o2.value=e[1].opacity):this.Fo.material.uniforms.useT2.value=0;this.j.setSize(e[0].width,e[0].height);this.j.setRenderTarget(null);this.j.setClearColor(0,0);this.j.clear();this.j.render(this.pR, this.rda)};m.prototype.dispose=function(){for(;this.Dz.length;)this.Dz.shift().dispose();this.Dz=null;this.o$a();this.r$a()};m.prototype.p9a=function(){var e=this.B.O(g.wj);this.fj=e.eb.Fc();this.fj.y6();e.renderer=this.fj.sl();this.j=e.renderer;n.M.bind(h.V,this.PHa,this,!0)};m.prototype.r$a=function(){n.M.h(h.V,this.PHa,this);this.j=null;this.fj.b$();this.fj=null};m.prototype.PHa=function(){this.B.T.Qa()};m.prototype.n9a=function(){this.pR=new THREE.Scene;this.rda=new THREE.OrthographicCamera(window.innerWidth/ -2,window.innerWidth/2,window.innerHeight/2,window.innerHeight/-2,-10,10);this.pR.add(this.rda);this.Fo=new THREE.Mesh(new THREE.PlaneGeometry(window.innerWidth,window.innerHeight),this.UZa());this.pR.add(this.Fo)};m.prototype.o$a=function(){this.pR.remove(this.Fo);this.Fo.geometry.dispose();this.Fo.geometry=null;this.Fo.material.dispose();this.pR=this.rda=this.Fo=this.Fo.material=null};m.prototype.UZa=function(){var e=new THREE.ShaderMaterial({uniforms:{t1:{value:null},t2:{value:null},o1:{value:1}, o2:{value:1},useT2:{value:1}},vertexShader:"varying vec2 vUv;\nvoid main() {\nvUv = vec2( uv.x, uv.y );\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D t1;\nuniform sampler2D t2;\nuniform float o1;\nuniform float o2;\nuniform int useT2;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texel1 = texture2D(t1, vUv);\n texel1.a = texel1.a * o1;\n if (useT2 == 1) {\n\t vec4 texel2 = texture2D(t2, vUv);\n texel2.a = texel2.a * o2;\n gl_FragColor = mix(texel1, texel2, texel2.a);\n } else {\n gl_FragColor = texel1;\n }\n#include \n#include \n}"}); e.transparent=!0;return e};m.Wa=function(e){e.N(g.Gu).manager=new m(e)};m.ya=function(e){var b=e.getComponent(g.Gu);b.manager.dispose();b.manager=null;e.ka(g.Gu)};m.update=function(e){e.getComponent(g.Gu).manager.update()};m.frame=function(e,b,c){e.getComponent(g.Gu).manager.frame(b,c)};return m}); define("tdv/player/view/webgl/system/renderer/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/renderer/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/renderer/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(k,e){this.tQa.v.length&&this.tQa.v.slice().forEach(g.Wa);this.Vn.v.length&& this.Vn.v.slice().forEach(function(b){g.frame(b,k,e)});this.uQa.v.length&&this.uQa.v.slice().forEach(g.ya)};a.J={};a.J.tQa=[n.wj,n.Gu.aa];a.J.uQa=[n.wj.aa,n.Gu];a.J.Vn=[n.wj,n.Gu];return a}); define("tdv/player/view/webgl/system/scene/BackgroundSprite","require tdv/utils tdv/constants/EventName tdv/constants/RenderOrder tdv/events/EventDispatcher tdv/player/view/map/renderer/item/Item tdv/player/view/webgl/system/util/entity/Util tdv/constants/Priority tdv/player/view/image/Repository tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/RenderOrder"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/map/renderer/item/Item"), e=a("tdv/player/view/webgl/system/util/entity/Util"),b=a("tdv/constants/Priority"),c=a("tdv/player/view/image/Repository"),d=a("tdv/player/view/util/XR");a=m.extend(g,function(l,p){g.call(this);this.Se=l;this.Bb=p;this.Ja=new k;this.Ja.iQ([this.Se]);this.Ja.bind(h.ia,this.Pe,this,!1);this.Ja.bind(h.$c,this.yh,this,!1);this.wc=null;this.Of=0;d.M.bind(h.V,this.xi,this,!0);c.FA(this.Ja,b.TF)});a.prototype.Zn=function(l){this.Of!==l&&(this.Of=l,this.xi())};a.prototype.pj=function(){return!!this.wc};a.prototype.Pe= function(){this.G_a();this.o(h.ia)};a.prototype.yh=function(){this.o(h.$c)};a.prototype.G_a=function(){var l=new THREE.Texture;l.image=c.yg(this.Se);l.generateMipmaps=!0;l.minFilter=THREE.LinearMipMapLinearFilter;l.needsUpdate=!0;l=new THREE.SpriteMaterial({map:l});l.sizeAttenuation=!1;l.transparent=!0;l.polygonOffset=!0;l.polygonOffsetUnits=1;l.polygonOffsetFactor=-10;this.wc=new THREE.Sprite(l);this.wc.renderOrder=n.iUa;this.xi()};a.prototype.xi=function(){if(this.wc){var l=d.isPresenting&&d.Em== d.Fl.Np?0:this.Of;this.wc.material.opacity!=l&&(this.wc.material.opacity=l,this.wc.material.visible=l>0,this.wc.material.needsUpdate=!0)}};a.prototype.dispose=function(){this.wc&&(this.wc.parent&&e.Gqa(this.wc.parent,this.wc),this.wc.material.map.dispose(),this.wc.material.dispose(),this.wc=null)};a.prototype.update=function(){if(this.wc){var l=e.uw(this.Bb);this.wc.parent!=l&&(this.wc.parent&&e.Gqa(this.wc.parent,this.wc),l&&e.Nbb(l,this.wc));if(l){var p=e.dE(this.Bb),q=this.wc.material.map.image.width, r=this.wc.material.map.image.height;l=p/(2*Math.tan(l.fov*f/2));p=Math.max(p/l,e.uX(this.Bb)/(l*q/r));this.wc.scale.y!=p&&(this.wc.scale.y=p,this.wc.scale.x=p*q/r)}q=e.tX(this.Bb);this.wc.material.map.colorSpace!=q&&(this.wc.material.map.colorSpace=q,this.wc.material.needsUpdate=!0)}};a.prototype.dispose=function(){this.wc&&(this.wc.parent&&e.Gqa(this.wc.parent,this.wc),this.wc.material.map.dispose(),this.wc.material.dispose(),this.wc=null);this.Ja&&c.ho(this.Ja,b.TF);d.M.h(h.V,this.xi,this)};var f= Math.PI/180;return a}); define("tdv/player/view/webgl/system/scene/Background","require tdv/constants/EventName tdv/player/view/webgl/components tdv/player/view/webgl/system/scene/BackgroundSprite tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){function m(b,c){this.B=b;this.Oh=c;this.Yx=void 0;this.Ej=this.Do=this.la=this.Bb=null;this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/scene/BackgroundSprite"),k=a("tdv/view/util/Ease"), e=a("tdv/view/util/EaseDimension");m.prototype.frame=function(b){this.la&&this.HI(b);this.Do&&this.Do.update();this.Ej&&this.Ej.update()};m.prototype.update=function(){var b=this.B.getComponent(n.Scene);this.Bb=b.scene;if(!this.Bb){if(!b.scene)return;this.Bb=b.scene}b=b.$ma||null;this.Yx===b||this.la||(this.SR(this.Ej),this.Ej=null,(this.Yx=b)?this.Ej=this.TZa(this.Yx):(this.KR(),this.Oh.o(h.ia)))};m.prototype.HI=function(b){this.la.Nb(b);this.Do&&this.Do.Zn(Math.min(1,Math.max(0,this.la.ob("alpha")))); this.Ej&&this.Ej.Zn(Math.min(1,Math.max(0,this.la.ob("nextAlpha"))));this.la.Ve()&&(this.la=null,this.Do&&(this.SR(this.Do),this.Do=null),this.Do=this.Ej,this.Ej=null,this.update());this.B.T.Qa()};m.prototype.Eia=function(){this.Ej.h(h.ia,this.Eia,this,!0);this.Ej.h(h.$c,this.Fia,this,!0);this.KR();this.Oh.o(h.ia)};m.prototype.Fia=function(){this.SR(this.Ej);this.Ej=null;this.KR();this.Oh.o(h.ia)};m.prototype.KR=function(){this.Ej&&this.Do?this.la=new k("linear",[new e("nextAlpha",0,2,void 0),new e("alpha", 2,0,void 0)],600):this.Ej?this.la=new k("linear",[new e("nextAlpha",0,1,void 0)],300):this.Do&&(this.la=new k("linear",[new e("alpha",1,0,void 0)],300));this.B.T.Qa()};m.prototype.TZa=function(b){b=new g(b,this.Bb);this.xYa(b);b.Zn(0);return b};m.prototype.SR=function(b){b&&(this.Z$a(b),b.dispose())};m.prototype.xYa=function(b){b.bind(h.ia,this.Eia,this,!0);b.bind(h.$c,this.Fia,this,!0)};m.prototype.Z$a=function(b){b.h(h.ia,this.Eia,this,!0);b.h(h.$c,this.Fia,this,!0)};m.prototype.dispose=function(){this.Do&& (this.SR(this.Do),this.Do=null);this.Ej&&(this.SR(this.Ej),this.Ej=null)};return m}); define("tdv/player/view/webgl/system/scene/Environment","require tdv/constants/EventName tdv/constants/Priority tdv/player/view/util/Color tdv/player/view/util/LoadingGroup tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/view/images/ImageLoader tdv/player/view/util/XR".split(" "),function(a){function m(f,l){this.B=f;this.VG=void 0;this.gfa=1;this.Q4=this.FN=this.EN=this.dC=this.sG=this.Yx=void 0;this.zc=this.j=this.Bb=null;this.Oh=l;this.sf=new k(this.Oh);this.Sd= [new c(n.TF),new c(n.TF)];this.Sd.forEach(function(p){p.bind(h.ia,this.Pe,this,!0);p.bind(h.$c,this.yh,this,!0)}.bind(this));d.M.bind(h.V,this.za,this,!0);this.jFa([]);this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/Priority"),g=a("tdv/player/view/util/Color"),k=a("tdv/player/view/util/LoadingGroup"),e=a("tdv/player/view/webgl/components"),b=a("tdv/player/view/webgl/system/util/entity/Util"),c=a("tdv/view/images/ImageLoader"),d=a("tdv/player/view/util/XR");m.prototype.frame=function(){if(this.Bb){var f= m.Wfb(this.B.T,this.Bb);this.j!=f&&(this.j&&(this.Zu(),this.Q0()),this.j=f)&&(this.za(),this.Wla())}};m.prototype.update=function(){var f=this.B.getComponent(e.Scene),l=!1,p=!1,q=f.xKa||null;this.VG!==q&&(this.VG=q,p=!0);q=f.$ma||null;this.Yx!==q&&(this.Yx=q,p=!0);q=f.IIa||null;this.sG!==q&&(this.sG=q,p=!0);p&&(this.sHa(),this.Wla(),l=!0);this.dC!==f.backgroundColor&&(this.dC=f.backgroundColor,l=!0);this.Bb!==f.scene&&(this.Bb=f.scene,l=!0);this.gfa!==f.environmentIntensity&&(this.gfa=f.environmentIntensity, l=!0);l&&this.za()};m.prototype.sHa=function(){this.jFa(this.P2a())};m.prototype.P2a=function(){var f=[];this.VG&&f.indexOf(this.VG)==-1&&f.push(this.VG);!this.Yx&&this.sG&&f.indexOf(this.sG)==-1&&f.push(this.sG);if(this.Bb&&this.Bb.background&&this.Bb.background.image&&this.Bb.background.image.src){var l=this.Bb.background.image.src;f.indexOf(l)==-1&&f.push(l)}return f};m.prototype.jFa=function(f){var l=[],p=[];this.Sd.forEach(function(q){var r=q.rl();f.indexOf(r)<0?(q.cancel(),l.push(q)):p.push(r)}); f.forEach(function(q){p.indexOf(q)<0&&l.shift().load(q)})};m.prototype.Wla=function(){var f=0;this.sf.kJa();this.Sd.forEach(function(l){l.rl()&&!l.pj()&&(this.sf.uO(l),f++)}.bind(this));f==0&&this.Oh&&this.Oh.o(h.ia)};m.prototype.dispose=function(){this.Sd.forEach(function(f){f.cancel();f.h(h.ia,this.Pe,this,!0);f.h(h.$c,this.yh,this,!0)}.bind(this));this.B&&(this.Q0(),this.Zu(),this.B=null);d.M.h(h.V,this.za,this)};m.prototype.Pe=function(){this.za();this.Wla()};m.prototype.za=function(){if(this.Bb&& this.j){this.Bb.environmentIntensity=this.gfa;if(this.VG){var f=this.Tya(this.VG);f&&this.TXa(f)}else this.Q0();d.isPresenting&&d.Em==d.Fl.Np?this.Zu():this.Yx?this.Zu():this.sG?(f=this.Tya(this.sG))&&this.Pva(f):this.dC?this.Pva(void 0,this.dC):this.Zu();this.sHa();this.B.T.Qa()}};m.prototype.Tya=function(f){for(var l=0;l0)return q.renderer}return null};return m}); define("tdv/player/view/webgl/system/scene/FadeColor","require exports tdv/constants/RenderOrder tdv/player/view/util/Color tdv/player/view/util/XR tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util three.mod".split(" "),function(a,m,h,n,g,k,e,b){a=function(){function d(f){this.opacity=this.aP=void 0;this.F=f}d.prototype.frame=function(){var f=this.F.getComponent(k.Scene),l=f.scene,p=l&&e.uw(l),q=f.aP;f=f.$W;!g.isPresenting&&p&&q&&f>0?(this.Odb(),this.cob(l,p),this.bob(q, f)):(this.opacity=this.aP=void 0,this.oJa())};d.prototype.update=function(){};d.prototype.cob=function(f,l){this.Gi.parent!=l&&l.add(this.Gi);var p=e.uX(f);f=e.dE(f);l.isPerspectiveCamera?(this.Gi.position.z=-l.near*1.01,l=f/(2*Math.tan(l.fov*c/2)),l=Math.max(f/l,p/(l*p/f)),this.Gi.scale.y=l,this.Gi.scale.x=l*p/f):l.isOrthographicCamera&&(this.Gi.position.z=-(l.near+1),this.Gi.scale.y=l.top-l.bottom,this.Gi.scale.x=l.right-l.left)};d.prototype.bob=function(f,l){this.aP!==f&&this.opacity!==l&&(this.Gi.material.color= n.Ip(f),this.Gi.material.opacity=l,this.Gi.material.needsUpdate=!0)};d.prototype.Odb=function(){if(!this.Gi){var f=new b.SpriteMaterial;f.depthTest=!1;f.renderOrder=h.tta;f.sizeAttenuation=!1;f.transparent=!0;f.visible=!0;f.opacity=0;f.needsUpdate=!0;this.Gi=new b.Sprite(f);this.Gi.renderOrder=h.tta}};d.prototype.oJa=function(){var f,l,p;if(this.Gi){var q=this.Gi.material;(f=q.map)===null||f===void 0||f.dispose();(l=q.envMap)===null||l===void 0||l.dispose();q.dispose();this.Gi.geometry.dispose(); (p=this.Gi.parent)===null||p===void 0||p.remove(this.Gi)}};d.prototype.dispose=function(){this.oJa()};return d}();var c=Math.PI/180;return a}); define("tdv/player/view/webgl/system/scene/Fog","require exports tdv/constants/EventName tdv/player/view/util/Color tdv/player/view/webgl/components three.mod tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){return function(){function b(c){this.F=c;e.M.bind(h.V,this.update,this,!0)}b.prototype.update=function(){var c=this.F.getComponent(g.Scene),d=c.scene,f=e.isPresenting&&e.Em==e.Fl.Np?0:c.RKa;c=n.Ip(c.QKa||"#ffffff");f>0?d.fog==null?d.fog=new k.FogExp2(c,f):(d.fog.color=c,d.fog.density= f):d.fog=null};b.prototype.dispose=function(){e.M.h(h.V,this.update,this);var c=this.F.getComponent(g.Scene);c&&c.scene&&(c.scene.fog=null)};return b}()}); define("tdv/player/view/webgl/system/scene/Behaviour","require tdv/player/view/webgl/components tdv/player/view/util/LoadingGroup tdv/player/view/webgl/system/scene/Background tdv/player/view/webgl/system/scene/Environment tdv/player/view/webgl/system/scene/FadeColor tdv/player/view/webgl/system/scene/Fog".split(" "),function(a){function m(c){this.B=c;this.Oh=null;var d=this.B.O(h.Scene),f=this.B.O(h.Vp);this.B.N(h.Object3D).sa=f.scene=d.scene=new THREE.Scene;this.sf=new n;this.cS=new k(c,this.sf.iw()); this.ae=new g(c,this.sf.iw());this.d1=new b(c);this.bya=new e(c)}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/util/LoadingGroup"),g=a("tdv/player/view/webgl/system/scene/Background"),k=a("tdv/player/view/webgl/system/scene/Environment"),e=a("tdv/player/view/webgl/system/scene/FadeColor"),b=a("tdv/player/view/webgl/system/scene/Fog");m.prototype.frame=function(c){this.cS.frame(c);this.ae.frame(c)};m.prototype.boa=function(c){this.bya.frame(c)};m.prototype.update=function(){this.cS.update(); this.ae.update();this.d1.update();this.bya.update();this.Eab()};m.prototype.Eab=function(){var c=this.B.getComponent(h.Scene);this.Oh!=c.Zna&&(this.Oh=c.Zna,this.sf.Bkb(this.Oh))};m.prototype.dispose=function(){this.sf&&(this.sf.dispose(),this.sf=null);this.ae&&(this.ae.dispose(),this.ae=null);this.cS&&(this.cS.dispose(),this.cS=null);this.d1&&(this.d1.dispose(),this.d1=null);this.B&&(this.B=null)};m.Wa=function(c){c.N(h.Vp).manager=new m(c)};m.ya=function(c){var d=c.getComponent(h.Vp);d.manager.dispose(); d.manager=null;c.ka(h.Vp);c.ka(h.Object3D)};m.frame=function(c,d){c.getComponent(h.Vp).manager.frame(d)};m.boa=function(c,d){(c=c.getComponent(h.Vp))&&c.manager&&c&&c.manager.boa(d)};m.update=function(c){c.getComponent(h.Vp).manager.update()};m.xra=function(c,d){k.xra(c,d)};return m}); define("tdv/player/view/webgl/system/scene/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/scene/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/scene/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(k){this.DQa.v.length&&this.DQa.v.slice().forEach(g.Wa);this.scenes.Da.length&& this.scenes.Da.slice().forEach(g.update);this.scenes.v.length&&this.scenes.v.slice().forEach(function(e){g.frame(e,k)});g.xra(this.T,this.Vn.v.slice());this.EQa.v.length&&this.EQa.v.slice().forEach(g.ya)};a.J={};a.J.DQa=[n.Scene,n.Vp.aa];a.J.scenes=[n.Scene,n.Vp];a.J.EQa=[n.Scene.aa,n.Vp];a.J.Vn=[n.wj,n.Gu];a.o_=m.extend(h,function(){h.apply(this,arguments)});a.o_.prototype.Yc=function(k){this.scenes.v.length&&this.scenes.v.slice().forEach(function(e){g.boa(e,k)})};a.o_.J={};a.o_.J.scenes=[n.Scene, n.Vp];return a}); define("tdv/player/view/util/ColorPicker",["require","exports","three.mod","tdv/player/view/util/Device"],function(a,m,h,n){function g(c,d,f){try{if(c instanceof CanvasRenderingContext2D)return c.getImageData(d,f,1,1).data;if(c instanceof HTMLCanvasElement)return c.P3a?[0,0,0,0]:c.getContext("2d").getImageData(d,f,1,1).data;e.drawImage(c,d,f,1,1,0,0,1,1);return e.getImageData(0,0,1,1).data}catch(l){return[0,0,0,0]}}function k(c,d,f){c<0?c=f==h.RepeatWrapping?d+c%d:f==h.MirroredRepeatWrapping?Math.floor(Math.abs(c/ d))%2==0?Math.abs(c%d):d-1+c%d:0:c>=d&&(c=f==h.RepeatWrapping?c%d:f==h.MirroredRepeatWrapping?Math.floor(c/d)%2==1?d-1-c%d:c%d:d-1);return c}a=function(){function c(d){this.source=d;d instanceof HTMLCanvasElement?(this.canvas=d,this.scale=1):(this.canvas=document.createElement("canvas"),this.scale=n.Nd()==n.vj?.5:1,this.canvas.width=Math.round(d.width*this.scale),this.canvas.height=Math.round(d.height*this.scale));this.context=this.canvas.getContext("2d");this.context.globalCompositeOperation="copy"; this.canvas!=d&&this.context.drawImage(d,0,0,d.width,d.height,0,0,this.canvas.width,this.canvas.height)}c.prototype.transparent=function(d,f){return c.transparent(this.context,Math.round(d*this.scale),Math.round(f*this.scale))};c.prototype.ax=function(d,f){return c.ax(this.context,Math.round(d*this.scale),Math.round(f*this.scale))};c.prototype.info=function(d,f){return c.info(this.context,Math.round(d*this.scale),Math.round(f*this.scale))};c.prototype.dispose=function(){this.canvas!=this.source&& (this.canvas.width=this.canvas.height=0)};c.Vmb=function(d,f,l){if(!d.image||!d.image.width||!d.image.height)return!0;f=k(Math.round(f*d.image.width),d.image.width,d.wrapS);l=k(Math.round((1-l)*d.image.height),d.image.height,d.wrapT);return!c.transparent(d.image,f,l)};c.transparent=function(d,f,l){return!c.ax(d,f,l)};c.ax=function(d,f,l){var p=d.tagName;return p&&p!="VIDEO"?g(d,f,l)[3]>0:!0};c.info=function(d,f,l){d=g(d,f,l);f=d[3];return{ax:f>0,opacity:f,color:"#"+b[d[0]]+b[d[1]]+b[d[2]]}};return c}(); m=document.createElement("canvas");m.width=m.height=1;var e=m.getContext("2d");e.globalCompositeOperation="copy";var b=function(){for(var c=Array(256),d=0;d<16;d++)c[d]="0"+d.toString(16);for(;d<256;d++)c[d]=d.toString(16);return c}();return a}); define("tdv/player/view/webgl/system/selection/Behaviour","require tdv/constants/EventName tdv/player/view/util/ColorPicker tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/RaycastUtil tdv/view/constants/Cursor".split(" "),function(a){function m(C){this.Bh=C;this.GN=this.zy=this.Oe=this.Lo=null;this.AT=void 0;this.Jy=!1;this.update()}function h(C,B,H,E){this.F=C;this.sa=B;this.point=H;this.normal=E}function n(C){return{x:C.x,y:C.y,z:C.z}} function g(C,B,H,E){var G=B.T,N=C.get(G);N||C.set(G,N=[]);C=N.indexOf(B);H&&C<0?N.push(B):!H&&C>=0&&N.splice(C,1);E.delete(G)}var k=a("tdv/constants/EventName"),e=a("tdv/player/view/util/ColorPicker"),b=a("tdv/player/view/webgl/components"),c=a("tdv/player/view/webgl/system/util/entity/Util"),d=a("tdv/player/view/webgl/system/util/RaycastUtil"),f=a("tdv/view/constants/Cursor");m.prototype.update=function(){var C=this.Bh.getComponent(b.yc);C.Tt=this;this.gV(C&&C.enabled?C.WD:null);this.fV(C&&C.enabled? C.f7:null)};m.prototype.frame=function(){this.wZa();var C=this.Bh.getComponent(b.yc);C&&C.rna?this.KCa():this.ika(q)};m.prototype.gV=function(C){if(this.Lo!=C){if(this.Lo)for(var B in u)this.Lo.h(B,this.Ee,this);if(this.Lo=C)for(B in u)this.Lo.bind(B,this.Ee,this,!0)}};m.prototype.Ee=function(C){var B=this.Bh.getComponent(b.yc);B&&B.enabled&&(B=u[C.name])&&B.call(this,C)};m.prototype.fV=function(C){this.Oe!=C&&(this.Oe&&this.Jy&&this.Oe.pop(f.qf),(this.Oe=C)&&this.Jy&&this.Oe.push(f.qf))};m.prototype.tg= function(C){this.Mq(C);this.DM&&v.indexOf(this.Bh.T)==-1&&w.indexOf(this.Bh.T)==-1?this.ika(q):this.ika(p)};m.prototype.fz=function(C){this.Mq(C);(C=this.Hfa())&&this.T5(k.ma,C)};m.prototype.$M=function(C){this.Mq(C);(C=this.Hfa())&&this.T5(k.fi,C)};m.prototype.uq=function(C){this.DM=!0;this.Mq(C);if(C=this.Hfa())this.ffa=C.F,this.ifa=C.F.getComponent(b.wd).M,this.T5(k.Sa,C)};m.prototype.gz=function(C){this.DM=!1;this.Mq(C);if(this.ffa)var B=(B=this.ffa.getComponent(b.wd))&&B.M;!B&&this.ifa&&(B=this.ifa); this.ifa=this.ffa=null;B&&(C=this.tya(),B.o(k.$a,C),B=this.Bh.getComponent(b.yc),B.M&&B.M.o(k.$a,C))};m.prototype.Mq=function(C){this.Ad=C.x;this.Bd=C.y;this.PM=C.pageX;this.QM=C.pageY};m.prototype.ika=function(C){var B=(new Date).getTime()+C;this.AT&&B>=this.AT||(this.AT=B,clearTimeout(this.GN),this.GN=setTimeout(function(){this.GN=null;this.AT=void 0;this.KCa()}.bind(this),C))};m.prototype.KCa=function(){var C=this.B2a();this.OEa(C&&C.F);C&&this.T5(k.gb,C)};m.prototype.rqa=function(C,B,H){var E= this.Ad,G=this.Bd,N=this.PM,O=this.QM;this.QM=this.PM=this.Bd=this.Ad=void 0;C=this.Sfa(C,[]);B=this.Lfa(C,B,H);var R;B&&(R=this.kza(B));this.Ad=E;this.Bd=G;this.PM=N;this.QM=O;return R};m.prototype.B2a=function(){var C=this.Bh.getComponent(b.yc);if(!C)return null;var B=this.A2a();return this.Lfa(B,C.origin,C.direction)||null};m.prototype.Hfa=function(){var C=this.Bh.getComponent(b.yc);if(!C)return null;var B=this.y1a();return this.Lfa(B,C.origin,C.direction)||null};m.prototype.OEa=function(C){if(this.zy!= C){if(this.zy!=null!=(C!=null)){var B=this.Bh.getComponent(b.yc);B&&B.M&&B.M.o(C?k.uc:k.Eb)}this.zy&&this.rGa(this.zy,k.Eb);(this.zy=C)&&this.rGa(this.zy,k.uc);C=this.zy&&this.zy.getComponent(b.wd);C=!!C&&C.pB;this.Jy!=C&&(this.Jy=C,this.Oe&&(this.Jy?this.Oe.push(f.qf):this.Oe.pop(f.qf)))}};m.prototype.Lfa=function(C,B,H){var E=Array.from(C.keys());B=this.A3a(E,B,H);for(H=0;H0;p.castShadow=p.intensity>0&&f.castShadow;p.distance=f.distance;p.angle=f.angle*Math.PI/180;p.penumbra= f.penumbra;p.decay=f.decay;p.target.position.set(0,0,1);p.add(p.target);var q=p.castShadow?f.Pra:16;q!=p.shadow.mapSize.width&&(p.shadow.dispose(),p.shadow=p.shadow.clone(),p.shadow.mapSize.width=p.shadow.mapSize.height=q);p.shadow.bias=f.Ora;p.shadow.radius=f.Qra;f.WW!=!!l.zp&&(l=d.O(g.Iu),f.WW?l.zp=new h.SpotLightHelper(p):(l.zp.dispose(),l.zp=null))};c.prototype.gg=function(d){this.Bsa(d)};c.prototype.Bsa=function(d){var f=d.getComponent(g.Iu);if(f=f&&f.zp)d=e.Sf(d),f.parent!=d&&(f.parent&&f.parent.remove(f), d&&d.add(f)),f.update()};c.prototype.Ca=function(d){var f=d.getComponent(g.Iu),l=f&&f.zp;l&&l.parent&&l.parent.remove(l);l&&l.dispose();f=f.light;f.parent&&f.parent.remove(f);d.ka(g.Iu);d.ka(g.Object3D)};c.J={};return c}(k);a.J={};a.J.lE=[g.SpotLight,g.Iu.aa];a.J.Ei=[g.SpotLight,g.Iu];a.J.mE=[g.SpotLight.aa,g.Iu];return a}); define("tdv/player/view/webgl/system/solidMaterial/Behaviour",["require","tdv/player/view/util/Color","tdv/player/view/webgl/components"],function(a){function m(g){this.B=g;this.Aa=null;this.update()}var h=a("tdv/player/view/util/Color"),n=a("tdv/player/view/webgl/components");m.prototype.update=function(){this.Aa||(this.Aa=new THREE.MeshBasicMaterial,this.Aa.transparent=!0,this.B.N(n.Material).material=this.Aa);var g=this.B.getComponent(n.xd);this.Aa.color=h.Ip(g.color||"#ffffff");this.Aa.opacity= g.opacity||0;this.Aa.depthTest=!!g.depthTest;this.Aa.side=g.doubleSided?THREE.DoubleSide:THREE.FrontSide;this.Aa.visible=this.Aa.opacity>0;this.Aa.needsUpdate=!0};m.prototype.dispose=function(){this.Aa&&(this.Aa.dispose(),this.Aa=null,this.B.ka(n.Material));this.B=null};m.Wa=function(g){g.N(n.Hx).manager=new m(g)};m.ya=function(g){var k=g.getComponent(n.Hx);k.manager.dispose();k.manager=null;g.ka(n.Hx)};m.update=function(g){g.getComponent(n.Hx).manager.update()};return m}); define("tdv/player/view/webgl/system/solidMaterial/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/solidMaterial/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/solidMaterial/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.On.v.length&&this.On.v.slice().forEach(g.Wa); this.materials.Da.length&&this.materials.Da.slice().forEach(g.update);this.Pn.v.length&&this.Pn.v.slice().forEach(g.ya)};a.J={};a.J.On=[n.xd,n.Hx.aa];a.J.materials=[n.xd,n.Hx];a.J.Pn=[n.xd.aa,n.Hx];return a}); define("tdv/player/view/webgl/system/sphere/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/material/Util"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/material/Util");a=m.extend(h,function(){h.apply(this,arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this)});a.prototype.Yc= function(){this.fSa.v.length&&this.fSa.v.slice().forEach(this.xb);this.eSa.Da.length&&this.eSa.Da.slice().forEach(this.ib);this.gSa.v.length&&this.gSa.v.slice().forEach(this.Ca);this.hSa.v.length&&this.hSa.v.slice().forEach(this.Ca)};a.prototype.xb=function(k){k.N(n.Object3D).sa=new THREE.Mesh(new THREE.SphereGeometry);k.N(n.aG);this.ib(k)};a.prototype.ib=function(k){var e=k.getComponent(n.Object3D).sa;g.ND(e,k.getComponent(n.Material).material);k=k.getComponent(n.Sphere);var b=e.geometry;if(b.radius!= k.radius||b.widthSegments!=k.widthSegments||b.heightSegments!=k.heightSegments)b.dispose(),b=new THREE.SphereGeometry(k.radius,k.widthSegments,k.heightSegments),e.geometry=b,e.needsUpdate=!0;k=k.renderOrder||0;e.renderOrder!=k&&(e.renderOrder=k,e.needsUpdate=!0)};a.prototype.Ca=function(k){var e=k.getComponent(n.Object3D);(e=e&&e.sa)&&e.geometry&&(e.geometry.dispose(),e.geometry=null);e&&g.ND(e,null);k.ka(n.aG);k.ka(n.Object3D)};a.J={};a.J.fSa=[n.Sphere,n.Material,n.aG.aa];a.J.eSa=[n.Sphere,n.Material, n.aG];a.J.gSa=[n.Sphere.aa,n.aG];a.J.hSa=[n.Material.aa,n.aG];return a}); define("tdv/player/view/webgl/system/sprite/Behaviour",["require","tdv/player/view/util/XR","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util","tdv/player/view/webgl/system/util/material/Util"],function(a){function m(c){this.B=c;this.Bb=null;this.Bda=90;this.Cda=100;this.Pa=this.Ha=void 0;this.sV=!1;this.ne=1;this.wc=this.B.O(n.Sprite).Gi=this.B.O(n.Object3D,!0).sa=new THREE.Sprite;this.wc.material.opacity=0;this.Qj();this.update();this.frame()}var h=a("tdv/player/view/util/XR"), n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/entity/Util"),k=a("tdv/player/view/webgl/system/util/material/Util");m.prototype.update=function(){var c=this.B.getComponent(n.Sprite);this.Ha=c.height;this.Pa=c.width;this.sV=c.sizeAttenuation;this.wc.center.x=c.wO;this.wc.center.y=1-c.xO;this.ne=c.scale;this.En();this.wc.needsUpdate=!0};m.prototype.frame=function(){this.Bb||(this.Bb=g.Sf(this.B));this.et();this.Qj();this.En()};m.prototype.et=function(){if(this.Bb){var c= g.uw(this.Bb);if(c&&c.isPerspectiveCamera){var d=g.dE(this.Bb);if(this.Bda!=c.fov||this.Cda!=d)this.Bda=c.fov,this.Cda=d,this.En(),this.wc.needsUpdate=!0}}};m.prototype.Qj=function(){var c=this.Bb?this.B.getComponent(n.Material).material:null;c&&k.ND(this.wc,c);this.wc.renderOrder=this.B.getComponent(n.Sprite).renderOrder;this.wc.material&&this.wc.material.sizeAttenuation!=this.sV&&(this.wc.material.sizeAttenuation=this.sV,this.wc.material.needsUpdate=!0)};m.prototype.En=function(){var c=this.Ha; this.sV||(c/=this.Cda/(2*Math.tan(this.Bda*b/2)));var d=this.ne;this.wc.parent&&(this.wc.parent.getWorldScale(e),d/=Math.max(e.x,e.y,e.z));h.isPresenting&&this.sV&&(d/=h.zi);c*=d;d=c*this.Pa/this.Ha;var f=this.B.getComponent(n.ta)||this.B.N(n.ta);if(f.Le!=d||f.Ye!=c||f.Gh!=1)f=this.B.O(n.ta,!0),f.Le=d,f.Ye=c,f.Gh=1};var e=new THREE.Vector3,b=Math.PI/180;m.prototype.dispose=function(){};m.Wa=function(c){c.N(n.Ju).manager=new m(c)};m.ya=function(c){var d=c.getComponent(n.Ju);d.manager.dispose();d.manager= null;c.ka(n.Ju);c.ka(n.Object3D)};m.update=function(c){c.getComponent(n.Ju).manager.update()};m.frame=function(c){c.getComponent(n.Ju).manager.frame()};return m}); define("tdv/player/view/webgl/system/sprite/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/sprite/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/sprite/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.jSa.v.length&&this.jSa.v.slice().forEach(g.Wa);this.U$.Da.length&& this.U$.v.slice().forEach(g.update);this.U$.v.length&&this.U$.v.slice().forEach(g.frame);this.kSa.v.length&&this.kSa.v.slice().forEach(g.ya);this.lSa.v.length&&this.lSa.v.slice().forEach(g.ya)};a.J={};a.J.jSa=[n.Material,n.Sprite,n.Ju.aa];a.J.U$=[n.Sprite,n.Material,n.Ju];a.J.kSa=[n.Sprite.aa,n.Ju];a.J.lSa=[n.Material.aa,n.Ju];return a}); define("tdv/player/view/webgl/system/transform/System","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){function m(f,l,p){for(;fl+180;)f-=360;return h(f,l,p)}function h(f,l,p){if(!p)return l;f=(l-f)*(1-p);Math.abs(f)<1E-5&&(f=0);return l-f}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/events/Event"),e=a("tdv/player/view/webgl/ecs/System"), b=a("tdv/player/view/webgl/components"),c=a("tdv/player/view/webgl/system/util/entity/Util");a=n.extend(e,function(){e.apply(this,arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this)});a.prototype.Yc=function(f,l){this.gY.v.length&&this.gY.v.slice().forEach(this.xb);this.Lt.fe.length&&this.Lt.fe.slice().forEach(function(p){this.ib(p,f,l)}.bind(this));this.Lt.Da.length&&this.Lt.Da.slice().forEach(function(p){this.ib(p,f,l)}.bind(this));this.qOa.v.length&&this.qOa.v.slice().forEach(function(p){this.ib(p, f,l)}.bind(this));this.vKa.v.length&&this.vKa.v.slice().forEach(this.Ca);this.wKa.v.length&&this.wKa.v.slice().forEach(this.Ca)};a.prototype.xb=function(f){var l=f.getComponent(b.ta),p=f.N(b.Gg);p.positionX=l.positionX;p.positionY=l.positionY;p.positionZ=l.positionZ;p.Yd=l.Yd;p.fd=l.fd;p.Xe=l.Xe;p.mf=l.mf;p.scale=l.scale;p.Le=l.Le;p.Ye=l.Ye;p.Gh=l.Gh;p.translationX=l.translationX;p.translationY=l.translationY;p.Ze=l.Ze;this.updateMatrixWorld(f)};a.prototype.ib=function(f){var l=f.getComponent(b.ta), p=f.getComponent(b.Gg),q=l.easing||0;q?f.getComponent(b.dG)||f.N(b.dG):f.ka(b.dG);var r=null;l.bA!==p.bA&&(r||(r=f.O(b.Gg)),r.bA=l.bA);l.positionX!==p.positionX&&(r||(r=f.O(b.Gg)),r.positionX=h(r.positionX,l.positionX,q));l.positionY!==p.positionY&&(r||(r=f.O(b.Gg)),r.positionY=h(r.positionY,l.positionY,q));l.positionZ!==p.positionZ&&(r||(r=f.O(b.Gg)),r.positionZ=h(r.positionZ,l.positionZ,q));l.Yd!==p.Yd&&(r||(r=f.O(b.Gg)),r.Yd=m(r.Yd,l.Yd,q));l.fd!==p.fd&&(r||(r=f.O(b.Gg)),r.fd=m(r.fd,l.fd,q));l.Xe!== p.Xe&&(r||(r=f.O(b.Gg)),r.Xe=m(r.Xe,l.Xe,q));l.scale!==p.scale&&(r||(r=f.O(b.Gg)),r.scale=l.scale);l.Le!==p.Le&&(r||(r=f.O(b.Gg)),r.Le=l.Le);l.Ye!==p.Ye&&(r||(r=f.O(b.Gg)),r.Ye=l.Ye);l.Gh!==p.Gh&&(r||(r=f.O(b.Gg)),r.Gh=l.Gh);l.translationX!==p.translationX&&(r||(r=f.O(b.Gg)),r.translationX=h(r.translationX,l.translationX,q));l.translationY!==p.translationY&&(r||(r=f.O(b.Gg)),r.translationY=h(r.translationY,l.translationY,q));l.Ze!==p.Ze&&(r||(r=f.O(b.Gg)),r.Ze=h(r.Ze,l.Ze,q));r?this.updateMatrixWorld(f): f.ka(b.dG)};var d=new THREE.Vector3;a.prototype.updateMatrixWorld=function(f){c.fZ(f,f.getComponent(b.Gg));var l=f.getComponent(b.ta).M;l&&(c.getWorldPosition(f,d),f={position:{}},f.position.x=d.x,f.position.y=d.y,f.position.z=d.z,l.o(new k(g.Mm,f)))};a.prototype.Ca=function(f){f.ka(b.Gg);f.ka(b.dG)};a.J={};a.J.Lt=[b.Object3D,b.ta,b.Gg];a.J.gY=[b.Object3D,b.ta,b.Gg.aa];a.J.qOa=[b.Object3D,b.ta,b.Gg,b.dG];a.J.vKa=[b.Object3D.aa,b.ta,b.Gg];a.J.wKa=[b.ta.aa,b.Gg];return a}); define("tdv/player/view/webgl/system/transformControls/TransformControlsGizmo",["require","three.mod","tdv/constants/RenderOrder"],function(a){const m=a("three.mod"),h=a("tdv/constants/RenderOrder");class n extends m.Object3D{constructor(t){function u(L,U){L=new m.TorusGeometry(L,.0075,3,64,U*Math.PI*2);L.rotateY(Math.PI/2);L.rotateX(Math.PI/2);return L}function v(L){const U=new m.Object3D;for(const Y in L)for(let aa=L[Y].length;aa--;){const ba=L[Y][aa][0].clone();var T=L[Y][aa][1];const ea=L[Y][aa][2], ia=L[Y][aa][3],da=L[Y][aa][4];ba.name=Y;ba.tag=da;T&&ba.position.set(T[0],T[1],T[2]);ea&&ba.rotation.set(ea[0],ea[1],ea[2]);ia&&ba.scale.set(ia[0],ia[1],ia[2]);ba.updateMatrix();T=ba.geometry.clone();T.applyMatrix4(ba.matrix);ba.geometry=T;ba.renderOrder=h.nWa;ba.position.set(0,0,0);ba.rotation.set(0,0,0);ba.scale.set(1,1,1);U.add(ba)}return U}super();this.type="TransformControlsGizmo";this.properties=t;var w=new m.MeshBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0}), x=new m.LineBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0});t=w.clone();t.opacity=.15;x=x.clone();x.opacity=.5;var y=w.clone();y.color.setHex(16711680);const z=w.clone();z.color.setHex(65280);const A=w.clone();A.color.setHex(255);const D=w.clone();D.color.setHex(16711680);D.opacity=.5;const F=w.clone();F.color.setHex(65280);F.opacity=.5;const C=w.clone();C.color.setHex(255);C.opacity=.5;const B=w.clone();B.opacity=.25;var H=w.clone();H.color.setHex(16776960);H.opacity= .25;w.clone().color.setHex(16776960);var E=w.clone();E.color.setHex(7895160);var G=new m.CylinderGeometry(0,.04,.1,12);G.translate(0,.05,0);const N=new m.BoxGeometry(.08,.08,.08);N.translate(0,.04,0);w=new m.BufferGeometry;w.setAttribute("position",new m.Float32BufferAttribute([0,0,0,1,0,0,0,0,0,0,0,0],3));const O=new m.CylinderGeometry(.0075,.0075,.5,3);O.translate(0,.25,0);G={X:[[new m.Mesh(G,y),[.5,0,0],[0,0,-Math.PI/2]],[new m.Mesh(G,y),[-.5,0,0],[0,0,Math.PI/2]],[new m.Mesh(O,y),[0,0,0],[0,0, -Math.PI/2]]],Y:[[new m.Mesh(G,z),[0,.5,0]],[new m.Mesh(G,z),[0,-.5,0],[Math.PI,0,0]],[new m.Mesh(O,z)]],Z:[[new m.Mesh(G,A),[0,0,.5],[Math.PI/2,0,0]],[new m.Mesh(G,A),[0,0,-.5],[-Math.PI/2,0,0]],[new m.Mesh(O,A),null,[Math.PI/2,0,0]]],XYZ:[[new m.Mesh(new m.OctahedronGeometry(.1,0),B.clone()),[0,0,0]]],XY:[[new m.Mesh(new m.BoxGeometry(.15,.15,.01),C.clone()),[.15,.15,0]]],YZ:[[new m.Mesh(new m.BoxGeometry(.15,.15,.01),D.clone()),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new m.Mesh(new m.BoxGeometry(.15, .15,.01),F.clone()),[.15,0,.15],[-Math.PI/2,0,0]]]};const R={X:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[.3,0,0],[0,0,-Math.PI/2]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,.3,0]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,-.3,0],[0,0,Math.PI]]],Z:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,0,.3],[Math.PI/2,0,0]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,0,-.3],[-Math.PI/ 2,0,0]]],XYZ:[[new m.Mesh(new m.OctahedronGeometry(.2,0),t)]],XY:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[.15,.15,0]]],YZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[.15,0,.15],[-Math.PI/2,0,0]]]},Q={START:[[new m.Mesh(new m.OctahedronGeometry(.01,2),x),null,null,null,"helper"]],END:[[new m.Mesh(new m.OctahedronGeometry(.01,2),x),null,null,null,"helper"]],DELTA:[[new m.Line(function(){const L=new m.BufferGeometry; L.setAttribute("position",new m.Float32BufferAttribute([0,0,0,1,1,1],3));return L}(),x),null,null,null,"helper"]],X:[[new m.Line(w,x.clone()),[-1E3,0,0],null,[1E6,1,1],"helper"]],Y:[[new m.Line(w,x.clone()),[0,-1E3,0],[0,0,Math.PI/2],[1E6,1,1],"helper"]],Z:[[new m.Line(w,x.clone()),[0,0,-1E3],[0,-Math.PI/2,0],[1E6,1,1],"helper"]]};H={XYZE:[[new m.Mesh(u(.5,1),E),null,[0,Math.PI/2,0]]],X:[[new m.Mesh(u(.5,.5),y)]],Y:[[new m.Mesh(u(.5,.5),z),null,[0,0,-Math.PI/2]]],Z:[[new m.Mesh(u(.5,.5),A),null,[0, Math.PI/2,0]]],E:[[new m.Mesh(u(.75,1),H),null,[0,Math.PI/2,0]]]};E={AXIS:[[new m.Line(w,x.clone()),[-1E3,0,0],null,[1E6,1,1],"helper"]]};const K={XYZE:[[new m.Mesh(new m.SphereGeometry(.25,10,8),t)]],X:[[new m.Mesh(new m.TorusGeometry(.5,.1,4,24),t),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new m.Mesh(new m.TorusGeometry(.5,.1,4,24),t),[0,0,0],[Math.PI/2,0,0]]],Z:[[new m.Mesh(new m.TorusGeometry(.5,.1,4,24),t),[0,0,0],[0,0,-Math.PI/2]]],E:[[new m.Mesh(new m.TorusGeometry(.75,.1,2,24),t)]]};y={X:[[new m.Mesh(N, y),[.5,0,0],[0,0,-Math.PI/2]],[new m.Mesh(O,y),[0,0,0],[0,0,-Math.PI/2]],[new m.Mesh(N,y),[-.5,0,0],[0,0,Math.PI/2]]],Y:[[new m.Mesh(N,z),[0,.5,0]],[new m.Mesh(O,z)],[new m.Mesh(N,z),[0,-.5,0],[0,0,Math.PI]]],Z:[[new m.Mesh(N,A),[0,0,.5],[Math.PI/2,0,0]],[new m.Mesh(O,A),[0,0,0],[Math.PI/2,0,0]],[new m.Mesh(N,A),[0,0,-.5],[-Math.PI/2,0,0]]],XY:[[new m.Mesh(new m.BoxGeometry(.15,.15,.01),C),[.15,.15,0]]],YZ:[[new m.Mesh(new m.BoxGeometry(.15,.15,.01),D),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new m.Mesh(new m.BoxGeometry(.15, .15,.01),F),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new m.Mesh(new m.BoxGeometry(.1,.1,.1),B.clone())]]};t={X:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[.3,0,0],[0,0,-Math.PI/2]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,.3,0]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,-.3,0],[0,0,Math.PI]]],Z:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,0,.3],[Math.PI/2,0,0]],[new m.Mesh(new m.CylinderGeometry(.2, 0,.6,4),t),[0,0,-.3],[-Math.PI/2,0,0]]],XY:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[.15,.15,0]]],YZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.2),t),[0,0,0]]]};x={X:[[new m.Line(w,x.clone()),[-1E3,0,0],null,[1E6,1,1],"helper"]],Y:[[new m.Line(w,x.clone()),[0,-1E3,0],[0,0,Math.PI/2],[1E6,1,1],"helper"]],Z:[[new m.Line(w,x.clone()),[0,0,-1E3], [0,-Math.PI/2,0],[1E6,1,1],"helper"]]};this.zA={};this.Tt={};this.DJ={};this.add(this.zA.translate=v(G));this.add(this.zA.rotate=v(H));this.add(this.zA.scale=v(y));this.add(this.Tt.translate=v(R));this.add(this.Tt.rotate=v(K));this.add(this.Tt.scale=v(t));this.add(this.DJ.translate=v(Q));this.add(this.DJ.rotate=v(E));this.add(this.DJ.scale=v(x));this.Tt.translate.visible=!1;this.Tt.rotate.visible=!1;this.Tt.scale.visible=!1}updateMatrixWorld(t){const u=(this.properties.mode==="scale"?"local":this.properties.Vra)=== "local"?this.properties.MK:l;this.zA.translate.visible=this.properties.mode==="translate";this.zA.rotate.visible=this.properties.mode==="rotate";this.zA.scale.visible=this.properties.mode==="scale";this.DJ.translate.visible=this.properties.mode==="translate";this.DJ.rotate.visible=this.properties.mode==="rotate";this.DJ.scale.visible=this.properties.mode==="scale";let v=[];v=v.concat(this.Tt[this.properties.mode].children);v=v.concat(this.zA[this.properties.mode].children);v=v.concat(this.DJ[this.properties.mode].children); for(let x=0;x.9&&(y.visible=!1)),this.properties.axis==="Y"&&(k.setFromEuler(e.set(0,0,Math.PI/2)),y.quaternion.copy(u).multiply(k),Math.abs(b.copy(q).applyQuaternion(u).dot(this.properties.eye))>.9&&(y.visible=!1)),this.properties.axis==="Z"&&(k.setFromEuler(e.set(0,Math.PI/2,0)),y.quaternion.copy(u).multiply(k),Math.abs(b.copy(r).applyQuaternion(u).dot(this.properties.eye))>.9&& (y.visible=!1)),this.properties.axis==="XYZE"&&(k.setFromEuler(e.set(0,Math.PI/2,0)),b.copy(this.properties.LE),y.quaternion.setFromRotationMatrix(d.lookAt(c,b,q)),y.quaternion.multiply(k),y.visible=this.properties.yk),this.properties.axis==="E"&&(y.visible=!1)):y.name==="START"?(y.position.copy(this.properties.LK),y.visible=this.properties.yk):y.name==="END"?(y.position.copy(this.properties.rB),y.visible=this.properties.yk):y.name==="DELTA"?(y.position.copy(this.properties.LK),y.quaternion.copy(this.properties.Vsa), g.set(1E-10,1E-10,1E-10).add(this.properties.LK).sub(this.properties.rB).multiplyScalar(-1),g.applyQuaternion(this.properties.Vsa.clone().invert()),y.scale.copy(g),y.visible=this.properties.yk):(y.quaternion.copy(u),this.properties.yk?y.position.copy(this.properties.LK):y.position.copy(this.properties.rB),this.properties.axis&&(y.visible=this.properties.axis.search(y.name)!==-1))):(y.quaternion.copy(u),this.properties.mode==="translate"||this.properties.mode==="scale"?(y.name==="X"&&Math.abs(b.copy(p).applyQuaternion(u).dot(this.properties.eye))> .99&&(y.scale.set(1E-10,1E-10,1E-10),y.visible=!1),y.name==="Y"&&Math.abs(b.copy(q).applyQuaternion(u).dot(this.properties.eye))>.99&&(y.scale.set(1E-10,1E-10,1E-10),y.visible=!1),y.name==="Z"&&Math.abs(b.copy(r).applyQuaternion(u).dot(this.properties.eye))>.99&&(y.scale.set(1E-10,1E-10,1E-10),y.visible=!1),y.name==="XY"&&Math.abs(b.copy(r).applyQuaternion(u).dot(this.properties.eye))<.2&&(y.scale.set(1E-10,1E-10,1E-10),y.visible=!1),y.name==="YZ"&&Math.abs(b.copy(p).applyQuaternion(u).dot(this.properties.eye))< .2&&(y.scale.set(1E-10,1E-10,1E-10),y.visible=!1),y.name==="XZ"&&Math.abs(b.copy(q).applyQuaternion(u).dot(this.properties.eye))<.2&&(y.scale.set(1E-10,1E-10,1E-10),y.visible=!1)):this.properties.mode==="rotate"&&(f.copy(u),b.copy(this.properties.eye).applyQuaternion(k.copy(u).invert()),y.name.search("E")!==-1&&y.quaternion.setFromRotationMatrix(d.lookAt(this.properties.eye,c,q)),y.name==="X"&&(k.setFromAxisAngle(p,Math.atan2(-b.y,b.z)),k.multiplyQuaternions(f,k),y.quaternion.copy(k)),y.name==="Y"&& (k.setFromAxisAngle(q,Math.atan2(b.x,b.z)),k.multiplyQuaternions(f,k),y.quaternion.copy(k)),y.name==="Z"&&(k.setFromAxisAngle(r,Math.atan2(b.y,b.x)),k.multiplyQuaternions(f,k),y.quaternion.copy(k))),y.visible=y.visible&&(y.name.indexOf("X")===-1||this.properties.VRa),y.visible=y.visible&&(y.name.indexOf("Y")===-1||this.properties.WRa),y.visible=y.visible&&(y.name.indexOf("Z")===-1||this.properties.XRa),y.visible=y.visible&&(y.name.indexOf("E")===-1||this.properties.VRa&&this.properties.WRa&&this.properties.XRa), y.material.Ne=y.material.Ne||y.material.color.clone(),y.material.Of=y.material.Of||y.material.opacity,y.material.color.copy(y.material.Ne),y.material.opacity=y.material.Of,this.properties.enabled&&this.properties.axis&&(y.name===this.properties.axis?(y.material.color.setHex(16776960),y.material.opacity=1):this.properties.axis.split("").some(function(z){return y.name===z})&&(y.material.color.setHex(16776960),y.material.opacity=1)))}super.updateMatrixWorld(t)}}const g=new m.Vector3,k=new m.Quaternion, e=new m.Euler,b=new m.Vector3(0,1,0),c=new m.Vector3(0,0,0),d=new m.Matrix4,f=new m.Quaternion,l=new m.Quaternion,p=new m.Vector3(1,0,0),q=new m.Vector3(0,1,0),r=new m.Vector3(0,0,1);return n}); define("tdv/player/view/webgl/system/transformControls/TransformControlsPlane",["require","three.mod"],function(a){const m=a("three.mod");class h extends m.Mesh{constructor(r){super(new m.PlaneGeometry(1E5,1E5,2,2),new m.MeshBasicMaterial({visible:!1,wireframe:!0,side:m.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1}));this.properties=r;this.type="TransformControlsPlane"}updateMatrixWorld(r){let t=this.properties.Vra;this.position.copy(this.properties.rB);this.properties.mode==="scale"&&(t="local"); l.copy(c).applyQuaternion(t==="local"?this.properties.MK:k);p.copy(d).applyQuaternion(t==="local"?this.properties.MK:k);q.copy(f).applyQuaternion(t==="local"?this.properties.MK:k);g.copy(p);switch(this.properties.mode){case "translate":case "scale":switch(this.properties.axis){case "X":g.copy(this.properties.eye).cross(l);e.copy(l).cross(g);break;case "Y":g.copy(this.properties.eye).cross(p);e.copy(p).cross(g);break;case "Z":g.copy(this.properties.eye).cross(q);e.copy(q).cross(g);break;case "XY":e.copy(q); break;case "YZ":e.copy(l);break;case "XZ":g.copy(q);e.copy(p);break;case "XYZ":case "E":e.set(0,0,0)}break;default:e.set(0,0,0)}e.length()===0?this.quaternion.copy(this.properties.VIa):(b.lookAt(n.set(0,0,0),e,g),this.quaternion.setFromRotationMatrix(b));super.updateMatrixWorld(r)}}const n=new m.Vector3,g=new m.Vector3(0,1,0),k=new m.Quaternion,e=new m.Vector3,b=new m.Matrix4,c=new m.Vector3(1,0,0),d=new m.Vector3(0,1,0),f=new m.Vector3(0,0,1),l=new m.Vector3,p=new m.Vector3,q=new m.Vector3;return h}); define("tdv/player/view/webgl/system/transformControls/TransformControls",["require","three.mod","tdv/player/view/webgl/system/transformControls/TransformControlsGizmo","tdv/player/view/webgl/system/transformControls/TransformControlsPlane"],function(a){function m(r,t,u){r=t.intersectObject(r,!0);for(t=0;t{r.geometry&&r.geometry.dispose();r.material&&r.material.dispose()})}attach(r){this.object=r;this.visible=!0;return this}detach(){this.object=void 0; this.visible=!1;this.axis=null;return this}reset(){this.enabled&&this.yk&&(this.object.position.copy(this.vqa),this.object.quaternion.copy(this.bK),this.object.scale.copy(this.Xqa),this.dispatchEvent(d),this.dispatchEvent(p),this.VA.copy(this.UA))}setSize(r){this.size=r}}return q}); define("tdv/player/view/webgl/system/transformControls/System","require exports three.mod tdv/constants/EventName tdv/events/Event tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System tdv/player/view/webgl/system/util/RaycastUtil tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/transformControls/TransformControls tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){function l(w){var x=this,y=x.getComponent(k.Om),z=x.getComponent(k.Hh),A=y.kaa; y=y.Gk;if(A&&y)if(r.mKa.find(function(F){return F!=x}))A.yk&&A.PPa(b.G6(v,A.camera,y));else{var D=y.getComponent(k.yc).WD;w.name==n.Sa?(A.jjb(b.G6(v,A.camera,y)),D.h(n.ma,l,x),A.yk&&(D.bind(n.ma,l,x,!0),A.object.userData={position:A.object.position.clone(),quaternion:A.object.quaternion.clone(),scale:A.object.scale.clone()})):w.name==n.$a?A.PPa(b.G6(v,A.camera,y)):w.name==n.gb?(f.isPresenting||D.h(n.ma,l,x),A.kjb(b.G6(v,A.camera,y))):w.name==n.ma&&(A.reset(),A.object.position.copy(A.object.userData.position), A.object.quaternion.copy(A.object.userData.quaternion),A.object.scale.copy(A.object.userData.scale),y=q(z),A.mode=y[(y.indexOf(A.mode)+1)%y.length]);A.yk&&!x.getComponent(k.Im)?x.N(k.Im):!A.yk&&x.getComponent(k.Im)&&x.ka(k.Im);z.M&&(A.yk&&w.name==n.gb||w.name==n.ma)&&(t.compose(A.object.position,A.object.quaternion,A.object.scale),u.multiplyMatrices(A.object.parent.matrixWorld,t),z.M.o(new g(n.V,{position:A.object.position,quaternion:A.object.quaternion,scale:p(A.object.scale),matrix:t,matrixWorld:u})))}} function p(w){var x=Math.abs(w.x-w.y)+Math.abs(w.x-w.z),y=Math.abs(w.y-w.x)+Math.abs(w.y-w.z),z=Math.abs(w.z-w.x)+Math.abs(w.z-w.y);if(!(x>y&&x>z)){if(y>x&&y>z)return w.y;if(z>x&&z>y)return w.z}return w.x}function q(w){var x=[];w.translate&&x.push("translate");w.rotate&&x.push("rotate");w.scale&&x.push("scale");x.length==0&&x.push("translate");return x}var r=function(w){function x(){var y=w.call(this)||this;y.xb=y.xb.bind(y);y.ib=y.ib.bind(y);y.Ca=y.Ca.bind(y);return y}P(x,w);x.prototype.Yc=function(){this.RSa.v.length&& this.RSa.v.slice().forEach(this.xb);this.SSa.v.length&&this.SSa.v.slice().forEach(this.Ca);this.TSa.v.length&&this.TSa.v.slice().forEach(this.Ca);this.QSa.v.length&&this.QSa.v.slice().forEach(this.ib);x.mKa=this.oA.v};x.prototype.xb=function(y){y.N(k.Om)};x.prototype.ib=function(y){this.fob(y);this.ou(y)};x.prototype.fob=function(y){var z=y.getComponent(k.Object3D).sa,A;a:{for(A=z;A;){if(!A.visible){A=!1;break a}A=A.parent}A=!0}A||(z=null);var D=c.Sf(y),F=D&&c.uw(D),C=y.getComponent(k.Hh);A=y.getComponent(k.Om).kaa; A&&z&&A.camera===F&&A.parent===D||(A&&(A.object.parent.remove(A.object),A.detach(),A.dispose()),A=null,F&&z&&D&&(A=new d(F),A.attach(new h.Object3D),D.add(A)),y.O(k.Om).kaa=A);A&&z&&(z.parent!=A.object.parent&&(A.object.parent&&A.object.parent.remove(A.object),z.parent&&z.parent.add(A.object)),y=q(C),y.indexOf(A.mode)==-1&&(A.mode=y[0]),A.object.matrix.copy(z.matrix),A.object.matrix.decompose(A.object.position,A.object.quaternion,A.object.scale))};x.prototype.ou=function(y){var z=y.getComponent(k.Om), A=this.Ffb(y),D=A&&A.getComponent(k.yc).WD||null,F=(z=z.Gk)&&z.getComponent(k.yc);F=F&&F.WD||null;A!=z&&(F&&(F.h(n.Sa,l,y),F.h(n.$a,l,y),F.h(n.gb,l,y),F.h(n.ma,l,y)),y.O(k.Om).pe=D)&&(D.bind(n.Sa,l,y,!0),D.bind(n.$a,l,y,!0),D.bind(n.gb,l,y,!0));A!=z&&(y.O(k.Om).Gk=A)};x.prototype.Ffb=function(y){return this.Wj.v.length?this.Wj.v.reduce(function(z,A){if(A.T!==y.T)return z;if(!z)return A;var D=A.getComponent(k.yc);return!z.getComponent(k.yc).Ug&&D.Ug?A:z}):null};x.prototype.Ca=function(y){var z=y.getComponent(k.Om), A=z&&z.kaa;A&&(A.object.parent.remove(A.object),A.detach(),A.dispose());if(z=z.pe)z.h(n.Sa,l,y),z.h(n.$a,l,y),z.h(n.gb,l,y),z.h(n.ma,l,y);y.ka(k.Om)};x.J={};x.mKa=[];return x}(e),t=new h.Matrix4,u=new h.Matrix4,v=new h.Raycaster;r.J.oA=[k.Im];r.J.Wj=[k.yc];r.J.QSa=[k.Object3D,k.Hh,k.Om];r.J.RSa=[k.Object3D,k.Hh,k.Om.aa];r.J.SSa=[k.Object3D.aa,k.Om];r.J.TSa=[k.Hh.aa,k.Om];return r}); define("tdv/view/av/VideoFrame",["require","exports"],function(){var a=function(){var m=document.createElement("canvas");m.width=m.height=256;m.getContext("2d").clearRect(0,0,m.width,m.height);return m}();return function(){function m(h,n,g){this.xFa=h;this.bGa=n;this.$u=g||a}m.prototype.isEmpty=function(){return this.$u==a||this.$u.tagName=="CANVAS"&&(this.$u.width==0||this.$u.height==0)};m.prototype.isEqual=function(h){return this.xFa==h.xFa&&this.bGa==h.bGa&&this.$u==h.$u};return m}()}); define("tdv/view/av/VideoLevelUtil",["require","exports","tdv/player/view/util/Capabilities","tdv/player/view/util/Device","tdv/player/view/util/FileType"],function(a,m,h,n,g){function k(c){return h.FSa(c)}function e(c,d){if(!d)return!0;var f=c.get("url"),l=c.get("srcObject");c=c.get("type")||"";switch(d){case "srcObj":return!!l;case "webm":return g.is(f,g.wWa)||b(c,"webm");case "h265":return g.is(f,g.cVa)||(g.is(f,g.hua)||g.is(f,g.Ota)||!f)&&(b(c,"hev1")||b(c,"h265")||b(c,"heic"))?!0:!1;case "mp4":return g.is(f, g.hua)||b(c,"mp4");case "hls":return g.is(f,g.HLS)||b(c,"x-mpegurl");case "ogv":return g.is(f,g.FVa)||b(c,"ogg");case "mov":return g.is(f,g.Ota)||b(c,"quicktime");default:return!1}}function b(c,d){return(c||"").toLowerCase().indexOf(d)>=0}return function(){function c(){}c.jgb=function(d){return c.select(d.get("levels"))};c.ggb=function(d){return c.select(d.get("levels"))};c.select=function(d){d||(d=[]);d=d.slice();var f=[];f.push({type:"srcObj",ju:!0});h.Dgb&&f.push({type:"hls",ju:!1});h.Wgb&&f.push({type:"h265", ju:!0});h.Qoa&&f.push({type:"webm",ju:!0});h.k8&&f.push({type:"mp4",ju:!0});h.Xgb&&f.push({type:"mov",ju:!0});h.Poa&&f.push({type:"ogv",ju:!0});f.push({type:"mp4",ju:!0});f.push({type:"webm",ju:!0});f.push({type:"mp4",ju:!1});f.push({type:"webm",ju:!1});for(var l=0;l0&&this.og>this.ac-.15&&!this.OS()&&!this.Ql?this.YR():c.Tb()==c.Yj&&this.og>0&&this.og>this.ac-.05&&!this.OS()&&!this.Ql?this.YR():c.Tb()==c.Pp&&this.og>0&&this.og>this.ac-.05&&!this.OS()&&this.Ql&&this.YR(),this.ZV())}; x.prototype.Fj=function(){var y=this;this.bq=this.Jb.fP().map(function(z){for(var A=null,D=0;Du*q?(v=r,p=t*r/u):(p=q,v=u*q/t);break;default:t*r>u*q?(p=q,v=u*q/t):(v=r,p=t*r/u)}switch(l.Yh){case b.fb:q=-q*.5;break;case b.Db:q=q*.5-p;break;default:q=-p*.5}switch(l.verticalAlign){case b.Tc:r=r*.5-v;break;case b.Hc:r=-r* .5;break;default:r=-v*.5}t=l.zIndex-d.oVa;g.set(l.geometry,q,r,0,0,0,p,0,0,1,0,v,0,1,0);f.O(n.ta,!0).positionZ=t;f.T.Qa()};d.oVa=100;d.J={};d.J.GE=[n.fG,n.Lx.aa];d.J.planes=[n.fG,n.Lx,n.so];d.J.tY=[n.fG.aa,n.Lx];return d}); define("tdv/player/view/webgl/systems","require exports tdv/player/view/webgl/system/light/AmbientLightSystem tdv/player/view/webgl/system/animation/System tdv/player/view/webgl/system/aranchor/System tdv/player/view/webgl/system/area/System tdv/player/view/webgl/system/beacon/System tdv/player/view/webgl/system/camera/System tdv/player/view/webgl/system/cameraControls/System tdv/player/view/webgl/system/cameraOffsetTransform/System tdv/player/view/webgl/system/canvasMaterial/System tdv/player/view/webgl/system/clippingRect/System tdv/player/view/webgl/system/light/DirectionalLightSystem tdv/player/view/webgl/system/dragging/System tdv/player/view/webgl/system/floor/System tdv/player/view/webgl/system/floorTransform/System tdv/player/view/webgl/system/group/System tdv/player/view/webgl/system/grid/System tdv/player/view/webgl/system/imageMaterial/System tdv/player/view/webgl/system/lineMaterial/System tdv/player/view/webgl/system/line/System tdv/player/view/webgl/system/lineToTransform/System tdv/player/view/webgl/system/objectTransform/System tdv/player/view/webgl/system/materialVariant/System tdv/player/view/webgl/system/mesh/System tdv/player/view/webgl/system/model/System tdv/player/view/webgl/system/objectId/System tdv/player/view/webgl/system/plane/System tdv/player/view/webgl/system/parent/System tdv/player/view/webgl/system/pixelScaleTransform/System tdv/player/view/webgl/system/pointerOverTransform/System tdv/player/view/webgl/system/projectedMaterial/System tdv/player/view/webgl/system/renderer/System tdv/player/view/webgl/system/scene/System tdv/player/view/webgl/system/selection/System tdv/player/view/webgl/system/light/SpotLightSystem tdv/player/view/webgl/system/solidMaterial/System tdv/player/view/webgl/system/sphere/System tdv/player/view/webgl/system/sprite/System tdv/player/view/webgl/system/transform/System tdv/player/view/webgl/system/transformControls/System tdv/player/view/webgl/system/videoMaterial/System tdv/player/view/webgl/system/viewport/System tdv/player/view/webgl/system/viewportPlaneGeometry/System".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q,r,t,u,v,w,x,y,z,A,D,F,C,B,H,E,G,N,O,R,Q,K,L,U,T,Y,aa,ba,ea,ia,da){a={};a.AmbientLight=h;a.Animation=n;a.pF=g;a.lo=k;a.AB=e;a.Camera=b;a.qUa=c;a.SK=d;a.Kf=f;a.vF=l;a.DirectionalLight=p;a.Im=q;a.Mr=r;a.zx=t;a.xu=v;a.Group=u;a.Oi=w;a.ei=x;a.Line=y;a.zu=z;a.gi=A;a.Bx=D;a.Mesh=F;a.Pi=C;a.HVa=B;a.pb=E;a.Plane=H;a.Tk=G;a.El=N;a.po=O;a.wj=R;a.Scene=Q;a.Selection=K;a.xd=U;a.Sphere=T;a.SpotLight=L;a.Sprite=Y;a.ta=aa;a.Hh=ba;a.ro=ea;a.so=ia;a.fG=da;return a}); define("tdv/view/util/Screenshot",["require","exports"],function(){return function(){function a(){}a.OSa=function(m){var h;h||(h="screenshot.jpg");a:{try{var n=m.toDataURL("image/jpeg");break a}catch(g){}n=void 0}if(!n)return!1;m=n;n=document.createElement("a");typeof n.download==="string"?(document.body.appendChild(n),n.download=h,n.href=m,n.click(),document.body.removeChild(n)):window.location.replace(m);return!0};return a}()}); define("tdv/player/view/webgl/Renderer","require exports tdv/constants/EventName tdv/view/core/UIComponent tdv/view/util/Assets tdv/player/view/Flash tdv/player/view/webgl/ecs/World tdv/player/view/webgl/components tdv/player/view/webgl/systems tdv/view/util/Screenshot".split(" "),function(a,m,h,n,g,k,e,b,c,d){function f(q){return q.map(function(r){return String.fromCharCode(r)}).join("")}a=function(q){function r(t,u,v){var w=q.call(this)||this;w.Ie=t;w.P=u;w.Cbb=v;w.aA=(new e(t)).na(b.OK).na(b.AmbientLight).na(b.wB).na(b.Animation).na(b.lx).na(b.rF).na(b.pF).na(b.kx).na(b.vB).na(b.Cr).na(b.Xf).na(b.lo).na(b.xB).na(b.sF).na(b.AB).na(b.BB).na(b.Qp).na(b.qx).na(b.Kf).na(b.DB).na(b.TK).na(b.sx).na(b.SK).na(b.rUa).na(b.vF).na(b.EB).na(b.DirectionalLight).na(b.Er).na(b.ux).na(b.FB).na(b.Im).na(b.PF).na(b.Lr).na(b.QF).na(b.Nr).na(b.Mr).na(b.yx).na(b.zx).na(b.wu).na(b.Geometry).na(b.xu).na(b.KB).na(b.Group).na(b.$K).na(b.Oi).na(b.MB).na(b.Line).na(b.ei).na(b.OB).na(b.zu).na(b.QB).na(b.PB).na(b.Material).na(b.gi).na(b.RB).na(b.Bx).na(b.Rr).na(b.Mesh).na(b.Bu).na(b.Pi).na(b.Cx).na(b.VF).na(b.CVa).na(b.Sr).na(b.WF).na(b.Object3D).na(b.hL).na(b.Dx).na(b.XF).na(b.Tr).na(b.OrthographicCamera).na(b.Cu).na(b.PerspectiveCamera).na(b.Sk).na(b.pb).na(b.Eu).na(b.Tk).na(b.ZF).na(b.Plane).na(b.UB).na(b.yc).na(b.Fx).na(b.El).na(b.Fu).na(b.Gx).na(b.po).na(b.Ur).na(b.xd).na(b.Hx).na(b.ta).na(b.dG).na(b.Gg).na(b.Hh).na(b.Om).na(b.wj).na(b.Gu).na(b.Scene).na(b.Vp).na(b.wd).na(b.$F).na(b.Sphere).na(b.aG).na(b.SpotLight).na(b.Iu).na(b.Sprite).na(b.Ju).na(b.xd).na(b.Hx).na(b.Jx).na(b.Lu).na(b.ro).na(b.XB).na(b.so).na(b.fG).na(b.Lx).na(b.nL).na(b.ng).na(b.gG).na(b.Yp).na(b.oL).na(b.Zp).na(b.pL).na(b.$p).na(b.qL).na(b.aq).ed(c.Camera, "Camera").ed(c.so,"Viewport").ed(c.Oi,"ImageMaterial").ed(c.Kf,"CanvasMaterial").ed(c.ei,"LineMaterial").ed(c.xd,"SolidMaterial").ed(c.ro,"VideoMaterial").ed(c.Bx,"MaterialVariant").ed(c.fG,"ViewportPlaneGeometry").ed(c.xu,"Grid").ed(c.Group,"Group").ed(c.Line,"Line").ed(c.Mesh,"Mesh").ed(c.Plane,"Plane").ed(c.Mr,"Floor").ed(c.Sphere,"Sphere").ed(c.Sprite,"Sprite").ed(c.Pi,"Model").ed(c.pF,"ARAnchor").ed(c.po,"ProjectedMaterial").ed(c.AmbientLight,"AmbientLight").ed(c.DirectionalLight,"DirectionalLight").ed(c.SpotLight, "SpotLight").ed(c.Scene,"Scene").ed(c.pb,"Parent").ed(c.HVa,"ObjectId").ed(c.Animation,"Animation").ed(c.SK,"CameraOffsetTransform").ed(c.gi,"ObjectTransform").ed(c.zx,"FloorTransform").ed(c.qUa,"CameraControls").ed(c.Im,"Dragging").ed(c.Selection,"Selection").ed(c.El,"PointerOverTransform").ed(c.Tk,"PixelScaleTransform").ed(c.ta,"Transform").ed(c.Hh,"TransformControls").ed(c.lo,"Area").ed(c.zu,"LineToTransform").ed(c.Camera.PK,"CameraAutoNearFar").ed(c.vF,"ClippingRect").ed(c.Scene.o_,"SceneFade").ed(c.AB, "Beacon").ed(c.wj,"Renderer");w.j=w.aA.sc("Renderer");w.qI=[];w.Hka=!1;w.bind(h.od,w.cp,w,!0);w.bind(h.jd,w.ap,w,!0);return w}P(r,q);r.prototype.Kb=function(){q.prototype.Kb.call(this);this.$G||(this.$G=new k,this.wa().uk(this.$G.cc()))};r.prototype.sc=function(t){return this.aA.sc(t)};r.prototype.dd=function(t){this.aA.dd(t)};r.prototype.Qa=function(){this.aA.Qa()};r.prototype.eIa=function(t){!(this.qI.indexOf(t)>=0)&&(this.qI.push(t),t=this.j.O(b.wj))&&(t.MY=this.qI.slice())};r.prototype.Ljb=function(t){t= this.qI.indexOf(t);!(t<0)&&(this.qI.splice(t,1),t=this.j.O(b.wj))&&(t.MY=this.qI.slice())};r.prototype.q$=function(t){this.aA.q$(t)};r.prototype.Ra=function(t){this.aA.Ra(t)};r.prototype.jK=function(){this.$G.o();this.aA.update();return d.OSa(this.j.getComponent(b.wj).renderer.domElement)};r.prototype.lna=function(){this.aA.update();return this.j.getComponent(b.wj).renderer.domElement.toDataURL("image/png")};r.prototype.cp=function(){this.A9a()};r.prototype.ap=function(){this.s$a()};r.prototype.A9a= function(){var t=this.j.getComponent(b.wj);if(!t&&(t=this.j.N(b.wj),t.eb=this.P,t.MY=this.qI.slice(),this.Ie.get(l)&&this.Cbb)){this.qW=document.createElement("div");for(var u in p)this.qW.style[u]=p[u];this.wa().uk(this.qW)}};r.prototype.s$a=function(){this.j.getComponent(b.wj)&&(this.qW&&this.wa().a$(this.qW),this.qW=null,this.j.ka(b.wj))};return r}(n);var l=f([119,97,116,101,114,109,97,114,107]),p={};p[f([104,101,105,103,104,116])]=f([49,48,48,37]);p[f([119,105,100,116,104])]=f([49,48,48,37]); p[f([112,111,115,105,116,105,111,110])]=f([97,98,115,111,108,117,116,101]);p[f([116,111,112])]=0;p[f([108,101,102,116])]=0;p[f([98,97,99,107,103,114,111,117,110,100,73,109,97,103,101])]=f([117,114,108,40,34])+g.vWa+f([34,41]);p[f([98,97,99,107,103,114,111,117,110,100,80,111,115,105,116,105,111,110])]=f([99,101,110,116,101,114]);p[f([98,97,99,107,103,114,111,117,110,100,83,105,122,101])]=f([99,111,110,116,97,105,110]);p[f([112,111,105,110,116,101,114,69,118,101,110,116,115])]=f([110,111,110,101]); p[f([98,97,99,107,103,114,111,117,110,100,82,101,112,101,97,116])]=f([110,111,45,114,101,112,101,97,116]);p[f([111,112,97,99,105,116,121])]=.5;return a}); define("tdv/player/view/model3d/renderer/adapters/CameraAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/parser/ClassInfo tdv/player/view/webgl/components tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){var b=["autoNearFar","autoNearFarTolerance","near","far","userInteracting"],c=["inTransition"],d={OrbitModel3DCamera:k.XF,FirstPersonModel3DCamera:k.PF,FlyOverModel3DCamera:k.QF},f={FirstPersonModel3DCamera:k.qL,OrbitModel3DCamera:k.oL,FlyOverModel3DCamera:k.pL}; return function(){function l(p,q,r,t){this.renderer=p;this.model=q;this.wb=r;this.Ea=t;this.eb=this.renderer.P;this.camera=null;this.enabled=!0;this.locked=!1;this.Vg=this.Vg.bind(this);this.k9=this.k9.bind(this);this.renderer.bind(n.Rb,this.tl,this,!0);this.model.bind(n.L("camera"),this.d9,this,!0);this.eb.bind(n.L("isKeyboardTarget"),this.bqa,this,!0);e.M.bind(n.V,this.Ta,this,!0);this.d9();this.Ta();this.bqa();this.tl()}l.prototype.Vw=function(p){this.locked!==p&&(this.locked=p,this.naa())};l.prototype.Ra= function(p){this.enabled!==p&&(this.enabled=p,this.naa())};l.prototype.dispose=function(){this.setCamera(null);this.model.h(n.L("camera"),this.d9,this);this.eb.h(n.L("isKeyboardTarget"),this.bqa,this);this.renderer.h(n.Rb,this.tl,this);e.M.h(n.V,this.Ta,this)};l.prototype.Ta=function(){this.Ea.O(k.PerspectiveCamera,!0).oj=e.Uf==this.eb.Fc().sl()};l.prototype.d9=function(){this.setCamera(this.model.get("camera"))};l.prototype.setCamera=function(p){if(this.camera!==p){this.camera&&(this.aF(!1),h.da(this.camera, b,this.Vg),h.da(this.camera,c,this.k9),this.camera.set("inTransition",!1));if(this.camera=p)h.ba(this.camera,b,this.Vg,!0),h.ba(this.camera,c,this.k9,!0),this.ncb(),this.Ea.O(k.TK,!0).properties=this.camera;this.naa()}};l.prototype.naa=function(){var p,q,r,t,u=!!this.camera&&this.camera.get("inTransition");u&&this.enabled?t=this.Ea.O(k.Jx,!0):this.Ea.ka(k.Jx);for(var v in d){var w=d[v];!u&&this.enabled&&this.camera&&g.Oa(v,this.camera)?p=this.Ea.O(w,!0):this.Ea.ka(w);(w=f[v])&&(!u&&this.enabled&& this.camera&&g.Oa(v,this.camera)?q=this.Ea.O(w,!0):this.Ea.ka(w))}!u&&this.enabled?r=this.Ea.O(k.vB,!0):this.Ea.ka(k.vB);p&&(p.properties=this.camera,p.Rf=this.renderer.getParent(),p.FQa=this.eb.YS,p.jE=this.eb.get("isKeyboardTarget"),p.locked=this.locked);t&&(t.properties=this.camera,t.pf=this.model.get("worldUnitToMeters"),t.locked=this.locked);q&&(q.properties=this.camera,q.pf=this.model.get("worldUnitToMeters"),q.Kk=this.eb.get("vrThumbstickRotationStep"),q.locked=this.locked);r&&(r.properties= this.camera,r.pf=this.model.get("worldUnitToMeters"),r.Kk=this.eb.get("arThumbstickRotationStep"),r.wb=this.wb,r.locked=this.locked)};l.prototype.bqa=function(){var p=this.jfb();p&&(p.jE=this.eb.get("isKeyboardTarget"))};l.prototype.jfb=function(){if(!this.camera)return null;var p=null,q;for(q in d){var r=d[q];this.camera&&g.Oa(q,this.camera)&&(p=this.Ea.O(r,!0))}return p};l.prototype.Vg=function(){if(this.camera){var p=this.Ea.O(k.PerspectiveCamera,!0);p.Yma=this.camera.get("autoNearFar");p.GIa= this.camera.get("autoNearFarTolerance");p.near=this.camera.get("near");p.far=this.camera.get("far");this.aF(this.camera.get("userInteracting"))}};l.prototype.k9=function(){this.naa()};l.prototype.tl=function(){var p=this.Ea.O(k.PerspectiveCamera,!0);p.width=this.renderer.Xh();p.height=this.renderer.Wh()};l.prototype.ncb=function(){var p=this.camera;p.set("fov",p.get("initialFov"));p.set("x",p.get("initialX"));p.set("y",p.get("initialY"));p.set("z",p.get("initialZ"));p.set("distance",p.get("initialDistance", 0));p.set("yaw",p.get("initialYaw"));p.set("pitch",p.get("initialPitch"))};l.prototype.aF=function(p){this.kF!=p&&(this.kF=p,this.camera&&this.camera.o(this.kF?n.Sua:n.Rua))};return l}()});define("tdv/player/script/OrbitLight",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("OrbitLight",m,function(){m.call(this)})}); define("tdv/player/view/model3d/renderer/adapters/ArrayAdapter",["require","exports","tdv/binding/BindingsHandler"],function(a,m,h){return function(){function n(){this.hY=this.hY.bind(this);this.X9=this.object=null;this.elements=[];this.ZW=new Map;this.RPa=this.Xg=this.fe=this.filter=null}n.prototype.jB=function(g,k){this.dispose();this.object=g;this.X9=k;h.ba(this.object,[this.X9],this.hY,!0)};n.prototype.hY=function(g){g=g||[];this.filter&&(g=g.filter(this.filter));var k=this.elements,e=this.elements= g;k.forEach(function(b,c){var d=e.indexOf(b);if(d==-1){var f=this.ZW.get(b);this.ZW["delete"](b);this.Xg&&this.Xg(b,f)}else d!=c&&(f=this.ZW.get(b),this.RPa&&(c=this.RPa(b,d,f,c),c!=f&&this.ZW.set(b,c)))}.bind(this));e.forEach(function(b,c){k.indexOf(b)==-1&&this.fe&&(c=this.fe(b,c),this.ZW.set(b,c))}.bind(this))};n.prototype.dispose=function(){this.object&&(h.da(this.object,[this.X9],this.hY),this.hY([]),this.X9=this.object=null)};return n}()}); define("tdv/player/view/model3d/renderer/adapters/lights/AmbientLightAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a,m,h,n){var g=["color","intensity"];return function(){function k(e,b,c,d,f){this.Vg=this.Vg.bind(this);this.object=e;this.model=b;this.wb=c;this.Ag=d;this.Ea=f;this.F=c.T.sc("AmbientLight");this.F.N(n.AmbientLight);this.F.N(n.pb).F=this.Ag;h.ba(this.object,g,this.Vg,!0)}k.prototype.dispose=function(){h.da(this.object,g,this.Vg); this.F&&(this.F.T.dd(this.F),this.F=null)};k.prototype.Vg=function(){var e=this.F.O(n.AmbientLight);e.color=this.object.get("color");e.intensity=this.object.get("intensity")};return k}()}); define("tdv/player/view/model3d/renderer/adapters/lights/OrbitLightAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a,m,h,n,g,k,e){a=function(){function q(r,t,u,v,w){this.Vg=this.Vg.bind(this);this.object=r;this.model=t;this.wb=u;this.Ag=v;this.Ea=w;this.F=this.wb.T.sc("OrbitLight");this.F.N(e.DirectionalLight).target=this.wb;this.F.N(e.pb);r=this.F.N(e.ta);r.mf="YXZ";r.positionZ= 10;this.iK=null;n.ba(this.object,b,this.Vg,!0)}q.prototype.dispose=function(){n.da(this.object,b,this.Vg);this.F&&(this.F.T.dd(this.F),this.F=null);this.iK&&(this.iK.dispose(),this.iK=null)};q.prototype.Vg=function(){var r=this.F.O(e.DirectionalLight);r.castShadow=this.object.get("castShadow");r.color=this.object.get("color");r.WW=this.object.get("displayHelper");r.intensity=this.object.get("intensity");r.mode=this.object.get("mode");var t=this.object.get("mode")=="fixed_to_target"?this.Ag:this.Ea; this.F.getComponent(e.pb).F!=t&&(this.F.O(e.pb).F=t);t=this.object.get("yaw");var u=-this.object.get("pitch"),v=this.F.getComponent(e.ta);if(v.Yd!=u||v.fd!=t)v=this.F.O(e.ta),v.Yd=u,v.fd=t;r.Ora=this.object.get("shadowBias");r.Qra=this.object.get("shadowRadius");r.Pra=this.object.get("shadowMapSize");r.emb=this.object.get("shadowTolerance");this.object.get("rotationDraggable")!=!!this.iK&&(this.object.get("rotationDraggable")?this.iK=new c(this.object,this.model,this.wb):(this.iK.dispose(),this.iK= null))};return q}();var b="castShadow color displayHelper intensity mode pitch yaw rotationDraggable shadowBias shadowRadius shadowMapSize shadowTolerance".split(" "),c=function(){function q(r,t,u){this.PP=this.PP.bind(this);this.object=r;this.model=t;this.wb=u;this.M=new k;this.M.bind(g.V,this.Am,this,!0);this.Hw=this.wb.T.sc("OrbitLightTransformControls");this.Hw.N(e.ta).mf="YXZ";this.Hw.N(e.Group);this.Hw.N(e.pb).F=this.wb;this.CA=this.wb.T.sc("OrbitLightTransformControlsInner");this.CA.N(e.ta).mf= "YXZ";this.CA.N(e.Group);this.CA.N(e.pb).F=this.Hw;r=this.CA.N(e.Hh);r.translate=!1;r.rotate=!0;r.scale=!1;r.M=this.M;n.ba(this.object,d,this.PP,!0);n.ba(this.model,f,this.PP,!0)}q.prototype.dispose=function(){n.da(this.object,d,this.PP);n.da(this.model,f,this.PP);this.Hw&&(this.Hw.T.dd(this.Hw),this.Hw=null);this.CA&&(this.CA.T.dd(this.CA),this.CA=null)};q.prototype.PP=function(){if(this.object.get("mode")=="fixed_to_target"){var r=this.Hw.O(e.ta);r.fd=0;r.Yd=0}else r=this.Hw.O(e.ta),r.fd=-this.model.get("camera").get("yaw"), r.Yd=this.model.get("camera").get("pitch");r.Xe=0;r=this.CA.O(e.ta);r.fd=this.object.get("yaw");r.Yd=-this.object.get("pitch");r.Xe=0};q.prototype.Am=function(r){l.setFromQuaternion(r.data.quaternion,"YXZ");this.object.set({yaw:l.y*p,pitch:-l.x*p});this.object.o(g.Mm)};return q}(),d=["mode","yaw","pitch"],f=["camera.yaw","camera.pitch"],l=new h.Euler,p=180/Math.PI;return a}); define("tdv/player/view/model3d/renderer/adapters/lights/SpotLightAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a,m,h,n,g,k,e){a=function(){function f(l,p,q,r,t){this.Vg=this.Vg.bind(this);this.object=l;this.model=p;this.wb=q;this.Ag=r;this.Ea=t;this.F=q.T.sc("SpotLight");this.F.N(e.SpotLight);this.F.N(e.pb).F=this.Ag;this.F.N(e.ta).mf="YXZ";this.yr=new k;this.yr.bind(g.V,this.Am, this,!0);n.ba(this.object,b,this.Vg,!0)}f.prototype.dispose=function(){n.da(this.object,b,this.Vg);this.F.T.dd(this.F);this.F=null};f.prototype.Vg=function(){var l=this.F.O(e.SpotLight);l.color=this.object.get("color");l.intensity=this.object.get("intensity");l.distance=this.object.get("distance");l.WW=this.object.get("displayHelper");l.angle=this.object.get("angle");l.penumbra=this.object.get("penumbra");l.decay=this.object.get("decay");l.castShadow=this.object.get("castShadow");l.Pra=this.object.get("shadowMapSize"); l.Ora=this.object.get("shadowBias");l.Qra=this.object.get("shadowRadius");l=this.object.get("yaw");var p=-this.object.get("pitch"),q=this.F.getComponent(e.ta);if(q.Yd!=p||q.fd!=l||q.positionX!=this.object.get("x")||q.positionY!=this.object.get("y")||q.positionZ!=this.object.get("z"))q=this.F.O(e.ta),q.Yd=p,q.fd=l,q.translationX=this.object.get("x"),q.translationY=this.object.get("y"),q.Ze=this.object.get("z");this.object.get("rotationDraggable")||this.object.get("positionDraggable")?(l=this.F.O(e.Hh, !0),l.M=this.yr,l.rotate=this.object.get("rotationDraggable"),l.translate=this.object.get("positionDraggable"),l.scale=!1):this.F.ka(e.Hh)};f.prototype.Am=function(l){c.setFromQuaternion(l.data.quaternion,"YXZ");this.object.set({x:l.data.position.x,y:l.data.position.y,z:l.data.position.z,yaw:c.y*d,pitch:-c.x*d});this.object.o(g.Mm)};return f}();var b="color intensity distance angle penumbra displayHelper decay castShadow shadowMapSize shadowBias shadowRadius x y z pitch yaw rotationDraggable positionDraggable".split(" "), c=new h.Euler,d=180/Math.PI;return a}); define("tdv/player/view/model3d/renderer/adapters/lights/LightAdapterFactory","require exports tdv/player/parser/ClassInfo tdv/player/view/model3d/renderer/adapters/lights/AmbientLightAdapter tdv/player/view/model3d/renderer/adapters/lights/OrbitLightAdapter tdv/player/view/model3d/renderer/adapters/lights/SpotLightAdapter".split(" "),function(a,m,h,n,g,k){return function(){function e(){}e.una=function(b,c,d,f,l){return h.Oa("AmbientLight",b)?new n(b,c,d,f,l):h.Oa("OrbitLight",b)?new g(b,c,d,f,l): h.Oa("SpotLight",b)?new k(b,c,d,f,l):null};return e}()}); define("tdv/player/view/model3d/renderer/adapters/lights/LightsAdapter","require exports tdv/player/view/util/Device tdv/player/script/OrbitLight tdv/player/view/model3d/renderer/adapters/ArrayAdapter tdv/player/view/model3d/renderer/adapters/lights/LightAdapterFactory".split(" "),function(a,m,h,n,g,k){return function(){function e(b,c,d,f){this.Rna=this.pA=null;this.model=b;this.wb=c;this.Ag=d;this.Ea=f;this.P8=new g;this.P8.fe=this.BOa.bind(this);this.P8.Xg=this.COa.bind(this);this.P8.jB(this.model, "lights");this.lcb()}e.prototype.dispose=function(){this.P8.dispose();this.Ijb()};e.prototype.BOa=function(b){return k.una(b,this.model,this.wb,this.Ag,this.Ea)};e.prototype.COa=function(b,c){c.dispose()};e.prototype.lcb=function(){var b,c,d,f;h.kf()&&this.model.get("backgroundPanoramaURL")&&(this.pA=new n,(b=this.pA)===null||b===void 0||b.set("intensity",.001),(c=this.pA)===null||c===void 0||c.set("castShadow",!0),(d=this.pA)===null||d===void 0||d.set("shadowMapWidth",64),(f=this.pA)===null||f=== void 0||f.set("shadowTolerance",4),this.Rna=this.BOa(this.pA))};e.prototype.Ijb=function(){this.pA&&(this.COa(this.pA,this.Rna),this.Rna=this.pA=null)};return e}()}); define("tdv/player/view/model3d/renderer/adapters/FloorAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/constants/RenderOrder","tdv/player/view/webgl/components"],function(a,m,h,n,g){var k=["floorColor","floorHeight","floorOpacity","floorRadius"];return function(){function e(b,c,d){this.model=b;this.object=c;this.wb=d;this.Vg=this.Vg.bind(this);this.F=d.T.sc("Floor");this.F.N(g.Mr);this.F.N(g.pb).F=this.wb;h.ba(this.object,k,this.Vg,!0)}e.prototype.dispose=function(){h.da(this.object, k,this.Vg);this.F.T.dd(this.F);this.F=null};e.prototype.Vg=function(){var b=this.object.get("floorColor"),c=this.object.get("floorOpacity"),d=this.object.get("floorHeight"),f=this.object.get("floorRadius");if(b&&c>0){var l=this.F.O(g.Mr,!0);l.color=b;l.opacity=c;l.height=d;l.radius=f;l.renderOrder=this.model==this.object?n.tVa:n.DVa}else this.F.ka(g.Mr)};return e}()}); define("tdv/player/view/model3d/renderer/adapters/objects/ObjectAdapterFactory",["require","exports","tdv/player/parser/ClassInfo"],function(a,m,h){return function(){function n(){}n.Xt=function(g,k){n.w6[g]=k};n.wgb=function(g){for(var k in n.w6)if(h.Oa(k,g))return!0;return!1};n.una=function(g,k,e,b,c){for(var d in n.w6)if(h.Oa(d,g))return new n.w6[d](g,k,e,b,c);return null};n.w6={};return n}()}); define("tdv/player/view/model3d/renderer/adapters/objects/ObjectArrayAdapter",["require","exports","tdv/player/view/model3d/renderer/adapters/ArrayAdapter","tdv/player/view/model3d/renderer/adapters/objects/ObjectAdapterFactory"],function(a,m,h,n){return function(){function g(k,e,b,c,d){this.akb=k;this.model=e;this.wb=b;this.Ipa=c;this.renderer=d;this.filter=this.filter.bind(this);this.fe=this.fe.bind(this);this.Xg=this.Xg.bind(this);this.QJ=new h;this.QJ.filter=this.filter;this.QJ.fe=this.fe;this.QJ.Xg= this.Xg;this.QJ.jB(this.model,"objects")}g.prototype.filter=function(k){return n.wgb(k)?!0:!1};g.prototype.fe=function(k){return n.una(k,this.akb,this.wb,this.Ipa,this.renderer)};g.prototype.Xg=function(k,e){e.dispose()};g.prototype.dispose=function(){this.QJ.dispose()};return g}()}); define("tdv/player/view/model3d/renderer/adapters/objects/SpritesEnabledAdapter",["require","exports","tdv/constants/EventName","tdv/player/parser/ClassInfo"],function(a,m,h,n){return function(){function g(k,e){this.pT=k.pT;this.Fa=e;this.fl=[];this.pT.bind(h.L("spritesEnabled"),this.UCa,this,!0);this.Fa.bind(h.L("objects"),this.VH,this,!0);this.za()}g.prototype.dispose=function(){this.pT.h(h.L("spritesEnabled"),this.UCa,this);this.Fa.h(h.L("objects"),this.VH,this);this.fl.forEach(function(k){k.kra(!1)}); this.fl=[]};g.prototype.UCa=function(){this.za()};g.prototype.VH=function(){this.za()};g.prototype.za=function(){var k=[];this.pT.get("spritesEnabled")===!1&&k.push("SpriteModel3DObject");var e=this.Fa.get("objects");this.fl.forEach(function(b){e.indexOf(b)==-1&&b.kra(!1)});this.fl=e;this.fl.forEach(function(b){var c=k.some(function(d){return n.Oa(d,b)});b.kra(c)})};return g}()}); define("tdv/player/view/model3d/renderer/adapters/objects/UserInteractionObjectsVisibleAdapter",["require","exports","tdv/binding/BindingsHandler"],function(a,m,h){var n=["camera","objects","postprocessing"],g=["userInteracting","moving"];return function(){function k(e){this.model=e;this.camera=null;this.rj=[];this.SJ=this.SJ.bind(this);this.f9=this.f9.bind(this);h.ba(this.model,n,this.SJ,!0)}k.prototype.dispose=function(){this.VE([])};k.prototype.SJ=function(){this.setCamera(this.model.get("camera")); this.VE([].concat(this.model.get("objects"),this.model.get("postprocessing")))};k.prototype.setCamera=function(e){this.camera!==e&&(this.camera&&h.da(this.camera,g,this.f9),(this.camera=e)&&h.ba(this.camera,g,this.f9,!0))};k.prototype.f9=function(){this.vQ()};k.prototype.VE=function(e){this.rj!=e&&(e||(e=[]),this.rj&&this.rj.forEach(function(b){e.indexOf(b)==-1&&(b.aF&&b.aF(!1),b.Gp&&b.Gp(!1))}.bind(this)),this.rj=e,this.vQ())};k.prototype.vQ=function(){if(this.rj&&this.camera){var e=this.camera.get("userInteracting"), b=this.camera.get("moving");this.rj.forEach(function(c){c.aF&&c.aF(e);c.Gp&&c.Gp(b)}.bind(this))}};return k}()}); define("tdv/player/view/model3d/renderer/adapters/objects/XRObjectsVisibleAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/util/xr/pointer/PointerState".split(" "),function(a,m,h,n,g,k){var e=["objects"];return function(){function b(c){this.model=c;this.rj=[];this.SJ=this.SJ.bind(this);g.M.bind(n.V,this.Ta,this,!0);g.M.bind(n.Zd,this.QP,this,!0);h.ba(this.model,e,this.SJ,!0);this.Ta();this.QP()}b.prototype.dispose=function(){g.M.h(n.V, this.Ta,this);g.M.h(n.Zd,this.QP,this);this.VE([])};b.prototype.SJ=function(){this.VE([].concat(this.model.get("objects")))};b.prototype.VE=function(c){this.rj!=c&&(c||(c=[]),this.rj&&this.rj.forEach(function(d){c.indexOf(d)==-1&&(d.u$&&d.u$(!0),d.dB&&d.dB(!1))}.bind(this)),this.rj=c,this.vQ())};b.prototype.Ta=function(){this.Pkb(g.isPresenting&&g.Em==g.Fl.Xp,g.isPresenting&&g.Em==g.Fl.Np)};b.prototype.QP=function(){this.v$(g.isPresenting&&g.Em==g.Fl.Xp&&g.ud.length===1&&g.ud[0].type===k.WB)};b.prototype.Pkb= function(c,d){if(this.Va!==c||this.HMa!==d)this.Va=c,this.HMa=d,this.vQ()};b.prototype.v$=function(c){this.IMa!==c&&(this.IMa=c,this.vQ())};b.prototype.vQ=function(){if(this.rj){var c=this.Va===!1,d=this.Va===!0,f=this.HMa===!0,l=this.IMa===!0;this.rj.forEach(function(p){p.u$&&p.u$(c);p.dB&&p.dB(d);p.nRa&&p.nRa(f);p.v$&&p.v$(l)}.bind(this))}};return b}()}); define("tdv/player/view/model3d/renderer/adapters/BaseModelAdapter","require exports tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/player/view/model3d/renderer/adapters/FloorAdapter tdv/player/view/model3d/renderer/adapters/objects/ObjectArrayAdapter tdv/player/view/model3d/renderer/adapters/objects/SpritesEnabledAdapter tdv/player/view/model3d/renderer/adapters/objects/UserInteractionObjectsVisibleAdapter tdv/player/view/model3d/renderer/adapters/objects/XRObjectsVisibleAdapter".split(" "),function(a, m,h,n,g,k,e,b,c){var d=["variant"];return function(){function f(l,p,q,r){this.object=l;this.model=p;this.Ag=q;this.renderer=r;this.D9=this.D9.bind(this);this.F=this.Ag.T.sc("Model");l=this.F.N(n.Pi);this.hJ=l.hJ=this.Ag.T.sc("ModelContent");this.hJ.N(n.pb).F=this.F;l.M=this.object;this.object.get("preload")&&(l.TPa=this.model.V7().iw());l.Ap=this.model.R7().iw();l.Jpa=this.object.get("model");l.properties=this.object;l.eb=this.renderer.P;l=this.F.N(n.wd);l.M=this.object;l.nt=!0;l.Yt=!0;this.F.N(n.pb).F= this.Ag;this.F.N(n.ta);h.ba(this.object,d,this.D9,!0);this.QJ=new k(this.model,this.object,this.F,this.hJ,this.renderer);this.mmb=new e(this.renderer,this.object);this.lob=new b(this.model);this.Bob=new c(this.model);this.Meb=new g(this.model,this.object,this.F)}f.prototype.nj=function(){return this.F};f.prototype.dispose=function(){h.da(this.object,d,this.D9);this.F.T.dd(this.hJ);this.F.T.dd(this.F);this.QJ.dispose();this.mmb.dispose();this.lob.dispose();this.Bob.dispose();this.Meb.dispose()};f.prototype.D9= function(){var l=this.object.get("variant");l?this.F.O(n.Bx,!0).name=l:this.F.ka(n.Bx)};return f}()}); define("tdv/player/view/model3d/renderer/adapters/Mixins","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k,e){var b=["collidable"],c="canvas canvasTimestamp encoding depthTest hidden opacity".split(" "),d=["image"],f=["color","depthTest","opacity","width"],l=["parentId"],p=["maxWorldToPixelScale","minWorldToPixelScale","scale"],q="x y z normalX normalY normalZ upX upY upZ width height attachToParent".split(" "), r=new e.Matrix4,t=new e.Vector3,u=new e.Vector3,v=new e.Vector3,w=new e.Euler,x=180/Math.PI,y="x y z positionX positionY positionZ rotationX rotationY rotationZ scale translationX translationY translationZ attachToParent".split(" "),z=["clickEnabled","rollOverEnabled","transparentAreaActive","useHandCursor"],A=["castShadow","receiveShadow"],D=["color","depthTest","hidden","opacity"],F=["video"],C=["hidden","enabled","opacity"];return{UK:function(B){return function(H){function E(){return H!==null&& H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,b,this.uOa||(this.uOa=this.lib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,b,this.uOa);H.prototype.Xc.call(this)};E.prototype.lib=function(){this.object.get("collidable")?this.F.ka(k.VF):this.F.N(k.VF)};return E}(B)},Kf:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.Kf); h.ba(this.object,c,this.tOa||(this.tOa=this.kib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,c,this.tOa);H.prototype.Xc.call(this)};E.prototype.kib=function(){var G=this.F.O(k.Kf);G.source=this.object.get("canvas");G.xK=this.object.get("canvasTimestamp");G.opacity=this.object.get("opacity");G.isSprite=!1;G.hidden=this.object.get("hidden");G.depthTest=this.object.get("depthTest");G.colorSpace=this.object.get("encoding")=="srgb"?e.SRGBColorSpace:e.LinearSRGBColorSpace};return E}(B)}, Oi:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.Ap=this.model.R7().iw(.1);this.object.get("preload")&&this.model.V7().uO(this.Ap,.1);var G=this.F.N(k.Oi);G.properties=this.object;G.M=this.object;G.isSprite=!1;G.priority=this.object.get("preload")?g.TF:g.Mta;G.Ap=this.Ap;h.ba(this.object,d,this.zOa||(this.zOa=this.MP.bind(this)),!0)};E.prototype.Xc=function(){this.model.R7().$P(this.Ap);this.model.V7().$P(this.Ap); h.da(this.object,d,this.zOa);H.prototype.Xc.call(this)};E.prototype.MP=function(){this.F.O(k.Oi).xw=this.object.get("image")};return E}(B)},ei:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.ei);h.ba(this.object,f,this.DOa||(this.DOa=this.xib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,f,this.DOa);H.prototype.Xc.call(this)};E.prototype.xib=function(){var G=this.F.O(k.ei); G.color=this.object.get("color");G.opacity=this.object.get("opacity");G.depthTest=this.object.get("depthTest");G.width=this.object.get("width")};return E}(B)},Plane:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.Plane);this.F.N(k.ta);h.ba(this.object,q,this.TOa||(this.TOa=this.Fib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,q,this.TOa);H.prototype.Xc.call(this)};E.prototype.Fib= function(){t.set(0,0,0);v.set(this.object.get("upX",0),this.object.get("upY",1),this.object.get("upZ",0));u.set(this.object.get("normalX",0),this.object.get("normalY",0),this.object.get("normalZ",1)).multiplyScalar(-1);r.lookAt(t,u,v);w.setFromRotationMatrix(r);var G=this.F.O(k.ta);G.bA=this.object.get("attachToParent");G.translationX=this.object.get("x",0);G.translationY=this.object.get("y",0);G.Ze=this.object.get("z",0);G.Le=this.object.get("width",1);G.Ye=this.object.get("height",1);G.Yd=w.x*x; G.fd=w.y*x;G.Xe=w.z*x;G.positionX=0;G.positionY=0;G.positionZ=0};return E}(B)},pb:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.pb).F=this.wb;h.ba(this.object,l,this.POa||(this.POa=this.Dib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,l,this.POa);H.prototype.Xc.call(this)};E.prototype.Dib=function(){this.F.O(k.pb).id=this.object.get("parentId")};return E}(B)},UVa:function(B){return function(H){function E(){return H!== null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,p,this.SOa||(this.SOa=this.Eib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,p,this.SOa);H.prototype.Xc.call(this)};E.prototype.Eib=function(){var G=this.object.get("maxWorldToPixelScale"),N=this.object.get("minWorldToPixelScale");if(G!==void 0||N!==void 0){var O=this.F.O(k.Tk,!0);O.nE=G;O.oE=N;O.Le=O.Ye=O.Gh=this.object.get("scale")}else(O=this.F)===null||O===void 0||O.ka(k.Tk)}; return E}(B)},uua:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.ta);h.ba(this.object,y,this.UOa||(this.UOa=this.Gib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,y,this.UOa);H.prototype.Xc.call(this)};E.prototype.Gib=function(){var G=this.F.O(k.ta);G.bA=this.object.get("attachToParent");G.positionX=this.object.get("x",this.object.get("positionX",0));G.positionY=this.object.get("y", this.object.get("positionY",0));G.positionZ=this.object.get("z",this.object.get("positionZ",0));G.mf=this.object.get("rotationOrder","XYZ");G.Yd=this.object.get("rotationX",0);G.fd=this.object.get("rotationY",0);G.Xe=this.object.get("rotationZ",0);G.scale=this.object.get("scale",1);G.translationX=this.object.get("translationX",0);G.translationY=this.object.get("translationY",0);G.Ze=this.object.get("translationZ",0)};return E}(B)},wd:function(B){return function(H){function E(){return H!==null&&H.apply(this, arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,z,this.VOa||(this.VOa=this.Lib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,z,this.VOa);H.prototype.Xc.call(this)};E.prototype.Lib=function(){var G=this.object.get("clickEnabled"),N=this.object.get("rollOverEnabled");if(G!==!1&&N!==!1)this.F.ka(k.Sr);else{var O=this.F.N(k.Sr);O.ssa=G===!1;O.tsa=N===!1}G===!1&&N===!1?this.F.ka(k.wd):(O=this.F.O(k.wd,!0),O.pB=this.object.get("useHandCursor"), O.hF=this.object.get("transparentAreaActive"),O.M=this.object,O.nt=!!G,O.Yt=!!N)};return E}(B)},lL:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,A,this.XOa||(this.XOa=this.Rib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,A,this.XOa);H.prototype.Xc.call(this)};E.prototype.Rib=function(){var G=this.F.O(k.gi,!0);G.castShadow=this.object.get("castShadow");G.receiveShadow= this.object.get("receiveShadow")};return E}(B)},xd:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.xd);this.visible=!1;h.ba(this.object,D,this.ZOa||(this.ZOa=this.Sib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,D,this.ZOa);this.kg(!1);H.prototype.Xc.call(this)};E.prototype.Sib=function(){var G=this.F.O(k.xd);G.color=this.object.get("color");G.opacity=this.object.get("hidden")? 0:this.object.get("opacity");G.depthTest=this.object.get("depthTest");this.kg(G.opacity>0)};E.prototype.kg=function(G){this.visible!=G&&((this.visible=G)?this.object.o(n.od):this.object.o(n.jd))};return E}(B)},ro:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);var G=this.F.N(k.ro);G.properties=this.object;G.M=this.object;h.ba(this.object,F,this.aPa||(this.aPa=this.WJ.bind(this)),!0)};E.prototype.Xc= function(){h.da(this.object,F,this.aPa);H.prototype.Xc.call(this)};E.prototype.WJ=function(){this.F.O(k.ro).Psa=this.object.get("video")};return E}(B)},I_:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,C,this.bPa||(this.bPa=this.Uib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,C,this.bPa);H.prototype.Xc.call(this)};E.prototype.Uib=function(){var G=this.F.O(k.gi,!0); G.opacity=this.object.get("enabled")&&!this.object.get("hidden")?this.object.get("opacity"):0;G.M=this.object};return E}(B)}}}); define("tdv/player/view/model3d/renderer/adapters/ModelAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/model3d/renderer/adapters/BaseModelAdapter tdv/player/view/model3d/renderer/adapters/Mixins tdv/player/view/webgl/components".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(p){function q(r,t,u,v){r=p.call(this,r,t,u,v)||this;r.RA=r.RA.bind(r);r.wb=r.F;r.yr=new k;r.yr.bind(g.V,r.Am,r,!0);n.ba(r.object,d,r.RA,!0); r.Wc();return r}P(q,p);q.prototype.Wc=function(){};q.prototype.Xc=function(){};q.prototype.dispose=function(){n.da(this.object,d,this.RA);this.yr.h(g.V,this.Am,this);this.yr=null;this.Xc();p.prototype.dispose.call(this)};q.prototype.Am=function(r){var t=this.model.get("model");t.set("translationX",r.data.position.x);t.set("translationY",r.data.position.y);t.set("translationZ",r.data.position.z);f.setFromQuaternion(r.data.quaternion,t.get("rotationOrder"));t.set("rotationX",f.x*l);t.set("rotationY", f.y*l);t.set("rotationZ",f.z*l);r.data.scale>.001&&t.set("scale",r.data.scale);this.object.o(g.Mm)};q.prototype.RA=function(){if(this.object.get("positionDraggable")||this.object.get("rotationDraggable")||this.object.get("scaleDraggable")){var r=this.hJ.O(c.Hh,!0);r.translate=this.object.get("positionDraggable")||!1;r.rotate=this.object.get("rotationDraggable")||!1;r.scale=this.object.get("scaleDraggable")||!1;r.M=this.yr}else this.hJ.ka(c.Hh)};return q}(e);var d=["positionDraggable","rotationDraggable", "scaleDraggable"],f=new h.Euler,l=180/Math.PI;return b.lL(a)}); define("tdv/view/util/MeasureText",["require","exports","tdv/view/util/Font"],function(a,m,h){function n(e,b,c){c===void 0&&(c=null);k.style.fontFamily=h.qA(b.fontFamily);k.style.font=h.Y7(b);k.innerHTML=e;document.body.appendChild(k);var d=new g(Math.ceil(k.clientWidth),Math.ceil(k.clientHeight));document.body.removeChild(k);c&&(c.font=h.Y7(b),e=c.measureText(e).width,e>0&&(d.height*=e/d.width,d.width=e));b.fontStyle==="italic"&&(d.width+=d.height*1/5);return d}var g=function(){return function(e, b){this.width=e;this.height=b}}(),k=document.createElement("div");k.style.display="inline-block";k.style.margin="0";k.style.padding="0";k.style.whiteSpace="nowrap";n.lca=function(){return function(){this.fontFamily="Arial";this.fontSize="12px";this.fontWeight="400";this.fontStyle="normal"}}();return n}); define("tdv/player/canvas/MenuCanvas",["require","exports","tdv/view/util/MeasureText","tdv/view/util/Font"],function(a,m,h,n){var g=function(){function e(b,c,d){this.nh=b;this.item=c;this.label=c.get("label");this.fontFamily=this.nh.get("fontFamily","Arial");this.fontSize=Math.round(12*d)+"px";this.backgroundColor=this.nh.get("backgroundColor","#000000");this.zQa=this.nh.get("rollOverBackgroundColor",this.backgroundColor);this.hkb=this.nh.get("selectedBackgroundColor",this.zQa);this.zt=this.nh.get("fontColor", "#000000");this.AQa=this.nh.get("rollOverFontColor",this.zt);this.ikb=this.nh.get("selectedFontColor",this.AQa);this.KSa=this.JSa=this.ku=this.nu=this.height=this.width=this.left=this.top=0;this.status=!1;this.apa=!0}e.prototype.dob=function(){var b=new h.lca;b.fontFamily=this.fontFamily;b.fontSize=this.fontSize;b=h(this.label,b);this.nu=b.width;this.ku=b.height};e.prototype.Glb=function(b){this.status!==b&&(this.status=b,this.apa=!0)};e.prototype.xeb=function(b){if(this.apa){this.apa=!1;switch(this.status){case "over":var c= this.zQa;var d=this.AQa;break;case "selected":c=this.hkb;d=this.ikb;break;default:c=this.backgroundColor,d=this.zt}b.clearRect(this.left,this.top,this.width,this.height);b.fillStyle=c;b.fillRect(this.left,this.top,this.width,this.height);b.fillStyle=d;b.font=this.fontSize+" "+n.qA(this.fontFamily);b.textBaseline="middle";b.textAlign="center";b.fillText(this.label,Math.round(this.JSa),Math.round(this.KSa));return!0}return!1};return e}(),k=180/Math.PI;return function(){function e(b,c){this.nh=b;this.items= c.map(this.Edb.bind(this));this.AP=this.BP=this.Rj=this.Sj=0;this.Lk();this.canvas=document.createElement("canvas");this.canvas.width=this.Sj;this.canvas.height=this.Rj;this.context=this.canvas.getContext("2d");this.selectedIndex=this.Iw=-1}e.prototype.Edb=function(b){return new g(this.nh,b,3)};e.prototype.kgb=function(b){return this.Sj/3*b/300};e.prototype.vfb=function(b){return this.Rj/3*b/300};e.prototype.jf=function(){return 2*Math.atan2(this.Sj/3*.5,300)*k};e.prototype.hg=function(){return this.Sj}; e.prototype.xg=function(){return this.Rj};e.prototype.If=function(){return this.canvas};e.prototype.Lk=function(){var b=0,c=0;this.items.forEach(function(p){p.dob();b=Math.max(p.nu,b);c=Math.max(p.ku,c)}.bind(this));this.BP=b+30;this.AP=c+30;var d=0,f=0,l=0;this.$X=20;this.items.length>20&&(this.$X=Math.ceil(this.items.length/Math.ceil(this.items.length/20)));this.items.forEach(function(p){l>=this.$X&&(l=0,f+=this.BP,d=0);p.left=f;p.top=d;p.JSa=f+this.BP*.5;p.KSa=d+this.AP*.5;p.width=this.BP;p.height= this.AP;l+=1;d+=this.AP}.bind(this));this.Sj=Math.ceil(this.items.length/this.$X)*this.BP;this.Rj=Math.min(this.$X,this.items.length)*this.AP};e.prototype.update=function(){for(var b=!1,c=0;c=0&&b=0&&c=this.items.length&&(d=-1));return d}; e.prototype.WE=function(b){this.Iw=b};e.prototype.Zw=function(b){this.selectedIndex=b};e.prototype.clear=function(){this.items=this.canvas=this.context=this.nh=null};return e}()}); define("tdv/player/view/model3d/renderer/adapters/MenuAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/player/canvas/MenuCanvas tdv/events/EventDispatcher tdv/player/view/util/XR tdv/player/view/webgl/components tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/util/Animation".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p){function q(A){return c.isPresenting?-v.setFromQuaternion(c.yl,"YXZ").y*y:A.get("camera").get("yaw")}function r(A){return c.isPresenting? v.setFromQuaternion(c.yl,"YXZ").x*y:A.get("camera").get("pitch")}a=function(){function A(D,F,C){this.model=D;this.wb=F;this.Ea=C;this.H9=this.H9.bind(this);this.Qn=[];this.HP=[];this.ir=!1;c.M.bind(g.V,this.Ta,this,!0);n.ba(this.model,["xrMenu"],this.H9,!0)}A.prototype.dispose=function(){n.da(this.model,["xrMenu"],this.H9);c.M.h(g.V,this.Ta,this);this.ya()};A.prototype.Ta=function(){this.vTa()};A.prototype.H9=function(){this.vTa()};A.prototype.vTa=function(){var D=c.isPresenting?this.model.get("xrMenu"): null;D!=this.nh&&(this.nh&&this.ya(),(this.nh=D)&&this.Wa())};A.prototype.Wa=function(){this.cw=this.Ea.T.sc("CameraOffsetGroup");this.cw.N(d.Group);this.cw.N(d.ta).easing=0;var D=this.cw.N(d.SK);D.Ea=this.Ea;D.rotate=!1;this.cw.N(d.pb).F=this.wb;this.Dw=new t(this.model,this.nh,this.cw);this.Dw.bind(g.ma,this.yib,this,!0);this.Dw.bind(g.Eb,this.zib,this,!0);this.Dw.bind(g.uc,this.Aib,this,!0)};A.prototype.yib=function(){this.nSa();this.bIa(this.nh,0);this.Dw.kg(!1)};A.prototype.bIa=function(D,F){for(;this.Qn.length> F;)this.Gna(this.Qn.pop());this.Qn.push(this.Fdb(D))};A.prototype.sJa=function(){var D;for((D=this.Dw)===null||D===void 0||D.kg(!0);this.Qn.length;)this.Gna(this.Qn.pop())};A.prototype.Fdb=function(D){D=new u(this.model,this.nh,D,this.cw,this.Qn.length>0?this.Qn[this.Qn.length-1]:this.Dw);if(this.Qn.length>0){var F=this.Qn[this.Qn.length-1];var C=F.Jc();F=F.Kc()+F.jf()/2+1+D.jf()/2;D.setPosition(F,C)}else F=q(this.model),C=r(this.model);D.setPosition(F,C);D.Fpa.get("children",[]).forEach(function(B){B.bind(g.ma, this.HOa,this,!0)},this);D.bind(g.uc,this.GOa,this,!0);D.bind(g.Eb,this.FOa,this,!0);return D};A.prototype.Gna=function(D){D.Fpa.get("children",[]).forEach(function(F){F.h(g.ma,this.HOa,this)},this);D.h(g.uc,this.GOa,this);D.h(g.Eb,this.FOa,this);this.Jqa(D);D.dispose()};A.prototype.HOa=function(D){D=D.source;if(D.get("children",[]).length){var F=this.Jeb(D);this.bIa(D,F+1)}else this.sJa()};A.prototype.GOa=function(D){this.bcb(D.source)};A.prototype.FOa=function(D){this.Jqa(D.source)};A.prototype.Aib= function(){this.wQ()};A.prototype.zib=function(){this.wQ()};A.prototype.bcb=function(D){this.Jqa(D);this.HP.push(D);this.HP.length>0&&this.xmb();this.wQ()};A.prototype.Jqa=function(D){this.HP=this.HP.filter(function(F){return F!=D});this.HP.length==0&&this.nSa();this.wQ()};A.prototype.wQ=function(){this.qRa(this.HP.length>0||this.Dw.ir())};A.prototype.qRa=function(D){this.ir!==D&&((this.ir=D)?(this.model.get("camera").ZQa(!0),this.model.get("camera").xRa(!0),this.z$&&(clearTimeout(this.z$),this.z$= 0)):this.z$=setTimeout(function(){this.z$=0;this.model.get("camera").ZQa(!1);this.model.get("camera").xRa(!1)}.bind(this),100))};A.prototype.nSa=function(){this.Y6||(this.Y6=setTimeout(this.sJa.bind(this),3E3))};A.prototype.xmb=function(){this.Y6&&(clearTimeout(this.Y6),this.Y6=0)};A.prototype.Jeb=function(D){return this.Qn.findIndex(function(F){return F.Fpa.get("children",[]).indexOf(D)>=0?!0:!1})};A.prototype.ya=function(){this.cw&&(this.cw.T.dd(this.cw),this.cw=null);this.Dw&&(this.Dw.dispose(), this.Dw=null);for(;this.Qn.length;)this.Gna(this.Qn.pop());this.qRa(!1)};return A}();b=function(A){function D(F,C,B,H,E){var G=A.call(this)||this;G.model=F;G.nh=C;G.U8=B;G.Ag=H;G.Ew=new e(G.nh,G.U8);G.Xa=0;G.pitch=0;G.zf=new f("linear",[new l("coef",0,1)],150);G.Iw=-1;G.selectedIndex=-1;G.We=!1;E?(G.tZ=E===null||E===void 0?void 0:E.Kc(),G.Ura=E===null||E===void 0?void 0:E.Jc()):(G.tZ=q(G.model),G.Ura=r(G.model));G.F=G.Ag.T.sc("MenuItems");G.F.N(d.Plane).renderOrder=k.uVa;G.F.N(d.pb).F=G.Ag;G.F.N(d.ta).mf= "YXZ";F=G.F.N(d.Kf);F.source=G.Ew.If();F.isSprite=!1;F.hidden=!1;F.depthTest=!1;G.F.N(d.VF);F=G.F.N(d.wd);F.pB=!0;F.hF=!1;F.M=G;F.nt=!0;F.Yt=!0;G.qNa=Date.now();G.bind(g.gb,G.Vj,G,!0);G.bind(g.uc,G.yE,G,!0);G.bind(g.Eb,G.Tn,G,!0);G.bind(g.ma,G.kY,G,!0);c.M.bind(g.UZ,G.xE,G,!0);p.requestFrame(G.Bp,G);G.Lp();G.HK();G.xE();return G}P(D,A);D.prototype.dispose=function(){this.h(g.gb,this.Vj,this);this.h(g.uc,this.yE,this);this.h(g.Eb,this.Tn,this);this.h(g.ma,this.kY,this);c.M.h(g.UZ,this.xE,this);p.cJa(this.Bp, this);this.F.T.dd(this.F)};D.prototype.Kc=function(){return this.Xa};D.prototype.Jc=function(){return this.pitch};D.prototype.jf=function(){return this.Ew.jf()};D.prototype.PLa=function(){return this.selectedIndex};D.prototype.ir=function(){return this.We};D.prototype.setPosition=function(F,C){this.Xa=F;this.pitch=C;this.JK()};D.prototype.Vj=function(F){this.WE(this.iLa(F))};D.prototype.yE=function(){this.We=!0;this.HK()};D.prototype.Tn=function(){this.We=!1;this.WE(-1);this.HK()};D.prototype.kY= function(F){F=this.iLa(F);this.Zw(F);this.U8[F].o(g.ma)};D.prototype.iLa=function(F){var C=(F.data.localPosition.x+.5)*this.Ew.hg();F=(.5-F.data.localPosition.y)*this.Ew.xg();return this.Ew.xoa(C,F)};D.prototype.Bp=function(){c.isPresenting||this.xE();p.requestFrame(this.Bp,this)};D.prototype.xE=function(){if(this.zf){var F=Date.now();this.zf.Nb(F-this.qNa);this.qNa=F;this.zf.Ve()&&(this.zf=null);this.HK()}this.JK()};D.prototype.setScale=function(F){this.F.getComponent(d.ta).scale!=F&&(this.F.O(d.ta).scale= F)};D.prototype.Zn=function(F){this.F.getComponent(d.Kf).opacity!=F&&(this.F.O(d.Kf).opacity=F)};D.prototype.WE=function(F){this.Iw!=F&&(this.Iw>=0&&this.U8[this.Iw].o(g.Eb),this.Iw=F,this.Iw>=0&&this.U8[this.Iw].o(g.uc),this.Lp())};D.prototype.Zw=function(F){this.selectedIndex!=F&&(this.selectedIndex=F,this.Lp())};D.prototype.Lp=function(){this.Ew.Zw(this.selectedIndex);this.Ew.WE(this.Iw);this.Ew.update()&&(this.F.O(d.Kf).xK=Date.now())};D.prototype.JK=function(){var F=this.nh.get("distance")/this.model.get("worldUnitToMeters", 1),C=this.F.O(d.ta);w.identity();w.multiply(x.makeRotationFromQuaternion(c.wg,"YXZ"));w.multiply(x.makeRotationFromQuaternion(c.yl,"YXZ").invert());var B=this.Xa,H=this.pitch;if(this.zf){var E=this.zf.ob("coef");for(B-=this.tZ;B>180;)B-=360;for(;B<-180;)B+=360;H-=this.Ura;B=this.tZ+B*E;H=this.Ura+H*E}w.multiply(x.makeRotationFromEuler(v.set(H*z,-B*z,0,"YXZ"),"YXZ"));v.setFromRotationMatrix(w,C.mf);C.Yd=v.x*y;C.fd=v.y*y;C.Xe=v.z*y;C.positionZ=-F;C.Le=this.Ew.kgb(F);C.Ye=this.Ew.vfb(F)};D.prototype.HK= function(){};return D}(b);var t=function(A){function D(F,C,B){F=A.call(this,F,C,[C],B,null)||this;F.visible=!0;F.F.N(d.ta).easing=.01;F.LP=F.LP.bind(F);n.ba(F.model,["camera.pitch","camera.yaw"],F.LP,!0);return F}P(D,A);D.prototype.dispose=function(){A.prototype.dispose.call(this);n.da(this.model,["camera.pitch","camera.yaw"],this.LP)};D.prototype.kg=function(F){this.visible!==F&&(this.visible=F,this.visible||(this.WE(-1),this.Zw(-1)),F=!this.visible,this.F.getComponent(d.Kf).hidden!==F&&(this.F.O(d.Kf).hidden= F,this.LP()))};D.prototype.LP=function(){this.visible&&(this.setPosition(q(this.model),this.TLa()),this.HK())};D.prototype.xE=function(){this.LP();A.prototype.xE.call(this)};D.prototype.HK=function(){var F=this.nh.get("opacity",.5),C=this.nh.get("rollOverOpacity",F);F=this.We?C:F;var B=.66,H=this.model.get("camera"),E=r(this.model);H=Math.abs(E-this.TLa())/(H.get("fov")*.5);H<1&&(B+=(1-H)*(1-B),F+=(1-H)*(C-F));F*=this.zf?this.zf.ob("coef"):1;this.Zn(Math.min(1,Math.max(0,F)));this.setScale(B);this.Lp()}; D.prototype.TLa=function(){var F=r(this.model);return Math.min(90,Math.max(-90,40-F))};return D}(b),u=function(A){function D(F,C,B,H,E){F=A.call(this,F,C,B.get("children",[]),H,E)||this;F.Fpa=B;return F}P(D,A);D.prototype.HK=function(){var F=this.nh.get("opacity",.5),C=this.nh.get("rollOverOpacity",F);F=this.We?C:F;F*=this.zf?this.zf.ob("coef"):1;this.Zn(Math.min(1,Math.max(0,F)))};return D}(b),v=new h.Euler,w=new h.Matrix4,x=new h.Matrix4,y=180/Math.PI,z=Math.PI/180;return a}); define("tdv/player/view/model3d/renderer/adapters/ToolTipAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/constants/EventName"],function(a,m,h,n){return function(){function g(k,e){this.renderer=k;this.model=e;this.eb=this.renderer.P;this.u9=this.u9.bind(this);this.rj=[];this.mB="";this.Fw=null;this.Wa()}g.prototype.dispose=function(){this.ya()};g.prototype.Wa=function(){h.ba(this.model,"objects",this.u9,!0);this.model.bind(n.uc,this.JOa,this,!0);this.model.bind(n.Eb,this.IOa,this, !0)};g.prototype.ya=function(){this.model.h(n.uc,this.JOa,this);this.model.h(n.Eb,this.IOa,this);h.da(this.model,"objects",this.u9);this.VE([]);this.Fw&&this.Tn(this.Fw)};g.prototype.u9=function(){this.VE(this.model.get("objects"))};g.prototype.VE=function(k){this.rj!=k&&(this.rj.forEach(function(e){e.h(n.uc,this.OOa,this);e.h(n.Eb,this.NOa,this);e.h(n.jd,this.MOa,this)}.bind(this)),this.Fw&&this.rj.indexOf(this.Fw)>=0&&k.indexOf(this.Fw)<0&&this.Tn(this.Fw),this.rj=k,this.rj.forEach(function(e){e.bind(n.uc, this.OOa,this,!0);e.bind(n.Eb,this.NOa,this,!0);e.bind(n.jd,this.MOa,this,!0)}.bind(this)))};g.prototype.OOa=function(k){k=k.source;this.yE(k,k.get("toolTip"))};g.prototype.NOa=function(k){this.Tn(k.source)};g.prototype.MOa=function(k){this.Tn(k.source)};g.prototype.JOa=function(){this.yE(this.model,this.model.get("toolTip"))};g.prototype.IOa=function(){this.Tn(this.model)};g.prototype.Tn=function(k){this.Fw==k&&(this.Fw=null,this.LRa(""))};g.prototype.yE=function(k,e){this.Fw!=k&&(this.Fw=k,this.LRa(e|| ""))};g.prototype.LRa=function(k){this.mB!=k&&(this.mB=k,this.eb.set("toolTip",this.mB))};return g}()}); define("tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas",["require"],function(){function a(m){this.Ne=this.fv(m.get("surfaceReticleColor"));this.Ez=this.fv(m.get("surfaceReticleSelectionColor"));this.Of=m.get("surfaceReticleOpacity");this.G7a=m.get("surfaceReticleSelectionOpacity");this.Rm=this.Ih=128;this.e6a=.456;this.f6a=.088;this.p3a=.18;this.ja=document.createElement("canvas");this.ja.width=this.Ih;this.ja.height=this.Rm;this.ga=this.ja.getContext("2d");this.ga.fillStyle= "red";this.ga.imageSmoothingEnabled=!0;this.ga.fillRect(0,0,this.Ih,this.Rm);this.Cd=this.ey=!1;this.GM=this.R3=void 0;this.pG=0}a.prototype.Ifa=function(){return this.hm(this.Ez[0]*NaN+NaN*this.Ne[0],this.Ez[1]*NaN+NaN*this.Ne[1])};a.prototype.fv=function(m){m=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(m);return[parseInt(m[1],16),parseInt(m[2],16),parseInt(m[3],16)]};a.prototype.hm=function(m,h){return"rgba("+m.join(",")+", "+h+")"};a.prototype.setPosition=function(m){this.Wb!=m&&(this.Wb= m,this.Rd=!0)};a.prototype.hg=function(){return this.Ih};a.prototype.xg=function(){return this.Rm};a.prototype.If=function(){return this.ja};a.prototype.update=function(){if(!this.Rd)return!1;this.Rd=!1;this.ga.clearRect(0,0,this.Ih,this.Rm);var m=[this.Ez[0]*this.Wb+(1-this.Wb)*this.Ne[0],this.Ez[1]*this.Wb+(1-this.Wb)*this.Ne[1],this.Ez[2]*this.Wb+(1-this.Wb)*this.Ne[2]],h=this.G7a*this.Wb+(1-this.Wb)*this.Of;this.ga.strokeStyle=this.hm(m,h);this.ga.fillStyle=this.hm(m,h*this.Wb);this.ga.beginPath(); this.ga.lineWidth=this.Ih*this.f6a;this.ga.arc(.5*this.Ih,.5*this.Ih,this.Ih*this.e6a,0,2*Math.PI,!1);this.ga.stroke();this.ga.beginPath();this.ga.arc(.5*this.Ih,.5*this.Ih,this.Ih*this.p3a,0,2*Math.PI,!1);this.ga.fill();return!0};return a});define("tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas",["require","tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas"],function(a){return a("tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas")}); define("tdv/player/view/model3d/renderer/adapters/SurfaceSelectorPointerAdapter","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/constants/RenderOrder tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas tdv/player/view/util/Device tdv/player/view/util/XR tdv/player/view/webgl/components".split(" "),function(a){function m(p,q,r){this.Fa=p;this.Vb=q;this.j=r;this.P=this.j.P;this.dz=this.dz.bind(this);this.mz=this.mz.bind(this);this.Cd=void 0; this.Fa.bind(n.L("surfaceSelectionEnabled"),this.cfa,this,!0);this.cfa()}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/RenderOrder"),e=a("tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas"),b=a("tdv/player/view/util/Device"),c=a("tdv/player/view/util/XR"),d=a("tdv/player/view/webgl/components");m.prototype.cfa=function(){var p=this.Fa.get("surfaceSelectionEnabled");!!this.B!=p&&(p?this.TG():this.gs())}; m.prototype.TG=function(){if(!this.B){this.B=this.Vb.T.sc("PointerReticle");this.B.N(d.Plane).renderOrder=k.hWa;this.B.N(d.El).F=this.Vb;this.B.N(d.Sr);this.B.N(d.VF);this.B.N(d.pb).F=this.Vb;var p=this.B.N(d.Qp);p.M=new g;p.M.bind(n.V,this.ET,this,!0);h.ba(this.Fa,f,this.dz,!0);this.Qv=new e(this.P);this.Qv.setPosition(0);this.Qv.update();p=this.B.N(d.Kf);p.source=this.Qv.If();p.depthTest=!1;h.ba(this.Fa,l,this.mz,!0);c.M.bind(n.V,this.gDa,this,!0);this.Ee=null;this.vI(!1)}};m.prototype.gs=function(){this.B&& (this.Ee&&(this.Ee.o(n.Eb),this.Ee=null),h.da(this.Fa,l,this.mz),this.jV(null),this.B.getComponent(d.Qp).M.h(n.V,this.ET,this,!0),this.Vb.T.dd(this.B),this.Qv=this.B=null,c.M.h(n.V,this.gDa,this),h.da(this.Fa,f,this.dz))};m.prototype.dz=function(){var p=this.B.O(d.Tk,!0);p.Le=p.Ye=2;p.scale=this.Fa.get("surfaceReticleRadius");p.nE=this.Fa.get("surfaceReticleMaxRadius");p.oE=this.Fa.get("surfaceReticleMinRadius")};m.prototype.ET=function(p){p=this.Mya(p.data.beacons);var q=this.uya(p);q==0&&(p=null); this.R7a(p);this.h8a(q)};m.prototype.mz=function(){this.jV(this.Fa&&this.Fa.get("pointer"))};m.prototype.jV=function(p){this.we!==p&&(this.we&&(this.we.h(n.ma,this.fz,this,!0),this.we.h(n.gb,this.tg,this,!0),this.we.h(n.Eb,this.Fs,this,!0)),this.we=p)&&(this.we.bind(n.ma,this.fz,this,!0),this.we.bind(n.gb,this.tg,this,!0),this.we.bind(n.Eb,this.Fs,this,!0))};m.prototype.fz=function(p){var q=null;if(b.ub()&&!c.isPresenting){var r=this.B.getComponent(d.Qp);r&&r.kX&&p.data.position&&(p=r.kX((new THREE.Vector3).copy(p.data.position)), p=this.Mya(p),this.uya(p)!=0&&(q=this.Ffa(p)))}else q=this.Ee;q&&q.o(n.ma)};m.prototype.tg=function(p){this.vI(p.data.type=="other"?!1:!0)};m.prototype.Fs=function(){this.vI(!1)};m.prototype.vI=function(p){this.Cd!==p&&(this.Cd=p,this.xi())};m.prototype.gDa=function(){this.xi()};m.prototype.xi=function(){this.B.O(d.Kf).opacity=b.ub()&&!c.isPresenting||!this.Cd?0:1};m.prototype.R7a=function(p){p=this.Ffa(p);this.Ee!=p&&(this.Ee&&this.Ee.o(n.Eb),(this.Ee=p)&&this.Ee.o(n.uc))};m.prototype.Mya=function(p){if(!p)return null; for(var q=0;q= l),f++):p.lra(!1)})};b.prototype.n1a=function(c){c=(c=c.entity.getComponent(k.QQ))&&c.object;c.get&&c.get("hideBasedOnDistance")!==void 0||(c=null);return c};b.prototype.dispose=function(){h.da(this.Fa,e,this.u3);this.ha&&(this.ha=!1,this.gs())};return b}()}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasureAreaAdapter","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/webgl/components");a=m.extend(g,function(b,c){g.call(this);this.ce=b;this.Vb=c;this.ug=this.ug.bind(this);this.B=null;this.nm= 0;this.Ld=!1;this.GU=[];this.ce.bind(n.L("areaOpacity"),this.kCa,this);this.Vz()});a.prototype.B$=function(b){this.GU.forEach(function(c){c.h(n.od,this.ye,this,!0);c.h(n.jd,this.ye,this,!0)}.bind(this));this.GU=b;this.GU.forEach(function(c){c.bind(n.od,this.ye,this,!0);c.bind(n.jd,this.ye,this,!0)}.bind(this));this.zGa();this.ye()};a.prototype.dispose=function(){this.ce.h(n.L("areaOpacity"),this.kCa,this);this.Oz()};a.prototype.nj=function(){return this.B};a.prototype.isVisible=function(){return this.Ld}; a.prototype.kCa=function(){this.Vz();this.xi()};a.prototype.Vz=function(){this.ce.get("areaOpacity")>0?this.zD():this.Oz()};a.prototype.zD=function(){if(!this.B){this.B=this.Vb.T.sc("MeasureArea");var b=new g;b.bind(n.V,this.WC,this,!0);this.B.N(k.lo).M=b;this.B.N(k.xd);this.B.N(k.pb).F=this.Vb;h.ba(this.ce,e,this.ug,!0);this.zGa()}};a.prototype.Oz=function(){this.B&&(this.B.getComponent(k.lo).M.h(n.V,this.WC,this,!0),h.da(this.ce,e,this.ug),this.B.T.dd(this.B),this.B=null)};a.prototype.Hv=function(b){this.Ld!= b&&((this.Ld=b)?(this.Iq(1),this.o(n.od)):(this.Iq(0),this.o(n.jd)))};a.prototype.ye=function(){this.Hv(this.GU.every(function(b){return b.isVisible()}))};a.prototype.WC=function(b){this.ce.set("area",b.data.area)};a.prototype.ug=function(){if(this.B){var b=this.B.O(k.xd);b.color=this.ce.get("areaColor");b.depthTest=this.ce.get("depthTest");b.doubleSided=!0;this.xi()}};a.prototype.Iq=function(b){this.nm!=b&&(this.nm=b,this.xi())};a.prototype.xi=function(){this.B&&(this.B.O(k.xd).opacity=this.ce.get("areaOpacity")* Math.max(1E-4,this.nm))};a.prototype.zGa=function(){this.B&&(this.B.O(k.lo).v=this.GU.map(function(b){return b.nj()}))};var e=["areaColor","areaOpacity","depthTest"];return a}); define("tdv/player/view/model3d/renderer/adapters/canvas/MeasureLabelCanvas",["require","tdv/view/util/MeasureText","tdv/view/util/Font"],function(a){function m(){this.sfa=this.fv("#ffffff");this.dC=this.fv("#000000");this.Rm=this.Ih=0;this.ja=document.createElement("canvas");this.ga=this.ja.getContext("2d");this.ga.imageSmoothingQuality="high";this.Ov=new h.lca;this.tfa=this.mM=void 0;this.Vca=this.Wca=.5;this.it=void 0;this.ZN=m.Rba;this.Tz=void 0;this.jQ(0)}var h=a("tdv/view/util/MeasureText"), n=a("tdv/view/util/Font");m.Bta="imperial area";m.Cta="imperial length";m.Jta="metric area";m.Rba="metric length";m.prototype.dispose=function(){this.ja.width=this.ja.height=0;this.ja=null};m.prototype.Ekb=function(g){this.sfa!=g&&(this.sfa=g,this.Rd=!0)};m.prototype.mkb=function(g){this.dC!=g&&(this.dC=g,this.Rd=!0)};m.prototype.Fkb=function(g){this.tfa!=g&&(this.tfa=g,this.Rd=!0)};m.prototype.Gkb=function(g){this.mM!=g&&(this.mM=g,this.Rd=!0)};m.prototype.Zqa=function(){this.Ov.wO!=.5&&(this.Vca= .5,this.Rd=!0)};m.prototype.$qa=function(g){this.Ov.xO!=g&&(this.Wca=g,this.Rd=!0)};m.prototype.jQ=function(g){this.it!=g&&(this.it=g,this.Vla())};m.prototype.Klb=function(g){this.ZN!=g&&(this.ZN=g,this.Vla())};m.prototype.Llb=function(g){this.Tz!=g&&(this.Tz=g,this.Vla())};m.prototype.Vla=function(){if(this.Tz===void 0)this.Za=this.it.toFixed(2);else if(this.ZN==m.Rba){var g=this.it*this.Tz;this.Za=g>=1?g.toFixed(2)+"m":(g*100).toFixed(2)+"cm"}else this.ZN==m.Jta?(g=this.it*this.Tz*this.Tz,this.Za= g>=.1?g.toFixed(2)+"m\u00b2":(g*1E4).toFixed(2)+"cm\u00b2"):this.ZN==m.Cta?(g=this.it*this.Tz*1.0936,this.Za=g>1760?(g/1760).toFixed(2)+"mi":g>=100?g.toFixed(2)+"yd":g*3>=1?(g*3).toFixed(2)+"ft":(g*3*12).toFixed(2)+"in"):this.ZN==m.Bta&&(g=this.it*this.Tz*this.Tz*10.76364864,this.Za=g>=1?g.toFixed(2)+"ft\u00b2":(g*144).toFixed(2)+"in\u00b2");this.Rd=!0};m.prototype.fv=function(g){g=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(g);return[parseInt(g[1],16),parseInt(g[2],16),parseInt(g[3],16)]};m.prototype.hm= function(g,k){return"rgba("+g.join(",")+", "+k+")"};m.prototype.hg=function(){return this.Ih};m.prototype.xg=function(){return this.Rm};m.prototype.If=function(){return this.ja};m.prototype.update=function(){if(!this.Rd)return!1;this.Rd=!1;this.Ov.fontFamily=this.tfa||"Arial";this.Ov.fontSize=this.mM?typeof this.mM=="string"?this.mM:this.mM+"px":"30px";var g=h(this.Za,this.Ov),k=this.fv(this.sfa),e=this.fv(this.dC),b=g.width;g=g.height;var c=.5*g,d=.3*g,f=c+b+.5*g,l=d+g+.2*g,p=.5*l;this.ja.width= this.ja.height=this.Ih=this.Rm=Math.max(128,Math.pow(2,Math.ceil(Math.log(Math.max(f,l))/Math.LN2)));var q=this.Ih*this.Vca-f*this.Vca,r=this.Rm*this.Wca-l*this.Wca;this.OL();this.ga.save();this.ga.translate(q,r);this.ga.fillStyle=this.hm(e,1);this.ga.beginPath();this.ga.moveTo(0,p);this.ga.quadraticCurveTo(0,0,p,0);this.ga.lineTo(f-p,0);this.ga.quadraticCurveTo(f,0,f,p);this.ga.quadraticCurveTo(f,l,f-p,l);this.ga.lineTo(p,l);this.ga.quadraticCurveTo(0,l,0,l-p);this.ga.closePath();this.ga.fill(); this.ga.fillStyle=this.hm(k,1);this.ga.font=this.Ov.fontSize+" '"+this.Ov.fontFamily+"'";this.ga.font=this.Ov.fontSize+(isNaN(this.Ov.fontSize)?"":"px")+" "+n.qA(this.Ov.fontFamily);this.ga.textBaseline="middle";this.ga.textAlign="center";this.ga.fillText(this.Za,Math.round(c+b*.5),Math.round(d+g*.5));this.ga.restore();return!0};m.prototype.OL=function(){this.ga.clearRect(0,0,this.Ih,this.Rm)};return m}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasureLabelAdapter","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/model3d/renderer/adapters/canvas/MeasureLabelCanvas tdv/view/effects/Effect".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/RenderOrder"),k=a("tdv/events/EventDispatcher"), e=a("tdv/player/view/webgl/components"),b=a("tdv/player/view/model3d/renderer/adapters/canvas/MeasureLabelCanvas"),c=a("tdv/view/effects/Effect");a=m.extend(k,function(f,l,p){k.call(this);this.Pha=f;this.ce=l;this.Vb=p;this.ug=this.ug.bind(this);this.Kq=this.B=null;this.nm=0;this.Ld=!1;this.C5=this.ii=this.kD=this.PC=null;this.it=void 0;this.Zi=new b;this.Pha.bind(n.L("worldUnitToMeters"),this.Lia,this,!0);this.ce.bind(n.L("units"),this.xia,this,!0);this.zD()});a.prototype.tRa=function(f){this.c5(f, null,null)};a.prototype.plb=function(f){this.c5(null,f,null)};a.prototype.lkb=function(f){this.c5(null,null,f)};a.prototype.c5=function(f,l,p){if(this.kD!=l||this.PC!=f||this.ii!=p)[this.PC,this.kD,this.ii].forEach(function(q){q&&q.h(n.od,this.ye,this,!0);q&&q.h(n.jd,this.ye,this,!0)}.bind(this)),this.Oz(),this.PC=f,this.kD=l,this.ii=p,this.zD(),this.ug(),this.gh(!0),[this.PC,this.kD,this.ii].forEach(function(q){q&&q.bind(n.od,this.ye,this,!0);q&&q.bind(n.jd,this.ye,this,!0)}.bind(this)),this.PC? (this.B.O(e.pb).F=this.PC.nj(),this.B.O(e.ta).Ze=.5,f=this.B.O(e.Sprite),f.wO=.5,f.xO=.5,this.Zi.Zqa(),this.Zi.$qa(.5)):this.kD?(this.B.O(e.pb).F=this.kD.nj(),this.B.O(e.ta).Ze=0,f=this.B.O(e.Sprite),f.wO=.5,f.xO=1.1,this.Zi.Zqa(),this.Zi.$qa(1)):this.ii?(this.B.O(e.pb).F=this.ii.nj(),this.B.O(e.ta).Ze=0,f=this.B.O(e.Sprite),f.wO=.5,f.xO=.5,this.Zi.Zqa(),this.Zi.$qa(.5)):this.B.O(e.pb).F=null,this.ye(),this.xia(),this.Lia()};a.fWa="partialDistance";a.Dua="distance";a.eWa="area";a.prototype.setStyle= function(f){this.C5!=f&&(this.C5=f,this.ug())};a.prototype.jQ=function(f){f!==void 0&&this.it!==f&&(this.it=f,this.Zi.jQ(f),this.gh(),this.ye())};a.prototype.dispose=function(){this.Pha.h(n.L("worldUnitToMeters"),this.Lia,this,!0);this.ce.h(n.L("units"),this.xia,this,!0);this.c5(null,null);this.Zi.dispose();this.Zi=null;this.Oz()};a.prototype.Lia=function(){this.Zi.Llb(this.Pha.get("worldUnitToMeters"));this.gh()};a.prototype.xia=function(){var f=this.ce.get("units"),l=!!this.ii;this.Zi.Klb(f=="imperial"? l?b.Bta:b.Cta:l?b.Jta:b.Rba);this.gh()};a.prototype.zD=function(){if(!this.B){this.B=this.Vb.T.sc("MeasureLabel");this.B.N(e.Sprite).renderOrder=g.pVa;this.B.N(e.Sr);var f=this.B.N(e.Kf);f.source=this.Zi.If();f.isSprite=!0;h.ba(this.ce,d,this.ug,!0);this.B.N(e.ta);this.B.N(e.pb)}};a.prototype.Oz=function(){this.B&&(h.da(this.ce,d,this.ug),this.B.T.dd(this.B),this.B=null)};a.prototype.isVisible=function(){return this.Ld};a.prototype.Hv=function(f){this.Ld!=f&&((this.Ld=f)?(this.o9a(),this.o(n.od)): (this.q$a(),this.Iq(0),this.o(n.jd)))};a.prototype.ye=function(){this.Hv(this.it>0&&(this.PC&&this.PC.isVisible()||this.kD&&this.kD.isVisible()||this.ii&&this.ii.isVisible()))};a.prototype.o9a=function(){this.Kq||(this.Kq=new c,this.Kq.set("duration",300),this.Kq.bind(c.eba,this.TCa,this,!0),this.Kq.bind(c.Cl,this.SCa,this,!0),this.Kq.play())};a.prototype.q$a=function(){this.Kq&&(this.Kq.h(c.eba,this.TCa,this,!0),this.Kq.h(c.Cl,this.SCa,this,!0),this.Kq.stop(),this.Kq=null)};a.prototype.TCa=function(){this.Iq(2* this.Kq.vm()-1)};a.prototype.SCa=function(){this.Iq(1)};a.prototype.ug=function(){this.B.O(e.Kf).depthTest=this.sM("depthTest");this.Zi.Ekb(this.sM("labelFontColor"));this.Zi.mkb(this.sM("labelBackgroundColor"));this.Zi.Fkb(this.sM("labelFontFamily"));this.Zi.Gkb(this.sM("labelFontSize"));this.xi();this.gh()};a.prototype.sM=function(f){var l;this.C5&&(l=this.ce.get(this.C5+f[0].toUpperCase()+f.substr(1)));l===void 0&&(l=this.ce.get(f));return l};a.prototype.gh=function(f){if(this.Zi.update()||f){f= this.B.O(e.Kf);var l=this.B.O(e.Sprite);f.xK=(new Date).getTime();l.width=this.Zi.hg();l.height=this.Zi.xg()}};a.prototype.Iq=function(f){this.nm!=f&&(this.nm=f,this.xi())};a.prototype.xi=function(){this.B.O(e.Kf).opacity=this.sM("labelOpacity")*Math.max(1E-4,this.nm)};var d="depthTest areaLabelBackgroundColor areaLabelFontColor areaLabelFontFamily areaLabelOpacity areaLabelFontSize distanceLabelBackgroundColor distanceLabelFontColor distanceLabelFontFamily distanceLabelOpacity distanceLabelFontSize labelBackgroundColor labelFontColor labelFontFamily labelOpacity labelFontSize partialDistanceLabelBackgroundColor partialDistanceLabelFontColor partialDistanceLabelFontFamily partialDistanceLabelOpacity partialDistanceLabelFontSize".split(" "); return a}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasureLineAdapter","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/webgl/components");a=m.extend(g,function(b,c){g.call(this);this.ce=b;this.Vb=c;this.zn=this.xn=null;this.ug=this.ug.bind(this);this.B= null;this.nm=0;this.Ld=!1;this.zD()});a.prototype.B$=function(b,c){if(this.xn!=b||this.zn!=c)this.xn&&this.xn.h(n.od,this.ye,this,!0),this.xn&&this.xn.h(n.jd,this.ye,this,!0),this.zn&&this.zn.h(n.od,this.ye,this,!0),this.zn&&this.zn.h(n.jd,this.ye,this,!0),this.xn=b,this.zn=c,this.xn&&this.xn.bind(n.od,this.ye,this,!0),this.xn&&this.xn.bind(n.jd,this.ye,this,!0),this.zn&&this.zn.bind(n.od,this.ye,this,!0),this.zn&&this.zn.bind(n.jd,this.ye,this,!0),this.B.O(k.pb,!0).F=this.xn&&this.xn.nj(),this.B.O(k.zu, !0).F=this.zn&&this.zn.nj(),this.ye()};a.prototype.nj=function(){return this.B};a.prototype.dispose=function(){this.B$(null,null);this.Oz()};a.prototype.zD=function(){this.B||(this.B=this.Vb.T.sc("MeasureLine"),this.B.N(k.Line),this.B.N(k.ei),this.B.N(k.ta),h.ba(this.ce,e,this.ug,!0))};a.prototype.Oz=function(){this.B&&(h.da(this.ce,e,this.ug),this.B.T.dd(this.B),this.B=null)};a.prototype.isVisible=function(){return this.Ld};a.prototype.Hv=function(b){this.Ld!=b&&((this.Ld=b)?(this.Iq(1),this.o(n.od)): (this.Iq(0),this.o(n.jd)))};a.prototype.ye=function(){this.Hv(this.xn&&this.xn.isVisible()&&this.zn&&this.zn.isVisible())};a.prototype.ug=function(){var b=this.B.O(k.ei);b.color=this.ce.get("lineColor");b.depthTest=this.ce.get("depthTest");b.width=this.ce.get("lineWidth");b.depthTest=this.ce.get("depthTest");this.xi()};a.prototype.Iq=function(b){this.nm!=b&&(this.nm=b,this.xi())};a.prototype.xi=function(){this.B.O(k.ei).opacity=this.ce.get("lineOpacity")*Math.max(1E-4,this.nm)};var e=["depthTest", "lineColor","lineOpacity","lineWidth"];return a}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasurePointAdapter","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/webgl/components");a=m.extend(g,function(d,f,l,p){g.call(this);this.ce=d;this.Fa=f;this.Vb=l;this.Os=p;this.B3=this.B3.bind(this); this.ug=this.ug.bind(this);this.bp=this.bp.bind(this);this.B=null;this.zj=this.$U=this.Cd=this.cC=!1;this.nm=0;this.Ld=!1;this.zD();h.ba(this.ce,e,this.B3,!0);h.ba(this.ce,c,this.ug,!0);h.KD(this.Os,b,this.bp,!0);this.bind(n.Mm,this.zCa,this,!0);this.bind(n.uc,this.G3,this,!0);this.bind(n.Eb,this.Fs,this,!0);this.bp();this.g8()&&this.Hv(!0)});a.prototype.dispose=function(){h.da(this.ce,e,this.B3);h.da(this.ce,c,this.ug);h.da(this.Os,b,this.bp);this.h(n.Mm,this.zCa,this,!0);this.h(n.uc,this.G3,this, !0);this.h(n.Eb,this.Fs,this,!0);this.Oz()};a.prototype.nj=function(){return this.B};a.prototype.TQa=function(d){this.cC!==d&&((this.cC=d)?(d=this.B.N(k.El),d.F=this.Vb,d.rotate=!1,d.M=new g,this.Hv(!0),d.M.bind(n.uc,this.VM,this,!0)):((d=this.B.getComponent(k.El))&&d.M.h(n.uc,this.VM,this,!0),this.B.ka(k.El),d=this.Fa.worldPositionToLocal([this.x,this.y,this.z],this.Fa.getMatrixWorld()),this.$Qa(d[0],d[1],d[2])),this.GD(),this.gma())};a.prototype.dRa=function(d){d===void 0&&(d=!1);this.zj!==d&&((this.zj= d)?this.B.N(k.Im):this.B.ka(k.Im))};a.prototype.ylb=function(d){this.$U!==d&&(this.$U=d,this.gma(),this.Cd=!1,this.GD())};a.prototype.$Qa=function(d,f,l){this.Os.set("x",d);this.Os.set("y",f);this.Os.set("z",l);this.Hv(this.g8())};a.prototype.zD=function(){this.B=this.Vb.T.sc("MeasurePoint");this.B.N(k.Sphere);this.B.N(k.xd);this.B.N(k.wd).M=this;this.B.N(k.Sr);this.B.N(k.ta).M=this;this.B.N(k.Tk);this.B.N(k.pb).F=this.Vb;this.gma();this.xi();this.GD()};a.prototype.Oz=function(){this.B.T.dd(this.B); this.B=null};a.prototype.isVisible=function(){return this.Ld};a.prototype.Hv=function(d){this.Ld!=d&&((this.Ld=d)?(this.Iq(1),this.o(n.od)):(this.Iq(0),this.o(n.jd)))};a.prototype.gma=function(){var d=this.B.O(k.wd);d.pB=this.$U;d.Yt=this.$U;d.nt=!this.cC;d=this.B.O(k.Sr,!0);d.tsa=!this.$U||this.cC;d.ssa=this.cC};a.prototype.VM=function(){this.Hv(!0)};a.prototype.G3=function(){this.Cd=!0;this.GD()};a.prototype.Fs=function(){this.Cd=!1;this.GD()};a.prototype.B3=function(){this.B.O(k.pb).id=this.ce.get("parentId")}; a.prototype.ug=function(){if(this.B){var d=this.B.O(k.Tk);d.Le=d.Ye=d.Gh=1;d.nE=this.ce.get("pointMaxRadius");d.oE=this.ce.get("pointMinRadius");d.scale=this.ce.get("pointRadius")||1;this.B.O(k.xd).depthTest=this.ce.get("depthTest");this.GD()}};a.prototype.GD=function(){if(this.B){var d=this.cC?"pointDragColor":this.Cd?"pointOverColor":"pointColor";this.B.O(k.xd).color=this.ce.get(d)}};a.prototype.Iq=function(d){this.nm!=d&&(this.nm=d,this.xi())};a.prototype.xi=function(){this.B.O(k.xd).opacity=Math.max(1E-4, this.nm)};a.prototype.zCa=function(d){this.x=d.data.position.x;this.y=d.data.position.y;this.z=d.data.position.z};a.prototype.bp=function(){if(this.g8()&&this.B){var d=this.B.O(k.ta,!0);d.positionX=d.positionY=d.positionZ=0;d.Yd=d.fd=d.Xe=0;d.translationX=this.Os.get("x");d.translationY=this.Os.get("y");d.Ze=this.Os.get("z")}};a.prototype.g8=function(){var d=this.Os.get("x"),f=this.Os.get("y"),l=this.Os.get("z");return d!==void 0&&f!==void 0||l!==void 0};a.prototype.distanceTo=function(d){var f=this.x- d.x,l=this.y-d.y;d=this.z-d.z;return Math.sqrt(f*f+l*l+d*d)};var e=["parentId"],b=["x","y","z"],c="depthTest mode pointDragColor pointColor pointOverColor pointMaxRadius pointMinRadius pointRadius".split(" ");return a}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasureAdapter","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Key tdv/player/view/model3d/renderer/adapters/measure/MeasureAreaAdapter tdv/player/view/model3d/renderer/adapters/measure/MeasureLabelAdapter tdv/player/view/model3d/renderer/adapters/measure/MeasureLineAdapter tdv/player/view/model3d/renderer/adapters/measure/MeasurePointAdapter tdv/player/view/util/Device tdv/player/view/util/XR".split(" "),function(a){function m(v, w,x,y,z){this.R=v;this.Fa=w;this.Vb=x;this.j=z;this.P=this.j.P;this.Bs=this.Bs.bind(this);this.E3=this.E3.bind(this);this.t3=this.t3.bind(this);this.N3=this.N3.bind(this);this.XM=this.XM.bind(this);this.WC=this.WC.bind(this);this.mz=this.mz.bind(this);this.tq=this.tq.bind(this);this.we=null;this.Nj=new Map;this.FU=new Map;this.us=[];this.DH=[];this.jN=new Map;this.ri=[];this.Kj=null;this.W5();this.Qf=this.qd=void 0;this.kwa=this.ha=!1;h.ba(this.R,["enabled"],this.Bs,!0)}var h=a("tdv/binding/BindingsHandler"), n=a("tdv/constants/EventName"),g=a("tdv/constants/Key"),k=a("tdv/player/view/model3d/renderer/adapters/measure/MeasureAreaAdapter"),e=a("tdv/player/view/model3d/renderer/adapters/measure/MeasureLabelAdapter"),b=a("tdv/player/view/model3d/renderer/adapters/measure/MeasureLineAdapter"),c=a("tdv/player/view/model3d/renderer/adapters/measure/MeasurePointAdapter"),d=a("tdv/player/view/util/Device"),f=a("tdv/player/view/util/XR");m.prototype.dispose=function(){this.gs();h.da(this.R,["enabled"],this.Bs); this.Kj=this.ri=this.DH=this.us=this.FU=this.Nj=null;this.W5();this.Qf=this.qd=null};m.prototype.Bs=function(){this.R.get("enabled")?this.TG():this.gs()};m.prototype.TG=function(){this.ha||(this.ha=!0,this.QZa(),this.kxa(this.R),document.addEventListener("keyup",this.tq),h.ba(this.R,l,this.E3,!0),h.ba(this.R,q,this.N3,!0),h.ba(this.R,p,this.t3,!0),h.ba(this.R,r,this.XM,!0),h.ba(this.R,t,this.WC,!0),h.ba(this.Fa,u,this.mz,!0),f.M.bind(n.Zd,this.c6a,this,!0))};m.prototype.gs=function(){this.ha&&(this.ha= !1,this.eFa([]),this.Exa(this.R),this.Y_a(),document.removeEventListener("keyup",this.tq),h.da(this.R,l,this.E3),h.da(this.R,q,this.N3),h.da(this.R,p,this.t3),h.da(this.R,r,this.XM),h.da(this.R,t,this.WC),h.da(this.Fa,u,this.mz),f.M.h(n.Zd,this.Jpb,this),this.jV(null))};m.prototype.mz=function(){this.jV(this.Fa&&this.Fa.get("pointer"))};m.prototype.c6a=function(){var v=f.ud.some(function(w){return w.SIa});v!=this.kwa&&((this.kwa=v)||this.qBa())};m.prototype.jV=function(v){this.we!==v&&(this.we&&(this.we.h(n.ma, this.cCa,this,!0),this.we.h(n.fi,this.dCa,this,!0)),this.we=v)&&(this.we.bind(n.ma,this.cCa,this,!0),this.we.bind(n.fi,this.dCa,this,!0))};m.prototype.E3=function(){this.eFa(this.R.get("points"))};m.prototype.t3=function(){var v=this.R.get("mode");if(v!=this.qd){switch(this.qd){case "create":this.ri.length<1||this.Kj&&this.ri.length<2?v="create":this.i7a(this.Kj);break;case "edit":v=="create"?this.R.get("type")==="single"&&this.ri.length>0?v="edit":this.Q_():this.Gz(null);break;case "view":v==="create"&& (this.R.get("type")==="single"&&this.ri.length>0?v="view":this.Q_());break;default:v=="create"&&(this.R.get("type")==="single"&&this.ri.length>0&&this.gga(this.Iy(-1))?v="edit":this.Gz(this.Iy(-1),!1))}this.qd=v;this.R.set("mode",this.qd);this.fHa()}};m.prototype.N3=function(){var v=this.R.get("type");v!==this.Qf&&(this.Qf=v,this.Qf==="single"&&this.ri.length>1&&this.R.set("points",this.Gpb.slice(0,1)))};m.prototype.XM=function(){this.UGa();this.V5()};m.prototype.WC=function(){var v=this.Vfa(this.ii); v&&v.jQ(this.R.get("area"))};m.prototype.tq=function(v){v.which==g.i_&&this.P.get("isKeyboardTarget")&&this.qBa()};m.prototype.qBa=function(){this.R.get("mode")=="create"?this.R.set("mode","edit"):this.qd=="edit"&&this.Gz(null)};m.prototype.Q_=function(){this.xXa();this.Gz(this.Iy(-1),!1)};m.prototype.RS=function(){return d.ub()&&!d.kf()};m.prototype.xXa=function(){var v=this.P.get("application").Ai("MeasureModel3DObjectPoint");if(!this.RS()){var w=this.Iy(-1);w&&this.gga(w)&&(v.set("x",w.get("x")), v.set("y",w.get("y")),v.set("z",w.get("z")))}this.R.set("points",this.ri.concat([v]))};m.prototype.Iy=function(v){var w=[this.R].concat(this.ri);return v<0&&w.length-v>0?w[w.length+v]:v>=0&&v0?this.R.set("mode","edit"):this.Q_()}else this.R.get("mode")=="edit"&&this.Gz(null)};m.prototype.dCa=function(){this.R.get("mode")=="create"&&this.RS()&&this.R.set("mode","edit")};m.prototype.vCa=function(){this.R.get("mode")=="create"&&this.R.set("mode","edit")};m.prototype.uCa=function(v){if(this.R.get("mode")=="create"){var w=this.Iy(-2);v=this.FU.get(v.source);w==v?this.R.set("mode","edit"):(w=this.Kj,this.Gz(null),w.set("x",v.get("x")),w.set("y",v.get("y")),w.set("z", v.get("z")),w=this.Iy(0),v==w?this.R.set("mode","edit"):this.Q_())}};m.prototype.wCa=function(v){this.R.get("mode")=="edit"&&this.Gz(this.FU.get(v.source),!0)};m.prototype.xCa=function(){this.R.get("mode")=="edit"&&this.Gz(null)};m.prototype.yCa=function(){this.V5()};m.prototype.V5=function(){for(var v=[],w=this.Iy(0),x=this.aga(),y=0;ythis.us.length;)this.v_a();for(var v=!0,w=0;w1&&(w=this.Nj.get(v[v.length-1]),v=this.s2(w),v.plb(w),v.setStyle(e.Dua)));this.R.get("displayAreaLabel")&&this.ii&& (v=this.s2(this.ii),v.lkb(this.ii),v.setStyle(e.eWa));this.b0a();this.V5();this.WC()};m.prototype.fHa=function(){var v=!this.Kj&&this.qd!="view";this.Nj.forEach(function(w){w.ylb(v)})};m.prototype.jab=function(){this.ii&&this.ii.B$([this.R].concat(this.aga()).map(function(v){return this.Nj.get(v)}.bind(this)))};m.prototype.kxa=function(v){var w=this.Nj.get(v);w||(w=new c(this.R,this.Fa,this.Vb,v),this.Nj.set(v,w),this.FU.set(w,v),w.bind(n.fi,this.vCa,this,!0),w.bind(n.ma,this.uCa,this,!0),w.bind(n.Sa, this.wCa,this,!0),w.bind(n.$a,this.xCa,this,!0),w.bind(n.Mm,this.yCa,this,!1))};m.prototype.Exa=function(v){var w=this.Nj.get(v);w&&(w.h(n.Mm,this.yCa,this,!1),w.h(n.fi,this.vCa,this,!0),w.h(n.ma,this.uCa,this,!0),w.h(n.Sa,this.wCa,this,!0),w.h(n.$a,this.xCa,this,!0),w.dispose(),this.Nj["delete"](v),this.FU["delete"](w))};m.prototype.v_a=function(){var v=new b(this.R,this.Vb);this.us.push(v)};m.prototype.$_a=function(){this.us.length!=0&&this.us.pop().dispose()};m.prototype.u_a=function(){var v=new e(this.Fa, this.R,this.Vb);this.DH.push(v);return v};m.prototype.eab=function(){this.jN.clear()};m.prototype.s2=function(v){var w=this.DH.length>this.jN.size?this.DH[this.jN.size]:this.u_a();this.jN.set(v,w);return w};m.prototype.Vfa=function(v){return this.jN.get(v)};m.prototype.b0a=function(){for(;this.DH.length>this.jN.size;)this.Z_a()};m.prototype.Z_a=function(){this.DH.length!=0&&this.DH.pop().dispose()};m.prototype.QZa=function(){this.ii||(this.ii=new k(this.R,this.Vb))};m.prototype.Y_a=function(){this.ii&& (this.ii.dispose(),this.ii=null)};m.prototype.W5=function(){this.R.set("draggingPoint",!!this.Kj)};var l=["points"],p=["mode"],q=["type"],r=["displayAreaLabel","displayDistanceLabel","displayPartialDistanceLabel"],t=["area"],u=["pointer"];return m}); define("tdv/player/view/model3d/renderer/adapters/objects/CanvasPlaneAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n){a=function(){function g(k,e,b,c,d){this.object=k;this.model=e;this.wb=b;this.renderer=d;this.he=this.he.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}g.prototype.Wc=function(){};g.prototype.Xc=function(){};g.prototype.dispose=function(){this.disable();h.da(this.object, ["enabled"],this.he)};g.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};g.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("CanvasPlane"),this.Wc())};g.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),this.F.T.dd(this.F),this.F=null)};return g}();a=n.wd(a);a=n.UK(a);a=n.Kf(a);a=n.I_(a);a=n.lL(a);a=n.pb(a);return a=n.Plane(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/ChildAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/model3d/renderer/adapters/BaseModelAdapter tdv/player/view/model3d/renderer/adapters/Mixins".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(p){function q(r,t,u,v,w){r=p.call(this,r,t,u,w)||this;r.RA=r.RA.bind(r);r.wb=u;r.yr=new k;r.yr.bind(g.V,r.Am,r,!0);r.F.N(e.AB);r.F.N(e.QQ).object= r.object;n.ba(r.object,d,r.RA,!0);r.Wc();return r}P(q,p);q.prototype.Wc=function(){};q.prototype.Xc=function(){};q.prototype.dispose=function(){n.da(this.object,d,this.RA);this.yr.h(g.V,this.Am,this);this.yr=null;this.Xc();p.prototype.dispose.call(this)};q.prototype.Am=function(r){f.setFromQuaternion(r.data.quaternion,this.object.get("rotationOrder"));this.object.set({x:0,y:0,z:0,translationX:r.data.position.x,translationY:r.data.position.y,translationZ:r.data.position.z,rotationX:f.x*l,rotationY:f.y* l,rotationZ:f.z*l,scale:Math.max(r.data.scale,.001)});this.object.o(g.Mm)};q.prototype.RA=function(){if(this.object.get("positionDraggable")||this.object.get("rotationDraggable")||this.object.get("scaleDraggable")){var r=this.F.O(e.Hh,!0);r.translate=this.object.get("positionDraggable")||!1;r.rotate=this.object.get("rotationDraggable")||!1;r.scale=this.object.get("scaleDraggable")||!1;r.M=this.yr}else this.F.ka(e.Hh)};return q}(b);var d=["positionDraggable","rotationDraggable","scaleDraggable"],f= new h.Euler,l=180/Math.PI;h=c.wd(a);h=c.I_(h);h=c.UK(h);h=c.lL(h);h=c.pb(h);h=c.UVa(h);return h=c.uua(h)}); define("tdv/player/view/model3d/renderer/adapters/objects/ImagePlaneAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n){a=function(){function g(k,e,b,c,d){this.object=k;this.model=e;this.wb=b;this.renderer=d;this.he=this.he.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}g.prototype.Wc=function(){};g.prototype.Xc=function(){};g.prototype.dispose=function(){this.disable();h.da(this.object, ["enabled"],this.he)};g.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};g.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("ImagePlane"),this.Wc())};g.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),this.F.T.dd(this.F),this.F=null)};return g}();a=n.wd(a);a=n.UK(a);a=n.Oi(a);a=n.lL(a);a=n.pb(a);return a=n.Plane(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/InnerObjectAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n,g){var k=["objectId"];a=function(){function e(b,c,d,f,l){this.object=b;this.model=c;this.wb=d;this.renderer=l;this.F=this.wb.T.sc("InnerObject");this.z3=this.z3.bind(this);h.ba(this.object,k,this.z3,!0);this.Wc()}e.prototype.Wc=function(){};e.prototype.Xc=function(){}; e.prototype.z3=function(){var b=this.F.O(n.hL,!0);b.id=this.object.get("objectId");b.container=this.wb};e.prototype.dispose=function(){this.Xc();h.da(this.object,k,this.z3);this.wb.T.dd(this.F);this.F=null};return e}();a=g.wd(a);a=g.UK(a);a=g.lL(a);return a=g.I_(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/LineAdapter","require exports tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/player/view/model3d/renderer/adapters/Mixins three.mod".split(" "),function(a,m,h,n,g,k){var e=["x","y","z"],b=["targetX","targetY","targetZ"];a=function(){function c(d,f,l,p,q){this.object=d;this.model=f;this.wb=l;this.renderer=q;this.he=this.he.bind(this);this.w9=this.w9.bind(this);this.B9=this.B9.bind(this);this.enabled=!1;this.F=null;h.ba(this.object, ["enabled"],this.he,!0)}c.prototype.Wc=function(){};c.prototype.Xc=function(){};c.prototype.dispose=function(){this.disable();h.da(this.object,["enabled"],this.he)};c.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};c.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("Line"),this.F.N(n.ta),this.F.N(n.Line),this.F.N(n.zu).position=new k.Vector3,h.ba(this.object,e,this.w9,!0),h.ba(this.object,b,this.B9,!0),this.Wc())};c.prototype.disable= function(){this.enabled&&(this.enabled=!1,this.Xc(),h.da(this.object,e,this.w9),h.da(this.object,b,this.B9),this.F.T.dd(this.F),this.F=null)};c.prototype.w9=function(){var d=this.F.O(n.ta);d.translationX=this.object.get("x",0);d.translationY=this.object.get("y",0);d.Ze=this.object.get("z",0)};c.prototype.B9=function(){var d=this.F.O(n.zu);d.position.x=this.object.get("targetX");d.position.y=this.object.get("targetY");d.position.z=this.object.get("targetZ")};return c}();a=g.wd(a);a=g.ei(a);return a= g.pb(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/HorizonGridAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n,g){var k=["x","y","z"],e="divisions centerLinesColor depthTest gridColor opacity size".split(" ");a=function(){function b(c,d,f,l,p){this.object=c;this.model=d;this.wb=f;this.renderer=p;this.he=this.he.bind(this);this.OA=this.OA.bind(this);this.o9=this.o9.bind(this);this.enabled= !1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}b.prototype.Wc=function(){};b.prototype.Xc=function(){};b.prototype.dispose=function(){this.disable();h.da(this.object,["enabled"],this.he)};b.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};b.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("HorizonGrid"),this.F.N(n.ta),this.F.N(n.xu),h.ba(this.object,k,this.OA,!0),h.ba(this.object,e,this.o9,!0),this.Wc())};b.prototype.disable=function(){this.enabled&& (this.enabled=!1,this.Xc(),h.da(this.object,k,this.OA),h.da(this.object,e,this.o9),this.F.T.dd(this.F),this.F=null)};b.prototype.OA=function(){var c=this.F.O(n.ta);c.translationX=this.object.get("x",0);c.translationY=this.object.get("y",0);c.Ze=this.object.get("z",0)};b.prototype.o9=function(){var c=this.F.O(n.xu);c.eJa=this.object.get("centerLinesColor");c.depthTest=this.object.get("depthTest");c.Kna=this.object.get("divisions");c.cMa=this.object.get("gridColor");c.size=this.object.get("size")}; return b}();a=g.I_(a);return a=g.pb(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/SphereAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n,g){var k=["radius","maxRadius","minRadius"];a=function(){function e(b,c,d,f,l){this.object=b;this.model=c;this.wb=d;this.renderer=l;this.he=this.he.bind(this);this.QA=this.QA.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}e.prototype.Wc=function(){}; e.prototype.Xc=function(){};e.prototype.dispose=function(){this.disable();h.da(this.object,["enabled"],this.he)};e.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};e.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("Sphere"),this.F.N(n.Sphere),this.F.N(n.Tk),h.ba(this.object,k,this.QA,!0),this.Wc())};e.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),h.da(this.object,k,this.QA),this.F.T.dd(this.F),this.F=null)};e.prototype.QA= function(){var b=this.F.O(n.Tk);b.Le=b.Ye=b.Gh=1;b.scale=this.object.get("radius");b.nE=this.object.get("maxRadius");b.oE=this.object.get("minRadius")};return e}();a=g.wd(a);a=g.UK(a);a=g.xd(a);a=g.pb(a);return a=g.uua(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/ProjectedMaterialAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n,g){var k="cameraBox skyBox sourceAlpha sourceCubeTexture sourceX sourceY sourceYaw sourceZ targetAlpha targetCubeTexture targetX targetY targetYaw targetZ".split(" ");a=function(){function e(b,c,d,f,l){this.object=b;this.model=c;this.wb=d;this.Ipa=f;this.renderer= l;this.he=this.he.bind(this);this.z9=this.z9.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}e.prototype.Wc=function(){};e.prototype.Xc=function(){};e.prototype.dispose=function(){this.disable();h.da(this.object,["enabled"],this.he)};e.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};e.prototype.enable=function(){if(!this.enabled){this.enabled=!0;this.F=this.wb.T.sc("ProjectedMaterial");this.F.N(n.po);var b=this.F.N(n.pb);b.F=this.wb; b.attach=!0;h.ba(this.object,k,this.z9,!0);this.Wc()}};e.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),h.da(this.object,k,this.z9),this.F.T.dd(this.F),this.F=null)};e.prototype.z9=function(){var b=this.F.O(n.po);b.MA=this.object.get("nearPlane")||!1;b.YRa=this.object.get("skyBox")||!1;b.$Ra=this.object.get("sourceAlpha")||0;b.bF=this.Ipa;b.R$=this.object.get("sourceX")||0;b.S$=this.object.get("sourceY")||0;b.T$=this.object.get("sourceZ")||0;b.tZ=this.object.get("sourceYaw")|| 0;b.rZ=this.object.get("sourceCubeTexture");b.wSa=this.object.get("targetAlpha")||0;b.targetX=this.object.get("targetX")||0;b.targetY=this.object.get("targetY")||0;b.daa=this.object.get("targetZ")||0;b.Jmb=this.object.get("targetYaw")||0;b.zZ=this.object.get("targetCubeTexture")};return e}();return g.pb(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/SurfaceReticleAdapter","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas tdv/player/view/webgl/components".split(" "),function(a){function m(f,l,p,q,r){this.R=f;this.Fa=l;this.Vb=p;this.j=r;this.P=this.j.P;this.Bs=this.Bs.bind(this);this.dz=this.dz.bind(this);this.bp=this.bp.bind(this);this.ug=this.ug.bind(this);this.Nha=this.Vb.getComponent(e.Pi).Ap; this.Nha.bind(n.ia,this.ez,this,!1);this.Oha=this.wAa=!1;this.Qv=new k(this.P);this.Qv.setPosition(0);this.Qv.update();this.B=null;h.ba(this.R,["enabled"],this.Bs,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/RenderOrder"),k=a("tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas"),e=a("tdv/player/view/webgl/components");m.prototype.Bs=function(){this.R.get("enabled")?this.TG():this.gs()};m.prototype.TG=function(){if(!this.B){this.B= this.Vb.T.sc("Reticle");var f=this.B.N(e.pb);f.F=this.Vb;f.id=this.R.get("parentId");this.B.N(e.Plane).renderOrder=g.gWa;this.B.N(e.Kf).source=this.Qv.If();this.B.N(e.AB);f=this.B.N(e.QQ);f.Dmb=this.R;f.object=this.R;h.ba(this.Fa,d,this.dz,!0);h.ba(this.R,b,this.bp,!0);h.ba(this.R,c,this.ug,!0)}};m.prototype.gs=function(){this.B&&(this.Vb.T.dd(this.B),this.B=null,h.da(this.Fa,d,this.dz),h.da(this.R,b,this.bp),h.da(this.R,c,this.ug))};m.prototype.dz=function(){var f=this.B.O(e.Tk,!0);f.Le=f.Ye=2;f.scale= this.Fa.get("surfaceReticleRadius");f.nE=this.Fa.get("surfaceReticleMaxRadius");f.oE=this.Fa.get("surfaceReticleMinRadius");this.aHa()};m.prototype.bp=function(){var f=this.B.O(e.zx,!0);f.x=this.R.get("x");f.y=this.R.get("y");f.z=this.R.get("z");f.distance=this.R.get("distance");f.IX=this.R.get("horizontal")};m.prototype.ug=function(){var f=this.B.O(e.wd,!0);f.pB=this.R.get("useHandCursor");f.hF=this.R.get("transparentAreaActive");f.M=this.R;f=this.B.O(e.Kf);f.opacity=this.R.get("opacity");f.hidden= this.R.get("hidden");f.depthTest=this.R.get("depthTest")};m.prototype.ez=function(){this.wAa=!0;this.aHa()};m.prototype.aHa=function(){var f=this.wAa&&this.Fa.get("opacity")>.5;this.Oha!=f&&(this.Oha=f)&&this.B&&this.B.O(e.zx)};m.prototype.dispose=function(){this.gs();h.da(this.R,["enabled"],this.Bs);this.Nha.h(n.ia,this.ez,this,!1);this.Nha=null};var b=["distance","horizontal","x","y","z"],c=["depthTest","hidden","opacity","transparentAreaActive","useHandCursor"],d=["opacity","surfaceReticleRadius", "surfaceReticleMaxRadius","surfaceReticleMinRadius","surfaceSelectionEnabled"];return m}); define("tdv/player/view/model3d/renderer/adapters/objects/VideoPlaneAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n){a=function(){function g(k,e,b,c,d){this.object=k;this.model=e;this.wb=b;this.renderer=d;this.he=this.he.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}g.prototype.Wc=function(){};g.prototype.Xc=function(){};g.prototype.dispose=function(){this.disable();h.da(this.object, ["enabled"],this.he)};g.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};g.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("VideoPlane"),this.Wc())};g.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),this.F.T.dd(this.F),this.F=null)};return g}();a=n.wd(a);a=n.UK(a);a=n.ro(a);a=n.pb(a);a=n.lL(a);return a=n.Plane(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/objects","require exports tdv/player/view/model3d/renderer/adapters/measure/MeasureAdapter tdv/player/view/model3d/renderer/adapters/objects/CanvasPlaneAdapter tdv/player/view/model3d/renderer/adapters/objects/ChildAdapter tdv/player/view/model3d/renderer/adapters/objects/ImagePlaneAdapter tdv/player/view/model3d/renderer/adapters/objects/InnerObjectAdapter tdv/player/view/model3d/renderer/adapters/objects/LineAdapter tdv/player/view/model3d/renderer/adapters/objects/HorizonGridAdapter tdv/player/view/model3d/renderer/adapters/objects/SphereAdapter tdv/player/view/model3d/renderer/adapters/objects/ObjectAdapterFactory tdv/player/view/model3d/renderer/adapters/objects/ProjectedMaterialAdapter tdv/player/view/model3d/renderer/adapters/objects/SurfaceReticleAdapter tdv/player/view/model3d/renderer/adapters/objects/VideoPlaneAdapter".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q){return{jB:function(){f.Xt("MeasureModel3DObject",h);f.Xt("ChildModel3DObject",g);f.Xt("HorizonGridModel3DObject",c);f.Xt("CanvasPlaneModel3DObject",n);f.Xt("ImagePlaneModel3DObject",k);f.Xt("InnerModel3DObject",e);f.Xt("LineModel3DObject",b);f.Xt("ProjectedMaterialModel3DObject",l);f.Xt("SphereModel3DObject",d);f.Xt("SurfaceReticleModel3DObject",p);f.Xt("VideoPlaneModel3DObject",q)}}}); define("tdv/view/events/MouseEvent",["require","exports","tdv/events/Event"],function(a,m,h){return function(n){function g(k,e,b,c,d,f,l,p){e===void 0&&(e=0);b===void 0&&(b=0);c===void 0&&(c=0);d===void 0&&(d=0);f===void 0&&(f=0);l===void 0&&(l=0);p===void 0&&(p=null);k=n.call(this,k)||this;k.x=e;k.y=b;k.pageX=c;k.pageY=d;k.delta=f;k.lA=l;k.zE=p;k.movementX=p&&p.movementX||void 0;k.movementY=p&&p.movementY||void 0;return k}P(g,n);g.prototype.clone=function(){var k=new g(this.name,this.x,this.y,this.pageX, this.pageY,this.delta,this.lA,this.zE);k.source=this.source;return k};return g}(h)}); define("tdv/player/view/model3d/renderer/adapters/pointer/FirstPersonPointerAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Key tdv/view/events/MouseEvent tdv/events/EventDispatcher tdv/player/view/util/Device tdv/utils tdv/view/util/MouseLocker tdv/player/parser/ClassInfo".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){return function(l){function p(q,r,t,u,v){var w=l.call(this)||this;w.OJ=[];w.ZHa=0;w.UHa=0;w.g7=!1;w.pKa=!1;w.ppa=!1;w.nNa=0;w.renderer=q;w.ci= r;w.model=t;w.wb=u;w.Ea=v;w.$v=w.$v.bind(w);w.R6=w.R6.bind(w);w.Cna=c.nr(w.Cna,w);w.JA=w.JA.bind(w);w.J8=w.J8.bind(w);w.I8=w.I8.bind(w);w.eb=w.renderer.P;w.Rf=w.renderer.getParent();w.enabled=!0;w.type=p.SQ;w.Wa();return w}P(p,l);p.prototype.getType=function(){return this.type};p.prototype.Ra=function(q){this.enabled=q};p.prototype.dispose=function(){this.ya()};p.prototype.Wa=function(){this.Rf.bind(n.gb,this.$v,this,!0);this.Rf.bind(n.ma,this.THa,this,!0);h.KD(this.model,["camera.lockMouse"],this.R6, !0);h.KD(this.model,["objects"],this.JA,!0);this.ym=new d(this.Rf.wa().cc());this.ym.bind(n.V,this.YNa,this,!0);document.addEventListener("keyup",this.J8);document.addEventListener("keydown",this.I8);this.fu(p.SQ)};p.prototype.ya=function(){this.Rf.h(n.gb,this.$v,this);this.Rf.h(n.ma,this.THa,this);h.da(this.model,["camera.lockMouse"],this.R6);h.da(this.model,["objects"],this.JA);this.gZ([]);this.ym.h(n.V,this.YNa,this);this.ym.hr()&&this.ym.unlock();this.rRa(!1);this.ym.dispose();document.removeEventListener("keyup", this.J8);document.removeEventListener("keydown",this.I8)};p.prototype.R6=function(){this.UX=!b.ub()&&this.model.get("camera").get("lockMouse");!this.UX&&this.ym.hr()&&this.ym.unlock();this.tTa()};p.prototype.tTa=function(){this.rRa((!this.g7||!this.pKa)&&(b.ub()||!this.UX))};p.prototype.rRa=function(q){this.ppa!=q&&((this.ppa=q)?this.eb.YS.y6():this.eb.YS.b$())};p.prototype.$v=function(){this.ym.hr()||this.fu(p.SQ)};p.prototype.I8=function(q){p.vVa.indexOf(q.code)!=-1&&(this.type==p.SQ&&this.fu(p.Lba), this.UX&&!this.ym.hr()&&this.ym.lock())};p.prototype.J8=function(q){q.code==g.ua.kL&&(q=(new Date).getTime(),this.dTa(n.ma),q-this.nNa<500&&this.dTa(n.fi),this.nNa=q)};p.prototype.dTa=function(q){var r=this.eb.nb()/2,t=this.eb.Mb()/2;q=new k(q,r,t,r,t,0,0,void 0);this.Rf.o(q)};p.prototype.THa=function(){this.UHa=(new Date).getTime();this.UX&&!this.ym.hr()?this.ym.lock():this.Cna()};p.prototype.gdb=function(){this.UX&&this.ym.hr()&&this.ym.unlock()};p.prototype.YNa=function(){this.ym.hr()?this.fu(p.Lba): this.fu(p.SQ)};p.prototype.JA=function(){this.gZ(this.model.get("objects",[]))};p.prototype.gZ=function(q){var r=this;this.OJ.forEach(function(t){t.h(n.ma,r.kOa,r)});this.OJ=q;this.OJ.forEach(function(t){t.bind(n.ma,r.kOa,r,!0);f.Oa("MeasureModel3DObject",t)&&(t.bind(n.L("draggingPoint"),r.aY,r,!0),t.bind(n.L("mode"),r.aY,r,!0))});this.aY()};p.prototype.kOa=function(q){q.source.get("useHandCursor")&&(this.ZHa=(new Date).getTime())};p.prototype.aY=function(){var q=!1,r=!1;this.OJ.forEach(function(u){f.Oa("MeasureModel3DObject", u)&&(r=r||!!u.get("draggingPoint"),q=q||u.get("mode")=="edit"&&!!u.get("draggingPoint"))});this.pKa=q;var t=this.model.get("camera");r!=this.g7&&(this.g7=r,setTimeout(function(){t.xkb(this.g7)}.bind(this),0));this.tTa()};p.prototype.Cna=function(){Math.abs(this.UHa-this.ZHa)>100&&this.gdb()};p.prototype.fu=function(q){this.type!==q&&(this.type=q,this.o(n.V))};p.SQ="mouse";p.Lba="gaze";p.vVa=[g.ua.ck,g.ua.Ki,g.ua.fb,g.ua.Db,g.ua.Mp,g.ua.Sp,g.ua.uo,g.ua.qo,g.ua.E,g.ua.Q];return p}(e)}); define("tdv/player/view/model3d/renderer/adapters/pointer/GazePointerAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/player/canvas/ReticleCanvas tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager tdv/player/view/webgl/components tdv/view/constants/Cursor tdv/view/util/Animation".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){var l=new h.Vector3(0,0,0),p=new h.Vector3(0,0,-1);a=function(){function r(t,u,v,w,x){this.renderer= t;this.ci=u;this.model=v;this.wb=w;this.Ea=x;this.HZ=this.HZ.bind(this);this.ZA=this.ZA.bind(this);this.dA=this.dA.bind(this);this.eb=this.renderer.P;this.Rf=this.renderer.getParent();this.Mw=this.model.get("application").Ai("Model3DPointer");this.Wa()}r.prototype.Ra=function(t){var u=this.Ea.O(c.yc);u&&(u.enabled=t)};r.prototype.dispose=function(){this.ya()};r.prototype.Wa=function(){this.bQ=new e(this.eb.b8());this.Teb=new q(this.Rf,this.bQ);this.xp=new b;this.xp.bRa(this.Teb);var t=this.Ea.N(c.yc); t.Ea=this.Ea;t.origin=l;t.direction=p;t.WD=this.Rf;t.f7=this.xp;t.M=this.Mw;this.eb.set("toolTipCentered",!0);this.model.set("pointer",this.Mw);this.Nlb();this.Kra();this.xp.push(d.cG);f.requestFrame(this.HZ)};r.prototype.ya=function(){this.xp.pop(d.cG);this.Lmb();this.gsa();this.eb.set("toolTipCentered",!1);this.eb.set("toolTipCenteredOffsetY",void 0);this.model.set("pointer",void 0);this.Ea.ka(c.yc);this.xp.dispose();f.cJa(this.HZ)};r.prototype.Kra=function(){this.Fp=this.wb.T.sc("GazeReticle"); this.Fp.N(c.pb).F=this.Ea;this.Fp.N(c.Plane).renderOrder=k.ZUa;this.Fp.N(c.VF);var t=this.Fp.N(c.Kf);t.source=this.bQ.If();t.depthTest=!1;this.Fp.N(c.ta).Ze=-1;this.renderer.bind(g.Rb,this.ZA,this,!0);this.ZA();this.EW(this.Ea.getComponent(c.yc),this.Mw)};r.prototype.EW=function(t,u){u.set("originX",t.origin.x);u.set("originY",t.origin.y);u.set("originZ",t.origin.z);u.set("directionX",t.direction.x);u.set("directionY",t.direction.y);u.set("directionZ",t.direction.z)};r.prototype.gsa=function(){this.Fp&& (this.Fp.T.dd(this.Fp),this.Fp=null)};r.prototype.Wnb=function(){if(this.Fp){var t=this.Fp.O(c.Tk,!0);t.Le=t.Ye=2;var u=Math.min(this.eb.nb(),this.eb.Mb())/100;t.oE=t.nE=Math.round(u*4);this.eb.set("toolTipCenteredOffsetY",2*u)}};r.prototype.HZ=function(t){this.Fp&&this.bQ.update(t)&&(this.Fp.O(c.Kf).xK=(new Date).getTime());f.requestFrame(this.HZ)};r.prototype.ZA=function(){this.Wnb()};r.prototype.Nlb=function(){n.KD(this.model,"camera",this.dA,!0)};r.prototype.Lmb=function(){n.da(this.model,"camera", this.dA);this.cRa(!0)};r.prototype.dA=function(){this.cRa(!1)};r.prototype.cRa=function(t){var u=this.Ea.O(c.PF);u&&(u.TO=t);(u=this.Ea.O(c.QF))&&(u.TO=t);(u=this.Ea.O(c.XF))&&(u.TO=t)};return r}();var q=function(){function r(t,u){this.Rf=t;this.bQ=u}r.prototype.SLa=function(){return this.Rf};r.prototype.m$=function(t,u){u.indexOf(d.qf)>-1?this.bQ.rK(!0):this.bQ.rK(!1)};return r}();return a}); define("tdv/player/view/model3d/renderer/adapters/pointer/XRPointerAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager tdv/player/view/webgl/components tdv/player/view/util/Device tdv/player/view/util/XR tdv/view/constants/Cursor tdv/player/parser/ClassInfo".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p){a=function(){function v(w,x,y,z,A,D){this.OJ= [];this.bY=[];this.renderer=w;this.ci=x;this.model=y;this.Gn=z;this.wb=A;this.Ea=D;this.JA=this.JA.bind(this);this.Ut=[];this.enabled=!1;this.Wa()}v.prototype.Ra=function(w){this.enabled!==w&&((this.enabled=w)?n.KD(this.model,["objects"],this.JA,!0):(n.da(this.model,["objects"],this.JA),this.gZ([])))};v.prototype.dispose=function(){this.ya()};v.prototype.Wa=function(){f.M.bind(g.Zd,this.Kg,this,!0)};v.prototype.ya=function(){f.M.h(g.Zd,this.Kg,this);this.nZ([])};v.prototype.Kg=function(){this.nZ(f.ud)}; v.prototype.nZ=function(w){if(!this.enabled||w.find(function(z){return z.eA}))w=[];var x=this.Ut;this.Ut=w.map(function(z){var A=x.findIndex(function(D){return D.cb==z});return A!==-1?x.splice(A,1)[0]:new q(z,this.model,this.Gn,this.wb,this.Ea)}.bind(this));x.forEach(function(z){z.dispose()});this.Ut.forEach(function(z){z.Ra(this.enabled);z.update()}.bind(this));var y=this.Ut.reduce(function(z,A){return!z||z.nA-1};return v}();return a}); define("tdv/player/view/model3d/renderer/adapters/pointer/MousePointerAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager tdv/player/view/util/geo/Fov tdv/player/view/webgl/components".split(" "),function(a,m,h,n,g,k,e,b,c){var d=new h.Vector3(0,0,0),f=Math.PI/180,l=new h.Vector3;return function(){function p(q,r,t,u,v){this.renderer=q;this.ci=r;this.model=t;this.wb= u;this.Ea=v;this.y7=this.y7.bind(this);this.ZA=this.ZA.bind(this);this.$v=this.$v.bind(this);this.eb=this.renderer.P;this.Rf=this.renderer.getParent();this.Mw=this.model.get("application").Ai("Model3DPointer");this.enabled=!0;this.Wa()}p.prototype.Ra=function(q){this.enabled=q;var r=this.Ea.O(c.yc);r&&(r.enabled=q)};p.prototype.dispose=function(){this.ya()};p.prototype.Wa=function(){this.Fi=new k;var q=this.Ea.N(c.yc);q.Ea=this.Ea;q.origin=d;q.direction=new h.Vector3;q.WD=this.Fi;q.M=this.Mw;this.xp= new e;this.xp.bu(this.Rf);q.f7=this.xp;q.enabled=this.enabled;n.ba(this.model,["camera.fov"],this.y7,!0);this.renderer.bind(g.Rb,this.ZA,this,!0);this.Rf.ycb(g.Sa,this.XHa,this);this.Rf.bind(g.gb,this.$v,this,!0);this.Rf.bind(g.$a,this.YHa,this,!0);this.Rf.bind(g.ma,this.VHa,this,!0);this.Rf.bind(g.fi,this.WHa,this,!0);this.model.set("picker",this);this.model.set("pointer",this.Mw)};p.prototype.ya=function(){n.da(this.model,["camera.fov"],this.y7);this.renderer.h(g.Rb,this.ZA,this);this.Rf.h(g.Sa, this.XHa,this);this.Rf.h(g.gb,this.$v,this);this.Rf.h(g.$a,this.YHa,this);this.Rf.h(g.ma,this.VHa,this);this.Rf.h(g.fi,this.WHa,this);this.Ea.ka(c.yc);this.xp.dispose();this.model.set("picker",void 0);this.model.set("pointer",void 0)};p.prototype.ZA=function(){this.Csa()};p.prototype.y7=function(){this.Csa()};p.prototype.XHa=function(q){var r=q.clone();r.name=g.gb;this.$v(r);this.Fi.o(q)};p.prototype.$v=function(q){this.dib=q.x;this.eib=q.y;this.Csa();this.Fi.o(q)};p.prototype.YHa=function(q){this.Fi.o(q)}; p.prototype.VHa=function(q){this.Fi.o(q)};p.prototype.WHa=function(q){this.Fi.o(q)};p.prototype.Csa=function(){var q=this.Ea.O(c.yc);this.zLa(this.dib,this.eib,q.direction);this.EW(q,this.Mw)};p.prototype.EW=function(q,r){r.set("originX",q.origin.x);r.set("originY",q.origin.y);r.set("originZ",q.origin.z);r.set("directionX",q.direction.x);r.set("directionY",q.direction.y);r.set("directionZ",q.direction.z)};p.prototype.zLa=function(q,r,t){var u;t=t||new h.Vector3;var v=((u=this.model.get("camera"))=== null||u===void 0?void 0:u.get("fov"))||90;u=this.eb.nb();var w=this.eb.Mb();q===void 0&&(q=u/2);r===void 0&&(r=w/2);t.set(q-u/2,w/2-r,-u/(Math.tan((u>w?v:b.Ar(v,u,w))*f/2)*2)).normalize();return t};p.prototype.rqa=function(q,r){var t=this.Ea.getComponent(c.yc);if(t&&t.Tt)return t.Tt.rqa([this.wb],d,this.zLa(q,r,l))};return p}()}); define("tdv/player/view/model3d/renderer/adapters/pointer/PointerAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/model3d/renderer/adapters/pointer/FirstPersonPointerAdapter tdv/player/view/model3d/renderer/adapters/pointer/GazePointerAdapter tdv/player/view/model3d/renderer/adapters/pointer/XRPointerAdapter tdv/player/view/model3d/renderer/adapters/pointer/MousePointerAdapter tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c){return function(){function d(f, l,p,q,r,t){this.renderer=f;this.ci=l;this.model=p;this.Gn=q;this.wb=r;this.Ea=t;this.enabled=!0;this.dA=this.dA.bind(this);this.Wa()}d.prototype.Ra=function(f){var l;this.enabled=f;(l=this.lJ)===null||l===void 0||l.Ra(this.enabled)};d.prototype.dispose=function(){this.ya()};d.prototype.Wa=function(){h.ba(this.model,"camera",this.dA,!1);c.M.bind(n.V,this.TTa,this,!0);this.Fsa()};d.prototype.ya=function(){h.da(this.model,"camera",this.dA);c.M.h(n.V,this.TTa,this);this.fu("none");this.BSa()};d.prototype.dA= function(){this.Fsa()};d.prototype.TTa=function(){this.Fsa()};d.prototype.Fsa=function(){c.isPresenting?this.fu("xr"):this.model.get("camera").get("class")=="FirstPersonModel3DCamera"?this.Wlb():(this.BSa(),this.fu("mouse"))};d.prototype.Wlb=function(){this.dP||(this.dP=new g(this.renderer,this.ci,this.model,this.wb,this.Ea),this.dP.bind(n.V,this.wOa,this,!0),this.wOa())};d.prototype.BSa=function(){var f;this.dP&&((f=this.dP)===null||f===void 0||f.dispose(),this.dP=void 0)};d.prototype.wOa=function(){var f; switch((f=this.dP)===null||f===void 0?void 0:f.getType()){case g.Lba:this.fu("gaze");break;default:this.fu("mouse")}};d.prototype.fu=function(f){var l;if(this.type!==f){this.lJ&&this.lJ.dispose();this.type=f;switch(this.type){case "mouse":this.lJ=new b(this.renderer,this.ci,this.model,this.wb,this.Ea);break;case "gaze":this.lJ=new k(this.renderer,this.ci,this.model,this.wb,this.Ea);break;case "xr":this.lJ=new e(this.renderer,this.ci,this.model,this.Gn,this.wb,this.Ea);break;default:this.lJ=void 0}(l= this.lJ)===null||l===void 0||l.Ra(this.enabled)}};return d}()}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/AmbientOcclusionPostprocessingAdapter",["require","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a){function m(k,e){this.Qc=k;this.ee=e;this.ha=!1;this.aj=this.aj.bind(this);h.ba(this.Qc,g,this.aj,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/webgl/components");m.prototype.aj=function(){var k=this.Qc.get("enabled")&&!this.Qc.get("disabled");this.ha!=k&&(this.ha&&this.ee.ka(n.OK),(this.ha= k)&&this.ee.N(n.OK));this.ha&&(k=this.ee.O(n.OK),k.oKa=this.Qc.get("easingDuration"),k.bias=this.Qc.get("bias"),k.intensity=this.Qc.get("intensity"),k.scale=this.Qc.get("scale"),k.kNa=this.Qc.get("kernelRadius"),k.ONa=this.Qc.get("minResolution"),k.fna=this.Qc.get("blurRadius"),k.output=this.Qc.get("output")=="ao"?THREE.SAOPass.OUTPUT.SAO:THREE.SAOPass.OUTPUT.Default)};m.prototype.dispose=function(){this.ee.ka(n.OK);this.ee=null;h.da(this.Qc,g,this.aj)};var g="disabled enabled bias easingDuration intensity scale kernelRadius minResolution blurRadius output".split(" "); return m}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/AntialiasPostprocessingAdapter",["require","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a){function m(k,e){this.Qc=k;this.ee=e;this.ha=!1;this.aj=this.aj.bind(this);h.ba(this.Qc,g,this.aj,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/webgl/components");m.prototype.aj=function(){var k=this.Qc.get("enabled")&&!this.Qc.get("disabled");this.ha!=k&&(this.ha&&this.ee.ka(n.rF),(this.ha=k)&&this.ee.N(n.rF)); this.ha&&(k=this.ee.O(n.rF),k.UKa=this.Qc.get("mode")=="fxaa",k.mSa=this.Qc.get("mode")=="ssaa",k.uZ=this.Qc.get("ssaaSampleLevel"))};m.prototype.dispose=function(){this.ee.ka(n.rF);this.ee=null;h.da(this.Qc,g,this.aj)};var g=["disabled","enabled","mode","ssaaSampleLevel"];return m}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/MotionBlurPostprocessingAdapter",["require","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a){function m(k,e){this.Qc=k;this.ee=e;this.ha=!1;this.aj=this.aj.bind(this);h.ba(this.Qc,g,this.aj,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/webgl/components");m.prototype.aj=function(){var k=this.Qc.get("enabled")&&!this.Qc.get("disabled");this.ha!=k&&(this.ha&&this.ee.ka(n.TQ),(this.ha=k)&&this.ee.N(n.TQ)); this.ha&&(k=this.ee.O(n.TQ),k.CQa=this.Qc.get("samples"),k.intensity=this.Qc.get("intensity"))};m.prototype.dispose=function(){this.ee.ka(n.TQ);this.ee=null;h.da(this.Qc,g,this.aj)};var g=["disabled","enabled","samples","intensity"];return m}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/VignettePostprocessingAdapter",["require","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a){function m(k,e){this.Qc=k;this.ee=e;this.aj=this.aj.bind(this);h.ba(this.Qc,g,this.aj,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/webgl/components");m.prototype.aj=function(){var k=this.Qc.get("enabled")&&!this.Qc.get("disabled");this.ha!=k&&(this.ha&&this.ee.ka(n.nL),(this.ha=k)&&this.ee.N(n.nL)); this.ha&&(k=this.ee.O(n.nL),k.KMa=this.Qc.get("innerRadius"),k.qPa=this.Qc.get("outerRadius"),k.color=this.Qc.get("color"),k.opacity=this.Qc.get("opacity"))};m.prototype.dispose=function(){this.ee.ka(n.nL);this.ee=null;h.da(this.Qc,g,this.aj)};var g="enabled disabled opacity color innerRadius outerRadius".split(" ");return m}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/PostprocessingArrayAdapter","require exports tdv/player/view/model3d/renderer/adapters/ArrayAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/AmbientOcclusionPostprocessingAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/AntialiasPostprocessingAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/MotionBlurPostprocessingAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/VignettePostprocessingAdapter tdv/player/parser/ClassInfo".split(" "),function(a, m,h,n,g,k,e,b){return function(){function c(d,f){this.model=d;this.Od=f;this.filter=this.filter.bind(this);this.fe=this.fe.bind(this);this.Xg=this.Xg.bind(this);this.xY=new h;this.xY.filter=this.filter;this.xY.fe=this.fe;this.xY.Xg=this.Xg;this.xY.jB(this.model,"postprocessing")}c.prototype.filter=function(d){return b.Oa("AmbientOcclusionModel3DPostprocessing",d)||b.Oa("AntialiasModel3DPostprocessing",d)||b.Oa("MotionBlurModel3DPostprocessing",d)||b.Oa("VignetteModel3DPostprocessing",d)};c.prototype.fe= function(d){return b.Oa("AmbientOcclusionModel3DPostprocessing",d)?new n(d,this.Od):b.Oa("AntialiasModel3DPostprocessing",d)?new g(d,this.Od):b.Oa("MotionBlurModel3DPostprocessing",d)?new k(d,this.Od):b.Oa("VignetteModel3DPostprocessing",d)?new e(d,this.Od):null};c.prototype.Xg=function(d,f){f.dispose()};c.prototype.dispose=function(){this.xY.dispose()};return c}()}); define("tdv/player/view/util/ScreenFrameRateMonitor",["require","exports"],function(){var a=function(){function m(){}m.init=function(){for(var h=0;h<=m.Qba;h++)m.foa.push(0);window.requestAnimationFrame(m.Bp)};m.kLa=function(){return m.frameRate};m.Bp=function(h){m.NJ!==0&&(m.foa[Math.min(Math.round(1E3/(h-m.NJ)),m.Qba)]++,m.cQ++);m.NJ=h;m.cQh&&(h=k,n= g)}m.frameRate=n};m.Qba=200;m.nVa=60;m.foa=[];m.NJ=0;m.cQ=0;m.frameRate=60;return m}();a.init();return a}); define("tdv/player/view/model3d/renderer/adapters/ScenePixelRatioAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/util/Flags tdv/player/view/webgl/components tdv/player/view/util/ScreenFrameRateMonitor".split(" "),function(a,m,h,n,g,k,e,b){a=function(){function f(l,p){this.tE=this.enabled=!1;this.cOa=this.dOa=0;this.model=l;this.Od=p;this.jsa=this.jsa.bind(this);this.e9=this.e9.bind(this);this.x9=this.x9.bind(this);h.ba(this.model, "pixelRatioMinScale",this.x9,!0)}f.prototype.dispose=function(){this.disable();h.da(this.model,"pixelRatioMinScale",this.x9)};f.prototype.x9=function(){this.disable();this.model.get("pixelRatioMinScale")<1&&this.enable()};f.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Gp(!1),this.TP.h(n.V,this.ROa,this),h.da(this.model,"camera.x camera.y camera.z camera.yaw camera.pitch camera.fov camera.distance".split(" "),this.e9),this.TP.dispose())};f.prototype.enable=function(){this.enabled|| (this.enabled=!0,this.TP=new c(this.model.get("pixelRatioMinScale")),this.TP.bind(n.V,this.ROa,this,!0),h.ba(this.model,"camera.x camera.y camera.z camera.yaw camera.pitch camera.fov camera.distance".split(" "),this.e9,!0))};f.prototype.e9=function(){this.dOa=Date.now();this.Gp(!0)};f.prototype.jsa=function(){Date.now()-this.dOa>f.gua&&this.Gp(!1)};f.prototype.Gp=function(l){this.tE!==l&&((this.tE=l)?(this.cOa=window.setInterval(this.jsa,f.gua),this.TP.enable()):(window.clearInterval(this.cOa),this.TP.disable()), this.ATa())};f.prototype.ROa=function(){this.ATa()};f.prototype.ATa=function(){var l=this.tE&&this.enabled?this.TP.xA():1;this.Od.getComponent(e.Scene).O9!=l&&(this.Od.O(e.Scene).O9=l)};f.gua=100;return f}();var c=function(f){function l(p){var q=f.call(this)||this;q.OE=[];q.DP=0;q.Bp=q.Bp.bind(q);q.rcb(p);q.reset();return q}P(l,f);l.prototype.rcb=function(p){for(var q=1;q>p;q-=.1)this.OE.push(q);Math.abs(p-this.OE[this.OE.length-1])>d&&this.OE.push(p);k.vu&&console.log("steps = ["+this.OE.map(function(r){return r.toFixed(2)}).join(", ")+ "]")};l.prototype.reset=function(){this.disable();this.NJ=0;this.kK=.5;this.spa=0;this.scale=this.OE.length*.5;this.Wqa=Math.floor(this.scale);this.lJa();this.enable()};l.prototype.enable=function(){!this.DP&&this.kK>l.Kta&&(this.DP=window.requestAnimationFrame(this.Bp))};l.prototype.disable=function(){this.DP&&(window.cancelAnimationFrame(this.DP),this.DP=0)};l.prototype.xA=function(){return this.OE[this.Wqa]};l.prototype.dispose=function(){this.disable()};l.prototype.Bp=function(p){this.NJ!==0&& (this.Fnb(p-this.NJ),this.Qnb());this.NJ=p;this.DP=this.kK>l.Kta?window.requestAnimationFrame(this.Bp):0};l.prototype.Fnb=function(p){for(this.hX.push(p);this.hX.length>l.WUa;)this.hX.shift(),this.cJ=this.hX.reduce(function(q,r){return q+r},0)/this.hX.length};l.prototype.lJa=function(){this.hX=[];this.cJ=void 0};l.prototype.Qnb=function(){if(this.cJ!==void 0){var p=1E3/b.kLa(),q=p*l.rVa;p=Math.max(1E3/l.sVa,p*l.lVa);if(this.cJ<=p)var r=-1;else if(this.cJ>q)r=1;else{k.vu&&console.log("["+q.toFixed(2)+ " > "+this.cJ.toFixed(2)+" > "+p.toFixed(2)+"]");return}this.spa&&this.spa!==r&&(this.kK*=l.XVa);this.spa=r;this.scale=Math.min(Math.max(this.scale+r*this.kK,0),this.OE.length-1);r==1?k.vu&&console.log("["+this.cJ.toFixed(2)+" > "+q.toFixed(2)+"]",this.scale.toFixed(2),"("+(r*this.kK).toFixed(2)+")"):r==-1&&k.vu&&console.log("["+this.cJ.toFixed(2)+" <= "+p.toFixed(2)+"]",this.scale.toFixed(2),"("+(r*this.kK).toFixed(2)+")");q=Math.round(this.scale);this.Wqa!==q&&(this.lJa(),this.Wqa=q,this.o(n.V))}}; l.rVa=1.5;l.lVa=1.1;l.WUa=15;l.XVa=.75;l.Kta=.01;l.sVa=60;return l}(g),d=1E-6;return a}); define("tdv/player/view/model3d/renderer/adapters/SceneAdapter","require exports tdv/constants/EventName tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/model3d/renderer/adapters/CameraAdapter tdv/player/view/model3d/renderer/adapters/lights/LightsAdapter tdv/player/view/model3d/renderer/adapters/ModelAdapter tdv/player/view/model3d/renderer/adapters/MenuAdapter tdv/player/view/model3d/renderer/adapters/ToolTipAdapter tdv/player/view/model3d/renderer/adapters/SurfaceSelectorPointerAdapter tdv/player/view/model3d/renderer/adapters/objects/NearestObjectsVisibleAdapter tdv/player/view/model3d/renderer/adapters/objects/objects tdv/player/view/model3d/renderer/adapters/pointer/PointerAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/PostprocessingArrayAdapter tdv/player/view/model3d/renderer/adapters/ScenePixelRatioAdapter tdv/player/view/util/XR".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q,r,t,u){var v=function(x){return x.map(function(y){return String.fromCharCode(y)}).join("")}([119,97,116,101,114,109,97,114,107]),w="anisotropicFilteringLevel bakedTextures environmentURL backgroundImageURL backgroundPanoramaURL backgroundColor fogColor fogDensity opacity encoding environmentIntensity".split(" ");p.jB();return function(){function x(y,z,A){var D=this;this.renderer=y;this.ci=z;this.model=A;this.eb=this.renderer.P;this.enabled=!0;this.oj=!1;this.model.Sqa(); this.Od=this.ci.sc("Scene");y=this.Od.N(n.Scene);y.Zna=this.model.R7().uO(this.model.V7().iw(.1),.1);y.M=this.model;y.locked=!0;this.Gn=this.ci.sc("Anchor");this.Gn.N(n.pF);this.Gn.N(n.Group);this.Gn.N(n.pb).F=this.Od;this.RNa=new b(this.model,this.model,this.Gn,this.renderer);this.wb=this.RNa.nj();y.Ea=this.Ea=this.ci.sc("PerspectiveCamera");this.Ea.N(n.pb).F=this.Gn;this.Q6=new k(this.renderer,this.model,this.wb,this.Ea);this.Q6.Vw(!0);this.Zhb=new c(this.model,this.wb,this.Ea);this.ekb=new t(this.model, this.Od);this.Uhb=new e(this.model,this.wb,this.Gn,this.Ea);this.IPa=new q(this.renderer,this.ci,this.model,this.Gn,this.wb,this.Ea);w.forEach(function(F){D.model.bind(h.L(F),D.eqa,D,!0)});this.ojb=new r(this.model,this.Od);this.ci.eIa(this.Od);this.gib=new l(this.model,this.wb,this.Ea);this.Emb=new f(this.model,this.wb,this.renderer);this.Zmb=new d(this.renderer,this.model);u.M.bind(h.V,this.Ta,this,!0);this.eqa();this.Ta()}x.prototype.Vw=function(y){this.Od.O(n.Scene).locked=y;this.Q6.Vw(y)};x.prototype.Ra= function(y){this.enabled!==y&&(this.enabled=y,this.hx())};x.prototype.Ta=function(){this.oj=u.Uf==this.eb.Fc().sl();this.hx()};x.prototype.hx=function(){var y=(this.model.get("camera").get("xrEnabled")||this.model.get("camera").get("vrEnabled"))&&!(this.model.get("application")&&this.model.get("application").get(v));y=this.enabled&&(!this.oj||y);this.Od.O(n.Scene).enabled=y;this.IPa.Ra(y);this.Q6.Ra(y)};x.prototype.dispose=function(){w.forEach(function(y){this.model.h(h.L(y),this.eqa,this)}.bind(this)); this.model.h(h.L("camera"),this.d9,this);u.M.h(h.V,this.Ta,this);this.ekb.dispose();this.Zhb.dispose();this.RNa.dispose();this.Q6.dispose();this.Uhb.dispose();this.IPa.dispose();this.ojb.dispose();this.Emb.dispose();this.gib.dispose();this.Zmb.dispose();this.ci.Ljb(this.Od);this.ci.dd(this.Od);this.ci.dd(this.Gn);this.ci.dd(this.Ea)};x.prototype.Ofb=function(){return this.wb?g.wJ(this.wb):void 0};x.prototype.eqa=function(){var y=this.Od.O(n.Scene);y.opacity=this.model.get("opacity");y.xKa=this.model.get("environmentURL"); y.$ma=this.model.get("backgroundImageURL");y.IIa=this.model.get("backgroundPanoramaURL");y.backgroundColor=this.model.get("backgroundColor");y.outputColorSpace=this.model.get("encoding");y.QKa=this.model.get("fogColor");y.RKa=this.model.get("fogDensity");y.environmentIntensity=this.model.get("environmentIntensity");y=this.model.get("anisotropicFilteringLevel");var z=this.model.get("bakedTextures");if(y!=0||z){var A=this.Od.O(n.gi,!0);A.yW=y;A.FW=z}else this.Od.ka(n.gi)};return x}()}); define("tdv/player/view/model3d/renderer/Renderer","require tdv/utils tdv/player/view/webgl/components tdv/player/view/webgl/Renderer tdv/player/view/model3d/renderer/adapters/SceneAdapter tdv/view/constants/Cursor tdv/view/constants/LayoutMode tdv/view/containers/Container".split(" "),function(a){var m=a("tdv/utils");a("tdv/player/view/webgl/components");var h=a("tdv/player/view/webgl/Renderer"),n=a("tdv/player/view/model3d/renderer/adapters/SceneAdapter"),g=a("tdv/view/constants/Cursor"),k=a("tdv/view/constants/LayoutMode"), e=a("tdv/view/containers/Container");a=m.extend(e,function(b,c,d){e.call(this);this.Ie=b;this.P=c;this.pT=d;this.gf("Renderer");this.set("toolTipDisabled",!0);this.set("cursor",g.LB);this.set("layout",k.TZ);this.hf=null;this.ha=!0;this.HH=[];this.DN=new Map});a.prototype.Kb=function(){e.prototype.Kb.call(this);this.hf==null&&(this.hf=new h(this.Ie,this.P,!0),this.hf.xa({left:0,top:0,right:0,bottom:0,cursor:g.LB,toolTipDisabled:!0}),this.hf.Ra(this.ha),this.mb(this.hf),this.HH.forEach(this.kFa.bind(this)))}; a.prototype.Ra=function(b){this.ha!==b&&(this.ha=b,this.hf&&this.hf.Ra(this.ha),this.set("interactionEnabled",this.ha))};a.prototype.Qa=function(){this.hf&&this.hf.Qa()};a.prototype.Ggb=function(b){return this.HH.indexOf(b)>=0};a.prototype.cIa=function(b){this.HH.indexOf(b)>=0||(this.HH.push(b),this.hf&&this.kFa(b))};a.prototype.rQa=function(b){var c=this.HH.indexOf(b);c<0||(this.HH.splice(c,1),this.hf&&this.UFa(b),this.HH.length===0&&this.Ra(!0))};a.prototype.ura=function(b,c){(b=this.DN.get(b))&& b.Vw(c)};a.prototype.vRa=function(b,c){(b=this.DN.get(b))&&b.Ra(c)};a.prototype.qX=function(b){return(b=this.DN.get(b))?b.Ofb():void 0};a.prototype.jK=function(){return this.hf&&this.hf.jK()};a.prototype.lna=function(){return this.hf&&this.hf.lna()};a.prototype.kFa=function(b){this.UFa(b);this.DN.set(b,new n(this,this.hf,b))};a.prototype.UFa=function(b){var c=this.DN.get(b);c&&(this.DN["delete"](b),c.dispose())};return a}); define("tdv/player/script/Model3DPlayer","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/script/PlaybackMediaPlayer tdv/player/view/model3d/controller/Controller tdv/player/view/model3d/renderer/Renderer tdv/view/constants/ButtonMode".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/script/helper/ButtonProperty"), e=a("tdv/player/script/PlaybackMediaPlayer"),b=a("tdv/player/view/model3d/controller/Controller"),c=a("tdv/player/view/model3d/renderer/Renderer"),d=a("tdv/view/constants/ButtonMode"),f=g.define("Model3DPlayer",e,function(){e.call(this,"model");this.hs=this.S2=this.jj=!1;this.U=this.j=null;this.ac=this.wf=0;this.be=m.nr(this.Sh,this);this.vda=new k(this,"buttonToggleSprites",d.bk);this.vda.bind(h.Rk,function(){this.set("spritesEnabled",!0)},this);this.vda.bind(h.Nm,function(){this.set("spritesEnabled", !1)},this);this.vda.set("pressed",this.get("spritesEnabled"))});f.prototype.play=function(){this.XH()};f.prototype.pause=function(){this.WH()};f.prototype.stop=function(){this.cD()};f.prototype.restart=function(){this.bD()};f.prototype.getModelPixelScale=function(){return this.d2a()};f.prototype.captureToDataURL=function(){return this.j&&this.j.lna()};f.prototype.saveScreenshot=function(){return this.j&&this.j.jK()};f.prototype.set=function(l,p){if(this.get(l)!=p){switch(l){case "model":this.S2=!0; this.set("requesterPlayer",null);this.be();break;case "viewerArea":this.jj=!0;this.be();break;case "displayPlaybackBar":this.hs=!0,this.be()}e.prototype.set.call(this,l,p)}};f.prototype.get=function(l,p){switch(l){case "currentTime":return this.U&&this.U.getTime()||0}return e.prototype.get.call(this,l,p)};f.prototype.Sh=function(){this.jj&&(this.jj=!1,this.ny(),this.get("viewerArea")&&this.my(),this.oV(this.get("viewerArea")),this.S2=!0);var l=!1;if(this.j&&(this.S2||this.u5)){var p=this.get("model"); if(p&&!this.j.Xb()){this.be();return}this.S2=!1;this.ac=this.wf=0;l=!0;p?(this.hK(this.get("requesterPlayer")?[this.get("requesterPlayer"),this]:[this]),this.U.flb(p)):this.U.bB()}this.hs&&(this.hs=!1,l=!0);l&&this.Zz()};f.prototype.TN=function(){this.set("model",null)};f.prototype.my=function(){var l=this.get("application"),p=this.get("viewerArea");this.j=new c(l,p,this);this.j.xa({left:0,top:0,bottom:0,right:0});p.mb(this.j);this.U=new b(p,this.j);this.U.bind(b.BF,this.ln,this);this.U.bind(b.AF, this.YC,this);this.U.bind(b.CF,this.WT,this);this.U.bind(b.rba,this.hCa,this,!0);this.U.bind(b.gd,this.Mf,this);this.xD(!0)};f.prototype.ny=function(){this.j&&(this.U.h(b.BF,this.ln,this),this.U.h(b.AF,this.YC,this),this.U.h(b.CF,this.WT,this),this.U.h(b.rba,this.hCa,this,!0),this.U.h(b.gd,this.Mf,this),this.U.clear(),this.j.getParent().removeChild(this.j),this.j=null,this.xD(!1))};f.prototype.Mf=function(l){this.Jd(l.data.state)};f.prototype.ln=function(l){var p=this.get("viewerArea");this.ve=p&& p.ve;this.nT(l.data.model);this.Zz()};f.prototype.WT=function(l){this.o(new n(f.HUa,{model:l.data.model}))};f.prototype.YC=function(l){this.ve=null;this.mT(l.data.model)};f.prototype.hCa=function(l){this.wf=l.data.time;this.ac=l.data.duration;this.Zz()};f.prototype.mna=function(){var l=this.get("model");return(l=(l=l&&l.get("camera"))&&l.get("doubleClickAction"))&&l!="none"?!0:!1};f.prototype.DU=function(l){this.sI(l.data.position)};f.prototype.tn=function(){this.U&&this.U.play()};f.prototype.Zs= function(){this.U&&this.U.stop()};f.prototype.tv=function(){this.U&&this.U.pause()};f.prototype.sI=function(l){this.U&&this.U.setTime(l)};f.prototype.d2a=function(){return this.U&&this.U.qX()};f.prototype.Zz=function(){if(this.j){var l=this.j.getParent();this.ac>0&&this.get("displayPlaybackBar")?l.xa({playbackBarPosition:this.wf,playbackBarDuration:this.ac,playbackBarVisible:!0}):l.set("playbackBarVisible",!1)}};f.HUa="preloadMediaShow";return f}); define("tdv/player/script/Model3DPlayListItem","require tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/script/MediaPlayer tdv/player/script/PlayListItem".split(" "),function(a){var m=a("tdv/constants/EventName"),h=a("tdv/constants/PlaybackState"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/MediaPlayer"),k=a("tdv/player/script/PlayListItem");a=n.define("Model3DPlayListItem",k,function(){k.call(this)});a.prototype.start=function(){k.prototype.start.call(this); var e=this.get("player");e&&(e.bind(g.di,this.ln,this),e.get("model")==this.get("media")&&this.get("media").get("isLoaded")?this.ln():e.set("model",this.get("media")))};a.prototype.stop=function(){var e=this.get("player");e&&(e.h(g.di,this.ln,this),e.get("model")==this.get("media")&&e.set("model",null));k.prototype.stop.call(this)};a.prototype.ln=function(e){e&&e.data.media!=this.get("media")||(this.get("player").h(g.di,this.ln,this),this.get("player").bind(g.oo,this.YC,this),this.ubb())};a.prototype.ubb= function(){var e=this.get("media").get("camera").get("sequences",[]).find(function(b){return b.get("internal")&&b.get("state")==h.PLAYING});e?e.bind(m.Ub,this.WCa,this,!0):this.PD()};a.prototype.WCa=function(e){e.source.h(m.Ub,this.WCa,this,!0);this.PD()};a.prototype.YC=function(e){e.data.media==this.get("media")&&(this.get("player").h(g.oo,this.YC,this),this.stop(),this.end())};return a}); define("tdv/player/script/Model3DPointer",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("Model3DPointer",m,function(){m.call(this)})});define("tdv/player/script/Menu",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("Menu",m,function(){m.call(this)})}); define("tdv/player/script/MenuItem",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("MenuItem",m,function(){m.call(this)})}); define("tdv/player/script/MotionBlurModel3DPostprocessing",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DPostprocessing"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DPostprocessing");return m.define("MotionBlurModel3DPostprocessing",h,function(){h.call(this)})}); define("tdv/player/script/PhotoCamera",["require","exports","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);return k}(h);n.create("PhotoCamera",a);return a});define("tdv/player/script/MovementPhotoCamera",["require","exports","tdv/player/script/PhotoCamera","tdv/player/parser/ClassInfo"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);return k}(h);n.create("MovementPhotoCamera",a);return a}); define("tdv/player/constants/RotationMode",["require"],function(){var a={wF:"drag_acceleration",tx:"drag_rotation"};a.Nta=a.wF;a.Hua=a.tx;return a});define("tdv/player/view/panorama/control/events/RotationChangeEvent",["require","tdv/utils","tdv/events/Event"],function(a){var m=a("tdv/utils"),h=a("tdv/events/Event");return m.extend(h,function(n){h.call(this,n);this.SP=this.CQ=this.TA=this.tB=0})}); define("tdv/player/view/panorama/control/events/ZoomChangeEvent",["require","tdv/utils","tdv/events/Event"],function(a){var m=a("tdv/utils"),h=a("tdv/events/Event");return m.extend(h,function(n){h.call(this,n);this.Noa=this.Tgb=0})}); define("tdv/player/view/panorama/control/camera/MouseManager","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Device tdv/player/constants/RotationMode tdv/player/view/panorama/control/events/RotationChangeEvent tdv/player/view/panorama/control/events/ZoomChangeEvent".split(" "),function(a){function m(q,r){return q*r}function h(q,r){var t=r>0?1:-1;return t*(Math.pow(q,t*r)-1)/(q-1)}function n(q,r){return Math.min(Math.max(q/r,-1),1)}var g= a("tdv/utils"),k=a("tdv/constants/EventName"),e=a("tdv/events/Event"),b=a("tdv/events/EventDispatcher"),c=a("tdv/player/view/util/Device"),d=a("tdv/player/constants/RotationMode"),f=a("tdv/player/view/panorama/control/events/RotationChangeEvent"),l=a("tdv/player/view/panorama/control/events/ZoomChangeEvent"),p=g.extend(b,function(){b.call(this);this.tAa=this.uAa=1800;this.A4a=this.E$a=0;this.QS=!1;this.Gq=void 0;this.IH=d.Nta;this.hGa=d.Hua;this.WR=0;this.N4=void 0;this.Tq=!1;this.EL=null;this.jH= 3;this.kb=90;this.Qea=this.xI=this.ne=1;this.ve=this.Ab=null;this.CU=!1});p.prototype.setCamera=function(q){this.uAa=q.get("manualRotationSpeed");this.tAa=q.get("manualRotationSpeed");this.jH=q.get("manualZoomSpeed");this.Qea=q.get("draggingFactor")};p.prototype.UE=function(q){this.IH=q;this.fma()};p.prototype.vK=function(q){this.hGa=q;this.fma()};p.prototype.oK=function(q){this.kb=q;this.xI=this.kb/90};p.prototype.bu=function(q){this.Jn();if(q){this.Ab=q;if(this.ve=q.yfb&&q.ve)this.ve.bind(k.Sa, this.xDa,this,!0),this.ve.bind(k.$a,this.yDa,this,!0);this.Ab.bind(k.Sa,this.te,this,!0);this.Ab.bind(k.gb,this.bl,this,!0);this.Ab.bind(k.$a,this.cl,this,!0);this.Ab.bind(k.Qk,this.JH,this,!0);this.Ab.Xb().get("settings").get(TDV.PlayerSettings.PVa)!==!1&&this.Ab.bind(k.ZK,this.bH,this,!0);this.Ab.bind(k.HB,this.oya,this,!0);this.Ab.bind(k.YK,this.mya,this,!0);this.fma()}};p.prototype.Jn=function(){this.Ab!=null&&(this.ve&&(this.ve.h(k.Sa,this.xDa,this),this.ve.h(k.$a,this.yDa,this),this.ve=null), this.Ab.h(k.Sa,this.te,this),this.Ab.h(k.gb,this.bl,this),this.Ab.h(k.$a,this.cl,this),this.Ab.h(k.Qk,this.JH,this),this.Ab.h(k.ZK,this.bH,this),this.Ab.h(k.HB,this.oya,this),this.Ab.h(k.YK,this.mya,this),this.Ab=null,this.a1())};p.prototype.fma=function(){this.Ab&&(c.Jp()?(this.N4=this.hGa,this.WR=this.E$a):(this.N4=this.IH,this.WR=this.A4a))};p.prototype.xDa=function(){this.CU=!0};p.prototype.yDa=function(){this.CU=!1};p.prototype.te=function(q){this.CU||(this.Y9a(q),this.Tka())};p.prototype.bl= function(q){this.CU||this.dO(q)};p.prototype.cl=function(){this.CU||(this.efa(),this.a1())};p.prototype.JH=function(q){this.pma(q);this.Tka(500)};p.prototype.oya=function(){this.Tka()};p.prototype.bH=function(q){this.qma(q)};p.prototype.mya=function(){this.a1()};p.prototype.Y9a=function(q){this.QS=!0;this.Gq=q;this.dO(q)};p.prototype.dO=function(q){if(this.QS)switch(this.N4){case d.wF:this.bbb(q);break;case d.tx:this.abb(q)}};p.prototype.bbb=function(q){var r=this.jHa,t=q.x-this.Gq.x;t=+m(h(10,n(Math.abs(t)< 3?0:t,this.Ab.nb())),this.uAa*this.xI);q=q.y-this.Gq.y;r.call(this,t,-m(h(10,n(Math.abs(q)<3?0:q,this.Ab.Mb())),this.tAa*this.xI))};p.prototype.abb=function(q){this.ema(-m(n(q.x-this.Gq.x,this.Ab.nb()),this.kb*this.Qea),+m(n(q.y-this.Gq.y,this.Ab.nb()),this.kb*this.Qea));this.Gq=q};p.prototype.efa=function(){if(this.QS)switch(this.QS=!1,this.N4){case d.wF:this.jHa(0,0)}};p.prototype.jHa=function(q,r){var t=new f(p.xx);t.tB=q;t.TA=r;this.o(t)};p.prototype.ema=function(q,r){var t=new f(p.xx);t.CQ=q; t.SP=r;this.o(t)};p.prototype.qma=function(q){if(this.ne!=q.scale){this.efa();var r=this.ne;this.ne=q.scale;q=new l(p.Jr);q.Noa=this.kb*r/this.ne-this.kb;this.o(q)}};p.prototype.pma=function(q){if(q.delta!=0){this.efa();var r=new l(p.Jr);r.Noa=this.kb*-q.delta*this.jH/100;this.o(r)}};p.prototype.Tka=function(q){var r=this.EL!=null;this.GFa();if(q&&(r||!this.Tq)){var t=this;this.EL=setTimeout(function(){t.EL=null;t.a1()},q)}this.Tq||(this.Tq=!0,this.o(new e(p.ak)))};p.prototype.a1=function(){this.GFa(); this.Tq&&(this.Tq=!1,this.o(new e(p.$j)))};p.prototype.GFa=function(){this.EL!=null&&(clearTimeout(this.EL),this.EL=null)};p.xx="rotation change";p.Jr="zoom change";p.ak="user interaction start";p.$j="user interaction end";return p}); define("tdv/player/view/panorama/control/camera/MovementManager",["require","tdv/player/view/util/Device"],function(a){function m(){this.yI=n.ub()?.066:.1;this.D4a=.5;this.J9a=n.ub()?.066:.1;this.Hbb=.1;this.s5=this.z5=!1;this.reset()}function h(g,k,e){g=(k-g)*(1-e);Math.abs(g)<.01&&(g=0);return k-g}var n=a("tdv/player/view/util/Device");m.prototype.reset=function(){this.qxa=this.lea=this.YL=this.rC=this.OR=this.pea=this.oea=this.tea=this.uM=this.jH=this.I4=this.K4=this.Ms=this.BU=this.Xv=this.tW= 0};m.prototype.zra=function(g,k,e,b,c,d,f,l,p){return this.tW!=g||(this.BU=k)||this.K4!=e||b!=0||c!=0||this.s5!=f||this.MAa!=l||this.z5!=p?(this.tW=g,this.BU=k,this.K4=e,this.Xv+=b,this.Ms+=c,this.I4+=d,this.s5=f,this.MAa=l,this.z5=p,!0):!1};m.prototype.bmb=function(g,k){return this.jH!=g||k!=0?(this.jH=g,this.uM+=k,!0):!1};m.prototype.Vf=function(){return this.tea!=0||this.oea!=0||this.pea!=0||this.OR!=0||this.tW!=0||this.BU!=0||this.K4!=0||this.jH!=0||this.Xv!=0||this.Ms!=0||this.uM!=0};m.prototype.Nb= function(g){g=1E3/g;var k=this.tea/g,e=this.tW/g+this.Xv;this.Xv=0;var b=this.oea/g,c=this.BU/g+this.Ms;this.Ms=0;var d=this.pea/g,f=this.K4/g+this.I4;this.I4=0;var l=this.jH+this.uM*g;this.uM=0;var p=e==0&&c==0&&f==0,q=k==0&&b==0&&d==0;this.s5&&q&&!p||this.z5&&p&&!q||this.MAa&&!p&&!q?(p=p?this.yI:q?this.J9a:this.D4a,this.rC=h(k,e,p),this.YL=h(b,c,p),this.lea=h(d,f,p)):(this.rC=e,this.YL=c,this.lea=f);k=this.OR==0;e=l==0;this.OR=this.s5&&k&&!e||this.z5&&e&&!k?h(this.OR,l,this.Hbb):l;this.tea=this.rC* g;this.oea=this.YL*g;this.pea=this.lea*g;this.qxa=this.OR/g};return m}); define("tdv/player/view/object3d/Renderer","require tdv/utils tdv/view/core/UIComponent tdv/player/view/panorama/control/camera/MouseManager tdv/player/view/panorama/control/camera/MovementManager tdv/view/util/Animation tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/view/core/UIComponent"),n=a("tdv/player/view/panorama/control/camera/MouseManager"),g=a("tdv/player/view/panorama/control/camera/MovementManager"),k=a("tdv/view/util/Animation"),e=a("tdv/constants/EventName"); a=m.extend(h,function(){h.call(this);this.gf("Renderer");this.ja=document.createElement("canvas");this.ja.style.position="absolute";this.ja.style.left="0";this.ja.style.top="0";this.wa().uk(this.ja);this.JC=null;this.Ga=this.xM=this.vM=this.wM=0;this.am=!1;this.A6a=150;this.CS=0;this.Po=null;this.bind(e.Rb,this.kd,this,!0);this.Hb=new n;this.Hb.pqb(720);this.Hb.VY(0);this.Hb.UE("drag_rotation");this.Hb.oK(360);this.Hb.bind(n.xx,this.K5a,this);this.Ac=new g});a.prototype.Nkb=function(b,c,d){this.JC= b;this.wM=c;this.vM=d;this.xM=Math.floor(this.JC.length*this.Ga/360);this.aka();this.Hb.bu(this);this.bb()};a.prototype.Xcb=function(){this.JC=null;this.Nv();this.aka();this.Hb.Jn()};a.prototype.play=function(){this.am=!0;this.bb()};a.prototype.K5a=function(b){this.Nv();this.Ac.zra(b.tB,b.TA,0,b.CQ,b.SP,0,!1,!0);this.bb()};a.prototype.ria=function(){this.play()};a.prototype.sq=function(b){this.JC&&(this.Ac.Vf()?(this.am=!1,this.Ac.Nb(b),this.Jva(this.Ac.rC),this.bb()):this.am?(this.Jva(this.A6a*b/ 1E3),this.bb()):this.BM()||this.BV())};a.prototype.sj=function(b){for(this.Ga=b;this.Ga<0;)this.Ga+=360;for(;this.Ga>=360;)this.Ga-=360;this.Aab()};a.prototype.Aab=function(){if(this.JC){var b=Math.floor(this.JC.length*this.Ga/360);this.xM!=b&&(this.xM=b,this.WDa())}};a.prototype.Jva=function(b){this.sj(this.Ga+b)};a.prototype.kd=function(){this.aka()};a.prototype.aka=function(){var b=this.ja;if(this.wM==0||this.vM==0)b.width=0,b.height=0;else{var c=this.Xh(),d=this.Wh();d*this.wM>c*this.vM?(b.width= c,b.height=this.vM*c/this.wM):(b.height=d,b.width=this.wM*d/this.vM);b.style.left=Math.round((c-b.width)*.5)+"px";b.style.top=Math.round((d-b.height)*.5)+"px";this.WDa()}};a.prototype.WDa=function(){if(this.JC){var b=this.ja;b.getContext("2d").drawImage(this.JC[this.xM],0,0,this.wM,this.vM,0,0,b.width,b.height)}};a.prototype.BM=function(){return this.Po?!0:!1};a.prototype.BV=function(){this.Nv();if(this.CS>0){var b=this;this.Po=setTimeout(function(){b.Po=null;b.ria()},this.CS)}};a.prototype.Nv=function(){this.Po&& (clearTimeout(this.Po),this.Po=null)};a.prototype.bb=function(){k.requestFrame(this.sq,this)};return a}); define("tdv/player/script/Object3D","require tdv/constants/EventName tdv/constants/Priority tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/LevelUtil tdv/player/view/ProgressBar tdv/player/view/object3d/Renderer tdv/view/containers/Container tdv/view/images/ImageLoader".split(" "),function(a){var m=a("tdv/constants/EventName"),h=a("tdv/constants/Priority"),n=a("tdv/events/Event"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/script/helper/LevelUtil"),e=a("tdv/player/view/ProgressBar"), b=a("tdv/player/view/object3d/Renderer"),c=a("tdv/view/containers/Container"),d=a("tdv/view/images/ImageLoader");a=g.define("Object3D",c,function(){c.call(this);this.Sd=this.Xo=this.ej=this.j=null;this.bind(m.od,this.cp,this);this.bind(m.jd,this.ap,this)});a.prototype.Kb=function(){c.prototype.Kb.call(this);this.j||(this.j=new b,this.j.xa({left:0,top:0,right:0,bottom:0}),this.mb(this.j));this.ej||(this.ej=new e,this.ej.xa({left:0,bottom:0,right:0,height:20,visible:!1}),this.mb(this.ej))};a.prototype.cp= function(){this.i4a()};a.prototype.ap=function(){this.Zs()};a.prototype.i4a=function(){this.ej.set("percent",0);this.ej.set("visible",!0);this.j.sj(this.get("yaw"));var f=this.get("frames",[]);this.Xo=[];this.Sd=[];for(var l=0;l{var r=q.sJ();if(q instanceof n){c=k.At(q.get("yaw",0)*e,q.get("pitch",0)*e,c);b=k.At(this.Ga*e,this.rb*e,b);var t=Math.acos(b.dot(c)),u=q.get("maximumAngle",Infinity)*e;r.iB(1-Math.min(1,t/u));f.makeRotationFromEuler(p.set(q.get("pitch",0)*e,-q.get("yaw",0)*e,0,"YXZ"));f.multiply(l.makeTranslation(0,0,-1));r.Uw(f)}d=g.iX(this.Ga,this.rb,this.sd,d);f.makeRotationFromQuaternion(d);r.cu(f)})};m.prototype.bza=function(q){return q?q.get("audios", []):[]};m.prototype.X4=function(q,r){(r?this.Pu.slice().reverse():this.Pu).forEach(function(t){if(t.get("autoplay",!1)){t=t.sJ();var u=t.getState();q==h.PLAYING&&u!=h.PLAYING?t.Zc(h.PLAYING):q==h.$b&&u==h.PLAYING?t.Zc(h.$b):q==h.ca&&u!=h.ca&&t.Zc(h.ca)}})};var e=Math.PI/180,b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Quaternion,f=new THREE.Matrix4,l=new THREE.Matrix4,p=new THREE.Euler;return m}); define("tdv/player/view/util/geo/Transformation",["require"],function(){function a(c){c%=n;c<0&&(c+=n);return e[c*g|0]}function m(c){c%=n;c<0&&(c+=n);return k[c*g|0]}function h(){this.identity()}h.prototype.identity=function(){this.m11=1;this.m21=this.m13=this.m12=0;this.m22=1;this.m32=this.m31=this.m23=0;this.m33=1;this.tz=this.Ii=this.Hi=0};h.prototype.clone=function(){var c=new h;c.m11=this.m11;c.m12=this.m12;c.m13=this.m13;c.m21=this.m21;c.m22=this.m22;c.m23=this.m23;c.m31=this.m31;c.m32=this.m32; c.m33=this.m33;c.Hi=this.Hi;c.Ii=this.Ii;c.tz=this.tz;return c};h.prototype.concat=function(c){var d=this.m11,f=this.m12,l=this.m13,p=this.m21,q=this.m22,r=this.m23,t=this.m31,u=this.m32,v=this.m33,w=this.Hi,x=this.Ii,y=this.tz;this.m11=d*c.m11+f*c.m21+l*c.m31;this.m12=d*c.m12+f*c.m22+l*c.m32;this.m13=d*c.m13+f*c.m23+l*c.m33;this.m21=p*c.m11+q*c.m21+r*c.m31;this.m22=p*c.m12+q*c.m22+r*c.m32;this.m23=p*c.m13+q*c.m23+r*c.m33;this.m31=t*c.m11+u*c.m21+v*c.m31;this.m32=t*c.m12+u*c.m22+v*c.m32;this.m33= t*c.m13+u*c.m23+v*c.m33;this.Hi=w*c.m11+x*c.m21+y*c.m31+c.Hi;this.Ii=w*c.m12+x*c.m22+y*c.m32+c.Ii;this.tz=w*c.m13+x*c.m23+y*c.m33+c.tz};h.prototype.translate=function(c,d,f){this.Hi+=c;this.Ii+=d;this.tz+=f};h.prototype.scale=function(c,d,f){this.m11*=c;this.m12*=d;this.m13*=f;this.m21*=c;this.m22*=d;this.m23*=f;this.m31*=c;this.m32*=d;this.m33*=f;this.Hi*=c;this.Ii*=d;this.tz*=f};h.prototype.rotateX=function(c){var d=a(c);c=m(c);var f=this.m12*d+this.m13*c,l=this.m22*c-this.m23*d,p=this.m22*d+this.m23* c,q=this.m32*c-this.m33*d,r=this.m32*d+this.m33*c,t=this.Ii*c-this.tz*d,u=this.Ii*d+this.tz*c;this.m12=this.m12*c-this.m13*d;this.m13=f;this.m22=l;this.m23=p;this.m32=q;this.m33=r;this.Ii=t;this.tz=u};h.prototype.rotateY=function(c){var d=a(c);c=m(c);var f=-this.m11*d+this.m13*c,l=this.m21*c+this.m23*d,p=-this.m21*d+this.m23*c,q=this.m31*c+this.m33*d,r=-this.m31*d+this.m33*c,t=this.Hi*c+this.tz*d,u=-this.Hi*d+this.tz*c;this.m11=this.m11*c+this.m13*d;this.m13=f;this.m21=l;this.m23=p;this.m31=q;this.m33= r;this.Hi=t;this.tz=u};h.prototype.rotateZ=function(c){var d=a(c);c=m(c);var f=this.m11*d+this.m12*c,l=this.m21*c-this.m22*d,p=this.m21*d+this.m22*c,q=this.m31*c-this.m32*d,r=this.m31*d+this.m32*c,t=this.Hi*c-this.Ii*d,u=this.Hi*d+this.Ii*c;this.m11=this.m11*c-this.m12*d;this.m12=f;this.m21=l;this.m22=p;this.m31=q;this.m32=r;this.Hi=t;this.Ii=u};h.prototype.rotate=function(c,d,f){this.rotateX(c);this.rotateY(d);this.rotateZ(f)};h.prototype.invert=function(){var c=this.kfb();if(c==0)return!1;var d= this.clone();this.m11=(d.m22*d.m33-d.m23*d.m32)/c;this.m12=(d.m13*d.m32-d.m12*d.m33)/c;this.m13=(d.m12*d.m23-d.m13*d.m22)/c;this.m21=(d.m23*d.m31-d.m21*d.m33)/c;this.m22=(d.m11*d.m33-d.m13*d.m31)/c;this.m23=(d.m13*d.m21-d.m11*d.m23)/c;this.m31=(d.m21*d.m32-d.m22*d.m31)/c;this.m32=(d.m12*d.m31-d.m11*d.m32)/c;this.m33=(d.m11*d.m22-d.m12*d.m21)/c;this.Hi=-(d.Hi*this.m11+d.Ii*this.m21+d.tz*this.m31);this.Ii=-(d.Hi*this.m12+d.Ii*this.m22+d.tz*this.m32);this.tz=-(d.Hi*this.m13+d.Ii*this.m23+d.tz*this.m33); return!0};h.prototype.kfb=function(){return this.m11*(this.m22*this.m33-this.m23*this.m32)+this.m12*(this.m23*this.m31-this.m21*this.m33)+this.m13*(this.m21*this.m32-this.m22*this.m31)};h.prototype.yO=function(c){var d=c.x*this.m12+c.y*this.m22+c.z*this.m32+this.Ii,f=c.x*this.m13+c.y*this.m23+c.z*this.m33+this.tz;c.x=c.x*this.m11+c.y*this.m21+c.z*this.m31+this.Hi;c.y=d;c.z=f};for(var n=Math.PI*2,g=18E4/n,k=new Float32Array(180001),e=new Float32Array(180001),b=0;b<18E4;b++)k[b]=Math.cos(b/g),e[b]= Math.sin(b/g);k[18E4]=k[0];e[18E4]=e[0];return h});define("tdv/player/view/panorama/renderer/constants/EyeLayer",["require"],function(){return{mx:0,fb:1,Db:2}}); define("tdv/player/view/panorama/renderer/object/util/PanoramaFormat",["require","tdv/player/parser/ClassInfo","tdv/player/view/util/Capabilities"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/view/util/Capabilities"),n={get:function(g){return g.aXa||(g.aXa=this.P0a(g))},P0a:function(g){if(m.Oa("CubicPanoramaFrame",g))return g.get("stereoCube")?n.VB:g.get("cube")?n.Ax:n.Km;if(m.Oa("SphericPanoramaFrame",g)){var k=g.get("stereoSphere"),e=g.get("sphere"),b=g.get("hfov");g=g.get("vfov"); var c=b>359.9&&g>179.9,d=!1;k&&!e?d=!0:k?e&&!k.get("levels").some(h.FSa)?d=!1:c&&h.Gcb()?d=!0:!c&&h.Fcb()&&(d=!0):d=!1;return d?(k=k.get("levels"),e=Math.max.apply(Math,k.map(function(f){return f.get("width")})),Math.max.apply(Math,k.map(function(f){return f.get("height")}))/g/(e/b)>1?n.Yr:n.Hu):n.Pr}},VB:"stereoCube_12_1",Ax:"monoCube_6_1",Km:"monoCube_1_1",Pr:"monoSphere_1_1",Yr:"stereoSphere_1_2",Hu:"stereoSphere_2_1"};return n}); define("tdv/player/view/panorama/renderer/object/util/LevelUtil","require tdv/player/parser/ClassInfo tdv/player/script/ImageResourceLevel tdv/player/view/panorama/renderer/constants/EyeLayer tdv/player/view/panorama/renderer/constants/Face tdv/player/view/panorama/renderer/object/util/PanoramaFormat tdv/view/util/Scale tdv/player/view/util/Capabilities tdv/player/view/util/Device tdv/player/view/util/FileType tdv/player/view/util/URL tdv/view/constants/ScaleMode tdv/view/images/ImageLoader tdv/view/av/VideoPlayer".split(" "), function(a){function m(K,L,U){return K.split(L).join(U).split(encodeURI(L)).join(U)}function h(K,L){return K.indexOf(L)>=0||K.indexOf(encodeURI(L))>=0}function n(){var K=D.DA()&&F.Tg("recent_ipad_use_max_res",!1);n=function(){return K};return K}function g(K){if(K.length==0)return 1;K.sort(function(L,U){return U.get("width")-L.get("width")});return K[0].get("width")/K[0].get("height")}function k(K,L){var U=1E4;n()||(D.kf()?U=2048:D.DA()?U=1280:D.ub()&&(U=1024));switch(K){case z.Ax:return[6*U,U];case z.Km:return[U, U];case z.VB:return[12*U,U]}switch(K){case z.Yr:L*=2;break;case z.Hu:L*=.5}return L>2?[U*4,U*4/L]:[U*2*L,U*2]}function e(K){if(n())return[void 0,void 0];switch(K){case z.Ax:if(D.kf()||D.ub())return[18432,1536];break;case z.Yr:if(D.kf())return[5352,5352];if(D.ub())return[6086,6086];break;case z.Pr:if(D.kf())return[7168,3584];if(D.ub()&&D.DA())return[8192,4096]}return[void 0,void 0]}function b(K,L){var U=e(L);L=K.filter(function(T){return v.Oa("TiledImageResourceLevel",T)?!0:U[0]!==void 0&&T.get("width")> U[0]||U[1]!==void 0&&T.get("height")>U[1]?!1:!0});L.length==0&&(L=[d(K)[0]]);return L}function c(){return D.DA()?[w.Eua]:D.D8()||D.E8()?D.Dc()==D.tu||D.Dc()==D.yB?[w.F_,w.mca]:[w.mca,w.F_]:D.kf()?[w.F_]:D.ub()?[w.E_]:[]}function d(K){K.sort(function(L,U){return L.get("width")-U.get("width")});return K}function f(K,L){function U(T){return Math.abs(T.get("width")*T.get("height")-L[0]*L[1])}K.sort(function(T,Y){return U(T)-U(Y)});return K.length&&K[0]||null}function l(K,L,U){K=K.filter(function(T){return T.get("tags").indexOf(L)< 0});return K.length?K:U!==void 0?U:[]}function p(K,L,U){K=K.filter(function(T){return T.get("tags").indexOf(L)>=0});return K.length?K:U!==void 0?U:[]}function q(K,L,U){switch(U){case z.VB:case z.Ax:case z.Km:return K;case z.Pr:case z.Hu:return K*L.get("hfov",180)/90;case z.Yr:return K*L.get("hfov",180)*2/90}}function r(K,L){switch(L){case z.VB:return K.get("stereoCube").get("levels");case z.Ax:return K.get("cube").get("levels");case z.Km:return K.get("front").get("levels");case z.Pr:return K.get("sphere").get("levels"); case z.Yr:case z.Hu:return K.get("stereoSphere").get("levels")}}function t(K,L){var U=r(K,L),T=K.get("minFaceSize");if(T){var Y=q(T,K,L);K=U.filter(function(aa){return aa.get("height")>=Y});K.length>0&&(U=K)}return U}function u(K){for(var L=[],U=0;U0)return d(T);T=this.q2a(K);return L&&!this.Pza(T)&&(K=this.iza(K),K!=T)?[K,T]:[T]},Bhb:function(K){return K.get("tags").indexOf(w.nca)>= 0},poa:function(K,L,U){if(z.get(K)!=z.Km)return L;switch(U){case y.FRONT:var T=K.get("front");break;case y.fb:T=K.get("left");break;case y.BACK:T=K.get("back");break;case y.Db:T=K.get("right");break;case y.Tc:T=K.get("top");break;case y.Hc:T=K.get("bottom")}K=T&&T.get("levels")||[];if(K.length==0)return null;K=K.filter(function(Y){return Y.get("width")==L.get("width")&&Y.get("height")==L.get("height")&&Y.get("grayscale",!1)==L.get("grayscale",!1)&&Y.get("colCount",1)==L.get("colCount",1)&&Y.get("rowCount", 1)==L.get("rowCount",1)});return K[0]},VLa:function(K,L,U,T,Y,aa,ba,ea){K=K.get("url");var ia=0;h(K,"{eye}")?K=m(K,"{eye}",Q[U]):ia+=6*(Y?O:N)[U];h(K,"{face}")?K=m(K,"{face}",R[T]):L!=z.Km&&(ia+=G[T]);K=m(K,"{row}",ba);return K=m(K,"{column}",ea+ia*aa)},Rfb:function(K,L){return E.qS(E.dH(K.get("image")),90,90,C.uj,L)},gfb:function(K,L){return E.qS(E.dH(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),L)},xfb:function(K,L){return E.qS(E.dH(K.get("image")),K.get("hfov"),K.get("vfov"), K.get("scaleMode"),L)},igb:function(K,L){return E.qS(E.dH(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),L)},jLa:function(K,L){return E.qS(E.dH(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),L)},dH:function(K){return K&&K.get("levels")||[]},qS:function(K,L,U,T,Y){if(!K||!K.length)return null;K=l(K,w.Ku,K);for(var aa=c(),ba=0;ba=0?!1:D.Dc()==D.zB?!0:B.gaa(K.get("url"))}},G=function(){var K={};K[y.Db]=0;K[y.fb]=1;K[y.Tc]=2;K[y.Hc]=3;K[y.FRONT]=4;K[y.BACK]=5;return K}(),N=function(){var K={};K[x.Db]=0;K[x.fb]=1;K[x.mx]=0;return K}(),O=function(){var K={};K[x.Db]=1;K[x.fb]=0;K[x.mx]=0;return K}(),R=function(){var K= {};K[y.Db]="r";K[y.fb]="l";K[y.Tc]="u";K[y.Hc]="d";K[y.FRONT]="f";K[y.BACK]="b";return K}(),Q=function(){var K={};K[x.fb]="l";K[x.Db]="r";K[x.mx]="b";return K}();return E}); define("tdv/player/view/panorama/control/camera/LimitsManager","require tdv/utils tdv/constants/EventName tdv/player/view/util/geo/Fov tdv/player/view/util/geo/Transformation tdv/player/view/util/geo/Vector tdv/player/view/panorama/renderer/object/util/LevelUtil".split(" "),function(a){function m(p){this.j=p;this.Rd=!1;this.op=m.iG;this.vfa=this.pH=!1;this.Wf(null);this.j.bind(n.Rb,this.kd,this,!0);this.kd()}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/util/geo/Fov"),k= a("tdv/player/view/util/geo/Transformation"),e=a("tdv/player/view/util/geo/Vector"),b=a("tdv/player/view/panorama/renderer/object/util/LevelUtil");m.prototype.sMa=function(){return this.op!==m.iG};m.prototype.rMa=function(){return this.op&m.rL?!0:!1};m.prototype.tMa=function(){return this.op&m.sL?!0:!1};m.prototype.uMa=function(){return this.op&m.lG?!0:!1};m.prototype.qMa=function(){return this.op&m.hG?!0:!1};m.prototype.dB=function(p){this.pH=p};m.prototype.Kc=function(){this.sp();return this.Ga}; m.prototype.Jc=function(){this.sp();return this.rb};m.prototype.zg=function(){this.sp();return this.sd};m.prototype.uA=function(){this.sp();return this.kb};m.prototype.Wf=function(p){p?(this.Uia=p.get("hfov",360),this.V3=p.get("vfov",180),this.wU=p.get("pitch",0),this.ZH=p.get("partial",!1),this.jga=p.wMa(),this.fga=p.mMa(),this.oga=Math.min(p.get("hfovMax",170),170),this.zS=p.get("hfovMin"),this.Fha=b.xLa(p)):(this.Uia=360,this.V3=180,this.wU=0,this.fga=this.jga=this.ZH=!1,this.oga=120,this.Fha= this.zS=1);this.Ga=0;this.rb=this.wU;this.sd=0;this.Rd=!0};m.prototype.setPosition=function(p,q,r,t,u){this.Ga=p;this.rb=q;this.sd=r;this.kb=t;this.vfa=u;this.Rd=!0};m.prototype.kd=function(){var p=this.j.nb(),q=this.j.Mb();if(this.Pa!=p||this.Ha!=q)this.Pa=p,this.Ha=q,this.Rd=!0};m.prototype.sp=function(){if(this.Rd){this.Rd=!1;var p=this.Ga*f,q=this.rb*f,r=this.kb*f,t=(this.vfa?g.Ar(this.oga,this.Pa,this.Ha):this.oga)*f;a:{var u=this.zS;if(h.EA(u)&&(u=u.match(/^\s*([+-]?\d+\.?\d*)\s*%\s*$/))&&u.length>= 2){u=parseFloat(u[1]);break a}u=void 0}u=u!==void 0?2*Math.atan2(this.Pa*this.j.getPixelRatio()*.5,this.Fha*45*u/100):this.zS?(this.vfa?g.Ar(this.zS,this.Pa,this.Ha):this.zS)*f:2*Math.atan2(this.Pa*this.j.getPixelRatio()*.5,this.Fha*45);u=Math.min(t,u);if(this.pH){var v=360;var w=180;var x=0}else if(this.jga||this.fga){v=this.fga?90:this.wU+this.V3*.5;var y=this.jga?-90:this.wU-this.V3*.5;w=v-y;x=(v+y)*.5;v=this.Uia}else v=this.Uia,x=this.wU,w=this.V3;v*=f;w*=f;x*=f;for(y=this.Pa/this.Ha;p<-c;)p+= 2*c;for(;p>c;)p-=2*c;r=Math.max(Math.min(r,t),u);t=m.iG;if(!this.pH){q>d?t|=m.lG:q<-d&&(t|=m.hG);q=Math.max(Math.min(q,c*.5),-c*.5);var z=2*Math.atan(Math.tan(r*.5)/y);if(z>=w)r=2*Math.atan(Math.tan(w*.5)*y),q=x,t|=m.lG|m.hG;else{var A=Math.min(w*.5+x,c*.5);w=Math.max(-w*.5+x,-c*.5);x=!this.ZH&&A>=.99*c*.5?c*.5:A-z*.5;w=!this.ZH&&w<=.99*-c*.5?-c*.5:w+z*.5;q>x?(q=x,t|=m.lG):q0?y:-y,1),w=new k,w.rotateX(-q),y.apply(w),y=y.Kc()*2,y<0&&(y+= 2*c),w=Math.max(0,v*.5-y*.5-.25*f),z=Math.min(0,-v*.5+y*.5+.25*f),y>v?(p=0,r=Math.max(u,r*v/y),t|=m.rL|m.sL):p>w?(p=w,t|=m.sL):pb;)e-=360;return e};a.prototype.HT=function(){this.ha&& this.Cn()};a.prototype.Cn=function(){this.o(new n(h.V))};return a});define("tdv/player/view/panorama/control/constants/Movement",["require"],function(){return{eL:"left",fL:"right",dL:"down",gL:"up",xua:"rotate10x",Zua:"zoom2x",PLAYING:"playing",Mx:"zoomIn",Nx:"zoomOut",Fg:"stop"}}); define("tdv/player/view/panorama/control/camera/KeyboardManager","require tdv/utils tdv/constants/Key tdv/events/Event tdv/events/EventDispatcher tdv/player/view/panorama/control/constants/Movement tdv/view/util/KeyboardControl".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/Key"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/panorama/control/constants/Movement"),e=a("tdv/view/util/KeyboardControl"),b=m.extend(g,function(d){g.call(this);this.j=d;this.ha= !1;this.rg={};this.wV=null;this.sk=this.vV=!1;this.e2=this.e2.bind(this);this.$m=this.$m.bind(this);this.ld=this.j.ld;document.addEventListener("keydown",this.e2);document.addEventListener("keyup",this.$m)});b.prototype.clear=function(){this.ha=!1;this.ld=this.j=null;document.removeEventListener("keydown",this.e2);document.removeEventListener("keyup",this.$m)};b.prototype.Ra=function(d){this.ha!=d&&(this.ha=d)&&this.Y5()};var c=[h.ck,h.Ki,h.fb,h.Db,h.Mp,h.uo,h.qo,h.Sp,h.x_,h.t_];b.prototype.e2=function(d){if(!e.yp()){var f= d.which,l=!1;!this.rg[f]&&c.indexOf(f)>=0&&(this.wV||this.vV||(this.wV=setTimeout(this.O5a.bind(this),100)),l=this.rg[f]=!0);this.sk!=d.shiftKey&&(this.sk=d.shiftKey,l=!0);l&&this.Y5()}};b.prototype.O5a=function(){this.vV=!0;this.Y5()};b.prototype.$m=function(d){if(!e.yp()){var f=d.which,l=!1;if(f in this.rg){delete this.rg[f];l=!1;for(f in this.rg)this.rg[f]&&(l=!0);l||(this.wV&&clearTimeout(this.wV),this.wV=null,this.vV=!1);l=!0}this.sk!=d.shiftKey&&(this.sk=d.shiftKey,l=!0);l&&this.Y5()}};b.prototype.Y5= function(){if(this.ha){var d=this.ld.get("gazeModeEnabled"),f=this.ld.get("arrowKeysAction");if(d||f!="none"){d=d||f=="rotate";f=[];this.rg[h.x_]?f.push(k.Mx):this.rg[h.t_]&&f.push(k.Nx);this.vV&&(this.rg[h.x_]||this.rg[h.t_])&&f.push(k.Zua);this.rg[h.fb]||this.rg[h.Mp]?f.push(k.eL):(this.rg[h.Db]||this.rg[h.Sp])&&f.push(k.fL);if(d||this.sk)this.rg[h.ck]||this.rg[h.uo]?f.push(k.gL):(this.rg[h.Ki]||this.rg[h.qo])&&f.push(k.dL);this.vV&&(this.rg[h.fb]||this.rg[h.Db]||this.rg[h.ck]||this.rg[h.Ki]||this.rg[h.Mp]|| this.rg[h.Sp]||this.rg[h.uo]||this.rg[h.qo])&&f.push(k.xua);f.length==0&&f.push(k.Fg);this.o(new n(b.sba,{bOa:f}))}}};b.sba="movementsChange";return b}); define("tdv/player/view/panorama/control/camera/TargetManager",["require"],function(){function a(){this.yo=!0;this.reset()}function m(h,n,g){h=(n-h)*(1-g);Math.abs(h)<.01&&(h=0);return n-h}a.prototype.reset=function(){this.yo&&(this.yo=!1,this.F5=this.G5=this.Mz=this.qp=this.ZL=this.aM=this.$L=this.wC=void 0)};a.prototype.moveTo=function(h,n,g,k,e){this.qp=h;this.Mz=n;this.G5=g;this.F5=k;this.Dga=e;this.yo=!0};a.prototype.setPosition=function(h,n,g,k){this.wC=h;this.$L=n;this.aM=g;this.ZL=k};a.prototype.Dt= function(){return this.wC};a.prototype.Ct=function(){return this.$L};a.prototype.aE=function(){return this.aM};a.prototype.tJ=function(){return this.ZL};a.prototype.Vf=function(){return this.yo};a.prototype.Nb=function(){if(this.yo)if(this.Dga)this.wC=this.qp,this.$L=this.Mz,this.aM=this.G5,this.ZL=this.F5,this.yo=!1;else{for(var h=this.wC,n=this.qp-180,g=this.qp+180;hg;)h-=g-n;this.wC=h;this.wC=m(this.wC,this.qp,.5);this.$L=m(this.$L,this.Mz,.5);this.aM=m(this.aM,this.G5,.5);this.ZL= m(this.ZL,this.F5,.5);this.wC==this.qp&&this.$L==this.Mz&&this.aM==this.G5&&this.ZL==this.F5&&(this.yo=!1)}};return a}); define("tdv/player/view/panorama/control/camera/VRPoseManager",["require","tdv/player/view/util/geo/Quaternion","tdv/player/view/util/URL","tdv/player/view/util/XR"],function(a){function m(b){this.j=b;this.ha=!1;this.sd=this.rb=this.Ga=0;this.D1=void 0}var h=a("tdv/player/view/util/geo/Quaternion"),n=a("tdv/player/view/util/URL"),g=a("tdv/player/view/util/XR");m.prototype.Ra=function(b){this.ha!=b&&(this.ha=b,this.D1=void 0)};m.prototype.setPosition=function(b,c,d){if(this.ha&&this.D1!==void 0){for(var f= b-this.D1;f>180;)f-=360;for(;f<-180;)f+=360;(f<-1E-4||f>1E-4)&&g.mK(b)}this.Ga=b;this.rb=c;this.sd=d};m.prototype.Dt=function(){return this.Ga};m.prototype.Ct=function(){return this.rb};m.prototype.aE=function(){return this.sd};m.prototype.Vf=function(){return!0};m.prototype.Nb=function(){if(g.Uf&&!this.j.D4){g.mK();var b=h.jaa(g.wg,!0);this.D1=this.Ga=b.Xa;this.rb=b.pitch;this.sd=b.Mg;this.rb=e===void 0?b.pitch:e;this.sd=k===void 0?b.Mg:k;g.setScale(1)}};var k=n.Bk("debug")?n.K7("force_vr_roll"): void 0,e=n.Bk("debug")?n.K7("force_vr_pitch"):void 0;return m}); define("tdv/player/view/panorama/control/camera/ManualCameraController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/constants/RotationMode tdv/player/view/panorama/control/camera/GyroscopeManager tdv/player/view/panorama/control/camera/KeyboardManager tdv/player/view/panorama/control/camera/MovementManager tdv/player/view/panorama/control/camera/MouseManager tdv/player/view/panorama/control/camera/TargetManager tdv/player/view/panorama/control/camera/VRPoseManager tdv/player/view/panorama/control/constants/Movement tdv/player/view/util/geo/Quaternion tdv/player/view/util/XR tdv/view/constants/Cursor".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/constants/RotationMode"),e=a("tdv/player/view/panorama/control/camera/GyroscopeManager"),b=a("tdv/player/view/panorama/control/camera/KeyboardManager"),c=a("tdv/player/view/panorama/control/camera/MovementManager"),d=a("tdv/player/view/panorama/control/camera/MouseManager"),f=a("tdv/player/view/panorama/control/camera/TargetManager"),l=a("tdv/player/view/panorama/control/camera/VRPoseManager"), p=a("tdv/player/view/panorama/control/constants/Movement");a("tdv/player/view/util/geo/Quaternion");var q=a("tdv/player/view/util/XR"),r=a("tdv/view/constants/Cursor"),t=m.extend(g,function(u,v,w){g.call(this);this.j=u;this.ld=this.j.ld;this.va=v;this.Bc=w;this.mD=this.DC=this.uS=this.w4=this.ha=!1;this.Ac=new c;this.$s=new f;this.sd=this.rb=this.Ga=0;this.kb=90;this.xI=1;this.Vi=void 0;this.mda=this.nR=5;this.gO=!1;this.Hb=new d;this.Hb.bind(d.xx,this.YT,this,!0);this.Hb.bind(d.Jr,this.ZC,this,!0); this.Hb.bind(d.ak,this.Is,this,!0);this.Hb.bind(d.$j,this.Hs,this,!0);this.Xm=new e;this.Xm.bind(h.V,this.CBa,this);this.CC=!1;this.Uo=new b(this.j);this.Uo.bind(b.sba,this.MBa,this,!0);this.Wv=new l(this.j);q.M.bind(h.V,this.pn,this,!0);q.M.bind(h.Pd,this.pn,this,!0);this.pn()});t.prototype.clear=function(){this.Hb.h(d.xx,this.YT,this,!0);this.Hb.h(d.Jr,this.ZC,this,!0);this.Hb.h(d.ak,this.Is,this,!0);this.Hb.h(d.$j,this.Hs,this,!0);this.Hb.Jn();this.Hb=null;this.Xm.h(h.V,this.CBa,this);this.Xm= null;this.Uo.h(b.sba,this.MBa,this,!0);this.Uo.clear();this.Uo=null;q.M.h(h.V,this.pn,this,!0);q.M.h(h.Pd,this.pn,this,!0);this.Bc=this.va=this.Ac=null;this.t0();this.j=this.ld=null};t.prototype.setCamera=function(u){this.gO=!1;this.Ac.reset();this.$s.reset();this.Hb.setCamera(u);this.nR=u.get("automaticRotationSpeed");this.mda=u.get("automaticZoomSpeed")};t.prototype.xl=function(u){Array.isArray(u)||(u=[u]);var v=0,w=0,x=0,y=!1;u.includes(p.Fg)||(u.includes(p.eL)?v=-this.nR:u.includes(p.fL)&&(v= +this.nR),u.includes(p.dL)?w=-this.nR:u.includes(p.gL)&&(w=+this.nR),u.includes(p.Mx)?x=-this.mda:u.includes(p.Nx)&&(x=+this.mda),u.includes(p.PLAYING)&&(y=!0),u.includes(p.Zua)&&(x*=2),u.includes(p.xua)&&(v*=10,w*=10),v*=this.xI,w*=this.xI);this.md(v,w,0,x,0,0,0,0,y,!0,!0,!0)};t.prototype.setPosition=function(u,v,w,x){this.Ga=u;this.rb=v;this.sd=w;this.kb=x;this.xI=this.kb/90;this.Xm.setPosition(this.Ga,this.rb,this.sd);this.Wv.setPosition(this.Ga,this.rb,this.sd);this.Hb.oK(this.kb);this.$s.setPosition(this.Ga, this.rb,this.sd,this.kb)};t.prototype.moveTo=function(u,v,w,x,y){this.$s.moveTo(u,v,w,this.Bc.TKa(x),y);this.w4=!1;this.Ac.reset();this.ij()};t.prototype.Ara=function(u,v,w){this.md(0,0,0,0,u,v,w,0,!1,!1,!1)};t.prototype.Vf=function(){return this.ha&&(this.mD||this.GTa())?!0:!1};t.prototype.bdb=function(){this.mD=this.gO=!1};t.prototype.GTa=function(){return this.ha?this.gO?!0:this.Wv.ha?this.Wv.Vf()||this.Ac.Vf():this.Xm.ha?this.CC?!0:this.Xm.Vf()||this.Ac.Vf():this.Ac.Vf()||this.$s.Vf():!1};t.prototype.Nb= function(u){this.gO=!1;this.Ac.Nb(u);this.mD=!1;var v=this.kb;if(this.Wv.ha){this.Wv.Nb(u);u=this.Wv.Dt()+this.Ac.rC+this.Q2a();var w=this.Wv.Ct();var x=this.Wv.aE()}else this.$s.Vf()?(this.$s.Nb(u),u=this.$s.Dt(),w=this.$s.Ct(),x=this.$s.aE(),v=this.$s.tJ()):(this.Xm.ha?(this.CC=!1,this.Xm.Nb(u),u=this.Xm.Dt()+this.Ac.rC,w=this.Xm.Ct(),this.uS&&(w+=this.Ac.YL),x=this.Xm.aE()):(u=this.Ga+this.Ac.rC,w=this.rb+this.Ac.YL,x=0),v+=this.Ac.qxa);this.Bc.sr(v);this.va.setPosition(u,w,x,this.Bc.jf(),this.Bc.mw()); this.Ga=this.va.Kc();this.rb=this.va.Jc();this.sd=this.va.zg();this.kb=this.va.uA();if(this.w4&&this.va.sMa()){v=this.Ac.tW;if(this.va.rMa()||this.va.tMa())v=-v;u=this.Ac.BU;if(this.va.uMa()||this.va.qMa())u=-u;this.md(v,u,0,0,0,0,0,0,!0,!1,!1,!0)}};t.prototype.Dt=function(){return this.Ga};t.prototype.Ct=function(){return this.rb};t.prototype.aE=function(){return this.sd};t.prototype.tJ=function(){return this.kb};t.prototype.Ra=function(u){this.ha!=u&&((this.ha=u)?(this.wD(this.Hb.IH==k.tx?r.IB: void 0),this.Hb.bu(this.j.getParent()),this.ij()):(this.t0(),this.Hb.Jn()),this.Xla())};t.prototype.YY=function(u){this.DC!=u&&(this.DC=u,this.Xla(),this.CC=!0)};t.prototype.SE=function(u){this.Uo.Ra(u)};t.prototype.Xla=function(){var u=this.j.jr();this.Xm.Ra(this.ha&&this.DC&&!u);this.Wv.Ra(this.ha&&u)};t.prototype.CBa=function(){this.ij()};t.prototype.ZY=function(u){this.uS=u;this.Xm.$lb(this.uS)};t.prototype.UE=function(u){this.Hb.UE(u);this.wD(this.Hb.IH==k.tx?r.IB:void 0)};t.prototype.vK=function(u){this.Hb.vK(u)}; t.prototype.pn=function(){this.ha&&(this.j.jr()&&(q.setScale(1),q.mK(this.Ga)),this.Xla(),this.ij())};t.prototype.YT=function(u){var v=!this.Wv.ha&&(!this.Xm.ha||this.uS);if(this.Hb.IH==k.wF){var w=void 0;if(u.tB!=0||u.TA!=0){var x=Math.sqrt(u.TA*u.TA+u.tB*u.tB)>25,y=Math.atan2(u.TA,u.tB)*180/Math.PI;y>=-22.5&&y<22.5?w=x?r.Sta:r.Rta:y>=22.5&&y<67.5?w=x?r.Uta:r.aua:y>=67.5&&y<112.5?w=x?r.Tta:r.$ta:y>=112.5&&y<157.5?w=x?r.Vta:r.bua:y>=157.5||y<-157.5?w=x?r.Zta:r.fua:y>=-157.5&&y<-112.5?w=x?r.Yta:r.eua: y>=-112.5&&y<-67.5?w=x?r.Wta:r.cua:y>=-67.5&&y<-22.5&&(w=x?r.Xta:r.dua)}this.wD(w);this.md(u.tB,u.TA,0,0,u.CQ,u.SP,0,0,!1,!1,!1,v)}else this.md(u.tB,u.TA,0,0,u.CQ,u.SP,0,0,!1,!1,v,v)};t.prototype.ZC=function(u){this.md(0,0,0,u.Tgb,0,0,0,u.Noa,!1,!0,!1,!0)};t.prototype.md=function(u,v,w,x,y,z,A,D,F,C,B,H){var E=!1;this.ld.get("rotationEnabled")&&(E=this.Ac.zra(u,v,w,y,z,A,C,B,H)||E);this.ld.get("zoomEnabled")&&(E=this.Ac.bmb(x,D)||E);E&&(this.$s.reset(),this.w4=F,this.ij())};t.prototype.Q2a=function(){if(!this.j.jr())return 0; this.s4=this.s4||0;for(var u=0,v=0;v0&&this.s4<=0?v:u<0&&this.s4>=0?-v:0;this.s4=u;return v};t.prototype.ij=function(){this.mD=!0;this.o(new n(t.Li))};t.prototype.Is=function(){this.gO=!0;this.o(new n(t.ak));this.Hb.IH==k.tx&&this.wD(r.Mi)};t.prototype.Hs=function(){this.o(new n(t.$j));this.Hb.IH==k.tx&&this.wD(r.IB)};t.prototype.MBa=function(u){this.xl(u.data.bOa);u.data.bOa.indexOf(p.Fg)<0&&this.j.Xb().o(new n(h.eG, {mQ:u}))};t.prototype.wD=function(u){this.Vi!=u&&this.ha&&(this.Vi&&this.j.WP(this.Vi),(this.Vi=u)&&this.j.Y9(this.Vi))};t.prototype.t0=function(){this.Vi&&(this.j.WP(this.Vi),this.Vi=void 0)};t.Li="position change request";t.ak="user interaction start";t.$j="user interaction end";return t}); define("tdv/player/script/TargetRotationalCameraMovement",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("TargetRotationalCameraMovement",m,function(){m.call(this)})}); define("tdv/player/view/panorama/control/camera/SequenceCameraController","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/player/parser/ClassInfo tdv/player/script/DistanceRotationalCameraMovement tdv/player/script/TargetRotationalCameraMovement tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/events/Event"),k= a("tdv/events/EventDispatcher"),e=a("tdv/player/parser/ClassInfo");a("tdv/player/script/DistanceRotationalCameraMovement");a("tdv/player/script/TargetRotationalCameraMovement");var b=a("tdv/view/util/Ease"),c=a("tdv/view/util/EaseDimension"),d=m.extend(k,function(f,l,p){k.call(this);this.j=f;this.va=l;this.Bc=p;this.zN=this.Zb=null;this.rn=this.jD=!1;this.aI=void 0;this.RM=[];this.Xja=0;this.la=null;this.rb=this.Ga=0;this.kb=90});d.prototype.clear=function(){this.end();this.va=this.j=null};d.prototype.start= function(f){this.a9a(f);this.q6a();this.rn=!1;this.Jwa();this.jD=!1;this.ij();this.ml()};d.prototype.end=function(){this.Zb!=null&&(this.Owa(),this.jD=this.rn=!1,this.la=null,this.ml())};d.prototype.djb=function(){this.Zb&&this.Zb.get("restartMovementOnUserInteraction")?this.jD||(this.OFa(),this.Zka(),this.la=null,this.jD=!0,this.ml()):(this.la=null,this.pause())};d.prototype.hjb=function(){this.jD&&(this.jD=!1,this.$za()||this.T9a())};d.prototype.a9a=function(f){this.Owa();this.Zb=f;this.Zb.bind(h.Ex, this.QCa,this,!0);this.Zb.bind(h.iL,this.PCa,this,!0);this.Zb.bind(h.L("movementIndex"),this.y3,this,!0);this.RM=this.Zb.get("movements",[])};d.prototype.Owa=function(){this.Zka();this.Zb!=null&&(this.Zb.h(h.Ex,this.QCa,this),this.Zb.h(h.iL,this.PCa,this),this.Zb.h(h.L("movementIndex"),this.y3,this),this.Zb.set("movementIndex",-1),this.Zb=null,this.RM=[])};d.prototype.ql=function(){return this.Zb?this.rn?n.$b:n.PLAYING:n.ca};d.prototype.setPosition=function(f,l,p,q){this.Ga=f;this.rb=l;this.kb=q}; d.prototype.Vf=function(){return!this.Zb||!this.la||this.rn||this.jD||this.$za()?!1:!0};d.prototype.Nb=function(f){if(this.Vf()){this.la.Nb(f);f=this.la.ob("hfov");if(this.fp!=this.Bc.fp){this.fp=this.Bc.fp;var l=this.la.oX("hfov");l.from=this.Bc.QW(l.from);l.to=this.Bc.QW(l.to);f=this.Bc.QW(f)}this.va.setPosition(this.la.ob("yaw"),this.la.ob("pitch"),0,f,this.Bc.mw());this.Ga=this.va.Kc();this.rb=this.va.Jc();this.kb=this.va.uA();this.la.Ve()&&this.s5a()}};d.prototype.Dt=function(){return this.Ga}; d.prototype.Ct=function(){return this.rb};d.prototype.tJ=function(){return this.kb};d.prototype.play=function(){this.rn&&(this.rn=!1,this.la||this.y3(),this.Jwa(),this.ij(),this.ml())};d.prototype.pause=function(){this.rn||(this.rn=!0,this.OFa(),this.ml())};d.prototype.QCa=function(){this.play()};d.prototype.PCa=function(){this.pause()};d.prototype.q6a=function(){this.Xja=0;var f=this.Zb.get("movementIndex",-1);f==-1&&(f=0);this.i4(f)};d.prototype.s6a=function(){this.Xja++;var f=this.Zb.get("repeat", 1);this.RM.length>0&&(f==0||this.Xja=0?this.KR(this.RM[f]):null};d.prototype.s5a=function(){this.RM[this.Zb.get("movementIndex")].o(new g(h.Ub)); this.r6a()};d.prototype.$za=function(){return this.zN!=null};d.prototype.T9a=function(){this.Zka();var f=this,l=this.Zb.get("restartMovementDelay")||0;this.zN=setTimeout(function(){f.zN=null;f.J5a()},l);this.ml()};d.prototype.Zka=function(){this.zN&&(clearTimeout(this.zN),this.zN=null)};d.prototype.J5a=function(){this.i4(this.Zb.get("movementIndex"));this.ij();this.ml()};d.prototype.KR=function(f){var l,p=this.nI(this.Ga,-180,180),q=this.rb,r=this.kb;if(e.Oa("TargetRotationalCameraMovement",f)){var t= f.get("targetYaw",p);var u=f.get("targetPitch",q);(l=f.get("targetHfov"))?(this.Bc.sRa(l),l=this.Bc.jf()):l=r;this.va.setPosition(t,u,0,l,this.Bc.mw());if(this.va.ZH)t=this.va.Kc();else switch(this.F0a(f)){case "left":t=this.nI(t,p-360,p);break;case "right":t=this.nI(t,p,p+360);break;case "longest":t=this.nI(t,p-180,p+180);t=t>=p?this.nI(t,p-360,p):this.nI(t,p,p+360);break;default:t=this.nI(t,p-180,p+180)}}else e.Oa("DistanceRotationalCameraMovement",f)&&(t=p+f.get("yawDelta",0),this.va.ZH&&(t=Math.min(Math.max(-180, t),180)),u=q+f.get("pitchDelta",0),l=r+f.get("hfovDelta",0),this.va.setPosition(t,u,0,l,this.Bc.mw()),this.va.ZH&&(t=this.va.Kc()));u=this.va.Jc();l=this.va.uA();this.fp=this.Bc.fp;return new b(f.get("easing"),[new c("yaw",p,t,f.get("yawSpeed")),new c("pitch",q,u,f.get("pitchSpeed")),new c("hfov",r,l,f.get("hfovSpeed"))],f.get("duration"))};d.prototype.Jwa=function(){this.aI=void 0};d.prototype.OFa=function(){if(this.la){this.aI=void 0;var f=this.la&&this.la.oX("yaw");f&&(f.to>f.from?this.aI="right": f.top;)f-=p-l;return f};d.prototype.ij=function(){this.o(new g(d.Li))};d.prototype.V$a=function(){this.o(new g(d.Fba))};d.prototype.ml=function(){this.o(new g(d.gd))};d.Li="position change request";d.Fba="sequence end";d.gd="playback state change";return d}); define("tdv/player/view/panorama/control/camera/Controller","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/panorama/control/camera/LimitsManager tdv/player/view/panorama/control/camera/HoverCameraController tdv/player/view/panorama/control/camera/ManualCameraController tdv/player/view/panorama/control/camera/SequenceCameraController tdv/player/view/panorama/control/constants/Movement tdv/player/view/util/XR tdv/constants/PlaybackState".split(" "), function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/panorama/control/camera/LimitsManager"),e=a("tdv/player/view/panorama/control/camera/HoverCameraController"),b=a("tdv/player/view/panorama/control/camera/ManualCameraController"),c=a("tdv/player/view/panorama/control/camera/SequenceCameraController"),d=a("tdv/player/view/panorama/control/constants/Movement"),f=a("tdv/player/view/util/XR"),l=a("tdv/constants/PlaybackState"), p=m.extend(g,function(q,r){g.call(this);this.j=q;this.j.bind(h.Rb,this.kd,this);f.M.bind(h.V,this.pn,this,!0);this.Bc=r;this.cka=!1;this.kb=this.sd=this.rb=this.Ga=void 0;this.Zv=this.Yv=this.wT=this.zT=this.yT=this.xT=!1;this.pp=!0;this.uM=this.Ms=0;this.ha=!1;this.Po=null;this.CS=5E3;this.HS=this.Aga=null;this.mka=[];this.Jj=this.bC=l.ca;this.va=new k(q);this.rc=new b(this.j,this.va,this.Bc);this.rc.bind(b.Li,this.Es,this,!0);this.rc.bind(b.ak,this.Is,this,!0);this.rc.bind(b.$j,this.Hs,this,!0); this.Oo=new e(this.j,this.va,this.Bc);this.Oo.bind(e.Li,this.Es,this,!0);this.Pf=new c(this.j,this.va,this.Bc);this.Pf.bind(c.Li,this.Es,this,!0);this.Pf.bind(c.Fba,this.rv,this,!0);this.Pf.bind(c.gd,this.RCa,this,!0)});p.prototype.clear=function(){this.Nv();this.rc.h(b.Li,this.Es,this);this.rc.h(b.ak,this.Is,this,!0);this.rc.h(b.$j,this.Hs,this,!0);this.rc.clear();this.rc=null;this.Oo.h(e.Li,this.Es,this,!0);this.Oo.clear();this.Oo=null;this.Pf.h(c.Li,this.Es,this);this.Pf.h(c.Fba,this.rv,this); this.Pf.h(c.gd,this.RCa,this);this.Pf.clear();this.va=this.Pf=null;this.j.h(h.Rb,this.kd,this);f.M.h(h.V,this.pn,this,!0);this.j=null;this.zc&&(this.zc.h(h.L("sequences"),this.Cia,this,!0),this.zc=null);this.f5([])};p.prototype.end=function(){this.bC=l.ca;this.Nv();this.rc.Ra(!1);this.Oo.Ra(!1);this.Pf.end();this.ha=!1;this.Fz(0,0,0);this.HS=this.Aga=null;this.zc&&(this.zc.h(h.L("sequences"),this.Cia,this,!0),this.zc=null);this.f5([]);this.KI()};p.prototype.start=function(q,r){this.bC=l.PLAYING;this.ha= !0;this.Fz(0,0,0);this.iV(q);this.g8a(r);this.VDa();this.t5(this.HS);this.Oo.Ra(!0);this.KI()};p.prototype.ql=function(){return this.Jj};p.prototype.play=function(q){this.bC=l.PLAYING;this.Pf.ql()==l.$b?this.Pf.play():this.Pf.ql()==l.ca&&(!q&&this.HS?this.t5(this.HS):this.BM()||this.BV());this.KI()};p.prototype.resume=function(){this.bC==l.$b&&(this.rc.bdb(),this.play(!0))};p.prototype.pause=function(){this.rc.xl(d.Fg);this.bC==l.PLAYING&&(this.bC=l.$b,this.Pf.ql()==l.PLAYING?(this.Pf.pause(),this.KI()): this.BM()&&this.Nv())};p.prototype.stop=function(){this.bC=l.ca;this.Pf.ql()!=l.ca&&this.Pf.end();this.rc.xl(d.Fg);this.KI();this.BM()&&this.Nv()};p.prototype.moveTo=function(q,r,t,u,v){this.rc.moveTo(q,r,t,u,v)};p.prototype.f5=function(q){this.mka.forEach(function(r){r.h(h.Ex,this.AEa,this,!0)}.bind(this));this.mka=q;this.mka.forEach(function(r){r.bind(h.Ex,this.AEa,this,!0)}.bind(this))};p.prototype.pn=function(){this.va.dB(f.isPresenting)};p.prototype.xl=function(q){this.rc.xl(q)};p.prototype.Ara= function(q,r,t){this.rc.Ara(q,r,t)};p.prototype.YY=function(q){this.DC!=q&&(this.DC=q,this.rc.YY(this.DC),this.bb())};p.prototype.ZY=function(q){this.rc.ZY(q)};p.prototype.UE=function(q){this.rc.UE(q)};p.prototype.vK=function(q){this.rc.vK(q)};p.prototype.SE=function(q){this.rc.SE(q)};p.prototype.YA=function(q){this.ha&&(this.rc.Vf()||this.j.jr()||this.DC&&(this.rc.ha||!this.rc.uS)?(this.rc.GTa()&&this.Pf.djb(),this.rc.Nb(q),this.wn(this.rc.Dt(),this.rc.Ct(),this.rc.aE(),this.rc.tJ()),this.bb()): this.Pf.jD?(this.Pf.hjb(),this.bb()):this.Pf.Vf()?(this.Pf.Nb(q),this.wn(this.Pf.Dt(),this.Pf.Ct(),0,this.Pf.tJ()),this.bb()):this.Oo.Vf()?(this.Oo.Nb(q),this.wn(this.Oo.Dt(),this.Oo.Ct(),0,this.Oo.tJ()),this.bb()):this.cka?(this.cka=!1,this.Bc.sr(this.j.jf()),this.va.setPosition(this.j.Kc(),this.j.Jc(),this.j.zg(),this.Bc.jf(),this.Bc.mw()),this.wn(this.va.Kc(),this.va.Jc(),this.va.zg(),this.va.uA()),this.bb()):(this.Fz(0,0,0),this.bC==l.PLAYING&&this.Pf.ql()!=l.PLAYING&&(this.BM()||this.BV())))}; p.prototype.ze=function(){this.Sab();this.VDa()};p.prototype.Sab=function(){var q=this.j.Kc()-this.Ga||0,r=this.j.Jc()-this.rb||0;this.j.zg();this.Fz(q,r,this.j.jf()-this.kb||0)};p.prototype.VDa=function(){this.Ga=this.j.Kc();this.rb=this.j.Jc();this.sd=this.j.zg();this.kb=this.j.jf();this.rc.setPosition(this.Ga,this.rb,this.sd,this.kb);this.Pf.setPosition(this.Ga,this.rb,this.sd,this.kb);this.Oo.setPosition(this.Ga,this.rb,this.sd,this.kb)};p.prototype.iV=function(q){this.va.Wf(q)};p.prototype.g8a= function(q){this.zc=q;this.CS=q.get("timeToIdle",5E3);this.Aga=q.get("idleSequence");this.HS=q.get("initialSequence");this.rc.setCamera(q);this.Oo.setCamera(q);q.bind(h.L("sequences"),this.Cia,this,!0);this.f5(q.get("sequences",[]))};p.prototype.Cia=function(){this.f5(this.zc.get("sequences",[]))};p.prototype.AEa=function(q){this.t5(q.source)};p.prototype.Es=function(){this.Nv();this.bb()};p.prototype.Is=function(){this.o(new n(p.ak))};p.prototype.Hs=function(){this.o(new n(p.$j))};p.prototype.t5= function(q){q?(this.rc.Ra(!q.get("mandatory",!1)),this.Pf.start(q)):this.rv()};p.prototype.rv=function(){this.rc.Ra(!0);this.BV()};p.prototype.RCa=function(){this.KI()};p.prototype.kd=function(){this.cka=!0;this.bb()};p.prototype.BM=function(){return this.Po!=null};p.prototype.BV=function(){this.Nv();var q=this;this.Po=setTimeout(function(){q.Po=null;q.ria()},this.CS)};p.prototype.Nv=function(){this.Po&&(clearTimeout(this.Po),this.Po=null)};p.prototype.ria=function(){this.t5(this.Aga)};p.prototype.bb= function(){this.o(new n(p.oc))};p.prototype.wn=function(q,r,t,u){this.j.setPosition(q,r,t,u)};p.prototype.Fz=function(q,r,t){var u=!1,v=Math.abs(q)<.001&&Math.abs(r)<.001&&Math.abs(t)<.001;v||this.DC?(u=this.pp!=1,this.Zv=this.Yv=this.wT=this.zT=this.yT=this.xT=!1,this.pp=!0):(this.xT!=q<-.001&&(this.xT=!this.xT,u=!0),this.yT!=q>.001&&(this.yT=!this.yT,u=!0),this.wT!=r<-.001&&(this.wT=!this.wT,u=!0),this.zT!=r>.001&&(this.zT=!this.zT,u=!0),this.Yv!=t<-.001&&(this.Yv=!this.Yv,u=!0),this.Zv!=t>.001&& (this.Zv=!this.Zv,u=!0),this.pp!=v&&(this.pp=!this.pp,u=!0));v||this.o(new n(p.Hr,{yaw:this.Ga,pitch:this.rb,roll:this.sd,hfov:this.kb}));u&&((this.ha||this.pp)&&this.o(new n(p.Dl,{movingLeft:this.xT,movingRight:this.yT,movingUp:this.zT,movingDown:this.wT,zoomingIn:this.Yv,zoomingOut:this.Zv,stopped:this.pp})),this.KI())};p.prototype.KI=function(){if(this.ha){var q=this.Pf.ql();this.pp||(q=l.PLAYING)}else q=l.ca;this.Jj!=q&&(this.Jj=q,this.o(new n(p.gd,{state:this.Jj})))};p.oc="request frame";p.Dl= "movement change";p.Hr="position change";p.gd="playback state change";p.ak="user interaction start";p.$j="user interaction end";return p}); define("tdv/player/view/panorama/control/transition/PositionController","require tdv/constants/EventName tdv/player/view/panorama/control/camera/LimitsManager tdv/player/view/util/Device tdv/player/view/util/Gyroscope tdv/player/view/util/URL tdv/player/view/util/XR tdv/player/view/util/geo/Quaternion".split(" "),function(a){function m(d,f,l){this.j=d;this.Bc=f;this.fp=this.Bc.fp;this.H=l;this.va=new h(d);l.qh&&this.va.Wf(l.qh);this.Cz=new h(d);this.Oka=this.NC=this.OC=void 0;this.Ga=this.j.Kc(); this.rb=this.j.Jc();this.sd=this.j.zg();this.kb=this.H.qh?this.j.jf():this.Bc.mw()?this.Bc.QW(m.Raa):m.Raa;this.FFa=0;this.Ba=null;this.jAa=!0}a("tdv/constants/EventName");var h=a("tdv/player/view/panorama/control/camera/LimitsManager");a("tdv/player/view/util/Device");var n=a("tdv/player/view/util/Gyroscope"),g=a("tdv/player/view/util/URL"),k=a("tdv/player/view/util/XR"),e=a("tdv/player/view/util/geo/Quaternion");new THREE.Euler;m.prototype.Wf=function(d,f,l){if(this.Ba!=d)if(this.hD=!0,this.Ba= d,this.j.jr()){this.Oka=this.Ga;for(d=this.Oka-f;d>180;)d-=360;for(;d<-180;)d+=360;k.mK(f)}else this.yra(f,l)};m.prototype.yra=function(d,f){this.Ga=d;this.rb=f};m.prototype.kJ=function(d){this.Bc.sRa(d);return this.Bc.jf()};m.prototype.sr=function(d){this.kb=d};m.prototype.cZ=function(d){this.jAa=d};m.prototype.uK=function(d){this.FFa=d};m.prototype.YA=function(){this.fp!=this.Bc.fp&&(this.fp=this.Bc.fp,this.kb=this.Bc.QW(this.kb));if(this.H.Va()){var d=e.jaa(k.wg,!0);this.j.jr()&&(this.Ga=d.Xa); this.rb=c===void 0?d.pitch:c;this.sd=b===void 0?d.Mg:b;this.OC=this.Ga;this.NC=this.rb}else if(this.H.jMa()){d=n.Gt();var f=this.pI(d.yaw,this.Ga);this.Ga+=this.OC===void 0?0:f-this.OC;this.rb+=this.NC===void 0?0:d.pitch-this.NC;this.sd=d.roll;this.OC=d.yaw;this.NC=d.pitch}else d=this.pI(this.j.Kc(),this.Ga),f=this.j.Jc(),this.Ga+=this.OC===void 0?0:d-this.OC,this.rb+=this.NC===void 0?0:f-this.NC,this.sd=this.j.zg();this.hD&&this.va.Wf(this.Ba);this.va.dB(this.H.Va());this.va.setPosition(this.Ga, this.rb,this.sd,this.kb,this.Bc.mw());if(this.hD)if(this.hD=!1,this.H.Va())(d=this.H.qh&&this.j.Jf(this.H.qh))&&d.set("deltaYaw",this.Oka-this.va.Kc());else if(d=this.H.qh&&this.j.Jf(this.H.qh))d.set("deltaYaw",this.j.Kc()-this.va.Kc()),d.set("deltaPitch",this.j.Jc()-this.va.Jc()),d.set("deltaRoll",this.j.zg()-this.va.zg());this.Ga=this.va.Kc();this.rb=this.va.Jc();this.sd=this.va.zg();this.H.Va()||this.H.jMa()||(this.OC=this.Ga,this.NC=this.rb);this.kb=this.jAa?this.va.uA():this.kb;this.j.setPosition(this.Ga, this.rb,this.sd,this.kb);this.j.uK(this.FFa)};m.prototype.g$=function(d,f){this.Cz.Wf(d);this.Cz.setPosition(0,0,0,f,this.Bc.mw());return this.Cz.uA()};m.prototype.dkb=function(d,f){this.Cz.Wf(d);this.Cz.setPosition(f.Xa,f.pitch,f.Mg,f.Wd,this.Bc.mw());f.Xa=this.Cz.Kc();f.pitch=this.Cz.Jc();f.Mg=this.Cz.zg();f.Wd=this.Cz.uA()};m.prototype.pI=function(d,f){for(;d+180f;)d-=360;return d};m.prototype.WJa=function(){return m.Raa};m.Raa=TDV.sua.vUa;var b=g.Bk("debug")?g.K7("force_vr_roll"): void 0,c=g.Bk("debug")?g.K7("force_vr_pitch"):void 0;return m}); define("tdv/player/view/panorama/control/transition/TransitionData",["require","tdv/player/script/RotationalCameraPosition","tdv/player/script/RotationalCameraDisplayPosition","tdv/player/view/util/Device","tdv/player/view/util/FileType"],function(a){function m(b,c,d,f,l){this.j=b;this.Zh=c;b=this.j.P;this.sQ=b.get("transitionMode","blending");c=b.get("transitionDuration",500);this.f3a(d,f)&&(this.sQ=m.n_,c=1500);this.dna=b.get("blendingTransitionDuration",c);this.Keb=b.get("firstTransitionDuration", c);this.aKa=b.get("disolveTransitionDuration",c);this.YSa=b.get("translationTransitionDuration",1E3);b.get("translationTransitionSpeed");this.ZSa=b.get("translationTransitionEnabled",!0);this.wPa=b.get("panoramaToPanoramaModelTransitionEnabled",!0);this.iPa=b.get("originTransitionDuration",3E3);this.c8=400;this.Caa=1E3;this.bib=b.get("modelToPanoramaTraslationDuration",1500);this.$ib=b.get("panoramaToModelTraslationDuration",1E3);this.qh=d;this.hmb=!d||d.bpa();this.imb=!d||d.RMa();this.Sc=f;this.xSa= !f||f.bpa();this.bsa=!f||f.RMa();this.Fmb=!!f&&this.aha(f);c=(this.AK=l)&&l.get("initialPosition")||new h;this.Eh=new h;this.Eh.set("yaw",c.get("yaw",0));this.Eh.set("pitch",c.get("pitch"));this.Eh.set("hfov",c.get("hfov"));this.fg=new n;this.fg.set("yaw",this.Eh.get("yaw"));this.fg.set("pitch",this.Eh.get("pitch"));this.fg.set("hfov",this.Eh.get("hfov"));this.fg.set("stereographicFactor",0);this.br=[];if(!d){this.br=l&&l.get("displayMovements")||[];for(c=this.br.length-1;c>=0;c--)this.fg.set("yaw", this.fg.get("yaw",this.br[c].get("targetYaw"))),this.fg.set("pitch",this.fg.get("pitch",this.br[c].get("targetPitch"))),this.fg.set("hfov",this.fg.get("hfov",this.br[c].get("targethfov"))),this.fg.set("stereographicFactor",this.fg.get("stereographicFactor",this.br[c].get("stereographicFactor")));l=l&&l.get("displayOriginPosition")||this.Eh;this.fg.set("yaw",l.get("yaw"));this.fg.set("pitch",l.get("pitch"));this.fg.set("hfov",l.get("hfov"));this.fg.set("stereographicFactor",l.get("stereographicFactor"))}this.tQ= this.sQ==m.Op&&this.ZSa&&this.xSa&&this.M2a(d,f)||null;var p=this.sQ==m.Op&&this.Sc&&this.xSa&&this.Zh&&this.Sc.get("modelLocations")||[];l=this.sQ==m.Op&&this.qh&&this.hmb&&this.Zh&&this.qh.get("modelLocations")||[];var q=[];l.forEach(function(t){p.forEach(function(u){t.get("model")==u.get("model")&&q.push([t,u])})});var r=this.Zh&&this.Zh.get("model");this.Gc=this.nc=null;q.length>1&&this.Zh&&(c=q.find(function(t){return t[0].get("model")==r}))&&(q=[c]);(c=q.length?q[0]:null)&&(r&&c[0].get("model")== r||c[0].get("forceModelLoading")||c[1].get("forceModelLoading"))?(this.nc=c[0],this.Gc=c[1]):(this.nc=l.find(function(t){return t.get("preferred")}),this.nc||this.Gc||(this.Gc=p.find(function(t){return t.get("preferred")})),[].concat(l,p).forEach(function(t){t.set("preferred",!1)}),this.nc||this.Gc||(this.nc=l.find(function(t){return t.get("model")==r})),this.nc||this.Gc||(this.Gc=p.find(function(t){return t.get("model")==r})),this.nc||this.Gc||(this.nc=l.find(function(t){return t.get("forceModelLoading")})), this.nc||this.Gc||(this.Gc=p.find(function(t){return t.get("forceModelLoading")})));(this.Gc||this.nc)&&b.get("translationTransitionSpeed")&&(this.Gc||this.nc).get("model").get("worldUnitToMeters")&&(this.YSa=b.get("translationTransitionSpeed")/(this.Gc||this.nc).get("model").get("worldUnitToMeters"));this.Be=null;this.jmb=g.Nd()==g.vj?512:1536;this.Gmb=g.Nd()==g.vj?512:this.Va()?1536:1024;this.qE=this.y4a();this.mode=(b=!this.Va()||this.L3a())&&this.nc&&this.Gc&&this.tQ&&this.wPa?m.rca:b&&this.nc&& this.Gc&&this.ZSa&&this.wPa?m.Jua:this.tQ?m.Iua:b&&!this.qh&&this.Gc?m.qca:b&&!this.Sc&&this.nc?m.Kua:d?f?this.sQ=="blending"?m.Op:m.n_:m.vta:m.uta;this.mode!=m.Op||this.imb&&this.bsa||!(this.fg.get("stereographicFactor",0)>0||this.br.filter(function(t){return t.get("targetStereographicFactor",0)>0}).length>0)||(this.mode=m.n_);this.Hm=null}var h=a("tdv/player/script/RotationalCameraPosition"),n=a("tdv/player/script/RotationalCameraDisplayPosition"),g=a("tdv/player/view/util/Device"),k=a("tdv/player/view/util/FileType"); m.prototype.jMa=function(){return this.j.ld.get("gyroscopeEnabled")};m.prototype.Va=function(){return this.j.P.get("viewMode")=="vr"};m.prototype.M2a=function(b,c){if(!b||!c)return null;b=(b.get("adjacentPanoramas")||[]).filter(function(d){return d.get("enabled")&&d.Icb()&&d.get("panorama")==c});return b.length==0?null:b[0]};m.prototype.f3a=function(b,c){return this.Va()&&g.Nd()==g.vj&&(this.aha(b)||this.aha(c))};m.prototype.aha=function(b){return!!b&&b.Mn()};m.prototype.y4a=function(){var b=this.Yfa()&& this.Yfa().get("model");return(b=b&&b.get("levels")[0])&&k.is(b.get("url"),k.xta)};m.prototype.Yfa=function(){var b=this.Gc||this.nc;return b&&b.get("model")};m.prototype.L3a=function(){var b=this.Yfa();b=(b=b&&b.get("camera"))&&(b.get("vrEnabled")||b.get("xrEnabled"))&&!this.j.P.Xb().get(e);return this.Va()&&!b?!1:!0};var e=function(b){return b.map(function(c){return String.fromCharCode(c)}).join("")}([119,97,116,101,114,109,97,114,107]);m.n_="fade_out_fade_in";m.uta="fade_in";m.vta="fade_out";m.Op= "blending";m.Iua="translation";m.qca="translation_from_model";m.rca="translation_through_model";m.Jua="translation_to_from_model";m.Kua="translation_to_model";return m});define("tdv/player/view/panorama/control/transition/steps/Step",["require","exports"],function(){return function(){function a(m,h,n,g){this.U=m;this.Uc=h;this.j=n;this.H=g}a.prototype.mh=function(){return!1};a.prototype.Yg=function(){};a.prototype.PX=function(){return!1};return a}()}); define("tdv/player/view/panorama/control/transition/steps/Blend",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/view/util/Ease"),g=a("tdv/view/util/EaseDimension");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.la=null;this.Sb=!1});a.prototype.mh=function(){return this.Sb};a.prototype.Yg=function(k){if(!this.Sb){if(!this.la){var e= this.j.Jf(this.H.Sc);e.yi();e.set("alpha",.01);this.la=new n("linear",[new g("alpha",0,1,void 0)],this.H.dna)}this.la.Nb(k);k=this.la.ob("alpha");e=this.j.Jf(this.H.Sc);e.set("alpha",k);this.la.Ve()&&(this.Sb=!0)}};return a}); define("tdv/player/script/ProjectedMaterialModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("ProjectedMaterialModel3DObject",h,function(){h.call(this)})}); define("tdv/player/view/panorama/control/transition/steps/SingleOperationStep",["require","exports","tdv/player/view/panorama/control/transition/steps/Step"],function(a,m,h){return function(n){function g(k,e,b,c){k=n.call(this,k,e,b,c)||this;k.Sb=!1;return k}P(g,n);g.prototype.mh=function(){return this.Sb};g.prototype.Yg=function(){this.Sb||(this.Ch(),this.Sb=!0)};g.prototype.Ch=function(){};return g}(h)}); define("tdv/player/view/panorama/control/transition/steps/AddProjectedPanoramasToModel",["require","tdv/utils","tdv/player/script/ProjectedMaterialModel3DObject","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/script/ProjectedMaterialModel3DObject"),n=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep"),g=m.extend(n,function(k,e,b,c,d){n.call(this,k,e,b,c);this.dj=d||3});g.prototype.Ch=function(){var k= this.H.nc,e=this.H.Gc,b=this.H.Be=this.H.Be||new h;b.set("sourceAlpha",0);b.set("targetAlpha",0);this.dj&1&&(b.set("sourceX",k.get("x")),b.set("sourceY",k.get("y")),b.set("sourceZ",k.get("z")),b.set("sourceYaw",k.get("yaw")),b.set("sourceCubeTexture",this.zwa(this.H.qh,this.H.jmb)),b.set("sourceAlpha",1));this.dj&2&&(b.set("targetX",e.get("x")),b.set("targetY",e.get("y")),b.set("targetZ",e.get("z")),b.set("targetYaw",e.get("yaw")),this.C8a(this.H.Sc),b.set("targetCubeTexture",this.zwa(this.H.Sc,this.H.Gmb))); this.H.qE?(b.set("nearPlane",!0),b.set("skybox",!1)):(b.set("nearPlane",!1),b.set("skybox",!0));k=(k||e).get("model");k.get("objects").indexOf(b)==-1&&k.set("objects",k.get("objects").concat([this.H.Be]))};g.prototype.zwa=function(k,e){k=this.j.Jf(k);var b=k.get("alpha");k.set("alpha",1);e=this.j.kna(e);k.set("alpha",b);return e};g.prototype.C8a=function(k){k.get("frames").forEach(function(e,b){this.j.Jf(e).set("alpha",b==k.pX()?1:0)}.bind(this))};g.kca=m.extend(g,function(k,e,b,c){g.call(this,k, e,b,c,1)});g.sca=m.extend(g,function(k,e,b,c){g.call(this,k,e,b,c,2)});return g}); define("tdv/player/view/panorama/control/transition/steps/EnforceAdded",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.H.Sc&&!this.j.Jf(this.H.Sc)&&(this.si=this.j.create(this.H.Sc),this.si.set("alpha",0),this.j.add(this.si),this.j.F$(!1))};return a}); define("tdv/player/view/panorama/control/transition/steps/EnforceModelLoaded",["require","tdv/utils","tdv/constants/EventName","tdv/player/script/MediaPlayer","tdv/player/view/panorama/control/transition/steps/Step"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/script/MediaPlayer"),g=a("tdv/player/view/panorama/control/transition/steps/Step");a=m.extend(g,function(k,e,b,c){g.call(this,k,e,b,c)});a.prototype.Yg=function(){this.zz||this.Fa||(this.Fa=(this.H.nc||this.H.Gc).get("model"), this.mv=this.H.Zh,this.Fa.get("camera").set("inTransition",!0),this.mv.j.Ra(!0),this.zz=!1,this.Fa?this.mv.get("model")==this.Fa&&this.Fa.get("isLoaded")?(this.ez(),this.ln(),this.zz=!0):(this.mv.set("model",this.Fa),this.Fa.bind(h.ia,this.ez,this,!0),this.mv.set("requesterPlayer",this.j.ld),this.mv.bind(n.di,this.ln,this,!0)):this.zz=!0)};a.prototype.mh=function(){this.mv.j.vRa(this.Fa,!1);return this.zz};a.prototype.PX=function(){return!0};a.prototype.ez=function(){this.Fa.h(h.ia,this.ez,this)}; a.prototype.ln=function(){this.mv.h(n.di,this.ln,this,!0);this.zz=!0};return a}); define("tdv/player/view/panorama/control/transition/steps/RequestMediaActivation",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep","tdv/view/util/AudioActivation"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep"),n=a("tdv/view/util/AudioActivation");a=m.extend(h,function(g,k,e,b){h.call(this,g,k,e,b)});a.prototype.Ch=function(){if(this.H.Fmb){var g=this.H.Sc.get("frames")[0];g=g.get("sphere")|| g.get("stereoSphere");var k=g.get("levels")||[];(g.get("hasAudio")===!0||k.length>0&&k[0].get("hasAudio")===!0)&&n.request(this.j.Xb())}};return a}); define("tdv/player/view/panorama/control/transition/steps/Display",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.j.Jf(this.H.Sc).set("alpha",1)};return a}); define("tdv/player/view/panorama/control/transition/steps/FadeIn",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/view/util/Ease"),g=a("tdv/view/util/EaseDimension");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.fj=this.j.P.Fc();this.la=null;this.Sb=!1});a.prototype.mh=function(){return this.Sb};a.prototype.Yg= function(k){if(!this.Sb){if(!this.la){var e=this.j.P.uob()&&!this.H.qh?this.H.Keb:this.H.dna;this.H.Va()&&(e=Math.max(e,100));this.la=new n("linear",[new g("alpha",this.H.Va()?-500/e:0,1,void 0)],e+(this.H.Va()?500:0));this.fj.qmb();this.fj.zK();this.H.Va()&&this.j.Jf(this.H.Sc).set("alpha",1)}this.la.Nb(k);k=Math.max(.001,this.la.ob("alpha"));this.H.Va()||this.j.Jf(this.H.Sc).set("alpha",k);this.fj.nK(k);this.la&&this.la.Ve()&&(this.Sb=!0,this.fj.oJ())}};return a}); define("tdv/player/view/panorama/renderer/object/Base",["require","tdv/utils","tdv/events/EventDispatcher","tdv/player/view/panorama/renderer/3d/util/Util"],function(a){var m=a("tdv/utils"),h=a("tdv/events/EventDispatcher"),n=a("tdv/player/view/panorama/renderer/3d/util/Util");a=m.extend(h,function(){h.call(this);this.Ia=this.La=null;this.qe=[];this.M1=this.ih=!1;this.CT=null;this.Sl=[this];this.wma={};this.Uu={};this.wS=!1;this.Dja={};this.Eja={};this.$r(["blendingActive","globalBlendingActive"]); this.fXa();this.set("alpha",1);this.set("translationX",0);this.set("translationY",0);this.set("translationZ",0);this.set("deltaYaw",0);this.set("deltaPitch",0);this.set("deltaRoll",0);this.set("flipHorizontally",!1);this.set("index",0)});a.prototype.fXa=function(){var g="alpha deltaYaw deltaPitch deltaRoll translationX translationY translationZ".split(" ");Array.isArray(g)||(g=[g]);g.forEach(function(k){this.Dja[k]=!0}.bind(this))};a.prototype.$r=function(g){Array.isArray(g)||(g=[g]);g.forEach(function(k){this.Eja[k]= !0}.bind(this))};a.prototype.set=function(g,k){this.wma[g]!==k&&(this.Eja[g]&&this.qe.forEach(function(e){e.set(g,k)}),this.NXa(g,k),this.cV(g))};a.prototype.get=function(g){return this.wma[g]};a.prototype.cV=function(g){this.Uu[g]||(this.Uu[g]=!0,this.wS||(this.wS=!0,this.Na()),this.Dja[g]&&this.qe.forEach(function(k){k.cV(g)}))};a.prototype.tZa=function(){this.wS&&(this.wS=!1,this.Uu={})};a.prototype.W=function(){if(this.wS)for(var g=0;g=g.HAVE_CURRENT_DATA&&g.videoWidth>0&&g.videoHeight>0|| (g=this.uJ()):g=this.uJ();return g},Sdb:function(g,k,e,b,c){var d=document.createElement("canvas");d.width=h.Ix();d.height=h.Ix();d.cla=!0;var f=d.getContext("2d");if(!f)return null;f.drawImage(g,k,e,b,c,0,0,h.Ix(),h.Ix());this.x7(d);return d},Hna:function(g){h.ohb(g)&&g.cla&&(delete g.cla,g.width=0,g.height=0)},dispose:function(g){g.rs&&g.rs!=g.image&&this.Hna(g.rs);g.image&&this.Hna(g.image);g.dispose()},KRa:function(g,k){g.userData.NSa.material=k},ULa:function(g){return g.userData.NSa.material}, Lpb:function(g){return h.hpa(g)},decode:function(g){h.ipa(g)&&(g=m.yg(g,!1));h.hpa(g)&&this.x7(g)},x7:function(g){var k=document.createElement("canvas");k.width=1;k.height=1;var e=k.getContext("2d");n.x7=function(b){e.drawImage(b,0,0,1,1,0,0,1,1)};return n.x7(g)},yea:null,uJ:function(){if(!this.yea){var g=document.createElement("canvas");g.width=128;g.height=128;g.P3a=!0;g.getContext("2d").clearRect(0,0,g.width,g.height);this.yea=g}return this.yea},Bab:function(g,k){g.rs||(g.rs=document.createElement("canvas"), g.z3a=g.rs.getContext("2d"),g.rs.cla=!0);var e=k.videoWidth;h.gr()&&(e=Math.min(4096,e));var b=e*k.videoHeight/k.videoWidth;if(g.rs.width!=e||g.rs.height!=b)g.rs.width=e,g.rs.height=b;k.readyState>=k.HAVE_CURRENT_DATA&&g.z3a.drawImage(k,0,0,e,b);return g.rs}};return n}); define("tdv/player/view/panorama/renderer/3d/util/MaterialUtil",["require","tdv/player/view/panorama/renderer/3d/util/Util","tdv/player/view/panorama/renderer/3d/util/TextureUtil","tdv/player/view/util/Device"],function(a){function m(e){this.DZ=(e=h.uP(e))&&h.zMa();this.NX=e&&h.yMa();this.QD=0;this.dw=void 0;this.KW=this.LW=0;this.premultipliedAlpha=!1;this.side=void 0;this.params={}}var h=a("tdv/player/view/panorama/renderer/3d/util/Util"),n=a("tdv/player/view/panorama/renderer/3d/util/TextureUtil"); a=a("tdv/player/view/util/Device");var g=a.Tb()==a.nx||a.Tb()==a.Yj||a.Tb()==a.Ji,k={Coa:function(e){return e.map||e.uniforms&&e.uniforms.textureSampler2D&&e.uniforms.textureSampler2D.value},st:function(e,b){e||(e=n.createTexture());b||(b=new k.Rp);e=b.DZ||b.NX||b.QD||b.dw||b.premultipliedAlpha||e.isVideoTexture&&g?this.Mdb(e,b):this.vna(e);b.side&&(e.side=b.side);for(var c in b.params)e[c]=b.params[c];return e},ocb:function(e,b){e.isShaderMaterial?e.uniforms.textureSampler2D.value=b:e.map=b;e.needsUpdate= !0},vna:function(e){var b=new THREE.MeshBasicMaterial;b.map=e;this.qG(b);return b},Mdb:function(e,b){var c={uniforms:{},transparent:!0};c.uniforms.textureSampler2D={type:"sampler2D",value:e};e.flipY=!b.DZ;c.vertexShader=["varying vec2 vUV;\nvoid main() {","\tvUV = vec2( uv.x, "+(b.DZ?"1.0 - uv.y":"uv.y")+");","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}"].join("\n");if(b.NX||b.QD||b.dw||b.premultipliedAlpha){var d=[],f=[];d=d.concat(["uniform sampler2D textureSampler2D;", "uniform float opacity;","varying vec2 vUV;"]);c.uniforms.opacity={type:"float",value:1};f=f.concat([" vec4 color = texture2D(textureSampler2D, vUV);"," float alpha = color.a * opacity;"]);b.premultipliedAlpha&&(f=f.concat([" if ((color.a > 0.0) && (color.a < 1.0))"," color.rgb /= color.a;","\tcolor = vec4( mix( pow( color.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), color.rgb * 0.0773993808, vec3( lessThanEqual( color.rgb, vec3( 0.04045 ) ) ) ), color.a );"]));if(b.QD){var l= e.image.width||e.image.videoWidth,p=e.image.height||e.image.videoHeight,q=Math.min(l,p)*.5*b.QD;c.uniforms.blendingLimit={type:"v2",value:new THREE.Vector2(q/l,q/p)};d=d.concat(["uniform vec2 blendingLimit;"]);f=f.concat(" float xCoef = 0.0;, float yCoef = 0.0;, if (vUV.x < blendingLimit.x) {, xCoef = 1.0 - (vUV.x / blendingLimit.x);, xCoef = xCoef * xCoef;, } else if ((1.0 - vUV.x) < blendingLimit.x) {, xCoef = 1.0 - ((1.0 - vUV.x) / blendingLimit.x);, xCoef = xCoef * xCoef;, }, if (vUV.y < blendingLimit.y) {, yCoef = 1.0 - (vUV.y / blendingLimit.y);, yCoef = yCoef * yCoef;, } else if ((1.0 - vUV.y) < blendingLimit.y) {, yCoef = 1.0 - ((1.0 - vUV.y) / blendingLimit.y);, yCoef = yCoef * yCoef;, }, alpha = alpha * (1.0 - sqrt(xCoef + yCoef));".split(","))}b.dw&& (c.uniforms.chromaColor={type:"v3",value:new THREE.Vector3(parseInt(b.dw.substr(1,2),16)/255,parseInt(b.dw.substr(3,2),16)/255,parseInt(b.dw.substr(5,2),16)/255)},c.uniforms.chromaThreshold={type:"f",value:b.LW},c.uniforms.chromaSmoothing={type:"f",value:b.KW},d=d.concat(["uniform vec3 chromaColor;","uniform float chromaThreshold;","uniform float chromaSmoothing;"]),f=f.concat(" float maskY = 0.2989 * chromaColor.r + 0.5866 * chromaColor.g + 0.1145 * chromaColor.b;{ float maskCr = 0.7132 * (chromaColor.r - maskY);{ float maskCb = 0.5647 * (chromaColor.b - maskY);{ float Y = 0.2989 * color.r + 0.5866 * color.g + 0.1145 * color.b;{ float Cr = 0.7132 * (color.r - Y);{ float Cb = 0.5647 * (color.b - Y);{ float chromaBlendValue = smoothstep(chromaThreshold, chromaThreshold + chromaSmoothing, distance(vec2(Cr, Cb), vec2(maskCr, maskCb)));{ alpha = alpha * chromaBlendValue;".split("{"))); f=f.concat([" gl_FragColor = vec4(color"+(b.NX?".bgr":".rgb")+", alpha);"]);e.format=THREE.RGBAFormat;c.fragmentShader=[].concat(d,["void main() {"],f,e.isVideoTexture?[]:["#include ","#include "],["}"]).join("\n")}else c.fragmentShader=[].concat(["uniform sampler2D textureSampler2D;","varying vec2 vUV;","void main() {","\tgl_FragColor = texture2D(textureSampler2D, vUV);"],e.isVideoTexture?[]:["#include ","#include "], ["}"]).join("\n");e=new THREE.ShaderMaterial(c);this.qG(e);return e},dispose:function(e){Array.isArray(e)||(e=[e]);e.forEach(function(b){var c=k.Coa(b);c&&n.dispose(c);b.dispose()})},qG:function(e){e.side=THREE.FrontSide;e.transparent=!0;e.depthTest=!1;e.needsUpdate=!0;e.userData={};e.userData.GNa={};n.KRa(k.Coa(e),e)},rra:function(e,b){e.userData.GNa.Ke=b},vLa:function(e){return e.userData.GNa.Ke}};m.prototype.isEqual=function(e){return this.DZ===e.DZ&&this.NX===e.NX&&this.QD===e.QD&&this.dw===e.dw&& this.LW===e.LW&&this.KW===e.KW&&this.premultipliedAlpha===e.premultipliedAlpha&&this.side===e.side};k.Rp=m;return k}); define("tdv/player/view/panorama/renderer/3d/util/MeshUtil",["require","tdv/player/view/panorama/renderer/3d/util/GeometryUtil","tdv/player/view/panorama/renderer/3d/util/MaterialUtil"],function(a){function m(k){return Array.isArray(k)?k:k?[k]:[]}var h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"),g={create:function(k,e){var b=new THREE.Mesh(k,e);b.overdraw=!1;b.matrixAutoUpdate=!1;b.userData.IA={};b.userData.IA.attributes= {};m(e).forEach(function(c){n.rra(c,b)});return b},LJa:function(k){var e=new THREE.Group;g.forEach(k,function(b){e.add(b)});return e},dlb:function(k,e){m(e).forEach(function(b){n.rra(b,null)});n.dispose(k.material);k.material=e;m(e).forEach(function(b){n.rra(b,k)})},bE:function(k){return m(k.material)},Ifb:function(k,e){if(k.layers.mask&e.layers.mask){var b=g.bE(k);return h.Gfb(k.geometry,e,k.matrixWorld).map(function(c){return b[c]})}return[]},jra:function(k,e){k.geometry=e},Afb:function(k,e){var b= [];g.pl(k,function(c){var d=g.bE(c);e.forEach(function(f){var l=h.zfb(c.geometry,c.matrixWorld,f);if(l){f=n.Coa(d[l.materialIndex]).image;var p=Math.round(l.gTa*f.width-.5);p=p<0?0:p>f.width-1?f.width-1:p;l=Math.round((1-l.HTa)*f.height-.5);l=l<0?0:l>f.height-1?f.height-1:l;b.push({x:p,y:l,source:f})}})});return b},Yw:function(k,e){g.forEach(k,function(b){e?e.add(b):b.parent&&b.parent.remove(b)})},qF:"panoramaId",NK:"panoramaFrameId",Eaa:"panoramaOverlayId",Daa:"levelIndex",setAttribute:function(k, e,b){g.pl(k,function(c){c.userData.IA.attributes[e]=b})},getAttribute:function(k,e){return k.userData.IA.attributes[e]},zKa:function(k,e,b){for(var c=[],d=0,f=k.length;d 0&&h.userData.cameras[0]||null}}}); define("tdv/player/view/panorama/renderer/OcclusionCuller","require tdv/utils tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/3d/util/SceneUtil".split(" "),function(a){function m(l,p){return l.reduce(function(q,r){return q?!0:!!(p.layers.mask&r.layers.mask)},!1)}function h(l){l=k(l).loaded;return l===void 0?!1:l}function n(l){l=k(l).active;return l===void 0?!0:l}function g(l){l=k(l).blending;return l===void 0? !1:l}function k(l){return l.userData.iib||(l.userData.iib={})}var e=a("tdv/utils"),b=a("tdv/constants/EventName"),c=a("tdv/events/EventDispatcher"),d=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),f=a("tdv/player/view/panorama/renderer/3d/util/SceneUtil");a=e.extend(c,function(){c.call(this);this.I=void 0;this.Jha=!1});a.prototype.update=function(l){var p=l.Va&&this.I&&!this.I.Va;this.I=l.clone();this.Jha||(p?this.c3a():this.Hab())};a.prototype.Hab=function(){var l=!1,p=f.koa(this.I.sh), q=f.tm(this.I.sh);d.q7(q,d.NK,void 0).forEach(function(w){var x=m(p,w)&&d.ioa(w)>0&&n(w);w.visible!=x&&(w.visible=x,l=!0)});q=d.zKa(q,d.NK,void 0);q=d.gMa(q,d.qF);for(var r in q){var t=q[r],u=p.map(function(){return!1});t.sort(function(w,x){return d.aMa(x)-d.aMa(w)});var v=t.some(g);t.forEach(function(w){var x=m(p,w)&&d.ioa(w)>0&&n(w)&&(!v||h(w));if(x){x=!0;for(var y=v||h(w)&&d.ioa(w)>.999,z=0;z=1)return 2;if(q.Dc()==q.ox||q.Dc()==q.su||q.TX())return 1.5}else return 1.5;return 1}();r.prototype.hab=function(){var w= this.I.Jk>0?1E3:this.I.Rj/Math.tan(Math.min(this.I.lj*.5,89.99)*t);w*=u;var x=p.koa(this.I.sh),y=p.tm(this.I.sh).filter(m),z=y.filter(g);var A=l.zKa(z,l.NK,void 0);A=l.gMa(A,l.NK);A.none=l.q7(z,l.NK,void 0);z=[];for(var D in A)for(var F=A[D],C=0,B=F.length;CR?(O=H,R=L):L>=w&&L.75*w?z.push(O):z.push(Q):(Q&&z.indexOf(Q)<0&&z.push(Q),O&&z.indexOf(O)<0&&z.push(O))}}w=[];for(x=0;x=0);return w};r.prototype.HD= function(){this.Vv=null;for(var w=[],x=[],y=[],z=(new Date).getTime()-v,A=p.koa(this.I.sh),D=p.tm(this.I.sh),F=0,C=D.length;F=0){if(this.I.Jk>0||(h(B).Cpa||r.Pba)==r.Or)G=E;else for(var N=0,O=A.length;NQ)for(this.RC.sort(function(U,T){return h(U).mNa-h(T).mNa}),F=this.RC.splice(0, this.RC.length-Q),Q=0,K=F.length;Q0&&x.push(B);y=Number.POSITIVE_INFINITY;F=0;for(C=x.length;F=0&&y.splice(z,1);this.RC.push(x);this.vka(x,!0);w=w.Ke();h(w).Rt.indexOf(x)>=0&&this.hda(w,h(w).aB);this.ZGa()};r.prototype.hda=function(w,x){var y=h(w).aB;y=y?y.length:void 0;var z=h(w).Rt;z=z?z.length:void 0;h(w).aB=x;h(w).Rt=x.filter(k);d.dZ(w,h(w).Rt.length==0&&(h(w).Cpa||r.Pba)==r.Or);x=(x=h(w).aB)?x.length:void 0;var A=h(w).Rt;A=A?A.length:void 0;z===A&&y===x||w.dispatchEvent({type:b.xc,percent:x?100-100*A/x:100});z!==A&&A===0&&w.dispatchEvent({type:b.ia})};r.prototype.vka= function(w,x){if(x!=w.visible){var y=f.vLa(w),z=l.getAttribute(y,l.qF),A=l.getAttribute(y,l.Daa);if(z===void 0||A===void 0)w.visible=x;else{var D=p.tm(this.I.sh).filter(m);z=l.q7(D,l.qF,z);A=l.q7(z,l.Daa,A);var F=l.bE(y).indexOf(w);w=A.map(function(C){return l.bE(C)[F]});for(y=0;y=0};a.prototype.remove=function(h){var n=this.ts.indexOf(h);n<0||(this.ts.splice(n,1),typeof h==="object"&&h!==null?(n=h[this.hT],delete h[this.hT]):n=h,delete this.f2[n],this.length=this.ts.length)};a.prototype.forEach=function(h){this.ts.slice().forEach(function(n){h(n,this.get(n))}.bind(this))};a.prototype.dispose=function(){for(;this.ts.length;)this.remove(this.ts.pop());this.ts=this.f2=null};return a}); define("tdv/player/view/panorama/renderer/object/util/EventAggregator",["require","tdv/utils","tdv/events/EventDispatcher","tdv/util/Map"],function(a){function m(){this.pJ=[]}var h=a("tdv/utils"),n=a("tdv/events/EventDispatcher"),g=a("tdv/util/Map");a=h.extend(n,function(k){n.call(this);this.ag=k;this.zd=[];this.Ny=new g;this.pW=[];this.Xea=[];this.WM=this.WM.bind(this)});a.prototype.jg=function(k){this.zd.forEach(function(e){if(e.removeEventListener)e.removeEventListener(this.ag,this.WM);else if(e.h)e.h(this.ag, this.WM,this,!0);else throw"invalid instance type";}.bind(this));this.zd=k.slice();this.zd.forEach(function(e){if(e.addEventListener)e.addEventListener(this.ag,this.WM);else if(e.bind)e.bind(this.ag,this.WM,this,!0);else throw"invalid instance type";this.Ny.Fgb(e)||this.Ny.set(e,new m)}.bind(this));this.Kla()};a.prototype.dispose=function(){this.jg([]);this.zd=null;this.Ny.dispose();this.Xea=this.pW=this.Ny=null};a.prototype.ko=function(k){this.pW.push(k);this.Kla();return this};a.prototype.mr=function(k){this.Xea.push(k); return this};a.prototype.lw=function(k){this.zd.forEach(function(e){k(e,this.Ny.get(e).pJ)}.bind(this))};a.prototype.Nn=function(k){k=this.Ny.get(k).pJ;return k.length==0?null:k[k.length-1]};a.prototype.WM=function(k){var e=k.target||k.source;if(e=this.Ny&&this.Ny.get(e))e.pJ.push(k),this.Xea.forEach(function(b){b(k,this)}.bind(this)),this.Kla()};a.prototype.Kla=function(){if(this.zd.length!=0){for(var k=0;k=0&&q.splice(x,1);c.KZ(this.texture,null)};return v}); define("tdv/player/view/panorama/renderer/object/texturesource/TextureSource","require tdv/utils tdv/constants/EventName tdv/constants/Priority tdv/events/EventDispatcher tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/TextureUtil tdv/player/view/util/Device".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/Priority"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"), e=a("tdv/player/view/panorama/renderer/3d/util/TextureUtil"),b=a("tdv/player/view/util/Device"),c=m.extend(g,function(){g.call(this);this.Qf=void 0;this.Ma=e.createTexture();this.Ma.colorSpace=THREE.SRGBColorSpace;this.bha=this.Fga=this.iga=!1;this.I=c.ZQ;this.eT=n.Jm;this.j=null});c.prototype.type=function(){return this.Qf};c.prototype.texture=function(){return this.Ma};c.prototype.material=function(){return this.Ma&&e.ULa(this.Ma)};c.prototype.Ke=function(){var d=this.Ma&&e.ULa(this.Ma);return d&& k.vLa(d)};c.prototype.alb=function(d){this.eT=d};c.prototype.Kkb=function(d){this.iga!==d&&(this.iga=d,this.LGa())};c.prototype.aZ=function(d){this.bha!==d&&(this.bha=d,this.TGa())};c.prototype.ora=function(d){this.Fga!==d&&(this.Fga=d,this.TGa())};c.prototype.TGa=function(){var d=this.bha&&!this.Fga;!!this.Ma.isVideoTexture!==d&&(this.Ma.isVideoTexture=d,this.iQa(),this.LGa())};c.prototype.LGa=function(){this.iga?this.Ma.colorSpace=THREE.LinearSRGBColorSpace:!this.Ma.isVideoTexture||b.Tb()!=b.nx&& b.Tb()!=b.Yj&&b.Tb()!=b.Ji?this.Ma.colorSpace=THREE.SRGBColorSpace:this.Ma.colorSpace=THREE.LinearSRGBColorSpace};c.prototype.load=function(d){this.I===c.ZQ&&(this.j=d,this.I=c.C_,this.pda())};c.prototype.Mcb=function(){this.loading()&&(this.I==c.C_?this.A5():this.EV(),this.I=c.ZQ)};c.prototype.hTa=function(){this.I!=c.ZQ&&(this.I==c.C_?this.A5():this.I==c.gca?this.EV():this.$V(),this.I=c.ZQ)};c.prototype.iQa=function(){if(this.Ma){var d=this.material(),f=e.createTexture();f.flipY=this.Ma.flipY;f.format= this.Ma.format;f.colorSpace=this.Ma.colorSpace;this.Ma.isVideoTexture&&(f.isVideoTexture=!0,f.update=function(){});e.dispose(this.Ma);d&&e.KRa(f,d);d&&k.ocb(d,f);this.Ma=f;this.Iia()}};c.prototype.Iia=function(){};c.prototype.pda=function(){};c.prototype.A5=function(){};c.prototype.oda=function(){};c.prototype.EV=function(){};c.prototype.$V=function(){e.Zcb(this.texture)};c.prototype.loading=function(){return this.I==c.C_||this.I==c.gca};c.prototype.wpa=function(){return this.I==c.fca||this.I==c.Cua}; c.prototype.dispose=function(){e.dispose(this.Ma);this.Ma=null};c.prototype.YM=function(d){this.I=d?c.gca:c.Cua;d?this.oda():this.o(h.$c)};c.prototype.YAa=function(){this.I=c.fca;this.o(h.ia)};c.ZQ="initial";c.C_="loading";c.gca="adding";c.Cua="error loading";c.fca="added";c.pWa="custom";c.qWa="image tile";c.fpb="image animation";c.gpb="video 360";return c}); define("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource","require tdv/utils tdv/constants/EventName tdv/player/view/image/Item tdv/player/view/image/Repository tdv/player/view/panorama/renderer/object/texturesource/TextureQueue tdv/player/view/panorama/renderer/object/texturesource/TextureSource".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/image/Item"),g=a("tdv/player/view/image/Repository"),k=a("tdv/player/view/panorama/renderer/object/texturesource/TextureQueue"), e=a("tdv/player/view/panorama/renderer/object/texturesource/TextureSource");a=m.extend(e,function(b){e.call(this);this.Qf=e.pWa;this.Se=b;this.Se||(this.I=e.fca);this.gj=this.de=null;this.AI=this.BI=void 0});a.prototype.bo=function(b){this.gj=b;k.add(this.j,this.Ma,this.gj,function(){var c=this.Ma&&this.Ma.image&&this.Ma.image.width||void 0,d=this.Ma&&this.Ma.image&&this.Ma.image.height||void 0;this.BI===void 0||this.AI===void 0||this.BI===c&&this.AI===d||this.iQa();this.BI=c;this.AI=d}.bind(this))}; a.prototype.yg=function(){return g.yg(this.Se)};a.prototype.update=function(b){b?k.add(this.j,this.Ma,this.gj):k.Sma(this.j,this.Ma,this.gj)};a.prototype.pda=function(){this.Se?this.MR():this.YM(!0)};a.prototype.A5=function(){this.ks()};a.prototype.oda=function(){this.YAa()};a.prototype.$V=function(){this.ks()};a.prototype.dispose=function(){this.ks();e.prototype.dispose.call(this)};a.prototype.Pe=function(){this.YM(!0)};a.prototype.yh=function(){this.YM(!1)};a.prototype.Iia=function(){this.gj&&k.Sma(this.j, this.Ma,this.gj)};a.prototype.MR=function(){this.de||(this.de=new n,this.de.iQ([this.Se]),this.de.bind(h.ia,this.Pe,this,!0),this.de.bind(h.$c,this.yh,this,!0),g.FA(this.de,this.eT))};a.prototype.ks=function(){this.de&&(this.de.h(h.ia,this.Pe,this,!0),this.de.h(h.$c,this.yh,this,!0),g.ho(this.de,this.eT),this.de=null)};return a}); define("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource","require tdv/utils tdv/constants/EventName tdv/player/view/image/Item tdv/player/view/image/Repository tdv/player/view/panorama/renderer/object/texturesource/TextureQueue tdv/player/view/panorama/renderer/object/texturesource/TextureSource".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/image/Item"),g=a("tdv/player/view/image/Repository"),k=a("tdv/player/view/panorama/renderer/object/texturesource/TextureQueue"), e=a("tdv/player/view/panorama/renderer/object/texturesource/TextureSource");a=m.extend(e,function(b){e.call(this);this.Qf=e.qWa;this.Se=b;this.gj=this.vN=this.de=null});a.prototype.yg=function(){return this.gj};a.prototype.pda=function(){this.MR()};a.prototype.A5=function(){this.ks()};a.prototype.oda=function(){this.E_a()};a.prototype.EV=function(){this.ks();this.Hea()};a.prototype.$V=function(){this.ks();this.Hea()};a.prototype.dispose=function(){this.ks();this.Hea();e.prototype.dispose.call(this)}; a.prototype.Pe=function(){this.gj=g.yg(this.Se);this.YM(!0)};a.prototype.yh=function(){this.YM(!1)};a.prototype.ZAa=function(){this.YAa()};a.prototype.Iia=function(){this.gj&&k.Sma(this.j,this.Ma,this.gj)};a.prototype.MR=function(){this.de||(this.de=new n,this.de.iQ([this.Se]),this.de.bind(h.ia,this.Pe,this,!0),this.de.bind(h.$c,this.yh,this,!0),g.FA(this.de,this.eT))};a.prototype.ks=function(){this.de&&(this.de.h(h.ia,this.Pe,this,!0),this.de.h(h.$c,this.yh,this,!0),g.ho(this.de,this.eT),this.de= null)};a.prototype.E_a=function(){this.vN=k.add(this.j,this.Ma,this.gj);this.vN.bind(h.ia,this.ZAa,this,!0)};a.prototype.Hea=function(){this.vN&&(this.vN.h(h.ia,this.ZAa,this,!0),this.vN.remove(),this.vN=null)};return a}); define("tdv/player/view/panorama/renderer/object/texturesource/ImageTileTextureSource",["require","tdv/utils","tdv/player/view/image/Repository","tdv/player/view/panorama/renderer/3d/util/TextureUtil","tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/image/Repository"),n=a("tdv/player/view/panorama/renderer/3d/util/TextureUtil"),g=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource");a=m.extend(g, function(k,e,b,c,d){g.call(this,k.get("url"));this.ec=e;this.fc=b;this.Pa=c;this.Ha=d;this.a4a=this.ec!=0||this.fc!=0||this.Pa!=k.get("width")||this.Ha!=k.get("height")});a.prototype.Pe=function(){this.a4a?(this.K_a(),this.ks(),this.YM(!!this.gj)):g.prototype.Pe.call(this)};a.prototype.EV=function(){g.prototype.EV.call(this);this.Iea()};a.prototype.$V=function(){g.prototype.$V.call(this);this.Iea()};g.prototype.dispose=function(){g.prototype.dispose.call(this);this.Iea()};a.prototype.K_a=function(){var k= h.yg(this.Se);this.gj=n.Sdb(k,this.ec,this.fc,this.Pa,this.Ha)};a.prototype.Iea=function(){this.gj&&(n.Hna(this.gj),this.gj=null)};return a}); define("tdv/player/view/panorama/renderer/object/util/MeshFactory","require tdv/player/parser/ClassInfo tdv/player/view/panorama/renderer/constants/EyeLayer tdv/player/view/panorama/renderer/constants/Face tdv/player/view/panorama/renderer/3d/util/Util tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource tdv/player/view/panorama/renderer/object/texturesource/ImageTileTextureSource tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/util/PanoramaFormat tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/Device".split(" "),function(a){var m= a("tdv/player/parser/ClassInfo"),h=a("tdv/player/view/panorama/renderer/constants/EyeLayer"),n=a("tdv/player/view/panorama/renderer/constants/Face"),g=a("tdv/player/view/panorama/renderer/3d/util/Util"),k=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),e=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource"),b=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTileTextureSource"),c=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"), d=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"),f=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),l=a("tdv/player/view/panorama/renderer/object/util/PanoramaFormat"),p=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),q=a("tdv/player/view/panorama/renderer/TextureLoader"),r=a("tdv/player/view/util/Device"),t={Ddb:function(u,v){var w=l.get(u);switch(w){case l.VB:case l.Ax:case l.Km:return this.o_a(w,u,v);case l.Pr:case l.Yr:case l.Hu:return this.q_a(w,u,v)}},Vdb:function(u, v){var w=new e(v.get("posterURL"));w.aZ(!0);return this.nxa(u,v,w)},Udb:function(u,v){var w=new k;w.aZ(!0);return this.nxa(u,v,w)},nxa:function(u,v,w){var x=u.get("hfov"),y=u.get("vfov"),z=u.get("pitch"),A=v.get("width");v=v.get("url");u=l.get(u);var D=u==l.Hu?2:1,F=u==l.Yr?2:1;u=D+F>2?[h.fb,h.Db]:[h.mx];var C=Math.round(A/D);A=new d.Rp(v);var B=d.st(w.texture(),A);q.hQ(B,w);B.visible=!0;return u.map(function(H,E){E=c.QJa(x,y,z,1,1,E%D/D,(F-1-Math.floor(E/D))/F,1/D,1/F);E=f.create(E,[B]);E.layers.set(H); q.A$(E,C/x);return E}.bind(this))},Ndb:function(u){var v=[n.Db,n.fb,n.Tc,n.Hc,n.FRONT,n.BACK].map(function(){var x=new k;x.bo(t.H2a(u));var y=d.st(x.texture());q.hQ(y,x);y.visible=!0;return y}),w=c.PJa(1,1);v=f.create(w,v);q.A$(v,256/90);v.layers.set(h.mx);return v},Kka:{},H2a:function(u){if(!t.Kka[u]){var v=document.createElement("canvas");v.width=v.height=256;var w=v.getContext("2d");w.fillStyle=u;w.fillRect(0,0,v.width,v.height);t.Kka[u]=v}return t.Kka[u]},o_a:function(u,v,w){var x=u==l.VB?[h.Db, h.fb]:[h.mx],y=v.get("flipImageHorizontally");y&&(x=x.reverse());var z=u==l.Km?1:6*x.length,A=w.get("width")/z,D=w.get("height");if(m.Oa("TiledImageResourceLevel",w)){var F=w.get("colCount",z)/z;var C=w.get("rowCount",1)}else this.fEa(u,w)?(F=Math.ceil(A/g.Ix()),C=Math.ceil(D/g.Ix())):C=F=1;var B=[n.Db,n.fb,n.Tc,n.Hc,n.FRONT,n.BACK];return x.map(function(H,E){var G=Array(6);B.forEach(function(R,Q){var K=p.poa(v,w,R);m.Oa("TiledImageResourceLevel",w)?G[c.Fua.indexOf(R)]=this.k_a(K,u,H,R,y,F,C):G[c.Fua.indexOf(R)]= this.hxa(K,F,C,u==l.Km?0:Math.round((E*B.length+Q)*A),0,A,D,F>1||C>1||u!=l.Km?A>256?1:.5:0)}.bind(this));var N=Array.prototype.concat.apply([],G),O=c.PJa(F,C);N=f.create(O,N);N.layers.set(H);q.A$(N,A/90);return N}.bind(this))},q_a:function(u,v,w){var x=u==l.Pr?[h.mx]:[h.fb,h.Db];v.get("flipImageHorizontally")&&(x=x.reverse());var y=w.get("width"),z=w.get("height"),A=v.get("hfov"),D=v.get("vfov"),F=v.get("pitch"),C=Math.round(y/A/(z/D)),B=Math.round(y/C),H=Math.round(z/Math.round(z/D/(y/A))),E=(u= this.fEa(u,w))?Math.ceil(B/g.Ix()):1,G=u?Math.ceil(H/g.Ix()):1;return x.map(function(N,O){O=this.hxa(w,E,G,O%C*B,Math.floor(O/C)*H,B,H);var R=c.QJa(A,D,F,E,G,0,0,1,1);O=f.create(R,O);O.layers.set(N);q.A$(O,B/A);return O}.bind(this))},fEa:function(u,v){switch(u){case l.VB:case l.Ax:case l.Yr:case l.Hu:return!0;case l.Km:return!1;case l.Pr:return r.ogb().maxTextureSize.01?this.H.Caa:1;this.la=new n("cubic_in_out",[new g("hfov",e,b,void 0)],c)}this.la.Nb(k);this.Uc.sr(this.la.ob("hfov"));this.la.Ve()&&(this.Uc.cZ(!0),this.Sb=!0)}};return a}); define("tdv/player/view/panorama/control/transition/steps/MoveToInitialPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){function m(e,b,c){for(;ec;)e-=c-b;return e}var h=a("tdv/utils"),n=a("tdv/player/view/panorama/control/transition/steps/Step"),g=a("tdv/view/util/Ease"),k=a("tdv/view/util/EaseDimension");a=h.extend(n,function(e,b,c,d){n.call(this,e,b,c,d);this.la=null;this.Sb= !1;this.X2=0});a.prototype.mh=function(){return this.Sb};a.prototype.Yg=function(e){this.Sb||(this.la||(this.la=this.X2this.H.br.length&&(this.Uc.cZ(!0),this.Sb=!0)))};a.prototype.f_a=function(){var e=m(this.j.Kc(),-180,180),b=this.j.Jc();this.j.zg();var c=this.j.jf(), d=this.j.I.Jk,f=this.H.Eh.get("hfov");f={Xa:this.H.Eh.get("yaw"),pitch:this.H.Eh.get("pitch",b),Mg:this.j.zg(),Wd:f?this.Uc.kJ(f):c,Jk:0};this.Uc.dkb(this.H.Sc,f);f.Xa=m(f.Xa,e-180,e+180);var l=Math.abs(c-f.Wd)>.5,p=Math.abs(d-f.Jk),q=p>.01;l=this.H.Va()?1:Math.max(l?this.H.Caa:1,q?this.H.iPa*p:1);return new g(q?"linear":"cubic_in_out",[new k("yaw",e,f.Xa,void 0),new k("pitch",b,f.pitch,void 0),new k("hfov",c,f.Wd,void 0),new k("stereographicFactor",d,f.Jk,void 0)],l)};a.prototype.A_a=function(e){var b= this.H.br[e],c=m(this.j.Kc(),-180,180),d=this.j.Jc();this.j.zg();var f=this.j.jf(),l=this.j.I.Jk,p=b.get("targetStereographicFactor",l),q=b.get("targetHfov");if(q)q=this.Uc.kJ(q);else{for(q=!1;e=c?m(e,c,c+360):m(e,c-360,c);break;default:e=m(e,c-180,c+180)}return new g(b.get("easing"),[new k("yaw",c,e,b.get("yawSpeed")),new k("pitch",d,r,b.get("pitchSpeed")),new k("hfov",f,q,b.get("hfovSpeed")),new k("stereographicFactor",l,p,b.get("stereographicFactorSpeed"))],b.get("duration"))};return a}); define("tdv/player/view/panorama/control/transition/steps/MoveToOriginPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/view/util/Ease"),g=a("tdv/view/util/EaseDimension");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.la=null;this.Sb=!1});a.prototype.mh=function(){return this.Sb};a.prototype.Yg= function(k){if(!this.Sb){if(!this.la){var e=this.j.Jc(),b=this.j.jf(),c=this.j.I.Jk,d=this.H.fg.get("stereographicFactor",0),f=Math.abs(c-d),l=d>0?this.H.fg.get("pitch",e):e,p=this.H.fg.get("hfov");p=p?this.Uc.kJ(p):b;d==0&&(p=Math.min(b,this.Uc.g$(this.H.Sc,p)));this.Uc.cZ(!1);f=this.H.Va()?1:Math.max(Math.abs(b-p)>.5?this.H.Caa:1,f>.01?this.H.iPa:1);this.la=new n("cubic_in_out",[new g("hfov",b,p,void 0),new g("pitch",e,l,void 0),new g("stereographicFactor",c,d,void 0)],f)}this.la.Nb(k);this.Uc.sr(this.la.ob("hfov")); this.Uc.uK(this.la.ob("stereographicFactor"));this.Uc.yra(this.j.Kc(),this.la.ob("pitch"));this.la.Ve()&&(this.Uc.Wf(this.H.Sc,this.H.fg.get("yaw"),this.H.fg.get("pitch",this.j.Jc())),this.Sb=!0)}};return a}); define("tdv/player/view/panorama/control/transition/steps/MoveToTranslationPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/view/util/Ease"),g=a("tdv/view/util/EaseDimension");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.la=null;this.Sb=!1});a.prototype.mh=function(){return this.Sb};a.prototype.Yg= function(k){if(!this.Sb){if(!this.la){var e=this.j.jf(),b=Math.min(this.Uc.g$(this.H.Sc,e),e),c=!this.H.Va()&&Math.abs(e-b)>.01?this.H.Caa:1;this.la=new n("cubic_in_out",[new g("hfov",e,b,void 0)],c);this.Uc.cZ(!1)}this.la.Nb(k);this.Uc.sr(this.la.ob("hfov"));this.la.Ve()&&(this.Uc.Wf(this.H.Sc,this.j.Kc()+this.H.tQ.eLa(),this.j.Jc()),this.Sb=!0)}};return a}); define("tdv/player/view/panorama/control/transition/steps/Remove",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=this.j.Jf(this.H.qh);this.j.remove(n)};return a}); define("tdv/player/view/panorama/control/transition/steps/RemoveProjectedPanoramasFromModel",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=(this.H.nc||this.H.Gc).get("model");n.set("objects",n.get("objects").filter(function(g){return g!=this.H.Be}.bind(this))); [this.H.Be.get("sourceCubeTexture"),this.H.Be.get("targetCubeTexture")].forEach(function(g){g&&g.dispose()});this.H.Be=null};return a}); define("tdv/player/view/panorama/control/transition/steps/ReleaseViewerArea",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.j.P.release(this.j)};return a}); define("tdv/player/view/panorama/control/transition/steps/RequestViewerArea",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=[this.j.ld];this.f4a()&&n.push(this.H.Zh);this.j.ld.hK(n)};a.prototype.f4a=function(){return this.H.Gc?!0:this.j.ld.get("keepModel3DLoadedWithoutLocation")&& this.H.qh&&this.H.Zh&&this.H.Zh.get("model")?!0:!1};return a}); define("tdv/player/view/panorama/control/transition/steps/RestoreModelPosition",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){return function(n){function g(k,e,b,c){return n.call(this,k,e,b,c)||this}P(g,n);g.prototype.Ch=function(){var k,e,b;(b=(e=(k=this.H.Zh)===null||k===void 0?void 0:k.get("model"))===null||e===void 0?void 0:e.get("camera"))===null||b===void 0||b.Zjb()};return g}(h)}); define("tdv/player/view/panorama/control/transition/steps/SetInitialPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.Uc.Wf(this.H.Sc,this.H.Eh.get("yaw"),this.H.Eh.get("pitch",this.j.Jc()));var n=this.H.Eh.get("hfov");n&&(n=this.Uc.kJ(n),this.Uc.sr(n))}; return a}); define("tdv/player/view/panorama/control/transition/steps/SetInitialPositionFromModel",["require","tdv/utils","tdv/player/view/util/geo/Fov","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils");a("tdv/player/view/util/geo/Fov");var h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=this.H.Gc.get("model").get("camera");if(this.H.AK.get("keepInitialPositionOnTranslation")){var g=this.H.Eh.get("yaw"); n=this.H.Eh.get("pitch")}else g=n.get("yaw")-this.H.Gc.get("yaw"),n=this.H.AK.get("enterPointingToHorizon")?0:n.get("pitch");this.Uc.Wf(this.H.Sc,g,n);if(g=this.H.Eh.get("hfov"))g=this.Uc.kJ(g),this.Uc.sr(g)};return a}); define("tdv/player/view/panorama/control/transition/steps/SetInitialPositionThroughModel",["require","tdv/utils","tdv/player/view/util/geo/Quaternion","tdv/player/view/util/XR","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/util/geo/Quaternion"),n=a("tdv/player/view/util/XR"),g=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(g,function(k,e,b,c){g.call(this,k,e,b,c)});a.prototype.Ch= function(){if(n.isPresenting){var k=h.jaa(n.wg,!0);this.H.Gc.get("model").get("camera");var e=k.Xa-this.H.Gc.get("yaw");k=k.pitch}else this.H.AK.get("keepInitialPositionOnTranslation")?(e=this.H.Eh.get("yaw"),k=this.H.Eh.get("pitch")):(k=this.H.Gc.get("model").get("camera"),e=k.get("yaw")-this.H.Gc.get("yaw"),k=k.get("pitch"));this.Uc.Wf(this.H.Sc,e,k)};return a}); define("tdv/player/view/panorama/control/transition/steps/SetModelInitialPosition",["require","tdv/utils","tdv/constants/EventName","tdv/player/view/panorama/control/transition/steps/Step"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/control/transition/steps/Step");a=m.extend(n,function(g,k,e,b){n.call(this,g,k,e,b);this.Fa=null;this.Sb=!1});a.prototype.m5a=function(){this.Sb=!0};a.prototype.mh=function(){return this.Sb};a.prototype.Yg=function(){if(!this.Fa&& (this.Fa=this.H.nc.get("model"),this.H.Zh.get("model")==this.Fa)){var g=this.Fa.get("camera");g.set("easing",0);g.set("x",this.H.nc.get("x"));g.set("y",this.H.nc.get("y"));g.set("z",this.H.nc.get("z"));g.set("yaw",this.j.Kc()+this.H.nc.get("yaw"));g.set("pitch",this.j.Jc());g.set("fov",this.j.nb()>this.j.Mb()?this.j.gP():this.j.hP());this.Fa.bind(h.Zd,this.m5a,this,!0)}};return a}); define("tdv/player/view/panorama/control/transition/steps/SetModelInTransition",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){a=function(n){function g(k,e,b,c,d){k=n.call(this,k,e,b,c)||this;k.value=!1;k.value=d;return k}P(g,n);g.prototype.Ch=function(){var k,e=(k=this.H.nc||this.H.Gc||this.H.Zh)===null||k===void 0?void 0:k.get("model");e&&e.get("camera").set("inTransition",this.value)};return g}(h);m=function(n){function g(k,e,b,c){return n.call(this, k,e,b,c,!0)||this}P(g,n);return g}(a);a.Qi=m;m=function(n){function g(k,e,b,c){return n.call(this,k,e,b,c,!1)||this}P(g,n);return g}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/SetModelPlayerEnabled",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){a=function(n){function g(k,e,b,c,d){k=n.call(this,k,e,b,c)||this;k.enabled=!1;k.enabled=d;return k}P(g,n);g.prototype.Ch=function(){var k;(k=this.H.Zh)===null||k===void 0||k.j.Ra(this.enabled)};return g}(h);m=function(n){function g(k,e,b,c){return n.call(this,k,e,b,c,!0)||this}P(g,n);return g}(a);a.Qi=m;m=function(n){function g(k, e,b,c){return n.call(this,k,e,b,c,!1)||this}P(g,n);return g}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/SetModelRenderingPaused",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){a=function(n){function g(k,e,b,c,d){k=n.call(this,k,e,b,c)||this;k.paused=!1;k.paused=d;return k}P(g,n);g.prototype.Ch=function(){var k,e=(k=this.H.Gc||this.H.nc||this.H.Zh)===null||k===void 0?void 0:k.get("model");e&&this.H.Zh.j.vRa(e,!this.paused)};return g}(h);m=function(n){function g(k,e,b,c){return n.call(this, k,e,b,c,!0)||this}P(g,n);return g}(a);a.Qi=m;m=function(n){function g(k,e,b,c){return n.call(this,k,e,b,c,!1)||this}P(g,n);return g}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/SetMinFaceSize",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep","tdv/player/view/panorama/control/transition/TransitionData"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep"),n=a("tdv/player/view/panorama/control/transition/TransitionData");a=m.extend(h,function(g,k,e,b){h.call(this,g,k,e,b)});a.prototype.Ch=function(){this.H.Sc&&(this.H.mode== n.qca||this.H.mode==n.rca?this.H.Sc.set("minFaceSize",1024):this.H.Sc.set("minFaceSize",void 0))};return a}); define("tdv/player/view/panorama/control/transition/steps/SetOriginPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep","tdv/player/view/util/XR"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep"),n=a("tdv/player/view/util/XR");a=m.extend(h,function(g,k,e,b){h.call(this,g,k,e,b)});a.prototype.Ch=function(){var g=this.H.bsa?this.H.fg.get("stereographicFactor",0):0;this.Uc.uK(g);this.Uc.Wf(this.H.Sc, this.H.fg.get("yaw"),this.H.fg.get("pitch",this.j.Jc()));this.H.Va()&&n.mK(this.H.fg.get("yaw"));(g=this.H.fg.get("hfov"))||this.H.qh||(g=this.Uc.WJa());g&&(g=this.Uc.kJ(g),this.Uc.sr(g),this.Uc.cZ(!this.H.bsa))};return a}); define("tdv/player/view/panorama/control/transition/steps/SetRenderingPaused",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){a=function(n){function g(k,e,b,c,d){k=n.call(this,k,e,b,c)||this;k.paused=!1;k.paused=d;return k}P(g,n);g.prototype.Ch=function(){this.j.F$(this.paused)};return g}(h);m=function(n){function g(k,e,b,c){return n.call(this,k,e,b,c,!0)||this}P(g,n);return g}(a);a.Qi=m;m=function(n){function g(k,e,b,c){return n.call(this, k,e,b,c,!1)||this}P(g,n);return g}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/SetTranslationPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=this.Uc.g$(this.H.Sc,this.j.jf());this.Uc.sr(n);this.Uc.Wf(this.H.Sc,this.j.Kc()+this.H.tQ.eLa(),this.j.Jc())};return a}); define("tdv/player/view/panorama/control/transition/steps/SetXRPointersVisible",["require","exports","tdv/player/view/panorama/control/transition/steps/Step","tdv/player/view/util/XR"],function(a,m,h,n){a=function(g){function k(e,b,c,d,f){e=g.call(this,e,b,c,d)||this;e.value=!1;e.ended=!1;e.wait=!1;e.mh=function(){return this.ended};e.value=f;e.value||(e.wait=!0);return e}P(k,g);k.prototype.Yg=function(){n.ud.forEach(function(e){n.slb(e,!this.value)}.bind(this));this.wait?this.wait=!1:this.ended= !0};return k}(h);m=function(g){function k(e,b,c,d){return g.call(this,e,b,c,d,!0)||this}P(k,g);return k}(a);a.Qi=m;m=function(g){function k(e,b,c,d){return g.call(this,e,b,c,d,!1)||this}P(k,g);return k}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/RestoreViewerAreaToModelPlayer",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.H.nc&&this.H.Zh.get("model")==this.H.nc.get("model")&&this.j.ld.hK([this.H.Zh])};return a}); define("tdv/player/view/panorama/control/transition/steps/Translate",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/player/view/panorama/renderer/3d/util/Util","tdv/player/view/util/Device"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/player/view/panorama/renderer/3d/util/Util"),g=a("tdv/player/view/util/Device");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.I="not initialized";this.Wb=0}); a.prototype.mh=function(){return this.I=="ended"};a.prototype.Yg=function(k){this.mh()||(this.I=="not initialized"&&this.JS(),this.I=="initialized"&&(this.Nq.get("ready")||this.Nq.Yoa())&&this.AV(),this.I=="started"&&this.za(k),this.Wb>=1&&this.$R())};a.prototype.JS=function(){this.zDa=this.H.YSa;this.Z_=.25;this.IYa=.75;this.T6a=.25;this.jGa=this.N2a();this.Kca=.5*this.zDa;this.dab=this.zDa-2*this.Kca;this.GH=1/(this.Kca+this.dab);this.N_=this.GH/this.Kca;this.Kz=0;this.Nq=this.j.Jf(this.H.Sc);this.Nka= this.j.Jf(this.H.qh);this.eM=this.H.tQ.nfb();this.I="initialized"};a.prototype.N2a=function(){var k=this.H.tQ.get("distance");return k?Math.min(.99,k/this.H.qh.get("distanceToFloor")):.75};a.prototype.AV=function(){this.j.wRa(!this.H.Va()&&g.Tb()!=g.Yj);this.Nq.yi();this.I="started"};a.prototype.za=function(k){this.Nq.get("ready")&&n.I$(!0);this.Nq.get("ready")||this.Wb=1-.5*this.Kz*this.Kz/this.N_?this.Kz=Math.sqrt(2*(1-this.Wb)*this.N_):this.Kzthis.j.Mb()?this.j.gP():this.j.hP());var l=[];if(this.H.qE){if(!this.H.Va()){var p=new k;p.set("duration",this.H.c8);p.set("easing","linear");p.bind(h.Zd,this.mia,this,!0);this.lfa=p;l.push(p)}this.H.Be.set("sourceAlpha",1)}else this.H.Be.set("sourceAlpha",.99);this.me=new k;this.me.set("targetX",f.x);this.me.set("targetY",f.y);this.me.set("targetZ",f.z);b.isPresenting||this.me.set("targetYaw",f.yaw);this.me.set("targetPitch",f.pitch);this.me.set("targetFov",f.fov);this.me.set("targetDistance", f.distance);this.me.set("duration",this.H.$ib);this.me.set("easing","quad_in_out");this.me.bind(h.Zd,this.yia,this,!0);l.push(this.me);this.Zb=new g;this.Zb.set("movements",l);this.Zb.set("mandatory",!0);this.Zb.set("internal",!0);this.Zb.bind(h.Ub,this.rv,this,!0);d.set("sequences",d.get("sequences").concat([this.Zb]));this.Zb.play();this.IV=(new THREE.Vector3).set(f.x,f.y,f.z);this.AD=(new THREE.Vector3).set(this.H.nc.get("x"),this.H.nc.get("y"),this.H.nc.get("z"))};a.prototype.mia=function(){var d= this.lfa.get("position");this.H.Be.set("sourceAlpha",1-d);this.H.Be.set("targetAlpha",0)};a.prototype.yia=function(){if(this.H.qE)this.H.Be.set("sourceAlpha",0),this.H.Be.set("targetAlpha",0);else{var d=this.tS();this.H.Be.set("sourceAlpha",1-Math.max(.01,Math.min(.99,(d-0)/.33)))}};var c=new THREE.Vector3;a.prototype.tS=function(){var d=this.H.nc.get("model").get("camera");return c.set(d.get("x"),d.get("y"),d.get("z")).distanceTo(this.AD)/this.AD.distanceTo(this.IV)};a.prototype.rv=function(){if(!this.Sb){var d= this.H.nc.get("model").get("camera");d.set("sequences",d.get("sequences").filter(function(f){return f!=this.Zb}.bind(this)));this.yja&&d.get("sequences").includes(this.yja)&&this.yja.play();this.Sb=!0;this.YU()}};a.prototype.qV=function(){var d=this.H.nc.get("model");this.LU=d.get("postprocessing");this.MU=d.get("surfaceSelectionEnabled");d.set("postprocessing",!1);d.set("surfaceSelectionEnabled",!1)};a.prototype.YU=function(){var d=this.H.nc.get("model"),f=this.LU,l=this.MU;setTimeout(function(){d.set("postprocessing", f);d.set("surfaceSelectionEnabled",l)},30)};return a}); define("tdv/player/view/panorama/control/transition/steps/TranslateModelThroughPanoramas","require tdv/utils tdv/constants/EventName tdv/player/script/Model3DCameraSequence tdv/player/script/TargetModel3DCameraMovement tdv/player/view/panorama/control/transition/steps/Step tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/script/Model3DCameraSequence"),g=a("tdv/player/script/TargetModel3DCameraMovement"),k=a("tdv/player/view/panorama/control/transition/steps/Step"), e=a("tdv/player/view/util/XR");a=m.extend(k,function(c,d,f,l){k.call(this,c,d,f,l);this.Sb=this.Ys=!1});a.prototype.mh=function(){return this.Sb};a.prototype.Yg=function(){this.H.Zh.get("model")!=this.H.Gc.get("model")?this.gCa():this.Ys||(this.Ys=!0,this.q9a(),this.qV())};a.prototype.q9a=function(){var c=this.H.Gc.get("model").get("camera");c.set("easing",0);c.set("x",this.H.nc.get("x"));c.set("y",this.H.nc.get("y"));c.set("z",this.H.nc.get("z"));c.set("distance",0);e.isPresenting||c.set("yaw",this.j.Kc()+ this.H.nc.get("yaw"));c.set("pitch",this.j.Jc());c.set("fov",this.j.nb()>this.j.Mb()?this.j.gP():this.j.hP());var d=[];if(this.H.qE){var f=new g;f.set("duration",this.H.c8);f.set("easing","linear");f.bind(h.Zd,this.mia,this,!0);this.lfa=f;d.push(f);this.H.Be.set("skyBox",!1);this.H.Be.set("nearPlane",!0);this.H.Be.set("sourceAlpha",1);this.H.Be.set("targetAlpha",0)}else this.H.Be.set("skyBox",!0),this.H.Be.set("nearPlane",!1),this.H.Be.set("targetAlpha",.01),this.H.Be.set("sourceAlpha",.99);this.me= new g;this.me.set("targetX",this.H.Gc.get("x"));this.me.set("targetY",this.H.Gc.get("y"));this.me.set("targetZ",this.H.Gc.get("z"));this.H.AK.get("keepInitialPositionOnTranslation")&&(e.isPresenting||(f=this.H.Eh.get("yaw")+this.H.Gc.get("yaw"),this.me.set("targetYaw",f)),f=this.H.Eh.get("pitch"),f!==void 0&&this.me.set("targetPitch",f),f=this.H.Eh.get("hfov"),f!==void 0&&this.me.set("targetFov",f));this.me.set("duration",1500);this.me.set("easing","cubic_in_out");this.me.bind(h.Zd,this.n5a,this, !0);d.push(this.me);this.H.qE&&(f=new g,f.set("duration",this.H.c8),f.set("easing","linear"),f.bind(h.Zd,this.lia,this,!0),this.kfa=f,d.push(f));this.Zb=new n;this.Zb.set("movements",d);this.Zb.set("mandatory",!0);this.Zb.set("internal",!0);this.Zb.bind(h.Ub,this.gCa,this,!0);c.set("sequences",c.get("sequences").concat([this.Zb]));this.Zb.play();this.AD=(new THREE.Vector3).set(this.H.nc.get("x"),this.H.nc.get("y"),this.H.nc.get("z"));this.IV=(new THREE.Vector3).set(this.H.Gc.get("x"),this.H.Gc.get("y"), this.H.Gc.get("z"))};a.prototype.n5a=function(){if(this.H.qE)this.H.Be.set("sourceAlpha",0),this.H.Be.set("targetAlpha",0);else{var c=this.tS();this.H.Be.set("targetAlpha",Math.max(.01,Math.min(.99,c-0)));this.H.Be.set("sourceAlpha",1)}};var b=new THREE.Vector3;a.prototype.tS=function(){var c=this.H.nc.get("model").get("camera");return b.set(c.get("x"),c.get("y"),c.get("z")).distanceTo(this.AD)/this.AD.distanceTo(this.IV)};a.prototype.mia=function(){var c=this.lfa.get("position");this.H.Be.set("sourceAlpha", 1-c);this.H.Be.set("targetAlpha",0)};a.prototype.lia=function(){var c=this.kfa.get("position");this.H.Be.set("sourceAlpha",0);this.H.Be.set("targetAlpha",c)};a.prototype.gCa=function(){var c=this.H.nc.get("model").get("camera");c.set("sequences",c.get("sequences").filter(function(d){return d!=this.Zb}.bind(this)));this.YU();this.Sb=!0};a.prototype.qV=function(){var c=this.H.nc.get("model"),d=this.H.Zh;this.LU=c.get("postprocessing");this.MU=c.get("surfaceSelectionEnabled");this.G6a=d.get("spritesEnabled"); c.set("postprocessing",!1);c.set("surfaceSelectionEnabled",!1);d.set("spritesEnabled",!1)};a.prototype.YU=function(){var c=this.H.nc.get("model"),d=this.H.Zh,f=this.LU,l=this.MU,p=this.G6a;setTimeout(function(){c.set("postprocessing",f);c.set("surfaceSelectionEnabled",l);d.set("spritesEnabled",p)},500)};return a}); define("tdv/player/view/panorama/control/transition/steps/TranslateModelToPanorama","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/player/script/Model3DCameraSequence tdv/player/script/TargetModel3DCameraMovement tdv/player/view/panorama/control/transition/steps/Step tdv/player/view/util/geo/Fov tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/script/Model3DCameraSequence"), k=a("tdv/player/script/TargetModel3DCameraMovement"),e=a("tdv/player/view/panorama/control/transition/steps/Step"),b=a("tdv/player/view/util/geo/Fov"),c=a("tdv/player/view/util/XR");a=m.extend(e,function(f,l,p,q){e.call(this,f,l,p,q);this.Ys=this.Sb=!1});a.prototype.mh=function(){return this.Sb};a.prototype.Yg=function(){this.Zb?this.Zb.get("state")==n.ca&&setTimeout(function(){this.rv()}.bind(this),10):this.Ys||(this.Ys=!0,this.Gka(),this.qV())};a.prototype.Gka=function(){var f=this.H.Gc.get("model").get("camera"); f.Amb();var l=Math.abs(f.get("pitch")-this.j.Jc()),p=l>30;this.me=new k;this.me.set("targetX",this.H.Gc.get("x"));this.me.set("targetY",this.H.Gc.get("y"));this.me.set("targetZ",this.H.Gc.get("z"));this.me.set("targetDistance",0);this.me.set("targetFov",this.b3a(this.j.jf()));c.isPresenting||this.me.set("targetYaw",this.j.Kc()+this.H.Gc.get("yaw"));p?this.me.set("targetPitch",f.get("pitch")):this.me.set("targetPitch",this.j.Jc());this.me.set("duration",this.H.bib);this.me.set("easing","cubic_in_out"); this.me.bind(h.Zd,this.yia,this,!0);var q=[this.me];p&&(p=new k,p.set("targetPitch",this.j.Jc()),p.set("duration",l/90*1E3),p.set("easing","quad_in_out"),q.push(p));this.H.qE?(this.H.Va()||(l=new k,l.set("duration",this.H.c8),l.set("easing","linear"),l.bind(h.Zd,this.lia,this,!0),this.kfa=l,q.push(l)),this.H.Be.set("targetAlpha",0)):this.H.Be.set("targetAlpha",.01);this.Zb=new g;this.Zb.set("movements",q);this.Zb.set("mandatory",!0);this.Zb.set("internal",!0);this.Zb.bind(h.Ub,this.rv,this,!0);f.set("sequences", f.get("sequences").concat([this.Zb]));this.Zb.play();this.AD=(new THREE.Vector3).set(f.get("x"),f.get("y"),f.get("z"));this.IV=(new THREE.Vector3).set(this.H.Gc.get("x"),this.H.Gc.get("y"),this.H.Gc.get("z"))};a.prototype.b3a=function(f){return this.j.nb().99&&(p=l+1);g.prototype.dt.call(this,this.Wb*c.hR,c.hR,this.Wb*c.hR,c.hR,d,p)};c.prototype.ze=function(d){if(this.Ba){var f=this.j.Kc(),l=this.j.Jc(),p=this.j.zg(),q=0;if(this.hI!==void 0&&this.xja!==void 0&&this.EDa!==void 0){var r=f-this.hI,t=l-this.xja,u=p-this.EDa;q=Math.sqrt(r*r+t*t+u*u)*1E3/d}this.hI=f;this.xja=l;this.EDa=p;r=this.s1(this.Ba);var v=this.Wb*(r-1);t=Math.max(0,Math.min(r-2,Math.floor(v)));u=t+1;v=1-(v-t);for(var w=1-v,x=[], y=0;yt?r+d:r-d:t>this.Xy&&t>v&&(r=yl.get("thumbnailUrl"));this.FH=f.map(l=>{var p=null;l&&(p=new b(n.Jm),p.bind(h.ia,this.YBa,this),p.bind(h.$c, this.ZBa,this));return p});this.FH.forEach((l,p)=>{l&&l.load(f[p])})};c.prototype.fab=function(){this.uxa();this.i1=null};c.prototype.j5a=function(){this.aH=150;this.FH.map(function(d){d&&(this.aH=Math.min(d.hg()*360/this.kb,this.aH))},this);this.yfa=Math.round(this.aH/2);this.i1=this.FH.map(function(d){return this.x_a(d,this.aH,this.yfa,this.kb,this.DHa,this.rb)},this);this.uxa()};c.prototype.x_a=function(d,f,l,p,q,r){var t=document.createElement("canvas");t.width=f;t.height=l;var u=t.getContext("2d"); u.fillStyle="#000000";u.fillRect(0,0,f,l);d&&(d=d.yg(),p=Math.round(f*p/360),u.drawImage(d,(f-p)*.5,Math.round(l*(90-(r+q*.5))/180),p,Math.round(l*q/180)));f=[];t=u.getImageData(0,0,t.width,t.height);for(l=u=0;u{d&&(d.h(h.ia,this.YBa,this),d.h(h.$c,this.ZBa,this),d.cancel())});this.FH=null};c.prototype.YBa=function(){this.FH.filter(d=>d&&!d.pj()).length== 0&&this.j5a()};c.prototype.ZBa=function(){};c.prototype.DYa=function(){this.Ba.bind(h.L("minimumLuminance"),this.jz,this);this.Ba.bind(h.L("maximumLuminance"),this.jz,this);this.Ba.bind(h.L("luminanceChangeTime"),this.jz,this);this.Ba.bind(h.L("maxLuminanceChangeSpeed"),this.jz,this);this.jz()};c.prototype.$$a=function(){this.Ba.h(h.L("minimumLuminance"),this.jz,this);this.Ba.h(h.L("maximumLuminance"),this.jz,this);this.Ba.h(h.L("luminanceChangeTime"),this.jz,this);this.Ba.h(h.L("maxLuminanceChangeSpeed"), this.jz,this)};c.prototype.jz=function(){this.qq=this.Ba.get("minimumLuminance");this.Xy=this.Ba.get("maximumLuminance");this.qq==void 0&&this.Xy==void 0?(this.qq=.2,this.Xy=.45):this.qq==void 0?this.qq=Math.min(.2,this.Xy):this.qq==void 0?this.Xy=Math.max(.45,this.qq):this.qq=Math.min(this.qq,this.Xy);this.Xy=Math.min(1,Math.max(0,this.Xy));this.qq=Math.min(1,Math.max(0,this.qq));this.oAa=Math.max(100,this.Ba.get("luminanceChangeTime",5E3));this.sAa=this.Ba.get("maxLuminanceChangeSpeed",1);this.bb()}; c.hR=1E3;return c}); define("tdv/player/view/panorama/control/frames/LiveFramesController","require tdv/utils tdv/binding/ChangeWatcher tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/panorama/control/frames/BaseFramesController".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/ChangeWatcher"),n=a("tdv/constants/EventName"),g=a("tdv/constants/PlaybackState"),k=a("tdv/player/view/panorama/control/frames/BaseFramesController");a=m.extend(k,function(e){k.call(this,e);this.g1=this.h1=null; this.kk=this.Xi=5E3;this.wf=void 0;this.ac=this.Xi;this.ls=1;this.Ba=null;this.yH=!1;this.UU=void 0});a.prototype.start=function(e){this.Ba=e;this.yH=!1;this.Y1=!0;this.h1=h.jx(this.Ba,"frameDisplayTime",this.Ola,this);this.g1=h.jx(this.Ba,"frameTransitionTime",this.Ola,this);this.ls=this.s1(this.Ba);this.wf=this.Ba.pX()*(this.Xi+this.kk);this.Ola(!0);this.dt();this.bb();this.ml()};a.prototype.Ola=function(e){var b=Math.max(100,this.Ba.get("frameDisplayTime",5E3)),c=Math.max(100,this.Ba.get("frameTransitionTime", 5E3));if(this.Xi!=b||this.kk!=c||e){e=this.pM();var d=this.E1a();this.Xi=b;this.kk=c;this.ls>1?(this.wf=e*(this.Xi+this.kk)+d*this.Xi+d*this.kk,this.ac=this.ls*(this.Xi+this.kk)):(this.wf=d*this.Xi,this.ac=this.Xi)}};a.prototype.pM=function(){return this.ls>1?Math.floor(this.wf/(this.Xi+this.kk)):0};a.prototype.F1a=function(){return this.ls>1?(this.pM()+1)%this.ls:0};a.prototype.E1a=function(){return this.ls>1?Math.max(0,Math.min(1,this.wf-this.pM()*(this.Xi+this.kk))):this.wf/this.Xi};a.prototype.Eya= function(){return this.ls>1?Math.max(0,Math.min(1,(this.wf-(this.pM()*(this.Xi+this.kk)+this.Xi))/this.kk)):0};a.prototype.b$a=function(e){var b=Math.floor(e/this.kk);return b*(this.Xi+this.kk)+this.Xi+(e-b*this.kk)};a.prototype.aGa=function(e){var b=Math.floor(e/(this.Xi+this.kk));return b*this.kk+Math.max(0,e-b*(this.Xi+this.kk)-this.Xi)};a.prototype.play=function(){this.yH&&(this.yH=!1,this.Y1&&this.bb(),this.ml())};a.prototype.pause=function(){this.yH=!0;this.ml()};a.prototype.RP=function(){this.pause()}; a.prototype.aQ=function(){this.play()};a.prototype.end=function(){this.Y1=!1;this.Ba=null;this.h1&&(this.h1.jF(),this.h1=null);this.g1&&(this.g1.jF(),this.g1=null);this.ml()};a.prototype.sK=function(e){this.wf=e;this.bb()};a.prototype.RE=function(e){this.wf=this.b$a(e);this.bb();this.pause()};a.prototype.ze=function(e){if(this.Y1){var b=this.wf;this.yH||(b+=e);if(this.UU===void 0&&b>=this.ac-this.kk)this.UU=this.wf,this.Ba.o(n.Vr);else{this.wf=b;this.wf%=this.ac;this.UU!==void 0&&this.wfe?c:1;c=b>e?1:1-c;for(var f=0;f0&&l<1&&p.yi(),p.get("alpha"),p.set("alpha",l))}this.dt();this.yH||this.bb()}}};a.prototype.ql=function(){return this.Y1?this.yH?g.$b:g.PLAYING:g.ca};a.prototype.ml=function(){k.prototype.ml.call(this,this.ql())};a.prototype.dt=function(){k.prototype.dt.call(this,this.wf,this.ac,this.aGa(this.wf),this.aGa(this.ac), this.ls+1,this.Eya()===0?this.pM():void 0)};return a});define("tdv/player/view/panorama/control/frames/StandardFramesController",["require","tdv/utils","tdv/player/view/panorama/control/frames/BaseFramesController"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/frames/BaseFramesController");return m.extend(h,function(n){h.call(this,n)})}); define("tdv/player/view/panorama/control/frames/VideoFramesController",["require","tdv/utils","tdv/constants/EventName","tdv/constants/PlaybackState","tdv/player/view/panorama/control/frames/BaseFramesController"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/view/panorama/control/frames/BaseFramesController");a=m.extend(g,function(k){g.call(this,k);this.vf=!1});a.prototype.qP=function(){};a.prototype.start=function(k){this.end(); this.Ba=k;this.Ba.set("mute",this.vf);this.Ba.get("autoplay")&&this.Ba.set("state",n.PLAYING);this.Px()};a.prototype.getTime=function(){return this.Ba?this.Ba.get("currentTime"):0};a.prototype.ql=function(){return this.Ba?this.Ba.get("state"):n.ca};a.prototype.play=function(){this.Ba&&this.Ba.set("state",n.PLAYING)};a.prototype.pause=function(){this.Ba&&this.Ba.set("state",n.$b)};a.prototype.W$=function(){this.Ba&&this.Ba.set("state",n.$b)};a.prototype.stop=function(){this.Ba&&this.Ba.set("state", n.ca)};a.prototype.end=function(){this.Ba&&(this.Az(),this.Ba=null)};a.prototype.sK=function(k){this.Ba&&this.Ba.set("state",n.PLAYING);this.Ba&&this.Ba.set("currentTime",k)};a.prototype.Bg=function(k){this.vf=k;this.Ba&&this.Ba.set("mute",this.vf)};a.prototype.Px=function(){this.Ba.bind(h.L("currentTime"),this.Nf,this,!0);this.Ba.bind(h.L("duration"),this.$o,this,!0);this.Ba.bind(h.L("state"),this.Hj,this,!0);this.Ba.get("state")!=n.ca&&this.ml()};a.prototype.Az=function(){this.Ba.h(h.L("currentTime"), this.Nf,this,!0);this.Ba.h(h.L("duration"),this.$o,this,!0);this.Ba.h(h.L("state"),this.Hj,this,!0)};a.prototype.Hj=function(){this.ml()};a.prototype.Nf=function(){this.dt()};a.prototype.$o=function(){this.dt()};a.prototype.dt=function(){this.Ba&&g.prototype.dt.call(this,this.Ba.get("currentTime"),this.Ba.get("duration"))};return a}); define("tdv/player/view/panorama/control/FramesController","require tdv/utils tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/player/parser/ClassInfo tdv/player/view/panorama/control/frames/BaseFramesController tdv/player/view/panorama/control/frames/HDRFramesController tdv/player/view/panorama/control/frames/LiveFramesController tdv/player/view/panorama/control/frames/StandardFramesController tdv/player/view/panorama/control/frames/VideoFramesController".split(" "),function(a){var m= a("tdv/utils");a("tdv/constants/PlaybackState");var h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/view/panorama/control/frames/BaseFramesController"),e=a("tdv/player/view/panorama/control/frames/HDRFramesController"),b=a("tdv/player/view/panorama/control/frames/LiveFramesController"),c=a("tdv/player/view/panorama/control/frames/StandardFramesController"),d=a("tdv/player/view/panorama/control/frames/VideoFramesController"),f=m.extend(n, function(l){n.call(this);this.j=l;this.wha=this.C0(b);this.lga=this.C0(e);this.m6=this.C0(d);this.Pka=this.C0(c);this.re=null});f.prototype.clear=function(){this.s0(this.wha);this.wha=null;this.s0(this.lga);this.lga=null;this.s0(this.m6);this.m6=null;this.s0(this.Pka);this.j=this.re=this.Pka=null};f.prototype.C0=function(l){l=new l(this.j);l.bind(k.oc,this.cg,this,!0);l.bind(k.Ok,this.Gs,this,!0);l.bind(k.gd,this.Mf,this,!0);return l};f.prototype.s0=function(l){l.h(k.oc,this.cg,this);l.h(k.Ok,this.Gs, this);l.h(k.gd,this.Mf,this);l.clear()};f.prototype.Yga=function(l,p){return g.Oa(p,l)};f.prototype.yya=function(l){return this.Yga(l,"HDRPanorama")?this.lga:this.Yga(l,"LivePanorama")?this.wha:this.Yga(l,"VideoPanorama")?this.m6:this.Pka};f.prototype.qP=function(l){(this.re=this.yya(l))&&this.re.qP(l)};f.prototype.start=function(l){this.cg();(this.re=this.yya(l))&&this.re.start(l)};f.prototype.ql=function(){if(this.re)return this.re.ql()};f.prototype.getTime=function(){return this.re?this.re.getTime(): 0};f.prototype.play=function(){this.re&&this.re.play()};f.prototype.pause=function(){this.re&&this.re.pause()};f.prototype.RP=function(){this.re&&this.re.RP()};f.prototype.aQ=function(){this.re&&this.re.aQ()};f.prototype.W$=function(){this.re&&this.re.W$()};f.prototype.stop=function(){this.re&&this.re.stop();this.o(new h(f.Ok,{duration:0,time:0,steps:void 0,selectedStep:void 0}))};f.prototype.end=function(){this.re&&(this.re.end(),this.re=null)};f.prototype.sK=function(l){this.re&&this.re.sK(l)}; f.prototype.RE=function(l){this.re&&this.re.RE(l)};f.prototype.yQ=function(){this.re&&this.re.yQ()};f.prototype.ze=function(l){this.re&&this.re.ze(l)};f.prototype.Bg=function(l){this.m6.Bg(l)};f.prototype.cg=function(){this.o(new h(f.oc))};f.prototype.Gs=function(l){this.o(new h(f.Ok,l.data))};f.prototype.Mf=function(l){this.o(new h(f.gd,l.data))};f.oc="request frame";f.FUa="frame display";f.GUa="frame hide";f.Ok="time change";f.gd="playback state change";return f}); define("tdv/player/view/panorama/control/LoadController",["require","tdv/utils","tdv/constants/EventName","tdv/events/EventDispatcher","tdv/view/events/ProgressEvent"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/EventDispatcher"),g=a("tdv/view/events/ProgressEvent");a=m.extend(n,function(k){n.call(this);this.j=k;this.si=this.Ba=null});a.prototype.start=function(k){this.Ba=k;this.si=this.j.Jf(this.Ba);this.si.bind(h.ia,this.Pe,this,!0);this.si.bind(h.xc,this.nz, this,!0);this.si.get("ready")?this.o(h.vd,{panorama:this.Ba}):this.si.bind(h.vd,this.F3,this,!0);this.si.set("loadingActive",!0)};a.prototype.stop=function(){this.Ba=null;this.si&&(this.si.h(h.vd,this.F3,this),this.si.h(h.ia,this.Pe,this),this.si.h(h.xc,this.nz,this),this.si.set("loadingActive",!1),this.si=null,this.o(h.Fg))};a.prototype.clear=function(){this.stop()};a.prototype.F3=function(){this.si.h(h.vd,this.F3,this);this.o(h.vd,{panorama:this.Ba})};a.prototype.Pe=function(){this.si.h(h.vd,this.F3, this);this.si.h(h.ia,this.Pe,this);this.si.h(h.xc,this.nz,this);this.si=null;this.o(h.ia,{panorama:this.Ba});this.Ba=null;this.o(h.Fg)};a.prototype.nz=function(k){this.o(new g(h.xc,k.percent))};return a}); define("tdv/player/view/panorama/control/MapController","require exports tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/script/MapPlayer".split(" "),function(a,m,h,n,g,k){var e=function(c){function d(f){var l=c.call(this)||this;l.renderer=f;l.Apa=[];l.YX=new Map;l.ig=null;return l}P(d,c);d.prototype.clear=function(){this.x$([])};d.prototype.x$=function(f){f?Array.isArray(f)||(f=[f]):f=[];this.Apa.filter(function(l){return!f.includes(l)}).forEach(this.Gjb.bind(this)); f.filter(function(l){return!this.Apa.includes(l)}.bind(this)).forEach(this.$bb.bind(this));this.Apa=f};d.prototype.display=function(f){this.Wf(f)};d.prototype.oe=function(f){this.ig==f&&this.stop()};d.prototype.stop=function(){this.Wf(null)};d.prototype.$bb=function(f){var l=new b(this.renderer,f);l.bind(d.tj,this.GY,this,!0);l.Wf(this.ig);this.YX.set(f,l)};d.prototype.Gjb=function(f){var l=this.YX.get(f);l.h(d.tj,this.GY,this);l.dispose();this.YX.delete(f)};d.prototype.Wf=function(f){this.ig!==f&& (this.ig=f,this.YX.forEach(function(l){l.Wf(f)}))};d.prototype.ze=function(){this.YX.forEach(function(f){f.Onb()})};d.prototype.GY=function(f){this.o(new n(d.tj,{yawDelta:f.data.yawDelta}))};d.tj="request yaw change";return d}(g),b=function(c){function d(f,l){var p=c.call(this)||this;p.renderer=f;p.HA=l;p.ig=null;p.Cw=null;p.Zbb();return p}P(d,c);d.prototype.dispose=function(){this.Fjb();this.Wf(null)};d.prototype.Wf=function(f){this.ig!==f&&(this.mJa(),this.ig=f,this.acb())};d.prototype.Onb=function(){this.xTa()}; d.prototype.MQa=function(f,l,p){f=f.get("mapLocations",[]);for(var q=0;q0?f[0]:null};d.prototype.URa=function(){this.HA.ccb(this.Cw);this.HA.bind(k.tj,this.GY,this,!0);this.xTa()};d.prototype.Ugb=function(){this.HA.Hjb(this.Cw);this.HA.h(k.tj,this.GY,this)};d.prototype.mJa=function(){this.Cw&&(this.Ugb(),this.Cw=null)};d.prototype.acb=function(){this.ig&&(this.Cw=this.MQa(this.ig,this.HA.get("map",null),!0))&&this.URa()};d.prototype.xTa= function(){if(this.Cw){var f=this.renderer.Kc(),l=this.renderer.Jc();this.HA.ur(this.Cw,f,l,this.renderer.jf())}};d.prototype.Zbb=function(){this.HA.bind(h.L("map"),this.EOa,this,!1)};d.prototype.Fjb=function(){this.HA.h(h.L("map"),this.EOa,this)};d.prototype.EOa=function(){this.ig&&(this.mJa(),(this.Cw=this.MQa(this.ig,this.HA.get("map",null),!1))&&this.URa())};d.prototype.GY=function(f){this.o(new n(e.tj,{yawDelta:f.data.yawDelta}))};return d}(g);return e}); define("tdv/player/view/util/Gamepad","require tdv/constants/EventName tdv/events/async tdv/events/EventDispatcher tdv/view/util/Animation tdv/player/view/util/URL tdv/player/view/util/XR".split(" "),function(a){function m(w){this.Si=w;this.Ll=null;this.wda={};for(w=0;w500};m.prototype.hand=function(){return this.T2a}; m.prototype.quaternion=function(){return this.fm};m.prototype.position=function(){return this.Wb};m.prototype.pressed=function(w){w||(w=this.Si.rjb);return w?this.wda[w]:this.uda>0};var p=new b;p.all=function(){n();return q};p.Ug=function(){n();return r};p.fb="left";p.Db="right";var q=[],r=null,t={},u=void 0,v=d.Tg("disable-controller",!1);return p}); define("tdv/player/view/util/geo/Line",["require","tdv/player/view/util/geo/Point","tdv/player/view/util/geo/Vector"],function(a){function m(g,k){this.Lg=g||new h(0,0,0);this.Ek=k||new h(1,0,0)}var h=a("tdv/player/view/util/geo/Point"),n=a("tdv/player/view/util/geo/Vector");m.prototype.clone=function(){return new m(this.Lg.clone(),this.Ek.clone())};m.prototype.apply=function(g){g.yO(this.Lg);g.yO(this.Ek)};m.prototype.YLa=function(){return n.YD(this.Lg,this.Ek)};return m}); define("tdv/player/view/util/geo/Frustum",["require","tdv/player/view/util/geo/Line","tdv/player/view/util/geo/Point"],function(a){function m(g,k,e){this.Pa=g||100;this.Ha=k||100;this.kb=e||Math.PI;this.Cja=void 0;this.Uu=!0}var h=a("tdv/player/view/util/geo/Line"),n=a("tdv/player/view/util/geo/Point");m.prototype.oK=function(g){this.kb!=g&&(this.kb=g,this.Uu=!0)};m.prototype.uA=function(){return this.kb};m.prototype.RRa=function(g){this.Pa!=g&&(this.Pa=g,this.Uu=!0)};m.prototype.hg=function(){return this.Pa}; m.prototype.lRa=function(g){this.Ha!=g&&(this.Ha=g,this.Uu=!0)};m.prototype.xg=function(){return this.Ha};m.prototype.project=function(g){if(g.z!=0){this.hHa();var k=1/g.z,e=this.Cja*k;g.x=this.Pa*.5-g.x*e;g.y=this.Ha*.5-g.y*e;g.z=k}};m.prototype.unproject=function(g){this.hHa();return new h(new n(0,0,0),new n(this.Pa*.5-g.x,this.Ha*.5-g.y,this.Cja))};m.prototype.hHa=function(){this.Uu&&(this.Cja=this.Pa*.5/Math.tan(this.kb*.5),this.Uu=!1)};return m}); define("tdv/player/view/panorama/renderer/RendererState",["require","exports"],function(){return function(){function a(){this.Mg=this.pitch=this.Xa=0;this.lj=this.Wd=90;this.Rj=this.Sj=this.height=this.width=100;this.ul=1;this.IJ=this.Va=!1;this.Jk=0;this.hoa=this.vW=this.Lpa=!1;this.FJ=this.yY=!0;this.camera=this.SW=this.RW=this.sh=null;this.In=this.enabled=!1;this.Af=0;this.xZ=void 0}a.prototype.clone=function(){var m=new a;m.Xa=this.Xa;m.pitch=this.pitch;m.Mg=this.Mg;m.Wd=this.Wd;m.lj=this.lj; m.width=this.width;m.height=this.height;m.Sj=this.Sj;m.Rj=this.Rj;m.ul=this.ul;m.Va=this.Va;m.IJ=this.IJ;m.Jk=this.Jk;m.Lpa=this.Lpa;m.hoa=this.hoa;m.vW=this.vW;m.yY=this.yY;m.FJ=this.FJ;m.sh=this.sh;m.RW=this.RW;m.SW=this.SW;m.camera=this.camera;m.enabled=this.enabled;m.In=this.In;m.Af=this.Af;m.xZ=this.xZ;return m};return a}()}); define("tdv/player/view/panorama/renderer/3d/util/StereographicEffect",["require","tdv/constants/RenderOrder","tdv/player/view/panorama/renderer/constants/EyeLayer","tdv/player/view/panorama/renderer/3d/util/Util"],function(a){var m=a("tdv/constants/RenderOrder"),h=a("tdv/player/view/panorama/renderer/constants/EyeLayer"),n=a("tdv/player/view/panorama/renderer/3d/util/Util");return function(g){var k=1,e=new THREE.WebGLCubeRenderTarget(1024),b=new THREE.CubeCamera(.1,1E4,e);b.layers.enable(h.mx);b.layers.enable(h.fb); e=new THREE.ShaderMaterial;e.uniforms={tCube:{value:b.renderTarget.texture},tFlip:{value:1},opacity:{value:1}};e.fragmentShader="uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\nvoid main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *= opacity;\n#include \n#include \n}";e.vertexShader="varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}\n"; e.side=THREE.BackSide;e.depthWrite=!1;e.transparent=!0;e.depthTest=!1;e.needsUpdate=!0;var c=new THREE.Mesh(new THREE.SphereGeometry(5,64,64),e);c.overdraw=!1;c.matrixAutoUpdate=!1;c.renderOrder=m.KVa;var d=new THREE.Matrix4;this.uK=function(l){k=l};this.start=function(l){l.add(c);l.add(b);l.traverse(function(p){p.layers.test(b.layers)&&(p.userData.vpa=p.layers.mask,p.layers.mask=b.layers.mask)});b.visible=!0;c.visible=!0;g.setClearColor(16777215,1)};this.stop=function(l){g.setClearColor(0,0);l.traverse(function(p){p.userData.vpa!== void 0&&(p.layers.mask=p.userData.vpa,delete p.userData.vpa)});b.visible=!1;c.visible=!1;l.remove(c);l.remove(b)};var f=0;this.render=function(l,p){k>0&&(c.matrix.copy(p.matrixWorld),c.matrix.multiply(d.makeTranslation(0,0,-k*5)),c.matrixWorldNeedsUpdate=!0,f++,n.phb()&&f%10!=0||(n.okb(),c.visible=!1,b.update(g,l),c.visible=!0))}}}); define("tdv/player/view/panorama/renderer/3d/Renderer","require tdv/player/view/util/geo/Fov tdv/player/view/util/geo/Quaternion tdv/player/view/panorama/renderer/constants/EyeLayer tdv/player/view/panorama/renderer/3d/util/StereographicEffect tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/SceneUtil tdv/player/view/panorama/renderer/3d/util/Util tdv/player/view/util/XR".split(" "),function(a){function m(l){this.P=l;this.zc=new THREE.PerspectiveCamera(90, 16/9,.1,2*e.th);this.zc.layers.enable(g.fb);this.Wu=new THREE.PerspectiveCamera;this.Bb=new THREE.Scene;this.oxa=new THREE.Scene;this.pxa=new THREE.Scene;this.Bb.add(this.zc);this.kq=this.Xka=this.I0=this.H0=this.j=null;this.NAa=this.iea=!1}var h=a("tdv/player/view/util/geo/Fov"),n=a("tdv/player/view/util/geo/Quaternion"),g=a("tdv/player/view/panorama/renderer/constants/EyeLayer"),k=a("tdv/player/view/panorama/renderer/3d/util/StereographicEffect"),e=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"), b=a("tdv/player/view/panorama/renderer/3d/util/SceneUtil"),c=a("tdv/player/view/panorama/renderer/3d/util/Util"),d=a("tdv/player/view/util/XR");m.prototype.Reb=function(){this.rZa()};m.prototype.sl=function(){return this.j};m.prototype.Sf=function(){return this.Bb};m.prototype.getCamera=function(){return this.Wu};m.prototype.jr=function(){return d.isPresenting&&d.Uf==this.j&&d.XA==this.Bb};m.prototype.cfb=function(){return this.Wu.isArrayCamera&&this.Wu.cameras.length>0?Math.atan2(1,this.Wu.cameras[0].projectionMatrix.elements[5])* 2*f:this.Wu.fov};m.prototype.getPixelRatio=function(){return this.j?this.j.getPixelRatio():c.getPixelRatio()};m.prototype.ffb=function(){return d.isPresenting&&d.framebufferWidth?d.framebufferWidth*.5:this.j?this.j.domElement.width:1024};m.prototype.efb=function(){return d.isPresenting&&d.framebufferHeight?d.framebufferHeight:this.j?this.j.domElement.height:1024};m.prototype.If=function(){return this.j.domElement};m.prototype.update=function(l){this.Vab(l);this.uab(l);this.et(l)};m.prototype.kna= function(l){this.j.$q=!0;l=c.Xdb(l);var p=new THREE.CubeCamera(this.Wu.near,this.Wu.far,l);this.Bb.add(p);p.position.setFromMatrixPosition(this.Wu.matrixWorld);p.update(this.j,this.Bb);this.Bb.remove(p);this.j.$q=!1;return l.texture};m.prototype.render=function(){this.A4()};m.prototype.Vab=function(l){l.enabled&&(this.j||this.z9a(l),l.Va&&d.getType()==d.Kx.mo&&(this.NAa=!0));this.QFa==l.width&&this.PFa==l.height||this.j.setSize(this.QFa=l.width,this.PFa=l.height);if(this.iea=l.enabled&&!l.Va)this.H0.setSize(l.width, l.height),this.I0.setSize(l.width,l.height)};m.prototype.z9a=function(l){!this.j&&l.enabled&&(this.P.Fc().y6(),this.H0=this.P.Fc().afb(),this.j=this.P.Fc().sl(),l=this.j.getSize(new THREE.Vector2),this.QFa=l.width,this.PFa=l.height,this.I0=this.P.Fc().bfb(),this.Xka=new k(this.j,this.zc))};m.prototype.rZa=function(){this.j&&(this.H0=this.j=this.I0=this.kq=null,this.P.Fc().b$())};m.prototype.et=function(l){l.Va?this.Wu=this.j.xr.getCamera():(this.zc.quaternion.copy(n.iX(l.Xa,l.pitch,l.Mg)),this.zc.fov= h.wm(l.Wd,l.width,l.height),this.zc.aspect=l.width/l.height,this.zc.updateProjectionMatrix(),this.zc.updateMatrixWorld(),this.Wu=this.zc);b.nkb(this.Bb,this.jr()?this.j.xr.getCamera().cameras:[this.zc]);this.Bb.mqb===!0&&this.Bb.updateMatrixWorld()};m.prototype.uab=function(l){var p=!l.Va&&l.Jk>0?this.Xka:null;this.kq!=p&&(this.kq&&this.kq.stop(this.Bb),(this.kq=p)&&this.kq.start(this.Bb));this.kq&&this.kq==this.Xka&&this.kq.uK(l.Jk)};m.prototype.A4=function(){this.j.xr.isPresenting||this.j.clear(); this.NAa&&this.j.resetState();this.kq&&this.kq.render(this.Bb,this.zc);this.j.render(this.Bb,this.zc);this.iea&&(this.H0.render(this.oxa,this.zc),this.I0.render(this.pxa,this.zc))};var f=180/Math.PI;return m}); define("tdv/player/view/panorama/renderer/object/ComposedWebGLObject","require tdv/utils tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/3d/util/SceneUtil tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/panorama/renderer/OcclusionCuller".split(" "),function(a){var m=a("tdv/utils"), h=a("tdv/player/view/panorama/renderer/object/Base"),n=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),g=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"),k=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),e=a("tdv/player/view/panorama/renderer/3d/util/SceneUtil"),b=a("tdv/player/view/panorama/renderer/TextureLoader"),c=a("tdv/player/view/panorama/renderer/OcclusionCuller");a=m.extend(h,function(){h.call(this);this.set("tag","ComposedWebGLObject"); this.set("webglScene",null);this.set("meshGroup",null);this.set("camera",null);this.set("textureSource",null);this.set("materialConfig",this.Eha=new g.Rp);this.ky&&this.ky();this.LG&&this.LG();this.pC&&this.pC();this.iq&&this.iq()});a.prototype.hc=function(){h.prototype.hc.call(this);this.Aq&&this.Aq();this.jT&&this.jT();this.nN&&this.nN()};a.prototype.mc=function(){this.MM&&this.MM();this.pN&&this.pN();this.Cq&&this.Cq();k.dispose(this.get("meshGroup"));k.Yw(this.get("meshGroup"),null);this.set("meshGroup", null);h.prototype.mc.call(this)};a.prototype.za=function(d){this.dg&&this.dg(d);h.prototype.za.call(this,d);this.set("camera",e.getCamera(d.sh));this.set("webglScene",d.sh);this.get("meshGroup")||(this.set("meshGroup",k.LJa(this.hq())),this.get("meshGroup").userData.Zib=this);this.W("webglScene","meshGroup")&&k.Yw(this.get("meshGroup"),this.get("webglScene"));this.Dn();this.Qj&&this.Qj(d);this.gbb();this.Wz&&this.Wz(d);this.Sq&&this.Sq(d);this.NI();this.W("loadingActive","meshGroup")&&b.Ra(this.get("meshGroup"), this.get("loadingActive"));this.W("blendingActive","meshGroup")&&c.WQa(this.get("meshGroup"),this.get("blendingActive"))};a.prototype.Dn=function(){this.W("composedAlpha","meshGroup")&&this.aC()};a.prototype.aC=function(){k.nf(this.get("meshGroup"),this.get("composedAlpha"))};a.prototype.gbb=function(){if(this.W("textureSource")||this.W("materialConfig")&&!this.Eha.isEqual(this.get("materialConfig"))){var d=this.oM();d&&(k.dlb(d,this.JR()),this.aC())}};a.prototype.NI=function(){if(this.W("index", "meshGroup")){var d=this.get("meshGroup");d&&d.children.forEach(function(f,l,p){k.O$(f,this.get("index")+l/p.length)}.bind(this))}};a.prototype.JR=function(){var d=this.get("textureSource")||new n;this.Eha=this.get("materialConfig");var f=g.st(d.texture(),this.Eha);b.hQ(f,d);return[f]};a.prototype.gxa=function(){var d=new n,f=g.st(d.texture());b.hQ(f,d);return[f]};a.prototype.Fy=function(d){return k.Afb(this.get("meshGroup"),d)};return a}); define("tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin","require tdv/constants/Priority tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/view/util/Scale tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/geo/Fov tdv/player/view/util/geo/Quaternion tdv/view/constants/Alignment".split(" "),function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"), n=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),g=a("tdv/view/util/Scale"),k=a("tdv/player/view/panorama/renderer/TextureLoader"),e=a("tdv/player/view/util/geo/Fov"),b=a("tdv/player/view/util/geo/Quaternion"),c=a("tdv/view/constants/Alignment"),d=new THREE.Matrix4,f=Math.PI/180;return{ky:function(){this.set("distance",void 0);this.set("rotationX",0);this.set("rotationY",0);this.set("rotationZ",0);this.set("yaw",0);this.set("pitch",0);this.set("roll",0);this.set("scale",1);this.set("contentWidth", 100);this.set("contentHeight",100);this.set("hfov",void 0);this.set("vfov",null);this.set("scaleMode",null);this.set("horizontalAlign",null);this.set("verticalAlign",null);this.set("attachToCamera",!1);this.Lh=this.oC();this.wi=new THREE.Matrix4;this.ke=new THREE.Matrix4;this.Bq=new THREE.Matrix4;this.Io=new THREE.Matrix4;this.rk=new THREE.Matrix4;this.lda=new THREE.Matrix4;this.Yva=new THREE.Quaternion;this.axa=new THREE.Matrix4;this.rR=new THREE.Matrix4;this.ER=new THREE.Matrix4;this.gC=new THREE.Matrix4; this.Ti=new THREE.Matrix4},Wz:function(l){this.gt(l);this.lma()},lma:function(){if(this.W("hfov","vfov","contentWidth","contentHeight","panoramaPixelsPerDegree","scaleMode","horizontalAlign","verticalAlign")){var l=g.Eoa(this.get("hfov"),this.get("vfov"),this.get("contentWidth"),this.get("contentHeight"),this.get("scaleMode"),this.get("panoramaPixelsPerDegree"),this.get("horizontalAlign"),this.get("verticalAlign"));l=h.DRa(this.Lh[1],l.CZ,l.NZ,l.nB,l.qB);this.Lh[1]!=l&&(this.Lh[1]=l,(l=this.oM())&& n.jra(l,this.Lh[1]))}},oM:function(){var l=this.get("meshGroup");return l?n.tm(l)[1]:null},hq:function(){return[0,1].map(function(l){var p=l==0?this.gxa():this.JR();l=n.create(this.Lh[l],p);k.fB(l,k.Or);k.gB(l,k.Au);k.qK(l,m.VQ);k.oZ(l,1);return l}.bind(this))},oC:function(){return[h.SO(),h.SO()]},gt:function(l){var p=!1;this.W("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.wi.makeTranslation(-this.get("composedTranslationX")*.5*h.th,this.get("composedTranslationY")* .5*h.th,this.get("composedTranslationZ")*.5*h.th),p=!0);this.W("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.ke.makeRotationY(-l.Xa*f),this.ke.multiply(d.makeRotationX(-this.get("composedDeltaPitch")*f)),this.ke.multiply(d.makeRotationY(this.get("composedDeltaYaw")*f)),this.ke.multiply(d.makeRotationY(l.Xa*f)),p=!0);this.W("yaw","pitch")&&(this.Bq.makeRotationY(-this.get("yaw")*f),this.Bq.multiply(d.makeRotationX(this.get("pitch")*f)),p=!0);if(this.W("distance","flipHorizontally", "scale","hfov","vfov","contentWidth","contentHeight","scaleMode","horizontalAlign","verticalAlign","composedTranslationX","composedTranslationY","composedTranslationZ")){var q=this.Ia.get("composedTranslationX")==0&&this.Ia.get("composedTranslationY")==0&&this.Ia.get("composedTranslationZ")==0&&this.get("distance")!==void 0?h.qw(this.get("distance")):h.Et();this.Io.makeTranslation(0,0,-q);var r=this.get("contentWidth"),t=this.get("contentHeight"),u=this.get("hfov"),v=this.get("vfov")||e.wm(u,r,t), w=(this.get("flipHorizontally")?-1:1)*this.get("scale"),x=this.get("scale"),y=this.get("scaleMode"),z=this.get("panoramaPixelsPerDegree");p=this.get("horizontalAlign")||c.$e;var A=this.get("verticalAlign")||c.$d;r=g.Eoa(u,v,r,t,y,z,p,A);u=w*h.Foa(q,u);v=x*h.Goa(q,v);this.rR.makeScale(u,v,1);w*=h.Foa(q,r.Wd);q=x*h.Goa(q,r.Nk);this.ER.makeScale(w,q,1);this.axa.makeTranslation(p==c.fb?-(u-w)*.5:p==c.Db?(u-w)*.5:0,A==c.Tc?(v-q)*.5:A==c.Hc?-(v-q)*.5:0,0);p=!0}this.W("rotationX","rotationY","rotationZ", "roll")&&(this.rk.makeRotationZ(this.get("roll")*f),this.rk.multiply(d.makeRotationY(this.get("rotationY")*f)),this.rk.multiply(d.makeRotationX(this.get("rotationX")*f)),this.rk.multiply(d.makeRotationZ(this.get("rotationZ")*f)),p=!0);this.set("cameraYaw",l.Xa);this.set("cameraPitch",l.pitch);this.set("cameraRoll",l.Mg);this.get("attachToCamera")&&this.W("cameraYaw","cameraPitch","cameraRoll")?(this.Yva.copy(b.iX(l.Xa,l.pitch,l.Mg)),this.lda.makeRotationFromQuaternion(this.Yva),p=!0):this.W("attachToCamera")&& (this.lda.identity(),p=!0);if(p||this.W("meshGroup"))this.Ti.copy(this.wi),this.Ti.multiply(this.ke),this.Ti.multiply(this.lda),this.Ti.multiply(this.Bq),this.Ti.multiply(this.Io),this.Ti.multiply(this.rk),this.gC.copy(this.Ti),this.gC.multiply(this.rR),this.Ti.multiply(this.axa),this.Ti.multiply(this.ER),l=n.tm(this.get("meshGroup")),n.qt(l[0],this.gC),n.qt(l[1],this.Ti)}}}); define("tdv/player/view/panorama/renderer/object/Plane",["require","tdv/utils","tdv/player/view/panorama/renderer/object/ComposedWebGLObject","tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject");a=a("tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin");return m.extend(h,a,function(){h.call(this);this.set("tag","Plane")})}); define("tdv/player/view/panorama/renderer/object/Cap","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/parser/ClassInfo tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/util/ColorPicker tdv/view/events/ProgressEvent".split(" "),function(a){function m(q,r,t,u,v,w){for(q= (q-r)/w;t+180u;)u+=360;t=(t-u)/w;return t=q<-.1||q>.1?h(v,t,Math.abs(1/(1500*q))):h(v,t,.08)}function h(q,r,t){q=(r-q)*(1-t);Math.abs(q)<1E-5&&(q=0);return r-q}var n=a("tdv/utils"),g=a("tdv/binding/BindingsHandler"),k=a("tdv/constants/EventName"),e=a("tdv/player/parser/ClassInfo"),b=a("tdv/player/view/panorama/renderer/object/Plane"),c=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource"),d=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"), f=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),l=a("tdv/player/view/util/ColorPicker"),p=a("tdv/view/events/ProgressEvent");a=n.extend(b,function(q){b.call(this);this.C=q;this.Sl.push(this.C);this.Rg=this.Rg.bind(this);this.Qf=e.Oa("CeilingCapPanoramaOverlay",this.C)?"ceiling":"tripod";this.set("tag","Cap");this.set("pitch",this.Qf=="tripod"?-90:90);this.Cd=!1;this.hI=this.Aja=this.yv=void 0;this.D6a=this.Qf=="tripod"?1:-1;this.Il=this.dm=this.Nh=null});a.prototype.hc=function(){b.prototype.hc.call(this); this.Nh=(new d(k.ia)).ko(this.zs.bind(this));this.dm=(new d(k.xc)).mr(this.PH.bind(this));g.ba(this.C,"angle distance hfov image.levels.url inertia rotate".split(" "),this.Rg,!0)};a.prototype.mc=function(){this.Il&&this.Il.dispose();this.Il=null;this.Nh.dispose();this.dm.dispose();g.da(this.C,"angle distance hfov image.levels.url inertia rotate".split(" "),this.Rg);b.prototype.mc.call(this)};a.prototype.Rg=function(){this.set("angle",this.C.get("angle"));this.set("distance",this.C.get("distance")); this.set("hfov",this.C.get("hfov"));var q=f.gfb(this.C,this.get("panoramaPixelsPerDegree"));this.set("imageURL",q&&q.get("url"));this.set("imageWidth",q&&q.get("width"));this.set("imageHeight",q&&q.get("height"));this.set("inertia",this.C.get("inertia"));this.set("rotate",this.C.get("rotate"))};a.prototype.hq=function(){var q=b.prototype.hq.call(this);this.Nh.jg(q);this.dm.jg(q);return q};a.prototype.za=function(q){this.Sla();this.dO(q);b.prototype.za.call(this,q)};a.prototype.Sla=function(){this.W("imageURL")&& this.get("imageURL")&&(this.set("textureSource",new c(this.get("imageURL"))),this.set("contentWidth",this.get("imageWidth")),this.set("contentHeight",this.get("imageHeight")))};a.prototype.zs=function(){this.o(k.vd);this.o(k.ia)};a.prototype.PH=function(q,r){var t=0;r.lw(function(u){(u=r.Nn(u))&&(t+=u.percent)});this.o(new p(k.xc,t/r.zd.length))};a.prototype.dO=function(q){this.set("rendererYaw",q.Xa);if(this.W("angle","inertia","rotate")||(this.get("rotate")||this.get("inertia"))&&this.W("rendererYaw")){var r= this.get("angle"),t=this.get("rotate"),u=this.get("inertia"),v=this.D6a*q.Xa;t&&(r+=v);var w=0,x=r-v;this.yv!==void 0&&(u&&(t?(w=m(v,this.hI,r,this.yv,this.Aja,q.Af),r=this.yv+w*q.Af):(w=m(v,this.hI,x,this.DDa,this.Aja,q.Af),x=this.DDa+w*q.Af,r=x+v)),this.yv!=r&&this.Na());this.DDa=x;this.yv=r;this.Aja=w;this.hI=v;this.set("rotationZ",-r)}};a.prototype.ao=function(q){if(q.ag==k.Lm){var r=!q.qm()&&this.bt(q);r&&(q.LD(this.C),this.C.get("useHandCursor")&&q.WI(this.C),q.om(this.get("distance")));this.Cd!= r&&(this.Cd=r,this.C.o(this.Cd?k.uc:k.Eb),q.Bw()&&this.C.o(this.Cd?k.UF:k.Qr))}else q.ag==k.Yf&&!q.qm()&&this.bt(q)&&(this.C.jP(k.ma,!0).length>1&&q.du(this.C),q.om(this.get("distance")),this.C.o(k.ma))};a.prototype.bt=function(q){return this.Fy(q.Qs).some(function(r){var t=this.z1a();return t&&t.ax(r.x,r.y)}.bind(this))};a.prototype.z1a=function(){if(this.Il)return this.Il;var q=this.get("textureSource");if(q=q&&q.yg())this.Il=new l(q);return this.Il};return a}); define("tdv/player/view/panorama/renderer/object/ParticleCylinders","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/panorama/renderer/object/Base tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/view/panorama/renderer/object/Base"),k=a("tdv/player/view/util/XR");a=m.extend(g,function(){g.call(this);this.wi=new THREE.Matrix4;this.xHa=!1;this.Dj=new THREE.Matrix4; this.eh=null;this.vn=new THREE.Matrix4;this.SU=this.EU=0;this.kR=.75;this.RR=.5;this.jv=4;this.Kha=0;this.lv=-2;this.vs=3;this.L2=0;this.XG=7;this.xU=this.iD=1;this.oT=.15;this.YG=this.$H=0;this.P1=this.n4=n.ca;this.y5=this.r5=1E3});var e=Math.PI/180,b=new THREE.Matrix4;a.prototype.Co=function(){};a.prototype.hc=function(){g.prototype.hc.call(this);this.o(h.vd);this.o(h.ia)};a.prototype.mc=function(){this.Lda()};a.prototype.Vl=function(){this.Co();this.WU()};a.prototype.Wl=function(){this.Na()};a.prototype.WU= function(){this.eh&&(this.Lda(),this.ixa())};a.prototype.E0=function(){};a.prototype.ixa=function(){this.s7a();this.eh=new THREE.Group;for(var c=this.P1==n.PLAYING,d=this.$H,f=this.YG;f+d>0;){var l=Math.random()*(f+d)<=f;l?f--:d--;var p=this.E0();p.matrixAutoUpdate=!1;p.overdraw=!1;p.material.opacity=0;p.userData={Heb:l,XP:new THREE.Matrix4,lIa:new THREE.Matrix4,Tqa:new THREE.Matrix4,y:void 0,fUa:void 0,IE:c};this.eh.add(p);c&&this.bka(p,this.lv,this.vs);this.q7a(p)}this.EU=c?this.eh.children.length: 0;this.Fma.add(this.eh);this.Xva()};a.prototype.Lda=function(){if(this.eh){this.eh.parent&&this.eh.parent.remove(this.eh);for(var c=0,d=this.eh&&this.eh.children.length;c80&&f<100);var l=Math.random()*360,p=Math.sin(l*e)*Math.sin(f*e)*d,q=-Math.cos(f*e)*d;d*=Math.cos(l*e)*Math.sin(f*e);c.userData.fUa=q*this.iD;c.userData.lIa.makeTranslation(p,q,d);c.userData.Tqa.makeRotationY(l* e);c.userData.Tqa.multiply(b.makeRotationX(-f*e))};a.prototype.za=function(c){g.prototype.za.call(this,c);this.nab(c);this.Fma=c.sh;this.Fma!=(this.eh&&this.eh.parent)?(this.Lda(),this.Fma&&this.ixa()):this.W("index")&&this.Xva();this.Oab(c)};a.prototype.nab=function(c){c=c.Va&&k.getType()==k.Kx.mo;c!=this.Eza&&(this.Eza=c)&&setTimeout(function(){this.eh&&this.WU()}.bind(this),0)};a.prototype.Oab=function(c){if(this.eh){this.W("composedTranslationX","composedTranslationY","composedTranslationZ")&& (this.xHa=this.get("composedTranslationX")!=0||this.get("composedTranslationY")!=0||this.get("composedTranslationZ")!=0,this.wi.makeTranslation(-this.get("composedTranslationX")*this.jv,this.get("composedTranslationY")*this.jv,this.get("composedTranslationZ")*this.jv));var d=this.n4==n.PLAYING,f=this.eh.children,l=f.length,p=d?Math.round(l*c.Af/this.r5):0;if(this.EU+p>0){this.SU=d?0:Math.min(this.EU,this.SU+Math.round(l*c.Af/this.y5));c=this.get("composedAlpha");for(d=0;d 0)p--,q.userData.IE=!0,this.EU++,this.bka(q,this.vs,this.vs+(this.vs-this.lv));else continue;q.userData.XP.multiply(q.userData.lIa);q.userData.y+=q.userData.fUa;if(q.userData.ythis.vs){if(this.SU>0){this.SU--;q.userData.IE=!1;this.EU--;q.material.opacity=0;continue}var r=q.userData.ythis.vs-this.kR&&(r*=(this.vs-q.userData.y)/this.kR);q.material.opacity=r* this.xU;this.xHa?(q.matrix.copy(this.wi),q.matrix.multiply(q.userData.XP)):q.matrix.copy(q.userData.XP);q.matrix.multiply(q.userData.Tqa);q.matrixWorldNeedsUpdate=!0}this.Na()}}};a.prototype.Xva=function(){if(this.eh)for(var c=this.get("index"),d=0;d0);this.W("textureSource","isVideoTexture")&&r&&r.aZ(this.get("isVideoTexture"))},FD:function(){if(this.W("blending","chromaColor","chromaThreshold","chromaSmoothing","premultipliedAlpha","side")){var q=new e.Rp;q.QD=this.get("blending");q.dw=this.get("chromaColor");q.LW=this.get("chromaThreshold");q.KW=this.get("chromaSmoothing"); q.premultipliedAlpha=this.get("premultipliedAlpha");q.side=this.get("side");this.set("materialConfig",q)}},Uab:function(){if(this.W("meshGroup","projected","visible")){var q=this.get("projected")&&this.get("visible")?g.cca:g.VQ;b.tm(this.get("meshGroup")).forEach(function(r){f.qK(r,q)}.bind(this))}},Dn:function(){this.W("visible","composedAlpha","image","state","visibleOnStop")&&this.set("inView",this.get("visible")&&this.get("composedAlpha")>0&&(this.get("visibleOnStop")||this.get("state")!=n.ca)); this.W("composedAlpha","meshGroup","inView")&&b.nf(this.get("meshGroup"),this.get("inView")?this.get("composedAlpha"):0);this.eq&&this.eq.kg(this.get("inView"))},m3:function(){this.lb&&k.Oa("AnimatedImageResource",this.lb)?this.set("visibleOnStop",this.lb.get("visibleOnStop")):this.set("visibleOnStop",!0)},p3:function(){this.set("levelURL",this.hb.get("url"))},MM:function(){this.Lwa()},Lwa:function(){this.eq&&(this.eq.clear(),this.eq=null);this.Ic&&(this.Ic.h(h.V,this.DS,this,!0),this.Ic.h(h.Pd,this.Bza, this,!0),this.Ic.clear(),this.Ic=null);this.Il&&(this.Il.dispose(),this.Il=null);this.get("textureSource")&&(this.Tja(),this.set("textureSource",null));this.lb&&(this.Z6a(),this.lb=null);this.hb&&(this.b7a(),this.hb=null)},lXa:function(){m.ba(this.lb,["visibleOnStop"],this.m3,!0)},Z6a:function(){m.da(this.lb,["visibleOnStop"],this.m3)},oXa:function(){m.ba(this.hb,["url"],this.p3,!0)},b7a:function(){m.da(this.hb,["url"],this.p3)},Cza:function(){this.Tja();var q=this.get("image");if(k.Oa("AnimatedImageResource", q)){this.Ic=new p(this.get("textureSource").yg(),q.get("rowCount",1),q.get("colCount",1),q.get("frameDuration"),q.get("frameCount",q.get("rowCount",1)*q.get("colCount",1)),q.get("repeat"),q.get("finalFrame")=="first");var r=this.Ic.If();this.Ic.bind(h.Pd,this.Bza,this,!0);this.Ic.bind(h.V,this.DS,this,!0);this.eq=new c(q,this.Ic);this.set("visibleOnStop",q.get("visibleOnStop"));this.set("state",this.Ic.getState())}else r=this.get("textureSource").yg(),this.Il=new l(r),this.set("visibleOnStop",!0), this.set("state",null);this.Dn();this.set("contentWidth",r.width);this.set("contentHeight",r.height);this.get("textureSource").bo(r);this.o(h.vd);this.o(h.ia)},Dza:function(){this.Tja();this.o(h.vd);this.o(h.ia)},Bza:function(){this.set("state",this.Ic.getState())},DS:function(q){var r=this.get("composedTranslationX")!=0||this.get("composedTranslationY")!=0||this.get("composedTranslationZ")!=0,t=!!this.get("blendingActive");q=q.data.frameIndex;var u=this.eAa>q;this.eAa=q;this.get("textureSource").update(!u|| r||t);this.Na()},AXa:function(){var q=this.get("textureSource");q.bind(h.ia,this.Cza,this,!0);q.bind(h.$c,this.Dza,this,!0)},Tja:function(){var q=this.get("textureSource");q.h(h.ia,this.Cza,this,!0);q.h(h.$c,this.Dza,this,!0)},Tfa:function(q){return this.Il&&this.Il.source==q.source?this.Il.info(q.x,q.y):l.info(q.source,q.x,q.y)}}}); define("tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/parser/ClassInfo tdv/player/view/util/Color tdv/view/constants/Cursor tdv/util/Map".split(" "),function(a){function m(d){d=d.get("mapColor");return d=="image"||d=="transparent"||d=="any"}function h(d){d=d.get("mapColor");return d!="image"&&d!="transparent"&&d!="any"}var n=a("tdv/binding/BindingsHandler"),g=a("tdv/constants/EventName"),k=a("tdv/player/parser/ClassInfo"), e=a("tdv/player/view/util/Color"),b=a("tdv/view/constants/Cursor"),c=new (a("tdv/util/Map"));return{pC:function(){this.set("beamEnabled",!1);this.l3=this.l3.bind(this);this.E1=null;this.zL={};this.xj=[];this.Ou=[];this.Ly=null},Lkb:function(d){this.Ly!=d&&(this.Mja(),this.Ly=d,this.Cva())},Sq:function(d){this.pD=d.Xa;this.oD=d.pitch},Mja:function(){this.Ly&&n.da(this.Ly,["areas"],this.l3)},Cva:function(){this.Ly&&n.ba(this.Ly,["areas"],this.l3,!0)},nN:function(){this.Mja();this.Cva()},pN:function(){this.FEa([]); this.Mja()},l3:function(){var d=this.Ly.get("areas",[]);k.Oa("HotspotPanoramaOverlayImage",this.C)||k.Oa("FlatHotspotPanoramaOverlayImage",this.C)||k.Oa("QuadHotspotPanoramaOverlayImage",this.C)?this.E1=d.filter(m):this.E1=d.filter(h);this.E1.forEach(function(f){c.set(f,0)})},ao:function(d){if(d.ag==g.Lm){var f=this.Efa(d);if(f.length>0){d.LD(f);var l=this.i1a(f),p;for(p in l)d.fIa(l[p],p);d.om(this.get("distance"));(l=this.jc(f,d.MJ()))&&d.A6(l,this.BD(d.MJ()))}f=this.j1a(d,f);this.FEa(f,d.Bw(), d.MJ())}else if(d.ag==g.Yf){if(f=this.Efa(d),f.length>0){var q=!1;f.forEach(function(r){r.o(g.ma);!q&&r.jP(g.ma,!0).length>1&&(q=!0)});d.om(this.get("distance"));q&&d.du(f)}}else d.ag==g.Du?(f=this.Efa(d),f.length>0&&(q=!1,f.forEach(function(r){var t={};d.Bw()&&(t=d.Mw().ALa());r.o(g.Sa,t);!q&&r.jP(g.Sa,!0).length>1&&(q=!0)}),this.Ou=f,d.om(this.get("distance")),q&&d.du(f))):d.ag==g.TB&&this.Ou.length&&(this.Ou.forEach(function(r){var t={};d.Bw()&&(t=d.Mw().ALa());r.o(g.$a,t)}),this.Ou=[])},j1a:function(d, f){if(!d.jpa())return this.zL={},f;d=d.Sza?"main":"secondary";this.zL[d]=f;f=[];for(d in this.zL)for(var l=0;l=0&&l=="";p--){var q=d[p];if(!f||q.get("displayTooltipInTouchScreens")&& this.La.P.get("displayTooltipInTouchScreens")!==!1)l=q.get("toolTip","")}return l},BD:function(d){if(d){d=this.get("yaw")-this.pD;var f=this.get("pitch")-this.oD;return Math.sqrt(d*d+f*f)}return 0},i1a:function(d){var f={};this.Ly.get("useHandCursor")===!0?f[b.qf]=d:this.Ly.get("useHandCursor")!==!1&&d.forEach(function(l){var p;(p=l.get("useHandCursor")?b.qf:l.get("cursor"))&&(f[p]?f[p].push(l):f[p]=[l])});return f}}}); define("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController",["require","tdv/player/view/util/Device","tdv/player/script/PanoramaPoint"],function(a){function m(){this.dj=void 0;this.xM=this.cI=0;this.Rd=!0;this.u0=this.mla=this.Afa=void 0;this.Ld=!1}var h=a("tdv/player/view/util/Device"),n=a("tdv/player/script/PanoramaPoint"),g=Math.PI/180,k=h.Tb()==h.Ji?[-.5,0]:[0,0];m.prototype.ZE=function(e){this.dj!=e&&(this.dj=e,this.Rd=!0)};m.prototype.XE=function(e){if(ethis.cI+k[1])this.cI=e,this.Rd=!0};m.prototype.get=function(e,b){b!==void 0||(b=!0);this.Rd&&(this.za(),this.Rd=!1);var c=this.Afa.get(e)||0;e=(this.mla.get(e)||0)-c;b&&(e>180?e-=360:e<-180&&(e+=360));return c+e*this.u0};m.prototype.Doa=function(){this.Rd&&(this.za(),this.Rd=!1);for(var e=this.Afa.get("vertices"),b=this.mla.get("vertices"),c=[],d=0;d180?l-=360:l<-180&&(l+=360);var p=e[d].get("pitch")||0,q=(b[d].get("pitch")||0)- p;c.push(new n(f+l*this.u0,p+q*this.u0))}e=this.dT&&this.dT.length==c.length;for(d=0;dthis.cI){if(e==0){b=e;break}--e}else{if(e==c){b=e;break}e+=1}}this.Afa=this.dj[e];this.mla=this.dj[b];e=f-d;this.u0=e>0?(this.cI-d)/e:0};m.prototype.oza=function(e){return this.dj[e].get("timestamp")};return m}); define("tdv/player/view/panorama/renderer/object/position/FlatHotspotImagePositionMixin",["require","tdv/binding/BindingsHandler","tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"],function(a){var m=a("tdv/binding/BindingsHandler"),h=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController");return{iq:function(){this.set("playbackPositions",null);this.set("scaleMode",void 0);this.set("distance",void 0);this.ue=this.ue.bind(this);this.Ib=new h},Aq:function(){m.ba(this.C, "horizontalAlign verticalAlign scale scaleMode width height offsetX offsetY distance playbackPositions".split(" "),this.ue,!0)},Cq:function(){m.da(this.C,"horizontalAlign verticalAlign scale scaleMode width height offsetX offsetY distance playbackPositions".split(" "),this.ue)},ue:function(){this.set("horizontalAlign",this.C.get("horizontalAlign"));this.set("verticalAlign",this.C.get("verticalAlign"));this.set("scale",this.C.get("scale"));this.set("scaleMode",this.C.get("scaleMode"));this.set("width", this.C.get("width"));this.set("height",this.C.get("height"));this.set("offsetX",this.C.get("offsetX",this.C.get("width")*.5));this.set("offsetY",this.C.get("offsetY",this.C.get("height")*.5));this.set("distance",this.C.get("distance"));this.set("playbackPositions",this.C.get("playbackPositions"))},dg:function(){this.W("playbackPositions","currentTime")&&(this.Ib.ZE(this.get("playbackPositions")),this.Ib.XE(this.get("currentTime")),this.set("yaw",this.Ib.get("yaw")),this.set("pitch",this.Ib.get("pitch")), this.set("roll",this.Ib.get("roll")),this.set("alpha",this.Ib.pw()))}}}); define("tdv/player/view/panorama/renderer/object/FlatHotspotImage","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/ComposedWebGLObject tdv/player/view/panorama/renderer/object/geometry/FlatRectangleGeometryMixin tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin tdv/player/view/panorama/renderer/object/position/FlatHotspotImagePositionMixin tdv/player/view/panorama/renderer/object/util/LevelUtil".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject"),e=a("tdv/player/view/panorama/renderer/object/geometry/FlatRectangleGeometryMixin"),b=a("tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin"),c=a("tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin"),d=a("tdv/player/view/panorama/renderer/object/position/FlatHotspotImagePositionMixin"), f=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),l=0;a=m.extend(k,e,d,b,c,function(p){k.call(this);this.set("tag","FlatHotspotImage");this.set("id","flat_hs_image_"+l++);this.C=p;this.Sl.push(this.C);this.Rg=this.Rg.bind(this)});a.prototype.hc=function(){k.prototype.hc.call(this);h.ba(this.C,["image.levels"],this.Rg,!0)};a.prototype.mc=function(){h.da(this.C,["image.levels"],this.Rg);k.prototype.mc.call(this)};a.prototype.Rg=function(){this.set("image",this.C.get("image"));this.set("level", f.pfb(this.C))};a.prototype.za=function(p){this.II();k.prototype.za.call(this,p);this.W("inView")&&this.C.o(this.get("inView")?n.od:n.jd)};a.prototype.II=function(){if(this.W("meshGroup","panoramaId","id")){var p=this.get("meshGroup");p&&p.children.forEach(function(q){g.setAttribute(q,g.qF,this.get("panoramaId"));g.setAttribute(q,g.Eaa,this.get("id"))}.bind(this))}};return a}); define("tdv/player/view/panorama/renderer/object/overlay/FocusedMixin",["require","tdv/constants/EventName","tdv/player/view/panorama/renderer/3d/util/SceneUtil"],function(a){var m=a("tdv/constants/EventName"),h=a("tdv/player/view/panorama/renderer/3d/util/SceneUtil");a={Nla:function(f){if(this.La){var l=this.K1a(f);l?(f=this.Nya(this).some(function(p){return l.intersectsObject(p)}),this.ska(f)):this.ska(!1)}},Nya:function(f){var l=f.get("meshGroup"),p=[];l&&l.traverse(function(q){q.geometry&&q.visible&& (Array.isArray(q.material)?q.material.some(function(r){return r.opacity>0}):q.material.opacity>0)&&p.push(q)});f.Cb().forEach(function(q){p=p.concat(this.Nya(q))}.bind(this));return p}};var n=new THREE.Frustum,g=new THREE.PerspectiveCamera,k=90,e=.5,b=new THREE.Matrix4,c=Math.PI/180,d=180/Math.PI;a.K1a=function(f){f=h.getCamera(f.sh);if(!f)return null;var l=this.La.P.get("focusAreaScale");if(!g.projectionMatrix.equals(f.projectionMatrix)||!g.matrixWorldInverse.equals(f.matrixWorldInverse)||k!=f.fov|| e!=l){g.copy(f);var p=g.fov*.5*c;g.fov=2*Math.atan2(e*Math.sin(p),Math.cos(p))*d;g.updateProjectionMatrix();n.setFromProjectionMatrix(b.copy(g.projectionMatrix).multiply(g.matrixWorldInverse));k=f.fov;e=l}return n};a.qfa=function(){this.Sga=!1};a.rfa=function(){this.ska(!1)};a.rka=function(f){this.gya=f};a.ska=function(f){this.Sga!==f&&(this.Sga=f,this.gya&&this.gya.o(this.Sga?m.QUa:m.RUa))};return a}); define("tdv/player/view/panorama/renderer/object/Hotspot","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/overlay/FocusedMixin tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/util/Device tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/events/ProgressEvent tdv/player/view/util/XR tdv/player/view/util/xr/pointer/PointerState".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/object/Base"),k=a("tdv/player/view/panorama/renderer/object/overlay/FocusedMixin"),e=a("tdv/player/view/panorama/renderer/object/util/EventAggregator");a("tdv/player/view/util/Device");var b=a("tdv/view/util/Ease"),c=a("tdv/view/util/EaseDimension"),d=a("tdv/view/events/ProgressEvent"),f=a("tdv/player/view/util/XR"),l=a("tdv/player/view/util/xr/pointer/PointerState");a=m.extend(g, k,function(p){g.call(this);this.C=p;this.Sl.push(this.C);this.I3=this.I3.bind(this);this.H3=this.H3.bind(this);this.J3=this.J3.bind(this);this.$r(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","Hotspot");this.set("over",!1);this.set("centerOver",!1);this.set("enabled",!0);this.set("visible",!1);this.set("alpha",0);this.set("inVR",!1);this.set("overlaysEnabled",!0);this.set("enabledInVR",!0);this.set("enabledInVRWithGazePointer",!0);this.set("enabledInStandard",!0);this.set("interactionEnabled", !0);this.set("centerOverDisplay",!1);this.set("rollOverDisplay",!1);this.set("loadingActive",!1);this.cda=this.dda=this.Eq=this.xe=this.sg=null;this.xj=[];this.bda=[];this.Fn=null;this.rka(this.C)});a.prototype.hc=function(){this.sg=(new e(n.ia)).ko(this.KH.bind(this));this.xe=(new e(n.xc)).mr(this.OH.bind(this));this.Eq=(new e(n.vd)).ko(this.X4a.bind(this));this.dda=(new e(n.uc)).mr(this.Q4a.bind(this));this.cda=(new e(n.Eb)).mr(this.P4a.bind(this));g.prototype.hc.call(this);h.ba(this.C,["items", "rollOverItems","maps","rollOverMaps"],this.I3,!0);h.ba(this.C,"fadeInDuration fadeOutDuration enabledInVR enabledInStandard enabledInSurfaceSelection enabledInVRWithGazePointer enabled interactionEnabled centerOverDisplay rollOverDisplay".split(" "),this.J3,!0);h.ba(this.C,["areas"],this.H3,!0);this.qfa()};a.prototype.mc=function(){this.rfa();this.aO([],this.xj);this.Gla([],this.bda);this.sg.dispose();this.xe.dispose();this.Eq.dispose();this.dda.dispose();this.cda.dispose();h.da(this.C,["items", "rollOverItems","maps","rollOverMaps"],this.I3);h.da(this.C,"fadeInDuration fadeOutDuration enabledInVR enabledInStandard enabledInSurfaceSelection enabledInVRWithGazePointer enabled interactionEnabled centerOverDisplay rollOverDisplay".split(" "),this.J3);h.da(this.C,["areas"],this.H3);this.get("visible")&&this.C.o(n.jd);g.prototype.mc.call(this)};a.prototype.I3=function(){this.set("items",this.La.wA(this.C.get("items",[])));this.set("rollOverItems",this.La.wA(this.C.get("rollOverItems",[])));this.set("maps", this.La.wA(this.C.get("maps",[])));this.set("rollOverMaps",this.La.wA(this.C.get("rollOverMaps",[])));var p=[].concat(this.get("maps"),this.get("items"),this.get("rollOverMaps"),this.get("rollOverItems"));p.forEach(function(q){q.Lkb(this.C)}.bind(this));this.get("items").forEach(function(q){q.set("projected",this.C.get("projected"))}.bind(this));this.bi(p);this.sg.jg(p);this.xe.jg(p);this.Eq.jg(p)};a.prototype.J3=function(){this.set("fadeInDuration",this.C.get("fadeInDuration"));this.set("fadeOutDuration", this.C.get("fadeOutDuration"));this.set("enabled",this.C.get("enabled",!0));this.set("enabledInVR",this.C.get("enabledInVR"));this.set("enabledInStandard",this.C.get("enabledInStandard",!0));this.set("enabledInSurfaceSelection",this.C.get("enabledInSurfaceSelection",!0));this.set("enabledInVRWithGazePointer",this.C.get("enabledInVRWithGazePointer",this.C.get("enabledInVR")));this.set("centerOverDisplay",this.C.get("centerOverDisplay"));this.set("rollOverDisplay",this.C.get("rollOverDisplay",!1)); this.set("interactionEnabled",this.C.get("interactionEnabled",!0))};a.prototype.H3=function(){var p=this.C.get("areas");this.dda.jg(p);this.cda.jg(p)};a.prototype.za=function(p){this.Dn(p);g.prototype.za.call(this,p);this.set("inVR",p.Va);this.set("surfaceSelection",p.xZ);this.set("hotspotsEnabled",p.FJ);this.set("inVRWithGazePointer",p.Va&&f.ud.length===1&&f.ud[0].type===l.WB);this.ye(p);this.Nla(p)};a.prototype.ye=function(){if(this.W("items","rollOverItems","maps","rollOverMaps","over","centerOver", "inVR","hotspotsEnabled","enabledInVR","enabledInStandard","enabledInVRWithGazePointer","surfaceSelection","enabledInSurfaceSelection","enabled","interactionEnabled","rollOverDisplay","centerOverDisplay")||this.Ia&&this.Ia.W("composedAlpha")){var p=!1,q=!1,r=this.get("hotspotsEnabled")&&this.get("enabled")&&(!this.get("inVR")||this.get("enabledInVR"))&&(!this.get("inVRWithGazePointer")||this.get("enabledInVRWithGazePointer"))&&(this.get("inVR")||this.get("enabledInStandard"))&&(!this.get("surfaceSelection")|| this.get("enabledInSurfaceSelection"))&&this.Ia&&this.Ia.get("composedAlpha")>0,t=this.get("interactionEnabled");r&&(p=this.get("centerOver")&&!this.get("inVR"),q=this.get("over")||p,p=!this.get("rollOverDisplay")&&!this.get("centerOverDisplay")||this.get("over")&&this.get("rollOverDisplay")||p&&this.get("centerOverDisplay")!==!1&&this.get("rollOverDisplay"));this.get("rollOverItems").forEach(function(y){y.set("visible",q);y.set("beamEnabled",r&&q&&t)});var u=this.get("rollOverItems").length==0;this.get("items").forEach(function(y){y.set("visible", u||!q);y.set("beamEnabled",r&&(u||!q)&&t)});this.get("rollOverMaps").forEach(function(y){y.set("visible",!1);y.set("beamEnabled",r&&q&&t)});var v=this.get("rollOverMaps").length==0;this.get("maps").forEach(function(y){y.set("visible",!1);y.set("beamEnabled",r&&(v||!q)&&t)});this.set("visible",p)}if(this.W("visible")){p=this.get("alpha");var w=this.get("visible")?1:0,x=(this.get("visible")?this.get("fadeInDuration"):this.get("fadeOutDuration"))*Math.abs(p-w);this.Fn=new b("linear",[new c("alpha",p, w)],Math.max(x,1));this.Na();this.get("visible")?this.C.o(n.od):this.C.o(n.jd)}};a.prototype.Dn=function(p){this.Fn&&(this.Fn.Ve()?this.Fn=null:(this.Fn.Nb(p.Af),this.set("alpha",this.Fn.ob("alpha"))),this.Na())};a.prototype.KH=function(){this.hh();this.o(n.ia)};a.prototype.X4a=function(){this.hh();this.o(n.vd)};a.prototype.OH=function(){this.hh()};a.prototype.hh=function(){var p=0;this.xe.lw(function(q){var r=0,t;this.sg.Nn(q)?r=100:(t=this.xe.Nn(q))&&(r=t.percent);p+=r}.bind(this));this.o(new d(n.xc, p/this.xe.zd.length))};a.prototype.Q4a=function(p){p.data.center?this.Gla([p.source],[]):this.aO([p.source],[])};a.prototype.P4a=function(p){p.data.center?this.Gla([],[p.source]):this.aO([],[p.source])};a.prototype.aO=function(p,q){this.AGa(this.xj,p,q);this.set("over",this.xj.length>0)};a.prototype.Gla=function(p,q){this.AGa(this.bda,p,q);this.set("centerOver",this.bda.length>0)};a.prototype.AGa=function(p,q,r){q||(q=[]);r||(r=[]);r.forEach(function(t){t=p.indexOf(t);t>=0&&p.splice(t,1)});q.forEach(function(t){p.indexOf(t)< 0&&p.push(t)})};return a}); define("tdv/player/view/panorama/renderer/object/position/HotspotImagePositionMixin",["require","tdv/binding/BindingsHandler","tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"],function(a){var m=a("tdv/binding/BindingsHandler"),h=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController");return{iq:function(){this.set("playbackPositions",null);this.set("scaleMode",void 0);this.set("distance",void 0);this.ue=this.ue.bind(this);this.Ib=new h},Aq:function(){m.ba(this.C, "horizontalAlign verticalAlign scale scaleMode distance playbackPositions".split(" "),this.ue,!0)},Cq:function(){m.da(this.C,"horizontalAlign verticalAlign scale scaleMode distance playbackPositions".split(" "),this.ue)},ue:function(){this.set("horizontalAlign",this.C.get("horizontalAlign"));this.set("verticalAlign",this.C.get("verticalAlign"));this.set("scaleMode",this.C.get("scaleMode"));this.set("distance",this.C.get("distance"));this.set("scale",this.C.get("scale"));this.set("playbackPositions", this.C.get("playbackPositions"))},dg:function(){this.W("playbackPositions","currentTime")&&(this.Ib.ZE(this.get("playbackPositions")),this.Ib.XE(this.get("currentTime")),this.set("yaw",this.Ib.get("yaw")),this.set("pitch",this.Ib.get("pitch")),this.set("roll",this.Ib.get("roll")),this.set("rotationX",this.Ib.get("rotationX")),this.set("rotationY",this.Ib.get("rotationY")),this.set("hfov",this.Ib.get("hfov")),this.set("vfov",this.Ib.get("vfov")),this.set("alpha",this.Ib.pw()))}}}); define("tdv/player/view/panorama/renderer/object/HotspotImage","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/ComposedWebGLObject tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin tdv/player/view/panorama/renderer/object/position/HotspotImagePositionMixin tdv/player/view/panorama/renderer/object/util/LevelUtil".split(" "), function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject"),e=a("tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin"),b=a("tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin"),c=a("tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin"),d=a("tdv/player/view/panorama/renderer/object/position/HotspotImagePositionMixin"), f=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),l=0;a=m.extend(k,e,b,c,d,function(p){k.call(this);this.set("tag","HotspotImage");this.set("id","hs_image_"+l++);this.set("side",THREE.DoubleSide);this.set("wasInView",!1);this.C=p;this.Sl.push(this.C);this.Rg=this.Rg.bind(this)});a.prototype.hc=function(){k.prototype.hc.call(this);h.ba(this.C,["image.levels"],this.Rg,!0)};a.prototype.mc=function(){h.da(this.C,["image.levels"],this.Rg);k.prototype.mc.call(this)};a.prototype.Rg=function(){this.set("image", this.C.get("image"));this.set("level",f.xfb(this.C,this.get("panoramaPixelsPerDegree")))};a.prototype.za=function(p){this.II();k.prototype.za.call(this,p);this.W("inView")&&(p=this.get("inView"),p!==this.get("wasInView")&&(this.set("wasInView",p),this.C.o(p?n.od:n.jd)))};a.prototype.II=function(){if(this.W("meshGroup","panoramaId","id")){var p=this.get("meshGroup");p&&p.children.forEach(function(q){g.setAttribute(q,g.qF,this.get("panoramaId"));g.setAttribute(q,g.Eaa,this.get("id"))}.bind(this))}}; return a}); define("tdv/player/view/util/geo/Rectangle",["require","tdv/player/view/util/geo/Point","tdv/player/view/util/geo/Vector"],function(a){function m(g,k,e){this.Lg=g||new h(0,0,0);this.Ek=k||new h(1,0,0);this.CE=e||new h(0,1,0)}var h=a("tdv/player/view/util/geo/Point"),n=a("tdv/player/view/util/geo/Vector");m.prototype.clone=function(){return new m(this.Lg.clone(),this.Ek.clone(),this.CE.clone())};m.prototype.apply=function(g){g.yO(this.Lg);g.yO(this.Ek);g.yO(this.CE)};m.prototype.intersection=function(g, k){var e=n.YD(g.Lg,g.Ek),b=n.YD(this.Lg,g.Lg),c=n.YD(this.Lg,this.Ek);c.d7(n.YD(this.Lg,this.CE));e=e.VO(c);if(!(e==0||k&&e<0))return k=-c.VO(b)/e,new h(g.Lg.x+(g.Ek.x-g.Lg.x)*k,g.Lg.y+(g.Ek.y-g.Lg.y)*k,g.Lg.z+(g.Ek.z-g.Lg.z)*k)};m.prototype.V9=function(g,k){var e=n.YD(this.Lg,this.Ek),b=n.YD(this.Lg,this.CE);g=n.YD(this.Lg,g);var c=e.Boa(),d=b.Boa();return k?new h(g.VO(e)/(c*c),g.VO(b)/(d*d),0):new h(g.VO(e)/c,g.VO(b)/d,0)};return m}); define("tdv/player/view/util/geo/Projection","require tdv/player/view/util/geo/Fov tdv/player/view/util/geo/Frustum tdv/player/view/util/geo/Line tdv/player/view/util/geo/Point tdv/player/view/util/geo/Rectangle tdv/player/view/util/geo/Transformation tdv/view/constants/ScaleMode".split(" "),function(a){var m=a("tdv/player/view/util/geo/Fov"),h=a("tdv/player/view/util/geo/Frustum"),n=a("tdv/player/view/util/geo/Line"),g=a("tdv/player/view/util/geo/Point"),k=a("tdv/player/view/util/geo/Rectangle"), e=a("tdv/player/view/util/geo/Transformation"),b=a("tdv/view/constants/ScaleMode"),c=Math.PI/180,d=180/Math.PI,f=new e,l=new h,p=new k,q=new g;return{get:function(r,t,u,v,w,x,y,z){r*=c;t*=c;t=new g(Math.sin(-r)*Math.cos(t),Math.sin(t),Math.cos(-r)*Math.cos(t));f.identity();f.rotateY(u*c);f.rotateZ(w*c);f.rotateX(v*c);t.apply(f);return t.z>0?(l.RRa(y),l.lRa(z),l.oK(x*c),l.project(t),t):null},qob:function(r,t,u){f.identity();f.rotateX(-u.Jc()*c);f.rotateZ(-u.zg()*c);f.rotateY(-u.Kc()*c);q.set(r,t,0); r=u.unproject(q).YLa();r.apply(f);return{Xa:r.Kc()*d,pitch:r.Jc()*d}},vqb:function(r,t,u,v,w,x,y,z,A,D,F,C,B,H){H||(H=b.GB);B||(B=m.wm(C,D,F));C||(C=m.Ar(B,D,F));var E=D*.5/Math.tan(C*.5*c),G=E*Math.tan(C*.5*c)*2,N=E*Math.tan(B*.5*c)*2;p.Lg.set(+G*.5,+N*.5,0);p.Ek.set(-G*.5,+N*.5,0);p.CE.set(+G*.5,-N*.5,0);f.identity();f.rotateZ(-A*c);f.rotateX(-y*c);f.rotateY(z*c);f.translate(0,0,E);f.rotateZ(-x*c);f.rotateX(-w*c);f.rotateY(-v*c);f.rotateY(u.Kc()*c);f.rotateZ(u.zg()*c);f.rotateX(u.Jc()*c);p.apply(f); q.set(r,t,0);w=p.intersection(u.unproject(q));v={x:void 0,y:void 0,xScaled:void 0,yScaled:void 0};w&&w.z>0&&(w=p.V9(w),v.xScaled=v.x=w.x/G,v.yScaled=v.y=w.y/N);if(H!=b.GB){switch(H){case b.uj:var O=Math.min(m.Ar(B,D,F),C);var R=Math.min(m.wm(C,D,F),B);break;case b.Kr:O=Math.max(m.Ar(B,D,F),C);R=Math.max(m.wm(C,D,F),B);break;case b.Tp:O=C;R=m.wm(C,D,F);break;case b.Pk:O=m.Ar(B,D,F),R=B}if(O!=C||R!=B)G=E*Math.tan(O*.5*c)*2,N=E*Math.tan(R*.5*c)*2,p.Lg.set(+G*.5,+N*.5,0),p.Ek.set(-G*.5,+N*.5,0),p.CE.set(+G* .5,-N*.5,0),p.apply(f),q.set(r,t,0),(w=p.intersection(u.unproject(q)))&&w.z>0&&(w=p.V9(w),v.xScaled=w.x/G,v.yScaled=w.y/N)}return v},Mpb:function(r,t,u,v,w,x,y){y=w*.5/Math.tan(y*.5*c);p.Lg.set(+w*.5,+x*.5,y);p.Ek.set(-w*.5,+x*.5,y);p.CE.set(+w*.5,-x*.5,y);f.identity();f.rotateZ(-v*c);f.rotateX(-u*c);f.rotateY(-t*c);f.rotateY(r.Kc()*c);f.rotateZ(r.zg()*c);f.rotateX(r.Jc()*c);p.apply(f);r=new n(new g(0,0,0),new g(0,0,1));return(r=p.intersection(r))&&r.z>0?(r=p.V9(r),{x:r.x/w,y:r.y/x}):null}}}); define("tdv/player/view/panorama/renderer/object/geometry/SpriteGeometryMixin",["require","tdv/constants/Priority","tdv/player/view/panorama/renderer/3d/util/GeometryUtil","tdv/player/view/panorama/renderer/3d/util/MeshUtil","tdv/player/view/panorama/renderer/TextureLoader"],function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),g=a("tdv/player/view/panorama/renderer/TextureLoader"),k=Math.PI/ 180;return{ky:function(){this.set("distance",void 0);this.set("width",100);this.set("height",100);this.set("offsetX",void 0);this.set("offsetY",void 0);this.set("centerX",0);this.set("centerY",0);this.set("roll",0);this.Lh=this.oC();this.Dfa=h.SO();this.Io=new THREE.Matrix4;this.KL=new THREE.Matrix4;this.HN=new THREE.Matrix4;this.XAa=new THREE.Matrix4;this.rk=new THREE.Matrix4;this.vn=new THREE.Matrix4;this.Dj=new THREE.Matrix4},Wz:function(e){this.gt(e)},oM:function(){var e=this.get("meshGroup"); return e?n.tm(e)[0]:null},hq:function(){return[0].map(function(e){var b=this.JR();e=n.create(this.Lh[e],b);g.fB(e,g.Or);g.gB(e,g.Au);g.qK(e,m.VQ);g.oZ(e,1);return e}.bind(this))},oC:function(){return[h.SO()]},gt:function(e){var b=!1,c=!1;this.set("rendererYaw",e.Xa);this.set("rendererPitch",e.pitch);this.set("rendererRoll",e.Mg);this.set("rendererCameraFOV",e.lj);this.set("rendererWidth",e.width);this.set("rendererHeight",e.height);this.set("inVR",e.Va);if(this.W("distance","composedTranslationX", "composedTranslationY","composedTranslationZ")){var d=this.get("composedTranslationX")==0&&this.get("composedTranslationY")==0&&this.get("composedTranslationZ")==0&&this.get("distance")!==void 0;this.set("z",d?h.qw(this.get("distance")):h.Et())}this.W("z")&&(this.Io.makeTranslation(0,0,-this.get("z")),c=!0);e.lj&&this.W("z","rendererCameraFOV")&&this.set("rendererHeightZ",Math.tan(e.lj*k*.5)*this.get("z")*2);e.camera&&this.W("rendererYaw","rendererPitch","rendererRoll","rendererCameraFOV","rendererWidth", "rendererHeight","rendererHeightZ","inVR","centerX","centerY")&&(this.KL.copy(e.camera.matrixWorld),b=this.get("rendererHeightZ"),d=b*e.camera.aspect,d=(this.get("centerX")-e.width*.5)*d/e.width*.5,b=(e.height*.5-this.get("centerY"))*b/e.height*.5,this.HN.makeTranslation(d,b,0),b=!0);this.W("roll")&&(this.rk.makeRotationZ(this.get("roll")*k),b=!0);e.lj&&(c||this.W("rendererHeight","inVR","rendererHeightZ","width","height","flipHorizontally"))&&(c=e.Va?512/e.height:1,e=(this.get("flipHorizontally")? -1:1)*this.get("width")*c,c*=this.get("height"),this.vn.makeScale(e,c,1),b=!0);this.W("width","height","offsetX","offsetY")&&(e=.5-this.get("offsetX")/this.get("width"),c=this.get("offsetY")/this.get("height")-.5,this.XAa.makeTranslation(e,c,0),b=!0);b&&(this.Dj.copy(this.KL),this.Dj.multiply(this.Io),this.Dj.multiply(this.HN),this.Dj.multiply(this.rk),this.Dj.multiply(this.vn),this.Dj.multiply(this.XAa),n.qt(this.get("meshGroup"),this.Dj))}}}); define("tdv/player/view/panorama/renderer/object/Sprite",["require","tdv/utils","tdv/player/view/panorama/renderer/object/ComposedWebGLObject","tdv/player/view/panorama/renderer/object/geometry/SpriteGeometryMixin"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject");a=a("tdv/player/view/panorama/renderer/object/geometry/SpriteGeometryMixin");return m.extend(h,a,function(){h.call(this);this.set("tag","Sprite")})}); define("tdv/player/view/panorama/renderer/object/canvas/LensFlareCanvas",["require","tdv/player/view/util/Color"],function(a){function m(n,g,k,e,b,c){this.Lq=g;this.ja=document.createElement("canvas");this.ja.width=this.Lq;this.ja.height=this.Lq;switch(n){case m.IQ:this.j0a(k,e,b,c);break;case m.p_:this.k0a(k,e,b,c)}}var h=a("tdv/player/view/util/Color");m.prototype.hg=function(){return this.Lq};m.prototype.xg=function(){return this.Lq};m.prototype.If=function(){return this.ja};m.prototype.j0a=function(n, g,k,e){var b=this.Lq*.5,c=this.Lq*.5,d=this.Lq*.5,f=this.ja.getContext("2d");g=h.Dp(g);for(var l=f.createRadialGradient(b,c,0,b,c,d),p=0;p0&&(p.set("centerX",y+w*f[l].position),p.set("centerY",z+x*f[l].position));this.vg.set("alpha", r)}};a.prototype.RZa=function(){return f.map(function(l){var p=(new c(l.form,l.DK,l.opacity,l.color,l.AJ,l.BJ)).If(),q=new d;q.bo(p);p=new b;p.set("textureSource",q);p.set("width",l.size);p.set("height",l.size);p.set("offsetX",l.size*.5);p.set("offsetY",l.size*.5);p.set("alpha",0);return p})};a.prototype.L_a=function(){return new e("#ffffff")};var f=[{form:c.p_,position:.1,size:52,DK:128,opacity:.8,color:"#FCFCFC",AJ:[1,.5],BJ:[0,.866]},{form:c.p_,position:.2,size:52,DK:128,opacity:.6,color:"#C8FCC8", AJ:[1,.5],BJ:[0,.866]},{form:c.IQ,position:.36,size:112,DK:128,opacity:.5,color:"#C8C8FC",AJ:[1,.9,.6,0],BJ:[0,.2,.4,1]},{form:c.IQ,position:.47,size:32,DK:128,opacity:.3,color:"#96C8AF",AJ:[1,1,0],BJ:[0,.9,1]},{form:c.IQ,position:.65,size:52,DK:128,opacity:.7,color:"#FCFCFC",AJ:[.7,.7,.2,0],BJ:[0,.1,.4,1]},{form:c.p_,position:.88,size:128,DK:128,opacity:.4,color:"#AF96C8",AJ:[1,.5],BJ:[0,.866]},{form:c.IQ,position:1,size:33,DK:128,opacity:.8,color:"#C89696",AJ:[.8,.8,.6,0],BJ:[0,.2,.4,1]}];return a}); define("tdv/player/view/panorama/renderer/object/MenuButton","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/object/Plane tdv/player/canvas/MenuCanvas tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/view/util/Ease tdv/view/util/EaseDimension tdv/player/view/util/XR".split(" "),function(a){function m(p,q,r){p=(q-p)*(1-r);Math.abs(p)<1E-5&&(p=0);return q-p}var h=a("tdv/utils"),n=a("tdv/binding/BindingsHandler"), g=a("tdv/constants/EventName"),k=a("tdv/player/view/panorama/renderer/object/Plane"),e=a("tdv/player/canvas/MenuCanvas"),b=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),c=a("tdv/view/util/Ease"),d=a("tdv/view/util/EaseDimension"),f=a("tdv/player/view/util/XR");a=h.extend(k,function(p){k.call(this);this.Yb=p;this.As=this.As.bind(this);this.zq=this.ja=null;this.Mz=this.qp=this.Bja=this.vz=void 0;this.Bwa=20;this.$g=null;this.Of=this.Yb.get("opacity",.5);this.vU=this.Yb.get("rollOverOpacity", this.Of);this.t4a=1;this.w4a=.66;this.set("tag","MenuButton");this.set("visible",!1);this.set("over",!1);this.set("centerDistance",void 0)});a.prototype.hc=function(){k.prototype.hc.call(this);n.ba(this.Yb,["label"],this.As,!0)};a.prototype.mc=function(){n.da(this.Yb,["label"],this.As);k.prototype.mc.call(this)};a.prototype.As=function(){this.ja=null};a.prototype.za=function(p){this.ft(p);this.gh(p);this.HI(p);this.dg(p);this.ye(p);k.prototype.za.call(this,p)};a.prototype.ft=function(p){p.Va&&!this.zq&& f.getType()==f.Kx.mo&&this.bi([this.zq=new k])};a.prototype.gh=function(){this.get("visible")&&(this.ja||(this.get("textureSource")||this.set("textureSource",new b),this.ja=new e(this.Yb,[this.Yb]),this.get("textureSource").bo(this.ja.If()),this.set("contentWidth",this.ja.hg()),this.set("contentHeight",this.ja.xg()),this.set("hfov",this.ja.jf()),this.set("distance",this.Yb.get("distance"))),this.ja.update()&&(this.get("textureSource").update(),this.Na()),this.W("over")&&this.ja.WE(this.get("over")? 0:-1))};a.prototype.HI=function(p){this.W("visible")&&(this.$g=new c("linear",[new d("displayCoef",this.get("visible")?0:1,this.get("visible")?1:0,void 0)],300));this.$g&&(this.$g.Ve()?this.$g=null:this.$g.Nb(p.Af))};a.prototype.dg=function(p){if(this.get("visible")||this.$g){this.qp=p.Xa;this.Mz=Math.min(90,Math.max(-90,this.Bwa+this.Bwa-p.pitch));if(this.W("visible")&&this.get("visible"))this.set("yaw",p.Xa),this.set("pitch",p.pitch);else{for(;this.qp+180 this.vz;)this.vz+=360;var q=(this.qp-this.vz)/p.Af,r=(this.Mz-this.Bja)/p.Af,t=Math.atan2(r,q);r=Math.sqrt(r*r+q*q);r=Math.min(r,10*l);q=Math.cos(t)*r;t=Math.sin(t)*r;this.set("yaw",m(this.get("yaw"),this.qp+q,.02));this.set("pitch",m(this.get("pitch"),this.Mz+t,.02))}this.vz=this.qp;this.Bja=this.Mz;t=this.get("yaw")-p.Xa;p=this.get("pitch")-p.pitch;this.set("centerDistance",Math.sqrt(t*t+p*p))}};a.prototype.ye=function(){if(!this.get("visible")&&!this.$g)this.set("alpha",0);else if(this.W("over", "centerDistance")||this.$g){var p=this.get("over")?this.vU:this.Of,q=this.w4a,r=this.get("centerDistance")/this.get("hfov");r<1&&(q+=(1-r)*(this.t4a-q),p+=(1-r)*(this.vU-p));this.$g&&(p*=this.$g.ob("displayCoef"),q*=this.$g.ob("displayCoef"));this.set("alpha",p);this.set("scale",q)}};a.prototype.ao=function(p){if(p.ag==g.Lm){var q=!1;this.get("visible")&&!p.qm()&&(q=this.Fy(p.Qs).length>0);q&&(p.LD(this.Yb),p.WI(this.Yb),p.om(this.get("distance")));this.get("over")!=q&&(this.get("over")&&this.Yb.o(g.Eb), this.set("over",q),this.get("over")&&this.Yb.o(g.uc))}else p.ag==g.Yf&&this.get("visible")&&!p.qm()&&this.Fy(p.Qs).length>0&&(p.du(this.Yb),this.Yb.o(g.ma),this.o(g.ma))};var l=Math.PI/180;return a}); define("tdv/player/view/panorama/renderer/object/MenuPanel","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/object/Plane tdv/player/canvas/MenuCanvas tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/view/util/Ease tdv/view/util/EaseDimension tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/object/Plane"), k=a("tdv/player/canvas/MenuCanvas"),e=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),b=a("tdv/view/util/Ease"),c=a("tdv/view/util/EaseDimension"),d=a("tdv/player/view/util/XR");a=m.extend(g,function(f,l){g.call(this);this.Yb=f;this.VC=l;this.As=this.As.bind(this);this.ja=null;this.Bja=this.vz=void 0;this.$g=null;this.Of=this.Yb.get("opacity",.5);this.vU=this.Yb.get("rollOverOpacity",this.Of);this.set("textureSource",new e);this.set("tag","MenuPanel");this.set("overIndex", -1);this.set("selectedIndex",-1);this.xxa=!1});a.prototype.hc=function(){g.prototype.hc.call(this);h.ba(this.Yb,["label"],this.As,!0);this.VC.forEach(function(f){h.ba(f,["label"],this.As,!0)}.bind(this))};a.prototype.mc=function(){h.da(this.Yb,["label"],this.As);this.VC.forEach(function(f){h.da(f,["label"],this.As)}.bind(this));g.prototype.mc.call(this)};a.prototype.As=function(){this.ja=null};a.prototype.za=function(f){this.ft(f);this.gh(f);this.HI(f);this.dg(f);g.prototype.za.call(this,f)};a.prototype.$Za= function(){this.ja||(this.ja=new k(this.Yb,this.VC),this.get("textureSource").bo(this.ja.If()),this.set("contentWidth",this.ja.hg()),this.set("contentHeight",this.ja.xg()),this.set("hfov",this.ja.jf()),this.set("distance",this.Yb.get("distance")))};a.prototype.gh=function(){this.ja||this.$Za();this.W("selectedIndex")&&this.ja.WE(this.get("selectedIndex"));this.W("overIndex")&&this.ja.WE(this.get("overIndex"));this.ja.update()&&(this.get("textureSource").update(),this.Na())};a.prototype.ft=function(f){f.Va&& !this.zq&&d.getType()==d.Kx.mo&&this.bi([this.zq=new g])};a.prototype.HI=function(f){this.$g||this.xxa||(this.$g=new b("linear",[new c("alpha",0,1,void 0),new c("scale",0,1,void 0),new c("yaw",f.Xa,this.get("yaw"),void 0),new c("pitch",f.pitch,this.get("pitch"),void 0)],300));this.$g&&(this.$g.Ve()?(this.xxa=!0,this.$g=null):this.$g.Nb(f.Af))};a.prototype.dg=function(){if(this.$g){var f=this.get("overIndex")<0?this.Of:this.vU;this.set("alpha",f*this.$g.ob("alpha"));this.set("scale",this.$g.ob("scale")); this.set("yaw",this.$g.ob("yaw"));this.set("pitch",this.$g.ob("pitch"))}else this.W("overIndex")&&(f=this.get("overIndex")<0?this.Of:this.vU,this.set("alpha",f))};a.prototype.ao=function(f){if(f.ag==n.Lm){var l=-1;if(!f.qm()){var p=this.Fy(f.Qs).filter(function(q){return q.source==this.ja.If()}.bind(this));p.length>0&&(l=this.ja.xoa(p[0].x,p[0].y))}l>=0&&(f.LD(this.VC[l]),f.WI(this.VC[l]),f.om(this.get("distance")));this.get("overIndex")>=0!=l>=0&&(l>0?this.o(n.uc):this.o(n.Eb));this.get("overIndex")!= l&&(this.get("overIndex")>=0&&this.VC[this.get("overIndex")].o(n.Eb),this.set("overIndex",l),this.get("overIndex")>=0&&this.VC[this.get("overIndex")].o(n.uc))}else f.ag!=n.Yf||f.qm()||(p=this.Fy(f.Qs).filter(function(q){return q.source==this.ja.If()}.bind(this)),p.length>0&&(l=this.ja.xoa(p[0].x,p[0].y),l>=0&&(p=this.VC[l],this.set("selectedIndex",l),f.du(p),f.om(this.get("distance")),p.o(n.ma),this.o(n.ma,{item:p}))))};return a}); define("tdv/player/view/panorama/renderer/object/MenuPanels",["require","tdv/utils","tdv/constants/EventName","tdv/player/view/panorama/renderer/object/Base","tdv/player/view/panorama/renderer/object/MenuPanel"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/renderer/object/Base"),g=a("tdv/player/view/panorama/renderer/object/MenuPanel");a=m.extend(n,function(b){n.call(this);this.Yb=b;this.gD=[];this.fN=null;this.set("tag","MenuPanels");this.set("visible", !1)});a.prototype.za=function(b){this.W("visible")&&this.get("visible")&&(this.set("yaw",b.Xa),this.set("pitch",b.pitch),this.Gva(this.Yb));n.prototype.za.call(this,b)};a.prototype.Gva=function(b){b=new g(this.Yb,b.get("children",[]));var c=this.get("yaw");this.Cb().forEach(function(d){c+=d.get("hfov")+e});b.set("yaw",c);b.set("pitch",this.get("pitch"));this.uXa(b);this.appendChild(b)};a.prototype.aEa=function(b){this.Cb().slice(b).forEach(function(c){this.g7a(c);c.remove()}.bind(this));this.gD=this.gD.filter(function(c){return this.Cb().indexOf(c)>= 0}.bind(this))};a.prototype.uXa=function(b){b.bind(h.uc,this.rDa,this,!0);b.bind(h.Eb,this.qDa,this,!0);b.bind(h.ma,this.pDa,this,!0)};a.prototype.g7a=function(b){b.h(h.uc,this.rDa,this,!0);b.h(h.Eb,this.qDa,this,!0);b.h(h.ma,this.pDa,this,!0)};a.prototype.rDa=function(b){this.gD.indexOf(b.source)<0&&(this.gD.push(b.source),this.gD.length==1&&this.Nwa())};a.prototype.qDa=function(b){b=this.gD.indexOf(b.source);b>=0&&(this.gD.splice(b,1),this.gD.length==0&&this.P8a())};a.prototype.pDa=function(b){var c= b.source;b=b.data.item;b.get("children",[]).length?(this.aEa(this.Cb().indexOf(c)+1),this.Gva(b)):this.Rwa()};a.prototype.Rwa=function(){this.set("visible",!1);this.aEa(0);this.Nwa();this.o(h.CB)};a.prototype.Nwa=function(){this.fN&&(clearTimeout(this.fN),this.fN=null)};a.prototype.P8a=function(){this.fN||(this.fN=setTimeout(function(){this.fN=null;this.Rwa()}.bind(this),k))};var k=3E3,e=1;return a}); define("tdv/player/view/panorama/renderer/object/Menu","require tdv/utils tdv/constants/EventName tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/MenuButton tdv/player/view/panorama/renderer/object/MenuPanels".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/renderer/object/Base"),g=a("tdv/player/view/panorama/renderer/object/MenuButton"),k=a("tdv/player/view/panorama/renderer/object/MenuPanels");a=m.extend(n, function(e){n.call(this);this.C=e;this.Sl.push(this.C);this.set("tag","Menu");this.set("visible",!1);this.je=new g(this.C);this.je.bind(h.ma,this.MYa,this,!1);this.bj=new k(this.C);this.bj.bind(h.CB,this.k6a,this,!1);this.bi([this.je,this.bj])});a.prototype.hc=function(){n.prototype.hc.call(this);this.o(h.vd);this.o(h.ia)};a.prototype.za=function(e){this.set("visible",e.Va);this.W("visible")&&(this.je.set("visible",this.get("visible")),this.bj.set("visible",!1));n.prototype.za.call(this,e)};a.prototype.MYa= function(){this.je.set("visible",!1);this.bj.set("visible",!0)};a.prototype.k6a=function(){this.je.set("visible",this.get("visible"))};return a}); define("tdv/player/view/panorama/renderer/object/CustomPlane","require tdv/utils tdv/constants/EventName tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/view/events/ProgressEvent".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/renderer/object/Plane"),g=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"), k=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),e=a("tdv/view/events/ProgressEvent");a=m.extend(n,function(){n.call(this);this.set("tag","CustomPlane");this.set("source",null);this.set("sourceUpdated",!1);this.set("sourceIsVideo",!1);this.xe=this.Nh=null});a.prototype.hc=function(){this.Nh=(new k(h.ia)).ko(this.zs.bind(this));this.xe=(new k(h.ia)).mr(this.nz.bind(this));n.prototype.hc.call(this)};a.prototype.mc=function(){this.Nh.dispose();this.xe.dispose();n.prototype.mc.call(this)}; a.prototype.za=function(b){var c=this.get("textureSource");this.W("source","sourceUpdated","sourceIsVideo")&&(c||this.set("textureSource",c=new g),this.W("source")&&c.bo(this.get("source")),this.W("sourceIsVideo")&&c.aZ(this.get("sourceIsVideo")),this.W("sourceUpdated")&&(c.update(),this.set("sourceUpdated",!1)));c&&c.ora(b.Jk>0);n.prototype.za.call(this,b);this.W("meshGroup")&&(b=(b=this.get("meshGroup"))&&b.children||[],b.length&&(this.Nh.jg(b),this.xe.jg(b)))};a.prototype.zs=function(){this.o(h.vd); this.o(h.ia)};a.prototype.nz=function(b,c){var d=0;c.lw(function(f){(f=c.Nn(f))&&(d+=f.percent)});this.o(new e(h.xc,d/c.zd.length))};return a}); define("tdv/player/view/panorama/renderer/object/SurfaceSelector","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/CustomPlane tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas tdv/player/view/util/geo/Line tdv/player/view/util/geo/Rectangle".split(" "),function(a){function m(q,r,t){this.ig=q;this.ig.bind(g.L("distanceToFloor"), this.za,this,!1);this.nl=r;this.nl.bind(g.L("yaw"),this.za,this,!1);this.nl.bind(g.L("distance"),this.za,this,!1);this.nl.bind(g.L("enabled"),this.za,this,!1);this.nl.bind(g.L("enabledInSurfaceSelection"),this.za,this,!1);this.Wb=null;this.Df=new b;this.Df.set("hfov",20);this.Df.set("vfov",20);this.Df.set("pitch",-90);this.Df.set("source",t.If());this.Df.set("contentWidth",t.hg());this.Df.set("contentHeight",t.xg());this.za()}var h=a("tdv/utils"),n=a("tdv/binding/BindingsHandler"),g=a("tdv/constants/EventName"), k=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),e=a("tdv/player/view/panorama/renderer/object/Base"),b=a("tdv/player/view/panorama/renderer/object/CustomPlane"),c=a("tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas"),d=a("tdv/player/view/util/geo/Line"),f=a("tdv/player/view/util/geo/Rectangle");a=h.extend(e,function(q){e.call(this);this.i3=this.i3.bind(this);this.pv=this.pv.bind(this);this.f3=this.f3.bind(this);this.set("tag","SurfaceSelector");this.set("reticleVisible", !1);this.set("enabled",!1);this.Ba=q;this.R_=[];this.hS=new f;this.il=new d;this.Qe=new b;this.Qe.set("hfov",20);this.Qe.set("vfov",20);this.Qe.set("pitch",-90);this.set("reticleCoef",1);this.bi([this.Qe])});a.prototype.hc=function(){this.y_a();e.prototype.hc.call(this);n.ba(this.Ba,["distanceToFloor"],this.i3,!0);n.ba(this.Ba,["adjacentPanoramas"],this.pv,!0);n.ba(this.La.ld,["adjacentPanoramaPositionsEnabled"],this.f3,!0);this.o(g.vd);this.o(g.ia)};a.prototype.mc=function(){e.prototype.mc.call(this); n.da(this.Ba,["distanceToFloor"],this.i3);n.da(this.Ba,["adjacentPanoramas"],this.pv);n.da(this.La.ld,["adjacentPanoramaPositionsEnabled"],this.f3);this.EEa([])};a.prototype.i3=function(){var q=this.Ba.get("distanceToFloor");this.Qe.set("distance",q);q=k.qw(q);var r=k.Foa(q,90),t=k.Goa(q,90);this.hS.Lg.set(-r*.5,-q,-t*.5);this.hS.Ek.set(r*.5,-q,-t*.5);this.hS.CE.set(-r*.5,-q,t*.5);this.kEa=q/k.Et()};a.prototype.pv=function(){this.EEa(this.Ba.get("adjacentPanoramas",[]))};a.prototype.f3=function(){this.pv()}; a.prototype.EEa=function(q){this.R_.forEach(function(r){r.clear()});this.R_=q.map(function(r){return new m(this.Ba,r,this.pja)}.bind(this));q=[];this.La.ld.get("adjacentPanoramaPositionsEnabled")&&(q=q.concat(this.R_.map(function(r){return r.Df})));q=q.concat([this.Qe]);this.bi(q)};a.prototype.za=function(q){e.prototype.za.call(this,q);this.set("enabled",q.xZ);this.oma();this.HD(q)};a.prototype.oma=function(){this.W("enabled","reticleVisible","composedTranslationX","composedTranslationY","composedTranslationZ", "composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.Qe.set("alpha",this.get("reticleVisible")?1:0),this.set("alpha",!this.get("enabled")||this.get("composedTranslationX")||this.get("composedTranslationY")||this.get("composedTranslationZ")||this.get("composedDeltaYaw")||this.get("composedDeltaPitch")||this.get("composedDeltaRoll")?0:1),this.FGa())};a.prototype.y_a=function(){this.AN=new c(this.La.P);this.AN.setPosition(this.get("reticleCoef"));this.Qe.set("source",this.AN.If());this.Qe.set("contentWidth", this.AN.hg());this.Qe.set("contentHeight",this.AN.xg());this.pja=new c(this.La.P);this.pja.setPosition(0);this.pja.update(1)};a.prototype.HD=function(q){this.W("reticleCoef")&&this.AN.setPosition(this.get("reticleCoef"));this.Qe.set("sourceUpdated",this.AN.update(q.Af))};a.prototype.ao=function(q){if(q.Sza)if(!this.get("enabled")||q.Qs.length==0||q.qm()||q.We())this.set("reticleVisible",!1);else{var r=q.Qs[0];this.il.Lg.set(r.origin.x,r.origin.y,r.origin.z);this.il.Ek.set(r.origin.x+r.direction.x, r.origin.y+r.direction.y,r.origin.z+r.direction.z);if(r=this.hS.intersection(this.il,!0)){var t=this.hS.V9(r,!0),u=2*(.5-t.x);t=2*(.5-t.y);var v=l*Math.atan2(-u,t),w=-90+l*Math.atan2(Math.sqrt(u*u+t*t),1);if(w<-75||w>-1)this.set("reticleVisible",!1);else{var x={x:u*this.kEa,y:-t*this.kEa};q.Bw()||q.jpa()?q.ag==g.Lm&&(this.set("reticleVisible",!0),this.Qe.set("alpha",Math.min(1,(w- -75)/5)),this.Qe.set("translationX",x.x),this.Qe.set("translationZ",x.y)):this.set("reticleVisible",!1);var y=this.La.ld.get("surfaceSelectionHorizontalAngle")* .5,z=this.La.ld.get("surfaceSelectionVerticalAngle")*.5;t=this.R_.map(function(A){return{nl:A.nl,IX:A.wfb(v),vertical:A.fgb(w),distance:A.H7(x)}}).filter(function(A){return A.IX180?360-q:q};m.prototype.fgb=function(q){return this.Wb?Math.abs(this.Wb.pitch-q):Infinity};m.prototype.H7=function(q){if(!this.YN)return Infinity;var r=q.x-this.YN.x;q=q.y-this.YN.y;return Math.sqrt(r*r+q*q)};m.prototype.za=function(){var q=this.nl.get("yaw"),r=this.nl.get("distance"),t=this.nl.get("enabled")&&this.nl.get("enabledInSurfaceSelection");if(q!==void 0&&r!==void 0&&t){t=this.ig.get("distanceToFloor"); var u=-90+Math.atan2(r,t)*l;this.Df.set("alpha",u<-1?1:0);this.Wb={Xa:q,pitch:u};u=k.qw(t)/k.Et();this.YN={x:-Math.sin(q*p)*r/t*u,y:-Math.cos(q*p)*r/t*u};this.Df.set("translationX",this.YN.x);this.Df.set("translationZ",this.YN.y);this.Df.set("distance",t)}else this.YN=this.Wb=null,this.Df.set("alpha",0)};var l=180/Math.PI,p=Math.PI/180;return a}); define("tdv/player/view/panorama/renderer/object/Panorama","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/view/events/ProgressEvent tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/SurfaceSelector tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/util/Preloader tdv/player/view/util/XR".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/view/events/ProgressEvent"),k=a("tdv/player/view/panorama/renderer/object/Base"),e=a("tdv/player/view/panorama/renderer/object/Plane"),b=a("tdv/player/view/panorama/renderer/object/SurfaceSelector"),c=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),d=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),f=a("tdv/player/view/util/Preloader"),l=a("tdv/player/view/util/XR"),p=0;a=m.extend(k, function(t){k.call(this);this.C=t;this.Sl.push(this.C);this.NH=this.NH.bind(this);this.Qg=this.Qg.bind(this);this.pv=this.pv.bind(this);this.$r(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","Panorama");this.set("loadingActive",!1);this.set("blendingActive",!0);this.set("currentTime",0);this.set("adjacentPanoramas",[]);this.set("preloadEnabled",!0);this.set("backgroundPreloadEnabled",!0);this.set("surfaceSelectionEnabled",!1);this.set("id","panorama_"+p++);this.set("ready", !1);this.q4=[];this.Eq=this.xe=this.sg=null;this.Yi=new q;this.HDa=new r;this.j$a=new b(this.C);this.xq=new r;this.bi([this.Yi,this.HDa,this.j$a,this.xq])});a.prototype.hc=function(){this.sg=(new c(n.ia)).ko(this.zs.bind(this));this.xe=(new c(n.xc)).mr(this.PH.bind(this));this.Eq=(new c(n.vd)).ko(this.a5a.bind(this));k.prototype.hc.call(this);this.get("blendingActive")&&this.La.set("globalBlendingActive",this.La.get("globalBlendingActive")+1);h.ba(this.C,["currentTime"],this.NH,!0);h.ba(this.C,["frames", "overlays","vrMenu","flipImageHorizontally"],this.Qg,!0);h.ba(this.C,["adjacentPanoramas"],this.pv,!0)};a.prototype.mc=function(){this.sg.dispose();this.xe.dispose();this.Eq.dispose();this.get("blendingActive")&&this.La.set("globalBlendingActive",this.La.get("globalBlendingActive")-1);k.prototype.mc.call(this);h.da(this.C,["currentTime"],this.NH);h.da(this.C,["frames","overlays","vrMenu","flipImageHorizontally"],this.Qg);h.da(this.C,["adjacentPanoramas"],this.pv);this.Yka()};a.prototype.Qg=function(){function t(A, D,F){A=y.indexOf(A);return A<0?F:w[A].get(D,F)}function u(A){return t(A,"projected",!1)}var v=this.La.wA(this.C.get("frames"));v.forEach(function(A){A.set("panoramaId",this.get("id"));A.set("flipHorizontally",this.C.get("flipImageHorizontally"))}.bind(this));var w=this.C.get("overlays"),x=this.La.wA(w),y=x.slice(),z=x.filter(function(A){return t(A,"projected",!1)||t(A,"required",!1)}).filter(function(A){return t(A,"enabled",!0)});this.C.get("vrMenu")&&x.push(this.La.wA(this.C.get("vrMenu")));x.forEach(function(A){A.set("panoramaId", this.get("id"))}.bind(this));this.sg.jg(v.concat(x));this.xe.jg(v.concat(x));this.Eq.jg(v.concat(z));this.HDa.bi(x.filter(u));this.Yi.bi(v);this.xq.bi(x.filter(function(A){return!u(A)}));this.set("panoramaPixelsPerDegree",d.xLa(this.C));this.QGa()};a.prototype.NH=function(){this.set("currentTime",this.C.get("currentTime",0))};a.prototype.pv=function(){this.set("adjacentPanoramas",this.C.get("adjacentPanoramas",[]))};a.prototype.zs=function(){this.hh();this.o(n.ia)};a.prototype.a5a=function(){this.hh(); this.set("ready",!0);this.o(n.vd)};a.prototype.PH=function(){this.hh()};a.prototype.hh=function(){var t=0;this.xe.lw(function(u){var v=0,w;this.sg.Nn(u)?v=100:(w=this.xe.Nn(u))&&(v=w.percent);t+=v}.bind(this));this.o(new g(n.xc,t/this.xe.zd.length))};a.prototype.za=function(t){t.Va&&!this.zq&&l.getType()==l.Kx.mo&&this.bi([this.zq=new e].concat(this.Cb()));var u=this.get("blendingActive");this.set("blendingActive",this.get("alpha")<1);u!=this.get("blendingActive")&&this.La.set("globalBlendingActive", this.La.get("globalBlendingActive")+(this.get("blendingActive")?1:-1));this.set("backgroundPreloadEnabled",this.La.dr().get("backgroundPreloadEnabled")!==!1);this.set("preloadEnabled",t.yY);this.W("adjacentPanoramas","loadingActive","preloadEnabled","backgroundPreloadEnabled")&&(this.get("loadingActive")&&this.get("backgroundPreloadEnabled")?this.R9a():this.Yka());this.W("index")&&this.QGa();k.prototype.za.call(this,t)};a.prototype.Yoa=function(){return d.Yoa(this.C,this.get("preloadEnabled"))};a.prototype.xqa= function(){return d.xqa(this.C,this.get("preloadEnabled"))};a.prototype.R9a=function(){this.Yka();this.q4=this.get("adjacentPanoramas").map(function(t){t=t.get("panorama");return[t,d.wp(t,this.get("preloadEnabled"))]}.bind(this));this.q4.forEach(function(t){f.gIa(t[0],t[1]);f.X8(t[0],1)})};a.prototype.Yka=function(){this.q4.forEach(function(t){f.X8(t[0],-1);f.Njb(t[0],t[1])});this.q4=[]};a.prototype.QGa=function(){var t=this.get("index");this.Yi.Cb().forEach(function(u,v,w){u.set("panoramaIndex", t);u.set("frameIndex",v);u.set("frameCount",w.length)})};var q=m.extend(k,function(){k.call(this);this.$r(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("loadingActive",!1);this.set("currentTime",0);this.set("tag","Group")});q.prototype.za=function(t){this.Cb().forEach(function(u,v,w){u.set("frontFrame",w[w.length-1])});k.prototype.za.call(this,t)};var r=m.extend(k,function(){k.call(this);this.$r(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("loadingActive", !1);this.set("currentTime",0);this.set("tag","Group")});return a}); define("tdv/player/view/panorama/renderer/object/PanoramaFrame",["require","tdv/utils","tdv/player/view/panorama/renderer/object/Frame","tdv/player/view/panorama/renderer/3d/util/MeshUtil"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/Frame"),n=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),g=0;a=m.extend(h,function(){h.call(this);this.set("tag","PanoramaFrame");this.set("panoramaIndex",0);this.set("frameIndex",0);this.set("frameCount",1);this.set("id","frame_"+ g++)});a.prototype.za=function(k){h.prototype.za.call(this,k);this.II()};a.prototype.NI=function(){if(this.W("panoramaIndex","frameIndex","frameCount","meshGroup")){var k=this.get("meshGroup");if(k){var e=this.get("panoramaIndex"),b=this.get("frameIndex"),c=this.get("frameCount"),d=k.children.length;k.children.forEach(function(f,l){n.O$(f,e+(l+b/c)/d)}.bind(this))}}};a.prototype.II=function(){if(this.W("meshGroup","panoramaId","id")){var k=this.get("meshGroup");k&&k.children.forEach(function(e,b){n.setAttribute(e, n.qF,this.get("panoramaId"));n.setAttribute(e,n.Daa,b);n.setAttribute(e,n.NK,this.get("id"))}.bind(this))}};return a}); define("tdv/player/view/panorama/renderer/object/ImagePanoramaFrame","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/PanoramaFrame tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/panorama/renderer/object/util/MeshFactory tdv/player/view/panorama/renderer/TextureLoader tdv/view/events/ProgressEvent".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Priority"),k=a("tdv/player/view/panorama/renderer/object/Base"),e=a("tdv/player/view/panorama/renderer/object/PanoramaFrame"),b=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),c=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),d=a("tdv/player/view/panorama/renderer/object/util/MeshFactory"),f=a("tdv/player/view/panorama/renderer/TextureLoader"),l=a("tdv/view/events/ProgressEvent"); a=m.extend(e,function(q){e.call(this);this.set("tag","ImagePanoramaFrame");this.BDa=!0;this.C=q;this.Sl.push(this.C);this.dm=this.Nh=this.Eq=null;this.xha=[];this.Qg=this.Qg.bind(this);this.$r(["loadingActive","currentTime","panoramaId","panoramaPixelsPerDegree"]);this.bi([this.xq=new p])});a.prototype.hc=function(){this.Eq=new b(n.ia);this.Nh=new b(n.ia);this.dm=new b(n.xc);e.prototype.hc.call(this);h.ba(this.C,["overlays"],this.Qg,!0)};a.prototype.mc=function(){this.Eq.dispose();this.Nh.dispose(); this.dm.dispose();h.da(this.C,["overlays"],this.Qg);e.prototype.mc.call(this)};a.prototype.Qg=function(){this.xq.bi(this.La.wA(this.C.get("overlays")));this.xGa()};a.prototype.xGa=function(){this.Nh.jg([].concat(this.xha,this.xq.Cb()));this.dm.jg([].concat(this.xha,this.xq.Cb()))};a.prototype.hq=function(){var q=[],r=[],t=[];c.Aoa(this.C,this.BDa).forEach(function(u,v){var w=d.Ddb(this.C,u);c.Bhb(u)?(v==0&&(q=q.concat(w),r=r.concat(w)),f.gB(w,v==0?f.Au:f.s_),f.fB(w,v==0?f.Or:f.Pba)):(v==0&&(q=q.concat(w)), r=r.concat(w),f.gB(w,f.Au),f.fB(w,f.Or));f.qK(w,v==0?g.cca:g.Jm);f.oZ(w,v);t=t.concat(w)}.bind(this));this.Eq.jg(q);this.xha=r;this.xGa();this.Nh.ko(this.zs.bind(this));this.Eq.ko(this.G5a.bind(this));this.dm.mr(this.PH.bind(this));this.o(new l(n.xc,0));return t};a.prototype.G5a=function(){this.o(n.vd)};a.prototype.zs=function(){this.o(n.ia)};a.prototype.za=function(q){this.BDa=q.yY;this.Mab();e.prototype.za.call(this,q)};a.prototype.Mab=function(){var q=this.get("frontFrame");if(this.W("frontFrame")|| q&&q.W("alpha"))q=q&&q!=this?1-q.get("alpha"):1,this.xq.set("alpha",q)};a.prototype.PH=function(){var q=0;this.dm.lw(function(r){var t=0,u;this.Nh.Nn(r)?t=100:(u=this.dm.Nn(r))&&(t=u.percent);q+=t}.bind(this));this.o(new l(n.xc,q/this.dm.zd.length))};var p=m.extend(k,function(){k.call(this);this.$r(["loadingActive","panoramaId","panoramaPixelsPerDegree"]);this.set("loadingActive",!1);this.set("tag","Group")});return a}); define("tdv/player/view/panorama/renderer/object/ImagePlane","require tdv/utils tdv/constants/EventName tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/view/events/ProgressEvent".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/renderer/object/Plane"),g=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource"), k=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),e=a("tdv/view/events/ProgressEvent");a=m.extend(n,function(){n.call(this);this.set("tag","ImagePlane");this.set("url",null);this.xe=this.sg=null});a.prototype.hc=function(){this.sg=(new k(h.ia)).ko(this.zs.bind(this));this.xe=(new k(h.xc)).mr(this.nz.bind(this));n.prototype.hc.call(this)};a.prototype.mc=function(){this.sg.dispose();this.xe.dispose();n.prototype.mc.call(this)};a.prototype.za=function(b){if(this.W("url")){var c=this.get("url"); c=c?new g(c):null;this.set("textureSource",c)}n.prototype.za.call(this,b);this.W("meshGroup")&&(b=(b=this.get("meshGroup"))&&b.children||[],b.length&&(this.sg.jg(b),this.xe.jg(b)))};a.prototype.zs=function(){this.o(h.vd);this.o(h.ia)};a.prototype.nz=function(b,c){var d=0;c.lw(function(f){(f=c.Nn(f))&&(d+=f.percent)});this.o(new e(h.xc,d/c.zd.length))};return a}); define("tdv/player/view/panorama/renderer/object/control/CueController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/constants/PlaybackState tdv/view/av/VideoPlayer".split(" "),function(a){function m(c,d){this.Vd=c;this.ra=d;this.am=!1;this.hk=[];this.Go=this.XL=void 0;this.bf=[];this.GYa();this.eea();this.v5();this.Hj()}function h(c,d,f){this.time=c;this.cue=d;this.action=f}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/events/Event"),e=a("tdv/constants/PlaybackState"), b=a("tdv/view/av/VideoPlayer");m.prototype.clear=function(){this.AR();this.hk=[];this.bab();this.ra=this.Vd=null};m.prototype.GYa=function(){this.ra.bind(b.Dg,this.Nf,this,!0);this.ra.bind(g.Pd,this.Hj,this,!0);this.ra.bind(g.Ub,this.dD,this,!0)};m.prototype.bab=function(){this.ra.h(b.Dg,this.Nf,this,!0);this.ra.h(g.Pd,this.Hj,this,!0);this.ra.h(g.Ub,this.dD,this,!0)};m.prototype.Hj=function(){var c=this.ra.getState()!=e.ca;this.am!=c&&((this.am=c)?this.v5():this.AR())};m.prototype.dD=function(){this.SI()}; m.prototype.Nf=function(){this.SI()};m.prototype.v5=function(){this.Go=this.XL=0};m.prototype.SI=function(){if(this.ra&&this.am){var c=this.bf.slice(),d=this.ra.getCurrentTime(),f=d-this.XL;f<0&&(this.bf=[],this.Go=0);f=f>=0&&f<2;this.XL=d;var l;for(l=this.Go;ld);l++);for(;this.Go0&&(this.bf=[],this.XV())};m.prototype.XV=function(){this.Vd.o(new k(g.Bl,{activeCues:this.bf.slice()}))};m.prototype.eea=function(){this.hk=[];this.Vd.get("cues",[]).forEach(c=>{this.hk.push(new h(c.get("startTime",0),c,"start"));this.hk.push(new h(c.get("endTime",Number.POSITIVE_INFINITY),c,"end"))});this.hk.sort(function(c,d){return c.time==d.time?c.action==d.start?0:c.action=="start"?-1:1:c.time- d.time})};return m}); define("tdv/player/view/panorama/renderer/object/control/VideoPlaybackController",["require","tdv/constants/EventName","tdv/constants/PlaybackState","tdv/events/Event","tdv/view/av/VideoPlayer"],function(a){function m(e,b,c){this.Ie=e;this.Vd=b;this.ra=c;this.ra.setCurrentTime(this.og=this.Vd.get("currentTime",0));this.ra.Bg(this.vf=this.Ie.get("mute",!1));this.ra.Zc(this.I=this.Vd.get("state",n.ca));this.ra.setLoop(this.Ql=this.Vd.get("loop"));this.ac=this.ra.mj();this.wXa();this.DXa();this.Px()} var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/events/Event"),k=a("tdv/view/av/VideoPlayer");m.prototype.clear=function(){this.h7a();this.n7a();this.Az();this.ra.Zc(n.ca);this.Vd.set("state",n.ca);this.Vd.set("currentTime",0);this.Vd.set("duration",void 0)};m.prototype.cDa=function(){var e=this.Vd.get("state",n.ca);this.I!=e&&this.ra.Zc(this.I=e)};m.prototype.aDa=function(){var e=this.Vd.get("currentTime",0);this.og!=e&&this.ra.setCurrentTime(this.og=e)};m.prototype.gU= function(){var e=this.Ie.get("mute",0);this.vf!=e&&this.ra.Bg(this.vf=e)};m.prototype.bDa=function(){var e=this.Vd.get("loop");this.Ql!=e&&this.ra.setLoop(this.Ql=e)};m.prototype.qU=function(){this.Vd.set("currentTime",this.og=this.ra.getCurrentTime())};m.prototype.oU=function(){this.Vd.set("duration",this.ac=this.ra.mj())};m.prototype.pU=function(){this.Vd.set("state",this.I=this.ra.getState())};m.prototype.rU=function(){this.Vd.o(new g(h.Ub))};m.prototype.wXa=function(){this.Ie.bind(h.L("mute"), this.gU,this,!0)};m.prototype.h7a=function(){this.Ie.h(h.L("mute"),this.gU,this,!0)};m.prototype.DXa=function(){this.Vd.bind(h.L("state"),this.cDa,this,!0);this.Vd.bind(h.L("currentTime"),this.aDa,this,!0);this.Vd.bind(h.L("loop"),this.bDa,this,!0)};m.prototype.n7a=function(){this.Vd.h(h.L("state"),this.cDa,this,!0);this.Vd.h(h.L("currentTime"),this.aDa,this,!0);this.Vd.h(h.L("loop"),this.bDa,this,!0)};m.prototype.Px=function(){this.ra.bind(k.Dg,this.qU,this,!0);this.ra.bind(k.Zj,this.oU,this,!0); this.ra.bind(h.Pd,this.pU,this,!0);this.ra.bind(h.Ub,this.rU,this,!0)};m.prototype.Az=function(){this.ra.h(k.Dg,this.qU,this,!0);this.ra.h(k.Zj,this.oU,this,!0);this.ra.h(h.Pd,this.pU,this,!0);this.ra.h(h.Ub,this.rU,this,!0)};return m}); define("tdv/player/view/panorama/renderer/object/VideoPanoramaFrame","require tdv/utils tdv/constants/EventName tdv/constants/Priority tdv/constants/PlaybackState tdv/player/view/panorama/renderer/object/ImagePlane tdv/player/view/panorama/renderer/object/PanoramaFrame tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/MeshFactory tdv/player/view/panorama/renderer/object/control/CueController tdv/player/view/panorama/renderer/object/control/VideoPlaybackController tdv/player/view/panorama/renderer/object/util/PanoramaFormat tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/Device tdv/player/view/util/geo/Quaternion tdv/view/av/SubtitleController tdv/view/av/VideoPlayer tdv/view/events/ProgressEvent tdv/view/util/Assets tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/Priority"),g=a("tdv/constants/PlaybackState"),k=a("tdv/player/view/panorama/renderer/object/ImagePlane"),e=a("tdv/player/view/panorama/renderer/object/PanoramaFrame"),b=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),c=a("tdv/player/view/panorama/renderer/object/util/MeshFactory"),d=a("tdv/player/view/panorama/renderer/object/control/CueController"),f=a("tdv/player/view/panorama/renderer/object/control/VideoPlaybackController"), l=a("tdv/player/view/panorama/renderer/object/util/PanoramaFormat"),p=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),q=a("tdv/player/view/panorama/renderer/TextureLoader"),r=a("tdv/player/view/util/Device"),t=a("tdv/player/view/util/geo/Quaternion"),u=a("tdv/view/av/SubtitleController"),v=a("tdv/view/av/VideoPlayer"),w=a("tdv/view/events/ProgressEvent"),x=a("tdv/view/util/Assets"),y=a("tdv/view/util/Ease"),z=a("tdv/view/util/EaseDimension");a=m.extend(e,function(E){e.call(this);this.C=E; this.Sl.push(this.C);this.$r(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","VideoPanoramaFrame");this.set("frameEmpty",void 0);this.set("hasStableContent",void 0);this.c1=void 0;this.set("atStart",void 0);l.get(this.C)==l.Pr?this.Ama=this.C.get("sphere"):this.Ama=this.C.get("stereoSphere");this.am=!1;this.hb=v.zk(this.Ama);this.cja=this.wxa=!1;this.kO=[];this.eI=[];this.ip=this.$l=this.dm=this.Nh=this.Th=this.ra=null;this.rn=!1;this.gAa=this.NC=this.OC=0});a.prototype.hc= function(){this.Nh=(new b(h.ia)).ko(this.zs.bind(this));this.dm=(new b(h.xc)).mr(this.PH.bind(this));this.ra=new v(this.La.dr(),this.Ama);this.fs=new d(this.C.cE(),this.ra);this.Ua=new f(this.La.dr(),this.C.cE(),this.ra);this.yn=new u(this.C.cE(),this.ra);this.Px();this.D_a();this.wxa=this.La.ld.get("displayPlayOverlay");this.cja=this.La.ld.get("clickAction")=="play_pause";var E=this.La.Jf(this.C.cE());E.appendChild(this.$l);E.appendChild(this.ip);e.prototype.hc.call(this)};a.prototype.mc=function(){this.Nh.dispose(); this.dm.dispose();this.Az();this.fs.clear();this.fs=null;this.Ua.clear();this.Ua=null;this.yn.clear();this.yn=null;this.ra.clear();this.Th=this.ra=null;this.Dxa();e.prototype.mc.call(this)};a.prototype.D_a=function(){this.Dxa();this.$l=this.jxa(x.Ex,x.jL,x.w_);this.ip=this.jxa(x.iL,x.MVa,x.LVa)};a.prototype.jxa=function(E,G,N){var O=new k;O.set("url",E);O.set("contentWidth",G);O.set("contentHeight",N);O.set("hfov",10);O.set("yaw",0);O.set("pitch",0);O.set("alpha",0);return O};a.prototype.Dxa=function(){this.$l&& (this.$l.remove(),this.$l=null);this.ip&&(this.ip.remove(),this.ip=null)};a.prototype.hq=function(){this.kO=c.Udb(this.C,this.hb);this.sbb=q.EK(p.bE(this.kO[0])[0]);this.kO.forEach(function(G){q.gB(G,q.Au);q.fB(G,q.Or)});this.hb.get("posterURL")?(this.eI=c.Vdb(this.C,this.hb),this.eI.forEach(function(G){q.gB(G,q.Au);q.fB(G,q.Or);q.qK(G,n.cca)})):this.eI=[];var E=[].concat(this.kO,this.eI);this.Nh.jg(E);this.dm.jg(E);this.o(new w(h.xc,0));return E};a.prototype.za=function(E){this.Pab(E);var G=this.ra.G7(); this.set("frameEmpty",G.isEmpty());this.set("atStart",!(this.get("currentTime")>1));this.Qla();e.prototype.za.call(this,E);this.Th&&this.Th.isEqual(G)?this.ra.getState()==g.PLAYING&&this.Na():(this.Th=G,this.sbb.bo(this.Th.$u),this.Na());this.ra.cu(H.makeRotationFromQuaternion(t.iX(E.Xa,E.pitch,E.Mg,B)))};a.prototype.Qla=function(){this.get("frameEmpty")?this.set("hasStableContent",!1):this.get("currentTime")>this.c1+.2?this.set("hasStableContent",!0):this.get("currentTime")==0&&this.pha>this.ra.mj()- .5?this.set("hasStableContent",!0):this.set("hasStableContent",!1);this.W("frameEmpty")&&!this.get("frameEmpty")&&(this.c1=this.get("currentTime"));!this.get("frameEmpty")&&this.get("currentTime")>0&&(this.pha=this.get("currentTime"))};a.prototype.Dn=function(){this.W("composedAlpha","meshGroup","frameEmpty","hasStableContent","atStart")&&(this.eI.length&&!this.get("hasStableContent")&&this.get("atStart")?(this.eI.forEach(function(E){p.nf(E,this.get("composedAlpha"))}.bind(this)),this.kO.forEach(function(E){p.nf(E, 0)}.bind(this))):(this.eI.forEach(function(E){p.nf(E,0)}.bind(this)),this.kO.forEach(function(E){p.nf(E,this.get("composedAlpha"))}.bind(this))))};a.prototype.zs=function(){this.o(h.vd);this.o(h.ia)};a.prototype.PH=function(E,G){var N=0;G.lw(function(O){(O=G.Nn(O))&&(N+=O.percent)});this.o(new w(h.xc,N/G.zd.length))};a.prototype.Hj=function(){this.Na()};a.prototype.Nf=function(){this.Na()};a.prototype.ao=function(E){if(E.ag==h.Yf&&!E.qm()&&this.cja&&(E.du(this.C),E=Date.now(),!(E-this.gAa<500))){this.gAa= E;E=this.C.cE();var G=E.get("state");G==g.PLAYING?E.set("state",g.$b):G==g.$b&&E.set("state",g.PLAYING)}};a.prototype.Pab=function(E){if(this.cja){if(this.rn!=(this.ra.getState()==g.$b))if(this.rn=!this.rn,this.wxa){var G=this.$l.get("alpha"),N=this.rn?1:0;this.rz=new y("linear",[new z("playAlpha",G,N),new z("playScale",E.Va?1.5:1,E.Va?1.5:1),new z("pauseAlpha",0,0),new z("pauseScale",1,1)],Math.abs(N-G)*A);this.$l.yi()}else this.rz=new y("linear",this.rn?[new z("playAlpha",0,0),new z("playScale", 1,1),new z("pauseAlpha",0,2),new z("pauseScale",.5,1.5)]:[new z("playAlpha",0,2),new z("playScale",.5,1.5),new z("pauseAlpha",0,0),new z("pauseScale",1,1)],D),this.$l.yi(),this.ip.yi();this.rz&&(this.rz.Nb(E.Af),G=this.rz.ob("playAlpha"),this.$l.set("alpha",G<1?G:2-G),this.$l.set("scale",this.rz.ob("playScale")),G=this.rz.ob("pauseAlpha"),this.ip.set("alpha",G<1?G:2-G),this.ip.set("scale",this.rz.ob("pauseScale")),this.Na(),this.rz.Ve()&&(this.rz=null));this.$l.get("alpha")>0&&(this.get("globalBlendingActive")&& this.$l.set("alpha",0),this.$l.set("yaw",E.Xa),this.$l.set("pitch",E.pitch),this.$l.set("hfov",this.fza(E)));this.ip.get("alpha")>0&&(this.get("globalBlendingActive")&&this.ip.set("alpha",0),this.ip.set("yaw",E.Xa),this.ip.set("pitch",E.pitch),this.ip.set("hfov",this.fza(E)))}};var A=300,D=600;a.prototype.fza=function(E){return E.Va?15:2*Math.atan((r.ub()?Math.min(E.width,E.height)/100*20:x.jL)*Math.tan(E.Wd*F*.5)/E.width)*C};var F=Math.PI/180,C=180/Math.PI;a.prototype.Px=function(){this.ra.bind(v.Dg, this.Nf,this,!0);this.ra.bind(h.Pd,this.Hj,this,!0)};a.prototype.Az=function(){this.ra.h(v.Dg,this.Nf,this,!0);this.ra.h(h.Pd,this.Hj,this,!0)};var B=new THREE.Quaternion,H=new THREE.Matrix4;return a}); define("tdv/player/view/panorama/renderer/object/Popup","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/panorama/renderer/3d/util/Util tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/SolidFrame tdv/player/view/panorama/renderer/object/CustomPlane tdv/player/view/panorama/renderer/object/ImagePlane tdv/player/view/panorama/renderer/object/control/VideoPlaybackController tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/util/ColorPicker tdv/player/view/util/geo/Fov tdv/view/core/UIComponent tdv/view/events/ProgressEvent tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/av/VideoPlayer".split(" "),function(a){function m(C){setTimeout(C, 0)}function h(C,B){for(C-=B;C>180;)C-=360;for(;C<-180;)C+=360;return C+B}var n=a("tdv/utils"),g=a("tdv/binding/BindingsHandler"),k=a("tdv/constants/EventName"),e=a("tdv/constants/PlaybackState");a("tdv/player/view/panorama/renderer/3d/util/Util");var b=a("tdv/player/view/panorama/renderer/object/Base"),c=a("tdv/player/view/panorama/renderer/object/SolidFrame"),d=a("tdv/player/view/panorama/renderer/object/CustomPlane"),f=a("tdv/player/view/panorama/renderer/object/ImagePlane"),l=a("tdv/player/view/panorama/renderer/object/control/VideoPlaybackController"), p=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"),q=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),r=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),t=a("tdv/player/view/util/ColorPicker"),u=a("tdv/player/view/util/geo/Fov"),v=a("tdv/view/core/UIComponent"),w=a("tdv/view/events/ProgressEvent"),x=a("tdv/view/util/Ease"),y=a("tdv/view/util/EaseDimension"),z=a("tdv/view/av/VideoPlayer"),A=Math.PI/180;a=n.extend(b,function(C){b.call(this); this.C=C;this.Sl.push(this.C);this.Qg=this.Qg.bind(this);this.K3=this.K3.bind(this);this.$r(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","Popup");this.set("inVR",!1);this.set("enabledInStandard",!0);this.set("interactionEnabled",!0);this.set("loadingActive",!1);this.set("frameEmpty",!0);this.set("state",e.ca);this.set("itemVisible","none");this.set("visible",!1);this.set("visiblePosition",0);this.set("alpha",0);this.set("over",!1);this.set("gazeOver",!1);this.set("video", null);this.set("image",null);this.set("actualVisible",!1);this.ae=this.Lb=this.lb=this.xe=this.sg=null;this.Ib=new p;this.Xx=this.LC=this.Fn=this.Th=this.ra=null});a.prototype.hc=function(){this.sg=(new q(k.ia)).ko(this.KH.bind(this));this.xe=(new q(k.xc)).mr(this.OH.bind(this));b.prototype.hc.call(this);this.SZa();this.appendChild(this.ae);g.ba(this.C,D,this.Qg,!0);g.KD(this.C,F,this.K3,!0)};var D="playbackPositions popupDistance popupMaxHeight popupMaxWidth image.levels.url video state".split(" "), F=["visible"];a.prototype.mc=function(){this.sg.dispose();this.xe.dispose();g.da(this.C,D,this.Qg);g.da(this.C,F,this.K3);this.OG();this.zC();this.Zu();b.prototype.mc.call(this)};a.prototype.Qg=function(){var C=r.Rfb(this.C,this.get("panoramaPixelsPerDegree"));this.set("imageURL",C&&C.get("url"));this.set("imageWidth",C&&C.get("width"));this.set("imageHeight",C&&C.get("height"));this.set("video",this.C.get("video"));this.set("state",this.C.get("state"));this.set("popupDistance",this.C.get("popupDistance")); this.set("popupMaxWidth",this.C.get("popupMaxWidth"));this.set("popupMaxHeight",this.C.get("popupMaxHeight"));this.set("playbackPositions",this.C.get("playbackPositions"))};a.prototype.K3=function(){this.set("visible",this.C.get("visible"))};a.prototype.za=function(C){this.pD=C.Xa;this.oD=C.pitch;this.ft(C);this.Qab();this.iW(C);this.ye(C);this.Cab(C);this.lab(C);b.prototype.za.call(this,C)};a.prototype.Qab=function(){this.W("playbackPositions","currentTime")&&(this.Ib.ZE(this.get("playbackPositions")), this.Ib.XE(this.get("currentTime")),this.set("sourceYaw",this.Ib.get("yaw")),this.set("sourcePitch",this.Ib.get("pitch")),this.set("sourceRotationX",this.Ib.get("rotationX")),this.set("sourceRotationY",this.Ib.get("rotationY")),this.set("sourceRotationZ",this.Ib.get("rotationZ")),this.set("sourceHFOV",this.Ib.get("hfov")))};a.prototype.ft=function(){if(this.W("video","imageURL")){var C=[this.ae];this.W("imageURL")&&(this.LR(),this.lb&&C.push(this.lb),this.cV("itemVisible"));this.W("video")&&(this.NR(), this.Lb&&C.push(this.Lb),this.cV("itemVisible"));this.sg.jg(C);this.xe.jg(C);this.bi(C)}};a.prototype.iW=function(){if(this.ra){var C=this.ra.G7();this.set("frameEmpty",!!C&&C.isEmpty());!this.Th||C&&!this.Th.isEqual(C)?(this.Th=C,this.Lb.set("source",this.Th.$u),this.Lb.set("sourceUpdated",!0),this.Na()):this.ra.getState()==e.PLAYING&&this.Na()}else this.set("frameEmpty",!1)};a.prototype.ye=function(C){this.set("inVR",C.Va);this.set("hotspotsEnabled",C.FJ);this.set("rendererYaw",C.Xa);this.set("rendererPitch", C.pitch);this.set("rendererRoll",C.Mg);this.set("rendererWidth",C.Sj);this.set("rendererHeight",C.Rj);this.set("rendererHFOV",C.Wd);if(this.W("visible")){var B=this.get("visiblePosition"),H=this.get("visible")?1:0,E=Math.max(1,this.C.get(this.get("visible")?"showDuration":"hideDuration")*Math.abs(H-B)),G=this.C.get(this.get("visible")?"showEasing":"hideEasing");B!=H&&(this.Fn=new x(G,[new y("position",B,H)],E));this.get("visible")||(this.set("actualVisible",!1),this.ra&&this.ra.Zc(e.ca))}this.Fn&& (this.Fn.Ve()?(this.Fn=null,this.get("visible")?(this.set("actualVisible",!0),this.C.o(k.YQ),this.C.get("autoplay")&&this.ra&&this.ra.Zc(e.PLAYING)):m(function(){this.C&&this.C.o(k.aL)}.bind(this))):this.Fn.Nb(C.Af),this.Fn&&(this.set("visiblePosition",this.Fn.ob("position")),this.Na()));B=!1;if(B=C.Va?this.W("visible","itemVisible"):this.W("rendererYaw","rendererPitch","rendererRoll","rendererWidth","rendererHeight","rendererHFOV","itemVisible","popupMaxWidth","popupMaxHeight","sourceHFOV"))this.set("targetImageScale", this.nza(this.lb,C)),this.set("targetVideoScale",this.nza(this.Lb,C)),this.set("targetYaw",h(this.get("rendererYaw"),this.get("sourceYaw"))),this.set("targetPitch",this.get("rendererPitch")),this.set("targetRotationZ",h(C.Va?0:this.get("rendererRoll"),this.get("sourceRotationZ")));if(B||this.W("visiblePosition","targetScale","targetYaw","targetPitch","targetRoll","popupDistance","hfov")){H=this.get("visiblePosition");var N=this.get("targetYaw")*H+this.get("sourceYaw")*(1-H),O=this.get("targetPitch")* H+this.get("sourcePitch")*(1-H),R=this.get("sourceRotationX")*(1-H),Q=this.get("sourceRotationY")*(1-H),K=this.get("targetRotationZ")*H+this.get("sourceRotationZ")*(1-H);C=Math.min(1,2*H);var L=this.get("popupDistance"),U=this.get("sourceHFOV");B=this.get("targetImageScale")*H+(1-H);H=this.get("targetVideoScale")*H+(1-H);this.set("alpha",C);this.lb&&this.lb.set("scale",B);this.Lb&&this.Lb.set("scale",H);[].concat(this.Lb?[this.Lb]:[],this.lb?[this.lb]:[]).forEach(function(T){T.set("yaw",N);T.set("pitch", O);T.set("rotationX",R);T.set("rotationY",Q);T.set("rotationZ",K);T.set("distance",L);T.set("hfov",U)})}};a.prototype.Cab=function(C){if(this.W("frameEmpty","state","imageURL","video")){var B="none";!this.Lb||this.lb&&(this.get("frameEmpty")||this.get("state")==e.ca)?this.lb&&(B="image"):B="video";this.set("itemVisible",B)}if(this.W("itemVisible")){this.get("itemVisible")!="video"&&this.ra&&this.ra.Zc(e.ca);B=this.lb?this.lb.get("alpha"):0;var H=this.Lb?this.Lb.get("alpha"):0,E=this.get("itemVisible")== "image"?1:0,G=this.get("itemVisible")=="video"?1:0,N=this.get("itemVisible")=="video"?1:Math.max(Math.abs(E-B),Math.abs(G-H))*200;this.LC=new x("linear",[new y("imageAlpha",B,E),new y("videoAlpha",H,G)],N)}this.LC&&(this.LC.Ve()?this.LC=null:this.LC.Nb(C.Af),this.LC&&(this.lb&&this.lb.set("alpha",this.LC.ob("imageAlpha")),this.Lb&&this.Lb.set("alpha",this.LC.ob("videoAlpha")),this.Na()))};a.prototype.lab=function(C){this.W("gazeOver","inVR","visible","actualVisible")&&(this.Kwa(),this.get("inVR")&& this.C.get("lookAwayToHide")&&!this.get("gazeOver")&&this.get("actualVisible")&&this.O9a());C.Va&&this.C.get("darkenBackground")&&this.C.get("lookAwayToHide")?(this.W("visible")&&this.get("visible")&&(this.ae.set("alpha",.8),this.Xx=null),this.W("gazeOver")&&(this.Xx=new x(this.get("gazeOver")?"linear":"quad_in",[new y("alpha",this.ae.get("alpha"),this.get("gazeOver")?.8:0)],this.get("gazeOver")?300:this.C.get("lookAwayToHideTime")))):(this.Xx=null,this.ae.set("alpha",C.Va&&this.C.get("darkenBackground")? .8:0));this.Xx&&(this.Xx.Ve()?this.Xx=null:this.Xx.Nb(C.Af),this.Xx&&(this.ae.set("alpha",this.Xx.ob("alpha")),this.Na()))};a.prototype.O9a=function(){this.Kwa();this.v2=setTimeout(function(){this.v2=null;this.C.set("visible",!1)}.bind(this),this.C.get("lookAwayToHideTime"))};a.prototype.Kwa=function(){this.v2&&(clearTimeout(this.v2),this.v2=null)};a.prototype.nza=function(C,B){if(!C)return 1;var H=this.get("popupMaxWidth","100%"),E=v.Cp(H),G=C.get("contentWidth"),N=C.get("contentHeight"),O=this.get("popupMaxHeight", "100%"),R=v.Cp(O);if(this.get("inVR")){var Q=C=this.get("rendererWidth")*.5,K=Math.min(B.lj,80);B=u.jJ(K,C,Q);var L=this.get("sourceHFOV");H=Math.min(Math.tan(B*(E!==void 0?E/100:H/C)*.5*A)/Math.tan(L*.5*A),Math.tan(K*(R!==void 0?R/100:O/Q)*.5*A)/Math.tan(u.jJ(L,G,N)*.5*A))}else C=this.get("rendererWidth"),Q=this.get("rendererHeight"),H=G*Math.min((E!==void 0?C*E/100:H)/G,(R!==void 0?Q*R/100:O)/N),B=this.get("rendererHFOV"),L=this.get("sourceHFOV"),H=Math.tan(B*.5*A)*H/C/Math.tan(L*.5*A);return H}; a.prototype.LR=function(){this.OG();this.get("imageURL")&&(this.lb=new f,this.lb.set("url",this.get("imageURL")),this.lb.set("contentWidth",this.get("imageWidth")),this.lb.set("contentHeight",this.get("imageHeight")),this.lb.set("alpha",0))};a.prototype.OG=function(){this.lb&&(this.lb.remove(),this.lb=null)};a.prototype.NR=function(){this.zC();if(this.get("video")){this.Lb=new d;var C=z.zk(this.get("video"));this.Lb.set("contentWidth",C.get("width"));this.Lb.set("contentHeight",C.get("height"));this.Lb.set("alpha", 0);this.Lb.set("sourceIsVideo",!0);this.ra=new z(this.La.dr(),this.get("video"));this.Ua=new l(this.La.dr(),this.C,this.ra);this.Px()}};a.prototype.zC=function(){this.Lb&&(this.Az(),this.Ua.clear(),this.Ua=null,this.ra.clear(),this.Th=this.ra=null,this.Lb.remove(),this.Lb=null)};a.prototype.SZa=function(){this.Zu();this.ae=new c("#000000")};a.prototype.Zu=function(){this.ae&&(this.ae.remove(),this.ae=null)};a.prototype.KH=function(){this.o(k.vd);this.o(k.ia)};a.prototype.OH=function(C,B){var H=0; B.lw(function(E){var G=0,N;this.sg.Nn(E)?G=100:(N=this.xe.Nn(E))&&(G=N.percent);H+=G}.bind(this));this.o(new w(k.xc,H/B.zd.length))};a.prototype.Hj=function(){this.Na()};a.prototype.Nf=function(){this.Na()};a.prototype.dD=function(){this.C.o(k.Ub)};a.prototype.Px=function(){this.ra.bind(z.Dg,this.Nf,this,!0);this.ra.bind(k.Pd,this.Hj,this,!0);this.ra.bind(k.Ub,this.dD,this,!0)};a.prototype.Az=function(){this.ra.h(z.Dg,this.Nf,this,!0);this.ra.h(k.Pd,this.Hj,this,!0);this.ra.h(k.Ub,this.dD,this,!0)}; a.prototype.ao=function(C){C.ag==k.Lm?(!C.qm()&&this.get("visible")?(C.du(this.C),this.set("over",this.bt(C)),this.set("gazeOver",this.u$a(C))):this.set("over",!1),this.get("over")&&(C.LD(this.C),C.Bw()&&C.WI(this.C),C.om(this.get("popupDistance"))),this.W("over")&&(this.C.o(this.get("over")?k.uc:k.Eb),C.Bw()&&this.C.o(this.get("over")?k.UF:k.Qr))):C.ag==k.Yf&&!C.qm()&&this.get("visible")&&(C.du(this.C),C.om(this.get("popupDistance")),this.bt(C)?C.uhb()||this.C.o(k.ma):this.C.set("visible",!1))}; a.prototype.bt=function(C){return this.ZFa(C.Qs)};a.prototype.u$a=function(C){C=C.eP();return!!C&&this.ZFa([C])};a.prototype.ZFa=function(C){if(this.get("visible")){C=(this.get("itemVisible")=="video"?this.Lb:this.lb).Fy(C);for(var B=0;B1&&h.du(this.C),h.om(this.get("distance")),this.C.o(m.ma))},bt:function(h){return this.get("beamEnabled")&&this.$fa().Fy(h.Qs).length>0?!0:!1},jc:function(h){return!h||this.C.get("displayTooltipInTouchScreens")&&this.La.P.get("displayTooltipInTouchScreens")!==!1?this.C.get("toolTip",""):""},BD:function(h){if(h){h=this.get("yaw")-this.pD;var n=this.get("pitch")- this.oD;return Math.sqrt(h*h+n*n)}return 0}}}); define("tdv/player/view/panorama/renderer/object/FrameHotspot","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/object/ComposedObject tdv/player/view/panorama/renderer/object/overlay/FocusedMixin tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/panorama/renderer/object/pointer/FrameHotspotPointerMixin".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"), n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/object/ComposedObject"),k=a("tdv/player/view/panorama/renderer/object/overlay/FocusedMixin"),e=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),b=a("tdv/player/view/panorama/renderer/object/util/LevelUtil");a=a("tdv/player/view/panorama/renderer/object/pointer/FrameHotspotPointerMixin");m=m.extend(g,a,k,function(c){g.call(this);this.C=c;this.oH=this.wfa=this.vga=null;this.Sl.push(this.C);this.Qg=this.Qg.bind(this); this.$r(["loadingActive","panoramaPixelsPerDegree"]);this.set("tag","FrameHotspot");this.set("enabled",!0);this.set("inVR",!1);this.set("inScreenshot",!1);this.set("overlaysEnabled",!0);this.set("interactionEnabled",!0);this.set("contentInteractive",!1);this.set("transparent",!1);this.set("centerOverDisplay",!1);this.set("loadingActive",!1);this.set("visible",!1);this.set("loaded",!1);this.set("inView",!1);this.set("frameHidden",!0);this.Hg=this.gv=this.xe=this.sg=null;this.rka(this.C)});m.prototype.hc= function(){this.sg=(new e(n.ia)).ko(this.KH.bind(this));this.xe=(new e(n.xc)).mr(this.OH.bind(this));this.a_a();g.prototype.hc.call(this);h.ba(this.C,"url enabled image fadeInDuration fadeOutDuration contentInteractive interactionEnabled transparent".split(" "),this.Qg,!0);this.qfa()};m.prototype.mc=function(){this.rfa();this.sg.dispose();this.xe.dispose();h.da(this.C,"url enabled image fadeInDuration fadeOutDuration contentInteractive interactionEnabled transparent".split(" "),this.Qg);this.zxa(); this.Bxa();g.prototype.mc.call(this)};m.prototype.Qg=function(){this.set("url",this.C.get("url"));this.Hg.set("url",this.get("url"));this.set("image",this.C.get("image"));this.lb.set("image",this.get("image"));this.lb.set("level",this.get("image")&&b.jLa(this.C,this.get("panoramaPixelsPerDegree")));this.set("enabled",this.C.get("enabled"));this.set("fadeInDuration",this.C.get("fadeInDuration"));this.set("fadeOutDuration",this.C.get("fadeOutDuration"));this.set("interactionEnabled",this.C.get("interactionEnabled")); this.set("contentInteractive",this.C.get("contentInteractive"));this.set("transparent",this.C.get("transparent"));this.Na()};m.prototype.za=function(c){this.set("loaded",!!this.Hg&&this.Hg.get("frameLoaded"));this.set("inVR",c.Va);this.set("inScreenshot",c.IJ);this.set("hotspotsEnabled",c.FJ);g.prototype.za.call(this,c);this.ye(c);this.Nla(c)};m.prototype.a_a=function(){this.LR();this.m_a();this.l_a();var c=[this.lb,this.gv,this.Hg];this.sg.jg(c);this.xe.jg(c);this.bi(c)};m.prototype.ye=function(){this.set("globalBlendingActiveCopy", this.get("globalBlendingActive"));if(this.W("globalBlendingActive","globalBlendingActiveCopy","url","inVR","hotspotsEnabled","enabled","interactionEnabled","contentInteractive","composedTranslationX","composedTranslationY","composedTranslationZ")){var c=!(this.get("composedTranslationX")!=0||this.get("composedTranslationY")!=0||this.get("composedTranslationZ")!=0)&&this.get("globalBlendingActive")==0&&this.get("hotspotsEnabled")&&this.get("enabled")&&!this.get("inVR")&&!!this.get("url");this.set("visible", c);this.set("beamEnabled",c&&this.get("interactionEnabled"));this.Hg.set("contentInteractive",c&&this.get("interactionEnabled")&&this.get("contentInteractive"))}this.set("frameHidden",!this.Hg.get("geometryVisible"));this.W("visible","loaded","frameHidden","transparent","inScreenshot")&&(this.get("visible")||this.set("loaded",!1),this.lb.set("alpha",!this.get("visible")||!this.get("frameHidden")&&this.get("loaded")?0:1),this.lb.set("alpha",1),this.gv.set("alpha",!this.get("visible")||this.get("frameHidden")|| !this.get("loaded")||this.get("transparent")||this.get("inScreenshot")?0:1),this.Hg.set("alpha",this.get("visible")?1:0),this.Hg.set("transparent",this.get("transparent")),this.set("inView",this.get("visible")&&(this.get("loaded")||this.get("image"))),this.Na());this.W("inView")&&this.C.o(this.get("inView")?n.od:n.jd)};m.prototype.LR=function(){this.OG();this.lb=new this.oH;this.lb.set("image",this.get("image"));this.lb.set("level",this.get("image")&&b.jLa(this.C,this.get("panoramaPixelsPerDegree"))); this.lb.set("visible",!0);this.lb.set("alpha",0);this.set("imagePlane",this.lb)};m.prototype.OG=function(){this.lb&&(this.lb.remove(),this.lb=null,this.set("imagePlane",null))};m.prototype.l_a=function(){this.zxa();this.Hg=new this.wfa;this.Hg.bind(n.ia,this.kya,this,!0);this.Hg.set("url",this.get("url"));this.Hg.set("visible",!0);this.Hg.set("alpha",1);this.set("framePlane",this.Hg)};m.prototype.zxa=function(){this.Hg&&(this.Hg.h(n.ia,this.kya,this,!0),this.Hg.remove(),this.Hg=null,this.set("framePlane", null))};m.prototype.m_a=function(){this.Bxa();this.gv=new this.vga;this.gv.set("visible",!0);this.gv.set("alpha",1);this.set("holePlane",this.gv)};m.prototype.Bxa=function(){this.gv&&(this.gv.remove(),this.gv=null,this.set("holePlane",null))};m.prototype.$fa=function(){return this.gv};m.prototype.kya=function(){this.Na()};m.prototype.KH=function(){this.o(n.vd);this.o(n.ia)};m.prototype.OH=function(c,d){var f=0;d.lw(function(l){(l=d.Nn(l))&&(f+=l.percent)});this.o(new ProgressEvent(n.xc,f/d.zd.length))}; return m}); define("tdv/player/view/panorama/renderer/object/ComposedCSSObject",["require","tdv/utils","tdv/player/view/panorama/renderer/object/Base"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/Base");a=m.extend(h,function(){h.call(this);this.set("tag","ComposedCSSObject");this.set("transparent",!1);this.set("cssScene",null);this.set("cssSceneOver",null);this.set("cssObject",this.bea());this.ky&&this.ky();this.LG&&this.LG();this.pC&&this.pC();this.iq&&this.iq()});a.prototype.bea= function(){var n=new THREE.CSS3DObject;n.matrixAutoUpdate=!1;return n};a.prototype.hc=function(){h.prototype.hc.call(this);this.Aq&&this.Aq();this.jT&&this.jT();this.nN&&this.nN()};a.prototype.mc=function(){this.MM&&this.MM();this.pN&&this.pN();this.Cq&&this.Cq();var n=this.get("cssObject");n&&n.parent&&n.parent.remove(n);this.set("cssScene",null);h.prototype.mc.call(this)};a.prototype.za=function(n){this.dg&&this.dg(n);h.prototype.za.call(this,n);this.set("cssScene",n.RW);this.set("cssSceneOver", n.SW);if(this.W("transparent")){var g=this.get("cssObject");g&&g.parent&&g.parent.remove(g)}this.W("cssScene","cssSceneOver","transparent")&&(g=this.get("transparent")?n.SW:n.RW)&&g.add(this.get("cssObject"));this.Dn();this.Qj&&this.Qj(n);this.Wz&&this.Wz(n);this.NI()};a.prototype.Dn=function(){this.W("composedAlpha","meshGroup")&&this.aC()};a.prototype.aC=function(){this.get("cssObject").element.style.display=this.get("composedAlpha")>0?"block":"none"};a.prototype.NI=function(){this.W("index")&& (this.get("cssObject").containerElement.style.zIndex=this.get("index"))};return a}); define("tdv/player/view/panorama/renderer/object/geometry/CSSQuadGeometryMixin",["require","tdv/player/view/panorama/renderer/3d/util/GeometryUtil","tdv/player/view/util/geo/Vector"],function(a){var m=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),h=a("tdv/player/view/util/geo/Vector"),n=new THREE.Matrix4,g=Math.PI/180;return{ky:function(){this.set("vertices",void 0);this.wi=new THREE.Matrix4;this.ke=new THREE.Matrix4;this.Bq=new THREE.Matrix4;this.Io=new THREE.Matrix4;this.ys=new THREE.Matrix4}, bea:function(){var k=new THREE.CSS3DQuad;k.matrixAutoUpdate=!1;return k},Wz:function(k){var e=!1;if(this.W("vertices","contentWidth","contentHeight")){var b=this.get("vertices");e=h.At(b[0].get("yaw")*g,b[0].get("pitch")*g).normalize();var c=h.At(b[1].get("yaw")*g,b[1].get("pitch")*g).normalize(),d=h.At(b[2].get("yaw")*g,b[2].get("pitch")*g).normalize();b=h.At(b[3].get("yaw")*g,b[3].get("pitch")*g).normalize();var f=this.get("cssObject");f.vertices[0].set(e.x,e.y,-e.z);f.vertices[1].set(c.x,c.y,-c.z); f.vertices[2].set(d.x,d.y,-d.z);f.vertices[3].set(b.x,b.y,-b.z);f.contentWidth=this.get("contentWidth");f.contentHeight=this.get("contentHeight");e=!0}c=!1;this.W("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.wi.makeTranslation(-this.get("composedTranslationX")*.5*m.th,this.get("composedTranslationY")*.5*m.th,this.get("composedTranslationZ")*.5*m.th),c=!0);this.W("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.ke.makeRotationY(-k.Xa*g),this.ke.multiply(n.makeRotationX(-this.get("composedDeltaPitch")* g)),this.ke.multiply(n.makeRotationY(this.get("composedDeltaYaw")*g)),this.ke.multiply(n.makeRotationY(k.Xa*g)),c=!0);if(c||this.W("meshGroup"))this.ys.copy(this.wi),this.ys.multiply(this.ke),this.get("cssObject").matrix.copy(this.ys),this.get("cssObject").matrixWorldNeedsUpdate=!0;this.set("cameraYaw",k.Xa);this.set("cameraPitch",k.pitch);this.set("cameraRoll",k.Mg);this.set("cameraHfov",k.Wd);this.set("cameraWidth",k.width);this.set("cameraHeight",k.height);k.camera&&(c||e||this.W("cameraYaw","cameraPitch", "cameraRoll","cameraHfov","cameraWidth","cameraHeight"))&&(this.get("cssObject").projectVertices(k.camera),this.set("geometryVisible",this.get("cssObject").isVisible),this.W("geometryVisible")&&this.Yja())}}}); define("tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin","require tdv/constants/Priority tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/geo/Vector".split(" "),function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),g=a("tdv/player/view/panorama/renderer/TextureLoader"), k=a("tdv/player/view/util/geo/Vector"),e=new THREE.Matrix4,b=Math.PI/180;return{ky:function(){this.set("distance",void 0);this.set("vertices",void 0);this.Lh=null;this.wi=new THREE.Matrix4;this.ke=new THREE.Matrix4;this.vn=new THREE.Matrix4;this.Dj=new THREE.Matrix4},Wz:function(c){this.kbb(c);this.gt(c)},oM:function(){var c=this.get("meshGroup");return c?n.tm(c)[0]:null},hq:function(){this.Lh||(this.Lh=this.oC());return[0].map(function(c){var d=this.JR();c=n.create(this.Lh[c],d);g.fB(c,g.Or);g.gB(c, g.Au);g.qK(c,m.VQ);g.oZ(c,1);return c}.bind(this))},kbb:function(){if(this.W("vertices")){var c=this.get("meshGroup");if(c)return this.Lh&&this.Lh.forEach(function(d){h.dispose(d)}),this.Lh=this.oC(),n.tm(c).map(function(d,f){n.jra(d,this.Lh[f])}.bind(this))}},oC:function(){function c(w){return w==0||isNaN(w)||!isFinite(w)}var d=this.get("vertices")||[];if(d.length!=4)return[h.OJa(-1,1,1,1,1,1,1,-1,1,-1,-1,1)];var f=k.At(d[0].get("yaw")*b,d[0].get("pitch")*b).normalize(),l=k.At(d[1].get("yaw")*b, d[1].get("pitch")*b).normalize(),p=k.At(d[2].get("yaw")*b,d[2].get("pitch")*b).normalize();d=k.At(d[3].get("yaw")*b,d[3].get("pitch")*b).normalize();var q=f.clone().d7(p),r=d.clone().d7(l),t=q.clone().d7(r).normalize();r=(f.y*2*t.x/f.x-2*t.y)/(-p.y+f.y*p.x/f.x);c(r)&&(r=(f.z*2*t.x/f.x-2*t.z)/(-p.z+f.z*p.x/f.x));c(r)&&(r=(f.z*2*t.y/f.y-2*t.z)/(-p.z+f.z*p.y/f.y));var u=(2*t.x-p.x*r)/f.x;c(u)&&(u=(2*t.y-p.y*r)/f.y);c(u)&&(u=(2*t.z-p.z*r)/f.z);q=(l.y*2*t.x/l.x-2*t.y)/(-d.y+l.y*d.x/l.x);c(q)&&(q=(l.z* 2*t.x/l.x-2*t.z)/(-d.z+l.z*d.x/l.x));c(q)&&(q=(l.z*2*t.y/l.y-2*t.z)/(-d.z+l.z*d.y/l.y));var v=(2*t.x-d.x*q)/l.x;c(v)&&(v=(2*t.y-d.y*q)/l.y);c(v)&&(v=(2*t.z-d.z*q)/l.z);f=f.eZ(u);l=l.eZ(v);p=p.eZ(r);d=d.eZ(q);return[h.OJa(f.x,f.y,-f.z,l.x,l.y,-l.z,p.x,p.y,-p.z,d.x,d.y,-d.z)]},gt:function(c){var d=!1;this.W("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.wi.makeTranslation(-this.get("composedTranslationX")*.5*h.th,this.get("composedTranslationY")*.5*h.th,this.get("composedTranslationZ")* .5*h.th),d=!0);this.W("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.ke.makeRotationY(-c.Xa*b),this.ke.multiply(e.makeRotationX(-this.get("composedDeltaPitch")*b)),this.ke.multiply(e.makeRotationY(this.get("composedDeltaYaw")*b)),this.ke.multiply(e.makeRotationY(c.Xa*b)),d=!0);this.W("distance","composedTranslationX","composedTranslationY","composedTranslationZ")&&(c=this.Ia.get("composedTranslationX")==0&&this.Ia.get("composedTranslationY")==0&&this.Ia.get("composedTranslationZ")== 0&&this.get("distance")!==void 0?h.qw(this.get("distance")):h.Et(),this.vn.makeScale(c,c,c),d=!0);if(d||this.W("meshGroup"))this.Dj.copy(this.wi),this.Dj.multiply(this.ke),this.Dj.multiply(this.vn),c=n.tm(this.get("meshGroup")),n.qt(c[0],this.Dj)}}}); define("tdv/player/view/panorama/renderer/object/material/IFrameMaterialMixin",["require","tdv/constants/EventName"],function(a){var m=a("tdv/constants/EventName");return{LG:function(){this.set("visible",!1);this.set("inView",!1);this.set("url",!1);this.set("contentWidth",100);this.set("contentHeight",100);this.set("contentInteractive",!1);this.set("frameLoaded",!0);this.Oc=this.Md=null;this.F1=void 0;this.s6=this.s6.bind(this);this.t6=this.t6.bind(this);this.u6=this.u6.bind(this);this.nH=this.nH.bind(this); this.Bga=this.Bga.bind(this)},Qj:function(){this.W("cssObject")&&(this.n_a(),this.get("cssObject").element.appendChild(this.Md));this.W("url")&&this.I8a(this.get("url"));this.W("contentWidth","contentHeight")&&(this.Md.style.width=this.get("contentWidth")+2+"px",this.Md.style.height=this.get("contentHeight")+2+"px");this.W("contentInteractive")&&(this.Md.style.pointerEvents=this.get("contentInteractive")?"auto":"none")},Dn:function(){this.W("composedAlpha")&&(this.get("composedAlpha")>0?this.Oc&& !this.Oc.parentNode&&(this.PGa(),this.Md.appendChild(this.Oc)):this.Oc&&this.Oc.parentNode&&this.Md.removeChild(this.Oc))},jT:function(){this.o(m.vd);this.get("frameLoaded")&&this.o(m.ia)},MM:function(){this.xZa()},t6:function(h){h.preventDefault();h.stopImmediatePropagation()},s6:function(){this.La.dr().PE(null)},u6:function(h){h.preventDefault();h.stopImmediatePropagation()},nH:function(){this.set("frameLoaded",!0);this.o(m.ia)},Bga:function(){this.G1=null;this.nH()},n_a:function(){this.Oc||(this.Md= document.createElement("div"),this.Md.style.position="absolute",this.Md.style.left=this.Md.style.top="-1px",this.get("cssObject").isCSS3DObject&&(this.Md.style.transform="translate(-50%, -50%)"),this.Md.style.overflow="hidden",this.Md.style["-webkit-overflow-scrolling"]="touch",this.Md.addEventListener("mouseenter",this.s6,!0),this.Md.addEventListener("mousemove",this.t6,!0),this.Md.addEventListener("mousewheel",this.u6,!0),this.Oc=document.createElement("iframe"),this.Oc.setAttribute("allow","fullscreen; accelerometer; geolocation; gyroscope; magnetometer; vr; autoplay; camera; microphone; display-capture; xr-spatial-tracking"), this.Oc.setAttribute("frameborder","0"),this.Oc.setAttribute("scrolling","auto"),this.Oc.style.width="100%",this.Oc.style.height="100%",this.Oc.addEventListener("load",this.nH,!0),this.get("composedAlpha")>0&&this.Md.appendChild(this.Oc))},xZa:function(){this.Oc&&(this.Oc.src="",this.Rja(),this.nC(),this.Oc.parentNode&&this.Oc.parentNode.removeChild(this.Oc),this.Oc=null);this.Md&&(this.Md.parentNode&&this.Md.parentNode.removeChild(this.Md),this.Md.removeEventListener("mouseenter",this.s6,!0),this.Md.removeEventListener("mousemove", this.t6,!0),this.Md.removeEventListener("mousewheel",this.u6,!0),this.Md=null)},I8a:function(h){this.F1!==h&&(this.F1=h,this.set("frameLoaded",!1),this.PGa())},PGa:function(){this.F1?(this.N8a(),this.qXa(),this.Oc.src=this.F1):(this.nC(),this.Rja(),this.Oc.src="",this.nH())},N8a:function(){this.nC();this.G1=setTimeout(this.Bga,3E3)},nC:function(){this.G1&&(clearTimeout(this.G1),this.G1=null)},qXa:function(){this.Rja();this.Oc.addEventListener("load",this.nH,!0)},Rja:function(){this.Oc.removeEventListener("load", this.nH,!0)}}}); define("tdv/player/view/panorama/renderer/object/material/PassthroughMaterialMixin",["require","tdv/player/view/panorama/renderer/3d/util/MeshUtil","tdv/constants/EventName"],function(a){var m=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),h=a("tdv/constants/EventName");return{LG:function(){this.get("materialConfig").params.blending=THREE.NoBlending},jT:function(){this.o(h.vd);this.o(h.ia)},Dn:function(){this.W("meshGroup","composedAlpha")&&m.nf(this.get("meshGroup"),this.get("composedAlpha")>0? .001:0)}}}); define("tdv/player/view/panorama/renderer/object/position/QuadFrameHotspotPositionMixin",["require","tdv/binding/BindingsHandler","tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"],function(a){var m=a("tdv/binding/BindingsHandler"),h=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController");return{iq:function(){this.set("playbackPositions",null);this.ue=this.ue.bind(this);this.Ib=new h},Aq:function(){m.ba(this.C,["playbackPositions","width","height"], this.ue,!0)},Cq:function(){m.da(this.C,["playbackPositions","width","height"],this.ue)},ue:function(){this.set("playbackPositions",this.C.get("playbackPositions"));this.set("contentWidth",this.C.get("width"));this.set("contentHeight",this.C.get("height"))},dg:function(){this.W("playbackPositions","currentTime")&&(this.Ib.ZE(this.get("playbackPositions")),this.Ib.XE(this.get("currentTime")),this.set("vertices",this.Ib.Doa()));this.W("framePlane","holePlane","imagePlane","vertices")&&this.Cb().forEach(function(n){n.set("vertices", this.get("vertices"));n.set("contentWidth",this.get("contentWidth"));n.set("contentHeight",this.get("contentHeight"))}.bind(this))}}}); define("tdv/player/view/panorama/renderer/object/QuadFrameHotspot","require tdv/utils tdv/player/view/panorama/renderer/object/FrameHotspot tdv/player/view/panorama/renderer/object/ComposedCSSObject tdv/player/view/panorama/renderer/object/ComposedWebGLObject tdv/player/view/panorama/renderer/object/geometry/CSSQuadGeometryMixin tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin tdv/player/view/panorama/renderer/object/material/IFrameMaterialMixin tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin tdv/player/view/panorama/renderer/object/material/PassthroughMaterialMixin tdv/player/view/panorama/renderer/object/position/QuadFrameHotspotPositionMixin".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/FrameHotspot"),n=a("tdv/player/view/panorama/renderer/object/ComposedCSSObject"),g=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject"),k=a("tdv/player/view/panorama/renderer/object/geometry/CSSQuadGeometryMixin"),e=a("tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin"),b=a("tdv/player/view/panorama/renderer/object/material/IFrameMaterialMixin"),c=a("tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin"), d=a("tdv/player/view/panorama/renderer/object/material/PassthroughMaterialMixin");a=a("tdv/player/view/panorama/renderer/object/position/QuadFrameHotspotPositionMixin");var f=m.extend(g,e,c,function(){g.call(this);this.set("tag","QuadFrameHotspotImage")}),l=m.extend(n,k,b,function(){n.call(this);this.set("tag","QuadFrameHotspotFrame")}),p=m.extend(g,e,d,function(){g.call(this);this.set("tag","QuadFrameHotspotHole")});return m.extend(h,a,function(q){h.call(this,q);this.oH=f;this.wfa=l;this.vga=p})}); define("tdv/player/view/panorama/renderer/object/position/QuadHotspotImagePositionMixin",["require","tdv/binding/BindingsHandler","tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"],function(a){var m=a("tdv/binding/BindingsHandler"),h=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController");return{iq:function(){this.set("playbackPositions",null);this.set("distance",void 0);this.ue=this.ue.bind(this);this.Ib=new h},Aq:function(){m.ba(this.C,["vertices", "distance","playbackPositions"],this.ue,!0)},Cq:function(){m.da(this.C,["vertices","distance","playbackPositions"],this.ue)},ue:function(){this.set("distance",this.C.get("distance"));this.set("vertices",this.C.get("vertices"));this.set("playbackPositions",this.C.get("playbackPositions"))},dg:function(){this.W("playbackPositions","currentTime")&&(this.Ib.ZE(this.get("playbackPositions")),this.Ib.XE(this.get("currentTime")),this.set("vertices",this.Ib.Doa()),this.set("alpha",this.Ib.pw()))}}}); define("tdv/player/view/panorama/renderer/object/QuadHotspotImage","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/ComposedWebGLObject tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin tdv/player/view/panorama/renderer/object/position/QuadHotspotImagePositionMixin tdv/player/view/panorama/renderer/object/util/LevelUtil".split(" "), function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject"),e=a("tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin"),b=a("tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin"),c=a("tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin"),d=a("tdv/player/view/panorama/renderer/object/position/QuadHotspotImagePositionMixin"), f=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),l=0;a=m.extend(k,e,d,b,c,function(p){k.call(this);this.set("tag","QuadHotspotImage");this.set("id","quad_hs_image_"+l++);this.set("side",THREE.DoubleSide);this.C=p;this.Sl.push(this.C);this.Rg=this.Rg.bind(this)});a.prototype.hc=function(){k.prototype.hc.call(this);h.ba(this.C,["image.levels"],this.Rg,!0)};a.prototype.mc=function(){h.da(this.C,["image.levels"],this.Rg);k.prototype.mc.call(this)};a.prototype.Rg=function(){this.set("image", this.C.get("image"));this.set("level",f.Ufb(this.C))};a.prototype.za=function(p){this.II();k.prototype.za.call(this,p);this.W("inView")&&this.C.o(this.get("inView")?n.od:n.jd)};a.prototype.II=function(){if(this.W("meshGroup","panoramaId","id")){var p=this.get("meshGroup");p&&p.children.forEach(function(q){g.setAttribute(q,g.qF,this.get("panoramaId"));g.setAttribute(q,g.Eaa,this.get("id"))}.bind(this))}};return a}); define("tdv/player/view/panorama/renderer/object/control/VideoAutoplayController",["require","tdv/constants/EventName","tdv/constants/PlaybackState"],function(a){function m(k,e){this.Ie=k;this.Vd=e;this.Ld=!1;this.S3=!0;this.nda=this.Via=!1;this.Pca();this.eia()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState");m.prototype.clear=function(){this.lCa();this.Oja()};m.prototype.kg=function(k){this.Ld!=k&&(this.Ld=k,this.Uv())};m.prototype.klb=function(k){this.S3!=k&&((this.S3=k)&& this.lCa(),this.Uv())};m.prototype.Uv=function(){if(!this.Ld||this.S3)this.Vd.set("state",n.ca);else if(this.Vd.get("autoplay")||this.nda)this.nda=!1,this.Vd.set("state",n.PLAYING)};m.prototype.eia=function(){if(!this.Via){var k=this.Vd.get("video").get("autoplayTime");k!==void 0&&this.Vd.get("video").get("autoplayTimeLimit")<(new Date).getTime()&&(k=void 0);this.Vd.set("currentTime",k);this.nda=k!==void 0}};m.prototype.lCa=function(){this.Via||(this.Via=!0,this.Vd.get("state")==n.PLAYING?(this.Vd.get("video").set("autoplayTimeLimit", (new Date).getTime()+g),this.Vd.get("video").set("autoplayTime",this.Vd.get("currentTime",0))):this.Vd.get("video").set("autoplayTime",void 0))};m.prototype.Pca=function(){this.Vd.get("video").bind(h.L("autoplayTime"),this.eia,this,!0)};m.prototype.Oja=function(){this.Vd.get("video").h(h.L("autoplayTime"),this.eia,this,!0)};var g=1E3;return m}); define("tdv/player/view/panorama/renderer/object/pointer/VideoHotspotPointerMixin",["require","tdv/constants/EventName","tdv/player/view/util/ColorPicker"],function(a){var m=a("tdv/constants/EventName"),h=a("tdv/player/view/util/ColorPicker");return{pC:function(){this.set("beamEnabled",!1);this.Cd=!1;this.oD=this.pD=void 0},Sq:function(n){this.pD=n.Xa;this.oD=n.pitch},ao:function(n){if(n.ag==m.Lm){var g=!n.qm()&&this.bt(n)&&!this.get("blendingActive");if(g){n.LD(this.C);this.C.get("useHandCursor")&& n.WI(this.C);n.om(this.get("distance"));var k=this.jc(n.MJ());k&&n.A6(k,this.BD(n.MJ()))}this.Cd!=g&&(this.Cd=g,this.C.o(this.Cd?m.uc:m.Eb),n.Bw()&&this.C.o(this.Cd?m.UF:m.Qr))}else n.ag==m.Yf&&!n.qm()&&this.bt(n)&&(this.C.jP(m.ma,!0).length>1&&n.du(this.C),n.om(this.get("distance")),this.C.o(m.ma))},bt:function(n){if(this.get("beamEnabled")){n=this.$fa().Fy(n.Qs);for(var g=0;g0&&this.get("hotspotsEnabled")&&this.get("enabled")&&(!this.get("inVR")||this.get("enabledInVR"))&&(!this.get("inVRWithGazePointer")||this.get("enabledInVRWithGazePointer"))&&(this.get("inVR")||this.get("enabledInStandard")));this.W("blendingActive")&&this.Qm.klb(this.get("blendingActive"))};a.prototype.iW=function(){this.set("frameEmpty",!this.Lb||!this.Lb.get("hasStableContent"))};a.prototype.ye=function(v){var w=this.get("itemVisible"); if(this.W("frameEmpty","state","image","video","inVR","hotspotsEnabled","enabledInVR","enabledInVRWithGazePointer","enabledInStandard","enabled","interactionEnabled")){var x="none";!this.get("hotspotsEnabled")||!this.get("enabled")||this.get("inVR")&&!this.get("enabledInVR")||this.get("inVRWithGazePointer")&&!this.get("enabledInVRWithGazePointer")||!this.get("inVR")&&!this.get("enabledInStandard")||(this.Lb&&(!this.lb||!this.get("frameEmpty")&&(this.get("state")!=g.ca||this.Cma&&this.get("videoVisibleOnStop")))? x="video":this.lb&&(x="image"),this.get("state")!=g.ca&&(this.Cma=!0));this.set("itemVisible",x);this.set("beamEnabled",x!="none"&&this.get("interactionEnabled"))}if(this.W("itemVisible")){x=this.get("itemVisible")!="none";var y=w!="none";if(x&&y&&!this.get("chromaColor")&&this.av.length==0)this.lb&&this.lb.set("alpha",this.get("itemVisible")=="image"?1:0),this.Lb&&this.Lb.set("alpha",this.get("itemVisible")=="video"?1:0);else{w=x==y?50:x?this.get("fadeInDuration"):this.get("fadeOutDuration");x!= y&&this.C.o(x?n.od:n.jd);y=this.lb?this.lb.get("alpha"):0;var z=this.Lb?this.Lb.get("alpha"):0;x=[{video:z,image:y}];this.get("itemVisible")=="video"?(x.push({video:1,image:y,time:w*(1-z)}),x.push({video:1,image:0,time:50*(y-0)})):this.get("itemVisible")=="image"?(x.push({video:z,image:1,time:w*(1-y)}),x.push({video:0,image:1,time:50*(z-0)})):x.push({video:0,image:0,time:Math.max(z,y,1/w)*w});this.av=[];for(w=1;w0&&this.av.push(new q("linear",[new r("imageAlpha",x[w-1].image, x[w].image),new r("videoAlpha",x[w-1].video,x[w].video)],x[w].time))}}this.av.length>0&&(this.av[0].Ve()?this.av.shift():this.av[0].Nb(v.Af),this.av.length>0&&(this.lb&&this.lb.set("alpha",this.av[0].ob("imageAlpha")),this.Lb&&this.Lb.set("alpha",this.av[0].ob("videoAlpha")),this.Na()))};a.prototype.LR=function(){this.OG();this.get("image")&&this.get("imageLevel")&&(this.lb=new this.oH,this.lb.set("image",this.get("image")),this.lb.set("level",this.get("imageLevel")),this.lb.set("isVideoTexture", !0),this.lb.set("visible",!0),this.lb.set("alpha",0),this.lb.set("side",THREE.DoubleSide))};a.prototype.OG=function(){this.lb&&(this.lb.remove(),this.lb=null)};a.prototype.NR=function(){this.zC();this.get("video")&&this.get("videoLevel")&&(this.Lb=new this.Bma,this.Lb.set("scriptObject",this.C),this.Lb.set("video",this.get("video")),this.Lb.set("level",this.get("videoLevel")),this.Lb.set("visible",!0),this.Lb.set("alpha",0),this.Lb.set("side",THREE.DoubleSide))};a.prototype.zC=function(){this.Lb&& (this.Lb.remove(),this.Lb=null)};a.prototype.KH=function(){this.o(n.vd);this.o(n.ia)};a.prototype.OH=function(v,w){var x=0;w.lw(function(y){(y=w.Nn(y))&&(x+=y.percent)});this.o(new p(n.xc,x/w.zd.length))};a.prototype.$fa=function(){return this.get("itemVisible")=="video"?this.Lb:this.lb};return a}); define("tdv/player/view/panorama/renderer/object/material/VideoResourceMaterialMixin","require tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/control/CueController tdv/player/view/panorama/renderer/object/control/VideoPlaybackController tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/util/geo/Quaternion tdv/view/av/SubtitleController tdv/view/av/VideoPlayer".split(" "),function(a){var m= a("tdv/constants/EventName"),h=a("tdv/constants/PlaybackState"),n=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"),g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/control/CueController"),e=a("tdv/player/view/panorama/renderer/object/control/VideoPlaybackController"),b=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),c=a("tdv/player/view/util/geo/Quaternion"),d=a("tdv/view/av/SubtitleController"),f=a("tdv/view/av/VideoPlayer"), l=new THREE.Euler,p=new THREE.Quaternion,q=new THREE.Matrix4,r=new THREE.Matrix4,t=Math.PI/180;return{LG:function(){this.set("visible",!1);this.set("inView",!1);this.set("frameEmpty",!0);this.set("hasStableContent",!1);this.set("blending",0);this.set("chromaColor",void 0);this.set("chromaThreshold",0);this.set("chromaSmoothing",0);this.set("scriptObject",null);this.set("video",null);this.set("level",null);this.set("loop",!1);this.set("side",void 0);this.hb=this.Lb=null;this.Cma=!1;this.WN=this.Th= this.yn=this.Ua=this.fs=this.ra=null},MM:function(){this.zC()},Qj:function(u){this.lbb();this.FD();this.iW(u)},lbb:function(){this.W("scriptObject","video","level")&&(this.zC(),this.Lb=this.get("video"),this.hb=this.get("level"),this.C=this.get("scriptObject"),this.NR())},FD:function(){if(this.W("video","blending","chromaColor","chromaThreshold","chromaSmoothing","side")&&this.Lb){var u=new n.Rp(this.Lb.rl());u.QD=this.get("blending");u.dw=this.get("chromaColor");u.LW=this.get("chromaThreshold"); u.KW=this.get("chromaSmoothing");u.side=this.get("side");this.set("materialConfig",u)}},Dn:function(){this.W("visible","composedAlpha","image","state")&&this.set("inView",this.get("visible")&&this.get("composedAlpha")>0);this.W("composedAlpha","meshGroup","inView")&&g.nf(this.get("meshGroup"),this.get("inView")?this.get("composedAlpha"):0)},iW:function(u){var v=!!this.Th&&this.Th.isEmpty(),w=this.ra&&this.ra.G7(),x=!!w&&w.isEmpty();x&&!v&&this.ra.getState()==h.PLAYING&&this.C.get("loop")&&(w=this.Th, x=!1);this.set("frameEmpty",x);this.Qla();this.WN.ora(u.Jk>0);!this.Th||w&&!this.Th.isEqual(w)?(this.Th=w,(v=this.Th.$u)&&v.tagName=="VIDEO"&&(v.width=this.get("contentWidth"),v.height=this.get("contentHeight")),this.WN.bo(v),this.WN.update(),this.Na()):this.ra.getState()==h.PLAYING&&this.Na();q.makeRotationFromQuaternion(c.iX(u.Xa,u.pitch,u.Mg,p));this.ra.cu(q)},Qla:function(){var u=this.ra.getCurrentTime(),v=this.ra.mj();this.get("frameEmpty")?this.set("hasStableContent",!1):u>this.c1+.1?this.set("hasStableContent", !0):u==0&&this.pha>v-.5?this.set("hasStableContent",!0):this.set("hasStableContent",!1);this.W("frameEmpty")&&!this.get("frameEmpty")&&(this.c1=u);!this.get("frameEmpty")&&u>0&&(this.pha=u)},NR:function(){this.Lb&&this.hb&&this.C&&(this.set("textureSource",this.WN=new b),this.WN.aZ(!0),this.set("contentWidth",this.hb.get("width")),this.set("contentHeight",this.hb.get("height")),this.set("alpha",0),this.ra=new f(this.La.dr(),this.Lb,this.C.get("directionalAudio")),this.QXa(),this.ra.pkb(),this.fs= new k(this.C,this.ra),this.Ua=new e(this.La.dr(),this.C,this.ra),this.yn=new d(this.La.ld.get("panorama"),this.ra),this.Px(),this.o(m.vd),this.o(m.ia))},QXa:function(){var u=this.C.get("vertices")||[this.C];if(u.length!=0){var v=u[0].get("yaw",0);u[0].get("pitch",0);for(var w=0,x=0,y=0;yv+180;)z-=360;for(;z0;){var d=c.pop();b.push(d);for(var f=d.qe.length-1;f>=0;f--)c.push(d.qe[f])}return b};e.prototype.update=function(b){var c=this.all(),d=c.length,f;for(f=0;f0?l+t:l-((this.qa.clientHeight||0)-t)}p=Math.max(Math.min(p,this.Gb.nb()-q-3),3);l=Math.max(Math.min(l,this.Gb.Mb()-r-3),3);this.qa.style.left=p+"px";this.qa.style.top=l+"px"};f.prototype.ns= function(){if(this.Cwa){var l=h.offset(this.Jh.wa().cc());return{x:l.left+this.Jh.nb()*.5,y:l.top+this.Jh.Mb()*.5}}return{x:this.oz||0,y:(this.pz||0)+25}};f.prototype.oe=function(){this.IG();this.HFa();this.Oy&&(this.qa.style.display="none",this.Jh.o(n.Gua),this.Oy=!1)};f.prototype.zia=function(){this.Jh.get("toolTip")?this.b2()||(this.Oy?this.qFa():this.DV()):this.b2()?this.IG():this.Oy&&this.oe()};f.prototype.tg=function(l){this.oz=l.pageX;this.pz=l.pageY;this.Oy&&this.Jh.get("toolTipFollowMouse")&& this.dg()};f.prototype.qFa=function(){this.pFa(this.Jh,this.Jh.get("toolTip"),this.Jh.get("toolTipCentered"))};f.prototype.rFa=function(){this.pFa(this.Jh,this.gGa,!0)};f.prototype.b2=function(){return this.tk!=null};f.prototype.DV=function(){var l=this.Jh&&this.Jh.get("toolTipDisplayTime");if(l===void 0||l===null)l=f.JQ.toolTipDisplayTime;this.IG();this.tk=setTimeout(function(){this.tk=null;this.fGa?this.rFa():this.qFa()}.bind(this),l)};f.prototype.IG=function(){this.b2()&&(clearTimeout(this.tk), this.tk=null)};f.prototype.F9a=function(l){var p=this.ns();this.HFa();var q=function(){this.qa.style.display=this.Oy&&!this.M3a(l,p.x,p.y)?"inline":"none"}.bind(this);this.R1=setInterval(q,300);q()};f.prototype.HFa=function(){this.R1&&(clearInterval(this.R1),this.R1=null)};f.prototype.iab=function(l){function p(r){var t=l.get(r);return t===void 0?f.JQ[r]:t}this.qa.style.opacity=p("toolTipOpacity");this.qa.style.paddingTop=p("toolTipPaddingTop")+"px";this.qa.style.paddingBottom=p("toolTipPaddingBottom")+ "px";this.qa.style.paddingLeft=p("toolTipPaddingLeft")+"px";this.qa.style.paddingRight=p("toolTipPaddingRight")+"px";this.qa.style.textAlign=p("toolTipHorizontalAlign");this.ae.style.opacity=p("toolTipBackgroundOpacity");this.ae.style.backgroundColor=p("toolTipBackgroundColor");this.ae.style.border=[p("toolTipBorderSize")+"px","solid",p("toolTipBorderColor")].join(" ");var q=p("toolTipShadowColor");this.ae.style.boxShadow=[p("toolTipShadowHorizontalLength")+"px",p("toolTipShadowVerticalLength")+"px", p("toolTipShadowBlurRadius")+"px",p("toolTipShadowSpread")+"px",e.gF(q,p("toolTipShadowOpacity"))].join(" ");this.ae.style.borderRadius=p("toolTipBorderRadius")+"px";this.Pz.style.fontFamily=k.qA(p("toolTipFontFamily"));q=p("toolTipFontSize");typeof q==="number"?q+="px":typeof q!=="string"&&(q="");this.Pz.style.fontSize=q;this.Pz.style.fontWeight=p("toolTipFontWeight");this.Pz.style.fontStyle=p("toolTipFontStyle");this.Pz.style.color=p("toolTipFontColor");q=p("toolTipTextShadowColor");this.Pz.style.textShadow= [p("toolTipTextShadowHorizontalLength")+"px",p("toolTipTextShadowVerticalLength")+"px",p("toolTipTextShadowBlurRadius")+"px",e.gF(q,p("toolTipTextShadowOpacity"))].join(" ")};f.prototype.M3a=function(l,p,q){p=document.elementsFromPoint(p,q);l=l.wa().cc();q=this.Gb.wa().cc();for(var r=0;r.29)return!0}}return!1};f.prototype.KZa=function(l){if(!l)return 0;l=l.toLowerCase();var p=l.match(/rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*(\d*\.?\d*)\s*\)/);return p?parseFloat(p[1]):l.match(/transparent/)?0:1};f.prototype.I2a=function(l){l=(l||"").split("\n");for(var p=0;p"+q+""}).join("")};f.prototype.B0a=function(l){d.nodeValue=l;(l=c.innerHTML)||(l=" ");return l};f.JQ={toolTip:void 0,toolTipBackgroundColor:"#F6F6F6", toolTipBackgroundOpacity:1,toolTipBorderColor:"#767676",toolTipBorderRadius:3,toolTipBorderSize:1,toolTipCentered:!1,toolTipCenteredOffsetY:void 0,toolTipFontFamily:"Segoe UI",toolTipFontSize:12,toolTipFontColor:"#606060",toolTipFontWeight:"normal",toolTipFontStyle:"normal",toolTipHorizontalAlign:"center",toolTipOpacity:1,toolTipPaddingBottom:2,toolTipPaddingLeft:4,toolTipPaddingTop:2,toolTipPaddingRight:4,toolTipShadowBlurRadius:3,toolTipShadowColor:"#333333",toolTipShadowHorizontalLength:3,toolTipShadowOpacity:1, toolTipShadowSpread:0,toolTipShadowVerticalLength:3,toolTipTextShadowBlurRadius:3,toolTipTextShadowColor:"#000000",toolTipTextShadowHorizontalLength:0,toolTipTextShadowOpacity:0,toolTipTextShadowVerticalLength:0,toolTipDisplayTime:600};return f}()}); define("tdv/player/view/panorama/renderer/object/canvas/ToolTipCanvas",["require","tdv/view/core/ToolTip","tdv/view/util/MeasureText","tdv/view/util/Font"],function(a){function m(e,b){this.P=e;this.An=b;this.u9a()}var h=a("tdv/view/core/ToolTip"),n=a("tdv/view/util/MeasureText"),g=a("tdv/view/util/Font"),k=180/Math.PI;m.prototype.If=function(){return this.ja};m.prototype.hg=function(){return this.ja.width};m.prototype.xg=function(){return this.ja.height};m.prototype.jf=function(){return 2*Math.atan2(this.ja.width/ 3*.5,600)*k};m.prototype.u9a=function(){this.ja=document.createElement("canvas");var e=this.An.split("\n"),b=this.Mh("toolTipBackgroundColor"),c=this.Mh("toolTipBackgroundOpacity"),d=this.Mh("toolTipBorderRadius"),f=this.Mh("toolTipBorderColor"),l=this.Mh("toolTipBorderSize");this.Mh("toolTipDisplayTime");var p=this.Mh("toolTipFontFamily"),q=this.Mh("toolTipFontSize"),r=this.Mh("toolTipFontColor"),t=this.Mh("toolTipFontWeight"),u=this.Mh("toolTipFontStyle"),v=this.Mh("toolTipPaddingBottom"),w=this.Mh("toolTipPaddingLeft"), x=this.Mh("toolTipPaddingTop"),y=this.Mh("toolTipPaddingRight"),z=this.Mh("toolTipOpacity"),A=this.Mh("toolTipTextShadowBlurRadius"),D=this.Mh("toolTipTextShadowColor"),F=this.Mh("toolTipTextShadowHorizontalLength"),C=this.Mh("toolTipTextShadowVerticalLength"),B=this.Mh("toolTipTextShadowOpacity");isNaN(q)&&(q=12);d=Math.round(d*3);l=Math.round(l*3);q=Math.round(q*3);v=Math.round(v*3);w=Math.round(w*3);x=Math.round(x*3);y=Math.round(y*3);A=Math.round(A*3);F=Math.round(F*3);C=Math.round(C*3);var H= new n.lca;H.fontFamily=p;H.fontSize=Math.round(q)+"px";H.fontWeight=t;H.fontStyle=u;this.ja=document.createElement("canvas");var E=this.ja.getContext("2d"),G=e.map(function(T){return n(T,H,E)}),N=0,O=0;G.forEach(function(T){N=Math.max(T.width,N);O+=T.height});var R=e.length>1?O/e.length*.25:0;O+=(e.length-1)*R;y=l+w+N+y+l;v=l+x+O+v+l;this.ja.width=this.ja.height=Math.max(256,Math.max(128,Math.pow(2,Math.ceil(Math.log(Math.max(y,v))/Math.LN2))));E=this.ja.getContext("2d");var Q=(this.ja.width-y)*.5, K=(this.ja.height-v)*.5;E.save();E.translate(Q,K);E.globalAlpha=z;E.strokeStyle=f;E.fillStyle=b==="transparent"?"rgba(0,0,0,0)":this.Fva(c,b);E.lineWidth=l;E.beginPath();E.moveTo(d,0);E.lineTo(y-d,0);E.quadraticCurveTo(y,0,y,d);E.lineTo(y,v-d);E.quadraticCurveTo(y,v,y-d,v);E.lineTo(d,v);E.quadraticCurveTo(0,v,0,v-d);E.lineTo(0,d);E.quadraticCurveTo(0,0,d,0);E.closePath();E.fill();l>0&&E.stroke();E.fillStyle=r;E.font=t+" "+(u!="normal"?u+" ":"")+q+(isNaN(q)?"":"px")+" "+g.qA(p);E.shadowColor=this.Fva(B, D);E.shadowOffsetX=F;E.shadowOffsetY=C;E.shadowBlur=A;E.textBaseline="middle";E.textAlign="center";var L=l+w+N*.5,U=l+x;e.forEach(function(T,Y){E.fillText(T,Math.round(L),Math.round(U+G[Y].height*.5));U+=G[Y].height+R})};m.prototype.Mh=function(e){var b=this.P.get(e);return b===void 0?h.JQ[e]:b};m.prototype.Fva=function(e,b){return"rgba("+parseInt("0x"+b.substr(1,2))+", "+parseInt("0x"+b.substr(3,2))+", "+parseInt("0x"+b.substr(5,2))+", "+e+")"};return m}); define("tdv/player/view/panorama/renderer/object/ToolTip","require tdv/utils tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/canvas/ToolTipCanvas tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/object/Plane"), g=a("tdv/player/view/panorama/renderer/object/canvas/ToolTipCanvas"),k=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),e=a("tdv/player/view/util/XR");a=m.extend(n,function(){n.call(this);this.ja=null;this.set("tag","ToolTip");this.set("text","");this.Uq=new THREE.Vector3(0,0,-h.Et());this.zq=null});a.prototype.za=function(f){this.ft(f);this.gh(f);n.prototype.za.call(this,f)};a.prototype.ft=function(f){f.Va&&!this.zq&&e.getType()==e.Kx.mo&&this.bi([this.zq=new n])}; a.prototype.gh=function(f){if(!this.ja||this.W("text")){this.get("textureSource")||this.set("textureSource",new k);this.ja=new g(this.La.P,this.get("text"));this.get("textureSource").bo(this.ja.If());this.set("contentWidth",this.ja.hg());this.set("contentHeight",this.ja.xg());this.set("hfov",this.ja.jf());this.set("distance",this.La.P.get("vrPointerDistance"));var l=this.get("matrix"),p=this.get("intersectionYaw"),q=this.get("intersectionPitch");p!==void 0&&q!==void 0?(this.set("yaw",p),this.set("pitch", q+c),this.set("distance",this.get("intersectionDistance"))):l?(this.Uq.applyMatrix4(l),this.Uq.x==0&&this.Uq.z==0||this.set("yaw",b*Math.atan2(this.Uq.x,-this.Uq.z)),this.Uq.y==0&&this.Uq.z==0||this.set("pitch",b*Math.atan2(this.Uq.y,Math.sqrt(this.Uq.z*this.Uq.z+this.Uq.x*this.Uq.x))+c)):(this.set("yaw",f.Xa),this.set("pitch",f.pitch+d))}};var b=180/Math.PI,c=2,d=5;return a}); define("tdv/player/view/panorama/renderer/pointer/Pointer",["require","exports","tdv/player/view/panorama/renderer/3d/util/RayUtil","tdv/player/view/panorama/renderer/3d/util/SceneUtil"],function(a,m,h,n){return function(){function g(k,e){this.Qf=k;this.j=e}g.prototype.update=function(){};g.prototype.clear=function(){};g.prototype.getType=function(){return this.Qf};g.prototype.lLa=function(k){return this.p1=(k=k.sh&&n.getCamera(k.sh))?h.tfb(k,this.p1):void 0};g.cR="webxr";g.WB="gaze";g.G_="gaze_click"; g.H_="laser";g.aR="mouse";g.bR="touch";return g}()}); define("tdv/player/view/panorama/renderer/pointer/Beam",["require","exports","tdv/player/view/panorama/renderer/pointer/Pointer","tdv/view/constants/Cursor"],function(a,m,h,n){return function(){function g(k,e,b,c,d){d===void 0&&(d=!0);this.we=k;this.Qs=e;this.p1=b;this.ag=c;this.Sza=d;this.Awa=[];this.Xl=[];this.uV={};this.sga=[];this.jc="";this.BD=Number.MAX_VALUE}g.prototype.Mw=function(){return this.we};g.prototype.eP=function(){return this.p1};g.prototype.Bw=function(){return this.we.getType()== h.aR};g.prototype.jpa=function(){return this.we.getType()==h.cR};g.prototype.MJ=function(){return this.we.getType()==h.bR};g.prototype.uhb=function(){return this.we.getType()==h.WB};g.prototype.fIa=function(k,e){this.uV[e]=(this.uV[e]||[]).concat(k)};g.prototype.dSa=function(){return g.oUa.find(this.Ngb.bind(this))};g.prototype.Ngb=function(k){return this.uV[k]!==void 0&&this.uV[k].length>0?!0:!1};g.prototype.uaa=function(){return Object.keys(this.uV).length>0};g.prototype.WI=function(k){this.fIa(k, n.qf)};g.prototype.Ubb=function(k){this.sga=this.sga.concat(k)};g.prototype.beb=function(){return!this.dSa()&&this.sga.length>0};g.prototype.LD=function(k){this.Xl=this.Xl.concat(k)};g.prototype.We=function(){return this.Xl.length>0};g.prototype.om=function(k){k&&(this.PG===void 0||this.PG>k)&&(this.PG=k)};g.prototype.zw=function(){return this.PG};g.prototype.A6=function(k,e){if(this.jc==""||this.BD>e)this.jc=k,this.BD=e};g.prototype.mB=function(){return this.jc};g.prototype.du=function(k){this.Awa= k===void 0?[]:Array.isArray(k)?k:[k]};g.prototype.qm=function(){return this.Awa.length>0};g.oUa=[n.Mi,n.Qta,n.IB,n.qf,n.De];return g}()}); define("tdv/player/view/panorama/renderer/pointer/GazePointer","require tdv/utils tdv/constants/EventName tdv/constants/Key tdv/player/view/panorama/renderer/3d/util/RayUtil tdv/player/view/panorama/renderer/3d/util/SceneUtil tdv/player/view/panorama/renderer/object/Reticle tdv/player/view/panorama/renderer/object/ToolTip tdv/player/view/panorama/renderer/pointer/Beam tdv/player/view/panorama/renderer/pointer/Pointer tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"), n=a("tdv/constants/Key");a("tdv/player/view/panorama/renderer/3d/util/RayUtil");a("tdv/player/view/panorama/renderer/3d/util/SceneUtil");var g=a("tdv/player/view/panorama/renderer/object/Reticle"),k=a("tdv/player/view/panorama/renderer/object/ToolTip"),e=a("tdv/player/view/panorama/renderer/pointer/Beam"),b=a("tdv/player/view/panorama/renderer/pointer/Pointer"),c=a("tdv/player/view/util/XR");a=m.extend(b,function(d,f){b.call(this,b.WB,d);this.il=this.I=null;this.Xl=[];this.Cd=this.ey=!1;this.AS=null; this.vza=void 0;this.bV=null;this.iDa=void 0;this.Qe=new g;this.j.add(this.Qe);this.Rq="";this.jc=new k;this.jc.set("alpha",0);this.j.add(this.jc);this.lka=f?this.j.P.get("vrPointerSelectionTime"):void 0;this.wza=this.j.P.get("vrGazePointerHideTime");this.L5=this.L5.bind(this);this.$m=this.$m.bind(this);document.body.addEventListener("touchend",this.L5);document.addEventListener("keyup",this.$m,!0);c.M.bind(h.Xr,this.MHa,this,!0);this.Rla();this.mma()});a.prototype.clear=function(){document.body.removeEventListener("touchend", this.L5);document.removeEventListener("keyup",this.$m,!0);c.M.h(h.Xr,this.MHa,this,!0);this.$ka();this.j.remove(this.Qe);this.Qe=null;this.j.remove(this.jc);this.jc=null};a.prototype.update=function(d){this.I=d;this.k8a(d.In);this.lm()};a.prototype.L5=function(){this.PL()};a.prototype.$m=function(d){d.code!=n.ua.h_&&d.code!=n.ua.kL||this.PL()};a.prototype.MHa=function(){this.PL()};a.prototype.PL=function(){var d=this.Ml(h.Yf);this.im(d);this.vI(!1);this.xla()};a.prototype.xla=function(){this.j.Xb().o(h.eG, {mQ:h.Yf})};a.prototype.lm=function(){var d=this.Ml(h.Lm);this.im(d);this.Iz(d.mB());a:{var f=this.Xl;for(var l=d.Xl,p=0;p=this.lka?(this.$ka(),this.PL()):this.Qe.set("overProgress",d/this.lka)};a.prototype.LFa=function(){this.AS&& (clearInterval(this.AS),this.AS=null)};a.prototype.L9a=function(){this.vza=(new Date).getTime();this.AS=setInterval(this.d5a.bind(this),10)};a.prototype.d5a=function(){var d=this.wza-((new Date).getTime()-this.vza);this.Qe.set("alpha",Math.max(.01,Math.min(1,d/500)));d<=0&&this.LFa()};return a}); define("tdv/player/view/panorama/renderer/object/Laser","require tdv/utils tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/panorama/renderer/object/WebGLObject tdv/player/view/util/Color".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"), g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),e=a("tdv/player/view/panorama/renderer/object/WebGLObject"),b=a("tdv/player/view/util/Color"),c=new THREE.Matrix4,d=Math.PI/180;a=m.extend(e,function(){e.call(this);this.set("tag","Laser");this.set("matrix",null);this.set("over",!1);this.set("pressed",!1);this.set("intersectionDistance",0);this.set("visible",!1);this.set("attachToCamera",!1);this.set("dotVisible", !0);this.Gja=this.OU=this.Bv=this.Fja=null;new THREE.Matrix4;this.Hja=new THREE.Matrix4;this.Hja.multiply(c.makeRotationX(-90*d));this.Hja.multiply(c.makeTranslation(0,f*.5,0));this.V0=this.U0=this.T0=this.py=this.Kea=null;new THREE.Matrix4;this.Lea=new THREE.Matrix4;this.GR=this.S0=this.Jea=null;new THREE.Matrix4;this.KG=[new THREE.Matrix4,new THREE.Matrix4,new THREE.Matrix4];this.KG[0].multiply(c.makeRotationX(-90*d));this.KG[0].multiply(c.makeTranslation(0,-p*.5,0));this.KG[1].multiply(c.makeRotationX(-90* d));this.KG[1].multiply(c.makeTranslation(0,-p*.5,-l*.5));this.KG[2].multiply(c.makeRotationX(-90*d));this.KG[2].multiply(c.makeTranslation(0,-p*.5,-l))});a.prototype.za=function(q){e.prototype.za.call(this,q);this.oma();this.HD()};a.prototype.oma=function(){this.W("visible")&&(this.get("meshGroup").visible=this.get("visible"));this.W("dotVisible")&&g.nf([this.U0,this.S0],this.get("dotVisible")?1:0)};a.prototype.HD=function(){this.W("over","pressed")&&(this.KGa(),this.iHa())};var f=.35,l=.012,p=.1; a.prototype.hq=function(){this.S0=g.create(new THREE.SphereGeometry(2.3,32,32),this.d_a());this.U0=g.create(new THREE.SphereGeometry(2,32,32),this.e_a());this.Gja=g.create(new THREE.CylinderGeometry(.003,.003,f,8),this.F_a());this.SL=[];this.SL.push(g.create(new THREE.CylinderGeometry(l,l,p,32),this.dea()));this.SL.push(g.create(new THREE.BoxGeometry(2*l,p,l),this.dea()));this.SL.push(g.create(new THREE.CylinderGeometry(l,l,p,32),this.dea()));return[this.S0,this.U0,this.Gja].concat(this.SL)};a.prototype.d_a= function(){if(this.Jea==null){var q=document.createElement("canvas");q.width=q.height=256;var r=q.getContext("2d"),t=new k;t.bo(q);this.Jea=n.st(t.texture(),new n.Rp);r.fillStyle="rgba(0, 0, 0, 0.75)";r.clearRect(0,0,q.width,q.height);r.fillRect(0,0,q.width,q.height)}return this.Jea};a.prototype.e_a=function(){this.Kea==null&&(this.py=document.createElement("canvas"),this.py.width=this.py.height=256,this.T0=this.py.getContext("2d"),this.V0=new k,this.V0.bo(this.py),this.Kea=n.st(this.V0.texture(), new n.Rp),this.KGa());return this.Kea};a.prototype.KGa=function(){this.T0.fillStyle=this.Ifa();this.T0.clearRect(0,0,this.py.width,this.py.height);this.T0.fillRect(0,0,this.py.width,this.py.height);this.V0.update()};a.prototype.F_a=function(){this.Fja==null&&(this.Bv=document.createElement("canvas"),this.Bv.width=this.Bv.height=256,this.OU=this.Bv.getContext("2d"),this.Ija=new k,this.Ija.bo(this.Bv),this.Fja=n.st(this.Ija.texture(),new n.Rp),this.iHa());return[this.Fja]};a.prototype.iHa=function(){var q= b.Dp(this.Ifa()).join(", "),r=this.OU.createLinearGradient(0,0,0,this.Bv.height);r.addColorStop(0,"rgba("+q+", 0)");r.addColorStop(.5,"rgba("+q+", 1)");r.addColorStop(1,"rgba("+q+", 1)");this.OU.fillStyle=r;this.OU.clearRect(0,0,this.Bv.width,this.Bv.height);this.OU.fillRect(0,0,this.Bv.width,this.Bv.height);this.Ija.update()};a.prototype.dea=function(){if(this.GR==null){var q=document.createElement("canvas");q.width=q.height=256;var r=q.getContext("2d"),t=new k;t.bo(q);this.GR=n.st(t.texture(),new n.Rp); r.fillStyle="rgba(64, 64, 64, 1)";r.clearRect(0,0,q.width,q.height);r.fillRect(0,0,q.width,q.height)}return[this.GR,this.GR,this.GR]};a.prototype.gt=function(){var q=!1,r=!1,t=!1;if(this.W("intersectionDistance")){r=(r=this.get("intersectionDistance"))?h.qw(r):h.Et();var u=r/h.Et();this.Lea.makeTranslation(0,0,-r);this.Lea.multiply(c.makeScale(u,u,u));r=!0}this.W("matrix")&&(t=r=q=!0);r&&(c.identity(),(r=this.get("matrix"))&&c.multiply(r),c.multiply(this.Lea),g.qt(this.U0,c),g.qt(this.S0,c));q&&(c.identity(), (r=this.get("matrix"))&&c.multiply(r),c.multiply(this.Hja),g.qt(this.Gja,c));if(t)for(r=this.get("matrix"),q=0;q0,((x=x.uaa())||w.pr)&&b.QY(w,5),b.YE(w,z,x,y))}};t.prototype.eob= function(u,v){var w=u.mB()||"",x=this.VP.get(v);x&&w!==x.get("text")&&(w?(x.set("text",w),x.set("alpha",1),x.yi(),w=(w=u.zw())?e.qw(w):e.Et(),l.radius=w,x.set("intersectionYaw",void 0),x.set("intersectionPitch",void 0),f.copy(v.ray).applyMatrix4(v.matrixWorld),f.intersectSphere(l,p)&&(p.x==0&&p.z==0||x.set("intersectionYaw",q*Math.atan2(p.x,-p.z)),p.y==0&&p.z==0||x.set("intersectionPitch",q*Math.atan2(p.y,Math.sqrt(p.z*p.z+p.x*p.x))),x.set("intersectionDistance",u.zw()))):(x.set("text",""),x.set("alpha", 0)))};t.prototype.RQa=function(u){this.j.sX().sort(function(v,w){return w.get("index")-v.get("index")}).forEach(function(v){v.ao(u)}.bind(this))};t.prototype.hnb=function(){var u=this.j.Xb();u&&u.o(h.eG,{mQ:h.Yf})};t.prototype.Tdb=function(){var u=new n;u.set("alpha",0);this.j.add(u);return u};t.prototype.dKa=function(u){this.j.remove(u)};return t}(k);var f=new c.Ray,l=new c.Sphere,p=new c.Vector3,q=180/Math.PI;return a}); define("tdv/player/view/panorama/renderer/pointer/Factory","require tdv/player/view/panorama/renderer/pointer/GazePointer tdv/player/view/panorama/renderer/pointer/LaserPointer tdv/player/view/panorama/renderer/pointer/MousePointer tdv/player/view/panorama/renderer/pointer/Pointer tdv/player/view/panorama/renderer/pointer/TouchPointer tdv/player/view/panorama/renderer/pointer/WebXRPointer".split(" "),function(a){var m=a("tdv/player/view/panorama/renderer/pointer/GazePointer"),h=a("tdv/player/view/panorama/renderer/pointer/LaserPointer"), n=a("tdv/player/view/panorama/renderer/pointer/MousePointer"),g=a("tdv/player/view/panorama/renderer/pointer/Pointer"),k=a("tdv/player/view/panorama/renderer/pointer/TouchPointer"),e=a("tdv/player/view/panorama/renderer/pointer/WebXRPointer");return{create:function(b,c){switch(b){case g.cR:return new e(c);case g.WB:return new m(c,!0);case g.G_:return new m(c,!1);case g.H_:return new h(c);case g.aR:return new n(c);case g.bR:return new k(c)}}}}); define("tdv/player/view/panorama/renderer/util/CursorManager",["require","tdv/view/constants/Cursor"],function(a){function m(n){this.dc=n;this.Gf=[]}var h=a("tdv/view/constants/Cursor");m.prototype.push=function(n){this.Gf.push(n);this.za()};m.prototype.pop=function(n){for(var g=this.Gf.length-1;g>=0;g--)if(this.Gf[g]==n){this.Gf.splice(g,1);this.za();break}};m.prototype.clear=function(){this.Gf.length>0&&(this.dc.set("cursor",h.De),this.Gf=[])};m.prototype.za=function(){this.dc.set("cursor",this.Gf.indexOf(h.Mi)>= 0?h.Mi:this.Gf.indexOf(h.qf)>=0?h.qf:this.Gf.length>0?this.Gf[this.Gf.length-1]:h.De)};return m}); define("tdv/player/view/panorama/renderer/Renderer","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/Event tdv/view/core/UIComponent tdv/view/constants/Cursor tdv/player/view/util/Device tdv/player/view/util/Gamepad tdv/player/view/util/geo/Frustum tdv/player/view/Flash tdv/player/view/panorama/renderer/RendererState tdv/player/view/panorama/renderer/3d/Renderer tdv/player/view/panorama/renderer/object/Factory tdv/player/view/panorama/renderer/object/Root tdv/player/view/panorama/renderer/pointer/Factory tdv/player/view/panorama/renderer/pointer/Pointer tdv/player/view/panorama/renderer/util/CursorManager tdv/player/view/panorama/renderer/OcclusionCuller tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/geo/Fov tdv/player/view/util/XR tdv/view/util/Animation tdv/view/util/Screenshot".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/Event"),k=a("tdv/view/core/UIComponent"),e=a("tdv/view/constants/Cursor"),b=a("tdv/player/view/util/Device"),c=a("tdv/player/view/util/Gamepad"),d=a("tdv/player/view/util/geo/Frustum"),f=a("tdv/player/view/Flash"),l=a("tdv/player/view/panorama/renderer/RendererState"),p=a("tdv/player/view/panorama/renderer/3d/Renderer"),q=a("tdv/player/view/panorama/renderer/object/Factory"),r=a("tdv/player/view/panorama/renderer/object/Root"), t=a("tdv/player/view/panorama/renderer/pointer/Factory"),u=a("tdv/player/view/panorama/renderer/pointer/Pointer"),v=a("tdv/player/view/panorama/renderer/util/CursorManager"),w=a("tdv/player/view/panorama/renderer/OcclusionCuller"),x=a("tdv/player/view/panorama/renderer/TextureLoader"),y=a("tdv/player/view/util/geo/Fov"),z=a("tdv/player/view/util/XR"),A=a("tdv/view/util/Animation"),D=a("tdv/view/util/Screenshot"),F=Math.PI/180,C=m.extend(k,function(B,H,E){k.call(this);this.gf("Renderer");this.set("toolTipDisabled", !0);this.set("cursor",e.LB);this.set("layout","absolute");this.set("interactionEnabled",!1);this.Ie=B;this.P=H;this.ld=E;this.Oe=new v(H);this.we=null;this.Cfa=!1;this.I=new l;this.La=new r(this.Ie,this.P,this.ld,this);this.La.bind(n.V,this.requestFrame,this,!0);this.qk=new p(this.P);this.I.sh=this.qk.Sf();this.I.RW=this.qk.oxa;this.I.SW=this.qk.pxa;this.I.camera=this.qk.getCamera();this.fAa=(new Date).getTime();this.I5=new x;this.I5.bind(n.ia,this.R5a,this,!0);this.WAa=new w;this.WAa.bind(n.V,this.u5a, this,!0);this.l1=new d(this.I.width,this.I.height,this.I.Wd*F);this.bind(n.Rb,this.kd,this,!0);this.bind(n.od,this.cp,this,!0);this.bind(n.jd,this.ap,this,!0);z.M.bind(n.V,this.pn,this,!0);c.bind(n.V,this.c5a,this,!0);h.ba(this.ld,["fxaaEnabled","aaEnabled","hotspotsEnabled","preloadEnabled"],function(){this.I.FJ=this.ld.get("hotspotsEnabled");this.I.yY=this.ld.get("preloadEnabled");this.I.hoa=this.ld.get("fxaaEnabled");this.I.vW=this.ld.get("aaEnabled");this.requestFrame()}.bind(this),!0);h.ba(this.ld, ["surfaceSelectionEnabled"],this.jma.bind(this));this.jma();this.pn();h.ba(this.Ie,["defaultVRPointer"],this.Sq.bind(this));this.Sq()});C.prototype.create=function(B){return q.create(B)};C.prototype.add=function(B){this.La.appendChild(B);this.La.Cb().length==1&&this.$4a()};C.prototype.remove=function(B){if(B=this.La.Jf(B))B.remove(),this.La.Cb().length==0&&this.i5a()};C.prototype.Jf=function(B){return this.La.Jf(B)};C.prototype.sX=function(){return this.La.all()};C.prototype.Ikb=function(B){this.Cfa!= B&&(this.Cfa=B,this.Sq())};C.prototype.wRa=function(B){this.I.Lpa=B};C.prototype.Y9=function(B){this.Oe.push(B)};C.prototype.WP=function(B){this.Oe.pop(B)};C.prototype.cB=function(B){this.I.In=B;this.requestFrame()};C.prototype.jK=function(){this.$G.o();this.I.IJ=!0;this.B4();var B=D.OSa(this.qk.If());this.I.IJ=!1;this.B4();return B};C.prototype.kna=function(B){this.I.IJ=!0;this.B4();B=this.qk.kna(B);this.I.IJ=!1;return B};C.prototype.getPixelRatio=function(){return this.qk.getPixelRatio()};C.prototype.jr= function(){return!!this.qk&&this.qk.jr()};C.prototype.Kb=function(){k.prototype.Kb.call(this);this.$G||(this.$G=new f,this.wa().uk(this.$G.cc()))};C.prototype.Sq=function(){var B=this.I.Va?u.cR:this.Cfa?u.G_:b.ub()?u.bR:u.aR;this.we&&this.we.getType()==B||(this.we&&this.we.clear(),this.we=t.create(B,this),this.jma(),this.we.update(this.I))};C.prototype.jma=function(){this.I.xZ=this.ld.get("surfaceSelectionEnabled")&&[u.aR,u.cR,u.bR,u.G_].indexOf(this.we&&this.we.getType())>=0};C.prototype.np=function(){this.Oe.clear(); k.prototype.np.call(this)};C.prototype.kd=function(){var B=this.nb(),H=this.Mb();if(this.I.width!=B||this.I.height!=H)B&&H?(this.I.width=B,this.I.height=H,this.l1.RRa(this.I.width),this.l1.lRa(this.I.height),this.requestFrame()):m.log("Invalid size values: "+B+" "+H)};C.prototype.cp=function(){this.I.enabled=!0;this.requestFrame()};C.prototype.ap=function(){this.I.enabled=!1};C.prototype.pn=function(){this.I.Va=z.isPresenting;this.Sq();this.requestFrame()};C.prototype.c5a=function(){this.Sq();this.requestFrame()}; C.prototype.R5a=function(){this.requestFrame()};C.prototype.u5a=function(){this.requestFrame()};C.prototype.$4a=function(){this.I5.D$(this.P.Fc().sl())};C.prototype.i5a=function(){this.qk.Reb();this.I5.D$(null)};C.prototype.F$=function(B){this.D4!=B&&((this.D4=B)||this.requestFrame())};C.prototype.uK=function(B){this.I.Jk!=B&&(this.I.Jk=B,this.requestFrame())};C.prototype.setPosition=function(B,H,E,G){if(this.I.Xa!=B||this.I.pitch!=H||this.I.Mg!=E||this.I.Wd!=G)isNaN(B)||isNaN(H)||isNaN(E)||!G?m.log("Invalid position values: "+ B+" "+H+" "+E+" "+G):(this.I.Xa=B,this.I.pitch=H,this.I.Mg=E,this.I.Wd=G,this.l1.oK(this.I.Wd*F),this.requestFrame())};C.prototype.Kc=function(){return this.I.Xa};C.prototype.Jc=function(){return this.I.pitch};C.prototype.zg=function(){return this.I.Mg};C.prototype.jf=function(){return this.I.Wd};C.prototype.gP=function(){return this.I.Va?this.I.lj:y.Ar(this.I.lj,this.I.width,this.I.height)};C.prototype.hP=function(){return this.I.lj};C.prototype.unproject=function(B){return this.l1.unproject(B)}; C.prototype.requestFrame=function(){A.requestFrame(this.sq,this)};C.prototype.sq=function(){if(A.o8){var B=(new Date).getTime(),H=Math.max(1,Math.min(B-this.fAa,33));this.fAa=B;this.o(new g(C.Dba,{frameTime:H}));this.I.enabled&&(this.I.Af=H,this.B4())}else this.requestFrame()};C.prototype.B4=function(){this.La.Cb().length!=0&&(this.qk.update(this.I),this.I.Sj=this.qk.ffb(),this.I.Rj=this.qk.efb(),this.I.lj=this.qk.cfb(),this.I.ul=this.qk.getPixelRatio(),this.I.camera=this.qk.getCamera(),this.La.update(this.I), this.I5.update(this.I),this.WAa.update(this.I),this.we.update(this.I),this.D4||this.qk.render())};C.Dba="render start";C.sqb=function(){return!0};return C}); define("tdv/player/view/panorama/control/RenderingController",["require","tdv/utils","tdv/events/Event","tdv/events/EventDispatcher","tdv/player/view/panorama/renderer/Renderer"],function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/player/view/panorama/renderer/Renderer"),k=m.extend(n,function(e){n.call(this);this.j=e;this.j.bind(g.Dba,this.ICa,this,!0)});k.prototype.clear=function(){this.j.h(g.Dba,this.ICa,this,!0);this.j=null};k.prototype.requestFrame= function(){this.j.requestFrame()};k.prototype.ICa=function(e){e=e.data.frameTime;this.o(new h(k.KF,{frameTime:e}));this.o(new h(k.LF,{frameTime:e}))};k.KF="frameStart";k.LF="positionSet";return k}); define("tdv/player/view/panorama/control/camera/OrientationFOVManager",["require","tdv/player/view/util/Device","tdv/player/view/util/geo/Fov"],function(a){function m(){this.Ha=this.Pa=0;this.kb=90;this.Ks="landscape";this.fp=0;this.V1=h.ub()}var h=a("tdv/player/view/util/Device"),n=a("tdv/player/view/util/geo/Fov");m.prototype.sRa=function(g){this.kb=this.TKa(g)};m.prototype.TKa=function(g){return this.V1&&this.Ks=="portrait"?n.jJ(g,this.Ha,this.Pa):g};m.prototype.Cfb=function(g){return this.V1&& this.Ks=="portrait"?n.wm(g,this.Pa,this.Ha):g};m.prototype.sr=function(g){this.kb=this.V1&&this.Epb?n.jJ(g,this.Ha,this.Pa):g};m.prototype.mw=function(){return this.V1&&this.Ks=="portrait"};m.prototype.jf=function(){return this.kb};m.prototype.QW=function(g){return n.jJ(g,this.Ha,this.Pa)};m.prototype.setSize=function(g,k){this.Pa=g;this.Ha=k;g=this.l2a();this.Ks!=g&&this.fp++;this.Ks=g};m.prototype.l2a=function(){return this.Pa===0||this.Ha===0?"landscape":this.Paw;)u-=w-v;t=t.pitch;return l<=u&&u<=p&&q<=t&&t<=r}.bind(this)); if(c.length==0)return null;c.sort(function(t,u){t=this.ns(t);u=this.ns(u);return(b-t.Xa)*(b-t.Xa)+(d-t.pitch)*(d-t.pitch)-((b-u.Xa)*(b-u.Xa)+(d-u.pitch)*(d-u.pitch))}.bind(this));return c[0]};a.prototype.ns=function(b){var c=b.get("yaw");b=b.get("distance");if(c===void 0||b===void 0)return null;var d=this.Ba.get("distanceToFloor");return{Xa:c,pitch:-90+Math.atan2(b,d)*e}};var e=180/Math.PI;return a}); define("tdv/player/view/panorama/control/Controller","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/panorama/control/AudioController tdv/player/view/panorama/control/camera/Controller tdv/player/view/panorama/control/transition/Controller tdv/player/view/panorama/control/FramesController tdv/player/view/panorama/control/LoadController tdv/player/view/panorama/control/MapController tdv/player/view/panorama/control/RenderingController tdv/player/view/panorama/control/camera/OrientationFOVManager tdv/player/view/panorama/control/translate/Controller tdv/player/view/util/geo/Projection".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/panorama/control/AudioController"),e=a("tdv/player/view/panorama/control/camera/Controller"),b=a("tdv/player/view/panorama/control/transition/Controller"),c=a("tdv/player/view/panorama/control/FramesController"),d=a("tdv/player/view/panorama/control/LoadController"),f=a("tdv/player/view/panorama/control/MapController"),l=a("tdv/player/view/panorama/control/RenderingController"), p=a("tdv/player/view/panorama/control/camera/OrientationFOVManager"),q=a("tdv/player/view/panorama/control/translate/Controller"),r=a("tdv/player/view/util/geo/Projection"),t=m.extend(g,function(u,v){g.call(this);this.P=u;this.j=v;this.j.set("visible",!1);this.Bc=new p;this.gm=new l(this.j);this.Fe=new d(this.j);this.bc=new b(this.P,this.j,this.Bc);this.yb=new e(this.j,this.Bc);this.qg=new c(this.j);this.Yy=new f(this.j);this.Fd=new k(this.j);this.O5=new q(this.j);this.gm.bind(l.KF,this.iU,this,!0); this.gm.bind(l.LF,this.jU,this,!0);this.Fe.bind(h.vd,this.UBa,this,!0);this.Fe.bind(h.Fg,this.TT,this,!0);this.Fe.bind(h.xc,this.Gj,this,!0);this.bc.bind(b.oc,this.cg,this,!0);this.bc.bind(b.Eba,this.VBa,this,!0);this.bc.bind(b.vba,this.mCa,this,!0);this.bc.bind(b.aba,this.bBa,this,!0);this.bc.bind(b.bba,this.cBa,this,!0);this.bc.bind(b.GF,this.bU,this,!0);this.bc.bind(b.EF,this.$C,this,!0);this.bc.bind(b.FF,this.kz,this,!0);this.bc.bind(b.DF,this.aU,this,!0);this.bc.bind(b.Ir,this.mn,this,!0);this.yb.bind(e.oc, this.cg,this,!0);this.yb.bind(e.Dl,this.Cs,this);this.yb.bind(e.Hr,this.bp,this);this.yb.bind(e.gd,this.Mf,this,!0);this.yb.bind(e.ak,this.Is,this,!0);this.yb.bind(e.$j,this.Hs,this,!0);this.qg.bind(c.oc,this.cg,this,!0);this.qg.bind(c.Ok,this.Gs,this,!0);this.qg.bind(c.gd,this.Mf,this,!0);this.Yy.bind(f.tj,this.aCa,this,!0)});t.prototype.clear=function(){this.Fe.clear();this.gm.clear();this.yb.clear();this.bc.clear();this.qg.clear();this.Yy.clear();this.Fd.clear();this.Fe.h(h.vd,this.UBa,this);this.Fe.h(h.Fg, this.TT,this);this.Fe.h(h.xc,this.Gj,this);this.gm.h(l.KF,this.iU,this);this.gm.h(l.LF,this.jU,this);this.bc.h(b.oc,this.cg,this);this.bc.h(b.Eba,this.VBa,this);this.bc.h(b.vba,this.mCa,this);this.bc.h(b.aba,this.bBa,this);this.bc.h(b.bba,this.cBa,this);this.bc.h(b.GF,this.bU,this);this.bc.h(b.EF,this.$C,this);this.bc.h(b.FF,this.kz,this);this.bc.h(b.DF,this.aU,this);this.bc.h(b.Ir,this.mn,this);this.yb.h(e.OUa,this.cg,this);this.yb.h(e.Dl,this.Cs,this);this.yb.h(e.Hr,this.bp,this);this.yb.h(e.gd, this.Mf,this,!0);this.yb.h(e.ak,this.Is,this);this.yb.h(e.$j,this.Hs,this);this.qg.h(c.oc,this.cg,this);this.qg.h(c.Ok,this.Gs,this);this.qg.h(c.gd,this.Mf,this);this.Yy.h(f.tj,this.aCa,this);this.P=this.j=this.O5=this.Fd=this.Yy=this.qg=this.bc=this.yb=this.gm=this.Fe=null};t.prototype.x$=function(u){this.Yy.x$(u)};t.prototype.tra=function(u){this.bc.tra(u)};t.prototype.Wf=function(u,v,w){this.j.set("visible",!0);this.qg.W$();u.set("currentTime",w);this.bc.start(u,v)};t.prototype.cE=function(){return this.Fe.Ba|| this.bc.lfb()||this.bc.Yu};t.prototype.bB=function(){this.Fe.stop();this.qg.end();this.yb.end();this.bc.oe();this.Yy.stop();this.Fd.end();this.O5.end()};t.prototype.aQ=function(){this.yb.resume();this.qg.aQ()};t.prototype.RP=function(){this.yb.pause();this.qg.RP()};t.prototype.play=function(){this.yb.play();this.Fd.play();this.qg.play()};t.prototype.pause=function(){this.yb.pause();this.Fd.pause();this.qg.pause()};t.prototype.stop=function(){this.yb.stop();this.Fd.stop();this.qg.stop()};t.prototype.SE= function(u){this.yb.SE(u);this.O5.SE(u)};t.prototype.getTime=function(){return this.qg.getTime()};t.prototype.moveTo=function(u,v,w,x,y){this.yb.moveTo(u,v,w,x,y)};t.prototype.Kc=function(){return this.j?this.j.Kc():void 0};t.prototype.Jc=function(){return this.j?this.j.Jc():void 0};t.prototype.zg=function(){return this.j?this.j.zg():void 0};t.prototype.jf=function(){return this.j?this.Bc.Cfb(this.j.jf()):void 0};t.prototype.gP=function(){return this.j?this.j.gP():void 0};t.prototype.hP=function(){return this.j? this.j.hP():void 0};t.prototype.Mf=function(){var u=this.qg.ql()||this.yb.ql();this.o(new n(t.gd,{state:u}))};t.prototype.xl=function(u){this.yb.xl(u)};t.prototype.YY=function(u){this.yb.YY(u)};t.prototype.UE=function(u){this.yb.UE(u)};t.prototype.ZY=function(u){this.yb.ZY(u)};t.prototype.Bg=function(u){this.qg.Bg(u)};t.prototype.vK=function(u){this.yb.vK(u)};t.prototype.Joa=function(u,v){return(u=r.get(u,v,this.j.Kc(),this.j.Jc(),this.j.zg(),this.j.jf(),this.j.nb(),this.j.Mb()))?{x:u.x,y:u.y}:null}; t.prototype.Mfb=function(u,v){return(u=r.qob(u,v,this.j))?{yaw:u.Xa,pitch:u.pitch}:null};t.prototype.jK=function(){this.j.jK()};t.prototype.Zoa=function(){return this.bc.Zoa()};t.prototype.VBa=function(u){this.Fe.start(u.data.panorama)};t.prototype.Gj=function(u){this.j.cB(u.percent<100);this.o(new n(t.vx,{percent:u.percent}))};t.prototype.UBa=function(u){this.qg.end();this.O5.Wf(u.data.panorama)};t.prototype.TT=function(){this.j.cB(!1);this.o(new n(t.xF))};t.prototype.cg=function(){this.gm.requestFrame()}; t.prototype.iU=function(u){u=u.data.frameTime;this.Bc.setSize(this.j.nb(),this.j.Mb());this.bc.YA(u);this.yb.YA(u)};t.prototype.jU=function(u){u=u.data.frameTime;this.bc.ze(u);this.yb.ze(u);this.qg.ze(u);this.Yy.ze(u);this.Fd.ze(u)};t.prototype.bU=function(u){this.Yy.display(u.data.panorama);this.qg.qP(u.data.panorama);this.o(new n(t.GF,{panorama:u.data.panorama}))};t.prototype.mCa=function(u){this.Yy.oe(u.data.panorama)};t.prototype.bBa=function(u){this.qg.start(u.data.panorama);this.Fd.start(u.data.panorama)}; t.prototype.cBa=function(){this.qg.end();this.j.set("visible",!1)};t.prototype.aU=function(u){this.yb.end();this.Fd.end(u.data.nextPanorama);this.o(new n(t.DF,{panorama:u.data.panorama}))};t.prototype.kz=function(u){this.yb.start(u.data.panorama,u.data.camera);this.o(new n(t.FF,{panorama:u.data.panorama}))};t.prototype.$C=function(u){this.o(new n(t.EF,{panorama:u.data.panorama}))};t.prototype.aCa=function(u){this.yb.Ara(u.data.yawDelta,0)};t.prototype.Cs=function(u){this.o(new n(t.Dl,u.data))};t.prototype.bp= function(u){this.o(new n(t.Hr,u.data))};t.prototype.mn=function(u){this.o(new n(t.Ir,u.data))};t.prototype.Is=function(){this.qg.yQ();this.o(new n(t.ak))};t.prototype.Hs=function(){this.o(new n(t.$j))};t.prototype.iRa=function(u){this.qg.sK(u)};t.prototype.RE=function(u){this.qg.RE(u)};t.prototype.Gs=function(u){this.o(new n(t.Ok,u.data))};t.vx="loadingProgress";t.xF="loadingEnd";t.Dl="movementChange";t.Hr="positionChange";t.GF="panoramaStart";t.DF="panoramaEnd";t.FF="panoramaShow";t.EF="panoramaHide"; t.gd="playbackStateChange";t.ak="userInteractionStart";t.$j="userInteractionEnd";t.Ok="timeChange";t.Ir="transitionEnd";return t}); define("tdv/player/script/PanoramaPlayer","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/constants/PlaybackState tdv/player/constants/RotationMode tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/script/PlaybackMediaPlayer tdv/player/script/PanoramaCamera tdv/player/view/panorama/control/Controller tdv/player/view/panorama/control/constants/Movement tdv/player/view/panorama/renderer/Renderer tdv/player/view/util/Device tdv/player/view/util/Gyroscope tdv/player/view/util/InfoWindow tdv/player/view/util/XR tdv/view/constants/ButtonMode tdv/view/constants/State tdv/view/util/KeyboardControl".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/constants/PlaybackState"),k=a("tdv/player/constants/RotationMode"),e=a("tdv/player/parser/ClassInfo"),b=a("tdv/player/script/helper/ButtonProperty"),c=a("tdv/player/script/PlaybackMediaPlayer"),d=a("tdv/player/script/PanoramaCamera"),f=a("tdv/player/view/panorama/control/Controller"),l=a("tdv/player/view/panorama/control/constants/Movement"),p=a("tdv/player/view/panorama/renderer/Renderer"),q=a("tdv/player/view/util/Device"), r=a("tdv/player/view/util/Gyroscope"),t=a("tdv/player/view/util/InfoWindow"),u=a("tdv/player/view/util/XR"),v=a("tdv/view/constants/ButtonMode"),w=a("tdv/view/constants/State"),x=a("tdv/view/util/KeyboardControl"),y=e.define("PanoramaPlayer",c,function(){c.call(this,"panorama");c.prototype.set.call(this,"rotationEnabled",!0);c.prototype.set.call(this,"zoomEnabled",!0);c.prototype.set.call(this,"surfaceSelectionEnabled",!1);c.prototype.set.call(this,"surfaceSelectionHorizontalAngle",90);c.prototype.set.call(this, "surfaceSelectionVerticalAngle",180);c.prototype.set.call(this,"adjacentPanoramaPositionsEnabled",!1);c.prototype.set.call(this,"fxaaEnabled",!1);c.prototype.set.call(this,"aaEnabled",!1);this.bla=this.wga=this.CC=this.n1=this.R2=this.I2=this.zda=this.hD=this.jj=this.$ca=!1;this.cga=!0;this.l5=this.j2=this.Ro=this.y0=!1;this.Lka=x.yp();x.fX.bind(h.V,this.e5a,this,!0);this.hs=!1;this.j1=this.zfa=this.wf=this.ac=0;this.fja=this.hja=void 0;this.Xha=!0;this.Jj=g.ca;this.tq=this.tq.bind(this);this.U=this.j= null;this.LAa={};for(var z in y.Ox)this.LAa[z]=this.z_a(z);this.b0=new b(this,"buttonToggleGyroscope",v.bk);this.b0.bind(h.Rk,function(){this.set("gyroscopeEnabled",!0)},this);this.b0.bind(h.Nm,function(){this.set("gyroscopeEnabled",!1)},this);this.b0.set("pressed",this.get("gyroscopeEnabled")&&r.ol);(new b(this,"buttonCardboardView",v.af)).bind(h.ma,function(){this.set("viewMode",y.mG)},this,!0);(new b(this,"buttonVRView",v.af)).bind(h.ma,function(){this.set("viewMode",y.mG)},this,!0);u.M.bind(h.V, function(){this.yla("viewMode");this.o(y.Jba)},this,!0);this.a0=new b(this,"buttonToggleGazeMode",v.bk);this.a0.bind(h.Rk,function(){this.set("gazeModeEnabled",!0)},this);this.a0.bind(h.Nm,function(){this.set("gazeModeEnabled",!1)},this);this.a0.set("pressed",this.get("gazeModeEnabled"));this.c0=new b(this,"buttonToggleHotspots",v.bk);this.c0.bind(h.Rk,function(){this.set("hotspotsEnabled",!0)},this);this.c0.bind(h.Nm,function(){this.set("hotspotsEnabled",!1)},this);this.c0.set("pressed",this.get("hotspotsEnabled")); this.f0=new b(this,"buttonToggleSurfaceSelection",v.bk);this.f0.bind(h.Rk,function(){this.set("surfaceSelectionEnabled",!0)},this);this.f0.bind(h.Nm,function(){this.set("surfaceSelectionEnabled",!1)},this);this.f0.set("pressed",this.get("surfaceSelectionEnabled"));this.ZYa=new b(this,"buttonScreenshot",v.af);this.ZYa.bind(h.ma,this.rEa,this,!0);this.be=m.nr(this.Sh,this)});y.DUa="cameraPositionChange";y.vx="loadingProgress";y.KUa="preloadMediaShow";y.Jba="viewModeChange";y.prototype.moveLeft=function(){this.md(l.eL)}; y.prototype.moveRight=function(){this.md(l.fL)};y.prototype.moveUp=function(){this.md(l.gL)};y.prototype.moveDown=function(){this.md(l.dL)};y.prototype.playLeft=function(){this.md([l.eL,l.PLAYING])};y.prototype.playRight=function(){this.md([l.fL,l.PLAYING])};y.prototype.playUp=function(){this.md([l.gL,l.PLAYING])};y.prototype.playDown=function(){this.md([l.dL,l.PLAYING])};y.prototype.play=function(){this.tn()};y.prototype.pause=function(){this.tv()};y.prototype.stop=function(){this.cD()};y.prototype.seek= function(z){this.sI(z)};y.prototype.setFramePlaybackPosition=function(z){this.A8a(z)};y.prototype.setFrameTransitionPosition=function(z){this.B8a(z)};y.prototype.restart=function(){this.bD()};y.prototype.zoomIn=function(){this.md(l.Mx)};y.prototype.zoomOut=function(){this.md(l.Nx)};y.prototype.resumeCamera=function(){this.v7a()};y.prototype.pauseCamera=function(){this.n6a()};y.prototype.moveTo=function(z,A,D,F){this.KAa(z,A,D,F,!1)};y.prototype.setPosition=function(z,A,D,F){this.KAa(z,A,D,F,!0)}; y.prototype.getScreenPosition=function(z,A){return this.D2a(z,A)};y.prototype.getPanoramaPosition=function(z,A){return this.m2a(z,A)};y.prototype.saveScreenshot=function(){return this.rEa()};y.prototype.get=function(z,A){switch(z){case "currentTime":return this.U&&this.U.getTime()||0;case "viewMode":return u.isPresenting?y.mG:y.Jca;case "video":z="panorama";break;case "rendererPanorama":return this.U&&this.U.cE()}if(!A)switch(z){case "mouseControlMode":A=k.Nta;break;case "touchControlMode":A=k.Hua}return c.prototype.get.call(this, z,A)};y.prototype.set=function(z,A){if(this.get(z)!=A){switch(z){case "application":this.$ca=!0;this.be();break;case "startTime":this.hD=!0;this.be();break;case "video":case "panorama":z="panorama";this.hD=!0;this.be();break;case "camera":this.zda=!0;this.be();break;case "viewerArea":this.jj=!0;this.be();break;case "displayPlaybackBar":case "hdrPanoramaDisplayPlaybackBarSteps":case "livePanoramaDisplayPlaybackBarSteps":case "buttonPlay":case "buttonPlayPause":this.hs=!0;this.be();break;case "mapPlayer":this.I2= !0;this.be();break;case "model3DPlayer":this.R2=!0;this.be();break;case "gazeModeEnabled":q.Jp()&&(A=!1);A&&x.yp()&&x.Rqa();this.n1=!0;this.be();break;case "gyroscopeEnabled":this.CC=!0;this.be();break;case "gyroscopeVerticalDraggingEnabled":this.cga=!0;this.be();break;case "viewMode":A=="vr"&&(A=y.mG);A==y.mG?this.get("viewerArea").set("viewMode","vr"):this.get("viewerArea").set("viewMode","standard");A=u.isPresenting?y.mG:y.Jca;break;case "hotspotsEnabled":this.wga=!0;this.be();break;case "mouseControlMode":case "touchControlMode":this.y0= !0;this.be();break;case "surfaceSelectionEnabled":this.bla=!0,this.be()}c.prototype.set.call(this,z,A)}};y.prototype.tr=function(z){this.Ro!=z&&((this.Ro=z)?document.addEventListener("keyup",this.tq,!0):document.removeEventListener("keyup",this.tq,!0),this.U&&this.U.SE(this.Ro),this.j2=!0,this.be())};y.prototype.e5a=function(){var z=x.yp();this.Lka!==z&&(this.l5=!0,this.Lka=z,this.be())};y.prototype.tq=function(z){var A=this.get("gazeModeKeyCode");A&&!x.yp()&&z.code==A&&this.set("gazeModeEnabled", !this.get("gazeModeEnabled"))};y.prototype.mna=function(){return this.get("doubleClickAction")!="inherit"};y.prototype.knb=function(){this.hK([this])};y.prototype.qda=function(z){c.prototype.qda.call(this,z);z.bind(h.fi,this.GHa,this,!0)};y.prototype.Fla=function(z){c.prototype.Fla.call(this,z);z.h(h.fi,this.GHa,this,!0)};y.prototype.GHa=function(){switch(this.get("doubleClickAction")){case "toggle_fullscreen":var z=this.get("application").lk;z&&z.ol()&&z.toggle()}};y.prototype.z_a=function(z){var A= y.Ox[z];z=new b(this,z,v.af);z.bind(h.Sa,function(){this.md(A.movement)},this);A.stopOnRelease&&z.bind(h.$a,function(){this.md(l.Fg)},this);return z};y.prototype.Sh=function(){if(this.jj||this.$ca)this.jj=this.$ca=!1,this.l5=this.j2=this.y0=this.CC=this.n1=this.R2=this.I2=!0,this.ny(),this.get("viewerArea")&&this.get("application")&&this.my(),this.oV(this.get("viewerArea"));var z=!1;if(this.j){this.I2&&(this.I2=!1,this.U.x$(this.get("mapPlayer")));this.R2&&(this.R2=!1,this.U.tra(this.get("model3DPlayer"))); this.y0&&(this.y0=!1,this.U.UE(this.get("mouseControlMode")),this.U.vK(this.get("touchControlMode")));if(this.hD||this.zda)this.j1=this.zfa=this.ac=this.wf=0,this.fja=this.hja=void 0,z=!0,this.zda=this.hD=!1,this.get("panorama")?this.U.Wf(this.get("panorama"),this.get("camera",new d),this.get("startTime")):(this.U.bB(),this.Xha=!0,this.Jj=g.ca,this.Jd(g.ca));if(this.n1||this.j2||this.l5){this.j2=this.l5=this.n1=!1;var A=this.get("gazeModeEnabled");this.j.Ikb(A&&this.Ro&&!this.Lka);this.a0.set("pressed", A)}this.cga&&(this.cga=!1,this.U.ZY(this.get("gyroscopeVerticalDraggingEnabled",!0)));this.CC&&(this.CC=!1,(A=this.get("gyroscopeEnabled")&&r.ol)&&r.disabled&&(A=!1,t.yta.show(function(){r.Pqa(function(){this.set("gyroscopeEnabled",!0)}.bind(this))}.bind(this))),this.set("gyroscopeEnabled",A),this.U.YY(A),this.b0.set("pressed",A));this.wga&&(this.wga=!1,this.c0.set("pressed",this.get("hotspotsEnabled")));this.hs&&(this.hs=!1,z=!0);this.bla&&(this.bla=!1,this.f0.set("pressed",this.get("surfaceSelectionEnabled"))); z&&this.Zz()}};y.prototype.TN=function(){this.U.Zoa()||this.set("panorama",null)};y.prototype.my=function(){var z=this.get("viewerArea"),A=this.get("application");this.j=new p(A,z,this);this.j.xa({left:0,top:0,bottom:0,right:0});z.mb(this.j);this.U=new f(z,this.j);this.U.bind(f.Dl,this.Cs,this);this.U.bind(f.Hr,this.pBa,this);this.U.bind(f.vx,this.Gj,this);this.U.bind(f.xF,this.ZM,this);this.U.bind(f.FF,this.kz,this,!0);this.U.bind(f.EF,this.$C,this,!0);this.U.bind(f.GF,this.bU,this,!0);this.U.bind(f.DF, this.aU,this,!0);this.U.bind(f.gd,this.Mf,this);this.U.bind(f.ak,this.Is,this);this.U.bind(f.$j,this.Hs,this);this.U.bind(f.Ok,this.Gs,this);this.U.bind(f.Ir,this.mn,this,!0);this.get("application").bind(h.L("mute"),this.ZT,this);this.get("application").get("mute",!1)&&this.U.Bg(!0);this.U.SE(this.Ro);u.M.bind(h.V,this.pn,this,!0);this.$da();this.xD(!0)};y.prototype.ny=function(){this.j&&(this.U.h(f.Dl,this.Cs,this),this.U.h(f.Hr,this.pBa,this),this.U.h(f.vx,this.Gj,this),this.U.h(f.xF,this.ZM,this), this.U.h(f.FF,this.kz,this,!0),this.U.h(f.EF,this.$C,this,!0),this.U.h(f.GF,this.bU,this,!0),this.U.h(f.DF,this.aU,this,!0),this.U.h(f.gd,this.Mf,this),this.U.h(f.ak,this.Is,this),this.U.h(f.$j,this.Hs,this),this.U.h(f.Ok,this.Gs,this),this.U.h(f.Ir,this.mn,this),this.U.clear(),this.U=null,this.get("application").h(h.L("mute"),this.ZT,this),this.j.getParent().removeChild(this.j),this.j=null,u.M.h(h.V,this.pn,this,!0),this.xD(!1))};y.prototype.ZT=function(){this.j&&this.U.Bg(this.get("application").get("mute", !1))};y.prototype.Mf=function(z){this.Jj=z.data.state;this.jh()};y.prototype.jh=function(){this.Jd(this.Xha||u.isPresenting?this.Jj:g.PLAYING)};y.prototype.Is=function(){this.o(new n(h.Sua))};y.prototype.Hs=function(){this.o(new n(h.Rua))};y.prototype.bU=function(z){this.o(new n(y.KUa,{panorama:z.data.panorama}))};y.prototype.aU=function(){};y.prototype.kz=function(z){this.$da();this.nT(z.data.panorama)};y.prototype.$C=function(z){this.mT(z.data.panorama)};y.prototype.Cs=function(z){for(var A in y.Ox)this.LAa[A].set("state", z.data[y.Ox[A].pressedOn]?w.Fb:w.De);this.Xha=z.data.stopped;this.jh();this.o(new n(h.Pta,z.data))};y.prototype.pBa=function(z){this.$da();this.o(new n(y.DUa,z.data))};y.prototype.$da=function(){this.U&&(this.set("yaw",this.U.Kc()),this.set("pitch",this.U.Jc()),this.set("roll",this.U.zg()),this.set("hfov",this.U.jf()),this.set("actualHFOV",this.U.gP()),this.set("actualVFOV",this.U.hP()))};y.prototype.Gj=function(z){this.j.getParent().xa({progressPercent:z.data.percent,progressVisible:!0});this.o(new n(y.vx, z.data))};y.prototype.ZM=function(){this.j.getParent().set("progressVisible",!1)};y.prototype.mn=function(){this.o(h.pca)};y.prototype.pn=function(){this.set("viewMode",u.isPresenting?y.mG:y.Jca);this.jh()};y.prototype.KAa=function(z,A,D,F,C){this.U&&this.U.moveTo(z,A,D,F,C)};y.prototype.md=function(z){this.U&&this.U.xl(z)};y.prototype.tn=function(){this.U&&this.U.play()};y.prototype.Zs=function(){this.U&&this.U.stop()};y.prototype.tv=function(){this.U&&this.U.pause()};y.prototype.sI=function(z){this.U&& (this.Dya()?this.U.RE(z):this.U.iRa(z))};y.prototype.A8a=function(z){this.U&&this.U.iRa(z)};y.prototype.B8a=function(z){this.U&&this.U.RE(z)};y.prototype.n6a=function(){this.U&&this.U.RP()};y.prototype.v7a=function(){this.U&&this.U.aQ()};y.prototype.D2a=function(z,A){if(this.U)return this.U.Joa(z,A)};y.prototype.m2a=function(z,A){if(this.U)return this.U.Mfb(z,A)};y.prototype.rEa=function(){this.U&&this.U.jK()};y.prototype.DU=function(z){this.sI(z.data.position)};y.prototype.Gs=function(z){this.wf= z.data.time;this.ac=z.data.duration;this.zfa=z.data.transitionPosition;this.j1=z.data.transitionLength;this.hja=z.data.steps;this.fja=z.data.selectedStep;this.Zz()};y.prototype.Zz=function(){var z=this.j.getParent(),A=!1;if(this.D1a()){var D=this.Dya(),F=this.o2a();D?this.j1>0&&(z.xa({playbackBarPosition:this.zfa,playbackBarDuration:this.j1,playbackBarSteps:this.hja,playbackBarSelectedStep:this.fja,playbackBarLiveDragging:F}),A=!0):this.ac>0&&(z.xa({playbackBarPosition:this.wf,playbackBarDuration:this.ac, playbackBarSteps:void 0,playbackBarSelectedStep:void 0,playbackBarLiveDragging:F}),A=!0)}z.set("playbackBarVisible",A)};y.prototype.D1a=function(){var z=this.get("panorama");return z?e.Oa("HDRPanorama",z)?this.get("hdrPanoramaDisplayPlaybackBar",this.get("displayPlaybackBar",!1)):e.Oa("LivePanorama",z)?this.get("livePanoramaDisplayPlaybackBar",this.get("displayPlaybackBar",!1)):e.Oa("VideoPanorama",z)?this.get("videoPanoramaDisplayPlaybackBar",this.get("displayPlaybackBar",!0)):!1:!1};y.prototype.Dya= function(){var z=this.get("panorama");return z?e.Oa("HDRPanorama",z)?this.get("hdrPanoramaDisplayPlaybackBarSteps",!0):e.Oa("LivePanorama",z)?this.get("livePanoramaDisplayPlaybackBarSteps",!0):!1:!1};y.prototype.o2a=function(){var z=this.get("panorama");return!z||e.Oa("VideoPanorama",z)?!1:!0};y.mG="cardboard";y.Jca="standard";y.Ox={buttonMoveLeft:{movement:l.eL,pressedOn:"movingLeft",stopOnRelease:!0},buttonMoveRight:{movement:l.fL,pressedOn:"movingRight",stopOnRelease:!0},buttonMoveUp:{movement:l.gL, pressedOn:"movingUp",stopOnRelease:!0},buttonMoveDown:{movement:l.dL,pressedOn:"movingDown",stopOnRelease:!0},buttonPlayLeft:{movement:[l.eL,l.PLAYING],pressedOn:"movingLeft",stopOnRelease:!1},buttonPlayRight:{movement:[l.fL,l.PLAYING],pressedOn:"movingRight",stopOnRelease:!1},buttonPlayUp:{movement:[l.gL,l.PLAYING],pressedOn:"movingUp",stopOnRelease:!1},buttonPlayDown:{movement:[l.dL,l.PLAYING],pressedOn:"movingDown",stopOnRelease:!1},buttonZoomIn:{movement:l.Mx,pressedOn:"zoomingIn",stopOnRelease:!0}, buttonZoomOut:{movement:l.Nx,pressedOn:"zoomingOut",stopOnRelease:!0}};return y}); define("tdv/player/script/PanoramaPlayListItem",["require","tdv/player/parser/ClassInfo","tdv/player/script/MediaPlayer","tdv/player/script/PlayListItem"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/MediaPlayer"),n=a("tdv/player/script/PlayListItem");a=m.define("PanoramaPlayListItem",n,function(){n.call(this)});a.prototype.start=function(){n.prototype.start.call(this);var g=this.get("player");g&&(g.bind(h.di,this.kz,this),g.set("panorama",this.get("media")),g.set("camera", this.get("camera")))};a.prototype.stop=function(){var g=this.get("player");g&&(g.h(h.di,this.kz,this),g.get("panorama")==this.get("media")&&g.set("panorama",null));n.prototype.stop.call(this)};a.prototype.kz=function(g){g.data.media==this.get("media")&&(this.get("player").h(h.di,this.kz,this),this.get("player").bind(h.oo,this.$C,this),this.PD())};a.prototype.$C=function(g){g.data.media==this.get("media")&&(this.get("player").h(h.oo,this.$C,this),this.stop(),this.end())};return a}); define("tdv/player/script/PanoramaSnapshot",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PanoramaSnapshot",m,function(){m.call(this)})}); define("tdv/player/script/Photo",["require","exports","tdv/player/parser/ClassInfo","tdv/player/script/Media","tdv/player/script/helper/LevelUtil"],function(a,m,h,n,g){a=function(k){function e(){return k.call(this)||this}P(e,k);e.prototype.tw=function(){var b=[],c=this.get("image");c&&b.push(g.Ft(c).get("url"));this.get("audios",[]).forEach(function(d){b=b.concat(d.tw())}.bind(this));return b};return e}(n);h.create("Photo",a);return a}); define("tdv/player/script/PhotoAlbum",["require","tdv/player/script/Media","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/player/script/Media");a=a("tdv/player/parser/ClassInfo").define("PhotoAlbum",m,function(){m.call(this);this.set("loop",!1)});a.prototype.tw=function(){var h=[],n=this.get("playList");n&&n.get("items",[]).forEach(function(g){(g=g.get("media"))&&(h=h.concat(g.tw()))});this.get("audios",[]).forEach(function(g){h=h.concat(g.tw())});return h};return a}); define("tdv/player/script/PhotoAlbumAudio",["require","tdv/constants/Priority","tdv/player/parser/ClassInfo","tdv/player/script/MediaAudio"],function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/script/MediaAudio");return h.define("PhotoAlbumAudio",n,function(){n.call(this,m.NVa)})}); define("tdv/player/view/photo/control/audio/AudioController",["require","tdv/constants/PlaybackState"],function(a){function m(n){this.Pu=n;this.CL=[];this.Qu=[];this.kt=1}var h=a("tdv/constants/PlaybackState");m.prototype.clear=function(){for(var n=0;ng&&(this.ec=g);n=Math.min(.5/this.kc,.5);g=Math.max(1-.5/this.kc,.5);this.fcg&&(this.fc=g)}};return m}); define("tdv/player/view/photo/control/camera/PhotoCameraController",["require"],function(){function a(m){this.va=m;this.fc=this.ec=.5;this.kc=1;this.G4=!1}a.prototype.start=function(){this.fc=this.ec=.5;this.kc=1;this.G4=!0};a.prototype.clear=function(){this.va=null};a.prototype.setPosition=function(m,h,n){this.ec=m;this.fc=h;this.kc=n};a.prototype.Vf=function(){return this.G4};a.prototype.Nb=function(){this.G4=!1};return a}); define("tdv/player/script/PhotoCameraPosition",["require","exports","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a,m,h,n){a=function(g){function k(e,b,c){var d=g.call(this)||this;e!==void 0&&d.set("x",e);b!==void 0&&d.set("y",b);c!==void 0&&d.set("zoomFactor",c);return d}P(k,g);return k}(h);n.create("PhotoCameraPosition",a);return a}); define("tdv/player/view/photo/control/camera/MovementPhotoCameraController","require tdv/utils tdv/player/view/photo/control/camera/PhotoCameraController tdv/player/script/PhotoCameraPosition tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/photo/control/camera/PhotoCameraController"),n=a("tdv/player/script/PhotoCameraPosition"),g=a("tdv/view/util/Ease"),k=a("tdv/view/util/EaseDimension");a=m.extend(h,function(e){h.call(this,e);this.la= null});a.prototype.start=function(e){var b=e.get("initialPosition",new n(.5,.5,1)),c=e.get("targetPosition",new n(.5,.5,1)),d=e.get("duration",1E3);d==0?(this.ec=b.get("x"),this.fc=b.get("y"),this.kc=b.get("zoomFactor")):this.la=new g(e.get("easing","linear"),[new k("x",b.get("x",.5),c.get("x",.5)),new k("y",b.get("y",.5),c.get("y",.5)),new k("zoom",b.get("zoomFactor",1),c.get("zoomFactor",1))],d);this.Nb(0)};a.prototype.clear=function(){this.la=null;h.prototype.clear.call(this)};a.prototype.Vf=function(){return this.la!= null};a.prototype.Nb=function(e){this.la&&(this.la.Nb(e),this.va.setPosition(this.la.ob("x"),this.la.ob("y"),this.la.ob("zoom")),this.ec=this.va.getX(),this.fc=this.va.getY(),this.kc=this.va.yA(),this.la.Ve()&&(this.la=null))};return a}); define("tdv/player/view/photo/control/CameraController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/player/parser/ClassInfo tdv/constants/PlaybackState tdv/view/constants/ScaleMode tdv/player/view/photo/control/camera/LimitsManager tdv/player/view/photo/control/camera/PhotoCameraController tdv/player/view/photo/control/camera/MovementPhotoCameraController tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"), g=a("tdv/player/parser/ClassInfo"),k=a("tdv/constants/PlaybackState"),e=a("tdv/view/constants/ScaleMode"),b=a("tdv/player/view/photo/control/camera/LimitsManager"),c=a("tdv/player/view/photo/control/camera/PhotoCameraController"),d=a("tdv/player/view/photo/control/camera/MovementPhotoCameraController"),f=a("tdv/constants/EventName"),l=m.extend(n,function(p,q){n.call(this);this.P=p;this.nd=q;this.P.bind(f.Rb,this.kd,this);this.I=k.ca;this.sn=this.h4=this.zc=this.Ja=null;this.va=new b});l.prototype.clear= function(){this.end();this.va=null;this.P.h(f.Rb,this.kd,this);this.P=null};l.prototype.end=function(p){if(this.Ja==p||typeof p=="undefined")this.vxa(),this.zc=this.h4=this.Ja=null};l.prototype.start=function(p){if(this.Ja!=p){this.end(this.Ja);var q=p.get("media"),r=p.get("camera"),t=q.get("width",100),u=q.get("height",100),v=r?r.get("scaleMode",e.uj):e.uj;this.Ja=p;this.zc=r;this.h4=q;this.ha=!0;this.va.setConfiguration(t,u,v);this.B_a(r);this.bb()}};l.prototype.stop=function(){this.I!=k.ca&&(this.I= k.ca,this.sn&&(this.sn.start(this.zc),this.bb()))};l.prototype.play=function(){if(this.I==k.ca||this.I==k.$b)this.I=k.PLAYING,this.bb()};l.prototype.pause=function(){this.I==k.PLAYING&&(this.I=k.$b)};l.prototype.YA=function(p){this.sn&&this.sn.Vf()&&(this.I==k.PLAYING&&(this.sn.Nb(p),this.bb()),this.wn(this.sn.ec,this.sn.fc,this.sn.kc))};l.prototype.B_a=function(p){this.vxa();g.Oa("MovementPhotoCamera",p)?this.sn=new d(this.va):this.sn=new c(this.va);this.sn.start(p)};l.prototype.vxa=function(){this.sn&& (this.sn.clear(),this.sn=null)};l.prototype.kd=function(){this.va.setSize(this.P.nb(),this.P.Mb());this.bb()};l.prototype.bb=function(){this.o(new h(l.oc))};l.prototype.wn=function(p,q,r){this.nd.setPosition(this.Ja,p,q,r)};l.oc="request frame";return l}); define("tdv/player/view/photo/control/StageControllerItem","require exports tdv/events/EventDispatcher tdv/events/Event tdv/constants/EventName tdv/player/script/PhotoCameraPosition".split(" "),function(a,m,h,n,g,k){return function(e){function b(c,d){var f=e.call(this)||this;f.ejb=c;f.renderer=d;f.camera=c.get("camera");f.tc=c.get("media");f.tc.set("enabled",!1);f.tc.bind(g.ia,f.NA,f,!1);return f}P(b,e);b.prototype.getItem=function(){return this.ejb};b.prototype.preload=function(){this.tc.set("opacity", 0);this.renderer.dIa(this.tc,this.camera);this.tc.get("isLoaded")&&this.eTa()};b.prototype.nf=function(c){this.tc.set("opacity",c);this.hx()};b.prototype.Hp=function(c){this.tc.set("offset",c);this.hx()};b.prototype.setPosition=function(c,d,f){var l=this.camera.get("position")||new k;this.camera.set("position",l);l.set("x",c);l.set("y",d);l.set("zoomFactor",f)};b.prototype.amb=function(c){this.tc.set("zIndex",c)};b.prototype.isEnabled=function(){return this.tc.get("enabled")};b.prototype.hx=function(){var c= this.tc.get("offset"),d=this.tc.get("opacity");c>-1&&c<1&&d>0?(this.renderer.dIa(this.tc,this.camera),this.tc.set("enabled",!0)):this.tc.get("enabled")&&(this.renderer.sQa(this.tc),this.tc.set("enabled",!1))};b.prototype.clear=function(){this.renderer.sQa(this.tc);this.tc.h(g.ia,this.NA,this)};b.prototype.NA=function(){this.tc.get("enabled")||this.eTa()};b.prototype.eTa=function(){this.o(new n(b.rua))};b.rua="preloadEnd";return b}(h)}); define("tdv/player/view/photo/control/StageController",["require","exports","tdv/events/Event","tdv/events/EventDispatcher","tdv/player/view/photo/control/StageControllerItem"],function(a,m,h,n,g){return function(k){function e(b){var c=k.call(this)||this;c.Xs=[];c.j=b;return c}P(e,k);e.prototype.preload=function(b){this.eH(b).preload();return this};e.prototype.nf=function(b,c){this.eH(b).nf(c);this.Vz();return this};e.prototype.Hp=function(b,c){this.eH(b).Hp(c);this.Vz();return this};e.prototype.setPosition= function(b,c,d,f){this.eH(b).setPosition(c,d,f);return this};e.prototype.yi=function(b){var c=this.Xs.findIndex(function(f){return f.getItem()==b}),d=this.Xs[c];this.Xs.splice(c,1);this.Xs.push(d);this.Xs.forEach(function(f,l){f.amb(l)})};e.prototype.stop=function(){this.p0a(function(b){b.clear()});this.Xs=[]};e.prototype.clear=function(){this.stop();this.Xs=null};e.prototype.Vz=function(){this.Xs.find(function(b){return b.isEnabled()})};e.prototype.eH=function(b){var c=this.Q0a(b);c||(c=new g(b, this.j),c.bind(g.rua,this.e4a,this,!1),this.Xs.push(c));return c};e.prototype.p0a=function(b){this.Xs.forEach(b.bind(this))};e.prototype.Q0a=function(b){return this.Xs.find(function(c){return c.getItem()==b})};e.prototype.e4a=function(b){this.o(new h(e.zba,{item:b.source.getItem()}))};e.zba="photo preload end";return e}(n)});define("tdv/player/view/photo/control/constants/TransitionMode",["require","exports"],function(){return{Op:"blending",Wr:"scroll"}}); define("tdv/player/view/photo/control/display/TransitionController","require exports tdv/events/Event tdv/events/EventDispatcher tdv/player/view/photo/control/StageController tdv/player/view/photo/control/constants/TransitionMode tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){var b=function(){function c(d,f,l){this.Vq=d;this.item=f;this.transitionDuration=l;this.index=d&&f?d.get("playList").get("items").indexOf(this.item):0;this.loaded=!1}c.prototype.isEqual=function(d){return d&&d.Vq== this.Vq&&d.item==this.item};return c}();return function(c){function d(f,l,p){var q=c.call(this)||this;q.P=f;q.j=l;q.nd=p;q.nd.bind(g.zba,q.vDa,q,!1);q.XN=k.Op;q.sb=d.Zr;q.yd=new b(null,null,0);q.le=null;q.Zl=null;q.Xu=null;q.Sv=void 0;q.uD=0;return q}P(d,c);d.prototype.clear=function(){var f;((f=this.yd)===null||f===void 0?0:f.item)&&this.YV(this.yd);this.sb=d.Zr;this.Xu=this.yd=this.le=this.Zl=null;this.nd.h(g.zba,this.vDa,this);this.P.release(this.j)};d.prototype.Jlb=function(f){this.XN=f};d.prototype.Bra= function(f){this.uD=f};d.prototype.rsa=function(f,l,p){this.Zl=null;f=new b(f,l,p);f.isEqual(this.sb==d.Zr?this.yd:this.le)||(this.P.Pma(this.j),this.Zl=f,this.oCa())};d.prototype.oCa=function(){this.Zl&&this.sb==d.Zr&&(this.Zl.item&&!this.Zl.loaded?this.nd.preload(this.Zl.item):this.$x())};d.prototype.vDa=function(f){this.Zl&&this.Zl.item==f.data.item&&(this.Zl.loaded=!0,this.oCa())};d.prototype.$x=function(){this.Xu&&this.Xu!=this.Zl.Vq&&this.KEa(null);this.o(new h(d.Gba));this.W1()&&this.Zl.item!= null&&this.yd.item!=null?this.tYa():(this.le=this.Zl,this.Zl=null,this.yd.Vq&&!this.yd.item?this.sYa():this.yd.item?this.le.item&&this.XN==k.Op?this.Zx():this.le.item&&this.XN==k.bpb?this.uYa():this.yd.item&&this.rYa():this.dwa())};d.prototype.ze=function(f){if(this.sb!=d.Zr){this.Sv+=f;f=this.le.transitionDuration;f=this.Sv>=f?1:this.Sv/f;switch(this.sb){case d.Bca:this.MGa(f);break;case d.Cca:this.wab(f);break;case d.Eca:this.OGa(f);break;case d.Dca:this.NGa(f);break;case d.vo:this.FD(f);break; case d.Fca:this.kHa(f)}f<1?this.bb():this.dM()}};d.prototype.dM=function(){switch(this.sb){case d.Eca:this.x0a();break;case d.Dca:this.w0a();break;case d.Bca:this.u0a();break;case d.vo:this.xy();break;case d.Fca:this.A0a();break;case d.Cca:this.v0a()}this.KEa(this.yd.Vq);this.Zl==null?this.Ala(this.yd):this.$x()};d.prototype.tYa=function(){this.sb=d.Eca;this.le=new b(this.yd.Vq,null,this.yd.transitionDuration);this.Sv=0;this.Rh=this.yd.transitionDuration;this.nd.Hp(this.yd.item,0);this.OGa(0);this.bb()}; d.prototype.OGa=function(f){this.nd.nf(this.yd.item,1-f)};d.prototype.x0a=function(){this.YV(this.yd);this.yd=this.le;this.sb=d.Zr};d.prototype.sYa=function(){this.sb=d.Dca;this.Sv=0;this.Rh=this.le.transitionDuration;this.Q5(this.le);this.nd.Hp(this.le.item,0);this.NGa(0);this.bb()};d.prototype.NGa=function(f){this.nd.nf(this.le.item,f)};d.prototype.w0a=function(){this.yd=this.le;this.sb=d.Zr;this.R5(this.yd)};d.prototype.dwa=function(f){var l=this;f===void 0&&(f=!1);f||this.P.get("transitionMode")!= "fade_out_fade_in"&&!e.isPresenting?(this.P.Fc().smb(),this.sb=d.Bca,this.Sv=0,this.Rh=this.le.transitionDuration,this.Q5(this.le),this.nd.Hp(this.le.item,0),this.nd.yi(this.le.item),this.nd.nf(this.le.item,1),this.j.Ra(!0),this.P.Fc().zK(),this.MGa(0),this.bb()):(this.sb=d.XWa,this.P.Ssa(this.j,function(){l.dwa(!0)}))};d.prototype.MGa=function(f){this.nd.nf(this.le.item,f);this.P.Fc().nK(f)};d.prototype.u0a=function(){this.yd=this.le;this.P.Fc().oJ();this.sb=d.Zr;this.R5(this.yd)};d.prototype.Zx= function(){this.sb=d.vo;this.Sv=0;this.Rh=this.le.transitionDuration;this.Q5(this.le);this.nd.Hp(this.yd.item,0);this.nd.Hp(this.le.item,0);this.nd.yi(this.le.item);this.FD(0);this.bb()};d.prototype.FD=function(f){this.nd.nf(this.le.item,Math.min(1,f*2));this.nd.nf(this.yd.item,Math.min(1,(1-f)*2))};d.prototype.xy=function(){this.YV(this.yd);this.yd=this.le;this.sb=d.Zr;this.R5(this.yd)};d.prototype.uYa=function(){this.sb=d.Fca;this.Sv=0;this.Rh=this.le.transitionDuration;this.Q5(this.le);this.nd.yi(this.le.item); this.kHa(0);this.bb()};d.prototype.kHa=function(f){var l=this.yd.Vq!=this.le.Vq||this.yd.index0?p[q-1]:null;this.Fq=q1){var p="quad_out";var q=this.M2}else this.p5<-1?(p="quad_out",q=this.Q2):(p="quad_in_out",q=this.rq<-.5?this.Q2:this.rq>.5?this.M2:0);this.la=new d(p,[new f("offset",this.rq,q,1E3/this.Rh)],0);this.bb()}};l.prototype.ze=function(p){if(this.bm|| this.la)this.la&&(this.la.Nb(p),this.rq=this.la.ob("offset"),this.la.Ve()?(this.la=null,this.q0a()):this.bb()),this.Ja&&this.nd.Hp(this.Ja,this.rq*(1+this.uD)).nf(this.Ja,1),this.oq&&this.nd.Hp(this.oq,(this.rq-1)*(1+this.uD)).nf(this.oq,1),this.Fq&&this.nd.Hp(this.Fq,(this.rq+1)*(1+this.uD)).nf(this.Fq,1)};l.prototype.q0a=function(){this.o(new h(l.gba,{album:this.Zf,item:this.rq<0?this.Fq:this.rq>0?this.oq:this.Ja}))};l.prototype.bb=function(){this.o(new h(l.oc))};l.prototype.Pya=function(p){var q= p&&p.get("camera"),r=p&&p.get("media");p=r&&r.get("width",100)||100;r=r&&r.get("height",100)||100;var t=q?q.get("scaleMode",e.uj):e.uj,u={};k.Oa("MovementPhotoCamera",q)?(q=q.get("initialPosition",new b(.5,.5,1)),u.x=q.get("x",.5),u.y=q.get("y",.5),u.zoom=q.get("zoomFactor",.5)):(u.x=.5,u.y=.5,u.zoom=1);this.va.setConfiguration(p,r,t);this.va.setSize(this.P.nb(),this.P.Mb());this.va.setPosition(u.x,u.y,u.zoom);u.x=this.va.getX();u.y=this.va.getY();u.zoom=this.va.yA();return u};l.oc="request frame"; l.fba="interaction begin";l.gba="interaction end";return l}); define("tdv/player/view/photo/control/DisplayController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/constants/EventName tdv/player/view/photo/control/StageController tdv/player/view/photo/control/constants/TransitionMode tdv/player/view/photo/control/display/TransitionController tdv/player/view/photo/control/display/ManualScrollController".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher");a("tdv/constants/EventName");a("tdv/player/view/photo/control/StageController"); var g=a("tdv/player/view/photo/control/constants/TransitionMode"),k=a("tdv/player/view/photo/control/display/TransitionController"),e=a("tdv/player/view/photo/control/display/ManualScrollController"),b=m.extend(n,function(c,d,f){n.call(this);this.P=c;this.nd=f;this.XN=g.Op;this.Rh=1E3;this.bc=new k(this.P,d,this.nd);this.bc.bind(k.oc,this.cg,this,!0);this.bc.bind(k.Gba,this.mBa,this,!0);this.bc.bind(k.Ir,this.nBa,this,!0);this.bc.bind(k.HF,this.cU,this,!0);this.bc.bind(k.JF,this.fU,this,!0);this.bc.bind(k.IF, this.eU,this,!0);this.bc.bind(k.Fr,this.Ds,this,!0);this.bc.bind(k.Gr,this.vq,this,!0);this.bn=new e(this.P,this.nd);this.bn.bind(e.oc,this.cg,this,!0);this.bn.bind(e.fba,this.pAa,this,!0);this.bn.bind(e.gba,this.qAa,this,!0)});b.prototype.J$=function(c,d){this.XN=c;this.Rh=d;this.bc.Jlb(c);this.bn.Ilb(d);this.bc.Bra(.05);this.bn.Bra(.05)};b.prototype.display=function(c,d){this.bc.rsa(c,d,this.Rh)};b.prototype.oe=function(){this.bc.rsa(null,null,this.Rh)};b.prototype.clear=function(){this.bc.h(k.oc, this.cg,this);this.bc.h(k.Gba,this.mBa,this);this.bc.h(k.Ir,this.nBa,this);this.bc.h(k.HF,this.cU,this);this.bc.h(k.JF,this.fU,this);this.bc.h(k.IF,this.eU,this);this.bc.h(k.Fr,this.Ds,this);this.bc.h(k.Gr,this.vq,this);this.bc.clear();this.bc=null;this.bn.bind(e.oc,this.cg,this,!0);this.bn.bind(e.fba,this.pAa,this,!0);this.bn.bind(e.gba,this.qAa,this,!0);this.bn.clear();this.nd=this.P=this.bn=null};b.prototype.ze=function(c){this.bc.ze(c);this.bn.ze(c)};b.prototype.cg=function(){this.bb()};b.prototype.cU= function(c){this.o(new h(b.HF,c.data))};b.prototype.fU=function(c){this.o(new h(b.JF,c.data))};b.prototype.eU=function(c){this.o(new h(b.IF,c.data));this.bn.wkb(c.data.album,c.data.item)};b.prototype.Ds=function(c){this.o(new h(b.Fr,c.data))};b.prototype.vq=function(c){this.o(new h(b.Gr,c.data))};b.prototype.mBa=function(){this.bn.disable()};b.prototype.nBa=function(c){this.XN==g.Wr&&c.data.item&&this.bn.enable();c.data.album||this.o(new h(b.cba))};b.prototype.pAa=function(){this.o(new h(b.pta))}; b.prototype.qAa=function(c){this.bc.rsa(c.data.album,c.data.item,0);this.o(new h(b.qta,c.data))};b.prototype.bb=function(){this.o(new h(b.oc))};b.oc="request frame";b.HF="photo added";b.JF="photo removed";b.IF="photo displayed";b.Gr="photo album show";b.Fr="photo album hide";b.pta="manual interaction begin";b.qta="manual interaction end";b.cba="all pending photo albums hidden";return b}); define("tdv/player/view/photo/control/PlayListController","require tdv/utils tdv/binding/ChangeWatcher tdv/events/Event tdv/events/EventDispatcher tdv/constants/PlaybackState".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/ChangeWatcher"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/PlaybackState"),e=m.extend(g,function(){g.call(this);this.Zf=null;this.I=k.ca;this.kka=null});e.prototype.clear=function(){this.Xna()};e.prototype.Xra=function(b){this.Xna(); this.Zf=b;this.I=k.PLAYING;this.kka=h.jx(this.Zf,"playList.selectedIndex",this.tI,this,!0);this.Zf.get("playList").get("selectedIndex")==0?this.tI():this.Zf.get("playList").set("selectedIndex",0)};e.prototype.Xna=function(){this.Zf&&(this.I=k.ca,this.kka.jF(),this.Zf=this.kka=null)};e.prototype.stop=function(){this.I!=k.ca&&(this.I=k.ca,this.Zf.get("playList").set("selectedIndex",0))};e.prototype.play=function(){this.I==k.ca?(this.Zf.get("playList").set("selectedIndex",0),this.I=k.PLAYING,this.tI()): this.I==k.$b&&(this.I=k.PLAYING)};e.prototype.pause=function(){this.I==k.PLAYING&&(this.I=k.$b)};e.prototype.next=function(){var b=this.Zf.get("playList"),c=b.get("selectedIndex"),d=b.get("items").length;(c0||this.Zf.get("loop"))&&b.set("selectedIndex",(c-1+d)%d)};e.prototype.H8=function(b){this.$8a(b)};e.prototype.itemEnd=function(b){if(this.Zf){var c= this.Zf.get("playList").get("items");b!=(c.length>0?c[c.length-1]:void 0)||this.Zf.get("loop")?this.next():(this.I=k.ca,this.o(new n(e.Yaa,{album:this.Zf})))}};e.prototype.tI=function(){var b=this.F2a();b>=0&&(this.I!=k.PLAYING&&b!=0?this.o(new n(e.Cba)):this.o(new n(e.kba,{album:this.Zf,item:this.Zf.get("playList").get("items")[b]})))};e.prototype.F2a=function(){return this.Zf?this.Zf.get("playList").get("selectedIndex"):-1};e.prototype.$8a=function(b){if(this.Zf){var c=this.Zf.get("playList");b= c.get("items").indexOf(b);c.set("selectedIndex",b)}};e.Cba="play request";e.kba="item request";e.Yaa="album end";return e}); define("tdv/player/view/photo/control/PlaybackController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/constants/PlaybackState tdv/view/util/Visibility".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/PlaybackState"),e=a("tdv/view/util/Visibility"),b=m.extend(g,function(c){g.call(this);this.P=c;this.LV=this.Ja=null;this.mI=void 0;this.d2=!1;this.I=k.ca; e.bind(h.V,this.fDa,this,!0)});b.prototype.H8=function(c){this.Eea();if(this.Ja=c)c=this.Ja.get("media").get("duration",0),this.mI=c==0?void 0:Math.max(0,c-this.P.get("transitionDuration")),this.d2=!1,this.I==k.PLAYING&&this.afa()};b.prototype.clear=function(){e.h(h.V,this.fDa,this,!0);this.H8(null)};b.prototype.stop=function(){this.I!=k.ca&&(this.Eea(),this.Jd(k.ca))};b.prototype.play=function(){if(this.I==k.ca){if(this.Jd(k.PLAYING),this.Ja){this.d2=!1;var c=this.Ja.get("media").get("duration", 0);this.mI=c==0?void 0:c;this.afa()}}else this.I==k.$b&&(this.Jd(k.PLAYING),this.Ja&&this.afa())};b.prototype.pause=function(){this.I==k.PLAYING&&(this.Jd(k.$b),this.tDa())};b.prototype.afa=function(){this.d2||(this.d2=!0,this.o(new n(b.lba,{item:this.Ja})));this.Wxa()};b.prototype.fDa=function(){e.visible?this.Wxa():e.visible||this.tDa()};b.prototype.Wxa=function(){if(this.mI!==void 0){var c=this;this.J5=(new Date).getTime()+this.mI;this.LV=setTimeout(function(){c.LV=null;c.x$a()},this.mI)}else this.J5= void 0};b.prototype.Eea=function(){this.LV&&(clearTimeout(this.LV),this.LV=null)};b.prototype.tDa=function(){this.J5!==void 0&&(this.Eea(),this.mI=Math.max(1,this.J5-(new Date).getTime()),this.J5=void 0)};b.prototype.x$a=function(){var c=this.Ja;this.Ja=null;this.mI=void 0;this.o(new n(b.jba,{item:c}))};b.prototype.Jd=function(c){this.I!=c&&(this.I=c,this.o(new n(b.gd,{state:this.I})))};b.gd="playback state change";b.lba="item start";b.jba="item end";return b}); define("tdv/player/view/photo/control/Controller","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/photo/control/AudioController tdv/player/view/photo/control/CameraController tdv/player/view/photo/control/DisplayController tdv/player/view/photo/control/PlayListController tdv/player/view/photo/control/PlaybackController tdv/player/view/photo/control/StageController tdv/view/util/Animation".split(" "),function(a){var m=a("tdv/utils");a("tdv/constants/EventName"); var h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/player/view/photo/control/AudioController"),k=a("tdv/player/view/photo/control/CameraController"),e=a("tdv/player/view/photo/control/DisplayController"),b=a("tdv/player/view/photo/control/PlayListController"),c=a("tdv/player/view/photo/control/PlaybackController"),d=a("tdv/player/view/photo/control/StageController"),f=a("tdv/view/util/Animation"),l=m.extend(n,function(p,q){n.call(this);this.P=p;this.j=q;this.j.set("visible",!1); this.cj=new b;this.Ua=new c(this.P);this.nd=new d(this.j);this.Ya=new e(this.P,this.j,this.nd);this.yb=new k(this.P,this.nd);this.Fd=new g;this.cj.bind(b.kba,this.GBa,this,!0);this.cj.bind(b.Cba,this.sCa,this,!0);this.cj.bind(b.Yaa,this.dU,this,!0);this.Ua.bind(c.lba,this.HBa,this);this.Ua.bind(c.jba,this.FBa,this);this.Ua.bind(c.gd,this.Mf,this,!0);this.Ya.bind(e.oc,this.cg,this,!0);this.Ya.bind(e.HF,this.cU,this,!0);this.Ya.bind(e.JF,this.fU,this,!0);this.Ya.bind(e.IF,this.eU,this,!0);this.Ya.bind(e.Fr, this.Ds,this,!0);this.Ya.bind(e.Gr,this.vq,this,!0);this.Ya.bind(e.pta,this.k5a,this,!0);this.Ya.bind(e.qta,this.l5a,this,!0);this.Ya.bind(e.cba,this.dBa,this,!0);this.yb.bind(k.oc,this.cg,this,!0)});l.prototype.clear=function(){this.cj.clear();this.Ua.clear();this.Ya.clear();this.yb.clear();this.Fd.clear();this.nd.clear();this.cj.h(b.kba,this.GBa,this);this.cj.h(b.Yaa,this.dU,this);this.cj.h(b.Cba,this.sCa,this);this.Ua.h(c.lba,this.HBa,this);this.Ua.h(c.jba,this.FBa,this);this.Ua.h(c.gd,this.Mf, this);this.Ya.h(e.oc,this.cg,this);this.Ya.h(e.HF,this.cU,this);this.Ya.h(e.JF,this.fU,this);this.Ya.h(e.IF,this.eU,this);this.Ya.h(e.Fr,this.Ds,this);this.Ya.h(e.Gr,this.vq,this);this.Ya.h(e.cba,this.dBa,this);this.yb.h(k.oc,this.cg,this);this.P=this.j=this.nd=this.Fd=this.yb=this.Ya=this.Ua=this.cj=null};l.prototype.J$=function(p,q){this.Ya.J$(p,q)};l.prototype.mlb=function(p){this.j.set("visible",!0);this.cj.Xra(p)};l.prototype.bB=function(){this.cj.Xna();this.Ua.stop();this.Ya.oe();this.yb.end(); this.Fd.tSa()};l.prototype.next=function(){this.cj.next()};l.prototype.yqa=function(){this.cj.yqa()};l.prototype.stop=function(){this.Ua.stop();this.Fd.stop();this.cj.stop();this.yb.stop()};l.prototype.play=function(){this.Ua.play();this.Fd.play();this.cj.play();this.yb.play()};l.prototype.pause=function(){this.Ua.pause();this.Fd.pause();this.cj.pause();this.yb.pause()};l.prototype.k5a=function(){this.Ua.pause();this.Fd.pause();this.cj.pause();this.yb.pause()};l.prototype.l5a=function(){this.Ua.play(); this.Fd.play();this.cj.play();this.yb.play()};l.prototype.GBa=function(p){this.Ya.display(p.data.album,p.data.item)};l.prototype.sCa=function(){this.play()};l.prototype.cg=function(){f.requestFrame(this.sq,this)};l.prototype.sq=function(p){this.yb.YA(p);this.Ya.ze(p);this.Fd.ze(p)};l.prototype.cU=function(p){this.yb.start(p.data.item)};l.prototype.fU=function(p){var q=p.data.album;p=p.data.item;var r=p.get("media");this.yb.end(p);this.Fd.zmb(r);this.o(new h(l.yba,{photoAlbum:q,item:p}))};l.prototype.eU= function(p){var q=p.data.album;p=p.data.item;p.get("media");this.cj.H8(p);this.Ua.H8(p);this.o(new h(l.xba,{photoAlbum:q,item:p}))};l.prototype.HBa=function(p){p=p.data.item.get("media");this.Fd.rmb(p)};l.prototype.FBa=function(p){this.cj.itemEnd(p.data.item)};l.prototype.dU=function(p){this.Ua.stop();this.Fd.stop();this.o(new h(l.wba,{photoAlbum:p.data.album}))};l.prototype.vq=function(p){p=p.data.album;this.Fd.Xra(p);this.Ua.play();this.yb.play();this.o(new h(l.Gr,{photoAlbum:p}))};l.prototype.Ds= function(p){p=p.data.album;this.Fd.wmb(p);this.o(new h(l.Fr,{photoAlbum:p}))};l.prototype.dBa=function(){this.j.set("visible",!1)};l.prototype.Mf=function(p){this.o(new h(l.gd,{state:p.data.state}))};l.Gr="photoAlbumShow";l.wba="photoAlbumEnd";l.Fr="photoAlbumHide";l.xba="photoBegin";l.yba="photoEnd";l.gd="playbackStateChange";return l}); define("tdv/player/view/renderer2d/adapters/CameraAdapter",["require","exports","tdv/constants/EventName","tdv/player/view/webgl/components","tdv/player/view/util/XR"],function(a,m,h,n,g){return function(){function k(e,b){this.Od=e;this.renderer=b;this.renderer.bind(h.Rb,this.tl,this,!0);this.tl();this.gu();this.enabled=!1;g.M.bind(h.V,this.Ta,this,!0);g.M.bind(h.Pd,this.Ta,this,!0)}k.prototype.dispose=function(){this.renderer.h(h.Rb,this.tl,this);g.M.h(h.V,this.Ta,this);g.M.h(h.Pd,this.Ta,this); this.Ca()};k.prototype.nj=function(){return this.F};k.prototype.Ra=function(e){this.enabled!==e&&(this.enabled=e,this.DTa())};k.prototype.Ta=function(){this.sTa();this.lg();this.JZ()};k.prototype.tl=function(){var e=this.renderer.Xh(),b=this.renderer.Wh();if(this.Pw!==e||this.Ow!==b)this.Pw=e,this.Ow=b,this.JZ()};k.prototype.JZ=function(){if(this.F){var e=this.F.O(n.PerspectiveCamera);e.width=this.Pw;e.height=this.Ow}};k.prototype.lg=function(){if(this.F)if(g.isPresenting)this.F.ka(n.ta);else{var e= this.F.O(n.ta,!0);e.positionX=e.positionY=e.positionZ=0;e.translationX=e.translationY=e.Ze=0;e.Yd=e.fd=e.Xe=0;e.Le=e.Ye=e.Gh=1}};k.prototype.DTa=function(){this.F&&(this.F.O(n.gG).locked=!this.enabled)};k.prototype.sTa=function(){if(this.F){var e=this.Od.getComponent(n.Object3D);e=(e=e&&e.sa)&&g.isPresenting&&g.XA===e;this.F.O(n.PerspectiveCamera,!0).oj=e}};k.prototype.gu=function(){var e=this.Od.T.sc("Camera");e.N(n.pb).F=this.Od;var b=e.N(n.PerspectiveCamera);b.Wd=k.yu;b.near=.1;b.far=100;b.Yma= !1;e.N(n.gG).locked=!0;this.F=this.Od.O(n.Scene).Ea=e;this.JZ();this.lg();this.DTa();this.sTa()};k.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};k.yu=90;return k}()}); define("tdv/player/view/renderer2d/adapters/GroupAdapter","require exports tdv/constants/EventName tdv/player/view/webgl/components tdv/player/view/util/XR tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/util/Animation".split(" "),function(a,m,h,n,g,k,e,b){return function(){function c(d){this.Od=d;g.M.bind(h.V,this.Ta,this,!0);g.M.bind(h.Zd,this.QP,this,!0);this.gu()}c.prototype.dispose=function(){g.M.h(h.V,this.Ta,this);g.M.h(h.Zd,this.QP,this);this.Ca()};c.prototype.nj=function(){return this.F}; c.prototype.Ta=function(){this.CIa()};c.prototype.QP=function(){this.Jnb()};c.prototype.CIa=function(){this.F&&(this.F.O(n.ta).positionY=g.isPresenting?g.HO:0)};c.prototype.Jnb=function(){if(this.F){var d=this.F.O(n.ta);if(g.isPresenting)if(this.FX){if(this.FX.Nb(b.gX),d.positionY+=(g.HO-d.positionY)*this.FX.ob("leveling"),Math.abs(d.positionY-g.HO)<.01||this.FX.Ve())this.FX=null}else Math.abs(d.positionY-g.HO)>.2&&(this.FX=new k("linear",[new e("leveling",0,1)],2E3));else d.positionY=0}};c.prototype.gu= function(){var d=this.Od.T.sc("Media2DGroup");d.N(n.pb).F=this.Od;d.N(n.ta);d.N(n.Group);this.F=d;this.CIa()};c.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};return c}()}); define("tdv/player/view/renderer2d/adapters/XRPointerAdapter","require exports three.mod tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){a=function(){function f(l,p){this.Od=l;this.Ea=p;this.Ut=[];this.enabled=!1;this.Wa()}f.prototype.Ra=function(l){this.enabled!==l&&(this.enabled=l)};f.prototype.dispose=function(){this.ya()};f.prototype.Wa=function(){e.M.bind(n.Zd,this.Kg,this,!0)};f.prototype.ya=function(){e.M.h(n.Zd, this.Kg,this);this.nZ([])};f.prototype.Kg=function(){this.nZ(e.ud)};f.prototype.nZ=function(l){var p=this;if(!this.enabled||l.find(function(t){return t.eA}))l=[];var q=this.Ut;this.Ut=l.map(function(t){var u=q.findIndex(function(v){return v.cb==t});return u!==-1?q.splice(u,1)[0]:new b(t,p.Od,p.Ea)});q.forEach(function(t){t.dispose()});this.Ut.forEach(function(t){t.Ra(this.enabled);t.update()}.bind(this));var r=this.Ut.reduce(function(t,u){return!t||t.nAthis.Kw*r?(p=this.Lw*t/this.Kw,q=t):(p=r,q=this.Kw*r/this.Lw);break;default:this.Lw*t>this.Kw*r?(p=r,q=this.Kw*r/this.Lw):(q=t,p=this.Lw*t/this.Kw)}t=p*this.Ysa;q*=this.Ysa;r=this.F.O(b.ta);r.Le=t;r.Ye=q;r.positionX=(.5-this.x)*t;r.positionY=(this.y-.5)*q;r.positionZ=-l}};f.prototype.io=function(){if(this.F){var l=this.F.O(b.Oi);l.properties=this.lr;l.Ap=this.tc;l.xw=this.image;l.qJa=this.rob}};f.prototype.Jsa= function(){if(this.F){var l=this.F.O(b.wd,!0);l.pB=!0;l.hF=!0;l.M=this.tc;l.nt=!0;l.Yt=!0}};f.prototype.uTa=function(){this.lr.set("opacity",this.opacity);this.lr.set("depthTest",!0);this.lr.set("enabled",!0);this.lr.set("encoding","srgb");this.lr.set("hidden",!1);this.lr.set("side","double");this.lr.set("priority",g.Jm);this.lr.set("width",this.Lw);this.lr.set("height",this.Kw);this.lr.set("scaleMode","fill");this.lr.set("easeDuration",0)};f.prototype.gu=function(){var l=this.Ag.T.sc("Photo");l.N(b.pb).F= this.Ag;l.N(b.Plane);l.N(b.ta);l.N(b.Oi);l.N(b.wd);this.F=l;this.lg();this.io();this.Jsa()};f.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};return f}()}); define("tdv/player/view/photo/renderer/adapters/ViewportAdapter","require exports tdv/constants/EventName tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/player/view/renderer2d/adapters/CameraAdapter tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){return function(){function b(c,d,f){this.Ag=c;this.renderer=d;this.eb=f;this.F9=this.F9.bind(this);this.enabled=!1}b.prototype.dispose=function(){this.Ra(!1)};b.prototype.nj=function(){return this.F};b.prototype.Ra=function(c){this.enabled!== c&&((this.enabled=c)?(n.ba(this.eb,["distance"],this.F9,!0),this.renderer.bind(h.Rb,this.Nt,this,!0),e.M.bind(h.V,this.Ta,this,!0),this.Nt(),this.gu()):(n.da(this.eb,["distance"],this.F9),this.renderer.h(h.Rb,this.Nt,this),e.M.h(h.V,this.Ta,this),this.Ca()))};b.prototype.F9=function(){var c=this.eb.get("distance",1);this.distance!==c&&(this.distance=c,this.lg())};b.prototype.Ta=function(){this.lg()};b.prototype.Nt=function(){this.Pw=this.renderer.Xh();this.Ow=this.renderer.Wh();this.lg()};b.prototype.lg= function(){if(this.F){var c=this.distance,d=2*Math.tan(Math.PI/180*k.yu*.5)*c,f=d*(e.isPresenting?1024:this.Ow)/(e.isPresenting?2048:this.Pw),l=this.F.O(g.ta);l.Le=d;l.Ye=f;l.positionZ=-c}};b.prototype.gu=function(){var c=this.Ag.T.sc("Viewport");c.N(g.pb).F=this.Ag;c.N(g.ta);c.N(g.vF);this.F=c;this.lg()};b.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};return b}()}); define("tdv/player/view/photo/renderer/Renderer",["require","exports","tdv/player/view/renderer2d/Renderer","tdv/player/view/photo/renderer/adapters/PhotoAdapter","tdv/player/view/photo/renderer/adapters/ViewportAdapter"],function(a,m,h,n,g){return function(k){function e(b,c,d){b=k.call(this,b,c,d)||this;b.AU=[];b.Dda=[];b.mN=[];return b}P(e,k);e.prototype.pY=function(){var b=this;k.prototype.pY.call(this);this.Wdb();this.AU.forEach(function(c,d){b.NJa(c,b.Dda[d])})};e.prototype.dIa=function(b,c){this.AU.includes(b)|| (this.AU.push(b),this.Dda.push(c),this.hf&&this.NJa(b,c))};e.prototype.Wdb=function(){this.IHa=new g(this.B1.nj(),this.hf,this.P);this.IHa.Ra(!0)};e.prototype.NJa=function(b,c){b=new n(b,c,this.B1.nj(),this.IHa.nj(),this,this.P);this.mN.push(b);this.t$(this.mN.length>0)};e.prototype.sQa=function(b){b=this.AU.indexOf(b);b<0||(this.AU.splice(b,1),this.Dda.splice(b,1),this.hf&&this.qeb(this.mN[b]))};e.prototype.qeb=function(b){var c=this.mN.indexOf(b);c<0||(this.mN.splice(c,1),b.dispose(),this.t$(this.mN.length> 0))};return e}(h)}); define("tdv/player/script/PhotoAlbumPlayer","require tdv/utils tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/script/PlaybackMediaPlayer tdv/player/view/photo/control/Controller tdv/player/view/photo/control/constants/TransitionMode tdv/player/view/photo/renderer/Renderer tdv/player/view/util/Device tdv/view/constants/ButtonMode tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/player/parser/ClassInfo"),g= a("tdv/player/script/helper/ButtonProperty"),k=a("tdv/player/script/PlaybackMediaPlayer"),e=a("tdv/player/view/photo/control/Controller"),b=a("tdv/player/view/photo/control/constants/TransitionMode"),c=a("tdv/player/view/photo/renderer/Renderer"),d=a("tdv/player/view/util/Device"),f=a("tdv/view/constants/ButtonMode"),l=a("tdv/constants/EventName");a=n.define("PhotoAlbumPlayer",k,function(){k.call(this,"photoAlbum");this.N5=this.Zia=this.jj=!1;this.U=this.j=null;this.TYa=new g(this,"buttonNext",f.af); this.TYa.bind(l.ma,this.jCa,this);this.UYa=new g(this,"buttonPrevious",f.af);this.UYa.bind(l.ma,this.CCa,this);this.be=m.nr(this.Sh,this)});a.prototype.next=function(){this.jCa()};a.prototype.pause=function(){this.WH()};a.prototype.play=function(){this.XH()};a.prototype.previous=function(){this.CCa()};a.prototype.stop=function(){this.cD()};a.prototype.restart=function(){this.bD()};a.prototype.set=function(p,q){if(this.get(p)!=q){switch(p){case "photoAlbum":this.Zia=!0;this.be();break;case "viewerArea":this.jj= !0;this.be();break;case "touchTransition":case "mouseTransition":case "touchTransitionDuration":case "mouseTransitionDuration":case "transitionDuration":this.N5=!0,this.be()}k.prototype.set.call(this,p,q)}};a.prototype.Sh=function(){this.jj&&(this.jj=!1,this.N5=!0,this.ny(),this.get("viewerArea")&&this.my(),this.oV(this.get("viewerArea")));this.j&&this.Zia&&(this.Zia=!1,this.get("photoAlbum")?(this.hK(),this.U.mlb(this.get("photoAlbum"))):this.U.bB());this.N5&&(this.N5=!1,this.qHa())};a.prototype.TN= function(){this.set("photoAlbum",null)};a.prototype.my=function(){var p=this.get("application"),q=this.get("viewerArea");this.j=new c(p,q,this);this.j.xa({left:0,top:0,bottom:0,right:0});q.mb(this.j);this.U=new e(q,this.j);this.qHa();this.U.bind(e.Gr,this.vq,this);this.U.bind(e.Fr,this.Ds,this);this.U.bind(e.wba,this.dU,this);this.U.bind(e.xba,this.pCa,this);this.U.bind(e.yba,this.qCa,this);this.U.bind(e.gd,this.Mf,this);this.xD(!0)};a.prototype.ny=function(){this.j&&(this.U.h(e.Gr,this.vq,this), this.U.h(e.Fr,this.Ds,this),this.U.h(e.wba,this.dU,this),this.U.h(e.xba,this.pCa,this),this.U.h(e.yba,this.qCa,this),this.U.h(e.gd,this.Mf,this),this.U.clear(),this.j.getParent().removeChild(this.j),this.j=null,this.xD(!1))};a.prototype.qHa=function(){var p=this.get("viewerArea");p&&this.U&&(d.Jp()?this.U.J$(this.get("touchTransition",b.Op),this.get("touchTransitionDuration",p.get("transitionDuration",1E3))):this.U.J$(this.get("mouseTransition",b.Op),this.get("mouseTransitionDuration",p.get("transitionDuration", 1E3))))};a.prototype.Mf=function(p){this.Jd(p.data.state)};a.prototype.vq=function(p){this.nT(p.data.photoAlbum)};a.prototype.Ds=function(p){this.mT(p.data.photoAlbum)};a.prototype.dU=function(p){p.data.photoAlbum.o(new h(l.Ub))};a.prototype.pCa=function(p){p.data.item.PD()};a.prototype.qCa=function(p){p.data.item.end()};a.prototype.Gj=function(p){this.j.getParent().xa({progressPercent:p.data.percent,progressVisible:!0})};a.prototype.ZM=function(){this.j.getParent().set("progressVisible",!1)};a.prototype.jCa= function(){this.U&&this.get("photoAlbum")&&this.U.next()};a.prototype.CCa=function(){this.U&&this.get("photoAlbum")&&this.U.yqa()};a.prototype.tn=function(){this.U&&this.get("photoAlbum")&&this.U.play()};a.prototype.Zs=function(){this.U&&this.get("photoAlbum")&&this.U.stop()};a.prototype.tv=function(){this.U&&this.get("photoAlbum")&&this.U.pause()};return a}); define("tdv/player/script/PhotoAlbumPlayListItem",["require","tdv/player/parser/ClassInfo","tdv/player/script/MediaPlayer","tdv/player/script/PlayListItem"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/MediaPlayer"),n=a("tdv/player/script/PlayListItem");a=m.define("PhotoAlbumPlayListItem",n,function(){n.call(this)});a.prototype.start=function(){n.prototype.start.call(this);var g=this.get("player");g&&(g.bind(h.di,this.vq,this),g.set("photoAlbum",this.get("media")))};a.prototype.stop= function(){var g=this.get("player");g&&(g.h(h.di,this.vq,this),g.get("photoAlbum")==this.get("media")&&g.set("photoAlbum",null));n.prototype.stop.call(this)};a.prototype.uQ=function(){var g=this.get("media");if(g){var k=g.get("playList");k&&(g=k.get("selectedIndex"),k=k.get("items"),g>=0&&k&&k[g].uQ())}n.prototype.uQ.call(this)};a.prototype.vq=function(){this.get("player").h(h.di,this.vq,this);this.get("player").bind(h.oo,this.Ds,this);this.PD()};a.prototype.Ds=function(g){g.data.media==this.get("media")&& (this.get("player").h(h.oo,this.Ds,this),this.stop(),this.end())};return a});define("tdv/player/script/PhotoAudio",["require","tdv/constants/Priority","tdv/player/parser/ClassInfo","tdv/player/script/MediaAudio"],function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/script/MediaAudio");return h.define("PhotoAudio",n,function(){n.call(this,m.OVa)})}); define("tdv/player/script/PlayList","require tdv/utils tdv/binding/Bindable tdv/events/Event tdv/player/parser/ClassInfo tdv/player/view/util/Preloader tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable"),n=a("tdv/events/Event"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/view/util/Preloader"),e=a("tdv/constants/EventName");a=g.define("PlayList",h,function(){h.call(this);this.Jg=-1;this.ni=[];this.KU=this.dl=this.ff=void 0});a.prototype.set=function(b, c){b=="selectedIndex"?this.Z8a(c):b=="items"?this.L8a(c):h.prototype.set.call(this,b,c)};a.prototype.get=function(b,c){return b=="selectedIndex"?this.Jg:b=="items"?this.ni:h.prototype.get.call(this,b,c)};a.prototype.dispose=function(){this.ff&&(this.ff.h(e.Dr,this.hU,this),this.ff.h(e.Fg,this.qv,this),this.ff.h(e.Ub,this.qv,this),this.ff=null)};a.prototype.L8a=function(b){b=b||[];if(!m.x8(this.ni,b)){var c=this.Jg;this.ni=b;b=this.qEa(this.Jg);this.o(new n(e.b_,{nextSelectedIndex:b}));this.Jg=b;this.dFa(this.eH(this.Jg)); this.gHa();this.o(new n(e.V,{previousSelectedIndex:c}));h.prototype.set.call(this,"items",this.ni);h.prototype.set.call(this,"selectedIndex",this.Jg)}};a.prototype.Z8a=function(b){b=this.qEa(b);if(this.Jg!=b){var c=this.Jg;this.o(new n(e.b_,{nextSelectedIndex:b}));this.Jg=b;this.dFa(this.eH(this.Jg));this.gHa();this.o(new n(e.V,{previousSelectedIndex:c}));h.prototype.set.call(this,"selectedIndex",this.Jg)}};a.prototype.qEa=function(b){return Math.max(-1,Math.min(this.ni.length-1,b))};a.prototype.eH= function(b){return b>=0?this.ni[b]:null};a.prototype.dFa=function(b){this.ff==b&&this.dl===void 0||this.dl===b||(this.dl===void 0?(this.dl=b,this.ff?this.dl&&this.ff.get("player")==this.dl.get("player")?(this.ff.uQ(),this.qv()):this.S3a(this.ff,this.dl)?(b=this.ff,b.uQ(),this.qv(),b.bTa()):(this.Yza(this.ff,this.dl)?this.ff.get("media").get("modelLocations",[]).forEach(function(c){var d=!(c.get("model")!=this.dl.get("media")||!c.get("forceModelLoading"));c.set("preferred",d)}.bind(this)):this.vbb(this.ff, this.dl)&&this.ff.get("player").knb(),this.ff.stop()):this.qv()):this.dl=b)};a.prototype.S3a=function(b,c){return this.Wga(b)&&this.Zga(c)&&this.Xza(c,b)};a.prototype.Yza=function(b,c){return this.Zga(b)&&this.Wga(c)?this.Xza(b,c)?!0:b.get("player")&&b.get("player").get("keepModel3DLoadedWithoutLocation")&&b.get("player").get("model3DPlayer")==c.get("player")?b.get("player").get("model3DPlayer").get("model")==c.get("media")?!0:!1:!1:!1};a.prototype.Xza=function(b,c){return b.get("player")&&b.get("player").get("model3DPlayer")== c.get("player")&&b.get("media").get("modelLocations",[]).find(function(d){return d.get("model")==c.get("media")&&(c.get("media").get("isLoaded")||d.get("forceModelLoading"))})};a.prototype.vbb=function(b,c){return this.Zga(b)&&this.Wga(c)&&b.get("player").get("model3DPlayer")==c.get("player")};a.prototype.Zga=function(b){return b&&g.Oa("PanoramaPlayListItem",b)};a.prototype.Wga=function(b){return b&&g.Oa("Model3DPlayListItem",b)};a.prototype.qv=function(){this.ff&&(this.ff.h(e.Dr,this.hU,this),this.ff.h(e.Fg, this.qv,this),this.ff.h(e.Ub,this.qv,this));this.dl?(this.Yza(this.ff,this.dl)&&this.ff.get("player").bind(e.pca,this.mn,this,!0),this.ff=this.dl,this.dl=void 0,this.ff.bind(e.Dr,this.hU,this),this.ff.bind(e.Fg,this.qv,this),this.ff.start()):(this.dl=this.ff=void 0,this.set("selectedIndex",-1))};a.prototype.mn=function(b){b.source.h(e.pca,this.mn,this);this.hU();this.ff.aTa()};a.prototype.hU=function(){this.ff.h(e.Dr,this.hU,this);this.ff.h(e.Fg,this.qv,this);this.ff.bind(e.Ub,this.qv,this)};a.prototype.gHa= function(){this.KU&&k.X8(this.KU.get("media"),-1);(this.KU=this.ni&&this.Jg>=0?this.ni[(this.Jg+1)%this.ni.length]:null)&&k.X8(this.KU.get("media"),1)};return a});define("tdv/player/script/PhotoPlayList",["require","tdv/player/parser/ClassInfo","tdv/player/script/PlayList"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PlayList");return m.define("PhotoPlayList",h,function(){h.call(this)})}); define("tdv/player/script/PhotoPlayListItem",["require","exports","tdv/player/parser/ClassInfo","tdv/player/script/PlayListItem"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);return k}(n);h.create("PhotoPlayListItem",a);return a});define("tdv/player/script/PlaybackBar",["require","tdv/player/view/PlaybackBar","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/player/view/PlaybackBar");return a("tdv/player/parser/ClassInfo").define("PlaybackBar",m,function(){m.call(this)})}); define("tdv/player/AppInfo",["require"],function(){function a(n){try{for(var g=(h.XX<<12)+h.cY&65535,k="",e=0,b=n.length;eu.nb(),x=Math.min(u.nb(),u.Mb())/100;u=function(y){return Math.round(y*x)};this.xa({gap:v?u(4.63):20,paddingLeft:v? u(4.63):20,paddingRight:v?u(4.63):20,paddingTop:v?u(4.63):14,paddingBottom:v?u(4.63):14,layout:v&&w?d.Uk:d.Ni});this.An&&this.An.xa({fontSize:v?u(3.15):14,textAlign:v&&w?"center":"left"});this.iC&&this.iC.xa({gap:v?0:13});this.tG&&this.tG.xa({borderRadius:v?u(4.63):15,fontSize:v?u(3.15):14,height:v?u(9.26):30,paddingLeft:v?u(6):20,paddingRight:v?u(6):20});this.IL&&this.IL.xa({borderRadius:v?u(4.63):15,fontSize:v?u(3.15):14,height:v?u(9.26):30,paddingLeft:v?u(6):20,paddingRight:v?u(6):20});this.Bf()}}; a.prototype.exa=function(){var u=h.toArray(this.Ie.get("cookiesPolicy"));this.HU!=u&&(this.HU=u,this.D7a())};a.prototype.D7a=function(){if(this.HU.length==0)this.yka(null);else{var u=this.HU[0];h.toArray(u.get("geographicArea")).length==0?this.yka(u):this.O1a(function(v){for(var w=null,x=0;x=0&&(w=y)}this.yka(w)}.bind(this))}};a.prototype.yka=function(u){this.qN!== u&&(this.qN&&this.qN.h(n.L("url"),this.kma,this),(this.qN=u)?(this.qN.bind(n.L("url"),this.kma,this),this.kma(),this.set("visible",!0)):(this.o(n.XK),this.set("visible",!1)))};a.prototype.kma=function(){var u=document.createElement("div");u.innerHTML=g("cookies-notice");for(var v=u.querySelectorAll("a"),w=0;w{w=w.country.toUpperCase();this.eya= !1;try{window.localStorage.setItem("tdvp_country_code",w)}catch(x){}u(w)}))};var t="tdvp_accept_cookies_"+window.location.origin+window.location.pathname;a.prototype.u2a=function(){var u=m(t);if(u=="yes")return!0;if(u=="no")return!1};a.prototype.fFa=function(u){try{window.localStorage.setItem(t,u?"yes":"no")}catch(v){}};return a}); define("tdv/player/view/util/FileSystem",["require"],function(){function a(w){var x=w instanceof Request||w instanceof Response?w.url:w;x&&(x=x.split("#")[0]);x&&(x=x.split("?")[0]);return x&&x.indexOf("://")==-1?(typeof window!=="undefined"?Promise.resolve(window.location.href):self.clients.matchAll({type:"window"}).then(function(y){if(y.length)return y[0].url})).then(function(y){return(new window.URL(x,y)).toString()}):Promise.resolve(x)}function m(w,x){return new Promise(function(y,z){(x===void 0? g():Promise.resolve(x)).then(function(A){(window.webkitRequestFileSystem||window.requestFileSystem)(A?window.PERSISTENT:window.TEMPORARY,w,function(D){y(D)},function(D){console.log("Error getting file system access",D);z("error getting file system")})},function(A){console.log("error getting file system access",A);z("error getting file system")})})}function h(w,x){return w&&w.queryUsageAndQuota?new Promise(function(y,z){w.queryUsageAndQuota(function(A,D){console.log("UsedBytes:",A,"grantedBytes:", D,"freeBytesRequired:",x);var F=A+x;D>=F?y(F):w==navigator.webkitPersistentStorage||w==navigator.persistentStorage?(console.log("requestQuota:",F),w.requestQuota(F,function(){console.log("Granted bytes:",F);y(F)},function(C){console.log("Not granted bytes:",F,C);z("not enough free space granted")})):(console.log("Not enough temporary free space."),z("not enough free space granted"))},function(A){console.log("Query quota error:",A);A&&A.message&&(A=A.message);z("not enough free space granted: "+A)})}): Promise.reject("unknown free space")}function n(){return(navigator.storage&&navigator.storage.persist?navigator.storage.persist():Promise.resolve(!1)).then(function(w){console.log("Persistence granted:",w);return w?navigator.webkitPersistentStorage||navigator.persistentStorage:navigator.webkitTemporaryStorage||navigator.temporaryStorage})}function g(){return navigator.storage&&navigator.storage.persisted?navigator.storage.persisted():Promise.resolve(!1)}function k(){return v?Promise.resolve(v):Promise.reject("files uninitialized, no space was requested")} function e(w){w.length&&w[0]=="/"&&(w=w.substr(1));return w.split("/").filter(function(x){return x!=""})}function b(w){return new Promise(function(x,y){w.remove(function(){x()},function(z){y("can't remove entry"+(z&&z.message?": "+z.message:"")+".")})})}function c(w){return d(w).then(function(x){return Promise.all(x.map(function(y){return y.isDirectory?c(y):b(y)}))}).then(function(){return b(w).then(function(){return Promise.resolve()},function(){return Promise.resolve()})})}function d(w){return new Promise(function(x, y){w.createReader().readEntries(function(z){x(z)},function(){y("can't list directory")})})}function f(w,x,y){return new Promise(function(z,A){w.getDirectory(x,y,function(D){z(D)},function(){A("can't get directory entry: "+x)})})}function l(w,x){return new Promise(function(y,z){f(w,x,{create:!1}).then(function(A){y(A)})["catch"](function(){f(w,x,{create:!0}).then(function(A){y(A)})["catch"](function(A){console.log("Can't create directory entry: "+x,A);z("can't create directory entry: "+x)})})})}function p(w, x){return x.length==0?w:l(w,x[0]).then(function(y){return p(y,x.slice(1))})}function q(w,x){return x.length==0?w:f(w,x[0]).then(function(y){return q(y,x.slice(1))})}function r(w,x,y){return new Promise(function(z,A){w.getFile(x,y,function(D){z(D)},function(){A("can't get file entry: "+x)})})}function t(w){return new Promise(function(x,y){w.createWriter(function(z){x(z)},function(){y("can't create File for writing")})})}function u(w){var x=w.lastIndexOf(".");switch((x<0?"":w.substr(x)).toLowerCase()){case ".bmp":return"image/bmp"; case ".eot":return"application/vnd.ms-fontobject";case ".gif":return"image/gif";case ".glb":return"model/gltf-binary";case ".htm":case ".html":return"text/html";case ".jpeg":case ".jpg":return"image/jpeg";case ".js":return"text/javascript";case ".json":return"application/json";case ".m3u8":return"application/vnd.apple.mpegurl";case ".m4a":return"audio/mp4";case ".m4v":return"video/mp4";case ".mp3":return"audio/mpeg";case ".mp4":return"video/mp4";case ".ogg":return"audio/ogg";case ".ogv":return"video/ogg"; case ".otf":return"font/otf";case ".png":return"image/png";case ".svg":return"image/svg+xml";case ".tif":return"image/tiff";case ".tiff":return"image/tiff";case ".ts":return"video/vnd.dlna.mpeg-tts";case ".ttf":return"application/font-sfnt";case ".tts":return"video/vnd.dlna.mpeg-tts";case ".txt":return"text/plain";case ".webm":return"video/webm";case ".woff":return"font/x-woff";case ".woff2":return"font/woff2";case ".xml":return"text/xml";default:return"application/octet-stream"}}var v=null;return{N9:function(){return g()}, toURL:function(w,x){return a(w).then(function(y){y=new window.URL(y);var z=x?"persistent":"temporary",A=y.pathname.split("/").map(encodeURIComponent).join("/");return"filesystem:"+y.origin+"/"+z+A})},Tjb:function(w){return n().then(function(x){return h(x,w)}).then(function(x){return m(x)}).then(function(x){v=x})},Bjb:function(w){w=e(w);var x=w[w.length-1],y=w.slice(0,-1);return k().then(function(z){return q(z.root,y)}).then(function(z){return r(z,x,{create:!0})},function(){return Promise.resolve(null)}).then(function(z){return z&& b(z)})},oQa:function(w,x){var y=e(w);return m(1024,x).then(function(z){return q(z.root,y)}).then(function(z){return c(z)},function(){return Promise.resolve()})},OTa:function(w,x,y){var z=e(w),A=z[z.length-1],D=z.slice(0,-1);return k().then(function(F){return p(F.root,D)}).then(function(F){return r(F,A,{create:!1}).then(function(C){return Promise.resolve(C)},function(){return r(F,A,{create:!0})})}).then(function(F){return t(F)}).then(function(F){F.seek(F.length);return new Promise(function(C,B){F.onwriteend= function(){C()};F.onerror=function(H){console.log("Error writing file:",w,H);B("error writing file: "+w)};F.write(new Blob([x],{type:y||u(A)}))})})}}}); define("tdv/player/view/util/Download",["require","tdv/player/view/util/FileSystem","tdv/player/view/util/URL","tdv/player/view/util/Device"],function(a){function m(c,d){this.rD=c;this.kC=!1;this.Dq=null;this.nz=d||function(){}}function h(c){return c.FK>=1048576}var n=a("tdv/player/view/util/FileSystem"),g=a("tdv/player/view/util/URL"),k=a("tdv/player/view/util/Device").kf()?3:5;a={File:function(c,d){this.url=c;this.FK=d;this.JY=this.FO=0}};var e=a.Files=function(c,d,f,l){this.uwa=this.pYa=c;this.vv= d.slice();this.dya=[];var p=0;this.vv.sort(function(q,r){return q.FK-r.FK});this.vv.forEach(function(q){p+=q.FK});this.dGa=p;this.QG=[];this.h0=void 0;this.cv=[];this.Eda=!1;this.Sg=f||function(){};this.$R=l||function(){}};e.prototype.fw=function(){return this.pZa().then(function(){return this.qZa()}.bind(this))};e.prototype.pZa=function(){return self.caches["delete"](this.uwa)};e.prototype.qZa=function(){var c=(new window.URL(this.pYa)).pathname;return n.oQa(c,!1).then(function(){return n.oQa(c, !0)})};e.prototype.requestStorage=function(){return n.Tjb(Math.round(this.dGa*1.1+10485760)).then(function(){return n.N9()})};e.prototype.download=function(){this.Eda=!1;this.h0=0;this.fw().then(function(){this.UR()}.bind(this))["catch"](function(c){console.log("error cleaning storage",c);n.N9().then(function(d){this.$R(!1,d)}.bind(this))}.bind(this))};e.prototype.cancelDownload=function(){this.Eda=!0;this.cv.forEach(function(c){c.cancel()});this.fw()};e.prototype.UR=function(){if(!(this.Eda||this.cv.length>= k))if(this.vv.length>0){if(k==1)var c=Math.random()>.5?this.vv.shift():this.vv.pop();else if(this.QG.filter(h).length==0)c=this.vv.pop();else{if(h(this.vv[0]))return;c=this.vv.shift()}this.QG.push(c);var d=g.MD(c.url,"nc="+(new Date).getTime()),f=new m(d,function(p){c.FO=p.FO;this.hh()}.bind(this));this.cv.push(f);f.fetch().then(function(p){return this.d$a(c.url,p)}.bind(this)).then(function(){this.Kxa(c,f,!0)}.bind(this))["catch"](function(p){console.log("download error",c.url,c.FK,c.FO,p);this.Kxa(c, f,!1)}.bind(this));this.UR()}else if(this.cv.length==0){var l=this.dya.length<=5;n.N9().then(function(p){this.$R(l,p)}.bind(this))}};e.prototype.Kxa=function(c,d,f){f?(this.QG.splice(this.QG.indexOf(c),1),this.cv.splice(this.cv.indexOf(d),1),this.h0+=c.FK,this.hh(),this.UR()):(c.FO=0,c.JY+=1,this.hh(),c.JY>=20?(console.log("Error downloading file: "+c.url+" after "+c.JY+" retries."),this.Tza(c.url)?(this.dya.push(c),this.cv.splice(this.cv.indexOf(d),1),this.UR()):(this.cancelDownload(),n.N9().then(function(l){this.$R(!1, l)}.bind(this)))):(console.log("Error downloading file: "+c.url+" attempt "+c.JY+" of 20. Will retry in 2000ms."),setTimeout(function(){this.QG.splice(this.QG.indexOf(c),1);this.cv.splice(this.cv.indexOf(d),1);h(c)?this.vv.push(c):this.vv.splice(0,0,c);this.UR()}.bind(this),2E3)))};e.prototype.d$a=function(c,d){return this.f$a(c,d).then(function(){if(this.nbb(c))return this.e$a(c,d)}.bind(this))};e.prototype.e$a=function(c,d){d=d.clone();return d.status!=200?Promise.reject("response status: "+d.status): self.caches.open(this.uwa).then(function(f){return f.put(c,d)})};e.prototype.f$a=function(c,d){d=d.clone();if(d.status!=200)return Promise.reject("response status: "+d.status);var f=(new window.URL(c)).pathname;return f.lastIndexOf("/")==f.length-1?Promise.resolve():new Promise(function(l,p){function q(){x.read().then(function(y){var z=y.value,A=[];if(z){for(;z.length+w>=10485760;){var D=z.slice(0,10485760-w);v.push(D);A.push(r(v));v=[];w=0;z=z.slice(D.length,z.length)}z.length>0&&(v.push(z),w+=z.length)}var F= y.done;w&&F&&A.push(r(v));t(A).then(function(){F?l():q()})["catch"](u)})["catch"](u)}function r(y){if(y.length==0)return new Uint8Array(0);var z=0;y.forEach(function(C){z+=C.length});for(var A=new Uint8Array(z),D=0,F=0;F=0&&c.indexOf("loading/")<0};e.prototype.nbb=function(c){var d=(new window.URL(c)).pathname;return d.indexOf("files/")>=0||d.indexOf("pdfjs/")>=0?!0:this.Tza(c)?!1:!0};e.prototype.hh=function(){var c=this.h0; this.QG.forEach(function(d){c+=d.FO});this.Sg(100*c/this.dGa)};m.prototype.fetch=function(){return fetch(this.rD).then(function(c){if(this.kC)return c.body.getReader().cancel(),Promise.reject("cancel requested before server responded.");if(!c.ok)return Promise.resolve(c);var d=c.headers.get("content-length"),f=void 0,l=0;d!==null&&(f=parseInt(d,10));this.Dq=c.body.getReader();var p=!1,q=function(u){this.kC?u.close():p=!0}.bind(this),r=function(u){return this.Dq.read().then(function(v){var w=v.value; w&&(l+=w.byteLength,u.enqueue(w));v.done&&(f=l,t(u));this.nz({FK:f,FO:l})}.bind(this))["catch"](function(v){console.log("Error reading response",v);u.error(v)}.bind(this))}.bind(this),t=function(u){p&&(u.close(),p=!1,this.Dq=null)}.bind(this);return new Response(new ReadableStream({start:function(u){return q(u)},pull:function(u){return r(u)},cancel:function(){t()}}))}.bind(this))};m.prototype.cancel=function(){this.kC=!0;this.Dq&&this.Dq.cancel()};a.fw=function(c){return(new e(c,[])).fw()};return a}); define("tdv/player/view/util/Installer","require tdv/utils tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/util/Device tdv/player/view/util/Download tdv/player/view/util/FileSystem tdv/player/view/util/Flags tdv/player/view/util/URL tdv/view/events/ProgressEvent tdv/util/Storage".split(" "),function(a){function m(t){p=t}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/util/Device"),e=a("tdv/player/view/util/Download"),b= a("tdv/player/view/util/FileSystem"),c=a("tdv/player/view/util/Flags"),d=a("tdv/player/view/util/URL"),f=a("tdv/view/events/ProgressEvent"),l=a("tdv/util/Storage"),p=null;window.addEventListener("beforeinstallprompt",m);var q=h.extend(g,function(t){g.call(this);this.Ie=t;this.I="initial";this.nka=this.Iv=this.Yk=null;this.zz=!1;this.ZG=null;this.k6=void 0;this.MG=p;this.q2=q.rNa();this.sha=d.Bk("vr");this.MG||this.q2||(window.removeEventListener("beforeinstallprompt",m),window.addEventListener("beforeinstallprompt", this.T4a.bind(this)));this.q2||window.addEventListener("appinstalled",this.GXa.bind(this))});q.prototype.Cra=function(t){this.Iv=t;this.Eo=d.lB(this.Iv.get(TDV.PlayerSettings.BASE_DIR_URL)||d.getDirectory(this.Iv.get(TDV.PlayerSettings.SELECTED_SCRIPT_URL)));this.Eo[this.Eo.length-1]!="/"&&(this.Eo+="/");this.Yk=new r(this.Eo);this.k6=this.UDa=t.get(TDV.PlayerSettings.QUERY_STRING_PARAMETERS);this.d3a=d.parse(d.getDirectory(window.location.href)).pathname;this.J0a=d.MD(d.lB("files.json",this.Eo), this.UDa);t=TDV.qb.ZLa();this.nka=d.MD(this.Iv.get(TDV.PlayerSettings.SERVICE_WORKER_URL),"swv="+t.MAJOR+"."+t.MINOR);this.Yk=new r(this.Eo);this.Yk.bind(n.ia,this.v$a,this,!0);this.Yk.load()};q.prototype.rP=function(){return this.Yk.state==r.PQ};q.prototype.$Ia=function(){return this.I=="can_install"&&!this.sha};q.prototype.bJa=function(){return this.rP()&&this.k6!=this.Yk.version&&!this.sha};q.prototype.ZIa=function(){return this.Yk.state!=r.ita&&!this.sha};q.prototype.OMa=function(){this.I=="can_install"&& (this.MG?(this.MG.userChoice.then(function(t){t.outcome!="accepted"&&this.Jd("unavailable")}.bind(this)),this.MG.prompt().then(function(){this.MG=null}.bind(this))):this.Oea())};q.prototype.cancel=function(){this.I=="downloading"&&(this.ZG&&(this.ZG.cancelDownload(),this.ZG=null),this.Yk.fw(),this.Jd("unavailable"))};q.prototype.fw=function(){e.fw(this.Eo);this.Yk.fw()};q.prototype.v$a=function(){this.Iv&&this.Iv.get(TDV.PlayerSettings.g_)?this.Jd("unavailable"):this.Ie.get("downloadEnabled")!==!0? this.Jd("unavailable"):c.yUa!==!0?this.Jd("unavailable"):k.Tb()!=k.Pp||k.Dc()==k.zB||k.Dc()==k.RK?this.Jd("unavailable"):this.nka?"serviceWorker"in navigator?this.rP()&&!this.bJa()?this.Jd("unavailable"):navigator.onLine?this.U6a():this.Jd("unavailable"):this.Jd("unavailable"):this.Jd("unavailable")};q.prototype.Jd=function(t){this.I!=t&&(this.I=t,t=["can_install","unavailable"].indexOf(this.I)>=0,this.zz!=t&&(this.zz=t)&&this.o(n.vd))};q.prototype.U6a=function(){this.Jd("registering_sw");navigator.serviceWorker.register(this.nka, {scope:this.d3a}).then(function(){this.BEa(!0)}.bind(this))["catch"](function(){this.BEa(!1)}.bind(this))};q.prototype.BEa=function(t){t?k.kf()?this.Jd("can_install"):this.q2&&this.Yk.state==r.Vaa?(this.Jd("can_install"),this.Oea()):this.MG?this.Jd("can_install"):(this.Jd("sw_registered"),setTimeout(function(){this.I=="sw_registered"&&this.Jd("can_install")}.bind(this),3E3)):this.Jd("unavailable")};q.prototype.T4a=function(t){this.Iv&&this.Iv.get(TDV.PlayerSettings.g_)||(this.MG=t,this.I=="sw_registered"&& this.Jd("can_install"))};q.prototype.GXa=function(){this.Iv&&this.Iv.get(TDV.PlayerSettings.g_)||(this.I=="sw_registered"&&this.Jd("can_install"),this.Oea())};q.prototype.Oea=function(){this.Jd("downloading");this.o(n.Dr);this.tGa(0);this.k4a()};q.prototype.k4a=function(){var t=d.MD(this.J0a,"nc="+(new Date).getTime());h.yoa(t,u=>{if(this.I=="downloading"){var v=[],w;for(w in u){var x=u[w].tags;if(x){Array.isArray(x)||(x=[x]);for(var y=0;y= 0&&(k.D8()||k.E8())?z.push("mobilevr2gen"):v.indexOf("mobilevr")>=0&&k.kf()?z.push("mobilevr"):v.indexOf("mobile")>=0&&k.ub()?z.push("mobile"):v.indexOf("desktop")>=0&&!k.ub()&&z.push("desktop");v=[];for(w in u)if(!(w.indexOf(".DS_Store")>-1)){if(x=u[w].tags){var A=!1;if(Array.isArray(x)){y=0;for(var D=x.length;y=0}else A=z.indexOf(x)>=0;if(!A)continue}x=d.lB(w,this.Eo);v.push(new e.File(x,u[w].size))}var F=(new window.URL(window.location.pathname,window.location.href)).toString(); v.filter(function(C){return C.url==F}).length==0&&v.push(new e.File(F,1024));this.ZG=new e.Files(this.Eo,v,this.tGa.bind(this),this.Jxa.bind(this));this.ZG.requestStorage().then(function(C){this.Yk.storage=C?r.$Q:r.ica;this.Yk.state=r.Vaa;this.Yk.version=this.k6;this.Yk.save();this.ZG.download()}.bind(this))["catch"](function(){this.Jxa(!1,void 0)}.bind(this))}})};q.prototype.tGa=function(t){this.o(new f(n.xc,t))};q.prototype.Jxa=function(t,u){this.ZG=null;this.Jd("unavailable");t&&(this.Yk.state= r.PQ,this.Yk.save());t?this.o(n.Ub,{wZ:!0}):u?this.o(n.Ub,{wZ:!1,error:q.lta}):k.kf()?this.o(n.Ub,{wZ:!1,error:q.kta}):this.q2?this.o(n.Ub,{wZ:!1,error:q.lta}):this.o(n.Ub,{wZ:!1,error:q.mta})};q.rNa=function(){return d.Tg("installed",!1)};q.sjb=function(t,u){var v=new q.Oba(t);v.bind(n.ia,function(){var w=!1;v.state==q.Oba.PQ&&(w=q.rNa()?!0:!navigator.onLine);w?b.toURL(t,v.storage==q.Oba.$Q).then(function(x){u(x)}):u(t)},this,!0);v.load()};q.mta="launchFromHomeScreen";q.kta="addToBookmark";q.lta= "errorDownloading";var r=h.extend(g,function(t){g.call(this);this.Eo=t;this.hha="installation_state_"+t;this.m6a=d.parse(this.Eo).pathname+"installation_state.json";this.state=this.storage=this.version=void 0;this.LEa()});r.prototype.load=function(){if(this.l4a()&&this.state==r.PQ)this.YFa(this.storage==r.$Q).then(function(){this.o(n.ia)}.bind(this))["catch"](function(){this.YFa(this.storage!=r.$Q).then(function(){this.storage=this.storage==r.ica?r.$Q:r.ica;this.fka();this.o(n.ia)}.bind(this))["catch"](function(){this.state= r.Vaa;this.fka();this.o(n.ia)}.bind(this))}.bind(this));else this.o(n.ia)};r.prototype.save=function(){this.fka();this.state==r.PQ&&this.z7a()};r.prototype.l4a=function(){var t=l.getItem(this.hha);if(!t)return!1;this.f1a(t);return!0};r.prototype.fka=function(){l.setItem(this.hha,this.cGa())};r.prototype.YFa=function(t){return new Promise(function(u,v){b.toURL(this.Eo+"installation_state.json",t).then(w=>h.yoa(w,()=>u(),()=>v()))}.bind(this))};r.prototype.z7a=function(){b.OTa(this.m6a,this.cGa(),"text/json")}; r.prototype.cGa=function(){var t={};t.version=this.version;t.storage=this.storage;t.state=this.state;return JSON.stringify(t)};r.prototype.f1a=function(t){this.e1a(JSON.parse(t))};r.prototype.e1a=function(t){this.version=t.version;this.storage=t.storage;this.state=t.state};r.prototype.fw=function(){l.removeItem(this.hha);this.LEa()};r.prototype.LEa=function(){this.version="";this.storage=r.dWa;this.state=r.ita};r.dWa="unkonwn";r.ica="temporary";r.$Q="persistent";r.ita="not started";r.Vaa="started"; r.PQ="completed";q.Oba=r;return q}); define("tdv/player/view/DownloadBar","require tdv/utils tdv/constants/EventName tdv/player/l10n tdv/player/view/util/Device tdv/player/view/util/Installer tdv/view/buttons/Button tdv/view/buttons/CloseButton tdv/view/constants/Alignment tdv/view/constants/LayoutMode tdv/view/containers/Container tdv/view/core/UIComponent tdv/view/text/Label".split(" "),function(a){function m(r){var t=new b;t.xa({label:r,backgroundColor:"#0071BC",borderRadius:2,fontColor:"#ffffff",fontWeight:"400",fontFamily:"Arial, sans-serif", fontSize:14,paddingLeft:14,paddingRight:14,height:31,verticalAlign:d.$d});return t}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/player/l10n"),k=a("tdv/player/view/util/Device"),e=a("tdv/player/view/util/Installer"),b=a("tdv/view/buttons/Button"),c=a("tdv/view/buttons/CloseButton"),d=a("tdv/view/constants/Alignment"),f=a("tdv/view/constants/LayoutMode"),l=a("tdv/view/containers/Container"),p=a("tdv/view/core/UIComponent"),q=a("tdv/view/text/Label");a=h.extend(l,function(r,t){l.call(this); this.Ie=r;this.fh=t;this.fh.bind(n.vd,this.y3a,this,!0);this.fh.bind(n.Dr,this.v3a,this,!0);this.fh.bind(n.xc,this.x3a,this,!0);this.fh.bind(n.Ub,this.w3a,this,!0);this.sb="hidden";this.oW=void 0;this.ija=!1;this.Sg=void 0;this.ek=this.by=this.vG=this.zG=this.wG=this.o5=this.Za=null;this.BXa();this.xa({backgroundColor:"#000000",gap:18,height:55,width:"100%",paddingLeft:28,paddingRight:28,verticalAlign:d.$d,layout:f.Ni});this.jh()});a.prototype.y3a=function(){this.fh.$Ia()||this.fh.rP()&&this.fh.ZIa()? (this.sb="ready",this.ija&&this.BFa()):this.sb="hidden";this.jh()};a.prototype.v3a=function(){this.sb="installing";this.jh()};a.prototype.x3a=function(r){this.Sg=r.percent;this.jh()};a.prototype.w3a=function(r){this.sb=r.data.wZ?"installed":"failed";this.Yxa=r.data.error;this.jh()};a.prototype.tg=function(){this.c$a()};a.prototype.D3=function(){this.ija||(this.ija=!0,this.sb=="ready"&&this.BFa())};a.prototype.BFa=function(){this.oW=setTimeout(function(){this.oW=null;this.$5a()}.bind(this),5E3);this.jh()}; a.prototype.c$a=function(){this.bEa();this.oW&&clearTimeout(this.oW);this.oW=null};a.prototype.$5a=function(){this.bEa();this.sb=="ready"&&(this.sb="hidden",this.jh())};a.prototype.BXa=function(){this.bind(n.gb,this.tg,this);this.Ie.bind(n.gb,this.D3,this);this.Ie.bind(n.Sa,this.D3,this)};a.prototype.bEa=function(){this.h(n.gb,this.tg,this);this.Ie.h(n.gb,this.D3,this);this.Ie.h(n.Sa,this.D3,this)};a.prototype.Kb=function(){l.prototype.Kb.call(this);this.Za==null&&(this.Za=new q,this.Za.xa({fontColor:"#ffffff", fontWeight:"400",fontFamily:"Arial, sans-serif",fontSize:14,text:g("download-tour")}),this.mb(this.Za));this.wG==null&&(this.wG=m(g("download")),this.mb(this.wG),this.wG.bind(n.ma,this.PYa,this,!0));this.zG==null&&(this.zG=m(g("refresh-downloaded")),this.mb(this.zG),this.zG.bind(n.ma,this.VYa,this,!0));this.vG==null&&(this.vG=m(g("delete-downloaded")),this.mb(this.vG),this.vG.bind(n.ma,this.OYa,this,!0));this.o5==null&&(this.o5=new p,this.o5.xa({width:"100%"}),this.mb(this.o5));this.by==null&&(this.by= new c,this.by.xa({backgroundColor:"#ffffff",borderRadius:2,iconColor:"#000000",iconLineWidth:1,iconWidth:17,iconHeight:17,height:31,width:31}),this.mb(this.by),this.by.bind(n.ma,this.NYa,this,!0));this.ek==null&&(this.ek=m(g("cancel")),this.mb(this.ek),this.ek.bind(n.ma,this.uG,this,!0));k.ub()&&this.En();this.jh()};a.prototype.bs=function(){l.prototype.bs.call(this);k.ub()&&this.getParent().bind(n.Rb,this.En,this,!0)};a.prototype.np=function(){k.ub()&&this.getParent().h(n.Rb,this.En,this,!0);l.prototype.np.call(this)}; a.prototype.En=function(){var r=this.getParent();if(r){var t=Math.min(r.nb(),r.Mb())/100,u=function(v){return Math.round(v*t)};this.xa({gap:u(3.9),height:u(11.9),paddingLeft:u(6),paddingRight:u(6)});this.Za&&this.Za.xa({fontSize:u(3)});[this.wG,this.ek,this.zG,this.vG].forEach(function(v){v&&v.xa({borderRadius:u(.4),fontSize:u(3),paddingLeft:u(3),paddingRight:u(3),height:u(6.7)})});this.by&&this.by.xa({borderRadius:u(.4),iconLineWidth:u(.22),iconWidth:u(3.7),iconHeight:u(3.7),height:u(6.7),width:u(6.7)})}}; a.prototype.jh=function(){switch(this.sb){case "ready":var r=this.fh.rP()?g("downloaded"):g("download-tour");break;case "installing":r=g("downloading");this.Sg!==void 0&&(r+="..."+this.Sg.toFixed(1)+"%");break;case "installed":r=g("downloaded");break;case "failed":r=this.Yxa==e.mta?k.ub()?g("storage-not-provided-launch-from-homescreen"):g("storage-not-provided-launch-from-desktop"):this.Yxa==e.kta?g("storage-not-provided-bookmark"):g("download-failed")}this.Za&&this.Za.set("text",r);this.wG&&this.wG.set("visible", this.sb=="ready"&&!this.fh.rP()&&this.fh.$Ia());this.vG&&this.vG.set("visible",this.sb=="ready"&&this.fh.rP()&&this.fh.ZIa());this.zG&&this.zG.set("visible",this.sb=="ready"&&this.fh.bJa());this.ek&&this.ek.set("visible",this.sb=="installing");this.by&&this.by.set("visible",this.sb!="installing");this.set("visible",this.sb!="hidden")};a.prototype.PYa=function(){this.fh.OMa()};a.prototype.VYa=function(){this.fh.OMa()};a.prototype.OYa=function(){this.fh.fw();this.sb="hidden";this.jh()};a.prototype.uG= function(){this.fh.cancel();this.sb="hidden";this.jh()};a.prototype.NYa=function(){this.sb=="installing"&&this.fh.cancel();this.sb="hidden";this.jh()};return a}); define("tdv/player/view/MessageWindow","require tdv/utils tdv/constants/EventName tdv/player/l10n tdv/player/view/util/Device tdv/view/buttons/Button tdv/view/constants/Alignment tdv/view/constants/LayoutMode tdv/view/containers/Container tdv/view/effects/FadeInEffect tdv/view/effects/FadeOutEffect tdv/view/text/Label tdv/view/text/HTMLText tdv/view/util/KeyboardControl".split(" "),function(a){function m(t,u){this.text=t;this.Hn=u}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/player/l10n"), k=a("tdv/player/view/util/Device"),e=a("tdv/view/buttons/Button"),b=a("tdv/view/constants/Alignment"),c=a("tdv/view/constants/LayoutMode"),d=a("tdv/view/containers/Container"),f=a("tdv/view/effects/FadeInEffect"),l=a("tdv/view/effects/FadeOutEffect"),p=a("tdv/view/text/Label"),q=a("tdv/view/text/HTMLText"),r=a("tdv/view/util/KeyboardControl");a=h.extend(d,function(){d.call(this);this.ws=[];this.ek=this.xG=this.Za=this.lH=this.IN=this.lt=null;this.uR=this.uR.bind(this);this.uG=this.uG.bind(this);var t= new f;t.set("duration",500);t.set("easing","cubic_in");var u=new l;u.set("duration",500);u.set("easing","cubic_out");this.xa({backgroundColor:"#000000",backgroundOpacity:.6,horizontalAlign:b.$e,gap:5,left:0,top:0,right:0,bottom:0,hideEffect:u,showEffect:t,visible:!1})});a.prototype.Kb=function(){d.prototype.Kb.call(this);this.lt==null&&(this.lt=new d,this.lt.xa({centerX:0,centerY:0,backgroundColor:"#ffffff",horizontalAlign:b.$e,verticalAlign:b.$d,layout:c.Uk,shadow:!0,shadowColor:"#000000",shadowHorizontalLength:0, shadowVerticalLength:0,shadowOpacity:.2}),this.mb(this.lt));this.Za==null&&(this.Za=new p,this.Za.xa({fontColor:"#808080",fontWeight:"300",fontFamily:"Tahoma, Geneva, sans-serif"}),this.lt.mb(this.Za));this.lH==null&&(this.lH=new q,this.lH.xa({width:"80%"}),this.lt.mb(this.lH));this.IN==null&&(this.IN=new d,this.IN.xa({backgroundColor:"#b3b3b3"}),this.lt.mb(this.IN));this.fk==null&&(this.fk=new d,this.fk.xa({horizontalAlign:b.$e,verticalAlign:b.$d,layout:c.Ni}),this.lt.mb(this.fk));this.xG==null&& (this.xG=new e,this.xG.xa({backgroundColor:"#606060",fontColor:"#FFFFFF",fontFamily:"Tahoma, Geneva, sans-serif",horizontalAlign:b.$e,verticalAlign:b.$d,label:g("yes").toUpperCase(),pressedBorderColor:"#808080",rollOverBorderColor:"#808080",tabIndex:1}),this.xG.bind(n.ma,this.uR,this,!0),this.fk.mb(this.xG));this.ek==null&&(this.ek=new e,this.ek.xa({backgroundColor:"#606060",fontColor:"#FFFFFF",fontFamily:"Tahoma, Geneva, sans-serif",horizontalAlign:b.$e,verticalAlign:b.$d,label:g("no").toUpperCase(), pressedBorderColor:"#808080",rollOverBorderColor:"#808080",tabIndex:1}),this.ek.bind(n.ma,this.uG,this,!0),this.fk.mb(this.ek))};a.prototype.bs=function(){d.prototype.bs.call(this);this.getParent().bind(n.Rb,this.En,this,!0)};a.prototype.np=function(){this.getParent().h(n.Rb,this.En,this,!0);d.prototype.np.call(this)};a.prototype.En=function(){var t=this.getParent();if(t){var u=t.nb();t=t.Mb();if(k.ub()){var v=Math.min(u,t);u=function(w){return Math.round(w*v/100)}}else u=function(w){return Math.round(w* 4)};this.lt&&this.lt.xa({borderRadius:u(1),width:u(80),height:u(40),gap:u(4),shadowBlurRadius:u(1),shadowSpread:u(1)});this.IN&&this.IN.xa({width:u(60),minHeight:2,height:u(.25)});this.fk&&this.fk.xa({gap:u(5)});this.ek&&this.ek.xa({borderRadius:u(1),width:u(20),height:u(10),fontSize:u(4.25)});this.xG&&this.xG.xa({borderRadius:u(1),width:u(20),height:u(10),fontSize:u(4.5)});this.Za&&this.Za.xa({fontSize:u(5)});this.b6()}};a.prototype.show=function(t,u){this.En();var v=this.Vya(u);v>=0&&this.$Da(v); this.L6a(new m(t,u));this.KYa()};a.prototype.oe=function(t){t=this.Vya(t);t>=0&&this.$Da(t)};a.prototype.KYa=function(){var t=this.getParent();t&&t.rr(this,t.Cb().length-1)};a.prototype.uR=function(){this.Kva(!0)};a.prototype.uG=function(){this.Kva(!1)};a.prototype.Vya=function(t){for(var u=0;u'+t+""};a.prototype.Kva=function(t){var u=this.pza();u&&(u=this.c2a(u.text), this.e7a(u),u.forEach(v=>{v.Hn&&v.Hn.call(this,t)}))};a.prototype.L6a=function(t){this.ws.push(t);this.b6()};a.prototype.c2a=function(t){return this.ws.filter(u=>u.text==t)};a.prototype.e7a=function(t){this.ws=this.ws.filter(u=>!t.includes(u));this.b6()};a.prototype.$Da=function(t){this.ws.splice(t,1);t==this.ws.length&&this.b6()};a.prototype.pza=function(){return this.ws.length>0?this.ws[this.ws.length-1]:null};return a}); define("tdv/view/core/ContextMenu","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Device tdv/view/util/Fullscreen".split(" "),function(a){function m(E){return E.map(function(G){return String.fromCharCode(G)}).join("")}function h(E){for(;E&&E!=document;){if(E.getAttribute(r)=="Button")return!0;E=E.parentNode}return!1}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/events/Event"),e=a("tdv/events/EventDispatcher"),b=a("tdv/player/view/util/Device"), c=a("tdv/view/util/Fullscreen"),d=[];a=m([99,111,110,116,101,120,116,109,101,110,117]);var f=m([109,111,117,115,101,100,111,119,110]),l=m([109,111,117,115,101,117,112]),p=m([109,111,117,115,101,108,101,97,118,101]),q=m([109,111,117,115,101,101,110,116,101,114]),r=m([116,100,118,99,108,97,115,115]);document.addEventListener(a,function(E){if(!b.ub()||!h(E.target)){var G=b.Nd()==b.r_?200:0;setTimeout(function(){(t===void 0||u===void 0||v===void 0||w===void 0||Math.abs(v-t)+Math.abs(w-u)<10)&&d.forEach(function(N){N(E)}); t=u=v=w=void 0},G)}E.preventDefault();E.stopImmediatePropagation()},!0);var t,u,v,w;document.addEventListener("mousedown",function(E){v=t=E.screenX;w=u=E.screenY},!0);document.addEventListener("mousemove",function(E){v=E.screenX;w=E.screenY},!0);var x=1;n=n.extend(e,function(E,G){e.call(this);this.Gb=E;this.V1a=G;this.g3=this.g3.bind(this);this.te=this.te.bind(this);this.gha=!1;this.dha=this.dha.bind(this);this.eha=this.eha.bind(this);this.cha=this.cha.bind(this);this.fha=this.fha.bind(this);this.qa= document.createElement("div");this.qa.style.setProperty("z-index",x,H[B]);for(var N in H[y])this.qa.style.setProperty(N,H[y][N],H[B]);d.push(this.g3)});n.prototype.clear=function(){this.d4a()&&this.rga();this.qa=null;d.splice(d.indexOf(this.g3),1)};n.prototype.g3=function(E){var G=this.V1a();if(G.length!=0){this.qa.replaceChildren();this.gha=!1;var N=0;G.forEach(function(O){var R=document.createElement("div");if(O){R.textContent=O;for(var Q in H[A])R.style.setProperty(Q,H[A][Q],H[B]);var K=N;N++; R.addEventListener(q,function(L){this.dha(L,K)}.bind(this));R.addEventListener(p,function(L){this.eha(L,K)}.bind(this));R.addEventListener(f,function(L){this.cha(L,K)}.bind(this));R.addEventListener(l,function(L){this.fha(L,K)}.bind(this))}else for(Q in H[D])R.style.setProperty(Q,H[D][Q],H[B]);for(Q in H[z])R.style.setProperty(Q,H[z][Q],H[B]);this.qa.appendChild(R)}.bind(this));(c.fullscreenElement()||document.body).appendChild(this.qa);this.qa.style.setProperty("display","block",H[B]);G=E.pageX; E=E.pageY;G+this.qa.clientWidth>document.body.clientWidth-5&&(G=document.body.clientWidth-this.qa.clientWidth-5);E+this.qa.clientHeight>document.body.clientHeight-5&&(E=document.body.clientHeight-this.qa.clientHeight-5);this.qa.style.setProperty("left",G+"px",H[B]);this.qa.style.setProperty("top",E+"px",H[B]);this.Gb.bind(g.Sa,this.te,this);document.addEventListener("mousedown",this.te);this.Gbb=setInterval(this.Fbb.bind(this),200)}};n.prototype.d4a=function(){return!!this.qa&&!!this.qa.parentNode}; n.prototype.rga=function(){clearInterval(this.Gbb);this.qa.parentNode.removeChild(this.qa);document.removeEventListener("mousedown",this.te);this.Gb.h(g.Sa,this.te,this);this.qa.style.setProperty("display","none",H[B])};n.prototype.Fbb=function(){this.qa.contains(document.elementFromPoint(this.qa.offsetLeft+this.qa.clientWidth*.5,this.qa.offsetTop+this.qa.clientHeight*.5))||this.qa.style.setProperty("z-index",x*=10,H[B])};n.prototype.te=function(){this.rga()};n.prototype.cha=function(E){this.gha= !0;E.preventDefault();E.stopImmediatePropagation()};n.prototype.fha=function(E,G){this.gha&&(this.rga(),E.preventDefault(),E.stopImmediatePropagation(),this.o(new k(g.Xr,{index:G})))};n.prototype.dha=function(E){for(var G in H[F])E.currentTarget.style.setProperty(G,H[F][G],H[B])};n.prototype.eha=function(E){for(var G in H[C])E.currentTarget.style.setProperty(G,H[C][G],H[B])};var y="0",z="1",A="2",D="3",F="4",C="5",B="6",H=function(E){return JSON.parse(E.map(function(G){return String.fromCharCode(G)}).join(""))}([123, 34,48,34,58,123,34,98,111,114,100,101,114,34,58,34,49,112,120,32,115,111,108,105,100,32,35,98,98,98,34,44,34,98,111,114,100,101,114,45,114,97,100,105,117,115,34,58,34,51,112,120,34,44,34,112,111,115,105,116,105,111,110,34,58,34,97,98,115,111,108,117,116,101,34,44,34,100,105,115,112,108,97,121,34,58,34,110,111,110,101,34,44,34,98,97,99,107,103,114,111,117,110,100,45,99,111,108,111,114,34,58,34,35,101,53,101,53,101,53,34,44,34,111,112,97,99,105,116,121,34,58,49,44,34,112,97,100,100,105,110,103,34,58, 48,44,34,109,97,114,103,105,110,34,58,48,44,34,112,111,105,110,116,101,114,45,101,118,101,110,116,115,34,58,34,97,108,108,34,44,34,116,101,120,116,45,97,108,105,103,110,34,58,34,108,101,102,116,34,44,34,98,111,120,45,115,104,97,100,111,119,34,58,34,49,112,120,32,49,112,120,32,51,112,120,32,114,103,98,97,40,48,44,32,48,44,32,48,44,32,48,46,50,41,34,125,44,34,49,34,58,123,34,102,111,110,116,45,102,97,109,105,108,121,34,58,34,65,114,105,97,108,34,44,34,102,111,110,116,45,115,105,122,101,34,58,34,49, 51,112,120,34,44,34,99,111,108,111,114,34,58,34,35,48,48,48,48,48,48,34,44,34,111,112,97,99,105,116,121,34,58,49,44,34,100,105,115,112,108,97,121,34,58,34,98,108,111,99,107,34,44,34,112,111,105,110,116,101,114,45,101,118,101,110,116,115,34,58,34,97,108,108,34,125,44,34,50,34,58,123,34,99,117,114,115,111,114,34,58,34,112,111,105,110,116,101,114,34,44,34,98,111,114,100,101,114,45,114,97,100,105,117,115,34,58,34,51,112,120,34,44,34,112,97,100,100,105,110,103,34,58,34,55,112,120,32,50,48,112,120,34,44, 34,119,104,105,116,101,45,115,112,97,99,101,34,58,34,110,111,119,114,97,112,34,125,44,34,51,34,58,123,34,109,97,114,103,105,110,34,58,34,55,112,120,32,53,112,120,34,44,34,98,111,114,100,101,114,45,116,111,112,34,58,34,49,112,120,32,115,111,108,105,100,32,35,97,97,97,34,44,34,98,111,114,100,101,114,45,98,111,116,116,111,109,34,58,34,49,112,120,32,115,111,108,105,100,32,35,102,102,102,34,125,44,34,52,34,58,123,34,99,111,108,111,114,34,58,34,35,102,102,102,102,102,102,34,44,34,98,97,99,107,103,114,111, 117,110,100,45,99,111,108,111,114,34,58,34,114,103,98,97,40,48,44,32,48,44,32,48,44,32,48,46,55,41,34,125,44,34,53,34,58,123,34,99,111,108,111,114,34,58,34,35,48,48,48,48,48,48,34,44,34,98,97,99,107,103,114,111,117,110,100,45,99,111,108,111,114,34,58,34,34,125,44,34,54,34,58,34,105,109,112,111,114,116,97,110,116,34,125]);return n}); define("tdv/view/core/Cursors",["require","exports","tdv/player/view/util/URL","tdv/view/constants/Cursor","tdv/view/util/Assets"],function(a,m,h,n,g){return function(){function k(e){this.Gb=e;this.Mv={};this.Mv[n.Qta]="move";this.Mv[n.wVa]="ew-resize";this.Mv[n.yVa]="ns-resize";this.Mv[n.xVa]="nesw-resize";this.Mv[n.zVa]="nwse-resize";this.Mv[n.qf]="pointer";this.Mv[n.LB]="inherit";this.Mv[n.De]="default";this.ki={};this.ki[n.IB]="grab.cur";this.ki[n.Mi]="grabbing.cur";this.ki[n.$ta]="N.cur";this.ki[n.aua]= "NE.cur";this.ki[n.Rta]="E.cur";this.ki[n.dua]="SE.cur";this.ki[n.cua]="S.cur";this.ki[n.eua]="SW.cur";this.ki[n.fua]="W.cur";this.ki[n.bua]="NW.cur";this.ki[n.Tta]="FN.cur";this.ki[n.Uta]="FNE.cur";this.ki[n.Sta]="FE.cur";this.ki[n.Xta]="FSE.cur";this.ki[n.Wta]="FS.cur";this.ki[n.Yta]="FSW.cur";this.ki[n.Zta]="FW.cur";this.ki[n.Vta]="FNW.cur";this.fda={};this.fda[n.cG]=g.cG;this.twa={}}k.prototype.ZKa=function(e){return this.Y3a(e)?this.mza(e):this.N3a(e)?this.B1a(e):this.G3a(e)?this.m1a(e):this.mza(n.De)}; k.prototype.aZa=function(e){if(!(e in this.twa)){var b=new Image;b.src=this.Cya(e);this.twa[e]=b}};k.prototype.Y3a=function(e){return e in this.Mv};k.prototype.mza=function(e){return this.Mv[e]};k.prototype.N3a=function(e){return!!this.ki[e]};k.prototype.B1a=function(e){this.aZa(e);return"url("+this.Cya(e)+"), default"};k.prototype.Cya=function(e){return h.lB(this.Gb.get("settings").get(TDV.PlayerSettings.CURSORS_DIR_URL))+"/"+this.ki[e]};k.prototype.G3a=function(e){return e in this.fda};k.prototype.m1a= function(e){return"url("+this.fda[e]+"), auto"};return k}()});define("tdv/view/helpers/DOMUpdateQueue",["require","exports"],function(){var a=1,m={};return{aeb:function(h,n){var g=h.__duqid;g===void 0&&(g=a.toString(),h.__duqid=g,a++);h=m[g]||(m[g]={e:h,s:{}});for(var k in n)h.s[k]=n[k]},process:function(){for(var h in m){var n=m[h],g=n.e.style;n=n.s;for(var k in n)g[k]=n[k]}m={}}}}); define("tdv/view/lifecycle/PriorityQueue",["require","exports"],function(){return function(){function a(){this.wz={};this.Ps=[];this.IR=0}a.prototype.push=function(m,h){this.wz[h]==void 0?(this.wz[h]=[m],this.Ps.push(h),this.Ps.sort(function(n,g){return n-g}),this.IR++):(h=this.wz[h],h.includes(m)||(h.push(m),this.IR++))};a.prototype.bLa=function(){return this.IR};a.prototype.isEmpty=function(){return this.Ps.length==0};a.prototype.QPa=function(){if(!this.isEmpty()){var m=this.Ps[0],h=this.wz[m].pop(); this.wz[m].length==0&&(delete this.wz[m],this.Ps=this.Ps.slice(1));this.IR--;return h}};a.prototype.uqa=function(){if(!this.isEmpty()){var m=this.Ps[this.Ps.length-1],h=this.wz[m].pop();this.wz[m].length==0&&(delete this.wz[m],this.Ps=this.Ps.slice(0,this.Ps.length-1));this.IR--;return h}};return a}()}); define("tdv/view/lifecycle/LifeCycleManager","require exports tdv/view/helpers/DOMUpdateQueue tdv/view/lifecycle/PriorityQueue tdv/view/util/Animation tdv/events/async".split(" "),function(a,m,h,n,g,k){return function(){function e(){this.EE=!1;this.zPa=void 0;this.enabled=!0;this.W6=new n;this.W9=new n;this.P$=new n;this.N8=new n;this.Rsa=new n;g.requestFrame(this.Kg,this)}e.prototype.clear=function(){this.enabled=!1};e.prototype.LX=function(b){this.W6.push(b,this.lP(b));this.NY()};e.prototype.Tf= function(b){this.W9.push(b,this.lP(b));this.NY()};e.prototype.lc=function(b){this.P$.push(b,this.lP(b));this.NY()};e.prototype.Bf=function(b){this.N8.push(b,this.lP(b));this.NY()};e.prototype.tb=function(b){this.Rsa.push(b,this.lP(b));this.NY()};e.prototype.update=function(){this.vnb();this.aob();this.pu()};e.prototype.vnb=function(){do{for(;!this.W6.isEmpty();){var b=this.W6.uqa();b&&b.Kb()}this.W9.isEmpty()||(b=this.W9.uqa())&&b.jb()}while(!this.W9.isEmpty()||!this.W6.isEmpty())};e.prototype.aob= function(){for(;!this.P$.isEmpty()||!this.N8.isEmpty();)this.JZ(),this.Lk()};e.prototype.JZ=function(){for(;!this.P$.isEmpty();){var b=this.P$.uqa();if(b&&b.Lnb()){var c=b.getParent();c?(c.lc(),c.Bf()):b.XQa(0,0,b.sw(),b.rw())}}};e.prototype.Lk=function(){for(;!this.N8.isEmpty();){var b=this.N8.QPa();b&&b.Lk()}};e.prototype.pu=function(){for(;!this.Rsa.isEmpty();){var b=this.Rsa.QPa();b&&b.pu()}h.process()};e.prototype.NY=function(){this.EE||(this.EE=!0,this.zPa=(new Date).getTime()+500,k.ME(this.$Oa.bind(this)))}; e.prototype.$Oa=function(){this.EE=!1;this.enabled&&this.update()};e.prototype.lP=function(b){return(b=b.getParent())?this.lP(b)+1:0};e.prototype.Kg=function(){this.EE&&(new Date).getTime()>=(this.zPa||0)&&this.$Oa();g.requestFrame(this.Kg,this)};return e}()}); define("tdv/view/core/visuals/dom/DOMCanvasVisuals",["require","exports","tdv/view/core/visuals/dom/DOMUIBaseVisuals","tdv/view/core/visualprops/CanvasVisualProperties"],function(a,m,h,n){return function(g){function k(){return g.call(this)||this}P(k,g);k.prototype.tp=function(){return new n};k.prototype.rh=function(e){g.prototype.rh.call(this,e);this.Lp(e)};k.prototype.Lp=function(e){if(e.canvas!==this.K.canvas&&(this.K.canvas&&this.a$(this.K.canvas),e.canvas)){var b=e.canvas;b.style.position="absolute"; b.style.left="0";b.style.top="0";b.style.cursor="inherit";this.uk(e.canvas)}};return k}(h)}); define("tdv/view/core/visuals/dom/DOMContainerVisuals",["require","exports","tdv/view/core/ZIndex","tdv/view/core/visuals/dom/DOMUIBaseVisuals","tdv/view/core/visualprops/ContainerVisualProperties"],function(a,m,h,n,g){return function(k){function e(){var b=k.call(this)||this;b.Ln=null;b.Ht=null;b.jo=null;b.qu=null;return b}P(e,k);e.prototype.tp=function(){return new g};e.prototype.kA=function(){k.prototype.kA.call(this);this.ufb().appendChild(this.L7());this.egb().appendChild(this.a8())};e.prototype.ufb= function(){this.Ln||(this.Ln=document.createElement("div"),this.Ln.setAttribute("tdvlayer","scrollbar"),this.Ln.style.position="absolute",this.Ln.style.zIndex=h.zua);return this.Ln};e.prototype.egb=function(){this.jo||(this.jo=document.createElement("div"),this.jo.setAttribute("tdvlayer","scrollbar"),this.jo.style.position="absolute",this.jo.style.zIndex=h.zua);return this.jo};e.prototype.L7=function(){this.Ht||(this.Ht=document.createElement("div"),this.Ht.style.position="absolute",this.Ht.style.left= "0",this.Ht.style.top="0");return this.Ht};e.prototype.a8=function(){this.qu||(this.qu=document.createElement("div"),this.qu.style.position="absolute",this.qu.style.left="0",this.qu.style.top="0");return this.qu};e.prototype.rh=function(b){k.prototype.rh.call(this,b);this.Ynb(b)};e.prototype.Ynb=function(b){b.Ck!==this.K.Ck&&(b.Ck?this.Fh.appendChild(this.Ln):this.Fh.removeChild(this.Ln));b.Mk!==this.K.Mk&&(b.Mk?this.Fh.appendChild(this.jo):this.Fh.removeChild(this.jo));if(b.contentWidth!==this.K.contentWidth|| b.contentHeight!==this.K.contentHeight||b.Ck!==this.K.Ck||b.Lc!==this.K.Lc||b.Cf!==this.K.Cf||b.au!==this.K.au||b.$t!==this.K.$t||b.ph!==this.K.ph||b.Wn!==this.K.Wn||b.Xn!==this.K.Xn||b.Mk!==this.K.Mk||b.Mc!==this.K.Mc){var c=b.Ck&&b.Mk,d=Math.round(b.Cf*100/b.contentWidth),f=Math.round(b.Lc*100/b.contentWidth),l=Math.round(b.Wg*100/b.contentHeight),p=Math.round(b.Mc*100/b.contentHeight);this.Ln.style.opacity=b.au.toString();this.Ln.style.left=b.Wn+"px";this.Ln.style.right=(c?b.ph:0)+b.Wn+"px";this.Ln.style.height= b.ph+"px";this.Ln.style.bottom=b.Xn+"px";this.Ht.style.backgroundColor=b.$t;this.Ht.style.borderRadius=Math.floor(b.ph/2)+"px";this.Ht.style.left=f+"%";this.Ht.style.width=d+"%";this.Ht.style.height=b.ph+"px";this.jo.style.opacity=b.au.toString();this.jo.style.top=b.Xn+"px";this.jo.style.right=b.Wn+"px";this.jo.style.width=b.ph+"px";this.jo.style.bottom=(c?b.ph:0)+b.Xn+"px";this.qu.style.backgroundColor=b.$t;this.qu.style.borderRadius=Math.floor(b.ph/2)+"px";this.qu.style.top=p+"%";this.qu.style.width= b.ph+"px";this.qu.style.height=l+"%"}};return e}(n)}); define("tdv/view/core/visuals/dom/DOMImageVisuals","require exports tdv/view/core/visuals/dom/DOMUIBaseVisuals tdv/view/core/visualprops/ImageVisualProperties tdv/player/view/util/Device tdv/view/constants/Alignment".split(" "),function(a,m,h,n,g,k){return function(e){function b(){var c=e.call(this)||this;c.BA=null;return c}P(b,e);b.prototype.tp=function(){return new n};b.prototype.kA=function(){e.prototype.kA.call(this);this.uk(this.oLa())};b.prototype.oLa=function(){this.BA||(this.BA=document.createElement("div"), this.BA.style.position="static",this.BA.style.overflow="hidden",this.BA.style.cursor="inherit");return this.BA};b.prototype.rh=function(c){e.prototype.rh.call(this,c);this.ysa(c)};b.prototype.ysa=function(c){if(c.image!==this.K.image&&(this.K.image&&this.K.image.parentElement===this.BA&&this.BA.removeChild(this.K.image),c.image)){var d=c.image;this.BA.appendChild(d);d.style.position="static";d.style.cursor="inherit";d.style.display="inline";d.style.verticalAlign="top";d.style.visibility="hidden"; d.style.pointerEvents="none";d.style.userSelect="none";d.style.visibility="inherit";d.style.webkitUserSelect="none";d.style.touchCallout="none";d.style.webkitTouchCallout="none";g.Tb()==g.Pp&&g.ub()&&(d.style.transform="translate3d(0,0,0)")}if(c.image!==this.K.image||c.contentWidth!==this.K.contentWidth||c.contentHeight!==this.K.contentHeight||c.width!==this.K.width||c.height!==this.K.height||c.Dd!==this.K.Dd||c.Ce!==this.K.Ce||c.ie!==this.K.ie||c.Ef!==this.K.Ef||c.borderTopLeftRadius!==this.K.borderTopLeftRadius|| c.borderTopRightRadius!==this.K.borderTopRightRadius||c.borderBottomRightRadius!==this.K.borderBottomRightRadius||c.borderBottomLeftRadius!==this.K.borderBottomLeftRadius||c.Ue!==this.K.Ue||c.yf!==this.K.yf||c.xf!==this.K.xf||c.Te!==this.K.Te||c.Yh!==this.K.Yh||c.verticalAlign!==this.K.verticalAlign){d=[Math.max(0,c.borderTopLeftRadius-Math.max(c.Ue,c.Te)),Math.max(0,c.borderTopRightRadius-Math.max(c.Ue,c.yf)),Math.max(0,c.borderBottomRightRadius-Math.max(c.xf,c.yf)),Math.max(0,c.borderBottomLeftRadius- Math.max(c.xf,c.Te))];var f=c.width-c.Dd-c.Ce,l=c.height-c.ie-c.Ef,p=this.oLa();p.style.width=f+"px";p.style.height=l+"px";p.style.borderTopLeftRadius=d[0]+"px";p.style.borderTopRightRadius=d[1]+"px";p.style.borderBottomRightRadius=d[2]+"px";p.style.borderBottomLeftRadius=d[3]+"px";if(c.image){c.image.style.width=c.contentWidth+"px";c.image.style.height=c.contentHeight+"px";switch(c.Yh){case k.fb:c.image.style.marginLeft="0px";c.image.style.marginRight=f-c.contentWidth+"px";break;case k.Db:c.image.style.marginLeft= f-c.contentWidth+"px";c.image.style.marginRight="0px";break;case k.$e:c.image.style.marginLeft=Math.floor((f-c.contentWidth)*.5)+"px",c.image.style.marginRight=Math.ceil((f-c.contentWidth)*.5)+"px"}switch(c.verticalAlign){case k.Tc:c.image.style.marginTop="0px";c.image.style.marginBottom=l-c.contentHeight+"px";break;case k.Hc:c.image.style.marginTop=l-c.contentHeight+"px";c.image.style.marginBottom="0px";break;case k.$d:c.image.style.marginTop=Math.floor((l-c.contentHeight)*.5)+"px",c.image.style.marginBottom= Math.ceil((l-c.contentHeight)*.5)+"px"}}}};return b}(h)}); define("tdv/view/core/visuals/dom/DOMLabelVisuals","require exports tdv/player/view/util/Color tdv/view/core/visuals/dom/DOMUIBaseVisuals tdv/view/core/visualprops/LabelVisualProperties tdv/view/constants/Alignment tdv/view/constants/Direction tdv/view/util/Font".split(" "),function(a,m,h,n,g,k,e,b){return function(c){function d(){var f=c.call(this)||this;f.pNa=0;f.oNa=0;f.span=null;return f}P(d,c);d.prototype.zJ=function(){var f=this.span.clientWidth,l=this.span.clientHeight;this.span.style.fontStyle=== "italic"&&(f+=l*1/5);return Math.round(f)};d.prototype.yJ=function(){return this.span.clientHeight};d.prototype.tp=function(){return new g};d.prototype.kA=function(){c.prototype.kA.call(this);this.uk(this.bgb())};d.prototype.bgb=function(){this.span||(this.span=document.createElement("span"),this.span.style.right="auto",this.span.style.bottom="auto",this.span.style.position="absolute",this.span.style.textAlign="center",this.span.style.cursor="inherit",this.span.style.whiteSpace="nowrap",this.span.style.transform= "translate3d(0, 0, 0)");return this.span};d.prototype.rh=function(f){c.prototype.rh.call(this,f);this.Ksa(f)};d.prototype.Ksa=function(f){var l=!1;if(f.direction!==this.K.direction||f.text!==this.K.text){switch(f.direction){case e.Uk:this.span.style.lineHeight="100%";this.span.innerHTML=f.text.split("").join("
");break;default:this.span.style.lineHeight="normal",this.span.textContent=f.text,this.span.innerHTML=this.span.innerHTML.split(" ").join(" ")}l=!0}f.fontFamily!==this.K.fontFamily&& (this.span.style.fontFamily=b.qA(f.fontFamily||""),l=!0);f.fontSize!==this.K.fontSize&&(this.span.style.fontSize=f.fontSize!==void 0?f.fontSize+"px":"",l=!0);f.zt!==this.K.zt&&(this.span.style.color=f.zt||"",l=!0);f.fontWeight!==this.K.fontWeight&&(this.span.style.fontWeight=f.fontWeight,l=!0);f.fontStyle!==this.K.fontStyle&&(this.span.style.fontStyle=f.fontStyle,l=!0);f.textDecoration!==this.K.textDecoration&&(this.span.style.textDecoration=f.textDecoration,l=!0);var p=this.zJ(),q=this.yJ();if(l|| this.pNa!==p||this.oNa!==q||f.width!==this.K.width||f.height!==this.K.height||f.Dd!==this.K.Dd||f.Ce!==this.K.Ce||f.ie!==this.K.ie||f.Ef!==this.K.Ef||f.Yh!==this.K.Yh||f.verticalAlign!==this.K.verticalAlign){l=f.width-f.Dd-f.Ce;var r=f.height-f.ie-f.Ef;this.pNa=p;this.oNa=q;switch(f.Yh){case k.fb:this.span.style.left="0";break;case k.Db:this.span.style.left=l-p+"px";break;case k.$e:this.span.style.left=Math.max(0,Math.round((l-p)*.5))+"px"}switch(f.verticalAlign){case k.Tc:this.span.style.top="0"; break;case k.Hc:this.span.style.top=r-q+"px";break;case k.$d:this.span.style.top=Math.max(0,Math.round((r-q)*.5))+"px"}}if(f.lu!==this.K.lu||f.mu!==this.K.mu||f.fo!==this.K.fo||f.bx!==this.K.bx||f.eF!==this.K.eF)this.span.style.textShadow=[f.lu+"px",f.mu+"px",f.fo+"px",h.gF(f.eF,f.bx)].join(" ")};return d}(n)}); define("tdv/view/core/visuals/dom/DOMHTMLVisuals",["require","exports","tdv/view/core/visuals/dom/DOMUIBaseVisuals","tdv/view/core/visualprops/HTMLVisualProperties"],function(a,m,h,n){return function(g){function k(){return g.call(this)||this}P(k,g);k.prototype.tp=function(){return new n};k.prototype.rh=function(e){g.prototype.rh.call(this,e);this.xsa(e)};k.prototype.xsa=function(e){if(e.td!==this.K.td&&(this.K.td&&this.a$(this.K.td),e.td)){var b=e.td;b.style.position="absolute";b.style.left="0";b.style.top= "0";this.uk(e.td)}};k.prototype.toa=function(){return this.K&&this.K.td?this.K.td.clientWidth:0};k.prototype.soa=function(){return this.K&&this.K.td?this.K.td.clientHeight:0};return k}(h)});define("tdv/view/core/visuals/VisualsType",["require","exports"],function(){return{DOM:"DOM",sUa:"Canvas"}}); define("tdv/view/core/visuals/dom/DOMVisualsFactory","require exports tdv/view/core/visuals/dom/DOMUIBaseVisuals tdv/view/core/visuals/dom/DOMCanvasVisuals tdv/view/core/visuals/dom/DOMContainerVisuals tdv/view/core/visuals/dom/DOMImageVisuals tdv/view/core/visuals/dom/DOMLabelVisuals tdv/view/core/visuals/dom/DOMHTMLVisuals tdv/view/canvas/Canvas tdv/view/core/UIComponent tdv/view/containers/Container tdv/view/images/Image tdv/view/html/HTML tdv/view/text/Label tdv/view/core/visuals/VisualsType".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q,r){return function(){function t(){}t.prototype.create=function(u){if(u instanceof p)return new b;if(u instanceof c)return new n;if(u instanceof l)return new k;if(u instanceof q)return new e;if(u instanceof f)return new g;if(u instanceof d)return new h;throw Error("Invalid UI instance");};t.prototype.getType=function(){return r.DOM};t.vJ=function(){t.Qo||(t.Qo=new t);return t.Qo};return t}()}); define("tdv/view/events/GestureEvent",["require","exports","tdv/events/Event"],function(a,m,h){return function(n){function g(k,e,b,c,d,f,l,p){k=n.call(this,k)||this;k.scale=typeof e==="number"?e:1;k.rotation=typeof b==="number"?b:0;k.x=c||0;k.y=d||0;k.pageX=f||0;k.pageY=l||0;k.touches=p||[];return k}P(g,n);return g}(h)}); define("tdv/view/core/eventmanager/mousetouch/MouseTouchEventManager","require exports tdv/utils tdv/constants/EventName tdv/player/view/util/Device tdv/player/view/util/URL tdv/view/events/GestureEvent tdv/view/events/MouseEvent tdv/view/util/UserInitiatedAction".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(){function p(q){this.Z0=[];this.JAa=0;this.f0a=500;this.ne=1;this.jl=0;this.component=q;this.$y=!1;this.qT=this.qT.bind(this);this.sT=this.sT.bind(this);this.uT=this.uT.bind(this);this.Uha= this.Uha.bind(this);this.QV=this.QV.bind(this);this.PV=this.PV.bind(this);this.DD=this.DD.bind(this)}p.prototype.Ohb=function(){return g.Jp()};p.prototype.oRa=function(q){this.LS!==q&&((this.LS=q)?this.UG():this.NG(),this.Uva())};p.prototype.rLa=function(){return this.LS||!1};p.prototype.wa=function(){return this.component.wa()};p.prototype.oGa=function(q,r){this.component.o(new b(n.Sa,q.x,q.y,q.pageX,q.pageY,void 0,void 0,r))};p.prototype.pGa=function(q,r){this.component.o(new b(n.gb,q.x,q.y,q.pageX, q.pageY,void 0,void 0,r))};p.prototype.qGa=function(q,r){this.component.o(new b(n.$a,q.x,q.y,q.pageX,q.pageY,void 0,void 0,r))};p.prototype.Q$a=function(q,r,t){this.component.o(new b(n.Qk,q.x,q.y,q.pageX,q.pageY,r.delta,r.lA,t))};p.prototype.lGa=function(q){this.component.o(new b(n.ma,q.x,q.y,q.pageX,q.pageY))};p.prototype.mGa=function(q){this.component.o(new b(n.fi,q.x,q.y,q.pageX,q.pageY))};p.prototype.P$a=function(q,r,t){this.component.o(new e(n.HB,q,r,t.x,t.y,t.pageX,t.pageY,t.touches))};p.prototype.L$a= function(q,r,t){this.component.o(new e(n.Mba,q,r,t.x,t.y,t.pageX,t.pageY,t.touches))};p.prototype.M$a=function(q,r,t){this.component.o(new e(n.YK,q,r,t.x,t.y,t.pageX,t.pageY,t.touches))};p.prototype.N$a=function(q){this.component.o(new e(n.aVa,void 0,q))};p.prototype.O$a=function(q){this.component.o(new e(n.ZK,q))};p.prototype.um=function(){var q=this.component.getParent();if(q)return q.pLa()};p.prototype.QV=function(q){q.stopImmediatePropagation();this.$ea(["touchend"]);this.Vza(q)?this.KDa(q):this.RDa(q, !0)};p.prototype.RDa=function(q,r){var t,u=this.iH(q);r&&this.D$a(u);this.oGa(u,q);(t=this.um())===null||t===void 0||t.RDa(q,r&&this.component.get("propagateClick"))};p.prototype.PV=function(q){q.preventDefault();q.stopImmediatePropagation();this.Vza(q)?this.IDa(q):this.QDa(q)};p.prototype.QDa=function(q){var r,t=this.iH(q);this.C$a(t);this.pGa(t,q);(r=this.um())===null||r===void 0||r.QDa(q)};p.prototype.Jfa=function(q,r){var t=q.pageX-r.pageX;q=q.pageY-r.pageY;return Math.sqrt(t*t+q*q)};p.prototype.DD= function(q,r){this.Dea(["touchend"]);r!==!1&&q.preventDefault();q.stopImmediatePropagation();this.tN?this.JDa(q):(r=this.iH(q),this.PDa(q,this.Uza(r)),this.Jza(r));this.tN=void 0;this.Uva()};p.prototype.PDa=function(q,r){var t,u=this.iH(q);this.qGa(u,q);this.B$a(r);(t=this.um())===null||t===void 0||t.PDa(q,r)};p.prototype.D$a=function(q){this.component.bind(n.Eb,this.eGa,this,!0);this.EI=q};p.prototype.C$a=function(q){if(this.EI){q=this.Jfa(this.EI,q);if(g.ub()){var r=this.component.Xb();r=Math.min(r.nb(), r.Mb())*.01*p.SWa}else r=p.$Wa;q>r&&this.K5()}};p.prototype.B$a=function(q){this.EI&&(this.lGa(this.EI),q&&this.mGa(this.EI),this.K5())};p.prototype.K5=function(){this.EI&&(this.component.h(n.Eb,this.eGa,this),this.EI=void 0)};p.prototype.eGa=function(){this.K5()};p.prototype.KDa=function(q){var r,t=this.Qfa(q);this.tN=t;this.P$a(t.scale,t.rotation,t.coordinates);(r=this.um())===null||r===void 0||r.KDa(q)};p.prototype.IDa=function(q){var r,t=this.Qfa(q,this.tN),u=t.rotation-this.tN.rotation,v=t.scale/ this.tN.scale;this.tN=t;this.ne*=v;for(this.jl+=u;this.jl>180;)this.jl-=360;for(;this.jl<-180;)this.jl+=360;this.L$a(this.ne,this.jl,t.coordinates);u!=0&&this.N$a(this.jl);v!=1&&this.O$a(this.ne);this.K5();(r=this.um())===null||r===void 0||r.IDa(q)};p.prototype.JDa=function(q){var r,t=this.Qfa(q);this.M$a(this.ne,this.jl,t.coordinates);(r=this.um())===null||r===void 0||r.JDa(q)};p.prototype.qT=function(q){this.$y=!!(q.buttons&1);this.$ea(["mouseup"]);q.stopImmediatePropagation();this.LDa(q,!0);f&& this.component.log(q.ctrlKey)};p.prototype.LDa=function(q,r){var t,u=this.gH(q);r&&this.FZa(u);this.oGa(u,q);(t=this.um())===null||t===void 0||t.LDa(q,r&&this.component.get("propagateClick"))};p.prototype.sT=function(q){q.preventDefault();q.stopImmediatePropagation();this.component.Xb().PE(this.component);this.MDa(q);!this.$y||q.buttons&1||this.uT(q)};p.prototype.MDa=function(q){var r,t=this.gH(q);this.EZa(t);this.pGa(t,q);(r=this.um())===null||r===void 0||r.MDa(q)};p.prototype.uT=function(q){this.$y= !1;this.Dea(["mouseup"]);q.preventDefault();q.stopImmediatePropagation();var r=this.gH(q);this.NDa(q,this.Uza(r));this.Jza(r)};p.prototype.NDa=function(q,r){var t,u=this.gH(q);this.qGa(u);this.DZa(r);(t=this.um())===null||t===void 0||t.NDa(q,r)};p.prototype.FZa=function(q){this.component.bind(n.Eb,this.Pwa,this,!0);this.JG=q};p.prototype.EZa=function(q){this.JG&&this.Jfa(this.JG,q)>p.JWa&&this.Oda()};p.prototype.DZa=function(q){this.JG&&(this.lGa(this.JG),q&&this.mGa(this.JG),this.Oda())};p.prototype.Oda= function(){this.JG&&(this.component.h(n.Eb,this.Pwa,this),this.JG=void 0)};p.prototype.Pwa=function(){this.Oda()};p.prototype.Vza=function(q){if((q=this.Nfa(q))&&q.length>1)for(var r=0,t=0;t1))return!0;return!1};p.prototype.K3a=function(q){for(var r=this.wa().cc();q;){if(q==r)return!0;q=q.parentNode}return!1};p.prototype.ywa=function(){return!1};p.prototype.Uha=function(q){this.component.Xb().Tha&&(q.preventDefault(),q.stopImmediatePropagation(),this.ODa(q))}; p.prototype.ODa=function(q){var r,t=this.gH(q),u=this.f2a(q);this.ywa(u)||(r=this.um())===null||r===void 0||r.ODa(q);this.Q$a(t,u,q)};p.prototype.gH=function(q){return this.zya(q.pageX,q.pageY)};p.prototype.f2a=function(q){var r={};r.delta=Math.max(-1,Math.min(1,-q.deltaY));r.lA=r.delta;return r};p.prototype.zya=function(q,r){var t,u=h.offset(this.wa().cc()),v=((t=this.component.Xb())===null||t===void 0?void 0:t.fD)||1;t={};t.x=(q-u.left)/v;t.y=(r-u.top)/v;t.pageX=q/v;t.pageY=r/v;t.AE=q;t.BE=r;return t}; p.prototype.Qfa=function(q,r){var t=this.iH(q);return r?(q=this.Kya(q),{coordinates:t,scale:r.scale*q/r.touchesDistance,rotation:0,touchesDistance:q}):{coordinates:t,scale:1,rotation:0,touchesDistance:this.Kya(q)}};p.prototype.iH=function(q){var r=this.Nfa(q);if(r.length==0)var t=this.H6a;else t={x:0,y:0,pageX:0,pageY:0,AE:0,BE:0,touches:[]},Array.from(r).forEach(function(u){u||(u=r[0]);u=this.zya(u.pageX,u.pageY);t.x+=u.x;t.y+=u.y;t.pageX+=u.pageX;t.pageY+=u.pageY;t.AE+=u.AE;t.BE+=u.BE;t.touches.push(u)}.bind(this)), t.x/=r.length,t.y/=r.length,t.pageX/=r.length,t.pageY/=r.length,t.AE/=r.length,t.BE/=r.length;return this.H6a=t};p.prototype.Nfa=function(q){return q.touches||q.targetTouches||q.changedTouches};p.prototype.Kya=function(q){var r=this.Nfa(q);return r&&r.length>1?(q=Math.abs(r[0].pageX-r[1].pageX),r=Math.abs(r[0].pageY-r[1].pageY),Math.sqrt(q*q+r*r)):0};p.prototype.Uva=function(){this.wa().cc().style["pointer-events"]=this.gza()};p.prototype.gza=function(){return this.LS?"auto":"none"};p.prototype.UG= function(){this.$ea(d)};p.prototype.NG=function(){this.Dea(d)};p.prototype.$ea=function(q){l.includes(this.component)||l.push(this.component);this.Z0=h.union(this.Z0,q);q=this.Jya(q);for(var r=0;rthis.f0a||!this.IAa)return!1;q=this.Jfa(this.IAa, q);if(g.ub()){var r=this.component.Xb();r=Math.min(r.nb(),r.Mb())*.01*p.RWa}else r=p.KWa;return q>r?!1:!0};p.$Wa=10;p.SWa=5;p.JWa=10;p.RWa=10;p.KWa=10;return p}();var d=function(){var p=[];p=p.concat(["touchstart","touchmove"]);g.Nd()!=g.vj&&(p=p.concat(["mousedown","mousemove","mousewheel"]));return p}(),f=k.Tg("debug"),l=window.enabledComponents=[];return a}); define("tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/mousetouch/MouseTouchEventManager","tdv/player/view/util/Device"],function(a,m,h,n,g){return function(k){function e(b){var c=k.call(this,b)||this;c.component=b;c.iy=0;c.jy=0;c.rpb=void 0;c.spb=void 0;c.Xwa=0;c.Wda=void 0;c.Xda=void 0;c.Yda=0;c.Zda=0;c.hn=!1;c.jn=!1;c.EC=c.EC.bind(c);c.ID=c.ID.bind(c);c.Vna();return c}P(e,k);e.prototype.Vna= function(){this.wa().L7().addEventListener("mousedown",this.EC,!1);this.wa().L7().addEventListener("touchstart",this.EC,!1);this.wa().a8().addEventListener("mousedown",this.ID,!1);this.wa().a8().addEventListener("touchstart",this.ID,!1);this.Ohb()?this.component.bind(h.Sa,this.Ywa,this,!1):(this.component.bind(h.Sa,this.NZa,this,!1),this.component.bind(h.uc,this.Uda,this,!1),this.component.bind(h.Eb,this.Tda,this,!1),this.component.bind(h.Qk,this.OZa,this,!1))};e.prototype.wa=function(){return this.component.wa()}; e.prototype.EC=function(){this.component.Ww(!0);this.hn=!0};e.prototype.ID=function(){this.component.Xw(!0);this.jn=!0};e.prototype.Uda=function(){this.component.$E(!0)};e.prototype.Tda=function(){this.component.$E(!1)};e.prototype.NZa=function(b){this.component.hn||this.component.jn?(this.component.Xb().bind(h.gb,this.Vwa,this,!1),this.component.Xb().bind(h.$a,this.Wwa,this,!1),this.iy=b.pageX,this.jy=b.pageY):this.Ywa(b)};e.prototype.Vwa=function(b){var c=0,d=0;this.hn&&(c=(b.pageX-this.iy)/this.wa().Ln.clientWidth); this.jn&&(d=(b.pageY-this.jy)/this.wa().jo.clientHeight);this.iy=b.pageX;this.jy=b.pageY;c==0&&d==0||this.component.JP(c,d,"content")};e.prototype.Wwa=function(){this.component.Xb().h(h.gb,this.Vwa,this);this.component.Xb().h(h.$a,this.Wwa,this);this.component.Ww(!1);this.component.Xw(!1);this.jn=this.hn=!1};e.prototype.ywa=function(b){return b.delta>0&&this.component.LO()||b.delta<0&&this.component.JO()?!0:!1};e.prototype.OZa=function(b){b=(g.Nd()==g.r_?b.lA*.1:b.delta)*.3;this.component.JP(0,-b, "page")};e.prototype.Ywa=function(b){if(this.component.KO()||this.component.MO())this.component.Xb().bind(h.gb,this.Zwa,this,!1),this.component.Xb().bind(h.$a,this.$wa,this,!1),this.component.$E(!0),this.iy=b.pageX,this.jy=b.pageY,this.n3a()};e.prototype.Zwa=function(b){var c=b.pageX-this.iy,d=b.pageY-this.jy;!this.hn&&!this.jn&&c*c+d*d>25&&(this.hn=this.component.KO(),this.jn=this.component.MO(),this.component.Ww(this.hn),this.component.Xw(this.jn));if(this.hn||this.jn)this.component.JP(this.hn? -c:0,this.jn?-d:0),this.iy=b.pageX,this.jy=b.pageY,this.pab()};e.prototype.$wa=function(){this.component.Xb().h(h.gb,this.Zwa,this);this.component.Xb().h(h.$a,this.$wa,this);this.component.$E(!1);var b=Math.max(Math.abs(this.Yda/.001),Math.abs(this.Zda/.001));this.component.kIa(-.5*this.Yda*b,-.5*this.Zda*b,b)};e.prototype.n3a=function(){this.Wda=this.iy;this.Xda=this.jy};e.prototype.pab=function(){var b=(new Date).getTime(),c=b-this.Xwa;c>10&&(this.Xwa=b,this.Yda=(this.iy-this.Wda)/c,this.Zda=(this.jy- this.Xda)/c,this.Wda=this.iy,this.Xda=this.jy)};return e}(n)}); define("tdv/view/core/eventmanager/mousetouch/CloseButtonMouseTouchEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager","tdv/view/util/KeyboardControl"],function(a,m,h,n,g){return function(k){function e(b){b=k.call(this,b)||this;b.bz=b.bz.bind(b);return b}P(e,k);e.prototype.UG=function(){k.prototype.UG.call(this);g.Rma(this.bz)};e.prototype.NG=function(){k.prototype.NG.call(this);g.Iqa(this.bz)};e.prototype.bz= function(){this.component.o(h.ma)};return e}(n)}); define("tdv/view/core/eventmanager/mousetouch/DropDownMouseTouchEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager","tdv/view/util/KeyboardControl"],function(a,m,h,n,g){return function(k){function e(b){b=k.call(this,b)||this;b.component.pk.bind(h.od,b.E5a,b,!1);b.component.pk.bind(h.jd,b.D5a,b,!0);b.component.bind(h.CB,b.UM,b,!0);b.bz=b.bz.bind(b);return b}P(e,k);e.prototype.E5a=function(){g.hIa(this,[this.component.je.wa().cc()].concat(this.component.pk.yLa().map(function(b){return b.wa().cc()}))); g.Rma(this.bz)};e.prototype.D5a=function(){g.Iqa(this.bz);g.Hqa(this)};e.prototype.UM=function(){g.thb([this.component.je.wa().cc()].concat(this.component.pk.yLa().map(function(b){return b.wa().cc()})))&&this.component.je.wa().cc().focus()};e.prototype.bz=function(){this.component.close()};return e}(n)}); define("tdv/view/core/eventmanager/mousetouch/HTMLMouseTouchEventManager",["require","exports","tdv/view/core/eventmanager/mousetouch/MouseTouchEventManager"],function(a,m,h){return function(n){function g(){return n!==null&&n.apply(this,arguments)||this}P(g,n);g.prototype.DD=function(k,e){for(e=k.target;e&&e.tagName!="A"&&e.tagName!="BUTTON";)e=e.parentElement;e=!e;n.prototype.DD.call(this,k,e)};return g}(h)}); define("tdv/view/core/eventmanager/mousetouch/IconButtonMouseTouchEventManager",["require","exports","tdv/view/core/eventmanager/mousetouch/MouseTouchEventManager","tdv/view/constants/Cursor"],function(a,m,h,n){return function(g){function k(e){var b=g.call(this,e)||this;b.PV=function(c){var d=b.iH(c);b.C8(d)?g.prototype.PV.call(b,c):b.jya(d,c)};b.qT=function(c){var d=b.gH(c);b.C8(d)?g.prototype.qT.call(b,c):b.jya(d,c)};b.ufa=!1;b.Mza=!1;return b}P(k,g);k.prototype.pRa=function(e){this.Mza=e};k.prototype.wa= function(){return this.component.wa()};k.prototype.QV=function(e){var b=this.iH(e);this.C8(b)?g.prototype.QV.call(this,e):this.d1a(b,e)};k.prototype.sT=function(e){var b=this.gH(e);if(this.C8(b)||this.ufa)g.prototype.sT.call(this,e),this.component.K9();else{this.ufa=!0;if(b=this.Ofa(b))b.dispatchEvent(this.Qwa(e)),e.preventDefault(),e.stopImmediatePropagation();this.Hya(b)=="pointer"?this.component.K9(n.qf):this.component.K9(n.De);this.ufa=!1}};k.prototype.C8=function(e){return this.Mza||this.component.Ahb(e)}; k.prototype.jya=function(e,b){if(e=this.Ofa(e))e.dispatchEvent(this.Qwa(b)),b.preventDefault(),b.stopImmediatePropagation()};k.prototype.d1a=function(e,b){if(e=this.Ofa(e))e.dispatchEvent(this.HZa(b)),b.preventDefault(),b.stopImmediatePropagation()};k.prototype.Ofa=function(e){var b=this;this.wa().cc().style.pointerEvents="none";e=document.elementFromPoint(e.AE,e.BE);setTimeout(function(){b.wa().cc().style.pointerEvents=b.gza()},0);return e};k.prototype.Qwa=function(e){return new MouseEvent(e.type, e)};k.prototype.HZa=function(e){return new TouchEvent(e.type,e)};k.prototype.Hya=function(e){if(e){var b=e.style.cursor;b=="inherit"&&(b=this.Hya(e.parentElement))}else b="default";return b};return k}(h)}); define("tdv/view/core/eventmanager/mousetouch/ThumbnailListMouseTouchEventManager","require exports tdv/constants/EventName tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager tdv/view/util/KeyboardControl tdv/view/constants/LayoutMode".split(" "),function(a,m,h,n,g,k){return function(e){function b(c){c=e.call(this,c)||this;c.component.bind(h.L("layout"),c.uia,c,!1);c.component.bind(h.L("items"),c.sia,c,!1);return c}P(b,e);b.prototype.UG=function(){e.prototype.UG.call(this); this.Uz()};b.prototype.NG=function(){e.prototype.NG.call(this);this.Uz()};b.prototype.uia=function(){this.Uz()};b.prototype.sia=function(){this.Uz()};b.prototype.Uz=function(){this.LS?this.component.get("layout")==k.Ni?g.Vbb(this,this.component.Cb().map(function(c){return c.wa().cc()})):g.hIa(this,this.component.Cb().map(function(c){return c.wa().cc()})):g.Hqa(this)};return b}(n)}); define("tdv/view/core/eventmanager/mousetouch/ThumbnailGridMouseTouchEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager","tdv/view/util/KeyboardControl"],function(a,m,h,n,g){return function(k){function e(b){b=k.call(this,b)||this;b.component.bind(h.L("layout"),b.uia,b,!1);b.component.bind(h.L("items"),b.sia,b,!1);return b}P(e,k);e.prototype.UG=function(){k.prototype.UG.call(this);this.Uz()};e.prototype.NG=function(){k.prototype.NG.call(this); this.Uz()};e.prototype.uia=function(){this.Uz()};e.prototype.sia=function(){this.Uz()};e.prototype.Uz=function(){this.LS?g.Sbb(this,this.component.Cb().map(function(b){return b.wa().cc()}),this.component.an.pEa,this.component.an.Swa):g.Hqa(this)};return e}(n)}); define("tdv/view/list/thumblist/ThumbnailListItem","require exports tdv/utils tdv/binding/ChangeWatcher tdv/constants/EventName tdv/view/constants/Alignment tdv/view/constants/CreationPolicy tdv/view/constants/Cursor tdv/view/constants/LayoutMode tdv/view/constants/Position tdv/view/constants/ScaleMode tdv/view/constants/State tdv/view/containers/Container tdv/view/images/Image tdv/view/text/Label".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p,q,r){return function(t){function u(){var v=t.call(this)|| this;v.Hf=null;v.Za=null;v.EG=[];v.set("ariaRole","option");v.set("autoRolledOver",!0);v.set("childrenInteractionEnabled",!1);v.set("contentOpaque",!0);v.set("creationPolicy",e.cL);v.set("cursor",b.qf);return v}P(u,t);u.prototype.Pb=function(){t.prototype.Pb.call(this);this.m("listLayout");this.m("overflow","hidden");this.m("item");this.m("thumbnailUrlFunction",this.zea);this.m("sourceProperties");this.m("labelFunction",this.xea);this.m("labelFontFamily");this.m("labelFontColor");this.m("labelFontSize"); this.m("labelFontStyle");this.m("labelFontWeight");this.m("labelGap");this.m("labelHorizontalAlign");this.m("labelPosition");this.m("labelTextDecoration");this.m("labelTextShadowColor");this.m("labelTextShadowHorizontalLength");this.m("labelTextShadowVerticalLength");this.m("labelTextShadowBlurRadius");this.m("labelTextShadowOpacity");this.m("thumbnailBorderRadius");this.m("thumbnailOpacity");this.m("thumbnailBorderSize");this.m("thumbnailBorderColor");this.m("thumbnailWidth");this.m("thumbnailHeight"); this.m("thumbnailMaxWidth");this.m("thumbnailMaxHeight");this.m("thumbnailShadow");this.m("thumbnailShadowHorizontalLength");this.m("thumbnailShadowVerticalLength");this.m("thumbnailShadowBlurRadius");this.m("thumbnailShadowSpread");this.m("thumbnailShadowColor");this.m("thumbnailShadowOpacity");this.D("rollOverBackgroundOpacity",l.ea,"backgroundOpacity");this.D("rollOverBackgroundBlur",l.ea,"backgroundBlur");this.D("rollOverBackgroundColor",l.ea,"backgroundColor");this.D("rollOverBackgroundColorRatios", l.ea,"backgroundColorRatios");this.D("rollOverBackgroundColorDirection",l.ea,"backgroundColorDirection");this.D("rollOverBorderRadius",l.ea,"borderRadius");this.D("rollOverBorderTopRadius",l.ea,"borderTopRadius");this.D("rollOverBorderBottomRadius",l.ea,"borderBottomRadius");this.D("rollOverBorderLeftRadius",l.ea,"borderLeftRadius");this.D("rollOverBorderRightRadius",l.ea,"borderRightRadius");this.D("rollOverBorderTopLeftRadius",l.ea,"borderTopLeftRadius");this.D("rollOverBorderTopRightRadius",l.ea, "borderTopRightRadius");this.D("rollOverBorderBottomLeftRadius",l.ea,"borderBottomLeftRadius");this.D("rollOverBorderBottomRightRadius",l.ea,"borderBottomRightRadius");this.D("rollOverBorderSize",l.ea,"borderSize");this.D("rollOverBorderLeftSize",l.ea,"borderLeftSize");this.D("rollOverBorderTopSize",l.ea,"borderTopSize");this.D("rollOverBorderRightSize",l.ea,"borderRightSize");this.D("rollOverBorderBottomSize",l.ea,"borderBottomSize");this.D("rollOverBorderColor",l.ea,"borderColor");this.D("rollOverBorderLeftColor", l.ea,"borderLeftColor");this.D("rollOverBorderTopColor",l.ea,"borderTopColor");this.D("rollOverBorderRightColor",l.ea,"borderRightColor");this.D("rollOverBorderBottomColor",l.ea,"borderBottomColor");this.D("rollOverLabelFontColor",l.ea,"labelFontColor");this.D("rollOverLabelFontSize",l.ea,"labelFontSize");this.D("rollOverLabelFontStyle",l.ea,"labelFontStyle");this.D("rollOverLabelFontWeight",l.ea,"labelFontWeight");this.D("rollOverLabelTextDecoration",l.ea,"labelTextDecoration");this.D("rollOverLabelTextShadowColor", l.ea,"labelTextShadowColor");this.D("rollOverLabelTextShadowHorizontalLength",l.ea,"labelTextShadowHorizontalLength");this.D("rollOverLabelTextShadowVerticalLength",l.ea,"labelTextShadowVerticalLength");this.D("rollOverLabelTextShadowBlurRadius",l.ea,"labelTextShadowBlurRadius");this.D("rollOverLabelTextShadowOpacity",l.ea,"labelTextShadowOpacity");this.D("rollOverOpacity",l.ea,"opacity");this.D("rollOverPaddingLeft",l.ea,"paddingLeft");this.D("rollOverPaddingTop",l.ea,"paddingTop");this.D("rollOverPaddingRight", l.ea,"paddingRight");this.D("rollOverPaddingBottom",l.ea,"paddingBottom");this.D("rollOverShadow",l.ea,"shadow");this.D("rollOverThumbnailOpacity",l.ea,"thumbnailOpacity");this.D("rollOverThumbnailBorderSize",l.ea,"thumbnailBorderSize");this.D("rollOverThumbnailBorderColor",l.ea,"thumbnailBorderColor");this.D("rollOverThumbnailShadow",l.ea,"thumbnailShadow");this.D("rollOverThumbnailShadowHorizontalLength",l.ea,"thumbnailShadowHorizontalLength");this.D("rollOverThumbnailShadowVerticalLength",l.ea, "thumbnailShadowVerticalLength");this.D("rollOverThumbnailShadowBlurRadius",l.ea,"thumbnailShadowBlurRadius");this.D("rollOverThumbnailShadowSpread",l.ea,"thumbnailShadowSpread");this.D("rollOverThumbnailShadowColor",l.ea,"thumbnailShadowColor");this.D("rollOverThumbnailShadowOpacity",l.ea,"thumbnailShadowOpacity");this.D("selectedBackgroundOpacity",l.oa,"backgroundOpacity");this.D("selectedBackgroundBlur",l.oa,"backgroundBlur");this.D("selectedBackgroundColor",l.oa,"backgroundColor");this.D("selectedBackgroundColorRatios", l.oa,"backgroundColorRatios");this.D("selectedBackgroundColorDirection",l.oa,"backgroundColorDirection");this.D("selectedBorderRadius",l.oa,"borderRadius");this.D("selectedBorderTopRadius",l.oa,"borderTopRadius");this.D("selectedBorderBottomRadius",l.oa,"borderBottomRadius");this.D("selectedBorderLeftRadius",l.oa,"borderLeftRadius");this.D("selectedBorderRightRadius",l.oa,"borderRightRadius");this.D("selectedBorderTopLeftRadius",l.oa,"borderTopLeftRadius");this.D("selectedBorderTopRightRadius",l.oa, "borderTopRightRadius");this.D("selectedBorderBottomLeftRadius",l.oa,"borderBottomLeftRadius");this.D("selectedBorderBottomRightRadius",l.oa,"borderBottomRightRadius");this.D("selectedBorderSize",l.oa,"borderSize");this.D("selectedBorderLeftSize",l.oa,"borderLeftSize");this.D("selectedBorderTopSize",l.oa,"borderTopSize");this.D("selectedBorderRightSize",l.oa,"borderRightSize");this.D("selectedBorderBottomSize",l.oa,"borderBottomSize");this.D("selectedBorderColor",l.oa,"borderColor");this.D("selectedBorderLeftColor", l.oa,"borderLeftColor");this.D("selectedBorderTopColor",l.oa,"borderTopColor");this.D("selectedBorderRightColor",l.oa,"borderRightColor");this.D("selectedBorderBottomColor",l.oa,"borderBottomColor");this.D("selectedLabelFontColor",l.oa,"labelFontColor");this.D("selectedLabelFontSize",l.oa,"labelFontSize");this.D("selectedLabelFontStyle",l.oa,"labelFontStyle");this.D("selectedLabelFontWeight",l.oa,"labelFontWeight");this.D("selectedLabelTextDecoration",l.oa,"labelTextDecoration");this.D("selectedLabelTextShadowColor", l.oa,"labelTextShadowColor");this.D("selectedLabelTextShadowHorizontalLength",l.oa,"labelTextShadowHorizontalLength");this.D("selectedLabelTextShadowVerticalLength",l.oa,"labelTextShadowVerticalLength");this.D("selectedLabelTextShadowBlurRadius",l.oa,"labelTextShadowBlurRadius");this.D("selectedLabelTextShadowOpacity",l.oa,"labelTextShadowOpacity");this.D("selectedOpacity",l.oa,"opacity");this.D("selectedPaddingLeft",l.oa,"paddingLeft");this.D("selectedPaddingTop",l.oa,"paddingTop");this.D("selectedPaddingRight", l.oa,"paddingRight");this.D("selectedPaddingBottom",l.oa,"paddingBottom");this.D("selectedShadow",l.oa,"shadow");this.D("selectedThumbnailOpacity",l.oa,"thumbnailOpacity");this.D("selectedThumbnailBorderSize",l.oa,"thumbnailBorderSize");this.D("selectedThumbnailBorderColor",l.oa,"thumbnailBorderColor");this.D("selectedThumbnailShadow",l.oa,"thumbnailShadow");this.D("selectedThumbnailShadowHorizontalLength",l.oa,"thumbnailShadowHorizontalLength");this.D("selectedThumbnailShadowVerticalLength",l.oa, "thumbnailShadowVerticalLength");this.D("selectedThumbnailShadowBlurRadius",l.oa,"thumbnailShadowBlurRadius");this.D("selectedThumbnailShadowSpread",l.oa,"thumbnailShadowSpread");this.D("selectedThumbnailShadowColor",l.oa,"thumbnailShadowColor");this.D("selectedThumbnailShadowOpacity",l.oa,"thumbnailShadowOpacity")};u.prototype.qZ=function(v){this.kV(v)};u.prototype.Kb=function(){t.prototype.Kb.call(this);this.Hf||(this.Hf=new q,this.mb(this.Hf),this.Hf.set("horizontalAlign",k.$e),this.Hf.set("verticalAlign", k.$d),this.Hf.bind(g.ia,this.jla,this,!1));this.Za||(this.Za=new r,this.mb(this.Za))};u.prototype.zea=function(v){if(h.EA(v))return v;if(v&&v.nsa)return v.nsa};u.prototype.xea=function(v){if(v&&v.label)return v.label};u.prototype.Ux=function(){return this.Za&&this.Za.get("text")||t.prototype.Ux.call(this)};u.prototype.jb=function(){if(this.S("sourceProperties")||this.S("item")){for(;this.EG.length;)this.EG.pop().jF();var v=this.G("sourceProperties"),w=this.G("item");v&&w&&v.forEach(function(y){this.EG.push(n.jx(w, y,this.Dia,this,!0))}.bind(this))}if(this.S("sourceProperties")||this.S("item")||this.S("tooltipFunction"))v=this.G("item"),v=this.G("tooltipFunction")(v),this.set("toolTip",v);if(this.S("sourceProperties")||this.S("item")||this.S("thumbnailUrlFunction"))v=this.G("item"),(v=this.G("thumbnailUrlFunction")(v))?this.Hf.get("url")!=v&&this.Hf.xa({url:v,visible:!0,opacity:.5}):this.Hf.xa({url:void 0,visible:!1}),this.$("thumbnailUrlFunction");if(this.S("sourceProperties")||this.S("item")||this.S("labelFunction"))v= this.G("item"),v=this.G("labelFunction")(v),this.Za.xa({text:v,visible:v?!0:!1}),this.$("labelFunction");this.$("sourceProperties");this.$("item");if(this.S("listLayout"))switch(this.G("listLayout")){case c.Uk:this.xa({width:"100%",height:void 0});break;default:this.xa({height:"100%",width:void 0})}if(this.S("labelPosition")||this.S("listLayout")||this.S("thumbnailWidth")||this.S("thumbnailHeight")){var x=this;v=function(y,z){y=x.G(y);y===void 0&&(y=z);return y};switch(this.G("labelPosition")){case d.fb:case d.Db:this.set("layout", c.Ni);this.Za.set("width","100%");switch(this.G("listLayout")){case c.Uk:this.Hf.xa({height:v("thumbnailHeight"),width:v("thumbnailWidth"),scaleMode:v("thumbnailScaleMode",f.Pk)});break;default:this.Hf.xa({height:v("thumbnailHeight","100%"),width:v("thumbnailWidth"),scaleMode:v("thumbnailScaleMode",f.Pk)})}break;default:switch(this.set("layout",c.Uk),this.Za.set("width",void 0),this.G("listLayout")){case c.Uk:this.Hf.xa({height:v("thumbnailHeight"),width:v("thumbnailWidth","100%"),scaleMode:v("thumbnailScaleMode", f.Tp)});break;default:this.Hf.xa({height:v("thumbnailHeight","100%"),width:v("thumbnailWidth"),scaleMode:v("thumbnailScaleMode",f.Pk)})}}switch(this.G("labelPosition")){case d.fb:case d.Tc:this.rr(this.Za,0);break;default:this.rr(this.Za,1)}this.$("labelPosition")}this.$("listLayout");this.Pc(u.yca,u.jR,[this],!0,!0);this.Pc(u.Aca,u.jR,[this.Hf],!0,!0);this.Pc(u.zca,u.jR,[this.Za],!0,!0);t.prototype.jb.call(this)};u.prototype.Dia=function(){this.yD("item")};u.prototype.uI=function(v){t.prototype.uI.call(this, v)};u.prototype.jla=function(){this.Hf.set("opacity",1)};u.yca=["labelGap"];u.Aca="thumbnailBorderColor thumbnailBorderRadius thumbnailBorderSize thumbnailMaxWidth thumbnailMaxHeight thumbnailOpacity thumbnailShadow thumbnailShadowHorizontalLength thumbnailShadowVerticalLength thumbnailShadowBlurRadius thumbnailShadowSpread thumbnailShadowColor thumbnailShadowOpacity".split(" ");u.zca="labelFontFamily labelFontColor labelFontSize labelFontStyle labelFontWeight labelHorizontalAlign labelTextDecoration labelTextShadowColor labelTextShadowHorizontalLength labelTextShadowVerticalLength labelTextShadowBlurRadius labelTextShadowOpacity".split(" "); u.jR={labelFontFamily:"fontFamily",labelFontColor:"fontColor",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelGap:"gap",labelHorizontalAlign:"horizontalAlign",labelTextDecoration:"textDecoration",labelTextShadowColor:"textShadowColor",labelTextShadowHorizontalLength:"textShadowHorizontalLength",labelTextShadowVerticalLength:"textShadowVerticalLength",labelTextShadowBlurRadius:"textShadowBlurRadius",labelTextShadowOpacity:"textShadowOpacity",thumbnailMaxWidth:"maxWidth", thumbnailMaxHeight:"maxHeight",thumbnailBorderRadius:"borderRadius",thumbnailOpacity:"opacity",thumbnailBorderSize:"borderSize",thumbnailBorderColor:"borderColor",thumbnailShadow:"shadow",thumbnailShadowHorizontalLength:"shadowHorizontalLength",thumbnailShadowVerticalLength:"shadowVerticalLength",thumbnailShadowBlurRadius:"shadowBlurRadius",thumbnailShadowSpread:"shadowSpread",thumbnailShadowColor:"shadowColor",thumbnailShadowOpacity:"shadowOpacity"};return u}(p)}); define("tdv/view/list/thumblist/ThumbnailList","require exports tdv/events/Event tdv/view/constants/Alignment tdv/constants/EventName tdv/view/constants/LayoutMode tdv/view/constants/OverflowPolicy tdv/view/constants/Position tdv/view/containers/Container tdv/view/list/thumblist/ThumbnailListItem".split(" "),function(a,m,h,n,g,k,e,b,c,d){return function(f){function l(){var p=f.call(this)||this;p.Cn=!1;p.set("ariaRole","listbox");p.set("contentOpaque",!0);p.bind(g.L("selectedIndex"),p.F7a,p,!1);p.bind(g.Rb, p.w$a,p,!1);return p}P(l,f);l.prototype.Pb=function(){f.prototype.Pb.call(this);this.m("layout",k.Ni);this.m("selectedIndex",-1);this.m("items",[]);this.m("overflow",e.Wr);this.m("itemHorizontalAlign",n.$e);this.m("itemLabelFontFamily");this.m("itemLabelPosition",b.Hc);this.m("itemLabelFunction");this.m("itemLabelGap");this.m("itemLabelHorizontalAlign",n.$e);this.m("itemThumbnailBorderRadius");this.m("itemThumbnailScaleMode");this.m("itemThumbnailWidth");this.m("itemThumbnailHeight");this.m("itemThumbnailMaxWidth"); this.m("itemThumbnailMaxHeight");this.m("itemThumbnailUrlFunction");this.m("itemTooltipFunction");this.m("itemSourceProperties");this.m("itemVerticalAlign",n.$d);this.m("itemBackgroundOpacity");this.m("itemBackgroundBlur");this.m("itemBackgroundColor");this.m("itemBackgroundColorRatios");this.m("itemBackgroundColorDirection");this.m("itemBorderRadius");this.m("itemBorderTopRadius");this.m("itemBorderBottomRadius");this.m("itemBorderLeftRadius");this.m("itemBorderRightRadius");this.m("itemBorderTopLeftRadius"); this.m("itemBorderTopRightRadius");this.m("itemBorderBottomLeftRadius");this.m("itemBorderBottomRightRadius");this.m("itemBorderSize");this.m("itemBorderLeftSize");this.m("itemBorderTopSize");this.m("itemBorderRightSize");this.m("itemBorderBottomSize");this.m("itemBorderColor");this.m("itemBorderLeftColor");this.m("itemBorderTopColor");this.m("itemBorderRightColor");this.m("itemBorderBottomColor");this.m("itemLabelFontColor");this.m("itemLabelFontSize");this.m("itemLabelFontStyle");this.m("itemLabelFontWeight"); this.m("itemLabelTextDecoration");this.m("itemLabelTextShadowColor");this.m("itemLabelTextShadowHorizontalLength");this.m("itemLabelTextShadowVerticalLength");this.m("itemLabelTextShadowBlurRadius");this.m("itemLabelTextShadowOpacity");this.m("itemOpacity");this.m("itemPaddingLeft");this.m("itemPaddingTop");this.m("itemPaddingRight");this.m("itemPaddingBottom");this.m("itemShadow");this.m("itemThumbnailOpacity");this.m("itemThumbnailBorderSize");this.m("itemThumbnailBorderColor");this.m("itemThumbnailShadow"); this.m("itemThumbnailShadowHorizontalLength");this.m("itemThumbnailShadowVerticalLength");this.m("itemThumbnailShadowBlurRadius");this.m("itemThumbnailShadowSpread");this.m("itemThumbnailShadowColor");this.m("itemThumbnailShadowOpacity");this.m("rollOverItemBackgroundOpacity");this.m("rollOverItemBackgroundBlur");this.m("rollOverItemBackgroundColor");this.m("rollOverItemBackgroundColorRatios");this.m("rollOverItemBackgroundColorDirection");this.m("rollOverItemBorderRadius");this.m("rollOverItemBorderTopRadius"); this.m("rollOverItemBorderBottomRadius");this.m("rollOverItemBorderLeftRadius");this.m("rollOverItemBorderRightRadius");this.m("rollOverItemBorderTopLeftRadius");this.m("rollOverItemBorderTopRightRadius");this.m("rollOverItemBorderBottomLeftRadius");this.m("rollOverItemBorderBottomRightRadius");this.m("rollOverItemBorderSize");this.m("rollOverItemBorderLeftSize");this.m("rollOverItemBorderTopSize");this.m("rollOverItemBorderRightSize");this.m("rollOverItemBorderBottomSize");this.m("rollOverItemBorderColor"); this.m("rollOverItemBorderLeftColor");this.m("rollOverItemBorderTopColor");this.m("rollOverItemBorderRightColor");this.m("rollOverItemBorderBottomColor");this.m("rollOverItemLabelFontSize");this.m("rollOverItemLabelFontStyle");this.m("rollOverItemLabelFontWeight");this.m("rollOverItemLabelTextDecoration");this.m("rollOverItemLabelTextShadowColor");this.m("rollOverItemLabelTextShadowHorizontalLength");this.m("rollOverItemLabelTextShadowVerticalLength");this.m("rollOverItemLabelTextShadowBlurRadius"); this.m("rollOverItemLabelTextShadowOpacity");this.m("rollOverItemOpacity");this.m("rollOverItemPaddingLeft");this.m("rollOverItemPaddingTop");this.m("rollOverItemPaddingRight");this.m("rollOverItemPaddingBottom");this.m("rollOverItemShadow");this.m("rollOverItemThumbnailOpacity");this.m("rollOverItemThumbnailBorderSize");this.m("rollOverItemThumbnailBorderColor");this.m("rollOverItemThumbnailShadow");this.m("rollOverItemThumbnailShadowHorizontalLength");this.m("rollOverItemThumbnailShadowVerticalLength"); this.m("rollOverItemThumbnailShadowBlurRadius");this.m("rollOverItemThumbnailShadowSpread");this.m("rollOverItemThumbnailShadowColor");this.m("rollOverItemThumbnailShadowOpacity");this.m("selectedItemBackgroundOpacity");this.m("selectedItemBackgroundBlur");this.m("selectedItemBackgroundColor");this.m("selectedItemBackgroundColorRatios");this.m("selectedItemBackgroundColorDirection");this.m("selectedItemBorderRadius");this.m("selectedItemBorderTopRadius");this.m("selectedItemBorderBottomRadius");this.m("selectedItemBorderLeftRadius"); this.m("selectedItemBorderRightRadius");this.m("selectedItemBorderTopLeftRadius");this.m("selectedItemBorderTopRightRadius");this.m("selectedItemBorderBottomLeftRadius");this.m("selectedItemBorderBottomRightRadius");this.m("selectedItemBorderSize");this.m("selectedItemBorderLeftSize");this.m("selectedItemBorderTopSize");this.m("selectedItemBorderRightSize");this.m("selectedItemBorderBottomSize");this.m("selectedItemBorderColor");this.m("selectedItemBorderLeftColor");this.m("selectedItemBorderTopColor"); this.m("selectedItemBorderRightColor");this.m("selectedItemBorderBottomColor");this.m("selectedItemLabelFontSize");this.m("selectedItemLabelFontStyle");this.m("selectedItemLabelFontWeight");this.m("selectedItemLabelTextDecoration");this.m("selectedItemLabelTextShadowColor");this.m("selectedItemLabelTextShadowHorizontalLength");this.m("selectedItemLabelTextShadowVerticalLength");this.m("selectedItemLabelTextShadowBlurRadius");this.m("selectedItemLabelTextShadowOpacity");this.m("selectedItemOpacity"); this.m("selectedItemPaddingLeft");this.m("selectedItemPaddingTop");this.m("selectedItemPaddingRight");this.m("selectedItemPaddingBottom");this.m("selectedItemShadow");this.m("selectedItemThumbnailOpacity");this.m("selectedItemThumbnailBorderSize");this.m("selectedItemThumbnailBorderColor");this.m("selectedItemThumbnailShadow");this.m("selectedItemThumbnailShadowHorizontalLength");this.m("selectedItemThumbnailShadowVerticalLength");this.m("selectedItemThumbnailShadowBlurRadius");this.m("selectedItemThumbnailShadowSpread"); this.m("selectedItemThumbnailShadowColor");this.m("selectedItemThumbnailShadowOpacity")};l.prototype.VS=function(p){this.Cn=!0;this.set("selectedIndex",this.Ufa(p.source))};l.prototype.F7a=function(){this.yEa()};l.prototype.w$a=function(){setTimeout(function(){this.yEa()}.bind(this),100)};l.prototype.yEa=function(){var p=this.get("selectedIndex"),q=this.Cb();p>=0&&pp.length){for(t=p.length;tq.length){for(t=q.length;t=0&&y;w--)x.includes(this.DR[w])?y=!1:this.DR[w].o(new q(n.Eb));for(w=0;w=0&&y>=0&&xw?x:w)/(this.p6>this.o6?this.p6:this.o6),z=Math.round(x/y),A=Math.round(w/y);this.fD=y;this.Kd.style.left=Math.round((x- z)*.5)+"px";this.Kd.style.top=Math.round((w-A)*.5)+"px";this.Kd.style.right="auto";this.Kd.style.bottom="auto";this.Kd.style.width=z+"px";this.Kd.style.height=A+"px";this.Kd.style.transform="scale("+[y,y].join(", ")+")";this.Kd.style.position="absolute"}else x=document.body.clientWidth,w=document.body.clientHeight,this.Kd.style.left="0",this.Kd.style.top="0",this.Kd.style.right="auto",this.Kd.style.bottom="auto",this.Kd.style.width=x+"px",this.Kd.style.height=w+"px",this.fD=1};v.prototype.uZa=function(){this.Kd.style.position= "absolute";this.Kd.style.left="0";this.Kd.style.top="0";this.Kd.style.right="0";this.Kd.style.bottom="0";this.Kd.style.width="auto";this.Kd.style.height="auto";this.Kd.style.transform="";this.fD=1};v.prototype.S9a=function(){this.MFa();var w=this;this.XU=setTimeout(function(){w.XU=null;w.lc()},this.C3a)};v.prototype.MFa=function(){this.XU&&(clearTimeout(this.XU),this.XU=null)};v.prototype.A1=function(){this.Fwa()};return v}(g)}); define("tdv/view/containers/XRPanels",["require","exports","tdv/constants/EventName","tdv/player/view/util/XR","tdv/binding/BindingsHandler"],function(a,m,h,n,g){return function(){function k(e){this.eg=e;this.KK=this.KK.bind(this);this.BQ=[];this.Qma=[];n.M.bind(h.V,this.Ta,this,!0);this.KK()}k.prototype.dispose=function(){n.M.h(h.V,this.Ta,this);this.set([])};k.prototype.set=function(e){var b=this,c=e.filter(function(f){return!b.BQ.includes(f)}),d=this.BQ.filter(function(f){return!e.includes(f)}); c.forEach(function(f){f.ara(b.eg);b.icb(f)});d.forEach(function(f){f.ara(null);b.Qjb(f);f.Ina()});this.BQ=e;this.KK()};k.prototype.get=function(){return this.BQ};k.prototype.icb=function(e){g.ba(e,["modal","content.visible"],this.KK,!1)};k.prototype.Qjb=function(e){g.da(e,["modal","content.visible"],this.KK)};k.prototype.Ta=function(){this.KK()};k.prototype.KK=function(){function e(l){return l.get("modal")&&(l.get("content")?l.get("content").get("visible"):!1)}var b=this,c=[];if(n.isPresenting){var d= this.BQ.filter(function(l){return e(l)}),f=this.BQ.filter(function(l){return!e(l)});c=d.length>0?[d[d.length-1]]:f}c.filter(function(l){return!b.Qma.includes(l)}).forEach(function(l){return l.RJa()});this.Qma.filter(function(l){return!c.includes(l)}).forEach(function(l){return l.Ina()});this.Qma=c};return k}()}); define("tdv/view/util/Orientation","require exports tdv/view/core/ZIndex tdv/view/util/Assets tdv/view/util/Fullscreen tdv/constants/EventName tdv/events/EventDispatcher tdv/player/l10n tdv/player/view/util/Device".split(" "),function(a,m,h,n,g,k,e,b,c){function d(){q=TDV.qb.Gt();var v=p||q;l!=v&&(l=v,f.o(k.V));v=!!p&&q!=p&&c.ub();r!=v&&(t||(t=document.createElement("div"),t.style.position="fixed",t.style.zIndex=h.TUa.toString(),t.style.left="0",t.style.top="0",t.style.margin="0",t.style.padding= "0",t.style.height="100%",t.style.width="100%",t.style.backgroundColor="rgba(255, 255, 255, 0.99)",t.innerHTML=['
\n
','','
'+b("rotate-device")+"
", "
\n
"].join("\n"),u=t.querySelector("img")),r&&t.parentElement.removeChild(t),(r=v)&&(g.enabled()?g.fullscreenElement():document.body).appendChild(t));r&&(u.style.transform=l==f.QVa?"translate(-11%, 0) rotate(-90deg)":"none")}var f=new e;f.Oob=TDV.qb.Vba;f.QVa=TDV.qb.Wba;f.Vw=function(v){p!=v&&(p=v,d())};f.tLa=function(){return p};f.get=function(){return l};var l=void 0,p=void 0,q=void 0,r=!1,t=null,u=null;window.addEventListener("resize",function(){d();setTimeout(d,500)},!0);try{window.screen.orientation.addEventListener("change", d)}catch(v){window.addEventListener("orientationchange",d,!1)}d();return f}); define("tdv/player/script/Player","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/constants/RotationMode tdv/player/parser/ClassInfo tdv/player/AppInfo tdv/player/l10n tdv/player/script/helper/ButtonProperty tdv/player/view/AcademicWatermark tdv/player/view/CookiesBar tdv/player/view/DownloadBar tdv/player/view/MessageWindow tdv/player/view/UserInteractionWindow tdv/player/view/panorama/renderer/Renderer tdv/player/view/panorama/renderer/3d/util/TextureUtil tdv/player/view/util/Capabilities tdv/player/view/util/Device tdv/player/view/util/Gyroscope tdv/player/view/util/Installer tdv/player/view/util/LibsLoader tdv/player/view/util/Preloader tdv/player/view/util/URL tdv/player/view/util/XR tdv/view/constants/ButtonMode tdv/view/containers/Application tdv/view/containers/Container tdv/view/containers/XRPanels tdv/view/containers/layout/VerticalLayout tdv/view/util/Fullscreen tdv/view/util/AudioActivation tdv/view/util/Orientation tdv/view/util/UserInitiatedAction tdv/util/Storage".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/constants/RotationMode"),k=a("tdv/player/parser/ClassInfo"),e=a("tdv/player/AppInfo"),b=a("tdv/player/l10n"),c=a("tdv/player/script/helper/ButtonProperty"),d=a("tdv/player/view/AcademicWatermark"),f=a("tdv/player/view/CookiesBar"),l=a("tdv/player/view/DownloadBar"),p=a("tdv/player/view/MessageWindow"),q=a("tdv/player/view/UserInteractionWindow");a("tdv/player/view/panorama/renderer/Renderer");var r=a("tdv/player/view/panorama/renderer/3d/util/TextureUtil"), t=a("tdv/player/view/util/Capabilities"),u=a("tdv/player/view/util/Device"),v=a("tdv/player/view/util/Gyroscope"),w=a("tdv/player/view/util/Installer"),x=a("tdv/player/view/util/LibsLoader"),y=a("tdv/player/view/util/Preloader"),z=a("tdv/player/view/util/URL"),A=a("tdv/player/view/util/XR"),D=a("tdv/view/constants/ButtonMode"),F=a("tdv/view/containers/Application"),C=a("tdv/view/containers/Container"),B=a("tdv/view/containers/XRPanels"),H=a("tdv/view/containers/layout/VerticalLayout"),E=a("tdv/view/util/Fullscreen"), G=a("tdv/view/util/AudioActivation"),N=a("tdv/view/util/Orientation"),O=a("tdv/view/util/UserInitiatedAction"),R=a("tdv/util/Storage"),Q=k.define("Player",F,function(){F.apply(this,arguments);this.fh=new w(this);this.Ixa=new l(this,this.fh);this.Ru=new C;this.Ru.xa({backgroundOpacity:0,visible:!0,width:"100%",height:"100%"});this.NM=new p;this.hO=new q;this.B0=new f(this);new d(this);this.Dbb=new B(this);this.Kma=[];var T=new H;T.M$(0);this.bZ(T);this.kg(!0);this.bind(h.L("settings"),this.N5a,this, !0);this.k6=TDV.qb.ZLa();N.bind(h.V,this.w5a,this,!0);G.Umb();this.SYa=new c(this,"buttonMute",D.af);this.SYa.bind(h.ma,this.iCa,this,!0);this.$Ya=new c(this,"buttonUnmute",D.af);this.$Ya.bind(h.ma,this.XCa,this,!0);this.d0=new c(this,"buttonToggleMute",D.bk);this.d0.bind(h.Rk,this.iCa,this,!0);this.d0.bind(h.Nm,this.XCa,this,!0);this.bind(h.L("mute"),this.t5a,this);this.d0.set("pressed",this.get("mute"));this.QYa=new c(this,"buttonEnterFullscreen",D.af);this.QYa.bind(h.ma,this.yBa,this,!0);this.RYa= new c(this,"buttonExitFullscreen",D.af);this.RYa.bind(h.ma,this.zBa,this,!0);this.$_=new c(this,"buttonToggleFullscreen",D.bk);this.$_.bind(h.Rk,this.yBa,this,!0);this.$_.bind(h.Nm,this.zBa,this,!0);this.$_.set("pressed",this.get("fullscreenEnabled"));this.bind(h.L("fullscreenEnabled"),this.b5a,this,!0);this.set("fullscreenEnabled",this.lk.enabled());this.set("defaultMenu",["fullscreen","mute","rotation"]);this.bind(h.Up,this.Q5a,this,!0);[h.Sa,h.$a,h.Qk,h.HB,h.YK].forEach(function(Y){this.bind(Y, function(aa){this.o(new n(h.eG,{mQ:aa}))},this,!0)}.bind(this));["keydown","keyup"].forEach(function(Y){document.addEventListener(Y,function(aa){this.o(new n(h.eG,{mQ:aa}))}.bind(this))}.bind(this));A.M.bind(h.V,function(){A.isPresenting?N.Vw():N.Vw(F.prototype.get.call(this,"lockedOrientation"))},this);this.lk.bind(h.V,function(){var Y=N.tLa();N.Vw();N.Vw(Y)},this)});Q.JUa="orientationChange";Q.prototype.logCapabilities=function(){this.r4a()};Q.prototype.activateAudio=function(T){this.bXa(T)};Q.prototype.Bfa= function(T){F.prototype.Bfa.apply(this,arguments);this.set("fullscreenEnabled",T)};Q.prototype.Pb=function(){F.prototype.Pb.call(this);this.m("mute",!1);this.m("fullscreenEnabled",!1)};Q.prototype.Kb=function(){F.prototype.Kb.call(this);this.Ixa.getParent()!=this&&this.mb(this.Ixa);this.Ru.getParent()!=this&&(this.mb(this.Ru),this.Ru.mb(this.B0),this.Ru.mb(this.NM),this.Ru.mb(this.hO))};Q.prototype.y7a=function(T){var Y=[];this.NM&&Y.push(this.NM);this.hO&&Y.push(this.hO);this.B0&&Y.push(this.B0); for(var aa=!0,ba=0;ba<=Y.length&&aa;ba++)aa=T.length-(Y.length-ba)==T.indexOf(Y[ba]);return aa?T:T.filter(function(ea){return Y.indexOf(ea)<0}).concat(Y)};Q.prototype.jb=function(){this.TDa||(this.TDa=m.difference(this.w2a(),"backgroundOpacity visible includeInLayout state left right top bottom centerX centerY width height minWidth minHeight maxWidth maxHeight actualWidth actualHeight paddingLeft paddingTop paddingRight paddingBottom".split(" ")));this.Pc(this.TDa,{},[this.Ru],!0,!0);F.prototype.jb.call(this); this.Fpb===!0&&this.Dpb()};Q.prototype.set=function(T,Y){switch(T){case "children":this.Ru.set(T,this.y7a(Y));return;case "creationPolicy":this.Ru.set(T,Y);return;case "fullscreenAvailable":case "gyroscopeAvailable":case "cardboardAvailable":case "isMobile":case "orientation":case "surfaceSelectionAvailable":case "touchEnabled":case "touchDevice":case "vrControllerAvailable":case "vrAvailable":Y=this.get(T);break;case "fullscreenEnabled":Y=this.lk.ol()&&Y;break;case "fullscreenFallback":E.hra(Y); break;case "lockedOrientation":u.kf()&&(Y=void 0);N.Vw(Y);break;case "installAvailable":Y=this.fh.ready();break;case "mouseWheelEnabled":this.glb(z.Tg("mousewheelenabled",Y));break;case "backgroundPreloadEnabled":this.Q7a(Y);break;case "vrPolyfillScale":A.T9=Y;break;case "desktopMipmappingEnabled":r.tkb(Y);break;case "mobileMipmappingEnabled":r.elb(Y);break;case "defaultVRPointer":Y=="gaze"?A.QRa(A.tua.RF):A.QRa(A.tua.SF);break;case "xrPanels":this.Kma=Y;this.wHa();break;case "xrPanelsEnabled":this.QHa= this.i6&&Y,this.wHa()}F.prototype.set.call(this,T,Y)};Q.prototype.get=function(T,Y){switch(T){case "children":case "creationPolicy":return this.Ru.get(T,Y);case "touchEnabled":return u.Jp();case "touchDevice":return u.psa();case "isMobile":return u.ub();case "orientation":return N.get();case "lockedOrientation":return N.tLa();case "gyroscopeAvailable":return v.ol;case "cardboardAvailable":case "vrAvailable":return A.zQ;case "arAvailable":return A.pIa;case "vrControllerAvailable":return A.zob;case "fullscreenAvailable":return this.lk.ol(); case "vrPolyfillScale":return A.T9;case "installAvailable":return this.fh.ready();case "surfaceSelectionAvailable":return!0;case "pageScale":return this.fD;case "xrPanels":return this.Kma;case "xrPanelsEnabled":return this.QHa;case L:case U:return this.i6?F.prototype.get.apply(this,arguments):!0;default:return F.prototype.get.apply(this,arguments)}};Q.prototype.wHa=function(){this.Dbb.set(this.QHa?this.Kma.slice():[])};Q.prototype.iCa=function(){this.set("mute",!0)};Q.prototype.XCa=function(){this.set("mute", !1)};Q.prototype.t5a=function(){this.d0.set("pressed",this.get("mute"))};Q.prototype.yBa=function(){this.set("fullscreenEnabled",!0)};Q.prototype.zBa=function(){this.set("fullscreenEnabled",!1)};Q.prototype.b5a=function(){this.get("fullscreenEnabled")?this.lk.xt():this.lk.sm();this.$_.set("pressed",this.get("fullscreenEnabled"));this.set("fullscreenEnabled",this.lk.enabled())};Q.prototype.N5a=function(){var T=this.get("settings");T&&(x.initialize(T),y.Cra(T),THREE.ata=T.get(TDV.PlayerSettings.Gaa), THREE.jta=T.get(TDV.PlayerSettings.Xaa),THREE.YB=T.get(TDV.PlayerSettings.YB),this.fh.Cra(T))};Q.prototype.Q7a=function(T){y.enabled(T)};Q.prototype.xya=function(){var T=[];this.RL=[];(this.get("menu")||[]).forEach(function(ba){var ea=ba.get("label");T.push(ba.get("label"));ea&&this.RL.push(function(){ba.o("click")})}.bind(this));var Y=this.get("defaultMenu",[]);if(Y.indexOf("rotation")>=0){var aa=this.Ci("PanoramaPlayer");aa.length&&(T.push(aa[0].get("mouseControlMode")==g.wF?b("change-to-drag-and-release"): b("change-to-click-and-move")),this.RL.push(this.A$a.bind(this)))}Y.indexOf("fullscreen")>=0&&this.lk.ol()&&(T.push(this.lk.enabled()?b("exit-fullscreen"):b("enter-fullscreen")),this.RL.push(this.y$a.bind(this)));Y.indexOf("mute")>=0&&(T.push(this.get("mute")?b("unmute"):b("mute")),this.RL.push(this.z$a.bind(this)));Y=[].concat(e.name?[e.name]:[],e.heb!="false"?e.XX?["v:"+e.XX+"."+e.cY]:["v:"+e.cY]:[]).join(" ");Y!=""&&(T.length>0&&T.push(""),T.push(Y),this.RL.push(this.d6a.bind(this)));return T}; Q.prototype.h3=function(T){this.RL[T.data.index]()};Q.prototype.A$a=function(){var T=this.Ci("PanoramaPlayer"),Y=T[0].get("mouseControlMode")==g.wF?g.tx:g.wF;T.forEach(function(aa){R.setItem(K,Y);aa.set("mouseControlMode",Y)})};Q.prototype.Q5a=function(){R.getItem(K)==g.tx&&this.Ci("PanoramaPlayer").forEach(function(T){T.set("mouseControlMode",g.tx)});z.Bk("mute")&&this.set("mute",z.Tg("mute",this.get("mute")))};Q.prototype.y$a=function(){this.lk.toggle()};Q.prototype.z$a=function(){this.set("mute", !this.get("mute"))};Q.prototype.d6a=function(){e.NTa&&window.open(e.NTa,"_blank")};Q.prototype.w5a=function(){this.o(Q.JUa)};Q.prototype.r4a=function(){m.zeb(!0);m.log("UA: "+navigator.userAgent);m.log("screen: ("+Math.max(window.screen.width,window.screen.height)+", "+Math.min(window.screen.width,window.screen.height)+") dpr: "+window.devicePixelRatio+" ("+Math.max(window.screen.width,window.screen.height)*window.devicePixelRatio+", "+Math.min(window.screen.width,window.screen.height)*window.devicePixelRatio+ ")");u.log();t.log();b.log();A.log()};Q.prototype.bXa=function(T){G.active()?O.wait(T):(G.Tsa(T),G.request(this))};var K="tdvp_"+window.location.pathname+"_rotation_mode",L=[119,97,116,101,114,109,97,114,107].map(function(T){return String.fromCharCode(T)}).join(""),U=[97,99,97,100,101,109,105,99,87,97,116,101,114,109,97,114,107].map(function(T){return String.fromCharCode(T)}).join("");return Q}); define("tdv/player/script/PlayerMenuItem",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PlayerMenuItem",m,function(){m.call(this)})}); define("tdv/player/script/PopupPanoramaOverlay","require tdv/utils tdv/binding/Bindable tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/script/helper/PlaybackPositionHelper".split(" "),function(a){a("tdv/utils");var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/script/helper/PlaybackPositionHelper");a=g.define("PopupPanoramaOverlay",m,function(){m.call(this); this.set("state",n.ca);this.bind(h.L("state"),function(){this.o(h.Pd)},this,!0);this.Gd=void 0});a.prototype.show=function(){this.set("visible",!0)};a.prototype.oe=function(){this.set("visible",!1)};a.prototype.play=function(){this.set("state",n.PLAYING)};a.prototype.pause=function(){this.set("state",n.iL)};a.prototype.stop=function(){this.set("state",n.ca)};a.prototype.hide=a.prototype.oe;a.prototype.pause=a.prototype.pause;a.prototype.play=a.prototype.play;a.prototype.show=a.prototype.show;a.prototype.stop= a.prototype.stop;a.prototype.get=function(e,b){switch(e){case "playbackPositions":return this.Gd===void 0&&(this.Gd=k.Sfb(this)),this.Gd}return m.prototype.get.call(this,e,b)};a.prototype.set=function(e,b){var c=!1;switch(e){case "hfov":case "vfov":case "pitch":case "rotationX":case "rotationY":case "rotationZ":case "yaw":case "playbackPositions":this.Gd=void 0,c=!0}m.prototype.set.call(this,e,b);c&&e!="playbackPositions"&&this.o(h.L("playbackPositions"))};return a}); define("tdv/player/script/ProgressBar",["require","tdv/player/view/ProgressBar","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/player/view/ProgressBar");return a("tdv/player/parser/ClassInfo").define("ProgressBar",m,function(){m.call(this)})}); define("tdv/player/script/QuadFramePanoramaOverlay",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("QuadFramePanoramaOverlay",m,function(){m.call(this);this.Gd=void 0});a.prototype.set=function(k,e){var b=!1;switch(k){case "vertices":case "playbackPositions":this.Gd= void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd===void 0&&(this.Gd=g.Ioa(this)),this.Gd}return m.prototype.get.call(this,k,e)};return a}); define("tdv/player/script/QuadHotspotPanoramaOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlay");return m.define("QuadHotspotPanoramaOverlay",h,function(){h.call(this)})}); define("tdv/player/script/QuadHotspotPanoramaOverlayArea",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlayArea"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlayArea");return m.define("QuadHotspotPanoramaOverlayArea",h,function(){h.apply(this,arguments)})}); define("tdv/player/script/QuadHotspotPanoramaOverlayImageBase",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("QuadHotspotPanoramaOverlayImageBase",m,function(){m.call(this);this.Gd=void 0});a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd=== void 0&&(this.Gd=g.Ioa(this)),this.Gd}return m.prototype.get.call(this,k,e)};a.prototype.set=function(k,e){var b=!1;switch(k){case "opacity":case "distance":case "vertices":case "playbackPositions":this.Gd=void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};return a}); define("tdv/player/script/QuadHotspotPanoramaOverlayImage",["require","tdv/player/parser/ClassInfo","tdv/player/script/QuadHotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/QuadHotspotPanoramaOverlayImageBase");return m.define("QuadHotspotPanoramaOverlayImage",h,function(){h.call(this)})}); define("tdv/player/script/QuadHotspotPanoramaOverlayMap",["require","tdv/player/parser/ClassInfo","tdv/player/script/QuadHotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/QuadHotspotPanoramaOverlayImageBase");return m.define("QuadHotspotPanoramaOverlayMap",h,function(){h.call(this)})}); define("tdv/player/script/QuadVideoPanoramaOverlay","require tdv/binding/Bindable tdv/constants/EventName tdv/constants/PlaybackState tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/PlaybackPositionHelper".split(" "),function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/events/Event"),k=a("tdv/player/parser/ClassInfo"),e=a("tdv/player/script/helper/PlaybackPositionHelper");a=k.define("QuadVideoPanoramaOverlay", m,function(){m.call(this);this.Gd=void 0});a.prototype.play=a.prototype.play=function(){this.set("state",n.PLAYING)};a.prototype.pause=a.prototype.pause=function(){this.set("state",n.$b)};a.prototype.stop=a.prototype.stop=function(){this.set("state",n.ca)};a.prototype.set=function(b,c){var d=!1;switch(b){case "state":var f=this.get("state")||n.ca;f==n.ca&&c==n.PLAYING&&this.o(h.Up);f!=c&&this.o(new g(h.Pd,{oldState:f,state:c}));break;case "enabledInCardboard":this.set("enabledInVR",c);break;case "distance":case "opacity":case "playbackPositions":case "vertices":this.Gd= void 0,d=!0}m.prototype.set.call(this,b,c);d&&b!="playbackPositions"&&this.o(h.L("playbackPositions"))};a.prototype.get=function(b,c){switch(b){case "playbackPositions":return this.Gd===void 0&&(this.Gd=e.Ioa(this)),this.Gd}return m.prototype.get.call(this,b,c)};return a}); define("tdv/player/script/RadialModel3DDisplayEffect",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("RadialModel3DDisplayEffect",m,function(){m.call(this)})}); define("tdv/player/script/RainPanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("RainPanoramaOverlay",m,function(){m.call(this)});a.prototype.get=function(h,n){h=="startState"&&n===void 0&&(n=this.get("initialState"));return m.prototype.get.call(this,h,n)};return a}); define("tdv/player/script/RotationalCameraMovement",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("RotationalCameraMovement",m,function(){m.call(this)})});define("tdv/player/script/SlideInEffect",["require","tdv/view/effects/SlideInEffect","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/effects/SlideInEffect");return a("tdv/player/parser/ClassInfo").define("SlideInEffect",m,function(){m.call(this)})}); define("tdv/player/script/SlideOutEffect",["require","tdv/view/effects/SlideOutEffect","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/effects/SlideOutEffect");return a("tdv/player/parser/ClassInfo").define("SlideOutEffect",m,function(){m.call(this)})}); define("tdv/player/script/SnowPanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("SnowPanoramaOverlay",m,function(){m.call(this)});a.prototype.get=function(h,n){h=="startState"&&n===void 0&&(n=this.get("initialState"));return m.prototype.get.call(this,h,n)};return a}); define("tdv/player/script/SphericPanoramaFrame",["require","tdv/player/parser/ClassInfo","tdv/player/script/PanoramaFrame"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PanoramaFrame");a=m.define("SphericPanoramaFrame",h,function(){h.call(this)});a.prototype.Mn=function(){var n=this.get("sphere");return n&&m.Oa("Video360Resource",n)?!0:(n=this.get("stereoSphere"))&&m.Oa("Video360Resource",n)?!0:!1};return a}); define("tdv/player/script/SphereModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("SphereModel3DObject",h,function(){h.call(this)})});define("tdv/player/script/SpotLight",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("SpotLight",m,function(){m.call(this)})}); define("tdv/player/script/SpriteModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");a=m.define("SpriteModel3DObject",h,function(){h.call(this)});a.prototype.getPixelScale=function(){return this.get("worldPixelScale")};return a}); define("tdv/player/script/SurfaceReticleModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("SurfaceReticleModel3DObject",h,function(){h.call(this);this.set("transparentAreaActive",!0)})}); define("tdv/view/containers/tabpanel/Tab","require exports tdv/binding/ChangeWatcher tdv/view/containers/Container tdv/view/constants/Alignment tdv/view/text/Label".split(" "),function(a,m,h,n,g,k){return function(e){function b(c){var d=e.call(this)||this;d.gf("Tab");d.Ria=c;d.An="";d.fla=!1;d.Za=null;d.cAa=null;d.set("childrenInteractionEnabled",!1);d.set("contentOpaque",!0);return d}P(b,e);b.prototype.Pb=function(){e.prototype.Pb.call(this);this.m("horizontalAlign",g.$e);this.m("verticalAlign", g.$d);this.m("fontFamily");this.m("fontSize");this.m("fontColor");this.m("fontWeight");this.m("fontStyle");this.m("textDecoration");this.m("textShadowBlurRadius");this.m("textShadowColor");this.m("textShadowHorizontalLength");this.m("textShadowOpacity");this.m("textShadowVerticalLength")};b.prototype.Kb=function(){e.prototype.Kb.call(this);this.Za==null&&(this.Za=new k,this.Za.set("horizontalAlign","center"),this.mb(this.Za))};b.prototype.bs=function(){e.prototype.bs.call(this);this.cAa=h.jx(this.Ria, "label",this.XM,this);this.h5(this.Ria.get("label"))};b.prototype.Uja=function(){e.prototype.Uja.call(this);this.cAa.jF()};b.prototype.XM=function(){var c=this.Ria.get("label");this.h5(c?c:"")};b.prototype.h5=function(c){this.An!=c&&(this.An=c,this.fla=!0,this.Tf())};b.prototype.jb=function(){this.fla&&(this.fla=!1,this.Za.set("text",this.An));this.Pc(b.nva,b.jR,[this.Za],!0,!0);e.prototype.jb.call(this)};b.nva="fontFamily fontSize fontColor fontWeight fontStyle textDecoration textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "); b.jR=Object.fromEntries(b.nva.map(function(c){return[c,c]}));return b}(n)});define("tdv/view/containers/tabpanel/TabsAlignment",["require","exports"],function(){return{UQ:"normal",bL:"inverse",cta:"center"}}); define("tdv/view/containers/tabpanel/TabPanel","require exports tdv/utils tdv/view/constants/GradientDirection tdv/view/constants/Cursor tdv/constants/EventName tdv/view/containers/Container tdv/view/constants/Alignment tdv/view/constants/LayoutMode tdv/view/constants/OverflowPolicy tdv/view/containers/tabpanel/Tab tdv/view/containers/tabpanel/TabsAlignment tdv/view/constants/Position tdv/view/core/visuals/VisualsType".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p,q){return function(r){function t(){var u= r.call(this)||this;u.gf("TabPanel");u.Jg=-1;u.tI=!1;u.HV=[];u.E5=!1;u.hl=[];u.Sia=!1;u.GV=[];u.ui=null;u.Ph=null;u.pK(!1);return u}P(t,r);t.prototype.Pb=function(){r.prototype.Pb.call(this);this.m("pages",[]);this.m("selectedIndex",-1);this.m("tabsSize",25);this.m("tabsPosition",p.Tc);this.m("tabsGap",0);this.m("tabsPadding",10);this.m("tabsAlign",l.UQ);this.m("tabsBackgroundOpacity",.6);this.m("tabsBackgroundColor",["#FFFFFF","#CCCCCC"]);this.m("tabsBackgroundColorRatios",[0,.5]);this.m("tabsRollOverBackgroundOpacity", 1);this.m("tabsRollOverBackgroundColor",["#FFFFFF","#CCCCCC"]);this.m("tabsRollOverBackgroundColorRatios",[0,.5]);this.m("backgroundColor","#FFFFFF");this.m("selectedTabBackgroundOpacity",1);this.m("selectedTabBackgroundColor");this.m("selectedTabBackgroundColorRatios");this.m("borderRadius",6);this.m("pagePaddingLeft",4);this.m("pagePaddingTop",4);this.m("pagePaddingRight",4);this.m("pagePaddingBottom",4);this.m("borderColor","#AAAAAA");this.m("borderSize",1);this.m("selectedTabFontSize");this.m("selectedTabFontColor"); this.m("selectedTabFontWeight");this.m("selectedTabFontStyle");this.m("selectedTabTextDecoration");this.m("selectedTabTextShadowBlurRadius");this.m("selectedTabTextShadowColor");this.m("selectedTabTextShadowHorizontalLength");this.m("selectedTabTextShadowOpacity");this.m("selectedTabTextShadowVerticalLength");this.m("tabsFontFamily");this.m("tabsFontSize");this.m("tabsFontColor");this.m("tabsFontWeight");this.m("tabsFontStyle");this.m("tabsTextDecoration");this.m("tabsTextShadowBlurRadius");this.m("tabsTextShadowColor"); this.m("tabsTextShadowHorizontalLength");this.m("tabsTextShadowOpacity");this.m("tabsTextShadowVerticalLength");this.m("tabsRollOverFontSize");this.m("tabsRollOverFontColor");this.m("tabsRollOverFontWeight");this.m("tabsRollOverFontStyle");this.m("tabsRollOverTextDecoration");this.m("tabsRollOverTextShadowBlurRadius");this.m("tabsRollOverTextShadowColor");this.m("tabsRollOverTextShadowHorizontalLength");this.m("tabsRollOverTextShadowOpacity");this.m("tabsRollOverTextShadowVerticalLength")};t.prototype.co= function(u,v,w,x){r.prototype.co.call(this,u,v,w,x);this.yD("shadow")};t.prototype.Kb=function(){e.prototype.Kb.call(this);this.Ph==null&&(this.Ph=new e,this.Ph.pK(!1),this.mb(this.Ph));this.ui==null&&(this.ui=new e,this.ui.pK(!1),this.mb(this.ui))};t.prototype.set=function(u,v){u=="pages"?this.jlb(v||[]):u=="selectedIndex"?this.Zw(v):u=="layout"&&(v=c.Cob);e.prototype.set.call(this,u,v)};t.prototype.get=function(u,v){return u=="pages"?this.hl:u=="selectedIndex"?this.PLa():e.prototype.get.call(this, u,v)};t.prototype.Zw=function(u){this.Jg!=u&&(this.Jg=u,this.Jg=Math.min(Math.max(this.Jg,-1),this.hl.length),this.tI=!0,this.Tf(),this.o(k.V),this.o(k.L("selectedIndex")))};t.prototype.PLa=function(){return this.Jg};t.prototype.jlb=function(u){var v=this;h.x8(this.hl,u)||(this.hl.forEach(function(w){w.h(k.od,v.oDa,v);w.h(k.jd,v.nDa,v)}),this.hl=u,this.hl.forEach(function(w){w.bind(k.od,v.oDa,v,!1);w.bind(k.jd,v.nDa,v,!1)}),this.Sia=!0,this.Tf())};t.prototype.m$a=function(u){this.HV=h.union(this.HV, [u.source]);this.E5=!0;this.Tf()};t.prototype.l$a=function(u){this.HV=h.difference(this.HV,[u.source]);this.E5=!0;this.Tf()};t.prototype.k$a=function(u){this.Zw(this.GV.indexOf(u.source))};t.prototype.oDa=function(u){this.Zw(this.hl.indexOf(u.source))};t.prototype.nDa=function(u){if(this.hl.indexOf(u.source)==this.Jg){for(u=this.hl.length-1;u>=0;u--)if(this.hl[u].get("visible")){this.Zw(u);return}this.Jg=-1;this.Zw(0)}};t.prototype.jb=function(){var u=this,v=!1,w=!1,x=!1,y=!1,z=!1,A=this.G("tabsPosition"), D=this.G("tabsAlign");this.Sia&&(this.GV=[],this.ui.kQa(),this.Ph.kQa(),this.hl.forEach(function(H){var E=new f(H);E.pK(!0);E.bind(k.uc,u.m$a,u,!1);E.bind(k.Eb,u.l$a,u,!1);E.bind(k.Sa,u.k$a,u,!1);u.GV.push(E);u.ui.mb(E);H.xa({top:void 0,left:void 0,right:void 0,bottom:void 0,width:"100%",height:"100%"});u.Ph.mb(H)}),this.Jg=Math.min(Math.max(this.Jg,0),this.hl.length-1),this.Sia=!1,w=v=z=!0);this.S("tabsPosition")&&(this.$("tabsPosition"),y=w=v=!0);this.tI&&(this.tI=!1,x=w=z=!0);this.E5&&(this.E5= !1,x=!0);this.S("overflow")&&this.ui.xa({contentOpaque:this.G("overflow")==d.Wr,overflow:this.G("overflow")});["tabsAlign","tabsGap","tabsSize"].forEach(function(H){u.S(H)&&(u.$(H),v=!0)});"borderRadius borderTopRadius borderBottomRadius borderLeftRadius borderRightRadius borderTopLeftRadius borderTopRightRadius borderBottomLeftRadius borderBottomRightRadius borderSize borderLeftSize borderTopSize borderRightSize borderBottomSize borderColor borderLeftColor borderTopColor borderRightColor borderBottomColor shadow shadowHorizontalLength shadowVerticalLength shadowBlurRadius shadowSpread shadowColor backgroundOpacity backgroundColor backgroundColorRatios".split(" ").forEach(function(H){u.S(H)&& (u.$(H),y=w=!0)});"tabsBackgroundOpacity tabsBackgroundColor tabsBackgroundColorRatios selectedTabBackgroundOpacity selectedTabBackgroundColor selectedTabBackgroundColorRatios selectedTabFontSize selectedTabFontColor selectedTabFontWeight selectedTabFontStyle selectedTabTextDecoration selectedTabTextShadowColor selectedTabTextShadowHorizontalLength selectedTabTextShadowVerticalLength selectedTabTextShadowBlurRadius selectedTabTextShadowOpacity tabsFontFamily tabsFontSize tabsFontColor tabsFontWeight tabsFontStyle tabsPadding tabsTextDecoration tabsRollOverFontSize tabsRollOverFontColor tabsTextShadowColor tabsTextShadowHorizontalLength tabsTextShadowVerticalLength tabsTextShadowBlurRadius tabsTextShadowOpacity tabsRollOverFontWeight tabsRollOverFontStyle tabsRollOverTextDecoration tabsRollOverTextShadowColor tabsRollOverTextShadowHorizontalLength tabsRollOverTextShadowVerticalLength tabsRollOverTextShadowBlurRadius tabsRollOverTextShadowOpacity".split(" ").forEach(function(H){u.S(H)&& (u.$(H),w=!0)});["pagePaddingLeft","pagePaddingTop","pagePaddingRight","pagePaddingBottom"].forEach(function(H){u.S(H)&&(u.$(H),y=!0)});this.S("backgroundColorDirection")&&this.$("backgroundColorDirection");if(v){switch(A){case p.fb:this.ui.xa({left:0,right:void 0});break;case p.Db:this.ui.xa({left:void 0,right:0});break;case p.Tc:this.ui.xa({bottom:void 0,top:0});break;case p.Hc:this.ui.xa({bottom:0,top:void 0})}switch(A){case p.fb:case p.Db:this.ui.xa({layout:c.Uk,top:0,bottom:0,height:void 0,width:this.G("tabsSize")}); switch(D){case l.bL:this.ui.set("verticalAlign",b.Hc);break;case l.cta:this.ui.set("verticalAlign",b.$d);break;default:this.ui.set("verticalAlign",b.Tc)}break;case p.Tc:case p.Hc:switch(this.ui.xa({layout:c.Ni,left:0,right:0,height:this.G("tabsSize"),width:void 0}),D){case l.bL:this.ui.set("horizontalAlign",b.Db);break;case l.cta:this.ui.set("horizontalAlign",b.$e);break;default:this.ui.set("horizontalAlign",b.fb)}}this.ui.set("gap",this.G("tabsGap"))}if(w)for(var F=0;F0?A==p.fb||A==p.Tc?B[0]:B[B.length-1]:B),C.xa({backgroundOpacity:this.G("selectedTabBackgroundOpacity","tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:B,backgroundColorRatios:this.G("selectedTabBackgroundColorRatios","tabsBackgroundColorRatios"),cursor:g.De,fontSize:this.G("selectedTabFontSize","tabsFontSize"),fontColor:this.G("selectedTabFontColor","tabsFontColor"),fontWeight:this.G("selectedTabFontWeight","tabsFontWeight"), fontStyle:this.G("selectedTabFontStyle","tabsFontStyle"),textDecoration:this.G("selectedTabTextDecoration","tabsTextDecoration"),textShadowColor:this.G("selectedTabTextShadowColor","tabsTextShadowColor"),textShadowHorizontalLength:this.G("selectedTabTextShadowHorizontalLength","tabsTextShadowHorizontalLength"),textShadowVerticalLength:this.G("selectedTabTextShadowVerticalLength","tabsTextShadowVerticalLength"),textShadowBlurRadius:this.G("selectedTabTextShadowBlurRadius","tabsTextShadowBlurRadius"), textShadowOpacity:this.G("selectedTabTextShadowOpacity","tabsTextShadowOpacity")})):B?C.xa({backgroundOpacity:this.G("tabsRollOverBackgroundOpacity","tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:this.G("tabsRollOverBackgroundColor","tabsBackgroundColor"),backgroundColorRatios:this.G("tabsRollOverBackgroundColorRatios","tabsBackgroundColorRatios"),cursor:g.qf,fontSize:this.G("tabsRollOverFontSize","tabsFontSize"),fontColor:this.G("tabsRollOverFontColor","tabsFontColor"),fontWeight:this.G("tabsRollOverFontWeight", "tabsFontWeight"),fontStyle:this.G("tabsRollOverFontStyle","tabsFontStyle"),textDecoration:this.G("tabsRollOverTextDecoration","tabsTextDecoration"),textShadowColor:this.G("tabsRollOverTextShadowColor","tabsTextShadowColor"),textShadowHorizontalLength:this.G("tabsRollOverTextShadowHorizontalLength","tabsTextShadowHorizontalLength"),textShadowVerticalLength:this.G("tabsRollOverTextShadowVerticalLength","tabsTextShadowVerticalLength"),textShadowBlurRadius:this.G("tabsRollOverTextShadowBlurRadius","tabsTextShadowBlurRadius"), textShadowOpacity:this.G("tabsRollOverTextShadowOpacity","tabsTextShadowOpacity")}):C.xa({backgroundOpacity:this.G("tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:this.G("tabsBackgroundColor"),backgroundColorRatios:this.G("tabsBackgroundColorRatios"),fontSize:this.G("tabsFontSize"),fontColor:this.G("tabsFontColor"),fontWeight:this.G("tabsFontWeight"),fontStyle:this.G("tabsFontStyle"),textDecoration:this.G("tabsTextDecoration"),textShadowColor:this.G("tabsTextShadowColor"),textShadowHorizontalLength:this.G("tabsTextShadowHorizontalLength"), textShadowVerticalLength:this.G("tabsTextShadowVerticalLength"),textShadowBlurRadius:this.G("tabsTextShadowBlurRadius"),textShadowOpacity:this.G("tabsTextShadowOpacity")}),C.xa({borderLeftSize:A==p.Db&&x?0:void 0,borderRightSize:A==p.fb&&x?0:void 0,borderBottomSize:A==p.Tc&&x?0:void 0,borderTopSize:A==p.Hc&&x?0:void 0});if(y){F=this.G("tabsSize");switch(A){case p.fb:this.Ph.xa({left:F-(this.G("borderLeftSize","borderSize")||0),right:0,top:0,bottom:0});break;case p.Db:this.Ph.xa({left:0,right:F-(this.G("borderRightSize", "borderSize")||0),top:0,bottom:0});break;case p.Tc:this.Ph.xa({left:0,right:0,top:F-(this.G("borderTopSize","borderSize")||0),bottom:0});break;case p.Hc:this.Ph.xa({left:0,right:0,top:0,bottom:F-(this.G("borderBottomSize","borderSize")||0)})}A==p.Tc&&D==l.UQ||A==p.fb&&D==l.UQ?this.Ph.set("borderTopLeftRadius",0):this.Ph.set("borderTopLeftRadius",this.G("borderTopLeftRadius","borderTopRadius","borderLeftRadius","borderRadius"));A==p.Tc&&D==l.bL||A==p.Db&&D==l.UQ?this.Ph.set("borderTopRightRadius", 0):this.Ph.set("borderTopRightRadius",this.G("borderTopRightRadius","borderTopRadius","borderRightRadius","borderRadius"));A==p.Hc&&D==l.UQ||A==p.fb&&D==l.bL?this.Ph.set("borderBottomLeftRadius",0):this.Ph.set("borderBottomLeftRadius",this.G("borderBottomLeftRadius","borderBottomRadius","borderLeftRadius","borderRadius"));A==p.Hc&&D==l.bL||A==p.Db&&D==l.bL?this.Ph.set("borderBottomRightRadius",0):this.Ph.set("borderBottomRightRadius",this.G("borderBottomRightRadius","borderBottomRadius","borderRightRadius", "borderRadius"));this.Ph.xa({paddingLeft:this.G("pagePaddingLeft"),paddingTop:this.G("pagePaddingTop"),paddingRight:this.G("pagePaddingRight"),paddingBottom:this.G("pagePaddingBottom"),borderLeftSize:this.G("borderLeftSize","borderSize"),borderTopSize:this.G("borderTopSize","borderSize"),borderRightSize:this.G("borderRightSize","borderSize"),borderBottomSize:this.G("borderBottomSize","borderSize"),borderLeftColor:this.G("borderLeftColor","borderColor"),borderTopColor:this.G("borderTopColor","borderColor"), borderRightColor:this.G("borderRightColor","borderColor"),borderBottomColor:this.G("borderBottomColor","borderColor"),shadow:this.G("shadow")&&this.hNa(),shadowHorizontalLength:this.G("shadowHorizontalLength"),shadowVerticalLength:this.G("shadowVerticalLength"),shadowBlurRadius:this.G("shadowBlurRadius"),shadowSpread:this.G("shadowSpread"),shadowColor:this.G("shadowColor"),backgroundOpacity:this.G("backgroundOpacity"),backgroundColor:this.G("backgroundColor"),backgroundColorRatios:this.G("backgroundColorRatios")}); A==p.Tc||A==p.Hc?this.Ph.set("backgroundColorDirection",n.oca):this.Ph.set("backgroundColorDirection",n.q_)}if(z)for(F=0;F=0&&d<2;this.XL=c;var f;for(f=this.Go;fc);f++);for(;this.Go0&&(this.bf=[],this.XV())};a.prototype.XV=function(){this.hd.o(new g(n.Bl,{activeCues:this.bf.slice()}))};a.prototype.eea=function(){this.hk=[];this.hd.get("cues",[]).forEach(b=>{this.hk.push(new m(b.get("startTime",0),b,"start"));this.hk.push(new m(b.get("endTime", Number.POSITIVE_INFINITY),b,"end"))});this.hk.sort(function(b,c){return b.time==c.time?b.action==c.start?0:b.action=="start"?-1:1:b.time-c.time})};return a}); define("tdv/player/view/video/control/DisplayController","require tdv/utils tdv/view/util/Animation tdv/events/Event tdv/player/view/common/MediaDisplayController tdv/player/view/util/XR".split(" "),function(a){function m(b,c){this.video=b;this.startTime=c}var h=a("tdv/utils");a("tdv/view/util/Animation");var n=a("tdv/events/Event"),g=a("tdv/player/view/common/MediaDisplayController"),k=a("tdv/player/view/util/XR");m.prototype.isEqual=function(b){return b&&this.video==b.video};var e=h.extend(g,function(b, c){g.call(this,b);this.j=c});e.prototype.display=function(b,c){g.prototype.display.call(this,new m(b,c))};e.prototype.oe=function(){g.prototype.oe.call(this)};e.prototype.clear=function(){g.prototype.clear.call(this);this.j=null};e.prototype.Yg=function(b){g.prototype.Yg.call(this,b)};e.prototype.Zx=function(){g.prototype.Zx.call(this);this.P.Fc().vmb();this.P.Fc().zK();this.j.Ra(!0)};e.prototype.FT=function(b){g.prototype.FT.call(this,b);this.li.video.set("opacity",k.isPresenting?1:b);this.P.Fc().nK(b)}; e.prototype.xy=function(){g.prototype.xy.call(this);this.P.Fc().oJ()};e.prototype.oR=function(){g.prototype.oR.call(this)};e.prototype.JT=function(b){g.prototype.JT.call(this,b);this.li.video.set("opacity",Math.min(1,b*2));this.cf.video.set("opacity",Math.min(1,(1-b)*2))};e.prototype.bS=function(){g.prototype.bS.call(this)};e.prototype.ay=function(){g.prototype.ay.call(this);this.P.Fc().cF();this.j.Ra(k.isPresenting?!0:this.P.OX(this));this.cf.video.set("opacity",k.isPresenting?1:0);this.j.Qa()}; e.prototype.IT=function(b){g.prototype.IT.call(this,b);this.P.Fc().QE(Math.min(1,b*1.5));this.j.Ra(k.isPresenting?!0:this.P.OX(this));this.j.Qa()};e.prototype.aS=function(){this.P.Fc().VD();this.j.Ra(!1);this.j.Qa();g.prototype.aS.call(this)};e.prototype.mn=function(){g.prototype.mn.call(this);this.cf?this.o(new n(e.NF,{video:this.cf.video})):this.jp||this.o(new n(e.nta))};e.prototype.Qka=function(b){b.video&&this.o(new n(e.MF,{video:b.video}))};e.prototype.Zja=function(b,c){return b.video.get("chromaColor")&& !!c};e.prototype.P_=function(b){b.video&&(b.video.set("opacity",0),b.video.set("zIndex",1),this.cf&&this.cf.video.set("zIndex",0),this.li.video.set("currentTime",b.startTime||0),this.j.gcb(b.video),this.o(new n(e.Hba,{video:b.video,startTime:b.startTime})))};e.prototype.xN=function(b){b.video&&(this.j.Ojb(b.video),this.o(new n(e.Iba,{video:b.video})))};e.oc="request frame";e.Hba="video added";e.Iba="video removed";e.NF="video show";e.MF="video hide";e.nta="all pending videos hidden";return e}); define("tdv/player/view/video/control/PlaybackController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/constants/PlaybackState".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/PlaybackState"),e=m.extend(g,function(){g.call(this);this.hd=null;this.vf=!1;this.qea=k.ca});e.prototype.start=function(b){this.end();this.qka(b)};e.prototype.end=function(){this.stop(); this.GG()};e.prototype.clear=function(){this.GG()};e.prototype.play=function(){this.hd&&this.hd.set("state",k.PLAYING)};e.prototype.pause=function(){this.hd&&this.hd.set("state",k.$b)};e.prototype.osa=function(){this.hd&&(this.hd.get("state")==k.PLAYING?this.pause():this.play())};e.prototype.stop=function(){this.hd&&this.hd.set("state",k.ca)};e.prototype.Bg=function(b){this.vf=b;this.hd&&this.hd.set("mute",this.vf)};e.prototype.setTime=function(b){this.hd&&this.hd.set("currentTime",b)};e.prototype.getTime= function(){if(this.hd)return this.hd.get("currentTime")};e.prototype.qka=function(b){this.GG();this.hd=b;this.hd.set("mute",this.vf);this.hd.bind(h.L("state"),this.RN,this,!0);this.hd.bind(h.L("currentTime"),this.TI,this,!0);this.hd.bind(h.Ub,this.mW,this,!0)};e.prototype.GG=function(){this.hd&&(this.hd.h(h.L("state"),this.RN,this),this.hd.h(h.L("currentTime"),this.TI,this),this.hd.h(h.Ub,this.mW,this),this.hd=null)};e.prototype.TI=function(){this.o(new n(e.OF,{video:this.hd,time:this.hd.get("currentTime"), duration:this.hd.get("duration")}))};e.prototype.mW=function(){this.o(new n(e.RQ,{video:this.hd}))};e.prototype.RN=function(){var b=this.hd.get("state");this.qea!=b&&(this.qea=b,this.o(new n(e.gd,{state:this.qea})))};e.gd="playback state change";e.RQ="video end";e.OF="video time change";return e}); define("tdv/player/view/video/control/Controller","require tdv/utils tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/player/view/video/control/CueController tdv/player/view/video/control/DisplayController tdv/player/view/video/control/PlaybackController".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/PlaybackState"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/video/control/CueController"),e=a("tdv/player/view/video/control/DisplayController"), b=a("tdv/player/view/video/control/PlaybackController"),c=m.extend(g,function(d,f){g.call(this);this.P=d;this.j=f;this.j.set("visible",!1);this.Ya=new e(this.P,this.j);this.Ua=new b(this.j);this.fs=new k(this.j);this.Ya.bind(e.MF,this.Js,this,!0);this.Ya.bind(e.NF,this.ep,this,!0);this.Ya.bind(e.Hba,this.YCa,this,!0);this.Ya.bind(e.Iba,this.$Ca,this,!0);this.Ya.bind(e.nta,this.O4a,this,!0);this.Ua.bind(b.gd,this.Mf,this,!0);this.Ua.bind(b.RQ,this.dD,this,!0);this.Ua.bind(b.OF,this.sU,this,!0)});c.prototype.clear= function(){this.Ya.clear();this.Ua.clear();this.fs.clear();this.Ya.h(e.MF,this.Js,this);this.Ya.h(e.NF,this.ep,this);this.Ya.h(e.Hba,this.YCa,this);this.Ya.h(e.Iba,this.$Ca,this);this.Ua.h(b.gd,this.Mf,this);this.Ua.h(b.RQ,this.dD,this);this.Ua.h(b.OF,this.sU,this);this.P=this.j=this.fs=this.Ua=this.Ya=null};c.prototype.N$=function(d,f){this.j.set("visible",!0);this.Ya.display(d,f)};c.prototype.bB=function(){this.Ya.oe();this.Ua.end();this.fs.end()};c.prototype.play=function(){this.Ua.play()};c.prototype.stop= function(){this.Ua.stop()};c.prototype.pause=function(){this.Ua.pause()};c.prototype.Bg=function(d){this.Ua.Bg(d)};c.prototype.setTime=function(d){this.Ua.setTime(d)};c.prototype.getTime=function(){return this.Ua.getTime()};c.prototype.osa=function(){this.Ua.osa()};c.prototype.YCa=function(d){var f=d.data.video;this.Ua.start(f,d.data.startTime);this.fs.start(f)};c.prototype.$Ca=function(){};c.prototype.ep=function(d){d=d.data.video;d.get("autoplay")&&d.get("state")!=h.PLAYING&&d.get("state")!=h.$b&& d.set("state",h.PLAYING);this.o(new n(c.NF,{video:d}))};c.prototype.Js=function(d){this.o(new n(c.MF,{video:d.data.video}))};c.prototype.O4a=function(){this.j.set("visible",!1)};c.prototype.dD=function(d){this.o(new n(c.RQ,{video:d.data.video}))};c.prototype.sU=function(d){this.o(new n(c.OF,{video:d.data.video,time:d.data.time,duration:d.data.duration}))};c.prototype.Mf=function(d){this.o(new n(c.gd,{state:d.data.state}))};c.NF="videoShow";c.MF="videoHide";c.RQ="videoEnd";c.OF="videoTimeChange";c.gd= "playbackStateChange";return c}); define("tdv/player/view/video/renderer/RendererOverlay","require exports tdv/constants/EventName tdv/view/constants/Cursor tdv/view/core/UIComponent tdv/player/view/UserInteractionWindow".split(" "),function(a,m,h,n,g,k){return function(e){function b(){var c=e.call(this)||this;c.set("toolTipDisabled",!0);c.set("cursor",n.LB);c.bind(h.Rb,c.kd,c,!0);c.bI=new k.lua;c.bI.mra(k.lua.Nba);c.bI.kg(c.j4=!1);[c.bI.cc()].forEach(function(d,f){d.style.position="absolute";d.style.left="0";d.style.top="0";d.style.right= "0";d.style.bottom="0";d.style.overflow="hidden";d.style.zIndex=f}.bind(c));return c}P(b,e);b.prototype.Kb=function(){e.prototype.Kb.call(this);[this.bI.cc()].forEach(function(c){c.parentElement||this.wa().uk(c)}.bind(this))};b.prototype.vra=function(c,d){this.j4!=c&&(this.j4=c,this.bI.VQa(d),this.bI.kg(c))};b.prototype.kd=function(){this.bI.setSize(this.nb(),this.Mb())};return b}(g)}); define("tdv/player/view/video/renderer/adapters/VideoAdapter","require exports tdv/constants/EventName tdv/view/constants/ScaleMode tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/view/av/VideoPlayer tdv/player/view/renderer2d/adapters/CameraAdapter tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c){return function(){function d(f,l,p,q){this.video=f;this.Ag=l;this.renderer=p;this.eb=q;this.s9=this.s9.bind(this);this.SA=this.SA.bind(this);this.Sn=this.Sn.bind(this);this.E9= this.E9.bind(this);g.ba(this.video,["video.levels.url","video.levels.srcObject","video.levels.width","video.levels.height"],this.s9,!0);g.ba(this.video,["zIndex"],this.SA,!0);g.ba(this.eb,["distance"],this.Sn,!0);g.ba(this.video,["scaleMode"],this.E9,!0);this.renderer.bind(h.Rb,this.Nt,this,!0);c.M.bind(h.V,this.Ta,this,!0);this.Nt();this.gu()}d.prototype.dispose=function(){g.da(this.video,["video.levels.url","video.levels.srcObject","video.levels.width","video.levels.height"],this.s9);g.da(this.video, ["zIndex"],this.SA);g.da(this.eb,["distance"],this.Sn);g.da(this.video,["scaleMode"],this.E9);this.renderer.h(h.Rb,this.Nt,this);c.M.h(h.V,this.Ta,this);this.Ca()};d.prototype.s9=function(){var f,l,p=e.zk(this.video.get("video"));this.level!==p&&(this.level=p,this.videoWidth=((f=this.level)===null||f===void 0?void 0:f.get("width"))||100,this.videoHeight=((l=this.level)===null||l===void 0?void 0:l.get("height"))||100,this.io(),this.lg())};d.prototype.SA=function(){var f=this.video.get("zIndex");this.zIndex!== f&&(this.zIndex=f,this.lg())};d.prototype.Sn=function(){var f=this.eb.get("distance");this.distance!==f&&(this.distance=f,this.lg())};d.prototype.E9=function(){var f=this.video.get("scaleMode");this.NE!==f&&(this.NE=f,this.lg())};d.prototype.Nt=function(){var f=this.renderer.Xh()||1,l=this.renderer.Wh()||1;if(this.Pw!==f||this.Ow!==l)this.Pw=f,this.Ow=l,this.lg()};d.prototype.Ta=function(){this.lg()};d.prototype.lg=function(){if(this.F){var f=this.distance-.001*this.zIndex,l=c.isPresenting?2048:this.Pw, p=c.isPresenting?1024:this.Ow,q=2*Math.tan(Math.PI/180*b.yu*.5)*f,r=q*p/l;switch(this.NE){case n.NONE:l=this.videoWidth*q/l;p=this.videoHeight*r/p;break;case n.Tp:l=q;p=this.videoHeight*q/this.videoWidth;break;case n.Pk:l=this.videoWidth*r/this.videoHeight;p=r;break;case n.Kr:this.videoWidth*r>this.videoHeight*q?(l=this.videoWidth*r/this.videoHeight,p=r):(l=q,p=this.videoHeight*q/this.videoWidth);break;default:this.videoWidth*r>this.videoHeight*q?(l=q,p=this.videoHeight*q/this.videoWidth):(p=r,l= this.videoWidth*r/this.videoHeight)}r=this.F.O(k.ta);r.Le=l;r.Ye=p;r.positionZ=-f}};d.prototype.io=function(){if(this.F){var f=this.F.O(k.ro);f.properties=this.video;f.M=this.video;f.Psa=this.video.get("video")}};d.prototype.Jsa=function(){if(this.F){var f=this.F.O(k.wd,!0);f.pB=!0;f.hF=!0;f.M=this.video;f.nt=!0;f.Yt=!0}};d.prototype.gu=function(){var f=this.Ag.T.sc("Video");f.N(k.pb).F=this.Ag;f.N(k.Plane);f.N(k.ta);f.N(k.ro);f.N(k.wd);this.F=f;this.lg();this.io();this.Jsa()};d.prototype.Ca=function(){this.F&& (this.F.T.dd(this.F),this.F=null)};return d}()}); define("tdv/player/view/video/renderer/adapters/PlayAdapter","require exports tdv/binding/Bindable tdv/constants/EventName tdv/view/util/Assets tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/player/script/ImageResourceLevel tdv/player/script/ImageResource tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c,d){return function(){function f(l,p){this.Ag=l;this.eb=p;this.visible=!1;this.Sn=this.Sn.bind(this);k.ba(this.eb,["distance"],this.Sn,!0);d.M.bind(n.V,this.Ta,this, !0)}f.prototype.dispose=function(){k.da(this.eb,["distance"],this.Sn);d.M.h(n.V,this.Ta,this);this.Ca()};f.prototype.kg=function(l){this.visible!=l&&(this.visible=l,this.io())};f.prototype.Sn=function(){var l=this.eb.get("distance");this.distance!==l&&(this.distance=l,this.lg())};f.prototype.Ta=function(){this.hx()};f.prototype.hx=function(){d.isPresenting!=!!this.F&&(d.isPresenting?this.gu():this.Ca())};f.prototype.lg=function(){if(this.F){var l=this.distance-.005,p=2*Math.tan(Math.PI/180*f.yu*.5)* l,q=p*g.w_/g.jL,r=this.F.O(e.ta);r.Le=p;r.Ye=q;r.positionZ=-l}};f.prototype.io=function(){if(this.F){if(!this.xw){var l=new c,p=new b;p.set("url",g.Ex);p.set("width",g.jL);p.set("height",g.w_);l.set("levels",[p]);this.xw=l}this.properties||(l=new h,l.set("width",g.jL),l.set("height",g.w_),l.set("opacity",1),this.properties=l);l=this.F.O(e.Oi);l.properties=this.properties;l.M=this.xw;l.xw=this.xw;this.properties.set("enabled",this.visible)}};f.prototype.gu=function(){if(!this.F){var l=this.Ag.T.sc("VideoPlay"); l.N(e.pb).F=this.Ag;l.N(e.Plane);l.N(e.ta);l.N(e.Oi);this.F=l;this.lg();this.io()}};f.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};f.yu=10;return f}()}); define("tdv/player/view/video/renderer/adapters/PlaybackBarAdapter",["require","exports","tdv/constants/EventName"],function(a,m,h){return function(){function n(g){this.eb=g;this.eg=this.eb.get("application");this.enabled=!1;this.container=this.HE=this.mg=null}n.prototype.dispose=function(){this.Ra(!1)};n.prototype.Ra=function(g){this.enabled!==g&&((this.enabled=g)?this.Zdb():this.veb())};n.prototype.Zdb=function(){if(!this.mg){this.udb();this.mg=this.eg.Ai("XRPanel");this.mg.set("content",this.container); this.mg.set("autoCenter",!1);this.mg.set("modal",!1);this.mg.set("yaw",0);this.mg.set("pitch",-45);this.mg.set("distance",1);this.mg.set("draggable",!1);var g=Math.PI/180;g=2*this.mg.get("distance")*Math.tan(n.yu/2*g)/n.Vua;this.mg.set("pixelScale",g);this.mg.ara(this.eb.get("application"));this.mg.RJa()}};n.prototype.veb=function(){this.mg&&(this.mg.Ina(),this.jeb(),this.eg.jw(this.mg),this.mg=null)};n.prototype.udb=function(){if(!this.HE){var g=this.eg.Ai("PlaybackBar");g.set("left",25);g.set("top", 22);g.set("right",25);g.set("height",4);g.set("backgroundColor",["#FFFFFF"]);g.set("backgroundOpacity",1);g.set("borderColor","#FFFFFF");g.set("borderRadius",0);g.set("borderSize",0);g.set("liveDragging",!0);g.set("playheadBackgroundColor",["#3399FF"]);g.set("playheadBorderRadius",0);g.set("playheadBorderColor","#ffffff");g.set("playheadBorderSize",2);g.set("playheadBorderRadius",10);g.set("playheadHeight",20);g.set("playheadWidth",20);g.set("playheadShadow",!1);g.set("barBackgroundColor",["#3399FF"]); g.set("barBackgroundColorRatios",[0]);g.set("barBorderColor","#000000");g.set("barBorderSize",0);g.set("barBorderRadius",0);this.HE=g}if(!this.container){g=this.eg.Ai("Container");g.set("width",n.Vua);g.set("height",50);g.set("backgroundColor","#ffffff");g.set("backgroundOpacity",.2);g.set("borderRadius",25);g.set("children",[this.HE]);g.set("opacity",.3);var k=this.eg.Ai("FadeInEffect");k.set("duration",500);k.set("easing","cubic_in");g.set("showEffect",k);k=this.eg.Ai("FadeOutEffect");k.set("duration", 500);k.set("easing","cubic_out");g.set("hideEffect",k);g.bind(h.uc,this.EJa,this,!0);g.bind(h.Eb,this.DJa,this,!1);this.container=g}this.Ot||(this.Ot=this.eg.Ai("Effect"),this.Ot.set("duration",300),this.Ot.set("easing","cubic_in"),this.Ot.bind(h.Zd,this.cPa,this,!0));this.qcb()};n.prototype.cPa=function(){this.container.set("opacity",.2+.8*this.Ot.vm())};n.prototype.jeb=function(){this.Yjb();this.HE&&(this.eg.jw(this.HE),this.HE=null);this.Ot&&(this.Ot.h(h.Zd,this.cPa,this),this.eg.jw(this.Ot),this.Ot= null);this.container&&(this.container.h(h.uc,this.EJa,this),this.container.h(h.Eb,this.DJa,this),this.eg.jw(this.container),this.container=null)};n.prototype.qcb=function(){this.jPa=this.eb.get("externalPlaybackBar");this.eb.set("externalPlaybackBar",this.HE)};n.prototype.Yjb=function(){this.eb.get("externalPlaybackBar")===this.HE&&(this.eb.set("externalPlaybackBar",this.jPa),this.jPa=null)};n.prototype.EJa=function(){this.Ot.play()};n.prototype.DJa=function(){this.Ot.reverse()};n.Vua=500;n.yu=40; return n}()}); define("tdv/player/view/video/renderer/Renderer","require exports tdv/binding/BindingsHandler tdv/player/view/renderer2d/Renderer tdv/player/view/video/renderer/RendererOverlay tdv/player/view/video/renderer/adapters/VideoAdapter tdv/player/view/video/renderer/adapters/PlayAdapter tdv/player/view/video/renderer/adapters/PlaybackBarAdapter".split(" "),function(a,m,h,n,g,k,e,b){return function(c){function d(f,l,p){f=c.call(this,f,l,p)||this;f.$pa=f.$pa.bind(f);f.Cc=null;f.nW=[];f.RI=[];f.taa();h.ba(f.TC, ["displayPlaybackBarInXR","displayPlaybackBar"],f.$pa,!0);return f}P(d,c);d.prototype.Kb=function(){c.prototype.Kb.call(this);this.Cc==null&&(this.Cc=new g,this.Cc.xa({left:0,top:0,right:0,bottom:0}),this.mb(this.Cc),this.taa())};d.prototype.pY=function(){var f=this;c.prototype.pY.call(this);this.hf.q$(this.TC.get("useVideoFrameRate")?2:void 0);this.Jdb();this.Idb();this.nW.forEach(function(l){f.SJa(l)})};d.prototype.aqa=function(){c.prototype.aqa.call(this);this.taa();this.Esa()};d.prototype.gcb= function(f){this.nW.includes(f)||(this.nW.push(f),this.hf&&this.SJa(f))};d.prototype.Jdb=function(){this.t6a=new b(this.P)};d.prototype.SJa=function(f){var l=new k(f,this.B1.nj(),this,this.P);this.RI.push(l);this.hf.q$(this.TC.get("useVideoFrameRate")&&this.hgb(f)<45?2:void 0);this.t$(this.RI.length>0)};d.prototype.Idb=function(){this.wDa=new e(this.B1.nj(),this.P)};d.prototype.Ojb=function(f){f=this.nW.indexOf(f);f<0||(this.nW.splice(f,1),this.hf&&this.ueb(this.RI[f]))};d.prototype.ueb=function(f){var l= this.RI.indexOf(f);l<0||(this.RI.splice(l,1),f.dispose(),this.t$(this.RI.length>0))};d.prototype.vra=function(f){this.j4=f;this.taa()};d.prototype.taa=function(){var f=this.j4&&this.RI.length>0;this.Cc&&this.Cc.vra(f);this.wDa&&this.wDa.kg(f)};d.prototype.hgb=function(f){f=f.get("video");return(f&&f.get("levels")||[]).reduce(function(l,p){return Math.max(l,p.get("framerate"))},0)||30};d.prototype.Ta=function(){c.prototype.Ta.call(this);this.Esa()};d.prototype.$pa=function(){this.Esa()};d.prototype.Esa= function(){var f,l=this.P.get("viewMode")!="standard"&&this.xS&&this.TC.get("displayPlaybackBarInXR",this.TC.get("displayPlaybackBar"));(f=this.t6a)===null||f===void 0||f.Ra(l)};return d}(n)}); define("tdv/player/script/VideoPlayer","require tdv/utils tdv/constants/EventName tdv/constants/Key tdv/player/parser/ClassInfo tdv/player/script/PlaybackMediaPlayer tdv/constants/PlaybackState tdv/player/view/video/control/Controller tdv/player/view/video/renderer/Renderer tdv/view/util/KeyboardControl".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/Key"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/script/PlaybackMediaPlayer"),e=a("tdv/constants/PlaybackState"), b=a("tdv/player/view/video/control/Controller"),c=a("tdv/player/view/video/renderer/Renderer"),d=a("tdv/view/util/KeyboardControl");a=g.define("VideoPlayer",k,function(){k.call(this,"video");this.SH=this.SH.bind(this);this.hs=this.u5=this.TI=this.jj=!1;this.U=this.j=null;this.ac=this.wf=0;this.Ro=!1;this.be=m.nr(this.Sh,this)});a.prototype.seek=function(f){this.sI(f)};a.prototype.play=function(){this.XH()};a.prototype.pause=function(){this.WH()};a.prototype.stop=function(){this.cD()};a.prototype.restart= function(){this.bD()};a.prototype.set=function(f,l){if(this.get(f)!=l){switch(f){case "startTime":this.u5=!0;this.be();break;case "video":this.TI=!0;this.be();break;case "viewerArea":this.jj=!0;this.be();break;case "displayPlaybackBar":this.hs=!0,this.be()}k.prototype.set.call(this,f,l)}};a.prototype.get=function(f,l){switch(f){case "currentTime":return this.U&&this.U.getTime()||0}return k.prototype.get.call(this,f,l)};a.prototype.tr=function(f){this.Ro!==f&&((this.Ro=f)?document.addEventListener("keydown", this.SH,!0):document.removeEventListener("keydown",this.SH,!0))};a.prototype.SH=function(f){d.yp()||(f.code==n.ua.kL||f.code==n.ua.h_)&&this.U&&this.U.osa()};a.prototype.Sh=function(){this.jj&&(this.jj=!1,this.ny(),this.get("viewerArea")&&this.my(),this.oV(this.get("viewerArea")),this.TI=!0);var f=!1;if(this.j&&(this.TI||this.u5)){var l=this.get("video"),p=this.get("startTime")||0;if(l&&!this.j.Xb()){this.be();return}this.u5=this.TI=!1;this.ac=this.wf=0;f=!0;l?(this.hK(),this.U.N$(l,p)):this.U.bB()}this.hs&& (this.hs=!1,f=!0);f&&this.Zz()};a.prototype.TN=function(){this.set("video",null)};a.prototype.my=function(){var f=this.get("application"),l=this.get("viewerArea");this.j=new c(f,l,this);this.j.xa({left:0,top:0,bottom:0,right:0});l.mb(this.j);l.bind(h.ma,this.dDa,this,!0);this.U=new b(l,this.j);this.U.bind(b.NF,this.ep,this);this.U.bind(b.MF,this.Js,this);this.U.bind(b.OF,this.sU,this,!0);this.U.bind(b.gd,this.Mf,this);f.bind(h.L("mute"),this.ZT,this);this.U.Bg(f.get("mute",!1));this.xD(!0)};a.prototype.ny= function(){if(this.j){this.U.h(b.NF,this.ep,this);this.U.h(b.MF,this.Js,this);this.U.h(b.OF,this.sU,this);this.U.h(b.gd,this.Mf,this);this.U.clear();this.get("application").h(h.L("mute"),this.ZT,this);var f=this.j.getParent();f.removeChild(this.j);f.h(h.ma,this.dDa,this,!0);this.j=null;this.xD(!1)}};a.prototype.ZT=function(){this.j&&this.U.Bg(this.get("application").get("mute",!1))};a.prototype.Mf=function(f){f=f.data.state;this.j&&this.j.vra(this.get("displayPlayOverlay")&&f!=e.PLAYING,this.wf<.5); this.Jd(f)};a.prototype.ep=function(f){var l=this.get("viewerArea");(this.ve=l&&l.ve)&&this.ve.bind(h.ma,this.eDa,this,!0);this.eja=!1;f=f.data.video;f.bind(h.ma,this.ZCa,this,!0);this.nT(f)};a.prototype.Js=function(f){this.ve&&this.ve.h(h.ma,this.eDa,this,!0);this.ve=null;f=f.data.video;f.h(h.ma,this.ZCa,this);this.mT(f)};a.prototype.sU=function(f){this.wf=f.data.time;this.ac=f.data.duration;this.Zz()};a.prototype.dDa=function(){this.eja?this.eja=!1:this.sBa()};a.prototype.ZCa=function(){this.sBa()}; a.prototype.sBa=function(){switch(this.get("clickAction")){case "play_pause":this.get("state")!=e.PLAYING?this.U.play():this.U.pause()}};a.prototype.eDa=function(){this.eja=!0};a.prototype.DU=function(f){this.sI(f.data.position)};a.prototype.tn=function(){this.U.play()};a.prototype.Zs=function(){this.U.stop()};a.prototype.tv=function(){this.U.pause()};a.prototype.sI=function(f){this.U&&this.U.setTime(f)};a.prototype.Zz=function(){if(this.j){var f=this.j.getParent();this.ac>0&&this.get("displayPlaybackBar")? f.xa({playbackBarPosition:this.wf,playbackBarDuration:this.ac,playbackBarVisible:!0}):f.set("playbackBarVisible",!1)}};return a}); define("tdv/player/script/VideoPlayListItem",["require","tdv/player/parser/ClassInfo","tdv/player/script/MediaPlayer","tdv/player/script/PlayListItem"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/MediaPlayer"),n=a("tdv/player/script/PlayListItem");a=m.define("VideoPlayListItem",n,function(){n.call(this)});a.prototype.start=function(){n.prototype.start.call(this);var g=this.get("player");g&&(g.bind(h.di,this.ep,this),g.set("video",this.get("media")),g.set("startTime", this.get("startTime")))};a.prototype.stop=function(){var g=this.get("player");g&&(g.h(h.di,this.ep,this),g.get("video")==this.get("media")&&g.set("video",null));n.prototype.stop.call(this)};a.prototype.ep=function(g){g.data.media==this.get("media")&&(this.get("player").h(h.di,this.ep,this),this.get("player").bind(h.oo,this.Js,this),this.PD())};a.prototype.Js=function(g){g.data.media==this.get("media")&&(this.get("player").h(h.oo,this.Js,this),this.stop(),this.end())};return a}); define("tdv/player/script/VideoResourceLevel",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("VideoResourceLevel",m,function(){m.call(this)})}); define("tdv/player/script/VideoResource",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo","tdv/player/view/util/Capabilities","tdv/player/script/VideoResourceLevel"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/view/util/Capabilities"),g=a("tdv/player/script/VideoResourceLevel");a=h.define("VideoResource",m,function(){m.call(this);this.Yha=new g;this.Yha.set("type","video/mp4");this.cia=new g;this.cia.set("type","video/ogg");this.Gma= new g;this.Gma.set("type","video/webm")});a.prototype.get=function(k,e){switch(k){case "levels":e=[];var b=this.get("mp4Url");b&&(this.Yha.set("url",b),e.push(this.Yha));if(b=this.get("oggUrl"))this.cia.set("url",b),e.push(this.cia);if(b=this.get("webmUrl"))this.Gma.set("url",b),e.push(this.Gma);e.forEach(function(c){c.set("width",this.get("width"));c.set("height",this.get("height"))}.bind(this))}return m.prototype.get.call(this,k,e)};a.prototype.rl=function(){var k=this.get("webmUrl"),e=this.get("oggUrl"), b=this.get("mp4Url");return b&&n.k8?b:k&&n.Qoa?k:e&&n.Poa?e:b||k||e};return a});define("tdv/player/script/VignetteModel3DPostprocessing",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DPostprocessing"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DPostprocessing");return m.define("VignetteModel3DPostprocessing",h,function(){h.call(this)})}); define("tdv/view/html/WebFrame","require exports tdv/constants/EventName tdv/player/view/util/Device tdv/player/view/util/URL tdv/view/core/UIComponent tdv/view/helpers/DOMUpdateQueue tdv/view/core/visuals/VisualsType".split(" "),function(a,m,h,n,g,k,e,b){return function(c){function d(){var f=c.call(this)||this;f.gf("WebFrame");f.Md=null;f.Oc=null;f.Aj=null;f.fT=null;f.via=f.via.bind(f);f.r3=f.r3.bind(f);f.bind(h.od,f.b6a,f,!0);f.bind(h.jd,f.a6a,f,!0);return f}P(d,c);d.prototype.Pb=function(){c.prototype.Pb.call(this); this.m("url");this.m("allowTopNavigation",!0);this.m("backgroundColor","#ffffff");this.m("insetBorder",!1);this.m("scrollEnabled",!0);this.m("unloadWhenHidden",!0)};d.prototype.z8=function(f,l){return f.getType()!==b.DOM?!1:c.prototype.z8.call(this,f,l)};d.prototype.b6a=function(){this.yD("url")};d.prototype.a6a=function(){this.yD("url")};d.prototype.Kb=function(){c.prototype.Kb.call(this);this.Md||(this.Md=document.createElement("div"),this.Md.style.position="absolute",this.Md.style.left="0",this.Md.style.top= "0",this.Md.style.width="100%",this.Md.style.height="100%",this.wa().uk(this.Md));this.Oc||(this.Oc=document.createElement("iframe"),this.Oc.style.position="absolute",this.Oc.style.left="0",this.Oc.style.top="0",this.Oc.setAttribute("allowfullscreen","true"),this.Oc.setAttribute("allow","accelerometer; autoplay; camera; display-capture; fullscreen; geolocation; gyroscope; magnetometer; microphone; vr; xr-spatial-tracking"),this.Md.appendChild(this.Oc));this.Aj||(this.Aj=document.createElement("div"), this.Aj.style.textShadow="0 0 5px rgba(255,255,255,0.5)",this.Aj.style.display="none",this.Aj.style.color="#000000",this.Aj.style.fontWeight="300",this.Aj.style.fontFamily="Tahoma, Geneva, sans-serif",this.Aj.style.fontSize=n.ub()?"5vmin":"20px",this.Aj.style.position="absolute",this.Aj.style.top="50%",this.Aj.style.left="50%",this.Aj.style.textAlign="center",this.Aj.style.transform="translate(-50%, -50%)",this.Aj.style.width="90%",this.Md.appendChild(this.Aj))};d.prototype.jb=function(){if(this.S("url")){var f= this.G("url");f&&this.Py?this.QEa(f):(!f||this.get("unloadWhenHidden"))&&this.QEa("");this.$("url")}this.S("insetBorder")&&(f=this.G("insetBorder"),this.Oc.setAttribute("frameborder",f?"1":"0"),this.$("insetBorder"));this.S("allowTopNavigation")&&(this.G("allowTopNavigation")?this.Oc.removeAttribute("sandbox"):this.Oc.setAttribute("sandbox","allow-downloads allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts allow-storage-access-by-user-activation"), this.$("allowTopNavigation"));this.S("scrollEnabled")&&(f=this.G("scrollEnabled"),this.Oc.setAttribute("scrolling",f?"auto":"no"),this.Md.style.overflow=f?"auto":"hidden",this.Md.style["-webkit-overflow-scrolling"]=f?"touch":"auto",this.$("scrollEnabled"));c.prototype.jb.call(this)};d.prototype.pu=function(){this.Oc&&e.aeb(this.Oc,{width:this.nb()+"px",height:this.Mb()+"px"});c.prototype.pu.call(this)};d.prototype.refresh=function(){this.G("url")&&this.Py&&(this.uga(),this.nC(),this.Dla(),this.Oc.setAttribute("src", ""),setTimeout(function(){this.zFa();this.gwa();this.Oc.setAttribute("src",this.G("url"))}.bind(this),30))};d.prototype.QEa=function(f){this.Oc.getAttribute("src")!=f&&(this.uga(),f?(this.zFa(),this.gwa()):(this.nC(),this.Dla()),this.Oc.setAttribute("src",f))};d.prototype.via=function(){this.fT=null;this.R3a()&&this.C9a()};d.prototype.r3=function(){this.uga();this.nC();this.Dla()};d.prototype.gwa=function(){this.Oc.addEventListener("load",this.r3)};d.prototype.Dla=function(){this.Oc.removeEventListener("load", this.r3)};d.prototype.nC=function(){this.fT&&(clearTimeout(this.fT),this.fT=null)};d.prototype.zFa=function(){this.nC();this.fT=setTimeout(this.via,d.jVa)};d.prototype.R3a=function(){if(window.location.protocol=="https:"){var f=this.Oc.getAttribute("src");if(g.parse(f).protocol!="https:")return!0}return!1};d.prototype.C9a=function(){this.Aj.textContent="A secure web page served over HTTPS can not display insecure content served over HTTP.";this.Aj.style.display="block"};d.prototype.uga=function(){this.Aj.style.display= "none"};d.jVa=3E3;return d}(k)});define("tdv/player/script/WebFrame",["require","tdv/view/html/WebFrame","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/html/WebFrame");a=a("tdv/player/parser/ClassInfo").define("WebFrame",m,function(){m.call(this)});a.prototype.refresh=function(){m.prototype.refresh.call(this)};return a}); define("tdv/view/containers/windows/Window","require exports tdv/utils tdv/constants/EventName tdv/events/Event tdv/view/containers/Container tdv/view/containers/windows/BaseWindow".split(" "),function(a,m,h,n,g,k,e){return function(b){function c(){var d=b.call(this)||this;d.gf("Window");d.mga=0;d.nga=0;d.nFa=!1;d.Hka=!1;d.bind(n.Rb,d.Abb,d,!1);d.bind(n.ma,d.xbb,d,!1);d.bind(n.aL,d.ybb,d,!1);d.bind(n.YQ,d.Bbb,d,!1);d.j6=0;d.vg=new k;d.vg.xa({visible:!1,includeInLayout:!1,layout:"absolute",height:"100%", width:"100%",backgroundOpacity:0,contentOpaque:!1});d.vg.bind(n.Rb,d.BHa,d,!1);d.vg.bind(n.YQ,d.rbb,d,!1);d.vg.bind(n.aL,d.qbb,d,!1);d.vg.bind(n.ma,d.pbb,d,!1);d.vg.mb(d);return d}P(c,b);c.prototype.set=function(d,f){switch(d){case "maxWidth":this.Ima=f;this.a6();break;case "maxHeight":this.Hma=f;this.a6();break;case "shadow":this.nFa=f;this.vHa();break;default:b.prototype.set.call(this,d,f)}};c.prototype.show=function(d,f){this.O6(d);f&&this.Scb();f=d.get("children");d.set("children",f.concat([this.vg])); h.defer(function(){this.vg.set("visible",!0)}.bind(this))};c.prototype.oe=function(){this.N6();this.set("visible",!1)};c.prototype.O6=function(d){b.prototype.O6.call(this);this.a6(d);this.vg.set("visible",!1);this.lYa()};c.prototype.N6=function(){b.prototype.N6.call(this);this.j6=0;this.g5(!1)};c.prototype.lYa=function(){var d=this.G("modal"),f=this.G("veilShowEffect"),l=this.G("veilHideEffect");d&&f?this.vg.set("showEffect",f):this.vg.set("showEffect",null);d&&l?this.vg.set("hideEffect",l):this.vg.set("hideEffect", null)};c.prototype.Scb=function(){this.set("centerX",0);this.set("centerY",0)};c.prototype.Pb=function(){this.Jl(c.ad)};c.prototype.pbb=function(){this.j6++;setTimeout(function(){this.j6>0&&this.oe()}.bind(this),100)};c.prototype.xbb=function(){this.j6--};c.prototype.uza=function(d){this.mga=d.pageX;this.nga=d.pageY;this.Xb().bind(n.gb,this.NHa,this,!0);this.Xb().bind(n.$a,this.OHa,this,!0)};c.prototype.NHa=function(d){this.set("centerX",this.get("centerX")+(d.pageX-this.mga));this.set("centerY", this.get("centerY")+(d.pageY-this.nga));this.mga=d.pageX;this.nga=d.pageY;this.uHa()};c.prototype.OHa=function(){this.Xb().h(n.gb,this.NHa,this);this.Xb().h(n.$a,this.OHa,this)};c.prototype.BHa=function(){this.a6()};c.prototype.rbb=function(){this.set("visible",!0)};c.prototype.qbb=function(){this.vg.h(n.Rb,this.BHa,this);var d=this.vg.getParent();d&&d.removeChild(this.vg);this.o(new g(n.CB))};c.prototype.Abb=function(){this.uHa()};c.prototype.Bbb=function(){this.g5(!0)};c.prototype.ybb=function(){this.vg.set("visible", !1)};c.prototype.g5=function(d){this.Hka=d;this.vHa()};c.prototype.vHa=function(){b.prototype.set.call(this,"shadow",this.Hka&&this.nFa)};c.prototype.mgb=function(d){if(this.Ima!==void 0)return this.Ima;if(d)return d.nb()};c.prototype.lgb=function(d){if(this.Hma!==void 0)return this.Hma;if(d)return d.Mb()};c.prototype.a6=function(d){d||(d=this.getParent());b.prototype.set.call(this,"maxWidth",this.mgb(d));b.prototype.set.call(this,"maxHeight",this.lgb(d))};c.prototype.uHa=function(){var d=this.vg.nb(), f=this.nb(),l=this.get("centerX");f=d*.5+l-f*.5;var p=this.Ym.u.Dd,q=this.Ym.nb(),r=Math.min(q,30);d=d-p-r;p=-(p+q-r);fd&&this.set("centerX",l-(f-d));d=this.vg.Mb();f=this.Mb();l=this.get("centerY");f=d*.5+l-f*.5;p=this.Ym.u.ie;q=this.Ym.Mb();r=Math.min(q,5);d=d-p-r;p=-(p+q-r);fd&&this.set("centerY",l-(f-d))};c.prototype.jb=function(){this.G("modal")?(this.Pc(c.yva,c.zva,[this.vg],!0,!0),this.vg.set("contentOpaque",!0)):(this.vg.set("backgroundOpacity", 0),this.vg.set("contentOpaque",!1));b.prototype.jb.call(this)};c.zva={veilOpacity:"backgroundOpacity",veilBlur:"backgroundBlur",veilColor:"backgroundColor",veilColorRatios:"backgroundColorRatios",veilColorDirection:"backgroundColorDirection"};c.yva=Object.keys(c.zva);c.ad=Object.assign({},e.ad,function(){for(var d=Object.assign({},e.ad,{centerX:0,centerY:0,veilShowEffect:void 0,veilHideEffect:void 0}),f=[].concat(c.yva),l=0;lm.left&&this.bottom>m.top};a.prototype.containsPoint=function(m,h){return this.left<=m&&m<=this.right&& this.top<=h&&h<=this.bottom};a.prototype.contains=function(m){return this.left<=m.left&&this.top<=m.top&&this.right>=m.right&&this.bottom>=m.bottom};a.prototype.intersection=function(m){var h=this.left>m.left?this.left:m.left,n=this.top>m.top?this.top:m.top;return new a(h,n,(this.rightm.right? this.right:m.right)-h,(this.bottom>m.bottom?this.bottom:m.bottom)-n)};a.prototype.XSa=function(m,h){return new a(this.left+m,this.top+h,this.width,this.height)};a.union=function(m){if(m.length===0)return new a(0,0,0,0);for(var h=m[0].left,n=m[0].top,g=m[0].right,k=m[0].bottom,e=1;e0,u=t?Math.max(0,-r.iu+r.eo):0;this.vcb= (r.x||0)+r.offsetX-(t?Math.max(0,-r.hu+r.eo):0);this.wcb=(r.y||0)+r.offsetY-u;return!0}return!1};q.prototype.qnb=function(r){var t=r.vk&&r.vk.length>0,u=!!r.aw,v=r.pm>0&&(r.Te>0&&r.borderLeftColor||r.Ue>0&&r.borderTopColor||r.yf>0&&r.borderRightColor||r.xf>0&&r.borderBottomColor);if(!r.visible||!(t||u||v)){if(this.K.visible&&this.CO)return this.Xq&&(this.Xq.width=0,this.Xq.height=0),this.CO=null,!0}else if(this.K.visible!==r.visible||this.K.width!==r.width||this.K.height!==r.height||this.K.vk!==r.vk|| this.K.OD!==r.OD||this.K.pm!==r.pm||this.K.Te!==r.Te||this.K.borderLeftColor!==r.borderLeftColor||this.K.Ue!==r.Ue||this.K.borderTopColor!==r.borderTopColor||this.K.yf!==r.yf||this.K.borderRightColor!==r.borderRightColor||this.K.xf!==r.xf||this.K.borderBottomColor!==r.borderBottomColor||this.K.aw!==r.aw||this.K.kB!==r.kB||this.K.hu!==r.hu||this.K.iu!==r.iu||this.K.eo!==r.eo||this.K.wK!==r.wK||this.K.shadowColor!==r.shadowColor||this.K.$w!==r.$w){this.Xq||(this.Xq=document.createElement("canvas")); var w=this.Xq,x=r.kB&&r.$w>0,y=x?Math.max(0,-r.hu+r.eo):0,z=x?Math.max(0,-r.iu+r.eo):0,A=x?Math.max(0,r.iu+r.eo):0;w.width=r.width+y+(x?Math.max(0,r.hu+r.eo):0);w.height=r.height+z+A;A=w.getContext("2d");A.clearRect(0,0,w.width,w.height);var D=Math.min(Math.floor(r.width/2),Math.floor(r.height/2));w=Math.min(D,r.borderTopLeftRadius);var F=Math.min(D,r.borderTopRightRadius),C=Math.min(D,r.borderBottomRightRadius);D=Math.min(D,r.borderBottomLeftRadius);var B=[Math.max(0,w-Math.max(r.Ue,r.Te)),Math.max(0, F-Math.max(r.Ue,r.yf)),Math.max(0,C-Math.max(r.xf,r.yf)),Math.max(0,D-Math.max(r.xf,r.Te))],H=[w,F,C,D];if(x){x=A.globalAlpha;A.globalAlpha=r.$w;A.fillStyle=r.shadowColor;A.shadowColor=r.shadowColor;A.shadowBlur=r.eo;A.shadowOffsetX=r.hu;A.shadowOffsetY=r.iu;A.beginPath();A.roundRect(y,z,r.width,r.height,H);A.fill();A.shadowColor="rgba(0, 0, 0, 0)";var E=A.globalCompositeOperation;A.globalCompositeOperation="destination-out";A.globalAlpha=1;A.fillStyle="#ffffff";A.beginPath();A.roundRect(y,z,r.width, r.height,H);A.fill();A.globalCompositeOperation=E;A.globalAlpha=x}A.translate(y,z);E=B.some(function(R){return R>0});if(t||u){x=A.globalAlpha;A.globalAlpha=r.pm;A.translate(r.Te,r.Ue);var G=Math.max(0,r.width-(r.Te+r.yf)),N=Math.max(0,r.height-(r.Ue+r.xf));if(t){var O=r.OD==h.q_?A.createLinearGradient(0,0,G,0):A.createLinearGradient(0,0,0,N);k.TIa(r).forEach(function(R){O.addColorStop(R.ratio,R.color)});A.fillStyle=O;A.roundRect(0,0,G,N,B);A.fill()}u&&(E&&(A.save(),A.roundRect(0,0,G,N,B),A.clip()), A.drawImage(r.aw,0,0,G,N),E&&A.restore());A.translate(-r.Te,-r.Ue);A.globalAlpha=x}v&&(t=[[0,w],[w,0],[r.width-F,0],[r.width,F],[r.width,r.height-C],[r.width-C,r.height],[D,r.height],[0,r.height-D]],u=[[r.Te,r.Ue+B[0]],[r.Te+B[0],r.Ue],[r.width-r.yf-B[1],r.Ue],[r.width-r.yf,r.Ue+B[1]],[r.width-r.yf,r.height-r.xf-B[2]],[r.width-r.yf-B[2],r.height-r.xf],[r.Te+B[3],r.height-r.xf],[r.Te,r.height-r.xf-B[3]]],v=[[0,0],[r.width,0],[r.width,r.height],[0,r.height]],x=[[r.Te,r.Ue],[r.width-r.yf,r.Ue],[r.width- r.yf,r.height-r.xf],[r.Te,r.height-r.xf]],r.Ue>0&&(A.beginPath(),A.moveTo(t[1][0],t[1][1]),A.lineTo(t[2][0],t[2][1]),A.lineTo(u[2][0],u[2][1]),A.lineTo(u[1][0],u[1][1]),A.fillStyle=l.gF(r.borderTopColor,r.pm),A.fill()),F>0&&(A.beginPath(),A.moveTo(t[2][0],t[2][1]),A.arcTo(v[1][0],v[1][1],t[3][0],t[3][1],H[1]),A.lineTo(u[3][0],u[3][1]),B[1]>0?A.arcTo(x[1][0],x[1][1],u[2][0],u[2][1],B[1]):A.lineTo(u[2][0],u[2][1]),A.fillStyle=r.borderTopColor||r.borderRightColor,A.fill()),r.yf>0&&(A.beginPath(),A.moveTo(t[3][0], t[3][1]),A.lineTo(t[4][0],t[4][1]),A.lineTo(u[4][0],u[4][1]),A.lineTo(u[3][0],u[3][1]),A.fillStyle=l.gF(r.borderRightColor,r.pm),A.fill()),C>0&&(A.beginPath(),A.moveTo(t[4][0],t[4][1]),A.arcTo(v[2][0],v[2][1],t[5][0],t[5][1],H[2]),A.lineTo(u[5][0],u[5][1]),B[2]>0?A.arcTo(x[2][0],x[2][1],u[4][0],u[4][1],B[2]):A.lineTo(u[4][0],u[4][1]),A.fillStyle=r.borderBottomColor||r.borderRightColor,A.fill()),r.xf>0&&(A.beginPath(),A.moveTo(t[5][0],t[5][1]),A.lineTo(t[6][0],t[6][1]),A.lineTo(u[6][0],u[6][1]),A.lineTo(u[5][0], u[5][1]),A.fillStyle=l.gF(r.borderBottomColor,r.pm),A.fill()),D>0&&(A.beginPath(),A.moveTo(t[6][0],t[6][1]),A.arcTo(v[3][0],v[3][1],t[7][0],t[7][1],H[3]),A.lineTo(u[7][0],u[7][1]),B[3]>0?A.arcTo(x[3][0],x[3][1],u[6][0],u[6][1],B[3]):A.lineTo(u[6][0],u[6][1]),A.fillStyle=r.borderBottomColor||r.borderLeftColor,A.fill()),r.Te>0&&(A.beginPath(),A.moveTo(t[7][0],t[7][1]),A.lineTo(t[0][0],t[0][1]),A.lineTo(u[0][0],u[0][1]),A.lineTo(u[7][0],u[7][1]),A.fillStyle=l.gF(r.borderLeftColor,r.pm),A.fill()),w>0&& (A.beginPath(),A.moveTo(t[0][0],t[0][1]),A.arcTo(v[0][0],v[0][1],t[1][0],t[1][1],H[0]),A.lineTo(u[1][0],u[1][1]),B[0]>0?A.arcTo(x[0][0],x[0][1],u[0][0],u[0][1],B[0]):A.lineTo(u[0][0],u[0][1]),A.fillStyle=r.borderTopColor||r.borderLeftColor,A.fill()));A.translate(-y,-z);return!0}return!1};q.prototype.Cnb=function(r){return this.K.visible!==r.visible||this.K.x!==r.x||this.K.y!==r.y||this.K.width!==r.width||this.K.height!==r.height||this.K.offsetX!==r.offsetX||this.K.offsetY!==r.offsetY||this.K.cursor!== r.cursor?(r.visible?(this.k7=new c((r.x||0)+r.offsetX||0,(r.y||0)+r.offsetY||0,r.width||0,r.height||0),this.cursor=r.cursor):(this.k7=null,this.cursor="inherit"),!0):!1};q.prototype.job=function(r){return this.K.opacity!==r.opacity||this.K.visible!==r.visible?(this.opacity=r.opacity,this.visible=r.visible,!0):!1};q.prototype.rnb=function(){if(this.Xq&&this.Xq.width>0&&this.Xq.height>0){var r=new c(this.vcb,this.wcb,this.Xq.width,this.Xq.height);this.CO=new b({canvas:this.Xq,rect:r,tag:"background"})}else this.CO= null};q.prototype.oaa=function(){this.nJ=this.k7?new b({rect:this.k7,tag:"element",WA:this.Una,RD:this.Tna,M:this.YO,cursor:this.cursor}):null};return q}(n)}); define("tdv/view/core/visuals/canvas/CanvasCanvasVisuals","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visualprops/CanvasVisualProperties tdv/view/core/visuals/canvas/Layer tdv/view/core/visuals/canvas/Rect".split(" "),function(a,m,h,n,g,k){return function(e){function b(){return e.call(this)||this}P(b,e);b.prototype.tp=function(){return new n};b.prototype.rt=function(){var c=e.prototype.rt.call(this);if(this.jna){var d=this.OY(this.jna);d&&c.push(d)}return c};b.prototype.rh= function(c){var d=e.prototype.rh.call(this,c);this.Lp(c)&&(d=!0,this.canvas&&this.canvas.width>0&&this.canvas.height>0?(c=new k(this.Pcb,this.Qcb,this.canvas.width,this.canvas.height),this.jna=new g({canvas:this.canvas,rect:c,tag:"canvas"})):this.jna=null);return d};b.prototype.Lp=function(c){if(!c.visible||!c.canvas){if(this.K.visible&&this.K.canvas&&this.K.canvas.width>0&&this.K.canvas.height>0)return this.canvas=null,!0}else if(c.visible!==this.K.visible||c.canvas!==this.K.canvas||c.V6!==this.K.V6)return this.Qcb= this.Pcb=0,this.canvas=c.canvas,!0;return!1};return b}(h)}); define("tdv/view/core/visuals/canvas/CanvasContainerVisuals","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visualprops/ContainerVisualProperties tdv/view/core/visuals/canvas/Layer tdv/view/core/visuals/canvas/Rect tdv/events/EventDispatcher".split(" "),function(a,m,h,n,g,k,e){return function(b){function c(){var d=b.call(this)||this;d.e8=null;d.vaa=null;d.er=null;d.zr=null;d.lMa=new e;d.JTa=new e;d.sgb=g.WQ;d.rgb=!1;d.nob=g.WQ;d.mob=!1;d.kMa=100;d.ITa=100;return d} P(c,b);c.prototype.tp=function(){return new n};c.prototype.L7=function(){throw Error("Invalid call to CanvasContainerVisuals.getHScrollBarElement");};c.prototype.a8=function(){throw Error("Invalid call to CanvasContainerVisuals.getVScrollBarElement");};c.prototype.rt=function(){var d=b.prototype.rt.call(this);this.e8&&d.push(this.e8);this.vaa&&d.push(this.vaa);return d};c.prototype.rh=function(d){var f=b.prototype.rh.call(this,d);this.Hnb(d)&&(f=!0,this.Inb());this.hob(d)&&(f=!0,this.iob());return f}; c.prototype.Hnb=function(d){if(!d.Ck){if(this.K.Ck)return this.er&&(this.er.width=0,this.er.height=0),!0}else if(d.Ck!==this.K.Ck||d.x!==this.K.x||d.y!==this.K.y||d.offsetX!==this.K.offsetX||d.offsetY!==this.K.offsetY||d.width!==this.K.width||d.height!==this.K.height||d.contentWidth!==this.K.contentWidth||d.contentHeight!==this.K.contentHeight||d.Ck!==this.K.Ck||d.Lc!==this.K.Lc||d.Cf!==this.K.Cf||d.au!==this.K.au||d.$t!==this.K.$t||d.ph!==this.K.ph||d.Wn!==this.K.Wn||d.Xn!==this.K.Xn||d.Mk!==this.K.Mk|| d.Mc!==this.K.Mc){var f=d.Ck&&d.Mk;this.er||(this.er=document.createElement("canvas"));var l=this.er;f=d.width-d.Wn-((f?d.ph:0)+d.Wn);this.tgb=(d.x||0)+d.offsetX+d.Wn+Math.round(d.Lc*f/d.contentWidth);this.ugb=(d.y||0)+d.offsetY+d.height-d.Xn-d.ph;this.kMa=f;var p=Math.round(d.Cf*f/d.contentWidth),q=d.ph;f=l.getContext("2d");l.width=p;l.height=q;f&&(f.clearRect(0,0,l.width,l.height),f.fillStyle=d.$t,p=f.globalAlpha,f.beginPath(),f.globalAlpha=d.au,f.roundRect(0,0,l.width,l.height,d.ph/2),f.fill(), f.globalAlpha=p);return!0}return!1};c.prototype.hob=function(d){if(!d.Mk){if(this.K.Mk)return this.zr&&(this.zr.width=0,this.zr.height=0),!0}else if(d.Mk!==this.K.Mk||d.x!==this.K.x||d.y!==this.K.y||d.offsetX!==this.K.offsetX||d.offsetY!==this.K.offsetY||d.width!==this.K.width||d.height!==this.K.height||d.contentWidth!==this.K.contentWidth||d.contentHeight!==this.K.contentHeight||d.Ck!==this.K.Ck||d.Lc!==this.K.Lc||d.Cf!==this.K.Cf||d.au!==this.K.au||d.$t!==this.K.$t||d.ph!==this.K.ph||d.Wn!==this.K.Wn|| d.Xn!==this.K.Xn||d.Mk!==this.K.Mk||d.Mc!==this.K.Mc){var f=d.Ck&&d.Mk;this.zr||(this.zr=document.createElement("canvas"));var l=this.zr,p=d.height-d.Xn-((f?d.ph:0)+d.Xn);this.pob=(d.y||0)+d.offsetY+d.Xn+Math.round(d.Mc*p/d.contentHeight);this.oob=(d.x||0)+d.offsetX+d.width-d.Wn-d.ph;this.ITa=p;f=d.ph;var q=Math.round(d.Wg*p/d.contentHeight);p=l.getContext("2d");l.width=f;l.height=q;p&&(p.clearRect(0,0,l.width,l.height),p.fillStyle=d.$t,f=p.globalAlpha,p.beginPath(),p.globalAlpha=d.au,p.roundRect(0, 0,l.width,l.height,d.ph/2),p.fill(),p.globalAlpha=f);return!0}return!1};c.prototype.Inb=function(){if(this.er&&this.er.width>0&&this.er.height>0){var d=new k(this.tgb,this.ugb,this.er.width,this.er.height);this.e8=new g({canvas:this.er,rect:d,WA:this.sgb,RD:this.rgb,tag:"hscroll",M:this.lMa})}else this.e8=null};c.prototype.iob=function(){if(this.zr&&this.zr.width>0&&this.zr.height>0){var d=new k(this.oob,this.pob,this.zr.width,this.zr.height);this.vaa=new g({canvas:this.zr,rect:d,WA:this.nob,RD:this.mob, tag:"vscroll",M:this.JTa})}else this.vaa=null};return c}(h)}); define("tdv/view/core/visuals/canvas/CanvasImageVisuals","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visualprops/ImageVisualProperties tdv/view/core/visuals/canvas/Layer tdv/view/core/visuals/canvas/Rect tdv/view/constants/Alignment tdv/events/EventDispatcher".split(" "),function(a,m,h,n,g,k,e,b){return function(c){function d(){var f=c.call(this)||this;f.Woa=g.SB;f.Uoa=!1;f.m8=new b;return f}P(d,c);d.prototype.nra=function(f,l){if(this.Woa!==f||this.Uoa!==l)this.Woa= f,this.Uoa=l,this.zsa()};d.prototype.tp=function(){return new n};d.prototype.rt=function(){var f=c.prototype.rt.call(this);if(this.Voa){var l=this.OY(this.Voa);l&&f.push(l)}return f};d.prototype.rh=function(f){var l=c.prototype.rh.call(this,f);this.ysa(f)&&(l=!0,this.zsa());return l};d.prototype.oaa=function(){c.prototype.oaa.call(this);this.zsa()};d.prototype.zsa=function(){if(this.Jt&&this.Jt.width>0&&this.Jt.height>0){var f=new k(this.$gb,this.ahb,this.Jt.width,this.Jt.height);this.Voa=new g({canvas:this.Jt, rect:f,opacity:1,WA:this.Woa,RD:this.Uoa,M:this.m8,tag:"image",cursor:this.bhb})}else this.Voa=null};d.prototype.ysa=function(f){if(!f.visible||!f.image){if(this.K.visible&&this.K.image)return this.Jt&&(this.Jt.width=0,this.Jt.height=0),!0}else if(f.visible!==this.K.visible||f.image!==this.K.image||f.cursor!==this.K.cursor||f.contentWidth!==this.K.contentWidth||f.contentHeight!==this.K.contentHeight||f.width!==this.K.width||f.height!==this.K.height||f.Dd!==this.K.Dd||f.Ce!==this.K.Ce||f.ie!==this.K.ie|| f.Ef!==this.K.Ef||f.borderTopLeftRadius!==this.K.borderTopLeftRadius||f.borderTopRightRadius!==this.K.borderTopRightRadius||f.borderBottomRightRadius!==this.K.borderBottomRightRadius||f.borderBottomLeftRadius!==this.K.borderBottomLeftRadius||f.Ue!==this.K.Ue||f.yf!==this.K.yf||f.xf!==this.K.xf||f.Te!==this.K.Te||f.Yh!==this.K.Yh||f.verticalAlign!==this.K.verticalAlign){this.ahb=this.$gb=0;this.Jt||(this.Jt=document.createElement("canvas"));var l=Math.min(Math.floor(f.width/2),Math.floor(f.height/ 2));l=[Math.max(0,Math.min(l,f.borderTopLeftRadius)-Math.max(f.Ue,f.Te)),Math.max(0,Math.min(l,f.borderTopRightRadius)-Math.max(f.Ue,f.yf)),Math.max(0,Math.min(l,f.borderBottomRightRadius)-Math.max(f.xf,f.yf)),Math.max(0,Math.min(l,f.borderBottomLeftRadius)-Math.max(f.xf,f.Te))];var p=f.width-f.Dd-f.Ce,q=f.height-f.ie-f.Ef,r=this.Jt;r.width=p;r.height=q;var t=r.getContext("2d");t.clearRect(0,0,r.width,r.height);switch(f.Yh){default:p=0;break;case e.Db:p-=f.contentWidth;break;case e.$e:p=Math.floor((p- f.contentWidth)*.5)}switch(f.verticalAlign){default:q=0;break;case e.Hc:q-=f.contentHeight;break;case e.$d:q=Math.floor((q-f.contentHeight)*.5)}t.drawImage(f.image,p,q,f.contentWidth,f.contentHeight);t.fillStyle="#ffffff";t.globalCompositeOperation="destination-in";t.roundRect(0,0,r.width,r.height,l);t.fill();t.globalCompositeOperation="source-over";this.bhb=f.cursor;return!0}return!1};return d}(h)}); define("tdv/view/core/visuals/canvas/CanvasLabelVisuals","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visualprops/LabelVisualProperties tdv/view/core/visuals/canvas/Layer tdv/view/core/visuals/canvas/Rect tdv/view/util/Font tdv/view/util/MeasureText tdv/player/view/util/Color tdv/view/constants/Alignment".split(" "),function(a,m,h,n,g,k,e,b,c,d){return function(f){function l(){var p=f.call(this)||this;p.dF=document.createElement("canvas");p.nu=0;p.ku=0;return p} P(l,f);l.prototype.tp=function(){return new n};l.prototype.zJ=function(){return this.nu};l.prototype.yJ=function(){return this.ku};l.prototype.rt=function(){var p=f.prototype.rt.call(this);if(this.lsa){var q=this.OY(this.lsa);q&&p.push(q)}return p};l.prototype.rh=function(p){var q=f.prototype.rh.call(this,p);this.Ksa(p)&&(q=!0,this.dF&&this.dF.width>0&&this.dF.height>0?(p=new k(this.pQ,this.qQ,this.ISa,this.HSa),this.lsa=new g({canvas:this.dF,rect:p,opacity:1,tag:"text"})):this.lsa=null);return q}; l.prototype.Ksa=function(p){if(p.visible&&p.text){var q=!1;if(p.visible!==this.K.visible||p.text!==this.K.text||p.direction!==this.K.direction||p.w7!==this.K.w7||p.zt!==this.K.zt||p.fontSize!==this.K.fontSize||p.fontFamily!==this.K.fontFamily||p.fontWeight!==this.K.fontWeight||p.fontStyle!==this.K.fontStyle||p.lu!==this.K.lu||p.mu!==this.K.mu||p.fo!==this.K.fo||p.bx!==this.K.bx||p.eF!==this.K.eF){var r=this.dF,t=p.bx>0;q=t?Math.max(0,-p.lu+p.fo):0;var u=t?Math.max(0,-p.mu+p.fo):0,v=t?Math.max(0,p.lu+ p.fo):0,w=t?Math.max(0,p.mu+p.fo):0,x=r.getContext("2d"),y=b(p.text,{fontSize:p.fontSize,fontFamily:p.fontFamily,fontWeight:p.fontWeight,fontStyle:p.fontStyle},x);this.nu=Math.round(y.width);this.ku=Math.round(y.height);this.ISa=this.nu+q+v;this.HSa=this.ku+u+w;r.width=this.ISa;r.height=this.HSa;x.clearRect(0,0,r.width,r.height);x.fillStyle=p.zt||"#000000";x.font=e.Y7({fontSize:p.fontSize,fontFamily:p.fontFamily,fontWeight:p.fontWeight,fontStyle:p.fontStyle});x.textAlign="center";x.textBaseline="middle"; t?(x.shadowColor="rgba("+c.Dp(p.eF).concat([p.bx]).join(",")+")",x.shadowBlur=p.fo,x.shadowOffsetX=p.lu,x.shadowOffsetY=p.mu):x.shadowColor="rgba(0, 0, 0, 0)";x.fillText(p.text,q+Math.round(this.nu*.5),u+Math.round(this.ku*.5));q=!0}if(q||p.width!==this.K.width||p.height!==this.K.height||p.Dd!==this.K.Dd||p.ie!==this.K.ie||p.Ce!==this.K.Ce||p.Ef!==this.K.Ef||p.Yh!==this.K.Yh||p.verticalAlign!==this.K.verticalAlign){q=(t=p.bx>0)?Math.max(0,-p.lu+p.fo):0;u=t?Math.max(0,-p.mu+p.fo):0;r=p.width-p.Dd- p.Ce;t=p.height-p.ie-p.Ef;if(r'+d+""})}function c(d){d=e(d);return Promise.all(Array.from(d).map(function(f){return document.fonts.load(f)}))}return function(d,f){var l= n(d);k(l);return c(l).then(function(){if(f.aborted)throw Error("Aborted");return(new XMLSerializer).serializeToString(l).replace(/#/g,"%23").replace(/\n/g,"%0A")}).then(function(p){if(f.aborted)throw Error("Aborted");var q=l.getBoundingClientRect(),r=l.parentElement;g(l);g(r);return b(p,q.width,q.height)})}}); define("tdv/view/core/visuals/canvas/rasterizer/svgToCanvas",["require","exports"],function(a){function m(f){for(var l=0,p=0;p0;){var l=c.shift();if(l.Jbb.aborted)l.reject(Error("Aborted"));else{var p=document.createElement("canvas");p.width=l.HJ.width;p.height=l.HJ.height;p.getContext("2d").drawImage(l.HJ,0,0);l.resolve(p)}}c.length>0&&k.requestFrame(g)}var k=a("tdv/view/util/Animation"),e=new Map,b=0,c=[],d=1E3/60*.5;return function(f,l){var p=m(f),q=e.get(p);return q?(q.rpa=Date.now(), Promise.resolve(q.canvas)):h(f,l).then(function(r){for(var t=r.width*r.height;b+t>67108864&&e.size>0;){for(var u=null,v=Infinity,w=0,x=Array.from(e.entries());w0&&l.height>0?new k({canvas:l,rect:new e(0,0,l.width,l.height),tag:"html"}):null};d.prototype.Iib=function(){this.MJa();this.TE()};return d}(n)}); define("tdv/view/core/visuals/canvas/CanvasVisualsFactory","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visuals/canvas/CanvasCanvasVisuals tdv/view/core/visuals/canvas/CanvasContainerVisuals tdv/view/core/visuals/canvas/CanvasImageVisuals tdv/view/core/visuals/canvas/CanvasLabelVisuals tdv/view/core/visuals/canvas/CanvasHTMLVisuals tdv/view/core/UIComponent tdv/view/canvas/Canvas tdv/view/containers/Container tdv/view/html/HTML tdv/view/images/Image tdv/view/text/Label tdv/view/core/visuals/VisualsType".split(" "), function(a,m,h,n,g,k,e,b,c,d,f,l,p,q,r){return function(){function t(){}t.prototype.create=function(u){if(u instanceof l)return new b;if(u instanceof d)return new n;if(u instanceof p)return new k;if(u instanceof q)return new e;if(u instanceof f)return new g;if(u instanceof c)return new h;throw Error("Invalid UI instance");};t.prototype.getType=function(){return r.sUa};t.vJ=function(){t.Qo||(t.Qo=new t);return t.Qo};return t}()}); define("tdv/view/core/eventmanager/xrinput/XRInputEventManager","require exports tdv/constants/EventName tdv/view/core/visuals/canvas/Layer tdv/view/events/MouseEvent tdv/view/util/UserInitiatedAction".split(" "),function(a,m,h,n,g,k){return function(){function e(b,c){this.$Na=0;this.component=b;this.JJ=void 0;this.oB=c;this.rE=k.Wsa(this.rE.bind(this));this.KP=k.Wsa(this.KP.bind(this));this.sE=k.Wsa(this.sE.bind(this),!0)}e.prototype.oRa=function(b){this.JJ!==b&&((this.JJ=b)?this.Wna():this.$Ja(), this.Gsa())};e.prototype.Gsa=function(){this.wa().p$(this.JJ?n.WQ:n.SB,this.JJ?!0:!1)};e.prototype.rLa=function(){return this.JJ||!1};e.prototype.dnb=function(b){this.component.o(new g(h.Sa,b.x,b.y,b.pageX,b.pageY))};e.prototype.enb=function(b){this.component.o(new g(h.gb,b.x,b.y,b.pageX,b.pageY))};e.prototype.fnb=function(b){this.component.o(new g(h.$a,b.x,b.y,b.pageX,b.pageY))};e.prototype.gnb=function(b,c){this.component.o(new g(h.Qk,b.x,b.y,b.pageX,b.pageY,c.delta,c.lA))};e.prototype.anb=function(b){this.component.o(new g(h.ma, b.x,b.y,b.pageX,b.pageY))};e.prototype.bnb=function(b){this.component.o(new g(h.fi,b.x,b.y,b.pageX,b.pageY))};e.prototype.rE=function(b){this.wa().YO.bind(h.$a,this.sE,this,!0);this.cQa(b)};e.prototype.cQa=function(b,c){var d;c===void 0&&(c=!0);var f=this.nX(b);f!==null&&(c&&this.fdb(f),this.dnb(f),(d=this.um())===null||d===void 0||d.cQa(b,c&&this.component.get("propagateClick")))};e.prototype.KP=function(b){this.component.Xb().PE(this.component);this.dQa(b)};e.prototype.dQa=function(b){var c,d=this.nX(b); d!==null&&(this.edb(d),this.enb(d),(c=this.um())===null||c===void 0||c.dQa(b))};e.prototype.sE=function(b){this.wa().YO.h(h.$a,this.sE,this);var c=this.nX(b);c!==null&&(this.eQa(b,this.yhb(c)),this.lhb(c))};e.prototype.eQa=function(b,c){var d,f=this.nX(b);f!==null&&(this.fnb(f),this.ddb(c),(d=this.um())===null||d===void 0||d.eQa(b,c))};e.prototype.fdb=function(b){this.component.bind(h.Eb,this.pJa,this,!0);this.eJ=b};e.prototype.edb=function(b){this.eJ&&this.$Ka(this.eJ,b)>20&&this.pna()};e.prototype.ddb= function(b){this.eJ&&(this.anb(this.eJ),b&&this.bnb(this.eJ),this.pna())};e.prototype.pna=function(){this.eJ&&(this.component.h(h.Eb,this.pJa,this),this.eJ=void 0)};e.prototype.pJa=function(){this.pna()};e.prototype.dJa=function(){return!1};e.prototype.aOa=function(b){this.component.Xb().Tha&&this.fQa(b)};e.prototype.fQa=function(b){var c,d=this.nX(b);if(d!==null){var f=this.Kfb(b);this.gnb(d,f);this.dJa(f)||(c=this.um())===null||c===void 0||c.fQa(b)}};e.prototype.nX=function(b){var c=this.oB.Efb(b.pageX, b.pageY,this.wa().nJ);return c?{x:c.x,y:c.y,pageX:b.pageX,pageY:b.pageY}:null};e.prototype.Kfb=function(b){var c={};c.delta=Math.max(-1,Math.min(1,-b.delta));c.lA=c.delta;return c};e.prototype.wa=function(){return this.component.wa()};e.prototype.um=function(){var b=this.component.getParent();if(b)return b.pLa()};e.prototype.Wna=function(){var b=this.wa().YO;b.bind(h.Sa,this.rE,this,!0);b.bind(h.gb,this.KP,this,!0);b.bind(h.Qk,this.aOa,this,!0)};e.prototype.$Ja=function(){var b=this.wa().YO;b.h(h.Sa, this.rE,this);b.h(h.gb,this.KP,this);b.h(h.Qk,this.aOa,this)};e.prototype.lhb=function(b){this.$Na=Date.now();this.ZNa=b};e.prototype.yhb=function(b){return Date.now()-this.$Na>500||!this.ZNa?!1:this.$Ka(this.ZNa,b)<=20};e.prototype.$Ka=function(b,c){var d=b.pageX-c.pageX;b=b.pageY-c.pageY;return Math.sqrt(d*d+b*b)};return e}()}); define("tdv/view/core/eventmanager/xrinput/IconButtonXRInputEventManager",["require","exports","tdv/view/core/eventmanager/xrinput/XRInputEventManager","tdv/view/core/visuals/canvas/Layer","tdv/constants/EventName"],function(a,m,h,n,g){return function(k){function e(b,c){b=k.call(this,b,c)||this;b.PMa=!1;return b}P(e,k);e.prototype.wa=function(){return k.prototype.wa.call(this)};e.prototype.pRa=function(b){this.PMa=b;this.Gsa()};e.prototype.rE=function(b){this.wa().m8.bind(g.$a,this.sE,this,!0);k.prototype.rE.call(this, b)};e.prototype.sE=function(b){this.wa().m8.h(g.$a,this.sE,this);k.prototype.sE.call(this,b)};e.prototype.Gsa=function(){this.JJ?this.PMa?(this.wa().p$(n.WQ,!0),this.wa().nra(n.SB,!1)):(this.wa().p$(n.SB,!1),this.wa().nra(n.qua,!0)):(this.wa().p$(n.SB,!1),this.wa().nra(n.SB,!1))};e.prototype.Wna=function(){k.prototype.Wna.call(this);var b=this.wa().m8;b.bind(g.Sa,this.rE,this,!0);b.bind(g.gb,this.KP,this,!0)};e.prototype.$Ja=function(){var b=this.wa().YO;b.h(g.Sa,this.rE,this);b.h(g.gb,this.KP,this)}; return e}(h)}); define("tdv/view/core/eventmanager/xrinput/ScrollableContainerXRInputEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/xrinput/XRInputEventManager","tdv/player/view/util/Device"],function(a,m,h,n,g){return function(k){function e(b,c){b=k.call(this,b,c)||this;b.fA=0;b.gA=0;b.Npb=void 0;b.Opb=void 0;b.uE=!1;b.vE=!1;b.uJa=0;b.EC=b.EC.bind(b);b.ID=b.ID.bind(b);b.Vna();return b}P(e,k);e.prototype.Vna=function(){this.wa().lMa.bind(h.Sa,this.EC,this,!1);this.wa().JTa.bind(h.Sa, this.ID,this,!1);this.component.bind(h.Sa,this.pdb,this,!1);this.component.bind(h.uc,this.Uda,this,!1);this.component.bind(h.Eb,this.Tda,this,!1);this.component.bind(h.Qk,this.qdb,this,!1)};e.prototype.wa=function(){return this.component.wa()};e.prototype.EC=function(){this.component.Ww(!0);this.uE=!0};e.prototype.ID=function(){this.component.Xw(!0);this.vE=!0};e.prototype.Uda=function(){this.component.$E(!0)};e.prototype.Tda=function(){this.component.$E(!1)};e.prototype.pdb=function(b){this.component.hn|| this.component.jn?(this.oB.bind(h.gb,this.BJa,this,!1),this.oB.bind(h.$a,this.CJa,this,!1),this.fA=b.pageX,this.gA=b.pageY):this.odb(b)};e.prototype.BJa=function(b){var c=0,d=0;this.uE&&(c=(b.pageX-this.fA)/this.wa().kMa);this.vE&&(d=(b.pageY-this.gA)/this.wa().ITa);this.fA=b.pageX;this.gA=b.pageY;c==0&&d==0||this.component.JP(c,d,"content")};e.prototype.CJa=function(){this.oB.h(h.gb,this.BJa,this);this.oB.h(h.$a,this.CJa,this);this.component.Ww(!1);this.component.Xw(!1);this.vE=this.uE=!1};e.prototype.dJa= function(b){return b.delta>0&&this.component.LO()||b.delta<0&&this.component.JO()?!0:!1};e.prototype.qdb=function(b){b=(g.Nd()==g.r_?b.lA*.1:b.delta)*.3;this.component.JP(0,-b,"page")};e.prototype.odb=function(b){if(this.component.KO()||this.component.MO())this.oB.bind(h.gb,this.zJa,this,!1),this.oB.bind(h.$a,this.AJa,this,!1),this.component.$E(!0),this.fA=b.pageX,this.gA=b.pageY,this.ihb()};e.prototype.zJa=function(b){var c=b.pageX-this.fA,d=b.pageY-this.gA;!this.uE&&!this.vE&&c*c+d*d>25&&(this.uE= this.component.KO(),this.vE=this.component.MO(),this.component.Ww(this.uE),this.component.Xw(this.vE));if(this.uE||this.vE)this.component.JP(this.uE?-c:0,this.vE?-d:0),this.fA=b.pageX,this.gA=b.pageY,this.unb()};e.prototype.AJa=function(){this.oB.h(h.gb,this.zJa,this);this.oB.h(h.$a,this.AJa,this);this.component.$E(!1);var b=Math.max(Math.abs(this.xJa/.001),Math.abs(this.yJa/.001));this.component.kIa(-.5*this.xJa*b,-.5*this.yJa*b,b)};e.prototype.ihb=function(){this.vJa=this.fA;this.wJa=this.gA};e.prototype.unb= function(){var b=(new Date).getTime(),c=b-this.uJa;c>10&&(this.uJa=b,this.xJa=(this.fA-this.vJa)/c,this.yJa=(this.gA-this.wJa)/c,this.vJa=this.fA,this.wJa=this.gA)};return e}(n)}); define("tdv/view/core/eventmanager/xrinput/XRInputEventManagerFactory","require exports tdv/view/core/UIComponent tdv/view/core/eventmanager/xrinput/XRInputEventManager tdv/view/core/eventmanager/xrinput/IconButtonXRInputEventManager tdv/view/core/eventmanager/xrinput/ScrollableContainerXRInputEventManager tdv/view/buttons/IconButton tdv/view/containers/ScrollableContainer".split(" "),function(a,m,h,n,g,k,e,b){return function(){function c(){}c.prototype.create=function(d,f){if(d instanceof e)return new g(d, f[0]);if(d instanceof b)return new k(d,f[0]);if(d instanceof h)return new n(d,f[0]);throw Error("Invalid UI instance");};c.vJ=function(){c.Qo||(c.Qo=new c);return c.Qo};return c}()}); define("tdv/view/core/eventmanager/xrinput/UIPanelEventAdapter","require exports tdv/view/core/visuals/canvas/Layer tdv/view/events/MouseEvent tdv/player/view/util/xr/ui/UIPointerState tdv/player/view/util/XR tdv/events/EventDispatcher tdv/constants/EventName tdv/view/util/Animation tdv/player/view/util/ColorPicker".split(" "),function(a,m,h,n,g,k,e,b,c,d){a=function(f){function l(){var p=f.call(this)||this;p.GK=null;p.content=null;p.Soa=null;p.F8=!1;p.tpa=0;p.upa=0;p.Y8=[];p.ir=!1;p.A8=!1;return p} P(l,f);l.prototype.dra=function(p){this.content=p};l.prototype.K$=function(p){this.GK!==p&&(this.GK&&(k.M.h(b.V,this.Ta,this),k.M.h(b.Zd,this.Kg,this)),(this.GK=p)?(k.M.bind(b.V,this.Ta,this,!0),this.Ta()):this.mZ(null))};l.prototype.Ta=function(){k.isPresenting?(k.M.bind(b.Zd,this.Kg,this,!0),this.Kg()):k.M.h(b.Zd,this.Kg,this)};l.prototype.Kg=function(){this.onChange()};l.prototype.onChange=function(){var p,q;this.GK?(this.mZ(this.GK.Cg),(p=this.GK)===null||p===void 0||p.YE(this.ir,this.A8)):this.Soa&& (this.mZ(this.Soa.Cg),(q=this.Soa)===null||q===void 0||q.mZ(this.ir,this.A8))};l.prototype.mZ=function(p){var q;(q=this.content)!==null&&q!==void 0&&q.wa()&&(p?this.EIa(p.uPa,p.vPa,p.pressed,p.Wmb,p.Xmb):this.EIa(void 0,void 0,!1,0,0))};l.prototype.EIa=function(p,q,r,t,u){if(p!==this.tpa||q!==this.upa||this.F8!==r){var v=p===void 0?this.tpa:p,w=q===void 0?this.upa:q;this.Vj(p,q);this.F8!==r&&((this.F8=r)?this.$h(v,w):this.lf(v,w));this.tpa=v;this.upa=w}t===0&&u===0||this.Bib(p,q,u)};l.prototype.Vj= function(p,q){var r,t,u=p!==void 0&&q!==void 0;u&&this.o(new n(b.gb,p,q,p,q));u=u?this.zoa(p,q):[];u.length>0?(this.A8=u[0].cursor=="pointer",u.forEach(function(v){v.M.o(new n(b.gb,p-v.left,q-v.top,p,q))}),this.ir=!0):(this.ir&&((t=(r=this.content)===null||r===void 0?void 0:r.Xb())===null||t===void 0||t.PE(null)),this.ir=this.A8=!1)};l.prototype.$h=function(p,q){this.o(new n(b.Sa,p,q,p,q));this.Y8=this.zoa(p,q);this.Y8.forEach(function(r){r.M.o(new n(b.Sa,p-r.left,q-r.top,p,q))})};l.prototype.lf= function(p,q){this.o(new n(b.$a,p,q,p,q));this.Y8.forEach(function(r){r.M.o(new n(b.$a,p-r.left,q-r.top,p,q))});this.Y8=[]};l.prototype.Bib=function(p,q,r){var t=p!==void 0&&q!==void 0,u=r*c.gX/1E3*5;t&&this.o(new n(b.Qk,p,q,p,q,u));r=t?this.zoa(p,q):[];r.length>0&&r.forEach(function(v){v.M.o(new n(b.Qk,p-v.left,q-v.top,p,q,u))})};l.prototype.zoa=function(p,q){var r,t=(r=this.content)===null||r===void 0?void 0:r.wa();if(!t)return[];r=t.hfb();if(!r)return[];var u=r.rect;return this.BKa(p+u.left,q+ u.top,r.layers).reduce(function(v,w){v.length!=0&&v[v.length-1].RD||v.push(w);return v},[]).reduce(function(v,w){v.find(function(x){return x.M===w.M})||v.push(w);return v},[]).map(function(v){return{M:v.M,cursor:v.cursor,left:v.rect.left-u.left,top:v.rect.top-u.top}})};l.prototype.BKa=function(p,q,r){for(var t=[],u=r.length-1;u>=0;u--){var v=r[u];t=t.concat(this.BKa(p,q,v.layers));v.opacity>0&&v.WA!==h.SB&&v.visibleRect.containsPoint(p,q)&&(v.WA===h.qua&&v.canvas?d.ax(v.canvas,p-v.rect.left,q-v.rect.top)&& t.push(v):t.push(v))}return t};l.prototype.Efb=function(p,q,r){var t,u=(t=this.content)===null||t===void 0?void 0:t.wa();return u?(r=u.FLa(r))?{x:p-r.rect.left,y:q-r.rect.top}:null:null};return l}(e);(function(f){function l(p){var q=f.call(this)||this;q.Roa=p;q.Cg=null;q.Vj=q.Vj.bind(q);q.$h=q.$h.bind(q);q.lf=q.lf.bind(q);document.addEventListener("mousemove",q.Vj,!0);document.addEventListener("mousedown",q.$h,!0);document.addEventListener("mouseup",q.lf,!0);return q}P(l,f);l.prototype.cc=function(){return this.Roa}; l.prototype.dispose=function(){document.removeEventListener("mousemove",this.Vj,!0);document.removeEventListener("mousedown",this.$h,!0);document.removeEventListener("mouseup",this.lf,!0)};l.prototype.mZ=function(p,q){this.Roa.style.cursor=q?"pointer":"default"};l.prototype.Vj=function(p){this.Lsa(p);p.preventDefault();p.stopPropagation()};l.prototype.$h=function(p){this.pressed=!0;this.Lsa(p);p.preventDefault();p.stopPropagation()};l.prototype.lf=function(p){this.pressed=!1;this.Lsa(p);p.preventDefault(); p.stopPropagation()};l.prototype.Lsa=function(p){var q=this.Roa.getBoundingClientRect(),r=p.clientX-q.left;p=p.clientY-q.top;var t=q.width;q=q.height;r>=0&&r<=t&&p>=0&&p<=q?(this.Cg||(this.Cg=new g),this.Cg.uPa=r,this.Cg.vPa=p,this.Cg.distance=1,this.Cg.pressed=this.pressed):this.Cg=null;this.o(b.V)};return l})(e);return a}); define("tdv/player/script/XRPanel","require exports tdv/binding/Bindable tdv/constants/EventName tdv/player/parser/ClassInfo tdv/view/core/visuals/canvas/CanvasVisualsFactory tdv/view/core/eventmanager/xrinput/XRInputEventManagerFactory tdv/view/core/eventmanager/xrinput/UIPanelEventAdapter tdv/player/view/util/xr/ui/UI".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(f){function l(){var p=f.call(this)||this;d.Wma(p);p.Bla=new b;p.Ud=null;p.yM=!1;return p}P(l,f);l.prototype.set=function(p,q){f.prototype.set.call(this, p,q);switch(p){case "content":this.dra(q);break;case "autoCenter":this.k$(q);break;case "hud":this.s$(q);break;case "draggable":this.UY(q);break;case "draggableDistance":this.n$(q);break;case "modal":this.sra(q);break;case "yaw":this.sj(q);break;case "pitch":this.$n(q);break;case "distance":this.Yn(q);break;case "pixelScale":this.kZ(q);break;case "veilColor":this.L$(q);break;case "veilOpacity":this.Nra(q)}return this};l.prototype.get=function(p,q){switch(p){case "yaw":return this.Ga=this.Ud?this.Ud.Kc(): this.Ga;case "pitch":return this.rb=this.Ud?this.Ud.Jc():this.rb;default:return f.prototype.get.call(this,p,q)}};l.prototype.ara=function(p){this.Gb!==p&&(this.Gb=p,this.co())};l.prototype.RJa=function(){if(!this.Ud){var p=c.Hdb();this.K$(p)}};l.prototype.Ina=function(){if(this.Ud){var p=this.Ud;this.K$(null);c.deb(p)}};l.prototype.K$=function(p){if(this.Ud!==p&&(this.Ud&&(this.Ga=this.Ud.Kc(),this.rb=this.Ud.Jc()),this.Ud=p,this.Bla.K$(p),this.Ud&&(this.Ud.Yn(this.PG),this.Ud.n$(this.Sea),this.Ud.kZ(this.aja), this.Ud.s$(this.xga),this.Ud.k$(this.DL),this.Ud.L$(this.zma),this.IK(),this.qaa(),this.MZ(),this.DL||(this.Ud.sj(this.Ga),this.Ud.$n(this.rb)),this.yM)))this.onChange()};l.prototype.dra=function(p){this.$f!==p&&(this.$f&&(this.$f.h(n.Rb,this.tl,this),this.$f.h(n.INIT,this.AOa,this),this.$f.h(n.od,this.YOa,this),this.$f.h(n.jd,this.p9,this),this.$f.wa().h(n.V,this.onChange,this)),this.SD(),this.$f=p)&&(this.$f.getParent()&&this.$f.getParent().removeChild(this.$f),this.$f.bind(n.Rb,this.tl,this,!0), this.$f.bind(n.INIT,this.AOa,this,!0),this.$f.bind(n.od,this.YOa,this,!0),this.$f.bind(n.jd,this.p9,this,!0),this.Bla.dra(p),this.co())};l.prototype.k$=function(p){var q;this.DL!==p&&(this.DL=p,(q=this.Ud)===null||q===void 0||q.k$(this.DL))};l.prototype.s$=function(p){var q;this.xga!==p&&(this.xga=p,(q=this.Ud)===null||q===void 0||q.s$(this.xga))};l.prototype.UY=function(p){var q;this.Rea!==p&&(this.Rea=p,this.IK(),(q=this.Ud)===null||q===void 0||q.UY(this.Rea))};l.prototype.n$=function(p){var q; this.Sea!==p&&(this.Sea=p,(q=this.Ud)===null||q===void 0||q.n$(this.Sea))};l.prototype.sra=function(p){this.Mha!==p&&(this.Mha=p,this.qaa(),this.MZ())};l.prototype.sj=function(p){var q;this.DL||(this.Ga=p,(q=this.Ud)===null||q===void 0||q.sj(this.Ga))};l.prototype.$n=function(p){var q;this.DL||(this.rb=p,(q=this.Ud)===null||q===void 0||q.$n(this.rb))};l.prototype.Yn=function(p){var q;this.PG!==p&&(this.PG=p,(q=this.Ud)===null||q===void 0||q.Yn(this.PG))};l.prototype.kZ=function(p){var q;this.aja!== p&&(this.aja=p,(q=this.Ud)===null||q===void 0||q.kZ(this.aja))};l.prototype.L$=function(p){var q;this.zma!==p&&(this.zma=p,(q=this.Ud)===null||q===void 0||q.L$(this.zma))};l.prototype.Nra=function(p){this.AHa!==p&&(this.AHa=p,this.MZ())};l.prototype.tl=function(){};l.prototype.YOa=function(){this.qaa();this.IK();this.MZ()};l.prototype.p9=function(){this.qaa();this.IK();this.MZ()};l.prototype.AOa=function(){this.yM=!0;var p=this.$f.wa();p.bind(n.V,this.onChange,this,!0);p.Rkb();this.onChange()};l.prototype.onChange= function(){var p,q,r,t;if(this.$f){var u=this.$f.wa();u=(u===null||u===void 0?void 0:u.getLayers())||[];u.length==0?(p=this.Ud)===null||p===void 0||p.$cb():(p=u[0],u=p.canvas,u.width>0&&u.height>0&&((q=this.Ud)===null||q===void 0||q.CTa(u),(r=this.Ud)===null||r===void 0||r.Zn(p.opacity),q=this.$f.get("actualHeight"),r=this.$f.get("actualWidth"),(t=this.Ud)===null||t===void 0||t.ykb(r*.5-p.rect.left,q-p.rect.top+20)))}};l.prototype.qaa=function(){var p;(p=this.Ud)===null||p===void 0||p.sra(this.Mha&& (this.$f?this.$f.get("visible"):!1))};l.prototype.IK=function(){var p;(p=this.Ud)===null||p===void 0||p.UY(this.Rea&&(this.$f?this.$f.get("visible"):!1))};l.prototype.MZ=function(){var p,q;(p=this.Ud)===null||p===void 0||p.Nra(this.Mha&&((q=this.$f)===null||q===void 0?0:q.get("visible"))?this.AHa:0)};l.prototype.co=function(){var p;(p=this.$f)===null||p===void 0||p.co(this.Gb,k.vJ(),e.vJ(),[this.Bla])};l.prototype.SD=function(){var p;(p=this.$f)===null||p===void 0||p.SD()};return l}(h);var d=g.create("XRPanel", a);return a}); define("tdv/view/containers/windows/XRWindow","require exports tdv/view/containers/windows/BaseWindow tdv/player/script/XRPanel tdv/player/view/util/XR three.mod tdv/constants/EventName".split(" "),function(a,m,h,n,g,k,e){a=function(d){function f(){var l=d.call(this)||this;l.jIa=!1;l.gf("XRWindow");l.mg=new n;l.mg.set("content",l);l.bind(e.aL,l.uib,l,!1);return l}P(f,d);f.prototype.set=function(l,p){switch(l){case "modal":this.mg.set("modal",p);break;case "autoCenter":this.mg.set("autoCenter",p); break;case "draggable":this.mg.set("draggable",p);break;default:d.prototype.set.call(this,l,p)}};f.prototype.show=function(l){var p=this;this.O6();!l&&this.jIa||this.get("autoCenter")||(this.mg.set("yaw",g.isPresenting?-b.setFromQuaternion(g.yl,"YXZ").y*c:0),this.mg.set("pitch",g.isPresenting?b.setFromQuaternion(g.yl,"YXZ").x*c:0));l=this.get("application");var q=l.get("xrPanels")||[];l.set("xrPanels",q.filter(function(r){return r!==p.mg}).concat([this.mg]));this.jIa=!0;setTimeout(function(){p.set("visible", !0)},0)};f.prototype.oe=function(){this.N6();this.set("visible",!1)};f.prototype.uib=function(){var l=this,p=this.get("application"),q=p.get("xrPanels")||[];p.set("xrPanels",q.filter(function(r){return r!==l.mg}))};return f}(h);var b=new k.Euler,c=180/Math.PI;return a}); define("tdv/player/script/XRWindow",["require","exports","tdv/player/parser/ClassInfo","tdv/view/containers/windows/XRWindow"],function(a,m,h,n){a=function(k){function e(){var b=k.call(this)||this;g.Wma(b);b.show=b.show;b.hide=b.oe;return b}P(e,k);return e}(n);var g=h.create("XRWindow",a);return a}); define("tdv/player/view/zoomimage/Renderer","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/events/Event tdv/events/EventDispatcher tdv/view/util/Animation tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/images/ImageLoader tdv/view/constants/ScaleMode tdv/player/view/util/Device tdv/utils".split(" "),function(a){function m(t){this.source=t;this.width=this.source.get("width");this.height=this.source.get("height");this.url=this.source.get("url");this.oP= this.source.get("grayscale");this.GA=new f(g.Jm)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Priority"),k=a("tdv/events/Event"),e=a("tdv/events/EventDispatcher"),b=a("tdv/view/util/Animation"),c=a("tdv/view/util/Ease"),d=a("tdv/view/util/EaseDimension"),f=a("tdv/view/images/ImageLoader"),l=a("tdv/view/constants/ScaleMode"),p=a("tdv/player/view/util/Device"),q=a("tdv/utils"),r=q.extend(e,function(){e.call(this);this.q3=this.q3.bind(this);this.Kh=null;this.se= [];this.Xo=[];this.gk=this.ji=this.Ng=this.Og=100;this.Mj=1;this.mC=this.lC=.5;this.ne=1;this.Wk=this.mk=null;this.c4=!1;this.hea={};this.WL={};this.WL.low={};this.WL.hight={};p.DO()==p.HQ&&(this.WL.low.transform="translateZ(0)",this.WL.hight.transform="");this.ha=!1;this.Vi="inherit";this.qa=document.createElement("div");this.qa.style.position="absolute";this.qa.style.left="0";this.qa.style.top="0";this.qa.style.right="0";this.qa.style.bottom="0";this.qa.style.overflow="hidden";this.BS=null;this.wh= q.nr(this.za,this)});r.prototype.cc=function(){return this.qa};r.prototype.gQ=function(t){this.ti!=t&&(this.ti=t,this.kda(1),this.wh())};r.prototype.m$=function(t){this.Vi!=t&&(this.Vi=t,this.Wk&&(this.Wk.style.cursor=this.Vi),this.mk&&(this.mk.style.cursor=this.Vi))};r.prototype.Mkb=function(t){this.se!=t&&(this.se&&h.da(this.se,["levels.url"],this.q3),(this.se=t)&&h.ba(this.se,["levels.url"],this.q3,!0))};r.prototype.q3=function(){this.Mda();this.Kh=null;this.mk&&(this.qa.removeChild(this.mk),this.mk= null);this.Wk&&(this.qa.removeChild(this.Wk),this.Wk=null);this.bh&&(this.bh=null);this.Mda();this.c4=!1;this.Xo.forEach(u=>{u.GA.cancel();u.GA.h(n.ia,this.hAa,this)});this.Xo=(this.se&&this.se.get("levels")||[]).filter(function(u){return u.get("url")}).map(u=>{u=new m(u);u.GA.bind(n.ia,this.hAa,this);return u});var t=this.$1a();t?(this.ji=t.width,this.gk=t.height):this.gk=this.ji=100;this.mC=this.lC=.5;this.kda(1);this.wh()};r.prototype.l$=function(t,u){if(this.Og!=t||this.Ng!=u)this.Og=t,this.Ng= u,this.wh()};r.prototype.skb=function(t,u){if(this.sxa!=t||this.rxa!=u)this.sxa=t,this.rxa=u,this.wh()};r.prototype.Ra=function(t){this.ha!=t&&(this.ha=t,this.wh())};r.prototype.move=function(t,u){var v=this.Mj*this.ne;this.lC+=t/(this.ji*v);this.mC+=u/(this.gk*v);this.F4()};r.prototype.xA=function(){return this.ne};r.prototype.setScale=function(t){this.kda(Math.max(1,Math.min(1/this.Mj,t)));this.Kh&&this.Kh.width=0&&t>=0&&vthis.gk*this.Og? this.Ng/this.gk:this.Og/this.ji;break;case l.pUa:t=Math.min(this.sxa/this.ji,this.rxa/this.gk);break;default:t=this.ji*this.Ng>this.gk*this.Og?this.Og/this.ji:this.Ng/this.gk}this.gYa(t)};r.prototype.hAa=function(){this.wh()};r.prototype.X_a=function(t){this.Wk&&(this.tka(this.Wk,1),this.mk&&this.qa.removeChild(this.mk),this.mk=this.Wk);this.Wk=this.p_a(t);this.tka(this.Wk,0);this.qa.appendChild(this.Wk);this.bh=this.g_a();this.hea={}};r.prototype.i2a=function(){return this.Kh?this.o1a(this.ne*this.Mj* this.ji):this.G2a()};r.prototype.VEa=function(t){this.Xo.forEach(u=>{u==t?u.GA.rl()!=u.url&&u.GA.load(u.url):u.GA.pj()||u.GA.cancel()})};r.prototype.$1a=function(){return this.Xo.reduce((t,u)=>{t||(t=u);if(u.width>t.width||u.width==t.width&&!u.oP&&t.oP)t=u;return t},null)};r.prototype.G2a=function(){return this.Xo.reduce((t,u)=>{t||(t=u);if(u.width{u||(u=v);if(v.width>=t&&u.width< t||v.width>=t&&v.widthu.width||!v.oP&&u.oP)u=v;return u},null)};r.prototype.p_a=function(t){t=t.GA.yg(!0);t.style.position="absolute";t.style.cursor=this.Vi;t.style.pointerEvents="none";return t};r.prototype.g_a=function(){return new c("linear",[new d("alpha",0,1)],200)};r.prototype.F4=function(){b.requestFrame(function(t){this.A4(t,"low")},this)};r.prototype.voa=function(){return this.ne*this.Mj*this.ji};r.prototype.uoa=function(){return this.ne*this.Mj*this.gk};r.prototype.mLa= function(){var t=this.voa();return t>this.Og?Math.max(this.Og-t,Math.min(0,this.Og*.5-t*this.lC)):(this.Og-t)*.5};r.prototype.nLa=function(){var t=this.uoa();return t>this.Ng?Math.max(this.Ng-t,Math.min(0,this.Ng*.5-t*this.mC)):(this.Ng-t)*.5};r.prototype.A4=function(t,u){u=u||"low";var v=this.voa(),w=this.mLa(),x=this.uoa(),y=this.nLa();this.lC=(this.Og*.5-w)/v;this.mC=(this.Ng*.5-y)/x;v={left:Math.round(w)+"px",top:Math.round(y)+"px",width:Math.round(v)+"px",height:Math.round(x)+"px",display:"block"}; for(var z in this.WL[u])v[z]=this.WL[u][z];if(this.hea!=v){if(this.mk)for(z in v)this.mk.style[z]=v[z];if(this.Wk)for(z in v)this.Wk.style[z]=v[z];this.hea=v}this.Mda();this.bh?(this.bh.Nb(t),this.tka(this.Wk,this.bh.ob("alpha")),this.bh.Ve()&&(this.bh=null,this.mk&&this.qa.removeChild(this.mk),this.mk=this.Wk,this.Wk=null),this.F4()):u=="low"&&this.M9a();!this.bh&&this.c4&&(this.c4=!1,this.o(new k(n.ia)))};r.prototype.tka=function(t,u){t.style.opacity=u};r.prototype.Mda=function(){this.BS!=null&& (clearTimeout(this.BS),this.BS=null)};r.prototype.M9a=function(){var t=this;this.BS=setTimeout(function(){t.BS=null;t.A4(50,"hight")},50)};r.prototype.kda=function(t){this.ne!=t&&(this.ne=t,this.U$a())};r.prototype.gYa=function(t){this.Mj!=t&&(this.Mj=t)};r.prototype.U$a=function(){this.o(new k(r.m_,{scale:this.ne}))};r.m_="scaleChange";return r}); define("tdv/player/view/zoomimage/ZoomImage","require tdv/constants/EventName tdv/events/Event tdv/player/view/zoomimage/Renderer tdv/utils tdv/view/core/UIComponent tdv/view/core/UIComponent".split(" "),function(a){var m=a("tdv/constants/EventName"),h=a("tdv/events/Event"),n=a("tdv/player/view/zoomimage/Renderer"),g=a("tdv/utils"),k=a("tdv/view/core/UIComponent");k=a("tdv/view/core/UIComponent");var e=g.extend(k,function(){k.call(this);this.gf("ZoomImage");this.uz=this.mp=void 0;this.bm=!1;this.CDa= void 0;this.Hza=this.ne=1;this.kW=null;this.j=new n;this.j.bind(m.ia,this.H5a,this);this.j.bind(n.m_,this.I5a,this);this.bind(m.Rb,this.kd,this,!0);this.bind(m.od,this.cp,this,!0);this.bind(m.jd,this.ap,this,!0);this.bind(m.Sa,this.te,this,!0);this.bind(m.gb,this.bl,this,!0);this.bind(m.$a,this.cl,this,!0);this.bind(m.Qk,this.JH,this,!0);this.bind(m.ZK,this.bH,this,!0)});e.prototype.Kb=function(){k.prototype.Kb.call(this);this.j.cc().parentElement||this.wa().uk(this.j.cc())};e.prototype.set=function(b, c){switch(b){case "scale":this.j.setScale(c);c=this.j.xA();break;case "imageLeft":case "imageTop":case "imageWidth":case "imageHeight":return}k.prototype.set.call(this,b,c)};e.prototype.get=function(b,c){switch(b){case "scale":return this.j.xA();case "imageLeft":return this.j.mLa();case "imageTop":return this.j.nLa();case "imageWidth":return this.j.voa();case "imageHeight":return this.j.uoa()}return k.prototype.get.call(this,b,c)};e.prototype.Pb=function(){k.prototype.Pb.call(this);this.m("image"); this.m("scaleMode");this.m("customHeight");this.m("customWidth");this.m("imageCursor");this.m("imageLeft");this.m("imageTop");this.m("imageWidth");this.m("imageHeight")};e.prototype.jb=function(){this.S("scaleMode")&&(this.j.gQ(this.G("scaleMode")),this.$("scaleMode"));this.S("image")&&(this.j.Mkb(this.G("image")),this.$("image"),this.Hza=this.ne);if(this.S("customHeight")||this.S("customWidth"))this.$("customHeight"),this.$("customWidth"),this.kd();this.S("imageCursor")&&(this.$("imageCursor"),this.j.m$(this.Gb.wea.ZKa(this.get("imageCursor")))); k.prototype.jb.call(this)};e.prototype.kd=function(){var b=this.nb(),c=this.Mb(),d=this.get("customWidth","100%"),f=k.Cp(d);d=f!==void 0?b*f/100:d;f=this.get("customHeight","100%");var l=k.Cp(f);this.j.skb(d,l!==void 0?c*l/100:f);this.j.l$(b,c)};e.prototype.cp=function(){this.j.Ra(!0)};e.prototype.ap=function(){this.j.Ra(!1)};e.prototype.te=function(b){this.mp=b.x;this.uz=b.y;this.bm=!0;this.CDa=this.j.aNa(b)};e.prototype.bl=function(b){this.bm&&(this.uma(),this.j.move(-(b.x-this.mp),-(b.y-this.uz)), this.mp=b.x,this.uz=b.y)};e.prototype.cl=function(b){this.bm=!1;this.CDa||this.j.aNa(b)||this.o(new h(e.CUa))};e.prototype.JH=function(b){this.uma();this.j.setScale((1+b.delta/20)*this.j.xA())};e.prototype.bH=function(b){this.uma();this.j.setScale(b.scale/this.Hza)};e.prototype.H5a=function(){this.o(new h(m.ia))};e.prototype.I5a=function(){k.prototype.set.call(this,"scale",this.j.xA());this.o(new h(e.m_))};e.prototype.uma=function(){this.kW?(clearTimeout(this.kW),this.kW=null):this.o(new h(e.ak)); this.kW=setTimeout(function(){this.kW=null;this.o(new h(e.$j))}.bind(this),300)};e.CUa="backgroundClick";e.m_="scaleChange";e.ak="userInteractionStart";e.$j="userInteractionEnd";return e});define("tdv/player/script/ZoomImage",["require","tdv/player/view/zoomimage/ZoomImage","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/player/view/zoomimage/ZoomImage");return a("tdv/player/parser/ClassInfo").define("ZoomImage",m,function(){m.call(this)})}); define("tdv/player/script/classes","require tdv/player/parser/ClassInfo tdv/player/script/AdjacentPanorama tdv/player/script/AmbientLight tdv/player/script/AmbientOcclusionModel3DPostprocessing tdv/player/script/AnimatedImageResource tdv/player/script/AntialiasModel3DPostprocessing tdv/player/script/AreaHotspotMapOverlay tdv/player/script/AudioResource tdv/player/script/BaseButton tdv/player/script/BaseObject tdv/player/script/BaseWindow tdv/player/script/BoxModel3DObject tdv/player/script/Button tdv/player/script/CanvasPlaneModel3DObject tdv/player/script/CeilingCapPanoramaOverlay tdv/player/script/ChildModel3DObject tdv/player/script/CloseButton tdv/player/script/CookiesPolicy tdv/player/script/Container tdv/player/script/CubicPanoramaFrame tdv/player/script/DirectionalPanoramaAudio tdv/player/script/DistanceModel3DCameraMovement tdv/player/script/DistancePanoramaCameraMovement tdv/player/script/DistanceRotationalCameraMovement tdv/player/script/DropDown tdv/player/script/DustPanoramaOverlay tdv/player/script/Effect tdv/player/script/ExternalModel3DObject tdv/player/script/FadeInEffect tdv/player/script/FadeOutEffect tdv/player/script/FirstPersonModel3DCamera tdv/player/script/FlatHotspotPanoramaOverlay tdv/player/script/FlatHotspotPanoramaOverlayArea tdv/player/script/FlatHotspotPanoramaOverlayImage tdv/player/script/FlatHotspotPanoramaOverlayImageBase tdv/player/script/FlatHotspotPanoramaOverlayMap tdv/player/script/FlatPanoramaOverlayPlaybackPosition tdv/player/script/FlyOverModel3DCamera tdv/player/script/FramePanoramaOverlay tdv/player/script/GoogleMaps3DTilesModel3DResource tdv/player/script/GridContainer tdv/player/script/HDRPanorama tdv/player/script/HorizonGridModel3DObject tdv/player/script/HotspotMapOverlay tdv/player/script/HotspotMapOverlayArea tdv/player/script/HotspotMapOverlayImage tdv/player/script/HotspotMapOverlayMap tdv/player/script/HotspotPanoramaOverlay tdv/player/script/HotspotPanoramaOverlayArea tdv/player/script/HotspotPanoramaOverlayImage tdv/player/script/HotspotPanoramaOverlayImageBase tdv/player/script/HotspotPanoramaOverlayMap tdv/player/script/HTML tdv/player/script/HTMLText tdv/player/script/IconButton tdv/player/script/IconHotspotMapOverlay tdv/player/script/Image tdv/player/script/ImagePlaneModel3DObject tdv/player/script/ImageResource tdv/player/script/ImageResourceLevel tdv/player/script/InnerModel3DObject tdv/player/script/Label tdv/player/script/LensFlarePanoramaOverlay tdv/player/script/LineModel3DObject tdv/player/script/LivePanorama tdv/player/script/Light tdv/player/script/Map tdv/player/script/MapOverlay tdv/player/script/MapPlayer tdv/player/script/MapPlayListItem tdv/player/script/MeasureModel3DObject tdv/player/script/MeasureModel3DObjectPoint tdv/player/script/Media tdv/player/script/MediaAudio tdv/player/script/Model3D tdv/player/script/Model3DAnimation tdv/player/script/Model3DCamera tdv/player/script/Model3DCameraMovement tdv/player/script/Model3DCameraSequence tdv/player/script/Model3DDisplayEffect tdv/player/script/Model3DObject tdv/player/script/Model3DPlayer tdv/player/script/Model3DPlayListItem tdv/player/script/Model3DPointer tdv/player/script/Model3DPostprocessing tdv/player/script/Model3DResource tdv/player/script/Model3DResourceLevel tdv/player/script/Menu tdv/player/script/MenuItem tdv/player/script/MotionBlurModel3DPostprocessing tdv/player/script/MovementPhotoCamera tdv/player/script/Object3D tdv/player/script/OrbitLight tdv/player/script/OrbitModel3DCamera tdv/player/script/Panorama tdv/player/script/PanoramaAudio tdv/player/script/PanoramaCamera tdv/player/script/PanoramaCameraDisplayPosition tdv/player/script/PanoramaCameraMovement tdv/player/script/PanoramaCameraPosition tdv/player/script/PanoramaCameraSequence tdv/player/script/PanoramaFrame tdv/player/script/PanoramaMapLocation tdv/player/script/PanoramaModel3DLocation tdv/player/script/PanoramaOverlay tdv/player/script/PanoramaOverlayPlaybackPosition tdv/player/script/PanoramaPlayer tdv/player/script/PanoramaPlayListItem tdv/player/script/PanoramaPoint tdv/player/script/PanoramaSnapshot tdv/player/script/Photo tdv/player/script/PhotoAlbum tdv/player/script/PhotoAlbumAudio tdv/player/script/PhotoAlbumPlayer tdv/player/script/PhotoAlbumPlayListItem tdv/player/script/PhotoAudio tdv/player/script/PhotoCamera tdv/player/script/PhotoCameraPosition tdv/player/script/PhotoPlayList tdv/player/script/PhotoPlayListItem tdv/player/script/PlaneModel3DObject tdv/player/script/PlaybackBar tdv/player/script/Player tdv/player/script/PlayerMenuItem tdv/player/script/PlayList tdv/player/script/PlayListItem tdv/player/script/PopupPanoramaOverlay tdv/player/script/ProgressBar tdv/player/script/ProjectedMaterialModel3DObject tdv/player/script/QuadFramePanoramaOverlay tdv/player/script/QuadHotspotPanoramaOverlay tdv/player/script/QuadHotspotPanoramaOverlayArea tdv/player/script/QuadHotspotPanoramaOverlayImage tdv/player/script/QuadHotspotPanoramaOverlayImageBase tdv/player/script/QuadHotspotPanoramaOverlayMap tdv/player/script/QuadVideoPanoramaOverlay tdv/player/script/RadialModel3DDisplayEffect tdv/player/script/RainPanoramaOverlay tdv/player/script/RotationalCameraDisplayPosition tdv/player/script/RotationalCameraMovement tdv/player/script/RotationalCameraPosition tdv/player/script/RotationalCameraSequence tdv/player/script/SlideInEffect tdv/player/script/SlideOutEffect tdv/player/script/SnowPanoramaOverlay tdv/player/script/SphericPanoramaFrame tdv/player/script/SphereModel3DObject tdv/player/script/SpotLight tdv/player/script/SpriteModel3DObject tdv/player/script/SurfaceReticleModel3DObject tdv/player/script/TabPanel tdv/player/script/TabPanelPage tdv/player/script/TargetModel3DCameraMovement tdv/player/script/TargetPanoramaCameraMovement tdv/player/script/TargetRotationalCameraDisplayMovement tdv/player/script/TargetRotationalCameraMovement tdv/player/script/TDTilesModel3DResource tdv/player/script/TiledImageResourceLevel tdv/player/script/TripodCapPanoramaOverlay tdv/player/script/ThumbnailGrid tdv/player/script/ThumbnailList tdv/player/script/UIComponent tdv/player/script/Video tdv/player/script/Video360 tdv/player/script/Video360Player tdv/player/script/Video360PlayListItem tdv/player/script/Video360Resource tdv/player/script/Video360ResourceLevel tdv/player/script/VideoCue tdv/player/script/VideoPanorama tdv/player/script/VideoPanoramaOverlay tdv/player/script/VideoPlaneModel3DObject tdv/player/script/VideoPlayer tdv/player/script/VideoPlayListItem tdv/player/script/VideoResource tdv/player/script/VideoResourceLevel tdv/player/script/VignetteModel3DPostprocessing tdv/player/script/ViewerArea tdv/player/script/WebFrame tdv/player/script/Window tdv/player/script/XRPanel tdv/player/script/XRWindow tdv/player/script/ZoomImage".split(" "),function(a){a("tdv/player/parser/ClassInfo"); a("tdv/player/script/AdjacentPanorama");a("tdv/player/script/AmbientLight");a("tdv/player/script/AmbientOcclusionModel3DPostprocessing");a("tdv/player/script/AnimatedImageResource");a("tdv/player/script/AntialiasModel3DPostprocessing");a("tdv/player/script/AreaHotspotMapOverlay");a("tdv/player/script/AudioResource");a("tdv/player/script/BaseButton");a("tdv/player/script/BaseObject");a("tdv/player/script/BaseWindow");a("tdv/player/script/BoxModel3DObject");a("tdv/player/script/Button");a("tdv/player/script/CanvasPlaneModel3DObject"); a("tdv/player/script/CeilingCapPanoramaOverlay");a("tdv/player/script/ChildModel3DObject");a("tdv/player/script/CloseButton");a("tdv/player/script/CookiesPolicy");a("tdv/player/script/Container");a("tdv/player/script/CubicPanoramaFrame");a("tdv/player/script/DirectionalPanoramaAudio");a("tdv/player/script/DistanceModel3DCameraMovement");a("tdv/player/script/DistancePanoramaCameraMovement");a("tdv/player/script/DistanceRotationalCameraMovement");a("tdv/player/script/DropDown");a("tdv/player/script/DustPanoramaOverlay"); a("tdv/player/script/Effect");a("tdv/player/script/ExternalModel3DObject");a("tdv/player/script/FadeInEffect");a("tdv/player/script/FadeOutEffect");a("tdv/player/script/FirstPersonModel3DCamera");a("tdv/player/script/FlatHotspotPanoramaOverlay");a("tdv/player/script/FlatHotspotPanoramaOverlayArea");a("tdv/player/script/FlatHotspotPanoramaOverlayImage");a("tdv/player/script/FlatHotspotPanoramaOverlayImageBase");a("tdv/player/script/FlatHotspotPanoramaOverlayMap");a("tdv/player/script/FlatPanoramaOverlayPlaybackPosition"); a("tdv/player/script/FlyOverModel3DCamera");a("tdv/player/script/FramePanoramaOverlay");a("tdv/player/script/GoogleMaps3DTilesModel3DResource");a("tdv/player/script/GridContainer");a("tdv/player/script/HDRPanorama");a("tdv/player/script/HorizonGridModel3DObject");a("tdv/player/script/HotspotMapOverlay");a("tdv/player/script/HotspotMapOverlayArea");a("tdv/player/script/HotspotMapOverlayImage");a("tdv/player/script/HotspotMapOverlayMap");a("tdv/player/script/HotspotPanoramaOverlay");a("tdv/player/script/HotspotPanoramaOverlayArea"); a("tdv/player/script/HotspotPanoramaOverlayImage");a("tdv/player/script/HotspotPanoramaOverlayImageBase");a("tdv/player/script/HotspotPanoramaOverlayMap");a("tdv/player/script/HTML");a("tdv/player/script/HTMLText");a("tdv/player/script/IconButton");a("tdv/player/script/IconHotspotMapOverlay");a("tdv/player/script/Image");a("tdv/player/script/ImagePlaneModel3DObject");a("tdv/player/script/ImageResource");a("tdv/player/script/ImageResourceLevel");a("tdv/player/script/InnerModel3DObject");a("tdv/player/script/Label"); a("tdv/player/script/LensFlarePanoramaOverlay");a("tdv/player/script/LineModel3DObject");a("tdv/player/script/LivePanorama");a("tdv/player/script/Light");a("tdv/player/script/Map");a("tdv/player/script/MapOverlay");a("tdv/player/script/MapPlayer");a("tdv/player/script/MapPlayListItem");a("tdv/player/script/MeasureModel3DObject");a("tdv/player/script/MeasureModel3DObjectPoint");a("tdv/player/script/Media");a("tdv/player/script/MediaAudio");a("tdv/player/script/Model3D");a("tdv/player/script/Model3DAnimation"); a("tdv/player/script/Model3DCamera");a("tdv/player/script/Model3DCameraMovement");a("tdv/player/script/Model3DCameraSequence");a("tdv/player/script/Model3DDisplayEffect");a("tdv/player/script/Model3DObject");a("tdv/player/script/Model3DPlayer");a("tdv/player/script/Model3DPlayListItem");a("tdv/player/script/Model3DPointer");a("tdv/player/script/Model3DPostprocessing");a("tdv/player/script/Model3DResource");a("tdv/player/script/Model3DResourceLevel");a("tdv/player/script/Menu");a("tdv/player/script/MenuItem"); a("tdv/player/script/MotionBlurModel3DPostprocessing");a("tdv/player/script/MovementPhotoCamera");a("tdv/player/script/Object3D");a("tdv/player/script/OrbitLight");a("tdv/player/script/OrbitModel3DCamera");a("tdv/player/script/Panorama");a("tdv/player/script/PanoramaAudio");a("tdv/player/script/PanoramaCamera");a("tdv/player/script/PanoramaCameraDisplayPosition");a("tdv/player/script/PanoramaCameraMovement");a("tdv/player/script/PanoramaCameraPosition");a("tdv/player/script/PanoramaCameraSequence"); a("tdv/player/script/PanoramaFrame");a("tdv/player/script/PanoramaMapLocation");a("tdv/player/script/PanoramaModel3DLocation");a("tdv/player/script/PanoramaOverlay");a("tdv/player/script/PanoramaOverlayPlaybackPosition");a("tdv/player/script/PanoramaPlayer");a("tdv/player/script/PanoramaPlayListItem");a("tdv/player/script/PanoramaPoint");a("tdv/player/script/PanoramaSnapshot");a("tdv/player/script/Photo");a("tdv/player/script/PhotoAlbum");a("tdv/player/script/PhotoAlbumAudio");a("tdv/player/script/PhotoAlbumPlayer"); a("tdv/player/script/PhotoAlbumPlayListItem");a("tdv/player/script/PhotoAudio");a("tdv/player/script/PhotoCamera");a("tdv/player/script/PhotoCameraPosition");a("tdv/player/script/PhotoPlayList");a("tdv/player/script/PhotoPlayListItem");a("tdv/player/script/PlaneModel3DObject");a("tdv/player/script/PlaybackBar");a("tdv/player/script/Player");a("tdv/player/script/PlayerMenuItem");a("tdv/player/script/PlayList");a("tdv/player/script/PlayListItem");a("tdv/player/script/PopupPanoramaOverlay");a("tdv/player/script/ProgressBar"); a("tdv/player/script/ProjectedMaterialModel3DObject");a("tdv/player/script/QuadFramePanoramaOverlay");a("tdv/player/script/QuadHotspotPanoramaOverlay");a("tdv/player/script/QuadHotspotPanoramaOverlayArea");a("tdv/player/script/QuadHotspotPanoramaOverlayImage");a("tdv/player/script/QuadHotspotPanoramaOverlayImageBase");a("tdv/player/script/QuadHotspotPanoramaOverlayMap");a("tdv/player/script/QuadVideoPanoramaOverlay");a("tdv/player/script/RadialModel3DDisplayEffect");a("tdv/player/script/RainPanoramaOverlay"); a("tdv/player/script/RotationalCameraDisplayPosition");a("tdv/player/script/RotationalCameraMovement");a("tdv/player/script/RotationalCameraPosition");a("tdv/player/script/RotationalCameraSequence");a("tdv/player/script/SlideInEffect");a("tdv/player/script/SlideOutEffect");a("tdv/player/script/SnowPanoramaOverlay");a("tdv/player/script/SphericPanoramaFrame");a("tdv/player/script/SphereModel3DObject");a("tdv/player/script/SpotLight");a("tdv/player/script/SpriteModel3DObject");a("tdv/player/script/SurfaceReticleModel3DObject"); a("tdv/player/script/TabPanel");a("tdv/player/script/TabPanelPage");a("tdv/player/script/TargetModel3DCameraMovement");a("tdv/player/script/TargetPanoramaCameraMovement");a("tdv/player/script/TargetRotationalCameraDisplayMovement");a("tdv/player/script/TargetRotationalCameraMovement");a("tdv/player/script/TDTilesModel3DResource");a("tdv/player/script/TiledImageResourceLevel");a("tdv/player/script/TripodCapPanoramaOverlay");a("tdv/player/script/ThumbnailGrid");a("tdv/player/script/ThumbnailList"); a("tdv/player/script/UIComponent");a("tdv/player/script/Video");a("tdv/player/script/Video360");a("tdv/player/script/Video360Player");a("tdv/player/script/Video360PlayListItem");a("tdv/player/script/Video360Resource");a("tdv/player/script/Video360ResourceLevel");a("tdv/player/script/VideoCue");a("tdv/player/script/VideoPanorama");a("tdv/player/script/VideoPanoramaOverlay");a("tdv/player/script/VideoPlaneModel3DObject");a("tdv/player/script/VideoPlayer");a("tdv/player/script/VideoPlayListItem");a("tdv/player/script/VideoResource"); a("tdv/player/script/VideoResourceLevel");a("tdv/player/script/VignetteModel3DPostprocessing");a("tdv/player/script/ViewerArea");a("tdv/player/script/WebFrame");a("tdv/player/script/Window");a("tdv/player/script/XRPanel");a("tdv/player/script/XRWindow");a("tdv/player/script/ZoomImage");return!0}); define("tdv/player/parser/Parser","require tdv/utils tdv/player/parser/ClassInfo tdv/player/parser/Sign tdv/player/script/classes tdv/player/view/util/URL".split(" "),function(a){function m(l,p){this.type=l;this.stack=p}function h(){}var n=a("tdv/utils"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/parser/Sign");a("tdv/player/script/classes");a("tdv/player/view/util/URL");h.prototype.bjb=function(l,p,q,r){this.hfa=[];this.sD=this.wN(l);this.sH=void 0;this.sD.ew.sLa()?(this.i6=k.validate(l), this.sH=this.qya(this.sD,e.TYPE),this.s_a(this.sH,this.sD,p,q,r),this.bYa(this.sD),this.$Xa(this.sD,this.sH),this.cYa(this.sH,this.sD),this.BYa(this.sH,this.sD)):this.cq("Invalid root class",[]);return this.hfa.length==0};h.prototype.Xb=function(){return this.sD.instance};h.prototype.wN=function(l,p){p=p||[];return Array.isArray(l)?this.O6a(l,p):n.kpa(l)&&l["class"]?this.R6a(l,p):n.kpa(l)?this.P6a(l,p):n.WMa(l)?this.Q6a(l,p):this.S6a(l,p)};h.prototype.O6a=function(l,p){for(var q=[],r=0;r> ")+": "+l)};m.prototype.Cb=function(){return[]};m.prototype.ww=function(){};var e=n.extend(m,function(l,p,q,r,t,u){m.call(this,e.TYPE,l);this.ew=p;this.id=q;this.attributes=r;this.pJ=t;this.scripts=u;this.instance=null});e.prototype.Cb=function(){var l=this.ew.ELa(),p=[],q=Object.assign({},this.attributes);if(l)for(var r=0;r0?w.push("v:"+l.XX+"."+l.cY):w.push("v:"+l.cY);r.log(w.join(" "));this.vr=v;c.vhb()||[e.QK,e.tF].indexOf(e.Tb())>=0?(this.Yl=new k,(v=this.vr.get(TDV.PlayerSettings.BASE_DIR_URL))?(v=c.lB(v),v[v.length-1]!="/"&&(v+="/")):v=c.getDirectory(this.vr.get(TDV.PlayerSettings.SELECTED_SCRIPT_URL)),this.Cqa=this.vr.get(TDV.PlayerSettings.QUERY_STRING_PARAMETERS),b.sjb(v,function(x){this.ana=x;this.l6a()}.bind(this))): window.alert(p("web-server-required"))}var h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/parser/Parser"),e=a("tdv/player/view/util/Device"),b=a("tdv/player/view/util/Installer"),c=a("tdv/player/view/util/URL"),d=a("tdv/player/view/util/XR"),f=a("tdv/player/view/panorama/renderer/3d/util/Util"),l=a("tdv/player/AppInfo"),p=a("tdv/player/l10n"),q=a("tdv/view/util/Fullscreen"),r=a("tdv/utils");m.prototype.l6a=function(){this.JV.o(new TDV.z_(h.SVa, {},[],void 0));r.defer(function(){if(!this.Yl.bjb(this.vr.get(TDV.PlayerSettings.SCRIPT_DATA),this.vr.get(TDV.PlayerSettings.CONTAINER),this.ana,this.Cqa)){if(l.ymb!="false"){window.alert(this.dza());return}r.log(this.dza())}this.zYa();this.PXa(this.vr);this.eYa();d.$J=this.Yl.Xb();d.initialize(function(){this.W$a()}.bind(this))}.bind(this))};m.prototype.clear=function(){this.Yl&&(this.Qya().forEach(function(u){u.instance.usa();u.ew.mX().forEach(function(v){switch(v){case "VideoPlayer":u.instance.stop(); case "MapPlayer":case "Model3DPlayer":case "PanoramaPlayer":case "PhotoAlbumPlayer":u.instance.set("viewerArea",null);break;case "ZoomImage":u.instance.set("image",null);break;case "Audio":u.instance.stop();break;case "Effect":u.instance.end();break;case "Media":u.instance.Jjb()}})}),f.ijb(),this.Yl.Xb().clear(),t={},this.vr=this.Yl=null)};m.prototype.Xfb=function(u){return this.Yl.Xb()[u]};m.prototype.Ci=function(u){if(u in t)return t[u].slice();var v=[];this.Qya().forEach(function(w){w.ew.mX().includes(u)&& v.push(w.instance)});t[u]=v;return v.slice()};m.prototype.Qya=function(){return this.Yl?this.Yl.sH.concat(this.F0):[]};var t={};m.prototype.Ai=function(u){var v=g.Ci(u);if(!v)throw"Invalid className: "+u;t={};u=this.Yl.Xb();var w={};w.ew=v;w.instance=v.Ai(u,this.ana,this.Cqa);this.F0.push(w);this.fwa(v,w.instance);this.K$a(u,w.instance);return w.instance};m.prototype.jw=function(u){var v=this.F0.findIndex(function(w){return w.instance==u});v<0||(t={},this.F0.splice(v,1),u.usa(),u.dispose&&u.dispose())}; m.prototype.dza=function(){for(var u=this.Yl.hfa,v=["Errors parsing script file:"],w=0;w=0;--i){if(array[i]>=65535)return true}return false}const TYPED_ARRAYS={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function getTypedArray(type,buffer){return new TYPED_ARRAYS[type](buffer)}function isTypedArray(array){return ArrayBuffer.isView(array)&&!(array instanceof DataView)}function createElementNS(name){return document.createElementNS("http://www.w3.org/1999/xhtml",name)}function createCanvasElement(){const canvas=createElementNS("canvas");canvas.style.display="block";return canvas}const _cache={};let _setConsoleFunction=null;function setConsoleFunction(fn){_setConsoleFunction=fn}function getConsoleFunction(){return _setConsoleFunction}function log(...params){const message="THREE."+params.shift();if(_setConsoleFunction){_setConsoleFunction("log",message,...params)}else{console.log(message,...params)}}function warn(...params){const message="THREE."+params.shift();if(_setConsoleFunction){_setConsoleFunction("warn",message,...params)}else{console.warn(message,...params)}}function error(...params){const message="THREE."+params.shift();if(_setConsoleFunction){_setConsoleFunction("error",message,...params)}else{console.error(message,...params)}}function warnOnce(...params){const message=params.join(" ");if(message in _cache)return;_cache[message]=true;warn(...params)}function probeAsync(gl,sync,interval){return new Promise(function(resolve,reject){function probe(){switch(gl.clientWaitSync(sync,gl.SYNC_FLUSH_COMMANDS_BIT,0)){case gl.WAIT_FAILED:reject();break;case gl.TIMEOUT_EXPIRED:setTimeout(probe,interval);break;default:resolve();}}setTimeout(probe,interval)})}class EventDispatcher{addEventListener(type,listener){if(this._listeners===undefined)this._listeners={};const listeners=this._listeners;if(listeners[type]===undefined){listeners[type]=[]}if(listeners[type].indexOf(listener)===-1){listeners[type].push(listener)}}hasEventListener(type,listener){const listeners=this._listeners;if(listeners===undefined)return false;return listeners[type]!==undefined&&listeners[type].indexOf(listener)!==-1}removeEventListener(type,listener){const listeners=this._listeners;if(listeners===undefined)return;const listenerArray=listeners[type];if(listenerArray!==undefined){const index=listenerArray.indexOf(listener);if(index!==-1){listenerArray.splice(index,1)}}}dispatchEvent(event){const listeners=this._listeners;if(listeners===undefined)return;const listenerArray=listeners[event.type];if(listenerArray!==undefined){event.target=this;const array=listenerArray.slice(0);for(let i=0,l=array.length;i>8&255]+_lut[d0>>16&255]+_lut[d0>>24&255]+"-"+_lut[d1&255]+_lut[d1>>8&255]+"-"+_lut[d1>>16&15|64]+_lut[d1>>24&255]+"-"+_lut[d2&63|128]+_lut[d2>>8&255]+"-"+_lut[d2>>16&255]+_lut[d2>>24&255]+_lut[d3&255]+_lut[d3>>8&255]+_lut[d3>>16&255]+_lut[d3>>24&255];return uuid.toLowerCase()}function clamp(value,min,max){return Math.max(min,Math.min(max,value))}function euclideanModulo(n,m){return(n%m+m)%m}function mapLinear(x,a1,a2,b1,b2){return b1+(x-a1)*(b2-b1)/(a2-a1)}function inverseLerp(x,y,value){if(x!==y){return(value-x)/(y-x)}else{return 0}}function lerp(x,y,t){return(1-t)*x+t*y}function damp(x,y,lambda,dt){return lerp(x,y,1-Math.exp(-lambda*dt))}function pingpong(x,length=1){return length-Math.abs(euclideanModulo(x,length*2)-length)}function smoothstep(x,min,max){if(x<=min)return 0;if(x>=max)return 1;x=(x-min)/(max-min);return x*x*(3-2*x)}function smootherstep(x,min,max){if(x<=min)return 0;if(x>=max)return 1;x=(x-min)/(max-min);return x*x*x*(x*(x*6-15)+10)}function randInt(low,high){return low+Math.floor(Math.random()*(high-low+1))}function randFloat(low,high){return low+Math.random()*(high-low)}function randFloatSpread(range){return range*(0.5-Math.random())}function seededRandom(s){if(s!==undefined)_seed=s;let t=_seed+=1831565813;t=Math.imul(t^t>>>15,t|1);t^=t+Math.imul(t^t>>>7,t|61);return((t^t>>>14)>>>0)/4294967296}function degToRad(degrees){return degrees*DEG2RAD}function radToDeg(radians){return radians*RAD2DEG}function isPowerOfTwo(value){return(value&value-1)===0&&value!==0}function ceilPowerOfTwo(value){return Math.pow(2,Math.ceil(Math.log(value)/Math.LN2))}function floorPowerOfTwo(value){return Math.pow(2,Math.floor(Math.log(value)/Math.LN2))}function setQuaternionFromProperEuler(q,a,b,c,order){const cos=Math.cos;const sin=Math.sin;const c2=cos(b/2);const s2=sin(b/2);const c13=cos((a+c)/2);const s13=sin((a+c)/2);const c1_3=cos((a-c)/2);const s1_3=sin((a-c)/2);const c3_1=cos((c-a)/2);const s3_1=sin((c-a)/2);switch(order){case"XYX":q.set(c2*s13,s2*c1_3,s2*s1_3,c2*c13);break;case"YZY":q.set(s2*s1_3,c2*s13,s2*c1_3,c2*c13);break;case"ZXZ":q.set(s2*c1_3,s2*s1_3,c2*s13,c2*c13);break;case"XZX":q.set(c2*s13,s2*s3_1,s2*c3_1,c2*c13);break;case"YXY":q.set(s2*c3_1,c2*s13,s2*s3_1,c2*c13);break;case"ZYZ":q.set(s2*s3_1,s2*c3_1,c2*s13,c2*c13);break;default:warn("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+order);}}function denormalize(value,array){switch(array.constructor){case Float32Array:return value;case Uint32Array:return value/4294967295;case Uint16Array:return value/65535;case Uint8Array:return value/255;case Int32Array:return Math.max(value/2147483647,-1);case Int16Array:return Math.max(value/32767,-1);case Int8Array:return Math.max(value/127,-1);default:throw new Error("Invalid component type.");}}function normalize(value,array){switch(array.constructor){case Float32Array:return value;case Uint32Array:return Math.round(value*4294967295);case Uint16Array:return Math.round(value*65535);case Uint8Array:return Math.round(value*255);case Int32Array:return Math.round(value*2147483647);case Int16Array:return Math.round(value*32767);case Int8Array:return Math.round(value*127);default:throw new Error("Invalid component type.");}}const MathUtils={DEG2RAD:DEG2RAD,RAD2DEG:RAD2DEG,generateUUID:generateUUID,clamp:clamp,euclideanModulo:euclideanModulo,mapLinear:mapLinear,inverseLerp:inverseLerp,lerp:lerp,damp:damp,pingpong:pingpong,smoothstep:smoothstep,smootherstep:smootherstep,randInt:randInt,randFloat:randFloat,randFloatSpread:randFloatSpread,seededRandom:seededRandom,degToRad:degToRad,radToDeg:radToDeg,isPowerOfTwo:isPowerOfTwo,ceilPowerOfTwo:ceilPowerOfTwo,floorPowerOfTwo:floorPowerOfTwo,setQuaternionFromProperEuler:setQuaternionFromProperEuler,normalize:normalize,denormalize:denormalize};class Vector2{constructor(x=0,y=0){Vector2.prototype.isVector2=true;this.x=x;this.y=y}get width(){return this.x}set width(value){this.x=value}get height(){return this.y}set height(value){this.y=value}set(x,y){this.x=x;this.y=y;return this}setScalar(scalar){this.x=scalar;this.y=scalar;return this}setX(x){this.x=x;return this}setY(y){this.y=y;return this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;default:throw new Error("index is out of range: "+index);}return this}getComponent(index){switch(index){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+index);}}clone(){return new this.constructor(this.x,this.y)}copy(v){this.x=v.x;this.y=v.y;return this}add(v){this.x+=v.x;this.y+=v.y;return this}addScalar(s){this.x+=s;this.y+=s;return this}addVectors(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this}addScaledVector(v,s){this.x+=v.x*s;this.y+=v.y*s;return this}sub(v){this.x-=v.x;this.y-=v.y;return this}subScalar(s){this.x-=s;this.y-=s;return this}subVectors(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this}multiply(v){this.x*=v.x;this.y*=v.y;return this}multiplyScalar(scalar){this.x*=scalar;this.y*=scalar;return this}divide(v){this.x/=v.x;this.y/=v.y;return this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}applyMatrix3(m){const x=this.x,y=this.y;const e=m.elements;this.x=e[0]*x+e[3]*y+e[6];this.y=e[1]*x+e[4]*y+e[7];return this}min(v){this.x=Math.min(this.x,v.x);this.y=Math.min(this.y,v.y);return this}max(v){this.x=Math.max(this.x,v.x);this.y=Math.max(this.y,v.y);return this}clamp(min,max){this.x=clamp(this.x,min.x,max.x);this.y=clamp(this.y,min.y,max.y);return this}clampScalar(minVal,maxVal){this.x=clamp(this.x,minVal,maxVal);this.y=clamp(this.y,minVal,maxVal);return this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(clamp(length,min,max))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);return this}negate(){this.x=-this.x;this.y=-this.y;return this}dot(v){return this.x*v.x+this.y*v.y}cross(v){return this.x*v.y-this.y*v.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){const angle=Math.atan2(-this.y,-this.x)+Math.PI;return angle}angleTo(v){const denominator=Math.sqrt(this.lengthSq()*v.lengthSq());if(denominator===0)return Math.PI/2;const theta=this.dot(v)/denominator;return Math.acos(clamp(theta,-1,1))}distanceTo(v){return Math.sqrt(this.distanceToSquared(v))}distanceToSquared(v){const dx=this.x-v.x,dy=this.y-v.y;return dx*dx+dy*dy}manhattanDistanceTo(v){return Math.abs(this.x-v.x)+Math.abs(this.y-v.y)}setLength(length){return this.normalize().multiplyScalar(length)}lerp(v,alpha){this.x+=(v.x-this.x)*alpha;this.y+=(v.y-this.y)*alpha;return this}lerpVectors(v1,v2,alpha){this.x=v1.x+(v2.x-v1.x)*alpha;this.y=v1.y+(v2.y-v1.y)*alpha;return this}equals(v){return v.x===this.x&&v.y===this.y}fromArray(array,offset=0){this.x=array[offset];this.y=array[offset+1];return this}toArray(array=[],offset=0){array[offset]=this.x;array[offset+1]=this.y;return array}fromBufferAttribute(attribute,index){this.x=attribute.getX(index);this.y=attribute.getY(index);return this}rotateAround(center,angle){const c=Math.cos(angle),s=Math.sin(angle);const x=this.x-center.x;const y=this.y-center.y;this.x=x*c-y*s+center.x;this.y=x*s+y*c+center.y;return this}random(){this.x=Math.random();this.y=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y}}class Quaternion{constructor(x=0,y=0,z=0,w=1){this.isQuaternion=true;this._x=x;this._y=y;this._z=z;this._w=w}static slerpFlat(dst,dstOffset,src0,srcOffset0,src1,srcOffset1,t){let x0=src0[srcOffset0+0],y0=src0[srcOffset0+1],z0=src0[srcOffset0+2],w0=src0[srcOffset0+3];let x1=src1[srcOffset1+0],y1=src1[srcOffset1+1],z1=src1[srcOffset1+2],w1=src1[srcOffset1+3];if(t<=0){dst[dstOffset+0]=x0;dst[dstOffset+1]=y0;dst[dstOffset+2]=z0;dst[dstOffset+3]=w0;return}if(t>=1){dst[dstOffset+0]=x1;dst[dstOffset+1]=y1;dst[dstOffset+2]=z1;dst[dstOffset+3]=w1;return}if(w0!==w1||x0!==x1||y0!==y1||z0!==z1){let dot=x0*x1+y0*y1+z0*z1+w0*w1;if(dot<0){x1=-x1;y1=-y1;z1=-z1;w1=-w1;dot=-dot}let s=1-t;if(dot<0.9995){const theta=Math.acos(dot);const sin=Math.sin(theta);s=Math.sin(s*theta)/sin;t=Math.sin(t*theta)/sin;x0=x0*s+x1*t;y0=y0*s+y1*t;z0=z0*s+z1*t;w0=w0*s+w1*t}else{x0=x0*s+x1*t;y0=y0*s+y1*t;z0=z0*s+z1*t;w0=w0*s+w1*t;const f=1/Math.sqrt(x0*x0+y0*y0+z0*z0+w0*w0);x0*=f;y0*=f;z0*=f;w0*=f}}dst[dstOffset]=x0;dst[dstOffset+1]=y0;dst[dstOffset+2]=z0;dst[dstOffset+3]=w0}static multiplyQuaternionsFlat(dst,dstOffset,src0,srcOffset0,src1,srcOffset1){const x0=src0[srcOffset0];const y0=src0[srcOffset0+1];const z0=src0[srcOffset0+2];const w0=src0[srcOffset0+3];const x1=src1[srcOffset1];const y1=src1[srcOffset1+1];const z1=src1[srcOffset1+2];const w1=src1[srcOffset1+3];dst[dstOffset]=x0*w1+w0*x1+y0*z1-z0*y1;dst[dstOffset+1]=y0*w1+w0*y1+z0*x1-x0*z1;dst[dstOffset+2]=z0*w1+w0*z1+x0*y1-y0*x1;dst[dstOffset+3]=w0*w1-x0*x1-y0*y1-z0*z1;return dst}get x(){return this._x}set x(value){this._x=value;this._onChangeCallback()}get y(){return this._y}set y(value){this._y=value;this._onChangeCallback()}get z(){return this._z}set z(value){this._z=value;this._onChangeCallback()}get w(){return this._w}set w(value){this._w=value;this._onChangeCallback()}set(x,y,z,w){this._x=x;this._y=y;this._z=z;this._w=w;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(quaternion){this._x=quaternion.x;this._y=quaternion.y;this._z=quaternion.z;this._w=quaternion.w;this._onChangeCallback();return this}setFromEuler(euler,update=true){const x=euler._x,y=euler._y,z=euler._z,order=euler._order;const cos=Math.cos;const sin=Math.sin;const c1=cos(x/2);const c2=cos(y/2);const c3=cos(z/2);const s1=sin(x/2);const s2=sin(y/2);const s3=sin(z/2);switch(order){case"XYZ":this._x=s1*c2*c3+c1*s2*s3;this._y=c1*s2*c3-s1*c2*s3;this._z=c1*c2*s3+s1*s2*c3;this._w=c1*c2*c3-s1*s2*s3;break;case"YXZ":this._x=s1*c2*c3+c1*s2*s3;this._y=c1*s2*c3-s1*c2*s3;this._z=c1*c2*s3-s1*s2*c3;this._w=c1*c2*c3+s1*s2*s3;break;case"ZXY":this._x=s1*c2*c3-c1*s2*s3;this._y=c1*s2*c3+s1*c2*s3;this._z=c1*c2*s3+s1*s2*c3;this._w=c1*c2*c3-s1*s2*s3;break;case"ZYX":this._x=s1*c2*c3-c1*s2*s3;this._y=c1*s2*c3+s1*c2*s3;this._z=c1*c2*s3-s1*s2*c3;this._w=c1*c2*c3+s1*s2*s3;break;case"YZX":this._x=s1*c2*c3+c1*s2*s3;this._y=c1*s2*c3+s1*c2*s3;this._z=c1*c2*s3-s1*s2*c3;this._w=c1*c2*c3-s1*s2*s3;break;case"XZY":this._x=s1*c2*c3-c1*s2*s3;this._y=c1*s2*c3-s1*c2*s3;this._z=c1*c2*s3+s1*s2*c3;this._w=c1*c2*c3+s1*s2*s3;break;default:warn("Quaternion: .setFromEuler() encountered an unknown order: "+order);}if(update===true)this._onChangeCallback();return this}setFromAxisAngle(axis,angle){const halfAngle=angle/2,s=Math.sin(halfAngle);this._x=axis.x*s;this._y=axis.y*s;this._z=axis.z*s;this._w=Math.cos(halfAngle);this._onChangeCallback();return this}setFromRotationMatrix(m){const te=m.elements,m11=te[0],m12=te[4],m13=te[8],m21=te[1],m22=te[5],m23=te[9],m31=te[2],m32=te[6],m33=te[10],trace=m11+m22+m33;if(trace>0){const s=0.5/Math.sqrt(trace+1);this._w=0.25/s;this._x=(m32-m23)*s;this._y=(m13-m31)*s;this._z=(m21-m12)*s}else if(m11>m22&&m11>m33){const s=2*Math.sqrt(1+m11-m22-m33);this._w=(m32-m23)/s;this._x=0.25*s;this._y=(m12+m21)/s;this._z=(m13+m31)/s}else if(m22>m33){const s=2*Math.sqrt(1+m22-m11-m33);this._w=(m13-m31)/s;this._x=(m12+m21)/s;this._y=0.25*s;this._z=(m23+m32)/s}else{const s=2*Math.sqrt(1+m33-m11-m22);this._w=(m21-m12)/s;this._x=(m13+m31)/s;this._y=(m23+m32)/s;this._z=0.25*s}this._onChangeCallback();return this}setFromUnitVectors(vFrom,vTo){let r=vFrom.dot(vTo)+1;if(r<1e-8){r=0;if(Math.abs(vFrom.x)>Math.abs(vFrom.z)){this._x=-vFrom.y;this._y=vFrom.x;this._z=0;this._w=r}else{this._x=0;this._y=-vFrom.z;this._z=vFrom.y;this._w=r}}else{this._x=vFrom.y*vTo.z-vFrom.z*vTo.y;this._y=vFrom.z*vTo.x-vFrom.x*vTo.z;this._z=vFrom.x*vTo.y-vFrom.y*vTo.x;this._w=r}return this.normalize()}angleTo(q){return 2*Math.acos(Math.abs(clamp(this.dot(q),-1,1)))}rotateTowards(q,step){const angle=this.angleTo(q);if(angle===0)return this;const t=Math.min(1,step/angle);this.slerp(q,t);return this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){this._x*=-1;this._y*=-1;this._z*=-1;this._onChangeCallback();return this}dot(v){return this._x*v._x+this._y*v._y+this._z*v._z+this._w*v._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let l=this.length();if(l===0){this._x=0;this._y=0;this._z=0;this._w=1}else{l=1/l;this._x=this._x*l;this._y=this._y*l;this._z=this._z*l;this._w=this._w*l}this._onChangeCallback();return this}multiply(q){return this.multiplyQuaternions(this,q)}premultiply(q){return this.multiplyQuaternions(q,this)}multiplyQuaternions(a,b){const qax=a._x,qay=a._y,qaz=a._z,qaw=a._w;const qbx=b._x,qby=b._y,qbz=b._z,qbw=b._w;this._x=qax*qbw+qaw*qbx+qay*qbz-qaz*qby;this._y=qay*qbw+qaw*qby+qaz*qbx-qax*qbz;this._z=qaz*qbw+qaw*qbz+qax*qby-qay*qbx;this._w=qaw*qbw-qax*qbx-qay*qby-qaz*qbz;this._onChangeCallback();return this}slerp(qb,t){if(t<=0)return this;if(t>=1)return this.copy(qb);let x=qb._x,y=qb._y,z=qb._z,w=qb._w;let dot=this.dot(qb);if(dot<0){x=-x;y=-y;z=-z;w=-w;dot=-dot}let s=1-t;if(dot<0.9995){const theta=Math.acos(dot);const sin=Math.sin(theta);s=Math.sin(s*theta)/sin;t=Math.sin(t*theta)/sin;this._x=this._x*s+x*t;this._y=this._y*s+y*t;this._z=this._z*s+z*t;this._w=this._w*s+w*t;this._onChangeCallback()}else{this._x=this._x*s+x*t;this._y=this._y*s+y*t;this._z=this._z*s+z*t;this._w=this._w*s+w*t;this.normalize()}return this}slerpQuaternions(qa,qb,t){return this.copy(qa).slerp(qb,t)}random(){const theta1=2*Math.PI*Math.random();const theta2=2*Math.PI*Math.random();const x0=Math.random();const r1=Math.sqrt(1-x0);const r2=Math.sqrt(x0);return this.set(r1*Math.sin(theta1),r1*Math.cos(theta1),r2*Math.sin(theta2),r2*Math.cos(theta2))}equals(quaternion){return quaternion._x===this._x&&quaternion._y===this._y&&quaternion._z===this._z&&quaternion._w===this._w}fromArray(array,offset=0){this._x=array[offset];this._y=array[offset+1];this._z=array[offset+2];this._w=array[offset+3];this._onChangeCallback();return this}toArray(array=[],offset=0){array[offset]=this._x;array[offset+1]=this._y;array[offset+2]=this._z;array[offset+3]=this._w;return array}fromBufferAttribute(attribute,index){this._x=attribute.getX(index);this._y=attribute.getY(index);this._z=attribute.getZ(index);this._w=attribute.getW(index);this._onChangeCallback();return this}toJSON(){return this.toArray()}_onChange(callback){this._onChangeCallback=callback;return this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x;yield this._y;yield this._z;yield this._w}}class Vector3{constructor(x=0,y=0,z=0){Vector3.prototype.isVector3=true;this.x=x;this.y=y;this.z=z}set(x,y,z){if(z===undefined)z=this.z;this.x=x;this.y=y;this.z=z;return this}setScalar(scalar){this.x=scalar;this.y=scalar;this.z=scalar;return this}setX(x){this.x=x;return this}setY(y){this.y=y;return this}setZ(z){this.z=z;return this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;case 2:this.z=value;break;default:throw new Error("index is out of range: "+index);}return this}getComponent(index){switch(index){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+index);}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(v){this.x=v.x;this.y=v.y;this.z=v.z;return this}add(v){this.x+=v.x;this.y+=v.y;this.z+=v.z;return this}addScalar(s){this.x+=s;this.y+=s;this.z+=s;return this}addVectors(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this}addScaledVector(v,s){this.x+=v.x*s;this.y+=v.y*s;this.z+=v.z*s;return this}sub(v){this.x-=v.x;this.y-=v.y;this.z-=v.z;return this}subScalar(s){this.x-=s;this.y-=s;this.z-=s;return this}subVectors(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this}multiply(v){this.x*=v.x;this.y*=v.y;this.z*=v.z;return this}multiplyScalar(scalar){this.x*=scalar;this.y*=scalar;this.z*=scalar;return this}multiplyVectors(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this}applyEuler(euler){return this.applyQuaternion(_quaternion$4.setFromEuler(euler))}applyAxisAngle(axis,angle){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis,angle))}applyMatrix3(m){const x=this.x,y=this.y,z=this.z;const e=m.elements;this.x=e[0]*x+e[3]*y+e[6]*z;this.y=e[1]*x+e[4]*y+e[7]*z;this.z=e[2]*x+e[5]*y+e[8]*z;return this}applyNormalMatrix(m){return this.applyMatrix3(m).normalize()}applyMatrix4(m){const x=this.x,y=this.y,z=this.z;const e=m.elements;const w=1/(e[3]*x+e[7]*y+e[11]*z+e[15]);this.x=(e[0]*x+e[4]*y+e[8]*z+e[12])*w;this.y=(e[1]*x+e[5]*y+e[9]*z+e[13])*w;this.z=(e[2]*x+e[6]*y+e[10]*z+e[14])*w;return this}applyQuaternion(q){const vx=this.x,vy=this.y,vz=this.z;const qx=q.x,qy=q.y,qz=q.z,qw=q.w;const tx=2*(qy*vz-qz*vy);const ty=2*(qz*vx-qx*vz);const tz=2*(qx*vy-qy*vx);this.x=vx+qw*tx+qy*tz-qz*ty;this.y=vy+qw*ty+qz*tx-qx*tz;this.z=vz+qw*tz+qx*ty-qy*tx;return this}project(camera){return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix)}unproject(camera){return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld)}transformDirection(m){const x=this.x,y=this.y,z=this.z;const e=m.elements;this.x=e[0]*x+e[4]*y+e[8]*z;this.y=e[1]*x+e[5]*y+e[9]*z;this.z=e[2]*x+e[6]*y+e[10]*z;return this.normalize()}divide(v){this.x/=v.x;this.y/=v.y;this.z/=v.z;return this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}min(v){this.x=Math.min(this.x,v.x);this.y=Math.min(this.y,v.y);this.z=Math.min(this.z,v.z);return this}max(v){this.x=Math.max(this.x,v.x);this.y=Math.max(this.y,v.y);this.z=Math.max(this.z,v.z);return this}clamp(min,max){this.x=clamp(this.x,min.x,max.x);this.y=clamp(this.y,min.y,max.y);this.z=clamp(this.z,min.z,max.z);return this}clampScalar(minVal,maxVal){this.x=clamp(this.x,minVal,maxVal);this.y=clamp(this.y,minVal,maxVal);this.z=clamp(this.z,minVal,maxVal);return this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(clamp(length,min,max))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);this.z=Math.trunc(this.z);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this}dot(v){return this.x*v.x+this.y*v.y+this.z*v.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(length){return this.normalize().multiplyScalar(length)}lerp(v,alpha){this.x+=(v.x-this.x)*alpha;this.y+=(v.y-this.y)*alpha;this.z+=(v.z-this.z)*alpha;return this}lerpVectors(v1,v2,alpha){this.x=v1.x+(v2.x-v1.x)*alpha;this.y=v1.y+(v2.y-v1.y)*alpha;this.z=v1.z+(v2.z-v1.z)*alpha;return this}cross(v){return this.crossVectors(this,v)}crossVectors(a,b){const ax=a.x,ay=a.y,az=a.z;const bx=b.x,by=b.y,bz=b.z;this.x=ay*bz-az*by;this.y=az*bx-ax*bz;this.z=ax*by-ay*bx;return this}projectOnVector(v){const denominator=v.lengthSq();if(denominator===0)return this.set(0,0,0);const scalar=v.dot(this)/denominator;return this.copy(v).multiplyScalar(scalar)}projectOnPlane(planeNormal){_vector$c.copy(this).projectOnVector(planeNormal);return this.sub(_vector$c)}reflect(normal){return this.sub(_vector$c.copy(normal).multiplyScalar(2*this.dot(normal)))}angleTo(v){const denominator=Math.sqrt(this.lengthSq()*v.lengthSq());if(denominator===0)return Math.PI/2;const theta=this.dot(v)/denominator;return Math.acos(clamp(theta,-1,1))}distanceTo(v){return Math.sqrt(this.distanceToSquared(v))}distanceToSquared(v){const dx=this.x-v.x,dy=this.y-v.y,dz=this.z-v.z;return dx*dx+dy*dy+dz*dz}manhattanDistanceTo(v){return Math.abs(this.x-v.x)+Math.abs(this.y-v.y)+Math.abs(this.z-v.z)}setFromSpherical(s){return this.setFromSphericalCoords(s.radius,s.phi,s.theta)}setFromSphericalCoords(radius,phi,theta){const sinPhiRadius=Math.sin(phi)*radius;this.x=sinPhiRadius*Math.sin(theta);this.y=Math.cos(phi)*radius;this.z=sinPhiRadius*Math.cos(theta);return this}setFromCylindrical(c){return this.setFromCylindricalCoords(c.radius,c.theta,c.y)}setFromCylindricalCoords(radius,theta,y){this.x=radius*Math.sin(theta);this.y=y;this.z=radius*Math.cos(theta);return this}setFromMatrixPosition(m){const e=m.elements;this.x=e[12];this.y=e[13];this.z=e[14];return this}setFromMatrixScale(m){const sx=this.setFromMatrixColumn(m,0).length();const sy=this.setFromMatrixColumn(m,1).length();const sz=this.setFromMatrixColumn(m,2).length();this.x=sx;this.y=sy;this.z=sz;return this}setFromMatrixColumn(m,index){return this.fromArray(m.elements,index*4)}setFromMatrix3Column(m,index){return this.fromArray(m.elements,index*3)}setFromEuler(e){this.x=e._x;this.y=e._y;this.z=e._z;return this}setFromColor(c){this.x=c.r;this.y=c.g;this.z=c.b;return this}equals(v){return v.x===this.x&&v.y===this.y&&v.z===this.z}fromArray(array,offset=0){this.x=array[offset];this.y=array[offset+1];this.z=array[offset+2];return this}toArray(array=[],offset=0){array[offset]=this.x;array[offset+1]=this.y;array[offset+2]=this.z;return array}fromBufferAttribute(attribute,index){this.x=attribute.getX(index);this.y=attribute.getY(index);this.z=attribute.getZ(index);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();return this}randomDirection(){const theta=Math.random()*Math.PI*2;const u=Math.random()*2-1;const c=Math.sqrt(1-u*u);this.x=c*Math.cos(theta);this.y=u;this.z=c*Math.sin(theta);return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z}}const _vector$c=new Vector3;const _quaternion$4=new Quaternion;class Matrix3{constructor(n11,n12,n13,n21,n22,n23,n31,n32,n33){Matrix3.prototype.isMatrix3=true;this.elements=[1,0,0,0,1,0,0,0,1];if(n11!==undefined){this.set(n11,n12,n13,n21,n22,n23,n31,n32,n33)}}set(n11,n12,n13,n21,n22,n23,n31,n32,n33){const te=this.elements;te[0]=n11;te[1]=n21;te[2]=n31;te[3]=n12;te[4]=n22;te[5]=n32;te[6]=n13;te[7]=n23;te[8]=n33;return this}identity(){this.set(1,0,0,0,1,0,0,0,1);return this}copy(m){const te=this.elements;const me=m.elements;te[0]=me[0];te[1]=me[1];te[2]=me[2];te[3]=me[3];te[4]=me[4];te[5]=me[5];te[6]=me[6];te[7]=me[7];te[8]=me[8];return this}extractBasis(xAxis,yAxis,zAxis){xAxis.setFromMatrix3Column(this,0);yAxis.setFromMatrix3Column(this,1);zAxis.setFromMatrix3Column(this,2);return this}setFromMatrix4(m){const me=m.elements;this.set(me[0],me[4],me[8],me[1],me[5],me[9],me[2],me[6],me[10]);return this}multiply(m){return this.multiplyMatrices(this,m)}premultiply(m){return this.multiplyMatrices(m,this)}multiplyMatrices(a,b){const ae=a.elements;const be=b.elements;const te=this.elements;const a11=ae[0],a12=ae[3],a13=ae[6];const a21=ae[1],a22=ae[4],a23=ae[7];const a31=ae[2],a32=ae[5],a33=ae[8];const b11=be[0],b12=be[3],b13=be[6];const b21=be[1],b22=be[4],b23=be[7];const b31=be[2],b32=be[5],b33=be[8];te[0]=a11*b11+a12*b21+a13*b31;te[3]=a11*b12+a12*b22+a13*b32;te[6]=a11*b13+a12*b23+a13*b33;te[1]=a21*b11+a22*b21+a23*b31;te[4]=a21*b12+a22*b22+a23*b32;te[7]=a21*b13+a22*b23+a23*b33;te[2]=a31*b11+a32*b21+a33*b31;te[5]=a31*b12+a32*b22+a33*b32;te[8]=a31*b13+a32*b23+a33*b33;return this}multiplyScalar(s){const te=this.elements;te[0]*=s;te[3]*=s;te[6]*=s;te[1]*=s;te[4]*=s;te[7]*=s;te[2]*=s;te[5]*=s;te[8]*=s;return this}determinant(){const te=this.elements;const a=te[0],b=te[1],c=te[2],d=te[3],e=te[4],f=te[5],g=te[6],h=te[7],i=te[8];return a*e*i-a*f*h-b*d*i+b*f*g+c*d*h-c*e*g}invert(){const te=this.elements,n11=te[0],n21=te[1],n31=te[2],n12=te[3],n22=te[4],n32=te[5],n13=te[6],n23=te[7],n33=te[8],t11=n33*n22-n32*n23,t12=n32*n13-n33*n12,t13=n23*n12-n22*n13,det=n11*t11+n21*t12+n31*t13;if(det===0)return this.set(0,0,0,0,0,0,0,0,0);const detInv=1/det;te[0]=t11*detInv;te[1]=(n31*n23-n33*n21)*detInv;te[2]=(n32*n21-n31*n22)*detInv;te[3]=t12*detInv;te[4]=(n33*n11-n31*n13)*detInv;te[5]=(n31*n12-n32*n11)*detInv;te[6]=t13*detInv;te[7]=(n21*n13-n23*n11)*detInv;te[8]=(n22*n11-n21*n12)*detInv;return this}transpose(){let tmp;const m=this.elements;tmp=m[1];m[1]=m[3];m[3]=tmp;tmp=m[2];m[2]=m[6];m[6]=tmp;tmp=m[5];m[5]=m[7];m[7]=tmp;return this}getNormalMatrix(matrix4){return this.setFromMatrix4(matrix4).invert().transpose()}transposeIntoArray(r){const m=this.elements;r[0]=m[0];r[1]=m[3];r[2]=m[6];r[3]=m[1];r[4]=m[4];r[5]=m[7];r[6]=m[2];r[7]=m[5];r[8]=m[8];return this}setUvTransform(tx,ty,sx,sy,rotation,cx,cy){const c=Math.cos(rotation);const s=Math.sin(rotation);this.set(sx*c,sx*s,-sx*(c*cx+s*cy)+cx+tx,-sy*s,sy*c,-sy*(-s*cx+c*cy)+cy+ty,0,0,1);return this}scale(sx,sy){this.premultiply(_m3.makeScale(sx,sy));return this}rotate(theta){this.premultiply(_m3.makeRotation(-theta));return this}translate(tx,ty){this.premultiply(_m3.makeTranslation(tx,ty));return this}makeTranslation(x,y){if(x.isVector2){this.set(1,0,x.x,0,1,x.y,0,0,1)}else{this.set(1,0,x,0,1,y,0,0,1)}return this}makeRotation(theta){const c=Math.cos(theta);const s=Math.sin(theta);this.set(c,-s,0,s,c,0,0,0,1);return this}makeScale(x,y){this.set(x,0,0,0,y,0,0,0,1);return this}equals(matrix){const te=this.elements;const me=matrix.elements;for(let i=0;i<9;i++){if(te[i]!==me[i])return false}return true}fromArray(array,offset=0){for(let i=0;i<9;i++){this.elements[i]=array[i+offset]}return this}toArray(array=[],offset=0){const te=this.elements;array[offset]=te[0];array[offset+1]=te[1];array[offset+2]=te[2];array[offset+3]=te[3];array[offset+4]=te[4];array[offset+5]=te[5];array[offset+6]=te[6];array[offset+7]=te[7];array[offset+8]=te[8];return array}clone(){return new this.constructor().fromArray(this.elements)}}const _m3=new Matrix3;const LINEAR_REC709_TO_XYZ=new Matrix3().set(0.4123908,0.3575843,0.1804808,0.212639,0.7151687,0.0721923,0.0193308,0.1191948,0.9505322);const XYZ_TO_LINEAR_REC709=new Matrix3().set(3.2409699,-1.5373832,-0.4986108,-0.9692436,1.8759675,0.0415551,0.0556301,-0.203977,1.0569715);function createColorManagement(){const ColorManagement={enabled:true,workingColorSpace:LinearSRGBColorSpace,spaces:{},convert:function(color,sourceColorSpace,targetColorSpace){if(this.enabled===false||sourceColorSpace===targetColorSpace||!sourceColorSpace||!targetColorSpace){return color}if(this.spaces[sourceColorSpace].transfer===SRGBTransfer){color.r=SRGBToLinear(color.r);color.g=SRGBToLinear(color.g);color.b=SRGBToLinear(color.b)}if(this.spaces[sourceColorSpace].primaries!==this.spaces[targetColorSpace].primaries){color.applyMatrix3(this.spaces[sourceColorSpace].toXYZ);color.applyMatrix3(this.spaces[targetColorSpace].fromXYZ)}if(this.spaces[targetColorSpace].transfer===SRGBTransfer){color.r=LinearToSRGB(color.r);color.g=LinearToSRGB(color.g);color.b=LinearToSRGB(color.b)}return color},workingToColorSpace:function(color,targetColorSpace){return this.convert(color,this.workingColorSpace,targetColorSpace)},colorSpaceToWorking:function(color,sourceColorSpace){return this.convert(color,sourceColorSpace,this.workingColorSpace)},getPrimaries:function(colorSpace){return this.spaces[colorSpace].primaries},getTransfer:function(colorSpace){if(colorSpace===NoColorSpace)return LinearTransfer;return this.spaces[colorSpace].transfer},getToneMappingMode:function(colorSpace){return this.spaces[colorSpace].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(target,colorSpace=this.workingColorSpace){return target.fromArray(this.spaces[colorSpace].luminanceCoefficients)},define:function(colorSpaces){Object.assign(this.spaces,colorSpaces)},_getMatrix:function(targetMatrix,sourceColorSpace,targetColorSpace){return targetMatrix.copy(this.spaces[sourceColorSpace].toXYZ).multiply(this.spaces[targetColorSpace].fromXYZ)},_getDrawingBufferColorSpace:function(colorSpace){return this.spaces[colorSpace].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(colorSpace=this.workingColorSpace){return this.spaces[colorSpace].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(color,targetColorSpace){warnOnce("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().");return ColorManagement.workingToColorSpace(color,targetColorSpace)},toWorkingColorSpace:function(color,sourceColorSpace){warnOnce("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().");return ColorManagement.colorSpaceToWorking(color,sourceColorSpace)}};const REC709_PRIMARIES=[0.64,0.33,0.3,0.6,0.15,0.06];const REC709_LUMINANCE_COEFFICIENTS=[0.2126,0.7152,0.0722];const D65=[0.3127,0.329];ColorManagement.define({[LinearSRGBColorSpace]:{primaries:REC709_PRIMARIES,whitePoint:D65,transfer:LinearTransfer,toXYZ:LINEAR_REC709_TO_XYZ,fromXYZ:XYZ_TO_LINEAR_REC709,luminanceCoefficients:REC709_LUMINANCE_COEFFICIENTS,workingColorSpaceConfig:{unpackColorSpace:SRGBColorSpace},outputColorSpaceConfig:{drawingBufferColorSpace:SRGBColorSpace}},[SRGBColorSpace]:{primaries:REC709_PRIMARIES,whitePoint:D65,transfer:SRGBTransfer,toXYZ:LINEAR_REC709_TO_XYZ,fromXYZ:XYZ_TO_LINEAR_REC709,luminanceCoefficients:REC709_LUMINANCE_COEFFICIENTS,outputColorSpaceConfig:{drawingBufferColorSpace:SRGBColorSpace}}});return ColorManagement}const ColorManagement=createColorManagement();function SRGBToLinear(c){return c<0.04045?c*0.0773993808:Math.pow(c*0.9478672986+0.0521327014,2.4)}function LinearToSRGB(c){return c<0.0031308?c*12.92:1.055*Math.pow(c,0.41666)-0.055}let _canvas;class ImageUtils{static getDataURL(image,type="image/png"){if(/^data:/i.test(image.src)){return image.src}if(typeof HTMLCanvasElement==="undefined"){return image.src}let canvas;if(image instanceof HTMLCanvasElement){canvas=image}else{if(_canvas===undefined)_canvas=createElementNS("canvas");_canvas.width=image.width;_canvas.height=image.height;const context=_canvas.getContext("2d");if(image instanceof ImageData){context.putImageData(image,0,0)}else{context.drawImage(image,0,0,image.width,image.height)}canvas=_canvas}return canvas.toDataURL(type)}static sRGBToLinear(image){if(typeof HTMLImageElement!=="undefined"&&image instanceof HTMLImageElement||typeof HTMLCanvasElement!=="undefined"&&image instanceof HTMLCanvasElement||typeof ImageBitmap!=="undefined"&&image instanceof ImageBitmap){const canvas=createElementNS("canvas");canvas.width=image.width;canvas.height=image.height;const context=canvas.getContext("2d");context.drawImage(image,0,0,image.width,image.height);const imageData=context.getImageData(0,0,image.width,image.height);const data=imageData.data;for(let i=0;i1?true:false;this.pmremVersion=0}get width(){return this.source.getSize(_tempVec3).x}get height(){return this.source.getSize(_tempVec3).y}get depth(){return this.source.getSize(_tempVec3).z}get image(){return this.source.data}set image(value=null){this.source.data=value}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(start,count){this.updateRanges.push({start,count})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(source){this.name=source.name;this.source=source.source;this.mipmaps=source.mipmaps.slice(0);this.mapping=source.mapping;this.channel=source.channel;this.wrapS=source.wrapS;this.wrapT=source.wrapT;this.magFilter=source.magFilter;this.minFilter=source.minFilter;this.anisotropy=source.anisotropy;this.format=source.format;this.internalFormat=source.internalFormat;this.type=source.type;this.offset.copy(source.offset);this.repeat.copy(source.repeat);this.center.copy(source.center);this.rotation=source.rotation;this.matrixAutoUpdate=source.matrixAutoUpdate;this.matrix.copy(source.matrix);this.generateMipmaps=source.generateMipmaps;this.premultiplyAlpha=source.premultiplyAlpha;this.flipY=source.flipY;this.unpackAlignment=source.unpackAlignment;this.colorSpace=source.colorSpace;this.renderTarget=source.renderTarget;this.isRenderTargetTexture=source.isRenderTargetTexture;this.isArrayTexture=source.isArrayTexture;this.userData=JSON.parse(JSON.stringify(source.userData));this.needsUpdate=true;return this}setValues(values){for(const key in values){const newValue=values[key];if(newValue===undefined){warn(`Texture.setValues(): parameter '${key}' has value of undefined.`);continue}const currentValue=this[key];if(currentValue===undefined){warn(`Texture.setValues(): property '${key}' does not exist.`);continue}if(currentValue&&newValue&¤tValue.isVector2&&newValue.isVector2){currentValue.copy(newValue)}else if(currentValue&&newValue&¤tValue.isVector3&&newValue.isVector3){currentValue.copy(newValue)}else if(currentValue&&newValue&¤tValue.isMatrix3&&newValue.isMatrix3){currentValue.copy(newValue)}else{this[key]=newValue}}}toJSON(meta){const isRootObject=meta===undefined||typeof meta==="string";if(!isRootObject&&meta.textures[this.uuid]!==undefined){return meta.textures[this.uuid]}const output={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(meta).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(Object.keys(this.userData).length>0)output.userData=this.userData;if(!isRootObject){meta.textures[this.uuid]=output}return output}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(uv){if(this.mapping!==UVMapping)return uv;uv.applyMatrix3(this.matrix);if(uv.x<0||uv.x>1){switch(this.wrapS){case RepeatWrapping:uv.x=uv.x-Math.floor(uv.x);break;case ClampToEdgeWrapping:uv.x=uv.x<0?0:1;break;case MirroredRepeatWrapping:if(Math.abs(Math.floor(uv.x)%2)===1){uv.x=Math.ceil(uv.x)-uv.x}else{uv.x=uv.x-Math.floor(uv.x)}break;}}if(uv.y<0||uv.y>1){switch(this.wrapT){case RepeatWrapping:uv.y=uv.y-Math.floor(uv.y);break;case ClampToEdgeWrapping:uv.y=uv.y<0?0:1;break;case MirroredRepeatWrapping:if(Math.abs(Math.floor(uv.y)%2)===1){uv.y=Math.ceil(uv.y)-uv.y}else{uv.y=uv.y-Math.floor(uv.y)}break;}}if(this.flipY){uv.y=1-uv.y}return uv}set needsUpdate(value){if(value===true){this.version++;this.source.needsUpdate=true}}set needsPMREMUpdate(value){if(value===true){this.pmremVersion++}}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=UVMapping;Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(x=0,y=0,z=0,w=1){Vector4.prototype.isVector4=true;this.x=x;this.y=y;this.z=z;this.w=w}get width(){return this.z}set width(value){this.z=value}get height(){return this.w}set height(value){this.w=value}set(x,y,z,w){this.x=x;this.y=y;this.z=z;this.w=w;return this}setScalar(scalar){this.x=scalar;this.y=scalar;this.z=scalar;this.w=scalar;return this}setX(x){this.x=x;return this}setY(y){this.y=y;return this}setZ(z){this.z=z;return this}setW(w){this.w=w;return this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;case 2:this.z=value;break;case 3:this.w=value;break;default:throw new Error("index is out of range: "+index);}return this}getComponent(index){switch(index){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+index);}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(v){this.x=v.x;this.y=v.y;this.z=v.z;this.w=v.w!==undefined?v.w:1;return this}add(v){this.x+=v.x;this.y+=v.y;this.z+=v.z;this.w+=v.w;return this}addScalar(s){this.x+=s;this.y+=s;this.z+=s;this.w+=s;return this}addVectors(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this}addScaledVector(v,s){this.x+=v.x*s;this.y+=v.y*s;this.z+=v.z*s;this.w+=v.w*s;return this}sub(v){this.x-=v.x;this.y-=v.y;this.z-=v.z;this.w-=v.w;return this}subScalar(s){this.x-=s;this.y-=s;this.z-=s;this.w-=s;return this}subVectors(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this}multiply(v){this.x*=v.x;this.y*=v.y;this.z*=v.z;this.w*=v.w;return this}multiplyScalar(scalar){this.x*=scalar;this.y*=scalar;this.z*=scalar;this.w*=scalar;return this}applyMatrix4(m){const x=this.x,y=this.y,z=this.z,w=this.w;const e=m.elements;this.x=e[0]*x+e[4]*y+e[8]*z+e[12]*w;this.y=e[1]*x+e[5]*y+e[9]*z+e[13]*w;this.z=e[2]*x+e[6]*y+e[10]*z+e[14]*w;this.w=e[3]*x+e[7]*y+e[11]*z+e[15]*w;return this}divide(v){this.x/=v.x;this.y/=v.y;this.z/=v.z;this.w/=v.w;return this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}setAxisAngleFromQuaternion(q){this.w=2*Math.acos(q.w);const s=Math.sqrt(1-q.w*q.w);if(s<0.0001){this.x=1;this.y=0;this.z=0}else{this.x=q.x/s;this.y=q.y/s;this.z=q.z/s}return this}setAxisAngleFromRotationMatrix(m){let angle,x,y,z;const epsilon=0.01,epsilon2=0.1,te=m.elements,m11=te[0],m12=te[4],m13=te[8],m21=te[1],m22=te[5],m23=te[9],m31=te[2],m32=te[6],m33=te[10];if(Math.abs(m12-m21)yy&&xx>zz){if(xxzz){if(yy1}}this.dispose()}this.viewport.set(0,0,width,height);this.scissor.set(0,0,width,height)}clone(){return new this.constructor().copy(this)}copy(source){this.width=source.width;this.height=source.height;this.depth=source.depth;this.scissor.copy(source.scissor);this.scissorTest=source.scissorTest;this.viewport.copy(source.viewport);this.textures.length=0;for(let i=0,il=source.textures.length;i=this.min.x&&point.x<=this.max.x&&point.y>=this.min.y&&point.y<=this.max.y&&point.z>=this.min.z&&point.z<=this.max.z}containsBox(box){return this.min.x<=box.min.x&&box.max.x<=this.max.x&&this.min.y<=box.min.y&&box.max.y<=this.max.y&&this.min.z<=box.min.z&&box.max.z<=this.max.z}getParameter(point,target){return target.set((point.x-this.min.x)/(this.max.x-this.min.x),(point.y-this.min.y)/(this.max.y-this.min.y),(point.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(box){return box.max.x>=this.min.x&&box.min.x<=this.max.x&&box.max.y>=this.min.y&&box.min.y<=this.max.y&&box.max.z>=this.min.z&&box.min.z<=this.max.z}intersectsSphere(sphere){this.clampPoint(sphere.center,_vector$b);return _vector$b.distanceToSquared(sphere.center)<=sphere.radius*sphere.radius}intersectsPlane(plane){let min,max;if(plane.normal.x>0){min=plane.normal.x*this.min.x;max=plane.normal.x*this.max.x}else{min=plane.normal.x*this.max.x;max=plane.normal.x*this.min.x}if(plane.normal.y>0){min+=plane.normal.y*this.min.y;max+=plane.normal.y*this.max.y}else{min+=plane.normal.y*this.max.y;max+=plane.normal.y*this.min.y}if(plane.normal.z>0){min+=plane.normal.z*this.min.z;max+=plane.normal.z*this.max.z}else{min+=plane.normal.z*this.max.z;max+=plane.normal.z*this.min.z}return min<=-plane.constant&&max>=-plane.constant}intersectsTriangle(triangle){if(this.isEmpty()){return false}this.getCenter(_center);_extents.subVectors(this.max,_center);_v0$3.subVectors(triangle.a,_center);_v1$7.subVectors(triangle.b,_center);_v2$4.subVectors(triangle.c,_center);_f0.subVectors(_v1$7,_v0$3);_f1.subVectors(_v2$4,_v1$7);_f2.subVectors(_v0$3,_v2$4);let axes=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];if(!satForAxes(axes,_v0$3,_v1$7,_v2$4,_extents)){return false}axes=[1,0,0,0,1,0,0,0,1];if(!satForAxes(axes,_v0$3,_v1$7,_v2$4,_extents)){return false}_triangleNormal.crossVectors(_f0,_f1);axes=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z];return satForAxes(axes,_v0$3,_v1$7,_v2$4,_extents)}clampPoint(point,target){return target.copy(point).clamp(this.min,this.max)}distanceToPoint(point){return this.clampPoint(point,_vector$b).distanceTo(point)}getBoundingSphere(target){if(this.isEmpty()){target.makeEmpty()}else{this.getCenter(target.center);target.radius=this.getSize(_vector$b).length()*0.5}return target}intersect(box){this.min.max(box.min);this.max.min(box.max);if(this.isEmpty())this.makeEmpty();return this}union(box){this.min.min(box.min);this.max.max(box.max);return this}applyMatrix4(matrix){if(this.isEmpty())return this;_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(matrix);_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(matrix);_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(matrix);_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(matrix);_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(matrix);_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(matrix);_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(matrix);_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(matrix);this.setFromPoints(_points);return this}translate(offset){this.min.add(offset);this.max.add(offset);return this}equals(box){return box.min.equals(this.min)&&box.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(json){this.min.fromArray(json.min);this.max.fromArray(json.max);return this}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3];const _vector$b=new Vector3;const _box$4=new Box3;const _v0$3=new Vector3;const _v1$7=new Vector3;const _v2$4=new Vector3;const _f0=new Vector3;const _f1=new Vector3;const _f2=new Vector3;const _center=new Vector3;const _extents=new Vector3;const _triangleNormal=new Vector3;const _testAxis=new Vector3;function satForAxes(axes,v0,v1,v2,extents){for(let i=0,j=axes.length-3;i<=j;i+=3){_testAxis.fromArray(axes,i);const r=extents.x*Math.abs(_testAxis.x)+extents.y*Math.abs(_testAxis.y)+extents.z*Math.abs(_testAxis.z);const p0=v0.dot(_testAxis);const p1=v1.dot(_testAxis);const p2=v2.dot(_testAxis);if(Math.max(-Math.max(p0,p1,p2),Math.min(p0,p1,p2))>r){return false}}return true}const _box$3=new Box3;const _v1$6=new Vector3;const _v2$3=new Vector3;class Sphere{constructor(center=new Vector3,radius=-1){this.isSphere=true;this.center=center;this.radius=radius}set(center,radius){this.center.copy(center);this.radius=radius;return this}setFromPoints(points,optionalCenter){const center=this.center;if(optionalCenter!==undefined){center.copy(optionalCenter)}else{_box$3.setFromPoints(points).getCenter(center)}let maxRadiusSq=0;for(let i=0,il=points.length;ithis.radius*this.radius){target.sub(this.center).normalize();target.multiplyScalar(this.radius).add(this.center)}return target}getBoundingBox(target){if(this.isEmpty()){target.makeEmpty();return target}target.set(this.center,this.center);target.expandByScalar(this.radius);return target}applyMatrix4(matrix){this.center.applyMatrix4(matrix);this.radius=this.radius*matrix.getMaxScaleOnAxis();return this}translate(offset){this.center.add(offset);return this}expandByPoint(point){if(this.isEmpty()){this.center.copy(point);this.radius=0;return this}_v1$6.subVectors(point,this.center);const lengthSq=_v1$6.lengthSq();if(lengthSq>this.radius*this.radius){const length=Math.sqrt(lengthSq);const delta=(length-this.radius)*0.5;this.center.addScaledVector(_v1$6,delta/length);this.radius+=delta}return this}union(sphere){if(sphere.isEmpty()){return this}if(this.isEmpty()){this.copy(sphere);return this}if(this.center.equals(sphere.center)===true){this.radius=Math.max(this.radius,sphere.radius)}else{_v2$3.subVectors(sphere.center,this.center).setLength(sphere.radius);this.expandByPoint(_v1$6.copy(sphere.center).add(_v2$3));this.expandByPoint(_v1$6.copy(sphere.center).sub(_v2$3))}return this}equals(sphere){return sphere.center.equals(this.center)&&sphere.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(json){this.radius=json.radius;this.center.fromArray(json.center);return this}}const _vector$a=new Vector3;const _segCenter=new Vector3;const _segDir=new Vector3;const _diff=new Vector3;const _edge1=new Vector3;const _edge2=new Vector3;const _normal$1=new Vector3;class Ray{constructor(origin=new Vector3,direction=new Vector3(0,0,-1)){this.origin=origin;this.direction=direction}set(origin,direction){this.origin.copy(origin);this.direction.copy(direction);return this}copy(ray){this.origin.copy(ray.origin);this.direction.copy(ray.direction);return this}at(t,target){return target.copy(this.origin).addScaledVector(this.direction,t)}lookAt(v){this.direction.copy(v).sub(this.origin).normalize();return this}recast(t){this.origin.copy(this.at(t,_vector$a));return this}closestPointToPoint(point,target){target.subVectors(point,this.origin);const directionDistance=target.dot(this.direction);if(directionDistance<0){return target.copy(this.origin)}return target.copy(this.origin).addScaledVector(this.direction,directionDistance)}distanceToPoint(point){return Math.sqrt(this.distanceSqToPoint(point))}distanceSqToPoint(point){const directionDistance=_vector$a.subVectors(point,this.origin).dot(this.direction);if(directionDistance<0){return this.origin.distanceToSquared(point)}_vector$a.copy(this.origin).addScaledVector(this.direction,directionDistance);return _vector$a.distanceToSquared(point)}distanceSqToSegment(v0,v1,optionalPointOnRay,optionalPointOnSegment){_segCenter.copy(v0).add(v1).multiplyScalar(0.5);_segDir.copy(v1).sub(v0).normalize();_diff.copy(this.origin).sub(_segCenter);const segExtent=v0.distanceTo(v1)*0.5;const a01=-this.direction.dot(_segDir);const b0=_diff.dot(this.direction);const b1=-_diff.dot(_segDir);const c=_diff.lengthSq();const det=Math.abs(1-a01*a01);let s0,s1,sqrDist,extDet;if(det>0){s0=a01*b1-b0;s1=a01*b0-b1;extDet=segExtent*det;if(s0>=0){if(s1>=-extDet){if(s1<=extDet){const invDet=1/det;s0*=invDet;s1*=invDet;sqrDist=s0*(s0+a01*s1+2*b0)+s1*(a01*s0+s1+2*b1)+c}else{s1=segExtent;s0=Math.max(0,-(a01*s1+b0));sqrDist=-s0*s0+s1*(s1+2*b1)+c}}else{s1=-segExtent;s0=Math.max(0,-(a01*s1+b0));sqrDist=-s0*s0+s1*(s1+2*b1)+c}}else{if(s1<=-extDet){s0=Math.max(0,-(-a01*segExtent+b0));s1=s0>0?-segExtent:Math.min(Math.max(-segExtent,-b1),segExtent);sqrDist=-s0*s0+s1*(s1+2*b1)+c}else if(s1<=extDet){s0=0;s1=Math.min(Math.max(-segExtent,-b1),segExtent);sqrDist=s1*(s1+2*b1)+c}else{s0=Math.max(0,-(a01*segExtent+b0));s1=s0>0?segExtent:Math.min(Math.max(-segExtent,-b1),segExtent);sqrDist=-s0*s0+s1*(s1+2*b1)+c}}}else{s1=a01>0?-segExtent:segExtent;s0=Math.max(0,-(a01*s1+b0));sqrDist=-s0*s0+s1*(s1+2*b1)+c}if(optionalPointOnRay){optionalPointOnRay.copy(this.origin).addScaledVector(this.direction,s0)}if(optionalPointOnSegment){optionalPointOnSegment.copy(_segCenter).addScaledVector(_segDir,s1)}return sqrDist}intersectSphere(sphere,target){_vector$a.subVectors(sphere.center,this.origin);const tca=_vector$a.dot(this.direction);const d2=_vector$a.dot(_vector$a)-tca*tca;const radius2=sphere.radius*sphere.radius;if(d2>radius2)return null;const thc=Math.sqrt(radius2-d2);const t0=tca-thc;const t1=tca+thc;if(t1<0)return null;if(t0<0)return this.at(t1,target);return this.at(t0,target)}intersectsSphere(sphere){if(sphere.radius<0)return false;return this.distanceSqToPoint(sphere.center)<=sphere.radius*sphere.radius}distanceToPlane(plane){const denominator=plane.normal.dot(this.direction);if(denominator===0){if(plane.distanceToPoint(this.origin)===0){return 0}return null}const t=-(this.origin.dot(plane.normal)+plane.constant)/denominator;return t>=0?t:null}intersectPlane(plane,target){const t=this.distanceToPlane(plane);if(t===null){return null}return this.at(t,target)}intersectsPlane(plane){const distToPoint=plane.distanceToPoint(this.origin);if(distToPoint===0){return true}const denominator=plane.normal.dot(this.direction);if(denominator*distToPoint<0){return true}return false}intersectBox(box,target){let tmin,tmax,tymin,tymax,tzmin,tzmax;const invdirx=1/this.direction.x,invdiry=1/this.direction.y,invdirz=1/this.direction.z;const origin=this.origin;if(invdirx>=0){tmin=(box.min.x-origin.x)*invdirx;tmax=(box.max.x-origin.x)*invdirx}else{tmin=(box.max.x-origin.x)*invdirx;tmax=(box.min.x-origin.x)*invdirx}if(invdiry>=0){tymin=(box.min.y-origin.y)*invdiry;tymax=(box.max.y-origin.y)*invdiry}else{tymin=(box.max.y-origin.y)*invdiry;tymax=(box.min.y-origin.y)*invdiry}if(tmin>tymax||tymin>tmax)return null;if(tymin>tmin||isNaN(tmin))tmin=tymin;if(tymax=0){tzmin=(box.min.z-origin.z)*invdirz;tzmax=(box.max.z-origin.z)*invdirz}else{tzmin=(box.max.z-origin.z)*invdirz;tzmax=(box.min.z-origin.z)*invdirz}if(tmin>tzmax||tzmin>tmax)return null;if(tzmin>tmin||tmin!==tmin)tmin=tzmin;if(tzmax=0?tmin:tmax,target)}intersectsBox(box){return this.intersectBox(box,_vector$a)!==null}intersectTriangle(a,b,c,backfaceCulling,target){_edge1.subVectors(b,a);_edge2.subVectors(c,a);_normal$1.crossVectors(_edge1,_edge2);let DdN=this.direction.dot(_normal$1);let sign;if(DdN>0){if(backfaceCulling)return null;sign=1}else if(DdN<0){sign=-1;DdN=-DdN}else{return null}_diff.subVectors(this.origin,a);const DdQxE2=sign*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(DdQxE2<0){return null}const DdE1xQ=sign*this.direction.dot(_edge1.cross(_diff));if(DdE1xQ<0){return null}if(DdQxE2+DdE1xQ>DdN){return null}const QdN=-sign*_diff.dot(_normal$1);if(QdN<0){return null}return this.at(QdN/DdN,target)}applyMatrix4(matrix4){this.origin.applyMatrix4(matrix4);this.direction.transformDirection(matrix4);return this}equals(ray){return ray.origin.equals(this.origin)&&ray.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class Matrix4{constructor(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44){Matrix4.prototype.isMatrix4=true;this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];if(n11!==undefined){this.set(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44)}}set(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44){const te=this.elements;te[0]=n11;te[4]=n12;te[8]=n13;te[12]=n14;te[1]=n21;te[5]=n22;te[9]=n23;te[13]=n24;te[2]=n31;te[6]=n32;te[10]=n33;te[14]=n34;te[3]=n41;te[7]=n42;te[11]=n43;te[15]=n44;return this}identity(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this}clone(){return new Matrix4().fromArray(this.elements)}copy(m){const te=this.elements;const me=m.elements;te[0]=me[0];te[1]=me[1];te[2]=me[2];te[3]=me[3];te[4]=me[4];te[5]=me[5];te[6]=me[6];te[7]=me[7];te[8]=me[8];te[9]=me[9];te[10]=me[10];te[11]=me[11];te[12]=me[12];te[13]=me[13];te[14]=me[14];te[15]=me[15];return this}copyPosition(m){const te=this.elements,me=m.elements;te[12]=me[12];te[13]=me[13];te[14]=me[14];return this}setFromMatrix3(m){const me=m.elements;this.set(me[0],me[3],me[6],0,me[1],me[4],me[7],0,me[2],me[5],me[8],0,0,0,0,1);return this}extractBasis(xAxis,yAxis,zAxis){if(this.determinant()===0){xAxis.set(1,0,0);yAxis.set(0,1,0);zAxis.set(0,0,1);return this}xAxis.setFromMatrixColumn(this,0);yAxis.setFromMatrixColumn(this,1);zAxis.setFromMatrixColumn(this,2);return this}makeBasis(xAxis,yAxis,zAxis){this.set(xAxis.x,yAxis.x,zAxis.x,0,xAxis.y,yAxis.y,zAxis.y,0,xAxis.z,yAxis.z,zAxis.z,0,0,0,0,1);return this}extractRotation(m){if(m.determinant()===0){return this.identity()}const te=this.elements;const me=m.elements;const scaleX=1/_v1$5.setFromMatrixColumn(m,0).length();const scaleY=1/_v1$5.setFromMatrixColumn(m,1).length();const scaleZ=1/_v1$5.setFromMatrixColumn(m,2).length();te[0]=me[0]*scaleX;te[1]=me[1]*scaleX;te[2]=me[2]*scaleX;te[3]=0;te[4]=me[4]*scaleY;te[5]=me[5]*scaleY;te[6]=me[6]*scaleY;te[7]=0;te[8]=me[8]*scaleZ;te[9]=me[9]*scaleZ;te[10]=me[10]*scaleZ;te[11]=0;te[12]=0;te[13]=0;te[14]=0;te[15]=1;return this}makeRotationFromEuler(euler){const te=this.elements;const x=euler.x,y=euler.y,z=euler.z;const a=Math.cos(x),b=Math.sin(x);const c=Math.cos(y),d=Math.sin(y);const e=Math.cos(z),f=Math.sin(z);if(euler.order==="XYZ"){const ae=a*e,af=a*f,be=b*e,bf=b*f;te[0]=c*e;te[4]=-c*f;te[8]=d;te[1]=af+be*d;te[5]=ae-bf*d;te[9]=-b*c;te[2]=bf-ae*d;te[6]=be+af*d;te[10]=a*c}else if(euler.order==="YXZ"){const ce=c*e,cf=c*f,de=d*e,df=d*f;te[0]=ce+df*b;te[4]=de*b-cf;te[8]=a*d;te[1]=a*f;te[5]=a*e;te[9]=-b;te[2]=cf*b-de;te[6]=df+ce*b;te[10]=a*c}else if(euler.order==="ZXY"){const ce=c*e,cf=c*f,de=d*e,df=d*f;te[0]=ce-df*b;te[4]=-a*f;te[8]=de+cf*b;te[1]=cf+de*b;te[5]=a*e;te[9]=df-ce*b;te[2]=-a*d;te[6]=b;te[10]=a*c}else if(euler.order==="ZYX"){const ae=a*e,af=a*f,be=b*e,bf=b*f;te[0]=c*e;te[4]=be*d-af;te[8]=ae*d+bf;te[1]=c*f;te[5]=bf*d+ae;te[9]=af*d-be;te[2]=-d;te[6]=b*c;te[10]=a*c}else if(euler.order==="YZX"){const ac=a*c,ad=a*d,bc=b*c,bd=b*d;te[0]=c*e;te[4]=bd-ac*f;te[8]=bc*f+ad;te[1]=f;te[5]=a*e;te[9]=-b*e;te[2]=-d*e;te[6]=ad*f+bc;te[10]=ac-bd*f}else if(euler.order==="XZY"){const ac=a*c,ad=a*d,bc=b*c,bd=b*d;te[0]=c*e;te[4]=-f;te[8]=d*e;te[1]=ac*f+bd;te[5]=a*e;te[9]=ad*f-bc;te[2]=bc*f-ad;te[6]=b*e;te[10]=bd*f+ac}te[3]=0;te[7]=0;te[11]=0;te[12]=0;te[13]=0;te[14]=0;te[15]=1;return this}makeRotationFromQuaternion(q){return this.compose(_zero,q,_one)}lookAt(eye,target,up){const te=this.elements;_z.subVectors(eye,target);if(_z.lengthSq()===0){_z.z=1}_z.normalize();_x.crossVectors(up,_z);if(_x.lengthSq()===0){if(Math.abs(up.z)===1){_z.x+=0.0001}else{_z.z+=0.0001}_z.normalize();_x.crossVectors(up,_z)}_x.normalize();_y.crossVectors(_z,_x);te[0]=_x.x;te[4]=_y.x;te[8]=_z.x;te[1]=_x.y;te[5]=_y.y;te[9]=_z.y;te[2]=_x.z;te[6]=_y.z;te[10]=_z.z;return this}multiply(m){return this.multiplyMatrices(this,m)}premultiply(m){return this.multiplyMatrices(m,this)}multiplyMatrices(a,b){const ae=a.elements;const be=b.elements;const te=this.elements;const a11=ae[0],a12=ae[4],a13=ae[8],a14=ae[12];const a21=ae[1],a22=ae[5],a23=ae[9],a24=ae[13];const a31=ae[2],a32=ae[6],a33=ae[10],a34=ae[14];const a41=ae[3],a42=ae[7],a43=ae[11],a44=ae[15];const b11=be[0],b12=be[4],b13=be[8],b14=be[12];const b21=be[1],b22=be[5],b23=be[9],b24=be[13];const b31=be[2],b32=be[6],b33=be[10],b34=be[14];const b41=be[3],b42=be[7],b43=be[11],b44=be[15];te[0]=a11*b11+a12*b21+a13*b31+a14*b41;te[4]=a11*b12+a12*b22+a13*b32+a14*b42;te[8]=a11*b13+a12*b23+a13*b33+a14*b43;te[12]=a11*b14+a12*b24+a13*b34+a14*b44;te[1]=a21*b11+a22*b21+a23*b31+a24*b41;te[5]=a21*b12+a22*b22+a23*b32+a24*b42;te[9]=a21*b13+a22*b23+a23*b33+a24*b43;te[13]=a21*b14+a22*b24+a23*b34+a24*b44;te[2]=a31*b11+a32*b21+a33*b31+a34*b41;te[6]=a31*b12+a32*b22+a33*b32+a34*b42;te[10]=a31*b13+a32*b23+a33*b33+a34*b43;te[14]=a31*b14+a32*b24+a33*b34+a34*b44;te[3]=a41*b11+a42*b21+a43*b31+a44*b41;te[7]=a41*b12+a42*b22+a43*b32+a44*b42;te[11]=a41*b13+a42*b23+a43*b33+a44*b43;te[15]=a41*b14+a42*b24+a43*b34+a44*b44;return this}multiplyScalar(s){const te=this.elements;te[0]*=s;te[4]*=s;te[8]*=s;te[12]*=s;te[1]*=s;te[5]*=s;te[9]*=s;te[13]*=s;te[2]*=s;te[6]*=s;te[10]*=s;te[14]*=s;te[3]*=s;te[7]*=s;te[11]*=s;te[15]*=s;return this}determinant(){const te=this.elements;const n11=te[0],n12=te[4],n13=te[8],n14=te[12];const n21=te[1],n22=te[5],n23=te[9],n24=te[13];const n31=te[2],n32=te[6],n33=te[10],n34=te[14];const n41=te[3],n42=te[7],n43=te[11],n44=te[15];const t11=n23*n34-n24*n33;const t12=n22*n34-n24*n32;const t13=n22*n33-n23*n32;const t21=n21*n34-n24*n31;const t22=n21*n33-n23*n31;const t23=n21*n32-n22*n31;return n11*(n42*t11-n43*t12+n44*t13)-n12*(n41*t11-n43*t21+n44*t22)+n13*(n41*t12-n42*t21+n44*t23)-n14*(n41*t13-n42*t22+n43*t23)}transpose(){const te=this.elements;let tmp;tmp=te[1];te[1]=te[4];te[4]=tmp;tmp=te[2];te[2]=te[8];te[8]=tmp;tmp=te[6];te[6]=te[9];te[9]=tmp;tmp=te[3];te[3]=te[12];te[12]=tmp;tmp=te[7];te[7]=te[13];te[13]=tmp;tmp=te[11];te[11]=te[14];te[14]=tmp;return this}setPosition(x,y,z){const te=this.elements;if(x.isVector3){te[12]=x.x;te[13]=x.y;te[14]=x.z}else{te[12]=x;te[13]=y;te[14]=z}return this}invert(){const te=this.elements,n11=te[0],n21=te[1],n31=te[2],n41=te[3],n12=te[4],n22=te[5],n32=te[6],n42=te[7],n13=te[8],n23=te[9],n33=te[10],n43=te[11],n14=te[12],n24=te[13],n34=te[14],n44=te[15],t11=n23*n34*n42-n24*n33*n42+n24*n32*n43-n22*n34*n43-n23*n32*n44+n22*n33*n44,t12=n14*n33*n42-n13*n34*n42-n14*n32*n43+n12*n34*n43+n13*n32*n44-n12*n33*n44,t13=n13*n24*n42-n14*n23*n42+n14*n22*n43-n12*n24*n43-n13*n22*n44+n12*n23*n44,t14=n14*n23*n32-n13*n24*n32-n14*n22*n33+n12*n24*n33+n13*n22*n34-n12*n23*n34;const det=n11*t11+n21*t12+n31*t13+n41*t14;if(det===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const detInv=1/det;te[0]=t11*detInv;te[1]=(n24*n33*n41-n23*n34*n41-n24*n31*n43+n21*n34*n43+n23*n31*n44-n21*n33*n44)*detInv;te[2]=(n22*n34*n41-n24*n32*n41+n24*n31*n42-n21*n34*n42-n22*n31*n44+n21*n32*n44)*detInv;te[3]=(n23*n32*n41-n22*n33*n41-n23*n31*n42+n21*n33*n42+n22*n31*n43-n21*n32*n43)*detInv;te[4]=t12*detInv;te[5]=(n13*n34*n41-n14*n33*n41+n14*n31*n43-n11*n34*n43-n13*n31*n44+n11*n33*n44)*detInv;te[6]=(n14*n32*n41-n12*n34*n41-n14*n31*n42+n11*n34*n42+n12*n31*n44-n11*n32*n44)*detInv;te[7]=(n12*n33*n41-n13*n32*n41+n13*n31*n42-n11*n33*n42-n12*n31*n43+n11*n32*n43)*detInv;te[8]=t13*detInv;te[9]=(n14*n23*n41-n13*n24*n41-n14*n21*n43+n11*n24*n43+n13*n21*n44-n11*n23*n44)*detInv;te[10]=(n12*n24*n41-n14*n22*n41+n14*n21*n42-n11*n24*n42-n12*n21*n44+n11*n22*n44)*detInv;te[11]=(n13*n22*n41-n12*n23*n41-n13*n21*n42+n11*n23*n42+n12*n21*n43-n11*n22*n43)*detInv;te[12]=t14*detInv;te[13]=(n13*n24*n31-n14*n23*n31+n14*n21*n33-n11*n24*n33-n13*n21*n34+n11*n23*n34)*detInv;te[14]=(n14*n22*n31-n12*n24*n31-n14*n21*n32+n11*n24*n32+n12*n21*n34-n11*n22*n34)*detInv;te[15]=(n12*n23*n31-n13*n22*n31+n13*n21*n32-n11*n23*n32-n12*n21*n33+n11*n22*n33)*detInv;return this}scale(v){const te=this.elements;const x=v.x,y=v.y,z=v.z;te[0]*=x;te[4]*=y;te[8]*=z;te[1]*=x;te[5]*=y;te[9]*=z;te[2]*=x;te[6]*=y;te[10]*=z;te[3]*=x;te[7]*=y;te[11]*=z;return this}getMaxScaleOnAxis(){const te=this.elements;const scaleXSq=te[0]*te[0]+te[1]*te[1]+te[2]*te[2];const scaleYSq=te[4]*te[4]+te[5]*te[5]+te[6]*te[6];const scaleZSq=te[8]*te[8]+te[9]*te[9]+te[10]*te[10];return Math.sqrt(Math.max(scaleXSq,scaleYSq,scaleZSq))}makeTranslation(x,y,z){if(x.isVector3){this.set(1,0,0,x.x,0,1,0,x.y,0,0,1,x.z,0,0,0,1)}else{this.set(1,0,0,x,0,1,0,y,0,0,1,z,0,0,0,1)}return this}makeRotationX(theta){const c=Math.cos(theta),s=Math.sin(theta);this.set(1,0,0,0,0,c,-s,0,0,s,c,0,0,0,0,1);return this}makeRotationY(theta){const c=Math.cos(theta),s=Math.sin(theta);this.set(c,0,s,0,0,1,0,0,-s,0,c,0,0,0,0,1);return this}makeRotationZ(theta){const c=Math.cos(theta),s=Math.sin(theta);this.set(c,-s,0,0,s,c,0,0,0,0,1,0,0,0,0,1);return this}makeRotationAxis(axis,angle){const c=Math.cos(angle);const s=Math.sin(angle);const t=1-c;const x=axis.x,y=axis.y,z=axis.z;const tx=t*x,ty=t*y;this.set(tx*x+c,tx*y-s*z,tx*z+s*y,0,tx*y+s*z,ty*y+c,ty*z-s*x,0,tx*z-s*y,ty*z+s*x,t*z*z+c,0,0,0,0,1);return this}makeScale(x,y,z){this.set(x,0,0,0,0,y,0,0,0,0,z,0,0,0,0,1);return this}makeShear(xy,xz,yx,yz,zx,zy){this.set(1,yx,zx,0,xy,1,zy,0,xz,yz,1,0,0,0,0,1);return this}compose(position,quaternion,scale){const te=this.elements;const x=quaternion._x,y=quaternion._y,z=quaternion._z,w=quaternion._w;const x2=x+x,y2=y+y,z2=z+z;const xx=x*x2,xy=x*y2,xz=x*z2;const yy=y*y2,yz=y*z2,zz=z*z2;const wx=w*x2,wy=w*y2,wz=w*z2;const sx=scale.x,sy=scale.y,sz=scale.z;te[0]=(1-(yy+zz))*sx;te[1]=(xy+wz)*sx;te[2]=(xz-wy)*sx;te[3]=0;te[4]=(xy-wz)*sy;te[5]=(1-(xx+zz))*sy;te[6]=(yz+wx)*sy;te[7]=0;te[8]=(xz+wy)*sz;te[9]=(yz-wx)*sz;te[10]=(1-(xx+yy))*sz;te[11]=0;te[12]=position.x;te[13]=position.y;te[14]=position.z;te[15]=1;return this}decompose(position,quaternion,scale){const te=this.elements;position.x=te[12];position.y=te[13];position.z=te[14];if(this.determinant()===0){scale.set(1,1,1);quaternion.identity();return this}let sx=_v1$5.set(te[0],te[1],te[2]).length();const sy=_v1$5.set(te[4],te[5],te[6]).length();const sz=_v1$5.set(te[8],te[9],te[10]).length();const det=this.determinant();if(det<0)sx=-sx;_m1$4.copy(this);const invSX=1/sx;const invSY=1/sy;const invSZ=1/sz;_m1$4.elements[0]*=invSX;_m1$4.elements[1]*=invSX;_m1$4.elements[2]*=invSX;_m1$4.elements[4]*=invSY;_m1$4.elements[5]*=invSY;_m1$4.elements[6]*=invSY;_m1$4.elements[8]*=invSZ;_m1$4.elements[9]*=invSZ;_m1$4.elements[10]*=invSZ;quaternion.setFromRotationMatrix(_m1$4);scale.x=sx;scale.y=sy;scale.z=sz;return this}makePerspective(left,right,top,bottom,near,far,coordinateSystem=WebGLCoordinateSystem,reversedDepth=false){const te=this.elements;const x=2*near/(right-left);const y=2*near/(top-bottom);const a=(right+left)/(right-left);const b=(top+bottom)/(top-bottom);let c,d;if(reversedDepth){c=near/(far-near);d=far*near/(far-near)}else{if(coordinateSystem===WebGLCoordinateSystem){c=-(far+near)/(far-near);d=-2*far*near/(far-near)}else if(coordinateSystem===WebGPUCoordinateSystem){c=-far/(far-near);d=-far*near/(far-near)}else{throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+coordinateSystem)}}te[0]=x;te[4]=0;te[8]=a;te[12]=0;te[1]=0;te[5]=y;te[9]=b;te[13]=0;te[2]=0;te[6]=0;te[10]=c;te[14]=d;te[3]=0;te[7]=0;te[11]=-1;te[15]=0;return this}makeOrthographic(left,right,top,bottom,near,far,coordinateSystem=WebGLCoordinateSystem,reversedDepth=false){const te=this.elements;const x=2/(right-left);const y=2/(top-bottom);const a=-(right+left)/(right-left);const b=-(top+bottom)/(top-bottom);let c,d;if(reversedDepth){c=1/(far-near);d=far/(far-near)}else{if(coordinateSystem===WebGLCoordinateSystem){c=-2/(far-near);d=-(far+near)/(far-near)}else if(coordinateSystem===WebGPUCoordinateSystem){c=-1/(far-near);d=-near/(far-near)}else{throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+coordinateSystem)}}te[0]=x;te[4]=0;te[8]=0;te[12]=a;te[1]=0;te[5]=y;te[9]=0;te[13]=b;te[2]=0;te[6]=0;te[10]=c;te[14]=d;te[3]=0;te[7]=0;te[11]=0;te[15]=1;return this}equals(matrix){const te=this.elements;const me=matrix.elements;for(let i=0;i<16;i++){if(te[i]!==me[i])return false}return true}fromArray(array,offset=0){for(let i=0;i<16;i++){this.elements[i]=array[i+offset]}return this}toArray(array=[],offset=0){const te=this.elements;array[offset]=te[0];array[offset+1]=te[1];array[offset+2]=te[2];array[offset+3]=te[3];array[offset+4]=te[4];array[offset+5]=te[5];array[offset+6]=te[6];array[offset+7]=te[7];array[offset+8]=te[8];array[offset+9]=te[9];array[offset+10]=te[10];array[offset+11]=te[11];array[offset+12]=te[12];array[offset+13]=te[13];array[offset+14]=te[14];array[offset+15]=te[15];return array}}const _v1$5=new Vector3;const _m1$4=new Matrix4;const _zero=new Vector3(0,0,0);const _one=new Vector3(1,1,1);const _x=new Vector3;const _y=new Vector3;const _z=new Vector3;const _matrix$2=new Matrix4;const _quaternion$3=new Quaternion;class Euler{constructor(x=0,y=0,z=0,order=Euler.DEFAULT_ORDER){this.isEuler=true;this._x=x;this._y=y;this._z=z;this._order=order}get x(){return this._x}set x(value){this._x=value;this._onChangeCallback()}get y(){return this._y}set y(value){this._y=value;this._onChangeCallback()}get z(){return this._z}set z(value){this._z=value;this._onChangeCallback()}get order(){return this._order}set order(value){this._order=value;this._onChangeCallback()}set(x,y,z,order=this._order){this._x=x;this._y=y;this._z=z;this._order=order;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(euler){this._x=euler._x;this._y=euler._y;this._z=euler._z;this._order=euler._order;this._onChangeCallback();return this}setFromRotationMatrix(m,order=this._order,update=true){const te=m.elements;const m11=te[0],m12=te[4],m13=te[8];const m21=te[1],m22=te[5],m23=te[9];const m31=te[2],m32=te[6],m33=te[10];switch(order){case"XYZ":this._y=Math.asin(clamp(m13,-1,1));if(Math.abs(m13)<0.9999999){this._x=Math.atan2(-m23,m33);this._z=Math.atan2(-m12,m11)}else{this._x=Math.atan2(m32,m22);this._z=0}break;case"YXZ":this._x=Math.asin(-clamp(m23,-1,1));if(Math.abs(m23)<0.9999999){this._y=Math.atan2(m13,m33);this._z=Math.atan2(m21,m22)}else{this._y=Math.atan2(-m31,m11);this._z=0}break;case"ZXY":this._x=Math.asin(clamp(m32,-1,1));if(Math.abs(m32)<0.9999999){this._y=Math.atan2(-m31,m33);this._z=Math.atan2(-m12,m22)}else{this._y=0;this._z=Math.atan2(m21,m11)}break;case"ZYX":this._y=Math.asin(-clamp(m31,-1,1));if(Math.abs(m31)<0.9999999){this._x=Math.atan2(m32,m33);this._z=Math.atan2(m21,m11)}else{this._x=0;this._z=Math.atan2(-m12,m22)}break;case"YZX":this._z=Math.asin(clamp(m21,-1,1));if(Math.abs(m21)<0.9999999){this._x=Math.atan2(-m23,m22);this._y=Math.atan2(-m31,m11)}else{this._x=0;this._y=Math.atan2(m13,m33)}break;case"XZY":this._z=Math.asin(-clamp(m12,-1,1));if(Math.abs(m12)<0.9999999){this._x=Math.atan2(m32,m22);this._y=Math.atan2(m13,m11)}else{this._x=Math.atan2(-m23,m33);this._y=0}break;default:warn("Euler: .setFromRotationMatrix() encountered an unknown order: "+order);}this._order=order;if(update===true)this._onChangeCallback();return this}setFromQuaternion(q,order,update){_matrix$2.makeRotationFromQuaternion(q);return this.setFromRotationMatrix(_matrix$2,order,update)}setFromVector3(v,order=this._order){return this.set(v.x,v.y,v.z,order)}reorder(newOrder){_quaternion$3.setFromEuler(this);return this.setFromQuaternion(_quaternion$3,newOrder)}equals(euler){return euler._x===this._x&&euler._y===this._y&&euler._z===this._z&&euler._order===this._order}fromArray(array){this._x=array[0];this._y=array[1];this._z=array[2];if(array[3]!==undefined)this._order=array[3];this._onChangeCallback();return this}toArray(array=[],offset=0){array[offset]=this._x;array[offset+1]=this._y;array[offset+2]=this._z;array[offset+3]=this._order;return array}_onChange(callback){this._onChangeCallback=callback;return this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x;yield this._y;yield this._z;yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1|0}set(layer){this.mask=(1<>>0}enable(layer){this.mask|=1<1){for(let i=0;i1){for(let i=0;i0)object.userData=this.userData;object.layers=this.layers.mask;object.matrix=this.matrix.toArray();object.up=this.up.toArray();if(this.matrixAutoUpdate===false)object.matrixAutoUpdate=false;if(this.isInstancedMesh){object.type="InstancedMesh";object.count=this.count;object.instanceMatrix=this.instanceMatrix.toJSON();if(this.instanceColor!==null)object.instanceColor=this.instanceColor.toJSON()}if(this.isBatchedMesh){object.type="BatchedMesh";object.perObjectFrustumCulled=this.perObjectFrustumCulled;object.sortObjects=this.sortObjects;object.drawRanges=this._drawRanges;object.reservedRanges=this._reservedRanges;object.geometryInfo=this._geometryInfo.map(info=>({...info,boundingBox:info.boundingBox?info.boundingBox.toJSON():undefined,boundingSphere:info.boundingSphere?info.boundingSphere.toJSON():undefined}));object.instanceInfo=this._instanceInfo.map(info=>({...info}));object.availableInstanceIds=this._availableInstanceIds.slice();object.availableGeometryIds=this._availableGeometryIds.slice();object.nextIndexStart=this._nextIndexStart;object.nextVertexStart=this._nextVertexStart;object.geometryCount=this._geometryCount;object.maxInstanceCount=this._maxInstanceCount;object.maxVertexCount=this._maxVertexCount;object.maxIndexCount=this._maxIndexCount;object.geometryInitialized=this._geometryInitialized;object.matricesTexture=this._matricesTexture.toJSON(meta);object.indirectTexture=this._indirectTexture.toJSON(meta);if(this._colorsTexture!==null){object.colorsTexture=this._colorsTexture.toJSON(meta)}if(this.boundingSphere!==null){object.boundingSphere=this.boundingSphere.toJSON()}if(this.boundingBox!==null){object.boundingBox=this.boundingBox.toJSON()}}function serialize(library,element){if(library[element.uuid]===undefined){library[element.uuid]=element.toJSON(meta)}return element.uuid}if(this.isScene){if(this.background){if(this.background.isColor){object.background=this.background.toJSON()}else if(this.background.isTexture){object.background=this.background.toJSON(meta).uuid}}if(this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==true){object.environment=this.environment.toJSON(meta).uuid}}else if(this.isMesh||this.isLine||this.isPoints){object.geometry=serialize(meta.geometries,this.geometry);const parameters=this.geometry.parameters;if(parameters!==undefined&¶meters.shapes!==undefined){const shapes=parameters.shapes;if(Array.isArray(shapes)){for(let i=0,l=shapes.length;i0){object.children=[];for(let i=0;i0){object.animations=[];for(let i=0;i0)output.geometries=geometries;if(materials.length>0)output.materials=materials;if(textures.length>0)output.textures=textures;if(images.length>0)output.images=images;if(shapes.length>0)output.shapes=shapes;if(skeletons.length>0)output.skeletons=skeletons;if(animations.length>0)output.animations=animations;if(nodes.length>0)output.nodes=nodes}output.object=object;return output;function extractFromCache(cache){const values=[];for(const key in cache){const data=cache[key];delete data.metadata;values.push(data)}return values}}clone(recursive){return new this.constructor().copy(this,recursive)}copy(source,recursive=true){this.name=source.name;this.up.copy(source.up);this.position.copy(source.position);this.rotation.order=source.rotation.order;this.quaternion.copy(source.quaternion);this.scale.copy(source.scale);this.matrix.copy(source.matrix);this.matrixWorld.copy(source.matrixWorld);this.matrixAutoUpdate=source.matrixAutoUpdate;this.matrixWorldAutoUpdate=source.matrixWorldAutoUpdate;this.matrixWorldNeedsUpdate=source.matrixWorldNeedsUpdate;this.layers.mask=source.layers.mask;this.visible=source.visible;this.castShadow=source.castShadow;this.receiveShadow=source.receiveShadow;this.frustumCulled=source.frustumCulled;this.renderOrder=source.renderOrder;this.animations=source.animations.slice();this.userData=JSON.parse(JSON.stringify(source.userData));if(recursive===true){for(let i=0;i0){return target.multiplyScalar(1/Math.sqrt(targetLengthSq))}return target.set(0,0,0)}static getBarycoord(point,a,b,c,target){_v0$2.subVectors(c,a);_v1$3.subVectors(b,a);_v2$2.subVectors(point,a);const dot00=_v0$2.dot(_v0$2);const dot01=_v0$2.dot(_v1$3);const dot02=_v0$2.dot(_v2$2);const dot11=_v1$3.dot(_v1$3);const dot12=_v1$3.dot(_v2$2);const denom=dot00*dot11-dot01*dot01;if(denom===0){target.set(0,0,0);return null}const invDenom=1/denom;const u=(dot11*dot02-dot01*dot12)*invDenom;const v=(dot00*dot12-dot01*dot02)*invDenom;return target.set(1-u-v,v,u)}static containsPoint(point,a,b,c){if(this.getBarycoord(point,a,b,c,_v3$2)===null){return false}return _v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1}static getInterpolation(point,p1,p2,p3,v1,v2,v3,target){if(this.getBarycoord(point,p1,p2,p3,_v3$2)===null){target.x=0;target.y=0;if("z"in target)target.z=0;if("w"in target)target.w=0;return null}target.setScalar(0);target.addScaledVector(v1,_v3$2.x);target.addScaledVector(v2,_v3$2.y);target.addScaledVector(v3,_v3$2.z);return target}static getInterpolatedAttribute(attr,i1,i2,i3,barycoord,target){_v40.setScalar(0);_v41.setScalar(0);_v42.setScalar(0);_v40.fromBufferAttribute(attr,i1);_v41.fromBufferAttribute(attr,i2);_v42.fromBufferAttribute(attr,i3);target.setScalar(0);target.addScaledVector(_v40,barycoord.x);target.addScaledVector(_v41,barycoord.y);target.addScaledVector(_v42,barycoord.z);return target}static isFrontFacing(a,b,c,direction){_v0$2.subVectors(c,b);_v1$3.subVectors(a,b);return _v0$2.cross(_v1$3).dot(direction)<0?true:false}set(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this}setFromPointsAndIndices(points,i0,i1,i2){this.a.copy(points[i0]);this.b.copy(points[i1]);this.c.copy(points[i2]);return this}setFromAttributeAndIndices(attribute,i0,i1,i2){this.a.fromBufferAttribute(attribute,i0);this.b.fromBufferAttribute(attribute,i1);this.c.fromBufferAttribute(attribute,i2);return this}clone(){return new this.constructor().copy(this)}copy(triangle){this.a.copy(triangle.a);this.b.copy(triangle.b);this.c.copy(triangle.c);return this}getArea(){_v0$2.subVectors(this.c,this.b);_v1$3.subVectors(this.a,this.b);return _v0$2.cross(_v1$3).length()*0.5}getMidpoint(target){return target.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(target){return Triangle.getNormal(this.a,this.b,this.c,target)}getPlane(target){return target.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(point,target){return Triangle.getBarycoord(point,this.a,this.b,this.c,target)}getInterpolation(point,v1,v2,v3,target){return Triangle.getInterpolation(point,this.a,this.b,this.c,v1,v2,v3,target)}containsPoint(point){return Triangle.containsPoint(point,this.a,this.b,this.c)}isFrontFacing(direction){return Triangle.isFrontFacing(this.a,this.b,this.c,direction)}intersectsBox(box){return box.intersectsTriangle(this)}closestPointToPoint(p,target){const a=this.a,b=this.b,c=this.c;let v,w;_vab.subVectors(b,a);_vac.subVectors(c,a);_vap.subVectors(p,a);const d1=_vab.dot(_vap);const d2=_vac.dot(_vap);if(d1<=0&&d2<=0){return target.copy(a)}_vbp.subVectors(p,b);const d3=_vab.dot(_vbp);const d4=_vac.dot(_vbp);if(d3>=0&&d4<=d3){return target.copy(b)}const vc=d1*d4-d3*d2;if(vc<=0&&d1>=0&&d3<=0){v=d1/(d1-d3);return target.copy(a).addScaledVector(_vab,v)}_vcp.subVectors(p,c);const d5=_vab.dot(_vcp);const d6=_vac.dot(_vcp);if(d6>=0&&d5<=d6){return target.copy(c)}const vb=d5*d2-d1*d6;if(vb<=0&&d2>=0&&d6<=0){w=d2/(d2-d6);return target.copy(a).addScaledVector(_vac,w)}const va=d3*d6-d5*d4;if(va<=0&&d4-d3>=0&&d5-d6>=0){_vbc.subVectors(c,b);w=(d4-d3)/(d4-d3+(d5-d6));return target.copy(b).addScaledVector(_vbc,w)}const denom=1/(va+vb+vc);v=vb*denom;w=vc*denom;return target.copy(a).addScaledVector(_vab,v).addScaledVector(_vac,w)}equals(triangle){return triangle.a.equals(this.a)&&triangle.b.equals(this.b)&&triangle.c.equals(this.c)}}const _colorKeywords={"aliceblue":15792383,"antiquewhite":16444375,"aqua":65535,"aquamarine":8388564,"azure":15794175,"beige":16119260,"bisque":16770244,"black":0,"blanchedalmond":16772045,"blue":255,"blueviolet":9055202,"brown":10824234,"burlywood":14596231,"cadetblue":6266528,"chartreuse":8388352,"chocolate":13789470,"coral":16744272,"cornflowerblue":6591981,"cornsilk":16775388,"crimson":14423100,"cyan":65535,"darkblue":139,"darkcyan":35723,"darkgoldenrod":12092939,"darkgray":11119017,"darkgreen":25600,"darkgrey":11119017,"darkkhaki":12433259,"darkmagenta":9109643,"darkolivegreen":5597999,"darkorange":16747520,"darkorchid":10040012,"darkred":9109504,"darksalmon":15308410,"darkseagreen":9419919,"darkslateblue":4734347,"darkslategray":3100495,"darkslategrey":3100495,"darkturquoise":52945,"darkviolet":9699539,"deeppink":16716947,"deepskyblue":49151,"dimgray":6908265,"dimgrey":6908265,"dodgerblue":2003199,"firebrick":11674146,"floralwhite":16775920,"forestgreen":2263842,"fuchsia":16711935,"gainsboro":14474460,"ghostwhite":16316671,"gold":16766720,"goldenrod":14329120,"gray":8421504,"green":32768,"greenyellow":11403055,"grey":8421504,"honeydew":15794160,"hotpink":16738740,"indianred":13458524,"indigo":4915330,"ivory":16777200,"khaki":15787660,"lavender":15132410,"lavenderblush":16773365,"lawngreen":8190976,"lemonchiffon":16775885,"lightblue":11393254,"lightcoral":15761536,"lightcyan":14745599,"lightgoldenrodyellow":16448210,"lightgray":13882323,"lightgreen":9498256,"lightgrey":13882323,"lightpink":16758465,"lightsalmon":16752762,"lightseagreen":2142890,"lightskyblue":8900346,"lightslategray":7833753,"lightslategrey":7833753,"lightsteelblue":11584734,"lightyellow":16777184,"lime":65280,"limegreen":3329330,"linen":16445670,"magenta":16711935,"maroon":8388608,"mediumaquamarine":6737322,"mediumblue":205,"mediumorchid":12211667,"mediumpurple":9662683,"mediumseagreen":3978097,"mediumslateblue":8087790,"mediumspringgreen":64154,"mediumturquoise":4772300,"mediumvioletred":13047173,"midnightblue":1644912,"mintcream":16121850,"mistyrose":16770273,"moccasin":16770229,"navajowhite":16768685,"navy":128,"oldlace":16643558,"olive":8421376,"olivedrab":7048739,"orange":16753920,"orangered":16729344,"orchid":14315734,"palegoldenrod":15657130,"palegreen":10025880,"paleturquoise":11529966,"palevioletred":14381203,"papayawhip":16773077,"peachpuff":16767673,"peru":13468991,"pink":16761035,"plum":14524637,"powderblue":11591910,"purple":8388736,"rebeccapurple":6697881,"red":16711680,"rosybrown":12357519,"royalblue":4286945,"saddlebrown":9127187,"salmon":16416882,"sandybrown":16032864,"seagreen":3050327,"seashell":16774638,"sienna":10506797,"silver":12632256,"skyblue":8900331,"slateblue":6970061,"slategray":7372944,"slategrey":7372944,"snow":16775930,"springgreen":65407,"steelblue":4620980,"tan":13808780,"teal":32896,"thistle":14204888,"tomato":16737095,"turquoise":4251856,"violet":15631086,"wheat":16113331,"white":16777215,"whitesmoke":16119285,"yellow":16776960,"yellowgreen":10145074};const _hslA={h:0,s:0,l:0};const _hslB={h:0,s:0,l:0};function hue2rgb(p,q,t){if(t<0)t+=1;if(t>1)t-=1;if(t<1/6)return p+(q-p)*6*t;if(t<1/2)return q;if(t<2/3)return p+(q-p)*6*(2/3-t);return p}class Color{constructor(r,g,b){this.isColor=true;this.r=1;this.g=1;this.b=1;return this.set(r,g,b)}set(r,g,b){if(g===undefined&&b===undefined){const value=r;if(value&&value.isColor){this.copy(value)}else if(typeof value==="number"){this.setHex(value)}else if(typeof value==="string"){this.setStyle(value)}}else{this.setRGB(r,g,b)}return this}setScalar(scalar){this.r=scalar;this.g=scalar;this.b=scalar;return this}setHex(hex,colorSpace=SRGBColorSpace){hex=Math.floor(hex);this.r=(hex>>16&255)/255;this.g=(hex>>8&255)/255;this.b=(hex&255)/255;ColorManagement.colorSpaceToWorking(this,colorSpace);return this}setRGB(r,g,b,colorSpace=ColorManagement.workingColorSpace){this.r=r;this.g=g;this.b=b;ColorManagement.colorSpaceToWorking(this,colorSpace);return this}setHSL(h,s,l,colorSpace=ColorManagement.workingColorSpace){h=euclideanModulo(h,1);s=clamp(s,0,1);l=clamp(l,0,1);if(s===0){this.r=this.g=this.b=l}else{const p=l<=0.5?l*(1+s):l+s-l*s;const q=2*l-p;this.r=hue2rgb(q,p,h+1/3);this.g=hue2rgb(q,p,h);this.b=hue2rgb(q,p,h-1/3)}ColorManagement.colorSpaceToWorking(this,colorSpace);return this}setStyle(style,colorSpace=SRGBColorSpace){function handleAlpha(string){if(string===undefined)return;if(parseFloat(string)<1){warn("Color: Alpha component of "+style+" will be ignored.")}}let m;if(m=/^(\w+)\(([^\)]*)\)/.exec(style)){let color;const name=m[1];const components=m[2];switch(name){case"rgb":case"rgba":if(color=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)){handleAlpha(color[4]);return this.setRGB(Math.min(255,parseInt(color[1],10))/255,Math.min(255,parseInt(color[2],10))/255,Math.min(255,parseInt(color[3],10))/255,colorSpace)}if(color=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)){handleAlpha(color[4]);return this.setRGB(Math.min(100,parseInt(color[1],10))/100,Math.min(100,parseInt(color[2],10))/100,Math.min(100,parseInt(color[3],10))/100,colorSpace)}break;case"hsl":case"hsla":if(color=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)){handleAlpha(color[4]);return this.setHSL(parseFloat(color[1])/360,parseFloat(color[2])/100,parseFloat(color[3])/100,colorSpace)}break;default:warn("Color: Unknown color model "+style);}}else if(m=/^\#([A-Fa-f\d]+)$/.exec(style)){const hex=m[1];const size=hex.length;if(size===3){return this.setRGB(parseInt(hex.charAt(0),16)/15,parseInt(hex.charAt(1),16)/15,parseInt(hex.charAt(2),16)/15,colorSpace)}else if(size===6){return this.setHex(parseInt(hex,16),colorSpace)}else{warn("Color: Invalid hex color "+style)}}else if(style&&style.length>0){return this.setColorName(style,colorSpace)}return this}setColorName(style,colorSpace=SRGBColorSpace){const hex=_colorKeywords[style.toLowerCase()];if(hex!==undefined){this.setHex(hex,colorSpace)}else{warn("Color: Unknown color "+style)}return this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(color){this.r=color.r;this.g=color.g;this.b=color.b;return this}copySRGBToLinear(color){this.r=SRGBToLinear(color.r);this.g=SRGBToLinear(color.g);this.b=SRGBToLinear(color.b);return this}copyLinearToSRGB(color){this.r=LinearToSRGB(color.r);this.g=LinearToSRGB(color.g);this.b=LinearToSRGB(color.b);return this}convertSRGBToLinear(){this.copySRGBToLinear(this);return this}convertLinearToSRGB(){this.copyLinearToSRGB(this);return this}getHex(colorSpace=SRGBColorSpace){ColorManagement.workingToColorSpace(_color.copy(this),colorSpace);return Math.round(clamp(_color.r*255,0,255))*65536+Math.round(clamp(_color.g*255,0,255))*256+Math.round(clamp(_color.b*255,0,255))}getHexString(colorSpace=SRGBColorSpace){return("000000"+this.getHex(colorSpace).toString(16)).slice(-6)}getHSL(target,colorSpace=ColorManagement.workingColorSpace){ColorManagement.workingToColorSpace(_color.copy(this),colorSpace);const r=_color.r,g=_color.g,b=_color.b;const max=Math.max(r,g,b);const min=Math.min(r,g,b);let hue,saturation;const lightness=(min+max)/2;if(min===max){hue=0;saturation=0}else{const delta=max-min;saturation=lightness<=0.5?delta/(max+min):delta/(2-max-min);switch(max){case r:hue=(g-b)/delta+(g0!==value>0){this.version++}this._alphaTest=value}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(values){if(values===undefined)return;for(const key in values){const newValue=values[key];if(newValue===undefined){warn(`Material: parameter '${key}' has value of undefined.`);continue}const currentValue=this[key];if(currentValue===undefined){warn(`Material: '${key}' is not a property of THREE.${this.type}.`);continue}if(currentValue&¤tValue.isColor){currentValue.set(newValue)}else if(currentValue&¤tValue.isVector3&&newValue&&newValue.isVector3){currentValue.copy(newValue)}else{this[key]=newValue}}}toJSON(meta){const isRootObject=meta===undefined||typeof meta==="string";if(isRootObject){meta={textures:{},images:{}}}const data={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};data.uuid=this.uuid;data.type=this.type;if(this.name!=="")data.name=this.name;if(this.color&&this.color.isColor)data.color=this.color.getHex();if(this.roughness!==undefined)data.roughness=this.roughness;if(this.metalness!==undefined)data.metalness=this.metalness;if(this.sheen!==undefined)data.sheen=this.sheen;if(this.sheenColor&&this.sheenColor.isColor)data.sheenColor=this.sheenColor.getHex();if(this.sheenRoughness!==undefined)data.sheenRoughness=this.sheenRoughness;if(this.emissive&&this.emissive.isColor)data.emissive=this.emissive.getHex();if(this.emissiveIntensity!==undefined&&this.emissiveIntensity!==1)data.emissiveIntensity=this.emissiveIntensity;if(this.specular&&this.specular.isColor)data.specular=this.specular.getHex();if(this.specularIntensity!==undefined)data.specularIntensity=this.specularIntensity;if(this.specularColor&&this.specularColor.isColor)data.specularColor=this.specularColor.getHex();if(this.shininess!==undefined)data.shininess=this.shininess;if(this.clearcoat!==undefined)data.clearcoat=this.clearcoat;if(this.clearcoatRoughness!==undefined)data.clearcoatRoughness=this.clearcoatRoughness;if(this.clearcoatMap&&this.clearcoatMap.isTexture){data.clearcoatMap=this.clearcoatMap.toJSON(meta).uuid}if(this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture){data.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(meta).uuid}if(this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture){data.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(meta).uuid;data.clearcoatNormalScale=this.clearcoatNormalScale.toArray()}if(this.sheenColorMap&&this.sheenColorMap.isTexture){data.sheenColorMap=this.sheenColorMap.toJSON(meta).uuid}if(this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture){data.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(meta).uuid}if(this.dispersion!==undefined)data.dispersion=this.dispersion;if(this.iridescence!==undefined)data.iridescence=this.iridescence;if(this.iridescenceIOR!==undefined)data.iridescenceIOR=this.iridescenceIOR;if(this.iridescenceThicknessRange!==undefined)data.iridescenceThicknessRange=this.iridescenceThicknessRange;if(this.iridescenceMap&&this.iridescenceMap.isTexture){data.iridescenceMap=this.iridescenceMap.toJSON(meta).uuid}if(this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture){data.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(meta).uuid}if(this.anisotropy!==undefined)data.anisotropy=this.anisotropy;if(this.anisotropyRotation!==undefined)data.anisotropyRotation=this.anisotropyRotation;if(this.anisotropyMap&&this.anisotropyMap.isTexture){data.anisotropyMap=this.anisotropyMap.toJSON(meta).uuid}if(this.map&&this.map.isTexture)data.map=this.map.toJSON(meta).uuid;if(this.matcap&&this.matcap.isTexture)data.matcap=this.matcap.toJSON(meta).uuid;if(this.alphaMap&&this.alphaMap.isTexture)data.alphaMap=this.alphaMap.toJSON(meta).uuid;if(this.lightMap&&this.lightMap.isTexture){data.lightMap=this.lightMap.toJSON(meta).uuid;data.lightMapIntensity=this.lightMapIntensity}if(this.aoMap&&this.aoMap.isTexture){data.aoMap=this.aoMap.toJSON(meta).uuid;data.aoMapIntensity=this.aoMapIntensity}if(this.bumpMap&&this.bumpMap.isTexture){data.bumpMap=this.bumpMap.toJSON(meta).uuid;data.bumpScale=this.bumpScale}if(this.normalMap&&this.normalMap.isTexture){data.normalMap=this.normalMap.toJSON(meta).uuid;data.normalMapType=this.normalMapType;data.normalScale=this.normalScale.toArray()}if(this.displacementMap&&this.displacementMap.isTexture){data.displacementMap=this.displacementMap.toJSON(meta).uuid;data.displacementScale=this.displacementScale;data.displacementBias=this.displacementBias}if(this.roughnessMap&&this.roughnessMap.isTexture)data.roughnessMap=this.roughnessMap.toJSON(meta).uuid;if(this.metalnessMap&&this.metalnessMap.isTexture)data.metalnessMap=this.metalnessMap.toJSON(meta).uuid;if(this.emissiveMap&&this.emissiveMap.isTexture)data.emissiveMap=this.emissiveMap.toJSON(meta).uuid;if(this.specularMap&&this.specularMap.isTexture)data.specularMap=this.specularMap.toJSON(meta).uuid;if(this.specularIntensityMap&&this.specularIntensityMap.isTexture)data.specularIntensityMap=this.specularIntensityMap.toJSON(meta).uuid;if(this.specularColorMap&&this.specularColorMap.isTexture)data.specularColorMap=this.specularColorMap.toJSON(meta).uuid;if(this.envMap&&this.envMap.isTexture){data.envMap=this.envMap.toJSON(meta).uuid;if(this.combine!==undefined)data.combine=this.combine}if(this.envMapRotation!==undefined)data.envMapRotation=this.envMapRotation.toArray();if(this.envMapIntensity!==undefined)data.envMapIntensity=this.envMapIntensity;if(this.reflectivity!==undefined)data.reflectivity=this.reflectivity;if(this.refractionRatio!==undefined)data.refractionRatio=this.refractionRatio;if(this.gradientMap&&this.gradientMap.isTexture){data.gradientMap=this.gradientMap.toJSON(meta).uuid}if(this.transmission!==undefined)data.transmission=this.transmission;if(this.transmissionMap&&this.transmissionMap.isTexture)data.transmissionMap=this.transmissionMap.toJSON(meta).uuid;if(this.thickness!==undefined)data.thickness=this.thickness;if(this.thicknessMap&&this.thicknessMap.isTexture)data.thicknessMap=this.thicknessMap.toJSON(meta).uuid;if(this.attenuationDistance!==undefined&&this.attenuationDistance!==Infinity)data.attenuationDistance=this.attenuationDistance;if(this.attenuationColor!==undefined)data.attenuationColor=this.attenuationColor.getHex();if(this.size!==undefined)data.size=this.size;if(this.shadowSide!==null)data.shadowSide=this.shadowSide;if(this.sizeAttenuation!==undefined)data.sizeAttenuation=this.sizeAttenuation;if(this.blending!==NormalBlending)data.blending=this.blending;if(this.side!==FrontSide)data.side=this.side;if(this.vertexColors===true)data.vertexColors=true;if(this.opacity<1)data.opacity=this.opacity;if(this.transparent===true)data.transparent=true;if(this.blendSrc!==SrcAlphaFactor)data.blendSrc=this.blendSrc;if(this.blendDst!==OneMinusSrcAlphaFactor)data.blendDst=this.blendDst;if(this.blendEquation!==AddEquation)data.blendEquation=this.blendEquation;if(this.blendSrcAlpha!==null)data.blendSrcAlpha=this.blendSrcAlpha;if(this.blendDstAlpha!==null)data.blendDstAlpha=this.blendDstAlpha;if(this.blendEquationAlpha!==null)data.blendEquationAlpha=this.blendEquationAlpha;if(this.blendColor&&this.blendColor.isColor)data.blendColor=this.blendColor.getHex();if(this.blendAlpha!==0)data.blendAlpha=this.blendAlpha;if(this.depthFunc!==LessEqualDepth)data.depthFunc=this.depthFunc;if(this.depthTest===false)data.depthTest=this.depthTest;if(this.depthWrite===false)data.depthWrite=this.depthWrite;if(this.colorWrite===false)data.colorWrite=this.colorWrite;if(this.stencilWriteMask!==255)data.stencilWriteMask=this.stencilWriteMask;if(this.stencilFunc!==AlwaysStencilFunc)data.stencilFunc=this.stencilFunc;if(this.stencilRef!==0)data.stencilRef=this.stencilRef;if(this.stencilFuncMask!==255)data.stencilFuncMask=this.stencilFuncMask;if(this.stencilFail!==KeepStencilOp)data.stencilFail=this.stencilFail;if(this.stencilZFail!==KeepStencilOp)data.stencilZFail=this.stencilZFail;if(this.stencilZPass!==KeepStencilOp)data.stencilZPass=this.stencilZPass;if(this.stencilWrite===true)data.stencilWrite=this.stencilWrite;if(this.rotation!==undefined&&this.rotation!==0)data.rotation=this.rotation;if(this.polygonOffset===true)data.polygonOffset=true;if(this.polygonOffsetFactor!==0)data.polygonOffsetFactor=this.polygonOffsetFactor;if(this.polygonOffsetUnits!==0)data.polygonOffsetUnits=this.polygonOffsetUnits;if(this.linewidth!==undefined&&this.linewidth!==1)data.linewidth=this.linewidth;if(this.dashSize!==undefined)data.dashSize=this.dashSize;if(this.gapSize!==undefined)data.gapSize=this.gapSize;if(this.scale!==undefined)data.scale=this.scale;if(this.dithering===true)data.dithering=true;if(this.alphaTest>0)data.alphaTest=this.alphaTest;if(this.alphaHash===true)data.alphaHash=true;if(this.alphaToCoverage===true)data.alphaToCoverage=true;if(this.premultipliedAlpha===true)data.premultipliedAlpha=true;if(this.forceSinglePass===true)data.forceSinglePass=true;if(this.allowOverride===false)data.allowOverride=false;if(this.wireframe===true)data.wireframe=true;if(this.wireframeLinewidth>1)data.wireframeLinewidth=this.wireframeLinewidth;if(this.wireframeLinecap!=="round")data.wireframeLinecap=this.wireframeLinecap;if(this.wireframeLinejoin!=="round")data.wireframeLinejoin=this.wireframeLinejoin;if(this.flatShading===true)data.flatShading=true;if(this.visible===false)data.visible=false;if(this.toneMapped===false)data.toneMapped=false;if(this.fog===false)data.fog=false;if(Object.keys(this.userData).length>0)data.userData=this.userData;function extractFromCache(cache){const values=[];for(const key in cache){const data=cache[key];delete data.metadata;values.push(data)}return values}if(isRootObject){const textures=extractFromCache(meta.textures);const images=extractFromCache(meta.images);if(textures.length>0)data.textures=textures;if(images.length>0)data.images=images}return data}clone(){return new this.constructor().copy(this)}copy(source){this.name=source.name;this.blending=source.blending;this.side=source.side;this.vertexColors=source.vertexColors;this.opacity=source.opacity;this.transparent=source.transparent;this.blendSrc=source.blendSrc;this.blendDst=source.blendDst;this.blendEquation=source.blendEquation;this.blendSrcAlpha=source.blendSrcAlpha;this.blendDstAlpha=source.blendDstAlpha;this.blendEquationAlpha=source.blendEquationAlpha;this.blendColor.copy(source.blendColor);this.blendAlpha=source.blendAlpha;this.depthFunc=source.depthFunc;this.depthTest=source.depthTest;this.depthWrite=source.depthWrite;this.stencilWriteMask=source.stencilWriteMask;this.stencilFunc=source.stencilFunc;this.stencilRef=source.stencilRef;this.stencilFuncMask=source.stencilFuncMask;this.stencilFail=source.stencilFail;this.stencilZFail=source.stencilZFail;this.stencilZPass=source.stencilZPass;this.stencilWrite=source.stencilWrite;const srcPlanes=source.clippingPlanes;let dstPlanes=null;if(srcPlanes!==null){const n=srcPlanes.length;dstPlanes=new Array(n);for(let i=0;i!==n;++i){dstPlanes[i]=srcPlanes[i].clone()}}this.clippingPlanes=dstPlanes;this.clipIntersection=source.clipIntersection;this.clipShadows=source.clipShadows;this.shadowSide=source.shadowSide;this.colorWrite=source.colorWrite;this.precision=source.precision;this.polygonOffset=source.polygonOffset;this.polygonOffsetFactor=source.polygonOffsetFactor;this.polygonOffsetUnits=source.polygonOffsetUnits;this.dithering=source.dithering;this.alphaTest=source.alphaTest;this.alphaHash=source.alphaHash;this.alphaToCoverage=source.alphaToCoverage;this.premultipliedAlpha=source.premultipliedAlpha;this.forceSinglePass=source.forceSinglePass;this.allowOverride=source.allowOverride;this.visible=source.visible;this.toneMapped=source.toneMapped;this.userData=JSON.parse(JSON.stringify(source.userData));return this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(value){if(value===true)this.version++}}class MeshBasicMaterial extends Material{constructor(parameters){super();this.isMeshBasicMaterial=true;this.type="MeshBasicMaterial";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=MultiplyOperation;this.reflectivity=1;this.refractionRatio=0.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap="round";this.wireframeLinejoin="round";this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.lightMap=source.lightMap;this.lightMapIntensity=source.lightMapIntensity;this.aoMap=source.aoMap;this.aoMapIntensity=source.aoMapIntensity;this.specularMap=source.specularMap;this.alphaMap=source.alphaMap;this.envMap=source.envMap;this.envMapRotation.copy(source.envMapRotation);this.combine=source.combine;this.reflectivity=source.reflectivity;this.refractionRatio=source.refractionRatio;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.wireframeLinecap=source.wireframeLinecap;this.wireframeLinejoin=source.wireframeLinejoin;this.fog=source.fog;return this}}const _tables=_generateTables();function _generateTables(){const buffer=new ArrayBuffer(4);const floatView=new Float32Array(buffer);const uint32View=new Uint32Array(buffer);const baseTable=new Uint32Array(512);const shiftTable=new Uint32Array(512);for(let i=0;i<256;++i){const e=i-127;if(e<-27){baseTable[i]=0;baseTable[i|256]=32768;shiftTable[i]=24;shiftTable[i|256]=24}else if(e<-14){baseTable[i]=1024>>-e-14;baseTable[i|256]=1024>>-e-14|32768;shiftTable[i]=-e-1;shiftTable[i|256]=-e-1}else if(e<=15){baseTable[i]=e+15<<10;baseTable[i|256]=e+15<<10|32768;shiftTable[i]=13;shiftTable[i|256]=13}else if(e<128){baseTable[i]=31744;baseTable[i|256]=64512;shiftTable[i]=24;shiftTable[i|256]=24}else{baseTable[i]=31744;baseTable[i|256]=64512;shiftTable[i]=13;shiftTable[i|256]=13}}const mantissaTable=new Uint32Array(2048);const exponentTable=new Uint32Array(64);const offsetTable=new Uint32Array(64);for(let i=1;i<1024;++i){let m=i<<13;let e=0;while((m&8388608)===0){m<<=1;e-=8388608}m&=-8388609;e+=947912704;mantissaTable[i]=m|e}for(let i=1024;i<2048;++i){mantissaTable[i]=939524096+(i-1024<<13)}for(let i=1;i<31;++i){exponentTable[i]=i<<23}exponentTable[31]=1199570944;exponentTable[32]=2147483648;for(let i=33;i<63;++i){exponentTable[i]=2147483648+(i-32<<23)}exponentTable[63]=3347054592;for(let i=1;i<64;++i){if(i!==32){offsetTable[i]=1024}}return{floatView:floatView,uint32View:uint32View,baseTable:baseTable,shiftTable:shiftTable,mantissaTable:mantissaTable,exponentTable:exponentTable,offsetTable:offsetTable}}function toHalfFloat(val){if(Math.abs(val)>65504)warn("DataUtils.toHalfFloat(): Value out of range.");val=clamp(val,-65504,65504);_tables.floatView[0]=val;const f=_tables.uint32View[0];const e=f>>23&511;return _tables.baseTable[e]+((f&8388607)>>_tables.shiftTable[e])}function fromHalfFloat(val){const m=val>>10;_tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[m]+(val&1023)]+_tables.exponentTable[m];return _tables.floatView[0]}class DataUtils{static toHalfFloat(val){return toHalfFloat(val)}static fromHalfFloat(val){return fromHalfFloat(val)}}const _vector$9=new Vector3;const _vector2$1=new Vector2;let _id$3=0;class BufferAttribute{constructor(array,itemSize,normalized=false){if(Array.isArray(array)){throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.")}this.isBufferAttribute=true;Object.defineProperty(this,"id",{value:_id$3++});this.name="";this.array=array;this.itemSize=itemSize;this.count=array!==undefined?array.length/itemSize:0;this.normalized=normalized;this.usage=StaticDrawUsage;this.updateRanges=[];this.gpuType=FloatType;this.version=0}onUploadCallback(){}set needsUpdate(value){if(value===true)this.version++}setUsage(value){this.usage=value;return this}addUpdateRange(start,count){this.updateRanges.push({start,count})}clearUpdateRanges(){this.updateRanges.length=0}copy(source){this.name=source.name;this.array=new source.array.constructor(source.array);this.itemSize=source.itemSize;this.count=source.count;this.normalized=source.normalized;this.usage=source.usage;this.gpuType=source.gpuType;return this}copyAt(index1,attribute,index2){index1*=this.itemSize;index2*=attribute.itemSize;for(let i=0,l=this.itemSize;ipositionAttribute.count){warn("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.")}positionAttribute.needsUpdate=true}return this}computeBoundingBox(){if(this.boundingBox===null){this.boundingBox=new Box3}const position=this.attributes.position;const morphAttributesPosition=this.morphAttributes.position;if(position&&position.isGLBufferAttribute){error("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this);this.boundingBox.set(new Vector3(-Infinity,-Infinity,-Infinity),new Vector3(+Infinity,+Infinity,+Infinity));return}if(position!==undefined){this.boundingBox.setFromBufferAttribute(position);if(morphAttributesPosition){for(let i=0,il=morphAttributesPosition.length;i0)data.userData=this.userData;if(this.parameters!==undefined){const parameters=this.parameters;for(const key in parameters){if(parameters[key]!==undefined)data[key]=parameters[key]}return data}data.data={attributes:{}};const index=this.index;if(index!==null){data.data.index={type:index.array.constructor.name,array:Array.prototype.slice.call(index.array)}}const attributes=this.attributes;for(const key in attributes){const attribute=attributes[key];data.data.attributes[key]=attribute.toJSON(data.data)}const morphAttributes={};let hasMorphAttributes=false;for(const key in this.morphAttributes){const attributeArray=this.morphAttributes[key];const array=[];for(let i=0,il=attributeArray.length;i0){morphAttributes[key]=array;hasMorphAttributes=true}}if(hasMorphAttributes){data.data.morphAttributes=morphAttributes;data.data.morphTargetsRelative=this.morphTargetsRelative}const groups=this.groups;if(groups.length>0){data.data.groups=JSON.parse(JSON.stringify(groups))}const boundingSphere=this.boundingSphere;if(boundingSphere!==null){data.data.boundingSphere=boundingSphere.toJSON()}return data}clone(){return new this.constructor().copy(this)}copy(source){this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingBox=null;this.boundingSphere=null;const data={};this.name=source.name;const index=source.index;if(index!==null){this.setIndex(index.clone())}const attributes=source.attributes;for(const name in attributes){const attribute=attributes[name];this.setAttribute(name,attribute.clone(data))}const morphAttributes=source.morphAttributes;for(const name in morphAttributes){const array=[];const morphAttribute=morphAttributes[name];for(let i=0,l=morphAttribute.length;i0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;m(raycaster.far-raycaster.near)**2)return}_inverseMatrix$3.copy(matrixWorld).invert();_ray$3.copy(raycaster.ray).applyMatrix4(_inverseMatrix$3);if(geometry.boundingBox!==null){if(_ray$3.intersectsBox(geometry.boundingBox)===false)return}this._computeIntersections(raycaster,intersects,_ray$3)}_computeIntersections(raycaster,intersects,rayLocalSpace){let intersection;const geometry=this.geometry;const material=this.material;const index=geometry.index;const position=geometry.attributes.position;const uv=geometry.attributes.uv;const uv1=geometry.attributes.uv1;const normal=geometry.attributes.normal;const groups=geometry.groups;const drawRange=geometry.drawRange;if(index!==null){if(Array.isArray(material)){for(let i=0,il=groups.length;iraycaster.far)return null;return{distance:distance,point:_intersectionPointWorld.clone(),object:object}}function checkGeometryIntersection(object,material,raycaster,ray,uv,uv1,normal,a,b,c){object.getVertexPosition(a,_vA$1);object.getVertexPosition(b,_vB$1);object.getVertexPosition(c,_vC$1);const intersection=checkIntersection$1(object,material,raycaster,ray,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(intersection){const barycoord=new Vector3;Triangle.getBarycoord(_intersectionPoint,_vA$1,_vB$1,_vC$1,barycoord);if(uv){intersection.uv=Triangle.getInterpolatedAttribute(uv,a,b,c,barycoord,new Vector2)}if(uv1){intersection.uv1=Triangle.getInterpolatedAttribute(uv1,a,b,c,barycoord,new Vector2)}if(normal){intersection.normal=Triangle.getInterpolatedAttribute(normal,a,b,c,barycoord,new Vector3);if(intersection.normal.dot(ray.direction)>0){intersection.normal.multiplyScalar(-1)}}const face={a:a,b:b,c:c,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,face.normal);intersection.face=face;intersection.barycoord=barycoord}return intersection}class BoxGeometry extends BufferGeometry{constructor(width=1,height=1,depth=1,widthSegments=1,heightSegments=1,depthSegments=1){super();this.type="BoxGeometry";this.parameters={width:width,height:height,depth:depth,widthSegments:widthSegments,heightSegments:heightSegments,depthSegments:depthSegments};const scope=this;widthSegments=Math.floor(widthSegments);heightSegments=Math.floor(heightSegments);depthSegments=Math.floor(depthSegments);const indices=[];const vertices=[];const normals=[];const uvs=[];let numberOfVertices=0;let groupStart=0;buildPlane("z","y","x",-1,-1,depth,height,width,depthSegments,heightSegments,0);buildPlane("z","y","x",1,-1,depth,height,-width,depthSegments,heightSegments,1);buildPlane("x","z","y",1,1,width,depth,height,widthSegments,depthSegments,2);buildPlane("x","z","y",1,-1,width,depth,-height,widthSegments,depthSegments,3);buildPlane("x","y","z",1,-1,width,height,depth,widthSegments,heightSegments,4);buildPlane("x","y","z",-1,-1,width,height,-depth,widthSegments,heightSegments,5);this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2));function buildPlane(u,v,w,udir,vdir,width,height,depth,gridX,gridY,materialIndex){const segmentWidth=width/gridX;const segmentHeight=height/gridY;const widthHalf=width/2;const heightHalf=height/2;const depthHalf=depth/2;const gridX1=gridX+1;const gridY1=gridY+1;let vertexCounter=0;let groupCount=0;const vector=new Vector3;for(let iy=0;iy0?1:-1;normals.push(vector.x,vector.y,vector.z);uvs.push(ix/gridX);uvs.push(1-iy/gridY);vertexCounter+=1}}for(let iy=0;iy0)data.defines=this.defines;data.vertexShader=this.vertexShader;data.fragmentShader=this.fragmentShader;data.lights=this.lights;data.clipping=this.clipping;const extensions={};for(const key in this.extensions){if(this.extensions[key]===true)extensions[key]=true}if(Object.keys(extensions).length>0)data.extensions=extensions;return data}}class Camera extends Object3D{constructor(){super();this.isCamera=true;this.type="Camera";this.matrixWorldInverse=new Matrix4;this.projectionMatrix=new Matrix4;this.projectionMatrixInverse=new Matrix4;this.coordinateSystem=WebGLCoordinateSystem;this._reversedDepth=false}get reversedDepth(){return this._reversedDepth}copy(source,recursive){super.copy(source,recursive);this.matrixWorldInverse.copy(source.matrixWorldInverse);this.projectionMatrix.copy(source.projectionMatrix);this.projectionMatrixInverse.copy(source.projectionMatrixInverse);this.coordinateSystem=source.coordinateSystem;return this}getWorldDirection(target){return super.getWorldDirection(target).negate()}updateMatrixWorld(force){super.updateMatrixWorld(force);this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(updateParents,updateChildren){super.updateWorldMatrix(updateParents,updateChildren);this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const _v3$1=new Vector3;const _minTarget=new Vector2;const _maxTarget=new Vector2;class PerspectiveCamera extends Camera{constructor(fov=50,aspect=1,near=0.1,far=2000){super();this.isPerspectiveCamera=true;this.type="PerspectiveCamera";this.fov=fov;this.zoom=1;this.near=near;this.far=far;this.focus=10;this.aspect=aspect;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}copy(source,recursive){super.copy(source,recursive);this.fov=source.fov;this.zoom=source.zoom;this.near=source.near;this.far=source.far;this.focus=source.focus;this.aspect=source.aspect;this.view=source.view===null?null:Object.assign({},source.view);this.filmGauge=source.filmGauge;this.filmOffset=source.filmOffset;return this}setFocalLength(focalLength){const vExtentSlope=0.5*this.getFilmHeight()/focalLength;this.fov=RAD2DEG*2*Math.atan(vExtentSlope);this.updateProjectionMatrix()}getFocalLength(){const vExtentSlope=Math.tan(DEG2RAD*0.5*this.fov);return 0.5*this.getFilmHeight()/vExtentSlope}getEffectiveFOV(){return RAD2DEG*2*Math.atan(Math.tan(DEG2RAD*0.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(distance,minTarget,maxTarget){_v3$1.set(-1,-1,0.5).applyMatrix4(this.projectionMatrixInverse);minTarget.set(_v3$1.x,_v3$1.y).multiplyScalar(-distance/_v3$1.z);_v3$1.set(1,1,0.5).applyMatrix4(this.projectionMatrixInverse);maxTarget.set(_v3$1.x,_v3$1.y).multiplyScalar(-distance/_v3$1.z)}getViewSize(distance,target){this.getViewBounds(distance,_minTarget,_maxTarget);return target.subVectors(_maxTarget,_minTarget)}setViewOffset(fullWidth,fullHeight,x,y,width,height){this.aspect=fullWidth/fullHeight;if(this.view===null){this.view={enabled:true,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}}this.view.enabled=true;this.view.fullWidth=fullWidth;this.view.fullHeight=fullHeight;this.view.offsetX=x;this.view.offsetY=y;this.view.width=width;this.view.height=height;this.updateProjectionMatrix()}clearViewOffset(){if(this.view!==null){this.view.enabled=false}this.updateProjectionMatrix()}updateProjectionMatrix(){const near=this.near;let top=near*Math.tan(DEG2RAD*0.5*this.fov)/this.zoom;let height=2*top;let width=this.aspect*height;let left=-0.5*width;const view=this.view;if(this.view!==null&&this.view.enabled){const fullWidth=view.fullWidth,fullHeight=view.fullHeight;left+=view.offsetX*width/fullWidth;top-=view.offsetY*height/fullHeight;width*=view.width/fullWidth;height*=view.height/fullHeight}const skew=this.filmOffset;if(skew!==0)left+=near*skew/this.getFilmWidth();this.projectionMatrix.makePerspective(left,left+width,top,top-height,near,this.far,this.coordinateSystem,this.reversedDepth);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(meta){const data=super.toJSON(meta);data.object.fov=this.fov;data.object.zoom=this.zoom;data.object.near=this.near;data.object.far=this.far;data.object.focus=this.focus;data.object.aspect=this.aspect;if(this.view!==null)data.object.view=Object.assign({},this.view);data.object.filmGauge=this.filmGauge;data.object.filmOffset=this.filmOffset;return data}}const fov=-90;const aspect=1;class CubeCamera extends Object3D{constructor(near,far,renderTarget){super();this.type="CubeCamera";this.renderTarget=renderTarget;this.coordinateSystem=null;this.activeMipmapLevel=0;const cameraPX=new PerspectiveCamera(fov,aspect,near,far);cameraPX.layers=this.layers;this.add(cameraPX);const cameraNX=new PerspectiveCamera(fov,aspect,near,far);cameraNX.layers=this.layers;this.add(cameraNX);const cameraPY=new PerspectiveCamera(fov,aspect,near,far);cameraPY.layers=this.layers;this.add(cameraPY);const cameraNY=new PerspectiveCamera(fov,aspect,near,far);cameraNY.layers=this.layers;this.add(cameraNY);const cameraPZ=new PerspectiveCamera(fov,aspect,near,far);cameraPZ.layers=this.layers;this.add(cameraPZ);const cameraNZ=new PerspectiveCamera(fov,aspect,near,far);cameraNZ.layers=this.layers;this.add(cameraNZ)}updateCoordinateSystem(){const coordinateSystem=this.coordinateSystem;const cameras=this.children.concat();const[cameraPX,cameraNX,cameraPY,cameraNY,cameraPZ,cameraNZ]=cameras;for(const camera of cameras)this.remove(camera);if(coordinateSystem===WebGLCoordinateSystem){cameraPX.up.set(0,1,0);cameraPX.lookAt(1,0,0);cameraNX.up.set(0,1,0);cameraNX.lookAt(-1,0,0);cameraPY.up.set(0,0,-1);cameraPY.lookAt(0,1,0);cameraNY.up.set(0,0,1);cameraNY.lookAt(0,-1,0);cameraPZ.up.set(0,1,0);cameraPZ.lookAt(0,0,1);cameraNZ.up.set(0,1,0);cameraNZ.lookAt(0,0,-1)}else if(coordinateSystem===WebGPUCoordinateSystem){cameraPX.up.set(0,-1,0);cameraPX.lookAt(-1,0,0);cameraNX.up.set(0,-1,0);cameraNX.lookAt(1,0,0);cameraPY.up.set(0,0,1);cameraPY.lookAt(0,1,0);cameraNY.up.set(0,0,-1);cameraNY.lookAt(0,-1,0);cameraPZ.up.set(0,-1,0);cameraPZ.lookAt(0,0,1);cameraNZ.up.set(0,-1,0);cameraNZ.lookAt(0,0,-1)}else{throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+coordinateSystem)}for(const camera of cameras){this.add(camera);camera.updateMatrixWorld()}}update(renderer,scene){if(this.parent===null)this.updateMatrixWorld();const{renderTarget,activeMipmapLevel}=this;if(this.coordinateSystem!==renderer.coordinateSystem){this.coordinateSystem=renderer.coordinateSystem;this.updateCoordinateSystem()}const[cameraPX,cameraNX,cameraPY,cameraNY,cameraPZ,cameraNZ]=this.children;const currentRenderTarget=renderer.getRenderTarget();const currentActiveCubeFace=renderer.getActiveCubeFace();const currentActiveMipmapLevel=renderer.getActiveMipmapLevel();const currentXrEnabled=renderer.xr.enabled;renderer.xr.enabled=false;const generateMipmaps=renderTarget.texture.generateMipmaps;renderTarget.texture.generateMipmaps=false;renderer.setRenderTarget(renderTarget,0,activeMipmapLevel);renderer.render(scene,cameraPX);renderer.setRenderTarget(renderTarget,1,activeMipmapLevel);renderer.render(scene,cameraNX);renderer.setRenderTarget(renderTarget,2,activeMipmapLevel);renderer.render(scene,cameraPY);renderer.setRenderTarget(renderTarget,3,activeMipmapLevel);renderer.render(scene,cameraNY);renderer.setRenderTarget(renderTarget,4,activeMipmapLevel);renderer.render(scene,cameraPZ);renderTarget.texture.generateMipmaps=generateMipmaps;renderer.setRenderTarget(renderTarget,5,activeMipmapLevel);renderer.render(scene,cameraNZ);renderer.setRenderTarget(currentRenderTarget,currentActiveCubeFace,currentActiveMipmapLevel);renderer.xr.enabled=currentXrEnabled;renderTarget.texture.needsPMREMUpdate=true}}class CubeTexture extends Texture{constructor(images=[],mapping=CubeReflectionMapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace){super(images,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace);this.isCubeTexture=true;this.flipY=false}get images(){return this.image}set images(value){this.image=value}}class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(size=1,options={}){super(size,size,options);this.isWebGLCubeRenderTarget=true;const image={width:size,height:size,depth:1};const images=[image,image,image,image,image,image];this.texture=new CubeTexture(images);this._setTextureOptions(options);this.texture.isRenderTargetTexture=true}fromEquirectangularTexture(renderer,texture){this.texture.type=texture.type;this.texture.colorSpace=texture.colorSpace;this.texture.generateMipmaps=texture.generateMipmaps;this.texture.minFilter=texture.minFilter;this.texture.magFilter=texture.magFilter;const shader={uniforms:{tEquirect:{value:null}},vertexShader:` varying vec3 vWorldDirection; vec3 transformDirection( in vec3 dir, in mat4 matrix ) { return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); } void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include } `,fragmentShader:` uniform sampler2D tEquirect; varying vec3 vWorldDirection; #include void main() { vec3 direction = normalize( vWorldDirection ); vec2 sampleUV = equirectUv( direction ); gl_FragColor = texture2D( tEquirect, sampleUV ); } `};const geometry=new BoxGeometry(5,5,5);const material=new ShaderMaterial({name:"CubemapFromEquirect",uniforms:cloneUniforms(shader.uniforms),vertexShader:shader.vertexShader,fragmentShader:shader.fragmentShader,side:BackSide,blending:NoBlending});material.uniforms.tEquirect.value=texture;const mesh=new Mesh(geometry,material);const currentMinFilter=texture.minFilter;if(texture.minFilter===LinearMipmapLinearFilter)texture.minFilter=LinearFilter;const camera=new CubeCamera(1,10,this);camera.update(renderer,mesh);texture.minFilter=currentMinFilter;mesh.geometry.dispose();mesh.material.dispose();return this}clear(renderer,color=true,depth=true,stencil=true){const currentRenderTarget=renderer.getRenderTarget();for(let i=0;i<6;i++){renderer.setRenderTarget(this,i);renderer.clear(color,depth,stencil)}renderer.setRenderTarget(currentRenderTarget)}}class Group extends Object3D{constructor(){super();this.isGroup=true;this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null;this._grip=null;this._hand=null}getHandSpace(){if(this._hand===null){this._hand=new Group;this._hand.matrixAutoUpdate=false;this._hand.visible=false;this._hand.joints={};this._hand.inputState={pinching:false}}return this._hand}getTargetRaySpace(){if(this._targetRay===null){this._targetRay=new Group;this._targetRay.matrixAutoUpdate=false;this._targetRay.visible=false;this._targetRay.hasLinearVelocity=false;this._targetRay.linearVelocity=new Vector3;this._targetRay.hasAngularVelocity=false;this._targetRay.angularVelocity=new Vector3}return this._targetRay}getGripSpace(){if(this._grip===null){this._grip=new Group;this._grip.matrixAutoUpdate=false;this._grip.visible=false;this._grip.hasLinearVelocity=false;this._grip.linearVelocity=new Vector3;this._grip.hasAngularVelocity=false;this._grip.angularVelocity=new Vector3}return this._grip}dispatchEvent(event){if(this._targetRay!==null){this._targetRay.dispatchEvent(event)}if(this._grip!==null){this._grip.dispatchEvent(event)}if(this._hand!==null){this._hand.dispatchEvent(event)}return this}connect(inputSource){if(inputSource&&inputSource.hand){const hand=this._hand;if(hand){for(const inputjoint of inputSource.hand.values()){this._getHandJoint(hand,inputjoint)}}}this.dispatchEvent({type:"connected",data:inputSource});return this}disconnect(inputSource){this.dispatchEvent({type:"disconnected",data:inputSource});if(this._targetRay!==null){this._targetRay.visible=false}if(this._grip!==null){this._grip.visible=false}if(this._hand!==null){this._hand.visible=false}return this}update(inputSource,frame,referenceSpace){let inputPose=null;let gripPose=null;let handPose=null;const targetRay=this._targetRay;const grip=this._grip;const hand=this._hand;if(inputSource&&frame.session.visibilityState!=="visible-blurred"){if(hand&&inputSource.hand){handPose=true;for(const inputjoint of inputSource.hand.values()){const jointPose=frame.getJointPose(inputjoint,referenceSpace);const joint=this._getHandJoint(hand,inputjoint);if(jointPose!==null){joint.matrix.fromArray(jointPose.transform.matrix);joint.matrix.decompose(joint.position,joint.rotation,joint.scale);joint.matrixWorldNeedsUpdate=true;joint.jointRadius=jointPose.radius}joint.visible=jointPose!==null}const indexTip=hand.joints["index-finger-tip"];const thumbTip=hand.joints["thumb-tip"];const distance=indexTip.position.distanceTo(thumbTip.position);const distanceToPinch=0.02;const threshold=0.005;if(hand.inputState.pinching&&distance>distanceToPinch+threshold){hand.inputState.pinching=false;this.dispatchEvent({type:"pinchend",handedness:inputSource.handedness,target:this})}else if(!hand.inputState.pinching&&distance<=distanceToPinch-threshold){hand.inputState.pinching=true;this.dispatchEvent({type:"pinchstart",handedness:inputSource.handedness,target:this})}}else{if(grip!==null&&inputSource.gripSpace){gripPose=frame.getPose(inputSource.gripSpace,referenceSpace);if(gripPose!==null){grip.matrix.fromArray(gripPose.transform.matrix);grip.matrix.decompose(grip.position,grip.rotation,grip.scale);grip.matrixWorldNeedsUpdate=true;if(gripPose.linearVelocity){grip.hasLinearVelocity=true;grip.linearVelocity.copy(gripPose.linearVelocity)}else{grip.hasLinearVelocity=false}if(gripPose.angularVelocity){grip.hasAngularVelocity=true;grip.angularVelocity.copy(gripPose.angularVelocity)}else{grip.hasAngularVelocity=false}}}}if(targetRay!==null){inputPose=frame.getPose(inputSource.targetRaySpace,referenceSpace);if(inputPose===null&&gripPose!==null){inputPose=gripPose}if(inputPose!==null){targetRay.matrix.fromArray(inputPose.transform.matrix);targetRay.matrix.decompose(targetRay.position,targetRay.rotation,targetRay.scale);targetRay.matrixWorldNeedsUpdate=true;if(inputPose.linearVelocity){targetRay.hasLinearVelocity=true;targetRay.linearVelocity.copy(inputPose.linearVelocity)}else{targetRay.hasLinearVelocity=false}if(inputPose.angularVelocity){targetRay.hasAngularVelocity=true;targetRay.angularVelocity.copy(inputPose.angularVelocity)}else{targetRay.hasAngularVelocity=false}this.dispatchEvent(_moveEvent)}}}if(targetRay!==null){targetRay.visible=inputPose!==null}if(grip!==null){grip.visible=gripPose!==null}if(hand!==null){hand.visible=handPose!==null}return this}_getHandJoint(hand,inputjoint){if(hand.joints[inputjoint.jointName]===undefined){const joint=new Group;joint.matrixAutoUpdate=false;joint.visible=false;hand.joints[inputjoint.jointName]=joint;hand.add(joint)}return hand.joints[inputjoint.jointName]}}class FogExp2{constructor(color,density=0.00025){this.isFogExp2=true;this.name="";this.color=new Color(color);this.density=density}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(color,near=1,far=1000){this.isFog=true;this.name="";this.color=new Color(color);this.near=near;this.far=far}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super();this.isScene=true;this.type="Scene";this.background=null;this.environment=null;this.fog=null;this.backgroundBlurriness=0;this.backgroundIntensity=1;this.backgroundRotation=new Euler;this.environmentIntensity=1;this.environmentRotation=new Euler;this.overrideMaterial=null;if(typeof __THREE_DEVTOOLS__!=="undefined"){__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}}copy(source,recursive){super.copy(source,recursive);if(source.background!==null)this.background=source.background.clone();if(source.environment!==null)this.environment=source.environment.clone();if(source.fog!==null)this.fog=source.fog.clone();this.backgroundBlurriness=source.backgroundBlurriness;this.backgroundIntensity=source.backgroundIntensity;this.backgroundRotation.copy(source.backgroundRotation);this.environmentIntensity=source.environmentIntensity;this.environmentRotation.copy(source.environmentRotation);if(source.overrideMaterial!==null)this.overrideMaterial=source.overrideMaterial.clone();this.matrixAutoUpdate=source.matrixAutoUpdate;return this}toJSON(meta){const data=super.toJSON(meta);if(this.fog!==null)data.object.fog=this.fog.toJSON();if(this.backgroundBlurriness>0)data.object.backgroundBlurriness=this.backgroundBlurriness;if(this.backgroundIntensity!==1)data.object.backgroundIntensity=this.backgroundIntensity;data.object.backgroundRotation=this.backgroundRotation.toArray();if(this.environmentIntensity!==1)data.object.environmentIntensity=this.environmentIntensity;data.object.environmentRotation=this.environmentRotation.toArray();return data}}class InterleavedBuffer{constructor(array,stride){this.isInterleavedBuffer=true;this.array=array;this.stride=stride;this.count=array!==undefined?array.length/stride:0;this.usage=StaticDrawUsage;this.updateRanges=[];this.version=0;this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(value){if(value===true)this.version++}setUsage(value){this.usage=value;return this}addUpdateRange(start,count){this.updateRanges.push({start,count})}clearUpdateRanges(){this.updateRanges.length=0}copy(source){this.array=new source.array.constructor(source.array);this.count=source.count;this.stride=source.stride;this.usage=source.usage;return this}copyAt(index1,interleavedBuffer,index2){index1*=this.stride;index2*=interleavedBuffer.stride;for(let i=0,l=this.stride;iraycaster.far)return;intersects.push({distance:distance,point:_intersectPoint.clone(),uv:Triangle.getInterpolation(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(source,recursive){super.copy(source,recursive);if(source.center!==undefined)this.center.copy(source.center);this.material=source.material;return this}}function transformVertex(vertexPosition,mvPosition,center,scale,sin,cos){_alignedPosition.subVectors(vertexPosition,center).addScalar(0.5).multiply(scale);if(sin!==undefined){_rotatedPosition.x=cos*_alignedPosition.x-sin*_alignedPosition.y;_rotatedPosition.y=sin*_alignedPosition.x+cos*_alignedPosition.y}else{_rotatedPosition.copy(_alignedPosition)}vertexPosition.copy(mvPosition);vertexPosition.x+=_rotatedPosition.x;vertexPosition.y+=_rotatedPosition.y;vertexPosition.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3;const _v2$1=new Vector3;class LOD extends Object3D{constructor(){super();this.isLOD=true;this._currentLevel=0;this.type="LOD";Object.defineProperties(this,{levels:{enumerable:true,value:[]}});this.autoUpdate=true}copy(source){super.copy(source,false);const levels=source.levels;for(let i=0,l=levels.length;i0){let i,l;for(i=1,l=levels.length;i0){_v1$2.setFromMatrixPosition(this.matrixWorld);const distance=raycaster.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(distance).raycast(raycaster,intersects)}}update(camera){const levels=this.levels;if(levels.length>1){_v1$2.setFromMatrixPosition(camera.matrixWorld);_v2$1.setFromMatrixPosition(this.matrixWorld);const distance=_v1$2.distanceTo(_v2$1)/camera.zoom;levels[0].object.visible=true;let i,l;for(i=1,l=levels.length;i=levelDistance){levels[i-1].object.visible=false;levels[i].object.visible=true}else{break}}this._currentLevel=i-1;for(;i1){return null}return target.copy(line.start).addScaledVector(direction,t)}intersectsLine(line){const startSign=this.distanceToPoint(line.start);const endSign=this.distanceToPoint(line.end);return startSign<0&&endSign>0||endSign<0&&startSign>0}intersectsBox(box){return box.intersectsPlane(this)}intersectsSphere(sphere){return sphere.intersectsPlane(this)}coplanarPoint(target){return target.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(matrix,optionalNormalMatrix){const normalMatrix=optionalNormalMatrix||_normalMatrix.getNormalMatrix(matrix);const referencePoint=this.coplanarPoint(_vector1).applyMatrix4(matrix);const normal=this.normal.applyMatrix3(normalMatrix).normalize();this.constant=-referencePoint.dot(normal);return this}translate(offset){this.constant-=offset.dot(this.normal);return this}equals(plane){return plane.normal.equals(this.normal)&&plane.constant===this.constant}clone(){return new this.constructor().copy(this)}}const _sphere$3=new Sphere;const _defaultSpriteCenter=new Vector2(0.5,0.5);const _vector$6=new Vector3;class Frustum{constructor(p0=new Plane,p1=new Plane,p2=new Plane,p3=new Plane,p4=new Plane,p5=new Plane){this.planes=[p0,p1,p2,p3,p4,p5]}set(p0,p1,p2,p3,p4,p5){const planes=this.planes;planes[0].copy(p0);planes[1].copy(p1);planes[2].copy(p2);planes[3].copy(p3);planes[4].copy(p4);planes[5].copy(p5);return this}copy(frustum){const planes=this.planes;for(let i=0;i<6;i++){planes[i].copy(frustum.planes[i])}return this}setFromProjectionMatrix(m,coordinateSystem=WebGLCoordinateSystem,reversedDepth=false){const planes=this.planes;const me=m.elements;const me0=me[0],me1=me[1],me2=me[2],me3=me[3];const me4=me[4],me5=me[5],me6=me[6],me7=me[7];const me8=me[8],me9=me[9],me10=me[10],me11=me[11];const me12=me[12],me13=me[13],me14=me[14],me15=me[15];planes[0].setComponents(me3-me0,me7-me4,me11-me8,me15-me12).normalize();planes[1].setComponents(me3+me0,me7+me4,me11+me8,me15+me12).normalize();planes[2].setComponents(me3+me1,me7+me5,me11+me9,me15+me13).normalize();planes[3].setComponents(me3-me1,me7-me5,me11-me9,me15-me13).normalize();if(reversedDepth){planes[4].setComponents(me2,me6,me10,me14).normalize();planes[5].setComponents(me3-me2,me7-me6,me11-me10,me15-me14).normalize()}else{planes[4].setComponents(me3-me2,me7-me6,me11-me10,me15-me14).normalize();if(coordinateSystem===WebGLCoordinateSystem){planes[5].setComponents(me3+me2,me7+me6,me11+me10,me15+me14).normalize()}else if(coordinateSystem===WebGPUCoordinateSystem){planes[5].setComponents(me2,me6,me10,me14).normalize()}else{throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+coordinateSystem)}}return this}intersectsObject(object){if(object.boundingSphere!==undefined){if(object.boundingSphere===null)object.computeBoundingSphere();_sphere$3.copy(object.boundingSphere).applyMatrix4(object.matrixWorld)}else{const geometry=object.geometry;if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_sphere$3.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld)}return this.intersectsSphere(_sphere$3)}intersectsSprite(sprite){_sphere$3.center.set(0,0,0);const offset=_defaultSpriteCenter.distanceTo(sprite.center);_sphere$3.radius=0.7071067811865476+offset;_sphere$3.applyMatrix4(sprite.matrixWorld);return this.intersectsSphere(_sphere$3)}intersectsSphere(sphere){const planes=this.planes;const center=sphere.center;const negRadius=-sphere.radius;for(let i=0;i<6;i++){const distance=planes[i].distanceToPoint(center);if(distance0?box.max.x:box.min.x;_vector$6.y=plane.normal.y>0?box.max.y:box.min.y;_vector$6.z=plane.normal.z>0?box.max.z:box.min.z;if(plane.distanceToPoint(_vector$6)<0){return false}}return true}containsPoint(point){const planes=this.planes;for(let i=0;i<6;i++){if(planes[i].distanceToPoint(point)<0){return false}}return true}clone(){return new this.constructor().copy(this)}}const _projScreenMatrix$2=new Matrix4;const _frustum$1=new Frustum;class FrustumArray{constructor(){this.coordinateSystem=WebGLCoordinateSystem}intersectsObject(object,cameraArray){if(!cameraArray.isArrayCamera||cameraArray.cameras.length===0){return false}for(let i=0;i=pool.length){pool.push({start:-1,count:-1,z:-1,index:-1})}const item=pool[this.index];list.push(item);this.index++;item.start=start;item.count=count;item.z=z;item.index=index}reset(){this.list.length=0;this.index=0}}const _matrix$1=new Matrix4;const _whiteColor=new Color(1,1,1);const _frustum=new Frustum;const _frustumArray=new FrustumArray;const _box$1=new Box3;const _sphere$2=new Sphere;const _vector$5=new Vector3;const _forward$1=new Vector3;const _temp=new Vector3;const _renderList=new MultiDrawRenderList;const _mesh=new Mesh;const _batchIntersects=[];function copyAttributeData(src,target,targetOffset=0){const itemSize=target.itemSize;if(src.isInterleavedBufferAttribute||src.array.constructor!==target.array.constructor){const vertexCount=src.count;for(let i=0;i65535?new Uint32Array(maxIndexCount):new Uint16Array(maxIndexCount);geometry.setIndex(new BufferAttribute(indexArray,1))}this._geometryInitialized=true}}_validateGeometry(geometry){const batchGeometry=this.geometry;if(Boolean(geometry.getIndex())!==Boolean(batchGeometry.getIndex())){throw new Error("THREE.BatchedMesh: All geometries must consistently have \"index\".")}for(const attributeName in batchGeometry.attributes){if(!geometry.hasAttribute(attributeName)){throw new Error(`THREE.BatchedMesh: Added geometry missing "${attributeName}". All geometries must have consistent attributes.`)}const srcAttribute=geometry.getAttribute(attributeName);const dstAttribute=batchGeometry.getAttribute(attributeName);if(srcAttribute.itemSize!==dstAttribute.itemSize||srcAttribute.normalized!==dstAttribute.normalized){throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}}validateInstanceId(instanceId){const instanceInfo=this._instanceInfo;if(instanceId<0||instanceId>=instanceInfo.length||instanceInfo[instanceId].active===false){throw new Error(`THREE.BatchedMesh: Invalid instanceId ${instanceId}. Instance is either out of range or has been deleted.`)}}validateGeometryId(geometryId){const geometryInfoList=this._geometryInfo;if(geometryId<0||geometryId>=geometryInfoList.length||geometryInfoList[geometryId].active===false){throw new Error(`THREE.BatchedMesh: Invalid geometryId ${geometryId}. Geometry is either out of range or has been deleted.`)}}setCustomSort(func){this.customSort=func;return this}computeBoundingBox(){if(this.boundingBox===null){this.boundingBox=new Box3}const boundingBox=this.boundingBox;const instanceInfo=this._instanceInfo;boundingBox.makeEmpty();for(let i=0,l=instanceInfo.length;i=this.maxInstanceCount;if(atCapacity&&this._availableInstanceIds.length===0){throw new Error("THREE.BatchedMesh: Maximum item count reached.")}const instanceInfo={visible:true,active:true,geometryIndex:geometryId};let drawId=null;if(this._availableInstanceIds.length>0){this._availableInstanceIds.sort(ascIdSort);drawId=this._availableInstanceIds.shift();this._instanceInfo[drawId]=instanceInfo}else{drawId=this._instanceInfo.length;this._instanceInfo.push(instanceInfo)}const matricesTexture=this._matricesTexture;_matrix$1.identity().toArray(matricesTexture.image.data,drawId*16);matricesTexture.needsUpdate=true;const colorsTexture=this._colorsTexture;if(colorsTexture){_whiteColor.toArray(colorsTexture.image.data,drawId*4);colorsTexture.needsUpdate=true}this._visibilityChanged=true;return drawId}addGeometry(geometry,reservedVertexCount=-1,reservedIndexCount=-1){this._initializeGeometry(geometry);this._validateGeometry(geometry);const geometryInfo={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:true};const geometryInfoList=this._geometryInfo;geometryInfo.vertexStart=this._nextVertexStart;geometryInfo.reservedVertexCount=reservedVertexCount===-1?geometry.getAttribute("position").count:reservedVertexCount;const index=geometry.getIndex();const hasIndex=index!==null;if(hasIndex){geometryInfo.indexStart=this._nextIndexStart;geometryInfo.reservedIndexCount=reservedIndexCount===-1?index.count:reservedIndexCount}if(geometryInfo.indexStart!==-1&&geometryInfo.indexStart+geometryInfo.reservedIndexCount>this._maxIndexCount||geometryInfo.vertexStart+geometryInfo.reservedVertexCount>this._maxVertexCount){throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.")}let geometryId;if(this._availableGeometryIds.length>0){this._availableGeometryIds.sort(ascIdSort);geometryId=this._availableGeometryIds.shift();geometryInfoList[geometryId]=geometryInfo}else{geometryId=this._geometryCount;this._geometryCount++;geometryInfoList.push(geometryInfo)}this.setGeometryAt(geometryId,geometry);this._nextIndexStart=geometryInfo.indexStart+geometryInfo.reservedIndexCount;this._nextVertexStart=geometryInfo.vertexStart+geometryInfo.reservedVertexCount;return geometryId}setGeometryAt(geometryId,geometry){if(geometryId>=this._geometryCount){throw new Error("THREE.BatchedMesh: Maximum geometry count reached.")}this._validateGeometry(geometry);const batchGeometry=this.geometry;const hasIndex=batchGeometry.getIndex()!==null;const dstIndex=batchGeometry.getIndex();const srcIndex=geometry.getIndex();const geometryInfo=this._geometryInfo[geometryId];if(hasIndex&&srcIndex.count>geometryInfo.reservedIndexCount||geometry.attributes.position.count>geometryInfo.reservedVertexCount){throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.")}const vertexStart=geometryInfo.vertexStart;const reservedVertexCount=geometryInfo.reservedVertexCount;geometryInfo.vertexCount=geometry.getAttribute("position").count;for(const attributeName in batchGeometry.attributes){const srcAttribute=geometry.getAttribute(attributeName);const dstAttribute=batchGeometry.getAttribute(attributeName);copyAttributeData(srcAttribute,dstAttribute,vertexStart);const itemSize=srcAttribute.itemSize;for(let i=srcAttribute.count,l=reservedVertexCount;i=geometryInfoList.length||geometryInfoList[geometryId].active===false){return this}const instanceInfo=this._instanceInfo;for(let i=0,l=instanceInfo.length;ii).sort((a,b)=>{return geometryInfoList[a].vertexStart-geometryInfoList[b].vertexStart});const geometry=this.geometry;for(let i=0,l=geometryInfoList.length;i=this._geometryCount){return null}const geometry=this.geometry;const geometryInfo=this._geometryInfo[geometryId];if(geometryInfo.boundingBox===null){const box=new Box3;const index=geometry.index;const position=geometry.attributes.position;for(let i=geometryInfo.start,l=geometryInfo.start+geometryInfo.count;i=this._geometryCount){return null}const geometry=this.geometry;const geometryInfo=this._geometryInfo[geometryId];if(geometryInfo.boundingSphere===null){const sphere=new Sphere;this.getBoundingBoxAt(geometryId,_box$1);_box$1.getCenter(sphere.center);const index=geometry.index;const position=geometry.attributes.position;let maxRadiusSq=0;for(let i=geometryInfo.start,l=geometryInfo.start+geometryInfo.count;iinfo.active);const requiredVertexLength=Math.max(...validRanges.map(range=>range.vertexStart+range.reservedVertexCount));if(requiredVertexLength>maxVertexCount){throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${maxIndexCount}. Cannot shrink further.`)}if(this.geometry.index){const requiredIndexLength=Math.max(...validRanges.map(range=>range.indexStart+range.reservedIndexCount));if(requiredIndexLength>maxIndexCount){throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${maxIndexCount}. Cannot shrink further.`)}}const oldGeometry=this.geometry;oldGeometry.dispose();this._maxVertexCount=maxVertexCount;this._maxIndexCount=maxIndexCount;if(this._geometryInitialized){this._geometryInitialized=false;this.geometry=new BufferGeometry;this._initializeGeometry(oldGeometry)}const geometry=this.geometry;if(oldGeometry.index){copyArrayContents(oldGeometry.index.array,geometry.index.array)}for(const key in oldGeometry.attributes){copyArrayContents(oldGeometry.attributes[key].array,geometry.attributes[key].array)}}raycast(raycaster,intersects){const instanceInfo=this._instanceInfo;const geometryInfoList=this._geometryInfo;const matrixWorld=this.matrixWorld;const batchGeometry=this.geometry;_mesh.material=this.material;_mesh.geometry.index=batchGeometry.index;_mesh.geometry.attributes=batchGeometry.attributes;if(_mesh.geometry.boundingBox===null){_mesh.geometry.boundingBox=new Box3}if(_mesh.geometry.boundingSphere===null){_mesh.geometry.boundingSphere=new Sphere}for(let i=0,l=instanceInfo.length;i({...info,boundingBox:info.boundingBox!==null?info.boundingBox.clone():null,boundingSphere:info.boundingSphere!==null?info.boundingSphere.clone():null}));this._instanceInfo=source._instanceInfo.map(info=>({...info}));this._availableInstanceIds=source._availableInstanceIds.slice();this._availableGeometryIds=source._availableGeometryIds.slice();this._nextIndexStart=source._nextIndexStart;this._nextVertexStart=source._nextVertexStart;this._geometryCount=source._geometryCount;this._maxInstanceCount=source._maxInstanceCount;this._maxVertexCount=source._maxVertexCount;this._maxIndexCount=source._maxIndexCount;this._geometryInitialized=source._geometryInitialized;this._multiDrawCounts=source._multiDrawCounts.slice();this._multiDrawStarts=source._multiDrawStarts.slice();this._indirectTexture=source._indirectTexture.clone();this._indirectTexture.image.data=this._indirectTexture.image.data.slice();this._matricesTexture=source._matricesTexture.clone();this._matricesTexture.image.data=this._matricesTexture.image.data.slice();if(this._colorsTexture!==null){this._colorsTexture=source._colorsTexture.clone();this._colorsTexture.image.data=this._colorsTexture.image.data.slice()}return this}dispose(){this.geometry.dispose();this._matricesTexture.dispose();this._matricesTexture=null;this._indirectTexture.dispose();this._indirectTexture=null;if(this._colorsTexture!==null){this._colorsTexture.dispose();this._colorsTexture=null}}onBeforeRender(renderer,scene,camera,geometry,material){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects){return}const index=geometry.getIndex();const bytesPerElement=index===null?1:index.array.BYTES_PER_ELEMENT;const instanceInfo=this._instanceInfo;const multiDrawStarts=this._multiDrawStarts;const multiDrawCounts=this._multiDrawCounts;const geometryInfoList=this._geometryInfo;const perObjectFrustumCulled=this.perObjectFrustumCulled;const indirectTexture=this._indirectTexture;const indirectArray=indirectTexture.image.data;const frustum=camera.isArrayCamera?_frustumArray:_frustum;if(perObjectFrustumCulled&&!camera.isArrayCamera){_matrix$1.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse).multiply(this.matrixWorld);_frustum.setFromProjectionMatrix(_matrix$1,camera.coordinateSystem,camera.reversedDepth)}let multiDrawCount=0;if(this.sortObjects){_matrix$1.copy(this.matrixWorld).invert();_vector$5.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_matrix$1);_forward$1.set(0,0,-1).transformDirection(camera.matrixWorld).transformDirection(_matrix$1);for(let i=0,l=instanceInfo.length;i0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;mthresholdSq)return;_intersectPointOnRay.applyMatrix4(object.matrixWorld);const distance=raycaster.ray.origin.distanceTo(_intersectPointOnRay);if(distanceraycaster.far)return;return{distance:distance,point:_intersectPointOnSegment.clone().applyMatrix4(object.matrixWorld),index:i,face:null,faceIndex:null,barycoord:null,object:object}}const _start=new Vector3;const _end=new Vector3;class LineSegments extends Line{constructor(geometry,material){super(geometry,material);this.isLineSegments=true;this.type="LineSegments"}computeLineDistances(){const geometry=this.geometry;if(geometry.index===null){const positionAttribute=geometry.attributes.position;const lineDistances=[];for(let i=0,l=positionAttribute.count;i0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;mraycaster.far)return;intersects.push({distance:distance,distanceToRay:Math.sqrt(rayPointDistanceSq),point:intersectPoint,index:index,face:null,faceIndex:null,barycoord:null,object:object})}}class VideoTexture extends Texture{constructor(video,mapping,wrapS,wrapT,magFilter=LinearFilter,minFilter=LinearFilter,format,type,anisotropy){super(video,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isVideoTexture=true;this.generateMipmaps=false;this._requestVideoFrameCallbackId=0;const scope=this;function updateVideo(){scope.needsUpdate=true;scope._requestVideoFrameCallbackId=video.requestVideoFrameCallback(updateVideo)}if("requestVideoFrameCallback"in video){this._requestVideoFrameCallbackId=video.requestVideoFrameCallback(updateVideo)}}clone(){return new this.constructor(this.image).copy(this)}update(){const video=this.image;const hasVideoFrameCallback=("requestVideoFrameCallback"in video);if(hasVideoFrameCallback===false&&video.readyState>=video.HAVE_CURRENT_DATA){this.needsUpdate=true}}dispose(){if(this._requestVideoFrameCallbackId!==0){this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId);this._requestVideoFrameCallbackId=0}super.dispose()}}class VideoFrameTexture extends VideoTexture{constructor(mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy){super({},mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isVideoFrameTexture=true}update(){}clone(){return new this.constructor().copy(this)}setFrame(frame){this.image=frame;this.needsUpdate=true}}class FramebufferTexture extends Texture{constructor(width,height){super({width,height});this.isFramebufferTexture=true;this.magFilter=NearestFilter;this.minFilter=NearestFilter;this.generateMipmaps=false;this.needsUpdate=true}}class CompressedTexture extends Texture{constructor(mipmaps,width,height,format,type,mapping,wrapS,wrapT,magFilter,minFilter,anisotropy,colorSpace){super(null,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace);this.isCompressedTexture=true;this.image={width:width,height:height};this.mipmaps=mipmaps;this.flipY=false;this.generateMipmaps=false}}class CompressedArrayTexture extends CompressedTexture{constructor(mipmaps,width,height,depth,format,type){super(mipmaps,width,height,format,type);this.isCompressedArrayTexture=true;this.image.depth=depth;this.wrapR=ClampToEdgeWrapping;this.layerUpdates=new Set}addLayerUpdate(layerIndex){this.layerUpdates.add(layerIndex)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(images,format,type){super(undefined,images[0].width,images[0].height,format,type,CubeReflectionMapping);this.isCompressedCubeTexture=true;this.isCubeTexture=true;this.image=images}}class CanvasTexture extends Texture{constructor(canvas,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy){super(canvas,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isCanvasTexture=true;this.needsUpdate=true}}class DepthTexture extends Texture{constructor(width,height,type=UnsignedIntType,mapping,wrapS,wrapT,magFilter=NearestFilter,minFilter=NearestFilter,anisotropy,format=DepthFormat,depth=1){if(format!==DepthFormat&&format!==DepthStencilFormat){throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat")}const image={width:width,height:height,depth:depth};super(image,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isDepthTexture=true;this.flipY=false;this.generateMipmaps=false;this.compareFunction=null}copy(source){super.copy(source);this.source=new Source(Object.assign({},source.image));this.compareFunction=source.compareFunction;return this}toJSON(meta){const data=super.toJSON(meta);if(this.compareFunction!==null)data.compareFunction=this.compareFunction;return data}}class CubeDepthTexture extends DepthTexture{constructor(size,type=UnsignedIntType,mapping=CubeReflectionMapping,wrapS,wrapT,magFilter=NearestFilter,minFilter=NearestFilter,anisotropy,format=DepthFormat){const image={width:size,height:size,depth:1};const images=[image,image,image,image,image,image];super(size,size,type,mapping,wrapS,wrapT,magFilter,minFilter,anisotropy,format);this.image=images;this.isCubeDepthTexture=true;this.isCubeTexture=true}get images(){return this.image}set images(value){this.image=value}}class ExternalTexture extends Texture{constructor(sourceTexture=null){super();this.sourceTexture=sourceTexture;this.isExternalTexture=true}copy(source){super.copy(source);this.sourceTexture=source.sourceTexture;return this}}class CapsuleGeometry extends BufferGeometry{constructor(radius=1,height=1,capSegments=4,radialSegments=8,heightSegments=1){super();this.type="CapsuleGeometry";this.parameters={radius:radius,height:height,capSegments:capSegments,radialSegments:radialSegments,heightSegments:heightSegments};height=Math.max(0,height);capSegments=Math.max(1,Math.floor(capSegments));radialSegments=Math.max(3,Math.floor(radialSegments));heightSegments=Math.max(1,Math.floor(heightSegments));const indices=[];const vertices=[];const normals=[];const uvs=[];const halfHeight=height/2;const capArcLength=Math.PI/2*radius;const cylinderPartLength=height;const totalArcLength=2*capArcLength+cylinderPartLength;const numVerticalSegments=capSegments*2+heightSegments;const verticesPerRow=radialSegments+1;const normal=new Vector3;const vertex=new Vector3;for(let iy=0;iy<=numVerticalSegments;iy++){let currentArcLength=0;let profileY=0;let profileRadius=0;let normalYComponent=0;if(iy<=capSegments){const segmentProgress=iy/capSegments;const angle=segmentProgress*Math.PI/2;profileY=-halfHeight-radius*Math.cos(angle);profileRadius=radius*Math.sin(angle);normalYComponent=-radius*Math.cos(angle);currentArcLength=segmentProgress*capArcLength}else if(iy<=capSegments+heightSegments){const segmentProgress=(iy-capSegments)/heightSegments;profileY=-halfHeight+segmentProgress*height;profileRadius=radius;normalYComponent=0;currentArcLength=capArcLength+segmentProgress*cylinderPartLength}else{const segmentProgress=(iy-capSegments-heightSegments)/capSegments;const angle=segmentProgress*Math.PI/2;profileY=halfHeight+radius*Math.sin(angle);profileRadius=radius*Math.cos(angle);normalYComponent=radius*Math.sin(angle);currentArcLength=capArcLength+cylinderPartLength+segmentProgress*capArcLength}const v=Math.max(0,Math.min(1,currentArcLength/totalArcLength));let uOffset=0;if(iy===0){uOffset=0.5/radialSegments}else if(iy===numVerticalSegments){uOffset=-0.5/radialSegments}for(let ix=0;ix<=radialSegments;ix++){const u=ix/radialSegments;const theta=u*Math.PI*2;const sinTheta=Math.sin(theta);const cosTheta=Math.cos(theta);vertex.x=-profileRadius*cosTheta;vertex.y=profileY;vertex.z=profileRadius*sinTheta;vertices.push(vertex.x,vertex.y,vertex.z);normal.set(-profileRadius*cosTheta,normalYComponent,profileRadius*sinTheta);normal.normalize();normals.push(normal.x,normal.y,normal.z);uvs.push(u+uOffset,v)}if(iy>0){const prevIndexRow=(iy-1)*verticesPerRow;for(let ix=0;ix0)generateCap(true);if(radiusBottom>0)generateCap(false)}this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2));function generateTorso(){const normal=new Vector3;const vertex=new Vector3;let groupCount=0;const slope=(radiusBottom-radiusTop)/height;for(let y=0;y<=heightSegments;y++){const indexRow=[];const v=y/heightSegments;const radius=v*(radiusBottom-radiusTop)+radiusTop;for(let x=0;x<=radialSegments;x++){const u=x/radialSegments;const theta=u*thetaLength+thetaStart;const sinTheta=Math.sin(theta);const cosTheta=Math.cos(theta);vertex.x=radius*sinTheta;vertex.y=-v*height+halfHeight;vertex.z=radius*cosTheta;vertices.push(vertex.x,vertex.y,vertex.z);normal.set(sinTheta,slope,cosTheta).normalize();normals.push(normal.x,normal.y,normal.z);uvs.push(u,1-v);indexRow.push(index++)}indexArray.push(indexRow)}for(let x=0;x0||y!==0){indices.push(a,b,d);groupCount+=3}if(radiusBottom>0||y!==heightSegments-1){indices.push(b,c,d);groupCount+=3}}}scope.addGroup(groupStart,groupCount,0);groupStart+=groupCount}function generateCap(top){const centerIndexStart=index;const uv=new Vector2;const vertex=new Vector3;let groupCount=0;const radius=top===true?radiusTop:radiusBottom;const sign=top===true?1:-1;for(let x=1;x<=radialSegments;x++){vertices.push(0,halfHeight*sign,0);normals.push(0,sign,0);uvs.push(0.5,0.5);index++}const centerIndexEnd=index;for(let x=0;x<=radialSegments;x++){const u=x/radialSegments;const theta=u*thetaLength+thetaStart;const cosTheta=Math.cos(theta);const sinTheta=Math.sin(theta);vertex.x=radius*sinTheta;vertex.y=halfHeight*sign;vertex.z=radius*cosTheta;vertices.push(vertex.x,vertex.y,vertex.z);normals.push(0,sign,0);uv.x=cosTheta*0.5+0.5;uv.y=sinTheta*0.5*sign+0.5;uvs.push(uv.x,uv.y);index++}for(let x=0;x0.9&&min<0.1){if(x0<0.2)uvBuffer[i+0]+=1;if(x1<0.2)uvBuffer[i+2]+=1;if(x2<0.2)uvBuffer[i+4]+=1}}}function pushVertex(vertex){vertexBuffer.push(vertex.x,vertex.y,vertex.z)}function getVertexByIndex(index,vertex){const stride=index*3;vertex.x=vertices[stride+0];vertex.y=vertices[stride+1];vertex.z=vertices[stride+2]}function correctUVs(){const a=new Vector3;const b=new Vector3;const c=new Vector3;const centroid=new Vector3;const uvA=new Vector2;const uvB=new Vector2;const uvC=new Vector2;for(let i=0,j=0;i0){high=i-1}else{high=i;break}}i=high;if(arcLengths[i]===targetArcLength){return i/(il-1)}const lengthBefore=arcLengths[i];const lengthAfter=arcLengths[i+1];const segmentLength=lengthAfter-lengthBefore;const segmentFraction=(targetArcLength-lengthBefore)/segmentLength;const t=(i+segmentFraction)/(il-1);return t}getTangent(t,optionalTarget){const delta=0.0001;let t1=t-delta;let t2=t+delta;if(t1<0)t1=0;if(t2>1)t2=1;const pt1=this.getPoint(t1);const pt2=this.getPoint(t2);const tangent=optionalTarget||(pt1.isVector2?new Vector2:new Vector3);tangent.copy(pt2).sub(pt1).normalize();return tangent}getTangentAt(u,optionalTarget){const t=this.getUtoTmapping(u);return this.getTangent(t,optionalTarget)}computeFrenetFrames(segments,closed=false){const normal=new Vector3;const tangents=[];const normals=[];const binormals=[];const vec=new Vector3;const mat=new Matrix4;for(let i=0;i<=segments;i++){const u=i/segments;tangents[i]=this.getTangentAt(u,new Vector3)}normals[0]=new Vector3;binormals[0]=new Vector3;let min=Number.MAX_VALUE;const tx=Math.abs(tangents[0].x);const ty=Math.abs(tangents[0].y);const tz=Math.abs(tangents[0].z);if(tx<=min){min=tx;normal.set(1,0,0)}if(ty<=min){min=ty;normal.set(0,1,0)}if(tz<=min){normal.set(0,0,1)}vec.crossVectors(tangents[0],normal).normalize();normals[0].crossVectors(tangents[0],vec);binormals[0].crossVectors(tangents[0],normals[0]);for(let i=1;i<=segments;i++){normals[i]=normals[i-1].clone();binormals[i]=binormals[i-1].clone();vec.crossVectors(tangents[i-1],tangents[i]);if(vec.length()>Number.EPSILON){vec.normalize();const theta=Math.acos(clamp(tangents[i-1].dot(tangents[i]),-1,1));normals[i].applyMatrix4(mat.makeRotationAxis(vec,theta))}binormals[i].crossVectors(tangents[i],normals[i])}if(closed===true){let theta=Math.acos(clamp(normals[0].dot(normals[segments]),-1,1));theta/=segments;if(tangents[0].dot(vec.crossVectors(normals[0],normals[segments]))>0){theta=-theta}for(let i=1;i<=segments;i++){normals[i].applyMatrix4(mat.makeRotationAxis(tangents[i],theta*i));binormals[i].crossVectors(tangents[i],normals[i])}}return{tangents:tangents,normals:normals,binormals:binormals}}clone(){return new this.constructor().copy(this)}copy(source){this.arcLengthDivisions=source.arcLengthDivisions;return this}toJSON(){const data={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};data.arcLengthDivisions=this.arcLengthDivisions;data.type=this.type;return data}fromJSON(json){this.arcLengthDivisions=json.arcLengthDivisions;return this}}class EllipseCurve extends Curve{constructor(aX=0,aY=0,xRadius=1,yRadius=1,aStartAngle=0,aEndAngle=Math.PI*2,aClockwise=false,aRotation=0){super();this.isEllipseCurve=true;this.type="EllipseCurve";this.aX=aX;this.aY=aY;this.xRadius=xRadius;this.yRadius=yRadius;this.aStartAngle=aStartAngle;this.aEndAngle=aEndAngle;this.aClockwise=aClockwise;this.aRotation=aRotation}getPoint(t,optionalTarget=new Vector2){const point=optionalTarget;const twoPi=Math.PI*2;let deltaAngle=this.aEndAngle-this.aStartAngle;const samePoints=Math.abs(deltaAngle)twoPi)deltaAngle-=twoPi;if(deltaAngle0?0:(Math.floor(Math.abs(intPoint)/l)+1)*l}else if(weight===0&&intPoint===l-1){intPoint=l-2;weight=1}let p0,p3;if(this.closed||intPoint>0){p0=points[(intPoint-1)%l]}else{tmp.subVectors(points[0],points[1]).add(points[0]);p0=tmp}const p1=points[intPoint%l];const p2=points[(intPoint+1)%l];if(this.closed||intPoint+2points.length-2?points.length-1:intPoint+1];const p3=points[intPoint>points.length-3?points.length-1:intPoint+2];point.set(CatmullRom(weight,p0.x,p1.x,p2.x,p3.x),CatmullRom(weight,p0.y,p1.y,p2.y,p3.y));return point}copy(source){super.copy(source);this.points=[];for(let i=0,l=source.points.length;i=d){const diff=curveLengths[i]-d;const curve=this.curves[i];const segmentLength=curve.getLength();const u=segmentLength===0?0:1-diff/segmentLength;return curve.getPointAt(u,optionalTarget)}i++}return null}getLength(){const lens=this.getCurveLengths();return lens[lens.length-1]}updateArcLengths(){this.needsUpdate=true;this.cacheLengths=null;this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length){return this.cacheLengths}const lengths=[];let sums=0;for(let i=0,l=this.curves.length;i1&&!points[points.length-1].equals(points[0])){points.push(points[0])}return points}copy(source){super.copy(source);this.curves=[];for(let i=0,l=source.curves.length;i0){const firstPoint=curve.getPoint(0);if(!firstPoint.equals(this.currentPoint)){this.lineTo(firstPoint.x,firstPoint.y)}}this.curves.push(curve);const lastPoint=curve.getPoint(1);this.currentPoint.copy(lastPoint);return this}copy(source){super.copy(source);this.currentPoint.copy(source.currentPoint);return this}toJSON(){const data=super.toJSON();data.currentPoint=this.currentPoint.toArray();return data}fromJSON(json){super.fromJSON(json);this.currentPoint.fromArray(json.currentPoint);return this}}class Shape extends Path{constructor(points){super(points);this.uuid=generateUUID();this.type="Shape";this.holes=[]}getPointsHoles(divisions){const holesPts=[];for(let i=0,l=this.holes.length;i80*dim){minX=data[0];minY=data[1];let maxX=minX;let maxY=minY;for(let i=dim;imaxX)maxX=x;if(y>maxY)maxY=y}invSize=Math.max(maxX-minX,maxY-minY);invSize=invSize!==0?32767/invSize:0}earcutLinked(outerNode,triangles,dim,minX,minY,invSize,0);return triangles}function linkedList(data,start,end,dim,clockwise){let last;if(clockwise===signedArea(data,start,end,dim)>0){for(let i=start;i=start;i-=dim)last=insertNode(i/dim|0,data[i],data[i+1],last)}if(last&&equals(last,last.next)){removeNode(last);last=last.next}return last}function filterPoints(start,end){if(!start)return start;if(!end)end=start;let p=start,again;do{again=false;if(!p.steiner&&(equals(p,p.next)||area(p.prev,p,p.next)===0)){removeNode(p);p=end=p.prev;if(p===p.next)break;again=true}else{p=p.next}}while(again||p!==end);return end}function earcutLinked(ear,triangles,dim,minX,minY,invSize,pass){if(!ear)return;if(!pass&&invSize)indexCurve(ear,minX,minY,invSize);let stop=ear;while(ear.prev!==ear.next){const prev=ear.prev;const next=ear.next;if(invSize?isEarHashed(ear,minX,minY,invSize):isEar(ear)){triangles.push(prev.i,ear.i,next.i);removeNode(ear);ear=next.next;stop=next.next;continue}ear=next;if(ear===stop){if(!pass){earcutLinked(filterPoints(ear),triangles,dim,minX,minY,invSize,1)}else if(pass===1){ear=cureLocalIntersections(filterPoints(ear),triangles);earcutLinked(ear,triangles,dim,minX,minY,invSize,2)}else if(pass===2){splitEarcut(ear,triangles,dim,minX,minY,invSize)}break}}}function isEar(ear){const a=ear.prev,b=ear,c=ear.next;if(area(a,b,c)>=0)return false;const ax=a.x,bx=b.x,cx=c.x,ay=a.y,by=b.y,cy=c.y;const x0=Math.min(ax,bx,cx),y0=Math.min(ay,by,cy),x1=Math.max(ax,bx,cx),y1=Math.max(ay,by,cy);let p=c.next;while(p!==a){if(p.x>=x0&&p.x<=x1&&p.y>=y0&&p.y<=y1&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,p.x,p.y)&&area(p.prev,p,p.next)>=0)return false;p=p.next}return true}function isEarHashed(ear,minX,minY,invSize){const a=ear.prev,b=ear,c=ear.next;if(area(a,b,c)>=0)return false;const ax=a.x,bx=b.x,cx=c.x,ay=a.y,by=b.y,cy=c.y;const x0=Math.min(ax,bx,cx),y0=Math.min(ay,by,cy),x1=Math.max(ax,bx,cx),y1=Math.max(ay,by,cy);const minZ=zOrder(x0,y0,minX,minY,invSize),maxZ=zOrder(x1,y1,minX,minY,invSize);let p=ear.prevZ,n=ear.nextZ;while(p&&p.z>=minZ&&n&&n.z<=maxZ){if(p.x>=x0&&p.x<=x1&&p.y>=y0&&p.y<=y1&&p!==a&&p!==c&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,p.x,p.y)&&area(p.prev,p,p.next)>=0)return false;p=p.prevZ;if(n.x>=x0&&n.x<=x1&&n.y>=y0&&n.y<=y1&&n!==a&&n!==c&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,n.x,n.y)&&area(n.prev,n,n.next)>=0)return false;n=n.nextZ}while(p&&p.z>=minZ){if(p.x>=x0&&p.x<=x1&&p.y>=y0&&p.y<=y1&&p!==a&&p!==c&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,p.x,p.y)&&area(p.prev,p,p.next)>=0)return false;p=p.prevZ}while(n&&n.z<=maxZ){if(n.x>=x0&&n.x<=x1&&n.y>=y0&&n.y<=y1&&n!==a&&n!==c&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,n.x,n.y)&&area(n.prev,n,n.next)>=0)return false;n=n.nextZ}return true}function cureLocalIntersections(start,triangles){let p=start;do{const a=p.prev,b=p.next.next;if(!equals(a,b)&&intersects(a,p,p.next,b)&&locallyInside(a,b)&&locallyInside(b,a)){triangles.push(a.i,p.i,b.i);removeNode(p);removeNode(p.next);p=start=b}p=p.next}while(p!==start);return filterPoints(p)}function splitEarcut(start,triangles,dim,minX,minY,invSize){let a=start;do{let b=a.next.next;while(b!==a.prev){if(a.i!==b.i&&isValidDiagonal(a,b)){let c=splitPolygon(a,b);a=filterPoints(a,a.next);c=filterPoints(c,c.next);earcutLinked(a,triangles,dim,minX,minY,invSize,0);earcutLinked(c,triangles,dim,minX,minY,invSize,0);return}b=b.next}a=a.next}while(a!==start)}function eliminateHoles(data,holeIndices,outerNode,dim){const queue=[];for(let i=0,len=holeIndices.length;i=p.next.y&&p.next.y!==p.y){const x=p.x+(hy-p.y)*(p.next.x-p.x)/(p.next.y-p.y);if(x<=hx&&x>qx){qx=x;m=p.x=p.x&&p.x>=mx&&hx!==p.x&&pointInTriangle(hym.x||p.x===m.x&§orContainsSector(m,p)))){m=p;tanMin=tan}}p=p.next}while(p!==stop);return m}function sectorContainsSector(m,p){return area(m.prev,m,p.prev)<0&&area(p.next,m,m.next)<0}function indexCurve(start,minX,minY,invSize){let p=start;do{if(p.z===0)p.z=zOrder(p.x,p.y,minX,minY,invSize);p.prevZ=p.prev;p.nextZ=p.next;p=p.next}while(p!==start);p.prevZ.nextZ=null;p.prevZ=null;sortLinked(p)}function sortLinked(list){let numMerges;let inSize=1;do{let p=list;let e;list=null;let tail=null;numMerges=0;while(p){numMerges++;let q=p;let pSize=0;for(let i=0;i0||qSize>0&&q){if(pSize!==0&&(qSize===0||!q||p.z<=q.z)){e=p;p=p.nextZ;pSize--}else{e=q;q=q.nextZ;qSize--}if(tail)tail.nextZ=e;else list=e;e.prevZ=tail;tail=e}p=q}tail.nextZ=null;inSize*=2}while(numMerges>1);return list}function zOrder(x,y,minX,minY,invSize){x=(x-minX)*invSize|0;y=(y-minY)*invSize|0;x=(x|x<<8)&16711935;x=(x|x<<4)&252645135;x=(x|x<<2)&858993459;x=(x|x<<1)&1431655765;y=(y|y<<8)&16711935;y=(y|y<<4)&252645135;y=(y|y<<2)&858993459;y=(y|y<<1)&1431655765;return x|y<<1}function getLeftmost(start){let p=start,leftmost=start;do{if(p.x=(ax-px)*(cy-py)&&(ax-px)*(by-py)>=(bx-px)*(ay-py)&&(bx-px)*(cy-py)>=(cx-px)*(by-py)}function pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,px,py){return!(ax===px&&ay===py)&&pointInTriangle(ax,ay,bx,by,cx,cy,px,py)}function isValidDiagonal(a,b){return a.next.i!==b.i&&a.prev.i!==b.i&&!intersectsPolygon(a,b)&&(locallyInside(a,b)&&locallyInside(b,a)&&middleInside(a,b)&&(area(a.prev,a,b.prev)||area(a,b.prev,b))||equals(a,b)&&area(a.prev,a,a.next)>0&&area(b.prev,b,b.next)>0)}function area(p,q,r){return(q.y-p.y)*(r.x-q.x)-(q.x-p.x)*(r.y-q.y)}function equals(p1,p2){return p1.x===p2.x&&p1.y===p2.y}function intersects(p1,q1,p2,q2){const o1=sign(area(p1,q1,p2));const o2=sign(area(p1,q1,q2));const o3=sign(area(p2,q2,p1));const o4=sign(area(p2,q2,q1));if(o1!==o2&&o3!==o4)return true;if(o1===0&&onSegment(p1,p2,q1))return true;if(o2===0&&onSegment(p1,q2,q1))return true;if(o3===0&&onSegment(p2,p1,q2))return true;if(o4===0&&onSegment(p2,q1,q2))return true;return false}function onSegment(p,q,r){return q.x<=Math.max(p.x,r.x)&&q.x>=Math.min(p.x,r.x)&&q.y<=Math.max(p.y,r.y)&&q.y>=Math.min(p.y,r.y)}function sign(num){return num>0?1:num<0?-1:0}function intersectsPolygon(a,b){let p=a;do{if(p.i!==a.i&&p.next.i!==a.i&&p.i!==b.i&&p.next.i!==b.i&&intersects(p,p.next,a,b))return true;p=p.next}while(p!==a);return false}function locallyInside(a,b){return area(a.prev,a,a.next)<0?area(a,b,a.next)>=0&&area(a,a.prev,b)>=0:area(a,b,a.prev)<0||area(a,a.next,b)<0}function middleInside(a,b){let p=a;let inside=false;const px=(a.x+b.x)/2;const py=(a.y+b.y)/2;do{if(p.y>py!==p.next.y>py&&p.next.y!==p.y&&px<(p.next.x-p.x)*(py-p.y)/(p.next.y-p.y)+p.x)inside=!inside;p=p.next}while(p!==a);return inside}function splitPolygon(a,b){const a2=createNode(a.i,a.x,a.y),b2=createNode(b.i,b.x,b.y),an=a.next,bp=b.prev;a.next=b;b.prev=a;a2.next=an;an.prev=a2;b2.next=a2;a2.prev=b2;bp.next=b2;b2.prev=bp;return b2}function insertNode(i,x,y,last){const p=createNode(i,x,y);if(!last){p.prev=p;p.next=p}else{p.next=last.next;p.prev=last;last.next.prev=p;last.next=p}return p}function removeNode(p){p.next.prev=p.prev;p.prev.next=p.next;if(p.prevZ)p.prevZ.nextZ=p.nextZ;if(p.nextZ)p.nextZ.prevZ=p.prevZ}function createNode(i,x,y){return{i,x,y,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:false}}function signedArea(data,start,end,dim){let sum=0;for(let i=start,j=end-dim;i2&&points[l-1].equals(points[0])){points.pop()}}function addContour(vertices,contour){for(let i=0;iNumber.EPSILON){const v_prev_len=Math.sqrt(v_prev_lensq);const v_next_len=Math.sqrt(v_next_x*v_next_x+v_next_y*v_next_y);const ptPrevShift_x=inPrev.x-v_prev_y/v_prev_len;const ptPrevShift_y=inPrev.y+v_prev_x/v_prev_len;const ptNextShift_x=inNext.x-v_next_y/v_next_len;const ptNextShift_y=inNext.y+v_next_x/v_next_len;const sf=((ptNextShift_x-ptPrevShift_x)*v_next_y-(ptNextShift_y-ptPrevShift_y)*v_next_x)/(v_prev_x*v_next_y-v_prev_y*v_next_x);v_trans_x=ptPrevShift_x+v_prev_x*sf-inPt.x;v_trans_y=ptPrevShift_y+v_prev_y*sf-inPt.y;const v_trans_lensq=v_trans_x*v_trans_x+v_trans_y*v_trans_y;if(v_trans_lensq<=2){return new Vector2(v_trans_x,v_trans_y)}else{shrink_by=Math.sqrt(v_trans_lensq/2)}}else{let direction_eq=false;if(v_prev_x>Number.EPSILON){if(v_next_x>Number.EPSILON){direction_eq=true}}else{if(v_prev_x<-Number.EPSILON){if(v_next_x<-Number.EPSILON){direction_eq=true}}else{if(Math.sign(v_prev_y)===Math.sign(v_next_y)){direction_eq=true}}}if(direction_eq){v_trans_x=-v_prev_y;v_trans_y=v_prev_x;shrink_by=Math.sqrt(v_prev_lensq)}else{v_trans_x=v_prev_x;v_trans_y=v_prev_y;shrink_by=Math.sqrt(v_prev_lensq/2)}}return new Vector2(v_trans_x/shrink_by,v_trans_y/shrink_by)}const contourMovements=[];for(let i=0,il=contour.length,j=il-1,k=i+1;i=0;b--){const t=b/bevelSegments;const z=bevelThickness*Math.cos(t*Math.PI/2);const bs=bevelSize*Math.sin(t*Math.PI/2)+bevelOffset;for(let i=0,il=contour.length;i=0){const j=i;let k=i-1;if(k<0)k=contour.length-1;for(let s=0,sl=steps+bevelSegments*2;s0)indices.push(a,b,d);if(iy!==heightSegments-1||thetaEnd0!==value>0){this.version++}this._anisotropy=value}get clearcoat(){return this._clearcoat}set clearcoat(value){if(this._clearcoat>0!==value>0){this.version++}this._clearcoat=value}get iridescence(){return this._iridescence}set iridescence(value){if(this._iridescence>0!==value>0){this.version++}this._iridescence=value}get dispersion(){return this._dispersion}set dispersion(value){if(this._dispersion>0!==value>0){this.version++}this._dispersion=value}get sheen(){return this._sheen}set sheen(value){if(this._sheen>0!==value>0){this.version++}this._sheen=value}get transmission(){return this._transmission}set transmission(value){if(this._transmission>0!==value>0){this.version++}this._transmission=value}copy(source){super.copy(source);this.defines={"STANDARD":"","PHYSICAL":""};this.anisotropy=source.anisotropy;this.anisotropyRotation=source.anisotropyRotation;this.anisotropyMap=source.anisotropyMap;this.clearcoat=source.clearcoat;this.clearcoatMap=source.clearcoatMap;this.clearcoatRoughness=source.clearcoatRoughness;this.clearcoatRoughnessMap=source.clearcoatRoughnessMap;this.clearcoatNormalMap=source.clearcoatNormalMap;this.clearcoatNormalScale.copy(source.clearcoatNormalScale);this.dispersion=source.dispersion;this.ior=source.ior;this.iridescence=source.iridescence;this.iridescenceMap=source.iridescenceMap;this.iridescenceIOR=source.iridescenceIOR;this.iridescenceThicknessRange=[...source.iridescenceThicknessRange];this.iridescenceThicknessMap=source.iridescenceThicknessMap;this.sheen=source.sheen;this.sheenColor.copy(source.sheenColor);this.sheenColorMap=source.sheenColorMap;this.sheenRoughness=source.sheenRoughness;this.sheenRoughnessMap=source.sheenRoughnessMap;this.transmission=source.transmission;this.transmissionMap=source.transmissionMap;this.thickness=source.thickness;this.thicknessMap=source.thicknessMap;this.attenuationDistance=source.attenuationDistance;this.attenuationColor.copy(source.attenuationColor);this.specularIntensity=source.specularIntensity;this.specularIntensityMap=source.specularIntensityMap;this.specularColor.copy(source.specularColor);this.specularColorMap=source.specularColorMap;return this}}class MeshPhongMaterial extends Material{constructor(parameters){super();this.isMeshPhongMaterial=true;this.type="MeshPhongMaterial";this.color=new Color(16777215);this.specular=new Color(1118481);this.shininess=30;this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=MultiplyOperation;this.reflectivity=1;this.refractionRatio=0.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap="round";this.wireframeLinejoin="round";this.flatShading=false;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.specular.copy(source.specular);this.shininess=source.shininess;this.map=source.map;this.lightMap=source.lightMap;this.lightMapIntensity=source.lightMapIntensity;this.aoMap=source.aoMap;this.aoMapIntensity=source.aoMapIntensity;this.emissive.copy(source.emissive);this.emissiveMap=source.emissiveMap;this.emissiveIntensity=source.emissiveIntensity;this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.specularMap=source.specularMap;this.alphaMap=source.alphaMap;this.envMap=source.envMap;this.envMapRotation.copy(source.envMapRotation);this.combine=source.combine;this.reflectivity=source.reflectivity;this.refractionRatio=source.refractionRatio;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.wireframeLinecap=source.wireframeLinecap;this.wireframeLinejoin=source.wireframeLinejoin;this.flatShading=source.flatShading;this.fog=source.fog;return this}}class MeshToonMaterial extends Material{constructor(parameters){super();this.isMeshToonMaterial=true;this.defines={"TOON":""};this.type="MeshToonMaterial";this.color=new Color(16777215);this.map=null;this.gradientMap=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap="round";this.wireframeLinejoin="round";this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.gradientMap=source.gradientMap;this.lightMap=source.lightMap;this.lightMapIntensity=source.lightMapIntensity;this.aoMap=source.aoMap;this.aoMapIntensity=source.aoMapIntensity;this.emissive.copy(source.emissive);this.emissiveMap=source.emissiveMap;this.emissiveIntensity=source.emissiveIntensity;this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.alphaMap=source.alphaMap;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.wireframeLinecap=source.wireframeLinecap;this.wireframeLinejoin=source.wireframeLinejoin;this.fog=source.fog;return this}}class MeshNormalMaterial extends Material{constructor(parameters){super();this.isMeshNormalMaterial=true;this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.flatShading=false;this.setValues(parameters)}copy(source){super.copy(source);this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.flatShading=source.flatShading;return this}}class MeshLambertMaterial extends Material{constructor(parameters){super();this.isMeshLambertMaterial=true;this.type="MeshLambertMaterial";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=MultiplyOperation;this.reflectivity=1;this.refractionRatio=0.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap="round";this.wireframeLinejoin="round";this.flatShading=false;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.lightMap=source.lightMap;this.lightMapIntensity=source.lightMapIntensity;this.aoMap=source.aoMap;this.aoMapIntensity=source.aoMapIntensity;this.emissive.copy(source.emissive);this.emissiveMap=source.emissiveMap;this.emissiveIntensity=source.emissiveIntensity;this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.specularMap=source.specularMap;this.alphaMap=source.alphaMap;this.envMap=source.envMap;this.envMapRotation.copy(source.envMapRotation);this.combine=source.combine;this.reflectivity=source.reflectivity;this.refractionRatio=source.refractionRatio;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.wireframeLinecap=source.wireframeLinecap;this.wireframeLinejoin=source.wireframeLinejoin;this.flatShading=source.flatShading;this.fog=source.fog;return this}}class MeshDepthMaterial extends Material{constructor(parameters){super();this.isMeshDepthMaterial=true;this.type="MeshDepthMaterial";this.depthPacking=BasicDepthPacking;this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.setValues(parameters)}copy(source){super.copy(source);this.depthPacking=source.depthPacking;this.map=source.map;this.alphaMap=source.alphaMap;this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;return this}}class MeshDistanceMaterial extends Material{constructor(parameters){super();this.isMeshDistanceMaterial=true;this.type="MeshDistanceMaterial";this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.setValues(parameters)}copy(source){super.copy(source);this.map=source.map;this.alphaMap=source.alphaMap;this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;return this}}class MeshMatcapMaterial extends Material{constructor(parameters){super();this.isMeshMatcapMaterial=true;this.defines={"MATCAP":""};this.type="MeshMatcapMaterial";this.color=new Color(16777215);this.matcap=null;this.map=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=false;this.wireframeLinewidth=1;this.flatShading=false;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.defines={"MATCAP":""};this.color.copy(source.color);this.matcap=source.matcap;this.map=source.map;this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.alphaMap=source.alphaMap;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.flatShading=source.flatShading;this.fog=source.fog;return this}}class LineDashedMaterial extends LineBasicMaterial{constructor(parameters){super();this.isLineDashedMaterial=true;this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(parameters)}copy(source){super.copy(source);this.scale=source.scale;this.dashSize=source.dashSize;this.gapSize=source.gapSize;return this}}function convertArray(array,type){if(!array||array.constructor===type)return array;if(typeof type.BYTES_PER_ELEMENT==="number"){return new type(array)}return Array.prototype.slice.call(array)}function getKeyframeOrder(times){function compareTime(i,j){return times[i]-times[j]}const n=times.length;const result=new Array(n);for(let i=0;i!==n;++i)result[i]=i;result.sort(compareTime);return result}function sortedArray(values,stride,order){const nValues=values.length;const result=new values.constructor(nValues);for(let i=0,dstOffset=0;dstOffset!==nValues;++i){const srcOffset=order[i]*stride;for(let j=0;j!==stride;++j){result[dstOffset++]=values[srcOffset+j]}}return result}function flattenJSON(jsonKeys,times,values,valuePropertyName){let i=1,key=jsonKeys[0];while(key!==undefined&&key[valuePropertyName]===undefined){key=jsonKeys[i++]}if(key===undefined)return;let value=key[valuePropertyName];if(value===undefined)return;if(Array.isArray(value)){do{value=key[valuePropertyName];if(value!==undefined){times.push(key.time);values.push(...value)}key=jsonKeys[i++]}while(key!==undefined)}else if(value.toArray!==undefined){do{value=key[valuePropertyName];if(value!==undefined){times.push(key.time);value.toArray(values,values.length)}key=jsonKeys[i++]}while(key!==undefined)}else{do{value=key[valuePropertyName];if(value!==undefined){times.push(key.time);values.push(value)}key=jsonKeys[i++]}while(key!==undefined)}}function subclip(sourceClip,name,startFrame,endFrame,fps=30){const clip=sourceClip.clone();clip.name=name;const tracks=[];for(let i=0;i=endFrame)continue;times.push(track.times[j]);for(let k=0;kclip.tracks[i].times[0]){minStartTime=clip.tracks[i].times[0]}}for(let i=0;i=referenceTrack.times[lastIndex]){const startIndex=lastIndex*referenceValueSize+referenceOffset;const endIndex=startIndex+referenceValueSize-referenceOffset;referenceValue=referenceTrack.values.slice(startIndex,endIndex)}else{const interpolant=referenceTrack.createInterpolant();const startIndex=referenceOffset;const endIndex=referenceValueSize-referenceOffset;interpolant.evaluate(referenceTime);referenceValue=interpolant.resultBuffer.slice(startIndex,endIndex)}if(referenceTrackType==="quaternion"){const referenceQuat=new Quaternion().fromArray(referenceValue).normalize().conjugate();referenceQuat.toArray(referenceValue)}const numTimes=targetTrack.times.length;for(let j=0;j=t0)){const t1global=pp[1];if(t=t0){break seek}}right=i1;i1=0;break linear_scan}break validate_interval}while(i1>>1;if(tendTime){--to}++to;if(from!==0||to!==nKeys){if(from>=to){to=Math.max(to,1);from=to-1}const stride=this.getValueSize();this.times=times.slice(from,to);this.values=this.values.slice(from*stride,to*stride)}return this}validate(){let valid=true;const valueSize=this.getValueSize();if(valueSize-Math.floor(valueSize)!==0){error("KeyframeTrack: Invalid value size in track.",this);valid=false}const times=this.times,values=this.values,nKeys=times.length;if(nKeys===0){error("KeyframeTrack: Track is empty.",this);valid=false}let prevTime=null;for(let i=0;i!==nKeys;i++){const currTime=times[i];if(typeof currTime==="number"&&isNaN(currTime)){error("KeyframeTrack: Time is not a valid number.",this,i,currTime);valid=false;break}if(prevTime!==null&&prevTime>currTime){error("KeyframeTrack: Out of order keys.",this,i,currTime,prevTime);valid=false;break}prevTime=currTime}if(values!==undefined){if(isTypedArray(values)){for(let i=0,n=values.length;i!==n;++i){const value=values[i];if(isNaN(value)){error("KeyframeTrack: Value is not a valid number.",this,i,value);valid=false;break}}}}return valid}optimize(){const times=this.times.slice(),values=this.values.slice(),stride=this.getValueSize(),smoothInterpolation=this.getInterpolation()===InterpolateSmooth,lastIndex=times.length-1;let writeIndex=1;for(let i=1;i0){times[writeIndex]=times[lastIndex];for(let readOffset=lastIndex*stride,writeOffset=writeIndex*stride,j=0;j!==stride;++j){values[writeOffset+j]=values[readOffset+j]}++writeIndex}if(writeIndex!==times.length){this.times=times.slice(0,writeIndex);this.values=values.slice(0,writeIndex*stride)}else{this.times=times;this.values=values}return this}clone(){const times=this.times.slice();const values=this.values.slice();const TypedKeyframeTrack=this.constructor;const track=new TypedKeyframeTrack(this.name,times,values);track.createInterpolant=this.createInterpolant;return track}}KeyframeTrack.prototype.ValueTypeName="";KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{constructor(name,times,values){super(name,times,values)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=undefined;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=undefined;class ColorKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer)}interpolate_(i1,t0,t,t1){const result=this.resultBuffer,values=this.sampleValues,stride=this.valueSize,alpha=(t-t0)/(t1-t0);let offset=i1*stride;for(let end=offset+stride;offset!==end;offset+=4){Quaternion.slerpFlat(result,0,values,offset-stride,values,offset,alpha)}return result}}class QuaternionKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}InterpolantFactoryMethodLinear(result){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),result)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=undefined;class StringKeyframeTrack extends KeyframeTrack{constructor(name,times,values){super(name,times,values)}}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=undefined;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=undefined;class VectorKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(name="",duration=-1,tracks=[],blendMode=NormalAnimationBlendMode){this.name=name;this.tracks=tracks;this.duration=duration;this.blendMode=blendMode;this.uuid=generateUUID();this.userData={};if(this.duration<0){this.resetDuration()}}static parse(json){const tracks=[],jsonTracks=json.tracks,frameTime=1/(json.fps||1);for(let i=0,n=jsonTracks.length;i!==n;++i){tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime))}const clip=new this(json.name,json.duration,tracks,json.blendMode);clip.uuid=json.uuid;clip.userData=JSON.parse(json.userData||"{}");return clip}static toJSON(clip){const tracks=[],clipTracks=clip.tracks;const json={"name":clip.name,"duration":clip.duration,"tracks":tracks,"uuid":clip.uuid,"blendMode":clip.blendMode,"userData":JSON.stringify(clip.userData)};for(let i=0,n=clipTracks.length;i!==n;++i){tracks.push(KeyframeTrack.toJSON(clipTracks[i]))}return json}static CreateFromMorphTargetSequence(name,morphTargetSequence,fps,noLoop){const numMorphTargets=morphTargetSequence.length;const tracks=[];for(let i=0;i1){const name=parts[1];let animationMorphTargets=animationToMorphTargets[name];if(!animationMorphTargets){animationToMorphTargets[name]=animationMorphTargets=[]}animationMorphTargets.push(morphTarget)}}const clips=[];for(const name in animationToMorphTargets){clips.push(this.CreateFromMorphTargetSequence(name,animationToMorphTargets[name],fps,noLoop))}return clips}static parseAnimation(animation,bones){warn("AnimationClip: parseAnimation() is deprecated and will be removed with r185");if(!animation){error("AnimationClip: No animation in JSONLoader data.");return null}const addNonemptyTrack=function(trackType,trackName,animationKeys,propertyName,destTracks){if(animationKeys.length!==0){const times=[];const values=[];flattenJSON(animationKeys,times,values,propertyName);if(times.length!==0){destTracks.push(new trackType(trackName,times,values))}}};const tracks=[];const clipName=animation.name||"default";const fps=animation.fps||30;const blendMode=animation.blendMode;let duration=animation.length||-1;const hierarchyTracks=animation.hierarchy||[];for(let h=0;h{if(onLoad)onLoad(cached);this.manager.itemEnd(url)},0);return cached}if(loading[url]!==undefined){loading[url].push({onLoad:onLoad,onProgress:onProgress,onError:onError});return}loading[url]=[];loading[url].push({onLoad:onLoad,onProgress:onProgress,onError:onError});const req=new Request(url,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any==="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal});const mimeType=this.mimeType;const responseType=this.responseType;fetch(req).then(response=>{if(response.status===200||response.status===0){if(response.status===0){warn("FileLoader: HTTP Status 0 received.")}if(typeof ReadableStream==="undefined"||response.body===undefined||response.body.getReader===undefined){return response}const callbacks=loading[url];const reader=response.body.getReader();const contentLength=response.headers.get("X-File-Size")||response.headers.get("Content-Length");const total=contentLength?parseInt(contentLength):0;const lengthComputable=total!==0;let loaded=0;const stream=new ReadableStream({start(controller){readData();function readData(){reader.read().then(({done,value})=>{if(done){controller.close()}else{loaded+=value.byteLength;const event=new ProgressEvent("progress",{lengthComputable,loaded,total});for(let i=0,il=callbacks.length;i{controller.error(e)})}}});return new Response(stream)}else{throw new HttpError(`fetch for "${response.url}" responded with ${response.status}: ${response.statusText}`,response)}}).then(response=>{switch(responseType){case"arraybuffer":return response.arrayBuffer();case"blob":return response.blob();case"document":return response.text().then(text=>{const parser=new DOMParser;return parser.parseFromString(text,mimeType)});case"json":return response.json();default:if(mimeType===""){return response.text()}else{const re=/charset="?([^;"\s]*)"?/i;const exec=re.exec(mimeType);const label=exec&&exec[1]?exec[1].toLowerCase():undefined;const decoder=new TextDecoder(label);return response.arrayBuffer().then(ab=>decoder.decode(ab))}}}).then(data=>{Cache.add(`file:${url}`,data);const callbacks=loading[url];delete loading[url];for(let i=0,il=callbacks.length;i{const callbacks=loading[url];if(callbacks===undefined){this.manager.itemError(url);throw err}delete loading[url];for(let i=0,il=callbacks.length;i{this.manager.itemEnd(url)});this.manager.itemStart(url)}setResponseType(value){this.responseType=value;return this}setMimeType(value){this.mimeType=value;return this}abort(){this._abortController.abort();this._abortController=new AbortController;return this}}class AnimationLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,function(text){try{onLoad(scope.parse(JSON.parse(text)))}catch(e){if(onError){onError(e)}else{error(e)}scope.manager.itemError(url)}},onProgress,onError)}parse(json){const animations=[];for(let i=0;i0?true:false}else{material.vertexColors=json.vertexColors}}if(json.uniforms!==undefined){for(const name in json.uniforms){const uniform=json.uniforms[name];material.uniforms[name]={};switch(uniform.type){case"t":material.uniforms[name].value=getTexture(uniform.value);break;case"c":material.uniforms[name].value=new Color().setHex(uniform.value);break;case"v2":material.uniforms[name].value=new Vector2().fromArray(uniform.value);break;case"v3":material.uniforms[name].value=new Vector3().fromArray(uniform.value);break;case"v4":material.uniforms[name].value=new Vector4().fromArray(uniform.value);break;case"m3":material.uniforms[name].value=new Matrix3().fromArray(uniform.value);break;case"m4":material.uniforms[name].value=new Matrix4().fromArray(uniform.value);break;default:material.uniforms[name].value=uniform.value;}}}if(json.defines!==undefined)material.defines=json.defines;if(json.vertexShader!==undefined)material.vertexShader=json.vertexShader;if(json.fragmentShader!==undefined)material.fragmentShader=json.fragmentShader;if(json.glslVersion!==undefined)material.glslVersion=json.glslVersion;if(json.extensions!==undefined){for(const key in json.extensions){material.extensions[key]=json.extensions[key]}}if(json.lights!==undefined)material.lights=json.lights;if(json.clipping!==undefined)material.clipping=json.clipping;if(json.size!==undefined)material.size=json.size;if(json.sizeAttenuation!==undefined)material.sizeAttenuation=json.sizeAttenuation;if(json.map!==undefined)material.map=getTexture(json.map);if(json.matcap!==undefined)material.matcap=getTexture(json.matcap);if(json.alphaMap!==undefined)material.alphaMap=getTexture(json.alphaMap);if(json.bumpMap!==undefined)material.bumpMap=getTexture(json.bumpMap);if(json.bumpScale!==undefined)material.bumpScale=json.bumpScale;if(json.normalMap!==undefined)material.normalMap=getTexture(json.normalMap);if(json.normalMapType!==undefined)material.normalMapType=json.normalMapType;if(json.normalScale!==undefined){let normalScale=json.normalScale;if(Array.isArray(normalScale)===false){normalScale=[normalScale,normalScale]}material.normalScale=new Vector2().fromArray(normalScale)}if(json.displacementMap!==undefined)material.displacementMap=getTexture(json.displacementMap);if(json.displacementScale!==undefined)material.displacementScale=json.displacementScale;if(json.displacementBias!==undefined)material.displacementBias=json.displacementBias;if(json.roughnessMap!==undefined)material.roughnessMap=getTexture(json.roughnessMap);if(json.metalnessMap!==undefined)material.metalnessMap=getTexture(json.metalnessMap);if(json.emissiveMap!==undefined)material.emissiveMap=getTexture(json.emissiveMap);if(json.emissiveIntensity!==undefined)material.emissiveIntensity=json.emissiveIntensity;if(json.specularMap!==undefined)material.specularMap=getTexture(json.specularMap);if(json.specularIntensityMap!==undefined)material.specularIntensityMap=getTexture(json.specularIntensityMap);if(json.specularColorMap!==undefined)material.specularColorMap=getTexture(json.specularColorMap);if(json.envMap!==undefined)material.envMap=getTexture(json.envMap);if(json.envMapRotation!==undefined)material.envMapRotation.fromArray(json.envMapRotation);if(json.envMapIntensity!==undefined)material.envMapIntensity=json.envMapIntensity;if(json.reflectivity!==undefined)material.reflectivity=json.reflectivity;if(json.refractionRatio!==undefined)material.refractionRatio=json.refractionRatio;if(json.lightMap!==undefined)material.lightMap=getTexture(json.lightMap);if(json.lightMapIntensity!==undefined)material.lightMapIntensity=json.lightMapIntensity;if(json.aoMap!==undefined)material.aoMap=getTexture(json.aoMap);if(json.aoMapIntensity!==undefined)material.aoMapIntensity=json.aoMapIntensity;if(json.gradientMap!==undefined)material.gradientMap=getTexture(json.gradientMap);if(json.clearcoatMap!==undefined)material.clearcoatMap=getTexture(json.clearcoatMap);if(json.clearcoatRoughnessMap!==undefined)material.clearcoatRoughnessMap=getTexture(json.clearcoatRoughnessMap);if(json.clearcoatNormalMap!==undefined)material.clearcoatNormalMap=getTexture(json.clearcoatNormalMap);if(json.clearcoatNormalScale!==undefined)material.clearcoatNormalScale=new Vector2().fromArray(json.clearcoatNormalScale);if(json.iridescenceMap!==undefined)material.iridescenceMap=getTexture(json.iridescenceMap);if(json.iridescenceThicknessMap!==undefined)material.iridescenceThicknessMap=getTexture(json.iridescenceThicknessMap);if(json.transmissionMap!==undefined)material.transmissionMap=getTexture(json.transmissionMap);if(json.thicknessMap!==undefined)material.thicknessMap=getTexture(json.thicknessMap);if(json.anisotropyMap!==undefined)material.anisotropyMap=getTexture(json.anisotropyMap);if(json.sheenColorMap!==undefined)material.sheenColorMap=getTexture(json.sheenColorMap);if(json.sheenRoughnessMap!==undefined)material.sheenRoughnessMap=getTexture(json.sheenRoughnessMap);return material}setTextures(value){this.textures=value;return this}createMaterialFromType(type){return MaterialLoader.createMaterialFromType(type)}static createMaterialFromType(type){const materialLib={ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material};return new materialLib[type]}}class LoaderUtils{static extractUrlBase(url){const index=url.lastIndexOf("/");if(index===-1)return"./";return url.slice(0,index+1)}static resolveURL(url,path){if(typeof url!=="string"||url==="")return"";if(/^https?:\/\//i.test(path)&&/^\//.test(url)){path=path.replace(/(^https?:\/\/[^\/]+).*/i,"$1")}if(/^(https?:)?\/\//i.test(url))return url;if(/^data:.*,.*$/i.test(url))return url;if(/^blob:.*$/i.test(url))return url;return path+url}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super();this.isInstancedBufferGeometry=true;this.type="InstancedBufferGeometry";this.instanceCount=Infinity}copy(source){super.copy(source);this.instanceCount=source.instanceCount;return this}toJSON(){const data=super.toJSON();data.instanceCount=this.instanceCount;data.isInstancedBufferGeometry=true;return data}}class BufferGeometryLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const loader=new FileLoader(scope.manager);loader.setPath(scope.path);loader.setRequestHeader(scope.requestHeader);loader.setWithCredentials(scope.withCredentials);loader.load(url,function(text){try{onLoad(scope.parse(JSON.parse(text)))}catch(e){if(onError){onError(e)}else{error(e)}scope.manager.itemError(url)}},onProgress,onError)}parse(json){const interleavedBufferMap={};const arrayBufferMap={};function getInterleavedBuffer(json,uuid){if(interleavedBufferMap[uuid]!==undefined)return interleavedBufferMap[uuid];const interleavedBuffers=json.interleavedBuffers;const interleavedBuffer=interleavedBuffers[uuid];const buffer=getArrayBuffer(json,interleavedBuffer.buffer);const array=getTypedArray(interleavedBuffer.type,buffer);const ib=new InterleavedBuffer(array,interleavedBuffer.stride);ib.uuid=interleavedBuffer.uuid;interleavedBufferMap[uuid]=ib;return ib}function getArrayBuffer(json,uuid){if(arrayBufferMap[uuid]!==undefined)return arrayBufferMap[uuid];const arrayBuffers=json.arrayBuffers;const arrayBuffer=arrayBuffers[uuid];const ab=new Uint32Array(arrayBuffer).buffer;arrayBufferMap[uuid]=ab;return ab}const geometry=json.isInstancedBufferGeometry?new InstancedBufferGeometry:new BufferGeometry;const index=json.data.index;if(index!==undefined){const typedArray=getTypedArray(index.type,index.array);geometry.setIndex(new BufferAttribute(typedArray,1))}const attributes=json.data.attributes;for(const key in attributes){const attribute=attributes[key];let bufferAttribute;if(attribute.isInterleavedBufferAttribute){const interleavedBuffer=getInterleavedBuffer(json.data,attribute.data);bufferAttribute=new InterleavedBufferAttribute(interleavedBuffer,attribute.itemSize,attribute.offset,attribute.normalized)}else{const typedArray=getTypedArray(attribute.type,attribute.array);const bufferAttributeConstr=attribute.isInstancedBufferAttribute?InstancedBufferAttribute:BufferAttribute;bufferAttribute=new bufferAttributeConstr(typedArray,attribute.itemSize,attribute.normalized)}if(attribute.name!==undefined)bufferAttribute.name=attribute.name;if(attribute.usage!==undefined)bufferAttribute.setUsage(attribute.usage);geometry.setAttribute(key,bufferAttribute)}const morphAttributes=json.data.morphAttributes;if(morphAttributes){for(const key in morphAttributes){const attributeArray=morphAttributes[key];const array=[];for(let i=0,il=attributeArray.length;i0){const manager=new LoadingManager(onLoad);loader=new ImageLoader(manager);loader.setCrossOrigin(this.crossOrigin);for(let i=0,il=json.length;i0){loader=new ImageLoader(this.manager);loader.setCrossOrigin(this.crossOrigin);for(let i=0,il=json.length;i{let box=null;let sphere=null;if(info.boundingBox!==undefined){box=new Box3().fromJSON(info.boundingBox)}if(info.boundingSphere!==undefined){sphere=new Sphere().fromJSON(info.boundingSphere)}return{...info,boundingBox:box,boundingSphere:sphere}});object._instanceInfo=data.instanceInfo;object._availableInstanceIds=data._availableInstanceIds;object._availableGeometryIds=data._availableGeometryIds;object._nextIndexStart=data.nextIndexStart;object._nextVertexStart=data.nextVertexStart;object._geometryCount=data.geometryCount;object._maxInstanceCount=data.maxInstanceCount;object._maxVertexCount=data.maxVertexCount;object._maxIndexCount=data.maxIndexCount;object._geometryInitialized=data.geometryInitialized;object._matricesTexture=getTexture(data.matricesTexture.uuid);object._indirectTexture=getTexture(data.indirectTexture.uuid);if(data.colorsTexture!==undefined){object._colorsTexture=getTexture(data.colorsTexture.uuid)}if(data.boundingSphere!==undefined){object.boundingSphere=new Sphere().fromJSON(data.boundingSphere)}if(data.boundingBox!==undefined){object.boundingBox=new Box3().fromJSON(data.boundingBox)}break;case"LOD":object=new LOD;break;case"Line":object=new Line(getGeometry(data.geometry),getMaterial(data.material));break;case"LineLoop":object=new LineLoop(getGeometry(data.geometry),getMaterial(data.material));break;case"LineSegments":object=new LineSegments(getGeometry(data.geometry),getMaterial(data.material));break;case"PointCloud":case"Points":object=new Points(getGeometry(data.geometry),getMaterial(data.material));break;case"Sprite":object=new Sprite(getMaterial(data.material));break;case"Group":object=new Group;break;case"Bone":object=new Bone;break;default:object=new Object3D;}object.uuid=data.uuid;if(data.name!==undefined)object.name=data.name;if(data.matrix!==undefined){object.matrix.fromArray(data.matrix);if(data.matrixAutoUpdate!==undefined)object.matrixAutoUpdate=data.matrixAutoUpdate;if(object.matrixAutoUpdate)object.matrix.decompose(object.position,object.quaternion,object.scale)}else{if(data.position!==undefined)object.position.fromArray(data.position);if(data.rotation!==undefined)object.rotation.fromArray(data.rotation);if(data.quaternion!==undefined)object.quaternion.fromArray(data.quaternion);if(data.scale!==undefined)object.scale.fromArray(data.scale)}if(data.up!==undefined)object.up.fromArray(data.up);if(data.castShadow!==undefined)object.castShadow=data.castShadow;if(data.receiveShadow!==undefined)object.receiveShadow=data.receiveShadow;if(data.shadow){if(data.shadow.intensity!==undefined)object.shadow.intensity=data.shadow.intensity;if(data.shadow.bias!==undefined)object.shadow.bias=data.shadow.bias;if(data.shadow.normalBias!==undefined)object.shadow.normalBias=data.shadow.normalBias;if(data.shadow.radius!==undefined)object.shadow.radius=data.shadow.radius;if(data.shadow.mapSize!==undefined)object.shadow.mapSize.fromArray(data.shadow.mapSize);if(data.shadow.camera!==undefined)object.shadow.camera=this.parseObject(data.shadow.camera)}if(data.visible!==undefined)object.visible=data.visible;if(data.frustumCulled!==undefined)object.frustumCulled=data.frustumCulled;if(data.renderOrder!==undefined)object.renderOrder=data.renderOrder;if(data.userData!==undefined)object.userData=data.userData;if(data.layers!==undefined)object.layers.mask=data.layers;if(data.children!==undefined){const children=data.children;for(let i=0;i{if(_errorMap.has(cached)===true){if(onError)onError(_errorMap.get(cached));scope.manager.itemError(url);scope.manager.itemEnd(url)}else{if(onLoad)onLoad(imageBitmap);scope.manager.itemEnd(url);return imageBitmap}});return}setTimeout(function(){if(onLoad)onLoad(cached);scope.manager.itemEnd(url)},0);return cached}const fetchOptions={};fetchOptions.credentials=this.crossOrigin==="anonymous"?"same-origin":"include";fetchOptions.headers=this.requestHeader;fetchOptions.signal=typeof AbortSignal.any==="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;const promise=fetch(url,fetchOptions).then(function(res){return res.blob()}).then(function(blob){return createImageBitmap(blob,Object.assign(scope.options,{colorSpaceConversion:"none"}))}).then(function(imageBitmap){Cache.add(`image-bitmap:${url}`,imageBitmap);if(onLoad)onLoad(imageBitmap);scope.manager.itemEnd(url);return imageBitmap}).catch(function(e){if(onError)onError(e);_errorMap.set(promise,e);Cache.remove(`image-bitmap:${url}`);scope.manager.itemError(url);scope.manager.itemEnd(url)});Cache.add(`image-bitmap:${url}`,promise);scope.manager.itemStart(url)}abort(){this._abortController.abort();this._abortController=new AbortController;return this}}let _context;class AudioContext{static getContext(){if(_context===undefined){_context=new(window.AudioContext||window.webkitAudioContext)}return _context}static setContext(value){_context=value}}class AudioLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const loader=new FileLoader(this.manager);loader.setResponseType("arraybuffer");loader.setPath(this.path);loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,function(buffer){try{const bufferCopy=buffer.slice(0);const context=AudioContext.getContext();context.decodeAudioData(bufferCopy,function(audioBuffer){onLoad(audioBuffer)}).catch(handleError)}catch(e){handleError(e)}},onProgress,onError);function handleError(e){if(onError){onError(e)}else{error(e)}scope.manager.itemError(url)}}}const _eyeRight=new Matrix4;const _eyeLeft=new Matrix4;const _projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera";this.aspect=1;this.eyeSep=0.064;this.cameraL=new PerspectiveCamera;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=false;this.cameraR=new PerspectiveCamera;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=false;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(camera){const cache=this._cache;const needsUpdate=cache.focus!==camera.focus||cache.fov!==camera.fov||cache.aspect!==camera.aspect*this.aspect||cache.near!==camera.near||cache.far!==camera.far||cache.zoom!==camera.zoom||cache.eyeSep!==this.eyeSep;if(needsUpdate){cache.focus=camera.focus;cache.fov=camera.fov;cache.aspect=camera.aspect*this.aspect;cache.near=camera.near;cache.far=camera.far;cache.zoom=camera.zoom;cache.eyeSep=this.eyeSep;_projectionMatrix.copy(camera.projectionMatrix);const eyeSepHalf=cache.eyeSep/2;const eyeSepOnProjection=eyeSepHalf*cache.near/cache.focus;const ymax=cache.near*Math.tan(DEG2RAD*cache.fov*0.5)/cache.zoom;let xmin,xmax;_eyeLeft.elements[12]=-eyeSepHalf;_eyeRight.elements[12]=eyeSepHalf;xmin=-ymax*cache.aspect+eyeSepOnProjection;xmax=ymax*cache.aspect+eyeSepOnProjection;_projectionMatrix.elements[0]=2*cache.near/(xmax-xmin);_projectionMatrix.elements[8]=(xmax+xmin)/(xmax-xmin);this.cameraL.projectionMatrix.copy(_projectionMatrix);xmin=-ymax*cache.aspect-eyeSepOnProjection;xmax=ymax*cache.aspect-eyeSepOnProjection;_projectionMatrix.elements[0]=2*cache.near/(xmax-xmin);_projectionMatrix.elements[8]=(xmax+xmin)/(xmax-xmin);this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft);this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight)}}class ArrayCamera extends PerspectiveCamera{constructor(array=[]){super();this.isArrayCamera=true;this.isMultiViewCamera=false;this.cameras=array}}class Clock{constructor(autoStart=true){this.autoStart=autoStart;this.startTime=0;this.oldTime=0;this.elapsedTime=0;this.running=false}start(){this.startTime=performance.now();this.oldTime=this.startTime;this.elapsedTime=0;this.running=true}stop(){this.getElapsedTime();this.running=false;this.autoStart=false}getElapsedTime(){this.getDelta();return this.elapsedTime}getDelta(){let diff=0;if(this.autoStart&&!this.running){this.start();return 0}if(this.running){const newTime=performance.now();diff=(newTime-this.oldTime)/1000;this.oldTime=newTime;this.elapsedTime+=diff}return diff}}const _position$1=new Vector3;const _quaternion$1=new Quaternion;const _scale$1=new Vector3;const _forward=new Vector3;const _up=new Vector3;class AudioListener extends Object3D{constructor(){super();this.type="AudioListener";this.context=AudioContext.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Clock}getInput(){return this.gain}removeFilter(){if(this.filter!==null){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination);this.gain.connect(this.context.destination);this.filter=null}return this}getFilter(){return this.filter}setFilter(value){if(this.filter!==null){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination)}else{this.gain.disconnect(this.context.destination)}this.filter=value;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(value){this.gain.gain.setTargetAtTime(value,this.context.currentTime,0.01);return this}updateMatrixWorld(force){super.updateMatrixWorld(force);const listener=this.context.listener;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1);_forward.set(0,0,-1).applyQuaternion(_quaternion$1);_up.set(0,1,0).applyQuaternion(_quaternion$1);if(listener.positionX){const endTime=this.context.currentTime+this.timeDelta;listener.positionX.linearRampToValueAtTime(_position$1.x,endTime);listener.positionY.linearRampToValueAtTime(_position$1.y,endTime);listener.positionZ.linearRampToValueAtTime(_position$1.z,endTime);listener.forwardX.linearRampToValueAtTime(_forward.x,endTime);listener.forwardY.linearRampToValueAtTime(_forward.y,endTime);listener.forwardZ.linearRampToValueAtTime(_forward.z,endTime);listener.upX.linearRampToValueAtTime(_up.x,endTime);listener.upY.linearRampToValueAtTime(_up.y,endTime);listener.upZ.linearRampToValueAtTime(_up.z,endTime)}else{listener.setPosition(_position$1.x,_position$1.y,_position$1.z);listener.setOrientation(_forward.x,_forward.y,_forward.z,_up.x,_up.y,_up.z)}}}class Audio extends Object3D{constructor(listener){super();this.type="Audio";this.listener=listener;this.context=listener.context;this.gain=this.context.createGain();this.gain.connect(listener.getInput());this.autoplay=false;this.buffer=null;this.detune=0;this.loop=false;this.loopStart=0;this.loopEnd=0;this.offset=0;this.duration=undefined;this.playbackRate=1;this.isPlaying=false;this.hasPlaybackControl=true;this.source=null;this.sourceType="empty";this._startedAt=0;this._progress=0;this._connected=false;this.filters=[]}getOutput(){return this.gain}setNodeSource(audioNode){this.hasPlaybackControl=false;this.sourceType="audioNode";this.source=audioNode;this.connect();return this}setMediaElementSource(mediaElement){this.hasPlaybackControl=false;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(mediaElement);this.connect();return this}setMediaStreamSource(mediaStream){this.hasPlaybackControl=false;this.sourceType="mediaStreamNode";this.source=this.context.createMediaStreamSource(mediaStream);this.connect();return this}setBuffer(audioBuffer){this.buffer=audioBuffer;this.sourceType="buffer";if(this.autoplay)this.play();return this}play(delay=0){if(this.isPlaying===true){warn("Audio: Audio is already playing.");return}if(this.hasPlaybackControl===false){warn("Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+delay;const source=this.context.createBufferSource();source.buffer=this.buffer;source.loop=this.loop;source.loopStart=this.loopStart;source.loopEnd=this.loopEnd;source.onended=this.onEnded.bind(this);source.start(this._startedAt,this._progress+this.offset,this.duration);this.isPlaying=true;this.source=source;this.setDetune(this.detune);this.setPlaybackRate(this.playbackRate);return this.connect()}pause(){if(this.hasPlaybackControl===false){warn("Audio: this Audio has no playback control.");return}if(this.isPlaying===true){this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate;if(this.loop===true){this._progress=this._progress%(this.duration||this.buffer.duration)}this.source.stop();this.source.onended=null;this.isPlaying=false}return this}stop(delay=0){if(this.hasPlaybackControl===false){warn("Audio: this Audio has no playback control.");return}this._progress=0;if(this.source!==null){this.source.stop(this.context.currentTime+delay);this.source.onended=null}this.isPlaying=false;return this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let i=1,l=this.filters.length;i0){this.source.disconnect(this.filters[0]);for(let i=1,l=this.filters.length;i0){this._mixBufferRegionAdditive(buffer,offset,this._addIndex*stride,1,stride)}for(let i=stride,e=stride+stride;i!==e;++i){if(buffer[i]!==buffer[i+stride]){binding.setValue(buffer,offset);break}}}saveOriginalState(){const binding=this.binding;const buffer=this.buffer,stride=this.valueSize,originalValueOffset=stride*this._origIndex;binding.getValue(buffer,originalValueOffset);for(let i=stride,e=originalValueOffset;i!==e;++i){buffer[i]=buffer[originalValueOffset+i%stride]}this._setIdentity();this.cumulativeWeight=0;this.cumulativeWeightAdditive=0}restoreOriginalState(){const originalValueOffset=this.valueSize*3;this.binding.setValue(this.buffer,originalValueOffset)}_setAdditiveIdentityNumeric(){const startIndex=this._addIndex*this.valueSize;const endIndex=startIndex+this.valueSize;for(let i=startIndex;i=0.5){for(let i=0;i!==stride;++i){buffer[dstOffset+i]=buffer[srcOffset+i]}}}_slerp(buffer,dstOffset,srcOffset,t){Quaternion.slerpFlat(buffer,dstOffset,buffer,dstOffset,buffer,srcOffset,t)}_slerpAdditive(buffer,dstOffset,srcOffset,t,stride){const workOffset=this._workIndex*stride;Quaternion.multiplyQuaternionsFlat(buffer,workOffset,buffer,dstOffset,buffer,srcOffset);Quaternion.slerpFlat(buffer,dstOffset,buffer,dstOffset,buffer,workOffset,t)}_lerp(buffer,dstOffset,srcOffset,t,stride){const s=1-t;for(let i=0;i!==stride;++i){const j=dstOffset+i;buffer[j]=buffer[j]*s+buffer[srcOffset+i]*t}}_lerpAdditive(buffer,dstOffset,srcOffset,t,stride){for(let i=0;i!==stride;++i){const j=dstOffset+i;buffer[j]=buffer[j]+buffer[srcOffset+i]*t}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/";const _reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g");const _wordChar="[^"+_RESERVED_CHARS_RE+"]";const _wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]";const _directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar);const _nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot);const _objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar);const _propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar);const _trackRe=new RegExp(""+"^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$");const _supportedObjectNames=["material","materials","bones","map"];class Composite{constructor(targetGroup,path,optionalParsedPath){const parsedPath=optionalParsedPath||PropertyBinding.parseTrackName(path);this._targetGroup=targetGroup;this._bindings=targetGroup.subscribe_(path,parsedPath)}getValue(array,offset){this.bind();const firstValidIndex=this._targetGroup.nCachedObjects_,binding=this._bindings[firstValidIndex];if(binding!==undefined)binding.getValue(array,offset)}setValue(array,offset){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i){bindings[i].setValue(array,offset)}}bind(){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i){bindings[i].bind()}}unbind(){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i){bindings[i].unbind()}}}class PropertyBinding{constructor(rootNode,path,parsedPath){this.path=path;this.parsedPath=parsedPath||PropertyBinding.parseTrackName(path);this.node=PropertyBinding.findNode(rootNode,this.parsedPath.nodeName);this.rootNode=rootNode;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}static create(root,path,parsedPath){if(!(root&&root.isAnimationObjectGroup)){return new PropertyBinding(root,path,parsedPath)}else{return new PropertyBinding.Composite(root,path,parsedPath)}}static sanitizeNodeName(name){return name.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(trackName){const matches=_trackRe.exec(trackName);if(matches===null){throw new Error("PropertyBinding: Cannot parse trackName: "+trackName)}const results={nodeName:matches[2],objectName:matches[3],objectIndex:matches[4],propertyName:matches[5],propertyIndex:matches[6]};const lastDot=results.nodeName&&results.nodeName.lastIndexOf(".");if(lastDot!==undefined&&lastDot!==-1){const objectName=results.nodeName.substring(lastDot+1);if(_supportedObjectNames.indexOf(objectName)!==-1){results.nodeName=results.nodeName.substring(0,lastDot);results.objectName=objectName}}if(results.propertyName===null||results.propertyName.length===0){throw new Error("PropertyBinding: can not parse propertyName from trackName: "+trackName)}return results}static findNode(root,nodeName){if(nodeName===undefined||nodeName===""||nodeName==="."||nodeName===-1||nodeName===root.name||nodeName===root.uuid){return root}if(root.skeleton){const bone=root.skeleton.getBoneByName(nodeName);if(bone!==undefined){return bone}}if(root.children){const searchNodeSubtree=function(children){for(let i=0;i=nCachedObjects){const lastCachedIndex=nCachedObjects++,firstActiveObject=objects[lastCachedIndex];indicesByUUID[firstActiveObject.uuid]=index;objects[index]=firstActiveObject;indicesByUUID[uuid]=lastCachedIndex;objects[lastCachedIndex]=object;for(let j=0,m=nBindings;j!==m;++j){const bindingsForPath=bindings[j],firstActive=bindingsForPath[lastCachedIndex],binding=bindingsForPath[index];bindingsForPath[index]=firstActive;bindingsForPath[lastCachedIndex]=binding}}}this.nCachedObjects_=nCachedObjects}uncache(){const objects=this._objects,indicesByUUID=this._indicesByUUID,bindings=this._bindings,nBindings=bindings.length;let nCachedObjects=this.nCachedObjects_,nObjects=objects.length;for(let i=0,n=arguments.length;i!==n;++i){const object=arguments[i],uuid=object.uuid,index=indicesByUUID[uuid];if(index!==undefined){delete indicesByUUID[uuid];if(index0){indicesByUUID[lastObject.uuid]=index}objects[index]=lastObject;objects.pop();for(let j=0,m=nBindings;j!==m;++j){const bindingsForPath=bindings[j];bindingsForPath[index]=bindingsForPath[lastIndex];bindingsForPath.pop()}}}}this.nCachedObjects_=nCachedObjects}subscribe_(path,parsedPath){const indicesByPath=this._bindingsIndicesByPath;let index=indicesByPath[path];const bindings=this._bindings;if(index!==undefined)return bindings[index];const paths=this._paths,parsedPaths=this._parsedPaths,objects=this._objects,nObjects=objects.length,nCachedObjects=this.nCachedObjects_,bindingsForPath=new Array(nObjects);index=bindings.length;indicesByPath[path]=index;paths.push(path);parsedPaths.push(parsedPath);bindings.push(bindingsForPath);for(let i=nCachedObjects,n=objects.length;i!==n;++i){const object=objects[i];bindingsForPath[i]=new PropertyBinding(object,path,parsedPath)}return bindingsForPath}unsubscribe_(path){const indicesByPath=this._bindingsIndicesByPath,index=indicesByPath[path];if(index!==undefined){const paths=this._paths,parsedPaths=this._parsedPaths,bindings=this._bindings,lastBindingsIndex=bindings.length-1,lastBindings=bindings[lastBindingsIndex],lastBindingsPath=path[lastBindingsIndex];indicesByPath[lastBindingsPath]=index;bindings[index]=lastBindings;bindings.pop();parsedPaths[index]=parsedPaths[lastBindingsIndex];parsedPaths.pop();paths[index]=paths[lastBindingsIndex];paths.pop()}}}class AnimationAction{constructor(mixer,clip,localRoot=null,blendMode=clip.blendMode){this._mixer=mixer;this._clip=clip;this._localRoot=localRoot;this.blendMode=blendMode;const tracks=clip.tracks,nTracks=tracks.length,interpolants=new Array(nTracks);const interpolantSettings={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let i=0;i!==nTracks;++i){const interpolant=tracks[i].createInterpolant(null);interpolants[i]=interpolant;interpolant.settings=interpolantSettings}this._interpolantSettings=interpolantSettings;this._interpolants=interpolants;this._propertyBindings=new Array(nTracks);this._cacheIndex=null;this._byClipCacheIndex=null;this._timeScaleInterpolant=null;this._weightInterpolant=null;this.loop=LoopRepeat;this._loopCount=-1;this._startTime=null;this.time=0;this.timeScale=1;this._effectiveTimeScale=1;this.weight=1;this._effectiveWeight=1;this.repetitions=Infinity;this.paused=false;this.enabled=true;this.clampWhenFinished=false;this.zeroSlopeAtStart=true;this.zeroSlopeAtEnd=true}play(){this._mixer._activateAction(this);return this}stop(){this._mixer._deactivateAction(this);return this.reset()}reset(){this.paused=false;this.enabled=true;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(time){this._startTime=time;return this}setLoop(mode,repetitions){this.loop=mode;this.repetitions=repetitions;return this}setEffectiveWeight(weight){this.weight=weight;this._effectiveWeight=this.enabled?weight:0;return this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(duration){return this._scheduleFading(duration,0,1)}fadeOut(duration){return this._scheduleFading(duration,1,0)}crossFadeFrom(fadeOutAction,duration,warp=false){fadeOutAction.fadeOut(duration);this.fadeIn(duration);if(warp===true){const fadeInDuration=this._clip.duration,fadeOutDuration=fadeOutAction._clip.duration,startEndRatio=fadeOutDuration/fadeInDuration,endStartRatio=fadeInDuration/fadeOutDuration;fadeOutAction.warp(1,startEndRatio,duration);this.warp(endStartRatio,1,duration)}return this}crossFadeTo(fadeInAction,duration,warp=false){return fadeInAction.crossFadeFrom(this,duration,warp)}stopFading(){const weightInterpolant=this._weightInterpolant;if(weightInterpolant!==null){this._weightInterpolant=null;this._mixer._takeBackControlInterpolant(weightInterpolant)}return this}setEffectiveTimeScale(timeScale){this.timeScale=timeScale;this._effectiveTimeScale=this.paused?0:timeScale;return this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(duration){this.timeScale=this._clip.duration/duration;return this.stopWarping()}syncWith(action){this.time=action.time;this.timeScale=action.timeScale;return this.stopWarping()}halt(duration){return this.warp(this._effectiveTimeScale,0,duration)}warp(startTimeScale,endTimeScale,duration){const mixer=this._mixer,now=mixer.time,timeScale=this.timeScale;let interpolant=this._timeScaleInterpolant;if(interpolant===null){interpolant=mixer._lendControlInterpolant();this._timeScaleInterpolant=interpolant}const times=interpolant.parameterPositions,values=interpolant.sampleValues;times[0]=now;times[1]=now+duration;values[0]=startTimeScale/timeScale;values[1]=endTimeScale/timeScale;return this}stopWarping(){const timeScaleInterpolant=this._timeScaleInterpolant;if(timeScaleInterpolant!==null){this._timeScaleInterpolant=null;this._mixer._takeBackControlInterpolant(timeScaleInterpolant)}return this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(time,deltaTime,timeDirection,accuIndex){if(!this.enabled){this._updateWeight(time);return}const startTime=this._startTime;if(startTime!==null){const timeRunning=(time-startTime)*timeDirection;if(timeRunning<0||timeDirection===0){deltaTime=0}else{this._startTime=null;deltaTime=timeDirection*timeRunning}}deltaTime*=this._updateTimeScale(time);const clipTime=this._updateTime(deltaTime);const weight=this._updateWeight(time);if(weight>0){const interpolants=this._interpolants;const propertyMixers=this._propertyBindings;switch(this.blendMode){case AdditiveAnimationBlendMode:for(let j=0,m=interpolants.length;j!==m;++j){interpolants[j].evaluate(clipTime);propertyMixers[j].accumulateAdditive(weight)}break;case NormalAnimationBlendMode:default:for(let j=0,m=interpolants.length;j!==m;++j){interpolants[j].evaluate(clipTime);propertyMixers[j].accumulate(accuIndex,weight)}}}}_updateWeight(time){let weight=0;if(this.enabled){weight=this.weight;const interpolant=this._weightInterpolant;if(interpolant!==null){const interpolantValue=interpolant.evaluate(time)[0];weight*=interpolantValue;if(time>interpolant.parameterPositions[1]){this.stopFading();if(interpolantValue===0){this.enabled=false}}}}this._effectiveWeight=weight;return weight}_updateTimeScale(time){let timeScale=0;if(!this.paused){timeScale=this.timeScale;const interpolant=this._timeScaleInterpolant;if(interpolant!==null){const interpolantValue=interpolant.evaluate(time)[0];timeScale*=interpolantValue;if(time>interpolant.parameterPositions[1]){this.stopWarping();if(timeScale===0){this.paused=true}else{this.timeScale=timeScale}}}}this._effectiveTimeScale=timeScale;return timeScale}_updateTime(deltaTime){const duration=this._clip.duration;const loop=this.loop;let time=this.time+deltaTime;let loopCount=this._loopCount;const pingPong=loop===LoopPingPong;if(deltaTime===0){if(loopCount===-1)return time;return pingPong&&(loopCount&1)===1?duration-time:time}if(loop===LoopOnce){if(loopCount===-1){this._loopCount=0;this._setEndings(true,true,false)}handle_stop:{if(time>=duration){time=duration}else if(time<0){time=0}else{this.time=time;break handle_stop}if(this.clampWhenFinished)this.paused=true;else this.enabled=false;this.time=time;this._mixer.dispatchEvent({type:"finished",action:this,direction:deltaTime<0?-1:1})}}else{if(loopCount===-1){if(deltaTime>=0){loopCount=0;this._setEndings(true,this.repetitions===0,pingPong)}else{this._setEndings(this.repetitions===0,true,pingPong)}}if(time>=duration||time<0){const loopDelta=Math.floor(time/duration);time-=duration*loopDelta;loopCount+=Math.abs(loopDelta);const pending=this.repetitions-loopCount;if(pending<=0){if(this.clampWhenFinished)this.paused=true;else this.enabled=false;time=deltaTime>0?duration:0;this.time=time;this._mixer.dispatchEvent({type:"finished",action:this,direction:deltaTime>0?1:-1})}else{if(pending===1){const atStart=deltaTime<0;this._setEndings(atStart,!atStart,pingPong)}else{this._setEndings(false,false,pingPong)}this._loopCount=loopCount;this.time=time;this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:loopDelta})}}else{this.time=time}if(pingPong&&(loopCount&1)===1){return duration-time}}return time}_setEndings(atStart,atEnd,pingPong){const settings=this._interpolantSettings;if(pingPong){settings.endingStart=ZeroSlopeEnding;settings.endingEnd=ZeroSlopeEnding}else{if(atStart){settings.endingStart=this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding}else{settings.endingStart=WrapAroundEnding}if(atEnd){settings.endingEnd=this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding}else{settings.endingEnd=WrapAroundEnding}}}_scheduleFading(duration,weightNow,weightThen){const mixer=this._mixer,now=mixer.time;let interpolant=this._weightInterpolant;if(interpolant===null){interpolant=mixer._lendControlInterpolant();this._weightInterpolant=interpolant}const times=interpolant.parameterPositions,values=interpolant.sampleValues;times[0]=now;values[0]=weightNow;times[1]=now+duration;values[1]=weightThen;return this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher{constructor(root){super();this._root=root;this._initMemoryManager();this._accuIndex=0;this.time=0;this.timeScale=1}_bindAction(action,prototypeAction){const root=action._localRoot||this._root,tracks=action._clip.tracks,nTracks=tracks.length,bindings=action._propertyBindings,interpolants=action._interpolants,rootUuid=root.uuid,bindingsByRoot=this._bindingsByRootAndName;let bindingsByName=bindingsByRoot[rootUuid];if(bindingsByName===undefined){bindingsByName={};bindingsByRoot[rootUuid]=bindingsByName}for(let i=0;i!==nTracks;++i){const track=tracks[i],trackName=track.name;let binding=bindingsByName[trackName];if(binding!==undefined){++binding.referenceCount;bindings[i]=binding}else{binding=bindings[i];if(binding!==undefined){if(binding._cacheIndex===null){++binding.referenceCount;this._addInactiveBinding(binding,rootUuid,trackName)}continue}const path=prototypeAction&&prototypeAction._propertyBindings[i].binding.parsedPath;binding=new PropertyMixer(PropertyBinding.create(root,trackName,path),track.ValueTypeName,track.getValueSize());++binding.referenceCount;this._addInactiveBinding(binding,rootUuid,trackName);bindings[i]=binding}interpolants[i].resultBuffer=binding.buffer}}_activateAction(action){if(!this._isActiveAction(action)){if(action._cacheIndex===null){const rootUuid=(action._localRoot||this._root).uuid,clipUuid=action._clip.uuid,actionsForClip=this._actionsByClip[clipUuid];this._bindAction(action,actionsForClip&&actionsForClip.knownActions[0]);this._addInactiveAction(action,clipUuid,rootUuid)}const bindings=action._propertyBindings;for(let i=0,n=bindings.length;i!==n;++i){const binding=bindings[i];if(binding.useCount++===0){this._lendBinding(binding);binding.saveOriginalState()}}this._lendAction(action)}}_deactivateAction(action){if(this._isActiveAction(action)){const bindings=action._propertyBindings;for(let i=0,n=bindings.length;i!==n;++i){const binding=bindings[i];if(--binding.useCount===0){binding.restoreOriginalState();this._takeBackBinding(binding)}}this._takeBackAction(action)}}_initMemoryManager(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;const scope=this;this.stats={actions:{get total(){return scope._actions.length},get inUse(){return scope._nActiveActions}},bindings:{get total(){return scope._bindings.length},get inUse(){return scope._nActiveBindings}},controlInterpolants:{get total(){return scope._controlInterpolants.length},get inUse(){return scope._nActiveControlInterpolants}}}}_isActiveAction(action){const index=action._cacheIndex;return index!==null&&index=0;--i){actions[i].stop()}return this}update(deltaTime){deltaTime*=this.timeScale;const actions=this._actions,nActions=this._nActiveActions,time=this.time+=deltaTime,timeDirection=Math.sign(deltaTime),accuIndex=this._accuIndex^=1;for(let i=0;i!==nActions;++i){const action=actions[i];action._update(time,deltaTime,timeDirection,accuIndex)}const bindings=this._bindings,nBindings=this._nActiveBindings;for(let i=0;i!==nBindings;++i){bindings[i].apply(accuIndex)}return this}setTime(time){this.time=0;for(let i=0;i=this.min.x&&point.x<=this.max.x&&point.y>=this.min.y&&point.y<=this.max.y}containsBox(box){return this.min.x<=box.min.x&&box.max.x<=this.max.x&&this.min.y<=box.min.y&&box.max.y<=this.max.y}getParameter(point,target){return target.set((point.x-this.min.x)/(this.max.x-this.min.x),(point.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(box){return box.max.x>=this.min.x&&box.min.x<=this.max.x&&box.max.y>=this.min.y&&box.min.y<=this.max.y}clampPoint(point,target){return target.copy(point).clamp(this.min,this.max)}distanceToPoint(point){return this.clampPoint(point,_vector$4).distanceTo(point)}intersect(box){this.min.max(box.min);this.max.min(box.max);if(this.isEmpty())this.makeEmpty();return this}union(box){this.min.min(box.min);this.max.max(box.max);return this}translate(offset){this.min.add(offset);this.max.add(offset);return this}equals(box){return box.min.equals(this.min)&&box.max.equals(this.max)}}const _startP=new Vector3;const _startEnd=new Vector3;const _d1=new Vector3;const _d2=new Vector3;const _r=new Vector3;const _c1=new Vector3;const _c2=new Vector3;class Line3{constructor(start=new Vector3,end=new Vector3){this.start=start;this.end=end}set(start,end){this.start.copy(start);this.end.copy(end);return this}copy(line){this.start.copy(line.start);this.end.copy(line.end);return this}getCenter(target){return target.addVectors(this.start,this.end).multiplyScalar(0.5)}delta(target){return target.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,target){return this.delta(target).multiplyScalar(t).add(this.start)}closestPointToPointParameter(point,clampToLine){_startP.subVectors(point,this.start);_startEnd.subVectors(this.end,this.start);const startEnd2=_startEnd.dot(_startEnd);const startEnd_startP=_startEnd.dot(_startP);let t=startEnd_startP/startEnd2;if(clampToLine){t=clamp(t,0,1)}return t}closestPointToPoint(point,clampToLine,target){const t=this.closestPointToPointParameter(point,clampToLine);return this.delta(target).multiplyScalar(t).add(this.start)}distanceSqToLine3(line,c1=_c1,c2=_c2){const EPSILON=1e-8*1e-8;let s,t;const p1=this.start;const p2=line.start;const q1=this.end;const q2=line.end;_d1.subVectors(q1,p1);_d2.subVectors(q2,p2);_r.subVectors(p1,p2);const a=_d1.dot(_d1);const e=_d2.dot(_d2);const f=_d2.dot(_r);if(a<=EPSILON&&e<=EPSILON){c1.copy(p1);c2.copy(p2);c1.sub(c2);return c1.dot(c1)}if(a<=EPSILON){s=0;t=f/e;t=clamp(t,0,1)}else{const c=_d1.dot(_r);if(e<=EPSILON){t=0;s=clamp(-c/a,0,1)}else{const b=_d1.dot(_d2);const denom=a*e-b*b;if(denom!==0){s=clamp((b*f-c*e)/denom,0,1)}else{s=0}t=(b*s+f)/e;if(t<0){t=0;s=clamp(-c/a,0,1)}else if(t>1){t=1;s=clamp((b-c)/a,0,1)}}}c1.copy(p1).add(_d1.multiplyScalar(s));c2.copy(p2).add(_d2.multiplyScalar(t));c1.sub(c2);return c1.dot(c1)}applyMatrix4(matrix){this.start.applyMatrix4(matrix);this.end.applyMatrix4(matrix);return this}equals(line){return line.start.equals(this.start)&&line.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(light,color){super();this.light=light;this.matrixAutoUpdate=false;this.color=color;this.type="SpotLightHelper";const geometry=new BufferGeometry;const positions=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let i=0,j=1,l=32;i1){for(let i=0;i0.99999){this.quaternion.set(0,0,0,1)}else if(dir.y<-0.99999){this.quaternion.set(1,0,0,0)}else{_axis.set(dir.z,0,-dir.x).normalize();const radians=Math.acos(dir.y);this.quaternion.setFromAxisAngle(_axis,radians)}}setLength(length,headLength=length*0.2,headWidth=headLength*0.2){this.line.scale.set(1,Math.max(0.0001,length-headLength),1);this.line.updateMatrix();this.cone.scale.set(headWidth,headLength,headWidth);this.cone.position.y=length;this.cone.updateMatrix()}setColor(color){this.line.material.color.set(color);this.cone.material.color.set(color)}copy(source){super.copy(source,false);this.line.copy(source.line);this.cone.copy(source.cone);return this}dispose(){this.line.geometry.dispose();this.line.material.dispose();this.cone.geometry.dispose();this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(size=1){const vertices=[0,0,0,size,0,0,0,0,0,0,size,0,0,0,0,0,0,size];const colors=[1,0,0,1,0.6,0,0,1,0,0.6,1,0,0,0,1,0,0.6,1];const geometry=new BufferGeometry;geometry.setAttribute("position",new Float32BufferAttribute(vertices,3));geometry.setAttribute("color",new Float32BufferAttribute(colors,3));const material=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(geometry,material);this.type="AxesHelper"}setColors(xAxisColor,yAxisColor,zAxisColor){const color=new Color;const array=this.geometry.attributes.color.array;color.set(xAxisColor);color.toArray(array,0);color.toArray(array,3);color.set(yAxisColor);color.toArray(array,6);color.toArray(array,9);color.set(zAxisColor);color.toArray(array,12);color.toArray(array,15);this.geometry.attributes.color.needsUpdate=true;return this}dispose(){this.geometry.dispose();this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath";this.color=new Color;this.subPaths=[];this.currentPath=null}moveTo(x,y){this.currentPath=new Path;this.subPaths.push(this.currentPath);this.currentPath.moveTo(x,y);return this}lineTo(x,y){this.currentPath.lineTo(x,y);return this}quadraticCurveTo(aCPx,aCPy,aX,aY){this.currentPath.quadraticCurveTo(aCPx,aCPy,aX,aY);return this}bezierCurveTo(aCP1x,aCP1y,aCP2x,aCP2y,aX,aY){this.currentPath.bezierCurveTo(aCP1x,aCP1y,aCP2x,aCP2y,aX,aY);return this}splineThru(pts){this.currentPath.splineThru(pts);return this}toShapes(isCCW){function toShapesNoHoles(inSubpaths){const shapes=[];for(let i=0,l=inSubpaths.length;iNumber.EPSILON){if(edgeDy<0){edgeLowPt=inPolygon[q];edgeDx=-edgeDx;edgeHighPt=inPolygon[p];edgeDy=-edgeDy}if(inPt.yedgeHighPt.y)continue;if(inPt.y===edgeLowPt.y){if(inPt.x===edgeLowPt.x)return true}else{const perpEdge=edgeDy*(inPt.x-edgeLowPt.x)-edgeDx*(inPt.y-edgeLowPt.y);if(perpEdge===0)return true;if(perpEdge<0)continue;inside=!inside}}else{if(inPt.y!==edgeLowPt.y)continue;if(edgeHighPt.x<=inPt.x&&inPt.x<=edgeLowPt.x||edgeLowPt.x<=inPt.x&&inPt.x<=edgeHighPt.x)return true}}return inside}const isClockWise=ShapeUtils.isClockWise;const subPaths=this.subPaths;if(subPaths.length===0)return[];let solid,tmpPath,tmpShape;const shapes=[];if(subPaths.length===1){tmpPath=subPaths[0];tmpShape=new Shape;tmpShape.curves=tmpPath.curves;shapes.push(tmpShape);return shapes}let holesFirst=!isClockWise(subPaths[0].getPoints());holesFirst=isCCW?!holesFirst:holesFirst;const betterShapeHoles=[];const newShapes=[];let newShapeHoles=[];let mainIdx=0;let tmpPoints;newShapes[mainIdx]=undefined;newShapeHoles[mainIdx]=[];for(let i=0,l=subPaths.length;i1){let ambiguous=false;let toChange=0;for(let sIdx=0,sLen=newShapes.length;sIdx0&&ambiguous===false){newShapeHoles=betterShapeHoles}}let tmpHoles;for(let i=0,il=newShapes.length;iaspect){texture.repeat.x=1;texture.repeat.y=imageAspect/aspect;texture.offset.x=0;texture.offset.y=(1-texture.repeat.y)/2}else{texture.repeat.x=aspect/imageAspect;texture.repeat.y=1;texture.offset.x=(1-texture.repeat.x)/2;texture.offset.y=0}return texture}function cover(texture,aspect){const imageAspect=texture.image&&texture.image.width?texture.image.width/texture.image.height:1;if(imageAspect>aspect){texture.repeat.x=aspect/imageAspect;texture.repeat.y=1;texture.offset.x=(1-texture.repeat.x)/2;texture.offset.y=0}else{texture.repeat.x=1;texture.repeat.y=imageAspect/aspect;texture.offset.x=0;texture.offset.y=(1-texture.repeat.y)/2}return texture}function fill(texture){texture.repeat.x=1;texture.repeat.y=1;texture.offset.x=0;texture.offset.y=0;return texture}function getByteLength(width,height,format,type){const typeByteLength=getTextureTypeByteLength(type);switch(format){case AlphaFormat:return width*height;case RedFormat:return width*height/typeByteLength.components*typeByteLength.byteLength;case RedIntegerFormat:return width*height/typeByteLength.components*typeByteLength.byteLength;case RGFormat:return width*height*2/typeByteLength.components*typeByteLength.byteLength;case RGIntegerFormat:return width*height*2/typeByteLength.components*typeByteLength.byteLength;case RGBFormat:return width*height*3/typeByteLength.components*typeByteLength.byteLength;case RGBAFormat:return width*height*4/typeByteLength.components*typeByteLength.byteLength;case RGBAIntegerFormat:return width*height*4/typeByteLength.components*typeByteLength.byteLength;case RGB_S3TC_DXT1_Format:case RGBA_S3TC_DXT1_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*8;case RGBA_S3TC_DXT3_Format:case RGBA_S3TC_DXT5_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*16;case RGB_PVRTC_2BPPV1_Format:case RGBA_PVRTC_2BPPV1_Format:return Math.max(width,16)*Math.max(height,8)/4;case RGB_PVRTC_4BPPV1_Format:case RGBA_PVRTC_4BPPV1_Format:return Math.max(width,8)*Math.max(height,8)/2;case RGB_ETC1_Format:case RGB_ETC2_Format:case R11_EAC_Format:case SIGNED_R11_EAC_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*8;case RGBA_ETC2_EAC_Format:case RG11_EAC_Format:case SIGNED_RG11_EAC_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*16;case RGBA_ASTC_4x4_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*16;case RGBA_ASTC_5x4_Format:return Math.floor((width+4)/5)*Math.floor((height+3)/4)*16;case RGBA_ASTC_5x5_Format:return Math.floor((width+4)/5)*Math.floor((height+4)/5)*16;case RGBA_ASTC_6x5_Format:return Math.floor((width+5)/6)*Math.floor((height+4)/5)*16;case RGBA_ASTC_6x6_Format:return Math.floor((width+5)/6)*Math.floor((height+5)/6)*16;case RGBA_ASTC_8x5_Format:return Math.floor((width+7)/8)*Math.floor((height+4)/5)*16;case RGBA_ASTC_8x6_Format:return Math.floor((width+7)/8)*Math.floor((height+5)/6)*16;case RGBA_ASTC_8x8_Format:return Math.floor((width+7)/8)*Math.floor((height+7)/8)*16;case RGBA_ASTC_10x5_Format:return Math.floor((width+9)/10)*Math.floor((height+4)/5)*16;case RGBA_ASTC_10x6_Format:return Math.floor((width+9)/10)*Math.floor((height+5)/6)*16;case RGBA_ASTC_10x8_Format:return Math.floor((width+9)/10)*Math.floor((height+7)/8)*16;case RGBA_ASTC_10x10_Format:return Math.floor((width+9)/10)*Math.floor((height+9)/10)*16;case RGBA_ASTC_12x10_Format:return Math.floor((width+11)/12)*Math.floor((height+9)/10)*16;case RGBA_ASTC_12x12_Format:return Math.floor((width+11)/12)*Math.floor((height+11)/12)*16;case RGBA_BPTC_Format:case RGB_BPTC_SIGNED_Format:case RGB_BPTC_UNSIGNED_Format:return Math.ceil(width/4)*Math.ceil(height/4)*16;case RED_RGTC1_Format:case SIGNED_RED_RGTC1_Format:return Math.ceil(width/4)*Math.ceil(height/4)*8;case RED_GREEN_RGTC2_Format:case SIGNED_RED_GREEN_RGTC2_Format:return Math.ceil(width/4)*Math.ceil(height/4)*16;}throw new Error(`Unable to determine texture byte length for ${format} format.`)}function getTextureTypeByteLength(type){switch(type){case UnsignedByteType:case ByteType:return{byteLength:1,components:1};case UnsignedShortType:case ShortType:case HalfFloatType:return{byteLength:2,components:1};case UnsignedShort4444Type:case UnsignedShort5551Type:return{byteLength:2,components:4};case UnsignedIntType:case IntType:case FloatType:return{byteLength:4,components:1};case UnsignedInt5999Type:case UnsignedInt101111Type:return{byteLength:4,components:3};}throw new Error(`Unknown texture type ${type}.`)}class TextureUtils{static contain(texture,aspect){return contain(texture,aspect)}static cover(texture,aspect){return cover(texture,aspect)}static fill(texture){return fill(texture)}static getByteLength(width,height,format,type){return getByteLength(width,height,format,type)}}if(typeof __THREE_DEVTOOLS__!=="undefined"){__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:REVISION}}))}if(typeof window!=="undefined"){if(window.__THREE__){warn("WARNING: Multiple instances of Three.js being imported.")}else{window.__THREE__=REVISION}}function WebGLAnimation(){let context=null;let isAnimating=false;let animationLoop=null;let requestId=null;function onAnimationFrame(time,frame){animationLoop(time,frame);requestId=context.requestAnimationFrame(onAnimationFrame)}return{start:function(){if(isAnimating===true)return;if(animationLoop===null)return;requestId=context.requestAnimationFrame(onAnimationFrame);isAnimating=true},stop:function(){context.cancelAnimationFrame(requestId);isAnimating=false},setAnimationLoop:function(callback){animationLoop=callback},setContext:function(value){context=value}}}function WebGLAttributes(gl){const buffers=new WeakMap;function createBuffer(attribute,bufferType){const array=attribute.array;const usage=attribute.usage;const size=array.byteLength;const buffer=gl.createBuffer();gl.bindBuffer(bufferType,buffer);gl.bufferData(bufferType,array,usage);attribute.onUploadCallback();let type;if(array instanceof Float32Array){type=gl.FLOAT}else if(typeof Float16Array!=="undefined"&&array instanceof Float16Array){type=gl.HALF_FLOAT}else if(array instanceof Uint16Array){if(attribute.isFloat16BufferAttribute){type=gl.HALF_FLOAT}else{type=gl.UNSIGNED_SHORT}}else if(array instanceof Int16Array){type=gl.SHORT}else if(array instanceof Uint32Array){type=gl.UNSIGNED_INT}else if(array instanceof Int32Array){type=gl.INT}else if(array instanceof Int8Array){type=gl.BYTE}else if(array instanceof Uint8Array){type=gl.UNSIGNED_BYTE}else if(array instanceof Uint8ClampedArray){type=gl.UNSIGNED_BYTE}else{throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+array)}return{buffer:buffer,type:type,bytesPerElement:array.BYTES_PER_ELEMENT,version:attribute.version,size:size}}function updateBuffer(buffer,attribute,bufferType){const array=attribute.array;const updateRanges=attribute.updateRanges;gl.bindBuffer(bufferType,buffer);if(updateRanges.length===0){gl.bufferSubData(bufferType,0,array)}else{updateRanges.sort((a,b)=>a.start-b.start);let mergeIndex=0;for(let i=1;i0;background=(usePMREM?cubeuvmaps:cubemaps).get(background)}return background}function render(scene){let forceClear=false;const background=getBackground(scene);if(background===null){setClear(clearColor,clearAlpha)}else if(background&&background.isColor){setClear(background,1);forceClear=true}const environmentBlendMode=renderer.xr.getEnvironmentBlendMode();if(environmentBlendMode==="additive"){state.buffers.color.setClear(0,0,0,1,premultipliedAlpha)}else if(environmentBlendMode==="alpha-blend"){state.buffers.color.setClear(0,0,0,0,premultipliedAlpha)}if(renderer.autoClear||forceClear){state.buffers.depth.setTest(true);state.buffers.depth.setMask(true);state.buffers.color.setMask(true);renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil)}}function addToRenderList(renderList,scene){const background=getBackground(scene);if(background&&(background.isCubeTexture||background.mapping===CubeUVReflectionMapping)){if(boxMesh===undefined){boxMesh=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.backgroundCube.uniforms),vertexShader:ShaderLib.backgroundCube.vertexShader,fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:false,depthWrite:false,fog:false,allowOverride:false}));boxMesh.geometry.deleteAttribute("normal");boxMesh.geometry.deleteAttribute("uv");boxMesh.onBeforeRender=function(renderer,scene,camera){this.matrixWorld.copyPosition(camera.matrixWorld)};Object.defineProperty(boxMesh.material,"envMap",{get:function(){return this.uniforms.envMap.value}});objects.update(boxMesh)}_e1$1.copy(scene.backgroundRotation);_e1$1.x*=-1;_e1$1.y*=-1;_e1$1.z*=-1;if(background.isCubeTexture&&background.isRenderTargetTexture===false){_e1$1.y*=-1;_e1$1.z*=-1}boxMesh.material.uniforms.envMap.value=background;boxMesh.material.uniforms.flipEnvMap.value=background.isCubeTexture&&background.isRenderTargetTexture===false?-1:1;boxMesh.material.uniforms.backgroundBlurriness.value=scene.backgroundBlurriness;boxMesh.material.uniforms.backgroundIntensity.value=scene.backgroundIntensity;boxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1));boxMesh.material.toneMapped=ColorManagement.getTransfer(background.colorSpace)!==SRGBTransfer;if(currentBackground!==background||currentBackgroundVersion!==background.version||currentTonemapping!==renderer.toneMapping){boxMesh.material.needsUpdate=true;currentBackground=background;currentBackgroundVersion=background.version;currentTonemapping=renderer.toneMapping}boxMesh.layers.enableAll();renderList.unshift(boxMesh,boxMesh.geometry,boxMesh.material,0,0,null)}else if(background&&background.isTexture){if(planeMesh===undefined){planeMesh=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:false,depthWrite:false,fog:false,allowOverride:false}));planeMesh.geometry.deleteAttribute("normal");Object.defineProperty(planeMesh.material,"map",{get:function(){return this.uniforms.t2D.value}});objects.update(planeMesh)}planeMesh.material.uniforms.t2D.value=background;planeMesh.material.uniforms.backgroundIntensity.value=scene.backgroundIntensity;planeMesh.material.toneMapped=ColorManagement.getTransfer(background.colorSpace)!==SRGBTransfer;if(background.matrixAutoUpdate===true){background.updateMatrix()}planeMesh.material.uniforms.uvTransform.value.copy(background.matrix);if(currentBackground!==background||currentBackgroundVersion!==background.version||currentTonemapping!==renderer.toneMapping){planeMesh.material.needsUpdate=true;currentBackground=background;currentBackgroundVersion=background.version;currentTonemapping=renderer.toneMapping}planeMesh.layers.enableAll();renderList.unshift(planeMesh,planeMesh.geometry,planeMesh.material,0,0,null)}}function setClear(color,alpha){color.getRGB(_rgb,getUnlitUniformColorSpace(renderer));state.buffers.color.setClear(_rgb.r,_rgb.g,_rgb.b,alpha,premultipliedAlpha)}function dispose(){if(boxMesh!==undefined){boxMesh.geometry.dispose();boxMesh.material.dispose();boxMesh=undefined}if(planeMesh!==undefined){planeMesh.geometry.dispose();planeMesh.material.dispose();planeMesh=undefined}}return{getClearColor:function(){return clearColor},setClearColor:function(color,alpha=1){clearColor.set(color);clearAlpha=alpha;setClear(clearColor,clearAlpha)},getClearAlpha:function(){return clearAlpha},setClearAlpha:function(alpha){clearAlpha=alpha;setClear(clearColor,clearAlpha)},render:render,addToRenderList:addToRenderList,dispose:dispose}}function WebGLBindingStates(gl,attributes){const maxVertexAttributes=gl.getParameter(gl.MAX_VERTEX_ATTRIBS);const bindingStates={};const defaultState=createBindingState(null);let currentState=defaultState;let forceUpdate=false;function setup(object,material,program,geometry,index){let updateBuffers=false;const state=getBindingState(geometry,program,material);if(currentState!==state){currentState=state;bindVertexArrayObject(currentState.object)}updateBuffers=needsUpdate(object,geometry,program,index);if(updateBuffers)saveCache(object,geometry,program,index);if(index!==null){attributes.update(index,gl.ELEMENT_ARRAY_BUFFER)}if(updateBuffers||forceUpdate){forceUpdate=false;setupVertexAttributes(object,material,program,geometry);if(index!==null){gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,attributes.get(index).buffer)}}}function createVertexArrayObject(){return gl.createVertexArray()}function bindVertexArrayObject(vao){return gl.bindVertexArray(vao)}function deleteVertexArrayObject(vao){return gl.deleteVertexArray(vao)}function getBindingState(geometry,program,material){const wireframe=material.wireframe===true;let programMap=bindingStates[geometry.id];if(programMap===undefined){programMap={};bindingStates[geometry.id]=programMap}let stateMap=programMap[program.id];if(stateMap===undefined){stateMap={};programMap[program.id]=stateMap}let state=stateMap[wireframe];if(state===undefined){state=createBindingState(createVertexArrayObject());stateMap[wireframe]=state}return state}function createBindingState(vao){const newAttributes=[];const enabledAttributes=[];const attributeDivisors=[];for(let i=0;i=0){const cachedAttribute=cachedAttributes[name];let geometryAttribute=geometryAttributes[name];if(geometryAttribute===undefined){if(name==="instanceMatrix"&&object.instanceMatrix)geometryAttribute=object.instanceMatrix;if(name==="instanceColor"&&object.instanceColor)geometryAttribute=object.instanceColor}if(cachedAttribute===undefined)return true;if(cachedAttribute.attribute!==geometryAttribute)return true;if(geometryAttribute&&cachedAttribute.data!==geometryAttribute.data)return true;attributesNum++}}if(currentState.attributesNum!==attributesNum)return true;if(currentState.index!==index)return true;return false}function saveCache(object,geometry,program,index){const cache={};const attributes=geometry.attributes;let attributesNum=0;const programAttributes=program.getAttributes();for(const name in programAttributes){const programAttribute=programAttributes[name];if(programAttribute.location>=0){let attribute=attributes[name];if(attribute===undefined){if(name==="instanceMatrix"&&object.instanceMatrix)attribute=object.instanceMatrix;if(name==="instanceColor"&&object.instanceColor)attribute=object.instanceColor}const data={};data.attribute=attribute;if(attribute&&attribute.data){data.data=attribute.data}cache[name]=data;attributesNum++}}currentState.attributes=cache;currentState.attributesNum=attributesNum;currentState.index=index}function initAttributes(){const newAttributes=currentState.newAttributes;for(let i=0,il=newAttributes.length;i=0){let geometryAttribute=geometryAttributes[name];if(geometryAttribute===undefined){if(name==="instanceMatrix"&&object.instanceMatrix)geometryAttribute=object.instanceMatrix;if(name==="instanceColor"&&object.instanceColor)geometryAttribute=object.instanceColor}if(geometryAttribute!==undefined){const normalized=geometryAttribute.normalized;const size=geometryAttribute.itemSize;const attribute=attributes.get(geometryAttribute);if(attribute===undefined)continue;const buffer=attribute.buffer;const type=attribute.type;const bytesPerElement=attribute.bytesPerElement;const integer=type===gl.INT||type===gl.UNSIGNED_INT||geometryAttribute.gpuType===IntType;if(geometryAttribute.isInterleavedBufferAttribute){const data=geometryAttribute.data;const stride=data.stride;const offset=geometryAttribute.offset;if(data.isInstancedInterleavedBuffer){for(let i=0;i0&&gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER,gl.HIGH_FLOAT).precision>0){return"highp"}precision="mediump"}if(precision==="mediump"){if(gl.getShaderPrecisionFormat(gl.VERTEX_SHADER,gl.MEDIUM_FLOAT).precision>0&&gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER,gl.MEDIUM_FLOAT).precision>0){return"mediump"}}return"lowp"}let precision=parameters.precision!==undefined?parameters.precision:"highp";const maxPrecision=getMaxPrecision(precision);if(maxPrecision!==precision){warn("WebGLRenderer:",precision,"not supported, using",maxPrecision,"instead.");precision=maxPrecision}const logarithmicDepthBuffer=parameters.logarithmicDepthBuffer===true;const reversedDepthBuffer=parameters.reversedDepthBuffer===true&&extensions.has("EXT_clip_control");const maxTextures=gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);const maxVertexTextures=gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);const maxTextureSize=gl.getParameter(gl.MAX_TEXTURE_SIZE);const maxCubemapSize=gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);const maxAttributes=gl.getParameter(gl.MAX_VERTEX_ATTRIBS);const maxVertexUniforms=gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);const maxVaryings=gl.getParameter(gl.MAX_VARYING_VECTORS);const maxFragmentUniforms=gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);const maxSamples=gl.getParameter(gl.MAX_SAMPLES);const samples=gl.getParameter(gl.SAMPLES);return{isWebGL2:true,getMaxAnisotropy:getMaxAnisotropy,getMaxPrecision:getMaxPrecision,textureFormatReadable:textureFormatReadable,textureTypeReadable:textureTypeReadable,precision:precision,logarithmicDepthBuffer:logarithmicDepthBuffer,reversedDepthBuffer:reversedDepthBuffer,maxTextures:maxTextures,maxVertexTextures:maxVertexTextures,maxTextureSize:maxTextureSize,maxCubemapSize:maxCubemapSize,maxAttributes:maxAttributes,maxVertexUniforms:maxVertexUniforms,maxVaryings:maxVaryings,maxFragmentUniforms:maxFragmentUniforms,maxSamples:maxSamples,samples:samples}}function WebGLClipping(properties){const scope=this;let globalState=null,numGlobalPlanes=0,localClippingEnabled=false,renderingShadows=false;const plane=new Plane,viewNormalMatrix=new Matrix3,uniform={value:null,needsUpdate:false};this.uniform=uniform;this.numPlanes=0;this.numIntersection=0;this.init=function(planes,enableLocalClipping){const enabled=planes.length!==0||enableLocalClipping||numGlobalPlanes!==0||localClippingEnabled;localClippingEnabled=enableLocalClipping;numGlobalPlanes=planes.length;return enabled};this.beginShadows=function(){renderingShadows=true;projectPlanes(null)};this.endShadows=function(){renderingShadows=false};this.setGlobalState=function(planes,camera){globalState=projectPlanes(planes,camera,0)};this.setState=function(material,camera,useCache){const planes=material.clippingPlanes,clipIntersection=material.clipIntersection,clipShadows=material.clipShadows;const materialProperties=properties.get(material);if(!localClippingEnabled||planes===null||planes.length===0||renderingShadows&&!clipShadows){if(renderingShadows){projectPlanes(null)}else{resetGlobalState()}}else{const nGlobal=renderingShadows?0:numGlobalPlanes,lGlobal=nGlobal*4;let dstArray=materialProperties.clippingState||null;uniform.value=dstArray;dstArray=projectPlanes(planes,camera,lGlobal,useCache);for(let i=0;i!==lGlobal;++i){dstArray[i]=globalState[i]}materialProperties.clippingState=dstArray;this.numIntersection=clipIntersection?this.numPlanes:0;this.numPlanes+=nGlobal}};function resetGlobalState(){if(uniform.value!==globalState){uniform.value=globalState;uniform.needsUpdate=numGlobalPlanes>0}scope.numPlanes=numGlobalPlanes;scope.numIntersection=0}function projectPlanes(planes,camera,dstOffset,skipTransform){const nPlanes=planes!==null?planes.length:0;let dstArray=null;if(nPlanes!==0){dstArray=uniform.value;if(skipTransform!==true||dstArray===null){const flatSize=dstOffset+nPlanes*4,viewMatrix=camera.matrixWorldInverse;viewNormalMatrix.getNormalMatrix(viewMatrix);if(dstArray===null||dstArray.length0){const renderTarget=new WebGLCubeRenderTarget(image.height);renderTarget.fromEquirectangularTexture(renderer,texture);cubemaps.set(texture,renderTarget);texture.addEventListener("dispose",onTextureDispose);return mapTextureMapping(renderTarget.texture,texture.mapping)}else{return null}}}}return texture}function onTextureDispose(event){const texture=event.target;texture.removeEventListener("dispose",onTextureDispose);const cubemap=cubemaps.get(texture);if(cubemap!==undefined){cubemaps.delete(texture);cubemap.dispose()}}function dispose(){cubemaps=new WeakMap}return{get:get,dispose:dispose}}const LOD_MIN=4;const EXTRA_LOD_SIGMA=[0.125,0.215,0.35,0.446,0.526,0.582];const MAX_SAMPLES=20;const GGX_SAMPLES=256;const _flatCamera=new OrthographicCamera;const _clearColor=new Color;let _oldTarget=null;let _oldActiveCubeFace=0;let _oldActiveMipmapLevel=0;let _oldXrEnabled=false;const _origin=new Vector3;class PMREMGenerator{constructor(renderer){this._renderer=renderer;this._pingPongRenderTarget=null;this._lodMax=0;this._cubeSize=0;this._sizeLods=[];this._sigmas=[];this._lodMeshes=[];this._backgroundBox=null;this._cubemapMaterial=null;this._equirectMaterial=null;this._blurMaterial=null;this._ggxMaterial=null}fromScene(scene,sigma=0,near=0.1,far=100,options={}){const{size=256,position=_origin}=options;_oldTarget=this._renderer.getRenderTarget();_oldActiveCubeFace=this._renderer.getActiveCubeFace();_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel();_oldXrEnabled=this._renderer.xr.enabled;this._renderer.xr.enabled=false;this._setSize(size);const cubeUVRenderTarget=this._allocateTargets();cubeUVRenderTarget.depthBuffer=true;this._sceneToCubeUV(scene,near,far,cubeUVRenderTarget,position);if(sigma>0){this._blur(cubeUVRenderTarget,0,0,sigma)}this._applyPMREM(cubeUVRenderTarget);this._cleanup(cubeUVRenderTarget);return cubeUVRenderTarget}fromEquirectangular(equirectangular,renderTarget=null){return this._fromTexture(equirectangular,renderTarget)}fromCubemap(cubemap,renderTarget=null){return this._fromTexture(cubemap,renderTarget)}compileCubemapShader(){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial();this._compileMaterial(this._cubemapMaterial)}}compileEquirectangularShader(){if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial();this._compileMaterial(this._equirectMaterial)}}dispose(){this._dispose();if(this._cubemapMaterial!==null)this._cubemapMaterial.dispose();if(this._equirectMaterial!==null)this._equirectMaterial.dispose();if(this._backgroundBox!==null){this._backgroundBox.geometry.dispose();this._backgroundBox.material.dispose()}}_setSize(cubeSize){this._lodMax=Math.floor(Math.log2(cubeSize));this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){if(this._blurMaterial!==null)this._blurMaterial.dispose();if(this._ggxMaterial!==null)this._ggxMaterial.dispose();if(this._pingPongRenderTarget!==null)this._pingPongRenderTarget.dispose();for(let i=0;i2?size:0,size,size);renderer.setRenderTarget(cubeUVRenderTarget);if(useSolidColor){renderer.render(backgroundBox,cubeCamera)}renderer.render(scene,cubeCamera)}renderer.toneMapping=toneMapping;renderer.autoClear=originalAutoClear;scene.background=background}_textureToCubeUV(texture,cubeUVRenderTarget){const renderer=this._renderer;const isCubeTexture=texture.mapping===CubeReflectionMapping||texture.mapping===CubeRefractionMapping;if(isCubeTexture){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial()}this._cubemapMaterial.uniforms.flipEnvMap.value=texture.isRenderTargetTexture===false?-1:1}else{if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial()}}const material=isCubeTexture?this._cubemapMaterial:this._equirectMaterial;const mesh=this._lodMeshes[0];mesh.material=material;const uniforms=material.uniforms;uniforms["envMap"].value=texture;const size=this._cubeSize;_setViewport(cubeUVRenderTarget,0,0,3*size,2*size);renderer.setRenderTarget(cubeUVRenderTarget);renderer.render(mesh,_flatCamera)}_applyPMREM(cubeUVRenderTarget){const renderer=this._renderer;const autoClear=renderer.autoClear;renderer.autoClear=false;const n=this._lodMeshes.length;for(let i=1;i_lodMax-LOD_MIN?lodOut-_lodMax+LOD_MIN:0);const y=4*(this._cubeSize-outputSize);ggxUniforms["envMap"].value=cubeUVRenderTarget.texture;ggxUniforms["roughness"].value=adjustedRoughness;ggxUniforms["mipInt"].value=_lodMax-lodIn;_setViewport(pingPongRenderTarget,x,y,3*outputSize,2*outputSize);renderer.setRenderTarget(pingPongRenderTarget);renderer.render(ggxMesh,_flatCamera);ggxUniforms["envMap"].value=pingPongRenderTarget.texture;ggxUniforms["roughness"].value=0;ggxUniforms["mipInt"].value=_lodMax-lodOut;_setViewport(cubeUVRenderTarget,x,y,3*outputSize,2*outputSize);renderer.setRenderTarget(cubeUVRenderTarget);renderer.render(ggxMesh,_flatCamera)}_blur(cubeUVRenderTarget,lodIn,lodOut,sigma,poleAxis){const pingPongRenderTarget=this._pingPongRenderTarget;this._halfBlur(cubeUVRenderTarget,pingPongRenderTarget,lodIn,lodOut,sigma,"latitudinal",poleAxis);this._halfBlur(pingPongRenderTarget,cubeUVRenderTarget,lodOut,lodOut,sigma,"longitudinal",poleAxis)}_halfBlur(targetIn,targetOut,lodIn,lodOut,sigmaRadians,direction,poleAxis){const renderer=this._renderer;const blurMaterial=this._blurMaterial;if(direction!=="latitudinal"&&direction!=="longitudinal"){error("blur direction must be either latitudinal or longitudinal!")}const STANDARD_DEVIATIONS=3;const blurMesh=this._lodMeshes[lodOut];blurMesh.material=blurMaterial;const blurUniforms=blurMaterial.uniforms;const pixels=this._sizeLods[lodIn]-1;const radiansPerPixel=isFinite(sigmaRadians)?Math.PI/(2*pixels):2*Math.PI/(2*MAX_SAMPLES-1);const sigmaPixels=sigmaRadians/radiansPerPixel;const samples=isFinite(sigmaRadians)?1+Math.floor(STANDARD_DEVIATIONS*sigmaPixels):MAX_SAMPLES;if(samples>MAX_SAMPLES){warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`)}const weights=[];let sum=0;for(let i=0;i_lodMax-LOD_MIN?lodOut-_lodMax+LOD_MIN:0);const y=4*(this._cubeSize-outputSize);_setViewport(targetOut,x,y,3*outputSize,2*outputSize);renderer.setRenderTarget(targetOut);renderer.render(blurMesh,_flatCamera)}}function _createPlanes(lodMax){const sizeLods=[];const sigmas=[];const lodMeshes=[];let lod=lodMax;const totalLods=lodMax-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let i=0;ilodMax-LOD_MIN){sigma=EXTRA_LOD_SIGMA[i-lodMax+LOD_MIN-1]}else if(i===0){sigma=0}sigmas.push(sigma);const texelSize=1/(sizeLod-2);const min=-texelSize;const max=1+texelSize;const uv1=[min,min,max,min,max,max,min,min,max,max,min,max];const cubeFaces=6;const vertices=6;const positionSize=3;const uvSize=2;const faceIndexSize=1;const position=new Float32Array(positionSize*vertices*cubeFaces);const uv=new Float32Array(uvSize*vertices*cubeFaces);const faceIndex=new Float32Array(faceIndexSize*vertices*cubeFaces);for(let face=0;face2?0:-1;const coordinates=[x,y,0,x+2/3,y,0,x+2/3,y+1,0,x,y,0,x+2/3,y+1,0,x,y+1,0];position.set(coordinates,positionSize*vertices*face);uv.set(uv1,uvSize*vertices*face);const fill=[face,face,face,face,face,face];faceIndex.set(fill,faceIndexSize*vertices*face)}const planes=new BufferGeometry;planes.setAttribute("position",new BufferAttribute(position,positionSize));planes.setAttribute("uv",new BufferAttribute(uv,uvSize));planes.setAttribute("faceIndex",new BufferAttribute(faceIndex,faceIndexSize));lodMeshes.push(new Mesh(planes,null));if(lod>LOD_MIN){lod--}}return{lodMeshes,sizeLods,sigmas}}function _createRenderTarget(width,height,params){const cubeUVRenderTarget=new WebGLRenderTarget(width,height,params);cubeUVRenderTarget.texture.mapping=CubeUVReflectionMapping;cubeUVRenderTarget.texture.name="PMREM.cubeUv";cubeUVRenderTarget.scissorTest=true;return cubeUVRenderTarget}function _setViewport(target,x,y,width,height){target.viewport.set(x,y,width,height);target.scissor.set(x,y,width,height)}function _getGGXShader(lodMax,width,height){const shaderMaterial=new ShaderMaterial({name:"PMREMGGXConvolution",defines:{"GGX_SAMPLES":GGX_SAMPLES,"CUBEUV_TEXEL_WIDTH":1/width,"CUBEUV_TEXEL_HEIGHT":1/height,"CUBEUV_MAX_MIP":`${lodMax}.0`},uniforms:{"envMap":{value:null},"roughness":{value:0},"mipInt":{value:0}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision highp float; precision highp int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform float roughness; uniform float mipInt; #define ENVMAP_TYPE_CUBE_UV #include #define PI 3.14159265359 // Van der Corput radical inverse float radicalInverse_VdC(uint bits) { bits = (bits << 16u) | (bits >> 16u); bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); return float(bits) * 2.3283064365386963e-10; // / 0x100000000 } // Hammersley sequence vec2 hammersley(uint i, uint N) { return vec2(float(i) / float(N), radicalInverse_VdC(i)); } // GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { float alpha = roughness * roughness; // Section 3.2: Transform view direction to hemisphere configuration vec3 Vh = normalize(vec3(alpha * V.x, alpha * V.y, V.z)); // Section 4.1: Orthonormal basis float lensq = Vh.x * Vh.x + Vh.y * Vh.y; vec3 T1 = lensq > 0.0 ? vec3(-Vh.y, Vh.x, 0.0) / sqrt(lensq) : vec3(1.0, 0.0, 0.0); vec3 T2 = cross(Vh, T1); // Section 4.2: Parameterization of projected area float r = sqrt(Xi.x); float phi = 2.0 * PI * Xi.y; float t1 = r * cos(phi); float t2 = r * sin(phi); float s = 0.5 * (1.0 + Vh.z); t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2; // Section 4.3: Reprojection onto hemisphere vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * Vh; // Section 3.4: Transform back to ellipsoid configuration return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z))); } void main() { vec3 N = normalize(vOutputDirection); vec3 V = N; // Assume view direction equals normal for pre-filtering vec3 prefilteredColor = vec3(0.0); float totalWeight = 0.0; // For very low roughness, just sample the environment directly if (roughness < 0.001) { gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0); return; } // Tangent space basis for VNDF sampling vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); vec3 tangent = normalize(cross(up, N)); vec3 bitangent = cross(N, tangent); for(uint i = 0u; i < uint(GGX_SAMPLES); i++) { vec2 Xi = hammersley(i, uint(GGX_SAMPLES)); // For PMREM, V = N, so in tangent space V is always (0, 0, 1) vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness); // Transform H back to world space vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z); vec3 L = normalize(2.0 * dot(V, H) * H - V); float NdotL = max(dot(N, L), 0.0); if(NdotL > 0.0) { // Sample environment at fixed mip level // VNDF importance sampling handles the distribution filtering vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt); // Weight by NdotL for the split-sum approximation // VNDF PDF naturally accounts for the visible microfacet distribution prefilteredColor += sampleColor * NdotL; totalWeight += NdotL; } } if (totalWeight > 0.0) { prefilteredColor = prefilteredColor / totalWeight; } gl_FragColor = vec4(prefilteredColor, 1.0); } `,blending:NoBlending,depthTest:false,depthWrite:false});return shaderMaterial}function _getBlurShader(lodMax,width,height){const weights=new Float32Array(MAX_SAMPLES);const poleAxis=new Vector3(0,1,0);const shaderMaterial=new ShaderMaterial({name:"SphericalGaussianBlur",defines:{"n":MAX_SAMPLES,"CUBEUV_TEXEL_WIDTH":1/width,"CUBEUV_TEXEL_HEIGHT":1/height,"CUBEUV_MAX_MIP":`${lodMax}.0`},uniforms:{"envMap":{value:null},"samples":{value:1},"weights":{value:weights},"latitudinal":{value:false},"dTheta":{value:0},"mipInt":{value:0},"poleAxis":{value:poleAxis}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform int samples; uniform float weights[ n ]; uniform bool latitudinal; uniform float dTheta; uniform float mipInt; uniform vec3 poleAxis; #define ENVMAP_TYPE_CUBE_UV #include vec3 getSample( float theta, vec3 axis ) { float cosTheta = cos( theta ); // Rodrigues' axis-angle rotation vec3 sampleDirection = vOutputDirection * cosTheta + cross( axis, vOutputDirection ) * sin( theta ) + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); return bilinearCubeUV( envMap, sampleDirection, mipInt ); } void main() { vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); if ( all( equal( axis, vec3( 0.0 ) ) ) ) { axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); } axis = normalize( axis ); gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); for ( int i = 1; i < n; i++ ) { if ( i >= samples ) { break; } float theta = dTheta * float( i ); gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); } } `,blending:NoBlending,depthTest:false,depthWrite:false});return shaderMaterial}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{"envMap":{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; #include void main() { vec3 outputDirection = normalize( vOutputDirection ); vec2 uv = equirectUv( outputDirection ); gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); } `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{"envMap":{value:null},"flipEnvMap":{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; uniform float flipEnvMap; varying vec3 vOutputDirection; uniform samplerCube envMap; void main() { gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); } `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCommonVertexShader(){return` precision mediump float; precision mediump int; attribute float faceIndex; varying vec3 vOutputDirection; // RH coordinate system; PMREM face-indexing convention vec3 getDirection( vec2 uv, float face ) { uv = 2.0 * uv - 1.0; vec3 direction = vec3( uv, 1.0 ); if ( face == 0.0 ) { direction = direction.zyx; // ( 1, v, u ) pos x } else if ( face == 1.0 ) { direction = direction.xzy; direction.xz *= -1.0; // ( -u, 1, -v ) pos y } else if ( face == 2.0 ) { direction.x *= -1.0; // ( -u, v, 1 ) pos z } else if ( face == 3.0 ) { direction = direction.zyx; direction.xz *= -1.0; // ( -1, v, -u ) neg x } else if ( face == 4.0 ) { direction = direction.xzy; direction.xy *= -1.0; // ( -u, -1, v ) neg y } else if ( face == 5.0 ) { direction.z *= -1.0; // ( u, v, -1 ) neg z } return direction; } void main() { vOutputDirection = getDirection( uv, faceIndex ); gl_Position = vec4( position, 1.0 ); } `}function WebGLCubeUVMaps(renderer){let cubeUVmaps=new WeakMap;let pmremGenerator=null;function get(texture){if(texture&&texture.isTexture){const mapping=texture.mapping;const isEquirectMap=mapping===EquirectangularReflectionMapping||mapping===EquirectangularRefractionMapping;const isCubeMap=mapping===CubeReflectionMapping||mapping===CubeRefractionMapping;if(isEquirectMap||isCubeMap){let renderTarget=cubeUVmaps.get(texture);const currentPMREMVersion=renderTarget!==undefined?renderTarget.texture.pmremVersion:0;if(texture.isRenderTargetTexture&&texture.pmremVersion!==currentPMREMVersion){if(pmremGenerator===null)pmremGenerator=new PMREMGenerator(renderer);renderTarget=isEquirectMap?pmremGenerator.fromEquirectangular(texture,renderTarget):pmremGenerator.fromCubemap(texture,renderTarget);renderTarget.texture.pmremVersion=texture.pmremVersion;cubeUVmaps.set(texture,renderTarget);return renderTarget.texture}else{if(renderTarget!==undefined){return renderTarget.texture}else{const image=texture.image;if(isEquirectMap&&image&&image.height>0||isCubeMap&&image&&isCubeTextureComplete(image)){if(pmremGenerator===null)pmremGenerator=new PMREMGenerator(renderer);renderTarget=isEquirectMap?pmremGenerator.fromEquirectangular(texture):pmremGenerator.fromCubemap(texture);renderTarget.texture.pmremVersion=texture.pmremVersion;cubeUVmaps.set(texture,renderTarget);texture.addEventListener("dispose",onTextureDispose);return renderTarget.texture}else{return null}}}}}return texture}function isCubeTextureComplete(image){let count=0;const length=6;for(let i=0;icapabilities.maxTextureSize){height=Math.ceil(width/capabilities.maxTextureSize);width=capabilities.maxTextureSize}const buffer=new Float32Array(width*height*4*morphTargetsCount);const texture=new DataArrayTexture(buffer,width,height,morphTargetsCount);texture.type=FloatType;texture.needsUpdate=true;const vertexDataStride=vertexDataCount*4;for(let i=0;i #include void main() { gl_FragColor = texture2D( tDiffuse, vUv ); #ifdef LINEAR_TONE_MAPPING gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); #elif defined( REINHARD_TONE_MAPPING ) gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); #elif defined( CINEON_TONE_MAPPING ) gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); #elif defined( ACES_FILMIC_TONE_MAPPING ) gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); #elif defined( AGX_TONE_MAPPING ) gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); #elif defined( NEUTRAL_TONE_MAPPING ) gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); #elif defined( CUSTOM_TONE_MAPPING ) gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); #endif #ifdef SRGB_TRANSFER gl_FragColor = sRGBTransferOETF( gl_FragColor ); #endif }`,depthTest:false,depthWrite:false});const mesh=new Mesh(geometry,material);const camera=new OrthographicCamera(-1,1,1,-1,0,1);let _outputColorSpace=null;let _outputToneMapping=null;let _isCompositing=false;let _savedToneMapping;let _savedRenderTarget=null;let _effects=[];let _hasRenderPass=false;this.setSize=function(width,height){targetA.setSize(width,height);targetB.setSize(width,height);for(let i=0;i<_effects.length;i++){const effect=_effects[i];if(effect.setSize)effect.setSize(width,height)}};this.setEffects=function(effects){_effects=effects;_hasRenderPass=_effects.length>0&&_effects[0].isRenderPass===true;const width=targetA.width;const height=targetA.height;for(let i=0;i<_effects.length;i++){const effect=_effects[i];if(effect.setSize)effect.setSize(width,height)}};this.begin=function(renderer,renderTarget){if(_isCompositing)return false;if(renderer.toneMapping===NoToneMapping&&_effects.length===0)return false;_savedRenderTarget=renderTarget;if(renderTarget!==null){const width=renderTarget.width;const height=renderTarget.height;if(targetA.width!==width||targetA.height!==height){this.setSize(width,height)}}if(_hasRenderPass===false){renderer.setRenderTarget(targetA)}_savedToneMapping=renderer.toneMapping;renderer.toneMapping=NoToneMapping;return true};this.hasRenderPass=function(){return _hasRenderPass};this.end=function(renderer,deltaTime){renderer.toneMapping=_savedToneMapping;_isCompositing=true;let readBuffer=targetA;let writeBuffer=targetB;for(let i=0;i<_effects.length;i++){const effect=_effects[i];if(effect.enabled===false)continue;effect.render(renderer,writeBuffer,readBuffer,deltaTime);if(effect.needsSwap!==false){const temp=readBuffer;readBuffer=writeBuffer;writeBuffer=temp}}if(_outputColorSpace!==renderer.outputColorSpace||_outputToneMapping!==renderer.toneMapping){_outputColorSpace=renderer.outputColorSpace;_outputToneMapping=renderer.toneMapping;material.defines={};if(ColorManagement.getTransfer(_outputColorSpace)===SRGBTransfer)material.defines.SRGB_TRANSFER="";const toneMapping=toneMappingMap[_outputToneMapping];if(toneMapping)material.defines[toneMapping]="";material.needsUpdate=true}material.uniforms.tDiffuse.value=readBuffer.texture;renderer.setRenderTarget(_savedRenderTarget);renderer.render(mesh,camera);_savedRenderTarget=null;_isCompositing=false};this.isCompositing=function(){return _isCompositing};this.dispose=function(){targetA.dispose();targetB.dispose();geometry.dispose();material.dispose()}}const emptyTexture=new Texture;const emptyShadowTexture=new DepthTexture(1,1);const emptyArrayTexture=new DataArrayTexture;const empty3dTexture=new Data3DTexture;const emptyCubeTexture=new CubeTexture;const arrayCacheF32=[];const arrayCacheI32=[];const mat4array=new Float32Array(16);const mat3array=new Float32Array(9);const mat2array=new Float32Array(4);function flatten(array,nBlocks,blockSize){const firstElem=array[0];if(firstElem<=0||firstElem>0)return array;const n=nBlocks*blockSize;let r=arrayCacheF32[n];if(r===undefined){r=new Float32Array(n);arrayCacheF32[n]=r}if(nBlocks!==0){firstElem.toArray(r,0);for(let i=1,offset=0;i!==nBlocks;++i){offset+=blockSize;array[i].toArray(r,offset)}}return r}function arraysEqual(a,b){if(a.length!==b.length)return false;for(let i=0,l=a.length;i0){this.seq=shadowSamplers.concat(otherUniforms)}}setValue(gl,name,value,textures){const u=this.map[name];if(u!==undefined)u.setValue(gl,value,textures)}setOptional(gl,object,name){const v=object[name];if(v!==undefined)this.setValue(gl,name,v)}static upload(gl,seq,values,textures){for(let i=0,n=seq.length;i!==n;++i){const u=seq[i],v=values[u.id];if(v.needsUpdate!==false){u.setValue(gl,v.value,textures)}}}static seqWithValue(seq,values){const r=[];for(let i=0,n=seq.length;i!==n;++i){const u=seq[i];if(u.id in values)r.push(u)}return r}}function WebGLShader(gl,type,string){const shader=gl.createShader(type);gl.shaderSource(shader,string);gl.compileShader(shader);return shader}const COMPLETION_STATUS_KHR=37297;let programIdCount=0;function handleSource(string,errorLine){const lines=string.split("\n");const lines2=[];const from=Math.max(errorLine-6,0);const to=Math.min(errorLine+6,lines.length);for(let i=from;i":" "} ${line}: ${lines[i]}`)}return lines2.join("\n")}const _m0=new Matrix3;function getEncodingComponents(colorSpace){ColorManagement._getMatrix(_m0,ColorManagement.workingColorSpace,colorSpace);const encodingMatrix=`mat3( ${_m0.elements.map(v=>v.toFixed(4))} )`;switch(ColorManagement.getTransfer(colorSpace)){case LinearTransfer:return[encodingMatrix,"LinearTransferOETF"];case SRGBTransfer:return[encodingMatrix,"sRGBTransferOETF"];default:warn("WebGLProgram: Unsupported color space: ",colorSpace);return[encodingMatrix,"LinearTransferOETF"];}}function getShaderErrors(gl,shader,type){const status=gl.getShaderParameter(shader,gl.COMPILE_STATUS);const shaderInfoLog=gl.getShaderInfoLog(shader)||"";const errors=shaderInfoLog.trim();if(status&&errors==="")return"";const errorMatches=/ERROR: 0:(\d+)/.exec(errors);if(errorMatches){const errorLine=parseInt(errorMatches[1]);return type.toUpperCase()+"\n\n"+errors+"\n\n"+handleSource(gl.getShaderSource(shader),errorLine)}else{return errors}}function getTexelEncodingFunction(functionName,colorSpace){const components=getEncodingComponents(colorSpace);return[`vec4 ${functionName}( vec4 value ) {`,` return ${components[1]}( vec4( value.rgb * ${components[0]}, value.a ) );`,"}"].join("\n")}const toneMappingFunctions={[LinearToneMapping]:"Linear",[ReinhardToneMapping]:"Reinhard",[CineonToneMapping]:"Cineon",[ACESFilmicToneMapping]:"ACESFilmic",[AgXToneMapping]:"AgX",[NeutralToneMapping]:"Neutral",[CustomToneMapping]:"Custom"};function getToneMappingFunction(functionName,toneMapping){const toneMappingName=toneMappingFunctions[toneMapping];if(toneMappingName===undefined){warn("WebGLProgram: Unsupported toneMapping:",toneMapping);return"vec3 "+functionName+"( vec3 color ) { return LinearToneMapping( color ); }"}return"vec3 "+functionName+"( vec3 color ) { return "+toneMappingName+"ToneMapping( color ); }"}const _v0=new Vector3;function getLuminanceFunction(){ColorManagement.getLuminanceCoefficients(_v0);const r=_v0.x.toFixed(4);const g=_v0.y.toFixed(4);const b=_v0.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${r}, ${g}, ${b} );`,"\treturn dot( weights, rgb );","}"].join("\n")}function generateVertexExtensions(parameters){const chunks=[parameters.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",parameters.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""];return chunks.filter(filterEmptyLine).join("\n")}function generateDefines(defines){const chunks=[];for(const name in defines){const value=defines[name];if(value===false)continue;chunks.push("#define "+name+" "+value)}return chunks.join("\n")}function fetchAttributeLocations(gl,program){const attributes={};const n=gl.getProgramParameter(program,gl.ACTIVE_ATTRIBUTES);for(let i=0;i/gm;function resolveIncludes(string){return string.replace(includePattern,includeReplacer)}const shaderChunkMap=new Map;function includeReplacer(match,include){let string=ShaderChunk[include];if(string===undefined){const newInclude=shaderChunkMap.get(include);if(newInclude!==undefined){string=ShaderChunk[newInclude];warn("WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.",include,newInclude)}else{throw new Error("Can not resolve #include <"+include+">")}}return resolveIncludes(string)}const unrollLoopPattern=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function unrollLoops(string){return string.replace(unrollLoopPattern,loopReplacer)}function loopReplacer(match,start,end,snippet){let string="";for(let i=parseInt(start);i0){prefixVertex+="\n"}prefixFragment=["#define SHADER_TYPE "+parameters.shaderType,"#define SHADER_NAME "+parameters.shaderName,customDefines].filter(filterEmptyLine).join("\n");if(prefixFragment.length>0){prefixFragment+="\n"}}else{prefixVertex=[generatePrecision(parameters),"#define SHADER_TYPE "+parameters.shaderType,"#define SHADER_NAME "+parameters.shaderName,customDefines,parameters.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",parameters.batching?"#define USE_BATCHING":"",parameters.batchingColor?"#define USE_BATCHING_COLOR":"",parameters.instancing?"#define USE_INSTANCING":"",parameters.instancingColor?"#define USE_INSTANCING_COLOR":"",parameters.instancingMorph?"#define USE_INSTANCING_MORPH":"",parameters.useFog&¶meters.fog?"#define USE_FOG":"",parameters.useFog&¶meters.fogExp2?"#define FOG_EXP2":"",parameters.map?"#define USE_MAP":"",parameters.envMap?"#define USE_ENVMAP":"",parameters.envMap?"#define "+envMapModeDefine:"",parameters.lightMap?"#define USE_LIGHTMAP":"",parameters.aoMap?"#define USE_AOMAP":"",parameters.bumpMap?"#define USE_BUMPMAP":"",parameters.normalMap?"#define USE_NORMALMAP":"",parameters.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",parameters.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",parameters.displacementMap?"#define USE_DISPLACEMENTMAP":"",parameters.emissiveMap?"#define USE_EMISSIVEMAP":"",parameters.anisotropy?"#define USE_ANISOTROPY":"",parameters.anisotropyMap?"#define USE_ANISOTROPYMAP":"",parameters.clearcoatMap?"#define USE_CLEARCOATMAP":"",parameters.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",parameters.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",parameters.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",parameters.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",parameters.specularMap?"#define USE_SPECULARMAP":"",parameters.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",parameters.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",parameters.roughnessMap?"#define USE_ROUGHNESSMAP":"",parameters.metalnessMap?"#define USE_METALNESSMAP":"",parameters.alphaMap?"#define USE_ALPHAMAP":"",parameters.alphaHash?"#define USE_ALPHAHASH":"",parameters.transmission?"#define USE_TRANSMISSION":"",parameters.transmissionMap?"#define USE_TRANSMISSIONMAP":"",parameters.thicknessMap?"#define USE_THICKNESSMAP":"",parameters.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",parameters.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",parameters.mapUv?"#define MAP_UV "+parameters.mapUv:"",parameters.alphaMapUv?"#define ALPHAMAP_UV "+parameters.alphaMapUv:"",parameters.lightMapUv?"#define LIGHTMAP_UV "+parameters.lightMapUv:"",parameters.aoMapUv?"#define AOMAP_UV "+parameters.aoMapUv:"",parameters.emissiveMapUv?"#define EMISSIVEMAP_UV "+parameters.emissiveMapUv:"",parameters.bumpMapUv?"#define BUMPMAP_UV "+parameters.bumpMapUv:"",parameters.normalMapUv?"#define NORMALMAP_UV "+parameters.normalMapUv:"",parameters.displacementMapUv?"#define DISPLACEMENTMAP_UV "+parameters.displacementMapUv:"",parameters.metalnessMapUv?"#define METALNESSMAP_UV "+parameters.metalnessMapUv:"",parameters.roughnessMapUv?"#define ROUGHNESSMAP_UV "+parameters.roughnessMapUv:"",parameters.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+parameters.anisotropyMapUv:"",parameters.clearcoatMapUv?"#define CLEARCOATMAP_UV "+parameters.clearcoatMapUv:"",parameters.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+parameters.clearcoatNormalMapUv:"",parameters.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+parameters.clearcoatRoughnessMapUv:"",parameters.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+parameters.iridescenceMapUv:"",parameters.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+parameters.iridescenceThicknessMapUv:"",parameters.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+parameters.sheenColorMapUv:"",parameters.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+parameters.sheenRoughnessMapUv:"",parameters.specularMapUv?"#define SPECULARMAP_UV "+parameters.specularMapUv:"",parameters.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+parameters.specularColorMapUv:"",parameters.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+parameters.specularIntensityMapUv:"",parameters.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+parameters.transmissionMapUv:"",parameters.thicknessMapUv?"#define THICKNESSMAP_UV "+parameters.thicknessMapUv:"",parameters.vertexTangents&¶meters.flatShading===false?"#define USE_TANGENT":"",parameters.vertexColors?"#define USE_COLOR":"",parameters.vertexAlphas?"#define USE_COLOR_ALPHA":"",parameters.vertexUv1s?"#define USE_UV1":"",parameters.vertexUv2s?"#define USE_UV2":"",parameters.vertexUv3s?"#define USE_UV3":"",parameters.pointsUvs?"#define USE_POINTS_UV":"",parameters.flatShading?"#define FLAT_SHADED":"",parameters.skinning?"#define USE_SKINNING":"",parameters.morphTargets?"#define USE_MORPHTARGETS":"",parameters.morphNormals&¶meters.flatShading===false?"#define USE_MORPHNORMALS":"",parameters.morphColors?"#define USE_MORPHCOLORS":"",parameters.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+parameters.morphTextureStride:"",parameters.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+parameters.morphTargetsCount:"",parameters.doubleSided?"#define DOUBLE_SIDED":"",parameters.flipSided?"#define FLIP_SIDED":"",parameters.shadowMapEnabled?"#define USE_SHADOWMAP":"",parameters.shadowMapEnabled?"#define "+shadowMapTypeDefine:"",parameters.sizeAttenuation?"#define USE_SIZEATTENUATION":"",parameters.numLightProbes>0?"#define USE_LIGHT_PROBES":"",parameters.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",parameters.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(filterEmptyLine).join("\n");prefixFragment=[generatePrecision(parameters),"#define SHADER_TYPE "+parameters.shaderType,"#define SHADER_NAME "+parameters.shaderName,customDefines,parameters.useFog&¶meters.fog?"#define USE_FOG":"",parameters.useFog&¶meters.fogExp2?"#define FOG_EXP2":"",parameters.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",parameters.map?"#define USE_MAP":"",parameters.matcap?"#define USE_MATCAP":"",parameters.envMap?"#define USE_ENVMAP":"",parameters.envMap?"#define "+envMapTypeDefine:"",parameters.envMap?"#define "+envMapModeDefine:"",parameters.envMap?"#define "+envMapBlendingDefine:"",envMapCubeUVSize?"#define CUBEUV_TEXEL_WIDTH "+envMapCubeUVSize.texelWidth:"",envMapCubeUVSize?"#define CUBEUV_TEXEL_HEIGHT "+envMapCubeUVSize.texelHeight:"",envMapCubeUVSize?"#define CUBEUV_MAX_MIP "+envMapCubeUVSize.maxMip+".0":"",parameters.lightMap?"#define USE_LIGHTMAP":"",parameters.aoMap?"#define USE_AOMAP":"",parameters.bumpMap?"#define USE_BUMPMAP":"",parameters.normalMap?"#define USE_NORMALMAP":"",parameters.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",parameters.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",parameters.emissiveMap?"#define USE_EMISSIVEMAP":"",parameters.anisotropy?"#define USE_ANISOTROPY":"",parameters.anisotropyMap?"#define USE_ANISOTROPYMAP":"",parameters.clearcoat?"#define USE_CLEARCOAT":"",parameters.clearcoatMap?"#define USE_CLEARCOATMAP":"",parameters.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",parameters.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",parameters.dispersion?"#define USE_DISPERSION":"",parameters.iridescence?"#define USE_IRIDESCENCE":"",parameters.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",parameters.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",parameters.specularMap?"#define USE_SPECULARMAP":"",parameters.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",parameters.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",parameters.roughnessMap?"#define USE_ROUGHNESSMAP":"",parameters.metalnessMap?"#define USE_METALNESSMAP":"",parameters.alphaMap?"#define USE_ALPHAMAP":"",parameters.alphaTest?"#define USE_ALPHATEST":"",parameters.alphaHash?"#define USE_ALPHAHASH":"",parameters.sheen?"#define USE_SHEEN":"",parameters.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",parameters.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",parameters.transmission?"#define USE_TRANSMISSION":"",parameters.transmissionMap?"#define USE_TRANSMISSIONMAP":"",parameters.thicknessMap?"#define USE_THICKNESSMAP":"",parameters.vertexTangents&¶meters.flatShading===false?"#define USE_TANGENT":"",parameters.vertexColors||parameters.instancingColor||parameters.batchingColor?"#define USE_COLOR":"",parameters.vertexAlphas?"#define USE_COLOR_ALPHA":"",parameters.vertexUv1s?"#define USE_UV1":"",parameters.vertexUv2s?"#define USE_UV2":"",parameters.vertexUv3s?"#define USE_UV3":"",parameters.pointsUvs?"#define USE_POINTS_UV":"",parameters.gradientMap?"#define USE_GRADIENTMAP":"",parameters.flatShading?"#define FLAT_SHADED":"",parameters.doubleSided?"#define DOUBLE_SIDED":"",parameters.flipSided?"#define FLIP_SIDED":"",parameters.shadowMapEnabled?"#define USE_SHADOWMAP":"",parameters.shadowMapEnabled?"#define "+shadowMapTypeDefine:"",parameters.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",parameters.numLightProbes>0?"#define USE_LIGHT_PROBES":"",parameters.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",parameters.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",parameters.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",parameters.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",parameters.toneMapping!==NoToneMapping?"#define TONE_MAPPING":"",parameters.toneMapping!==NoToneMapping?ShaderChunk["tonemapping_pars_fragment"]:"",parameters.toneMapping!==NoToneMapping?getToneMappingFunction("toneMapping",parameters.toneMapping):"",parameters.dithering?"#define DITHERING":"",parameters.opaque?"#define OPAQUE":"",ShaderChunk["colorspace_pars_fragment"],getTexelEncodingFunction("linearToOutputTexel",parameters.outputColorSpace),getLuminanceFunction(),parameters.useDepthPacking?"#define DEPTH_PACKING "+parameters.depthPacking:"","\n"].filter(filterEmptyLine).join("\n")}vertexShader=resolveIncludes(vertexShader);vertexShader=replaceLightNums(vertexShader,parameters);vertexShader=replaceClippingPlaneNums(vertexShader,parameters);fragmentShader=resolveIncludes(fragmentShader);fragmentShader=replaceLightNums(fragmentShader,parameters);fragmentShader=replaceClippingPlaneNums(fragmentShader,parameters);vertexShader=unrollLoops(vertexShader);fragmentShader=unrollLoops(fragmentShader);if(parameters.isRawShaderMaterial!==true){versionString="#version 300 es\n";prefixVertex=[customVertexExtensions,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+prefixVertex;prefixFragment=["#define varying in",parameters.glslVersion===GLSL3?"":"layout(location = 0) out highp vec4 pc_fragColor;",parameters.glslVersion===GLSL3?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+prefixFragment}const vertexGlsl=versionString+prefixVertex+vertexShader;const fragmentGlsl=versionString+prefixFragment+fragmentShader;const glVertexShader=WebGLShader(gl,gl.VERTEX_SHADER,vertexGlsl);const glFragmentShader=WebGLShader(gl,gl.FRAGMENT_SHADER,fragmentGlsl);gl.attachShader(program,glVertexShader);gl.attachShader(program,glFragmentShader);if(parameters.index0AttributeName!==undefined){gl.bindAttribLocation(program,0,parameters.index0AttributeName)}else if(parameters.morphTargets===true){gl.bindAttribLocation(program,0,"position")}gl.linkProgram(program);function onFirstUse(self){if(renderer.debug.checkShaderErrors){const programInfoLog=gl.getProgramInfoLog(program)||"";const vertexShaderInfoLog=gl.getShaderInfoLog(glVertexShader)||"";const fragmentShaderInfoLog=gl.getShaderInfoLog(glFragmentShader)||"";const programLog=programInfoLog.trim();const vertexLog=vertexShaderInfoLog.trim();const fragmentLog=fragmentShaderInfoLog.trim();let runnable=true;let haveDiagnostics=true;if(gl.getProgramParameter(program,gl.LINK_STATUS)===false){runnable=false;if(typeof renderer.debug.onShaderError==="function"){renderer.debug.onShaderError(gl,program,glVertexShader,glFragmentShader)}else{const vertexErrors=getShaderErrors(gl,glVertexShader,"vertex");const fragmentErrors=getShaderErrors(gl,glFragmentShader,"fragment");error("THREE.WebGLProgram: Shader Error "+gl.getError()+" - "+"VALIDATE_STATUS "+gl.getProgramParameter(program,gl.VALIDATE_STATUS)+"\n\n"+"Material Name: "+self.name+"\n"+"Material Type: "+self.type+"\n\n"+"Program Info Log: "+programLog+"\n"+vertexErrors+"\n"+fragmentErrors)}}else if(programLog!==""){warn("WebGLProgram: Program Info Log:",programLog)}else if(vertexLog===""||fragmentLog===""){haveDiagnostics=false}if(haveDiagnostics){self.diagnostics={runnable:runnable,programLog:programLog,vertexShader:{log:vertexLog,prefix:prefixVertex},fragmentShader:{log:fragmentLog,prefix:prefixFragment}}}}gl.deleteShader(glVertexShader);gl.deleteShader(glFragmentShader);cachedUniforms=new WebGLUniforms(gl,program);cachedAttributes=fetchAttributeLocations(gl,program)}let cachedUniforms;this.getUniforms=function(){if(cachedUniforms===undefined){onFirstUse(this)}return cachedUniforms};let cachedAttributes;this.getAttributes=function(){if(cachedAttributes===undefined){onFirstUse(this)}return cachedAttributes};let programReady=parameters.rendererExtensionParallelShaderCompile===false;this.isReady=function(){if(programReady===false){programReady=gl.getProgramParameter(program,COMPLETION_STATUS_KHR)}return programReady};this.destroy=function(){bindingStates.releaseStatesOfProgram(this);gl.deleteProgram(program);this.program=undefined};this.type=parameters.shaderType;this.name=parameters.shaderName;this.id=programIdCount++;this.cacheKey=cacheKey;this.usedTimes=1;this.program=program;this.vertexShader=glVertexShader;this.fragmentShader=glFragmentShader;return this}let _id=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map;this.materialCache=new Map}update(material){const vertexShader=material.vertexShader;const fragmentShader=material.fragmentShader;const vertexShaderStage=this._getShaderStage(vertexShader);const fragmentShaderStage=this._getShaderStage(fragmentShader);const materialShaders=this._getShaderCacheForMaterial(material);if(materialShaders.has(vertexShaderStage)===false){materialShaders.add(vertexShaderStage);vertexShaderStage.usedTimes++}if(materialShaders.has(fragmentShaderStage)===false){materialShaders.add(fragmentShaderStage);fragmentShaderStage.usedTimes++}return this}remove(material){const materialShaders=this.materialCache.get(material);for(const shaderStage of materialShaders){shaderStage.usedTimes--;if(shaderStage.usedTimes===0)this.shaderCache.delete(shaderStage.code)}this.materialCache.delete(material);return this}getVertexShaderID(material){return this._getShaderStage(material.vertexShader).id}getFragmentShaderID(material){return this._getShaderStage(material.fragmentShader).id}dispose(){this.shaderCache.clear();this.materialCache.clear()}_getShaderCacheForMaterial(material){const cache=this.materialCache;let set=cache.get(material);if(set===undefined){set=new Set;cache.set(material,set)}return set}_getShaderStage(code){const cache=this.shaderCache;let stage=cache.get(code);if(stage===undefined){stage=new WebGLShaderStage(code);cache.set(code,stage)}return stage}}class WebGLShaderStage{constructor(code){this.id=_id++;this.code=code;this.usedTimes=0}}function WebGLPrograms(renderer,cubemaps,cubeuvmaps,extensions,capabilities,bindingStates,clipping){const _programLayers=new Layers;const _customShaders=new WebGLShaderCache;const _activeChannels=new Set;const programs=[];const programsMap=new Map;const logarithmicDepthBuffer=capabilities.logarithmicDepthBuffer;let precision=capabilities.precision;const shaderIDs={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distance",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function getChannel(value){_activeChannels.add(value);if(value===0)return"uv";return`uv${value}`}function getParameters(material,lights,shadows,scene,object){const fog=scene.fog;const geometry=object.geometry;const environment=material.isMeshStandardMaterial?scene.environment:null;const envMap=(material.isMeshStandardMaterial?cubeuvmaps:cubemaps).get(material.envMap||environment);const envMapCubeUVHeight=!!envMap&&envMap.mapping===CubeUVReflectionMapping?envMap.image.height:null;const shaderID=shaderIDs[material.type];if(material.precision!==null){precision=capabilities.getMaxPrecision(material.precision);if(precision!==material.precision){warn("WebGLProgram.getParameters:",material.precision,"not supported, using",precision,"instead.")}}const morphAttribute=geometry.morphAttributes.position||geometry.morphAttributes.normal||geometry.morphAttributes.color;const morphTargetsCount=morphAttribute!==undefined?morphAttribute.length:0;let morphTextureStride=0;if(geometry.morphAttributes.position!==undefined)morphTextureStride=1;if(geometry.morphAttributes.normal!==undefined)morphTextureStride=2;if(geometry.morphAttributes.color!==undefined)morphTextureStride=3;let vertexShader,fragmentShader;let customVertexShaderID,customFragmentShaderID;if(shaderID){const shader=ShaderLib[shaderID];vertexShader=shader.vertexShader;fragmentShader=shader.fragmentShader}else{vertexShader=material.vertexShader;fragmentShader=material.fragmentShader;_customShaders.update(material);customVertexShaderID=_customShaders.getVertexShaderID(material);customFragmentShaderID=_customShaders.getFragmentShaderID(material)}const currentRenderTarget=renderer.getRenderTarget();const reversedDepthBuffer=renderer.state.buffers.depth.getReversed();const IS_INSTANCEDMESH=object.isInstancedMesh===true;const IS_BATCHEDMESH=object.isBatchedMesh===true;const HAS_MAP=!!material.map;const HAS_MATCAP=!!material.matcap;const HAS_ENVMAP=!!envMap;const HAS_AOMAP=!!material.aoMap;const HAS_LIGHTMAP=!!material.lightMap;const HAS_BUMPMAP=!!material.bumpMap;const HAS_NORMALMAP=!!material.normalMap;const HAS_DISPLACEMENTMAP=!!material.displacementMap;const HAS_EMISSIVEMAP=!!material.emissiveMap;const HAS_METALNESSMAP=!!material.metalnessMap;const HAS_ROUGHNESSMAP=!!material.roughnessMap;const HAS_ANISOTROPY=material.anisotropy>0;const HAS_CLEARCOAT=material.clearcoat>0;const HAS_DISPERSION=material.dispersion>0;const HAS_IRIDESCENCE=material.iridescence>0;const HAS_SHEEN=material.sheen>0;const HAS_TRANSMISSION=material.transmission>0;const HAS_ANISOTROPYMAP=HAS_ANISOTROPY&&!!material.anisotropyMap;const HAS_CLEARCOATMAP=HAS_CLEARCOAT&&!!material.clearcoatMap;const HAS_CLEARCOAT_NORMALMAP=HAS_CLEARCOAT&&!!material.clearcoatNormalMap;const HAS_CLEARCOAT_ROUGHNESSMAP=HAS_CLEARCOAT&&!!material.clearcoatRoughnessMap;const HAS_IRIDESCENCEMAP=HAS_IRIDESCENCE&&!!material.iridescenceMap;const HAS_IRIDESCENCE_THICKNESSMAP=HAS_IRIDESCENCE&&!!material.iridescenceThicknessMap;const HAS_SHEEN_COLORMAP=HAS_SHEEN&&!!material.sheenColorMap;const HAS_SHEEN_ROUGHNESSMAP=HAS_SHEEN&&!!material.sheenRoughnessMap;const HAS_SPECULARMAP=!!material.specularMap;const HAS_SPECULAR_COLORMAP=!!material.specularColorMap;const HAS_SPECULAR_INTENSITYMAP=!!material.specularIntensityMap;const HAS_TRANSMISSIONMAP=HAS_TRANSMISSION&&!!material.transmissionMap;const HAS_THICKNESSMAP=HAS_TRANSMISSION&&!!material.thicknessMap;const HAS_GRADIENTMAP=!!material.gradientMap;const HAS_ALPHAMAP=!!material.alphaMap;const HAS_ALPHATEST=material.alphaTest>0;const HAS_ALPHAHASH=!!material.alphaHash;const HAS_EXTENSIONS=!!material.extensions;let toneMapping=NoToneMapping;if(material.toneMapped){if(currentRenderTarget===null||currentRenderTarget.isXRRenderTarget===true){toneMapping=renderer.toneMapping}}const parameters={shaderID:shaderID,shaderType:material.type,shaderName:material.name,vertexShader:vertexShader,fragmentShader:fragmentShader,defines:material.defines,customVertexShaderID:customVertexShaderID,customFragmentShaderID:customFragmentShaderID,isRawShaderMaterial:material.isRawShaderMaterial===true,glslVersion:material.glslVersion,precision:precision,batching:IS_BATCHEDMESH,batchingColor:IS_BATCHEDMESH&&object._colorsTexture!==null,instancing:IS_INSTANCEDMESH,instancingColor:IS_INSTANCEDMESH&&object.instanceColor!==null,instancingMorph:IS_INSTANCEDMESH&&object.morphTexture!==null,outputColorSpace:currentRenderTarget===null?renderer.outputColorSpace:currentRenderTarget.isXRRenderTarget===true?currentRenderTarget.texture.colorSpace:LinearSRGBColorSpace,alphaToCoverage:!!material.alphaToCoverage,map:HAS_MAP,matcap:HAS_MATCAP,envMap:HAS_ENVMAP,envMapMode:HAS_ENVMAP&&envMap.mapping,envMapCubeUVHeight:envMapCubeUVHeight,aoMap:HAS_AOMAP,lightMap:HAS_LIGHTMAP,bumpMap:HAS_BUMPMAP,normalMap:HAS_NORMALMAP,displacementMap:HAS_DISPLACEMENTMAP,emissiveMap:HAS_EMISSIVEMAP,normalMapObjectSpace:HAS_NORMALMAP&&material.normalMapType===ObjectSpaceNormalMap,normalMapTangentSpace:HAS_NORMALMAP&&material.normalMapType===TangentSpaceNormalMap,metalnessMap:HAS_METALNESSMAP,roughnessMap:HAS_ROUGHNESSMAP,anisotropy:HAS_ANISOTROPY,anisotropyMap:HAS_ANISOTROPYMAP,clearcoat:HAS_CLEARCOAT,clearcoatMap:HAS_CLEARCOATMAP,clearcoatNormalMap:HAS_CLEARCOAT_NORMALMAP,clearcoatRoughnessMap:HAS_CLEARCOAT_ROUGHNESSMAP,dispersion:HAS_DISPERSION,iridescence:HAS_IRIDESCENCE,iridescenceMap:HAS_IRIDESCENCEMAP,iridescenceThicknessMap:HAS_IRIDESCENCE_THICKNESSMAP,sheen:HAS_SHEEN,sheenColorMap:HAS_SHEEN_COLORMAP,sheenRoughnessMap:HAS_SHEEN_ROUGHNESSMAP,specularMap:HAS_SPECULARMAP,specularColorMap:HAS_SPECULAR_COLORMAP,specularIntensityMap:HAS_SPECULAR_INTENSITYMAP,transmission:HAS_TRANSMISSION,transmissionMap:HAS_TRANSMISSIONMAP,thicknessMap:HAS_THICKNESSMAP,gradientMap:HAS_GRADIENTMAP,opaque:material.transparent===false&&material.blending===NormalBlending&&material.alphaToCoverage===false,alphaMap:HAS_ALPHAMAP,alphaTest:HAS_ALPHATEST,alphaHash:HAS_ALPHAHASH,combine:material.combine,mapUv:HAS_MAP&&getChannel(material.map.channel),aoMapUv:HAS_AOMAP&&getChannel(material.aoMap.channel),lightMapUv:HAS_LIGHTMAP&&getChannel(material.lightMap.channel),bumpMapUv:HAS_BUMPMAP&&getChannel(material.bumpMap.channel),normalMapUv:HAS_NORMALMAP&&getChannel(material.normalMap.channel),displacementMapUv:HAS_DISPLACEMENTMAP&&getChannel(material.displacementMap.channel),emissiveMapUv:HAS_EMISSIVEMAP&&getChannel(material.emissiveMap.channel),metalnessMapUv:HAS_METALNESSMAP&&getChannel(material.metalnessMap.channel),roughnessMapUv:HAS_ROUGHNESSMAP&&getChannel(material.roughnessMap.channel),anisotropyMapUv:HAS_ANISOTROPYMAP&&getChannel(material.anisotropyMap.channel),clearcoatMapUv:HAS_CLEARCOATMAP&&getChannel(material.clearcoatMap.channel),clearcoatNormalMapUv:HAS_CLEARCOAT_NORMALMAP&&getChannel(material.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:HAS_CLEARCOAT_ROUGHNESSMAP&&getChannel(material.clearcoatRoughnessMap.channel),iridescenceMapUv:HAS_IRIDESCENCEMAP&&getChannel(material.iridescenceMap.channel),iridescenceThicknessMapUv:HAS_IRIDESCENCE_THICKNESSMAP&&getChannel(material.iridescenceThicknessMap.channel),sheenColorMapUv:HAS_SHEEN_COLORMAP&&getChannel(material.sheenColorMap.channel),sheenRoughnessMapUv:HAS_SHEEN_ROUGHNESSMAP&&getChannel(material.sheenRoughnessMap.channel),specularMapUv:HAS_SPECULARMAP&&getChannel(material.specularMap.channel),specularColorMapUv:HAS_SPECULAR_COLORMAP&&getChannel(material.specularColorMap.channel),specularIntensityMapUv:HAS_SPECULAR_INTENSITYMAP&&getChannel(material.specularIntensityMap.channel),transmissionMapUv:HAS_TRANSMISSIONMAP&&getChannel(material.transmissionMap.channel),thicknessMapUv:HAS_THICKNESSMAP&&getChannel(material.thicknessMap.channel),alphaMapUv:HAS_ALPHAMAP&&getChannel(material.alphaMap.channel),vertexTangents:!!geometry.attributes.tangent&&(HAS_NORMALMAP||HAS_ANISOTROPY),vertexColors:material.vertexColors,vertexAlphas:material.vertexColors===true&&!!geometry.attributes.color&&geometry.attributes.color.itemSize===4,pointsUvs:object.isPoints===true&&!!geometry.attributes.uv&&(HAS_MAP||HAS_ALPHAMAP),fog:!!fog,useFog:material.fog===true,fogExp2:!!fog&&fog.isFogExp2,flatShading:material.flatShading===true&&material.wireframe===false,sizeAttenuation:material.sizeAttenuation===true,logarithmicDepthBuffer:logarithmicDepthBuffer,reversedDepthBuffer:reversedDepthBuffer,skinning:object.isSkinnedMesh===true,morphTargets:geometry.morphAttributes.position!==undefined,morphNormals:geometry.morphAttributes.normal!==undefined,morphColors:geometry.morphAttributes.color!==undefined,morphTargetsCount:morphTargetsCount,morphTextureStride:morphTextureStride,numDirLights:lights.directional.length,numPointLights:lights.point.length,numSpotLights:lights.spot.length,numSpotLightMaps:lights.spotLightMap.length,numRectAreaLights:lights.rectArea.length,numHemiLights:lights.hemi.length,numDirLightShadows:lights.directionalShadowMap.length,numPointLightShadows:lights.pointShadowMap.length,numSpotLightShadows:lights.spotShadowMap.length,numSpotLightShadowsWithMaps:lights.numSpotLightShadowsWithMaps,numLightProbes:lights.numLightProbes,numClippingPlanes:clipping.numPlanes,numClipIntersection:clipping.numIntersection,dithering:material.dithering,shadowMapEnabled:renderer.shadowMap.enabled&&shadows.length>0,shadowMapType:renderer.shadowMap.type,toneMapping:toneMapping,decodeVideoTexture:HAS_MAP&&material.map.isVideoTexture===true&&ColorManagement.getTransfer(material.map.colorSpace)===SRGBTransfer,decodeVideoTextureEmissive:HAS_EMISSIVEMAP&&material.emissiveMap.isVideoTexture===true&&ColorManagement.getTransfer(material.emissiveMap.colorSpace)===SRGBTransfer,premultipliedAlpha:material.premultipliedAlpha,doubleSided:material.side===DoubleSide,flipSided:material.side===BackSide,useDepthPacking:material.depthPacking>=0,depthPacking:material.depthPacking||0,index0AttributeName:material.index0AttributeName,extensionClipCullDistance:HAS_EXTENSIONS&&material.extensions.clipCullDistance===true&&extensions.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(HAS_EXTENSIONS&&material.extensions.multiDraw===true||IS_BATCHEDMESH)&&extensions.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:extensions.has("KHR_parallel_shader_compile"),customProgramCacheKey:material.customProgramCacheKey()};parameters.vertexUv1s=_activeChannels.has(1);parameters.vertexUv2s=_activeChannels.has(2);parameters.vertexUv3s=_activeChannels.has(3);_activeChannels.clear();return parameters}function getProgramCacheKey(parameters){const array=[];if(parameters.shaderID){array.push(parameters.shaderID)}else{array.push(parameters.customVertexShaderID);array.push(parameters.customFragmentShaderID)}if(parameters.defines!==undefined){for(const name in parameters.defines){array.push(name);array.push(parameters.defines[name])}}if(parameters.isRawShaderMaterial===false){getProgramCacheKeyParameters(array,parameters);getProgramCacheKeyBooleans(array,parameters);array.push(renderer.outputColorSpace)}array.push(parameters.customProgramCacheKey);return array.join()}function getProgramCacheKeyParameters(array,parameters){array.push(parameters.precision);array.push(parameters.outputColorSpace);array.push(parameters.envMapMode);array.push(parameters.envMapCubeUVHeight);array.push(parameters.mapUv);array.push(parameters.alphaMapUv);array.push(parameters.lightMapUv);array.push(parameters.aoMapUv);array.push(parameters.bumpMapUv);array.push(parameters.normalMapUv);array.push(parameters.displacementMapUv);array.push(parameters.emissiveMapUv);array.push(parameters.metalnessMapUv);array.push(parameters.roughnessMapUv);array.push(parameters.anisotropyMapUv);array.push(parameters.clearcoatMapUv);array.push(parameters.clearcoatNormalMapUv);array.push(parameters.clearcoatRoughnessMapUv);array.push(parameters.iridescenceMapUv);array.push(parameters.iridescenceThicknessMapUv);array.push(parameters.sheenColorMapUv);array.push(parameters.sheenRoughnessMapUv);array.push(parameters.specularMapUv);array.push(parameters.specularColorMapUv);array.push(parameters.specularIntensityMapUv);array.push(parameters.transmissionMapUv);array.push(parameters.thicknessMapUv);array.push(parameters.combine);array.push(parameters.fogExp2);array.push(parameters.sizeAttenuation);array.push(parameters.morphTargetsCount);array.push(parameters.morphAttributeCount);array.push(parameters.numDirLights);array.push(parameters.numPointLights);array.push(parameters.numSpotLights);array.push(parameters.numSpotLightMaps);array.push(parameters.numHemiLights);array.push(parameters.numRectAreaLights);array.push(parameters.numDirLightShadows);array.push(parameters.numPointLightShadows);array.push(parameters.numSpotLightShadows);array.push(parameters.numSpotLightShadowsWithMaps);array.push(parameters.numLightProbes);array.push(parameters.shadowMapType);array.push(parameters.toneMapping);array.push(parameters.numClippingPlanes);array.push(parameters.numClipIntersection);array.push(parameters.depthPacking)}function getProgramCacheKeyBooleans(array,parameters){_programLayers.disableAll();if(parameters.instancing)_programLayers.enable(0);if(parameters.instancingColor)_programLayers.enable(1);if(parameters.instancingMorph)_programLayers.enable(2);if(parameters.matcap)_programLayers.enable(3);if(parameters.envMap)_programLayers.enable(4);if(parameters.normalMapObjectSpace)_programLayers.enable(5);if(parameters.normalMapTangentSpace)_programLayers.enable(6);if(parameters.clearcoat)_programLayers.enable(7);if(parameters.iridescence)_programLayers.enable(8);if(parameters.alphaTest)_programLayers.enable(9);if(parameters.vertexColors)_programLayers.enable(10);if(parameters.vertexAlphas)_programLayers.enable(11);if(parameters.vertexUv1s)_programLayers.enable(12);if(parameters.vertexUv2s)_programLayers.enable(13);if(parameters.vertexUv3s)_programLayers.enable(14);if(parameters.vertexTangents)_programLayers.enable(15);if(parameters.anisotropy)_programLayers.enable(16);if(parameters.alphaHash)_programLayers.enable(17);if(parameters.batching)_programLayers.enable(18);if(parameters.dispersion)_programLayers.enable(19);if(parameters.batchingColor)_programLayers.enable(20);if(parameters.gradientMap)_programLayers.enable(21);array.push(_programLayers.mask);_programLayers.disableAll();if(parameters.fog)_programLayers.enable(0);if(parameters.useFog)_programLayers.enable(1);if(parameters.flatShading)_programLayers.enable(2);if(parameters.logarithmicDepthBuffer)_programLayers.enable(3);if(parameters.reversedDepthBuffer)_programLayers.enable(4);if(parameters.skinning)_programLayers.enable(5);if(parameters.morphTargets)_programLayers.enable(6);if(parameters.morphNormals)_programLayers.enable(7);if(parameters.morphColors)_programLayers.enable(8);if(parameters.premultipliedAlpha)_programLayers.enable(9);if(parameters.shadowMapEnabled)_programLayers.enable(10);if(parameters.doubleSided)_programLayers.enable(11);if(parameters.flipSided)_programLayers.enable(12);if(parameters.useDepthPacking)_programLayers.enable(13);if(parameters.dithering)_programLayers.enable(14);if(parameters.transmission)_programLayers.enable(15);if(parameters.sheen)_programLayers.enable(16);if(parameters.opaque)_programLayers.enable(17);if(parameters.pointsUvs)_programLayers.enable(18);if(parameters.decodeVideoTexture)_programLayers.enable(19);if(parameters.decodeVideoTextureEmissive)_programLayers.enable(20);if(parameters.alphaToCoverage)_programLayers.enable(21);array.push(_programLayers.mask)}function getUniforms(material){const shaderID=shaderIDs[material.type];let uniforms;if(shaderID){const shader=ShaderLib[shaderID];uniforms=UniformsUtils.clone(shader.uniforms)}else{uniforms=material.uniforms}return uniforms}function acquireProgram(parameters,cacheKey){let program=programsMap.get(cacheKey);if(program!==undefined){++program.usedTimes}else{program=new WebGLProgram(renderer,cacheKey,parameters,bindingStates);programs.push(program);programsMap.set(cacheKey,program)}return program}function releaseProgram(program){if(--program.usedTimes===0){const i=programs.indexOf(program);programs[i]=programs[programs.length-1];programs.pop();programsMap.delete(program.cacheKey);program.destroy()}}function releaseShaderCache(material){_customShaders.remove(material)}function dispose(){_customShaders.dispose()}return{getParameters:getParameters,getProgramCacheKey:getProgramCacheKey,getUniforms:getUniforms,acquireProgram:acquireProgram,releaseProgram:releaseProgram,releaseShaderCache:releaseShaderCache,programs:programs,dispose:dispose}}function WebGLProperties(){let properties=new WeakMap;function has(object){return properties.has(object)}function get(object){let map=properties.get(object);if(map===undefined){map={};properties.set(object,map)}return map}function remove(object){properties.delete(object)}function update(object,key,value){properties.get(object)[key]=value}function dispose(){properties=new WeakMap}return{has:has,get:get,remove:remove,update:update,dispose:dispose}}function painterSortStable(a,b){if(a.groupOrder!==b.groupOrder){return a.groupOrder-b.groupOrder}else if(a.renderOrder!==b.renderOrder){return a.renderOrder-b.renderOrder}else if(a.material.id!==b.material.id){return a.material.id-b.material.id}else if(a.z!==b.z){return a.z-b.z}else{return a.id-b.id}}function reversePainterSortStable(a,b){if(a.groupOrder!==b.groupOrder){return a.groupOrder-b.groupOrder}else if(a.renderOrder!==b.renderOrder){return a.renderOrder-b.renderOrder}else if(a.z!==b.z){return b.z-a.z}else{return a.id-b.id}}function WebGLRenderList(){const renderItems=[];let renderItemsIndex=0;const opaque=[];const transmissive=[];const transparent=[];function init(){renderItemsIndex=0;opaque.length=0;transmissive.length=0;transparent.length=0}function getNextRenderItem(object,geometry,material,groupOrder,z,group){let renderItem=renderItems[renderItemsIndex];if(renderItem===undefined){renderItem={id:object.id,object:object,geometry:geometry,material:material,groupOrder:groupOrder,renderOrder:object.renderOrder,z:z,group:group};renderItems[renderItemsIndex]=renderItem}else{renderItem.id=object.id;renderItem.object=object;renderItem.geometry=geometry;renderItem.material=material;renderItem.groupOrder=groupOrder;renderItem.renderOrder=object.renderOrder;renderItem.z=z;renderItem.group=group}renderItemsIndex++;return renderItem}function push(object,geometry,material,groupOrder,z,group){const renderItem=getNextRenderItem(object,geometry,material,groupOrder,z,group);if(material.transmission>0){transmissive.push(renderItem)}else if(material.transparent===true){transparent.push(renderItem)}else{opaque.push(renderItem)}}function unshift(object,geometry,material,groupOrder,z,group){const renderItem=getNextRenderItem(object,geometry,material,groupOrder,z,group);if(material.transmission>0){transmissive.unshift(renderItem)}else if(material.transparent===true){transparent.unshift(renderItem)}else{opaque.unshift(renderItem)}}function sort(customOpaqueSort,customTransparentSort){if(opaque.length>1)opaque.sort(customOpaqueSort||painterSortStable);if(transmissive.length>1)transmissive.sort(customTransparentSort||reversePainterSortStable);if(transparent.length>1)transparent.sort(customTransparentSort||reversePainterSortStable)}function finish(){for(let i=renderItemsIndex,il=renderItems.length;i=listArray.length){list=new WebGLRenderList;listArray.push(list)}else{list=listArray[renderCallDepth]}}return list}function dispose(){lists=new WeakMap}return{get:get,dispose:dispose}}function UniformsCache(){const lights={};return{get:function(light){if(lights[light.id]!==undefined){return lights[light.id]}let uniforms;switch(light.type){case"DirectionalLight":uniforms={direction:new Vector3,color:new Color};break;case"SpotLight":uniforms={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":uniforms={position:new Vector3,color:new Color,distance:0,decay:0};break;case"HemisphereLight":uniforms={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case"RectAreaLight":uniforms={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break;}lights[light.id]=uniforms;return uniforms}}}function ShadowUniformsCache(){const lights={};return{get:function(light){if(lights[light.id]!==undefined){return lights[light.id]}let uniforms;switch(light.type){case"DirectionalLight":uniforms={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":uniforms={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":uniforms={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1000};break;}lights[light.id]=uniforms;return uniforms}}}let nextVersion=0;function shadowCastingAndTexturingLightsFirst(lightA,lightB){return(lightB.castShadow?2:0)-(lightA.castShadow?2:0)+(lightB.map?1:0)-(lightA.map?1:0)}function WebGLLights(extensions){const cache=new UniformsCache;const shadowCache=ShadowUniformsCache();const state={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let i=0;i<9;i++)state.probe.push(new Vector3);const vector3=new Vector3;const matrix4=new Matrix4;const matrix42=new Matrix4;function setup(lights){let r=0,g=0,b=0;for(let i=0;i<9;i++)state.probe[i].set(0,0,0);let directionalLength=0;let pointLength=0;let spotLength=0;let rectAreaLength=0;let hemiLength=0;let numDirectionalShadows=0;let numPointShadows=0;let numSpotShadows=0;let numSpotMaps=0;let numSpotShadowsWithMaps=0;let numLightProbes=0;lights.sort(shadowCastingAndTexturingLightsFirst);for(let i=0,l=lights.length;i0){if(extensions.has("OES_texture_float_linear")===true){state.rectAreaLTC1=UniformsLib.LTC_FLOAT_1;state.rectAreaLTC2=UniformsLib.LTC_FLOAT_2}else{state.rectAreaLTC1=UniformsLib.LTC_HALF_1;state.rectAreaLTC2=UniformsLib.LTC_HALF_2}}state.ambient[0]=r;state.ambient[1]=g;state.ambient[2]=b;const hash=state.hash;if(hash.directionalLength!==directionalLength||hash.pointLength!==pointLength||hash.spotLength!==spotLength||hash.rectAreaLength!==rectAreaLength||hash.hemiLength!==hemiLength||hash.numDirectionalShadows!==numDirectionalShadows||hash.numPointShadows!==numPointShadows||hash.numSpotShadows!==numSpotShadows||hash.numSpotMaps!==numSpotMaps||hash.numLightProbes!==numLightProbes){state.directional.length=directionalLength;state.spot.length=spotLength;state.rectArea.length=rectAreaLength;state.point.length=pointLength;state.hemi.length=hemiLength;state.directionalShadow.length=numDirectionalShadows;state.directionalShadowMap.length=numDirectionalShadows;state.pointShadow.length=numPointShadows;state.pointShadowMap.length=numPointShadows;state.spotShadow.length=numSpotShadows;state.spotShadowMap.length=numSpotShadows;state.directionalShadowMatrix.length=numDirectionalShadows;state.pointShadowMatrix.length=numPointShadows;state.spotLightMatrix.length=numSpotShadows+numSpotMaps-numSpotShadowsWithMaps;state.spotLightMap.length=numSpotMaps;state.numSpotLightShadowsWithMaps=numSpotShadowsWithMaps;state.numLightProbes=numLightProbes;hash.directionalLength=directionalLength;hash.pointLength=pointLength;hash.spotLength=spotLength;hash.rectAreaLength=rectAreaLength;hash.hemiLength=hemiLength;hash.numDirectionalShadows=numDirectionalShadows;hash.numPointShadows=numPointShadows;hash.numSpotShadows=numSpotShadows;hash.numSpotMaps=numSpotMaps;hash.numLightProbes=numLightProbes;state.version=nextVersion++}}function setupView(lights,camera){let directionalLength=0;let pointLength=0;let spotLength=0;let rectAreaLength=0;let hemiLength=0;const viewMatrix=camera.matrixWorldInverse;for(let i=0,l=lights.length;i=renderStateArray.length){renderState=new WebGLRenderState(extensions);renderStateArray.push(renderState)}else{renderState=renderStateArray[renderCallDepth]}}return renderState}function dispose(){renderStates=new WeakMap}return{get:get,dispose:dispose}}const vertex="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}";const fragment="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ).rg;\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ).r;\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( max( 0.0, squared_mean - mean * mean ) );\n\tgl_FragColor = vec4( mean, std_dev, 0.0, 1.0 );\n}";const _cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,1,0),new Vector3(0,-1,0),new Vector3(0,0,1),new Vector3(0,0,-1)];const _cubeUps=[new Vector3(0,-1,0),new Vector3(0,-1,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,-1,0),new Vector3(0,-1,0)];const _projScreenMatrix=new Matrix4;const _lightPositionWorld=new Vector3;const _lookTarget=new Vector3;function WebGLShadowMap(renderer,objects,capabilities){let _frustum=new Frustum;const _shadowMapSize=new Vector2,_viewportSize=new Vector2,_viewport=new Vector4,_depthMaterial=new MeshDepthMaterial,_distanceMaterial=new MeshDistanceMaterial,_materialCache={},_maxTextureSize=capabilities.maxTextureSize;const shadowSide={[FrontSide]:BackSide,[BackSide]:FrontSide,[DoubleSide]:DoubleSide};const shadowMaterialVertical=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment});const shadowMaterialHorizontal=shadowMaterialVertical.clone();shadowMaterialHorizontal.defines.HORIZONTAL_PASS=1;const fullScreenTri=new BufferGeometry;fullScreenTri.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,0.5,3,-1,0.5,-1,3,0.5]),3));const fullScreenMesh=new Mesh(fullScreenTri,shadowMaterialVertical);const scope=this;this.enabled=false;this.autoUpdate=true;this.needsUpdate=false;this.type=PCFShadowMap;let _previousType=this.type;this.render=function(lights,scene,camera){if(scope.enabled===false)return;if(scope.autoUpdate===false&&scope.needsUpdate===false)return;if(lights.length===0)return;if(lights.type===PCFSoftShadowMap){warn("WebGLShadowMap: PCFSoftShadowMap has been deprecated. Using PCFShadowMap instead.");lights.type=PCFShadowMap}const currentRenderTarget=renderer.getRenderTarget();const activeCubeFace=renderer.getActiveCubeFace();const activeMipmapLevel=renderer.getActiveMipmapLevel();const _state=renderer.state;_state.setBlending(NoBlending);if(_state.buffers.depth.getReversed()===true){_state.buffers.color.setClear(0,0,0,0)}else{_state.buffers.color.setClear(1,1,1,1)}_state.buffers.depth.setTest(true);_state.setScissorTest(false);const typeChanged=_previousType!==this.type;if(typeChanged){scene.traverse(function(object){if(object.material){if(Array.isArray(object.material)){object.material.forEach(mat=>mat.needsUpdate=true)}else{object.material.needsUpdate=true}}})}for(let i=0,il=lights.length;i_maxTextureSize||_shadowMapSize.y>_maxTextureSize){if(_shadowMapSize.x>_maxTextureSize){_viewportSize.x=Math.floor(_maxTextureSize/shadowFrameExtents.x);_shadowMapSize.x=_viewportSize.x*shadowFrameExtents.x;shadow.mapSize.x=_viewportSize.x}if(_shadowMapSize.y>_maxTextureSize){_viewportSize.y=Math.floor(_maxTextureSize/shadowFrameExtents.y);_shadowMapSize.y=_viewportSize.y*shadowFrameExtents.y;shadow.mapSize.y=_viewportSize.y}}if(shadow.map===null||typeChanged===true){if(shadow.map!==null){if(shadow.map.depthTexture!==null){shadow.map.depthTexture.dispose();shadow.map.depthTexture=null}shadow.map.dispose()}if(this.type===VSMShadowMap){if(light.isPointLight){warn("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}shadow.map=new WebGLRenderTarget(_shadowMapSize.x,_shadowMapSize.y,{format:RGFormat,type:HalfFloatType,minFilter:LinearFilter,magFilter:LinearFilter,generateMipmaps:false});shadow.map.texture.name=light.name+".shadowMap";shadow.map.depthTexture=new DepthTexture(_shadowMapSize.x,_shadowMapSize.y,FloatType);shadow.map.depthTexture.name=light.name+".shadowMapDepth";shadow.map.depthTexture.format=DepthFormat;shadow.map.depthTexture.compareFunction=null;shadow.map.depthTexture.minFilter=NearestFilter;shadow.map.depthTexture.magFilter=NearestFilter}else{if(light.isPointLight){shadow.map=new WebGLCubeRenderTarget(_shadowMapSize.x);shadow.map.depthTexture=new CubeDepthTexture(_shadowMapSize.x,UnsignedIntType)}else{shadow.map=new WebGLRenderTarget(_shadowMapSize.x,_shadowMapSize.y);shadow.map.depthTexture=new DepthTexture(_shadowMapSize.x,_shadowMapSize.y,UnsignedIntType)}shadow.map.depthTexture.name=light.name+".shadowMap";shadow.map.depthTexture.format=DepthFormat;const reversedDepthBuffer=renderer.state.buffers.depth.getReversed();if(this.type===PCFShadowMap){shadow.map.depthTexture.compareFunction=reversedDepthBuffer?GreaterEqualCompare:LessEqualCompare;shadow.map.depthTexture.minFilter=LinearFilter;shadow.map.depthTexture.magFilter=LinearFilter}else{shadow.map.depthTexture.compareFunction=null;shadow.map.depthTexture.minFilter=NearestFilter;shadow.map.depthTexture.magFilter=NearestFilter}}shadow.camera.updateProjectionMatrix()}const faceCount=shadow.map.isWebGLCubeRenderTarget?6:1;for(let face=0;face0||material.map&&material.alphaTest>0||material.alphaToCoverage===true){const keyA=result.uuid,keyB=material.uuid;let materialsForVariant=_materialCache[keyA];if(materialsForVariant===undefined){materialsForVariant={};_materialCache[keyA]=materialsForVariant}let cachedMaterial=materialsForVariant[keyB];if(cachedMaterial===undefined){cachedMaterial=result.clone();materialsForVariant[keyB]=cachedMaterial;material.addEventListener("dispose",onMaterialDispose)}result=cachedMaterial}}result.visible=material.visible;result.wireframe=material.wireframe;if(type===VSMShadowMap){result.side=material.shadowSide!==null?material.shadowSide:material.side}else{result.side=material.shadowSide!==null?material.shadowSide:shadowSide[material.side]}result.alphaMap=material.alphaMap;result.alphaTest=material.alphaToCoverage===true?0.5:material.alphaTest;result.map=material.map;result.clipShadows=material.clipShadows;result.clippingPlanes=material.clippingPlanes;result.clipIntersection=material.clipIntersection;result.displacementMap=material.displacementMap;result.displacementScale=material.displacementScale;result.displacementBias=material.displacementBias;result.wireframeLinewidth=material.wireframeLinewidth;result.linewidth=material.linewidth;if(light.isPointLight===true&&result.isMeshDistanceMaterial===true){const materialProperties=renderer.properties.get(result);materialProperties.light=light}return result}function renderObject(object,camera,shadowCamera,light,type){if(object.visible===false)return;const visible=object.layers.test(camera.layers);if(visible&&(object.isMesh||object.isLine||object.isPoints)){if((object.castShadow||object.receiveShadow&&type===VSMShadowMap)&&(!object.frustumCulled||_frustum.intersectsObject(object))){object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse,object.matrixWorld);const geometry=objects.update(object);const material=object.material;if(Array.isArray(material)){const groups=geometry.groups;for(let k=0,kl=groups.length;k=1}else if(glVersion.indexOf("OpenGL ES")!==-1){version=parseFloat(/^OpenGL ES (\d)/.exec(glVersion)[1]);lineWidthAvailable=version>=2}let currentTextureSlot=null;let currentBoundTextures={};const scissorParam=gl.getParameter(gl.SCISSOR_BOX);const viewportParam=gl.getParameter(gl.VIEWPORT);const currentScissor=new Vector4().fromArray(scissorParam);const currentViewport=new Vector4().fromArray(viewportParam);function createTexture(type,target,count,dimensions){const data=new Uint8Array(4);const texture=gl.createTexture();gl.bindTexture(type,texture);gl.texParameteri(type,gl.TEXTURE_MIN_FILTER,gl.NEAREST);gl.texParameteri(type,gl.TEXTURE_MAG_FILTER,gl.NEAREST);for(let i=0;imaxSize||dimensions.height>maxSize){scale=maxSize/Math.max(dimensions.width,dimensions.height)}if(scale<1){if(typeof HTMLImageElement!=="undefined"&&image instanceof HTMLImageElement||typeof HTMLCanvasElement!=="undefined"&&image instanceof HTMLCanvasElement||typeof ImageBitmap!=="undefined"&&image instanceof ImageBitmap||typeof VideoFrame!=="undefined"&&image instanceof VideoFrame){const width=Math.floor(scale*dimensions.width);const height=Math.floor(scale*dimensions.height);if(_canvas===undefined)_canvas=createCanvas(width,height);const canvas=needsNewCanvas?createCanvas(width,height):_canvas;canvas.width=width;canvas.height=height;const context=canvas.getContext("2d");context.drawImage(image,0,0,width,height);warn("WebGLRenderer: Texture has been resized from ("+dimensions.width+"x"+dimensions.height+") to ("+width+"x"+height+").");return canvas}else{if("data"in image){warn("WebGLRenderer: Image in DataTexture is too big ("+dimensions.width+"x"+dimensions.height+").")}return image}}return image}function textureNeedsGenerateMipmaps(texture){return texture.generateMipmaps}function generateMipmap(target){_gl.generateMipmap(target)}function getTargetType(texture){if(texture.isWebGLCubeRenderTarget)return _gl.TEXTURE_CUBE_MAP;if(texture.isWebGL3DRenderTarget)return _gl.TEXTURE_3D;if(texture.isWebGLArrayRenderTarget||texture.isCompressedArrayTexture)return _gl.TEXTURE_2D_ARRAY;return _gl.TEXTURE_2D}function getInternalFormat(internalFormatName,glFormat,glType,colorSpace,forceLinearTransfer=false){if(internalFormatName!==null){if(_gl[internalFormatName]!==undefined)return _gl[internalFormatName];warn("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+internalFormatName+"'")}let internalFormat=glFormat;if(glFormat===_gl.RED){if(glType===_gl.FLOAT)internalFormat=_gl.R32F;if(glType===_gl.HALF_FLOAT)internalFormat=_gl.R16F;if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.R8}if(glFormat===_gl.RED_INTEGER){if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.R8UI;if(glType===_gl.UNSIGNED_SHORT)internalFormat=_gl.R16UI;if(glType===_gl.UNSIGNED_INT)internalFormat=_gl.R32UI;if(glType===_gl.BYTE)internalFormat=_gl.R8I;if(glType===_gl.SHORT)internalFormat=_gl.R16I;if(glType===_gl.INT)internalFormat=_gl.R32I}if(glFormat===_gl.RG){if(glType===_gl.FLOAT)internalFormat=_gl.RG32F;if(glType===_gl.HALF_FLOAT)internalFormat=_gl.RG16F;if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.RG8}if(glFormat===_gl.RG_INTEGER){if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.RG8UI;if(glType===_gl.UNSIGNED_SHORT)internalFormat=_gl.RG16UI;if(glType===_gl.UNSIGNED_INT)internalFormat=_gl.RG32UI;if(glType===_gl.BYTE)internalFormat=_gl.RG8I;if(glType===_gl.SHORT)internalFormat=_gl.RG16I;if(glType===_gl.INT)internalFormat=_gl.RG32I}if(glFormat===_gl.RGB_INTEGER){if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.RGB8UI;if(glType===_gl.UNSIGNED_SHORT)internalFormat=_gl.RGB16UI;if(glType===_gl.UNSIGNED_INT)internalFormat=_gl.RGB32UI;if(glType===_gl.BYTE)internalFormat=_gl.RGB8I;if(glType===_gl.SHORT)internalFormat=_gl.RGB16I;if(glType===_gl.INT)internalFormat=_gl.RGB32I}if(glFormat===_gl.RGBA_INTEGER){if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.RGBA8UI;if(glType===_gl.UNSIGNED_SHORT)internalFormat=_gl.RGBA16UI;if(glType===_gl.UNSIGNED_INT)internalFormat=_gl.RGBA32UI;if(glType===_gl.BYTE)internalFormat=_gl.RGBA8I;if(glType===_gl.SHORT)internalFormat=_gl.RGBA16I;if(glType===_gl.INT)internalFormat=_gl.RGBA32I}if(glFormat===_gl.RGB){if(glType===_gl.UNSIGNED_INT_5_9_9_9_REV)internalFormat=_gl.RGB9_E5;if(glType===_gl.UNSIGNED_INT_10F_11F_11F_REV)internalFormat=_gl.R11F_G11F_B10F}if(glFormat===_gl.RGBA){const transfer=forceLinearTransfer?LinearTransfer:ColorManagement.getTransfer(colorSpace);if(glType===_gl.FLOAT)internalFormat=_gl.RGBA32F;if(glType===_gl.HALF_FLOAT)internalFormat=_gl.RGBA16F;if(glType===_gl.UNSIGNED_BYTE)internalFormat=transfer===SRGBTransfer?_gl.SRGB8_ALPHA8:_gl.RGBA8;if(glType===_gl.UNSIGNED_SHORT_4_4_4_4)internalFormat=_gl.RGBA4;if(glType===_gl.UNSIGNED_SHORT_5_5_5_1)internalFormat=_gl.RGB5_A1}if(internalFormat===_gl.R16F||internalFormat===_gl.R32F||internalFormat===_gl.RG16F||internalFormat===_gl.RG32F||internalFormat===_gl.RGBA16F||internalFormat===_gl.RGBA32F){extensions.get("EXT_color_buffer_float")}return internalFormat}function getInternalDepthFormat(useStencil,depthType){let glInternalFormat;if(useStencil){if(depthType===null||depthType===UnsignedIntType||depthType===UnsignedInt248Type){glInternalFormat=_gl.DEPTH24_STENCIL8}else if(depthType===FloatType){glInternalFormat=_gl.DEPTH32F_STENCIL8}else if(depthType===UnsignedShortType){glInternalFormat=_gl.DEPTH24_STENCIL8;warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")}}else{if(depthType===null||depthType===UnsignedIntType||depthType===UnsignedInt248Type){glInternalFormat=_gl.DEPTH_COMPONENT24}else if(depthType===FloatType){glInternalFormat=_gl.DEPTH_COMPONENT32F}else if(depthType===UnsignedShortType){glInternalFormat=_gl.DEPTH_COMPONENT16}}return glInternalFormat}function getMipLevels(texture,image){if(textureNeedsGenerateMipmaps(texture)===true||texture.isFramebufferTexture&&texture.minFilter!==NearestFilter&&texture.minFilter!==LinearFilter){return Math.log2(Math.max(image.width,image.height))+1}else if(texture.mipmaps!==undefined&&texture.mipmaps.length>0){return texture.mipmaps.length}else if(texture.isCompressedTexture&&Array.isArray(texture.image)){return image.mipmaps.length}else{return 1}}function onTextureDispose(event){const texture=event.target;texture.removeEventListener("dispose",onTextureDispose);deallocateTexture(texture);if(texture.isVideoTexture){_videoTextures.delete(texture)}}function onRenderTargetDispose(event){const renderTarget=event.target;renderTarget.removeEventListener("dispose",onRenderTargetDispose);deallocateRenderTarget(renderTarget)}function deallocateTexture(texture){const textureProperties=properties.get(texture);if(textureProperties.__webglInit===undefined)return;const source=texture.source;const webglTextures=_sources.get(source);if(webglTextures){const webglTexture=webglTextures[textureProperties.__cacheKey];webglTexture.usedTimes--;if(webglTexture.usedTimes===0){deleteTexture(texture)}if(Object.keys(webglTextures).length===0){_sources.delete(source)}}properties.remove(texture)}function deleteTexture(texture){const textureProperties=properties.get(texture);_gl.deleteTexture(textureProperties.__webglTexture);const source=texture.source;const webglTextures=_sources.get(source);delete webglTextures[textureProperties.__cacheKey];info.memory.textures--}function deallocateRenderTarget(renderTarget){const renderTargetProperties=properties.get(renderTarget);if(renderTarget.depthTexture){renderTarget.depthTexture.dispose();properties.remove(renderTarget.depthTexture)}if(renderTarget.isWebGLCubeRenderTarget){for(let i=0;i<6;i++){if(Array.isArray(renderTargetProperties.__webglFramebuffer[i])){for(let level=0;level=capabilities.maxTextures){warn("WebGLTextures: Trying to use "+textureUnit+" texture units while this GPU supports only "+capabilities.maxTextures)}textureUnits+=1;return textureUnit}function getTextureCacheKey(texture){const array=[];array.push(texture.wrapS);array.push(texture.wrapT);array.push(texture.wrapR||0);array.push(texture.magFilter);array.push(texture.minFilter);array.push(texture.anisotropy);array.push(texture.internalFormat);array.push(texture.format);array.push(texture.type);array.push(texture.generateMipmaps);array.push(texture.premultiplyAlpha);array.push(texture.flipY);array.push(texture.unpackAlignment);array.push(texture.colorSpace);return array.join()}function setTexture2D(texture,slot){const textureProperties=properties.get(texture);if(texture.isVideoTexture)updateVideoTexture(texture);if(texture.isRenderTargetTexture===false&&texture.isExternalTexture!==true&&texture.version>0&&textureProperties.__version!==texture.version){const image=texture.image;if(image===null){warn("WebGLRenderer: Texture marked for update but no image data found.")}else if(image.complete===false){warn("WebGLRenderer: Texture marked for update but image is incomplete")}else{uploadTexture(textureProperties,texture,slot);return}}else if(texture.isExternalTexture){textureProperties.__webglTexture=texture.sourceTexture?texture.sourceTexture:null}state.bindTexture(_gl.TEXTURE_2D,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}function setTexture2DArray(texture,slot){const textureProperties=properties.get(texture);if(texture.isRenderTargetTexture===false&&texture.version>0&&textureProperties.__version!==texture.version){uploadTexture(textureProperties,texture,slot);return}else if(texture.isExternalTexture){textureProperties.__webglTexture=texture.sourceTexture?texture.sourceTexture:null}state.bindTexture(_gl.TEXTURE_2D_ARRAY,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}function setTexture3D(texture,slot){const textureProperties=properties.get(texture);if(texture.isRenderTargetTexture===false&&texture.version>0&&textureProperties.__version!==texture.version){uploadTexture(textureProperties,texture,slot);return}state.bindTexture(_gl.TEXTURE_3D,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}function setTextureCube(texture,slot){const textureProperties=properties.get(texture);if(texture.isCubeDepthTexture!==true&&texture.version>0&&textureProperties.__version!==texture.version){uploadCubeTexture(textureProperties,texture,slot);return}state.bindTexture(_gl.TEXTURE_CUBE_MAP,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}const wrappingToGL={[RepeatWrapping]:_gl.REPEAT,[ClampToEdgeWrapping]:_gl.CLAMP_TO_EDGE,[MirroredRepeatWrapping]:_gl.MIRRORED_REPEAT};const filterToGL={[NearestFilter]:_gl.NEAREST,[NearestMipmapNearestFilter]:_gl.NEAREST_MIPMAP_NEAREST,[NearestMipmapLinearFilter]:_gl.NEAREST_MIPMAP_LINEAR,[LinearFilter]:_gl.LINEAR,[LinearMipmapNearestFilter]:_gl.LINEAR_MIPMAP_NEAREST,[LinearMipmapLinearFilter]:_gl.LINEAR_MIPMAP_LINEAR};const compareToGL={[NeverCompare]:_gl.NEVER,[AlwaysCompare]:_gl.ALWAYS,[LessCompare]:_gl.LESS,[LessEqualCompare]:_gl.LEQUAL,[EqualCompare]:_gl.EQUAL,[GreaterEqualCompare]:_gl.GEQUAL,[GreaterCompare]:_gl.GREATER,[NotEqualCompare]:_gl.NOTEQUAL};function setTextureParameters(textureType,texture){if(texture.type===FloatType&&extensions.has("OES_texture_float_linear")===false&&(texture.magFilter===LinearFilter||texture.magFilter===LinearMipmapNearestFilter||texture.magFilter===NearestMipmapLinearFilter||texture.magFilter===LinearMipmapLinearFilter||texture.minFilter===LinearFilter||texture.minFilter===LinearMipmapNearestFilter||texture.minFilter===NearestMipmapLinearFilter||texture.minFilter===LinearMipmapLinearFilter)){warn("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.")}_gl.texParameteri(textureType,_gl.TEXTURE_WRAP_S,wrappingToGL[texture.wrapS]);_gl.texParameteri(textureType,_gl.TEXTURE_WRAP_T,wrappingToGL[texture.wrapT]);if(textureType===_gl.TEXTURE_3D||textureType===_gl.TEXTURE_2D_ARRAY){_gl.texParameteri(textureType,_gl.TEXTURE_WRAP_R,wrappingToGL[texture.wrapR])}_gl.texParameteri(textureType,_gl.TEXTURE_MAG_FILTER,filterToGL[texture.magFilter]);_gl.texParameteri(textureType,_gl.TEXTURE_MIN_FILTER,filterToGL[texture.minFilter]);if(texture.compareFunction){_gl.texParameteri(textureType,_gl.TEXTURE_COMPARE_MODE,_gl.COMPARE_REF_TO_TEXTURE);_gl.texParameteri(textureType,_gl.TEXTURE_COMPARE_FUNC,compareToGL[texture.compareFunction])}if(extensions.has("EXT_texture_filter_anisotropic")===true){if(texture.magFilter===NearestFilter)return;if(texture.minFilter!==NearestMipmapLinearFilter&&texture.minFilter!==LinearMipmapLinearFilter)return;if(texture.type===FloatType&&extensions.has("OES_texture_float_linear")===false)return;if(texture.anisotropy>1||properties.get(texture).__currentAnisotropy){const extension=extensions.get("EXT_texture_filter_anisotropic");_gl.texParameterf(textureType,extension.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(texture.anisotropy,capabilities.getMaxAnisotropy()));properties.get(texture).__currentAnisotropy=texture.anisotropy}}}function initTexture(textureProperties,texture){let forceUpload=false;if(textureProperties.__webglInit===undefined){textureProperties.__webglInit=true;texture.addEventListener("dispose",onTextureDispose)}const source=texture.source;let webglTextures=_sources.get(source);if(webglTextures===undefined){webglTextures={};_sources.set(source,webglTextures)}const textureCacheKey=getTextureCacheKey(texture);if(textureCacheKey!==textureProperties.__cacheKey){if(webglTextures[textureCacheKey]===undefined){webglTextures[textureCacheKey]={texture:_gl.createTexture(),usedTimes:0};info.memory.textures++;forceUpload=true}webglTextures[textureCacheKey].usedTimes++;const webglTexture=webglTextures[textureProperties.__cacheKey];if(webglTexture!==undefined){webglTextures[textureProperties.__cacheKey].usedTimes--;if(webglTexture.usedTimes===0){deleteTexture(texture)}}textureProperties.__cacheKey=textureCacheKey;textureProperties.__webglTexture=webglTextures[textureCacheKey].texture}return forceUpload}function getRow(index,rowLength,componentStride){return Math.floor(Math.floor(index/componentStride)/rowLength)}function updateTexture(texture,image,glFormat,glType){const componentStride=4;const updateRanges=texture.updateRanges;if(updateRanges.length===0){state.texSubImage2D(_gl.TEXTURE_2D,0,0,0,image.width,image.height,glFormat,glType,image.data)}else{updateRanges.sort((a,b)=>a.start-b.start);let mergeIndex=0;for(let i=1;i0){if(useTexStorage&&allocateMemory){state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,mipmaps[0].width,mipmaps[0].height)}for(let i=0,il=mipmaps.length;i0){const layerByteLength=getByteLength(mipmap.width,mipmap.height,texture.format,texture.type);for(const layerIndex of texture.layerUpdates){const layerData=mipmap.data.subarray(layerIndex*layerByteLength/mipmap.data.BYTES_PER_ELEMENT,(layerIndex+1)*layerByteLength/mipmap.data.BYTES_PER_ELEMENT);state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY,i,0,0,layerIndex,mipmap.width,mipmap.height,1,glFormat,layerData)}texture.clearLayerUpdates()}else{state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY,i,0,0,0,mipmap.width,mipmap.height,image.depth,glFormat,mipmap.data)}}}else{state.compressedTexImage3D(_gl.TEXTURE_2D_ARRAY,i,glInternalFormat,mipmap.width,mipmap.height,image.depth,0,mipmap.data,0,0)}}else{warn("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()")}}else{if(useTexStorage){if(dataReady){state.texSubImage3D(_gl.TEXTURE_2D_ARRAY,i,0,0,0,mipmap.width,mipmap.height,image.depth,glFormat,glType,mipmap.data)}}else{state.texImage3D(_gl.TEXTURE_2D_ARRAY,i,glInternalFormat,mipmap.width,mipmap.height,image.depth,0,glFormat,glType,mipmap.data)}}}}else{if(useTexStorage&&allocateMemory){state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,mipmaps[0].width,mipmaps[0].height)}for(let i=0,il=mipmaps.length;i0){const layerByteLength=getByteLength(image.width,image.height,texture.format,texture.type);for(const layerIndex of texture.layerUpdates){const layerData=image.data.subarray(layerIndex*layerByteLength/image.data.BYTES_PER_ELEMENT,(layerIndex+1)*layerByteLength/image.data.BYTES_PER_ELEMENT);state.texSubImage3D(_gl.TEXTURE_2D_ARRAY,0,0,0,layerIndex,image.width,image.height,1,glFormat,glType,layerData)}texture.clearLayerUpdates()}else{state.texSubImage3D(_gl.TEXTURE_2D_ARRAY,0,0,0,0,image.width,image.height,image.depth,glFormat,glType,image.data)}}}else{state.texImage3D(_gl.TEXTURE_2D_ARRAY,0,glInternalFormat,image.width,image.height,image.depth,0,glFormat,glType,image.data)}}else if(texture.isData3DTexture){if(useTexStorage){if(allocateMemory){state.texStorage3D(_gl.TEXTURE_3D,levels,glInternalFormat,image.width,image.height,image.depth)}if(dataReady){state.texSubImage3D(_gl.TEXTURE_3D,0,0,0,0,image.width,image.height,image.depth,glFormat,glType,image.data)}}else{state.texImage3D(_gl.TEXTURE_3D,0,glInternalFormat,image.width,image.height,image.depth,0,glFormat,glType,image.data)}}else if(texture.isFramebufferTexture){if(allocateMemory){if(useTexStorage){state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,image.width,image.height)}else{let width=image.width,height=image.height;for(let i=0;i>=1;height>>=1}}}}else{if(mipmaps.length>0){if(useTexStorage&&allocateMemory){const dimensions=getDimensions(mipmaps[0]);state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,dimensions.width,dimensions.height)}for(let i=0,il=mipmaps.length;i0)levels++;const dimensions=getDimensions(cubeImage[0]);state.texStorage2D(_gl.TEXTURE_CUBE_MAP,levels,glInternalFormat,dimensions.width,dimensions.height)}for(let i=0;i<6;i++){if(isDataTexture){if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,0,0,cubeImage[i].width,cubeImage[i].height,glFormat,glType,cubeImage[i].data)}}else{state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,glInternalFormat,cubeImage[i].width,cubeImage[i].height,0,glFormat,glType,cubeImage[i].data)}for(let j=0;j>level);const height=Math.max(1,renderTarget.height>>level);if(textureTarget===_gl.TEXTURE_3D||textureTarget===_gl.TEXTURE_2D_ARRAY){state.texImage3D(textureTarget,level,glInternalFormat,width,height,renderTarget.depth,0,glFormat,glType,null)}else{state.texImage2D(textureTarget,level,glInternalFormat,width,height,0,glFormat,glType,null)}}state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);if(useMultisampledRTT(renderTarget)){multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER,attachment,textureTarget,textureProperties.__webglTexture,0,getRenderTargetSamples(renderTarget))}else if(textureTarget===_gl.TEXTURE_2D||textureTarget>=_gl.TEXTURE_CUBE_MAP_POSITIVE_X&&textureTarget<=_gl.TEXTURE_CUBE_MAP_NEGATIVE_Z){_gl.framebufferTexture2D(_gl.FRAMEBUFFER,attachment,textureTarget,textureProperties.__webglTexture,level)}state.bindFramebuffer(_gl.FRAMEBUFFER,null)}function setupRenderBufferStorage(renderbuffer,renderTarget,useMultisample){_gl.bindRenderbuffer(_gl.RENDERBUFFER,renderbuffer);if(renderTarget.depthBuffer){const depthTexture=renderTarget.depthTexture;const depthType=depthTexture&&depthTexture.isDepthTexture?depthTexture.type:null;const glInternalFormat=getInternalDepthFormat(renderTarget.stencilBuffer,depthType);const glAttachmentType=renderTarget.stencilBuffer?_gl.DEPTH_STENCIL_ATTACHMENT:_gl.DEPTH_ATTACHMENT;if(useMultisampledRTT(renderTarget)){multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER,getRenderTargetSamples(renderTarget),glInternalFormat,renderTarget.width,renderTarget.height)}else if(useMultisample){_gl.renderbufferStorageMultisample(_gl.RENDERBUFFER,getRenderTargetSamples(renderTarget),glInternalFormat,renderTarget.width,renderTarget.height)}else{_gl.renderbufferStorage(_gl.RENDERBUFFER,glInternalFormat,renderTarget.width,renderTarget.height)}_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,glAttachmentType,_gl.RENDERBUFFER,renderbuffer)}else{const textures=renderTarget.textures;for(let i=0;i{delete renderTargetProperties.__boundDepthTexture;delete renderTargetProperties.__depthDisposeCallback;depthTexture.removeEventListener("dispose",disposeEvent)};depthTexture.addEventListener("dispose",disposeEvent);renderTargetProperties.__depthDisposeCallback=disposeEvent}renderTargetProperties.__boundDepthTexture=depthTexture}if(renderTarget.depthTexture&&!renderTargetProperties.__autoAllocateDepthBuffer){if(isCube){for(let i=0;i<6;i++){setupDepthTexture(renderTargetProperties.__webglFramebuffer[i],renderTarget,i)}}else{const mipmaps=renderTarget.texture.mipmaps;if(mipmaps&&mipmaps.length>0){setupDepthTexture(renderTargetProperties.__webglFramebuffer[0],renderTarget,0)}else{setupDepthTexture(renderTargetProperties.__webglFramebuffer,renderTarget,0)}}}else{if(isCube){renderTargetProperties.__webglDepthbuffer=[];for(let i=0;i<6;i++){state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer[i]);if(renderTargetProperties.__webglDepthbuffer[i]===undefined){renderTargetProperties.__webglDepthbuffer[i]=_gl.createRenderbuffer();setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i],renderTarget,false)}else{const glAttachmentType=renderTarget.stencilBuffer?_gl.DEPTH_STENCIL_ATTACHMENT:_gl.DEPTH_ATTACHMENT;const renderbuffer=renderTargetProperties.__webglDepthbuffer[i];_gl.bindRenderbuffer(_gl.RENDERBUFFER,renderbuffer);_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,glAttachmentType,_gl.RENDERBUFFER,renderbuffer)}}}else{const mipmaps=renderTarget.texture.mipmaps;if(mipmaps&&mipmaps.length>0){state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer[0])}else{state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer)}if(renderTargetProperties.__webglDepthbuffer===undefined){renderTargetProperties.__webglDepthbuffer=_gl.createRenderbuffer();setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer,renderTarget,false)}else{const glAttachmentType=renderTarget.stencilBuffer?_gl.DEPTH_STENCIL_ATTACHMENT:_gl.DEPTH_ATTACHMENT;const renderbuffer=renderTargetProperties.__webglDepthbuffer;_gl.bindRenderbuffer(_gl.RENDERBUFFER,renderbuffer);_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,glAttachmentType,_gl.RENDERBUFFER,renderbuffer)}}}state.bindFramebuffer(_gl.FRAMEBUFFER,null)}function rebindTextures(renderTarget,colorTexture,depthTexture){const renderTargetProperties=properties.get(renderTarget);if(colorTexture!==undefined){setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer,renderTarget,renderTarget.texture,_gl.COLOR_ATTACHMENT0,_gl.TEXTURE_2D,0)}if(depthTexture!==undefined){setupDepthRenderbuffer(renderTarget)}}function setupRenderTarget(renderTarget){const texture=renderTarget.texture;const renderTargetProperties=properties.get(renderTarget);const textureProperties=properties.get(texture);renderTarget.addEventListener("dispose",onRenderTargetDispose);const textures=renderTarget.textures;const isCube=renderTarget.isWebGLCubeRenderTarget===true;const isMultipleRenderTargets=textures.length>1;if(!isMultipleRenderTargets){if(textureProperties.__webglTexture===undefined){textureProperties.__webglTexture=_gl.createTexture()}textureProperties.__version=texture.version;info.memory.textures++}if(isCube){renderTargetProperties.__webglFramebuffer=[];for(let i=0;i<6;i++){if(texture.mipmaps&&texture.mipmaps.length>0){renderTargetProperties.__webglFramebuffer[i]=[];for(let level=0;level0){renderTargetProperties.__webglFramebuffer=[];for(let level=0;level0&&useMultisampledRTT(renderTarget)===false){renderTargetProperties.__webglMultisampledFramebuffer=_gl.createFramebuffer();renderTargetProperties.__webglColorRenderbuffer=[];state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglMultisampledFramebuffer);for(let i=0;i0){for(let level=0;level0){for(let level=0;level0){if(useMultisampledRTT(renderTarget)===false){const textures=renderTarget.textures;const width=renderTarget.width;const height=renderTarget.height;let mask=_gl.COLOR_BUFFER_BIT;const depthStyle=renderTarget.stencilBuffer?_gl.DEPTH_STENCIL_ATTACHMENT:_gl.DEPTH_ATTACHMENT;const renderTargetProperties=properties.get(renderTarget);const isMultipleRenderTargets=textures.length>1;if(isMultipleRenderTargets){for(let i=0;i0){state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,renderTargetProperties.__webglFramebuffer[0])}else{state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,renderTargetProperties.__webglFramebuffer)}for(let i=0;i0&&extensions.has("WEBGL_multisampled_render_to_texture")===true&&renderTargetProperties.__useRenderToTexture!==false}function updateVideoTexture(texture){const frame=info.render.frame;if(_videoTextures.get(texture)!==frame){_videoTextures.set(texture,frame);texture.update()}}function verifyColorSpace(texture,image){const colorSpace=texture.colorSpace;const format=texture.format;const type=texture.type;if(texture.isCompressedTexture===true||texture.isVideoTexture===true)return image;if(colorSpace!==LinearSRGBColorSpace&&colorSpace!==NoColorSpace){if(ColorManagement.getTransfer(colorSpace)===SRGBTransfer){if(format!==RGBAFormat||type!==UnsignedByteType){warn("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.")}}else{error("WebGLTextures: Unsupported texture color space:",colorSpace)}}return image}function getDimensions(image){if(typeof HTMLImageElement!=="undefined"&&image instanceof HTMLImageElement){_imageDimensions.width=image.naturalWidth||image.width;_imageDimensions.height=image.naturalHeight||image.height}else if(typeof VideoFrame!=="undefined"&&image instanceof VideoFrame){_imageDimensions.width=image.displayWidth;_imageDimensions.height=image.displayHeight}else{_imageDimensions.width=image.width;_imageDimensions.height=image.height}return _imageDimensions}this.allocateTextureUnit=allocateTextureUnit;this.resetTextureUnits=resetTextureUnits;this.setTexture2D=setTexture2D;this.setTexture2DArray=setTexture2DArray;this.setTexture3D=setTexture3D;this.setTextureCube=setTextureCube;this.rebindTextures=rebindTextures;this.setupRenderTarget=setupRenderTarget;this.updateRenderTargetMipmap=updateRenderTargetMipmap;this.updateMultisampleRenderTarget=updateMultisampleRenderTarget;this.setupDepthRenderbuffer=setupDepthRenderbuffer;this.setupFrameBufferTexture=setupFrameBufferTexture;this.useMultisampledRTT=useMultisampledRTT;this.isReversedDepthBuffer=function(){return state.buffers.depth.getReversed()}}function WebGLUtils(gl,extensions){function convert(p,colorSpace=NoColorSpace){let extension;const transfer=ColorManagement.getTransfer(colorSpace);if(p===UnsignedByteType)return gl.UNSIGNED_BYTE;if(p===UnsignedShort4444Type)return gl.UNSIGNED_SHORT_4_4_4_4;if(p===UnsignedShort5551Type)return gl.UNSIGNED_SHORT_5_5_5_1;if(p===UnsignedInt5999Type)return gl.UNSIGNED_INT_5_9_9_9_REV;if(p===UnsignedInt101111Type)return gl.UNSIGNED_INT_10F_11F_11F_REV;if(p===ByteType)return gl.BYTE;if(p===ShortType)return gl.SHORT;if(p===UnsignedShortType)return gl.UNSIGNED_SHORT;if(p===IntType)return gl.INT;if(p===UnsignedIntType)return gl.UNSIGNED_INT;if(p===FloatType)return gl.FLOAT;if(p===HalfFloatType)return gl.HALF_FLOAT;if(p===AlphaFormat)return gl.ALPHA;if(p===RGBFormat)return gl.RGB;if(p===RGBAFormat)return gl.RGBA;if(p===DepthFormat)return gl.DEPTH_COMPONENT;if(p===DepthStencilFormat)return gl.DEPTH_STENCIL;if(p===RedFormat)return gl.RED;if(p===RedIntegerFormat)return gl.RED_INTEGER;if(p===RGFormat)return gl.RG;if(p===RGIntegerFormat)return gl.RG_INTEGER;if(p===RGBAIntegerFormat)return gl.RGBA_INTEGER;if(p===RGB_S3TC_DXT1_Format||p===RGBA_S3TC_DXT1_Format||p===RGBA_S3TC_DXT3_Format||p===RGBA_S3TC_DXT5_Format){if(transfer===SRGBTransfer){extension=extensions.get("WEBGL_compressed_texture_s3tc_srgb");if(extension!==null){if(p===RGB_S3TC_DXT1_Format)return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(p===RGBA_S3TC_DXT1_Format)return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(p===RGBA_S3TC_DXT3_Format)return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(p===RGBA_S3TC_DXT5_Format)return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{return null}}else{extension=extensions.get("WEBGL_compressed_texture_s3tc");if(extension!==null){if(p===RGB_S3TC_DXT1_Format)return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;if(p===RGBA_S3TC_DXT1_Format)return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(p===RGBA_S3TC_DXT3_Format)return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(p===RGBA_S3TC_DXT5_Format)return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT}else{return null}}}if(p===RGB_PVRTC_4BPPV1_Format||p===RGB_PVRTC_2BPPV1_Format||p===RGBA_PVRTC_4BPPV1_Format||p===RGBA_PVRTC_2BPPV1_Format){extension=extensions.get("WEBGL_compressed_texture_pvrtc");if(extension!==null){if(p===RGB_PVRTC_4BPPV1_Format)return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(p===RGB_PVRTC_2BPPV1_Format)return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(p===RGBA_PVRTC_4BPPV1_Format)return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(p===RGBA_PVRTC_2BPPV1_Format)return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else{return null}}if(p===RGB_ETC1_Format||p===RGB_ETC2_Format||p===RGBA_ETC2_EAC_Format||p===R11_EAC_Format||p===SIGNED_R11_EAC_Format||p===RG11_EAC_Format||p===SIGNED_RG11_EAC_Format){extension=extensions.get("WEBGL_compressed_texture_etc");if(extension!==null){if(p===RGB_ETC1_Format||p===RGB_ETC2_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ETC2:extension.COMPRESSED_RGB8_ETC2;if(p===RGBA_ETC2_EAC_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:extension.COMPRESSED_RGBA8_ETC2_EAC;if(p===R11_EAC_Format)return extension.COMPRESSED_R11_EAC;if(p===SIGNED_R11_EAC_Format)return extension.COMPRESSED_SIGNED_R11_EAC;if(p===RG11_EAC_Format)return extension.COMPRESSED_RG11_EAC;if(p===SIGNED_RG11_EAC_Format)return extension.COMPRESSED_SIGNED_RG11_EAC}else{return null}}if(p===RGBA_ASTC_4x4_Format||p===RGBA_ASTC_5x4_Format||p===RGBA_ASTC_5x5_Format||p===RGBA_ASTC_6x5_Format||p===RGBA_ASTC_6x6_Format||p===RGBA_ASTC_8x5_Format||p===RGBA_ASTC_8x6_Format||p===RGBA_ASTC_8x8_Format||p===RGBA_ASTC_10x5_Format||p===RGBA_ASTC_10x6_Format||p===RGBA_ASTC_10x8_Format||p===RGBA_ASTC_10x10_Format||p===RGBA_ASTC_12x10_Format||p===RGBA_ASTC_12x12_Format){extension=extensions.get("WEBGL_compressed_texture_astc");if(extension!==null){if(p===RGBA_ASTC_4x4_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:extension.COMPRESSED_RGBA_ASTC_4x4_KHR;if(p===RGBA_ASTC_5x4_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:extension.COMPRESSED_RGBA_ASTC_5x4_KHR;if(p===RGBA_ASTC_5x5_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:extension.COMPRESSED_RGBA_ASTC_5x5_KHR;if(p===RGBA_ASTC_6x5_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:extension.COMPRESSED_RGBA_ASTC_6x5_KHR;if(p===RGBA_ASTC_6x6_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:extension.COMPRESSED_RGBA_ASTC_6x6_KHR;if(p===RGBA_ASTC_8x5_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:extension.COMPRESSED_RGBA_ASTC_8x5_KHR;if(p===RGBA_ASTC_8x6_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:extension.COMPRESSED_RGBA_ASTC_8x6_KHR;if(p===RGBA_ASTC_8x8_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:extension.COMPRESSED_RGBA_ASTC_8x8_KHR;if(p===RGBA_ASTC_10x5_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:extension.COMPRESSED_RGBA_ASTC_10x5_KHR;if(p===RGBA_ASTC_10x6_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:extension.COMPRESSED_RGBA_ASTC_10x6_KHR;if(p===RGBA_ASTC_10x8_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:extension.COMPRESSED_RGBA_ASTC_10x8_KHR;if(p===RGBA_ASTC_10x10_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:extension.COMPRESSED_RGBA_ASTC_10x10_KHR;if(p===RGBA_ASTC_12x10_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:extension.COMPRESSED_RGBA_ASTC_12x10_KHR;if(p===RGBA_ASTC_12x12_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:extension.COMPRESSED_RGBA_ASTC_12x12_KHR}else{return null}}if(p===RGBA_BPTC_Format||p===RGB_BPTC_SIGNED_Format||p===RGB_BPTC_UNSIGNED_Format){extension=extensions.get("EXT_texture_compression_bptc");if(extension!==null){if(p===RGBA_BPTC_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(p===RGB_BPTC_SIGNED_Format)return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(p===RGB_BPTC_UNSIGNED_Format)return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else{return null}}if(p===RED_RGTC1_Format||p===SIGNED_RED_RGTC1_Format||p===RED_GREEN_RGTC2_Format||p===SIGNED_RED_GREEN_RGTC2_Format){extension=extensions.get("EXT_texture_compression_rgtc");if(extension!==null){if(p===RED_RGTC1_Format)return extension.COMPRESSED_RED_RGTC1_EXT;if(p===SIGNED_RED_RGTC1_Format)return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(p===RED_GREEN_RGTC2_Format)return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;if(p===SIGNED_RED_GREEN_RGTC2_Format)return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else{return null}}if(p===UnsignedInt248Type)return gl.UNSIGNED_INT_24_8;return gl[p]!==undefined?gl[p]:null}return{convert:convert}}const _occlusion_vertex=` void main() { gl_Position = vec4( position, 1.0 ); }`;const _occlusion_fragment=` uniform sampler2DArray depthColor; uniform float depthWidth; uniform float depthHeight; void main() { vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); if ( coord.x >= 1.0 ) { gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; } else { gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; } }`;class WebXRDepthSensing{constructor(){this.texture=null;this.mesh=null;this.depthNear=0;this.depthFar=0}init(depthData,renderState){if(this.texture===null){const texture=new ExternalTexture(depthData.texture);if(depthData.depthNear!==renderState.depthNear||depthData.depthFar!==renderState.depthFar){this.depthNear=depthData.depthNear;this.depthFar=depthData.depthFar}this.texture=texture}}getMesh(cameraXR){if(this.texture!==null){if(this.mesh===null){const viewport=cameraXR.cameras[0].viewport;const material=new ShaderMaterial({vertexShader:_occlusion_vertex,fragmentShader:_occlusion_fragment,uniforms:{depthColor:{value:this.texture},depthWidth:{value:viewport.z},depthHeight:{value:viewport.w}}});this.mesh=new Mesh(new PlaneGeometry(20,20),material)}}return this.mesh}reset(){this.texture=null;this.mesh=null}getDepthTexture(){return this.texture}}class WebXRManager extends EventDispatcher{constructor(renderer,gl){super();const scope=this;let session=null;let framebufferScaleFactor=1;let referenceSpace=null;let referenceSpaceType="local-floor";let foveation=1;let customReferenceSpace=null;let pose=null;let glBinding=null;let glProjLayer=null;let glBaseLayer=null;let xrFrame=null;const supportsGlBinding=typeof XRWebGLBinding!=="undefined";const depthSensing=new WebXRDepthSensing;const cameraAccessTextures={};const attributes=gl.getContextAttributes();let initialRenderTarget=null;let newRenderTarget=null;const controllers=[];const controllerInputSources=[];const currentSize=new Vector2;let currentPixelRatio=null;const cameraL=new PerspectiveCamera;cameraL.viewport=new Vector4;const cameraR=new PerspectiveCamera;cameraR.viewport=new Vector4;const cameras=[cameraL,cameraR];const cameraXR=new ArrayCamera;let _currentDepthNear=null;let _currentDepthFar=null;this.cameraAutoUpdate=true;this.enabled=false;this.isPresenting=false;this.getController=function(index){let controller=controllers[index];if(controller===undefined){controller=new WebXRController;controllers[index]=controller}return controller.getTargetRaySpace()};this.getControllerGrip=function(index){let controller=controllers[index];if(controller===undefined){controller=new WebXRController;controllers[index]=controller}return controller.getGripSpace()};this.getHand=function(index){let controller=controllers[index];if(controller===undefined){controller=new WebXRController;controllers[index]=controller}return controller.getHandSpace()};function onSessionEvent(event){const controllerIndex=controllerInputSources.indexOf(event.inputSource);if(controllerIndex===-1){return}const controller=controllers[controllerIndex];if(controller!==undefined){controller.update(event.inputSource,event.frame,customReferenceSpace||referenceSpace);controller.dispatchEvent({type:event.type,data:event.inputSource})}}function onSessionEnd(){session.removeEventListener("select",onSessionEvent);session.removeEventListener("selectstart",onSessionEvent);session.removeEventListener("selectend",onSessionEvent);session.removeEventListener("squeeze",onSessionEvent);session.removeEventListener("squeezestart",onSessionEvent);session.removeEventListener("squeezeend",onSessionEvent);session.removeEventListener("end",onSessionEnd);session.removeEventListener("inputsourceschange",onInputSourcesChange);for(let i=0;i=0){controllerInputSources[index]=null;controllers[index].disconnect(inputSource)}}for(let i=0;i=controllerInputSources.length){controllerInputSources.push(inputSource);controllerIndex=i;break}else if(controllerInputSources[i]===null){controllerInputSources[i]=inputSource;controllerIndex=i;break}}if(controllerIndex===-1)break}const controller=controllers[controllerIndex];if(controller){controller.connect(inputSource)}}}const cameraLPos=new Vector3;const cameraRPos=new Vector3;function setProjectionFromUnion(camera,cameraL,cameraR){cameraLPos.setFromMatrixPosition(cameraL.matrixWorld);cameraRPos.setFromMatrixPosition(cameraR.matrixWorld);const ipd=cameraLPos.distanceTo(cameraRPos);const projL=cameraL.projectionMatrix.elements;const projR=cameraR.projectionMatrix.elements;const near=projL[14]/(projL[10]-1);const far=projL[14]/(projL[10]+1);const topFov=(projL[9]+1)/projL[5];const bottomFov=(projL[9]-1)/projL[5];const leftFov=(projL[8]-1)/projL[0];const rightFov=(projR[8]+1)/projR[0];const left=near*leftFov;const right=near*rightFov;const zOffset=ipd/(-leftFov+rightFov);const xOffset=zOffset*-leftFov;cameraL.matrixWorld.decompose(camera.position,camera.quaternion,camera.scale);camera.translateX(xOffset);camera.translateZ(zOffset);camera.matrixWorld.compose(camera.position,camera.quaternion,camera.scale);camera.matrixWorldInverse.copy(camera.matrixWorld).invert();if(projL[10]===-1){camera.projectionMatrix.copy(cameraL.projectionMatrix);camera.projectionMatrixInverse.copy(cameraL.projectionMatrixInverse)}else{const near2=near+zOffset;const far2=far+zOffset;const left2=left-xOffset;const right2=right+(ipd-xOffset);const top2=topFov*far/far2*near2;const bottom2=bottomFov*far/far2*near2;camera.projectionMatrix.makePerspective(left2,right2,top2,bottom2,near2,far2);camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert()}}function updateCamera(camera,parent){if(parent===null){camera.matrixWorld.copy(camera.matrix)}else{camera.matrixWorld.multiplyMatrices(parent.matrixWorld,camera.matrix)}camera.matrixWorldInverse.copy(camera.matrixWorld).invert()}this.updateCamera=function(camera){if(session===null)return;let depthNear=camera.near;let depthFar=camera.far;if(depthSensing.texture!==null){if(depthSensing.depthNear>0)depthNear=depthSensing.depthNear;if(depthSensing.depthFar>0)depthFar=depthSensing.depthFar}cameraXR.near=cameraR.near=cameraL.near=depthNear;cameraXR.far=cameraR.far=cameraL.far=depthFar;if(_currentDepthNear!==cameraXR.near||_currentDepthFar!==cameraXR.far){session.updateRenderState({depthNear:cameraXR.near,depthFar:cameraXR.far});_currentDepthNear=cameraXR.near;_currentDepthFar=cameraXR.far}cameraXR.layers.mask=camera.layers.mask|6;cameraL.layers.mask=cameraXR.layers.mask&3;cameraR.layers.mask=cameraXR.layers.mask&5;const parent=camera.parent;const cameras=cameraXR.cameras;updateCamera(cameraXR,parent);for(let i=0;i0){uniforms.alphaTest.value=material.alphaTest}const materialProperties=properties.get(material);const envMap=materialProperties.envMap;const envMapRotation=materialProperties.envMapRotation;if(envMap){uniforms.envMap.value=envMap;_e1.copy(envMapRotation);_e1.x*=-1;_e1.y*=-1;_e1.z*=-1;if(envMap.isCubeTexture&&envMap.isRenderTargetTexture===false){_e1.y*=-1;_e1.z*=-1}uniforms.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1));uniforms.flipEnvMap.value=envMap.isCubeTexture&&envMap.isRenderTargetTexture===false?-1:1;uniforms.reflectivity.value=material.reflectivity;uniforms.ior.value=material.ior;uniforms.refractionRatio.value=material.refractionRatio}if(material.lightMap){uniforms.lightMap.value=material.lightMap;uniforms.lightMapIntensity.value=material.lightMapIntensity;refreshTransformUniform(material.lightMap,uniforms.lightMapTransform)}if(material.aoMap){uniforms.aoMap.value=material.aoMap;uniforms.aoMapIntensity.value=material.aoMapIntensity;refreshTransformUniform(material.aoMap,uniforms.aoMapTransform)}}function refreshUniformsLine(uniforms,material){uniforms.diffuse.value.copy(material.color);uniforms.opacity.value=material.opacity;if(material.map){uniforms.map.value=material.map;refreshTransformUniform(material.map,uniforms.mapTransform)}}function refreshUniformsDash(uniforms,material){uniforms.dashSize.value=material.dashSize;uniforms.totalSize.value=material.dashSize+material.gapSize;uniforms.scale.value=material.scale}function refreshUniformsPoints(uniforms,material,pixelRatio,height){uniforms.diffuse.value.copy(material.color);uniforms.opacity.value=material.opacity;uniforms.size.value=material.size*pixelRatio;uniforms.scale.value=height*0.5;if(material.map){uniforms.map.value=material.map;refreshTransformUniform(material.map,uniforms.uvTransform)}if(material.alphaMap){uniforms.alphaMap.value=material.alphaMap;refreshTransformUniform(material.alphaMap,uniforms.alphaMapTransform)}if(material.alphaTest>0){uniforms.alphaTest.value=material.alphaTest}}function refreshUniformsSprites(uniforms,material){uniforms.diffuse.value.copy(material.color);uniforms.opacity.value=material.opacity;uniforms.rotation.value=material.rotation;if(material.map){uniforms.map.value=material.map;refreshTransformUniform(material.map,uniforms.mapTransform)}if(material.alphaMap){uniforms.alphaMap.value=material.alphaMap;refreshTransformUniform(material.alphaMap,uniforms.alphaMapTransform)}if(material.alphaTest>0){uniforms.alphaTest.value=material.alphaTest}}function refreshUniformsPhong(uniforms,material){uniforms.specular.value.copy(material.specular);uniforms.shininess.value=Math.max(material.shininess,1e-4)}function refreshUniformsToon(uniforms,material){if(material.gradientMap){uniforms.gradientMap.value=material.gradientMap}}function refreshUniformsStandard(uniforms,material){uniforms.metalness.value=material.metalness;if(material.metalnessMap){uniforms.metalnessMap.value=material.metalnessMap;refreshTransformUniform(material.metalnessMap,uniforms.metalnessMapTransform)}uniforms.roughness.value=material.roughness;if(material.roughnessMap){uniforms.roughnessMap.value=material.roughnessMap;refreshTransformUniform(material.roughnessMap,uniforms.roughnessMapTransform)}if(material.envMap){uniforms.envMapIntensity.value=material.envMapIntensity}}function refreshUniformsPhysical(uniforms,material,transmissionRenderTarget){uniforms.ior.value=material.ior;if(material.sheen>0){uniforms.sheenColor.value.copy(material.sheenColor).multiplyScalar(material.sheen);uniforms.sheenRoughness.value=material.sheenRoughness;if(material.sheenColorMap){uniforms.sheenColorMap.value=material.sheenColorMap;refreshTransformUniform(material.sheenColorMap,uniforms.sheenColorMapTransform)}if(material.sheenRoughnessMap){uniforms.sheenRoughnessMap.value=material.sheenRoughnessMap;refreshTransformUniform(material.sheenRoughnessMap,uniforms.sheenRoughnessMapTransform)}}if(material.clearcoat>0){uniforms.clearcoat.value=material.clearcoat;uniforms.clearcoatRoughness.value=material.clearcoatRoughness;if(material.clearcoatMap){uniforms.clearcoatMap.value=material.clearcoatMap;refreshTransformUniform(material.clearcoatMap,uniforms.clearcoatMapTransform)}if(material.clearcoatRoughnessMap){uniforms.clearcoatRoughnessMap.value=material.clearcoatRoughnessMap;refreshTransformUniform(material.clearcoatRoughnessMap,uniforms.clearcoatRoughnessMapTransform)}if(material.clearcoatNormalMap){uniforms.clearcoatNormalMap.value=material.clearcoatNormalMap;refreshTransformUniform(material.clearcoatNormalMap,uniforms.clearcoatNormalMapTransform);uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);if(material.side===BackSide){uniforms.clearcoatNormalScale.value.negate()}}}if(material.dispersion>0){uniforms.dispersion.value=material.dispersion}if(material.iridescence>0){uniforms.iridescence.value=material.iridescence;uniforms.iridescenceIOR.value=material.iridescenceIOR;uniforms.iridescenceThicknessMinimum.value=material.iridescenceThicknessRange[0];uniforms.iridescenceThicknessMaximum.value=material.iridescenceThicknessRange[1];if(material.iridescenceMap){uniforms.iridescenceMap.value=material.iridescenceMap;refreshTransformUniform(material.iridescenceMap,uniforms.iridescenceMapTransform)}if(material.iridescenceThicknessMap){uniforms.iridescenceThicknessMap.value=material.iridescenceThicknessMap;refreshTransformUniform(material.iridescenceThicknessMap,uniforms.iridescenceThicknessMapTransform)}}if(material.transmission>0){uniforms.transmission.value=material.transmission;uniforms.transmissionSamplerMap.value=transmissionRenderTarget.texture;uniforms.transmissionSamplerSize.value.set(transmissionRenderTarget.width,transmissionRenderTarget.height);if(material.transmissionMap){uniforms.transmissionMap.value=material.transmissionMap;refreshTransformUniform(material.transmissionMap,uniforms.transmissionMapTransform)}uniforms.thickness.value=material.thickness;if(material.thicknessMap){uniforms.thicknessMap.value=material.thicknessMap;refreshTransformUniform(material.thicknessMap,uniforms.thicknessMapTransform)}uniforms.attenuationDistance.value=material.attenuationDistance;uniforms.attenuationColor.value.copy(material.attenuationColor)}if(material.anisotropy>0){uniforms.anisotropyVector.value.set(material.anisotropy*Math.cos(material.anisotropyRotation),material.anisotropy*Math.sin(material.anisotropyRotation));if(material.anisotropyMap){uniforms.anisotropyMap.value=material.anisotropyMap;refreshTransformUniform(material.anisotropyMap,uniforms.anisotropyMapTransform)}}uniforms.specularIntensity.value=material.specularIntensity;uniforms.specularColor.value.copy(material.specularColor);if(material.specularColorMap){uniforms.specularColorMap.value=material.specularColorMap;refreshTransformUniform(material.specularColorMap,uniforms.specularColorMapTransform)}if(material.specularIntensityMap){uniforms.specularIntensityMap.value=material.specularIntensityMap;refreshTransformUniform(material.specularIntensityMap,uniforms.specularIntensityMapTransform)}}function refreshUniformsMatcap(uniforms,material){if(material.matcap){uniforms.matcap.value=material.matcap}}function refreshUniformsDistance(uniforms,material){const light=properties.get(material).light;uniforms.referencePosition.value.setFromMatrixPosition(light.matrixWorld);uniforms.nearDistance.value=light.shadow.camera.near;uniforms.farDistance.value=light.shadow.camera.far}return{refreshFogUniforms:refreshFogUniforms,refreshMaterialUniforms:refreshMaterialUniforms}}function WebGLUniformsGroups(gl,info,capabilities,state){let buffers={};let updateList={};let allocatedBindingPoints=[];const maxBindingPoints=gl.getParameter(gl.MAX_UNIFORM_BUFFER_BINDINGS);function bind(uniformsGroup,program){const webglProgram=program.program;state.uniformBlockBinding(uniformsGroup,webglProgram)}function update(uniformsGroup,program){let buffer=buffers[uniformsGroup.id];if(buffer===undefined){prepareUniformsGroup(uniformsGroup);buffer=createBuffer(uniformsGroup);buffers[uniformsGroup.id]=buffer;uniformsGroup.addEventListener("dispose",onUniformsGroupsDispose)}const webglProgram=program.program;state.updateUBOMapping(uniformsGroup,webglProgram);const frame=info.render.frame;if(updateList[uniformsGroup.id]!==frame){updateBufferData(uniformsGroup);updateList[uniformsGroup.id]=frame}}function createBuffer(uniformsGroup){const bindingPointIndex=allocateBindingPointIndex();uniformsGroup.__bindingPointIndex=bindingPointIndex;const buffer=gl.createBuffer();const size=uniformsGroup.__size;const usage=uniformsGroup.usage;gl.bindBuffer(gl.UNIFORM_BUFFER,buffer);gl.bufferData(gl.UNIFORM_BUFFER,size,usage);gl.bindBuffer(gl.UNIFORM_BUFFER,null);gl.bindBufferBase(gl.UNIFORM_BUFFER,bindingPointIndex,buffer);return buffer}function allocateBindingPointIndex(){for(let i=0;i0)offset+=chunkSize-chunkOffset;uniformsGroup.__size=offset;uniformsGroup.__cache={};return this}function getUniformSize(value){const info={boundary:0,storage:0};if(typeof value==="number"||typeof value==="boolean"){info.boundary=4;info.storage=4}else if(value.isVector2){info.boundary=8;info.storage=8}else if(value.isVector3||value.isColor){info.boundary=16;info.storage=12}else if(value.isVector4){info.boundary=16;info.storage=16}else if(value.isMatrix3){info.boundary=48;info.storage=48}else if(value.isMatrix4){info.boundary=64;info.storage=64}else if(value.isTexture){warn("WebGLRenderer: Texture samplers can not be part of an uniforms group.")}else{warn("WebGLRenderer: Unsupported uniform value type.",value)}return info}function onUniformsGroupsDispose(event){const uniformsGroup=event.target;uniformsGroup.removeEventListener("dispose",onUniformsGroupsDispose);const index=allocatedBindingPoints.indexOf(uniformsGroup.__bindingPointIndex);allocatedBindingPoints.splice(index,1);gl.deleteBuffer(buffers[uniformsGroup.id]);delete buffers[uniformsGroup.id];delete updateList[uniformsGroup.id]}function dispose(){for(const id in buffers){gl.deleteBuffer(buffers[id])}allocatedBindingPoints=[];buffers={};updateList={}}return{bind:bind,update:update,dispose:dispose}}const DATA=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]);let lut=null;function getDFGLUT(){if(lut===null){lut=new DataTexture(DATA,16,16,RGFormat,HalfFloatType);lut.name="DFG_LUT";lut.minFilter=LinearFilter;lut.magFilter=LinearFilter;lut.wrapS=ClampToEdgeWrapping;lut.wrapT=ClampToEdgeWrapping;lut.generateMipmaps=false;lut.needsUpdate=true}return lut}class WebGLRenderer{constructor(parameters={}){const{canvas=createCanvasElement(),context=null,depth=true,stencil=false,alpha=false,antialias=false,premultipliedAlpha=true,preserveDrawingBuffer=false,powerPreference="default",failIfMajorPerformanceCaveat=false,reversedDepthBuffer=false,outputBufferType=UnsignedByteType}=parameters;this.isWebGLRenderer=true;let _alpha;if(context!==null){if(typeof WebGLRenderingContext!=="undefined"&&context instanceof WebGLRenderingContext){throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.")}_alpha=context.getContextAttributes().alpha}else{_alpha=alpha}const _outputBufferType=outputBufferType;const INTEGER_FORMATS=new Set([RGBAIntegerFormat,RGIntegerFormat,RedIntegerFormat]);const UNSIGNED_TYPES=new Set([UnsignedByteType,UnsignedIntType,UnsignedShortType,UnsignedInt248Type,UnsignedShort4444Type,UnsignedShort5551Type]);const uintClearColor=new Uint32Array(4);const intClearColor=new Int32Array(4);let currentRenderList=null;let currentRenderState=null;const renderListStack=[];const renderStateStack=[];let output=null;this.domElement=canvas;this.debug={checkShaderErrors:true,onShaderError:null};this.autoClear=true;this.autoClearColor=true;this.autoClearDepth=true;this.autoClearStencil=true;this.sortObjects=true;this.clippingPlanes=[];this.localClippingEnabled=false;this.toneMapping=NoToneMapping;this.toneMappingExposure=1;this.transmissionResolutionScale=1;const _this=this;let _isContextLost=false;this._outputColorSpace=SRGBColorSpace;let _currentActiveCubeFace=0;let _currentActiveMipmapLevel=0;let _currentRenderTarget=null;let _currentMaterialId=-1;let _currentCamera=null;const _currentViewport=new Vector4;const _currentScissor=new Vector4;let _currentScissorTest=null;const _currentClearColor=new Color(0);let _currentClearAlpha=0;let _width=canvas.width;let _height=canvas.height;let _pixelRatio=1;let _opaqueSort=null;let _transparentSort=null;const _viewport=new Vector4(0,0,_width,_height);const _scissor=new Vector4(0,0,_width,_height);let _scissorTest=false;const _frustum=new Frustum;let _clippingEnabled=false;let _localClippingEnabled=false;const _projScreenMatrix=new Matrix4;const _vector3=new Vector3;const _vector4=new Vector4;const _emptyScene={background:null,fog:null,environment:null,overrideMaterial:null,isScene:true};let _renderBackground=false;function getTargetPixelRatio(){return _currentRenderTarget===null?_pixelRatio:1}let _gl=context;function getContext(contextName,contextAttributes){return canvas.getContext(contextName,contextAttributes)}try{const contextAttributes={alpha:true,depth,stencil,antialias,premultipliedAlpha,preserveDrawingBuffer,powerPreference,failIfMajorPerformanceCaveat};if("setAttribute"in canvas)canvas.setAttribute("data-engine",`three.js r${REVISION}`);canvas.addEventListener("webglcontextlost",onContextLost,false);canvas.addEventListener("webglcontextrestored",onContextRestore,false);canvas.addEventListener("webglcontextcreationerror",onContextCreationError,false);if(_gl===null){const contextName="webgl2";_gl=getContext(contextName,contextAttributes);if(_gl===null){if(getContext(contextName)){throw new Error("Error creating WebGL context with your selected attributes.")}else{throw new Error("Error creating WebGL context.")}}}}catch(e){error("WebGLRenderer: "+e.message);throw e}let extensions,capabilities,state,info;let properties,textures,cubemaps,cubeuvmaps,attributes,geometries,objects;let programCache,materials,renderLists,renderStates,clipping,shadowMap;let background,morphtargets,bufferRenderer,indexedBufferRenderer;let utils,bindingStates,uniformsGroups;function initGLContext(){extensions=new WebGLExtensions(_gl);extensions.init();utils=new WebGLUtils(_gl,extensions);capabilities=new WebGLCapabilities(_gl,extensions,parameters,utils);state=new WebGLState(_gl,extensions);if(capabilities.reversedDepthBuffer&&reversedDepthBuffer){state.buffers.depth.setReversed(true)}info=new WebGLInfo(_gl);properties=new WebGLProperties;textures=new WebGLTextures(_gl,extensions,state,properties,capabilities,utils,info);cubemaps=new WebGLCubeMaps(_this);cubeuvmaps=new WebGLCubeUVMaps(_this);attributes=new WebGLAttributes(_gl);bindingStates=new WebGLBindingStates(_gl,attributes);geometries=new WebGLGeometries(_gl,attributes,info,bindingStates);objects=new WebGLObjects(_gl,geometries,attributes,info);morphtargets=new WebGLMorphtargets(_gl,capabilities,textures);clipping=new WebGLClipping(properties);programCache=new WebGLPrograms(_this,cubemaps,cubeuvmaps,extensions,capabilities,bindingStates,clipping);materials=new WebGLMaterials(_this,properties);renderLists=new WebGLRenderLists;renderStates=new WebGLRenderStates(extensions);background=new WebGLBackground(_this,cubemaps,cubeuvmaps,state,objects,_alpha,premultipliedAlpha);shadowMap=new WebGLShadowMap(_this,objects,capabilities);uniformsGroups=new WebGLUniformsGroups(_gl,info,capabilities,state);bufferRenderer=new WebGLBufferRenderer(_gl,extensions,info);indexedBufferRenderer=new WebGLIndexedBufferRenderer(_gl,extensions,info);info.programs=programCache.programs;_this.capabilities=capabilities;_this.extensions=extensions;_this.properties=properties;_this.renderLists=renderLists;_this.shadowMap=shadowMap;_this.state=state;_this.info=info}initGLContext();if(_outputBufferType!==UnsignedByteType){output=new WebGLOutput(_outputBufferType,canvas.width,canvas.height,depth,stencil)}const xr=new WebXRManager(_this,_gl);this.xr=xr;this.getContext=function(){return _gl};this.getContextAttributes=function(){return _gl.getContextAttributes()};this.forceContextLoss=function(){const extension=extensions.get("WEBGL_lose_context");if(extension)extension.loseContext()};this.forceContextRestore=function(){const extension=extensions.get("WEBGL_lose_context");if(extension)extension.restoreContext()};this.getPixelRatio=function(){return _pixelRatio};this.setPixelRatio=function(value){if(value===undefined)return;_pixelRatio=value;this.setSize(_width,_height,false)};this.getSize=function(target){return target.set(_width,_height)};this.setSize=function(width,height,updateStyle=true){if(xr.isPresenting){warn("WebGLRenderer: Can't change size while VR device is presenting.");return}_width=width;_height=height;canvas.width=Math.floor(width*_pixelRatio);canvas.height=Math.floor(height*_pixelRatio);if(updateStyle===true){canvas.style.width=width+"px";canvas.style.height=height+"px"}if(output!==null){output.setSize(canvas.width,canvas.height)}this.setViewport(0,0,width,height)};this.getDrawingBufferSize=function(target){return target.set(_width*_pixelRatio,_height*_pixelRatio).floor()};this.setDrawingBufferSize=function(width,height,pixelRatio){_width=width;_height=height;_pixelRatio=pixelRatio;canvas.width=Math.floor(width*pixelRatio);canvas.height=Math.floor(height*pixelRatio);this.setViewport(0,0,width,height)};this.setEffects=function(effects){if(_outputBufferType===UnsignedByteType){console.error("THREE.WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(effects){for(let i=0;i{function checkMaterialsReady(){materials.forEach(function(material){const materialProperties=properties.get(material);const program=materialProperties.currentProgram;if(program.isReady()){materials.delete(material)}});if(materials.size===0){resolve(scene);return}setTimeout(checkMaterialsReady,10)}if(extensions.get("KHR_parallel_shader_compile")!==null){checkMaterialsReady()}else{setTimeout(checkMaterialsReady,10)}})};let onAnimationFrameCallback=null;function onAnimationFrame(time){if(onAnimationFrameCallback)onAnimationFrameCallback(time)}function onXRSessionStart(){animation.stop()}function onXRSessionEnd(){animation.start()}const animation=new WebGLAnimation;animation.setAnimationLoop(onAnimationFrame);if(typeof self!=="undefined")animation.setContext(self);this.setAnimationLoop=function(callback){onAnimationFrameCallback=callback;xr.setAnimationLoop(callback);callback===null?animation.stop():animation.start()};xr.addEventListener("sessionstart",onXRSessionStart);xr.addEventListener("sessionend",onXRSessionEnd);this.render=function(scene,camera){if(camera!==undefined&&camera.isCamera!==true){error("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(_isContextLost===true)return;const isXRPresenting=xr.enabled===true&&xr.isPresenting===true;const useOutput=output!==null&&(_currentRenderTarget===null||isXRPresenting)&&output.begin(_this,_currentRenderTarget);if(scene.matrixWorldAutoUpdate===true)scene.updateMatrixWorld();if(camera.parent===null&&camera.matrixWorldAutoUpdate===true)camera.updateMatrixWorld();if(xr.enabled===true&&xr.isPresenting===true&&(output===null||output.isCompositing()===false)){if(xr.cameraAutoUpdate===true)xr.updateCamera(camera);camera=xr.getCamera()}if(scene.isScene===true)scene.onBeforeRender(_this,scene,camera,_currentRenderTarget);currentRenderState=renderStates.get(scene,renderStateStack.length);currentRenderState.init(camera);renderStateStack.push(currentRenderState);_projScreenMatrix.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse);_frustum.setFromProjectionMatrix(_projScreenMatrix,WebGLCoordinateSystem,camera.reversedDepth);_localClippingEnabled=this.localClippingEnabled;_clippingEnabled=clipping.init(this.clippingPlanes,_localClippingEnabled);currentRenderList=renderLists.get(scene,renderListStack.length);currentRenderList.init();renderListStack.push(currentRenderList);if(xr.enabled===true&&xr.isPresenting===true){const depthSensingMesh=_this.xr.getDepthSensingMesh();if(depthSensingMesh!==null){projectObject(depthSensingMesh,camera,-Infinity,_this.sortObjects)}}projectObject(scene,camera,0,_this.sortObjects);currentRenderList.finish();if(_this.sortObjects===true){currentRenderList.sort(_opaqueSort,_transparentSort)}_renderBackground=xr.enabled===false||xr.isPresenting===false||xr.hasDepthSensing()===false;if(_renderBackground){background.addToRenderList(currentRenderList,scene)}this.info.render.frame++;if(_clippingEnabled===true)clipping.beginShadows();const shadowsArray=currentRenderState.state.shadowsArray;shadowMap.render(shadowsArray,scene,camera);if(_clippingEnabled===true)clipping.endShadows();if(this.info.autoReset===true)this.info.reset();const skipSceneRender=useOutput&&output.hasRenderPass();if(skipSceneRender===false){const opaqueObjects=currentRenderList.opaque;const transmissiveObjects=currentRenderList.transmissive;currentRenderState.setupLights();if(camera.isArrayCamera){const cameras=camera.cameras;if(transmissiveObjects.length>0){for(let i=0,l=cameras.length;i0)renderTransmissionPass(opaqueObjects,transmissiveObjects,scene,camera);if(_renderBackground)background.render(scene);renderScene(currentRenderList,scene,camera)}}if(_currentRenderTarget!==null&&_currentActiveMipmapLevel===0){textures.updateMultisampleRenderTarget(_currentRenderTarget);textures.updateRenderTargetMipmap(_currentRenderTarget)}if(useOutput){output.end(_this)}if(scene.isScene===true)scene.onAfterRender(_this,scene,camera);bindingStates.resetDefaultState();_currentMaterialId=-1;_currentCamera=null;renderStateStack.pop();if(renderStateStack.length>0){currentRenderState=renderStateStack[renderStateStack.length-1];if(_clippingEnabled===true)clipping.setGlobalState(_this.clippingPlanes,currentRenderState.state.camera)}else{currentRenderState=null}renderListStack.pop();if(renderListStack.length>0){currentRenderList=renderListStack[renderListStack.length-1]}else{currentRenderList=null}};function projectObject(object,camera,groupOrder,sortObjects){if(object.visible===false)return;const visible=object.layers.test(camera.layers);if(visible){if(object.isGroup){groupOrder=object.renderOrder}else if(object.isLOD){if(object.autoUpdate===true)object.update(camera)}else if(object.isLight){currentRenderState.pushLight(object);if(object.castShadow){currentRenderState.pushShadow(object)}}else if(object.isSprite){if(!object.frustumCulled||_frustum.intersectsSprite(object)){if(sortObjects){_vector4.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix)}const geometry=objects.update(object);const material=object.material;if(material.visible){currentRenderList.push(object,geometry,material,groupOrder,_vector4.z,null)}}}else if(object.isMesh||object.isLine||object.isPoints){if(!object.frustumCulled||_frustum.intersectsObject(object)){const geometry=objects.update(object);const material=object.material;if(sortObjects){if(object.boundingSphere!==undefined){if(object.boundingSphere===null)object.computeBoundingSphere();_vector4.copy(object.boundingSphere.center)}else{if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_vector4.copy(geometry.boundingSphere.center)}_vector4.applyMatrix4(object.matrixWorld).applyMatrix4(_projScreenMatrix)}if(Array.isArray(material)){const groups=geometry.groups;for(let i=0,l=groups.length;i0)renderObjects(opaqueObjects,scene,camera);if(transmissiveObjects.length>0)renderObjects(transmissiveObjects,scene,camera);if(transparentObjects.length>0)renderObjects(transparentObjects,scene,camera);state.buffers.depth.setTest(true);state.buffers.depth.setMask(true);state.buffers.color.setMask(true);state.setPolygonOffset(false)}function renderTransmissionPass(opaqueObjects,transmissiveObjects,scene,camera){const overrideMaterial=scene.isScene===true?scene.overrideMaterial:null;if(overrideMaterial!==null){return}if(currentRenderState.state.transmissionRenderTarget[camera.id]===undefined){const hasHalfFloatSupport=extensions.has("EXT_color_buffer_half_float")||extensions.has("EXT_color_buffer_float");currentRenderState.state.transmissionRenderTarget[camera.id]=new WebGLRenderTarget(1,1,{generateMipmaps:true,type:hasHalfFloatSupport?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:capabilities.samples,stencilBuffer:stencil,resolveDepthBuffer:false,resolveStencilBuffer:false,colorSpace:ColorManagement.workingColorSpace})}const transmissionRenderTarget=currentRenderState.state.transmissionRenderTarget[camera.id];const activeViewport=camera.viewport||_currentViewport;transmissionRenderTarget.setSize(activeViewport.z*_this.transmissionResolutionScale,activeViewport.w*_this.transmissionResolutionScale);const currentRenderTarget=_this.getRenderTarget();const currentActiveCubeFace=_this.getActiveCubeFace();const currentActiveMipmapLevel=_this.getActiveMipmapLevel();_this.setRenderTarget(transmissionRenderTarget);_this.getClearColor(_currentClearColor);_currentClearAlpha=_this.getClearAlpha();if(_currentClearAlpha<1)_this.setClearColor(16777215,0.5);_this.clear();if(_renderBackground)background.render(scene);const currentToneMapping=_this.toneMapping;_this.toneMapping=NoToneMapping;const currentCameraViewport=camera.viewport;if(camera.viewport!==undefined)camera.viewport=undefined;currentRenderState.setupLightsView(camera);if(_clippingEnabled===true)clipping.setGlobalState(_this.clippingPlanes,camera);renderObjects(opaqueObjects,scene,camera);textures.updateMultisampleRenderTarget(transmissionRenderTarget);textures.updateRenderTargetMipmap(transmissionRenderTarget);if(extensions.has("WEBGL_multisampled_render_to_texture")===false){let renderTargetNeedsUpdate=false;for(let i=0,l=transmissiveObjects.length;i0);const morphTargets=!!geometry.morphAttributes.position;const morphNormals=!!geometry.morphAttributes.normal;const morphColors=!!geometry.morphAttributes.color;let toneMapping=NoToneMapping;if(material.toneMapped){if(_currentRenderTarget===null||_currentRenderTarget.isXRRenderTarget===true){toneMapping=_this.toneMapping}}const morphAttribute=geometry.morphAttributes.position||geometry.morphAttributes.normal||geometry.morphAttributes.color;const morphTargetsCount=morphAttribute!==undefined?morphAttribute.length:0;const materialProperties=properties.get(material);const lights=currentRenderState.state.lights;if(_clippingEnabled===true){if(_localClippingEnabled===true||camera!==_currentCamera){const useCache=camera===_currentCamera&&material.id===_currentMaterialId;clipping.setState(material,camera,useCache)}}let needsProgramChange=false;if(material.version===materialProperties.__version){if(materialProperties.needsLights&&materialProperties.lightsStateVersion!==lights.state.version){needsProgramChange=true}else if(materialProperties.outputColorSpace!==colorSpace){needsProgramChange=true}else if(object.isBatchedMesh&&materialProperties.batching===false){needsProgramChange=true}else if(!object.isBatchedMesh&&materialProperties.batching===true){needsProgramChange=true}else if(object.isBatchedMesh&&materialProperties.batchingColor===true&&object.colorTexture===null){needsProgramChange=true}else if(object.isBatchedMesh&&materialProperties.batchingColor===false&&object.colorTexture!==null){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancing===false){needsProgramChange=true}else if(!object.isInstancedMesh&&materialProperties.instancing===true){needsProgramChange=true}else if(object.isSkinnedMesh&&materialProperties.skinning===false){needsProgramChange=true}else if(!object.isSkinnedMesh&&materialProperties.skinning===true){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancingColor===true&&object.instanceColor===null){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancingColor===false&&object.instanceColor!==null){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancingMorph===true&&object.morphTexture===null){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancingMorph===false&&object.morphTexture!==null){needsProgramChange=true}else if(materialProperties.envMap!==envMap){needsProgramChange=true}else if(material.fog===true&&materialProperties.fog!==fog){needsProgramChange=true}else if(materialProperties.numClippingPlanes!==undefined&&(materialProperties.numClippingPlanes!==clipping.numPlanes||materialProperties.numIntersection!==clipping.numIntersection)){needsProgramChange=true}else if(materialProperties.vertexAlphas!==vertexAlphas){needsProgramChange=true}else if(materialProperties.vertexTangents!==vertexTangents){needsProgramChange=true}else if(materialProperties.morphTargets!==morphTargets){needsProgramChange=true}else if(materialProperties.morphNormals!==morphNormals){needsProgramChange=true}else if(materialProperties.morphColors!==morphColors){needsProgramChange=true}else if(materialProperties.toneMapping!==toneMapping){needsProgramChange=true}else if(materialProperties.morphTargetsCount!==morphTargetsCount){needsProgramChange=true}}else{needsProgramChange=true;materialProperties.__version=material.version}let program=materialProperties.currentProgram;if(needsProgramChange===true){program=getProgram(material,scene,object)}let refreshProgram=false;let refreshMaterial=false;let refreshLights=false;const p_uniforms=program.getUniforms(),m_uniforms=materialProperties.uniforms;if(state.useProgram(program.program)){refreshProgram=true;refreshMaterial=true;refreshLights=true}if(material.id!==_currentMaterialId){_currentMaterialId=material.id;refreshMaterial=true}if(refreshProgram||_currentCamera!==camera){const reversedDepthBuffer=state.buffers.depth.getReversed();if(reversedDepthBuffer&&camera.reversedDepth!==true){camera._reversedDepth=true;camera.updateProjectionMatrix()}p_uniforms.setValue(_gl,"projectionMatrix",camera.projectionMatrix);p_uniforms.setValue(_gl,"viewMatrix",camera.matrixWorldInverse);const uCamPos=p_uniforms.map.cameraPosition;if(uCamPos!==undefined){uCamPos.setValue(_gl,_vector3.setFromMatrixPosition(camera.matrixWorld))}if(capabilities.logarithmicDepthBuffer){p_uniforms.setValue(_gl,"logDepthBufFC",2/(Math.log(camera.far+1)/Math.LN2))}if(material.isMeshPhongMaterial||material.isMeshToonMaterial||material.isMeshLambertMaterial||material.isMeshBasicMaterial||material.isMeshStandardMaterial||material.isShaderMaterial){p_uniforms.setValue(_gl,"isOrthographic",camera.isOrthographicCamera===true)}if(_currentCamera!==camera){_currentCamera=camera;refreshMaterial=true;refreshLights=true}}if(materialProperties.needsLights){if(lights.state.directionalShadowMap.length>0){p_uniforms.setValue(_gl,"directionalShadowMap",lights.state.directionalShadowMap,textures)}if(lights.state.spotShadowMap.length>0){p_uniforms.setValue(_gl,"spotShadowMap",lights.state.spotShadowMap,textures)}if(lights.state.pointShadowMap.length>0){p_uniforms.setValue(_gl,"pointShadowMap",lights.state.pointShadowMap,textures)}}if(object.isSkinnedMesh){p_uniforms.setOptional(_gl,object,"bindMatrix");p_uniforms.setOptional(_gl,object,"bindMatrixInverse");const skeleton=object.skeleton;if(skeleton){if(skeleton.boneTexture===null)skeleton.computeBoneTexture();p_uniforms.setValue(_gl,"boneTexture",skeleton.boneTexture,textures)}}if(object.isBatchedMesh){p_uniforms.setOptional(_gl,object,"batchingTexture");p_uniforms.setValue(_gl,"batchingTexture",object._matricesTexture,textures);p_uniforms.setOptional(_gl,object,"batchingIdTexture");p_uniforms.setValue(_gl,"batchingIdTexture",object._indirectTexture,textures);p_uniforms.setOptional(_gl,object,"batchingColorTexture");if(object._colorsTexture!==null){p_uniforms.setValue(_gl,"batchingColorTexture",object._colorsTexture,textures)}}const morphAttributes=geometry.morphAttributes;if(morphAttributes.position!==undefined||morphAttributes.normal!==undefined||morphAttributes.color!==undefined){morphtargets.update(object,geometry,program)}if(refreshMaterial||materialProperties.receiveShadow!==object.receiveShadow){materialProperties.receiveShadow=object.receiveShadow;p_uniforms.setValue(_gl,"receiveShadow",object.receiveShadow)}if(material.isMeshGouraudMaterial&&material.envMap!==null){m_uniforms.envMap.value=envMap;m_uniforms.flipEnvMap.value=envMap.isCubeTexture&&envMap.isRenderTargetTexture===false?-1:1}if(material.isMeshStandardMaterial&&material.envMap===null&&scene.environment!==null){m_uniforms.envMapIntensity.value=scene.environmentIntensity}if(m_uniforms.dfgLUT!==undefined){m_uniforms.dfgLUT.value=getDFGLUT()}if(refreshMaterial){p_uniforms.setValue(_gl,"toneMappingExposure",_this.toneMappingExposure);if(materialProperties.needsLights){markUniformsLightsNeedsUpdate(m_uniforms,refreshLights)}if(fog&&material.fog===true){materials.refreshFogUniforms(m_uniforms,fog)}materials.refreshMaterialUniforms(m_uniforms,material,_pixelRatio,_height,currentRenderState.state.transmissionRenderTarget[camera.id]);WebGLUniforms.upload(_gl,getUniformList(materialProperties),m_uniforms,textures)}if(material.isShaderMaterial&&material.uniformsNeedUpdate===true){WebGLUniforms.upload(_gl,getUniformList(materialProperties),m_uniforms,textures);material.uniformsNeedUpdate=false}if(material.isSpriteMaterial){p_uniforms.setValue(_gl,"center",object.center)}p_uniforms.setValue(_gl,"modelViewMatrix",object.modelViewMatrix);p_uniforms.setValue(_gl,"normalMatrix",object.normalMatrix);p_uniforms.setValue(_gl,"modelMatrix",object.matrixWorld);if(material.isShaderMaterial||material.isRawShaderMaterial){const groups=material.uniformsGroups;for(let i=0,l=groups.length;i0&&textures.useMultisampledRTT(renderTarget)===false){framebuffer=properties.get(renderTarget).__webglMultisampledFramebuffer}else{if(Array.isArray(__webglFramebuffer)){framebuffer=__webglFramebuffer[activeMipmapLevel]}else{framebuffer=__webglFramebuffer}}_currentViewport.copy(renderTarget.viewport);_currentScissor.copy(renderTarget.scissor);_currentScissorTest=renderTarget.scissorTest}else{_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();_currentScissorTest=_scissorTest}if(activeMipmapLevel!==0){framebuffer=_scratchFrameBuffer}const framebufferBound=state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);if(framebufferBound){state.drawBuffers(renderTarget,framebuffer)}state.viewport(_currentViewport);state.scissor(_currentScissor);state.setScissorTest(_currentScissorTest);if(isCube){const textureProperties=properties.get(renderTarget.texture);_gl.framebufferTexture2D(_gl.FRAMEBUFFER,_gl.COLOR_ATTACHMENT0,_gl.TEXTURE_CUBE_MAP_POSITIVE_X+activeCubeFace,textureProperties.__webglTexture,activeMipmapLevel)}else if(isRenderTarget3D){const layer=activeCubeFace;for(let i=0;i=0&&x<=renderTarget.width-width&&y>=0&&y<=renderTarget.height-height){if(renderTarget.textures.length>1)_gl.readBuffer(_gl.COLOR_ATTACHMENT0+textureIndex);_gl.readPixels(x,y,width,height,utils.convert(textureFormat),utils.convert(textureType),buffer)}}finally{const framebuffer=_currentRenderTarget!==null?properties.get(_currentRenderTarget).__webglFramebuffer:null;state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer)}}};this.readRenderTargetPixelsAsync=async function(renderTarget,x,y,width,height,buffer,activeCubeFaceIndex,textureIndex=0){if(!(renderTarget&&renderTarget.isWebGLRenderTarget)){throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}let framebuffer=properties.get(renderTarget).__webglFramebuffer;if(renderTarget.isWebGLCubeRenderTarget&&activeCubeFaceIndex!==undefined){framebuffer=framebuffer[activeCubeFaceIndex]}if(framebuffer){if(x>=0&&x<=renderTarget.width-width&&y>=0&&y<=renderTarget.height-height){state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);const texture=renderTarget.textures[textureIndex];const textureFormat=texture.format;const textureType=texture.type;if(!capabilities.textureFormatReadable(textureFormat)){throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.")}if(!capabilities.textureTypeReadable(textureType)){throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.")}const glBuffer=_gl.createBuffer();_gl.bindBuffer(_gl.PIXEL_PACK_BUFFER,glBuffer);_gl.bufferData(_gl.PIXEL_PACK_BUFFER,buffer.byteLength,_gl.STREAM_READ);if(renderTarget.textures.length>1)_gl.readBuffer(_gl.COLOR_ATTACHMENT0+textureIndex);_gl.readPixels(x,y,width,height,utils.convert(textureFormat),utils.convert(textureType),0);const currFramebuffer=_currentRenderTarget!==null?properties.get(_currentRenderTarget).__webglFramebuffer:null;state.bindFramebuffer(_gl.FRAMEBUFFER,currFramebuffer);const sync=_gl.fenceSync(_gl.SYNC_GPU_COMMANDS_COMPLETE,0);_gl.flush();await probeAsync(_gl,sync,4);_gl.bindBuffer(_gl.PIXEL_PACK_BUFFER,glBuffer);_gl.getBufferSubData(_gl.PIXEL_PACK_BUFFER,0,buffer);_gl.deleteBuffer(glBuffer);_gl.deleteSync(sync);return buffer}else{throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}}};this.copyFramebufferToTexture=function(texture,position=null,level=0){const levelScale=Math.pow(2,-level);const width=Math.floor(texture.image.width*levelScale);const height=Math.floor(texture.image.height*levelScale);const x=position!==null?position.x:0;const y=position!==null?position.y:0;textures.setTexture2D(texture,0);_gl.copyTexSubImage2D(_gl.TEXTURE_2D,level,0,0,x,y,width,height);state.unbindTexture()};const _srcFramebuffer=_gl.createFramebuffer();const _dstFramebuffer=_gl.createFramebuffer();this.copyTextureToTexture=function(srcTexture,dstTexture,srcRegion=null,dstPosition=null,srcLevel=0,dstLevel=null){if(dstLevel===null){if(srcLevel!==0){warnOnce("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels.");dstLevel=srcLevel;srcLevel=0}else{dstLevel=0}}let width,height,depth,minX,minY,minZ;let dstX,dstY,dstZ;const image=srcTexture.isCompressedTexture?srcTexture.mipmaps[dstLevel]:srcTexture.image;if(srcRegion!==null){width=srcRegion.max.x-srcRegion.min.x;height=srcRegion.max.y-srcRegion.min.y;depth=srcRegion.isBox3?srcRegion.max.z-srcRegion.min.z:1;minX=srcRegion.min.x;minY=srcRegion.min.y;minZ=srcRegion.isBox3?srcRegion.min.z:0}else{const levelScale=Math.pow(2,-srcLevel);width=Math.floor(image.width*levelScale);height=Math.floor(image.height*levelScale);if(srcTexture.isDataArrayTexture){depth=image.depth}else if(srcTexture.isData3DTexture){depth=Math.floor(image.depth*levelScale)}else{depth=1}minX=0;minY=0;minZ=0}if(dstPosition!==null){dstX=dstPosition.x;dstY=dstPosition.y;dstZ=dstPosition.z}else{dstX=0;dstY=0;dstZ=0}const glFormat=utils.convert(dstTexture.format);const glType=utils.convert(dstTexture.type);let glTarget;if(dstTexture.isData3DTexture){textures.setTexture3D(dstTexture,0);glTarget=_gl.TEXTURE_3D}else if(dstTexture.isDataArrayTexture||dstTexture.isCompressedArrayTexture){textures.setTexture2DArray(dstTexture,0);glTarget=_gl.TEXTURE_2D_ARRAY}else{textures.setTexture2D(dstTexture,0);glTarget=_gl.TEXTURE_2D}_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,dstTexture.flipY);_gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,dstTexture.premultiplyAlpha);_gl.pixelStorei(_gl.UNPACK_ALIGNMENT,dstTexture.unpackAlignment);const currentUnpackRowLen=_gl.getParameter(_gl.UNPACK_ROW_LENGTH);const currentUnpackImageHeight=_gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);const currentUnpackSkipPixels=_gl.getParameter(_gl.UNPACK_SKIP_PIXELS);const currentUnpackSkipRows=_gl.getParameter(_gl.UNPACK_SKIP_ROWS);const currentUnpackSkipImages=_gl.getParameter(_gl.UNPACK_SKIP_IMAGES);_gl.pixelStorei(_gl.UNPACK_ROW_LENGTH,image.width);_gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT,image.height);_gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS,minX);_gl.pixelStorei(_gl.UNPACK_SKIP_ROWS,minY);_gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES,minZ);const isSrc3D=srcTexture.isDataArrayTexture||srcTexture.isData3DTexture;const isDst3D=dstTexture.isDataArrayTexture||dstTexture.isData3DTexture;if(srcTexture.isDepthTexture){const srcTextureProperties=properties.get(srcTexture);const dstTextureProperties=properties.get(dstTexture);const srcRenderTargetProperties=properties.get(srcTextureProperties.__renderTarget);const dstRenderTargetProperties=properties.get(dstTextureProperties.__renderTarget);state.bindFramebuffer(_gl.READ_FRAMEBUFFER,srcRenderTargetProperties.__webglFramebuffer);state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,dstRenderTargetProperties.__webglFramebuffer);for(let i=0;i65535){return new Uint32Array(new BufferConstructor(4*vertexCount))}else{return new Uint16Array(new BufferConstructor(2*vertexCount))}}function ensureIndex(geo,options){if(!geo.index){const vertexCount=geo.attributes.position.count;const BufferConstructor=options.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;const index=getIndexArray(vertexCount,BufferConstructor);geo.setIndex(new three.BufferAttribute(index,1));for(let i=0;ia-b);for(let i=0;ia.offset-b.offset);const finalGroup=groups[groups.length-1];finalGroup.count=Math.min(vertexCount-finalGroup.offset,finalGroup.count);let total=0;groups.forEach(({count})=>total+=count);return vertexCount!==total}function getBounds(triangleBounds,offset,count,target,centroidTarget){let minx=Infinity;let miny=Infinity;let minz=Infinity;let maxx=-Infinity;let maxy=-Infinity;let maxz=-Infinity;let cminx=Infinity;let cminy=Infinity;let cminz=Infinity;let cmaxx=-Infinity;let cmaxy=-Infinity;let cmaxz=-Infinity;for(let i=offset*6,end=(offset+count)*6;imaxx)maxx=rx;if(cxcmaxx)cmaxx=cx;const cy=triangleBounds[i+2];const hy=triangleBounds[i+3];const ly=cy-hy;const ry=cy+hy;if(lymaxy)maxy=ry;if(cycmaxy)cmaxy=cy;const cz=triangleBounds[i+4];const hz=triangleBounds[i+5];const lz=cz-hz;const rz=cz+hz;if(lzmaxz)maxz=rz;if(czcmaxz)cmaxz=cz}target[0]=minx;target[1]=miny;target[2]=minz;target[3]=maxx;target[4]=maxy;target[5]=maxz;centroidTarget[0]=cminx;centroidTarget[1]=cminy;centroidTarget[2]=cminz;centroidTarget[3]=cmaxx;centroidTarget[4]=cmaxy;centroidTarget[5]=cmaxz}function computeTriangleBounds(geo,target=null,offset=null,count=null){const posAttr=geo.attributes.position;const index=geo.index?geo.index.array:null;const triCount=getTriCount(geo);const normalized=posAttr.normalized;let triangleBounds;if(target===null){triangleBounds=new Float32Array(triCount*6*4);offset=0;count=triCount}else{triangleBounds=target;offset=offset||0;count=count||triCount}const posArr=posAttr.array;const bufferOffset=posAttr.offset||0;let stride=3;if(posAttr.isInterleavedBufferAttribute){stride=posAttr.data.stride}const getters=["getX","getY","getZ"];for(let tri=offset;trimax)max=b;if(c>max)max=c;const halfExtents=(max-min)/2;const el2=el*2;triangleBounds[tri6+el2+0]=min+halfExtents;triangleBounds[tri6+el2+1]=halfExtents+(Math.abs(min)+halfExtents)*FLOAT32_EPSILON}}return triangleBounds}function arrayToBox(nodeIndex32,array,target){target.min.x=array[nodeIndex32];target.min.y=array[nodeIndex32+1];target.min.z=array[nodeIndex32+2];target.max.x=array[nodeIndex32+3];target.max.y=array[nodeIndex32+4];target.max.z=array[nodeIndex32+5];return target}function makeEmptyBounds(target){target[0]=target[1]=target[2]=Infinity;target[3]=target[4]=target[5]=-Infinity}function getLongestEdgeIndex(bounds){let splitDimIdx=-1;let splitDist=-Infinity;for(let i=0;i<3;i++){const dist=bounds[i+3]-bounds[i];if(dist>splitDist){splitDist=dist;splitDimIdx=i}}return splitDimIdx}function copyBounds(source,target){target.set(source)}function unionBounds(a,b,target){let aVal,bVal;for(let d=0;d<3;d++){const d3=d+3;aVal=a[d];bVal=b[d];target[d]=aValbVal?aVal:bVal}}function expandByTriangleBounds(startIndex,triangleBounds,bounds){for(let d=0;d<3;d++){const tCenter=triangleBounds[startIndex+2*d];const tHalf=triangleBounds[startIndex+2*d+1];const tMin=tCenter-tHalf;const tMax=tCenter+tHalf;if(tMinbounds[d+3]){bounds[d+3]=tMax}}}function computeSurfaceArea(bounds){const d0=bounds[3]-bounds[0];const d1=bounds[4]-bounds[1];const d2=bounds[5]-bounds[2];return 2*(d0*d1+d1*d2+d2*d0)}const BIN_COUNT=32;const binsSort=(a,b)=>a.candidate-b.candidate;const sahBins=new Array(BIN_COUNT).fill().map(()=>{return{count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0}});const leftBounds=new Float32Array(6);function getOptimalSplit(nodeBoundingData,centroidBoundingData,triangleBounds,offset,count,strategy){let axis=-1;let pos=0;if(strategy===CENTER){axis=getLongestEdgeIndex(centroidBoundingData);if(axis!==-1){pos=(centroidBoundingData[axis]+centroidBoundingData[axis+3])/2}}else if(strategy===AVERAGE){axis=getLongestEdgeIndex(nodeBoundingData);if(axis!==-1){pos=getAverage(triangleBounds,offset,count,axis)}}else if(strategy===SAH){const rootSurfaceArea=computeSurfaceArea(nodeBoundingData);let bestCost=TRIANGLE_INTERSECT_COST*count;const cStart=offset*6;const cEnd=(offset+count)*6;for(let a=0;a<3;a++){const axisLeft=centroidBoundingData[a];const axisRight=centroidBoundingData[a+3];const axisLength=axisRight-axisLeft;const binWidth=axisLength/BIN_COUNT;if(count=bin.candidate){expandByTriangleBounds(c,triangleBounds,bin.rightCacheBounds)}else{expandByTriangleBounds(c,triangleBounds,bin.leftCacheBounds);bin.count++}}}for(let bi=0;bi=BIN_COUNT)binIndex=BIN_COUNT-1;const bin=sahBins[binIndex];bin.count++;expandByTriangleBounds(c,triangleBounds,bin.bounds)}const lastBin=sahBins[BIN_COUNT-1];copyBounds(lastBin.bounds,lastBin.rightCacheBounds);for(let i=BIN_COUNT-2;i>=0;i--){const bin=sahBins[i];const nextBin=sahBins[i+1];unionBounds(bin.bounds,nextBin.rightCacheBounds,bin.rightCacheBounds)}let leftCount=0;for(let i=0;i=pos){right--}if(left=pos){right--}if(leftMAX_POINTER){throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.")}uint32Array[stride4Offset+6]=nextUnusedPointer/4;nextUnusedPointer=_populateBuffer(nextUnusedPointer,right);uint32Array[stride4Offset+7]=splitAxis;return nextUnusedPointer}}function generateIndirectBuffer(geometry,useSharedArrayBuffer){const triCount=(geometry.index?geometry.index.count:geometry.attributes.position.count)/3;const useUint32=triCount>2**16;const byteCount=useUint32?4:2;const buffer=useSharedArrayBuffer?new SharedArrayBuffer(triCount*byteCount):new ArrayBuffer(triCount*byteCount);const indirectBuffer=useUint32?new Uint32Array(buffer):new Uint16Array(buffer);for(let i=0,l=indirectBuffer.length;i=maxDepth){reachedMaxDepth=true;if(verbose){console.warn(`MeshBVH: Max depth of ${maxDepth} reached when generating BVH. Consider increasing maxDepth.`);console.warn(geometry)}}if(count<=maxLeafTris||depth>=maxDepth){triggerProgress(offset+count);node.offset=offset;node.count=count;return node}const split=getOptimalSplit(node.boundingData,centroidBoundingData,triangleBounds,offset,count,strategy);if(split.axis===-1){triggerProgress(offset+count);node.offset=offset;node.count=count;return node}const splitOffset=partionFunc(indirectBuffer,indexArray,triangleBounds,offset,count,split);if(splitOffset===offset||splitOffset===offset+count){triggerProgress(offset+count);node.offset=offset;node.count=count}else{node.splitAxis=split.axis;const left=new MeshBVHNode;const lstart=offset;const lcount=splitOffset-offset;node.left=left;getBounds(triangleBounds,lstart,lcount,left.boundingData,cacheCentroidBoundingData);splitNode(left,lstart,lcount,cacheCentroidBoundingData,depth+1);const right=new MeshBVHNode;const rstart=splitOffset;const rcount=count-lcount;node.right=right;getBounds(triangleBounds,rstart,rcount,right.boundingData,cacheCentroidBoundingData);splitNode(right,rstart,rcount,cacheCentroidBoundingData,depth+1)}return node}}function buildPackedTree(bvh,options){const geometry=bvh.geometry;if(options.indirect){bvh._indirectBuffer=generateIndirectBuffer(geometry,options.useSharedArrayBuffer);if(hasGroupGaps(geometry)&&!options.verbose){console.warn("MeshBVH: Provided geometry contains groups that do not fully span the vertex contents while using the \"indirect\" option. "+"BVH may incorrectly report intersections on unrendered portions of the geometry.")}}if(!bvh._indirectBuffer){ensureIndex(geometry,options)}const BufferConstructor=options.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;const triangleBounds=computeTriangleBounds(geometry);const geometryRanges=options.indirect?getFullGeometryRange(geometry):getRootIndexRanges(geometry);bvh._roots=geometryRanges.map(range=>{const root=buildTree(bvh,triangleBounds,range.offset,range.count,options);const nodeCount=countNodes(root);const buffer=new BufferConstructor(BYTES_PER_NODE*nodeCount);populateBuffer(0,root,buffer);return buffer})}class SeparatingAxisBounds{constructor(){this.min=Infinity;this.max=-Infinity}setFromPointsField(points,field){let min=Infinity;let max=-Infinity;for(let i=0,l=points.length;imax?val:max}this.min=min;this.max=max}setFromPoints(axis,points){let min=Infinity;let max=-Infinity;for(let i=0,l=points.length;imax?val:max}this.min=min;this.max=max}isSeparated(other){return this.min>other.max||other.min>this.max}}SeparatingAxisBounds.prototype.setFromBox=function(){const p=new three.Vector3;return function setFromBox(axis,box){const boxMin=box.min;const boxMax=box.max;let min=Infinity;let max=-Infinity;for(let x=0;x<=1;x++){for(let y=0;y<=1;y++){for(let z=0;z<=1;z++){p.x=boxMin.x*x+boxMax.x*(1-x);p.y=boxMin.y*y+boxMax.y*(1-y);p.z=boxMin.z*z+boxMax.z*(1-z);const val=axis.dot(p);min=Math.min(val,min);max=Math.max(val,max)}}}this.min=min;this.max=max}}();const areIntersecting=function(){const cacheSatBounds=new SeparatingAxisBounds;return function areIntersecting(shape1,shape2){const points1=shape1.points;const satAxes1=shape1.satAxes;const satBounds1=shape1.satBounds;const points2=shape2.points;const satAxes2=shape2.satAxes;const satBounds2=shape2.satBounds;for(let i=0;i<3;i++){const sb=satBounds1[i];const sa=satAxes1[i];cacheSatBounds.setFromPoints(sa,points2);if(sb.isSeparated(cacheSatBounds))return false}for(let i=0;i<3;i++){const sb=satBounds2[i];const sa=satAxes2[i];cacheSatBounds.setFromPoints(sa,points1);if(sb.isSeparated(cacheSatBounds))return false}}}();const closestPointLineToLine=function(){const dir1=new three.Vector3;const dir2=new three.Vector3;const v02=new three.Vector3;return function closestPointLineToLine(l1,l2,result){const v0=l1.start;const v10=dir1;const v2=l2.start;const v32=dir2;v02.subVectors(v0,v2);dir1.subVectors(l1.end,l1.start);dir2.subVectors(l2.end,l2.start);const d0232=v02.dot(v32);const d3210=v32.dot(v10);const d3232=v32.dot(v32);const d0210=v02.dot(v10);const d1010=v10.dot(v10);const denom=d1010*d3232-d3210*d3210;let d,d2;if(denom!==0){d=(d0232*d3210-d0210*d3232)/denom}else{d=0}d2=(d0232+d*d3210)/d3232;result.x=d;result.y=d2}}();const closestPointsSegmentToSegment=function(){const paramResult=new three.Vector2;const temp1=new three.Vector3;const temp2=new three.Vector3;return function closestPointsSegmentToSegment(l1,l2,target1,target2){closestPointLineToLine(l1,l2,paramResult);let d=paramResult.x;let d2=paramResult.y;if(d>=0&&d<=1&&d2>=0&&d2<=1){l1.at(d,target1);l2.at(d2,target2);return}else if(d>=0&&d<=1){if(d2<0){l2.at(0,target2)}else{l2.at(1,target2)}l1.closestPointToPoint(target2,true,target1);return}else if(d2>=0&&d2<=1){if(d<0){l1.at(0,target1)}else{l1.at(1,target1)}l2.closestPointToPoint(target1,true,target2);return}else{let p;if(d<0){p=l1.start}else{p=l1.end}let p2;if(d2<0){p2=l2.start}else{p2=l2.end}const closestPoint=temp1;const closestPoint2=temp2;l1.closestPointToPoint(p2,true,temp1);l2.closestPointToPoint(p,true,temp2);if(closestPoint.distanceToSquared(p2)<=closestPoint2.distanceToSquared(p)){target1.copy(closestPoint);target2.copy(p2);return}else{target1.copy(p);target2.copy(closestPoint2);return}}}}();const sphereIntersectTriangle=function(){const closestPointTemp=new three.Vector3;const projectedPointTemp=new three.Vector3;const planeTemp=new three.Plane;const lineTemp=new three.Line3;return function sphereIntersectTriangle(sphere,triangle){const{radius,center}=sphere;const{a,b,c}=triangle;lineTemp.start=a;lineTemp.end=b;const closestPoint1=lineTemp.closestPointToPoint(center,true,closestPointTemp);if(closestPoint1.distanceTo(center)<=radius)return true;lineTemp.start=a;lineTemp.end=c;const closestPoint2=lineTemp.closestPointToPoint(center,true,closestPointTemp);if(closestPoint2.distanceTo(center)<=radius)return true;lineTemp.start=b;lineTemp.end=c;const closestPoint3=lineTemp.closestPointToPoint(center,true,closestPointTemp);if(closestPoint3.distanceTo(center)<=radius)return true;const plane=triangle.getPlane(planeTemp);const dp=Math.abs(plane.distanceToPoint(center));if(dp<=radius){const pp=plane.projectPoint(center,projectedPointTemp);const cp=triangle.containsPoint(pp);if(cp)return true}return false}}();const ZERO_EPSILON=1e-15;function isNearZero(value){return Math.abs(value)new three.Vector3);this.satBounds=new Array(4).fill().map(()=>new SeparatingAxisBounds);this.points=[this.a,this.b,this.c];this.sphere=new three.Sphere;this.plane=new three.Plane;this.needsUpdate=true}intersectsSphere(sphere){return sphereIntersectTriangle(sphere,this)}update(){const a=this.a;const b=this.b;const c=this.c;const points=this.points;const satAxes=this.satAxes;const satBounds=this.satBounds;const axis0=satAxes[0];const sab0=satBounds[0];this.getNormal(axis0);sab0.setFromPoints(axis0,points);const axis1=satAxes[1];const sab1=satBounds[1];axis1.subVectors(a,b);sab1.setFromPoints(axis1,points);const axis2=satAxes[2];const sab2=satBounds[2];axis2.subVectors(b,c);sab2.setFromPoints(axis2,points);const axis3=satAxes[3];const sab3=satBounds[3];axis3.subVectors(c,a);sab3.setFromPoints(axis3,points);this.sphere.setFromPoints(this.points);this.plane.setFromNormalAndCoplanarPoint(axis0,a);this.needsUpdate=false}}ExtendedTriangle.prototype.closestPointToSegment=function(){const point1=new three.Vector3;const point2=new three.Vector3;const edge=new three.Line3;return function distanceToSegment(segment,target1=null,target2=null){const{start,end}=segment;const points=this.points;let distSq;let closestDistanceSq=Infinity;for(let i=0;i<3;i++){const nexti=(i+1)%3;edge.start.copy(points[i]);edge.end.copy(points[nexti]);closestPointsSegmentToSegment(edge,segment,point1,point2);distSq=point1.distanceToSquared(point2);if(distSq=2){const point=startPointIntersection===1?targetEdge.start:targetEdge.end;point.copy(tempPoint);count=2;break}count++;if(count===2&&startPointIntersection===-1){break}}}return count}return function intersectsTriangle(other,target=null,suppressLog=false){if(this.needsUpdate){this.update()}if(!other.isExtendedTriangle){saTri2.copy(other);saTri2.update();other=saTri2}else if(other.needsUpdate){other.update()}const plane1=this.plane;const plane2=other.plane;if(Math.abs(plane1.normal.dot(plane2.normal))>1-1e-10){const satBounds1=this.satBounds;const satAxes1=this.satAxes;arr2[0]=other.a;arr2[1]=other.b;arr2[2]=other.c;for(let i=0;i<4;i++){const sb=satBounds1[i];const sa=satAxes1[i];cachedSatBounds.setFromPoints(sa,arr2);if(sb.isSeparated(cachedSatBounds))return false}const satBounds2=other.satBounds;const satAxes2=other.satAxes;arr1[0]=this.a;arr1[1]=this.b;arr1[2]=this.c;for(let i=0;i<4;i++){const sb=satBounds2[i];const sa=satAxes2[i];cachedSatBounds.setFromPoints(sa,arr1);if(sb.isSeparated(cachedSatBounds))return false}for(let i=0;i<4;i++){const sa1=satAxes1[i];for(let i2=0;i2<4;i2++){const sa2=satAxes2[i2];cachedAxis.crossVectors(sa1,sa2);cachedSatBounds.setFromPoints(cachedAxis,arr1);cachedSatBounds2.setFromPoints(cachedAxis,arr2);if(cachedSatBounds.isSeparated(cachedSatBounds2))return false}}if(target){if(!suppressLog){console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0.")}target.start.set(0,0,0);target.end.set(0,0,0)}return true}else{const count1=triIntersectPlane(this,plane2,edge1);if(count1===1&&other.containsPoint(edge1.end)){if(target){target.start.copy(edge1.end);target.end.copy(edge1.end)}return true}else if(count1!==2){return false}const count2=triIntersectPlane(other,plane1,edge2);if(count2===1&&this.containsPoint(edge2.end)){if(target){target.start.copy(edge2.end);target.end.copy(edge2.end)}return true}else if(count2!==2){return false}edge1.delta(dir1);edge2.delta(dir2);if(dir1.dot(dir2)<0){let tmp=edge2.start;edge2.start=edge2.end;edge2.end=tmp}const s1=edge1.start.dot(dir1);const e1=edge1.end.dot(dir1);const s2=edge2.start.dot(dir1);const e2=edge2.end.dot(dir1);const separated1=e10){target.start.copy(edge1.start)}else{target.start.copy(edge2.start)}tempDir.subVectors(edge1.end,edge2.end);if(tempDir.dot(dir1)<0){target.end.copy(edge1.end)}else{target.end.copy(edge2.end)}}return true}}}();ExtendedTriangle.prototype.distanceToPoint=function(){const target=new three.Vector3;return function distanceToPoint(point){this.closestPointToPoint(point,target);return point.distanceTo(target)}}();ExtendedTriangle.prototype.distanceToTriangle=function(){const point=new three.Vector3;const point2=new three.Vector3;const cornerFields=["a","b","c"];const line1=new three.Line3;const line2=new three.Line3;return function distanceToTriangle(other,target1=null,target2=null){const lineTarget=target1||target2?line1:null;if(this.intersectsTriangle(other,lineTarget)){if(target1||target2){if(target1)lineTarget.getCenter(target1);if(target2)lineTarget.getCenter(target2)}return 0}let closestDistanceSq=Infinity;for(let i=0;i<3;i++){let dist;const field=cornerFields[i];const otherVec=other[field];this.closestPointToPoint(otherVec,point);dist=otherVec.distanceToSquared(point);if(distnew three.Vector3);this.satAxes=new Array(3).fill().map(()=>new three.Vector3);this.satBounds=new Array(3).fill().map(()=>new SeparatingAxisBounds);this.alignedSatBounds=new Array(3).fill().map(()=>new SeparatingAxisBounds);this.needsUpdate=false;if(min)this.min.copy(min);if(max)this.max.copy(max);if(matrix)this.matrix.copy(matrix)}set(min,max,matrix){this.min.copy(min);this.max.copy(max);this.matrix.copy(matrix);this.needsUpdate=true}copy(other){this.min.copy(other.min);this.max.copy(other.max);this.matrix.copy(other.matrix);this.needsUpdate=true}}OrientedBox.prototype.update=function(){return function update(){const matrix=this.matrix;const min=this.min;const max=this.max;const points=this.points;for(let x=0;x<=1;x++){for(let y=0;y<=1;y++){for(let z=0;z<=1;z++){const i=(1<<0)*x|(1<<1)*y|(1<<2)*z;const v=points[i];v.x=x?max.x:min.x;v.y=y?max.y:min.y;v.z=z?max.z:min.z;v.applyMatrix4(matrix)}}}const satBounds=this.satBounds;const satAxes=this.satAxes;const minVec=points[0];for(let i=0;i<3;i++){const axis=satAxes[i];const sb=satBounds[i];const index=1<new three.Line3);const segments2=new Array(12).fill().map(()=>new three.Line3);const point1=new three.Vector3;const point2=new three.Vector3;return function distanceToBox(box,threshold=0,target1=null,target2=null){if(this.needsUpdate){this.update()}if(this.intersectsBox(box)){if(target1||target2){box.getCenter(point2);this.closestPointToPoint(point2,point1);box.closestPointToPoint(point1,point2);if(target1)target1.copy(point1);if(target2)target2.copy(point2)}return 0}const threshold2=threshold*threshold;const min=box.min;const max=box.max;const points=this.points;let closestDistanceSq=Infinity;for(let i=0;i<8;i++){const p=points[i];point2.copy(p).clamp(min,max);const dist=p.distanceToSquared(point2);if(distnew ExtendedTriangle)}}const ExtendedTrianglePool=new ExtendedTrianglePoolBase;class _BufferStack{constructor(){this.float32Array=null;this.uint16Array=null;this.uint32Array=null;const stack=[];let prevBuffer=null;this.setBuffer=buffer=>{if(prevBuffer){stack.push(prevBuffer)}prevBuffer=buffer;this.float32Array=new Float32Array(buffer);this.uint16Array=new Uint16Array(buffer);this.uint32Array=new Uint32Array(buffer)};this.clearBuffer=()=>{prevBuffer=null;this.float32Array=null;this.uint16Array=null;this.uint32Array=null;if(stack.length!==0){this.setBuffer(stack.pop())}}}}const BufferStack=new _BufferStack;let _box1$1,_box2$1;const boxStack=[];const boxPool=new PrimitivePool(()=>new three.Box3);function shapecast(bvh,root,intersectsBounds,intersectsRange,boundsTraverseOrder,byteOffset){_box1$1=boxPool.getPrimitive();_box2$1=boxPool.getPrimitive();boxStack.push(_box1$1,_box2$1);BufferStack.setBuffer(bvh._roots[root]);const result=shapecastTraverse(0,bvh.geometry,intersectsBounds,intersectsRange,boundsTraverseOrder,byteOffset);BufferStack.clearBuffer();boxPool.releasePrimitive(_box1$1);boxPool.releasePrimitive(_box2$1);boxStack.pop();boxStack.pop();const length=boxStack.length;if(length>0){_box2$1=boxStack[length-1];_box1$1=boxStack[length-2]}return result}function shapecastTraverse(nodeIndex32,geometry,intersectsBoundsFunc,intersectsRangeFunc,nodeScoreFunc=null,nodeIndexByteOffset=0,depth=0){const{float32Array,uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);arrayToBox(BOUNDING_DATA_INDEX(nodeIndex32),float32Array,_box1$1);return intersectsRangeFunc(offset,count,false,depth,nodeIndexByteOffset+nodeIndex32,_box1$1)}else{const left=LEFT_NODE(nodeIndex32);const right=RIGHT_NODE(nodeIndex32,uint32Array);let c1=left;let c2=right;let score1,score2;let box1,box2;if(nodeScoreFunc){box1=_box1$1;box2=_box2$1;arrayToBox(BOUNDING_DATA_INDEX(c1),float32Array,box1);arrayToBox(BOUNDING_DATA_INDEX(c2),float32Array,box2);score1=nodeScoreFunc(box1);score2=nodeScoreFunc(box2);if(score2{temp.copy(point).clamp(box.min,box.max);return temp.distanceToSquared(point)},intersectsBounds:(box,isLeaf,score)=>{return score{tri.closestPointToPoint(point,temp);const distSq=point.distanceToSquared(temp);if(distSq0){intersection.normal.multiplyScalar(-1)}}const face={a:a,b:b,c:c,normal:new three.Vector3,materialIndex:0};three.Triangle.getNormal(_vA,_vB,_vC,face.normal);intersection.face=face;intersection.faceIndex=a}return intersection}function intersectTri(geo,side,ray,tri,intersections){const triOffset=tri*3;let a=triOffset+0;let b=triOffset+1;let c=triOffset+2;const index=geo.index;if(geo.index){a=index.getX(a);b=index.getX(b);c=index.getX(c)}const{position,normal,uv,uv1}=geo.attributes;const intersection=checkBufferGeometryIntersection(ray,position,normal,uv,uv1,a,b,c,side);if(intersection){intersection.faceIndex=tri;if(intersections)intersections.push(intersection);return intersection}return null}function setTriangle(tri,i,index,pos){const ta=tri.a;const tb=tri.b;const tc=tri.c;let i0=i;let i1=i+1;let i2=i+2;if(index){i0=index.getX(i0);i1=index.getX(i1);i2=index.getX(i2)}ta.x=pos.getX(i0);ta.y=pos.getY(i0);ta.z=pos.getZ(i0);tb.x=pos.getX(i1);tb.y=pos.getY(i1);tb.z=pos.getZ(i1);tc.x=pos.getX(i2);tc.y=pos.getY(i2);tc.z=pos.getZ(i2)}const tempV1=new three.Vector3;const tempV2=new three.Vector3;const tempV3=new three.Vector3;const tempUV1=new three.Vector2;const tempUV2=new three.Vector2;const tempUV3=new three.Vector2;function getTriangleHitPointInfo(point,geometry,triangleIndex,target){const indices=geometry.getIndex().array;const positions=geometry.getAttribute("position");const uvs=geometry.getAttribute("uv");const a=indices[triangleIndex*3];const b=indices[triangleIndex*3+1];const c=indices[triangleIndex*3+2];tempV1.fromBufferAttribute(positions,a);tempV2.fromBufferAttribute(positions,b);tempV3.fromBufferAttribute(positions,c);let materialIndex=0;const groups=geometry.groups;const firstVertexIndex=triangleIndex*3;for(let i=0,l=groups.length;i=start&&firstVertexIndexmaxx)maxx=x;if(ymaxy)maxy=y;if(zmaxz)maxz=z}if(float32Array[node32Index+0]!==minx||float32Array[node32Index+1]!==miny||float32Array[node32Index+2]!==minz||float32Array[node32Index+3]!==maxx||float32Array[node32Index+4]!==maxy||float32Array[node32Index+5]!==maxz){float32Array[node32Index+0]=minx;float32Array[node32Index+1]=miny;float32Array[node32Index+2]=minz;float32Array[node32Index+3]=maxx;float32Array[node32Index+4]=maxy;float32Array[node32Index+5]=maxz;return true}else{return false}}else{const left=node32Index+8;const right=uint32Array[node32Index+6];const offsetLeft=left+byteOffset;const offsetRight=right+byteOffset;let forceChildren=force;let includesLeft=false;let includesRight=false;if(nodeIndices){if(!forceChildren){includesLeft=nodeIndices.has(offsetLeft);includesRight=nodeIndices.has(offsetRight);forceChildren=!includesLeft&&!includesRight}}else{includesLeft=true;includesRight=true}const traverseLeft=forceChildren||includesLeft;const traverseRight=forceChildren||includesRight;let leftChange=false;if(traverseLeft){leftChange=_traverse(left,byteOffset,forceChildren)}let rightChange=false;if(traverseRight){rightChange=_traverse(right,byteOffset,forceChildren)}const didChange=leftChange||rightChange;if(didChange){for(let i=0;i<3;i++){const lefti=left+i;const righti=right+i;const minLeftValue=float32Array[lefti];const maxLeftValue=float32Array[lefti+3];const minRightValue=float32Array[righti];const maxRightValue=float32Array[righti+3];float32Array[node32Index+i]=minLeftValuemaxRightValue?maxLeftValue:maxRightValue}}return didChange}}}function intersectRay(nodeIndex32,array,ray){let tmin,tmax,tymin,tymax,tzmin,tzmax;const invdirx=1/ray.direction.x,invdiry=1/ray.direction.y,invdirz=1/ray.direction.z;const ox=ray.origin.x;const oy=ray.origin.y;const oz=ray.origin.z;let minx=array[nodeIndex32];let maxx=array[nodeIndex32+3];let miny=array[nodeIndex32+1];let maxy=array[nodeIndex32+3+1];let minz=array[nodeIndex32+2];let maxz=array[nodeIndex32+3+2];if(invdirx>=0){tmin=(minx-ox)*invdirx;tmax=(maxx-ox)*invdirx}else{tmin=(maxx-ox)*invdirx;tmax=(minx-ox)*invdirx}if(invdiry>=0){tymin=(miny-oy)*invdiry;tymax=(maxy-oy)*invdiry}else{tymin=(maxy-oy)*invdiry;tymax=(miny-oy)*invdiry}if(tmin>tymax||tymin>tmax)return false;if(tymin>tmin||isNaN(tmin))tmin=tymin;if(tymax=0){tzmin=(minz-oz)*invdirz;tzmax=(maxz-oz)*invdirz}else{tzmin=(maxz-oz)*invdirz;tzmax=(minz-oz)*invdirz}if(tmin>tzmax||tzmin>tmax)return false;if(tzmax=0;let c1,c2;if(leftToRight){c1=LEFT_NODE(nodeIndex32);c2=RIGHT_NODE(nodeIndex32,uint32Array)}else{c1=RIGHT_NODE(nodeIndex32,uint32Array);c2=LEFT_NODE(nodeIndex32)}const c1Intersection=intersectRay(c1,float32Array,ray);const c1Result=c1Intersection?_raycastFirst$1(c1,bvh,side,ray):null;if(c1Result){const point=c1Result.point[xyzAxis];const isOutside=leftToRight?point<=float32Array[c2+splitAxis]:point>=float32Array[c2+splitAxis+3];if(isOutside){return c1Result}}const c2Intersection=intersectRay(c2,float32Array,ray);const c2Result=c2Intersection?_raycastFirst$1(c2,bvh,side,ray):null;if(c1Result&&c2Result){return c1Result.distance<=c2Result.distance?c1Result:c2Result}else{return c1Result||c2Result||null}}}const boundingBox$2=new three.Box3;const triangle$1=new ExtendedTriangle;const triangle2$1=new ExtendedTriangle;const invertedMat$1=new three.Matrix4;const obb$4=new OrientedBox;const obb2$3=new OrientedBox;function intersectsGeometry(bvh,root,otherGeometry,geometryToBvh){BufferStack.setBuffer(bvh._roots[root]);const result=_intersectsGeometry$1(0,bvh,otherGeometry,geometryToBvh);BufferStack.clearBuffer();return result}function _intersectsGeometry$1(nodeIndex32,bvh,otherGeometry,geometryToBvh,cachedObb=null){const{float32Array,uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;if(cachedObb===null){if(!otherGeometry.boundingBox){otherGeometry.computeBoundingBox()}obb$4.set(otherGeometry.boundingBox.min,otherGeometry.boundingBox.max,geometryToBvh);cachedObb=obb$4}const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const thisGeometry=bvh.geometry;const thisIndex=thisGeometry.index;const thisPos=thisGeometry.attributes.position;const index=otherGeometry.index;const pos=otherGeometry.attributes.position;const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);invertedMat$1.copy(geometryToBvh).invert();if(otherGeometry.boundsTree){arrayToBox(BOUNDING_DATA_INDEX(nodeIndex32),float32Array,obb2$3);obb2$3.matrix.copy(invertedMat$1);obb2$3.needsUpdate=true;const res=otherGeometry.boundsTree.shapecast({intersectsBounds:box=>obb2$3.intersectsBox(box),intersectsTriangle:tri=>{tri.a.applyMatrix4(geometryToBvh);tri.b.applyMatrix4(geometryToBvh);tri.c.applyMatrix4(geometryToBvh);tri.needsUpdate=true;for(let i=offset*3,l=(count+offset)*3;i{return obb$3.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{if(score{if(otherGeometry.boundsTree){const otherBvh=otherGeometry.boundsTree;return otherBvh.shapecast({boundsTraverseOrder:box=>{return obb2$2.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{return score{for(let i2=otherOffset,l2=otherOffset+otherCount;i2maxx)maxx=x;if(ymaxy)maxy=y;if(zmaxz)maxz=z}}if(float32Array[node32Index+0]!==minx||float32Array[node32Index+1]!==miny||float32Array[node32Index+2]!==minz||float32Array[node32Index+3]!==maxx||float32Array[node32Index+4]!==maxy||float32Array[node32Index+5]!==maxz){float32Array[node32Index+0]=minx;float32Array[node32Index+1]=miny;float32Array[node32Index+2]=minz;float32Array[node32Index+3]=maxx;float32Array[node32Index+4]=maxy;float32Array[node32Index+5]=maxz;return true}else{return false}}else{const left=node32Index+8;const right=uint32Array[node32Index+6];const offsetLeft=left+byteOffset;const offsetRight=right+byteOffset;let forceChildren=force;let includesLeft=false;let includesRight=false;if(nodeIndices){if(!forceChildren){includesLeft=nodeIndices.has(offsetLeft);includesRight=nodeIndices.has(offsetRight);forceChildren=!includesLeft&&!includesRight}}else{includesLeft=true;includesRight=true}const traverseLeft=forceChildren||includesLeft;const traverseRight=forceChildren||includesRight;let leftChange=false;if(traverseLeft){leftChange=_traverse(left,byteOffset,forceChildren)}let rightChange=false;if(traverseRight){rightChange=_traverse(right,byteOffset,forceChildren)}const didChange=leftChange||rightChange;if(didChange){for(let i=0;i<3;i++){const lefti=left+i;const righti=right+i;const minLeftValue=float32Array[lefti];const maxLeftValue=float32Array[lefti+3];const minRightValue=float32Array[righti];const maxRightValue=float32Array[righti+3];float32Array[node32Index+i]=minLeftValuemaxRightValue?maxLeftValue:maxRightValue}}return didChange}}}function raycast_indirect(bvh,root,side,ray,intersects){BufferStack.setBuffer(bvh._roots[root]);_raycast(0,bvh,side,ray,intersects);BufferStack.clearBuffer()}function _raycast(nodeIndex32,bvh,side,ray,intersects){const{float32Array,uint16Array,uint32Array}=BufferStack;const nodeIndex16=nodeIndex32*2;const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);intersectTris_indirect(bvh,side,ray,offset,count,intersects)}else{const leftIndex=LEFT_NODE(nodeIndex32);if(intersectRay(leftIndex,float32Array,ray)){_raycast(leftIndex,bvh,side,ray,intersects)}const rightIndex=RIGHT_NODE(nodeIndex32,uint32Array);if(intersectRay(rightIndex,float32Array,ray)){_raycast(rightIndex,bvh,side,ray,intersects)}}}const _xyzFields=["x","y","z"];function raycastFirst_indirect(bvh,root,side,ray){BufferStack.setBuffer(bvh._roots[root]);const result=_raycastFirst(0,bvh,side,ray);BufferStack.clearBuffer();return result}function _raycastFirst(nodeIndex32,bvh,side,ray){const{float32Array,uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);return intersectClosestTri_indirect(bvh,side,ray,offset,count)}else{const splitAxis=SPLIT_AXIS(nodeIndex32,uint32Array);const xyzAxis=_xyzFields[splitAxis];const rayDir=ray.direction[xyzAxis];const leftToRight=rayDir>=0;let c1,c2;if(leftToRight){c1=LEFT_NODE(nodeIndex32);c2=RIGHT_NODE(nodeIndex32,uint32Array)}else{c1=RIGHT_NODE(nodeIndex32,uint32Array);c2=LEFT_NODE(nodeIndex32)}const c1Intersection=intersectRay(c1,float32Array,ray);const c1Result=c1Intersection?_raycastFirst(c1,bvh,side,ray):null;if(c1Result){const point=c1Result.point[xyzAxis];const isOutside=leftToRight?point<=float32Array[c2+splitAxis]:point>=float32Array[c2+splitAxis+3];if(isOutside){return c1Result}}const c2Intersection=intersectRay(c2,float32Array,ray);const c2Result=c2Intersection?_raycastFirst(c2,bvh,side,ray):null;if(c1Result&&c2Result){return c1Result.distance<=c2Result.distance?c1Result:c2Result}else{return c1Result||c2Result||null}}}const boundingBox$1=new three.Box3;const triangle=new ExtendedTriangle;const triangle2=new ExtendedTriangle;const invertedMat=new three.Matrix4;const obb$2=new OrientedBox;const obb2$1=new OrientedBox;function intersectsGeometry_indirect(bvh,root,otherGeometry,geometryToBvh){BufferStack.setBuffer(bvh._roots[root]);const result=_intersectsGeometry(0,bvh,otherGeometry,geometryToBvh);BufferStack.clearBuffer();return result}function _intersectsGeometry(nodeIndex32,bvh,otherGeometry,geometryToBvh,cachedObb=null){const{float32Array,uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;if(cachedObb===null){if(!otherGeometry.boundingBox){otherGeometry.computeBoundingBox()}obb$2.set(otherGeometry.boundingBox.min,otherGeometry.boundingBox.max,geometryToBvh);cachedObb=obb$2}const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const thisGeometry=bvh.geometry;const thisIndex=thisGeometry.index;const thisPos=thisGeometry.attributes.position;const index=otherGeometry.index;const pos=otherGeometry.attributes.position;const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);invertedMat.copy(geometryToBvh).invert();if(otherGeometry.boundsTree){arrayToBox(BOUNDING_DATA_INDEX(nodeIndex32),float32Array,obb2$1);obb2$1.matrix.copy(invertedMat);obb2$1.needsUpdate=true;const res=otherGeometry.boundsTree.shapecast({intersectsBounds:box=>obb2$1.intersectsBox(box),intersectsTriangle:tri=>{tri.a.applyMatrix4(geometryToBvh);tri.b.applyMatrix4(geometryToBvh);tri.c.applyMatrix4(geometryToBvh);tri.needsUpdate=true;for(let i=offset,l=count+offset;i{return obb$1.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{if(score{if(otherGeometry.boundsTree){const otherBvh=otherGeometry.boundsTree;return otherBvh.shapecast({boundsTraverseOrder:box=>{return obb2.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{return score{for(let i2=otherOffset,l2=otherOffset+otherCount;i2new three.Box3);const _leftBox1=new three.Box3;const _rightBox1=new three.Box3;const _leftBox2=new three.Box3;const _rightBox2=new three.Box3;let _active=false;function bvhcast(bvh,otherBvh,matrixToLocal,intersectsRanges){if(_active){throw new Error("MeshBVH: Recursive calls to bvhcast not supported.")}_active=true;const roots=bvh._roots;const otherRoots=otherBvh._roots;let result;let offset1=0;let offset2=0;const invMat=new three.Matrix4().copy(matrixToLocal).invert();for(let i=0,il=roots.length;iroot.slice()),index:indexAttribute?indexAttribute.array.slice():null,indirectBuffer:indirectBuffer?indirectBuffer.slice():null}}else{result={roots:rootData,index:indexAttribute?indexAttribute.array:null,indirectBuffer:indirectBuffer}}return result}static deserialize(data,geometry,options={}){options={setIndex:true,indirect:Boolean(data.indirectBuffer),...options};const{index,roots,indirectBuffer}=data;const bvh=new MeshBVH(geometry,{...options,[SKIP_GENERATION]:true});bvh._roots=roots;bvh._indirectBuffer=indirectBuffer||null;if(options.setIndex){const indexAttribute=geometry.getIndex();if(indexAttribute===null){const newIndex=new three.BufferAttribute(data.index,1,false);geometry.setIndex(newIndex)}else if(indexAttribute.array!==index){indexAttribute.array.set(index);indexAttribute.needsUpdate=true}}return bvh}get indirect(){return!!this._indirectBuffer}constructor(geometry,options={}){if(!geometry.isBufferGeometry){throw new Error("MeshBVH: Only BufferGeometries are supported.")}else if(geometry.index&&geometry.index.isInterleavedBufferAttribute){throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}options=Object.assign({...DEFAULT_OPTIONS,[SKIP_GENERATION]:false},options);if(options.useSharedArrayBuffer&&!isSharedArrayBufferSupported()){throw new Error("MeshBVH: SharedArrayBuffer is not available.")}this.geometry=geometry;this._roots=null;this._indirectBuffer=null;if(!options[SKIP_GENERATION]){buildPackedTree(this,options);if(!geometry.boundingBox&&options.setBoundingBox){geometry.boundingBox=this.getBoundingBox(new three.Box3)}}this.resolveTriangleIndex=this._indirectBuffer?i=>this._indirectBuffer[i]:i=>i}refit(nodeIndices=null){const refitFunc=this.indirect?refit_indirect:refit;return refitFunc(this,nodeIndices)}traverse(callback,rootIndex=0){const buffer=this._roots[rootIndex];const uint32Array=new Uint32Array(buffer);const uint16Array=new Uint16Array(buffer);_traverse(0);function _traverse(node32Index,depth=0){const node16Index=node32Index*2;const isLeaf=uint16Array[node16Index+15]===IS_LEAFNODE_FLAG;if(isLeaf){const offset=uint32Array[node32Index+6];const count=uint16Array[node16Index+14];callback(depth,isLeaf,new Float32Array(buffer,node32Index*4,6),offset,count)}else{const left=node32Index+BYTES_PER_NODE/4;const right=uint32Array[node32Index+6];const splitAxis=uint32Array[node32Index+7];const stopTraversal=callback(depth,isLeaf,new Float32Array(buffer,node32Index*4,6),splitAxis);if(!stopTraversal){_traverse(left,depth+1);_traverse(right,depth+1)}}}}raycast(ray,materialOrSide=three.FrontSide){const roots=this._roots;const geometry=this.geometry;const intersects=[];const isMaterial=materialOrSide.isMaterial;const isArrayMaterial=Array.isArray(materialOrSide);const groups=geometry.groups;const side=isMaterial?materialOrSide.side:materialOrSide;const raycastFunc=this.indirect?raycast_indirect:raycast;for(let i=0,l=roots.length;i{if(!originalIntersectsRange(offset,count,contained,depth,nodeIndex)){return iterateFunc(offset,count,this,intersectsTriangle,contained,depth,triangle)}return true}}else if(!intersectsRange){if(intersectsTriangle){intersectsRange=(offset,count,contained,depth)=>{return iterateFunc(offset,count,this,intersectsTriangle,contained,depth,triangle)}}else{intersectsRange=(offset,count,contained)=>{return contained}}}let result=false;let byteOffset=0;const roots=this._roots;for(let i=0,l=roots.length;i{const ti=this.resolveTriangleIndex(i1);setTriangle(triangle1,ti*3,indexAttr1,positionAttr1)}:i1=>{setTriangle(triangle1,i1*3,indexAttr1,positionAttr1)};const triangle2=ExtendedTrianglePool.getPrimitive();const indexAttr2=otherBvh.geometry.index;const positionAttr2=otherBvh.geometry.attributes.position;const assignTriangle2=otherBvh.indirect?i2=>{const ti2=otherBvh.resolveTriangleIndex(i2);setTriangle(triangle2,ti2*3,indexAttr2,positionAttr2)}:i2=>{setTriangle(triangle2,i2*3,indexAttr2,positionAttr2)};if(intersectsTriangles){const iterateOverDoubleTriangles=(offset1,count1,offset2,count2,depth1,index1,depth2,index2)=>{for(let i2=offset2,l2=offset2+count2;i2obb.intersectsBox(box),intersectsTriangle:tri=>obb.intersectsTriangle(tri)})}intersectsSphere(sphere){return this.shapecast({intersectsBounds:box=>sphere.intersectsBox(box),intersectsTriangle:tri=>tri.intersectsSphere(sphere)})}closestPointToGeometry(otherGeometry,geometryToBvh,target1={},target2={},minThreshold=0,maxThreshold=Infinity){const closestPointToGeometryFunc=this.indirect?closestPointToGeometry_indirect:closestPointToGeometry;return closestPointToGeometryFunc(this,otherGeometry,geometryToBvh,target1,target2,minThreshold,maxThreshold)}closestPointToPoint(point,target={},minThreshold=0,maxThreshold=Infinity){return closestPointToPoint(this,point,target,minThreshold,maxThreshold)}getBoundingBox(target){target.makeEmpty();const roots=this._roots;roots.forEach(buffer=>{arrayToBox(0,new Float32Array(buffer),tempBox);target.union(tempBox)});return target}}const boundingBox=new three.Box3;class MeshBVHRootHelper extends three.Object3D{get isMesh(){return!this.displayEdges}get isLineSegments(){return this.displayEdges}get isLine(){return this.displayEdges}constructor(bvh,material,depth=10,group=0){super();this.material=material;this.geometry=new three.BufferGeometry;this.name="MeshBVHRootHelper";this.depth=depth;this.displayParents=false;this.bvh=bvh;this.displayEdges=true;this._group=group}raycast(){}update(){const geometry=this.geometry;const boundsTree=this.bvh;const group=this._group;geometry.dispose();this.visible=false;if(boundsTree){const targetDepth=this.depth-1;const displayParents=this.displayParents;let boundsCount=0;boundsTree.traverse((depth,isLeaf)=>{if(depth>=targetDepth||isLeaf){boundsCount++;return true}else if(displayParents){boundsCount++}},group);let posIndex=0;const positionArray=new Float32Array(8*3*boundsCount);boundsTree.traverse((depth,isLeaf,boundingData)=>{const terminate=depth>=targetDepth||isLeaf;if(terminate||displayParents){arrayToBox(0,boundingData,boundingBox);const{min,max}=boundingBox;for(let x=-1;x<=1;x+=2){const xVal=x<0?min.x:max.x;for(let y=-1;y<=1;y+=2){const yVal=y<0?min.y:max.y;for(let z=-1;z<=1;z+=2){const zVal=z<0?min.z:max.z;positionArray[posIndex+0]=xVal;positionArray[posIndex+1]=yVal;positionArray[posIndex+2]=zVal;posIndex+=3}}}return terminate}},group);let indexArray;let indices;if(this.displayEdges){indices=new Uint8Array([0,4,1,5,2,6,3,7,0,2,1,3,4,6,5,7,0,1,2,3,4,5,6,7])}else{indices=new Uint8Array([0,1,2,2,1,3,4,6,5,6,7,5,1,4,5,0,4,1,2,3,6,3,7,6,0,2,4,2,6,4,1,5,3,3,5,7])}if(positionArray.length>65535){indexArray=new Uint32Array(indices.length*boundsCount)}else{indexArray=new Uint16Array(indices.length*boundsCount)}const indexLength=indices.length;for(let i=0;itotalRoots){const root=this._roots.pop();root.geometry.dispose();this.remove(root)}for(let i=0;i=this._roots.length){const root=new MeshBVHRootHelper(bvh,edgeMaterial,depth,i);this.add(root);this._roots.push(root)}const root=this._roots[i];root.bvh=bvh;root.depth=depth;root.displayParents=displayParents;root.displayEdges=displayEdges;root.material=displayEdges?edgeMaterial:meshMaterial;root.update()}}updateMatrixWorld(...args){const mesh=this.mesh;const parent=this.parent;if(mesh!==null){mesh.updateWorldMatrix(true,false);if(parent){this.matrix.copy(parent.matrixWorld).invert().multiply(mesh.matrixWorld)}else{this.matrix.copy(mesh.matrixWorld)}this.matrix.decompose(this.position,this.quaternion,this.scale)}super.updateMatrixWorld(...args)}copy(source){this.depth=source.depth;this.mesh=source.mesh;this.bvh=source.bvh;this.opacity=source.opacity;this.color.copy(source.color)}clone(){return new MeshBVHHelper(this.mesh,this.bvh,this.depth)}dispose(){this.edgeMaterial.dispose();this.meshMaterial.dispose();const children=this.children;for(let i=0,l=children.length;i{const l0=boundingData[0+3]-boundingData[0];const l1=boundingData[1+3]-boundingData[1];const l2=boundingData[2+3]-boundingData[2];const surfaceArea=2*(l0*l1+l1*l2+l2*l0);result.nodeCount++;if(isLeaf){result.leafNodeCount++;result.depth.min=Math.min(depth,result.depth.min);result.depth.max=Math.max(depth,result.depth.max);result.tris.min=Math.min(count,result.tris.min);result.tris.max=Math.max(count,result.tris.max);result.surfaceAreaScore+=surfaceArea*TRIANGLE_INTERSECT_COST*count}else{result.splits[offsetOrSplit]++;result.surfaceAreaScore+=surfaceArea*TRAVERSAL_COST}},group);if(result.tris.min===Infinity){result.tris.min=0;result.tris.max=0}if(result.depth.min===Infinity){result.depth.min=0;result.depth.max=0}return result}function getBVHExtremes(bvh){return bvh._roots.map((root,i)=>getRootExtremes(bvh,i))}function estimateMemoryInBytes(obj){const traversed=new Set;const stack=[obj];let bytes=0;while(stack.length){const curr=stack.pop();if(traversed.has(curr)){continue}traversed.add(curr);for(let key in curr){if(!curr.hasOwnProperty(key)){continue}bytes+=getPrimitiveSize(key);const value=curr[key];if(value&&(typeof value==="object"||typeof value==="function")){if(isTypedArray(value)){bytes+=value.byteLength}else if(isSharedArrayBufferSupported()&&value instanceof SharedArrayBuffer){bytes+=value.byteLength}else if(value instanceof ArrayBuffer){bytes+=value.byteLength}else{stack.push(value)}}else{bytes+=getPrimitiveSize(value)}}}return bytes}function validateBounds(bvh){const geometry=bvh.geometry;const depthStack=[];const index=geometry.index;const position=geometry.getAttribute("position");let passes=true;bvh.traverse((depth,isLeaf,boundingData,offset,count)=>{const info={depth,isLeaf,boundingData,offset,count};depthStack[depth]=info;arrayToBox(0,boundingData,_box1);const parent=depthStack[depth-1];if(isLeaf){for(let i=offset,l=offset+count;i{const info={bounds:arrayToBox(0,boundingData,new three.Box3)};if(isLeaf){info.count=count;info.offset=offset}else{info.left=null;info.right=null}depthStack[depth]=info;const parent=depthStack[depth-1];if(parent){if(parent.left===null){parent.left=info}else{parent.right=info}}});return depthStack[0]}function convertRaycastIntersect(hit,object,raycaster){if(hit===null){return null}hit.point.applyMatrix4(object.matrixWorld);hit.distance=hit.point.distanceTo(raycaster.ray.origin);hit.object=object;if(hit.distanceraycaster.far){return null}else{return hit}}const ray=new three.Ray;const tmpInverseMatrix=new three.Matrix4;const origMeshRaycastFunc=three.Mesh.prototype.raycast;function acceleratedRaycast(raycaster,intersects){if(this.geometry.boundsTree){if(this.material===undefined)return;tmpInverseMatrix.copy(this.matrixWorld).invert();ray.copy(raycaster.ray).applyMatrix4(tmpInverseMatrix);const bvh=this.geometry.boundsTree;if(raycaster.firstHitOnly===true){const hit=convertRaycastIntersect(bvh.raycastFirst(ray,this.material),this,raycaster);if(hit){intersects.push(hit)}}else{const hits=bvh.raycast(ray,this.material);for(let i=0,l=hits.length;i=2){dataArray[ii+1]=attr.getY(i)/normalizeValue}if(itemSize>=3){dataArray[ii+2]=attr.getZ(i)/normalizeValue;if(finalStride===4){dataArray[ii+3]=1}}if(itemSize>=4){dataArray[ii+3]=attr.getW(i)/normalizeValue}}attr.normalized=originalNormalized;this.internalFormat=internalFormat;this.format=format;this.type=type;this.image.width=dimension;this.image.height=dimension;this.image.data=dataArray;this.needsUpdate=true;this.dispose();attr.itemSize=originalItemSize;attr.count=originalCount}}class UIntVertexAttributeTexture extends VertexAttributeTexture{constructor(){super();this._forcedType=three.UnsignedIntType}}class IntVertexAttributeTexture extends VertexAttributeTexture{constructor(){super();this._forcedType=three.IntType}}class FloatVertexAttributeTexture extends VertexAttributeTexture{constructor(){super();this._forcedType=three.FloatType}}class MeshBVHUniformStruct{constructor(){this.index=new UIntVertexAttributeTexture;this.position=new FloatVertexAttributeTexture;this.bvhBounds=new three.DataTexture;this.bvhContents=new three.DataTexture;this._cachedIndexAttr=null;this.index.overrideItemSize=3}updateFrom(bvh){const{geometry}=bvh;bvhToTextures(bvh,this.bvhBounds,this.bvhContents);this.position.updateFrom(geometry.attributes.position);if(bvh.indirect){const indirectBuffer=bvh._indirectBuffer;if(this._cachedIndexAttr===null||this._cachedIndexAttr.count!==indirectBuffer.length){if(geometry.index){this._cachedIndexAttr=geometry.index.clone()}else{const array=getIndexArray(getVertexCount(geometry));this._cachedIndexAttr=new three.BufferAttribute(array,1,false)}}dereferenceIndex(geometry,indirectBuffer,this._cachedIndexAttr);this.index.updateFrom(this._cachedIndexAttr)}else{this.index.updateFrom(geometry.index)}}dispose(){const{index,position,bvhBounds,bvhContents}=this;if(index)index.dispose();if(position)position.dispose();if(bvhBounds)bvhBounds.dispose();if(bvhContents)bvhContents.dispose()}}function dereferenceIndex(geometry,indirectBuffer,target){const unpacked=target.array;const indexArray=geometry.index?geometry.index.array:null;for(let i=0,l=indirectBuffer.length;i=2)target.setY(io,attr.getY(i));if(itemSize>=3)target.setZ(io,attr.getZ(i));if(itemSize>=4)target.setW(io,attr.getW(i))}}else{const array=target.array;const cons=array.constructor;const byteOffset=array.BYTES_PER_ELEMENT*attr.itemSize*targetOffset;const temp=new cons(array.buffer,byteOffset,attr.array.length);temp.set(attr.array)}}function addScaledMatrix(target,matrix,scale){const targetArray=target.elements;const matrixArray=matrix.elements;for(let i=0,l=matrixArray.length;i{object.traverseVisible(c=>{if(c.isMesh){finalMeshes.push(c)}})});this.meshes=finalMeshes;this.useGroups=true;this.applyWorldTransforms=true;this.attributes=["position","normal","color","tangent","uv","uv2"];this._intermediateGeometry=new Array(finalMeshes.length).fill().map(()=>new three.BufferGeometry);this._diffMap=new WeakMap}getMaterials(){const materials=[];this.meshes.forEach(mesh=>{if(Array.isArray(mesh.material)){materials.push(...mesh.material)}else{materials.push(mesh.material)}});return materials}generate(targetGeometry=new three.BufferGeometry){let skipAttributes=[];const{meshes,useGroups,_intermediateGeometry,_diffMap}=this;for(let i=0,l=meshes.length;i - 1 && ptr < BVH_STACK_DEPTH ) { uint currNodeIndex = stack[ ptr ]; ptr --; // check if we intersect the current bounds float boundsHitDistance = distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, currNodeIndex ); if ( boundsHitDistance > closestDistanceSquared ) { continue; } uvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy; bool isLeaf = bool( boundsInfo.x & 0xffff0000u ); if ( isLeaf ) { uint count = boundsInfo.x & 0x0000ffffu; uint offset = boundsInfo.y; closestDistanceSquared = distanceToTriangles( bvh_position, bvh_index, offset, count, point, closestDistanceSquared, // outputs faceIndices, faceNormal, barycoord, side, outPoint ); } else { uint leftIndex = currNodeIndex + 1u; uint splitAxis = boundsInfo.x & 0x0000ffffu; uint rightIndex = boundsInfo.y; bool leftToRight = distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, leftIndex ) < distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, rightIndex );//rayDirection[ splitAxis ] >= 0.0; uint c1 = leftToRight ? leftIndex : rightIndex; uint c2 = leftToRight ? rightIndex : leftIndex; // set c2 in the stack so we traverse it later. We need to keep track of a pointer in // the stack while we traverse. The second pointer added is the one that will be // traversed first ptr ++; stack[ ptr ] = c2; ptr ++; stack[ ptr ] = c1; } } return sqrt( closestDistanceSquared ); } `;const bvh_ray_functions=` #ifndef TRI_INTERSECT_EPSILON #define TRI_INTERSECT_EPSILON 1e-5 #endif // Raycasting bool intersectsBounds( vec3 rayOrigin, vec3 rayDirection, vec3 boundsMin, vec3 boundsMax, out float dist ) { // https://www.reddit.com/r/opengl/comments/8ntzz5/fast_glsl_ray_box_intersection/ // https://tavianator.com/2011/ray_box.html vec3 invDir = 1.0 / rayDirection; // find intersection distances for each plane vec3 tMinPlane = invDir * ( boundsMin - rayOrigin ); vec3 tMaxPlane = invDir * ( boundsMax - rayOrigin ); // get the min and max distances from each intersection vec3 tMinHit = min( tMaxPlane, tMinPlane ); vec3 tMaxHit = max( tMaxPlane, tMinPlane ); // get the furthest hit distance vec2 t = max( tMinHit.xx, tMinHit.yz ); float t0 = max( t.x, t.y ); // get the minimum hit distance t = min( tMaxHit.xx, tMaxHit.yz ); float t1 = min( t.x, t.y ); // set distance to 0.0 if the ray starts inside the box dist = max( t0, 0.0 ); return t1 >= dist; } bool intersectsTriangle( vec3 rayOrigin, vec3 rayDirection, vec3 a, vec3 b, vec3 c, out vec3 barycoord, out vec3 norm, out float dist, out float side ) { // https://stackoverflow.com/questions/42740765/intersection-between-line-and-triangle-in-3d vec3 edge1 = b - a; vec3 edge2 = c - a; norm = cross( edge1, edge2 ); float det = - dot( rayDirection, norm ); float invdet = 1.0 / det; vec3 AO = rayOrigin - a; vec3 DAO = cross( AO, rayDirection ); vec4 uvt; uvt.x = dot( edge2, DAO ) * invdet; uvt.y = - dot( edge1, DAO ) * invdet; uvt.z = dot( AO, norm ) * invdet; uvt.w = 1.0 - uvt.x - uvt.y; // set the hit information barycoord = uvt.wxy; // arranged in A, B, C order dist = uvt.z; side = sign( det ); norm = side * normalize( norm ); // add an epsilon to avoid misses between triangles uvt += vec4( TRI_INTERSECT_EPSILON ); return all( greaterThanEqual( uvt, vec4( 0.0 ) ) ); } bool intersectTriangles( // geometry info and triangle range sampler2D positionAttr, usampler2D indexAttr, uint offset, uint count, // ray vec3 rayOrigin, vec3 rayDirection, // outputs inout float minDistance, inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, inout float side, inout float dist ) { bool found = false; vec3 localBarycoord, localNormal; float localDist, localSide; for ( uint i = offset, l = offset + count; i < l; i ++ ) { uvec3 indices = uTexelFetch1D( indexAttr, i ).xyz; vec3 a = texelFetch1D( positionAttr, indices.x ).rgb; vec3 b = texelFetch1D( positionAttr, indices.y ).rgb; vec3 c = texelFetch1D( positionAttr, indices.z ).rgb; if ( intersectsTriangle( rayOrigin, rayDirection, a, b, c, localBarycoord, localNormal, localDist, localSide ) && localDist < minDistance ) { found = true; minDistance = localDist; faceIndices = uvec4( indices.xyz, i ); faceNormal = localNormal; side = localSide; barycoord = localBarycoord; dist = localDist; } } return found; } bool intersectsBVHNodeBounds( vec3 rayOrigin, vec3 rayDirection, sampler2D bvhBounds, uint currNodeIndex, out float dist ) { uint cni2 = currNodeIndex * 2u; vec3 boundsMin = texelFetch1D( bvhBounds, cni2 ).xyz; vec3 boundsMax = texelFetch1D( bvhBounds, cni2 + 1u ).xyz; return intersectsBounds( rayOrigin, rayDirection, boundsMin, boundsMax, dist ); } // use a macro to hide the fact that we need to expand the struct into separate fields #define\ bvhIntersectFirstHit(\ bvh,\ rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist\ )\ _bvhIntersectFirstHit(\ bvh.position, bvh.index, bvh.bvhBounds, bvh.bvhContents,\ rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist\ ) bool _bvhIntersectFirstHit( // bvh info sampler2D bvh_position, usampler2D bvh_index, sampler2D bvh_bvhBounds, usampler2D bvh_bvhContents, // ray vec3 rayOrigin, vec3 rayDirection, // output variables split into separate variables due to output precision inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, inout float side, inout float dist ) { // stack needs to be twice as long as the deepest tree we expect because // we push both the left and right child onto the stack every traversal int ptr = 0; uint stack[ BVH_STACK_DEPTH ]; stack[ 0 ] = 0u; float triangleDistance = INFINITY; bool found = false; while ( ptr > - 1 && ptr < BVH_STACK_DEPTH ) { uint currNodeIndex = stack[ ptr ]; ptr --; // check if we intersect the current bounds float boundsHitDistance; if ( ! intersectsBVHNodeBounds( rayOrigin, rayDirection, bvh_bvhBounds, currNodeIndex, boundsHitDistance ) || boundsHitDistance > triangleDistance ) { continue; } uvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy; bool isLeaf = bool( boundsInfo.x & 0xffff0000u ); if ( isLeaf ) { uint count = boundsInfo.x & 0x0000ffffu; uint offset = boundsInfo.y; found = intersectTriangles( bvh_position, bvh_index, offset, count, rayOrigin, rayDirection, triangleDistance, faceIndices, faceNormal, barycoord, side, dist ) || found; } else { uint leftIndex = currNodeIndex + 1u; uint splitAxis = boundsInfo.x & 0x0000ffffu; uint rightIndex = boundsInfo.y; bool leftToRight = rayDirection[ splitAxis ] >= 0.0; uint c1 = leftToRight ? leftIndex : rightIndex; uint c2 = leftToRight ? rightIndex : leftIndex; // set c2 in the stack so we traverse it later. We need to keep track of a pointer in // the stack while we traverse. The second pointer added is the one that will be // traversed first ptr ++; stack[ ptr ] = c2; ptr ++; stack[ ptr ] = c1; } } return found; } `;const bvh_struct_definitions=` struct BVH { usampler2D index; sampler2D position; sampler2D bvhBounds; usampler2D bvhContents; }; `;var BVHShaderGLSL=Object.freeze({__proto__:null,bvh_distance_functions:bvh_distance_functions,bvh_ray_functions:bvh_ray_functions,bvh_struct_definitions:bvh_struct_definitions,common_functions:common_functions});const shaderStructs=bvh_struct_definitions;const shaderDistanceFunction=bvh_distance_functions;const shaderIntersectFunction=` ${common_functions} ${bvh_ray_functions} `;exports.AVERAGE=AVERAGE;exports.BVHShaderGLSL=BVHShaderGLSL;exports.CENTER=CENTER;exports.CONTAINED=CONTAINED;exports.ExtendedTriangle=ExtendedTriangle;exports.FloatVertexAttributeTexture=FloatVertexAttributeTexture;exports.INTERSECTED=INTERSECTED;exports.IntVertexAttributeTexture=IntVertexAttributeTexture;exports.MeshBVH=MeshBVH;exports.MeshBVHHelper=MeshBVHHelper;exports.MeshBVHUniformStruct=MeshBVHUniformStruct;exports.NOT_INTERSECTED=NOT_INTERSECTED;exports.OrientedBox=OrientedBox;exports.SAH=SAH;exports.StaticGeometryGenerator=StaticGeometryGenerator;exports.UIntVertexAttributeTexture=UIntVertexAttributeTexture;exports.VertexAttributeTexture=VertexAttributeTexture;exports.acceleratedRaycast=acceleratedRaycast;exports.computeBoundsTree=computeBoundsTree;exports.disposeBoundsTree=disposeBoundsTree;exports.estimateMemoryInBytes=estimateMemoryInBytes;exports.getBVHExtremes=getBVHExtremes;exports.getJSONStructure=getJSONStructure;exports.getTriangleHitPointInfo=getTriangleHitPointInfo;exports.shaderDistanceFunction=shaderDistanceFunction;exports.shaderIntersectFunction=shaderIntersectFunction;exports.shaderStructs=shaderStructs;exports.validateBounds=validateBounds;Object.defineProperty(exports,"__esModule",{value:true});three.BufferGeometry.prototype.computeBoundsTree=computeBoundsTree;three.BufferGeometry.prototype.disposeBoundsTree=disposeBoundsTree;three.Mesh.prototype.raycast=acceleratedRaycast});THREE.MeshoptDecoder=function(){"use strict";var wasm_base="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";var wasm_simd="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";var detector=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]);var wasmpack=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object"){return{supported:false}}var wasm=WebAssembly.validate(detector)?wasm_simd:wasm_base;var instance;var ready=WebAssembly.instantiate(unpack(wasm),{}).then(function(result){instance=result.instance;instance.exports.__wasm_call_ctors()});function unpack(data){var result=new Uint8Array(data.length);for(var i=0;i96?ch-97:ch>64?ch-39:ch+4}var write=0;for(var i=0;i0){return decodeWorker(count,size,source,decoders[mode],filters[filter])}return ready.then(function(){var target=new Uint8Array(count*size);decode(instance.exports[decoders[mode]],target,count,size,source,instance.exports[filters[filter]]);return target})}}}();(function(t,e){e(t.THREE=t.THREE||{})})(this,function(THREE){var Color=THREE.Color,Vector3=THREE.Vector3;class Face3{constructor(a,b,c,normal,color,materialIndex=0){this.a=a;this.b=b;this.c=c;this.normal=normal&&normal.isVector3?normal:new Vector3;this.vertexNormals=Array.isArray(normal)?normal:[];this.color=color&&color.isColor?color:new Color;this.vertexColors=Array.isArray(color)?color:[];this.materialIndex=materialIndex}clone(){return new this.constructor().copy(this)}copy(source){this.a=source.a;this.b=source.b;this.c=source.c;this.normal.copy(source.normal);this.color.copy(source.color);this.materialIndex=source.materialIndex;for(let i=0,il=source.vertexNormals.length;i0){for(let i=0;i0){this.normalsNeedUpdate=true}}computeFlatVertexNormals(){this.computeFaceNormals();for(let f=0,fl=this.faces.length;f0){this.normalsNeedUpdate=true}}computeMorphNormals(){for(let f=0,fl=this.faces.length;f=0;i--){const idx=faceIndicesToRemove[i];this.faces.splice(idx,1);for(let j=0,jl=this.faceVertexUvs.length;j0;const hasFaceVertexNormal=face.vertexNormals.length>0;const hasFaceColor=face.color.r!==1||face.color.g!==1||face.color.b!==1;const hasFaceVertexColor=face.vertexColors.length>0;let faceType=0;faceType=setBit(faceType,0,0);faceType=setBit(faceType,1,hasMaterial);faceType=setBit(faceType,2,hasFaceUv);faceType=setBit(faceType,3,hasFaceVertexUv);faceType=setBit(faceType,4,hasFaceNormal);faceType=setBit(faceType,5,hasFaceVertexNormal);faceType=setBit(faceType,6,hasFaceColor);faceType=setBit(faceType,7,hasFaceVertexColor);faces.push(faceType);faces.push(face.a,face.b,face.c);faces.push(face.materialIndex);if(hasFaceVertexUv){const faceVertexUvs=this.faceVertexUvs[0][i];faces.push(getUvIndex(faceVertexUvs[0]),getUvIndex(faceVertexUvs[1]),getUvIndex(faceVertexUvs[2]))}if(hasFaceNormal){faces.push(getNormalIndex(face.normal))}if(hasFaceVertexNormal){const vertexNormals=face.vertexNormals;faces.push(getNormalIndex(vertexNormals[0]),getNormalIndex(vertexNormals[1]),getNormalIndex(vertexNormals[2]))}if(hasFaceColor){faces.push(getColorIndex(face.color))}if(hasFaceVertexColor){const vertexColors=face.vertexColors;faces.push(getColorIndex(vertexColors[0]),getColorIndex(vertexColors[1]),getColorIndex(vertexColors[2]))}}function setBit(value,position,enabled){return enabled?value|1<0)data.data.colors=colors;if(uvs.length>0)data.data.uvs=[uvs];data.data.faces=faces;return data}clone(){return new Geometry().copy(this)}copy(source){this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingBox=null;this.boundingSphere=null;this.name=source.name;const vertices=source.vertices;for(let i=0,il=vertices.length;i0){const normals=new Float32Array(geometry.normals.length*3);buffergeometry.setAttribute("normal",copyVector3sArray(new BufferAttribute(normals,3),geometry.normals))}if(geometry.colors.length>0){const colors=new Float32Array(geometry.colors.length*3);buffergeometry.setAttribute("color",copyColorsArray(new BufferAttribute(colors,3),geometry.colors))}if(geometry.uvs.length>0){const uvs=new Float32Array(geometry.uvs.length*2);buffergeometry.setAttribute("uv",copyVector2sArray(new BufferAttribute(uvs,2),geometry.uvs))}if(geometry.uvs2.length>0){const uvs2=new Float32Array(geometry.uvs2.length*2);buffergeometry.setAttribute("uv2",copyVector2sArray(new BufferAttribute(uvs2,2),geometry.uvs2))}buffergeometry.groups=geometry.groups;for(const name in geometry.morphTargets){const array=[];const morphTargets=geometry.morphTargets[name];for(let i=0,l=morphTargets.length;i0){const skinIndices=new Float32BufferAttribute(geometry.skinIndices.length*4,4);buffergeometry.setAttribute("skinIndex",copyVector4sArray(skinIndices,geometry.skinIndices))}if(geometry.skinWeights.length>0){const skinWeights=new Float32BufferAttribute(geometry.skinWeights.length*4,4);buffergeometry.setAttribute("skinWeight",copyVector4sArray(skinWeights,geometry.skinWeights))}if(geometry.boundingSphere!==null){buffergeometry.boundingSphere=geometry.boundingSphere.clone()}if(geometry.boundingBox!==null){buffergeometry.boundingBox=geometry.boundingBox.clone()}return buffergeometry}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(matrix){console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().");return this.applyMatrix4(matrix)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(object){let buffergeometry=new BufferGeometry;const geometry=object.geometry;if(object.isPoints||object.isLine){const positions=new Float32BufferAttribute(geometry.vertices.length*3,3);const colors=new Float32BufferAttribute(geometry.colors.length*3,3);buffergeometry.setAttribute("position",copyVector3sArray(positions,geometry.vertices));buffergeometry.setAttribute("color",copyColorsArray(colors,geometry.colors));if(geometry.lineDistances&&geometry.lineDistances.length===geometry.vertices.length){const lineDistances=new Float32BufferAttribute(geometry.lineDistances.length,1);buffergeometry.setAttribute("lineDistance",lineDistances.copyArray(geometry.lineDistances))}if(geometry.boundingSphere!==null){buffergeometry.boundingSphere=geometry.boundingSphere.clone()}if(geometry.boundingBox!==null){buffergeometry.boundingBox=geometry.boundingBox.clone()}}else if(object.isMesh){buffergeometry=geometry.toBufferGeometry()}return buffergeometry}}Geometry.prototype.isGeometry=true;class DirectGeometry{constructor(){this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingBox=null;this.boundingSphere=null;this.verticesNeedUpdate=false;this.normalsNeedUpdate=false;this.colorsNeedUpdate=false;this.uvsNeedUpdate=false;this.groupsNeedUpdate=false}computeGroups(geometry){const groups=[];let group,i;let materialIndex=undefined;const faces=geometry.faces;for(i=0;i0;const hasFaceVertexUv2=faceVertexUvs[1]&&faceVertexUvs[1].length>0;const morphTargets=geometry.morphTargets;const morphTargetsLength=morphTargets.length;let morphTargetsPosition;if(morphTargetsLength>0){morphTargetsPosition=[];for(let i=0;i0){morphTargetsNormal=[];for(let i=0;i0&&faces.length===0){console.error("THREE.DirectGeometry: Faceless geometries are not supported.")}for(let i=0;i2){dstArray[j++]=attribute.getZ(i)}}return dstArray}if(attribute.array instanceof Float32Array){return attribute.array}return new Float32Array(attribute.array)}const _geometry=geometry.index?geometry.toNonIndexed():geometry;const tangents=MikkTSpace.generateTangents(getAttributeArray(_geometry.attributes.position),getAttributeArray(_geometry.attributes.normal),getAttributeArray(_geometry.attributes.uv));if(negateSign){for(let i=3;i=2){newAttribute.setY(i,attribute.getY(i))}if(itemSize>=3){newAttribute.setZ(i,attribute.getZ(i))}if(itemSize>=4){newAttribute.setW(i,attribute.getW(i))}}return newAttribute}function deinterleaveGeometry(geometry){const attributes=geometry.attributes;const morphTargets=geometry.morphTargets;const attrMap=new Map;for(const key in attributes){const attr=attributes[key];if(attr.isInterleavedBufferAttribute){if(!attrMap.has(attr)){attrMap.set(attr,deinterleaveAttribute(attr))}attributes[key]=attrMap.get(attr)}}for(const key in morphTargets){const attr=morphTargets[key];if(attr.isInterleavedBufferAttribute){if(!attrMap.has(attr)){attrMap.set(attr,deinterleaveAttribute(attr))}morphTargets[key]=attrMap.get(attr)}}}function estimateBytesUsed(geometry){let mem=0;for(const name in geometry.attributes){const attr=geometry.getAttribute(name);mem+=attr.count*attr.itemSize*attr.array.BYTES_PER_ELEMENT}const indices=geometry.getIndex();mem+=indices?indices.count*indices.itemSize*indices.array.BYTES_PER_ELEMENT:0;return mem}function mergeVertices(geometry,tolerance=1e-4){tolerance=Math.max(tolerance,Number.EPSILON);const hashToIndex={};const indices=geometry.getIndex();const positions=geometry.getAttribute("position");const vertexCount=indices?indices.count:positions.count;let nextIndex=0;const attributeNames=Object.keys(geometry.attributes);const tmpAttributes={};const tmpMorphAttributes={};const newIndices=[];const getters=["getX","getY","getZ","getW"];const setters=["setX","setY","setZ","setW"];for(let i=0,l=attributeNames.length;i{if(a.materialIndex!==b.materialIndex)return a.materialIndex-b.materialIndex;return a.start-b.start});if(geometry.getIndex()===null){const positionAttribute=geometry.getAttribute("position");const indices=[];for(let i=0;icreaseDot){tempNorm2.add(otherNorm)}}tempNorm2.normalize();normAttr.setXYZ(i3+n,tempNorm2.x,tempNorm2.y,tempNorm2.z)}}resultGeometry.setAttribute("normal",normAttr);return resultGeometry}function mergeBufferGeometries(geometries,useGroups=false){console.warn("THREE.BufferGeometryUtils: mergeBufferGeometries() has been renamed to mergeGeometries().");return mergeGeometries(geometries,useGroups)}function mergeBufferAttributes(attributes){console.warn("THREE.BufferGeometryUtils: mergeBufferAttributes() has been renamed to mergeAttributes().");return mergeAttributes(attributes)}var BufferGeometryUtils={computeMikkTSpaceTangents,deepCloneAttribute,deinterleaveAttribute,deinterleaveGeometry,mergeGeometries,mergeBufferGeometries,mergeAttributes,mergeBufferAttributes,interleaveAttributes,estimateBytesUsed,mergeVertices,toTrianglesDrawMode,computeMorphedAttributes,mergeGroups,toCreasedNormals};THREE.BufferGeometryUtils=BufferGeometryUtils})();(function(){class WorkerPool{constructor(pool=4){this.pool=pool;this.queue=[];this.workers=[];this.workersResolve=[];this.workerStatus=0}_initWorker(workerId){if(!this.workers[workerId]){const worker=this.workerCreator();worker.addEventListener("message",this._onMessage.bind(this,workerId));this.workers[workerId]=worker}}_getIdleWorker(){for(let i=0;i{const workerId=this._getIdleWorker();if(workerId!==-1){this._initWorker(workerId);this.workerStatus|=1<worker.terminate());this.workersResolve.length=0;this.workers.length=0;this.queue.length=0;this.workerStatus=0}}THREE.WorkerPool=WorkerPool})();(function(){const t=0,e=1,n=2,i=3,s=0,a=0,r=2,o=0,l=1,f=160,U=161,c=162,h=163,_=0,p=1,g=0,y=1,x=2,u=3,b=4,d=5,m=6,w=7,D=8,B=9,L=10,A=11,k=12,v=13,S=14,I=15,O=16,T=17,V=18,E=0,F=1,P=2,C=3,z=4,M=5,W=6,N=7,H=8,K=9,X=10,j=11,R=0,Y=1,q=2,G=13,J=14,Q=15,Z=128,$=64,tt=32,et=16,nt=0,it=1,st=2,at=3,rt=4,ot=5,lt=6,ft=7,Ut=8,ct=9,ht=10,_t=13,pt=14,gt=15,yt=16,xt=17,ut=20,bt=21,dt=22,mt=23,wt=24,Dt=27,Bt=28,Lt=29,At=30,kt=31,vt=34,St=35,It=36,Ot=37,Tt=38,Vt=41,Et=42,Ft=43,Pt=44,Ct=45,zt=48,Mt=49,Wt=50,Nt=58,Ht=59,Kt=62,Xt=63,jt=64,Rt=65,Yt=68,qt=69,Gt=70,Jt=71,Qt=74,Zt=75,$t=76,te=77,ee=78,ne=81,ie=82,se=83,ae=84,re=85,oe=88,le=89,fe=90,Ue=91,ce=92,he=95,_e=96,pe=97,ge=98,ye=99,xe=100,ue=101,be=102,de=103,me=104,we=105,De=106,Be=107,Le=108,Ae=109,ke=110,ve=111,Se=112,Ie=113,Oe=114,Te=115,Ve=116,Ee=117,Fe=118,Pe=119,Ce=120,ze=121,Me=122,We=123,Ne=124,He=125,Ke=126,Xe=127,je=128,Re=129,Ye=130,qe=131,Ge=132,Je=133,Qe=134,Ze=135,$e=136,tn=137,en=138,nn=139,sn=140,an=141,rn=142,on=143,ln=144,fn=145,Un=146,cn=147,hn=148,_n=149,pn=150,gn=151,yn=152,xn=153,un=154,bn=155,dn=156,mn=157,wn=158,Dn=159,Bn=160,Ln=161,An=162,kn=163,vn=164,Sn=165,In=166,On=167,Tn=168,Vn=169,En=170,Fn=171,Pn=172,Cn=173,zn=174,Mn=175,Wn=176,Nn=177,Hn=178,Kn=179,Xn=180,jn=181,Rn=182,Yn=183,qn=184,Gn=1000156007,Jn=1000156008,Qn=1000156009,Zn=1000156010,$n=1000156011,ti=1000156017,ei=1000156018,ni=1000156019,ii=1000156020,si=1000156021,ai=1000054e3,ri=1000054001,oi=1000054002,li=1000054003,fi=1000054004,Ui=1000054005,ci=1000054006,hi=1000054007,_i=1000066e3,pi=1000066001,gi=1000066002,yi=1000066003,xi=1000066004,ui=1000066005,bi=1000066006,di=1000066007,mi=1000066008,wi=1000066009,Di=1000066010,Bi=1000066011,Li=1000066012,Ai=1000066013,ki=100034e4,vi=1000340001;class Si{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Ii{constructor(t,e,n,i){this._dataView=new DataView(t.buffer,t.byteOffset+e,n),this._littleEndian=i,this._offset=0}_nextUint8(){const t=this._dataView.getUint8(this._offset);return this._offset+=1,t}_nextUint16(){const t=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,t}_nextUint32(){const t=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,t}_nextUint64(){const t=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,t}_nextInt32(){const t=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,t}_skip(t){return this._offset+=t,this}_scan(t,e=0){const n=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==e&&i0?c+a.byteLength:0;h%8&&(h+=8-h%8);const _=[],p=new DataView(new ArrayBuffer(3*t.levels.length*8));let g=(h||c+a.byteLength)+n.byteLength;for(let e=0;e0?h:0),!0),x.setBigUint64(60,BigInt(n.byteLength),!0),new Uint8Array(Fi([new Uint8Array(Ti).buffer,y,p.buffer,o,a,h>0?new ArrayBuffer(h-(c+a.byteLength)):new ArrayBuffer(0),n,..._]))}var KTXParse=THREE.KTXParse={};KTXParse.KHR_DF_CHANNEL_RGBSDA_ALPHA=Q,KTXParse.KHR_DF_CHANNEL_RGBSDA_BLUE=q,KTXParse.KHR_DF_CHANNEL_RGBSDA_DEPTH=J,KTXParse.KHR_DF_CHANNEL_RGBSDA_GREEN=Y,KTXParse.KHR_DF_CHANNEL_RGBSDA_RED=R,KTXParse.KHR_DF_CHANNEL_RGBSDA_STENCIL=G,KTXParse.KHR_DF_FLAG_ALPHA_PREMULTIPLIED=p,KTXParse.KHR_DF_FLAG_ALPHA_STRAIGHT=_,KTXParse.KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT=s,KTXParse.KHR_DF_MODEL_ASTC=c,KTXParse.KHR_DF_MODEL_ETC1=f,KTXParse.KHR_DF_MODEL_ETC1S=h,KTXParse.KHR_DF_MODEL_ETC2=U,KTXParse.KHR_DF_MODEL_RGBSDA=l,KTXParse.KHR_DF_MODEL_UNSPECIFIED=o,KTXParse.KHR_DF_PRIMARIES_ACES=W,KTXParse.KHR_DF_PRIMARIES_ACESCC=N,KTXParse.KHR_DF_PRIMARIES_ADOBERGB=j,KTXParse.KHR_DF_PRIMARIES_BT2020=z,KTXParse.KHR_DF_PRIMARIES_BT601_EBU=P,KTXParse.KHR_DF_PRIMARIES_BT601_SMPTE=C,KTXParse.KHR_DF_PRIMARIES_BT709=F,KTXParse.KHR_DF_PRIMARIES_CIEXYZ=M,KTXParse.KHR_DF_PRIMARIES_DISPLAYP3=X,KTXParse.KHR_DF_PRIMARIES_NTSC1953=H,KTXParse.KHR_DF_PRIMARIES_PAL525=K,KTXParse.KHR_DF_PRIMARIES_UNSPECIFIED=E,KTXParse.KHR_DF_SAMPLE_DATATYPE_EXPONENT=tt,KTXParse.KHR_DF_SAMPLE_DATATYPE_FLOAT=Z,KTXParse.KHR_DF_SAMPLE_DATATYPE_LINEAR=et,KTXParse.KHR_DF_SAMPLE_DATATYPE_SIGNED=$,KTXParse.KHR_DF_TRANSFER_ACESCC=O,KTXParse.KHR_DF_TRANSFER_ACESCCT=T,KTXParse.KHR_DF_TRANSFER_ADOBERGB=V,KTXParse.KHR_DF_TRANSFER_BT1886=w,KTXParse.KHR_DF_TRANSFER_DCIP3=k,KTXParse.KHR_DF_TRANSFER_HLG_EOTF=B,KTXParse.KHR_DF_TRANSFER_HLG_OETF=D,KTXParse.KHR_DF_TRANSFER_ITU=u,KTXParse.KHR_DF_TRANSFER_LINEAR=y,KTXParse.KHR_DF_TRANSFER_NTSC=b,KTXParse.KHR_DF_TRANSFER_PAL625_EOTF=S,KTXParse.KHR_DF_TRANSFER_PAL_OETF=v,KTXParse.KHR_DF_TRANSFER_PQ_EOTF=L,KTXParse.KHR_DF_TRANSFER_PQ_OETF=A,KTXParse.KHR_DF_TRANSFER_SLOG=d,KTXParse.KHR_DF_TRANSFER_SLOG2=m,KTXParse.KHR_DF_TRANSFER_SRGB=x,KTXParse.KHR_DF_TRANSFER_ST240=I,KTXParse.KHR_DF_TRANSFER_UNSPECIFIED=g,KTXParse.KHR_DF_VENDORID_KHRONOS=a,KTXParse.KHR_DF_VERSION=r,KTXParse.KHR_SUPERCOMPRESSION_BASISLZ=e,KTXParse.KHR_SUPERCOMPRESSION_NONE=t,KTXParse.KHR_SUPERCOMPRESSION_ZLIB=i,KTXParse.KHR_SUPERCOMPRESSION_ZSTD=n,KTXParse.KTX2Container=Si,KTXParse.VK_FORMAT_A1R5G5B5_UNORM_PACK16=Ut,KTXParse.VK_FORMAT_A2B10G10R10_SINT_PACK32=qt,KTXParse.VK_FORMAT_A2B10G10R10_SNORM_PACK32=Rt,KTXParse.VK_FORMAT_A2B10G10R10_UINT_PACK32=Yt,KTXParse.VK_FORMAT_A2B10G10R10_UNORM_PACK32=jt,KTXParse.VK_FORMAT_A2R10G10B10_SINT_PACK32=Xt,KTXParse.VK_FORMAT_A2R10G10B10_SNORM_PACK32=Ht,KTXParse.VK_FORMAT_A2R10G10B10_UINT_PACK32=Kt,KTXParse.VK_FORMAT_A2R10G10B10_UNORM_PACK32=Nt,KTXParse.VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT=vi,KTXParse.VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT=ki,KTXParse.VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT=Bi,KTXParse.VK_FORMAT_ASTC_10x10_SRGB_BLOCK=Xn,KTXParse.VK_FORMAT_ASTC_10x10_UNORM_BLOCK=Kn,KTXParse.VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT=mi,KTXParse.VK_FORMAT_ASTC_10x5_SRGB_BLOCK=zn,KTXParse.VK_FORMAT_ASTC_10x5_UNORM_BLOCK=Cn,KTXParse.VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT=wi,KTXParse.VK_FORMAT_ASTC_10x6_SRGB_BLOCK=Wn,KTXParse.VK_FORMAT_ASTC_10x6_UNORM_BLOCK=Mn,KTXParse.VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT=Di,KTXParse.VK_FORMAT_ASTC_10x8_SRGB_BLOCK=Hn,KTXParse.VK_FORMAT_ASTC_10x8_UNORM_BLOCK=Nn,KTXParse.VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT=Li,KTXParse.VK_FORMAT_ASTC_12x10_SRGB_BLOCK=Rn,KTXParse.VK_FORMAT_ASTC_12x10_UNORM_BLOCK=jn,KTXParse.VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT=Ai,KTXParse.VK_FORMAT_ASTC_12x12_SRGB_BLOCK=qn,KTXParse.VK_FORMAT_ASTC_12x12_UNORM_BLOCK=Yn,KTXParse.VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT=_i,KTXParse.VK_FORMAT_ASTC_4x4_SRGB_BLOCK=wn,KTXParse.VK_FORMAT_ASTC_4x4_UNORM_BLOCK=mn,KTXParse.VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT=pi,KTXParse.VK_FORMAT_ASTC_5x4_SRGB_BLOCK=Bn,KTXParse.VK_FORMAT_ASTC_5x4_UNORM_BLOCK=Dn,KTXParse.VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT=gi,KTXParse.VK_FORMAT_ASTC_5x5_SRGB_BLOCK=An,KTXParse.VK_FORMAT_ASTC_5x5_UNORM_BLOCK=Ln,KTXParse.VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT=yi,KTXParse.VK_FORMAT_ASTC_6x5_SRGB_BLOCK=vn,KTXParse.VK_FORMAT_ASTC_6x5_UNORM_BLOCK=kn,KTXParse.VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT=xi,KTXParse.VK_FORMAT_ASTC_6x6_SRGB_BLOCK=In,KTXParse.VK_FORMAT_ASTC_6x6_UNORM_BLOCK=Sn,KTXParse.VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT=ui,KTXParse.VK_FORMAT_ASTC_8x5_SRGB_BLOCK=Tn,KTXParse.VK_FORMAT_ASTC_8x5_UNORM_BLOCK=On,KTXParse.VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT=bi,KTXParse.VK_FORMAT_ASTC_8x6_SRGB_BLOCK=En,KTXParse.VK_FORMAT_ASTC_8x6_UNORM_BLOCK=Vn,KTXParse.VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT=di,KTXParse.VK_FORMAT_ASTC_8x8_SRGB_BLOCK=Pn,KTXParse.VK_FORMAT_ASTC_8x8_UNORM_BLOCK=Fn,KTXParse.VK_FORMAT_B10G11R11_UFLOAT_PACK32=Me,KTXParse.VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16=$n,KTXParse.VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16=si,KTXParse.VK_FORMAT_B4G4R4A4_UNORM_PACK16=at,KTXParse.VK_FORMAT_B5G5R5A1_UNORM_PACK16=ft,KTXParse.VK_FORMAT_B5G6R5_UNORM_PACK16=ot,KTXParse.VK_FORMAT_B8G8R8A8_SINT=Mt,KTXParse.VK_FORMAT_B8G8R8A8_SNORM=Ct,KTXParse.VK_FORMAT_B8G8R8A8_SRGB=Wt,KTXParse.VK_FORMAT_B8G8R8A8_UINT=zt,KTXParse.VK_FORMAT_B8G8R8A8_UNORM=Pt,KTXParse.VK_FORMAT_B8G8R8_SINT=St,KTXParse.VK_FORMAT_B8G8R8_SNORM=kt,KTXParse.VK_FORMAT_B8G8R8_SRGB=It,KTXParse.VK_FORMAT_B8G8R8_UINT=vt,KTXParse.VK_FORMAT_B8G8R8_UNORM=At,KTXParse.VK_FORMAT_BC1_RGBA_SRGB_BLOCK=Qe,KTXParse.VK_FORMAT_BC1_RGBA_UNORM_BLOCK=Je,KTXParse.VK_FORMAT_BC1_RGB_SRGB_BLOCK=Ge,KTXParse.VK_FORMAT_BC1_RGB_UNORM_BLOCK=qe,KTXParse.VK_FORMAT_BC2_SRGB_BLOCK=$e,KTXParse.VK_FORMAT_BC2_UNORM_BLOCK=Ze,KTXParse.VK_FORMAT_BC3_SRGB_BLOCK=en,KTXParse.VK_FORMAT_BC3_UNORM_BLOCK=tn,KTXParse.VK_FORMAT_BC4_SNORM_BLOCK=sn,KTXParse.VK_FORMAT_BC4_UNORM_BLOCK=nn,KTXParse.VK_FORMAT_BC5_SNORM_BLOCK=rn,KTXParse.VK_FORMAT_BC5_UNORM_BLOCK=an,KTXParse.VK_FORMAT_BC6H_SFLOAT_BLOCK=ln,KTXParse.VK_FORMAT_BC6H_UFLOAT_BLOCK=on,KTXParse.VK_FORMAT_BC7_SRGB_BLOCK=Un,KTXParse.VK_FORMAT_BC7_UNORM_BLOCK=fn,KTXParse.VK_FORMAT_D16_UNORM=Ne,KTXParse.VK_FORMAT_D16_UNORM_S8_UINT=je,KTXParse.VK_FORMAT_D24_UNORM_S8_UINT=Re,KTXParse.VK_FORMAT_D32_SFLOAT=Ke,KTXParse.VK_FORMAT_D32_SFLOAT_S8_UINT=Ye,KTXParse.VK_FORMAT_E5B9G9R9_UFLOAT_PACK32=We,KTXParse.VK_FORMAT_EAC_R11G11_SNORM_BLOCK=dn,KTXParse.VK_FORMAT_EAC_R11G11_UNORM_BLOCK=bn,KTXParse.VK_FORMAT_EAC_R11_SNORM_BLOCK=un,KTXParse.VK_FORMAT_EAC_R11_UNORM_BLOCK=xn,KTXParse.VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK=pn,KTXParse.VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK=_n,KTXParse.VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK=yn,KTXParse.VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK=gn,KTXParse.VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK=hn,KTXParse.VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK=cn,KTXParse.VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16=Zn,KTXParse.VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16=ii,KTXParse.VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG=fi,KTXParse.VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG=ai,KTXParse.VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG=Ui,KTXParse.VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG=ri,KTXParse.VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG=ci,KTXParse.VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG=oi,KTXParse.VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG=hi,KTXParse.VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG=li,KTXParse.VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16=Qn,KTXParse.VK_FORMAT_R10X6G10X6_UNORM_2PACK16=Jn,KTXParse.VK_FORMAT_R10X6_UNORM_PACK16=Gn,KTXParse.VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16=ni,KTXParse.VK_FORMAT_R12X4G12X4_UNORM_2PACK16=ei,KTXParse.VK_FORMAT_R12X4_UNORM_PACK16=ti,KTXParse.VK_FORMAT_R16G16B16A16_SFLOAT=pe,KTXParse.VK_FORMAT_R16G16B16A16_SINT=_e,KTXParse.VK_FORMAT_R16G16B16A16_SNORM=ce,KTXParse.VK_FORMAT_R16G16B16A16_UINT=he,KTXParse.VK_FORMAT_R16G16B16A16_UNORM=Ue,KTXParse.VK_FORMAT_R16G16B16_SFLOAT=fe,KTXParse.VK_FORMAT_R16G16B16_SINT=le,KTXParse.VK_FORMAT_R16G16B16_SNORM=re,KTXParse.VK_FORMAT_R16G16B16_UINT=oe,KTXParse.VK_FORMAT_R16G16B16_UNORM=ae,KTXParse.VK_FORMAT_R16G16_SFLOAT=se,KTXParse.VK_FORMAT_R16G16_SINT=ie,KTXParse.VK_FORMAT_R16G16_SNORM=ee,KTXParse.VK_FORMAT_R16G16_UINT=ne,KTXParse.VK_FORMAT_R16G16_UNORM=te,KTXParse.VK_FORMAT_R16_SFLOAT=$t,KTXParse.VK_FORMAT_R16_SINT=Zt,KTXParse.VK_FORMAT_R16_SNORM=Jt,KTXParse.VK_FORMAT_R16_UINT=Qt,KTXParse.VK_FORMAT_R16_UNORM=Gt,KTXParse.VK_FORMAT_R32G32B32A32_SFLOAT=Ae,KTXParse.VK_FORMAT_R32G32B32A32_SINT=Le,KTXParse.VK_FORMAT_R32G32B32A32_UINT=Be,KTXParse.VK_FORMAT_R32G32B32_SFLOAT=De,KTXParse.VK_FORMAT_R32G32B32_SINT=we,KTXParse.VK_FORMAT_R32G32B32_UINT=me,KTXParse.VK_FORMAT_R32G32_SFLOAT=de,KTXParse.VK_FORMAT_R32G32_SINT=be,KTXParse.VK_FORMAT_R32G32_UINT=ue,KTXParse.VK_FORMAT_R32_SFLOAT=xe,KTXParse.VK_FORMAT_R32_SINT=ye,KTXParse.VK_FORMAT_R32_UINT=ge,KTXParse.VK_FORMAT_R4G4B4A4_UNORM_PACK16=st,KTXParse.VK_FORMAT_R4G4_UNORM_PACK8=it,KTXParse.VK_FORMAT_R5G5B5A1_UNORM_PACK16=lt,KTXParse.VK_FORMAT_R5G6B5_UNORM_PACK16=rt,KTXParse.VK_FORMAT_R64G64B64A64_SFLOAT=ze,KTXParse.VK_FORMAT_R64G64B64A64_SINT=Ce,KTXParse.VK_FORMAT_R64G64B64A64_UINT=Pe,KTXParse.VK_FORMAT_R64G64B64_SFLOAT=Fe,KTXParse.VK_FORMAT_R64G64B64_SINT=Ee,KTXParse.VK_FORMAT_R64G64B64_UINT=Ve,KTXParse.VK_FORMAT_R64G64_SFLOAT=Te,KTXParse.VK_FORMAT_R64G64_SINT=Oe,KTXParse.VK_FORMAT_R64G64_UINT=Ie,KTXParse.VK_FORMAT_R64_SFLOAT=Se,KTXParse.VK_FORMAT_R64_SINT=ve,KTXParse.VK_FORMAT_R64_UINT=ke,KTXParse.VK_FORMAT_R8G8B8A8_SINT=Et,KTXParse.VK_FORMAT_R8G8B8A8_SNORM=Tt,KTXParse.VK_FORMAT_R8G8B8A8_SRGB=Ft,KTXParse.VK_FORMAT_R8G8B8A8_UINT=Vt,KTXParse.VK_FORMAT_R8G8B8A8_UNORM=Ot,KTXParse.VK_FORMAT_R8G8B8_SINT=Bt,KTXParse.VK_FORMAT_R8G8B8_SNORM=wt,KTXParse.VK_FORMAT_R8G8B8_SRGB=Lt,KTXParse.VK_FORMAT_R8G8B8_UINT=Dt,KTXParse.VK_FORMAT_R8G8B8_UNORM=mt,KTXParse.VK_FORMAT_R8G8_SINT=bt,KTXParse.VK_FORMAT_R8G8_SNORM=xt,KTXParse.VK_FORMAT_R8G8_SRGB=dt,KTXParse.VK_FORMAT_R8G8_UINT=ut,KTXParse.VK_FORMAT_R8G8_UNORM=yt,KTXParse.VK_FORMAT_R8_SINT=pt,KTXParse.VK_FORMAT_R8_SNORM=ht,KTXParse.VK_FORMAT_R8_SRGB=gt,KTXParse.VK_FORMAT_R8_UINT=_t,KTXParse.VK_FORMAT_R8_UNORM=ct,KTXParse.VK_FORMAT_S8_UINT=Xe,KTXParse.VK_FORMAT_UNDEFINED=nt,KTXParse.VK_FORMAT_X8_D24_UNORM_PACK32=He,KTXParse.read=Pi,KTXParse.write=Mi})();(function(){var CompressedTexture=THREE.CompressedTexture,Data3DTexture=THREE.Data3DTexture,DataTexture=THREE.DataTexture,FileLoader=THREE.FileLoader,FloatType=THREE.FloatType,HalfFloatType=THREE.HalfFloatType,LinearEncoding=THREE.LinearEncoding,LinearFilter=THREE.LinearFilter,LinearMipmapLinearFilter=THREE.LinearMipmapLinearFilter,Loader=THREE.Loader,RedFormat=THREE.RedFormat,RGB_ETC1_Format=THREE.RGB_ETC1_Format,RGB_ETC2_Format=THREE.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format=THREE.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format=THREE.RGB_S3TC_DXT1_Format,RGBA_ASTC_4x4_Format=THREE.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format=THREE.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format=THREE.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format=THREE.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format=THREE.RGBA_S3TC_DXT5_Format,RGBAFormat=THREE.RGBAFormat,RGFormat=THREE.RGFormat,sRGBEncoding=THREE.sRGBEncoding,UnsignedByteType=THREE.UnsignedByteType,WorkerPool=THREE.WorkerPool;var read=THREE.KTXParse.read,KHR_DF_FLAG_ALPHA_PREMULTIPLIED=THREE.KTXParse.KHR_DF_FLAG_ALPHA_PREMULTIPLIED,KHR_DF_TRANSFER_SRGB=THREE.KTXParse.KHR_DF_TRANSFER_SRGB,KHR_SUPERCOMPRESSION_NONE=THREE.KTXParse.KHR_SUPERCOMPRESSION_NONE,KHR_SUPERCOMPRESSION_ZSTD=THREE.KTXParse.KHR_SUPERCOMPRESSION_ZSTD,VK_FORMAT_UNDEFINED=THREE.KTXParse.VK_FORMAT_UNDEFINED,VK_FORMAT_R16_SFLOAT=THREE.KTXParse.VK_FORMAT_R16_SFLOAT,VK_FORMAT_R16G16_SFLOAT=THREE.KTXParse.VK_FORMAT_R16G16_SFLOAT,VK_FORMAT_R16G16B16A16_SFLOAT=THREE.KTXParse.VK_FORMAT_R16G16B16A16_SFLOAT,VK_FORMAT_R32_SFLOAT=THREE.KTXParse.VK_FORMAT_R32_SFLOAT,VK_FORMAT_R32G32_SFLOAT=THREE.KTXParse.VK_FORMAT_R32G32_SFLOAT,VK_FORMAT_R32G32B32A32_SFLOAT=THREE.KTXParse.VK_FORMAT_R32G32B32A32_SFLOAT,VK_FORMAT_R8_SRGB=THREE.KTXParse.VK_FORMAT_R8_SRGB,VK_FORMAT_R8_UNORM=THREE.KTXParse.VK_FORMAT_R8_UNORM,VK_FORMAT_R8G8_SRGB=THREE.KTXParse.VK_FORMAT_R8G8_SRGB,VK_FORMAT_R8G8_UNORM=THREE.KTXParse.VK_FORMAT_R8G8_UNORM,VK_FORMAT_R8G8B8A8_SRGB=THREE.KTXParse.VK_FORMAT_R8G8B8A8_SRGB,VK_FORMAT_R8G8B8A8_UNORM=THREE.KTXParse.VK_FORMAT_R8G8B8A8_UNORM;var ZSTDDecoder=THREE.ZSTDDecoder;const _taskCache=new WeakMap;let _activeLoaders=0;let _zstd;class KTX2Loader extends Loader{constructor(manager){super(manager);this.transcoderPath="";this.transcoderBinary=null;this.transcoderPending=null;this.workerPool=new WorkerPool;this.workerSourceURL="";this.workerConfig=null;if(typeof MSC_TRANSCODER!=="undefined"){console.warn("THREE.KTX2Loader: Please update to latest \"basis_transcoder\"."+" \"msc_basis_transcoder\" is no longer supported in three.js r125+.")}}setTranscoderPath(path){this.transcoderPath=path;return this}setWorkerLimit(num){this.workerPool.setWorkerLimit(num);return this}detectSupport(renderer){this.workerConfig={astcSupported:renderer.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:renderer.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:renderer.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:renderer.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:renderer.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:renderer.extensions.has("WEBGL_compressed_texture_pvrtc")||renderer.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")};if(renderer.capabilities.isWebGL2){this.workerConfig.etc1Supported=false}return this}init(){if(!this.transcoderPending){const jsLoader=new FileLoader(this.manager);jsLoader.setPath(this.transcoderPath);jsLoader.setWithCredentials(this.withCredentials);const jsContent=jsLoader.loadAsync("basis_transcoder.js");const binaryLoader=new FileLoader(this.manager);binaryLoader.setPath(this.transcoderPath);binaryLoader.setResponseType("arraybuffer");binaryLoader.setWithCredentials(this.withCredentials);const binaryContent=binaryLoader.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([jsContent,binaryContent]).then(([jsContent,binaryContent])=>{const fn=KTX2Loader.BasisWorker.toString();const body=["/* constants */","let _EngineFormat = "+JSON.stringify(KTX2Loader.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(KTX2Loader.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(KTX2Loader.BasisFormat),"/* basis_transcoder.js */",jsContent,"/* worker */",fn.substring(fn.indexOf("{")+1,fn.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([body]));this.transcoderBinary=binaryContent;this.workerPool.setWorkerCreator(()=>{const worker=new Worker(this.workerSourceURL);const transcoderBinary=this.transcoderBinary.slice(0);worker.postMessage({type:"init",config:this.workerConfig,transcoderBinary},[transcoderBinary]);return worker})});if(_activeLoaders>0){console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues."+" Use a single KTX2Loader instance, or call .dispose() on old instances.")}_activeLoaders++}return this.transcoderPending}load(url,onLoad,onProgress,onError){if(this.workerConfig===null){throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.")}const loader=new FileLoader(this.manager);loader.setResponseType("arraybuffer");loader.setWithCredentials(this.withCredentials);loader.load(url,buffer=>{if(_taskCache.has(buffer)){const cachedTask=_taskCache.get(buffer);return cachedTask.promise.then(onLoad).catch(onError)}this._createTexture(buffer).then(texture=>onLoad?onLoad(texture):null).catch(onError)},onProgress,onError)}_createTextureFrom(transcodeResult){const{mipmaps,width,height,format,type,error,dfdTransferFn,dfdFlags}=transcodeResult;if(type==="error")return Promise.reject(error);const texture=new CompressedTexture(mipmaps,width,height,format,UnsignedByteType);texture.minFilter=mipmaps.length===1?LinearFilter:LinearMipmapLinearFilter;texture.magFilter=LinearFilter;texture.generateMipmaps=false;texture.needsUpdate=true;texture.encoding=dfdTransferFn===KHR_DF_TRANSFER_SRGB?sRGBEncoding:LinearEncoding;texture.premultiplyAlpha=!!(dfdFlags&KHR_DF_FLAG_ALPHA_PREMULTIPLIED);return texture}_createTexture(buffer,config={}){const container=read(new Uint8Array(buffer));if(container.vkFormat!==VK_FORMAT_UNDEFINED){return createDataTexture(container)}const taskConfig=config;const texturePending=this.init().then(()=>{return this.workerPool.postMessage({type:"transcode",buffer,taskConfig:taskConfig},[buffer])}).then(e=>this._createTextureFrom(e.data));_taskCache.set(buffer,{promise:texturePending});return texturePending}dispose(){this.workerPool.dispose();if(this.workerSourceURL)URL.revokeObjectURL(this.workerSourceURL);_activeLoaders--;return this}}KTX2Loader.BasisFormat={ETC1S:0,UASTC_4x4:1};KTX2Loader.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16};KTX2Loader.EngineFormat={RGBAFormat:RGBAFormat,RGBA_ASTC_4x4_Format:RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:RGB_ETC1_Format,RGB_ETC2_Format:RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:RGB_S3TC_DXT1_Format};KTX2Loader.BasisWorker=function(){let config;let transcoderPending;let BasisModule;const EngineFormat=_EngineFormat;const TranscoderFormat=_TranscoderFormat;const BasisFormat=_BasisFormat;self.addEventListener("message",function(e){const message=e.data;switch(message.type){case"init":config=message.config;init(message.transcoderBinary);break;case"transcode":transcoderPending.then(()=>{try{const{width,height,hasAlpha,mipmaps,format,dfdTransferFn,dfdFlags}=transcode(message.buffer);const buffers=[];for(let i=0;i{BasisModule={wasmBinary,onRuntimeInitialized:resolve};BASIS(BasisModule)}).then(()=>{BasisModule.initializeBasis();if(BasisModule.KTX2File===undefined){console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")}})}function transcode(buffer){const ktx2File=new BasisModule.KTX2File(new Uint8Array(buffer));function cleanup(){ktx2File.close();ktx2File.delete()}if(!ktx2File.isValid()){cleanup();throw new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file")}const basisFormat=ktx2File.isUASTC()?BasisFormat.UASTC_4x4:BasisFormat.ETC1S;const width=ktx2File.getWidth();const height=ktx2File.getHeight();const levels=ktx2File.getLevels();const hasAlpha=ktx2File.getHasAlpha();const dfdTransferFn=ktx2File.getDFDTransferFunc();const dfdFlags=ktx2File.getDFDFlags();const{transcoderFormat,engineFormat}=getTranscoderFormat(basisFormat,width,height,hasAlpha);if(!width||!height||!levels){cleanup();throw new Error("THREE.KTX2Loader:\tInvalid texture")}if(!ktx2File.startTranscoding()){cleanup();throw new Error("THREE.KTX2Loader: .startTranscoding failed")}const mipmaps=[];for(let mip=0;mip{const zstd=new ZSTDDecoder;await zstd.init();resolve(zstd)})}levelData=(await _zstd).decode(level.levelData,level.uncompressedByteLength)}else{throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.")}if(TYPE_MAP[vkFormat]===FloatType){view=new Float32Array(levelData.buffer,levelData.byteOffset,levelData.byteLength/Float32Array.BYTES_PER_ELEMENT)}else if(TYPE_MAP[vkFormat]===HalfFloatType){view=new Uint16Array(levelData.buffer,levelData.byteOffset,levelData.byteLength/Uint16Array.BYTES_PER_ELEMENT)}else{view=levelData}const texture=pixelDepth===0?new DataTexture(view,pixelWidth,pixelHeight):new Data3DTexture(view,pixelWidth,pixelHeight,pixelDepth);texture.type=TYPE_MAP[vkFormat];texture.format=FORMAT_MAP[vkFormat];texture.encoding=ENCODING_MAP[vkFormat]||LinearEncoding;texture.needsUpdate=true;return Promise.resolve(texture)}THREE.KTX2Loader=KTX2Loader})();(function(){let A,I,B;const g={env:{emscripten_notify_memory_growth:function(A){B=new Uint8Array(I.exports.memory.buffer)}}};class Q{init(){return A||(A="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+C).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,g)).then(this._init):WebAssembly.instantiate(Buffer.from(C,"base64"),g).then(this._init),A)}_init(A){I=A.instance,g.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!I)throw new Error("ZSTDDecoder: Await .init() before decoding.");const Q=A.byteLength,C=I.exports.malloc(Q);B.set(A,C),g=g||Number(I.exports.ZSTD_findDecompressedSize(C,Q));const E=I.exports.malloc(g),i=I.exports.ZSTD_decompress(E,g,C,Q),D=B.slice(E,E+i);return I.exports.free(C),I.exports.free(E),D}}const C="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ";THREE.ZSTDDecoder=Q})();(function(){var BufferAttribute=THREE.BufferAttribute,BufferGeometry=THREE.BufferGeometry,Color=THREE.Color,FileLoader=THREE.FileLoader,Loader=THREE.Loader,LinearSRGBColorSpace=THREE.LinearSRGBColorSpace,SRGBColorSpace=THREE.SRGBColorSpace;const _taskCache=new WeakMap;class DRACOLoader extends Loader{constructor(manager){super(manager);this.decoderPath="";this.decoderConfig={};this.decoderBinary=null;this.decoderPending=null;this.workerLimit=4;this.workerPool=[];this.workerNextTaskID=1;this.workerSourceURL="";this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"};this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(path){this.decoderPath=path;return this}setDecoderConfig(config){this.decoderConfig=config;return this}setWorkerLimit(workerLimit){this.workerLimit=workerLimit;return this}load(url,onLoad,onProgress,onError){const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setResponseType("arraybuffer");loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,buffer=>{this.parse(buffer,onLoad,onError)},onProgress,onError)}parse(buffer,onLoad,onError=()=>{}){this.decodeDracoFile(buffer,onLoad,null,null,SRGBColorSpace).catch(onError)}decodeDracoFile(buffer,callback,attributeIDs,attributeTypes,vertexColorSpace=LinearSRGBColorSpace,onError=()=>{}){const taskConfig={attributeIDs:attributeIDs||this.defaultAttributeIDs,attributeTypes:attributeTypes||this.defaultAttributeTypes,useUniqueIDs:!!attributeIDs,vertexColorSpace:vertexColorSpace};return this.decodeGeometry(buffer,taskConfig).then(callback).catch(onError)}decodeGeometry(buffer,taskConfig){const taskKey=JSON.stringify(taskConfig);if(_taskCache.has(buffer)){const cachedTask=_taskCache.get(buffer);if(cachedTask.key===taskKey){return cachedTask.promise}else if(buffer.byteLength===0){throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different "+"settings. Buffer has already been transferred.")}}let worker;const taskID=this.workerNextTaskID++;const taskCost=buffer.byteLength;const geometryPending=this._getWorker(taskID,taskCost).then(_worker=>{worker=_worker;return new Promise((resolve,reject)=>{worker._callbacks[taskID]={resolve,reject};worker.postMessage({type:"decode",id:taskID,taskConfig,buffer},[buffer])})}).then(message=>this._createGeometry(message.geometry));geometryPending.catch(()=>true).then(()=>{if(worker&&taskID){this._releaseTask(worker,taskID)}});_taskCache.set(buffer,{key:taskKey,promise:geometryPending});return geometryPending}_createGeometry(geometryData){const geometry=new BufferGeometry;if(geometryData.index){geometry.setIndex(new BufferAttribute(geometryData.index.array,1))}for(let i=0;i{loader.load(url,resolve,undefined,reject)})}preload(){this._initDecoder();return this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const useJS=typeof WebAssembly!=="object"||this.decoderConfig.type==="js";const librariesPending=[];if(useJS){librariesPending.push(this._loadLibrary("draco_decoder.js","text"))}else{librariesPending.push(this._loadLibrary("draco_wasm_wrapper.js","text"));librariesPending.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))}this.decoderPending=Promise.all(librariesPending).then(libraries=>{const jsContent=libraries[0];if(!useJS){this.decoderConfig.wasmBinary=libraries[1]}const fn=DRACOWorker.toString();const body=["/* draco decoder */",jsContent,"","/* worker */",fn.substring(fn.indexOf("{")+1,fn.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([body]))});return this.decoderPending}_getWorker(taskID,taskCost){return this._initDecoder().then(()=>{if(this.workerPool.lengthb._taskLoad?-1:1})}const worker=this.workerPool[this.workerPool.length-1];worker._taskCosts[taskID]=taskCost;worker._taskLoad+=taskCost;return worker})}_releaseTask(worker,taskID){worker._taskLoad-=worker._taskCosts[taskID];delete worker._callbacks[taskID];delete worker._taskCosts[taskID]}debug(){console.log("Task load: ",this.workerPool.map(worker=>worker._taskLoad))}dispose(){for(let i=0;i{const draco=module.draco;const decoder=new draco.Decoder;try{const geometry=decodeGeometry(draco,decoder,new Int8Array(buffer),taskConfig);const buffers=geometry.attributes.map(attr=>attr.array.buffer);if(geometry.index)buffers.push(geometry.index.array.buffer);self.postMessage({type:"decode",id:message.id,geometry},buffers)}catch(error){console.error(error);self.postMessage({type:"error",id:message.id,error:error.message})}finally{draco.destroy(decoder)}});break;}};function decodeGeometry(draco,decoder,array,taskConfig){const attributeIDs=taskConfig.attributeIDs;const attributeTypes=taskConfig.attributeTypes;let dracoGeometry;let decodingStatus;const geometryType=decoder.GetEncodedGeometryType(array);if(geometryType===draco.TRIANGULAR_MESH){dracoGeometry=new draco.Mesh;decodingStatus=decoder.DecodeArrayToMesh(array,array.byteLength,dracoGeometry)}else if(geometryType===draco.POINT_CLOUD){dracoGeometry=new draco.PointCloud;decodingStatus=decoder.DecodeArrayToPointCloud(array,array.byteLength,dracoGeometry)}else{throw new Error("THREE.DRACOLoader: Unexpected geometry type.")}if(!decodingStatus.ok()||dracoGeometry.ptr===0){throw new Error("THREE.DRACOLoader: Decoding failed: "+decodingStatus.error_msg())}const geometry={index:null,attributes:[]};for(const attributeName in attributeIDs){const attributeType=self[attributeTypes[attributeName]];let attribute;let attributeID;if(taskConfig.useUniqueIDs){attributeID=attributeIDs[attributeName];attribute=decoder.GetAttributeByUniqueId(dracoGeometry,attributeID)}else{attributeID=decoder.GetAttributeId(dracoGeometry,draco[attributeIDs[attributeName]]);if(attributeID===-1)continue;attribute=decoder.GetAttribute(dracoGeometry,attributeID)}const attributeResult=decodeAttribute(draco,decoder,dracoGeometry,attributeName,attributeType,attribute);if(attributeName==="color"){attributeResult.vertexColorSpace=taskConfig.vertexColorSpace}geometry.attributes.push(attributeResult)}if(geometryType===draco.TRIANGULAR_MESH){geometry.index=decodeIndex(draco,decoder,dracoGeometry)}draco.destroy(dracoGeometry);return geometry}function decodeIndex(draco,decoder,dracoGeometry){const numFaces=dracoGeometry.num_faces();const numIndices=numFaces*3;const byteLength=numIndices*4;const ptr=draco._malloc(byteLength);decoder.GetTrianglesUInt32Array(dracoGeometry,byteLength,ptr);const index=new Uint32Array(draco.HEAPF32.buffer,ptr,numIndices).slice();draco._free(ptr);return{array:index,itemSize:1}}function decodeAttribute(draco,decoder,dracoGeometry,attributeName,attributeType,attribute){const numComponents=attribute.num_components();const numPoints=dracoGeometry.num_points();const numValues=numPoints*numComponents;const byteLength=numValues*attributeType.BYTES_PER_ELEMENT;const dataType=getDracoDataType(draco,attributeType);const ptr=draco._malloc(byteLength);decoder.GetAttributeDataArrayForAllPoints(dracoGeometry,attribute,dataType,byteLength,ptr);const array=new attributeType(draco.HEAPF32.buffer,ptr,numValues).slice();draco._free(ptr);return{name:attributeName,array:array,itemSize:numComponents}}function getDracoDataType(draco,attributeType){switch(attributeType){case Float32Array:return draco.DT_FLOAT32;case Int8Array:return draco.DT_INT8;case Int16Array:return draco.DT_INT16;case Int32Array:return draco.DT_INT32;case Uint8Array:return draco.DT_UINT8;case Uint16Array:return draco.DT_UINT16;case Uint32Array:return draco.DT_UINT32;}}}THREE.DRACOLoader=DRACOLoader})();(function(e){var modifiedJSON={};modifiedJSON.parse=function(data){json=JSON.parse(data);json.nodes&&json.nodes.forEach((node,index)=>{(node.extras||(node.extras={})).id=index.toString()});return json};e(modifiedJSON)})(function(JSON){(function(){var AnimationClip=THREE.AnimationClip,Bone=THREE.Bone,Box3=THREE.Box3,BufferAttribute=THREE.BufferAttribute,BufferGeometry=THREE.BufferGeometry,ClampToEdgeWrapping=THREE.ClampToEdgeWrapping,Color=THREE.Color,ColorManagement=THREE.ColorManagement,DirectionalLight=THREE.DirectionalLight,DoubleSide=THREE.DoubleSide,FileLoader=THREE.FileLoader,FrontSide=THREE.FrontSide,Group=THREE.Group,ImageBitmapLoader=THREE.ImageBitmapLoader,InstancedMesh=THREE.InstancedMesh,InterleavedBuffer=THREE.InterleavedBuffer,InterleavedBufferAttribute=THREE.InterleavedBufferAttribute,Interpolant=THREE.Interpolant,InterpolateDiscrete=THREE.InterpolateDiscrete,InterpolateLinear=THREE.InterpolateLinear,Line=THREE.Line,LineBasicMaterial=THREE.LineBasicMaterial,LineLoop=THREE.LineLoop,LineSegments=THREE.LineSegments,LinearFilter=THREE.LinearFilter,LinearMipmapLinearFilter=THREE.LinearMipmapLinearFilter,LinearMipmapNearestFilter=THREE.LinearMipmapNearestFilter,LinearSRGBColorSpace=THREE.LinearSRGBColorSpace,Loader=THREE.Loader,LoaderUtils=THREE.LoaderUtils,Material=THREE.Material,MathUtils=THREE.MathUtils,Matrix4=THREE.Matrix4,Mesh=THREE.Mesh,MeshBasicMaterial=THREE.MeshBasicMaterial,MeshPhysicalMaterial=THREE.MeshPhysicalMaterial,MeshStandardMaterial=THREE.MeshStandardMaterial,MirroredRepeatWrapping=THREE.MirroredRepeatWrapping,NearestFilter=THREE.NearestFilter,NearestMipmapLinearFilter=THREE.NearestMipmapLinearFilter,NearestMipmapNearestFilter=THREE.NearestMipmapNearestFilter,NumberKeyframeTrack=THREE.NumberKeyframeTrack,Object3D=THREE.Object3D,OrthographicCamera=THREE.OrthographicCamera,PerspectiveCamera=THREE.PerspectiveCamera,PointLight=THREE.PointLight,Points=THREE.Points,PointsMaterial=THREE.PointsMaterial,PropertyBinding=THREE.PropertyBinding,Quaternion=THREE.Quaternion,QuaternionKeyframeTrack=THREE.QuaternionKeyframeTrack,RepeatWrapping=THREE.RepeatWrapping,Skeleton=THREE.Skeleton,SkinnedMesh=THREE.SkinnedMesh,Sphere=THREE.Sphere,SpotLight=THREE.SpotLight,Texture=THREE.Texture,TextureLoader=THREE.TextureLoader,TriangleFanDrawMode=THREE.TriangleFanDrawMode,TriangleStripDrawMode=THREE.TriangleStripDrawMode,Vector2=THREE.Vector2,Vector3=THREE.Vector3,VectorKeyframeTrack=THREE.VectorKeyframeTrack,SRGBColorSpace=THREE.SRGBColorSpace,InstancedBufferAttribute=THREE.InstancedBufferAttribute;var toTrianglesDrawMode=THREE.BufferGeometryUtils.toTrianglesDrawMode;class GLTFLoader extends Loader{constructor(manager){super(manager);this.dracoLoader=null;this.ktx2Loader=null;this.meshoptDecoder=null;this.pluginCallbacks=[];this.register(function(parser){return new GLTFMaterialsClearcoatExtension(parser)});this.register(function(parser){return new GLTFMaterialsDispersionExtension(parser)});this.register(function(parser){return new GLTFTextureBasisUExtension(parser)});this.register(function(parser){return new GLTFTextureWebPExtension(parser)});this.register(function(parser){return new GLTFTextureAVIFExtension(parser)});this.register(function(parser){return new GLTFMaterialsSheenExtension(parser)});this.register(function(parser){return new GLTFMaterialsTransmissionExtension(parser)});this.register(function(parser){return new GLTFMaterialsVolumeExtension(parser)});this.register(function(parser){return new GLTFMaterialsIorExtension(parser)});this.register(function(parser){return new GLTFMaterialsEmissiveStrengthExtension(parser)});this.register(function(parser){return new GLTFMaterialsSpecularExtension(parser)});this.register(function(parser){return new GLTFMaterialsIridescenceExtension(parser)});this.register(function(parser){return new GLTFMaterialsAnisotropyExtension(parser)});this.register(function(parser){return new GLTFMaterialsBumpExtension(parser)});this.register(function(parser){return new GLTFLightsExtension(parser)});this.register(function(parser){return new GLTFMeshoptCompression(parser)});this.register(function(parser){return new GLTFMeshGpuInstancing(parser)})}load(url,onLoad,onProgress,onError){const scope=this;let resourcePath;if(this.resourcePath!==""){resourcePath=this.resourcePath}else if(this.path!==""){const relativeUrl=LoaderUtils.extractUrlBase(url);resourcePath=LoaderUtils.resolveURL(relativeUrl,this.path)}else{resourcePath=LoaderUtils.extractUrlBase(url)}this.manager.itemStart(url);const _onError=function(e){if(onError){onError(e)}else{console.error(e)}scope.manager.itemError(url);scope.manager.itemEnd(url)};const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setResponseType("arraybuffer");loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,function(data){try{scope.parse(data,resourcePath,function(gltf){onLoad(gltf);scope.manager.itemEnd(url)},_onError)}catch(e){_onError(e)}},onProgress,_onError)}setDRACOLoader(dracoLoader){this.dracoLoader=dracoLoader;return this}setDDSLoader(){throw new Error("THREE.GLTFLoader: \"MSFT_texture_dds\" no longer supported. Please update to \"KHR_texture_basisu\".")}setKTX2Loader(ktx2Loader){this.ktx2Loader=ktx2Loader;return this}setMeshoptDecoder(meshoptDecoder){this.meshoptDecoder=meshoptDecoder;return this}register(callback){if(this.pluginCallbacks.indexOf(callback)===-1){this.pluginCallbacks.push(callback)}return this}unregister(callback){if(this.pluginCallbacks.indexOf(callback)!==-1){this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(callback),1)}return this}parse(data,path,onLoad,onError){let json;const extensions={};const plugins={};const textDecoder=new TextDecoder;if(typeof data==="string"){json=JSON.parse(data)}else if(data instanceof ArrayBuffer){const magic=textDecoder.decode(new Uint8Array(data,0,4));if(magic===BINARY_EXTENSION_HEADER_MAGIC){try{extensions[EXTENSIONS.KHR_BINARY_GLTF]=new GLTFBinaryExtension(data)}catch(error){if(onError)onError(error);return}json=JSON.parse(extensions[EXTENSIONS.KHR_BINARY_GLTF].content)}else{json=JSON.parse(textDecoder.decode(data))}}else{json=data}if(json.asset===undefined||json.asset.version[0]<2){if(onError)onError(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const parser=new GLTFParser(json,{path:path||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});parser.fileLoader.setRequestHeader(this.requestHeader);for(let i=0;i=0&&plugins[extensionName]===undefined){console.warn("THREE.GLTFLoader: Unknown extension \""+extensionName+"\".")}}}}parser.setExtensions(extensions);parser.setPlugins(plugins);parser.parse(onLoad,onError)}parseAsync(data,path){const scope=this;return new Promise(function(resolve,reject){scope.parse(data,path,resolve,reject)})}}function GLTFRegistry(){let objects={};return{get:function(key){return objects[key]},add:function(key,object){objects[key]=object},remove:function(key){delete objects[key]},removeAll:function(){objects={}}}}const EXTENSIONS={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_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class GLTFLightsExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_LIGHTS_PUNCTUAL;this.cache={refs:{},uses:{}}}_markDefs(){const parser=this.parser;const nodeDefs=this.parser.json.nodes||[];for(let nodeIndex=0,nodeLength=nodeDefs.length;nodeIndex=0){throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures")}else{return null}}return parser.loadTextureImage(textureIndex,extension.source,loader)}}class GLTFTextureWebPExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.EXT_TEXTURE_WEBP;this.isSupported=null}loadTexture(textureIndex){const name=this.name;const parser=this.parser;const json=parser.json;const textureDef=json.textures[textureIndex];if(!textureDef.extensions||!textureDef.extensions[name]){return null}const extension=textureDef.extensions[name];const source=json.images[extension.source];let loader=parser.textureLoader;if(source.uri){const handler=parser.options.manager.getHandler(source.uri);if(handler!==null)loader=handler}return this.detectSupport().then(function(isSupported){if(isSupported)return parser.loadTextureImage(textureIndex,extension.source,loader);if(json.extensionsRequired&&json.extensionsRequired.indexOf(name)>=0){throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.")}return parser.loadTexture(textureIndex)})}detectSupport(){if(!this.isSupported){this.isSupported=new Promise(function(resolve){const image=new Image;image.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA";image.onload=image.onerror=function(){resolve(image.height===1)}})}return this.isSupported}}class GLTFTextureAVIFExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.EXT_TEXTURE_AVIF;this.isSupported=null}loadTexture(textureIndex){const name=this.name;const parser=this.parser;const json=parser.json;const textureDef=json.textures[textureIndex];if(!textureDef.extensions||!textureDef.extensions[name]){return null}const extension=textureDef.extensions[name];const source=json.images[extension.source];let loader=parser.textureLoader;if(source.uri){const handler=parser.options.manager.getHandler(source.uri);if(handler!==null)loader=handler}return this.detectSupport().then(function(isSupported){if(isSupported)return parser.loadTextureImage(textureIndex,extension.source,loader);if(json.extensionsRequired&&json.extensionsRequired.indexOf(name)>=0){throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.")}return parser.loadTexture(textureIndex)})}detectSupport(){if(!this.isSupported){this.isSupported=new Promise(function(resolve){const image=new Image;image.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=";image.onload=image.onerror=function(){resolve(image.height===1)}})}return this.isSupported}}class GLTFMeshoptCompression{constructor(parser){this.name=EXTENSIONS.EXT_MESHOPT_COMPRESSION;this.parser=parser}loadBufferView(index){const json=this.parser.json;const bufferView=json.bufferViews[index];if(bufferView.extensions&&bufferView.extensions[this.name]){const extensionDef=bufferView.extensions[this.name];const buffer=this.parser.getDependency("buffer",extensionDef.buffer);const decoder=this.parser.options.meshoptDecoder;if(!decoder||!decoder.supported){if(json.extensionsRequired&&json.extensionsRequired.indexOf(this.name)>=0){throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files")}else{return null}}return buffer.then(function(res){const byteOffset=extensionDef.byteOffset||0;const byteLength=extensionDef.byteLength||0;const count=extensionDef.count;const stride=extensionDef.byteStride;const source=new Uint8Array(res,byteOffset,byteLength);if(decoder.decodeGltfBufferAsync){return decoder.decodeGltfBufferAsync(count,stride,source,extensionDef.mode,extensionDef.filter).then(function(res){return res.buffer})}else{return decoder.ready.then(function(){const result=new ArrayBuffer(count*stride);decoder.decodeGltfBuffer(new Uint8Array(result),count,stride,source,extensionDef.mode,extensionDef.filter);return result})}})}else{return null}}}class GLTFMeshGpuInstancing{constructor(parser){this.name=EXTENSIONS.EXT_MESH_GPU_INSTANCING;this.parser=parser}createNodeMesh(nodeIndex){const json=this.parser.json;const nodeDef=json.nodes[nodeIndex];if(!nodeDef.extensions||!nodeDef.extensions[this.name]||nodeDef.mesh===undefined){return null}const meshDef=json.meshes[nodeDef.mesh];for(const primitive of meshDef.primitives){if(primitive.mode!==WEBGL_CONSTANTS.TRIANGLES&&primitive.mode!==WEBGL_CONSTANTS.TRIANGLE_STRIP&&primitive.mode!==WEBGL_CONSTANTS.TRIANGLE_FAN&&primitive.mode!==undefined){return null}}const extensionDef=nodeDef.extensions[this.name];const attributesDef=extensionDef.attributes;const pending=[];const attributes={};for(const key in attributesDef){pending.push(this.parser.getDependency("accessor",attributesDef[key]).then(accessor=>{attributes[key]=accessor;return attributes[key]}))}if(pending.length<1){return null}pending.push(this.parser.createNodeMesh(nodeIndex));return Promise.all(pending).then(results=>{const nodeObject=results.pop();const meshes=nodeObject.isGroup?nodeObject.children:[nodeObject];const count=results[0].count;const instancedMeshes=[];for(const mesh of meshes){const m=new Matrix4;const p=new Vector3;const q=new Quaternion;const s=new Vector3(1,1,1);const instancedMesh=new InstancedMesh(mesh.geometry,mesh.material,count);for(let i=0;i0||uri.search(/^data\:image\/jpeg/)===0)return"image/jpeg";if(uri.search(/\.webp($|\?)/i)>0||uri.search(/^data\:image\/webp/)===0)return"image/webp";return"image/png"}const _identityMatrix=new Matrix4;class GLTFParser{constructor(json={},options={}){this.json=json;this.extensions={};this.plugins={};this.options=options;this.cache=new GLTFRegistry;this.associations=new Map;this.primitiveCache={};this.nodeCache={};this.meshCache={refs:{},uses:{}};this.cameraCache={refs:{},uses:{}};this.lightCache={refs:{},uses:{}};this.sourceCache={};this.textureCache={};this.nodeNamesUsed={};let isSafari=false;let isFirefox=false;let firefoxVersion=-1;if(typeof navigator!=="undefined"){isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===true;isFirefox=navigator.userAgent.indexOf("Firefox")>-1;firefoxVersion=isFirefox?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1}if(typeof createImageBitmap==="undefined"||isSafari||isFirefox&&firefoxVersion<98){this.textureLoader=new TextureLoader(this.options.manager)}else{this.textureLoader=new ImageBitmapLoader(this.options.manager)}this.textureLoader.setCrossOrigin(this.options.crossOrigin);this.textureLoader.setRequestHeader(this.options.requestHeader);this.fileLoader=new FileLoader(this.options.manager);this.fileLoader.setResponseType("arraybuffer");if(this.options.crossOrigin==="use-credentials"){this.fileLoader.setWithCredentials(true)}}setExtensions(extensions){this.extensions=extensions}setPlugins(plugins){this.plugins=plugins}parse(onLoad,onError){const parser=this;const json=this.json;const extensions=this.extensions;this.cache.removeAll();this.nodeCache={};this._invokeAll(function(ext){return ext._markDefs&&ext._markDefs()});Promise.all(this._invokeAll(function(ext){return ext.beforeRoot&&ext.beforeRoot()})).then(function(){return Promise.all([parser.getDependencies("scene"),parser.getDependencies("animation"),parser.getDependencies("camera")])}).then(function(dependencies){const result={scene:dependencies[0][json.scene||0],scenes:dependencies[0],animations:dependencies[1],cameras:dependencies[2],asset:json.asset,parser:parser,userData:{}};addUnknownExtensionsToUserData(extensions,result,json);assignExtrasToUserData(result,json);return Promise.all(parser._invokeAll(function(ext){return ext.afterRoot&&ext.afterRoot(result)})).then(function(){for(const scene of result.scenes){scene.updateMatrixWorld()}onLoad(result)})}).catch(onError)}_markDefs(){const nodeDefs=this.json.nodes||[];const skinDefs=this.json.skins||[];const meshDefs=this.json.meshes||[];for(let skinIndex=0,skinLength=skinDefs.length;skinIndex{const mappings=this.associations.get(original);if(mappings!=null){this.associations.set(clone,mappings)}for(const[i,child]of original.children.entries()){updateMappings(child,clone.children[i])}};updateMappings(object,ref);ref.name+="_instance_"+cache.uses[index]++;return ref}_invokeOne(func){const extensions=Object.values(this.plugins);extensions.push(this);for(let i=0;i=2)bufferAttribute.setY(index,sparseValues[i*itemSize+1]);if(itemSize>=3)bufferAttribute.setZ(index,sparseValues[i*itemSize+2]);if(itemSize>=4)bufferAttribute.setW(index,sparseValues[i*itemSize+3]);if(itemSize>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return bufferAttribute})}loadTexture(textureIndex){const json=this.json;const options=this.options;const textureDef=json.textures[textureIndex];const sourceIndex=textureDef.source;const sourceDef=json.images[sourceIndex];let loader=this.textureLoader;if(sourceDef.uri){const handler=options.manager.getHandler(sourceDef.uri);if(handler!==null)loader=handler}return this.loadTextureImage(textureIndex,sourceIndex,loader)}loadTextureImage(textureIndex,sourceIndex,loader){const parser=this;const json=this.json;const textureDef=json.textures[textureIndex];const sourceDef=json.images[sourceIndex];const cacheKey=(sourceDef.uri||sourceDef.bufferView)+":"+textureDef.sampler;if(this.textureCache[cacheKey]){return this.textureCache[cacheKey]}const promise=this.loadImageSource(sourceIndex,loader).then(function(texture){texture.flipY=false;texture.name=textureDef.name||sourceDef.name||"";if(texture.name===""&&typeof sourceDef.uri==="string"&&sourceDef.uri.startsWith("data:image/")===false){texture.name=sourceDef.uri}const samplers=json.samplers||{};const sampler=samplers[textureDef.sampler]||{};texture.magFilter=WEBGL_FILTERS[sampler.magFilter]||LinearFilter;texture.minFilter=WEBGL_FILTERS[sampler.minFilter]||LinearMipmapLinearFilter;texture.wrapS=WEBGL_WRAPPINGS[sampler.wrapS]||RepeatWrapping;texture.wrapT=WEBGL_WRAPPINGS[sampler.wrapT]||RepeatWrapping;parser.associations.set(texture,{textures:textureIndex});return texture}).catch(function(){return null});this.textureCache[cacheKey]=promise;return promise}loadImageSource(sourceIndex,loader){const parser=this;const json=this.json;const options=this.options;if(this.sourceCache[sourceIndex]!==undefined){return this.sourceCache[sourceIndex].then(texture=>texture.clone())}const sourceDef=json.images[sourceIndex];const URL=self.URL||self.webkitURL;let sourceURI=sourceDef.uri||"";let isObjectURL=false;if(sourceDef.bufferView!==undefined){sourceURI=parser.getDependency("bufferView",sourceDef.bufferView).then(function(bufferView){isObjectURL=true;const blob=new Blob([bufferView],{type:sourceDef.mimeType});sourceURI=URL.createObjectURL(blob);return sourceURI})}else if(sourceDef.uri===undefined){throw new Error("THREE.GLTFLoader: Image "+sourceIndex+" is missing URI and bufferView")}const promise=Promise.resolve(sourceURI).then(function(sourceURI){return new Promise(function(resolve,reject){let onLoad=resolve;if(loader.isImageBitmapLoader===true){onLoad=function(imageBitmap){const texture=new Texture(imageBitmap);texture.needsUpdate=true;resolve(texture)}}loader.load(LoaderUtils.resolveURL(sourceURI,options.path),onLoad,undefined,reject)})}).then(function(texture){if(isObjectURL===true){URL.revokeObjectURL(sourceURI)}texture.userData.mimeType=sourceDef.mimeType||getImageURIMimeType(sourceDef.uri);return texture}).catch(function(error){console.error("THREE.GLTFLoader: Couldn't load texture",sourceURI);throw error});this.sourceCache[sourceIndex]=promise;return promise}assignTexture(materialParams,mapName,mapDef,colorSpace){const parser=this;return this.getDependency("texture",mapDef.index).then(function(texture){if(!texture)return null;if(mapDef.texCoord!==undefined&&mapDef.texCoord>0){texture=texture.clone();texture.channel=mapDef.texCoord}if(parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]){const transform=mapDef.extensions!==undefined?mapDef.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]:undefined;if(transform){const gltfReference=parser.associations.get(texture);texture=parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM].extendTexture(texture,transform);parser.associations.set(texture,gltfReference)}}if(colorSpace!==undefined){texture.colorSpace=colorSpace}materialParams[mapName]=texture;return texture})}assignFinalMaterial(mesh){const geometry=mesh.geometry;let material=mesh.material;const useDerivativeTangents=geometry.attributes.tangent===undefined;const useVertexColors=geometry.attributes.color!==undefined;const useFlatShading=geometry.attributes.normal===undefined;if(mesh.isPoints){const cacheKey="PointsMaterial:"+material.uuid;let pointsMaterial=this.cache.get(cacheKey);if(!pointsMaterial){pointsMaterial=new PointsMaterial;Material.prototype.copy.call(pointsMaterial,material);pointsMaterial.color.copy(material.color);pointsMaterial.map=material.map;pointsMaterial.sizeAttenuation=false;this.cache.add(cacheKey,pointsMaterial)}material=pointsMaterial}else if(mesh.isLine){const cacheKey="LineBasicMaterial:"+material.uuid;let lineMaterial=this.cache.get(cacheKey);if(!lineMaterial){lineMaterial=new LineBasicMaterial;Material.prototype.copy.call(lineMaterial,material);lineMaterial.color.copy(material.color);lineMaterial.map=material.map;this.cache.add(cacheKey,lineMaterial)}material=lineMaterial}if(useDerivativeTangents||useVertexColors||useFlatShading){let cacheKey="ClonedMaterial:"+material.uuid+":";if(useDerivativeTangents)cacheKey+="derivative-tangents:";if(useVertexColors)cacheKey+="vertex-colors:";if(useFlatShading)cacheKey+="flat-shading:";let cachedMaterial=this.cache.get(cacheKey);if(!cachedMaterial){cachedMaterial=material.clone();if(useVertexColors)cachedMaterial.vertexColors=true;if(useFlatShading)cachedMaterial.flatShading=true;if(useDerivativeTangents){if(cachedMaterial.normalScale)cachedMaterial.normalScale.y*=-1;if(cachedMaterial.clearcoatNormalScale)cachedMaterial.clearcoatNormalScale.y*=-1}this.cache.add(cacheKey,cachedMaterial);this.associations.set(cachedMaterial,this.associations.get(material))}material=cachedMaterial}mesh.material=material}getMaterialType(){return MeshStandardMaterial}loadMaterial(materialIndex){const parser=this;const json=this.json;const extensions=this.extensions;const materialDef=json.materials[materialIndex];let materialType;const materialParams={};const materialExtensions=materialDef.extensions||{};const pending=[];if(materialExtensions[EXTENSIONS.KHR_MATERIALS_UNLIT]){const kmuExtension=extensions[EXTENSIONS.KHR_MATERIALS_UNLIT];materialType=kmuExtension.getMaterialType();pending.push(kmuExtension.extendParams(materialParams,materialDef,parser))}else{const metallicRoughness=materialDef.pbrMetallicRoughness||{};materialParams.color=new Color(1,1,1);materialParams.opacity=1;if(Array.isArray(metallicRoughness.baseColorFactor)){const array=metallicRoughness.baseColorFactor;materialParams.color.setRGB(array[0],array[1],array[2],LinearSRGBColorSpace);materialParams.opacity=array[3]}if(metallicRoughness.baseColorTexture!==undefined){pending.push(parser.assignTexture(materialParams,"map",metallicRoughness.baseColorTexture,SRGBColorSpace))}materialParams.metalness=metallicRoughness.metallicFactor!==undefined?metallicRoughness.metallicFactor:1;materialParams.roughness=metallicRoughness.roughnessFactor!==undefined?metallicRoughness.roughnessFactor:1;if(metallicRoughness.metallicRoughnessTexture!==undefined){pending.push(parser.assignTexture(materialParams,"metalnessMap",metallicRoughness.metallicRoughnessTexture));pending.push(parser.assignTexture(materialParams,"roughnessMap",metallicRoughness.metallicRoughnessTexture))}materialType=this._invokeOne(function(ext){return ext.getMaterialType&&ext.getMaterialType(materialIndex)});pending.push(Promise.all(this._invokeAll(function(ext){return ext.extendMaterialParams&&ext.extendMaterialParams(materialIndex,materialParams)})))}if(materialDef.doubleSided===true){materialParams.side=DoubleSide}const alphaMode=materialDef.alphaMode||ALPHA_MODES.OPAQUE;if(alphaMode===ALPHA_MODES.BLEND){materialParams.transparent=true;materialParams.depthWrite=false}else{materialParams.transparent=false;if(alphaMode===ALPHA_MODES.MASK){materialParams.alphaTest=materialDef.alphaCutoff!==undefined?materialDef.alphaCutoff:0.5}}if(materialDef.normalTexture!==undefined&&materialType!==MeshBasicMaterial){pending.push(parser.assignTexture(materialParams,"normalMap",materialDef.normalTexture));materialParams.normalScale=new Vector2(1,1);if(materialDef.normalTexture.scale!==undefined){const scale=materialDef.normalTexture.scale;materialParams.normalScale.set(scale,scale)}}if(materialDef.occlusionTexture!==undefined&&materialType!==MeshBasicMaterial){pending.push(parser.assignTexture(materialParams,"aoMap",materialDef.occlusionTexture));if(materialDef.occlusionTexture.strength!==undefined){materialParams.aoMapIntensity=materialDef.occlusionTexture.strength}}if(materialDef.emissiveFactor!==undefined&&materialType!==MeshBasicMaterial){const emissiveFactor=materialDef.emissiveFactor;materialParams.emissive=new Color().setRGB(emissiveFactor[0],emissiveFactor[1],emissiveFactor[2],LinearSRGBColorSpace)}if(materialDef.emissiveTexture!==undefined&&materialType!==MeshBasicMaterial){pending.push(parser.assignTexture(materialParams,"emissiveMap",materialDef.emissiveTexture,SRGBColorSpace))}return Promise.all(pending).then(function(){const material=new materialType(materialParams);if(materialDef.name)material.name=materialDef.name;assignExtrasToUserData(material,materialDef);parser.associations.set(material,{materials:materialIndex});if(materialDef.extensions)addUnknownExtensionsToUserData(extensions,material,materialDef);return material})}createUniqueName(originalName){const sanitizedName=PropertyBinding.sanitizeNodeName(originalName||"");if(sanitizedName in this.nodeNamesUsed){return sanitizedName+"_"+ ++this.nodeNamesUsed[sanitizedName]}else{this.nodeNamesUsed[sanitizedName]=0;return sanitizedName}}loadGeometries(primitives){const parser=this;const extensions=this.extensions;const cache=this.primitiveCache;function createDracoPrimitive(primitive){return extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(primitive,parser).then(function(geometry){return addPrimitiveAttributes(geometry,primitive,parser)})}const pending=[];for(let i=0,il=primitives.length;i0){updateMorphTargets(mesh,meshDef)}mesh.name=parser.createUniqueName(meshDef.name||"mesh_"+meshIndex);assignExtrasToUserData(mesh,meshDef);if(primitive.extensions)addUnknownExtensionsToUserData(extensions,mesh,primitive);parser.assignFinalMaterial(mesh);meshes.push(mesh)}for(let i=0,il=meshes.length;i1){node=new Group}else if(objects.length===1){node=objects[0]}else{node=new Object3D}if(node!==objects[0]){for(let i=0,il=objects.length;i{const reducedAssociations=new Map;for(const[key,value]of parser.associations){if(key instanceof Material||key instanceof Texture){reducedAssociations.set(key,value)}}node.traverse(node=>{const mappings=parser.associations.get(node);if(mappings!=null){reducedAssociations.set(node,mappings)}});return reducedAssociations};parser.associations=reduceAssociations(scene);return scene})}_createAnimationTracks(node,inputAccessor,outputAccessor,sampler,target){const tracks=[];const targetName=node.name?node.name:node.uuid;const targetNames=[];if(PATH_PROPERTIES[target.path]===PATH_PROPERTIES.weights){node.traverse(function(object){if(object.morphTargetInfluences){targetNames.push(object.name?object.name:object.uuid)}})}else{targetNames.push(targetName)}let TypedKeyframeTrack;switch(PATH_PROPERTIES[target.path]){case PATH_PROPERTIES.weights:TypedKeyframeTrack=NumberKeyframeTrack;break;case PATH_PROPERTIES.rotation:TypedKeyframeTrack=QuaternionKeyframeTrack;break;case PATH_PROPERTIES.position:case PATH_PROPERTIES.scale:TypedKeyframeTrack=VectorKeyframeTrack;break;default:switch(outputAccessor.itemSize){case 1:TypedKeyframeTrack=NumberKeyframeTrack;break;case 2:case 3:default:TypedKeyframeTrack=VectorKeyframeTrack;break;}break;}const interpolation=sampler.interpolation!==undefined?INTERPOLATION[sampler.interpolation]:InterpolateLinear;const outputArray=this._getArrayFromAccessor(outputAccessor);for(let j=0,jl=targetNames.length;j1)x+=1;if(p.y<-1)y-=1;else if(p.y>1)y+=1;max=Math.max(p.x*camera.aspect,p.y,max);min=Math.min(p.x*camera.aspect,p.y,min)});this.isVisible=this.isDrawable&&Math.abs(x)deviceMin}}CSS3DObject.prototype.isCSS3DObject=true;THREE.CSS3DObject=CSS3DObject;class CSS3DQuad extends Object3D{constructor(element){super();this.contentWidth=100;this.contentHeight=100;this.vertices=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.projectedVertices=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.containerElement=document.createElement("div");this.containerElement.style.position="absolute";this.containerElement.style.pointerEvents="none";this.containerElement.style.overflow="hidden";this.element=element||document.createElement("div");this.containerElement.appendChild(this.element);this.element.style.position="absolute";this.element.style.pointerEvents="none"}copy(source,recursive){super.copy(source,recursive);for(var i=0;i<4;i++)this.vertices[i].copy(source.vertices[i]);return this}projectVertices(camera){if(this.matrixWorldNeedsUpdate)this.updateMatrixWorld();projectVertices(this,camera);var pv=this.projectedVertices;this.isDrawable=pv[0].z<0&&pv[1].z<0&&pv[2].z<0&&pv[3].z<0;var x=0,y=0;var max=0,min=0;pv.forEach(function(p){if(p.x<-1)x-=1;else if(p.x>1)x+=1;if(p.y<-1)y-=1;else if(p.y>1)y+=1;max=Math.max(p.x*camera.aspect,p.y,max);min=Math.min(p.x*camera.aspect,p.y,min)});this.isVisible=this.isDrawable&&Math.abs(x)deviceMin}}CSS3DQuad.prototype.isCSS3DQuad=true;THREE.CSS3DQuad=CSS3DQuad;class CSS3DRectangle extends CSS3DQuad{constructor(element){super(element)}updateVertices(){this.vertices[0].set(-this.contentWidth*0.5,+this.contentHeight*0.5,0);this.vertices[1].set(+this.contentWidth*0.5,+this.contentHeight*0.5,0);this.vertices[2].set(+this.contentWidth*0.5,-this.contentHeight*0.5,0);this.vertices[3].set(-this.contentWidth*0.5,-this.contentHeight*0.5,0)}}CSS3DRectangle.prototype.isCSS3DRectangle=true;THREE.CSS3DRectangle=CSS3DRectangle;var _matrix=new THREE.Matrix4;class CSS3DRenderer{constructor(){var _this=this;var _width,_height;var _widthHalf,_heightHalf;var _fov;var _cameraStyle;var cache={objects:new WeakMap};var domElement=document.createElement("div");domElement.style.overflow="hidden";this.domElement=domElement;this.getSize=function(){return{width:_width,height:_height}};this.render=function(scene,camera){_fov=camera.projectionMatrix.elements[5]*_heightHalf;if(scene.matrixWorldAutoUpdate===true)scene.updateMatrixWorld();_cameraStyle="translateZ("+_fov+"px)"+getCameraCSSMatrix(camera.matrixWorldInverse)+"translate("+_widthHalf+"px,"+_heightHalf+"px)";renderObject(scene,scene,camera)};this.setSize=function(width,height){_width=width;_height=height;_widthHalf=_width/2;_heightHalf=_height/2;domElement.style.width=_width+"px";domElement.style.height=_height+"px"};function renderObject(object,scene,camera){if(object.isCSS3DObject||object.isCSS3DQuad){object.onBeforeRender(_this,scene,camera);var cachedObject=cache.objects.get(object)||{};var cacheChanged=false;if(object.isVisible){if(object.isCSS3DQuad){var pv=object.projectedVertices;var x0=(1+pv[0].x)*0.5*_width,y0=(1-pv[0].y)*0.5*_height,x1=(1+pv[1].x)*0.5*_width,y1=(1-pv[1].y)*0.5*_height,x2=(1+pv[2].x)*0.5*_width,y2=(1-pv[2].y)*0.5*_height,x3=(1+pv[3].x)*0.5*_width,y3=(1-pv[3].y)*0.5*_height;createQuadMatrix(object.contentWidth,object.contentHeight,x0,y0,x1,y1,x3,y3,x2,y2,_matrix.elements);var elementStyle=getQuadCSSMatrix(_matrix);if(cachedObject.elementStyle!=elementStyle){cachedObject.elementStyle=object.element.style.transform=elementStyle;cacheChanged=true}if(cachedObject.width!==_width||cachedObject.height!==_height){object.containerElement.style.width=(cachedObject.width=_width)+"px";object.containerElement.style.height=(cachedObject.height=_height)+"px";cacheChanged=true}}else{var elementStyle=getObjectCSSMatrix(object.matrixWorld);if(cachedObject.cameraFov!==_fov){object.containerElement.style.perspective=(cachedObject.cameraFov=_fov)+"px";cacheChanged=true}if(cachedObject.width!==_width||cachedObject.height!==_height){object.cameraElement.style.width=object.containerElement.style.width=(cachedObject.width=_width)+"px";object.cameraElement.style.height=object.containerElement.style.height=(cachedObject.height=_height)+"px";cacheChanged=true}if(cachedObject.cameraStyle!==_cameraStyle){cachedObject.cameraStyle=object.cameraElement.style.transform=_cameraStyle;cacheChanged=true}if(cachedObject.elementStyle!==elementStyle){cachedObject.elementStyle=object.element.style.transform=elementStyle;cacheChanged=true}}object.containerElement.style.left="0"}else{object.containerElement.style.left=_width+"px"}if(cacheChanged)cache.objects.set(object,cachedObject);object.containerElement.style.display=object.visible?"":"none";if(object.containerElement.parentNode!==domElement)domElement.appendChild(object.containerElement);object.onAfterRender(_this,scene,camera)}for(var i=0,l=object.children.length;i-1e-10?0:value}function getCameraCSSMatrix(matrix){var elements=matrix.elements;return"matrix3d("+epsilon(elements[0])+","+epsilon(-elements[1])+","+epsilon(elements[2])+","+epsilon(elements[3])+","+epsilon(elements[4])+","+epsilon(-elements[5])+","+epsilon(elements[6])+","+epsilon(elements[7])+","+epsilon(elements[8])+","+epsilon(-elements[9])+","+epsilon(elements[10])+","+epsilon(elements[11])+","+epsilon(elements[12])+","+epsilon(-elements[13])+","+epsilon(elements[14])+","+epsilon(elements[15])+")"}function getObjectCSSMatrix(matrix){var elements=matrix.elements;var matrix3d="matrix3d("+epsilon(elements[0])+","+epsilon(elements[1])+","+epsilon(elements[2])+","+epsilon(elements[3])+","+epsilon(-elements[4])+","+epsilon(-elements[5])+","+epsilon(-elements[6])+","+epsilon(-elements[7])+","+epsilon(elements[8])+","+epsilon(elements[9])+","+epsilon(elements[10])+","+epsilon(elements[11])+","+epsilon(elements[12])+","+epsilon(elements[13])+","+epsilon(elements[14])+","+epsilon(elements[15])+")";return"translate(-50%,-50%)"+matrix3d}function getQuadCSSMatrix(matrix){var elements=matrix.elements;var matrix3d="matrix3d("+epsilon(elements[0])+","+epsilon(elements[1])+","+epsilon(elements[2])+","+epsilon(elements[3])+","+epsilon(elements[4])+","+epsilon(elements[5])+","+epsilon(elements[6])+","+epsilon(elements[7])+","+epsilon(elements[8])+","+epsilon(elements[9])+","+epsilon(elements[10])+","+epsilon(elements[11])+","+epsilon(elements[12])+","+epsilon(elements[13])+","+epsilon(elements[14])+","+epsilon(elements[15])+")";return matrix3d}}};THREE.CSS3DRenderer=CSS3DRenderer;function projectVertices(object,camera){for(var index=0;index{if(object.isMesh){resources.add(object.geometry);resources.add(object.material)}});for(const resource of resources){resource.dispose()}}}function createAreaLightMaterial(intensity){const material=new MeshBasicMaterial;material.color.setScalar(intensity);return material}THREE.RoomEnvironment=RoomEnvironment})();(function(t,e){e(t.THREE=t.THREE||{})})(this,function(THREE){var CubeReflectionMapping=THREE.CubeReflectionMapping,CubeRefractionMapping=THREE.CubeRefractionMapping,CubeUVReflectionMapping=THREE.CubeUVReflectionMapping,LinearEncoding=THREE.LinearEncoding,LinearFilter=THREE.LinearFilter,NoToneMapping=THREE.NoToneMapping,NoBlending=THREE.NoBlending,RGBAFormat=THREE.RGBAFormat,HalfFloatType=THREE.HalfFloatType,BufferAttribute=THREE.BufferAttribute,BufferGeometry=THREE.BufferGeometry,Mesh=THREE.Mesh,OrthographicCamera=THREE.OrthographicCamera,PerspectiveCamera=THREE.PerspectiveCamera,ShaderMaterial=THREE.ShaderMaterial,Vector3=THREE.Vector3,Color=THREE.Color,WebGLRenderTarget=THREE.WebGLRenderTarget,MeshBasicMaterial=THREE.MeshBasicMaterial,BoxGeometry=THREE.BoxGeometry,BackSide=THREE.BackSide;const LOD_MIN=4;const EXTRA_LOD_SIGMA=[0.125,0.215,0.35,0.446,0.526,0.582];const MAX_SAMPLES=20;const _flatCamera=new OrthographicCamera;const _clearColor=new Color;let _oldTarget=null;const PHI=(1+Math.sqrt(5))/2;const INV_PHI=1/PHI;const _axisDirections=[new Vector3(1,1,1),new Vector3(-1,1,1),new Vector3(1,1,-1),new Vector3(-1,1,-1),new Vector3(0,PHI,INV_PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(INV_PHI,0,PHI),new Vector3(-INV_PHI,0,PHI),new Vector3(PHI,INV_PHI,0),new Vector3(-PHI,INV_PHI,0)];class PMREMGenerator{constructor(renderer){this._renderer=renderer;this._pingPongRenderTarget=null;this._lodMax=0;this._cubeSize=0;this._lodPlanes=[];this._sizeLods=[];this._sigmas=[];this._blurMaterial=null;this._cubemapMaterial=null;this._equirectMaterial=null;this._compileMaterial(this._blurMaterial)}fromScene(scene,sigma=0,near=0.1,far=100){_oldTarget=this._renderer.getRenderTarget();this._setSize(256);const cubeUVRenderTarget=this._allocateTargets();cubeUVRenderTarget.depthBuffer=true;this._sceneToCubeUV(scene,near,far,cubeUVRenderTarget);if(sigma>0){this._blur(cubeUVRenderTarget,0,0,sigma)}this._applyPMREM(cubeUVRenderTarget);this._cleanup(cubeUVRenderTarget);return cubeUVRenderTarget}fromEquirectangular(equirectangular,renderTarget=null){return this._fromTexture(equirectangular,renderTarget)}fromCubemap(cubemap,renderTarget=null){return this._fromTexture(cubemap,renderTarget)}compileCubemapShader(){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial();this._compileMaterial(this._cubemapMaterial)}}compileEquirectangularShader(){if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial();this._compileMaterial(this._equirectMaterial)}}dispose(){this._dispose();if(this._cubemapMaterial!==null)this._cubemapMaterial.dispose();if(this._equirectMaterial!==null)this._equirectMaterial.dispose()}_setSize(cubeSize){this._lodMax=Math.floor(Math.log2(cubeSize));this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){if(this._blurMaterial!==null)this._blurMaterial.dispose();if(this._pingPongRenderTarget!==null)this._pingPongRenderTarget.dispose();for(let i=0;i2?size:0,size,size);renderer.setRenderTarget(cubeUVRenderTarget);if(useSolidColor){renderer.render(backgroundBox,cubeCamera)}renderer.render(scene,cubeCamera)}backgroundBox.geometry.dispose();backgroundBox.material.dispose();renderer.toneMapping=toneMapping;renderer.autoClear=originalAutoClear;scene.background=background}_textureToCubeUV(texture,cubeUVRenderTarget){const renderer=this._renderer;const isCubeTexture=texture.mapping===CubeReflectionMapping||texture.mapping===CubeRefractionMapping;if(isCubeTexture){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial()}this._cubemapMaterial.uniforms.flipEnvMap.value=texture.isRenderTargetTexture===false?-1:1}else{if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial()}}const material=isCubeTexture?this._cubemapMaterial:this._equirectMaterial;const mesh=new Mesh(this._lodPlanes[0],material);const uniforms=material.uniforms;uniforms["envMap"].value=texture;const size=this._cubeSize;_setViewport(cubeUVRenderTarget,0,0,3*size,2*size);renderer.setRenderTarget(cubeUVRenderTarget);renderer.render(mesh,_flatCamera)}_applyPMREM(cubeUVRenderTarget){const renderer=this._renderer;const autoClear=renderer.autoClear;renderer.autoClear=false;for(let i=1;iMAX_SAMPLES){console.warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`)}const weights=[];let sum=0;for(let i=0;i_lodMax-LOD_MIN?lodOut-_lodMax+LOD_MIN:0);const y=4*(this._cubeSize-outputSize);_setViewport(targetOut,x,y,3*outputSize,2*outputSize);renderer.setRenderTarget(targetOut);renderer.render(blurMesh,_flatCamera)}}function _createPlanes(lodMax){const lodPlanes=[];const sizeLods=[];const sigmas=[];let lod=lodMax;const totalLods=lodMax-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let i=0;ilodMax-LOD_MIN){sigma=EXTRA_LOD_SIGMA[i-lodMax+LOD_MIN-1]}else if(i===0){sigma=0}sigmas.push(sigma);const texelSize=1/(sizeLod-2);const min=-texelSize;const max=1+texelSize;const uv1=[min,min,max,min,max,max,min,min,max,max,min,max];const cubeFaces=6;const vertices=6;const positionSize=3;const uvSize=2;const faceIndexSize=1;const position=new Float32Array(positionSize*vertices*cubeFaces);const uv=new Float32Array(uvSize*vertices*cubeFaces);const faceIndex=new Float32Array(faceIndexSize*vertices*cubeFaces);for(let face=0;face2?0:-1;const coordinates=[x,y,0,x+2/3,y,0,x+2/3,y+1,0,x,y,0,x+2/3,y+1,0,x,y+1,0];position.set(coordinates,positionSize*vertices*face);uv.set(uv1,uvSize*vertices*face);const fill=[face,face,face,face,face,face];faceIndex.set(fill,faceIndexSize*vertices*face)}const planes=new BufferGeometry;planes.setAttribute("position",new BufferAttribute(position,positionSize));planes.setAttribute("uv",new BufferAttribute(uv,uvSize));planes.setAttribute("faceIndex",new BufferAttribute(faceIndex,faceIndexSize));lodPlanes.push(planes);if(lod>LOD_MIN){lod--}}return{lodPlanes,sizeLods,sigmas}}function _createRenderTarget(width,height,params){const cubeUVRenderTarget=new WebGLRenderTarget(width,height,params);cubeUVRenderTarget.texture.mapping=CubeUVReflectionMapping;cubeUVRenderTarget.texture.name="PMREM.cubeUv";cubeUVRenderTarget.scissorTest=true;return cubeUVRenderTarget}function _setViewport(target,x,y,width,height){target.viewport.set(x,y,width,height);target.scissor.set(x,y,width,height)}function _getBlurShader(lodMax,width,height){const weights=new Float32Array(MAX_SAMPLES);const poleAxis=new Vector3(0,1,0);const shaderMaterial=new ShaderMaterial({name:"SphericalGaussianBlur",defines:{"n":MAX_SAMPLES,"CUBEUV_TEXEL_WIDTH":1/width,"CUBEUV_TEXEL_HEIGHT":1/height,"CUBEUV_MAX_MIP":`${lodMax}.0`},uniforms:{"envMap":{value:null},"samples":{value:1},"weights":{value:weights},"latitudinal":{value:false},"dTheta":{value:0},"mipInt":{value:0},"poleAxis":{value:poleAxis}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform int samples; uniform float weights[ n ]; uniform bool latitudinal; uniform float dTheta; uniform float mipInt; uniform vec3 poleAxis; #define ENVMAP_TYPE_CUBE_UV #include vec3 getSample( float theta, vec3 axis ) { float cosTheta = cos( theta ); // Rodrigues' axis-angle rotation vec3 sampleDirection = vOutputDirection * cosTheta + cross( axis, vOutputDirection ) * sin( theta ) + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); return bilinearCubeUV( envMap, sampleDirection, mipInt ); } void main() { vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); if ( all( equal( axis, vec3( 0.0 ) ) ) ) { axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); } axis = normalize( axis ); gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); for ( int i = 1; i < n; i++ ) { if ( i >= samples ) { break; } float theta = dTheta * float( i ); gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); } } `,blending:NoBlending,depthTest:false,depthWrite:false});return shaderMaterial}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{"envMap":{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; #include void main() { vec3 outputDirection = normalize( vOutputDirection ); vec2 uv = equirectUv( outputDirection ); gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); } `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{"envMap":{value:null},"flipEnvMap":{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; uniform float flipEnvMap; varying vec3 vOutputDirection; uniform samplerCube envMap; void main() { gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); } `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCommonVertexShader(){return` precision mediump float; precision mediump int; attribute float faceIndex; varying vec3 vOutputDirection; // RH coordinate system; PMREM face-indexing convention vec3 getDirection( vec2 uv, float face ) { uv = 2.0 * uv - 1.0; vec3 direction = vec3( uv, 1.0 ); if ( face == 0.0 ) { direction = direction.zyx; // ( 1, v, u ) pos x } else if ( face == 1.0 ) { direction = direction.xzy; direction.xz *= -1.0; // ( -u, 1, -v ) pos y } else if ( face == 2.0 ) { direction.x *= -1.0; // ( -u, v, 1 ) pos z } else if ( face == 3.0 ) { direction = direction.zyx; direction.xz *= -1.0; // ( -1, v, -u ) neg x } else if ( face == 4.0 ) { direction = direction.xzy; direction.xy *= -1.0; // ( -u, -1, v ) neg y } else if ( face == 5.0 ) { direction.z *= -1.0; // ( u, v, -1 ) neg z } return direction; } void main() { vOutputDirection = getDirection( uv, faceIndex ); gl_Position = vec4( position, 1.0 ); } `}THREE.PMREMGenerator=PMREMGenerator});(function(t,e){e(t,t.THREE=t.THREE||{})})(this,function(globalThis,THREE){const $5OpyM$Spherical=THREE.Spherical;const $5OpyM$Vector3=THREE.Vector3;const $5OpyM$MathUtils=THREE.MathUtils;const $5OpyM$Sphere=THREE.Sphere;const $5OpyM$Group=THREE.Group;const $5OpyM$PointsMaterial=THREE.PointsMaterial;const $5OpyM$MeshStandardMaterial=THREE.MeshStandardMaterial;const $5OpyM$Box3Helper=THREE.Box3Helper;const $5OpyM$Color=THREE.Color;const $5OpyM$Matrix4=THREE.Matrix4;const $5OpyM$LoadingManager=THREE.LoadingManager;const $5OpyM$Vector2=THREE.Vector2;const $5OpyM$Frustum=THREE.Frustum;const $5OpyM$DefaultLoadingManager=THREE.DefaultLoadingManager;const $5OpyM$BufferGeometry=THREE.BufferGeometry;const $5OpyM$BufferAttribute=THREE.BufferAttribute;const $5OpyM$Points=THREE.Points;const $5OpyM$Quaternion=THREE.Quaternion;const $5OpyM$InstancedMesh=THREE.InstancedMesh;const $5OpyM$Ray=THREE.Ray;const $5OpyM$Box3=THREE.Box3;const $5OpyM$LineBasicMaterial=THREE.LineBasicMaterial;const $5OpyM$LineSegments=THREE.LineSegments;const $5OpyM$BoxGeometry=THREE.BoxGeometry;const $5OpyM$EdgesGeometry=THREE.EdgesGeometry;const $5OpyM$Mesh=THREE.Mesh;const $5OpyM$Euler=THREE.Euler;const $5OpyM$GLTFLoader=THREE.GLTFLoader;var $parcel$global=typeof globalThis!=="undefined"?globalThis:typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:{};var $parcel$modules={};var $parcel$inits={};var parcelRequire=$parcel$global["parcelRequire5fa1"];if(parcelRequire==null){parcelRequire=function(id){if(id in $parcel$modules){return $parcel$modules[id].exports}if(id in $parcel$inits){var init=$parcel$inits[id];delete $parcel$inits[id];var module={id:id,exports:{}};$parcel$modules[id]=module;init.call(module.exports,module,module.exports);return module.exports}var err=new Error("Cannot find module '"+id+"'");err.code="MODULE_NOT_FOUND";throw err};parcelRequire.register=function register(id,init){$parcel$inits[id]=init};$parcel$global["parcelRequire5fa1"]=parcelRequire}parcelRequire.register("1hGdn",function(module,exports){"use strict";Object.defineProperty(module.exports,"__esModule",{value:true});module.exports.latitudeToSphericalPhi=$0ef81fee344e2f3b$var$latitudeToSphericalPhi;module.exports.sphericalPhiToLatitude=$0ef81fee344e2f3b$var$sphericalPhiToLatitude;module.exports.swapToGeoFrame=$0ef81fee344e2f3b$var$swapToGeoFrame;module.exports.swapToThreeFrame=$0ef81fee344e2f3b$var$swapToThreeFrame;module.exports.toLatLonString=$0ef81fee344e2f3b$var$toLatLonString;const $0ef81fee344e2f3b$var$_spherical=new $5OpyM$Spherical;const $0ef81fee344e2f3b$var$_vec=new $5OpyM$Vector3;const $0ef81fee344e2f3b$var$_geoResults={};function $0ef81fee344e2f3b$var$swapToGeoFrame(target){const{x:x,y:y,z:z}=target;target.x=z;target.y=x;target.z=y}function $0ef81fee344e2f3b$var$swapToThreeFrame(target){const{x:x,y:y,z:z}=target;target.z=x;target.x=y;target.y=z}function $0ef81fee344e2f3b$var$sphericalPhiToLatitude(phi){return-(phi-Math.PI/2)}function $0ef81fee344e2f3b$var$latitudeToSphericalPhi(latitude){return-latitude+Math.PI/2}function $0ef81fee344e2f3b$var$correctGeoCoordWrap(lat,lon,target={}){$0ef81fee344e2f3b$var$_spherical.theta=lon;$0ef81fee344e2f3b$var$_spherical.phi=$0ef81fee344e2f3b$var$latitudeToSphericalPhi(lat);$0ef81fee344e2f3b$var$_vec.setFromSpherical($0ef81fee344e2f3b$var$_spherical);$0ef81fee344e2f3b$var$_spherical.setFromVector3($0ef81fee344e2f3b$var$_vec);target.lat=$0ef81fee344e2f3b$var$sphericalPhiToLatitude($0ef81fee344e2f3b$var$_spherical.phi);target.lon=$0ef81fee344e2f3b$var$_spherical.theta;return target}function $0ef81fee344e2f3b$var$toHoursMinutesSecondsString(value,pos="E",neg="W"){const direction=value<0?neg:pos;value=Math.abs(value);const hours=~~value;const minDec=(value-hours)*60;const minutes=~~minDec;const secDec=(minDec-minutes)*60;const seconds=~~secDec;return`${hours}° ${minutes}' ${seconds}" ${direction}`}function $0ef81fee344e2f3b$var$toLatLonString(lat,lon,decimalFormat=false){const result=$0ef81fee344e2f3b$var$correctGeoCoordWrap(lat,lon,$0ef81fee344e2f3b$var$_geoResults);let latString,lonString;if(decimalFormat){latString=`${($5OpyM$MathUtils.RAD2DEG*result.lat).toFixed(4)}°`;lonString=`${($5OpyM$MathUtils.RAD2DEG*result.lon).toFixed(4)}°`}else{latString=$0ef81fee344e2f3b$var$toHoursMinutesSecondsString($5OpyM$MathUtils.RAD2DEG*result.lat,"N","S");lonString=$0ef81fee344e2f3b$var$toHoursMinutesSecondsString($5OpyM$MathUtils.RAD2DEG*result.lon,"E","W")}return`${latString} ${lonString}`}});var $cf838c15c8b009ba$exports={};"use strict";Object.defineProperty($cf838c15c8b009ba$exports,"__esModule",{value:true});var $cf838c15c8b009ba$var$_exportNames={DebugTilesRenderer:true,NONE:true,SCREEN_ERROR:true,GEOMETRIC_ERROR:true,DISTANCE:true,DEPTH:true,RELATIVE_DEPTH:true,IS_LEAF:true,RANDOM_COLOR:true,RANDOM_NODE_COLOR:true,CUSTOM_COLOR:true,TilesRenderer:true,B3DMLoader:true,PNTSLoader:true,I3DMLoader:true,CMPTLoader:true,GLTFCesiumRTCExtension:true,GLTFExtensionLoader:true,EllipsoidRegionHelper:true,EllipsoidRegionLineHelper:true,SphereHelper:true,Ellipsoid:true,EllipsoidRegion:true,GeoUtils:true,TilesRendererBase:true,LoaderBase:true,B3DMLoaderBase:true,I3DMLoaderBase:true,PNTSLoaderBase:true,CMPTLoaderBase:true,LRUCache:true,PriorityQueue:true};Object.defineProperty($cf838c15c8b009ba$exports,"B3DMLoader",{enumerable:true,get:function(){return $0aa3d1def57e98b1$exports.B3DMLoader}});Object.defineProperty($cf838c15c8b009ba$exports,"B3DMLoaderBase",{enumerable:true,get:function(){return $f5d9b5dde53306bf$exports.B3DMLoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"CMPTLoader",{enumerable:true,get:function(){return $54879e9a7dc345e0$exports.CMPTLoader}});Object.defineProperty($cf838c15c8b009ba$exports,"CMPTLoaderBase",{enumerable:true,get:function(){return $cb66a16334732244$exports.CMPTLoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"CUSTOM_COLOR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.CUSTOM_COLOR}});Object.defineProperty($cf838c15c8b009ba$exports,"DEPTH",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.DEPTH}});Object.defineProperty($cf838c15c8b009ba$exports,"DISTANCE",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.DISTANCE}});Object.defineProperty($cf838c15c8b009ba$exports,"DebugTilesRenderer",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.DebugTilesRenderer}});Object.defineProperty($cf838c15c8b009ba$exports,"Ellipsoid",{enumerable:true,get:function(){return $9160f8f2e0578e98$exports.Ellipsoid}});Object.defineProperty($cf838c15c8b009ba$exports,"EllipsoidRegion",{enumerable:true,get:function(){return $aa7b3b269f245cbe$exports.EllipsoidRegion}});Object.defineProperty($cf838c15c8b009ba$exports,"EllipsoidRegionHelper",{enumerable:true,get:function(){return $3b9225051b507460$exports.EllipsoidRegionHelper}});Object.defineProperty($cf838c15c8b009ba$exports,"EllipsoidRegionLineHelper",{enumerable:true,get:function(){return $3b9225051b507460$exports.EllipsoidRegionLineHelper}});Object.defineProperty($cf838c15c8b009ba$exports,"GEOMETRIC_ERROR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.GEOMETRIC_ERROR}});Object.defineProperty($cf838c15c8b009ba$exports,"GLTFCesiumRTCExtension",{enumerable:true,get:function(){return $44c3bffa5e49f297$exports.GLTFCesiumRTCExtension}});Object.defineProperty($cf838c15c8b009ba$exports,"GLTFExtensionLoader",{enumerable:true,get:function(){return $29ced67d26e5c4e2$exports.GLTFExtensionLoader}});$cf838c15c8b009ba$exports.GeoUtils=void 0;Object.defineProperty($cf838c15c8b009ba$exports,"I3DMLoader",{enumerable:true,get:function(){return $0bc85483bdeca322$exports.I3DMLoader}});Object.defineProperty($cf838c15c8b009ba$exports,"I3DMLoaderBase",{enumerable:true,get:function(){return $bcb352fb74bed4a5$exports.I3DMLoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"IS_LEAF",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.IS_LEAF}});Object.defineProperty($cf838c15c8b009ba$exports,"LRUCache",{enumerable:true,get:function(){return $e0d7a242557dc8e6$exports.LRUCache}});Object.defineProperty($cf838c15c8b009ba$exports,"LoaderBase",{enumerable:true,get:function(){return $e6b785bba9ea128d$exports.LoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"NONE",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.NONE}});Object.defineProperty($cf838c15c8b009ba$exports,"PNTSLoader",{enumerable:true,get:function(){return $1ddd6ca16eb224df$exports.PNTSLoader}});Object.defineProperty($cf838c15c8b009ba$exports,"PNTSLoaderBase",{enumerable:true,get:function(){return $d408eda5a179398a$exports.PNTSLoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"PriorityQueue",{enumerable:true,get:function(){return $096d2234d1235002$exports.PriorityQueue}});Object.defineProperty($cf838c15c8b009ba$exports,"RANDOM_COLOR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.RANDOM_COLOR}});Object.defineProperty($cf838c15c8b009ba$exports,"RANDOM_NODE_COLOR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.RANDOM_NODE_COLOR}});Object.defineProperty($cf838c15c8b009ba$exports,"RELATIVE_DEPTH",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.RELATIVE_DEPTH}});Object.defineProperty($cf838c15c8b009ba$exports,"SCREEN_ERROR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.SCREEN_ERROR}});Object.defineProperty($cf838c15c8b009ba$exports,"SphereHelper",{enumerable:true,get:function(){return $1cb839fa4db014d3$exports.SphereHelper}});Object.defineProperty($cf838c15c8b009ba$exports,"TilesRenderer",{enumerable:true,get:function(){return $06d26e8e9f5361d3$exports.TilesRenderer}});Object.defineProperty($cf838c15c8b009ba$exports,"TilesRendererBase",{enumerable:true,get:function(){return $5a6f7a997885dc30$exports.TilesRendererBase}});var $1909f04f34bd6630$exports={};"use strict";Object.defineProperty($1909f04f34bd6630$exports,"__esModule",{value:true});$1909f04f34bd6630$exports.SCREEN_ERROR=$1909f04f34bd6630$exports.RELATIVE_DEPTH=$1909f04f34bd6630$exports.RANDOM_NODE_COLOR=$1909f04f34bd6630$exports.RANDOM_COLOR=$1909f04f34bd6630$exports.NONE=$1909f04f34bd6630$exports.IS_LEAF=$1909f04f34bd6630$exports.GEOMETRIC_ERROR=$1909f04f34bd6630$exports.DebugTilesRenderer=$1909f04f34bd6630$exports.DISTANCE=$1909f04f34bd6630$exports.DEPTH=$1909f04f34bd6630$exports.CUSTOM_COLOR=void 0;var $3a66585ec6f85053$exports={};"use strict";Object.defineProperty($3a66585ec6f85053$exports,"__esModule",{value:true});$3a66585ec6f85053$exports.getIndexedRandomColor=$3a66585ec6f85053$var$getIndexedRandomColor;const $3a66585ec6f85053$var$colors={};function $3a66585ec6f85053$var$getIndexedRandomColor(index){if(!$3a66585ec6f85053$var$colors[index]){const h=Math.random();const s=0.5+Math.random()*0.5;const l=0.375+Math.random()*0.25;$3a66585ec6f85053$var$colors[index]=new $5OpyM$Color().setHSL(h,s,l)}return $3a66585ec6f85053$var$colors[index]}var $06d26e8e9f5361d3$exports={};"use strict";Object.defineProperty($06d26e8e9f5361d3$exports,"__esModule",{value:true});$06d26e8e9f5361d3$exports.TilesRenderer=void 0;var $5a6f7a997885dc30$exports={};"use strict";Object.defineProperty($5a6f7a997885dc30$exports,"__esModule",{value:true});$5a6f7a997885dc30$exports.TilesRendererBase=void 0;var $7ff9fb142d83939f$exports={};"use strict";Object.defineProperty($7ff9fb142d83939f$exports,"__esModule",{value:true});$7ff9fb142d83939f$exports.getUrlExtension=$7ff9fb142d83939f$var$getUrlExtension;function $7ff9fb142d83939f$var$getUrlExtension(url){let parsedUrl;try{parsedUrl=new URL(url,"http://fakehost.com/")}catch(_){return null}const filename=parsedUrl.pathname.split("/").pop();const dotIndex=filename.lastIndexOf(".");if(dotIndex===-1||dotIndex===filename.length-1)return null;const extension=filename.substring(dotIndex+1);return extension}var $e0d7a242557dc8e6$exports={};"use strict";Object.defineProperty($e0d7a242557dc8e6$exports,"__esModule",{value:true});$e0d7a242557dc8e6$exports.LRUCache=void 0;function $e0d7a242557dc8e6$var$enqueueMicrotask(callback){Promise.resolve().then(callback)}class $e0d7a242557dc8e6$var$LRUCache{constructor(){this.maxSize=800;this.minSize=600;this.unloadPercent=0.05;this.itemSet=new Map;this.itemList=[];this.usedSet=new Set;this.callbacks=new Map;this.unloadPriorityCallback=null;const itemSet=this.itemSet;this.defaultPriorityCallback=item=>itemSet.get(item)}isFull(){return this.itemSet.size>=this.maxSize}add(item,removeCb){const itemSet=this.itemSet;if(itemSet.has(item))return false;if(this.isFull())return false;const usedSet=this.usedSet;const itemList=this.itemList;const callbacks=this.callbacks;itemList.push(item);usedSet.add(item);itemSet.set(item,Date.now());callbacks.set(item,removeCb);return true}remove(item){const usedSet=this.usedSet;const itemSet=this.itemSet;const itemList=this.itemList;const callbacks=this.callbacks;if(itemSet.has(item)){callbacks.get(item)(item);const index=itemList.indexOf(item);itemList.splice(index,1);usedSet.delete(item);itemSet.delete(item);callbacks.delete(item);return true}return false}markUsed(item){const itemSet=this.itemSet;const usedSet=this.usedSet;if(itemSet.has(item)&&!usedSet.has(item)){itemSet.set(item,Date.now());usedSet.add(item)}}markAllUnused(){this.usedSet.clear()}unloadUnusedContent(){const unloadPercent=this.unloadPercent;const targetSize=this.minSize;const itemList=this.itemList;const itemSet=this.itemSet;const usedSet=this.usedSet;const callbacks=this.callbacks;const unused=itemList.length-usedSet.size;const excess=itemList.length-targetSize;const unloadPriorityCallback=this.unloadPriorityCallback||this.defaultPriorityCallback;if(excess>0&&unused>0){itemList.sort((a,b)=>{const usedA=usedSet.has(a);const usedB=usedSet.has(b);if(usedA&&usedB)return 0;else if(!usedA&&!usedB)return unloadPriorityCallback(b)-unloadPriorityCallback(a);else return usedA?1:-1});const unusedExcess=Math.min(excess,unused);const maxUnload=Math.max(targetSize*unloadPercent,unusedExcess*unloadPercent);let nodesToUnload=Math.min(maxUnload,unused);nodesToUnload=Math.ceil(nodesToUnload);const removedItems=itemList.splice(0,nodesToUnload);for(let i=0,l=removedItems.length;i{this.scheduled=false;this.unloadUnusedContent();if(markAllUnused)this.markAllUnused()})}}}$e0d7a242557dc8e6$exports.LRUCache=$e0d7a242557dc8e6$var$LRUCache;var $096d2234d1235002$exports={};"use strict";Object.defineProperty($096d2234d1235002$exports,"__esModule",{value:true});$096d2234d1235002$exports.PriorityQueue=void 0;class $096d2234d1235002$var$PriorityQueue{constructor(){this.maxJobs=6;this.items=[];this.callbacks=new Map;this.currJobs=0;this.scheduled=false;this.autoUpdate=true;this.priorityCallback=()=>{throw new Error("PriorityQueue: PriorityCallback function not defined.")};this.schedulingCallback=func=>{requestAnimationFrame(func)};this._runjobs=()=>{this.tryRunJobs();this.scheduled=false}}sort(){const priorityCallback=this.priorityCallback;const items=this.items;items.sort(priorityCallback)}add(item,callback){return new Promise((resolve,reject)=>{const prCallback=(...args)=>callback(...args).then(resolve).catch(reject);const items=this.items;const callbacks=this.callbacks;items.push(item);callbacks.set(item,prCallback);if(this.autoUpdate)this.scheduleJobRun()})}remove(item){const items=this.items;const callbacks=this.callbacks;const index=items.indexOf(item);if(index!==-1){items.splice(index,1);callbacks.delete(item)}}tryRunJobs(){this.sort();const items=this.items;const callbacks=this.callbacks;const maxJobs=this.maxJobs;let currJobs=this.currJobs;while(maxJobs>currJobs&&items.length>0){currJobs++;const item=items.pop();const callback=callbacks.get(item);callbacks.delete(item);callback(item).then(()=>{this.currJobs--;if(this.autoUpdate)this.scheduleJobRun()}).catch(()=>{this.currJobs--;if(this.autoUpdate)this.scheduleJobRun()})}this.currJobs=currJobs}scheduleJobRun(){if(!this.scheduled){this.schedulingCallback(this._runjobs);this.scheduled=true}}}$096d2234d1235002$exports.PriorityQueue=$096d2234d1235002$var$PriorityQueue;var $cd531a5f1c18e9cc$exports={};"use strict";Object.defineProperty($cd531a5f1c18e9cc$exports,"__esModule",{value:true});$cd531a5f1c18e9cc$exports.determineFrustumSet=$cd531a5f1c18e9cc$var$determineFrustumSet;$cd531a5f1c18e9cc$exports.markUsedSetLeaves=$cd531a5f1c18e9cc$var$markUsedSetLeaves;$cd531a5f1c18e9cc$exports.skipTraversal=$cd531a5f1c18e9cc$var$skipTraversal;$cd531a5f1c18e9cc$exports.toggleTiles=$cd531a5f1c18e9cc$var$toggleTiles;$cd531a5f1c18e9cc$exports.traverseSet=$cd531a5f1c18e9cc$var$traverseSet;var $002d29a772485791$exports={};"use strict";Object.defineProperty($002d29a772485791$exports,"__esModule",{value:true});$002d29a772485791$exports.WGS84_RADIUS=$002d29a772485791$exports.WGS84_HEIGHT=$002d29a772485791$exports.WGS84_FLATTENING=$002d29a772485791$exports.UNLOADED=$002d29a772485791$exports.PARSING=$002d29a772485791$exports.LOADING=$002d29a772485791$exports.LOADED=$002d29a772485791$exports.FAILED=void 0;const $002d29a772485791$var$UNLOADED=0;$002d29a772485791$exports.UNLOADED=$002d29a772485791$var$UNLOADED;const $002d29a772485791$var$LOADING=1;$002d29a772485791$exports.LOADING=$002d29a772485791$var$LOADING;const $002d29a772485791$var$PARSING=2;$002d29a772485791$exports.PARSING=$002d29a772485791$var$PARSING;const $002d29a772485791$var$LOADED=3;$002d29a772485791$exports.LOADED=$002d29a772485791$var$LOADED;const $002d29a772485791$var$FAILED=4;$002d29a772485791$exports.FAILED=$002d29a772485791$var$FAILED;const $002d29a772485791$var$WGS84_RADIUS=6378137;$002d29a772485791$exports.WGS84_RADIUS=$002d29a772485791$var$WGS84_RADIUS;const $002d29a772485791$var$WGS84_FLATTENING=1/298.257223563;$002d29a772485791$exports.WGS84_FLATTENING=$002d29a772485791$var$WGS84_FLATTENING;const $002d29a772485791$var$WGS84_HEIGHT=-($002d29a772485791$var$WGS84_FLATTENING*$002d29a772485791$var$WGS84_RADIUS-$002d29a772485791$var$WGS84_RADIUS);$002d29a772485791$exports.WGS84_HEIGHT=$002d29a772485791$var$WGS84_HEIGHT;function $cd531a5f1c18e9cc$var$isDownloadFinished(value){return value===$002d29a772485791$exports.LOADED||value===$002d29a772485791$exports.FAILED}function $cd531a5f1c18e9cc$var$isUsedThisFrame(tile,frameCount){return tile.__lastFrameVisited===frameCount&&tile.__used}function $cd531a5f1c18e9cc$var$resetFrameState(tile,frameCount){if(tile.__lastFrameVisited!==frameCount){tile.__lastFrameVisited=frameCount;tile.__used=false;tile.__inFrustum=false;tile.__isLeaf=false;tile.__visible=false;tile.__active=false;tile.__error=Infinity;tile.__distanceFromCamera=Infinity;tile.__childrenWereVisible=false;tile.__allChildrenLoaded=false}}function $cd531a5f1c18e9cc$var$recursivelyMarkUsed(tile,frameCount,lruCache,renderer){renderer.ensureChildrenArePreprocessed(tile);$cd531a5f1c18e9cc$var$resetFrameState(tile,frameCount);tile.__used=true;lruCache.markUsed(tile);if(tile.__contentEmpty){const children=tile.children;for(let i=0,l=children.length;i0&&tile.__depth+1>=maxDepth)return true}let anyChildrenUsed=false;const children=tile.children;for(let i=0,l=children.length;i{if(a.__depth!==b.__depth)return a.__depth>b.__depth?-1:1;else if(a.__inFrustum!==b.__inFrustum)return a.__inFrustum?1:-1;else if(a.__used!==b.__used)return a.__used?1:-1;else if(a.__error!==b.__error)return a.__error>b.__error?1:-1;else if(a.__distanceFromCamera!==b.__distanceFromCamera)return a.__distanceFromCamera>b.__distanceFromCamera?-1:1;return 0};const $5a6f7a997885dc30$var$lruPriorityCallback=tile=>1/(tile.__depthFromRenderedParent+1);class $5a6f7a997885dc30$var$TilesRendererBase{get rootTileSet(){const tileSet=this.tileSets[this.rootURL];if(!tileSet||tileSet instanceof Promise)return null;else return tileSet}get root(){const tileSet=this.rootTileSet;return tileSet?tileSet.root:null}constructor(url){this.tileSets={};this.rootURL=url;this.fetchOptions={};this.preprocessURL=null;const lruCache=new $e0d7a242557dc8e6$exports.LRUCache;lruCache.unloadPriorityCallback=$5a6f7a997885dc30$var$lruPriorityCallback;const downloadQueue=new $096d2234d1235002$exports.PriorityQueue;downloadQueue.maxJobs=4;downloadQueue.priorityCallback=$5a6f7a997885dc30$var$priorityCallback;const parseQueue=new $096d2234d1235002$exports.PriorityQueue;parseQueue.maxJobs=1;parseQueue.priorityCallback=$5a6f7a997885dc30$var$priorityCallback;this.lruCache=lruCache;this.downloadQueue=downloadQueue;this.parseQueue=parseQueue;this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0};this.frameCount=0;this.errorTarget=6;this.errorThreshold=Infinity;this.loadSiblings=true;this.displayActiveTiles=false;this.maxDepth=Infinity;this.stopAtEmptyTiles=true}traverse(beforecb,aftercb){const tileSets=this.tileSets;const rootTileSet=tileSets[this.rootURL];if(!rootTileSet||!rootTileSet.root)return;(0,$cd531a5f1c18e9cc$exports.traverseSet)(rootTileSet.root,(tile,...args)=>{this.ensureChildrenArePreprocessed(tile);return beforecb?beforecb(tile,...args):false},aftercb)}update(){const stats=this.stats;const lruCache=this.lruCache;const tileSets=this.tileSets;const rootTileSet=tileSets[this.rootURL];if(!(this.rootURL in tileSets)){this.loadRootTileSet(this.rootURL);return}else if(!rootTileSet||!rootTileSet.root)return;const root=rootTileSet.root;stats.inFrustum=0,stats.used=0,stats.active=0,stats.visible=0,this.frameCount++;(0,$cd531a5f1c18e9cc$exports.determineFrustumSet)(root,this);(0,$cd531a5f1c18e9cc$exports.markUsedSetLeaves)(root,this);(0,$cd531a5f1c18e9cc$exports.skipTraversal)(root,this);(0,$cd531a5f1c18e9cc$exports.toggleTiles)(root,this);lruCache.scheduleUnload()}parseTile(buffer,tile,extension){return null}disposeTile(tile){}preprocessNode(tile,tileSetDir,parentTile=null){if(tile.content){if(!("uri"in tile.content)&&"url"in tile.content){tile.content.uri=tile.content.url;delete tile.content.url}if(tile.content.uri)tile.content.uri=new URL(tile.content.uri,tileSetDir+"/").toString();if(tile.content.boundingVolume&&!("box"in tile.content.boundingVolume||"sphere"in tile.content.boundingVolume||"region"in tile.content.boundingVolume))delete tile.content.boundingVolume}tile.parent=parentTile;tile.children=tile.children||[];const uri=tile.content&&tile.content.uri;if(uri){const extension=(0,$7ff9fb142d83939f$exports.getUrlExtension)(tile.content.uri);const isExternalTileSet=Boolean(extension&&extension.toLowerCase()==="json");tile.__externalTileSet=isExternalTileSet;tile.__contentEmpty=isExternalTileSet}else{tile.__externalTileSet=false;tile.__contentEmpty=true}tile.__distanceFromCamera=Infinity;tile.__error=Infinity;tile.__inFrustum=false;tile.__isLeaf=false;tile.__usedLastFrame=false;tile.__used=false;tile.__wasSetVisible=false;tile.__visible=false;tile.__childrenWereVisible=false;tile.__allChildrenLoaded=false;tile.__wasSetActive=false;tile.__active=false;tile.__loadingState=$002d29a772485791$exports.UNLOADED;tile.__loadIndex=0;tile.__loadAbort=null;tile.__depthFromRenderedParent=-1;if(parentTile===null){tile.__depth=0;tile.refine=tile.refine||"REPLACE"}else{tile.__depth=parentTile.__depth+1;tile.refine=tile.refine||parentTile.refine}tile.__basePath=tileSetDir}setTileActive(tile,state){}setTileVisible(tile,state){}calculateError(tile){return 0}tileInView(tile){return true}ensureChildrenArePreprocessed(tile){const children=tile.children;for(let i=0,l=children.length;i{if(tile.__loadingState===$002d29a772485791$exports.FAILED)tile.__loadingState=$002d29a772485791$exports.UNLOADED});stats.failed=0}fetchTileSet(url,fetchOptions,parent=null){return fetch(url,fetchOptions).then(res=>{if(res.ok)return res.json();else throw new Error(`TilesRenderer: Failed to load tileset "${url}" with status ${res.status} : ${res.statusText}`)}).then(json=>{const version=json.asset.version;console.assert(version==="1.0"||version==="0.0","asset.version is expected to be a string of \"1.0\" or \"0.0\"");let basePath=url.replace(/\/[^\/]*\/?$/,"");basePath=new URL(basePath,window.location.href).toString();this.preprocessNode(json.root,basePath,parent);return json})}loadRootTileSet(url){const tileSets=this.tileSets;if(!(url in tileSets)){const pr=this.fetchTileSet(this.preprocessURL?this.preprocessURL(url):url,this.fetchOptions).then(json=>{tileSets[url]=json});pr.catch(err=>{console.error(err);tileSets[url]=err});tileSets[url]=pr;return pr}else if(tileSets[url]instanceof Error)return Promise.reject(tileSets[url]);else return Promise.resolve(tileSets[url])}requestTileContents(tile){if(tile.__loadingState!==$002d29a772485791$exports.UNLOADED)return;const stats=this.stats;const lruCache=this.lruCache;const downloadQueue=this.downloadQueue;const parseQueue=this.parseQueue;const isExternalTileSet=tile.__externalTileSet;lruCache.add(tile,t=>{if(t.__loadingState===$002d29a772485791$exports.LOADING){t.__loadAbort.abort();t.__loadAbort=null}else if(isExternalTileSet)t.children.length=0;else this.disposeTile(t);if(t.__loadingState===$002d29a772485791$exports.LOADING)stats.downloading--;else if(t.__loadingState===$002d29a772485791$exports.PARSING)stats.parsing--;t.__loadingState=$002d29a772485791$exports.UNLOADED;t.__loadIndex++;parseQueue.remove(t);downloadQueue.remove(t)});tile.__loadIndex++;const loadIndex=tile.__loadIndex;const controller=new AbortController;const signal=controller.signal;stats.downloading++;tile.__loadAbort=controller;tile.__loadingState=$002d29a772485791$exports.LOADING;const errorCallback=e=>{if(tile.__loadIndex!==loadIndex)return;if(e.name!=="AbortError"){parseQueue.remove(tile);downloadQueue.remove(tile);if(tile.__loadingState===$002d29a772485791$exports.PARSING)stats.parsing--;else if(tile.__loadingState===$002d29a772485791$exports.LOADING)stats.downloading--;stats.failed++;console.error(`TilesRenderer : Failed to load tile at url "${tile.content.uri}".`);console.error(e);tile.__loadingState=$002d29a772485791$exports.FAILED}else lruCache.remove(tile)};if(isExternalTileSet)downloadQueue.add(tile,tileCb=>{if(tileCb.__loadIndex!==loadIndex)return Promise.resolve();const uri=this.preprocessURL?this.preprocessURL(tileCb.content.uri):tileCb.content.uri;return this.fetchTileSet(uri,Object.assign({signal:signal},this.fetchOptions),tileCb)}).then(json=>{if(tile.__loadIndex!==loadIndex)return;stats.downloading--;tile.__loadAbort=null;tile.__loadingState=$002d29a772485791$exports.LOADED;tile.children.push(json.root)}).catch(errorCallback);else downloadQueue.add(tile,downloadTile=>{if(downloadTile.__loadIndex!==loadIndex)return Promise.resolve();const uri=this.preprocessURL?this.preprocessURL(downloadTile.content.uri):downloadTile.content.uri;return fetch(uri,Object.assign({signal:signal},this.fetchOptions))}).then(res=>{if(tile.__loadIndex!==loadIndex)return;if(res.ok)return res.arrayBuffer();else throw new Error(`Failed to load model with error code ${res.status}`)}).then(buffer=>{if(tile.__loadIndex!==loadIndex)return;stats.downloading--;stats.parsing++;tile.__loadAbort=null;tile.__loadingState=$002d29a772485791$exports.PARSING;return parseQueue.add(tile,parseTile=>{if(parseTile.__loadIndex!==loadIndex)return Promise.resolve();const uri=parseTile.content.uri;const extension=(0,$7ff9fb142d83939f$exports.getUrlExtension)(uri);return this.parseTile(buffer,parseTile,extension)})}).then(()=>{if(tile.__loadIndex!==loadIndex)return;stats.parsing--;tile.__loadingState=$002d29a772485791$exports.LOADED;if(tile.__wasSetVisible)this.setTileVisible(tile,true);if(tile.__wasSetActive)this.setTileActive(tile,true)}).catch(errorCallback)}dispose(){const lruCache=this.lruCache;const toRemove=[];this.traverse(t=>{toRemove.push(t);return false});for(let i=0,l=toRemove.length;ibinOffset+binLength)throw new Error("FeatureTable: Feature data read outside binary body length.");return data}}getBuffer(byteOffset,byteLength){const{buffer:buffer,binOffset:binOffset}=this;return buffer.slice(binOffset+byteOffset,binOffset+byteOffset+byteLength)}}$5bfd2e53a5ab8bef$exports.FeatureTable=$5bfd2e53a5ab8bef$var$FeatureTable;class $5bfd2e53a5ab8bef$var$BatchTable extends $5bfd2e53a5ab8bef$var$FeatureTable{constructor(buffer,batchSize,start,headerLength,binLength){super(buffer,start,headerLength,binLength);this.batchSize=batchSize}getData(key,componentType=null,type=null){return super.getData(key,this.batchSize,componentType,type)}}$5bfd2e53a5ab8bef$exports.BatchTable=$5bfd2e53a5ab8bef$var$BatchTable;var $e6b785bba9ea128d$exports={};"use strict";Object.defineProperty($e6b785bba9ea128d$exports,"__esModule",{value:true});$e6b785bba9ea128d$exports.LoaderBase=void 0;class $e6b785bba9ea128d$var$LoaderBase{constructor(){this.fetchOptions={};this.workingPath=""}load(url){return fetch(url,this.fetchOptions).then(res=>{if(!res.ok)throw new Error(`Failed to load file "${url}" with status ${res.status} : ${res.statusText}`);return res.arrayBuffer()}).then(buffer=>{if(this.workingPath==="")this.workingPath=this.workingPathForURL(url);return this.parse(buffer)})}resolveExternalURL(url){if(/^[^\\/]/.test(url))return this.workingPath+"/"+url;else return url}workingPathForURL(url){const splits=url.split(/[\\/]/g);splits.pop();const workingPath=splits.join("/");return workingPath+"/"}parse(buffer){throw new Error("LoaderBase: Parse not implemented.")}}$e6b785bba9ea128d$exports.LoaderBase=$e6b785bba9ea128d$var$LoaderBase;var $9e3e194659cc5776$exports={};"use strict";Object.defineProperty($9e3e194659cc5776$exports,"__esModule",{value:true});$9e3e194659cc5776$exports.readMagicBytes=$9e3e194659cc5776$var$readMagicBytes;function $9e3e194659cc5776$var$readMagicBytes(bufferOrDataView){let view;if(bufferOrDataView instanceof DataView)view=bufferOrDataView;else view=new DataView(bufferOrDataView);if(String.fromCharCode(view.getUint8(0))==="{")return null;let magicBytes="";for(let i=0;i<4;i++)magicBytes+=String.fromCharCode(view.getUint8(i));return magicBytes}class $f5d9b5dde53306bf$var$B3DMLoaderBase extends $e6b785bba9ea128d$exports.LoaderBase{parse(buffer){const dataView=new DataView(buffer);const magic=(0,$9e3e194659cc5776$exports.readMagicBytes)(dataView);console.assert(magic==="b3dm");const version=dataView.getUint32(4,true);console.assert(version===1);const byteLength=dataView.getUint32(8,true);console.assert(byteLength===buffer.byteLength);const featureTableJSONByteLength=dataView.getUint32(12,true);const featureTableBinaryByteLength=dataView.getUint32(16,true);const batchTableJSONByteLength=dataView.getUint32(20,true);const batchTableBinaryByteLength=dataView.getUint32(24,true);const featureTableStart=28;const featureTableBuffer=buffer.slice(featureTableStart,featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength);const featureTable=new $5bfd2e53a5ab8bef$exports.FeatureTable(featureTableBuffer,0,featureTableJSONByteLength,featureTableBinaryByteLength);const batchTableStart=featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength;const batchTableBuffer=buffer.slice(batchTableStart,batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength);const batchTable=new $5bfd2e53a5ab8bef$exports.BatchTable(batchTableBuffer,featureTable.getData("BATCH_LENGTH"),0,batchTableJSONByteLength,batchTableBinaryByteLength);const glbStart=batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength;const glbBytes=new Uint8Array(buffer,glbStart,byteLength-glbStart);return{version:version,featureTable:featureTable,batchTable:batchTable,glbBytes:glbBytes}}}$f5d9b5dde53306bf$exports.B3DMLoaderBase=$f5d9b5dde53306bf$var$B3DMLoaderBase;class $0aa3d1def57e98b1$var$B3DMLoader extends $f5d9b5dde53306bf$exports.B3DMLoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager;this.adjustmentTransform=new $5OpyM$Matrix4}parse(buffer){const b3dm=super.parse(buffer);const gltfBuffer=b3dm.glbBytes.slice().buffer;return new Promise((resolve,reject)=>{const manager=this.manager;const fetchOptions=this.fetchOptions;const loader=manager.getHandler("path.gltf")||new $5OpyM$GLTFLoader(manager);if(fetchOptions.credentials==="include"&&fetchOptions.mode==="cors")loader.setCrossOrigin("use-credentials");if("credentials"in fetchOptions)loader.setWithCredentials(fetchOptions.credentials==="include");if(fetchOptions.headers)loader.setRequestHeader(fetchOptions.headers);let workingPath=this.workingPath;if(!/[\\/]$/.test(workingPath)&&workingPath.length)workingPath+="/";const adjustmentTransform=this.adjustmentTransform;loader.parse(gltfBuffer,workingPath,model=>{const{batchTable:batchTable,featureTable:featureTable}=b3dm;const{scene:scene}=model;const rtcCenter=featureTable.getData("RTC_CENTER");if(rtcCenter){scene.position.x+=rtcCenter[0];scene.position.y+=rtcCenter[1];scene.position.z+=rtcCenter[2]}model.scene.updateMatrix();model.scene.matrix.multiply(adjustmentTransform);model.scene.matrix.decompose(model.scene.position,model.scene.quaternion,model.scene.scale);model.batchTable=batchTable;model.featureTable=featureTable;scene.batchTable=batchTable;scene.featureTable=featureTable;resolve(model)},reject)})}}$0aa3d1def57e98b1$exports.B3DMLoader=$0aa3d1def57e98b1$var$B3DMLoader;var $1ddd6ca16eb224df$exports={};"use strict";Object.defineProperty($1ddd6ca16eb224df$exports,"__esModule",{value:true});$1ddd6ca16eb224df$exports.PNTSLoader=void 0;var $d408eda5a179398a$exports={};"use strict";Object.defineProperty($d408eda5a179398a$exports,"__esModule",{value:true});$d408eda5a179398a$exports.PNTSLoaderBase=void 0;class $d408eda5a179398a$var$PNTSLoaderBase extends $e6b785bba9ea128d$exports.LoaderBase{parse(buffer){const dataView=new DataView(buffer);const magic=(0,$9e3e194659cc5776$exports.readMagicBytes)(dataView);console.assert(magic==="pnts");const version=dataView.getUint32(4,true);console.assert(version===1);const byteLength=dataView.getUint32(8,true);console.assert(byteLength===buffer.byteLength);const featureTableJSONByteLength=dataView.getUint32(12,true);const featureTableBinaryByteLength=dataView.getUint32(16,true);const batchTableJSONByteLength=dataView.getUint32(20,true);const batchTableBinaryByteLength=dataView.getUint32(24,true);const featureTableStart=28;const featureTableBuffer=buffer.slice(featureTableStart,featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength);const featureTable=new $5bfd2e53a5ab8bef$exports.FeatureTable(featureTableBuffer,0,featureTableJSONByteLength,featureTableBinaryByteLength);const batchTableStart=featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength;const batchTableBuffer=buffer.slice(batchTableStart,batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength);const batchTable=new $5bfd2e53a5ab8bef$exports.BatchTable(batchTableBuffer,featureTable.getData("BATCH_LENGTH")||featureTable.getData("POINTS_LENGTH"),0,batchTableJSONByteLength,batchTableBinaryByteLength);return Promise.resolve({version:version,featureTable:featureTable,batchTable:batchTable})}}$d408eda5a179398a$exports.PNTSLoaderBase=$d408eda5a179398a$var$PNTSLoaderBase;const $1ddd6ca16eb224df$var$DRACO_ATTRIBUTE_MAP={RGB:"color",POSITION:"position"};class $1ddd6ca16eb224df$var$PNTSLoader extends $d408eda5a179398a$exports.PNTSLoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager}parse(buffer){return super.parse(buffer).then(async result=>{const{featureTable:featureTable}=result;const material=new $5OpyM$PointsMaterial;const extensions=featureTable.header.extensions;const translationOffset=new $5OpyM$Vector3;let geometry;if(extensions&&extensions["3DTILES_draco_point_compression"]){const{byteOffset:byteOffset,byteLength:byteLength,properties:properties}=extensions["3DTILES_draco_point_compression"];const dracoLoader=this.manager.getHandler("draco.drc");if(dracoLoader==null)throw new Error("PNTSLoader: dracoLoader not available.");const attributeIDs={};for(const key in properties)if(key in $1ddd6ca16eb224df$var$DRACO_ATTRIBUTE_MAP&&key in properties){const mappedKey=$1ddd6ca16eb224df$var$DRACO_ATTRIBUTE_MAP[key];attributeIDs[mappedKey]=properties[key]}const taskConfig={attributeIDs:attributeIDs,attributeTypes:{position:"Float32Array",color:"Uint8Array"},useUniqueIDs:true};const buffer=featureTable.getBuffer(byteOffset,byteLength);geometry=await dracoLoader.decodeGeometry(buffer,taskConfig);if(geometry.attributes.color)material.vertexColors=true}else{const POINTS_LENGTH=featureTable.getData("POINTS_LENGTH");const POSITION=featureTable.getData("POSITION",POINTS_LENGTH,"FLOAT","VEC3");const RGB=featureTable.getData("RGB",POINTS_LENGTH,"UNSIGNED_BYTE","VEC3");const POSITION_QUANTIZED=featureTable.getData("POSITION_QUANTIZED",POINTS_LENGTH,"UNSIGNED_SHORT","VEC3");const QUANTIZED_VOLUME_SCALE=featureTable.getData("QUANTIZED_VOLUME_SCALE",POINTS_LENGTH,"FLOAT","VEC3");const QUANTIZED_VOLUME_OFFSET=featureTable.getData("QUANTIZED_VOLUME_OFFSET",POINTS_LENGTH,"FLOAT","VEC3");geometry=new $5OpyM$BufferGeometry;if(POSITION_QUANTIZED){const decodedPositions=new Float32Array(POINTS_LENGTH*3);for(let i=0;i{if(feature in featureTable.header)console.warn(`PNTSLoader: Unsupported FeatureTable feature "${feature}" detected.`)});const object=new $5OpyM$Points(geometry,material);object.position.copy(translationOffset);result.scene=object;result.scene.featureTable=featureTable;const rtcCenter=featureTable.getData("RTC_CENTER");if(rtcCenter){result.scene.position.x+=rtcCenter[0];result.scene.position.y+=rtcCenter[1];result.scene.position.z+=rtcCenter[2]}return result})}}$1ddd6ca16eb224df$exports.PNTSLoader=$1ddd6ca16eb224df$var$PNTSLoader;var $0bc85483bdeca322$exports={};"use strict";Object.defineProperty($0bc85483bdeca322$exports,"__esModule",{value:true});$0bc85483bdeca322$exports.I3DMLoader=void 0;var $bcb352fb74bed4a5$exports={};"use strict";Object.defineProperty($bcb352fb74bed4a5$exports,"__esModule",{value:true});$bcb352fb74bed4a5$exports.I3DMLoaderBase=void 0;class $bcb352fb74bed4a5$var$I3DMLoaderBase extends $e6b785bba9ea128d$exports.LoaderBase{parse(buffer){const dataView=new DataView(buffer);const magic=(0,$9e3e194659cc5776$exports.readMagicBytes)(dataView);console.assert(magic==="i3dm");const version=dataView.getUint32(4,true);console.assert(version===1);const byteLength=dataView.getUint32(8,true);console.assert(byteLength===buffer.byteLength);const featureTableJSONByteLength=dataView.getUint32(12,true);const featureTableBinaryByteLength=dataView.getUint32(16,true);const batchTableJSONByteLength=dataView.getUint32(20,true);const batchTableBinaryByteLength=dataView.getUint32(24,true);const gltfFormat=dataView.getUint32(28,true);const featureTableStart=32;const featureTableBuffer=buffer.slice(featureTableStart,featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength);const featureTable=new $5bfd2e53a5ab8bef$exports.FeatureTable(featureTableBuffer,0,featureTableJSONByteLength,featureTableBinaryByteLength);const batchTableStart=featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength;const batchTableBuffer=buffer.slice(batchTableStart,batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength);const batchTable=new $5bfd2e53a5ab8bef$exports.BatchTable(batchTableBuffer,featureTable.getData("INSTANCES_LENGTH"),0,batchTableJSONByteLength,batchTableBinaryByteLength);const glbStart=batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength;const bodyBytes=new Uint8Array(buffer,glbStart,byteLength-glbStart);let glbBytes=null;let promise=null;if(gltfFormat){glbBytes=bodyBytes;promise=Promise.resolve()}else{const externalUri=this.resolveExternalURL((0,$5d480c6739d4b949$exports.arrayToString)(bodyBytes));promise=fetch(externalUri,this.fetchOptions).then(res=>{if(!res.ok)throw new Error(`I3DMLoaderBase : Failed to load file "${externalUri}" with status ${res.status} : ${res.statusText}`);return res.arrayBuffer()}).then(buffer=>{glbBytes=new Uint8Array(buffer)})}return promise.then(()=>{return{version:version,featureTable:featureTable,batchTable:batchTable,glbBytes:glbBytes}})}}$bcb352fb74bed4a5$exports.I3DMLoaderBase=$bcb352fb74bed4a5$var$I3DMLoaderBase;const $0bc85483bdeca322$var$tempFwd=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempUp=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempRight=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempPos=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempQuat=new $5OpyM$Quaternion;const $0bc85483bdeca322$var$tempSca=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempMat=new $5OpyM$Matrix4;class $0bc85483bdeca322$var$I3DMLoader extends $bcb352fb74bed4a5$exports.I3DMLoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager;this.adjustmentTransform=new $5OpyM$Matrix4}resolveExternalURL(url){return this.manager.resolveURL(super.resolveExternalURL(url))}parse(buffer){return super.parse(buffer).then(i3dm=>{const{featureTable:featureTable,batchTable:batchTable}=i3dm;const gltfBuffer=i3dm.glbBytes.slice().buffer;return new Promise((resolve,reject)=>{const fetchOptions=this.fetchOptions;const manager=this.manager;const loader=manager.getHandler("path.gltf")||new $5OpyM$GLTFLoader(manager);if(fetchOptions.credentials==="include"&&fetchOptions.mode==="cors")loader.setCrossOrigin("use-credentials");if("credentials"in fetchOptions)loader.setWithCredentials(fetchOptions.credentials==="include");if(fetchOptions.headers)loader.setRequestHeader(fetchOptions.headers);let workingPath=this.workingPath;if(!/[\\/]$/.test(workingPath))workingPath+="/";const adjustmentTransform=this.adjustmentTransform;loader.parse(gltfBuffer,workingPath,model=>{const INSTANCES_LENGTH=featureTable.getData("INSTANCES_LENGTH");const POSITION=featureTable.getData("POSITION",INSTANCES_LENGTH,"FLOAT","VEC3");const NORMAL_UP=featureTable.getData("NORMAL_UP",INSTANCES_LENGTH,"FLOAT","VEC3");const NORMAL_RIGHT=featureTable.getData("NORMAL_RIGHT",INSTANCES_LENGTH,"FLOAT","VEC3");const SCALE_NON_UNIFORM=featureTable.getData("SCALE_NON_UNIFORM",INSTANCES_LENGTH,"FLOAT","VEC3");const SCALE=featureTable.getData("SCALE",INSTANCES_LENGTH,"FLOAT","SCALAR");["RTC_CENTER","QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","EAST_NORTH_UP","POSITION_QUANTIZED","NORMAL_UP_OCT32P","NORMAL_RIGHT_OCT32P"].forEach(feature=>{if(feature in featureTable.header)console.warn(`I3DMLoader: Unsupported FeatureTable feature "${feature}" detected.`)});const instanceMap=new Map;const instances=[];model.scene.traverse(child=>{if(child.isMesh){const{geometry:geometry,material:material}=child;const instancedMesh=new $5OpyM$InstancedMesh(geometry,material,INSTANCES_LENGTH);instancedMesh.position.copy(child.position);instancedMesh.rotation.copy(child.rotation);instancedMesh.scale.copy(child.scale);instances.push(instancedMesh);instanceMap.set(child,instancedMesh)}});const averageVector=new $5OpyM$Vector3;for(let i=0;i{const parent=mesh.parent;if(parent){parent.remove(mesh);parent.add(instancedMesh);instancedMesh.updateMatrixWorld();instancedMesh.position.copy(averageVector).applyMatrix4(instancedMesh.matrixWorld)}});for(let i=0;i{const group=new $5OpyM$Group;results.forEach(result=>{group.add(result.scene)});return{tiles:results,scene:group}})}}$54879e9a7dc345e0$exports.CMPTLoader=$54879e9a7dc345e0$var$CMPTLoader;var $29ced67d26e5c4e2$exports={};"use strict";Object.defineProperty($29ced67d26e5c4e2$exports,"__esModule",{value:true});$29ced67d26e5c4e2$exports.GLTFExtensionLoader=void 0;var $44c3bffa5e49f297$exports={};"use strict";Object.defineProperty($44c3bffa5e49f297$exports,"__esModule",{value:true});$44c3bffa5e49f297$exports.GLTFCesiumRTCExtension=void 0;class $44c3bffa5e49f297$var$GLTFCesiumRTCExtension{constructor(){this.name="CESIUM_RTC"}afterRoot(res){if(res.parser.json.extensions&&res.parser.json.extensions.CESIUM_RTC){const{center:center}=res.parser.json.extensions.CESIUM_RTC;if(center){res.scene.position.x+=center[0];res.scene.position.y+=center[1];res.scene.position.z+=center[2]}}}}$44c3bffa5e49f297$exports.GLTFCesiumRTCExtension=$44c3bffa5e49f297$var$GLTFCesiumRTCExtension;class $29ced67d26e5c4e2$var$GLTFExtensionLoader extends $e6b785bba9ea128d$exports.LoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager}parse(buffer){return new Promise((resolve,reject)=>{const manager=this.manager;const fetchOptions=this.fetchOptions;let loader=manager.getHandler("path.gltf")||manager.getHandler("path.glb");if(!loader){loader=new $5OpyM$GLTFLoader(manager);loader.register(()=>new $44c3bffa5e49f297$exports.GLTFCesiumRTCExtension);if(fetchOptions.credentials==="include"&&fetchOptions.mode==="cors")loader.setCrossOrigin("use-credentials");if("credentials"in fetchOptions)loader.setWithCredentials(fetchOptions.credentials==="include");if(fetchOptions.headers)loader.setRequestHeader(fetchOptions.headers)}let resourcePath=loader.resourcePath||loader.path||this.workingPath;if(!/[\\/]$/.test(resourcePath)&&resourcePath.length)resourcePath+="/";loader.parse(buffer,resourcePath,model=>{resolve(model)},reject)})}}$29ced67d26e5c4e2$exports.GLTFExtensionLoader=$29ced67d26e5c4e2$var$GLTFExtensionLoader;var $3fcce8a4f74b2abc$exports={};"use strict";Object.defineProperty($3fcce8a4f74b2abc$exports,"__esModule",{value:true});$3fcce8a4f74b2abc$exports.TilesGroup=void 0;const $3fcce8a4f74b2abc$var$tempMat=new $5OpyM$Matrix4;class $3fcce8a4f74b2abc$var$TilesGroup extends $5OpyM$Group{constructor(tilesRenderer){super();this.name="TilesRenderer.TilesGroup";this.tilesRenderer=tilesRenderer}raycast(raycaster,intersects){if(this.tilesRenderer.optimizeRaycast)this.tilesRenderer.raycast(raycaster,intersects)}updateMatrixWorld(force){if(this.matrixAutoUpdate)this.updateMatrix();if(this.matrixWorldNeedsUpdate||force){if(this.parent===null)$3fcce8a4f74b2abc$var$tempMat.copy(this.matrix);else $3fcce8a4f74b2abc$var$tempMat.multiplyMatrices(this.parent.matrixWorld,this.matrix);this.matrixWorldNeedsUpdate=false;const elA=$3fcce8a4f74b2abc$var$tempMat.elements;const elB=this.matrixWorld.elements;let isDifferent=false;for(let i=0;i<16;i++){const itemA=elA[i];const itemB=elB[i];const diff=Math.abs(itemA-itemB);if(diff>Number.EPSILON){isDifferent=true;break}}if(isDifferent){this.matrixWorld.copy($3fcce8a4f74b2abc$var$tempMat);const children=this.children;for(let i=0,l=children.length;i{Object.getPrototypeOf(c).raycast.call(c,raycaster,intersects)})}function $c1ac95a1e8efcc86$var$intersectTileSceneFirstHist(scene,raycaster){$c1ac95a1e8efcc86$var$intersectTileScene(scene,raycaster,$c1ac95a1e8efcc86$var$_hitArray);$c1ac95a1e8efcc86$var$_hitArray.sort($c1ac95a1e8efcc86$var$distanceSort);const hit=$c1ac95a1e8efcc86$var$_hitArray[0]||null;$c1ac95a1e8efcc86$var$_hitArray.length=0;return hit}function $c1ac95a1e8efcc86$var$raycastTraverseFirstHit(renderer,tile,raycaster,localRay=null){const{group:group,activeTiles:activeTiles}=renderer;renderer.ensureChildrenArePreprocessed(tile);if(localRay===null){localRay=$c1ac95a1e8efcc86$var$_localRay;$c1ac95a1e8efcc86$var$_mat.copy(group.matrixWorld).invert();localRay.copy(raycaster.ray).applyMatrix4($c1ac95a1e8efcc86$var$_mat)}const array=[];const children=tile.children;for(let i=0,l=children.length;ibestHitDistSq)break;const hit=$c1ac95a1e8efcc86$var$raycastTraverseFirstHit(renderer,tile,raycaster,localRay);if(hit){const hitDistSq=hit.distance*hit.distance;if(hitDistSqnew $5OpyM$Vector3)}update(){const{points:points,inverseTransform:inverseTransform,transform:transform,box:box}=this;inverseTransform.copy(transform).invert();const{min:min,max:max}=box;let index=0;for(let x=-1;x<=1;x+=2){for(let y=-1;y<=1;y+=2)for(let z=-1;z<=1;z+=2){points[index].set(x<0?min.x:max.x,y<0?min.y:max.y,z<0?min.z:max.z).applyMatrix4(transform);index++}}}intersectsFrustum(frustum){const{points:points}=this;const{planes:planes}=frustum;for(let i=0;i<6;i++){const plane=planes[i];let maxDistance=-Infinity;for(let j=0;j<8;j++){const v=points[j];const dist=plane.distanceToPoint(v);maxDistance=maxDistanceMath.PI/4){multiplier=-1;latPrime=lat-1e-7}const norm=this.getCartographicToNormal(lat,lon,$9160f8f2e0578e98$var$_vec).normalize();const normPrime=this.getCartographicToNormal(latPrime,lon,$9160f8f2e0578e98$var$_vec2).normalize();westTarget.crossVectors(norm,normPrime).normalize().multiplyScalar(multiplier);return target.crossVectors(westTarget,norm).normalize()}getCartographicToPosition(lat,lon,height,target){this.getCartographicToNormal(lat,lon,$9160f8f2e0578e98$var$_norm);const radius=this.radius;$9160f8f2e0578e98$var$_vec.copy($9160f8f2e0578e98$var$_norm);$9160f8f2e0578e98$var$_vec.x*=radius.x**2;$9160f8f2e0578e98$var$_vec.y*=radius.y**2;$9160f8f2e0578e98$var$_vec.z*=radius.z**2;const gamma=Math.sqrt($9160f8f2e0578e98$var$_norm.dot($9160f8f2e0578e98$var$_vec));$9160f8f2e0578e98$var$_vec.divideScalar(gamma);return target.copy($9160f8f2e0578e98$var$_vec).addScaledVector($9160f8f2e0578e98$var$_norm,height)}getPositionToCartographic(pos,target){this.getPositionToSurfacePoint(pos,$9160f8f2e0578e98$var$_vec);this.getPositionToNormal(pos,$9160f8f2e0578e98$var$_norm);const heightDelta=$9160f8f2e0578e98$var$_vec2.subVectors(pos,$9160f8f2e0578e98$var$_vec);target.lon=Math.atan2($9160f8f2e0578e98$var$_norm.y,$9160f8f2e0578e98$var$_norm.x);target.lat=Math.asin($9160f8f2e0578e98$var$_norm.z);target.height=Math.sign(heightDelta.dot(pos))*heightDelta.length();return target}getCartographicToNormal(lat,lon,target){$9160f8f2e0578e98$var$_spherical.set(1,(0,$1hGdn.latitudeToSphericalPhi)(lat),lon);target.setFromSpherical($9160f8f2e0578e98$var$_spherical).normalize();(0,$1hGdn.swapToGeoFrame)(target);return target}getPositionToNormal(pos,target){const radius=this.radius;target.copy(pos);target.x/=radius.x**2;target.y/=radius.y**2;target.z/=radius.z**2;target.normalize();return target}getPositionToSurfacePoint(pos,target){const radius=this.radius;const invRadiusSqX=1/radius.x**2;const invRadiusSqY=1/radius.y**2;const invRadiusSqZ=1/radius.z**2;const x2=pos.x*pos.x*invRadiusSqX;const y2=pos.y*pos.y*invRadiusSqY;const z2=pos.z*pos.z*invRadiusSqZ;const squaredNorm=x2+y2+z2;const ratio=Math.sqrt(1/squaredNorm);const intersection=$9160f8f2e0578e98$var$_vec.copy(pos).multiplyScalar(ratio);if(squaredNorm<$9160f8f2e0578e98$var$CENTER_EPS)return!isFinite(ratio)?null:target.copy(intersection);const gradient=$9160f8f2e0578e98$var$_vec2.set(intersection.x*invRadiusSqX*2,intersection.y*invRadiusSqY*2,intersection.z*invRadiusSqZ*2);let lambda=(1-ratio)*pos.length()/(0.5*gradient.length());let correction=0;let func,denominator;let xMultiplier,yMultiplier,zMultiplier;let xMultiplier2,yMultiplier2,zMultiplier2;let xMultiplier3,yMultiplier3,zMultiplier3;do{lambda-=correction;xMultiplier=1/(1+lambda*invRadiusSqX);yMultiplier=1/(1+lambda*invRadiusSqY);zMultiplier=1/(1+lambda*invRadiusSqZ);xMultiplier2=xMultiplier*xMultiplier;yMultiplier2=yMultiplier*yMultiplier;zMultiplier2=zMultiplier*zMultiplier;xMultiplier3=xMultiplier2*xMultiplier;yMultiplier3=yMultiplier2*yMultiplier;zMultiplier3=zMultiplier2*zMultiplier;func=x2*xMultiplier2+y2*yMultiplier2+z2*zMultiplier2-1;denominator=x2*xMultiplier3*invRadiusSqX+y2*yMultiplier3*invRadiusSqY+z2*zMultiplier3*invRadiusSqZ;const derivative=-2*denominator;correction=func/derivative}while(Math.abs(func)>$9160f8f2e0578e98$var$EPSILON12);return target.set(pos.x*xMultiplier,pos.y*yMultiplier,pos.z*zMultiplier)}}$9160f8f2e0578e98$exports.Ellipsoid=$9160f8f2e0578e98$var$Ellipsoid;const $aa7b3b269f245cbe$var$PI=Math.PI;const $aa7b3b269f245cbe$var$HALF_PI=$aa7b3b269f245cbe$var$PI/2;const $aa7b3b269f245cbe$var$_orthoX=new $5OpyM$Vector3;const $aa7b3b269f245cbe$var$_orthoY=new $5OpyM$Vector3;const $aa7b3b269f245cbe$var$_orthoZ=new $5OpyM$Vector3;const $aa7b3b269f245cbe$var$_invMatrix=new $5OpyM$Matrix4;let $aa7b3b269f245cbe$var$_poolIndex=0;const $aa7b3b269f245cbe$var$_pointsPool=[];function $aa7b3b269f245cbe$var$getVector(usePool=false){if(!usePool)return new $5OpyM$Vector3;if(!$aa7b3b269f245cbe$var$_pointsPool[$aa7b3b269f245cbe$var$_poolIndex])$aa7b3b269f245cbe$var$_pointsPool[$aa7b3b269f245cbe$var$_poolIndex]=new $5OpyM$Vector3;$aa7b3b269f245cbe$var$_poolIndex++;return $aa7b3b269f245cbe$var$_pointsPool[$aa7b3b269f245cbe$var$_poolIndex-1]}function $aa7b3b269f245cbe$var$resetPool(){$aa7b3b269f245cbe$var$_poolIndex=0}class $aa7b3b269f245cbe$var$EllipsoidRegion extends $9160f8f2e0578e98$exports.Ellipsoid{constructor(x,y,z,latStart=-$aa7b3b269f245cbe$var$HALF_PI,latEnd=$aa7b3b269f245cbe$var$HALF_PI,lonStart=0,lonEnd=2*$aa7b3b269f245cbe$var$PI,heightStart=0,heightEnd=0){super(x,y,z);this.latStart=latStart;this.latEnd=latEnd;this.lonStart=lonStart;this.lonEnd=lonEnd;this.heightStart=heightStart;this.heightEnd=heightEnd}_getPoints(usePool=false){const{latStart:latStart,latEnd:latEnd,lonStart:lonStart,lonEnd:lonEnd,heightStart:heightStart,heightEnd:heightEnd}=this;const midLat=$5OpyM$MathUtils.mapLinear(0.5,0,1,latStart,latEnd);const midLon=$5OpyM$MathUtils.mapLinear(0.5,0,1,lonStart,lonEnd);const lonOffset=Math.floor(lonStart/$aa7b3b269f245cbe$var$HALF_PI)*$aa7b3b269f245cbe$var$HALF_PI;const latlon=[[-$aa7b3b269f245cbe$var$PI/2,0],[$aa7b3b269f245cbe$var$PI/2,0],[0,lonOffset],[0,lonOffset+$aa7b3b269f245cbe$var$PI/2],[0,lonOffset+$aa7b3b269f245cbe$var$PI],[0,lonOffset+3*$aa7b3b269f245cbe$var$PI/2],[latStart,lonEnd],[latEnd,lonEnd],[latStart,lonStart],[latEnd,lonStart],[0,lonStart],[0,lonEnd],[midLat,midLon],[latStart,midLon],[latEnd,midLon],[midLat,lonStart],[midLat,lonEnd]];const target=[];const total=latlon.length;for(let z=0;z<=1;z++){const height=$5OpyM$MathUtils.mapLinear(z,0,1,heightStart,heightEnd);for(let i=0,l=total;i=latStart&&lat<=latEnd&&lon>=lonStart&&lon<=lonEnd){const v=$aa7b3b269f245cbe$var$getVector(usePool);target.push(v);this.getCartographicToPosition(lat,lon,height,v)}}}return target}getBoundingBox(box,matrix){$aa7b3b269f245cbe$var$resetPool();const{latStart:latStart,latEnd:latEnd,lonStart:lonStart,lonEnd:lonEnd}=this;const latRange=latEnd-latStart;if(latRange<$aa7b3b269f245cbe$var$PI/2){const midLat=$5OpyM$MathUtils.mapLinear(0.5,0,1,latStart,latEnd);const midLon=$5OpyM$MathUtils.mapLinear(0.5,0,1,lonStart,lonEnd);this.getCartographicToNormal(midLat,midLon,$aa7b3b269f245cbe$var$_orthoZ);$aa7b3b269f245cbe$var$_orthoY.set(0,0,1);$aa7b3b269f245cbe$var$_orthoX.crossVectors($aa7b3b269f245cbe$var$_orthoY,$aa7b3b269f245cbe$var$_orthoZ);$aa7b3b269f245cbe$var$_orthoY.crossVectors($aa7b3b269f245cbe$var$_orthoX,$aa7b3b269f245cbe$var$_orthoZ);matrix.makeBasis($aa7b3b269f245cbe$var$_orthoX,$aa7b3b269f245cbe$var$_orthoY,$aa7b3b269f245cbe$var$_orthoZ)}else{$aa7b3b269f245cbe$var$_orthoX.set(1,0,0);$aa7b3b269f245cbe$var$_orthoY.set(0,1,0);$aa7b3b269f245cbe$var$_orthoZ.set(0,0,1);matrix.makeBasis($aa7b3b269f245cbe$var$_orthoX,$aa7b3b269f245cbe$var$_orthoY,$aa7b3b269f245cbe$var$_orthoZ)}$aa7b3b269f245cbe$var$_invMatrix.copy(matrix).invert();const points=this._getPoints(true);for(let i=0,l=points.length;iobbDistance?sphereDistance:obbDistance}intersectsFrustum(frustum){const obb=this.obb||this.regionObb;const sphere=this.sphere;if(sphere&&!frustum.intersectsSphere(sphere))return false;if(obb&&!obb.intersectsFrustum(frustum))return false;return Boolean(sphere||obb)}getOBB(targetBox,targetMatrix){const obb=this.obb||this.regionObb;if(obb){targetBox.copy(obb.box);targetMatrix.copy(obb.transform)}else{this.getAABB(targetBox);targetMatrix.identity()}}getAABB(target){if(this.sphere)this.sphere.getBoundingBox(target);else{const obb=this.obb||this.regionObb;target.copy(obb.box).applyMatrix4(obb.transform)}}getSphere(target){if(this.sphere)target.copy(this.sphere);else if(this.region)this.region.getBoundingSphere(target);else{const obb=this.obb||this.regionObb;obb.box.getBoundingSphere(target);target.applyMatrix4(obb.transform)}}setObbData(data,transform){const obb=new $9e13f7da58b2928b$exports.OBB;$163be4c04da1c269$var$_vecX.set(data[3],data[4],data[5]);$163be4c04da1c269$var$_vecY.set(data[6],data[7],data[8]);$163be4c04da1c269$var$_vecZ.set(data[9],data[10],data[11]);const scaleX=$163be4c04da1c269$var$_vecX.length();const scaleY=$163be4c04da1c269$var$_vecY.length();const scaleZ=$163be4c04da1c269$var$_vecZ.length();$163be4c04da1c269$var$_vecX.normalize();$163be4c04da1c269$var$_vecY.normalize();$163be4c04da1c269$var$_vecZ.normalize();if(scaleX===0)$163be4c04da1c269$var$_vecX.crossVectors($163be4c04da1c269$var$_vecY,$163be4c04da1c269$var$_vecZ);if(scaleY===0)$163be4c04da1c269$var$_vecY.crossVectors($163be4c04da1c269$var$_vecX,$163be4c04da1c269$var$_vecZ);if(scaleZ===0)$163be4c04da1c269$var$_vecZ.crossVectors($163be4c04da1c269$var$_vecX,$163be4c04da1c269$var$_vecY);obb.transform.set($163be4c04da1c269$var$_vecX.x,$163be4c04da1c269$var$_vecY.x,$163be4c04da1c269$var$_vecZ.x,data[0],$163be4c04da1c269$var$_vecX.y,$163be4c04da1c269$var$_vecY.y,$163be4c04da1c269$var$_vecZ.y,data[1],$163be4c04da1c269$var$_vecX.z,$163be4c04da1c269$var$_vecY.z,$163be4c04da1c269$var$_vecZ.z,data[2],0,0,0,1).premultiply(transform);obb.box.min.set(-scaleX,-scaleY,-scaleZ);obb.box.max.set(scaleX,scaleY,scaleZ);obb.update();this.obb=obb}setSphereData(x,y,z,radius,transform){const sphere=new $5OpyM$Sphere;sphere.center.set(x,y,z);sphere.radius=radius;sphere.applyMatrix4(transform);this.sphere=sphere}setRegionData(west,south,east,north,minHeight,maxHeight){const region=new $aa7b3b269f245cbe$exports.EllipsoidRegion($002d29a772485791$exports.WGS84_RADIUS,$002d29a772485791$exports.WGS84_RADIUS,$002d29a772485791$exports.WGS84_HEIGHT,south,north,west,east,minHeight,maxHeight);const obb=new $9e13f7da58b2928b$exports.OBB;region.getBoundingBox(obb.box,obb.transform);obb.update();this.region=region;this.regionObb=obb}}$163be4c04da1c269$exports.TileBoundingVolume=$163be4c04da1c269$var$TileBoundingVolume;const $06d26e8e9f5361d3$var$INITIAL_FRUSTUM_CULLED=Symbol("INITIAL_FRUSTUM_CULLED");const $06d26e8e9f5361d3$var$tempMat=new $5OpyM$Matrix4;const $06d26e8e9f5361d3$var$tempMat2=new $5OpyM$Matrix4;const $06d26e8e9f5361d3$var$tempVector=new $5OpyM$Vector3;const $06d26e8e9f5361d3$var$X_AXIS=new $5OpyM$Vector3(1,0,0);const $06d26e8e9f5361d3$var$Y_AXIS=new $5OpyM$Vector3(0,1,0);function $06d26e8e9f5361d3$var$updateFrustumCulled(object,toInitialValue){object.traverse(c=>{c.frustumCulled=c[$06d26e8e9f5361d3$var$INITIAL_FRUSTUM_CULLED]&&toInitialValue})}class $06d26e8e9f5361d3$var$TilesRenderer extends $5a6f7a997885dc30$exports.TilesRendererBase{get autoDisableRendererCulling(){return this._autoDisableRendererCulling}set autoDisableRendererCulling(value){if(this._autoDisableRendererCulling!==value){super._autoDisableRendererCulling=value;this.forEachLoadedModel(scene=>{$06d26e8e9f5361d3$var$updateFrustumCulled(scene,!value)})}}constructor(...args){super(...args);this.group=new $3fcce8a4f74b2abc$exports.TilesGroup(this);this.cameras=[];this.cameraMap=new Map;this.cameraInfo=[];this.activeTiles=new Set;this.visibleTiles=new Set;this._autoDisableRendererCulling=true;this.optimizeRaycast=true;this.onLoadTileSet=null;this.onLoadModel=null;this.onDisposeModel=null;this.onTileVisibilityChange=null;const manager=new $5OpyM$LoadingManager;manager.setURLModifier(url=>{if(this.preprocessURL)return this.preprocessURL(url);else return url});this.manager=manager;const tilesRenderer=this;this._overridenRaycast=function(raycaster,intersects){if(!tilesRenderer.optimizeRaycast)Object.getPrototypeOf(this).raycast.call(this,raycaster,intersects)}}getBounds(target){if(!this.root)return false;const boundingVolume=this.root.cached.boundingVolume;if(boundingVolume){boundingVolume.getAABB(target);return true}else return true}getOrientedBounds(targetBox,targetMatrix){if(!this.root)return false;const boundingVolume=this.root.cached.boundingVolume;if(boundingVolume){boundingVolume.getOBB(targetBox,targetMatrix);return true}else return true}getBoundingSphere(target){if(!this.root)return false;const boundingVolume=this.root.cached.boundingVolume;if(boundingVolume){boundingVolume.getSphere(target);return true}else return false}forEachLoadedModel(callback){this.traverse(tile=>{const scene=tile.cached.scene;if(scene)callback(scene,tile)})}raycast(raycaster,intersects){if(!this.root)return;if(raycaster.firstHitOnly){const hit=(0,$c1ac95a1e8efcc86$exports.raycastTraverseFirstHit)(this,this.root,raycaster);if(hit)intersects.push(hit)}else(0,$c1ac95a1e8efcc86$exports.raycastTraverse)(this,this.root,raycaster,intersects)}hasCamera(camera){return this.cameraMap.has(camera)}setCamera(camera){const cameras=this.cameras;const cameraMap=this.cameraMap;if(!cameraMap.has(camera)){cameraMap.set(camera,new $5OpyM$Vector2);cameras.push(camera);return true}return false}setResolution(camera,xOrVec,y){const cameraMap=this.cameraMap;if(!cameraMap.has(camera))return false;if(xOrVec instanceof $5OpyM$Vector2)cameraMap.get(camera).copy(xOrVec);else cameraMap.get(camera).set(xOrVec,y);return true}setResolutionFromRenderer(camera,renderer){const cameraMap=this.cameraMap;if(!cameraMap.has(camera))return false;const resolution=cameraMap.get(camera);renderer.getSize(resolution);resolution.multiplyScalar(renderer.getPixelRatio());return true}deleteCamera(camera){const cameras=this.cameras;const cameraMap=this.cameraMap;if(cameraMap.has(camera)){const index=cameras.indexOf(camera);cameras.splice(index,1);cameraMap.delete(camera);return true}return false}fetchTileSet(url,...rest){const pr=super.fetchTileSet(url,...rest);pr.then(json=>{if(this.onLoadTileSet)Promise.resolve().then(()=>{this.onLoadTileSet(json,url)})});return pr}update(){const group=this.group;const cameras=this.cameras;const cameraMap=this.cameraMap;const cameraInfo=this.cameraInfo;if(cameras.length===0){console.warn("TilesRenderer: no cameras defined. Cannot update 3d tiles.");return}while(cameraInfo.length>cameras.length)cameraInfo.pop();while(cameraInfo.length1e-6)console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when calculating screen space error.");for(let i=0,l=cameraInfo.length;ires.scene);break}case"gltf":case"glb":const loader=new $29ced67d26e5c4e2$exports.GLTFExtensionLoader(manager);loader.workingPath=workingPath;loader.fetchOptions=fetchOptions;promise=loader.parse(buffer);break;default:console.warn(`TilesRenderer: Content type "${fileType}" not supported.`);promise=Promise.resolve(null);break;}return promise.then(result=>{let scene;let metadata;if(result.isObject3D){scene=result;metadata=null}else{scene=result.scene;metadata=result}if(tile._loadIndex!==loadIndex)return;scene.updateMatrix();if(fileType==="glb"||fileType==="gltf")scene.matrix.multiply(upAdjustment);scene.matrix.premultiply(cachedTransform);scene.matrix.decompose(scene.position,scene.quaternion,scene.scale);scene.traverse(c=>{c[$06d26e8e9f5361d3$var$INITIAL_FRUSTUM_CULLED]=c.frustumCulled});$06d26e8e9f5361d3$var$updateFrustumCulled(scene,!this.autoDisableRendererCulling);scene.traverse(c=>{c.raycast=this._overridenRaycast});const materials=[];const geometry=[];const textures=[];scene.traverse(c=>{if(c.geometry)geometry.push(c.geometry);if(c.material){const material=c.material;materials.push(c.material);for(const key in material){const value=material[key];if(value&&value.isTexture)textures.push(value)}}});cached.materials=materials;cached.geometry=geometry;cached.textures=textures;cached.scene=scene;cached.metadata=metadata;if(this.onLoadModel)this.onLoadModel(scene,tile)})}disposeTile(tile){const cached=tile.cached;if(cached.scene){const materials=cached.materials;const geometry=cached.geometry;const textures=cached.textures;const parent=cached.scene.parent;for(let i=0,l=geometry.length;i0.1){if($3b9225051b507460$var$_pos.z>0)$3b9225051b507460$var$_norm2.multiplyScalar(-1);normal.setXYZ(i,...$3b9225051b507460$var$_norm2)}}return geometry}class $3b9225051b507460$var$EllipsoidRegionLineHelper extends $5OpyM$LineSegments{constructor(ellipsoidRegion=new $aa7b3b269f245cbe$exports.EllipsoidRegion,color=16776960){super();this.ellipsoidRegion=ellipsoidRegion;this.material.color.set(color);this.update()}update(){const geometry=$3b9225051b507460$var$getRegionGeometry(this.ellipsoidRegion);this.geometry.dispose();this.geometry=new $5OpyM$EdgesGeometry(geometry,80)}dispose(){this.geometry.dispose();this.material.dispose()}}$3b9225051b507460$exports.EllipsoidRegionLineHelper=$3b9225051b507460$var$EllipsoidRegionLineHelper;class $3b9225051b507460$var$EllipsoidRegionHelper extends $5OpyM$Mesh{constructor(ellipsoidRegion=new $aa7b3b269f245cbe$exports.EllipsoidRegion,color=16776960){super();this.ellipsoidRegion=ellipsoidRegion;this.material.color.set(color);this.update()}update(){this.geometry.dispose();const geometry=$3b9225051b507460$var$getRegionGeometry(this.ellipsoidRegion);const{lonStart:lonStart,lonEnd:lonEnd}=this;if(lonEnd-lonStart>=2*Math.PI){geometry.groups.splice(2,2);this.geometry=$3b9225051b507460$var$toGroupGeometry(geometry)}else this.geometry=geometry}dispose(){this.geometry.dispose();this.material.dispose()}}$3b9225051b507460$exports.EllipsoidRegionHelper=$3b9225051b507460$var$EllipsoidRegionHelper;const $1909f04f34bd6630$var$ORIGINAL_MATERIAL=Symbol("ORIGINAL_MATERIAL");const $1909f04f34bd6630$var$HAS_RANDOM_COLOR=Symbol("HAS_RANDOM_COLOR");const $1909f04f34bd6630$var$HAS_RANDOM_NODE_COLOR=Symbol("HAS_RANDOM_NODE_COLOR");function $1909f04f34bd6630$var$emptyRaycast(){}const $1909f04f34bd6630$var$NONE=0;$1909f04f34bd6630$exports.NONE=$1909f04f34bd6630$var$NONE;const $1909f04f34bd6630$var$SCREEN_ERROR=1;$1909f04f34bd6630$exports.SCREEN_ERROR=$1909f04f34bd6630$var$SCREEN_ERROR;const $1909f04f34bd6630$var$GEOMETRIC_ERROR=2;$1909f04f34bd6630$exports.GEOMETRIC_ERROR=$1909f04f34bd6630$var$GEOMETRIC_ERROR;const $1909f04f34bd6630$var$DISTANCE=3;$1909f04f34bd6630$exports.DISTANCE=$1909f04f34bd6630$var$DISTANCE;const $1909f04f34bd6630$var$DEPTH=4;$1909f04f34bd6630$exports.DEPTH=$1909f04f34bd6630$var$DEPTH;const $1909f04f34bd6630$var$RELATIVE_DEPTH=5;$1909f04f34bd6630$exports.RELATIVE_DEPTH=$1909f04f34bd6630$var$RELATIVE_DEPTH;const $1909f04f34bd6630$var$IS_LEAF=6;$1909f04f34bd6630$exports.IS_LEAF=$1909f04f34bd6630$var$IS_LEAF;const $1909f04f34bd6630$var$RANDOM_COLOR=7;$1909f04f34bd6630$exports.RANDOM_COLOR=$1909f04f34bd6630$var$RANDOM_COLOR;const $1909f04f34bd6630$var$RANDOM_NODE_COLOR=8;$1909f04f34bd6630$exports.RANDOM_NODE_COLOR=$1909f04f34bd6630$var$RANDOM_NODE_COLOR;const $1909f04f34bd6630$var$CUSTOM_COLOR=9;$1909f04f34bd6630$exports.CUSTOM_COLOR=$1909f04f34bd6630$var$CUSTOM_COLOR;const $1909f04f34bd6630$var$_sphere=new $5OpyM$Sphere;class $1909f04f34bd6630$var$DebugTilesRenderer extends $06d26e8e9f5361d3$exports.TilesRenderer{constructor(...args){super(...args);const tilesGroup=this.group;const boxGroup=new $5OpyM$Group;boxGroup.name="DebugTilesRenderer.boxGroup";tilesGroup.add(boxGroup);const sphereGroup=new $5OpyM$Group;sphereGroup.name="DebugTilesRenderer.sphereGroup";tilesGroup.add(sphereGroup);const regionGroup=new $5OpyM$Group;regionGroup.name="DebugTilesRenderer.regionGroup";tilesGroup.add(regionGroup);this.displayBoxBounds=false;this.displaySphereBounds=false;this.displayRegionBounds=false;this.colorMode=$1909f04f34bd6630$var$NONE;this.customColorCallback=null;this.boxGroup=boxGroup;this.sphereGroup=sphereGroup;this.regionGroup=regionGroup;this.maxDebugDepth=-1;this.maxDebugDistance=-1;this.maxDebugError=-1;this.getDebugColor=(value,target)=>{target.setRGB(value,value,value)};this.extremeDebugDepth=-1;this.extremeDebugError=-1}initExtremes(){let maxDepth=-1;this.traverse(tile=>{maxDepth=Math.max(maxDepth,tile.__depth)});let maxError=-1;this.traverse(tile=>{maxError=Math.max(maxError,tile.geometricError)});this.extremeDebugDepth=maxDepth;this.extremeDebugError=maxError}fetchTileSet(...args){const pr=super.fetchTileSet(...args);pr.then(()=>{Promise.resolve().then(()=>{this.initExtremes()})}).catch(()=>{});return pr}getTileInformationFromActiveObject(object){let targetTile=null;const activeTiles=this.activeTiles;activeTiles.forEach(tile=>{if(targetTile)return true;const scene=tile.cached.scene;if(scene)scene.traverse(c=>{if(c===object)targetTile=tile})});if(targetTile)return{distanceToCamera:targetTile.__distanceFromCamera,geometricError:targetTile.geometricError,screenSpaceError:targetTile.__error,depth:targetTile.__depth,isLeaf:targetTile.__isLeaf};else return null}update(){super.update();if(!this.root)return;this.boxGroup.visible=this.displayBoxBounds;this.sphereGroup.visible=this.displaySphereBounds;this.regionGroup.visible=this.displayRegionBounds;let maxDepth=-1;if(this.maxDebugDepth===-1)maxDepth=this.extremeDebugDepth;else maxDepth=this.maxDebugDepth;let maxError=-1;if(this.maxDebugError===-1)maxError=this.extremeDebugError;else maxError=this.maxDebugError;let maxDistance=-1;if(this.maxDebugDistance===-1){this.root.cached.boundingVolume.getSphere($1909f04f34bd6630$var$_sphere);maxDistance=$1909f04f34bd6630$var$_sphere.radius}else maxDistance=this.maxDebugDistance;const errorTarget=this.errorTarget;const colorMode=this.colorMode;const visibleTiles=this.visibleTiles;visibleTiles.forEach(tile=>{const scene=tile.cached.scene;let h,s,l;if(colorMode===$1909f04f34bd6630$var$RANDOM_COLOR){h=Math.random();s=0.5+Math.random()*0.5;l=0.375+Math.random()*0.25}scene.traverse(c=>{if(colorMode===$1909f04f34bd6630$var$RANDOM_NODE_COLOR){h=Math.random();s=0.5+Math.random()*0.5;l=0.375+Math.random()*0.25}const currMaterial=c.material;if(currMaterial){const originalMaterial=c[$1909f04f34bd6630$var$ORIGINAL_MATERIAL];if(colorMode===$1909f04f34bd6630$var$NONE&&currMaterial!==originalMaterial){c.material.dispose();c.material=c[$1909f04f34bd6630$var$ORIGINAL_MATERIAL]}else if(colorMode!==$1909f04f34bd6630$var$NONE&&currMaterial===originalMaterial){if(c.isPoints){const pointsMaterial=new $5OpyM$PointsMaterial;pointsMaterial.size=originalMaterial.size;pointsMaterial.sizeAttenuation=originalMaterial.sizeAttenuation;c.material=pointsMaterial}else{c.material=new $5OpyM$MeshStandardMaterial;c.material.flatShading=true}}if(colorMode!==$1909f04f34bd6630$var$RANDOM_COLOR)delete c.material[$1909f04f34bd6630$var$HAS_RANDOM_COLOR];if(colorMode!==$1909f04f34bd6630$var$RANDOM_NODE_COLOR)delete c.material[$1909f04f34bd6630$var$HAS_RANDOM_NODE_COLOR];switch(colorMode){case $1909f04f34bd6630$var$DEPTH:{const val=tile.__depth/maxDepth;this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$RELATIVE_DEPTH:{const val=tile.__depthFromRenderedParent/maxDepth;this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$SCREEN_ERROR:{const val=tile.__error/errorTarget;if(val>1)c.material.color.setRGB(1,0,0);else this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$GEOMETRIC_ERROR:{const val=Math.min(tile.geometricError/maxError,1);this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$DISTANCE:{const val=Math.min(tile.__distanceFromCamera/maxDistance,1);this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$IS_LEAF:if(!tile.children||tile.children.length===0)this.getDebugColor(1,c.material.color);else this.getDebugColor(0,c.material.color);break;case $1909f04f34bd6630$var$RANDOM_NODE_COLOR:if(!c.material[$1909f04f34bd6630$var$HAS_RANDOM_NODE_COLOR]){c.material.color.setHSL(h,s,l);c.material[$1909f04f34bd6630$var$HAS_RANDOM_NODE_COLOR]=true}break;case $1909f04f34bd6630$var$RANDOM_COLOR:if(!c.material[$1909f04f34bd6630$var$HAS_RANDOM_COLOR]){c.material.color.setHSL(h,s,l);c.material[$1909f04f34bd6630$var$HAS_RANDOM_COLOR]=true}break;case $1909f04f34bd6630$var$CUSTOM_COLOR:if(this.customColorCallback)this.customColorCallback(tile,c);else console.warn("DebugTilesRenderer: customColorCallback not defined");break;}}})})}setTileVisible(tile,visible){super.setTileVisible(tile,visible);const cached=tile.cached;const sphereGroup=this.sphereGroup;const boxGroup=this.boxGroup;const regionGroup=this.regionGroup;const boxHelperGroup=cached.boxHelperGroup;const sphereHelper=cached.sphereHelper;const regionHelper=cached.regionHelper;if(!visible){if(boxHelperGroup)boxGroup.remove(boxHelperGroup);if(sphereHelper)sphereGroup.remove(sphereHelper);if(regionHelper)regionGroup.remove(regionHelper)}else{if(boxHelperGroup){boxGroup.add(boxHelperGroup);boxHelperGroup.updateMatrixWorld(true)}if(sphereHelper){sphereGroup.add(sphereHelper);sphereHelper.updateMatrixWorld(true)}if(regionHelper){regionGroup.add(regionHelper);regionHelper.updateMatrixWorld(true)}}}parseTile(buffer,tile,extension){return super.parseTile(buffer,tile,extension).then(()=>{const cached=tile.cached;const scene=cached.scene;if(scene){const{sphere:sphere,obb:obb,region:region}=cached.boundingVolume;if(obb){const boxHelperGroup=new $5OpyM$Group;boxHelperGroup.name="DebugTilesRenderer.boxHelperGroup";boxHelperGroup.matrix.copy(obb.transform);boxHelperGroup.matrixAutoUpdate=false;const boxHelper=new $5OpyM$Box3Helper(obb.box,(0,$3a66585ec6f85053$exports.getIndexedRandomColor)(tile.__depth));boxHelper.raycast=$1909f04f34bd6630$var$emptyRaycast;boxHelperGroup.add(boxHelper);cached.boxHelperGroup=boxHelperGroup;if(this.visibleTiles.has(tile)&&this.displayBoxBounds){this.boxGroup.add(boxHelperGroup);boxHelperGroup.updateMatrixWorld(true)}}if(sphere){const sphereHelper=new $1cb839fa4db014d3$exports.SphereHelper(sphere,(0,$3a66585ec6f85053$exports.getIndexedRandomColor)(tile.__depth));sphereHelper.raycast=$1909f04f34bd6630$var$emptyRaycast;cached.sphereHelper=sphereHelper;if(this.visibleTiles.has(tile)&&this.displaySphereBounds){this.sphereGroup.add(sphereHelper);sphereHelper.updateMatrixWorld(true)}}if(region){const regionHelper=new $3b9225051b507460$exports.EllipsoidRegionLineHelper(region,(0,$3a66585ec6f85053$exports.getIndexedRandomColor)(tile.__depth));regionHelper.raycast=$1909f04f34bd6630$var$emptyRaycast;const sphere=new $5OpyM$Sphere;region.getBoundingSphere(sphere);regionHelper.position.copy(sphere.center);sphere.center.multiplyScalar(-1);regionHelper.geometry.translate(...sphere.center);cached.regionHelper=regionHelper;if(this.visibleTiles.has(tile)&&this.displayRegionBounds){this.regionGroup.add(regionHelper);regionHelper.updateMatrixWorld(true)}}scene.traverse(c=>{const material=c.material;if(material)c[$1909f04f34bd6630$var$ORIGINAL_MATERIAL]=material})}})}disposeTile(tile){super.disposeTile(tile);const cached=tile.cached;if(cached.boxHelperGroup){cached.boxHelperGroup.children[0].geometry.dispose();delete cached.boxHelperGroup}if(cached.sphereHelper){cached.sphereHelper.geometry.dispose();delete cached.sphereHelper}}}$1909f04f34bd6630$exports.DebugTilesRenderer=$1909f04f34bd6630$var$DebugTilesRenderer;var $cf838c15c8b009ba$var$_GeoUtils=$cf838c15c8b009ba$var$_interopRequireWildcard(parcelRequire("1hGdn"));$cf838c15c8b009ba$exports.GeoUtils=$cf838c15c8b009ba$var$_GeoUtils;var $74a95d3099be71d6$exports={};"use strict";Object.defineProperty($74a95d3099be71d6$exports,"__esModule",{value:true});$74a95d3099be71d6$exports.WGS84_ELLIPSOID=void 0;const $74a95d3099be71d6$var$WGS84_ELLIPSOID=new $9160f8f2e0578e98$exports.Ellipsoid($002d29a772485791$exports.WGS84_RADIUS,$002d29a772485791$exports.WGS84_RADIUS,$002d29a772485791$exports.WGS84_HEIGHT);$74a95d3099be71d6$exports.WGS84_ELLIPSOID=$74a95d3099be71d6$var$WGS84_ELLIPSOID;Object.keys($74a95d3099be71d6$exports).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call($cf838c15c8b009ba$var$_exportNames,key))return;if(key in $cf838c15c8b009ba$exports&&$cf838c15c8b009ba$exports[key]===$74a95d3099be71d6$exports[key])return;Object.defineProperty($cf838c15c8b009ba$exports,key,{enumerable:true,get:function(){return $74a95d3099be71d6$exports[key]}})});var $e41589f0d6e8ce27$exports={};"use strict";Object.defineProperty($e41589f0d6e8ce27$exports,"__esModule",{value:true});$e41589f0d6e8ce27$exports.GoogleTilesRenderer=$e41589f0d6e8ce27$exports.DebugGoogleTilesRenderer=void 0;var $f462b5e10a0d334c$exports={};"use strict";Object.defineProperty($f462b5e10a0d334c$exports,"__esModule",{value:true});$f462b5e10a0d334c$exports.GoogleMapsTilesCredits=void 0;class $f462b5e10a0d334c$var$GoogleMapsTilesCredits{constructor(){this.creditsCount={}}_adjustCredits(line,add){const creditsCount=this.creditsCount;const tokens=line.split(/;/g);for(let i=0,l=tokens.length;iclass extends base{get ellipsoid(){return $74a95d3099be71d6$exports.WGS84_ELLIPSOID}constructor(apiKey,baseUrl=$e41589f0d6e8ce27$var$TILE_URL){super(new URL(`${baseUrl}?key=${apiKey}`).toString());this._credits=new $f462b5e10a0d334c$exports.GoogleMapsTilesCredits;this.fetchOptions.mode="cors";this.parseQueue.maxJobs=10;this.downloadQueue.maxJobs=30;this.lruCache.minSize=3000;this.lruCache.maxSize=5000;this.errorTarget=20;this.onLoadTileSet=tileset=>{let session;this.traverse(tile=>{if(tile.content&&tile.content.uri){session=new URL(tile.content.uri).searchParams.get("session");return true}return false});this.preprocessURL=uri=>{uri=new URL(uri);if(/^http/.test(uri.protocol)){uri.searchParams.append("session",session);uri.searchParams.append("key",apiKey)}return uri.toString()};this.onLoadTileSet=null};this.onTileVisibilityChange=(scene,tile,visible)=>{const copyright=tile.cached.metadata.asset.copyright||"";if(visible)this._credits.addCredits(copyright);else this._credits.removeCredits(copyright)}}getCreditsString(){return this._credits.toString()}setLatLonToYUp(lat,lon){const{ellipsoid:ellipsoid,group:group}=this;$e41589f0d6e8ce27$var$_euler.set(Math.PI/2,Math.PI/2,0);$e41589f0d6e8ce27$var$_mat.makeRotationFromEuler($e41589f0d6e8ce27$var$_euler);ellipsoid.constructLatLonFrame(lat,lon,group.matrix).multiply($e41589f0d6e8ce27$var$_mat).invert().decompose(group.position,group.quaternion,group.scale)}};const $e41589f0d6e8ce27$var$GoogleTilesRenderer=$e41589f0d6e8ce27$var$GoogleTilesRendererMixin($06d26e8e9f5361d3$exports.TilesRenderer);$e41589f0d6e8ce27$exports.GoogleTilesRenderer=$e41589f0d6e8ce27$var$GoogleTilesRenderer;const $e41589f0d6e8ce27$var$DebugGoogleTilesRenderer=$e41589f0d6e8ce27$var$GoogleTilesRendererMixin($1909f04f34bd6630$exports.DebugTilesRenderer);$e41589f0d6e8ce27$exports.DebugGoogleTilesRenderer=$e41589f0d6e8ce27$var$DebugGoogleTilesRenderer;Object.keys($e41589f0d6e8ce27$exports).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call($cf838c15c8b009ba$var$_exportNames,key))return;if(key in $cf838c15c8b009ba$exports&&$cf838c15c8b009ba$exports[key]===$e41589f0d6e8ce27$exports[key])return;Object.defineProperty($cf838c15c8b009ba$exports,key,{enumerable:true,get:function(){return $e41589f0d6e8ce27$exports[key]}})});var $3b72713b91ab2ada$exports={};"use strict";Object.defineProperty($3b72713b91ab2ada$exports,"__esModule",{value:true});$3b72713b91ab2ada$exports.DebugCesiumIonTilesRenderer=$3b72713b91ab2ada$exports.CesiumIonTilesRenderer=void 0;const $3b72713b91ab2ada$var$UNLOADED=0;const $3b72713b91ab2ada$var$LOADING=1;const $3b72713b91ab2ada$var$LOADED=2;const $3b72713b91ab2ada$var$FAILED=3;const $3b72713b91ab2ada$var$CesiumIonTilesRendererMixin=base=>class extends base{constructor(ionAssetId,ionAccessToken){super();this._tokenState=$3b72713b91ab2ada$var$UNLOADED;this._ionAccessToken=ionAccessToken;this._ionAssetId=ionAssetId;this._tileSetVersion=-1;this.preprocessURL=uri=>{uri=new URL(uri);if(/^http/.test(uri.protocol)&&this._tileSetVersion!=-1)uri.searchParams.append("v",this._tileSetVersion);return uri.toString()}}update(){const state=this._tokenState;if(state===$3b72713b91ab2ada$var$UNLOADED){this._tokenState=$3b72713b91ab2ada$var$LOADING;const url=new URL(`https://api.cesium.com/v1/assets/${this._ionAssetId}/endpoint`);url.searchParams.append("access_token",this._ionAccessToken);fetch(url,{mode:"cors"}).then(res=>{if(res.ok)return res.json();else return Promise.reject(`${res.status} : ${res.statusText}`)}).then(json=>{this._tokenState=$3b72713b91ab2ada$var$LOADED;const url=new URL(json.url);this._tileSetVersion=url.searchParams.get("v");this.rootURL=url;this.fetchOptions.headers=this.fetchOptions.headers||{};this.fetchOptions.headers.Authorization=`Bearer ${json.accessToken}`}).catch(()=>{this._tokenState=$3b72713b91ab2ada$var$FAILED})}else if(state===$3b72713b91ab2ada$var$LOADED)super.update()}};const $3b72713b91ab2ada$var$CesiumIonTilesRenderer=$3b72713b91ab2ada$var$CesiumIonTilesRendererMixin($06d26e8e9f5361d3$exports.TilesRenderer);$3b72713b91ab2ada$exports.CesiumIonTilesRenderer=$3b72713b91ab2ada$var$CesiumIonTilesRenderer;const $3b72713b91ab2ada$var$DebugCesiumIonTilesRenderer=$3b72713b91ab2ada$var$CesiumIonTilesRendererMixin($1909f04f34bd6630$exports.DebugTilesRenderer);$3b72713b91ab2ada$exports.DebugCesiumIonTilesRenderer=$3b72713b91ab2ada$var$DebugCesiumIonTilesRenderer;Object.keys($3b72713b91ab2ada$exports).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call($cf838c15c8b009ba$var$_exportNames,key))return;if(key in $cf838c15c8b009ba$exports&&$cf838c15c8b009ba$exports[key]===$3b72713b91ab2ada$exports[key])return;Object.defineProperty($cf838c15c8b009ba$exports,key,{enumerable:true,get:function(){return $3b72713b91ab2ada$exports[key]}})});Object.keys($002d29a772485791$exports).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call($cf838c15c8b009ba$var$_exportNames,key))return;if(key in $cf838c15c8b009ba$exports&&$cf838c15c8b009ba$exports[key]===$002d29a772485791$exports[key])return;Object.defineProperty($cf838c15c8b009ba$exports,key,{enumerable:true,get:function(){return $002d29a772485791$exports[key]}})});function $cf838c15c8b009ba$var$_getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return($cf838c15c8b009ba$var$_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function $cf838c15c8b009ba$var$_interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule)return obj;if(obj===null||typeof obj!=="object"&&typeof obj!=="function")return{default:obj};var cache=$cf838c15c8b009ba$var$_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj))return cache.get(obj);var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj)if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set))Object.defineProperty(newObj,key,desc);else newObj[key]=obj[key]}newObj.default=obj;if(cache)cache.set(obj,newObj);return newObj}THREE.TDTiles=$cf838c15c8b009ba$exports});(function(){const Constants={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:0.05,AxisTouchThreshold:0.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};async function fetchJsonFile(path){const response=await fetch(path);if(!response.ok){throw new Error(response.statusText)}else{return response.json()}}async function fetchProfilesList(basePath){if(!basePath){throw new Error("No basePath supplied")}const profileListFileName="profilesList.json";const profilesList=await fetchJsonFile(`${basePath}/${profileListFileName}`);return profilesList}async function fetchProfile(xrInputSource,basePath,defaultProfile=null,getAssetPath=true){if(!xrInputSource){throw new Error("No xrInputSource supplied")}if(!basePath){throw new Error("No basePath supplied")}const supportedProfilesList=await fetchProfilesList(basePath);let match;xrInputSource.profiles.some(profileId=>{const supportedProfile=supportedProfilesList[profileId];if(supportedProfile){match={profileId,profilePath:`${basePath}/${supportedProfile.path}`,deprecated:!!supportedProfile.deprecated}}return!!match});if(!match){if(!defaultProfile){throw new Error("No matching profile name found")}const supportedProfile=supportedProfilesList[defaultProfile];if(!supportedProfile){throw new Error(`No matching profile name found and default profile "${defaultProfile}" missing.`)}match={profileId:defaultProfile,profilePath:`${basePath}/${supportedProfile.path}`,deprecated:!!supportedProfile.deprecated}}const profile=await fetchJsonFile(match.profilePath);let assetPath;if(getAssetPath){let layout;if(xrInputSource.handedness==="any"){layout=profile.layouts[Object.keys(profile.layouts)[0]]}else{layout=profile.layouts[xrInputSource.handedness]}if(!layout){throw new Error(`No matching handedness, ${xrInputSource.handedness}, in profile ${match.profileId}`)}if(layout.assetPath){assetPath=match.profilePath.replace("profile.json",layout.assetPath)}}return{profile,assetPath}}const defaultComponentValues={xAxis:0,yAxis:0,button:0,state:Constants.ComponentState.DEFAULT};function normalizeAxes(x=0,y=0){let xAxis=x;let yAxis=y;const hypotenuse=Math.sqrt(x*x+y*y);if(hypotenuse>1){const theta=Math.atan2(y,x);xAxis=Math.cos(theta);yAxis=Math.sin(theta)}const result={normalizedXAxis:xAxis*0.5+0.5,normalizedYAxis:yAxis*0.5+0.5};return result}class VisualResponse{constructor(visualResponseDescription){this.componentProperty=visualResponseDescription.componentProperty;this.states=visualResponseDescription.states;this.valueNodeName=visualResponseDescription.valueNodeName;this.valueNodeProperty=visualResponseDescription.valueNodeProperty;if(this.valueNodeProperty===Constants.VisualResponseProperty.TRANSFORM){this.minNodeName=visualResponseDescription.minNodeName;this.maxNodeName=visualResponseDescription.maxNodeName}this.value=0;this.updateFromComponent(defaultComponentValues)}updateFromComponent({xAxis,yAxis,button,state}){const{normalizedXAxis,normalizedYAxis}=normalizeAxes(xAxis,yAxis);switch(this.componentProperty){case Constants.ComponentProperty.X_AXIS:this.value=this.states.includes(state)?normalizedXAxis:0.5;break;case Constants.ComponentProperty.Y_AXIS:this.value=this.states.includes(state)?normalizedYAxis:0.5;break;case Constants.ComponentProperty.BUTTON:this.value=this.states.includes(state)?button:0;break;case Constants.ComponentProperty.STATE:if(this.valueNodeProperty===Constants.VisualResponseProperty.VISIBILITY){this.value=this.states.includes(state)}else{this.value=this.states.includes(state)?1:0}break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`);}}}class Component{constructor(componentId,componentDescription){if(!componentId||!componentDescription||!componentDescription.visualResponses||!componentDescription.gamepadIndices||Object.keys(componentDescription.gamepadIndices).length===0){throw new Error("Invalid arguments supplied")}this.id=componentId;this.type=componentDescription.type;this.rootNodeName=componentDescription.rootNodeName;this.touchPointNodeName=componentDescription.touchPointNodeName;this.visualResponses={};Object.keys(componentDescription.visualResponses).forEach(responseName=>{const visualResponse=new VisualResponse(componentDescription.visualResponses[responseName]);this.visualResponses[responseName]=visualResponse});this.gamepadIndices=Object.assign({},componentDescription.gamepadIndices);this.values={state:Constants.ComponentState.DEFAULT,button:this.gamepadIndices.button!==undefined?0:undefined,xAxis:this.gamepadIndices.xAxis!==undefined?0:undefined,yAxis:this.gamepadIndices.yAxis!==undefined?0:undefined}}get data(){const data={id:this.id,...this.values};return data}updateFromGamepad(gamepad){this.values.state=Constants.ComponentState.DEFAULT;if(this.gamepadIndices.button!==undefined&&gamepad.buttons.length>this.gamepadIndices.button){const gamepadButton=gamepad.buttons[this.gamepadIndices.button];this.values.button=gamepadButton.value;this.values.button=this.values.button<0?0:this.values.button;this.values.button=this.values.button>1?1:this.values.button;if(gamepadButton.pressed||this.values.button===1){this.values.state=Constants.ComponentState.PRESSED}else if(gamepadButton.touched||this.values.button>Constants.ButtonTouchThreshold){this.values.state=Constants.ComponentState.TOUCHED}}if(this.gamepadIndices.xAxis!==undefined&&gamepad.axes.length>this.gamepadIndices.xAxis){this.values.xAxis=gamepad.axes[this.gamepadIndices.xAxis];this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis;this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis;if(this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Constants.AxisTouchThreshold){this.values.state=Constants.ComponentState.TOUCHED}}if(this.gamepadIndices.yAxis!==undefined&&gamepad.axes.length>this.gamepadIndices.yAxis){this.values.yAxis=gamepad.axes[this.gamepadIndices.yAxis];this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis;this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis;if(this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Constants.AxisTouchThreshold){this.values.state=Constants.ComponentState.TOUCHED}}Object.values(this.visualResponses).forEach(visualResponse=>{visualResponse.updateFromComponent(this.values)})}}class MotionController{constructor(xrInputSource,profile,assetUrl){if(!xrInputSource){throw new Error("No xrInputSource supplied")}if(!profile){throw new Error("No profile supplied")}this.xrInputSource=xrInputSource;this.assetUrl=assetUrl;this.id=profile.profileId;this.layoutDescription=profile.layouts[xrInputSource.handedness];this.components={};Object.keys(this.layoutDescription.components).forEach(componentId=>{const componentDescription=this.layoutDescription.components[componentId];this.components[componentId]=new Component(componentId,componentDescription)});this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const data=[];Object.values(this.components).forEach(component=>{data.push(component.data)});return data}updateFromGamepad(){Object.values(this.components).forEach(component=>{component.updateFromGamepad(this.xrInputSource.gamepad)})}}THREE.MontionControllers={};THREE.MontionControllers.Constants=Constants;THREE.MontionControllers.MotionController=MotionController;THREE.MontionControllers.fetchProfile=fetchProfile;THREE.MontionControllers.fetchProfilesList=fetchProfilesList})();(function(){var Mesh=THREE.Mesh,MeshBasicMaterial=THREE.MeshBasicMaterial,Object3D=THREE.Object3D,SphereGeometry=THREE.SphereGeometry;var GLTFLoader=THREE.GLTFLoader;var MotionControllerConstants=THREE.MontionControllers.Constants,fetchProfile=THREE.MontionControllers.fetchProfile,MotionController=THREE.MontionControllers.MotionController;const DEFAULT_PROFILES_PATH="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles";const DEFAULT_PROFILE="generic-trigger";class XRControllerModel extends Object3D{constructor(){super();this.motionController=null;this.envMap=null}setEnvironmentMap(envMap){if(this.envMap==envMap){return this}this.envMap=envMap;this.traverse(child=>{if(child.isMesh){child.material.envMap=this.envMap;child.material.needsUpdate=true}});return this}updateMatrixWorld(force){super.updateMatrixWorld(force);if(!this.motionController)return;this.motionController.updateFromGamepad();Object.values(this.motionController.components).forEach(component=>{Object.values(component.visualResponses).forEach(visualResponse=>{const{valueNode,minNode,maxNode,value,valueNodeProperty}=visualResponse;if(!valueNode)return;if(valueNodeProperty===MotionControllerConstants.VisualResponseProperty.VISIBILITY){valueNode.visible=value}else if(valueNodeProperty===MotionControllerConstants.VisualResponseProperty.TRANSFORM){valueNode.quaternion.slerpQuaternions(minNode.quaternion,maxNode.quaternion,value);valueNode.position.lerpVectors(minNode.position,maxNode.position,value)}})})}}function findNodes(motionController,scene){Object.values(motionController.components).forEach(component=>{const{type,touchPointNodeName,visualResponses}=component;if(type===MotionControllerConstants.ComponentType.TOUCHPAD){component.touchPointNode=scene.getObjectByName(touchPointNodeName);if(component.touchPointNode){const sphereGeometry=new SphereGeometry(0.001);const material=new MeshBasicMaterial({color:255});const sphere=new Mesh(sphereGeometry,material);component.touchPointNode.add(sphere)}else{console.warn(`Could not find touch dot, ${component.touchPointNodeName}, in touchpad component ${component.id}`)}}Object.values(visualResponses).forEach(visualResponse=>{const{valueNodeName,minNodeName,maxNodeName,valueNodeProperty}=visualResponse;if(valueNodeProperty===MotionControllerConstants.VisualResponseProperty.TRANSFORM){visualResponse.minNode=scene.getObjectByName(minNodeName);visualResponse.maxNode=scene.getObjectByName(maxNodeName);if(!visualResponse.minNode){console.warn(`Could not find ${minNodeName} in the model`);return}if(!visualResponse.maxNode){console.warn(`Could not find ${maxNodeName} in the model`);return}}visualResponse.valueNode=scene.getObjectByName(valueNodeName);if(!visualResponse.valueNode){console.warn(`Could not find ${valueNodeName} in the model`)}})})}function addAssetSceneToControllerModel(controllerModel,scene){findNodes(controllerModel.motionController,scene);if(controllerModel.envMap){scene.traverse(child=>{if(child.isMesh){child.material.envMap=controllerModel.envMap;child.material.needsUpdate=true}})}controllerModel.add(scene)}class XRControllerModelFactory{constructor(gltfLoader=null){this.gltfLoader=gltfLoader;this.path=DEFAULT_PROFILES_PATH;this._assetCache={};if(!this.gltfLoader){this.gltfLoader=new GLTFLoader}this}createControllerModel(controller,profiles=null){const controllerModel=new XRControllerModel;let scene=null;controller.addEventListener("connected",event=>{const xrInputSource=event.data;const profileInfo={profiles:profiles&&profiles(xrInputSource)||xrInputSource.profiles,handedness:xrInputSource.handedness};if(xrInputSource.targetRayMode!=="tracked-pointer"||!xrInputSource.gamepad)return;fetchProfile(profileInfo,this.path,DEFAULT_PROFILE).then(({profile,assetPath})=>{controllerModel.motionController=new MotionController(xrInputSource,profile,assetPath);const cachedAsset=this._assetCache[controllerModel.motionController.assetUrl];if(cachedAsset){scene=cachedAsset.scene.clone();addAssetSceneToControllerModel(controllerModel,scene);setTimeout(function(){controllerModel.dispatchEvent({type:"loaded"})},0)}else{if(!this.gltfLoader){throw new Error("GLTFLoader not set.")}this.gltfLoader.setPath("");this.gltfLoader.load(controllerModel.motionController.assetUrl,asset=>{this._assetCache[controllerModel.motionController.assetUrl]=asset;scene=asset.scene.clone();addAssetSceneToControllerModel(controllerModel,scene);controllerModel.dispatchEvent({type:"loaded"})},null,()=>{throw new Error(`Asset ${controllerModel.motionController.assetUrl} missing or malformed.`)})}}).catch(err=>{console.warn(err)})});controller.addEventListener("disconnected",()=>{controllerModel.motionController=null;controllerModel.remove(scene);scene=null});return controllerModel}}THREE.XRControllerModelFactory=XRControllerModelFactory})();(function(){const DepthLimitedBlurShader={defines:{"KERNEL_RADIUS":4,"DEPTH_PACKING":1,"PERSPECTIVE_CAMERA":1},uniforms:{"tDiffuse":{value:null},"size":{value:new THREE.Vector2(512,512)},"sampleUvOffsets":{value:[new THREE.Vector2(0,0)]},"sampleWeights":{value:[1]},"tDepth":{value:null},"cameraNear":{value:10},"cameraFar":{value:1000},"depthCutoff":{value:10}},vertexShader:` #include uniform vec2 size; varying vec2 vUv; varying vec2 vInvSize; void main() { vUv = uv; vInvSize = 1.0 / size; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` #include #include uniform sampler2D tDiffuse; uniform sampler2D tDepth; uniform float cameraNear; uniform float cameraFar; uniform float depthCutoff; uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ]; uniform float sampleWeights[ KERNEL_RADIUS + 1 ]; varying vec2 vUv; varying vec2 vInvSize; float getDepth( const in vec2 screenPosition ) { #if DEPTH_PACKING == 1 return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) ); #else return texture2D( tDepth, screenPosition ).x; #endif } float getViewZ( const in float depth ) { #if PERSPECTIVE_CAMERA == 1 return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); #else return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); #endif } void main() { float depth = getDepth( vUv ); if( depth >= ( 1.0 - EPSILON ) ) { discard; } float centerViewZ = -getViewZ( depth ); bool rBreak = false, lBreak = false; float weightSum = sampleWeights[0]; vec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum; for( int i = 1; i <= KERNEL_RADIUS; i ++ ) { float sampleWeight = sampleWeights[i]; vec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize; vec2 sampleUv = vUv + sampleUvOffset; float viewZ = -getViewZ( getDepth( sampleUv ) ); if( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true; if( ! rBreak ) { diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight; weightSum += sampleWeight; } sampleUv = vUv - sampleUvOffset; viewZ = -getViewZ( getDepth( sampleUv ) ); if( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true; if( ! lBreak ) { diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight; weightSum += sampleWeight; } } gl_FragColor = diffuseSum / weightSum; }`};const BlurShaderUtils={createSampleWeights:function(kernelRadius,stdDev){const weights=[];for(let i=0;i<=kernelRadius;i++){weights.push(gaussian(i,stdDev))}return weights},createSampleOffsets:function(kernelRadius,uvIncrement){const offsets=[];for(let i=0;i<=kernelRadius;i++){offsets.push(uvIncrement.clone().multiplyScalar(i))}return offsets},configure:function(material,kernelRadius,stdDev,uvIncrement){material.defines["KERNEL_RADIUS"]=kernelRadius;material.uniforms["sampleUvOffsets"].value=BlurShaderUtils.createSampleOffsets(kernelRadius,uvIncrement);material.uniforms["sampleWeights"].value=BlurShaderUtils.createSampleWeights(kernelRadius,stdDev);material.needsUpdate=true}};function gaussian(x,stdDev){return Math.exp(-(x*x)/(2*(stdDev*stdDev)))/(Math.sqrt(2*Math.PI)*stdDev)}THREE.BlurShaderUtils=BlurShaderUtils;THREE.DepthLimitedBlurShader=DepthLimitedBlurShader})();(function(){class EffectComposer{constructor(renderer,renderTarget){this.renderer=renderer;if(renderTarget===undefined){const size=renderer.getSize(new THREE.Vector2);this._pixelRatio=renderer.getPixelRatio();this._width=size.width;this._height=size.height;renderTarget=new THREE.WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio);renderTarget.texture.name="EffectComposer.rt1"}else{this._pixelRatio=1;this._width=renderTarget.width;this._height=renderTarget.height}this.renderTarget1=renderTarget;this.renderTarget2=renderTarget.clone();this.renderTarget2.texture.name="EffectComposer.rt2";this.writeBuffer=this.renderTarget1;this.readBuffer=this.renderTarget2;this.renderToScreen=true;this.passes=[];if(THREE.CopyShader===undefined){console.error("THREE.EffectComposer relies on THREE.CopyShader")}if(THREE.ShaderPass===undefined){console.error("THREE.EffectComposer relies on THREE.ShaderPass")}this.copyPass=new THREE.ShaderPass(THREE.CopyShader);this.clock=new THREE.Clock}swapBuffers(){const tmp=this.readBuffer;this.readBuffer=this.writeBuffer;this.writeBuffer=tmp}addPass(pass){this.passes.push(pass);pass.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(pass,index){this.passes.splice(index,0,pass);pass.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(pass){const index=this.passes.indexOf(pass);if(index!==-1){this.passes.splice(index,1)}}isLastEnabledPass(passIndex){for(let i=passIndex+1;i 0.; // . 1 . // 0 0 0 // . 1 . // 45 deg edge detection and corners of objects, aka V/H contrast is too similar if( abs( relativeVContrast ) < .3 ) { // locate the edge vec2 dirToEdge; dirToEdge.x = contrastE > contrastW ? 1. : -1.; dirToEdge.y = contrastS > contrastN ? 1. : -1.; // . 2 . . 1 . // 1 0 2 ~= 0 0 1 // . 1 . . 0 . // tap 2 pixels and see which ones are "outside" the edge, to // determine if the edge is vertical or horizontal vec4 rgbaAlongH = FxaaTexOff(tex, posM, vec2( dirToEdge.x, -dirToEdge.y ), fxaaQualityRcpFrame.xy); float matchAlongH = contrast( rgbaM, rgbaAlongH ); // . 1 . // 0 0 1 // . 0 H vec4 rgbaAlongV = FxaaTexOff(tex, posM, vec2( -dirToEdge.x, dirToEdge.y ), fxaaQualityRcpFrame.xy); float matchAlongV = contrast( rgbaM, rgbaAlongV ); // V 1 . // 0 0 1 // . 0 . relativeVContrast = matchAlongV - matchAlongH; relativeVContrast *= fxaaQualityinvEdgeThreshold; if( abs( relativeVContrast ) < .3 ) { // 45 deg edge // 1 1 . // 0 0 1 // . 0 1 // do a simple blur return mix( rgbaM, (rgbaN + rgbaS + rgbaE + rgbaW) * .25, .4 ); } horzSpan = relativeVContrast > 0.; } if(!horzSpan) rgbaN = rgbaW; if(!horzSpan) rgbaS = rgbaE; // . 0 . 1 // 1 0 1 -> 0 // . 0 . 1 bool pairN = contrast( rgbaM, rgbaN ) > contrast( rgbaM, rgbaS ); if(!pairN) rgbaN = rgbaS; vec2 offNP; offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; bool doneN = false; bool doneP = false; float nDist = 0.; float pDist = 0.; vec2 posN = posM; vec2 posP = posM; int iterationsUsed = 0; int iterationsUsedN = 0; int iterationsUsedP = 0; for( int i = 0; i < NUM_SAMPLES; i++ ) { iterationsUsed = i; float increment = float(i + 1); if(!doneN) { nDist += increment; posN = posM + offNP * nDist; vec4 rgbaEndN = FxaaTexTop(tex, posN.xy); doneN = contrast( rgbaEndN, rgbaM ) > contrast( rgbaEndN, rgbaN ); iterationsUsedN = i; } if(!doneP) { pDist += increment; posP = posM - offNP * pDist; vec4 rgbaEndP = FxaaTexTop(tex, posP.xy); doneP = contrast( rgbaEndP, rgbaM ) > contrast( rgbaEndP, rgbaN ); iterationsUsedP = i; } if(doneN || doneP) break; } if ( !doneP && !doneN ) return rgbaM; // failed to find end of edge float dist = min( doneN ? float( iterationsUsedN ) / float( NUM_SAMPLES - 1 ) : 1., doneP ? float( iterationsUsedP ) / float( NUM_SAMPLES - 1 ) : 1. ); // hacky way of reduces blurriness of mostly diagonal edges // but reduces AA quality dist = pow(dist, .5); dist = 1. - dist; return mix( rgbaM, rgbaN, dist * .5 ); } void main() { const float edgeDetectionQuality = .2; const float invEdgeDetectionQuality = 1. / edgeDetectionQuality; gl_FragColor = FxaaPixelShader( vUv, tDiffuse, resolution, edgeDetectionQuality, // [0,1] contrast needed, otherwise early discard invEdgeDetectionQuality ); } `};THREE.FXAAShader=FXAAShader})();(function(){const GammaCorrectionShader={uniforms:{"tDiffuse":{value:null}},vertexShader:` varying vec2 vUv; void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` uniform sampler2D tDiffuse; varying vec2 vUv; void main() { vec4 tex = texture2D( tDiffuse, vUv ); gl_FragColor = sRGBTransferOETF( tex ); }`};THREE.GammaCorrectionShader=GammaCorrectionShader})();(function(require){class CustomRenderPass extends THREE.Pass{constructor(renderCallback){super();this.renderCallback=renderCallback;this.scene=null;this.camera=null;this.clear=true;this.clearDepth=false;this.needsSwap=false}render(renderer,writeBuffer,readBuffer,delta,maskActive){var oldAutoClear=renderer.autoClear;renderer.autoClear=false;this.renderCallback(renderer,this.scene,this.camera,this.renderToScreen?null:readBuffer,this.clear);renderer.autoClear=oldAutoClear}}THREE.CustomRenderPass=CustomRenderPass})();(function(){class MaskPass extends THREE.Pass{constructor(scene,camera){super();this.scene=scene;this.camera=camera;this.clear=true;this.needsSwap=false;this.inverse=false}render(renderer,writeBuffer,readBuffer){const context=renderer.getContext();const state=renderer.state;state.buffers.color.setMask(false);state.buffers.depth.setMask(false);state.buffers.color.setLocked(true);state.buffers.depth.setLocked(true);let writeValue,clearValue;if(this.inverse){writeValue=0;clearValue=1}else{writeValue=1;clearValue=0}state.buffers.stencil.setTest(true);state.buffers.stencil.setOp(context.REPLACE,context.REPLACE,context.REPLACE);state.buffers.stencil.setFunc(context.ALWAYS,writeValue,4294967295);state.buffers.stencil.setClear(clearValue);state.buffers.stencil.setLocked(true);renderer.setRenderTarget(readBuffer);if(this.clear)renderer.clear();renderer.render(this.scene,this.camera);renderer.setRenderTarget(writeBuffer);if(this.clear)renderer.clear();renderer.render(this.scene,this.camera);state.buffers.color.setLocked(false);state.buffers.depth.setLocked(false);state.buffers.stencil.setLocked(false);state.buffers.stencil.setFunc(context.EQUAL,1,4294967295);state.buffers.stencil.setOp(context.KEEP,context.KEEP,context.KEEP);state.buffers.stencil.setLocked(true)}}class ClearMaskPass extends THREE.Pass{constructor(){super();this.needsSwap=false}render(renderer){renderer.state.buffers.stencil.setLocked(false);renderer.state.buffers.stencil.setTest(false)}}THREE.ClearMaskPass=ClearMaskPass;THREE.MaskPass=MaskPass})();(function(){var vertexShader=["varying vec2 vUv;","void main() {"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"," vUv = uv;","}"].join("\n");var fragmentShader=["varying vec2 vUv;","uniform sampler2D tDepth;","uniform sampler2D tColor;","uniform mat4 inverseProjectionMatrix;","uniform float near;","uniform float far;","uniform float depthLimit;","uniform mat4 clipToWorldMatrix;","uniform mat4 previousWorldToClipMatrix;","uniform vec3 cameraMove; ","uniform float velocityFactor;","uniform float delta;","void main() {"," float zOverW = texture2D(tDepth, vUv).x;"," vec4 clipPosition = vec4(vUv.x * 2. - 1., vUv.y * 2. - 1., zOverW * 2. - 1., 1.);"," vec4 cameraSpacePosition = inverseProjectionMatrix * clipPosition;"," cameraSpacePosition /= cameraSpacePosition.w;"," float depth = -(cameraSpacePosition.z - near) / (far - near);"," if (depth > depthLimit)"," {"," gl_FragColor = texture2D(tColor, vUv);"," return;"," }"," vec4 worldPosition = clipToWorldMatrix * clipPosition;"," worldPosition /= worldPosition.w;"," vec4 previousClipPosition = worldPosition;"," previousClipPosition.xyz -= cameraMove * ("," 1. - smoothstep(.3, 1., clamp(length(clipPosition.xy), 0., 1.))"," );"," previousClipPosition = previousWorldToClipMatrix * previousClipPosition;"," previousClipPosition /= previousClipPosition.w;"," vec2 velocity = velocityFactor * (clipPosition - previousClipPosition).xy / delta * 16.67;"," vec4 finalColor = vec4(0.);"," vec2 offset = vec2(0.);"," float weight = 0.;"," for(int i = 0; i < SAMPLE_COUNT; i++) {"," offset = velocity * (float(i) / (float(SAMPLE_COUNT) - 1.) - .5);"," vec4 c = texture2D(tColor, vUv + offset);"," finalColor += c;"," }"," finalColor /= float(SAMPLE_COUNT);"," gl_FragColor = vec4(finalColor.rgb, 1.);","}"].join("\n");var uniforms={"tDepth":{type:"t",value:null},"tColor":{type:"t",value:null},"velocityFactor":{type:"f",value:1},"delta":{type:"f",value:16.67},"inverseProjectionMatrix":{type:"m4",value:new THREE.Matrix4},"clipToWorldMatrix":{type:"m4",value:new THREE.Matrix4},"previousWorldToClipMatrix":{type:"m4",value:new THREE.Matrix4},"cameraMove":{type:"v3",value:new THREE.Vector3},"near":{type:"f",value:1},"far":{type:"f",value:1000},"depthLimit":{type:"f",value:0.99}};class MotionBlurPass extends THREE.Pass{constructor(sampleCount){super();this._sampleCount=sampleCount;this.uniforms=THREE.UniformsUtils.clone(uniforms);this.material=new THREE.ShaderMaterial({defines:{},uniforms:this.uniforms,vertexShader:vertexShader,fragmentShader:"#define SAMPLE_COUNT "+sampleCount+"\n"+fragmentShader});this.fsQuad=new THREE.FullScreenQuad(this.material)}getSampleCount(){return this._sampleCount}render(renderer,writeBuffer,readBuffer,deltaTime,maskActive){this.uniforms["tColor"].value=readBuffer.texture;this.uniforms["tDepth"].value=readBuffer.depthTexture;this.fsQuad.material=this.material;if(this.renderToScreen){renderer.setRenderTarget(null);this.fsQuad.render(renderer)}else{renderer.setRenderTarget(writeBuffer);if(this.clear)renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil);this.fsQuad.render(renderer)}}dispose(){this.fsQuad.dispose();this.material.dispose()}};THREE.MotionBlurPass=MotionBlurPass})();(function(){class RenderPass extends THREE.Pass{constructor(scene,camera,overrideMaterial,clearColor,clearAlpha){super();this.scene=scene;this.camera=camera;this.overrideMaterial=overrideMaterial;this.clearColor=clearColor;this.clearAlpha=clearAlpha!==undefined?clearAlpha:0;this.clear=true;this.clearDepth=false;this.needsSwap=false;this._oldClearColor=new THREE.Color}render(renderer,writeBuffer,readBuffer){const oldAutoClear=renderer.autoClear;renderer.autoClear=false;let oldClearAlpha,oldOverrideMaterial;if(this.overrideMaterial!==undefined){oldOverrideMaterial=this.scene.overrideMaterial;this.scene.overrideMaterial=this.overrideMaterial}if(this.clearColor){renderer.getClearColor(this._oldClearColor);oldClearAlpha=renderer.getClearAlpha();renderer.setClearColor(this.clearColor,this.clearAlpha)}if(this.clearDepth){renderer.clearDepth()}renderer.setRenderTarget(this.renderToScreen?null:readBuffer);if(this.clear)renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil);renderer.render(this.scene,this.camera);if(this.clearColor){renderer.setClearColor(this._oldClearColor,oldClearAlpha)}if(this.overrideMaterial!==undefined){this.scene.overrideMaterial=oldOverrideMaterial}renderer.autoClear=oldAutoClear}}THREE.RenderPass=RenderPass})();(function(){class SAOPass extends THREE.Pass{constructor(scene,camera,useDepthTexture=false,useNormals=false,resolution=new THREE.Vector2(256,256)){super();this.scene=scene;this.camera=camera;this.clear=true;this.needsSwap=false;this.supportsDepthTextureExtension=useDepthTexture;this.supportsNormalTexture=useNormals;this.originalClearColor=new THREE.Color;this._oldClearColor=new THREE.Color;this.oldClearAlpha=1;this.params={output:0,saoBias:0.5,saoIntensity:0.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:true,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:0.01};this.resolution=new THREE.Vector2(resolution.x,resolution.y);this.saoRenderTarget=new THREE.WebGLRenderTarget(this.resolution.x,this.resolution.y);this.blurIntermediateRenderTarget=this.saoRenderTarget.clone();this.beautyRenderTarget=this.saoRenderTarget.clone();this.normalRenderTarget=new THREE.WebGLRenderTarget(this.resolution.x,this.resolution.y,{minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter});this.depthRenderTarget=this.normalRenderTarget.clone();let depthTexture;if(this.supportsDepthTextureExtension){depthTexture=new THREE.DepthTexture;depthTexture.type=THREE.UnsignedShortType;this.beautyRenderTarget.depthTexture=depthTexture;this.beautyRenderTarget.depthBuffer=true}this.depthMaterial=new THREE.MeshDepthMaterial;this.depthMaterial.depthPacking=THREE.RGBADepthPacking;this.depthMaterial.blending=THREE.NoBlending;this.normalMaterial=new THREE.MeshNormalMaterial;this.normalMaterial.blending=THREE.NoBlending;if(THREE.SAOShader===undefined){console.error("THREE.SAOPass relies on THREE.SAOShader")}this.saoMaterial=new THREE.ShaderMaterial({defines:Object.assign({},THREE.SAOShader.defines),fragmentShader:THREE.SAOShader.fragmentShader,vertexShader:THREE.SAOShader.vertexShader,uniforms:THREE.UniformsUtils.clone(THREE.SAOShader.uniforms)});this.saoMaterial.extensions.derivatives=true;this.saoMaterial.defines["DEPTH_PACKING"]=this.supportsDepthTextureExtension?0:1;this.saoMaterial.defines["NORMAL_TEXTURE"]=this.supportsNormalTexture?1:0;this.saoMaterial.defines["PERSPECTIVE_CAMERA"]=this.camera.isPerspectiveCamera?1:0;this.saoMaterial.uniforms["tDepth"].value=this.supportsDepthTextureExtension?depthTexture:this.depthRenderTarget.texture;this.saoMaterial.uniforms["tNormal"].value=this.normalRenderTarget.texture;this.saoMaterial.uniforms["size"].value.set(this.resolution.x,this.resolution.y);this.saoMaterial.uniforms["cameraInverseProjectionMatrix"].value.copy(this.camera.projectionMatrixInverse);this.saoMaterial.uniforms["cameraProjectionMatrix"].value=this.camera.projectionMatrix;this.saoMaterial.blending=THREE.NoBlending;if(THREE.DepthLimitedBlurShader===undefined){console.error("THREE.SAOPass relies on THREE.DepthLimitedBlurShader")}this.vBlurMaterial=new THREE.ShaderMaterial({uniforms:THREE.UniformsUtils.clone(THREE.DepthLimitedBlurShader.uniforms),defines:Object.assign({},THREE.DepthLimitedBlurShader.defines),vertexShader:THREE.DepthLimitedBlurShader.vertexShader,fragmentShader:THREE.DepthLimitedBlurShader.fragmentShader});this.vBlurMaterial.defines["DEPTH_PACKING"]=this.supportsDepthTextureExtension?0:1;this.vBlurMaterial.defines["PERSPECTIVE_CAMERA"]=this.camera.isPerspectiveCamera?1:0;this.vBlurMaterial.uniforms["tDiffuse"].value=this.saoRenderTarget.texture;this.vBlurMaterial.uniforms["tDepth"].value=this.supportsDepthTextureExtension?depthTexture:this.depthRenderTarget.texture;this.vBlurMaterial.uniforms["size"].value.set(this.resolution.x,this.resolution.y);this.vBlurMaterial.blending=THREE.NoBlending;this.hBlurMaterial=new THREE.ShaderMaterial({uniforms:THREE.UniformsUtils.clone(THREE.DepthLimitedBlurShader.uniforms),defines:Object.assign({},THREE.DepthLimitedBlurShader.defines),vertexShader:THREE.DepthLimitedBlurShader.vertexShader,fragmentShader:THREE.DepthLimitedBlurShader.fragmentShader});this.hBlurMaterial.defines["DEPTH_PACKING"]=this.supportsDepthTextureExtension?0:1;this.hBlurMaterial.defines["PERSPECTIVE_CAMERA"]=this.camera.isPerspectiveCamera?1:0;this.hBlurMaterial.uniforms["tDiffuse"].value=this.blurIntermediateRenderTarget.texture;this.hBlurMaterial.uniforms["tDepth"].value=this.supportsDepthTextureExtension?depthTexture:this.depthRenderTarget.texture;this.hBlurMaterial.uniforms["size"].value.set(this.resolution.x,this.resolution.y);this.hBlurMaterial.blending=THREE.NoBlending;if(THREE.CopyShader===undefined){console.error("THREE.SAOPass relies on THREE.CopyShader")}this.materialCopy=new THREE.ShaderMaterial({uniforms:THREE.UniformsUtils.clone(THREE.CopyShader.uniforms),vertexShader:THREE.CopyShader.vertexShader,fragmentShader:THREE.CopyShader.fragmentShader,blending:THREE.NoBlending});this.materialCopy.transparent=true;this.materialCopy.depthTest=false;this.materialCopy.depthWrite=false;this.materialCopy.blending=THREE.CustomBlending;this.materialCopy.blendSrc=THREE.DstColorFactor;this.materialCopy.blendDst=THREE.ZeroFactor;this.materialCopy.blendEquation=THREE.AddEquation;this.materialCopy.blendSrcAlpha=THREE.DstAlphaFactor;this.materialCopy.blendDstAlpha=THREE.ZeroFactor;this.materialCopy.blendEquationAlpha=THREE.AddEquation;if(THREE.UnpackDepthRGBAShader===undefined){console.error("THREE.SAOPass relies on THREE.UnpackDepthRGBAShader")}this.depthCopy=new THREE.ShaderMaterial({uniforms:THREE.UniformsUtils.clone(THREE.UnpackDepthRGBAShader.uniforms),vertexShader:THREE.UnpackDepthRGBAShader.vertexShader,fragmentShader:THREE.UnpackDepthRGBAShader.fragmentShader,blending:THREE.NoBlending});this.fsQuad=new THREE.FullScreenQuad(null)}render(renderer,writeBuffer,readBuffer){if(this.renderToScreen){this.materialCopy.blending=THREE.NoBlending;this.materialCopy.uniforms["tDiffuse"].value=readBuffer.texture;this.materialCopy.needsUpdate=true;this.renderPass(renderer,this.materialCopy,null)}if(this.params.output===1){return}renderer.getClearColor(this._oldClearColor);this.oldClearAlpha=renderer.getClearAlpha();const oldAutoClear=renderer.autoClear;renderer.autoClear=false;renderer.setRenderTarget(this.depthRenderTarget);renderer.clear();this.saoMaterial.uniforms["bias"].value=this.params.saoBias;this.saoMaterial.uniforms["intensity"].value=this.params.saoIntensity;this.saoMaterial.uniforms["scale"].value=this.params.saoScale;this.saoMaterial.uniforms["kernelRadius"].value=this.params.saoKernelRadius;this.saoMaterial.uniforms["minResolution"].value=this.params.saoMinResolution;this.saoMaterial.uniforms["cameraNear"].value=this.camera.near;this.saoMaterial.uniforms["cameraFar"].value=this.camera.far;const depthCutoff=this.params.saoBlurDepthCutoff*(this.camera.far-this.camera.near);this.vBlurMaterial.uniforms["depthCutoff"].value=depthCutoff;this.hBlurMaterial.uniforms["depthCutoff"].value=depthCutoff;this.vBlurMaterial.uniforms["cameraNear"].value=this.camera.near;this.vBlurMaterial.uniforms["cameraFar"].value=this.camera.far;this.hBlurMaterial.uniforms["cameraNear"].value=this.camera.near;this.hBlurMaterial.uniforms["cameraFar"].value=this.camera.far;this.params.saoBlurRadius=Math.floor(this.params.saoBlurRadius);if(this.prevStdDev!==this.params.saoBlurStdDev||this.prevNumSamples!==this.params.saoBlurRadius){THREE.BlurShaderUtils.configure(this.vBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new THREE.Vector2(0,1));THREE.BlurShaderUtils.configure(this.hBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new THREE.Vector2(1,0));this.prevStdDev=this.params.saoBlurStdDev;this.prevNumSamples=this.params.saoBlurRadius}renderer.setClearColor(0);renderer.setRenderTarget(this.beautyRenderTarget);renderer.clear();renderer.render(this.scene,this.camera);if(!this.supportsDepthTextureExtension){this.renderOverride(renderer,this.depthMaterial,this.depthRenderTarget,0,1)}if(this.supportsNormalTexture){this.renderOverride(renderer,this.normalMaterial,this.normalRenderTarget,7829503,1)}this.renderPass(renderer,this.saoMaterial,this.saoRenderTarget,16777215,1);if(this.params.saoBlur){this.renderPass(renderer,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1);this.renderPass(renderer,this.hBlurMaterial,this.saoRenderTarget,16777215,1)}let outputMaterial=this.materialCopy;if(this.params.output===3){if(this.supportsDepthTextureExtension){this.materialCopy.uniforms["tDiffuse"].value=this.beautyRenderTarget.depthTexture;this.materialCopy.needsUpdate=true}else{this.depthCopy.uniforms["tDiffuse"].value=this.depthRenderTarget.texture;this.depthCopy.needsUpdate=true;outputMaterial=this.depthCopy}}else if(this.params.output===4){this.materialCopy.uniforms["tDiffuse"].value=this.normalRenderTarget.texture;this.materialCopy.needsUpdate=true}else{this.materialCopy.uniforms["tDiffuse"].value=this.saoRenderTarget.texture;this.materialCopy.needsUpdate=true}if(this.params.output===0){outputMaterial.blending=THREE.CustomBlending}else{outputMaterial.blending=THREE.NoBlending}this.renderPass(renderer,outputMaterial,this.renderToScreen?null:readBuffer);renderer.setClearColor(this._oldClearColor,this.oldClearAlpha);renderer.autoClear=oldAutoClear}renderPass(renderer,passMaterial,renderTarget,clearColor,clearAlpha){renderer.getClearColor(this.originalClearColor);const originalClearAlpha=renderer.getClearAlpha();const originalAutoClear=renderer.autoClear;renderer.setRenderTarget(renderTarget);renderer.autoClear=false;if(clearColor!==undefined&&clearColor!==null){renderer.setClearColor(clearColor);renderer.setClearAlpha(clearAlpha||0);renderer.clear()}this.fsQuad.material=passMaterial;this.fsQuad.render(renderer);renderer.autoClear=originalAutoClear;renderer.setClearColor(this.originalClearColor);renderer.setClearAlpha(originalClearAlpha)}renderOverride(renderer,overrideMaterial,renderTarget,clearColor,clearAlpha){renderer.getClearColor(this.originalClearColor);const originalClearAlpha=renderer.getClearAlpha();const originalAutoClear=renderer.autoClear;renderer.setRenderTarget(renderTarget);renderer.autoClear=false;clearColor=overrideMaterial.clearColor||clearColor;clearAlpha=overrideMaterial.clearAlpha||clearAlpha;if(clearColor!==undefined&&clearColor!==null){renderer.setClearColor(clearColor);renderer.setClearAlpha(clearAlpha||0);renderer.clear()}this.scene.overrideMaterial=overrideMaterial;renderer.render(this.scene,this.camera);this.scene.overrideMaterial=null;renderer.autoClear=originalAutoClear;renderer.setClearColor(this.originalClearColor);renderer.setClearAlpha(originalClearAlpha)}setSize(width,height){this.beautyRenderTarget.setSize(width,height);this.saoRenderTarget.setSize(width,height);this.blurIntermediateRenderTarget.setSize(width,height);this.normalRenderTarget.setSize(width,height);this.depthRenderTarget.setSize(width,height);this.saoMaterial.uniforms["size"].value.set(width,height);this.saoMaterial.uniforms["cameraInverseProjectionMatrix"].value.copy(this.camera.projectionMatrixInverse);this.saoMaterial.uniforms["cameraProjectionMatrix"].value=this.camera.projectionMatrix;this.saoMaterial.needsUpdate=true;this.vBlurMaterial.uniforms["size"].value.set(width,height);this.vBlurMaterial.needsUpdate=true;this.hBlurMaterial.uniforms["size"].value.set(width,height);this.hBlurMaterial.needsUpdate=true}}SAOPass.OUTPUT={"Beauty":1,"Default":0,"SAO":2,"Depth":3,"Normal":4};THREE.SAOPass=SAOPass})();(function(){const SAOShader={defines:{"NUM_SAMPLES":7,"NUM_RINGS":4,"NORMAL_TEXTURE":0,"DIFFUSE_TEXTURE":0,"DEPTH_PACKING":1,"PERSPECTIVE_CAMERA":1},uniforms:{"tDepth":{value:null},"tDiffuse":{value:null},"tNormal":{value:null},"size":{value:new THREE.Vector2(512,512)},"cameraNear":{value:1},"cameraFar":{value:100},"cameraProjectionMatrix":{value:new THREE.Matrix4},"cameraInverseProjectionMatrix":{value:new THREE.Matrix4},"scale":{value:1},"intensity":{value:0.1},"bias":{value:0.5},"minResolution":{value:0},"kernelRadius":{value:100},"randomSeed":{value:0}},vertexShader:` varying vec2 vUv; void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` #include varying vec2 vUv; #if DIFFUSE_TEXTURE == 1 uniform sampler2D tDiffuse; #endif uniform sampler2D tDepth; #if NORMAL_TEXTURE == 1 uniform sampler2D tNormal; #endif uniform float cameraNear; uniform float cameraFar; uniform mat4 cameraProjectionMatrix; uniform mat4 cameraInverseProjectionMatrix; uniform float scale; uniform float intensity; uniform float bias; uniform float kernelRadius; uniform float minResolution; uniform vec2 size; uniform float randomSeed; // RGBA depth #include vec4 getDefaultColor( const in vec2 screenPosition ) { #if DIFFUSE_TEXTURE == 1 return texture2D( tDiffuse, vUv ); #else return vec4( 1.0 ); #endif } float getDepth( const in vec2 screenPosition ) { #if DEPTH_PACKING == 1 return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) ); #else return texture2D( tDepth, screenPosition ).x; #endif } float getViewZ( const in float depth ) { #if PERSPECTIVE_CAMERA == 1 return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); #else return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); #endif } vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) { float clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3]; vec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 ); clipPosition *= clipW; // unprojection. return ( cameraInverseProjectionMatrix * clipPosition ).xyz; } vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) { #if NORMAL_TEXTURE == 1 return unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz ); #else return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) ); #endif } float scaleDividedByCameraFar; float minResolutionMultipliedByCameraFar; float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) { vec3 viewDelta = sampleViewPosition - centerViewPosition; float viewDistance = length( viewDelta ); float scaledScreenDistance = scaleDividedByCameraFar * viewDistance; return max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) ); } // moving costly divides into consts const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES ); const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES ); float getAmbientOcclusion( const in vec3 centerViewPosition ) { // precompute some variables require in getOcclusion. scaleDividedByCameraFar = scale / cameraFar; minResolutionMultipliedByCameraFar = minResolution * cameraFar; vec3 centerViewNormal = getViewNormal( centerViewPosition, vUv ); // jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/ float angle = rand( vUv + randomSeed ) * PI2; vec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size; vec2 radiusStep = radius; float occlusionSum = 0.0; float weightSum = 0.0; for( int i = 0; i < NUM_SAMPLES; i ++ ) { vec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius; radius += radiusStep; angle += ANGLE_STEP; float sampleDepth = getDepth( sampleUv ); if( sampleDepth >= ( 1.0 - EPSILON ) ) { continue; } float sampleViewZ = getViewZ( sampleDepth ); vec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ ); occlusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition ); weightSum += 1.0; } if( weightSum == 0.0 ) discard; return occlusionSum * ( intensity / weightSum ); } void main() { float centerDepth = getDepth( vUv ); if( centerDepth >= ( 1.0 - EPSILON ) ) { discard; } float centerViewZ = getViewZ( centerDepth ); vec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ ); float ambientOcclusion = getAmbientOcclusion( viewPosition ); gl_FragColor = getDefaultColor( vUv ); gl_FragColor.xyz *= 1.0 - ambientOcclusion; }`};THREE.SAOShader=SAOShader})();(function(){class SavePass extends THREE.Pass{constructor(renderTarget){super();if(THREE.CopyShader===undefined)console.error("THREE.SavePass relies on THREE.CopyShader");const shader=THREE.CopyShader;this.textureID="tDiffuse";this.uniforms=THREE.UniformsUtils.clone(shader.uniforms);this.material=new THREE.ShaderMaterial({uniforms:this.uniforms,vertexShader:shader.vertexShader,fragmentShader:shader.fragmentShader});this.renderTarget=renderTarget;if(this.renderTarget===undefined){this.renderTarget=new THREE.WebGLRenderTarget(window.innerWidth,window.innerHeight);this.renderTarget.texture.name="SavePass.rt"}this.needsSwap=false;this.fsQuad=new THREE.FullScreenQuad(this.material)}render(renderer,writeBuffer,readBuffer){if(this.uniforms[this.textureID]){this.uniforms[this.textureID].value=readBuffer.texture}renderer.setRenderTarget(this.renderTarget);if(this.clear)renderer.clear();this.fsQuad.render(renderer)}}THREE.SavePass=SavePass})();(function(){class ShaderPass extends THREE.Pass{constructor(shader,textureID){super();this.textureID=textureID!==undefined?textureID:"tDiffuse";if(shader instanceof THREE.ShaderMaterial){this.uniforms=shader.uniforms;this.material=shader}else if(shader){this.uniforms=THREE.UniformsUtils.clone(shader.uniforms);this.material=new THREE.ShaderMaterial({defines:Object.assign({},shader.defines),uniforms:this.uniforms,vertexShader:shader.vertexShader,fragmentShader:shader.fragmentShader})}this.fsQuad=new THREE.FullScreenQuad(this.material)}render(renderer,writeBuffer,readBuffer){if(this.uniforms[this.textureID]){this.uniforms[this.textureID].value=readBuffer.texture}this.fsQuad.material=this.material;if(this.renderToScreen){renderer.setRenderTarget(null);this.fsQuad.render(renderer)}else{renderer.setRenderTarget(writeBuffer);if(this.clear)renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil);this.fsQuad.render(renderer)}}}THREE.ShaderPass=ShaderPass})();(function(){class SMAAPass extends THREE.Pass{constructor(width,height){super();this.edgesRT=new THREE.WebGLRenderTarget(width,height,{depthBuffer:false});this.edgesRT.texture.name="SMAAPass.edges";this.weightsRT=new THREE.WebGLRenderTarget(width,height,{depthBuffer:false});this.weightsRT.texture.name="SMAAPass.weights";const scope=this;const areaTextureImage=new Image;areaTextureImage.src=this.getAreaTexture();areaTextureImage.onload=function(){scope.areaTexture.needsUpdate=true};this.areaTexture=new THREE.Texture;this.areaTexture.name="SMAAPass.area";this.areaTexture.image=areaTextureImage;this.areaTexture.minFilter=THREE.LinearFilter;this.areaTexture.generateMipmaps=false;this.areaTexture.flipY=false;const searchTextureImage=new Image;searchTextureImage.src=this.getSearchTexture();searchTextureImage.onload=function(){scope.searchTexture.needsUpdate=true};this.searchTexture=new THREE.Texture;this.searchTexture.name="SMAAPass.search";this.searchTexture.image=searchTextureImage;this.searchTexture.magFilter=THREE.NearestFilter;this.searchTexture.minFilter=THREE.NearestFilter;this.searchTexture.generateMipmaps=false;this.searchTexture.flipY=false;if(THREE.SMAAEdgesShader===undefined){console.error("THREE.SMAAPass relies on SMAAShader")}this.uniformsEdges=THREE.UniformsUtils.clone(THREE.SMAAEdgesShader.uniforms);this.uniformsEdges["resolution"].value.set(1/width,1/height);this.materialEdges=new THREE.ShaderMaterial({defines:Object.assign({},THREE.SMAAEdgesShader.defines),uniforms:this.uniformsEdges,vertexShader:THREE.SMAAEdgesShader.vertexShader,fragmentShader:THREE.SMAAEdgesShader.fragmentShader});this.uniformsWeights=THREE.UniformsUtils.clone(THREE.SMAAWeightsShader.uniforms);this.uniformsWeights["resolution"].value.set(1/width,1/height);this.uniformsWeights["tDiffuse"].value=this.edgesRT.texture;this.uniformsWeights["tArea"].value=this.areaTexture;this.uniformsWeights["tSearch"].value=this.searchTexture;this.materialWeights=new THREE.ShaderMaterial({defines:Object.assign({},THREE.SMAAWeightsShader.defines),uniforms:this.uniformsWeights,vertexShader:THREE.SMAAWeightsShader.vertexShader,fragmentShader:THREE.SMAAWeightsShader.fragmentShader});this.uniformsBlend=THREE.UniformsUtils.clone(THREE.SMAABlendShader.uniforms);this.uniformsBlend["resolution"].value.set(1/width,1/height);this.uniformsBlend["tDiffuse"].value=this.weightsRT.texture;this.materialBlend=new THREE.ShaderMaterial({uniforms:this.uniformsBlend,vertexShader:THREE.SMAABlendShader.vertexShader,fragmentShader:THREE.SMAABlendShader.fragmentShader});this.needsSwap=false;this.fsQuad=new THREE.FullScreenQuad(null)}render(renderer,writeBuffer,readBuffer){this.uniformsEdges["tDiffuse"].value=readBuffer.texture;this.fsQuad.material=this.materialEdges;renderer.setRenderTarget(this.edgesRT);if(this.clear)renderer.clear();this.fsQuad.render(renderer);this.fsQuad.material=this.materialWeights;renderer.setRenderTarget(this.weightsRT);if(this.clear)renderer.clear();this.fsQuad.render(renderer);this.uniformsBlend["tColor"].value=readBuffer.texture;this.fsQuad.material=this.materialBlend;if(this.renderToScreen){renderer.setRenderTarget(null);this.fsQuad.render(renderer)}else{renderer.setRenderTarget(writeBuffer);if(this.clear)renderer.clear();this.fsQuad.render(renderer)}}setSize(width,height){this.edgesRT.setSize(width,height);this.weightsRT.setSize(width,height);this.materialEdges.uniforms["resolution"].value.set(1/width,1/height);this.materialWeights.uniforms["resolution"].value.set(1/width,1/height);this.materialBlend.uniforms["resolution"].value.set(1/width,1/height)}getAreaTexture(){return"data:image/png;base64,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"}getSearchTexture(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAhCAAAAABIXyLAAAAAOElEQVRIx2NgGAWjYBSMglEwEICREYRgFBZBqDCSLA2MGPUIVQETE9iNUAqLR5gIeoQKRgwXjwAAGn4AtaFeYLEAAAAASUVORK5CYII="}}THREE.SMAAPass=SMAAPass})();(function(){const SMAAEdgesShader={defines:{"SMAA_THRESHOLD":"0.1"},uniforms:{"tDiffuse":{value:null},"resolution":{value:new THREE.Vector2(1/1024,1/512)}},vertexShader:` uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[ 3 ]; void SMAAEdgeDetectionVS( vec2 texcoord ) { vOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 ); // WebGL port note: Changed sign in W component vOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 ); // WebGL port note: Changed sign in W component vOffset[ 2 ] = texcoord.xyxy + resolution.xyxy * vec4( -2.0, 0.0, 0.0, 2.0 ); // WebGL port note: Changed sign in W component } void main() { vUv = uv; SMAAEdgeDetectionVS( vUv ); gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` uniform sampler2D tDiffuse; varying vec2 vUv; varying vec4 vOffset[ 3 ]; vec4 SMAAColorEdgeDetectionPS( vec2 texcoord, vec4 offset[3], sampler2D colorTex ) { vec2 threshold = vec2( SMAA_THRESHOLD, SMAA_THRESHOLD ); // Calculate color deltas: vec4 delta; vec3 C = texture2D( colorTex, texcoord ).rgb; vec3 Cleft = texture2D( colorTex, offset[0].xy ).rgb; vec3 t = abs( C - Cleft ); delta.x = max( max( t.r, t.g ), t.b ); vec3 Ctop = texture2D( colorTex, offset[0].zw ).rgb; t = abs( C - Ctop ); delta.y = max( max( t.r, t.g ), t.b ); // We do the usual threshold: vec2 edges = step( threshold, delta.xy ); // Then discard if there is no edge: if ( dot( edges, vec2( 1.0, 1.0 ) ) == 0.0 ) discard; // Calculate right and bottom deltas: vec3 Cright = texture2D( colorTex, offset[1].xy ).rgb; t = abs( C - Cright ); delta.z = max( max( t.r, t.g ), t.b ); vec3 Cbottom = texture2D( colorTex, offset[1].zw ).rgb; t = abs( C - Cbottom ); delta.w = max( max( t.r, t.g ), t.b ); // Calculate the maximum delta in the direct neighborhood: float maxDelta = max( max( max( delta.x, delta.y ), delta.z ), delta.w ); // Calculate left-left and top-top deltas: vec3 Cleftleft = texture2D( colorTex, offset[2].xy ).rgb; t = abs( C - Cleftleft ); delta.z = max( max( t.r, t.g ), t.b ); vec3 Ctoptop = texture2D( colorTex, offset[2].zw ).rgb; t = abs( C - Ctoptop ); delta.w = max( max( t.r, t.g ), t.b ); // Calculate the final maximum delta: maxDelta = max( max( maxDelta, delta.z ), delta.w ); // Local contrast adaptation in action: edges.xy *= step( 0.5 * maxDelta, delta.xy ); return vec4( edges, 0.0, 0.0 ); } void main() { gl_FragColor = SMAAColorEdgeDetectionPS( vUv, vOffset, tDiffuse ); }`};const SMAAWeightsShader={defines:{"SMAA_MAX_SEARCH_STEPS":"8","SMAA_AREATEX_MAX_DISTANCE":"16","SMAA_AREATEX_PIXEL_SIZE":"( 1.0 / vec2( 160.0, 560.0 ) )","SMAA_AREATEX_SUBTEX_SIZE":"( 1.0 / 7.0 )"},uniforms:{"tDiffuse":{value:null},"tArea":{value:null},"tSearch":{value:null},"resolution":{value:new THREE.Vector2(1/1024,1/512)}},vertexShader:` uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[ 3 ]; varying vec2 vPixcoord; void SMAABlendingWeightCalculationVS( vec2 texcoord ) { vPixcoord = texcoord / resolution; // We will use these offsets for the searches later on (see @PSEUDO_GATHER4): vOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -0.25, 0.125, 1.25, 0.125 ); // WebGL port note: Changed sign in Y and W components vOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( -0.125, 0.25, -0.125, -1.25 ); // WebGL port note: Changed sign in Y and W components // And these for the searches, they indicate the ends of the loops: vOffset[ 2 ] = vec4( vOffset[ 0 ].xz, vOffset[ 1 ].yw ) + vec4( -2.0, 2.0, -2.0, 2.0 ) * resolution.xxyy * float( SMAA_MAX_SEARCH_STEPS ); } void main() { vUv = uv; SMAABlendingWeightCalculationVS( vUv ); gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` #define SMAASampleLevelZeroOffset( tex, coord, offset ) texture2D( tex, coord + float( offset ) * resolution, 0.0 ) uniform sampler2D tDiffuse; uniform sampler2D tArea; uniform sampler2D tSearch; uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[3]; varying vec2 vPixcoord; #if __VERSION__ == 100 vec2 round( vec2 x ) { return sign( x ) * floor( abs( x ) + 0.5 ); } #endif float SMAASearchLength( sampler2D searchTex, vec2 e, float bias, float scale ) { // Not required if searchTex accesses are set to point: // float2 SEARCH_TEX_PIXEL_SIZE = 1.0 / float2(66.0, 33.0); // e = float2(bias, 0.0) + 0.5 * SEARCH_TEX_PIXEL_SIZE + // e * float2(scale, 1.0) * float2(64.0, 32.0) * SEARCH_TEX_PIXEL_SIZE; e.r = bias + e.r * scale; return 255.0 * texture2D( searchTex, e, 0.0 ).r; } float SMAASearchXLeft( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { /** * @PSEUDO_GATHER4 * This texcoord has been offset by (-0.25, -0.125) in the vertex shader to * sample between edge, thus fetching four edges in a row. * Sampling with different offsets in each direction allows to disambiguate * which edges are active from the four fetched ones. */ vec2 e = vec2( 0.0, 1.0 ); for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for e = texture2D( edgesTex, texcoord, 0.0 ).rg; texcoord -= vec2( 2.0, 0.0 ) * resolution; if ( ! ( texcoord.x > end && e.g > 0.8281 && e.r == 0.0 ) ) break; } // We correct the previous (-0.25, -0.125) offset we applied: texcoord.x += 0.25 * resolution.x; // The searches are bias by 1, so adjust the coords accordingly: texcoord.x += resolution.x; // Disambiguate the length added by the last step: texcoord.x += 2.0 * resolution.x; // Undo last step texcoord.x -= resolution.x * SMAASearchLength(searchTex, e, 0.0, 0.5); return texcoord.x; } float SMAASearchXRight( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { vec2 e = vec2( 0.0, 1.0 ); for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for e = texture2D( edgesTex, texcoord, 0.0 ).rg; texcoord += vec2( 2.0, 0.0 ) * resolution; if ( ! ( texcoord.x < end && e.g > 0.8281 && e.r == 0.0 ) ) break; } texcoord.x -= 0.25 * resolution.x; texcoord.x -= resolution.x; texcoord.x -= 2.0 * resolution.x; texcoord.x += resolution.x * SMAASearchLength( searchTex, e, 0.5, 0.5 ); return texcoord.x; } float SMAASearchYUp( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { vec2 e = vec2( 1.0, 0.0 ); for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for e = texture2D( edgesTex, texcoord, 0.0 ).rg; texcoord += vec2( 0.0, 2.0 ) * resolution; // WebGL port note: Changed sign if ( ! ( texcoord.y > end && e.r > 0.8281 && e.g == 0.0 ) ) break; } texcoord.y -= 0.25 * resolution.y; // WebGL port note: Changed sign texcoord.y -= resolution.y; // WebGL port note: Changed sign texcoord.y -= 2.0 * resolution.y; // WebGL port note: Changed sign texcoord.y += resolution.y * SMAASearchLength( searchTex, e.gr, 0.0, 0.5 ); // WebGL port note: Changed sign return texcoord.y; } float SMAASearchYDown( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { vec2 e = vec2( 1.0, 0.0 ); for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for e = texture2D( edgesTex, texcoord, 0.0 ).rg; texcoord -= vec2( 0.0, 2.0 ) * resolution; // WebGL port note: Changed sign if ( ! ( texcoord.y < end && e.r > 0.8281 && e.g == 0.0 ) ) break; } texcoord.y += 0.25 * resolution.y; // WebGL port note: Changed sign texcoord.y += resolution.y; // WebGL port note: Changed sign texcoord.y += 2.0 * resolution.y; // WebGL port note: Changed sign texcoord.y -= resolution.y * SMAASearchLength( searchTex, e.gr, 0.5, 0.5 ); // WebGL port note: Changed sign return texcoord.y; } vec2 SMAAArea( sampler2D areaTex, vec2 dist, float e1, float e2, float offset ) { // Rounding prevents precision errors of bilinear filtering: vec2 texcoord = float( SMAA_AREATEX_MAX_DISTANCE ) * round( 4.0 * vec2( e1, e2 ) ) + dist; // We do a scale and bias for mapping to texel space: texcoord = SMAA_AREATEX_PIXEL_SIZE * texcoord + ( 0.5 * SMAA_AREATEX_PIXEL_SIZE ); // Move to proper place, according to the subpixel offset: texcoord.y += SMAA_AREATEX_SUBTEX_SIZE * offset; return texture2D( areaTex, texcoord, 0.0 ).rg; } vec4 SMAABlendingWeightCalculationPS( vec2 texcoord, vec2 pixcoord, vec4 offset[ 3 ], sampler2D edgesTex, sampler2D areaTex, sampler2D searchTex, ivec4 subsampleIndices ) { vec4 weights = vec4( 0.0, 0.0, 0.0, 0.0 ); vec2 e = texture2D( edgesTex, texcoord ).rg; if ( e.g > 0.0 ) { // Edge at north vec2 d; // Find the distance to the left: vec2 coords; coords.x = SMAASearchXLeft( edgesTex, searchTex, offset[ 0 ].xy, offset[ 2 ].x ); coords.y = offset[ 1 ].y; // offset[1].y = texcoord.y - 0.25 * resolution.y (@CROSSING_OFFSET) d.x = coords.x; // Now fetch the left crossing edges, two at a time using bilinear // filtering. Sampling at -0.25 (see @CROSSING_OFFSET) enables to // discern what value each edge has: float e1 = texture2D( edgesTex, coords, 0.0 ).r; // Find the distance to the right: coords.x = SMAASearchXRight( edgesTex, searchTex, offset[ 0 ].zw, offset[ 2 ].y ); d.y = coords.x; // We want the distances to be in pixel units (doing this here allow to // better interleave arithmetic and memory accesses): d = d / resolution.x - pixcoord.x; // SMAAArea below needs a sqrt, as the areas texture is compressed // quadratically: vec2 sqrt_d = sqrt( abs( d ) ); // Fetch the right crossing edges: coords.y -= 1.0 * resolution.y; // WebGL port note: Added float e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 1, 0 ) ).r; // Ok, we know how this pattern looks like, now it is time for getting // the actual area: weights.rg = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.y ) ); } if ( e.r > 0.0 ) { // Edge at west vec2 d; // Find the distance to the top: vec2 coords; coords.y = SMAASearchYUp( edgesTex, searchTex, offset[ 1 ].xy, offset[ 2 ].z ); coords.x = offset[ 0 ].x; // offset[1].x = texcoord.x - 0.25 * resolution.x; d.x = coords.y; // Fetch the top crossing edges: float e1 = texture2D( edgesTex, coords, 0.0 ).g; // Find the distance to the bottom: coords.y = SMAASearchYDown( edgesTex, searchTex, offset[ 1 ].zw, offset[ 2 ].w ); d.y = coords.y; // We want the distances to be in pixel units: d = d / resolution.y - pixcoord.y; // SMAAArea below needs a sqrt, as the areas texture is compressed // quadratically: vec2 sqrt_d = sqrt( abs( d ) ); // Fetch the bottom crossing edges: coords.y -= 1.0 * resolution.y; // WebGL port note: Added float e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 0, 1 ) ).g; // Get the area for this direction: weights.ba = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.x ) ); } return weights; } void main() { gl_FragColor = SMAABlendingWeightCalculationPS( vUv, vPixcoord, vOffset, tDiffuse, tArea, tSearch, ivec4( 0.0 ) ); }`};const SMAABlendShader={uniforms:{"tDiffuse":{value:null},"tColor":{value:null},"resolution":{value:new THREE.Vector2(1/1024,1/512)}},vertexShader:` uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[ 2 ]; void SMAANeighborhoodBlendingVS( vec2 texcoord ) { vOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 ); // WebGL port note: Changed sign in W component vOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 ); // WebGL port note: Changed sign in W component } void main() { vUv = uv; SMAANeighborhoodBlendingVS( vUv ); gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` uniform sampler2D tDiffuse; uniform sampler2D tColor; uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[ 2 ]; vec4 SMAANeighborhoodBlendingPS( vec2 texcoord, vec4 offset[ 2 ], sampler2D colorTex, sampler2D blendTex ) { // Fetch the blending weights for current pixel: vec4 a; a.xz = texture2D( blendTex, texcoord ).xz; a.y = texture2D( blendTex, offset[ 1 ].zw ).g; a.w = texture2D( blendTex, offset[ 1 ].xy ).a; // Is there any blending weight with a value greater than 0.0? if ( dot(a, vec4( 1.0, 1.0, 1.0, 1.0 )) < 1e-5 ) { return texture2D( colorTex, texcoord, 0.0 ); } else { // Up to 4 lines can be crossing a pixel (one through each edge). We // favor blending by choosing the line with the maximum weight for each // direction: vec2 offset; offset.x = a.a > a.b ? a.a : -a.b; // left vs. right offset.y = a.g > a.r ? -a.g : a.r; // top vs. bottom // WebGL port note: Changed signs // Then we go in the direction that has the maximum weight: if ( abs( offset.x ) > abs( offset.y )) { // horizontal vs. vertical offset.y = 0.0; } else { offset.x = 0.0; } // Fetch the opposite color and lerp by hand: vec4 C = texture2D( colorTex, texcoord, 0.0 ); texcoord += sign( offset ) * resolution; vec4 Cop = texture2D( colorTex, texcoord, 0.0 ); float s = abs( offset.x ) > abs( offset.y ) ? abs( offset.x ) : abs( offset.y ); // WebGL port note: Added gamma correction C.xyz = pow(C.xyz, vec3(2.2)); Cop.xyz = pow(Cop.xyz, vec3(2.2)); vec4 mixed = mix(C, Cop, s); mixed.xyz = pow(mixed.xyz, vec3(1.0 / 2.2)); return mixed; } } void main() { gl_FragColor = SMAANeighborhoodBlendingPS( vUv, vOffset, tColor, tDiffuse ); }`};THREE.SMAABlendShader=SMAABlendShader;THREE.SMAAEdgesShader=SMAAEdgesShader;THREE.SMAAWeightsShader=SMAAWeightsShader})();(function(){class SSAARenderPass extends THREE.Pass{constructor(scene,camera,clearColor,clearAlpha){super();this.scene=scene;this.camera=camera;this.sampleLevel=4;this.unbiased=true;this.clearColor=clearColor!==undefined?clearColor:0;this.clearAlpha=clearAlpha!==undefined?clearAlpha:0;this._oldClearColor=new THREE.Color;if(THREE.CopyShader===undefined)console.error("THREE.SSAARenderPass relies on THREE.CopyShader");const copyShader=THREE.CopyShader;this.copyUniforms=THREE.UniformsUtils.clone(copyShader.uniforms);this.copyMaterial=new THREE.ShaderMaterial({uniforms:this.copyUniforms,vertexShader:copyShader.vertexShader,fragmentShader:copyShader.fragmentShader,transparent:true,blending:THREE.AdditiveBlending,depthTest:false,depthWrite:false});this.fsQuad=new THREE.FullScreenQuad(this.copyMaterial)}dispose(){if(this.sampleRenderTarget){this.sampleRenderTarget.dispose();this.sampleRenderTarget=null}}setSize(width,height){if(this.sampleRenderTarget)this.sampleRenderTarget.setSize(width,height)}render(renderer,writeBuffer,readBuffer){if(!this.sampleRenderTarget){this.sampleRenderTarget=new THREE.WebGLRenderTarget(readBuffer.width,readBuffer.height);this.sampleRenderTarget.texture.name="SSAARenderPass.sample"}const jitterOffsets=_JitterVectors[Math.max(0,Math.min(this.sampleLevel,5))];const autoClear=renderer.autoClear;renderer.autoClear=false;renderer.getClearColor(this._oldClearColor);const oldClearAlpha=renderer.getClearAlpha();const baseSampleWeight=1/jitterOffsets.length;const roundingRange=1/32;this.copyUniforms["tDiffuse"].value=this.sampleRenderTarget.texture;const viewOffset={fullWidth:readBuffer.width,fullHeight:readBuffer.height,offsetX:0,offsetY:0,width:readBuffer.width,height:readBuffer.height};const originalViewOffset=Object.assign({},this.camera.view);if(originalViewOffset.enabled)Object.assign(viewOffset,originalViewOffset);for(let i=0;i void main() { float depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) ); gl_FragColor = vec4( vec3( depth ), opacity ); }`};THREE.UnpackDepthRGBAShader=UnpackDepthRGBAShader})(); })(); } catch (e) { console.log(e.message, e.stack); throw e; };