1try { (function() { 2var requirejs,require,define; 3(function(){function J(d){return ia.call(d)==="[object Function]"}function X(d){return ia.call(d)==="[object Array]"}function Y(d,f,l){for(var j in f)if(!(j in F)&&(!(j in d)||l))d[j]=f[j];return h}function K(d,f,l){d=new Error(f+"\nhttp://requirejs.org/docs/errors.html#"+d);if(l)d.originalError=l;return d}function ja(d,f,l){var j,q,o;for(j=0;o=f[j];j++){o=typeof o==="string"?{name:o}:o;q=o.location;if(l&&(!q||q.indexOf("/")!==0&&q.indexOf(":")===-1))q=l+"/"+(q||o.name);d[o.name]={name:o.name,location:q|| 4o.name,main:(o.main||"main").replace(ua,"").replace(ka,"")}}}function Z(d,f){if(d.holdReady)d.holdReady(f);else if(f)d.readyWait+=1;else d.ready(true)}function va(d){function f(a){var b,c;for(b=0;c=a[b];b++)if(c==="."){a.splice(b,1);b-=1}else if(c==="..")if(b===1&&(a[2]===".."||a[0]===".."))break;else if(b>0){a.splice(b-1,2);b-=2}}function l(a,b){var c;if(a.charAt(0)===".")if(b){if(r.pkgs[b])b=[b];else{b=b.split("/");b=b.slice(0,b.length-1)}a=b.concat(a.split("/"));f(a);c=r.pkgs[b=a[0]];a=a.join("/"); 5if(c&&a===b+"/"+c.main)a=b}return a}function j(a,b){var c=a?a.indexOf("!"):-1,e=null,g=b?b.name:null,k=a,n,m;if(c!==-1){e=a.substring(0,c);a=a.substring(c+1,a.length)}if(e)e=l(e,g);if(a){if(e)n=(c=p[e])?c.normalize?c.normalize(a,function(u){return l(u,g)}):l(a,g):"__$p"+g+"@"+a;else n=l(a,g);m=$[n];if(!m){m=h.toModuleUrl?h.toModuleUrl(i,n,b):i.nameToUrl(n,null,b);$[n]=m}}return{prefix:e,name:n,parentMap:b,url:m,originalName:k,fullName:e?e+"!"+n:n}}function q(){var a=true,b=r.priorityWait,c,e;if(b){for(e= 60;c=b[e];e++)if(!v[c]){a=false;break}a&&delete r.priorityWait}return a}function o(a){return function(b){a.exports=b}}function L(a,b,c){return function(){var e=[].concat(wa.call(arguments,0)),g;if(c&&J(g=e[e.length-1]))g.__requireJsBuild=true;e.push(b);return a.apply(null,e)}}function la(a,b){b=L(i.require,a,b);Y(b,{nameToUrl:L(i.nameToUrl,a),toUrl:L(i.toUrl,a),defined:L(i.requireDefined,a),specified:L(i.requireSpecified,a),ready:h.ready,isBrowser:h.isBrowser});if(h.paths)b.paths=h.paths;return b} 7function xa(a){var b,c,e,g,k,n,m,u=T[a];if(u)for(g=0;c=u[g];g++){b=c.fullName;c=j(c.originalName,c.parentMap);c=c.fullName;e=w[b]||[];k=w[c];if(c!==b){if(b in y){delete y[b];y[c]=true}w[c]=k?k.concat(e):e;delete w[b];for(k=0;k<e.length;k++){m=e[k].depArray;for(n=0;n<m.length;n++)if(m[n]===b)m[n]=c}}}delete T[a]}function ma(a){var b=a.prefix,c=a.fullName;if(!(y[c]||c in p)){if(b&&!G[b]){G[b]=undefined;(T[b]||(T[b]=[])).push(a);(w[b]||(w[b]=[])).push({onDep:function(e){e===b&&xa(b)}});ma(j(b))}i.paused.push(a)}} 8function aa(a){var b,c,e;b=a.callback;var g=a.fullName,k=[],n=a.depArray;if(b&&J(b)){if(n)for(b=0;b<n.length;b++)k.push(a.deps[n[b]]);try{c=h.execCb(g,a.callback,k,p[g])}catch(m){e=m}if(g)if(a.cjsModule&&a.cjsModule.exports!==undefined)c=p[g]=a.cjsModule.exports;else if(c===undefined&&a.usingExports)c=p[g];else p[g]=c}else if(g)c=p[g]=b;if(B[a.waitId]){delete B[a.waitId];a.isDone=true;i.waitCount-=1;if(i.waitCount===0)ba=[]}if(e){e=K("defineerror",'Error evaluating module "'+g+'" at location "'+(g? 9j(g).url:"")+'":\n'+e+"\nfileName:"+(e.fileName||e.sourceURL)+"\nlineNumber: "+(e.lineNumber||e.line),e);e.moduleName=g;return h.onError(e)}if(g)if(a=w[g]){for(b=0;b<a.length;b++)a[b].onDep(g,c);delete w[g]}}function na(a,b,c,e){a=j(a,e);var g=a.name,k=a.fullName,n={},m={waitId:g||ya+za++,depCount:0,depMax:0,prefix:a.prefix,name:g,fullName:k,deps:{},depArray:b,callback:c,onDep:function(oa,Aa){if(!(oa in m.deps)){m.deps[oa]=Aa;m.depCount+=1;m.depCount===m.depMax&&aa(m)}}},u,t;if(k){if(k in p||v[k]=== 10true||k==="jquery"&&r.jQuery&&r.jQuery!==c().fn.jquery)return;y[k]=true;v[k]=true;k==="jquery"&&c&&U(c())}for(c=0;c<b.length;c++)if(u=b[c]){u=j(u,g?a:e);t=u.fullName;b[c]=t;if(t==="require")m.deps[t]=la(a);else if(t==="exports"){m.deps[t]=p[k]={};m.usingExports=true}else if(t==="module"){m.cjsModule=u=m.deps[t]={id:g,uri:g?i.nameToUrl(g,null,e):undefined,exports:p[k]};u.setExports=o(u)}else if(t in p&&!(t in B))m.deps[t]=p[t];else if(!n[t]){m.depMax+=1;ma(u);(w[t]||(w[t]=[])).push(m);n[t]=true}}if(m.depCount=== 11m.depMax)aa(m);else{B[m.waitId]=m;ba.push(m);i.waitCount+=1}}function M(a){na.apply(null,a);v[a[0]]=true}function pa(a,b){if(!a.isDone){var c=a.fullName,e=a.depArray,g,k;if(c){if(b[c])return p[c];b[c]=true}for(k=0;k<e.length;k++)(g=e[k])&&!a.deps[g]&&B[g]&&a.onDep(g,pa(B[g],b));return c?p[c]:undefined}}function ca(){var a=r.waitSeconds*1E3,b=a&&i.startTime+a<(new Date).getTime();a="";var c=false,e=false,g;if(!(i.pausedCount>
110)){if(r.priorityWait)if(q())C();else return;for(g in v)if(!(g in F)){c=true; 12if(!v[g])if(b)a+=g+" ";else{e=true;break}}if(c||i.waitCount){if(b&&a){g=K("timeout","Load timeout for modules: "+a);g.requireType="timeout";g.requireModules=a;return h.onError(g)}if(e||i.scriptCount){if((A||qa)&&!da)da=setTimeout(function(){da=0;ca()},50)}else{if(i.waitCount){for(D=0;a=ba[D];D++)pa(a,{});if(ea<5){ea+=1;ca()}}ea=0;h.checkReadyState()}}}}function ra(a,b){var c=b.name,e=b.fullName,g;if(!(e in p||e in v)){G[a]||(G[a]=p[a]);v[e]||(v[e]=false);g=function(k){h.onPluginLoad&&h.onPluginLoad(i, 13a,c,k);aa({prefix:b.prefix,name:b.name,fullName:b.fullName,callback:function(){return k}});v[e]=true};g.fromText=function(k,n){var m=N;i.loaded[k]=false;i.scriptCount+=1;if(m)N=false;h.exec(n);if(m)N=true;i.completeLoad(k)};G[a].load(c,la(b.parentMap,true),g,r)}}function Ba(a){if(a.prefix&&a.name.indexOf("__$p")===0&&p[a.prefix])a=j(a.originalName,a.parentMap);var b=a.prefix,c=a.fullName,e=i.urlFetched;if(!(y[c]||v[c])){y[c]=true;if(b)if(p[b])ra(b,a);else{if(!O[b]){O[b]=[];(w[b]||(w[b]=[])).push({onDep:function(g){if(g=== 14b){var k,n=O[b];for(g=0;g<n.length;g++){k=n[g];ra(b,j(k.originalName,k.parentMap))}delete O[b]}}})}O[b].push(a)}else if(!e[a.url]){h.load(i,c,a.url);e[a.url]=true}}}var i,C,r={waitSeconds:7,baseUrl:s.baseUrl||"./",paths:{},pkgs:{}},P=[],y={require:true,exports:true,module:true},$={},p={},v={},B={},ba=[],za=0,w={},G={},O={},fa=0,T={};U=function(a){if(!i.jQuery)if(a=a||(typeof jQuery!=="undefined"?jQuery:null))if(!(r.jQuery&&a.fn.jquery!==r.jQuery))if("holdReady"in a||"readyWait"in a){i.jQuery=a;M(["jquery", 15[],function(){return jQuery}]);if(i.scriptCount){Z(a,true);i.jQueryIncremented=true}}};C=function(){var a,b,c;fa+=1;if(i.scriptCount<=0)i.scriptCount=0;for(;P.length;){a=P.shift();if(a[0]===null)return h.onError(K("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));else M(a)}if(!r.priorityWait||q())for(;i.paused.length;){c=i.paused;i.pausedCount+=c.length;i.paused=[];for(b=0;a=c[b];b++)Ba(a);i.startTime=(new Date).getTime();i.pausedCount-=c.length}fa===1&&ca();fa-=1};i={contextName:d, 16config:r,defQueue:P,waiting:B,waitCount:0,specified:y,loaded:v,urlMap:$,scriptCount:0,urlFetched:{},defined:p,paused:[],pausedCount:0,plugins:G,managerCallbacks:w,makeModuleMap:j,normalize:l,configure:function(a){var b,c,e;if(a.baseUrl)if(a.baseUrl.charAt(a.baseUrl.length-1)!=="/")a.baseUrl+="/";b=r.paths;e=r.pkgs;Y(r,a,true);if(a.paths){for(c in a.paths)c in F||(b[c]=a.paths[c]);r.paths=b}if((b=a.packagePaths)||a.packages){if(b)for(c in b)c in F||ja(e,b[c],c);a.packages&&ja(e,a.packages);r.pkgs= 17e}if(a.priority){c=i.requireWait;i.requireWait=false;i.takeGlobalQueue();C();i.require(a.priority);C();i.requireWait=c;r.priorityWait=a.priority}if(a.deps||a.callback)i.require(a.deps||[],a.callback);a.ready&&h.ready(a.ready)},requireDefined:function(a,b){return j(a,b).fullName in p},requireSpecified:function(a,b){return j(a,b).fullName in y},require:function(a,b,c){if(typeof a==="string"){if(h.get)return h.get(i,a,b);c=b;b=j(a,c);a=b.fullName;if(!(a in p))return h.onError(K("notloaded","Module name '"+ 18b.fullName+"' has not been loaded yet for context: "+d));return p[a]}na(null,a,b,c);if(!i.requireWait)for(;!i.scriptCount&&i.paused.length;){i.takeGlobalQueue();C()}},takeGlobalQueue:function(){if(V.length){Ca.apply(i.defQueue,[i.defQueue.length-1,0].c
18oncat(V));V=[]}},completeLoad:function(a){var b;for(i.takeGlobalQueue();P.length;){b=P.shift();if(b[0]===null){b[0]=a;break}else if(b[0]===a)break;else{M(b);b=null}}b?M(b):M([a,[],a==="jquery"&&typeof jQuery!=="undefined"?function(){return jQuery}:null]); 19v[a]=true;U();if(h.isAsync)i.scriptCount-=1;C();h.isAsync||(i.scriptCount-=1)},toUrl:function(a,b){var c=a.lastIndexOf("."),e=null;if(c!==-1){e=a.substring(c,a.length);a=a.substring(0,c)}return i.nameToUrl(a,e,b)},nameToUrl:function(a,b,c){var e,g,k,n,m=i.config;a=l(a,c&&c.fullName);if(h.jsExtRegExp.test(a))b=a+(b?b:"");else{e=m.paths;g=m.pkgs;c=a.split("/");for(n=c.length;n>0;n--){k=c.slice(0,n).join("/");if(e[k]){c.splice(0,n,e[k]);break}else if(k=g[k]){a=a===k.name?k.location+"/"+k.main:k.location; 20c.splice(0,n,a);break}}b=c.join("/")+(b||".js");b=(b.charAt(0)==="/"||b.match(/^\w+:/)?"":m.baseUrl)+b}return m.urlArgs?b+((b.indexOf("?")===-1?"?":"&")+m.urlArgs):b}};i.jQueryCheck=U;i.resume=C;return i}function Da(){var d,f,l;if(Q&&Q.readyState==="interactive")return Q;d=document.getElementsByTagName("script");for(f=d.length-1;f>-1&&(l=d[f]);f--)if(l.readyState==="interactive")return Q=l;return null}var Ea=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,Fa=/require\(["']([^'"\s]+)["']\)/g,ua=/^\.\//,ka=/\.js$/, 21ia=Object.prototype.toString,x=Array.prototype,wa=x.slice,Ca=x.splice,A=!!(typeof window!=="undefined"&&navigator&&document),qa=!A&&typeof importScripts!=="undefined",Ga=A&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,sa=typeof opera!=="undefined"&&opera.toString()==="[object Opera]",ya="_r@@",F={},H={},V=[],Q=null,Ha=false,ea=0,N=false,h;x={};var ga,s,I,W,z,R,S,D,ha,ta,E,U,da;if(typeof define==="undefined"){if(typeof requirejs!=="undefined")if(J(requirejs))return;else{x= 22requirejs;requirejs=undefined}if(typeof require!=="undefined"&&!J(require)){x=require;require=undefined}h=requirejs=function(d,f,l){var j="_",q;if(!X(d)&&typeof d!=="string"){q=d;if(X(f)){d=f;f=l}else d=[]}if(q&&q.context)j=q.context;l=H[j]||(H[j]=va(j));q&&l.configure(q);return l.require(d,f)};if(typeof require==="undefined")require=h;h.toUrl=function(d){return H._.toUrl(d)};h.version="0.25.0";h.isArray=X;h.isFunction=J;h.mixin=Y;h.jsExtRegExp=/^\/|:|\?|\.js$/;s=h.s={contexts:H,skipAsync:{},isPageLoaded:!A, 23readyCalls:[]};if(h.isAsync=h.isBrowser=A){I=s.head=document.getElementsByTagName("head")[0];if(W=document.getElementsByTagName("base")[0])I=s.head=W.parentNode}h.onError=function(d){throw d;};h.load=function(d,f,l){var j=d.loaded;Ha=false;j[f]||(j[f]=false);d.scriptCount+=1;h.attach(l,d,f);if(d.jQuery&&!d.jQueryIncremented){Z(d.jQuery,true);d.jQueryIncremented=true}};define=h.def=function(d,f,l){var j;if(typeof d!=="string"){l=f;f=d;d=null}if(!h.isArray(f)){l=f;f=[]}if(!d&&!f.length&&h.isFunction(l))if(l.length){l.toString().replace(Ea, 24"").replace(Fa,function(q,o){f.push(o)});f=(l.length===1?["require"]:["require","exports","module"]).concat(f)}if(N){j=ga||Da();if(!j)return h.onError(K("interactive","No matching script interactive for "+l));d||(d=j.getAttribute("data-requiremodule"));j=H[j.getAttribute("data-requirecontext")]}(j?j.defQueue:V).push([d,f,l])};define.amd={multiversion:true,plugins:true,jQuery:true};h.exec=function(d){return eval(d)};h.execCb=function(d,f,l,j){return f.apply(j,l)};h.onScriptLoad=function(d){var f=d.currentTarget|| 25d.srcElement,l;if(d.type==="load"||Ga.test(f.readyState)){Q=null;d=f.getAttribute("data-requirecontext");l=f.getAttribute("data-requiremodule");H[d].completeLoad(l);f.detachEvent&&!sa?f.detachEvent("onreadystatechange",h.onScriptLoad):f.removeEventListener("load",h.onScriptLoad,false)}};h.attach=function(d,f,l,j,q){var o;if(A){j=j||h.onScriptLoad;o=f&&f.config&&f.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");o.type=q||"text/javascript"; 26o.charset="utf-8";o.async=!s.skipAsync[d];f&&o.setAttribute("data-requirecontext",f.contextName);o.setAttribute("data-requiremodule",l);if(o.attachEvent&&!sa){N=true;o.attachEvent("onreadystatechange",j)}else o.addEventListener("load",j,false);o.src=d;ga=o;W?I.insertBefore(o,W):I.appendChild(o);ga=null;return o}else if(qa){j=f.loaded;j[l]=false;importScripts(d);f.completeLoad(l)}return null};if(A){z=document.getElementsByTagName("script");for(D=z.length-1;D>-1&&(R=z[D]);D--){if(!I)I=R.parentNode; 27if(S=R.getAttribute("data-main")){if(!x.baseUrl){z=S.split("/");R=z.pop();z=z.length?z.join("/")+"/":"./";x.baseUrl=z;S=R.replace(ka,"")}x.deps=x.deps?x.deps.concat(S):[S];break}}}s.baseUrl=x.baseUrl;h.pageLoaded=function(){if(!s.isPageLoaded){s.isPageLoaded=true;ha&&clearInterval(ha);if(ta)document.readyState="complete";h.callReady()}};h.checkReadyState=function(){var d=s.contexts,f;for(f in d)if(!(f in F))if(d[f].waitCount)return;s.isDone=true;h.callReady()};h.callReady=function(){var d=s.readyCalls, 28f,l,j;if(s.isPageLoaded&&s.isDone){if(d.length){s.readyCalls=[];for(f=0;l=d[f];f++)l()}d=s.contexts;for(j in d)if(!(j in F)){f=d[j];if(f.jQueryIncremented){Z(f.jQuery,false);f.jQueryIncremented=false}}}};h.ready=function(d){s.isPageLoaded&&s.isDone?d():s.readyCalls.push(d);return h};if(A){if(document.addEventListener){document.addEventListener("DOMContentLoaded",h.pageLoaded,false);window.addEventListener("load",h.pageLoaded,false);
vendor: 4,556 bytes, lines 28-38
28if(!document.readyState){ta=true;document.readyState="loading"}}else if(window.attachEvent){window.attachEvent("onload", 29h.pageLoaded);if(self===self.top)ha=setInterval(function(){try{if(document.body){document.documentElement.doScroll("left");h.pageLoaded()}}catch(d){}},30)}document.readyState==="complete"&&h.pageLoaded()}h(x);if(h.isAsync&&typeof setTimeout!=="undefined"){E=s.contexts[x.context||"_"];E.requireWait=true;setTimeout(function(){E.requireWait=false;E.takeGlobalQueue();E.jQueryCheck();E.scriptCount||E.resume();h.checkReadyState()},0)}}})();/* 30 jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ 31!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"== 32typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e, 33t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e, 34t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend= 35S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""), 36isReady:!0,error:function(e){throw new Error(e);},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e))for(n=e.length;r<n;r++){if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e}, 37makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o], 38o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*ne
vendor: 11,135 bytes, lines 38-60
38w Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e, 39t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\x00-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ 40W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+ 41M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>> 4210|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\x00"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length, 43r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1])if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else{if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n, 44e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r= 45[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e? 461:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o, 47le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&& 48(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName), 49d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID= 50function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1=== 51n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length|| 52v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; 53var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector|| 54a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1}, 55j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e, 56t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument|| 57e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e);},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0), 58e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i)if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else{if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling", 59first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&& 60(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}
vendor: 23,018 bytes, lines 60-105
60:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n, 61r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling": 62"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]= 63{}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n, 64r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}), 65lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href|| 66~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase(); 67return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}), 68gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k, 69p];if(n)while(e=e[u]){if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o, 70r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[], 71i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null, 72e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])), 73n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c= 74e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g= 75se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)|| 76t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()? 771:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique= 78d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 79function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t= 800;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&& 813<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn, 82D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n, 83e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e, 84"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!= 85e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e;}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e, 86t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)? 87r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a|| 88(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments), 89this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution"); 90t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e, 91m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n, 92r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+ 93e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e;})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&& 94!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()} 95function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e): 96e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}}; 97var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e, 98t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!== 99(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop, 100i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this, 101e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument, 102e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e, 103t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"), 104o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i; 105ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone
vendor: 17,561 bytes, lines 105-139
105=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"], 106tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option|| 107(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent= 108""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e, 109s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i])if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation(); 110else{if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re, 111i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i), 112namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]|| 113{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e, 114"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&& 115!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o= 116[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this, 117t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!== 118e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget= 119e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e= 120this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp), 121S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this, 122arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}}); 123var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t, 124"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u= 125e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&& 126(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r< 127i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e? 128S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments, 129function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0=== 130e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend", 131insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r}, 132Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", 133l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip= 134"content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate", 135t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length; 136while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e, 137"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&& 138A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0, 139gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;
vendor: 9,152 bytes, lines 139-157
139if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!== 140o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e, 141t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft= 142Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r, 143i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t, 144n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem, 145e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/, 146it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e, 147t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration, 148tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o= 149a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e, 150t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--, 151S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"=== 152c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start, 153g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this), 154r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i|| 155"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this, 156!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e, 157r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0}
vendor: 6,589 bytes, lines 157-170
157,S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n= 158C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e, 159t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type", 160t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)|| 161[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e, 162n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex", 163"readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e, 164n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i): 165m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}}); 166var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t, 167"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r, 168i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()}; 169S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result= 170void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||
vendor: 13,728 bytes, lines 170-197
170(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&& 171(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e, 172t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e, 173r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i; 174function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n], 175t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}): 176{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0, 177S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0, 178processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e, 179S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t= 180n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht, 181bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(), 182v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid++ +o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&& 183T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v, 184t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type")); 185if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]= 186t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&& 187(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e, 188t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}}, 189dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})}, 190wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr(); 191y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror= 192r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&& 193i.data||null)}catch(e){if(o)throw e;}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r, 194i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&& 195(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0=== 196i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i= 197N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");
197return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t, 198e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&& 199(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect(); 200else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent; 201return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"}, 202function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}), 203S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), 204function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase= 205X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});var Bb="function"==typeof Object.defineProperties?Object.defineProperty:function(a,f,l){if(a==Array.prototype||a==Object.prototype)return a;a[f]=l.value;return a};function Cb(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var f=0;f<a.length;++f){var l=a[f];if(l&&l.Math==Math)return l}throw Error("Cannot find global object");}var Db=Cb(this); 206function Eb(a,f){if(f)a:{var l=Db;a=a.split(".");for(var m=0;m<a.length-1;m++){var k=a[m];if(!(k in l))break a;l=l[k]}a=a[a.length-1];m=l[a];f=f(m);f!=m&&null!=f&&Bb(l,a,{configurable:!0,writable:!0,value:f})}} 207Eb("String.prototype.matchAll",function(a){return a?a:function(f){if(f instanceof RegExp&&!f.global)throw new TypeError("RegExp passed into String.prototype.matchAll() must have global tag.");var l=new RegExp(f,f instanceof RegExp?void 0:"g"),m=this,k=!1,c={next:function(){if(k)return{value:void 0,done:!0};var h=l.exec(m);if(!h)return k=!0,{value:void 0,done:!0};""===h[0]&&(l.lastIndex+=1);return{value:h,done:!1}}};c[Symbol.iterator]=function(){return c};return c}}); 208(function(){function a(b){this.Gp=b;this.xt=null;this.Nc={}}function f(){this.Bi={};this.Bi[f.SCRIPT_URL]=[];this.Bi[f.THREE_JS_WEBGL_URL]="lib/ThreeWebGL.js";this.Bi[f.WEBVR_POLYFILL_URL]="lib/WebVRPolyfill.js";this.Bi[f.WEBXR_POLYFILL_URL]="lib/webxr-polyfill.js";this.Bi[f.HLS_URL]="lib/Hls.js";this.Bi[f.GS_URL]="lib/tdvgs.js";this.Bi[f.fma]="lib/basis/";this.Bi[f.oma]="lib/draco/";this.Bi[f.CURSORS_DIR_URL]="lib/cursors";this.Bi[f.SERVICE_WORKER_URL]="tdvplayersw.js";this.Bi[f.HH]="lib/webxr-input-profiles/"; 209this.Bi[f.BACKGROUND_PRELOAD_ENABLED]=void 0;this.Bi[f.pV]=void 0}function l(){this.mQ=[];this.Y_=[];this.KXa=[];this.TV=null}function m(b){return"[object Array]"==Object.prototype.toString.call(b)}function k(b){return 0<=h.search(b.toLowerCase())}var c=window.TDV=window.TDV||{},h=navigator.userAgent.toLowerCase();l.prototype.getVersion=l.prototype.KDa=function(){return{MAJOR:"0",MINOR:"2116"}};l.prototype.getClassByName=function(){};l.prototype.Uwa=function(){if(this.TV)for(;0< 210this.mQ.length;){var b=this.mQ[0];this.mQ=this.mQ.slice(1);this.Y_.push(b);this.lRa(b)}};l.prototype.eua=function(b){var d=document.createElement("a");d.href=b;return d.href};l.prototype.ITa=function(){var b=document.currentScript;b||(b=document.getElementsByTagName("head")[0].getElementsByTagName("script"),b=b[b.length-1]);return this.eua(b.src)};l.prototype.lRa=function(b){var d=this,e=b.Gp.get(f.SELECTED_SCRIPT_URL);setTimeout(function(){var n=document.createElement("script");n.type="text/javascript"; 211n.src=e;document.getElementsByTagName("head")[0].appendChild(n);d.TV.Lbb(b)},1)};l.prototype.defineScript=function(b){for(var d=[],e=this.ITa(),n=0;n<this.Y_.length;n++){var q=this.Y_[n],p=this.eua(q.Gp.get(f.SELECTED_SCRIPT_URL));p==e?(q.Gp.set(f.SCRIPT_DATA,b),q.cab(new this.TV(q,q.Gp)),this.KXa.push(q)):d.push(p)}this.Y_=d};l.prototype.create=l.prototype.create=function(b){var d=b.get(f.SCRIPT_URL);d=m(d)?this.GYa(d):"string"===typeof d?d:"script.js";b.set(f.SELECTED_SCRIPT_URL,d);b=new c.vna(b); 212this.mQ.push(b);this.Uwa();return b};l.prototype.setPlayerClass=l.prototype.bab=function(b){this.TV=b;this.Uwa();
212this.trigger({name:"classesReady",source:this})};l.prototype.bind=l.prototype.bind=function(b,d,e,n){this.Nc=this.Nc||{};this.Nc[b]=this.Nc[b]||[];this.Nc[b].push({handler:d,context:e,immediate:n||!1})};l.prototype.unbind=l.prototype.unbind=function(b,d,e,n){this.Nc&&b in this.Nc&&(this.Nc[b]=this.Nc[b].filter(function(q){return q.handler!=d||q.context!=e||q.immediate!=n}))};l.prototype.trigger= 213function(b){this.Nc&&b.name in this.Nc&&(this.Cz(b,!0),setTimeout(function(){this.Cz(b,!1)}.bind(this),0))};l.prototype.Cz=function(b,d){b.unbindCurrentHandler=function(){}.bind(this);for(var e=this.Nc[b.name],n=0;n<e.length;n++)if(e[n].immediate==d)try{e[n].handler.call(e[n].context||window,b)}catch(q){setTimeout(function(){throw q;},0)}};l.prototype.getOrientation=l.prototype.Tr=function(){var b=screen.orientation&&screen.orientation.type||window.orientation;return"portrait-primary"==b||"portrait-secondary"== 214b||0===b||180==b?c.xb.Y6:"landscape-primary"==b||"landscape-secondary"==b||90==b||-90==b?c.xb.X6:window.innerWidth<window.innerHeight?c.xb.Y6:c.xb.X6};l.prototype.GYa=function(b){if(0<b.length){for(var d=0;d<b.length;d++){var e=b[d];if(m(e)){if(this.eza(e[0]))return e[1]}else if("string"===typeof e)return e}return b[0][1]}return"script.js"};l.prototype.eza=function(b){if("string"===typeof b){var d=b.match(/^\s*default\s*$/);if(d)return!0;if(d=b.match(/^\s*os\s*=\s*(\w+)\s*$/))return this.zd==d[1].toLowerCase(); 215if(d=b.match(/^\s*browser\s*=\s*(\w+)\s*$/))return this.browser==d[1].toLowerCase();if(d=b.match(/^\s*device\s*=\s*(\w+)\s*$/))return this.NF==d[1].toLowerCase();if(d=b.match(/^\s*screen_size\s*(<|>|=|<=|>=)\s*(\d+)\s*x\s*(\d+)\s*$/)){b=parseInt(d[2]);var e=parseInt(d[3]);switch(d[1]){case "<":var n=function(q,p){return q<p};break;case ">":n=function(q,p){return q>p};break;case "=":n=function(q,p){return q==p};break;case "<=":n=function(q,p){return q<=p};break;case ">=":n=function(q,p){return q>= 216p}}return n(screen.width,b)&&n(screen.height,e)||this.mobile&&n(screen.width,e)&&n(screen.height,b)}return!1}if(m(b)){for(d=0;d<b.length;d++)if(!this.eza(b[d]))return!1;return!0}return!1};l.prototype.ORIENTATION_LANDSCAPE=l.prototype.X6="landscape";l.prototype.ORIENTATION_PORTRAIT=l.prototype.Y6="portrait";l.prototype.OS_IOS=l.prototype.EV="ios";l.prototype.OS_ANDROID=l.prototype.Z6="android";l.prototype.OS_WINDOWS=l.prototype.ona="windows";l.prototype.OS_WINDOWS_PHONE=l.prototype.d7="windows_phone"; 217l.prototype.OS_MACOSX=l.prototype.a7="osx";l.prototype.OS_LINUX=l.prototype.nna="linux";l.prototype.OS_QNX=l.prototype.c7="qnx";l.prototype.OS_OTHER=l.prototype.b7="other";l.prototype.BROWSER_TYPE_WEBKIT=l.prototype.KM="webkit";l.prototype.BROWSER_TYPE_OPERA=l.prototype.Q5="opera";l.prototype.BROWSER_TYPE_MSIE=l.prototype.P5="msie";l.prototype.BROWSER_TYPE_MOZILLA=l.prototype.O5="mozilla";l.prototype.BROWSER_TYPE_OTHER=l.prototype.R5="other";l.prototype.BROWSER_SAFARI_IOS=l.prototype.rh="safari_ios"; 218l.prototype.BROWSER_OPERA=l.prototype.kV="opera";l.prototype.BROWSER_SAFARI=l.prototype.Ij="safari";l.prototype.BROWSER_CHROME=l.prototype.Sm="chrome";l.prototype.BROWSER_EDGE=l.prototype.lH="edge";l.prototype.BROWSER_MSIE=l.prototype.Sy="msie";l.prototype.BROWSER_ANDROID=l.prototype.jV="android";l.prototype.BROWSER_MOZILLA=l.prototype.ys="mozilla";l.prototype.BROWSER_OTHER=l.prototype.M5="other";l.prototype.BROWSER_SUBTYPE_SAMSUNG_INTERNET=l.prototype.nH="samsunginternet";l.prototype.BROWSER_SUBTYPE_OCULUS_BROWSER= 219l.prototype.Mp="oculusbrowser";l.prototype.BROWSER_SUBTYPE_PICO_BROWSER=l.prototype.Uu="picobrowser";l.prototype.BROWSER_SUBTYPE_SAMSUNG_INTERNET_FOR_GEAR_VR=l.prototype.nV="samsunginternetgearvr";l.prototype.BROWSER_SUBTYPE_MI_BROWSER=l.prototype.N5="mibrowser";l.prototype.BROWSER_SUBTYPE_CHROME_IOS=l.prototype.HM="chromeios";l.prototype.BROWSER_SUBTYPE_SAFARI_IOS=l.prototype.IM="safari_ios";l.prototype.BROWSER_SUBTYPE_CHROME_WEBVIEW=l.prototype.mH="chrome_webview";l.prototype.BROWSER_SUBTYPE_SAFARI_WEBVIEW= 220l.prototype.JM="safari_webview";l.prototype.BROWSER_SUBTYPE_TOUR_LAUNCHER=l.prototype.Uy="tour_launcher";l.prototype.BROWSER_SUBTYPE_CHROMIUM_EDGE=l.prototype.mH="chromium_edge";l.prototype.BROWSER_SUBTYPE_FIREFOX_REALITY=l.prototype.Ty="firefox_reality";l.prototype.BROWSER_SUBTYPE_VR_APP=l.prototype.zs="vrapp";l.prototype.BROWSER_SUBTYPE_XR_APP=l.prototype.Vu="xrapp";l.prototype.BROWSER_SUBTYPE_FACEBOOK_IOS_WEBVIEW=l.prototype.lV="facebook_ios_webview";l.prototype.BROWSER_SUBTYPE_OTHER=l.prototype.mV= 221"other";l.prototype.BROWSER_VERSION_UNKNOWN=l.prototype.S5=-1;l.prototype.DEVICE_IPHONE=l.prototype.V5="iphone";l.prototype.DEVICE_IPAD=l.prototype.NM="ipad";l.prototype.DEVICE_IPOD=l.prototype.W5="ipod";l.prototype.DEVICE_OTHER=l.prototype.X5="other";l.prototype.os=l.prototype.zd=k("iphone")||k("ipad")||k("ipod")?l.prototype.EV:k("qnx")?l.prototype.c7:k("android")||k("oculusbrowser")&&k("linux")?l.prototype.Z6:k("windows phone")?l.prototype.d7:k("windows")?l.prototype.ona:k("mac_powerpc")?l.prototype.a7: 222k("macintosh")?1<navigator.maxTouchPoints?l.prototype.EV:l.prototype.a7:k("linux")||k("x11")?l.prototype.nna:l.prototype.b7;l.prototype.browser=l.prototype.browser=k("ipad")||k("iphone")||k("ipod")||k("macintosh")&&1<navigator.maxTouchPoints?l.prototype.rh:k("opera")?l.prototype.kV:k("edge")?l.prototype.lH:k("chrome")||k("crmo")?l.prototype.Sm:k("safari")?l.prototype.Ij:k("trident")||k("msie")?l.prototype.Sy:!k("compatible")&&k("mozilla")?l.prototype.ys:k("android")?l.prototype.jV:l.prototype.M5; 223l.prototype.browserType=l.prototype.OK=l.prototype.browser==l.prototype.rh||l.prototype.browser==l.prototype.Sm||l.prototype.browser==l.prototype.jV||l.prototype.browser==l.prototype.Ij||k("webkit")?l.prototype.KM:l.prototype.browser==l.prototype.kV||k("opera")?l.prototype.Q5:k("trident")||k("msie")?l.prototype.P5:!k("compatible")&&k("mozilla")?l.prototype.O5:l.prototype.R5;l.prototype.browserSubtype=l.prototype.cc=window.location.hash&&0<=window.location.hash.indexOf("xrapp")?l.prototype.Vu:window.location.hash&& 2240<=window.location.hash.indexOf("vrapp")?l.prototype.zs:k("picobrowser")?l.prototype.Uu:k("oculusbrowser")?l.prototype.Mp:k("xiaomi")||k("miui")?l.prototype.N5:k("samsungbrowser")&&k("android")?k("mobile vr")?l.prototype.nV:l.prototype.nH:k("ipad")||k("iphone")||k("ipod")?k("crios")?l.prototype.HM:k("fban")||k("fbav")?l.prototype.lV:k("safari")&&k("version")&&!navigator.standalone?l.prototype.IM:l.prototype.JM:k("electron")?l.prototype.Uy:k("chrome")&&k("wv")?l.prototype.mH:k("edg/")?l.prototype.gma: 225!k("compatible")&&k("mozilla")&&k("mobile vr")?l.prototype.Ty:l.prototype.mV;l.prototype.browserVersion=l.prototype.vBa=function(){if(l.prototype.browser==l.prototype.Sy){var b=h.match(RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"));if(null!=b)return parseFloat(b[1]);b=h.match(RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"));if(null!=b)return parseFloat(b[1])}return l.prototype.S5}();l.prototype.device=l.prototype.NF=k("ipad")||k("macintosh")&&1<navigator.maxTouchPoints?l.prototype.NM:k("iphone")?l.prototype.V5: 226k("ipod")?l.prototype.W5:l.prototype.X5;a:{switch(l.prototype.zd){case l.prototype.Z6:case l.prototype.EV:case l.prototype.d7:case l.prototype.c7:var g=!0;break a}g=!1}l.prototype.mobile=l.prototype.mobile=g;c.PlayerAPI=c.xb=new l;f.prototype.append=f.prototype.append=function(b,d,e){b==f.SCRIPT_URL&&("undefined"==typeof e&&(e=d,d="default"),d=[d,e]);m(this.Bi[b])||(this.Bi[b]=[]);this.Bi[b].push(d)};f.prototype.set=f.prototype.set=function(b,d){this.Bi[b]=d};f.prototype.get=f.prototype.get=function(b){return this.Bi[b]}; 227f.SCRIPT_URL=f.SCRIPT_URL="ScriptURL";f.SCRIPT_DATA=f.SCRIPT_DATA="ScriptData";f.FLASH_EXPRESS_INSTALLER_URL=f.FLASH_EXPRESS_INSTALLER_URL="FlashExpressInstallerURL";f.FLASH_AUDIO_PLAYER_URL=f.FLASH_AUDIO_PLAYER_URL="FlashAudioPlayerURL";f.FLASH_VIDEO_PLAYER_URL=f.FLASH_VIDEO_PLAYER_URL="FlashVideoPlayerURL";f.FLASH_PANORAMA_PLAYER_URL=f.FLASH_PANORAMA_PLAYER_URL="FlashPanoramaPlayerURL";f.GS_URL=f.GS_URL="GSURL";f.THREE_JS_WEBGL_URL=f.THREE_JS_WEBGL_URL="ThreeJSWebGLURL";f.WEBVR_POLYFILL_URL=f.WEBVR_POLYFILL_URL= 228"WebVRPolyfillURL";f.WEBXR_POLYFILL_URL=f.WEBXR_POLYFILL_URL="WebXRPolyfillURL";f.WEBXR_INPUT_PROFILES_DIR_URL=f.HH="WebXRInputProfilesDirURL";f.CAPTURA_VIEWER_URL=f.CAPTURA_VIEWER_URL="CapturaViewerURL";f.DASH_URL=f.DASH_URL="DashURL";f.HLS_URL=f.HLS_URL="HlsURL";f.BASIS_URL=f.fma="BasisURL";f.DRACO_URL=f.oma="DRACOURL";f.CONTAINER=f.CONTAINER="Container";f.SELECTED_SCRIPT_URL=f.SELECTED_SCRIPT_URL="SelectedScriptURL";f.BASE_DIR_URL=f.BASE_DIR_URL="BaseDirURL";f.QUERY_STRING_PARAMETERS=f.QUERY_STRING_PARAMETERS= 229"QueryStringParameters";f.CURSORS_DIR_URL=f.CURSORS_DIR_URL="CursorsDirURL";f.BACKGROUND_PRELOAD_ENABLED=f.BACKGROUND_PRELOAD_ENABLED="Backgroun
229dPreloadEnabled";f.ACTIVE_VIDEO_ELEMENT=f.ACTIVE_VIDEO_ELEMENT="ActiveVideoElement";f.SERVICE_WORKER_URL=f.SERVICE_WORKER_URL="ServiceWorkerURL";f.PINCH_TO_ZOOM_ENABLED=f.lMa="PinchToZoomEnabled";f.DOWNLOAD_DISABLED=f.pV="DownloadDisabled";c.PlayerSettings=c.PlayerSettings=f;c.PlayerEvent=c.HV=function(b,d,e,n){this.name=b;this.data=this.originalEvent=d;this.sourceClassName= 230e[e.length-1];this.sourceClassPath=e;this.sourceId=n};a.prototype.cab=function(b){this.xt=b};a.prototype["delete"]=function(){this.xt&&(this.xt.clear(),this.xt=null)};a.prototype.getById=a.prototype.pB=function(b){return this.xt?this.xt.a6a(b):null};a.prototype.getByClassName=a.prototype.Xi=function(b){return this.xt?this.xt.Xi(b):[]};a.prototype.createInstance=a.prototype.zm=function(b){return this.xt.zm(b)};a.prototype.disposeInstance=a.prototype.WK=function(b){return this.xt.WK(b)};a.prototype.bind= 231a.prototype.bind=function(b,d,e,n){var q=b.split(":");b=q[0];q=1<q.length?q[1]:"*";this.Nc[b]=this.Nc[b]||{};this.Nc[b][q]=this.Nc[b][q]||[];this.Nc[b][q].push({handler:d,context:e,immediate:n});return this};a.prototype.unbind=a.prototype.unbind=function(b,d,e,n){var q=b.split(":");b=q[0];q=1<q.length?q[1]:"*";if(b in this.Nc&&q in this.Nc[b]){for(var p=[],r=this.Nc[b][q],t=0;t<r.length;t++){var u=r[t];u.handler==d&&u.context==e&&u.immediate==n||p.push(u)}this.Nc[b][q]=p}};a.prototype.bindOnObject= 232function(b,d,e,n,q){return this.bind(d+":"+this.Z$(b),e,n,q)};a.prototype.unbindOnObject=function(b,d,e,n,q){return this.unbind(d+":"+this.Z$(b),e,n,q)};a.prototype.bindOnObjectsOf=function(b,d,e,n,q){return this.bind(d+":"+this.O$(b),e,n,q)};a.prototype.unbindOnObjectsOf=function(b,d,e,n,q){return this.unbind(d+":"+this.O$(b),e,n,q)};a.prototype.cookiesEnabled=a.prototype.V3a=!1;a.DEFAULT_PANORAMA_HFOV=a.$Ka=l.prototype.mobile?90:110;a.prototype.trigger=function(b){if(b.name in this.Nc){this.Cz(b, 233!0);var d=this;setTimeout(function(){d.Cz(b,!1)},0)}};a.prototype.Cz=function(b,d){d=this.USa(b,d);for(var e=0;e<d.length;e++)try{d[e].handler.call(d[e].context||window,b)}catch(n){console.log("Exception handling event "+(b&&b.name),n.message,n.stack)}};a.prototype.USa=function(b,d){var e=[];if(b.name in this.Nc){for(var n=[],q=0;q<b.sourceClassPath.length;q++)n.push(this.O$(b.sourceClassPath[q]));b.sourceId&&n.push(this.Z$(b.sourceId));n.push("*");b=this.Nc[b.name];for(q=0;q<n.length;q++)for(var p= 234b[n[q]]||[],r=0;r<p.length;r++)!!p[r].immediate==!!d&&e.push(p[r])}return e};a.prototype.Z$=function(b){return"instance("+b+")"};a.prototype.O$=function(b){return"className("+b+")"};c.Player=c.vna=a})(); 235var Z=this&&this.pdb||function(){function a(f,l){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,k){m.__proto__=k}||function(m,k){for(var c in k)Object.prototype.hasOwnProperty.call(k,c)&&(m[c]=k[c])};return a(f,l)}return function(f,l){function m(){this.constructor=f}if("function"!==typeof l&&null!==l)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");a(f,l);f.prototype=null===l?Object.create(l):(m.prototype=l.prototype,new m)}}(); 236define("jquery.mod",["require","jquery"],function(a){return a("jquery").noConflict(!0)}); 237(function(){var a=window.TDV||(window.TDV={});(function(){(function(){function f(G,P){return G.kPa?r(P).chain():P}function l(G){return"\\"+da[G]}function m(G){function P(Y){return G[Y]}var T="(?:"+r.keys(G).join("|")+")",L=RegExp(T),Q=RegExp(T,"g");return function(Y){return Y=null==Y?"":""+Y,L.test(Y)?Y.replace(Q,P):Y}}function k(G,P,T,L){if(G===P)return 0!==G||1/G===1/P;if(null==G||null==P)return G===P;G instanceof r&&(G=G.zF);P instanceof r&&(P=P.zF);var Q=C.call(G);if(Q!==C.call(P))return!1;switch(Q){case "[object RegExp]":case "[object String]":return""+ 238G==""+P;case "[object Number]":return+G!==+G?+P!==+P:0===+G?1/+G===1/P:+G===+P;case "[object Date]":case "[object Boolean]":return+G===+P}Q="[object Array]"===Q;if(!Q){if("object"!=typeof G||"object"!=typeof P)return!1;var Y=G.constructor,aa=P.constructor;if(Y!==aa&&!(r.isFunction(Y)&&Y instanceof Y&&r.isFunction(aa)&&aa instanceof aa)&&"constructor"in G&&"constructor"in P)return!1}T=T||[];L=L||[];for(Y=T.length;Y--;)if(T[Y]===G)return L[Y]===P;
238if(T.push(G),L.push(P),Q){if(Y=G.length,Y!==P.length)return!1; 239for(;Y--;)if(!k(G[Y],P[Y],T,L))return!1}else{var ca;Q=r.keys(G);if(Y=Q.length,r.keys(P).length!==Y)return!1;for(;Y--;)if(ca=Q[Y],!r.has(P,ca)||!k(G[ca],P[ca],T,L))return!1}return T.pop(),L.pop(),!0}function c(G,P,T,L,Q){if(!(L instanceof P))return G.apply(T,Q);P=e(G.prototype);G=G.apply(P,Q);return r.yL(G)?G:P}function h(G,P,T,L){var Q=[],Y=0;L=L||0;for(var aa=W(G);aa>L;L++){var ca=G[L];if(b(ca)&&(r.isArray(ca)||r.isArguments(ca))){P||(ca=h(ca,P,T));var fa=0,ha=ca.length;for(Q.length+=ha;ha>fa;)Q[Y++]= 240ca[fa++]}else T||(Q[Y++]=ca)}return Q}function g(G){return function(P,T,L){var Q={};return T=q(T,L),r.each(P,function(Y,aa){aa=T(Y,aa,P);G(Q,Y,aa)}),Q}}function b(G){G=W(G);return"number"==typeof G&&0<=G&&V>=G}function d(G){return function(P){return null==P?void 0:P[G]}}function e(G){if(!r.yL(G))return{};if(U)return U(G);t.prototype=G;G=new t;return t.prototype=null,G}function n(G,P){return function(T){var L=arguments.length;if(2>L||null==T)return T;for(var Q=1;L>Q;Q++)for(var Y=arguments[Q],aa=G(Y), 241ca=aa.length,fa=0;ca>fa;fa++){var ha=aa[fa];P&&void 0!==T[ha]||(T[ha]=Y[ha])}return T}}function q(G,P,T){return null==G?r.identity:r.isFunction(G)?p(G,P,T):r.yL(G)?r.H7a(G):r.gHa(G)}function p(G,P,T){if(void 0===P)return G;switch(null==T?3:T){case 1:return function(L){return G.call(P,L)};case 2:return function(L,Q){return G.call(P,L,Q)};case 3:return function(L,Q,Y){return G.call(P,L,Q,Y)};case 4:return function(L,Q,Y,aa){return G.call(P,L,Q,Y,aa)}}return function(){return G.apply(P,arguments)}}function r(G){return G instanceof 242r?G:this instanceof r?void(this.zF=G):new r(G)}function t(){}function u(G){return function(P,T,L,Q){T=p(T,Q,4);var Y=!b(P)&&r.keys(P),aa=(Y||P).length,ca=0<G?0:aa-1;3>arguments.length&&(L=P[Y?Y[ca]:ca],ca+=G);for(var fa=T,ha=L;0<=ca&&aa>ca;ca+=G){var ia=Y?Y[ca]:ca;ha=fa(ha,P[ia],ia,P)}return ha}}function v(G){return function(P,T,L){T=q(T,L);L=W(P);for(var Q=0<G?0:L-1;0<=Q&&L>Q;Q+=G)if(T(P[Q],Q,P))return Q;return-1}}function w(G,P,T){return function(L,Q,Y){var aa=0,ca=W(L);if("number"==typeof Y)0< 243G?aa=0<=Y?Y:Math.max(Y+ca,aa):ca=0<=Y?Math.min(Y+1,ca):Y+ca+1;else if(T&&Y&&ca)return Y=T(L,Q),L[Y]===Q?Y:-1;if(Q!==Q)return Y=P(A.call(L,aa,ca),r.isNaN),0<=Y?Y+aa:-1;for(Y=0<G?aa:ca-1;0<=Y&&ca>Y;Y+=G)if(L[Y]===Q)return Y;return-1}}function x(G,P){var T=M.length,L=G.constructor;L=r.isFunction(L)&&L.prototype||E;var Q="constructor";for(r.has(G,Q)&&!r.contains(P,Q)&&P.push(Q);T--;)Q=M[T],Q in G&&G[Q]!==L[Q]&&!r.contains(P,Q)&&P.push(Q)}var y=this,z=y._,B=Array.prototype,E=Object.prototype,I=B.push, 244A=B.slice,C=E.toString,J=E.hasOwnProperty,D=Array.isArray,O=Object.keys,R=Function.prototype.bind,U=Object.create;"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=r),exports._=r):y._=r;r.VERSION="1.8.3";var V=Math.pow(2,53)-1,W=d("length");r.each=r.forEach=function(G,P,T){P=p(P,T);var L;if(b(G))for(T=0,L=G.length;L>T;T++)P(G[T],T,G);else{var Q=r.keys(G);T=0;for(L=Q.length;L>T;T++)P(G[Q[T]],Q[T],G)}return G};r.map=function(G,P,T){P=q(P,T);T=!b(G)&&r.keys(G); 245for(var L=(T||G).length,Q=Array(L),Y=0;L>Y;Y++){var aa=T?T[Y]:Y;Q[Y]=P(G[aa],aa,G)}return Q};r.reduce=u(1);r.reduceRight=u(-1);r.find=r.detect=function(G,P,T){var L;return L=b(G)?r.findIndex(G,P,T):r.O4a(G,P,T),void 0!==L&&-1!==L?G[L]:void 0};r.filter=r.select=function(G,P,T){var L=[];return P=q(P,T),r.each(G,function(Q,Y,aa){P(Q,Y,aa)&&L.push(Q)}),L};r.reject=function(G,P,T){return r.filter(G,r.negate(q(P)),T)};r.every=r.all=function(G,P,T){P=q(P,T);T=!b(G)&&r.keys(G);for(var L=(T||G).length,Q=0;L> 246Q;Q++){var Y=T?T[Q]:Q;if(!P(G[Y],Y,G))return!1}return!0};r.some=r.any=function(G,P,T){P=q(P,T);T=!b(G)&&r.keys(G);for(var L=(T||G).length,Q=0;L>Q;Q++){var Y=T?T[Q]:Q;if(P(G[Y],Y,G))return!0}return!1};r.contains=r.includes=r.include=function(G,P,T,L){return b(G)||(G=r.values(G)),("number"!=typeof T||L)&&(T=0),0<=r.indexOf(G,P,T)};r.invoke=function(G,P){var T=A.call(arguments,2),L=r.isFunction(P);return r.map(G,function(Q){var Y=L?P:Q[P];return null==Y?Y:Y.apply(Q,T)})};r.pluck=function(G,P){return r.map(G, 247r.gHa(P))};r.max=function(G,P,T){var L,Q=-1/0,Y=-1/0;if(null==P&&null!=G){G=b(G)?G:r.values(G);for(var aa=0,ca=G.length;ca>aa;aa++)T=G[aa],T>Q&&(Q=T)}else P=q(P,T),r.each(G,function(fa,ha,ia){L=P(fa,ha,ia);(L>Y||L===-1/0&&Q===-1/0)&&(Q=fa,Y=L)});return Q};r.min=function(G,P,T){var L,Q=1/0,Y=1/0;if(null==P&&null!=G){G=b(G)?G:r.values(G);for(var aa=0,ca=G.length;ca>aa;aa++)T=G[aa],Q>T&&(Q=T)}else P=q(P,T),r.each(G,function(fa,ha,ia){L=P(fa,ha,ia);(Y>L||1/0===L&&1/0===Q)&&(Q=fa,Y=L)});return Q};r.Vab= 248function(G){for(var P=b(G)?G:r.values(G),T=P.length,L=Array(T),Q=0;T>Q;Q++)G=r.random(0,Q),G!==Q&&(L[Q]=L[G]),L[G]=P[Q];return L};r.sample=function(G,P,T){return null==P||T?(b(G)||(G=r.values(G)),G[r.random(G.length-1)]):r.Vab(G).slice(0,Math.max(0,P))};r.sortBy=function(G,P,T){return P=q(P,T),r.pluck(r.map(G,function(L,Q,Y){return{value:L,index:Q,cCa:P(L,Q,Y)}}).sort(function(L,Q){var Y=L.cCa,aa=Q.cCa;
248if(Y!==aa){if(Y>aa||void 0===Y)return 1;if(aa>Y||void 0===aa)return-1}return L.index-Q.index}), 249"value")};r.groupBy=g(function(G,P,T){r.has(G,T)?G[T].push(P):G[T]=[P]});g(function(G,P,T){G[T]=P});g(function(G,P,T){r.has(G,T)?G[T]++:G[T]=1});r.toArray=function(G){return G?r.isArray(G)?A.call(G):b(G)?r.map(G,r.identity):r.values(G):[]};r.size=function(G){return null==G?0:b(G)?G.length:r.keys(G).length};r.first=r.head=function(G,P,T){return null==G?void 0:null==P||T?G[0]:r.initial(G,G.length-P)};r.initial=function(G,P,T){return A.call(G,0,Math.max(0,G.length-(null==P||T?1:P)))};r.last=function(G, 250P,T){return null==G?void 0:null==P||T?G[G.length-1]:r.rest(G,Math.max(0,G.length-P))};r.rest=function(G,P,T){return A.call(G,null==P||T?1:P)};r.compact=function(G){return r.filter(G,r.identity)};r.flatten=function(G,P){return h(G,P,!1)};r.without=function(G){return r.difference(G,A.call(arguments,1))};r.uniq=r.unique=function(G,P,T,L){r.isBoolean(P)||(L=T,T=P,P=!1);null!=T&&(T=q(T,L));L=[];for(var Q=[],Y=0,aa=W(G);aa>Y;Y++){var ca=G[Y],fa=T?T(ca,Y,G):ca;P?(Y&&Q===fa||L.push(ca),Q=fa):T?r.contains(Q, 251fa)||(Q.push(fa),L.push(ca)):r.contains(L,ca)||L.push(ca)}return L};r.union=function(){return r.uniq(h(arguments,!0,!0))};r.intersection=function(G){for(var P=[],T=arguments.length,L=0,Q=W(G);Q>L;L++){var Y=G[L];if(!r.contains(P,Y)){for(var aa=1;T>aa&&r.contains(arguments[aa],Y);aa++);aa===T&&P.push(Y)}}return P};r.difference=function(G){var P=h(arguments,!0,!0,1);return r.filter(G,function(T){return!r.contains(P,T)})};r.zip=function(){return r.Qbb(arguments)};r.Qbb=function(G){for(var P=G&&r.max(G, 252W).length||0,T=Array(P),L=0;P>L;L++)T[L]=r.pluck(G,L);return T};r.object=function(G,P){for(var T={},L=0,Q=W(G);Q>L;L++)P?T[G[L]]=P[L]:T[G[L][0]]=G[L][1];return T};r.findIndex=v(1);r.P4a=v(-1);r.sortedIndex=function(G,P,T,L){T=q(T,L,1);P=T(P);L=0;for(var Q=W(G);Q>L;){var Y=Math.floor((L+Q)/2);T(G[Y])<P?L=Y+1:Q=Y}return L};r.indexOf=w(1,r.findIndex,r.sortedIndex);r.lastIndexOf=w(-1,r.P4a);r.range=function(G,P,T){null==P&&(P=G||0,G=0);T=T||1;P=Math.max(Math.ceil((P-G)/T),0);for(var L=Array(P),Q=0;P> 253Q;Q++,G+=T)L[Q]=G;return L};r.bind=function(G,P){function T(){return c(G,T,P,this,L.concat(A.call(arguments)))}if(R&&G.bind===R)return R.apply(G,A.call(arguments,1));if(!r.isFunction(G))throw new TypeError("Bind must be called on a function");var L=A.call(arguments,2);return T};r.Vja=function(G){function P(){for(var L=0,Q=T.length,Y=Array(Q),aa=0;Q>aa;aa++)Y[aa]=T[aa]===r?arguments[L++]:T[aa];for(;L<arguments.length;)Y.push(arguments[L++]);return c(G,P,this,this,Y)}var T=A.call(arguments,1);return P}; 254r.bindAll=function(G){var P,T=arguments.length;if(1>=T)throw Error("bindAll must be passed function names");for(P=1;T>P;P++){var L=arguments[P];G[L]=r.bind(G[L],G)}return G};r.memoize=function(G,P){function T(L){var Q=T.cache,Y=""+(P?P.apply(this,arguments):L);return r.has(Q,Y)||(Q[Y]=G.apply(this,arguments)),Q[Y]}return T.cache={},T};r.delay=function(G,P){var T=A.call(arguments,2);return setTimeout(function(){return G.apply(null,T)},P)};r.defer=r.Vja(r.delay,r,1);r.throttle=function(G,P,T){function L(){fa= 255!1===T.D7a?0:r.now();ca=null;aa=G.apply(Q,Y);ca||(Q=Y=null)}var Q,Y,aa,ca=null,fa=0;T||(T={});return function(){var ha=r.now();fa||!1!==T.D7a||(fa=ha);var ia=P-(ha-fa);return Q=this,Y=arguments,0>=ia||ia>P?(ca&&(clearTimeout(ca),ca=null),fa=ha,aa=G.apply(Q,Y),ca||(Q=Y=null)):ca||!1===T.ieb||(ca=setTimeout(L,ia)),aa}};r.debounce=function(G,P,T){function L(){var ha=r.now()-ca;P>ha&&0<=ha?Q=setTimeout(L,P-ha):(Q=null,T||(fa=G.apply(aa,Y),Q||(aa=Y=null)))}var Q,Y,aa,ca,fa;return function(){aa=this;Y= 256arguments;ca=r.now();var ha=T&&!Q;return Q||(Q=setTimeout(L,P)),ha&&(fa=G.apply(aa,Y),aa=Y=null),fa}};r.wrap=function(G,P){return r.Vja(P,G)};r.negate=function(G){return function(){return!G.apply(this,arguments)}};r.compose=function(){var G=arguments,P=G.length-1;return function(){for(var T=P,L=G[P].apply(this,arguments);T--;)L=G[T].call(this,L);return L}};r.after=function(G,P){return function(){return 1>--G?P.apply(this,arguments):void 0}};r.before=function(G,P){var T;return function(){return 0< 257--G&&(T=P.apply(this,arguments)),1>=G&&(P=null),T}};r.once=r.Vja(r.before,2);var K=!{toString:null}.propertyIsEnumerable("toString"),M="valueOf isPrototypeOf toString propertyIsEnumerable hasOwnProperty toLocaleStr
257ing".split(" ");r.keys=function(G){if(!r.yL(G))return[];if(O)return O(G);var P=[],T;for(T in G)r.has(G,T)&&P.push(T);return K&&x(G,P),P};r.Zga=function(G){if(!r.yL(G))return[];var P=[],T;for(T in G)P.push(T);return K&&x(G,P),P};r.values=function(G){for(var P=r.keys(G),T=P.length,L=Array(T), 258Q=0;T>Q;Q++)L[Q]=G[P[Q]];return L};r.invert=function(G){for(var P={},T=r.keys(G),L=0,Q=T.length;Q>L;L++)P[G[T[L]]]=T[L];return P};r.functions=r.methods=function(G){var P=[],T;for(T in G)r.isFunction(G[T])&&P.push(T);return P.sort()};r.extend=n(r.Zga);r.zCa=r.assign=n(r.keys);r.O4a=function(G,P,T){P=q(P,T);var L;T=r.keys(G);for(var Q=0,Y=T.length;Y>Q;Q++)if(L=T[Q],P(G[L],L,G))return L};r.p4=function(G,P,T){var L,Q,Y={},aa=G;if(null==aa)return Y;r.isFunction(P)?(Q=r.Zga(aa),L=p(P,T)):(Q=h(arguments, 259!1,!1,1),L=function(ja,ka,la){return ka in la},aa=Object(aa));for(var ca=0,fa=Q.length;fa>ca;ca++){var ha=Q[ca],ia=aa[ha];L(ia,ha,aa)&&(Y[ha]=ia)}return Y};r.defaults=n(r.Zga,!0);r.create=function(G,P){G=e(G);return P&&r.zCa(G,P),G};r.clone=function(G){return r.yL(G)?r.isArray(G)?G.slice():r.extend({},G):G};r.tap=function(G,P){return P(G),G};r.m7a=function(G,P){var T=r.keys(P),L=T.length;if(null==G)return!L;G=Object(G);for(var Q=0;L>Q;Q++){var Y=T[Q];if(P[Y]!==G[Y]||!(Y in G))return!1}return!0};r.isEqual= 260function(G,P){return k(G,P)};r.isEmpty=function(G){return null==G?!0:b(G)&&(r.isArray(G)||r.isString(G)||r.isArguments(G))?0===G.length:0===r.keys(G).length};r.isElement=function(G){return!(!G||1!==G.nodeType)};r.isArray=D||function(G){return"[object Array]"===C.call(G)};r.yL=function(G){var P=typeof G;return"function"===P||"object"===P&&!!G};r.each("Arguments Function String Number Date RegExp Error".split(" "),function(G){r["is"+G]=function(P){return C.call(P)==="[object "+G+"]"}});r.isArguments(arguments)|| 261(r.isArguments=function(G){return r.has(G,"callee")});"function"!=typeof/./&&"object"!=typeof Int8Array&&(r.isFunction=function(G){return"function"==typeof G||!1});r.isFinite=function(G){return isFinite(G)&&!isNaN(parseFloat(G))};r.isNaN=function(G){return r.isNumber(G)&&G!==+G};r.isBoolean=function(G){return!0===G||!1===G||"[object Boolean]"===C.call(G)};r.isNull=function(G){return null===G};r.isUndefined=function(G){return void 0===G};r.has=function(G,P){return null!=G&&J.call(G,P)};r.noConflict= 262function(){return y._=z,this};r.identity=function(G){return G};r.constant=function(G){return function(){return G}};r.noop=function(){};r.gHa=d;r.H7a=r.matches=function(G){return G=r.zCa({},G),function(P){return r.m7a(P,G)}};r.times=function(G,P,T){var L=Array(Math.max(0,G));P=p(P,T,1);for(T=0;G>T;T++)L[T]=P(T);return L};r.random=function(G,P){return null==P&&(P=G,G=0),G+Math.floor(Math.random()*(P-G+1))};r.now=Date.now||function(){return(new Date).getTime()};D={"&":"&","<":"<",">":">",'"':""", 263"'":"'","`":"`"};var S=r.invert(D);r.escape=m(D);r.unescape=m(S);r.result=function(G,P,T){P=null==G?void 0:G[P];return void 0===P&&(P=T),r.isFunction(P)?P.call(G):P};var X=0;r.uniqueId=function(G){var P=++X+"";return G?G+P:P};r.Bbb={evaluate:/<%([\s\S]+?)%>/g,$6a:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var ba=/(.)^/,da={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},ea=/\\|'|\r|\n|\u2028|\u2029/g;r.template=function(G,P,T){function L(ca){return aa.call(this, 264ca,r)}!P&&T&&(P=T);P=r.defaults({},P,r.Bbb);var Q=0,Y="__p+='";G.replace(RegExp([(P.escape||ba).source,(P.$6a||ba).source,(P.evaluate||ba).source].join("|")+"|$","g"),function(ca,fa,ha,ia,ja){return Y+=G.slice(Q,ja).replace(ea,l),Q=ja+ca.length,fa?Y+="'+\n((__t=("+fa+"))==null?'':_.escape(__t))+\n'":ha?Y+="'+\n((__t=("+ha+"))==null?'':__t)+\n'":ia&&(Y+="';\n"+ia+"\n__p+='"),ca});Y+="';\n";P.xKa||(Y="with(obj||{}){\n"+Y+"}\n");Y="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+ 265Y+"return __p;\n";try{var aa=new Function(P.xKa||"obj","_",Y)}catch(ca){throw ca.source=Y,ca;}return L.source="function("+(P.xKa||"obj")+"){\n"+Y+"}",L};r.chain=function(G){G=r(G);return G.kPa=!0,G};r.mixin=function(G){r.each(r.functions(G),function(P){var T=r[P]=G[P];r.prototype[P]=function(){var L=[this.zF];return I.apply(L,arguments),f(this,T.apply(r,L))}})};r.mixin(r);r.each("pop push reverse shift sort splice unshift".split(" "),function(G){var P=B[G];r.prototype[G]=function(){var T=this.zF; 266return P.apply(T,arguments),"shift"!==G&&"splice"!==G||0!==T.length||delete T[0],f(this,T)}});r.each(["concat","join","slice"],function(G){var P=B[G];r.prototype[G]=function(){return f(this,P.apply(this.zF,arguments))}});r.prototype.value=function(){return this.zF};r.prototype.valueOf=r.prototype.toJSON=r.prototype.value;r.prototype.toString=function(){return""+this.zF};"function"==typeof define&&define.Idb&&define("pP",[],function(){return r})}).call(this)}).call(a)})();define("underscore-min",function(){}); 267define("es",["require","underscore-min"],function(a){a("underscore-min");return window.TDV._.noConflict()}); 268define("pw",["require","exports"],function(){return{F:function(a){return a+"_change"}
268,Ie:"default",gb:"mouseDown",Pb:"mouseMove",Eb:"mouseUp",Gs:"mouseWheel",ma:"click",Al:"doubleClick",Dc:"rollOver",Jb:"rollOut",IC:"mouseEnter",Zp:"mouseLeave",Bl:"pointerOver",Ucb:"pointerOut",lz:"pointerDown",DH:"pointerUp",Uf:"pointerClick",tLa:"focusIn",uLa:"focusOut",az:"gestureStart",O6:"gestureChange",tH:"gestureEnd",DLa:"gestureRotate",uH:"gestureScale",kc:"progress",oH:"close",OPEN:"open",gq:"select",tc:"resize", 269oV:"changing",ba:"change",ye:"stateChange",sk:"cueChange",MC:"preloaded",da:"loaded",xc:"loadingError",ko:"start",Vf:"stop",kz:"play",CH:"pause",iV:"beforeFrame",Th:"frame",hd:"ready",KLa:"instanceCreation",Lp:"begin",Gb:"end",Gcb:"cancel",Kj:"press",Dl:"release",cq:"repeatEnd",fq:"scroll",Uma:"movementChange",Fcb:"beforeShow",RKa:"beforeHide",INIT:"init",jd:"show",ad:"hide",YM:"showEnd",RM:"hideEnd",LLa:"loadingScript",pMa:"processingScript",rH:"enableCookies",OKa:"applicationSet",TC:"userInteraction", 270Una:"userInteractionStart",Tna:"userInteractionEnd",t7:"transitionEnd",CMa:"toolTipShow",Jna:"toolTipHide",Cl:"positionSet",Dna:"sizeSet",jma:"controllerConnected",kma:"controllerDisconnected"}});define("cI",["require","exports"],function(){return function(){return function(a,f){void 0===f&&(f=void 0);this.name=a;this.data=f;this.source=void 0}}()}); 271define("bu",["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, 272342,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, 273471,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, 274401,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,37,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,625,666,566,725,34,291,114,315,91,699,260,701,703,705,115,707,709,76,101,740,635,335,103,97,431,434,608,484,319,49, 275615,583,593,529,335,542,115,65,117,368,111,764,609,485,271,487,489,769,547,495,572,678,402,324,748,101,750,704,706,117,708,101,756,740,461,405,632,99,107,326,521,421,673,360,425,363,320,632,114,326,806,103,275,117,110,100,67,496,575,310,292,268,105,629,742,618,91,338,114,105,122,629,553,108,287,689,280,538,108,759,726,354,112,541,543,545,600,616,571,461,328,625,268,367,83,850,852,621,854,320,582,787,549,400,348,499,259,818,107,820,622,823,825,108,575,82,551,831,814,256,869,288,744,746,602,114,848, 27634,859,318,862,850,87,512,514,855,376,575,91,893,287,360,709,294,895,816,66,575,260,114,884,368,117,887,505,601,584,872,315,874,100,865,544,83,274,455,100,742,893,858,850,915,114,917,919,105,921,936,925,335,727,101,112,876,878,822,824,826,114,828,318,831,110,833,518,835,575,838,840,578,843,675,846,895,897,861,929,864,542,866,79,290,99,105,373,946,771,858,648,898,975,950,940,917,83,838,710,889,595,947,726,987,974,863,950,930,119,657,837,839,294,578,756,432,903,868,591,997,985,383,973,354,989,951,633, 277953,880,956,884,280,111,922,996,891,121,907,528,895,100,798,885,832,904,507,1017,637,873,934,1004,979,554,982,121,984,536,1018,976,853,932,292,259,1052,603,1055,866,86,970,1010,293,103,1013,888,1015,937,1054,950,1048,981,983,1041,592,1053,1044,927,934,991,278,943,945,1078,1016,1080,288,313,1082,259,1004,881,575,742,429,882,772,999,860,1020,1002,851,977,544,66,108,798,1086,1030,1071,998,570,291,1084,114,1096,809,1014,569,1099,1097,926,121,928,1004,1064,361,846,1011,1068,104,1060,1101,896,1E3,1104, 278939,916,278,1120,1098,956,938,1003,1107,1005,965,1008,841,1133,1069,923,616,1072,335,816,1075,1050,1136,461,1092,1127,1046,1149,1006,966,1009,108,1154,1135,1088,1158,849,950,901,513,1174,1122,616,906,908,32,910,323,895,1165,928,1118,1144,1088,1124,1137,1190,934,1179,1155,996,1184,528,909,278,911,116,913,1117,1142,114,993,122,995,1114,1043,288,914,1023,821,1025,1100,1027,886,742,1032,1034,771,1189,1045,875,1210,1212,1214,924,1216,1138,1103,899,950,1163,1073,1106,853,1193,1182,376,1195,986,1238,1021, 279952,1220,955,1100,742,906,1226,1195,93,287,1259,461,1218,819,1253,1245,1070,569,1257,114,745,1033,1259,1261,956,972,939,1219,879,1254,1097,1088,1270,1272,91,1274,32,1262,1126,1128,1149,742,857,1290,934,72,500,502,504,1201,114,1227,520,1204,799,912,1147,1022,1265,1280,1120,1223,1029,1225,1271,892,1035,1308,1297,501,503,1256,1302,1185,1187,1307,1018,1139,1239,951,1210,1112,1241,948,1329,1251,1279,954,1120,958,830,1040,1246,296,834,836,1170,841,969,1131,578,1277,1148,853,1109,1111,259,944,1113,1235, 2801090,896,1062,544,1161,1077,1344,1079,603,1336,1105,1004,1057,934,1334,1091,1230,100,1366,1051,1175,1115,1197,1094,1149,1356,918,1358,1087,1368,1089,1370,1250,1105,1320,1299,1323,1303,278,1305,1206,1229,1093,100,1252,1311,956,1341,1028,961,1088,1346,1151,967,842,32,844,105,971,1308,1192,1146,1194,1146,1242,1118,1233,1376,1237,988,1372,1149,1267,1156,1247,1425,1081,1166,875,1338,1221,1282,1391,1284,746,1287,1289,948,850,1360,1157,1115,1019,1330,1129,1065,1172,1067,1200,1215,1362,684,604,1410,1429, 2811454,1021,1380,1241,790,639,296,85,73,825,109,684,413,403,383,793,795,752,754,800,757,648,672,423,713,887,1471,560,288,1482,1484,798,755,1487,572,335,405,350,727,408,356,421,1487,294,922,727,276,371,311,68,608,278,292,935,783,736,1054,291,504,1515,1517,1271,367,735,489,383,472,103,763,421,1526,266,1528,1520,32,784,737,335,293,1540,256,1537,1518,1529,1521,1531,1493,324,696,329,331,333,637,1490,813,371,366,368,370,1088,77,367,369,938,551,1234,616,834,1512,112,277,100,457,553,361,432,909,348,729,1579,
282276,112,729,895,314,472,497,1088,727,837,432,301,636,288,932,499,292,647,649,651,420,320,811,675,714,320,1248,561,765,610,296,35,265,1619,102,445,288,996,1248,383,745,920,922,562,782,32,53,786,1369,1137,577,120,1333,1382,1236,475,477,479,727,780,766,1530,626,1435,870,1501,288,109,431,1639,1391,1072,1553,640,642,278,645,108,1604,417,1557,300,383,692,97,694,412,414,305,648,1666,419,504,1609,1491,1514,693,1572,376,1670,694,1497,799,461,428,430,1597,1614,781,440,442,444,1634,617,963,453,413,456,32,458, 28398,635,1659,390,314,413,1665,650,1667,269,653,655,100,657,116,659,116,661,575,663,97,665,667,315,1489,712,1561,364,1709,288,1720,1722,1724,745,688,1729,1051,1717,682,1721,684,1723,686,1725,1741,690,315,1686,695,327,710,1509,1721,371,104,605,1514,115,1516,1538,1519,1648,1018,338,867,1547,1764,1527,1767,1551,737,1735,325,1756,1606,269,1559,1732,676,421,276,1049,1367,607,1695,284,768,1623,1461,594,368,727,686,709,1429,105,1683,742,1754,1688,1800,1126,805,107,80,1029,982,960,1451,376,1226,681,100,1739, 2841726,1728,1752,121,804,633,1811,1464,960,895,1418,709,1815,296,1226,1820,577,1811,431,1207,1598,383,84,104,471,645,105,1172,351,427,666,1510,371,555,686,694,1763,1765,1549,1540,1542,1599,321,791,376,1474,1476,1478,639,1783,812,1785,320,275,108,108,1822,1506,558,100,368,432,84,1513,1640,1362,982,355,76,97,1592,70,840,87,1298,1322,1412,963,494,108,1578,32,1899,917,287,453,1299,1400,32,49,48,48,287,50,1911,287,51,1915,32,52,1918,53,1918,703,1912,32,55,1918,56,1918,57,1918,596,1352,461,1887,346,259,1881, 285103,1883,671,1885,1393,988,1506,1406,1339,1026,1039,1833,890,1316,1033,893,895,1874,1876,689,1506,1889,1592,479,642,1047,980,1162,1943,1137,1936,1961,648,1963,540,1149,1130,845,1066,1012,1181,1268,1452,1236,1957,1877,354,109,1118,756,102,116,1656,1981,770,1362,1984,1959,1986,1118,915,552,111,109,82,1321,1991,1389,1951,1392,1137,348,622,1300,1015,834,1831,968,32,1347,1152,1934,383,1936,1118,2004,1299,1434,1624,1437,1102,1945,1998,1210,2E3,340,2003,2005,1992,1650,1635,461,1996,278,1960,1890,1972,101, 2861964,1433,1423,1391,1625,1335,1250,1506,1843,1845,762,108,1965,1788,1381,1657,1453,1336,1946,1210,1941,2038,996,1176,1430,974,2066,941,1085,2005,2027,1015,2052,288,2042,114,2074,942,2005,1428,1968,1935,1986,1004,1293,788,2041,496,1958,2043,1998,1441,1281,1121,1993,296,1445,1273,1276,1275,1100,1956,2095,1985,355,1118,1941,2087,2063,1236,1970,2045,108,1973,2060,1076,2062,2102,2040,2022,1986,1879,1939,2025,1896,2116,1362,1467,2055,1844,519,1846,2059,1975,1457,1173,1429,2082,2084,278,1941,1989,2006,1628, 2871466,2065,1986,1971,2120,2047,1974,853,1469,2088,1626,2110,1997,2112,1210,2149,2078,1123,2029,2072,1020,1878,1938,729,2149,1801,2032,2075,114,2114,994,2177,2112,2099,2168,1183,1302,1258,2106,1288,1276,2089,2165,2179,2034,2002,2186,1436,1255,1328,2054,2178,917,2068,2037,2007,2183,1987,2166,608,116,2198,296,2080,34,1936,2056,2138,2058,669,120,1396,2132,2125,2009,858,99,1957,808,2160,2133,603,2228,2095,808,1199,1980,2039,2226,2201,2031,355,2129,729,2196,1507,2232,1969,2203,278,2246,2115,2225,2071,2135, 2882098,1310,1948,1100,1409,960,962,451,2019,1415,1350,1977,847,1164,348,1504,2013,569,1503,1849,2127,355,2218,98,2139,2223,2273,1982,1886,1986,2279,2139,1004,1169,2020,1458,1979,2144,2163,2097,2194,917,2149,2253,2239,2071,2023,1332,2086,2182,2161,2053,2242,2209,2179,2131,540,2306,2248,2193,1937,1880,2245,339,2035,2152,2202,2278,2137,2280,2058,1422,1255,1424,2200,731,2250,918,2206,2151,2307,2030,2073,214,2333,2213,288,2215,2118,1962,2157,2289,1414,1171,2143,2337,2171,367,2136,2057,1847,1373,933,1059, 2892351,2145,2333,2300,2070,2064,2323,1987,2099,2231,2254,1115,2303,2195,2320,2002,2069,1795,2249,1888,2119,1827,1813,1343,2225,834,625,1990,287,340,112,287,837,1299,631,2374,109,972,2153,2324,2355,2140,853,2290,1415,2350,2315,2241,2339,355,2369,2301,2365,2309,1999,2395,2341,34,2343,2333,1941,2416,2215,2361,2399,2219,2356,1292,1088,1294,2332,355,1976,1419,578,342,501,1411,1391,834,494,2001,109,287,1654,1880,625,2388,276,2109,1875,2111,2310,917,2252,2314,2370,1236,115,2234,1875,808,2403,1171,669,442, 2901535,2406,2430,109,2287,2058,2091,2428,2093,2277,2367,2258,823,2410,2364,2457,2398,109,2155,1892,294,2363,1015,1202,771,457,994,460,731,115,2115,1861,335,2423,2469,2325,2139,2479,2377,2094,2450,2164,2483,2119,2121,1168,2348,1153,1459,2238,2480,1362,1761,260,83,2459,108,66,117,2001,110,2008,2429,288,2372,2204,276,2149,2376,1361,594,2344,648,70,822,1342,2437,2225,42,2316,2470,1847,1427,2455,2411,2481,2366,2546,1876,1966,1789,25
29050,2285,2379,2345,2048,1244,2050,2225,2422,2295,2083,2154,2119,2485,2212, 2912563,2239,2215,2016,108,2435,103,2542,2239,2439,2395,2443,512,100,2446,1541,2448,1249,2413,2067,2532,2211,2534,2284,2536,2340,2572,2028,2331,2529,2568,1592,2462,841,2577,2579,996,834,1206,1908,2386,116,2391,2005,895,2217,2501,2327,1332,2207,2351,2537,108,71,670,1466,2521,808,699,604,624,1684,1345,963,2082,287,578,119,315,115,2449,2096,2567,2297,1143,2598,2079,2170,2499,1947,1442,1388,1028,2008,1226,1955,2505,2643,2044,1891,1893,1895,2283,449,1898,496,1901,1903,2611,2005,1908,1910,1925,1914,1925,1917, 2921925,1920,1925,1922,1925,1924,287,1927,1925,1929,1925,1931,1925,1933,2269,2162,2506,2296,2476,877,1266,1408,105,829,1465,1897,2264,2512,2017,2575,2616,2333,2246,2312,2594,1994,594,2499,2503,2535,2378,2508,2661,2486,373,625,2263,619,982,578,1419,287,2691,2708,2424,2326,2426,2159,2555,2124,2557,2714,2566,2173,2318,432,2246,2208,2553,2716,2595,2718,2553,2237,2322,2309,2553,1095,2647,2169,2600,34,2650,2620,2336,2467,2338,2172,2128,2174,1882,1884,2763,2352,100,2660,2538,840,2421,2170,344,2525,2520,1957, 29385,1942,1444,2188,1953,91,906,1555,2523,2525,287,73,429,110,2790,340,110,93,1260,32,2788,1756,2796,629,2792,2794,2804,2798,2397,2366,2472,1391,2528,2216,2257,2697,1407,1222,1950,1315,1285,2657,2475,1988,2211,2487,2717,461,553,98,262,260,120,1429,2265,1171,2606,2724,1286,323,2611,2211,2614,1299,972,2628,291,2776,2758,2617,2400,2520,578,1674,260,2839,574,413,287,102,1847,1416,2861,116,95,431,604,260,2860,982,95,2012,2868,626,2864,95,340,95,511,1180,2870,2865,2878,499,2615,2589,2408,2452,2251,2395,2827, 2942748,2887,2765,2645,114,2167,2756,616,2418,2896,2205,1299,2712,1042,1995,2740,2090,2427,2813,2474,2468,2024,2621,2770,2499,2754,1386,1110,1388,2762,2456,2134,2482,2414,2441,2533,2915,2923,2739,2694,2644,2889,817,2415,2899,2199,1125,2913,2591,112,2905,2126,2468,2155,1973,1516,429,745,2702,2438,963,954,667,454,287,111,689,1702,626,2960,45,477,821,502,2729,629,101,913,2524,2797,2780,2095,2312,1398,1226,2802,328,2808,2806,629,2808,2799,2957,1302,2789,2971,2805,32,2793,2982,2988,2809,461,761,2783,2930, 2951137,2499,2244,432,2176,2360,2908,2559,2046,2561,1063,2142,2514,2752,2888,2553,2548,1213,2627,2229,291,2464,1534,2607,2504,2693,2659,2602,2774,2721,121,2723,2703,2725,841,2728,32,2730,2545,2618,2734,3009,1351,2292,1134,3012,2895,2719,3007,2158,866,1387,2943,2240,2468,647,1646,1616,517,575,597,1622,2580,963,2691,2388,3038,108,45,629,108,121,1905,2119,3067,110,3069,2731,2696,1024,2100,2261,2383,3061,2704,1007,2266,1417,1457,3076,2918,2562,2329,2051,2170,2256,3006,2156,3008,544,2604,1978,3043,2351,3094, 2963077,2698,3091,2225,2104,1286,2190,1448,2601,2732,2139,2328,1443,2564,2649,3005,2934,2420,2937,2214,3118,2932,2146,2180,276,3051,2071,2760,2311,2335,1359,3017,2235,291,2432,846,3020,2466,2998,2658,2451,3001,103,2975,3102,2925,2210,1990,3129,1115,2917,3065,2357,1058,1546,2738,2999,3119,3014,1232,2549,2516,2931,3025,3095,2510,1355,2920,3152,2551,2590,2311,2929,3159,3143,2507,3089,978,2736,2208,2484,840,2892,905,1324,1203,1705,2492,3060,311,2496,1522,2498,3119,2926,2035,3172,2558,109,2747,2713,3160, 2973125,2286,3065,3115,2101,2573,3093,3149,2179,2299,3164,3023,2468,2553,2221,2751,3148,2366,2024,3133,1390,3142,2824,3163,3016,2351,2794,354,294,1048,113,489,2092,871,2308,2888,3184,294,1894,2005,2839,1903,2394,1900,2670,1907,114,287,2673,1913,1918,2677,287,2679,287,2681,287,2683,1926,1928,1930,1932,3058,2021,2945,2569,840,258,1654,3069,742,1595,729,3178,2695,3224,2026,3122,2342,2170,2623,3169,3049,3171,3176,3165,1137,2778,2972,2521,3003,2784,91,2977,2986,2803,2993,2981,2795,2993,2984,2801,3300,2979, 2983302,2990,2807,3305,2810,3174,2531,851,3216,2828,2407,3045,2113,276,2849,2939,2764,2353,3026,3096,3048,544,3324,3205,3167,2500,2852,2511,3084,2349,3011,3222,2309,3242,540,2722,2633,288,834,2726,453,99,2967,587,2692,3240,3045,2946,2157,2948,1725,2951,2384,2953,823,2955,2859,2801,2959,2956,32,2962,2964,622,2966,3035,2968,3314,2888,3145,3147,2770,3103,3180,544,3238,1652,2771,2354,2425,2401,3288,1357,2922,3177,2475,3343,3332,2316,3099,2576,1906,3022,569,2609,2841,3252,3370,2843,32,2392,503,2642,2451, 2993357,642,3359,2950,2262,3031,91,2954,690,3369,2958,3365,2961,454,2963,104,2965,104,2967,413,3412,2507,3343,3186,2103,3188,2490,3190,1213,2493,2529,2495,2314,2497,1217,2993,2973,1875,68,544,3402,2187,3298,2786,2978,695,3310,2991,3304,2525,3306,3458,2980,3311,2992,3463,3076,3145,3296,3227,2940,2373,2927,2593,3290,3217,3326,2772,3328,3287,544,3138,3100,1460,3319,3196,3206,3113,2471,2141,3041,2405,3473,3112,3335,3389,3156,1375,2622,2333,2928,3393,3291,3279,2933,3383,119,3397,3024,2451,2651,1379,3182, 3003341,2888,3198,2375,3478,3488,2081,3197,2033,2395,3504,3134,3502,3491,3039,1108,3289,3505,3479,2759,3524,2179,2903,503,3200,1944,3518,3229,3346,2240,1862,1836,97,67,663,278,1565,1608,1560,1872,123,1778,82,339,1039,1663,3550,366,745,803,378,557,2271,1849,810,3555,1611,1547,1986,2655,2786,391,340,2275,1505,1986,1708,637,679,404,3569,1645,383,825,111,107,362,1811,3350,2737,1680,1733,320,798,1593,1391,3277,1597,2494,733,3601,3447,34,694,111,820,670,1761,99,65,1058,2976,2786,3603,103,2800,3620,3583,1091, 3013585,296,1555,1781,461,1737,1747,3548,1822,691,1803,3571,1784,3573,1778,3631,685,687,1727,2959,1753,1683,1555,803,1749,1740,97,1838,1494,358,3638,922,121,97,1771,3394,637,982,555,1470,3584,1864,3627,1780,1715,461,669,112,3580,352,1986,1731,1871,3573,34,1563,1569,1566,2626,1126,386,3683,3673,385,529,1778,3674,1506,698,700,67,3237,1508,1851,1759,421,1533,3141,2216,1773,1766,1550,1541,3195,3347,823,1857,1774,3707,1861,1778,3628,3670,1870,1610,922,1545,84,1802,3545,2255,1580,116,3723,366,1470,1481,281, 302119,278,3616,455,1562,101,477,305,922,1165,677,3584,921,606,1054,2769,3557,2498,480,1524,677,1778,1866,2002,1868,614,1091,3572,1511,717,982,720,3483,3510,3283,2417,2170,116
3025,1809,808,80,275,820,282,115,3203,2906,594,109,1675,2120,557,3650,1726,84,745,115,314,1410,68,1038,3361,34,1630,767,3261,1794,3522,384,315,3772,291,2282,1398,1325,1205,1188,858,3763,719,282,2755,3106,3211,2758,487,686,1828,629,3054,3419,2632,823,1585,627,259,101,2872,2524,95,436,260,2866,2798,461,118,114,2625,1213,3653,643,72, 303605,3729,3725,1383,3775,292,115,115,3514,3779,2944,288,1797,496,666,3788,3820,2382,110,3793,3417,3081,3506,400,3850,3777,3015,3848,1236,3293,629,752,3727,3618,1285,3465,3460,3312,3469,2985,91,2987,2791,3467,3462,2797,2799,1164,3870,3852,808,3514,2416,3108,1447,2192,1018,3812,720,2744,1283,3439,1304,1186,3809,1327,1438,3804,2897,105,666,68,745,103,3021,433,2473,3239,1377,3803,633,808,3559,2932,310,312,348,3385,3838,2180,2325,727,1419,107,3559,553,1410,1105,3055,1631,1925,3661,288,2861,114,727,3861, 3042526,3863,3865,3561,1429,3771,3926,1117,2185,3768,3899,3110,3901,335,538,941,494,291,1819,111,1839,2646,3816,2599,3325,570,2993,405,558,3746,3879,746,3881,3888,3461,2983,2800,3985,2797,3303,3988,2270,3925,806,2461,1167,3170,3392,3528,2770,3958,3996,3805,1083,3961,3975,2488,2785,1285,3900,2108,3934,3843,278,83,1139,960,1434,3797,376,1618,102,54,1924,3060,3976,1196,348,3913,3472,2239,2489,3908,1326,1840,1808,3959,114,3774,3611,3851,3853,4007,827,2700,959,3867,2014,963,2836,1349,3086,3041,2970,2525, 3051883,3919,625,83,3903,3679,1301,3456,3880,3308,3459,3986,3883,3891,3989,4067,3466,70,3987,3313,461,102,111,99,921,3736,97,2853,3030,320,4021,271,48,46,1633,3800,2893,3902,114,436,709,705,845,4060,4018,629,4020,1615,1631,34,4023,1620,4027,2648,2758,4003,807,291,4041,3776,3895,3544,1466,4062,3853,4118,2351,3875,110,405,3983,1033,3990,2989,4075,3884,3307,3886,3301,4069,3468,4071,3811,4095,554,101,4098,1419,625,2410,4087,32,4089,54,1699,2255,4120,3209,1145,2758,716,98,718,3765,3358,267,3360,3418,2952, 306451,3421,2960,2957,3368,3366,3371,3429,3373,3431,3375,3433,3994,121,3913,3897,2699,2701,4164,3362,3083,1348,2706,3087,1263,3449,2389,4127,2787,4073,3882,4137,629,3464,4195,4136,3890,4198,1403,4179,4039,1297,1385,853,3933,4038,4004,114,4207,929,2049,4008,2757,3977,1797,1165,1883,496,280,112,262,4061,4140,709,4017,1103,4184,3796,4104,319,1542,1699,2814,4112,3896,2761,4001,3496,896,4120,3471,2211,3957,4030,4039,3380,3107,3907,1908,4036,972,4120,2812,2225,2814,97,97,69,645,2632,3158,4147,4236,4092,493, 3072912,3760,4042,3777,3806,3906,1399,3406,4255,4178,3913,4115,4043,4181,2819,2654,2821,1317,1228,3811,4158,3764,282,4263,1890,625,4266,4234,1648,4237,4271,34,3839,4015,1119,2572,4147,4106,1620,265,4109,4218,1137,716,4228,4142,3739,4144,101,4230,4048,110,4146,4298,271,1793,3947,711,4116,115,4032,4064,3808,1306,4037,3912,4039,3905,3297,4333,1402,3893,4273,3895,3960,2477,2100,1313,3576,2822,1318,383,4303,3972,294,278,3930,553,110,1800,1694,1647,271,50,4151,1453,4245,2767,103,4338,4243,2157,1662,578,1825, 3084212,742,4375,4113,4029,3995,4379,4214,2914,3534,3801,4239,4005,259,3221,4339,3189,4279,4211,4382,934,3855,3052,726,4120,3766,3050,3521,4093,1783,4329,4154,2330,3977,4353,3973,114,1822,4103,1791,1617,1911,55,554,99,4311,2900,3770,3894,4121,3175,4385,4404,3924,4205,4212,3854,3516,2770,4372,644,4374,4424,808,4377,4438,291,4280,4206,3998,866,3399,3495,4327,3839,1892,666,3956,4361,3056,3946,3868,3966,3970,3969,941,4304,4357,1799,3873,1462,4441,4412,4433,4243,4387,2935,2179,3437,3856,4302,4040,4354,643, 3094320,2541,3847,3944,767,2675,4365,2457,4367,2742,1940,3749,4327,673,4406,4045,2653,1224,1088,2656,4351,4336,4212,4282,3871,4241,3226,4492,4249,4212,4390,4252,4277,1401,3810,4394,2230,4469,4327,4157,4159,3814,3337,4187,3042,3487,4428,4244,4291,3813,115,2625,2997,4327,340,117,555,1822,4082,4084,710,4147,4326,4457,1623,745,2526,3791,960,3952,3821,110,932,101,3707,4243,3967,100,4460,3971,4411,4480,1410,3511,948,4400,2346,4522,2291,4448,4543,4328,4283,1209,4426,4242,4518,4153,2368,4517,4570,4493,4572, 3104346,1340,4047,2541,2839,4052,4188,4055,4290,4520,115,2570,3273,1847,2737,996,3620,4591,4292,2495,2919,4E3,4506,4570,4519,4601,4284,3116,3817,3977,4471,4383,1210,4563,4544,3820,4547,629,4549,3954,3794,4232,4580,3786,577,1883,1604,3861,3790,3561,3955,3795,4541,1911,4456,3535,4607,4529,4397,2071,4613,4006,4583,4182,4321,4587,2705,1416,2707,4443,4212,4214,1456,3494,3340,4002,4424,4641,1115,4124,86,82,699,101,3660,4064,3299,4134,3309,4201,3988,3885,3887,3991,3889,3993,4515,4114,4441,4645,4217,3455,2189, 3112108,2107,575,4256,4528,720,4655,2268,4569,4638,4120,3485,3400,2436,2839,2389,2583,2445,626,2440,2035,4256,4315,4143,99,625,4414,4362,288,4107,1619,4421,2938,1137,4220,348,4222,439,105,4225,110,1883,4535,104,2780,4553,2526,4210,4405,4572,817,4495,3080,30,3454,2665,4186,2291,2267,2433,3354,4272,4329,4251,4033,4253,4278,3910,4335,3448,2525,3981,697,4276,4669,4675,4130,4070,4203,4674,4135,4676,4131,4138,4679,4213,1296,2663,3807,4392,4752,913,625,3826,1882,4545,4550,4633,4624,3535,3819,3953,3792,4623, 3124049,3801,4639,4691,1149,4660,4487,4690,282,3399,2838,3419,2612,1261,3405,2844,3411,2829,4780,4619,4726,4780,3863,4294,4265,4733,4399,4796,115,3766,4794,1462,4508,107,863,1571,2839,1575,1577,1583,315,3827,290,3746,100,1036,622,2632,67,3350,107,65,4586,4454,4105,340,4059,3830,102,438,566,2228,4731,4717,2634,451,4844,103,625,3833,4848,2458,292,293,3432,2969,4600,4529,3379,3245,3102,4120,2570,4474,34,4034,1908,604,3442,4342,4494,4682,4610,4668,2786,4012,4688,4878,4735,4407,3092,4111,4821,3997,4208,866, 3131374,2359,3381,4565,3097,119,4697,4694,4386,4438,2395,4773,3440,4393,4458,3968,111,3970,4304,4561,4548,3724,395
3137,4467,3872,4119,4816,2570,4616,3802,4430,4395,1440,4880,4496,1314,4498,2786,2823,4501,4926,1405,4122,4002,4891,4388,4215,2735,2061,4248,4381,3773,4904,2179,4923,4791,282,1941,4906,4035,4775,3838,3733,3823,4165,619,1798,823,3970,843,894,4865,720,2570,3244,1397,3824,2667,3248,1904,3370,2671,3406,3254,32,4485,32,3257,1919,1921,1923,1918,2685,287,2687,287,2689,3352,597,4689,4592,4871,3345,2839, 3143349,3034,3036,4769,4888,3117,2200,1862,3723,4296,1805,797,799,801,1488,3637,3678,922,275,3767,822,2664,3780,1137,1099,825,5019,3665,3625,3667,288,5009,753,1498,1486,802,383,83,453,260,79,2524,317,1607,3655,5015,387,779,4800,3408,4701,3409,2005,2394,2441,3624,1863,1472,288,5041,1716,335,915,120,1713,3629,3698,323,3742,1812,3942,3739,3712,3706,1860,3709,896,994,4017,1525,3705,1859,1768,1778,641,643,1663,5063,3718,4272,5044,561,3918,761,2632,88,825,294,1874,115,4712,3056,4308,102,4636,48,4852,3284, 3152758,2960,4510,4233,4415,1909,4486,1362,4096,101,5099,4105,4715,4310,1699,2215,1654,110,5109,4570,2960,4323,5111,4542,3535,5123,4275,2770,100,5091,4295,101,89,5095,487,496,5098,4306,4324,4714,1911,265,1911,5105,3769,2758,1642,478,480,4483,4299,4269,1651,461,5135,1671,5092,625,90,5140,5097,5117,324,35,5103,5120,5158,5106,4219,5136,2632,3616,5017,4448,4147,1922,5113,594,2880,1155,4541,5183,4719,950,5186,5145,5130,3801,5123,1516,476,2515,3535,2960,5168,4022,4309,1621,5121,2170,5161,3919,5137,1601,278, 3164142,3176,5181,5188,498,4772,4842,767,5215,400,5068,960,3917,5162,5137,5156,271,565,567,5173,570,4301,4876,101,5224,5208,2632,5227,3828,566,1649,996,2814,5115,5128,4713,4637,3319,1862,3641,116,3672,3634,315,3672,3677,3720,3744,5027,5056,34,5251,5253,3645,121,1754,3648,383,1713,1806,710,3597,3556,289,5222,629,599,4086,5145,5248,4526,1463,3863,580,5279,5111,5281,3204,1164,5276,110,589,5286,5247,5220,3196,3941,960,5278,1790,5295,5231,3130,3560,1410,5293,5301,4455,5296,3523,5298,629,79,2179,5239,34,88, 31789,524,1699,834,5318,90,287,88,90,89,287,89,5326,5329,90,88,287,5333,5328,32,5327,88,895,3600,3276,728,3604,3444,3606,1768,5297,3561,5285,5308,3945,5310,34,739,648,1629,5145,91,2800,2239,1226,5270,5010,1499,758,2227,2854,5239,5193,4526,431,844,5300,5110,4713,5229,5242,1015,2814,5373,424,5307,5376,3056,5378,4300,3923,2216,110,844,5351,5385,1631,5387,5231,2814,4785,4631,1410,5393,4147,5288,5021,4806,4618,3561,5384,5403,5354,5399,4808,5375,5410,5303,925,1778,5364,5031,5011,1500,461,5036,605,262,5058, 3185257,1681,421,628,2247,4185,619,4801,2587,2390,5050,2393,1902,2395,5054,638,1494,297,265,652,335,70,3791,17,3633,5265,4378,2381,3795,5273,3679,1787,2123,1429,280,366,1798,1477,1429,3658,4667,3535,1957,3957,3663,5198,5249,3666,5261,3717,1678,461,5449,551,5251,5451,1742,5267,1756,1850,5066,1760,1762,1536,5079,1539,5348,726,1770,5071,5080,1776,1862,5443,1554,3669,5477,3719,5429,320,5458,1967,5294,3056,5371,5289,383,1797,4358,4360,3381,846,4540,5192,5354,4112,5454,1814,4287,1033,5479,1748,3643,5254,1824, 3194821,5523,4198,1935,3636,1391,5030,1485,461,111,265,328,116,5393,4570,5541,102,5543,5384,4570,2885,4970,2770,4588,4698,2578,2839,2610,3406,5435,3410,4753,34,5185,5472,5282,5471,1429,2575,4799,4959,91,4705,2002,4702,2585,626,2389,2846,2854,4958,5433,91,2861,1875,2882,3836,2874,5587,2873,605,5587,2878,5565,5593,111,95,5552,503,4863,895,5466,2294,1875,3731,335,1818,5482,1823,5453,5291,5428,3598,256,5507,2556,4570,5461,3752,5464,2351,1831,4063,1015,1835,4626,3652,4478,5442,3626,288,5476,5447,411,5627, 3203563,3552,3930,1165,5533,2579,5456,1492,5474,5444,3940,3561,578,5637,745,5639,348,5641,461,5314,98,982,350,5553,256,1758,5067,4550,5077,5496,5492,5498,1778,5659,1322,5504,5614,896,1149,1883,625,4545,5516,5352,319,4089,4091,4327,1613,5509,5118,5203,5150,2215,5603,5218,284,5404,4475,538,727,4258,5394,564,578,5230,2239,2814,115,1149,2038,4147,56,5354,3973,4786,2737,5187,5416,1641,311,1165,1297,108,360,5239,5396,5703,4301,3782,2856,5692,296,2861,120,367,2877,5597,1580,694,1782,5231,834,5730,5732,2878, 321538,3564,97,2870,5731,100,5733,2877,291,5736,2109,5312,3864,5176,4085,5680,284,5723,5243,4301,1588,116,3664,5728,4148,5354,5705,1355,369,5358,5287,5768,1149,3672,2300,4147,1920,57,4150,5715,1053,1862,4463,4359,101,3548,5650,97,304,666,366,3654,711,5089,285,5645,324,5785,4097,5305,960,5649,3551,745,5791,355,639,383,1011,4593,314,292,5609,3932,5014,5258,421,5691,4002,5568,4123,625,554,1761,1693,5686,5681,5354,2632,5825,729,5800,5519,5287,46,52,5220,3691,5627,5530,3694,749,3548,5486,1852,1508,3711,5490, 3221858,5667,3708,1531,3966,489,67,542,432,710,1548,5852,3715,5798,404,5627,3060,5643,1853,489,4349,746,1482,3696,4864,738,495,4532,4147,5760,5380,4301,437,2389,5816,5828,5157,5724,871,5250,683,339,5264,5483,3647,5485,5817,5505,256,5570,3401,5316,2444,5577,5150,2581,2441,5576,2586,5579,5535,1671,3545,5538,5032,5540,5542,3739,5402,5280,5354,5547,5549,5239,5694,4398,34,5599,504,5415,4327,5555,5571,5758,2214,3405,5905,963,5559,1905,3408,5562,895,5565,5924,5354,5713,5920,5782,594,2834,5766,5925,2255,5518, 3235582,5699,611,2862,5937,451,2858,2875,2862,5587,2867,5592,627,2871,5591,2869,5968,2883,5597,5595,5972,5749,5928,5630,5028,1779,328,3629,383,1811,112,463,5815,1730,5897,5673,100,291,107,293,3514,5239,4268,5888,3386,5522,5291,5871,1033,5985,5987,5841,5452,5532,5291,2616,5536,2225,5914,1689,4352,311,105,5238,5766,5880,569,2814,118,700,742,1496,5365,448,400,5822,4002,276,463,5834,2294,5754,5375,4570,27
3235,5754,5550,5468,5802,629,5545,3535,5820,4243,882,3591,65,2639,121,1883,3845,260,4482,5766,2675,5953, 3241453,3941,5835,4713,1363,1587,1529,5321,963,4826,367,4828,121,4830,437,328,4833,5290,5986,112,2221,5133,4511,908,4908,288,2518,101,69,327,3278,5766,5355,454,4442,6069,451,2960,1704,3236,259,3836,287,6101,5748,2012,6104,1718,3836,3831,2613,1288,623,1419,6103,6113,5657,99,6111,1261,6114,6119,431,6120,32,6101,279,6116,6127,2865,6107,6126,655,6128,6124,6132,3236,1839,6129,117,6139,6137,6141,294,6110,2012,1590,495,4839,6053,6055,5489,5886,1776,5388,3386,5705,544,6090,604,5827,5934,288,6099,521,6097,5434, 3256095,3406,6105,6140,6102,6143,6102,6136,2524,6121,6118,6116,4080,6179,6132,6181,6115,6176,6112,6130,6172,6128,6174,6135,110,6125,6138,6145,431,6108,6142,6177,6133,6139,6186,895,6088,4782,3081,4635,1918,4492,6033,6081,97,120,5125,4009,4512,6086,5674,544,6206,2579,6208,6061,1236,104,4078,118,1429,6050,4532,5761,5389,5883,276,5885,4259,2474,383,5662,5488,260,4263,3158,5861,1775,5853,1543,849,1571,5857,1855,5860,5491,6246,3608,1545,5666,6255,5074,4710,3938,6258,3707,5378,1769,6159,5849,320,6245,3714, 3261522,5840,5529,5265,3060,366,3740,100,1511,4192,1734,1438,5259,321,3982,6282,6087,6153,3750,5494,3384,1734,1862,5210,837,99,3548,70,1740,5272,3761,371,312,1602,3545,906,6014,709,287,1482,702,796,5420,709,1353,292,111,6295,6306,1302,6308,626,6311,751,6028,5979,5261,6298,6300,3671,450,3693,5065,5847,1873,2110,2524,6263,5073,5854,3523,2932,6339,5493,2417,4838,6344,5228,5701,1777,5864,3668,5982,5087,5795,5818,1612,1761,1900,402,5525,91,1567,470,1506,1590,2119,5343,1596,433,399,5035,798,5115,4709,625, 3275086,5477,5990,5274,5514,4464,5945,5949,1137,5555,5722,6350,6156,5160,5190,5154,1645,5766,5998,6232,789,6352,5057,1661,4436,1664,3783,1677,5634,34,932,339,5670,504,6240,810,5291,5665,5850,3713,6340,6351,5260,5444,6410,5867,6302,561,351,6383,5952,5521,5291,5236,5163,6064,5386,6389,5397,5882,432,5757,5957,271,703,5354,260,538,5947,5111,4364,6385,537,5144,5111,5101,4108,5205,2758,6048,6440,5767,6449,6030,5764,2238,5930,4606,5706,5213,5520,6460,948,1386,5771,6384,4327,5711,1464,6446,4713,5511,5405,5513, 3285717,348,5719,5721,6020,6435,5999,461,5951,6154,6459,4327,6040,4632,5756,6433,5395,6487,6397,537,539,5698,5879,6499,5881,5389,6477,5309,6469,1091,618,98,3565,6428,6510,34,122,6473,6465,853,5776,2549,5778,48,5780,5839,5984,3567,776,778,5613,3556,5418,1568,97,6530,831,3566,392,5789,5654,6380,3679,4597,3535,6490,4243,839,2002,258,268,4881,3023,3716,5502,6406,5481,6007,1742,4082,5846,3700,320,3782,3746,756,97,666,6348,6247,383,6565,328,2782,6570,6265,335,6573,5235,3453,6576,6350,3512,6338,6416,5072,6345, 3292082,6570,3608,6261,806,6582,5241,6572,622,328,4263,643,6590,6272,6399,5981,1556,5503,5088,6357,256,4080,3950,6553,3403,963,3797,287,3612,98,287,5858,1901,3782,666,1036,6482,315,4722,4224,262,4727,555,4730,293,5772,4713,6396,6506,3386,577,112,3898,1302,1195,44,3348,1683,44,5399,5500,44,686,121,3892,530,328,72,686,824,798,753,3210,6500,383,340,496,3723,6231,1015,4599,6372,5607,1718,6558,6274,5894,5912,6532,3639,6603,1818,6673,1750,3644,6675,694,5268,335,5656,982,1713,5789,6677,922,431,1813,578,6035, 3305766,6479,4475,1637,6697,2770,5195,6426,5786,1429,621,623,4711,4838,4840,4634,5145,2417,5936,6167,2840,4355,3406,5962,6327,5444,6690,5805,370,5810,6368,6543,922,4078,3028,6439,2608,963,4999,3351,3375,3353,1830,1457,5933,3082,619,5049,5903,2586,5574,2396,2829,4161,2949,4453,5572,4167,3423,4170,3426,413,3428,3430,5601,4077,3272,663,4596,6369,3278,6663,2157,6767,1597,6769,4899,4901,4657,4243,354,4899,4402,4427,5512,773,4649,6742,6734,6098,3408,5939,5438,4805,383,6731,116,4969,2224,6743,5573,4972,5440, 3313249,5560,4976,3253,1918,4980,4982,3259,1632,4985,1925,4987,32,4989,32,4991,6738,4993,6763,2486,3318,3455,1185,5234,3443,3704,3194,6341,372,4566,3090,6612,4422,3818,6830,3181,4943,2351,6793,4923,6778,3330,1150,3338,2513,2293,2161,3755,1475,3757,2968,1480,6687,1715,308,6562,922,882,3829,6244,6254,6271,1552,6603,3756,1477,6851,5737,6356,5898,34,612,3551,6003,91,6322,5602,3659,5606,288,5527,6681,3651,5842,6729,6284,5500,376,6882,1821,6275,1669,110,413,114,6378,333,6885,421,829,500,666,5698,6662,335, 332111,1715,73,3158,4598,5344,6371,4458,5697,2910,6237,5889,6603,6896,1668,335,5893,1823,6692,6886,5631,6604,5983,5060,4765,3081,6412,3554,3777,6601,6828,292,5824,4757,6269,6861,6418,383,6592,107,6594,328,5499,6926,6865,3758,6868,5868,3571,3777,367,3928,2643,4609,957,4585,3795,6786,619,5555,4743,1420,3869,6955,100,3766,6775,6846,4658,6969,6957,1822,2947,4162,3866,4739,4853,619,6755,3366,3424,3422,4171,3427,3372,117,3374,6721,6750,4899,4923,933,3852,367,2155,6771,6912,6164,6728,3602,6911,3893,6975,2566, 3334871,6821,3187,4512,3441,4864,2494,6827,6248,3536,2932,2122,5508,6049,315,2012,4648,6844,4589,2268,895,6841,3416,6753,5583,6984,626,6986,4168,4975,6759,6990,6992,3376,7007,6998,100,6976,689,4968,5217,5572,3247,6800,4974,1906,503,2672,6805,3256,1918,6808,3799,3263,6812,6814,6816,5001,3489,2643,4922,3768,2215,6997,6077,7047,2147,6835,3532,4604,2008,4642,4043,6956,2566,3519,109,6996,7082,100,4594,6765,3275,1594,7006,2022,2794,6215,1269,4750,4513,3911,3760,7008,2932,3281,503,4872,7081,6969,3461,6083, 3344749,7013,6218,7073,862,6915,6488,6968,7045,7075,4472,3316,7107,3153,2566,4818,4579,3535,7115,4936,3538,276,7124,1236,6841,2347,7027,4524,5566,6782,7102,7120,2740,7096,902,7140,3438,7113,4955,7119,7074,7009,6764,3274,6545,569,6669,446,7077,119,6780,4575,6039,7153,6732,3545,3348,3033,6737,7067,7142,6077,4919,3004,7020,4216,6832,4718,461,5726,7167,963,5986,5705,2447,4845,1189,7088,7121,4692,4744,4902,4526,2082,7105,2571,4683,7179,3512,689,6903,6637,7044,7152,2932,6971,3010,6973,4470,7088,2825,1990, 3356840,7160,4819,594,6839,7071,3124,2643,1004,7162,4605,7129,7189,7126,7215,7128,4903,7103,6958,2941,7087,7109,7145,1180,4953,4254,7150,7068,1822,6959,4348,6362,4933,7172,7083,3125,2794,7111,4332,4774,4334,7188,7231,7242,2304,3282,7198,3123,4111,7088,7049,4868,7051,6799,2669,6802,3251,6804,2674,7059,2678,4984,2682,4986,3265,2688,3267,6739,7204,367,7085,4923,6793,4872,4874,3406,6824,3192,3445,3230,6571,446,1890,2832,2047,4917,6969,3766,4447,6776,4492,7226,2932,4996,3029,7182,451,6736,4992,3269,7247, 3364941,866,7234,7143,7104,3525,2441,7134,2907,7319,3214,2826,7011,6480,7241,689,7207,4656,7209,7304,7256,689,7212,2313,7293,4243,2082,7010,7339,7112,6823,3191,7016,3446,5074,7286,4997,3419,7311,6817,7313,422,7335,4016,7177,6661,4110,4612,7211,4578,97,6837,2770,6793,6795,5020,3710,451,7052,7268,1905,6803,1909,7058,2676,7060,7275,3262,7277,2686,3266,2690,3268,4745,7356,7045,7337,7322,594,7130,7121,7301,4649,7193,7141,7388,6077,7127,7365,7210,7357,4736,4928,7244,4931,4350,4289,7151,7283,4615,7219,7262, 3376969,7196,4923,2082,7137,4523,7397,7328,7314,7070,7260,5174,1137,7136,3493,4693,7303,4580,7305,7221,4603,2921,7163,7225,7416,7320,2035,7391,3333,1822,7191,1132,7432,6043,7324,2453,2936,7426,5151,7362,7404,7425,7178,7261,7455,7318,7232,7325,7213,7414,3977,2082,7395,7138,7422,4475,7195,7441,2002,7443,498,6784,5901,3419,6789,5561,2886,7411,7131,2085,1299,7475,1532,2993,71,821,6667,7157,7094,1559,7404,6959,4193,4884,4965,7483,6978,6752,6962,4050,4166,3364,6987,7036,6757,7374,7040,4173,6991,4175,6993, 3387200,2251,7364,5459,2351,7130,7243,2820,7408,4288,520,895,2996,7299,74
33861,7257,4473,7327,7471,7084,7233,7465,1196,7263,3185,7351,5572,7353,7171,4302,6741,7478,7266,5907,32,6746,5578,2588,7517,2083,7250,7050,6084,7253,4341,7483,7446,3486,7147,4475,7522,4737,6961,4783,6613,4741,3085,4651,7095,2982,608,575,800,7004,6916,6E3,7088,7222,3533,7438,7230,7531,7201,7117,6904,6342,2643,3766,7418,7227,3415,6979,7033,6797,7035,4169,3425,7511,101,6760,4174,6762,7483,4814,7019,7435,1056,2358,6909,7449,7462,2298, 3392211,7317,7205,7617,3974,7458,7427,7282,7046,7596,6842,7595,7450,2147,7133,7534,5926,7130,7420,4568,7448,3801,6793,4595,7092,7005,6370,3507,5003,4611,7539,7300,7160,7620,7248,6958,7519,7022,7334,7045,4401,7585,7224,3801,7195,4495,7498,3964,4013,7555,7174,2916,7628,7584,7079,7530,6077,3500,4896,7403,7588,7358,7613,3157,7674,7653,1822,7216,7649,7045,7686,7626,7190,4567,2404,7639,5282,7363,4928,7665,4686,2191,7667,7495,7045,7021,5617,7616,7242,7568,4183,4789,1573,4051,4649,6966,7355,7393,2566,7704,7156, 3407194,7536,3132,7486,7634,5304,7249,629,7097,6822,7560,4514,7702,6077,7342,6320,7013,7290,7347,7293,3608,7522,7537,7453,2565,7306,7154,6766,7093,7645,7575,110,7251,6216,4340,7731,7592,1822,7264,5660,6797,7372,2667,3250,7056,4977,7377,1916,7379,2680,6810,2684,7278,4990,7280,6818,6670,1495,2436,3739,354,1713,1827,116,673,1832,6161,3921,3554,3656,1853,6451,6065,5170,5103,5104,6455,3977,431,6894,5707,5280,46,55,5921,4517,5403,46,51,5921,2524,1085,6467,5129,5839,6918,6404,68,7782,7784,3777,6768,335,3917, 341276,3452,119,2579,6932,6609,5858,1856,6586,5497,6571,6848,1867,6867,6423,7789,6899,7717,7590,7203,1126,2272,4377,3587,5059,4272,1477,7369,1363,7749,3355,367,5985,2782,7497,4408,1196,276,2782,3145,4952,7521,7861,1243,6836,7520,6032,112,2782,4531,7683,100,5178,3331,7538,6819,116,7642,7719,376,7158,1623,7651,7878,5221,7871,1309,2817,954,7689,383,744,1108,7577,292,7E3,3922,3386,7218,7743,3770,7866,4384,7586,5282,7866,7637,7693,7333,5618,7296,3364,6547,6493,7084,7664,4758,4883,7666,4885,6773,116,7032, 3427504,7571,6983,7507,7038,7037,3369,4172,6761,4176,5875,637,7909,7436,3541,7444,7336,4495,7407,1391,4499,7410,7159,6774,7208,3101,2770,1591,5013,7644,7821,6087,7477,4699,5047,2387,1288,4803,6790,5563,684,7889,7858,4889,3977,7286,7634,7288,2491,4877,7738,526,7740,7434,4537,1271,7877,7903,2758,7895,119,7728,7398,7716,7104,7919,3297,4685,4688,4687,7500,7732,7283,7992,4511,7994,894,7996,1189,7939,4209,7900,6079,7862,4368,4748,5618,7228,7402,7657,7173,7944,7524,7946,4932,4500,1952,5017,7873,7521,7583,7842, 3436022,5762,8006,3040,7431,7912,3535,7529,6838,2662,7265,5583,7761,6801,7374,7270,7376,7272,7378,7274,7769,7276,6811,7772,6815,7774,7355,1467,7856,112,7457,7360,4312,3507,8057,7969,5004,4612,8031,7983,7624,7454,7428,7160,7302,8034,7640,7541,7308,4998,7169,7312,7387,7967,8010,4489,4331,7129,7866,8059,4155,7460,7621,7445,8028,856,8030,7889,7676,7615,7662,2566,7876,3767,7984,3977,7429,3999,7437,7661,4526,7986,7752,3801,7986,7652,7627,7991,7406,8019,2225,7947,7527,8009,3673,4368,4370,7917,2932,8057,8088, 3447859,1841,335,5263,670,5530,1754,6924,6287,5055,5444,8133,112,8135,5895,697,383,72,84,77,724,6898,320,7350,8077,7352,8079,7354,7387,7031,7598,7927,7711,7506,917,7931,7510,7039,7605,7041,7515,7043,6792,7746,7643,2225,7884,6829,7950,7332,7952,6777,7160,7223,7080,1115,3232,5056,8175,7494,3948,8038,7759,6963,6798,1900,4973,7763,643,7271,3255,8047,3258,7380,32,7063,8052,7066,7386,895,7972,7343,7252,3440,7737,3444,7017,7924,3815,8069,2215,8105,7868,7656,4570,7902,8219,2170,6841,6785,7505,619,6789,106,921, 345280,102,3070,3407,7962,5942,6994,6842,8073,8180,3394,7835,6850,1479,7848,34,943,646,7816,5652,315,5427,8151,607,2526,101,3847,1516,6236,6458,51,46,6224,2134,401,328,258,260,6551,340,3210,7806,6699,5926,260,8259,8271,101,8273,4610,8276,5354,5123,1802,395,4478,5777,5145,50,8266,5768,277,367,8283,8275,7801,50,5683,3868,5418,8253,6625,316,5446,6920,288,1894,98,6299,3551,3738,6278,5016,608,3851,1980,6948,5980,6950,7837,5672,5274,5342,7748,3278,3605,734,5498,948,2521,4812,4296,7610,822,6858,100,87,499, 3467751,2584,293,7610,2867,3739,1118,4210,1862,1482,6856,427,6268,1772,5851,6259,6828,4080,5116,7830,6253,8357,6862,6419,8139,324,1567,1564,7838,5796,256,5932,7548,6163,6715,6719,5960,8231,7964,7481,2845,537,5870,6362,5873,489,895,6610,791,6058,6703,7810,6388,5241,6390,6943,4173,4627,3429,282,338,1900,2835,7558,5684,8399,3549,7887,335,5944,3102,6063,2839,1165,6075,4832,1586,1576,367,1830,6025,1088,6027,6314,6029,1159,4777,1939,6519,3535,
3461037,6980,5569,7547,7960,6491,3680,2584,2723,6717,6748,5908,7553, 347112,5580,6377,1675,5316,2876,5966,2856,6717,5962,5965,3953,5971,2876,5970,5963,5973,2879,7146,5596,5598,2663,895,6234,3743,6395,736,8397,335,6230,8395,5702,7591,2417,8408,83,3782,339,5826,7787,3227,1862,65,519,281,3234,99,4710,921,960,7781,1029,7783,275,7785,6092,7788,8372,896,5518,5370,6209,5546,2524,5986,5929,6714,4021,6717,6615,32,97,111,2616,4355,5712,5370,5830,6472,6515,4327,624,7673,5766,5838,6516,455,7786,6221,5239,3799,4327,5994,644,648,7800,6447,8302,5131,1655,706,1110,6713,5773,6460,8304, 348416,7817,8497,7819,3852,7957,336,5636,6725,4017,3236,428,6301,7839,5797,6420,324,5647,1410,5804,5744,8561,489,6706,5984,5627,3692,3676,8257,3680,6535,4377,5866,6943,6725,8583,3643,6691,3685,8060,616,3548,405,398,3691,7847,3693,5035,574,119,5988,3596,6424,320,1798,279,8534,6059,5103,5768,2389,8608,6491,6060,8267,1061,4824,6093,8416,5345,6797,8620,103,8419,1577,8519,6695,2059,8414,8619,1584,8621,8193,8623,8625,8421,1570,279,4823,354,8415,8632,8624,1705,2389,8626,1935,8520,6476,5924,4090,8295,4553,4297, 3495836,8301,7814,8567,5865,6674,6923,5810,8039,6869,5614,6555,6354,5477,383,6881,5891,5528,6682,5530,6561,8257,3640,8672,8602,6561,383,5834,8569,5803,108,5789,5807,5793,1679,8604,8373,6227,8262,553,5465,3659,8694,3553,4470,5471,8698,5026,8367,376,8684,629,8571,3552,8688,5809,5060,2993,8137,6336,7726,110,722,8150,7956,8621,732,8331,7294,2529,2794,8718,7001,7291,5347,8332,7314,3461,8727,8328,8721,721,8723,7979,7404,8733,723,8728,8330,3607,6602,8659,6353,4068,2797,3649,3643,6537,5046,8502,6608,6534,1564, 3508753,461,4082,8141,6884,8755,5898,8678,1746,5892,8134,6891,335,3696,6118,6329,8314,8580,6181,5913,1683,5271,1263,4905,1088,6322,2829,4491,996,8784,1532,633,1804,8779,6028,1147,6317,8772,8778,5912,8780,1626,8664,8787,8792,8426,4077,613,7851,8788,8474,4247,8783,8803,5539,8321,6328,5627,8313,3730,5984,3689,6364,117,6333,320,7828,6346,6262,7832,5852,6265,8667,6605,1558,6607,6870,7954,3601,8188,7749,1862,1818,8817,5787,6559,6923,6334,6563,365,6597,1486,6568,8363,6417,6345,6088,6935,7018,6158,3660,6270, 3516942,335,4078,4080,3778,6585,6940,8364,8861,7756,8866,8356,8853,8731,6871,4079,921,262,8856,7555,8879,3966,6347,8828,6246,6577,1653,8849,6599,3686,8867,8873,7834,6603,8602,8371,6608,4924,1809,5641,6874,5608,8844,5653,6009,4550,5341,6655,6657,3696,6611,8591,4270,5389,8412,2770,8327,8720,730,5346,8738,5074,4720,6626,788,6628,4726,622,6631,4850,6633,7610,293,5137,8655,6635,8472,6436,5389,5623,6874,8593,5629,8785,6665,4724,8728,383,5928,1801,6719,554,1410,8335,4554,6458,6636,8029,5389,8186,294,262,643, 3528952,3915,6497,5700,8396,8938,3386,1802,6676,8811,8798,8793,6663,4780,6887,6486,8968,7118,3547,3567,8714,256,8915,4243,8971,7831,5537,8812,5915,8948,8406,8224,453,4225,1683,3399,8174,7118,474,4788,6981,4475,437,778,8941,6529,777,831,6722,8368,8582,1669,6012,617,3699,922,6944,6946,8366,8978,288,8323,8248,8896,6870,8374,8437,5583,7480,5941,7482,335,8917,8838,8329,8920,8745,6828,2458,5581,8449,3419,8455,5968,5586,5976,8452,8461,6111,5589,5976,5594,8464,9054,5597,5978,3838,8436,5557,4971,7550,7552,2447, 3538446,8131,288,65,110,8971,2172,8991,1689,8580,292,277,551,8431,7640,6300,8613,4243,2861,1663,8842,5316,314,1645,6717,3949,727,3071,727,2109,5018,5794,4606,8630,8438,6071,935,6717,9102,6073,8417,6077,8389,496,5024,9098,3535,6024,2631,4145,4551,6281,6491,8957,8094,5389,6872,366,9111,7851,2071,8469,8263,4267,8937,8981,1544,9018,6303,3878,8884,8365,6239,8355,3704,8868,6588,950,455,116,6243,8879,1778,8784,6578,3739,338,6279,672,6236,678,6286,8566,6066,2997,7776,34,84,5751,3739,8706,3562,6725,8254,121, 3548710,5794,6953,868,9165,3344,5211,4042,3613,1419,8298,5460,9176,72,6227,9183,442,3739,89,6878,7521,551,7565,1700,6787,8239,5051,1705,836,354,9093,3370,629,694,9095,8794,794,3612,112,3614,8298,4552,8955,7913,9188,1723,6031,8486,6603,9167,8708,5806,3424,8689,803,4467,8984,1116,7405,7891,2652,4738,7026,4523,7714,7387,1264,9231,2100,7698,7995,7700,7923,1159,4573,942,4403,7989,4752,1429,914,7413,8103,3292,291,7893,9245,7122,4016,7724,4661,4345,9239,1312,8118,5362,8021,7410,8246,6866,9026,8146,8148,76, 3551973,9228,4860,3136,114,7988,7423,8504,3018,4305,9254,2227,9284,3140,9004,5926,9278,2460,9256,7229,4526,9292,2522,3137,6017,6019,5572,2636,8516,108,6053,2641,498,116,109,8837,2239,8176,9297,2629,1457,9289,1429,6986,102,882,5467,7928,91,9297,6619,8344,110,843,9300,625,2846,9284,3399,9317,6847,6864,6849,9271,8711,288,1818,1482,8895,8580,6001,4550,8901,1718,8602,5611,8906,1690,4264,5008,110,4663,5997,9131,8478,555,275,8400,8319,2667,6707,8306,6627,4724,6629,8928,4729,8930,4732,8008,6792,3829,5039,7925, 3569003,5239,4980,4449,970,5624,569,5626,3643,3843,895,8933,4265,4226,4358,5992,941,9358,785,8969,4956,749,6026,700,8799,8428,1545,8501,6163,8616,5022,8385,7525,1033,8387,7937,288,6024,749,2630,6018,9116,863,8786,7843,3966,8408,4949,9100,8376,9102,8379,9324,8646,6072,1186,8643,909,6076,8637,2022,9016,8802,8974,8804,383,5616,6508,1631,8277,2071,6664,2120,8946,8735,7002,5390,89
35663,2541,8954,8935,3056,9120,8913,3386,9391,9355,3550,4910,3970,9397,5379,8958,3386,9361,2002,4083,8482,477,9407,4327,6382,6706, 3572351,3746,6656,880,6659,8069,2814,9465,8955,9130,9398,9001,3948,3829,262,9083,6458,9382,5126,5877,7610,9128,5989,2911,6917,3347,9134,421,6579,6567,6569,9137,8869,1363,6250,8362,8881,6288,5727,8891,6587,8874,8858,9519,8875,248,8864,9378,9526,8606,5078,9142,8874,8360,6251,5859,9526,1984,8871,9141,8892,6256,9140,8860,6345,8863,8877,2579,9545,8874,6589,9514,6345,9020,9553,6349,6595,6578,8888,8378,9556,8893,8747,5635,8661,3932,9151,8316,9155,9505,6290,6285,6939,9572,1575,3754,8663,1712,7816,5064,8764, 3585673,9446,8522,6516,5685,8376,5119,5204,5231,2215,5153,1644,8511,5111,9462,5159,383,8986,6458,9449,1115,5735,3739,5414,5948,4533,9176,5919,8549,9608,9216,5409,9607,8303,6603,5083,4373,6403,8552,6928,288,9164,9216,6724,5744,9172,8690,8565,888,9176,6702,6777,9176,9190,9322,4526,5466,558,5191,6452,6158,279,5155,6717,8382,5600,9199,575,9201,6112,882,5859,9206,6663,9176,6038,4784,9609,9187,5736,6042,3801,9604,7880,2958,9661,3739,80,9218,8245,7815,8552,8687,9224,9340,34,304,1410,1387,8496,727,8555,7786, 3599228,6475,7656,5714,4518,663,313,3679,4147,1914,8658,8704,296,9682,8498,4079,7820,6772,8132,8672,6922,348,8676,8824,9509,8715,1876,9540,9550,8724,7611,1822,9526,9555,9522,7833,8830,6603,5633,300,8325,3679,6639,6641,3109,1100,6644,6735,6646,6648,679,6650,110,6652,8907,101,9485,6658,8911,7610,9451,6666,8947,8351,9403,6028,5012,9311,9174,256,9036,9312,7006,8744,6345,889,9037,9703,890,5720,542,3672,8734,8918,8729,8921,6828,1463,643,9768,9762,8919,3704,8730,9715,9123,3552,8641,3102,708,9581,2543,5216, 3608801,3535,9600,4570,429,6444,4587,50,54,4091,104,9796,52,913,982,2950,4465,8595,9723,6556,8309,9678,7816,5789,8573,8563,9228,9077,9145,9585,4327,577,4962,8274,9447,8967,8477,9424,2081,3752,279,9628,79,8717,328,2083,8951,4841,6491,6021,9121,3386,3851,3727,9628,8262,9571,9819,9676,8961,7915,1429,6622,5808,6335,8119,2786,9626,8709,9847,4037,6239,9710,256,1798,354,9536,8989,8872,9523,9715,3702,9549,6941,6345,6257,9562,3608,9816,551,9147,9875,8746,9697,5632,9808,6868,6277,9153,3742,9156,3745,9574,3748, 3619161,5006,9176,5788,6725,9628,8984,1778,9624,5736,9221,8686,247,9897,9858,461,4767,6931,9861,7399,9538,987,5896,9720,5862,6260,8883,9915,8885,6583,9270,6951,9027,5673,2145,8726,8742,9454,9770,9040,7018,7130,8741,8719,9776,9930,6345,5900,9030,7760,2582,7551,8440,8445,7255,7679,4468,8015,7433,8740,9927,9935,9757,7853,7958,7138,8229,9323,5435,6789,8240,7750,9775,9954,9038,9778,9771,7018,7181,8415,921,4175,4855,9331,4190,2525,7490,622,7492,616,8176,2830,7297,7916,7164,2932,9257,4617,2526,5443,99,121, 3626712,8965,7610,7130,9988,7399,9214,7843,1862,8369,369,8759,8580,9504,7882,9598,1778,8759,383,9903,9675,5792,8187,9017,5487,5848,6860,9533,9563,9882,6927,6355,9754,3796,9380,2351,8532,9479,8193,6165,6108,6175,9328,6133,6173,6200,6171,6186,6178,6185,10036,6184,6119,6183,6122,6146,10039,6134,2865,6197,10037,6190,10050,1524,10049,6187,6144,10052,10036,6195,6131,10050,6202,6193,6147,461,5466,9213,8098,4526,6226,2958,10071,5470,6462,10076,6847,8576,9388,3689,9228,4124,4126,7920,4066,4670,8749,4761,4197, 3632809,4764,4671,4766,4762,2994,7488,2525,9467,4557,4911,941,4665,9637,7012,4759,6930,10036,9908,10093,4133,4760,10110,10097,6653,335,7986,75,101,121,775,9836,8376,6494,8641,6717,10126,5578,4807,1571,7608,335,6024,4666,3735,3617,8424,3733,10137,3737,4094,5115,4914,629,4697,9070,4856,9805,3292,2993,90,495,109,8878,10087,3984,4200,10096,10092,4199,10089,4074,10116,4056,2797,5807,8012,6216,10108,10095,10091,4202,10112,4129,10115,10161,6624,3931,315,405,8763,6163,9838,9463,9976,2972,9118,8001,3457,10159, 36410173,4673,10113,10109,3992,4076,8948,9186,4123,3979,9438,4193,10176,10197,4132,10205,4677,10198,10134,8423,1391,6324,5104,2162,5754,9459,9996,9671,4570,4124,3877,3753,10157,4128,10192,10177,10174,10162,10114,10206,4768,335,5994,4179,10103,6970,10131,354,10145,110,10148,6439,4147,1931,8286,670,8594,8912,7148,5363,10248,3689,2800,3672,10249,8422,4666,5956,8193,4961,9395,1901,4556,4558,4964,1590,8965,3548,9170,4378,808,1105,2527,4301,6549,109,10218,9375,7495,8339,10279,9119,9359,9826,3680,7816,10249, 365742,7781,10083,383,6457,4570,9417,794,10270,8306,10272,4442,10280,4399,4315,10241,4798,6438,10150,550,268,655,108,72,70,79,86,1466,9428,6797,9105,9435,4829,1582,1186,9438,6078,8585,5744,8587,6682,8589,446,9371,5166,496,10260,8230,620,3918,95,4419,987,6980,287,5207,95,10126,1829,550,4262,9354,1E4,9472,461,453,666,10298,10180,5531,4945,10301,9506,3386,761,1213,647,10283,10184,6505,10353,7894,10310,578,8
3656,10314,10316,2351,104,5135,10357,5640,4939,10250,1217,4301,6708,4836,6711,10124,6458,5390,1602,982, 3669431,9974,4846,4859,9373,2388,10239,626,431,10392,5563,10364,2855,101,10120,121,825,9521,9936,383,103,121,275,2458,674,4697,6431,729,10367,9494,3978,4057,3611,10149,71,10415,1029,429,516,10190,10088,10231,10209,10207,10227,10232,4203,10187,629,405,10169,7098,4065,10158,10163,4196,10229,4072,10448,4672,10210,4754,2797,3980,10203,10225,4194,10452,10160,10450,10094,10090,10228,4678,8862,120,4261,10422,8478,8923,10359,4925,4439,10302,9516,279,8392,4555,798,8391,4916,10201,4755,348,7825,9290,3108,10208, 36710111,10230,10196,10436,10233,10455,10442,348,6575,10459,10491,10165,10464,10164,10178,10441,4551,9373,6158,7851,10490,10438,10495,4763,10195,10172,10466,10454,4244,10304,4101,263,10351,10072,10186,6596,3746,10334,9620,7309,619,10345,10341,5677,3561,10344,10339,10347,5534,10099,10456,2271,8810,7993,10191,10461,10193,3313,10504,10449,10467,10497,8927,4845,5251,2008,10512,10547,10518,10437,10559,10439,10098,1159,2993,5807,8085,10445,10171,10465,10563,10493,10517,10572,10166,10146,4664,3733,10204,10513, 36810492,10451,10435,10582,7476,8767,1721,10422,9492,9471,9839,537,10388,8548,6065,5962,9431,1165,95,4831,5230,7516,10565,2525,10153,2002,9529,10501,10581,10503,10516,10571,10514,10564,7592,9251,10566,3424,10500,10545,10434,10494,10582,10550,10453,3469,10507,4058,10427,97,10365,9044,10621,10447,10584,10611,10502,10506,10541,3822,3424,10488,10580,10562,10614,10573,10613,10585,678,3643,10329,3651,10628,10426,4060,6374,4141,10241,10644,10636,10178,10625,10462,10552,10287,10411,6797,436,9202,6101,453,373, 369895,5994,950,1713,76,4911,260,8340,982,338,2524,10678,538,10595,6434,8980,8478,259,106,4141,294,8942,9347,10471,10286,10414,10416,10431,6089,10524,7610,10378,4040,5627,10271,10382,10274,8350,9133,10018,320,10135,119,647,9865,8852,9868,3608,9851,8689,10718,9530,6063,10724,9880,6828,3681,97,6056,10719,7833,10721,6535,541,6292,9919,9138,9035,9833,8962,3552,9458,9544,9872,8874,933,8339,10003,4083,5495,10728,7018,5743,3552,5641,10727,10739,9515,8339,729,4503,3852,9526,3746,9834,9457,3942,9136,10760,5081, 3709807,8668,8833,8581,9569,9510,3424,1883,672,291,3551,643,814,91,3142,335,645,3730,296,5603,302,10788,517,8775,1091,5568,10794,3177,10789,10797,7611,410,10795,595,10803,10074,6228,125,93,6596,3916,6581,8138,10277,10608,9159,9851,4251,1328,101,6945,810,10783,6277,278,10786,10806,10790,616,5283,1465,10811,9157,9891,9559,666,10620,9575,8851,6632,2526,378,6925,10528,8586,8138,8470,9159,5543,8842,9351,3863,10782,6300,10785,284,10787,10801,10796,10791,1091,5612,10835,1438,10821,1449,3749,1126,10840,1328, 3711723,5612,10825,10857,10828,10859,10830,10803,10793,287,10880,10863,289,10799,10883,10861,10807,10885,5469,10800,3506,10802,10885,10809,301,10812,1335,7880,6300,4621,1410,6542,1608,10826,3739,10878,271,10860,10894,10862,10832,10865,10899,9827,9531,6284,9851,3472,10413,3739,10843,10905,256,292,116,798,9374,1623,115,58,123,120,271,1185,121,10936,528,125,47,10934,58,1925,10938,48,125,5867,10907,10858,10910,10884,616,10882,2315,10895,10832,10799,10916,4924,10921,760,9669,8577,10875,1873,3739,10929,814, 372372,10932,123,5466,10939,4907,5471,10975,520,10941,10973,3659,10944,909,10977,10947,10949,10877,3950,10879,10889,10831,376,2834,10893,2504,10957,376,1743,10960,3851,345,5116,10848,9159,1165,10643,10816,10154,10156,285,8487,9010,111,8780,8580,4950,721,9928,9769,9759,8874,3834,329,2524,10480,6458,9409,2995,762,6222,6468,4327,10426,9779,9936,11021,9715,1477,51,11035,9965,8736,9779,5863,9564,10024,8669,1502,8903,10181,8905,10855,8580,9584,3004,6041,6036,5350,5460,3724,5463,9980,7398,10294,3535,10897, 3737521,10220,9113,10200,7670,5605,9336,11046,9724,8249,3674,8353,421,1854,432,9479,9714,8886,8479,6252,9148,10774,8832,9725,8834,5673,2135,9849,3529,109,8941,8597,3582,9068,8558,8588,9905,10015,9173,8691,3558,6044,9168,9627,9906,3589,10248,11050,2737,8825,9511,455,9513,10772,9551,6337,9532,9542,5074,9552,11121,9715,9719,9867,9721,6583,9559,3746,8889,3210,9714,11045,10023,8895,9726,1629,6705,5679,7917,10318,6504,10689,10286,1855,10244,9615,3535,9484,8909,9487,10383,5232,5389,8988,8797,1687,8975,773, 37411071,8987,6894,280,8699,6458,10185,10009,5269,7816,9070,9072,4232,10026,431,2833,1429,686,11177,629,9233,6093,2691,9431,3063,9304,5084,1571,895,10992,9929,6943,10482,323,11026,8224,431,578,9087,6093,9089,6868,8193,9092,9652,539,8389,11198,294,11186,5572,4078,114,2639,941,631,633,11219,10326,1449,8618,9101,9433,9103,5738,6070,11228,9106,10323,10601,9439,9002,8434,2351,8475,8979,9825,10370,10118,2524,6235,9845,11148,11242,10592,1862,8825,9863,8361,11087,9562,11085,9874,11128,11085,9877,9146,10
374746, 37510021,9722,11075,9884,6276,9152,3741,9570,2124,10836,3747,10869,9161,3751,689,9891,3547,8559,5744,10925,8665,6533,9220,11109,9222,5628,4550,461,8256,9582,6381,10028,4434,6091,6162,6797,10033,10037,5748,10053,6171,6174,11302,10067,6200,10045,6180,10048,10047,6179,10041,10054,10061,10034,10055,10059,10057,11314,10063,6140,6199,10059,10066,6111,8468,9071,577,3792,7569,7710,4740,619,11190,578,11192,354,6148,9423,10370,9860,10713,9862,10771,11131,8829,11133,3948,6330,11256,11349,2759,1487,3950,10702,10020, 3768892,11257,11263,11359,11353,292,11278,4319,11346,9541,9868,11265,10023,11076,11268,10778,1612,4464,8837,1126,6284,9576,8138,11364,10828,11274,288,5736,11283,10927,10969,5512,9749,749,6312,8578,409,8580,10730,9402,11392,703,6501,10328,1088,10013,8586,1523,10479,10484,4938,397,11158,8593,10292,8596,315,2272,8598,9704,10587,9706,9845,10026,6639,742,8762,5265,5256,7555,9170,8337,8908,9486,9744,11241,10591,10526,7329,2043,9441,1015,11425,6684,8427,7756,689,5256,1088,11441,1823,11427,731,11439,569,11448, 3773635,6676,3320,9491,5145,11172,10384,5389,9490,9460,1631,9597,11461,6157,2065,11452,616,11454,3646,11456,7854,100,11446,1391,11472,9171,3684,10118,1058,6874,11479,4082,9012,376,11420,1743,335,3788,4724,305,3550,8123,9566,11421,11107,6603,11495,8895,1842,9176,11404,11111,11105,9629,8503,290,4525,11334,452,9033,5439,9643,9651,1905,9204,480,7030,9895,11069,9664,9184,11166,9612,9662,9191,2406,11108,5754,11288,9898,10081,6682,9228,6639,10685,3561,6634,3056,5360,1699,9387,6682,3672,11539,1410,895,7181, 3781172,4079,11540,5239,11543,5231,11545,3651,10677,11553,11549,1164,1524,369,9311,8478,10809,77,3703,8212,1304,7114,9671,6464,11066,11526,9792,4459,10237,8821,10290,450,550,11013,8941,5627,8753,1830,11577,3535,9781,11586,3643,8842,8468,100,10692,1206,3548,6874,65,11597,10693,8673,3651,6204,6227,2221,9366,4961,709,1883,5449,495,8299,5129,7802,5354,9320,9369,8998,4649,9E3,8478,3839,11581,1566,11583,9445,5265,11593,8674,5265,11487,9698,9014,335,9343,11115,9228,9346,3863,11632,6883,6008,4381,5641,9390, 37910524,262,9357,8471,9493,9360,8408,1843,9364,8404,2351,10473,9368,4725,6630,9372,4861,10930,7581,1263,8429,9479,11575,7640,9377,2524,9498,9694,8507,11591,9496,3864,11295,6163,9500,3535,11463,9393,6657,9469,11653,11435,9598,10211,9401,10139,749,9404,10798,6462,2627,9043,10667,11208,5964,9049,8457,9051,8460,8465,5975,2876,2884,2663,10133,9416,11590,3801,8360,6874,9414,5753,5408,11058,5401,1801,11470,1685,9074,1807,11693,794,9419,2632,9831,9422,11063,11692,2342,9426,8410,6249,9783,11227,6067,11229,10319, 38011232,10321,6074,11234,10325,2642,9318,7805,11032,5618,788,9747,11196,731,9835,8953,10703,11690,8473,3710,8934,262,10101,4558,9470,11765,8479,9362,9476,495,9478,11298,4570,9481,11145,4570,11155,11432,6660,8932,11763,10284,11654,10286,11067,2770,11065,3801,11240,10362,11584,5884,9845,6662,11343,9853,10287,6566,11119,10733,9916,9041,10726,9518,10754,8948,6289,11368,10734,5074,9525,11811,8862,8876,8865,11124,10720,11816,11367,11138,6260,5856,11810,11128,9876,11123,9526,11258,11347,8358,7018,9547,115, 38111010,11835,10740,11444,8890,11841,9515,11130,11814,11348,9558,8887,11135,9561,11830,9881,9023,11102,11633,1742,11373,9887,11271,10846,10837,849,10870,11391,794,6312,9228,10296,8754,4511,10214,5271,2637,2786,11874,6326,8422,749,1002,6317,1398,11878,8426,11876,1285,11885,1485,6653,1778,11639,10651,5269,10253,11410,11537,2626,3687,10507,8569,5116,882,806,511,9574,7112,10570,10505,10463,10612,11910,10665,10722,323,10336,9323,2794,1595,11030,9434,612,4553,95,5207,2860,4861,11925,10339,6657,10346,11109, 382457,121,4359,8463,477,3833,281,1900,2872,102,95,10715,10576,110,11902,9125,1143,11904,107,11906,7735,11909,10551,10549,11912,11956,10627,10640,110,10606,3202,9540,4882,10622,10574,10646,10583,10623,10165,10507,11963,11840,11908,10546,10661,11911,10638,10450,4956,10136,114,9708,2225,10105,10141,6726,11801,8847,10287,11507,10759,11845,10773,11266,10775,11091,10777,11861,421,10817,8871,383,10277,11840,9892,6284,10129,11949,1119,11951,11953,12009,5305,11903,4079,11952,311,3747,10002,11583,8846,5016,11832, 38311818,11843,11137,10747,11129,9918,11995,9557,6947,6534,6365,3676,11142,371,11055,5134,11144,8966,284,6448,8126,7654,7697,8130,7555,8129,7970,1137,7641,7091,10008,849,9955,2771,8064,7648,1263,8E3,12062,7555,9998,1467,12052,8065,12054,2775,7887,5006,68,5007,282,5419,5539,8580,8339,993,624,729,11541,11465,10285,9472,455,961,6239,7982,2180,9176,5239,5781,4492,291,328,2221,74,6906,12085,319,7808,6516,
383108,488,3550,555,414,431,8291,5111,3263,4327,1518,575,11657,8402,9365,11239,12108,5825,414,6213,12113, 3844713,6814,9480,3453,10750,6213,12101,98,12103,284,12096,4570,6701,6392,8703,11856,12078,8992,11418,1738,11640,12024,371,11838,11975,11826,6828,11838,10818,12033,10022,11856,11141,11092,5274,673,1678,11458,5111,11460,11159,9840,2566,11429,10477,11686,9356,82,8476,11691,11467,7180,670,12136,10910,5361,1031,10546,8671,10587,8602,3672,287,6889,1751,668,670,287,6680,8679,11115,3672,10117,3497,12181,32,11556,9267,10088,12186,12147,11497,5266,6646,32,12191,6683,1823,1754,12195,6672,12197,12209,1754,12200, 3851700,11767,4551,10657,4229,10522,11771,9399,1626,101,6138,6246,10368,11149,11243,11766,4813,11764,12230,1544,8308,7851,5427,7555,11292,2225,12245,8862,11680,11676,8292,11678,3801,12173,4823,4962,9396,12240,10423,4411,8964,629,10589,5145,11466,12168,3507,1506,12202,12204,12184,12206,3791,12213,8143,5912,12190,12219,11858,12215,12211,12196,12187,11115,12221,9740,9742,8910,11785,10477,5559,1822,12171,11796,9139,12224,11769,10237,12176,11772,11023,9378,12252,6447,12254,7720,2932,3672,12271,12183,5625, 38612185,12275,12280,11645,1742,12189,12212,12316,6890,12318,12194,32,12284,12208,12281,12193,8446,8468,11483,11555,12312,9386,12314,5480,12321,12192,315,4082,12279,12285,12209,12341,12325,12218,12343,12328,12340,1058,11891,10012,11287,9904,8572,12232,8574,11145,10026,11261,9850,11688,9822,7610,9841,1524,9830,9832,2043,11761,7570,11250,3751,9531,9843,648,11799,5131,9858,9984,9850,9858,6874,11505,9857,11507,5054,8825,11834,11848,11836,12231,9078,11262,11358,11823,6863,11997,11090,9885,11269,9154,810, 3879889,3625,9158,3557,1862,12207,3632,12198,11899,11293,6678,11046,12410,3642,12349,12210,5912,6686,303,10288,4478,11844,10017,11802,6579,5807,9526,6579,11007,11854,8359,12032,12391,11842,3796,4835,6710,8827,12434,9969,8849,10840,12437,6942,8831,3629,12039,1786,2392,431,9663,4526,965,3021,6046,3801,12457,431,9658,3801,368,7709,11962,9366,12466,12455,7398,12465,4321,12459,4093,5006,3065,7490,512,11079,6358,11255,12443,8814,5444,9025,1869,12161,3679,3E3,4368,7864,2770,2623,7758,6796,8193,8041,7054,7375, 3884978,6806,7768,3260,7770,3264,7383,7279,7385,7281,2475,7863,11341,9296,2925,8018,4286,9412,4277,3434,2695,3414,6842,9998,3286,7160,6972,8244,9986,3334,7337,7941,12269,2709,2395,2711,9248,9282,2530,2076,7259,8226,4156,3213,7451,2441,12536,6781,9282,2499,12522,8218,11158,2215,3382,3155,4793,9295,7398,3103,3322,2942,12537,4475,12560,7258,503,7630,12530,12566,7338,10308,2475,7202,12237,9716,2507,12061,11966,1446,7922,7997,12028,3126,2181,8211,3535,12525,4899,12524,2766,4489,10444,12514,2552,12556,853, 38912527,11511,12549,3537,3316,3527,8108,12559,2482,12551,12557,9949,7706,12577,3150,7197,12542,3977,3103,4246,1990,2208,12561,7487,2913,12064,12579,2105,7699,3111,2815,2896,2246,4949,12544,7632,2942,3225,8184,2117,3503,7619,11740,12628,3498,2733,1664,6213,8111,9296,2847,9948,7869,7340,3161,12596,866,7610,9314,291,9281,12564,2482,3145,8125,4570,12539,2935,7321,9261,3173,3518,7708,4647,3419,6965,4054,7029,4178,7845,1088,11078,2475,2553,12646,7398,2851,3499,7692,3339,8074,5372,1986,12658,4873,7099,3909, 3907254,2316,7196,12621,3480,3126,2312,12698,12641,12661,8782,3381,2482,3162,4948,12640,12664,12547,7907,12605,3223,9253,12614,2718,12607,2402,7396,7694,12714,2753,12653,931,7614,5604,12569,7533,12586,4790,12515,4346,12590,12629,12535,12563,5926,2623,11283,10032,5048,276,4804,6112,6748,3377,3045,3509,8243,12599,12659,2366,12067,12632,12665,2035,4923,12664,3121,9286,2475,11569,5124,7146,2208,10147,8375,9941,9064,9944,9066,12520,2933,7085,12702,12656,4213,4649,9335,12493,3207,3336,8007,12296,12622,12734, 39112558,9282,3103,3436,7973,12693,8214,6826,7348,6936,12652,2400,9998,12550,2509,8072,12721,12688,7398,6088,3450,2522,2993,10275,11160,2419,2592,3151,12738,2302,12783,3389,7669,4243,12555,12800,12789,4475,12588,7629,12640,12802,2720,12613,12553,2170,9939,9062,7549,2035,8444,12773,2894,3327,2902,12815,2150,12713,12538,1986,12682,7148,7754,7101,12641,7647,4028,2316,2155,4798,12769,8193,9032,9197,8383,12680,3208,4505,12636,3201,2155,8025,5517,9284,11732,6733,10337,9303,2638,2640,12774,3126,12568,3513, 39212516,4497,8020,7409,8121,7555,2773,108,12495,7851,2581,8195,7053,8197,7057,8046,7767,8048,12504,8050,7771,12507,7773,12509,7775,11437,12775,12670,10389,8193,12673,7574,3474,12545,3199,12635,12728,2451,12735,3046,12890,8076,12874,9323,7544,8208,3037,12784,8222,7705,8099,3490,2317,1939,12662,12587,12819,12643,12921,2750,12766,3517,12749,12725,8102,12717,12533,2896,12532,11457,3481,2243,12491,12513,12723,3241,3271,294,4923,4124,12809,12446,12624,10460,11978,10194,11980,10665,3103,12574,12373,3497,7523, 39312517,12885,7526,278,3076,7390,12667,1362,9983,11095,5554,7959,12836,9031,8381,11514,6791,8333,9284,12759,3328,3220,12943,12782,3530,2059,5955,10633,5583,9046,5585,2863,2871,9050,5590,2524,9053,11711,5974,9056,13013,8466,9034,12699,12534,12666,12731,12594,3315,278,2898,12762,12915,12633,12712,12604,12
393600,12934,12972,11436,12974,12866,12919,3179,12946,8183,3044,12842,2934,2246,12603,12867,3166,3513,7473,7086,12710,12814,12562,12548,12826,3482,6751,4163,11333,6982,3420,7930,6756,7603,8167,7606,7514, 39411714,3387,12939,2288,7940,12817,1115,8036,11072,3334,12617,9126,7125,12934,12719,8032,7192,12722,12790,12707,12865,12730,12572,3053,12645,8994,12610,12521,12959,3344,8154,7543,8156,7545,9319,9321,4825,2521,9326,1880,4862,1417,9330,9415,12641,3509,12598,9194,2255,12606,12803,6779,7660,13047,2718,11917,8162,11335,7386,3064,2400,3073,3069,3071,1592,13130,6652,12696,12910,8161,11512,12913,4189,12864,12930,8068,12833,12543,2366,13083,3098,12805,12528,4638,12733,9264,3962,4010,12580,12626,3965,3497,12708, 395917,12881,12611,7132,6640,12829,12601,13025,7326,13022,7398,3131,3316,12951,12908,12700,12918,11096,12764,12849,12564,12648,4697,12781,12651,12934,4867,8192,12938,355,12997,7237,12944,13043,12531,13074,1983,12799,12685,7681,3501,13077,2451,13161,9260,13171,13032,3334,13148,7161,13121,13042,12953,2934,13175,12583,13071,3492,4942,12650,6474,3328,7734,7238,7289,7346,8215,12797,7018,13173,2890,12546,13197,3201,12801,13199,12643,12854,7361,4313,12756,3215,13207,13056,13E3,13192,12752,9291,12756,13030, 39613122,12696,4937,4555,840,323,3235,3697,12786,13019,3095,12891,3246,7267,7762,7269,7764,8199,4979,7273,8202,8049,7381,8051,12904,8053,12906,8055,12648,13185,13222,13262,8173,12057,7852,8557,13231,2334,12541,13145,7797,13057,13120,8528,12706,12715,13165,12777,12756,12761,12948,12952,12889,7594,13167,12934,12750,13150,13248,13117,13147,13097,863,13099,5583,12927,12510,11475,13304,13058,11238,6754,13063,6985,8166,7934,7607,7936,12748,13043,13188,12496,13152,12595,13143,10106,11737,12641,3396,13052,355, 39712858,9940,12860,12990,12862,12992,13217,3168,13321,7599,8193,7601,3367,13065,13327,13068,13329,12949,12922,13224,4276,7345,7976,13228,7739,5074,12962,2521,12433,10433,10635,11971,10662,11958,10626,10496,12703,4368,10568,12689,12736,3476,12816,13055,13249,13312,2560,6842,13115,13038,2695,13114,7951,13310,2371,13218,3531,119,4895,10525,12847,2896,13046,13392,3508,12946,13163,3280,7655,12932,13023,3543,3475,3199,13234,13048,13164,12916,2002,13405,11096,3509,13041,7175,12729,13174,13178,13296,13024, 3981211,12982,8595,8663,10356,5866,12149,6899,9144,9878,11361,12397,9022,6926,5845,12451,6269,9071,11169,12890,6300,12381,6838,10902,4810,1410,11200,11591,9082,9367,11408,8486,9015,9443,12079,12414,6857,1500,6874,6322,9752,11635,9883,11998,8249,9164,98,661,7955,5661,9910,11081,9866,12447,11996,10023,5140,11921,6166,12488,1511,1336,13477,13305,13027,1623,1890,4593,12072,13496,2771,13477,12069,12065,3584,1672,12955,11736,4475,2830,115,7394,7886,13501,13511,7121,7307,12925,13125,91,13317,12907,13497,12135, 39913513,13294,8107,13252,9656,12135,7502,13059,9290,834,13354,7932,6988,7512,7935,10603,3625,13507,4489,12937,12732,1250,13477,4432,12609,11524,13525,7671,12608,13221,7913,13531,12804,7469,13086,13510,13498,13362,4391,8213,13227,12796,13367,6828,13516,7165,12832,8089,7428,13498,12741,10337,5435,5049,5562,5052,4706,2829,13498,13549,13555,13334,988,13548,12623,6216,6643,8516,7921,2108,11521,13552,7206,12526,13395,13116,9603,13562,13284,8947,7295,12135,13263,4971,12894,7373,4975,8044,12501,13271,4983, 40013273,8204,7382,4988,7384,8080,13330,6970,1890,12975,12884,9854,12886,12979,13583,12135,12578,13591,956,11887,13157,4688,13623,13503,3185,12793,7736,13566,3193,13229,13530,4044,8117,12976,13628,12978,12582,13502,1890,13532,13322,7034,13324,7509,13356,6989,7513,7042,4177,13647,12702,188,13511,7331,8033,13151,13551,4817,8182,13212,2351,13570,8116,13154,7453,906,13592,8002,12222,1467,13494,8014,13586,13672,7401,13688,13413,1020,13640,3243,13094,9323,12498,12896,7765,12898,4981,12503,6809,12902,12506, 40113620,12508,13622,13631,115,3145,9183,13597,7593,13351,13138,13061,13536,13326,13662,13540,8171,13506,8843,8084,10544,9634,13714,7757,13641,13244,12692,13643,13365,13567,7978,11816,2065,12985,13728,13499,7166,8078,2727,7170,12928,678,9205,6362,13477,13479,108,558,694,13596,13512,7918,12788,13550,13692,367,13686,4899,12751,13601,12668,13693,13655,13599,8179,13396,7135,13498,13495,13302,11475,13763,6842,13425,2770,13677,12048,13679,883,9266,12273,13652,13756,12870,
40113741,13517,8191,13333,13697,13265, 4028042,13612,13268,8045,8200,12899,13272,12901,13274,12903,13707,12905,13709,13748,13725,2130,9789,13672,13526,8242,13309,13766,2924,13547,1890,13518,10531,13521,13101,13747,13606,775,12859,10337,11190,5382,11356,4802,6719,1708,11503,13478,686,648,13754,8564,8503,8836,9748,11500,967,454,1137,3578,3568,11415,407,8579,13467,3738,8370,12678,8983,10327,3552,4377,3567,8589,11414,406,3581,409,8682,12043,9856,9223,11507,9228,5466,8702,11660,12043,13876,7366,2958,13879,8700,6462,13882,4327,120,13885,4570,122, 40313888,6047,13891,5473,11046,13871,5790,11112,5448,12315,12348,12317,12282,8972,13855,10849,6926,12417,11605,12322,13903,6685,5485,5269,8582,8580,477,2400,11041,6910,7645,11037,3608,13844,11196,12449,3670,5035,274,1887,6919,11508,8897,5412,3561,350,413,5201,1617,5688,7796,7428,10239,960,13936,329,11754,7813,6516,10833,5223,6496,12301,12241,726,994,65,552,450,7599,11248,12177,12268,9139,9793,11671,6714,1706,9431,11300,1706,6011,13904,6013,11728,11443,3796,6496,13945,5109,9689,11779,6392,9594,12229, 40410423,8949,11660,13978,454,5246,5510,6443,6496,5094,840,5167,7791,5100,4023,5103,5689,3093,8505,6698,5411,13943,11185,13952,11434,11772,9791,8432,6496,5165,13996,5142,13938,5146,4636,5172,13505,9989,5400,13944,454,12873,12044,12034,13962,2814,5207,6432,6319,14018,6453,4716,13941,5160,13989,13937,13998,5687,4309,14002,3818,14007,110,13979,12998,6163,9602,1641,6496,5139,14016,566,14035,7793,5148,7795,9591,8227,14047,7470,8278,6496,6319,8541,4713,8543,9664,14047,9606,9611,5618,14047,9614,14075,4784, 40514047,9610,5302,4327,1799,836,14082,4455,8652,6516,14085,575,14078,5247,14089,9480,6496,8101,5180,5145,5182,6516,5234,6431,5226,14010,12230,11990,5663,3863,6415,12483,948,5076,5070,11811,5082,6401,5085,9580,6355,9886,11270,421,11386,105,5731,13001,5369,13439,10928,644,10970,7974,32,2954,9085,9439,3547,6211,9350,11052,5455,8691,3536,6037,11723,960,12470,12600,5754,12474,7398,5619,11062,8696,13337,4475,11791,13883,5765,11530,11089,9622,11857,13902,8263,9754,13926,11048,6880,6300,9344,9709,11344,11803, 406328,9512,11806,12392,773,11813,12153,8857,10753,14112,8190,9528,9713,12030,11831,2450,14189,10021,3608,12151,9871,14194,11126,2566,9718,12436,11084,11353,6579,11136,11088,11046,12160,11284,3679,118,11716,5282,14142,5524,12518,14141,11647,6010,522,11431,9743,12291,13260,14145,11722,11056,11059,9483,8723,11036,9039,6588,2095,11610,4221,8925,9369,8927,4728,10843,12812,9464,11787,6163,12267,2814,14159,4533,11757,9453,9769,8993,13813,5372,12371,12264,14245,8956,12087,12973,5564,14050,4327,11793,5567,11699, 4073231,13256,9848,10769,9995,14106,12261,11726,296,8808,14023,9023,12235,11249,10526,11867,795,10289,8677,8894,8577,10292,11638,700,14286,13905,815,3979,8263,12965,12969,11957,14299,11960,474,10299,348,10183,11171,10369,14262,10085,5653,10458,10634,10226,10645,10624,13376,10664,10519,8390,11199,13462,5684,10594,4232,4307,10597,6717,10599,11235,13069,12962,10189,11976,11967,10648,10637,10610,10639,10604,10456,14312,13372,14314,12967,14300,14338,11981,1523,11742,5583,10320,8635,10324,4832,11880,794,11398, 40814357,6481,10358,10300,11158,2814,3746,1482,8842,1027,14028,6247,11772,10222,9828,10511,13156,14344,13374,11979,14347,10665,10715,11988,9402,11983,8681,14108,9135,9517,12482,12157,10735,1564,10732,12431,10736,14185,14390,11855,6926,11372,9568,12001,8605,10189,11378,13906,12407,10822,10824,10906,10988,10829,10991,10803,13950,832,10866,10917,11346,9162,3548,11547,11561,11178,14144,13285,2071,11423,11900,7894,10307,1429,9985,9113,13111,10711,12399,14164,3548,83,645,112,10510,11641,10966,2225,9896,11282, 40910865,11451,13973,2239,8788,14169,6406,12144,5421,802,8580,9756,13920,9966,8722,9931,9656,103,12311,1699,3108,834,3782,5657,9331,2800,14470,6906,1847,2969,13473,11047,6406,13471,5422,13916,1671,10557,14375,91,834,10749,10679,44,14471,14477,44,4724,259,673,44,8876,1110,115,103,111,14492,14476,739,3252,14493,14507,50,694,9328,629,260,9820,4833,14474,7183,6937,14491,14509,490,14496,100,14498,14500,921,14503,14505,14472,757,14508,14506,14532,14511,4862,14514,355,6657,12222,14460,6668,9758,14233,8874, 4103612,10122,14004,14225,13987,2770,14012,7230,109,563,4724,453,367,342,9210,11170,11800,14163,13927,8771,500,1702,103,11501,12148,14294,9572,11856,14570,12209,3630,68,82,5845,12080,345,11202,5786,10718,13458,5194,6213,8288,2483,14582,645,9482,6703,6213,76,14591,4464,10718,10079,6703,6694,14555,14590,5123,6427,14162,14208,8584,12146,12411,12209,11477,5043,8756,6603,12276,5265,5484,8145,6921,12424,9683,8499,9702,8485,14210,11143,115,8934,13953,10423,1797,5137,8341,14477,5791,13966,12166,14308,13035, 41112223,12239,11788,14030,10385,311,14634,6359,101,85,10742,12371,
41111298,13961,8397,14454,9809,4837,1029,10465,9686,2794,14049,13193,6974,7045,3461,14664,13772,4466,9951,4102,12640,7990,2659,14663,454,12691,7725,14676,629,14669,13818,2536,2794,8114,3461,13409,7556,14673,12762,8831,2808,461,13488,13848,8315,14402,9862,2521,8962,111,10105,10856,10784,10909,12203,2225,12486,3759,10890,2900,6359,935,14417,9283,2095,10781,10876,14706,10989,10952,14413,10885,10994,10888,10912,14712,10998,10898,12484,324,14710, 4126952,14144,12778,14027,2839,12876,9305,12878,9287,9279,9334,5751,11570,5199,7024,11965,10337,13498,496,7810,9236,6619,4649,9332,9279,4923,8960,116,13258,3545,2814,555,1847,5135,293,10743,745,10745,14630,10477,12778,14679,1453,13280,14746,9290,5954,9284,9998,13076,4243,9029,12988,6797,12861,6112,9962,10134,9061,13534,2666,12771,4703,12840,1018,13183,9316,14779,9318,689,9320,10738,14351,13106,2018,9327,9329,9115,13112,14766,6360,8345,12518,14734,8389,1058,10904,496,1419,13285,3348,10242,100,118,4464, 41310344,12377,121,14138,383,14734,12480,8848,11804,8851,8856,1699,304,11135,3699,8944,9452,1106,14806,13485,8874,8855,11352,11850,6219,8859,12030,11085,6579,12446,14183,14841,8888,14844,6663,14251,112,14393,12027,5390,10393,14868,12432,10815,12443,14861,14843,9677,10386,12441,6593,10754,14875,6598,14863,7241,14193,11125,11789,569,14842,14883,9677,11127,14397,14888,616,14890,6089,14884,2342,14202,14190,14261,11488,14862,14892,282,2549,14183,10527,6598,11853,14894,13962,14897,69,14863,14657,14735,9630, 414372,14865,13332,13080,3874,13050,13251,5460,14865,7659,13295,4243,494,7722,3540,13417,7428,14922,8124,12705,4243,8952,10311,13181,5926,1809,3078,1754,13919,14543,13921,14545,9715,9746,4724,13563,7559,13565,13735,13645,13568,7018,14954,8058,13793,12892,2666,13610,13266,8043,13799,13614,8201,13616,13804,13618,13275,13807,13277,13809,6578,431,14776,7135,14865,9170,14586,4526,5559,14152,9282,5559,14149,12564,8093,14641,14942,578,14983,1362,14933,7618,7464,13515,14865,7090,7155,13605,1217,13137,12372, 41513139,7713,12674,4744,913,13254,8526,2941,13216,14854,12247,2239,12249,1623,15005,12924,13823,13522,7355,5562,13225,7100,5563,431,14704,14774,1149,13401,9251,13050,13422,2770,15001,12633,12702,15044,2897,3477,13386,2071,6748,15032,12694,7561,10332,8945,8123,4489,12492,4470,13508,15040,13165,14927,3102,7359,13573,12063,12049,14313,9730,9242,12627,14963,13669,13085,12806,9282,14963,13343,14787,12742,7962,9961,13018,5232,14934,12571,15063,13420,2003,14936,14845,11758,14253,1159,13050,13667,14865,7906, 41613031,7566,359,1671,6250,12436,8478,431,8493,260,262,1889,121,7025,10477,290,13726,12618,13676,14865,12552,15068,1769,12597,13600,14928,15057,7468,7421,13560,5926,14963,7563,7139,1466,13554,8223,3535,15047,15020,15140,2077,12640,14551,14957,4954,12695,6016,14812,9745,15026,12960,12640,14946,1253,9998,15133,13073,15050,4661,12716,13291,1196,14939,2441,14928,13509,13733,12851,5563,14553,7729,4907,7240,15025,15057,13633,10445,13592,834,9735,791,12222,2082,9998,5132,13696,14256,14272,14258,14773,14225, 4175769,4446,13817,15127,14846,12821,5684,11157,2839,8515,6620,7030,15100,15162,15123,15056,14846,13775,15163,858,15159,12846,4475,15047,2148,15049,15215,5926,6088,15022,996,15024,14921,15057,7910,12687,13671,4526,14963,1892,1875,544,14897,7610,1637,14999,594,15155,2818,13785,13650,12205,13788,8781,13165,6840,15100,13411,14426,9603,15121,15038,12727,15120,15057,9998,12041,6777,15254,13220,15138,9664,14938,15118,14924,15E3,12612,15046,13050,15249,15128,13687,15264,4526,1637,14944,4642,8011,14255,7398, 4182612,15053,4393,5784,11332,1663,3548,10005,14572,34,14266,7398,1637,14589,10243,13091,11698,14161,9219,14608,8752,11013,3671,7816,14444,4781,14009,9837,14640,13338,1691,8430,6093,13968,9646,6169,457,1697,4707,6375,4317,4710,12111,11947,15093,8789,4346,3548,9964,14461,11043,9968,2022,4330,10679,12165,5377,15312,12178,8789,5994,6970,2157,798,9693,11459,15341,13963,10118,294,11565,5771,2175,14483,6491,11028,5513,11682,6210,4411,10290,12424,15363,14799,2854,14104,9301,14281,14645,5389,6304,278,4744,6656, 419576,629,1419,115,2221,1516,3776,14369,15359,15209,15095,10412,8474,2005,6874,6410,1277,11226,9429,11228,10598,9436,14354,6077,8636,11224,2342,11004,2225,13896,9353,6024,613,8689,10743,8521,14005,9586,6502,14995,13338,4078,103,1516,
41915413,15358,5768,12226,4319,10522,12265,14639,12236,14262,4314,10144,10522,825,608,5239,12105,4576,4708,15324,6377,6213,15141,13590,15179,13635,32,15181,8977,679,12222,14805,13785,3393,4635,5354,14828,837,686,7851,8176,6900,8965,13034,13338,11183,753,5141,1588,99,70,1847, 420643,15356,14458,15423,6516,9085,11203,11351,8438,11206,9431,11209,9094,5563,6906,1678,14467,11557,9855,14120,1678,8209,3611,14058,13940,14062,2758,10539,5755,5225,15370,14307,15430,14996,11329,11554,12518,1713,11176,11330,10348,6792,6050,4770,8664,11672,4526,10473,15223,1015,1713,9170,15225,1588,14127,1313,12764,4539,9818,10221,2099,14948,11019,14232,9967,14464,335,120,6895,12023,1391,11581,11197,1528,294,14987,7398,15453,12649,9688,11755,5131,6213,78,455,9841,1781,115,14738,8525,4570,119,575,1900, 42185,13449,4628,10908,14722,6032,14623,9701,8556,14654,5359,12334,616,5363,14622,9700,8500,432,15322,4141,6376,5212,15455,15554,12255,5391,2700,629,8689,15332,14950,14462,8737,15539,3948,15516,9729,15180,963,15182,1188,11550,3783,15364,8552,11697,5275,4411,15490,15245,1033,8496,4411,11340,15168,4260,11245,10850,15371,14656,10712,11802,11847,14860,5231,14897,1713,14916,14877,12440,11903,12442,14913,14882,10406,649,15635,1480,8757,1569,14401,14123,320,15565,690,100,4738,1883,11539,9311,11388,14132,376, 4221064,6552,114,51,10987,14721,14412,996,15661,8274,15664,10997,296,12472,4586,10995,14889,551,837,120,52,3060,11195,1653,15678,14126,87,15566,14715,10960,15625,11273,6284,15651,1900,5641,15655,11553,15657,10968,15659,296,15669,575,15671,5027,15666,10990,15668,318,15704,15682,14414,14449,15544,15685,15680,15712,10885,11330,15679,15687,15652,14731,10963,540,9373,11387,15700,10930,10971,10933,10935,3035,3189,10938,15734,3440,9114,9420,101,271,571,12089,125,124,470,5605,3666,15707,14723,15709,15662,15705, 42314729,296,14415,12090,14727,6216,3620,287,14136,454,6078,15672,288,15488,652,10960,11380,9159,5736,5834,11613,15516,371,15658,15730,14134,15763,413,15765,15706,10827,15572,10911,1015,15703,15663,15718,10914,11290,14716,15470,14409,10926,15729,14133,1302,1713,14897,14770,328,2541,15762,3364,14137,15783,1863,15750,14708,14724,616,14726,10956,10913,14730,14716,9651,15803,12671,10967,14131,15779,1302,571,15806,435,15764,6825,401,15811,15787,569,15789,15754,15683,5275,4550,49,10805,2239,15836,15791,376, 42415757,50,15724,11385,3739,669,728,6214,15688,15777,15798,7012,15852,15679,8530,15781,8637,15749,15785,15667,15760,6911,15828,608,15830,15845,296,12479,10835,1862,5857,14767,13931,14836,15839,14110,14115,12483,14117,11192,10530,1605,10025,14144,15757,15369,11152,15429,14282,13338,5123,15722,1900,1883,9670,14127,15531,6838,11202,13451,10797,8376,15483,9091,2700,9202,11206,2616,15337,6859,14631,8478,632,15344,1973,15347,12202,12167,14031,15361,4606,14549,14051,5354,15501,14074,14083,7164,11057,15563, 4256043,14151,9080,9296,11147,13967,15397,14328,15399,11235,1901,9102,8209,15516,14069,5510,15386,10864,4550,15932,6509,6210,4550,14087,5353,13949,5291,14093,15957,15927,15368,15310,15626,13954,14226,1410,5314,917,5316,5330,5320,11230,451,5323,5325,5327,5329,5331,32,5319,5334,5338,5318,5335,5330,8389,15416,12785,11668,4352,291,369,9112,7493,12059,15768,268,15616,13787,15618,15493,318,11721,63,3792,15968,15505,15895,15342,15352,11184,11667,15617,6363,11175,15508,11562,7894,552,5825,15900,5631,15969,10423, 42615551,7111,15519,14153,14073,15939,16033,5407,5306,16035,14991,11213,3728,14322,8995,11615,13991,15961,4533,14081,16039,4475,11795,15995,6578,6213,15898,6970,557,14126,648,15903,6703,15610,1566,7816,15613,15463,6902,15417,16014,890,15624,9129,15349,15506,11173,335,71,495,10149,12310,308,12076,15381,16065,8793,9345,12098,12125,120,12134,12202,1910,5354,670,105,10408,15008,617,12092,9901,15883,11683,15953,5355,9204,982,777,15299,16099,275,3935,11658,11464,767,16104,12107,117,12109,499,2221,12127,3056, 4272681,16116,885,10928,11702,8432,12131,10679,12100,12102,15437,16116,12123,12110,15530,6523,5145,2677,15359,9900,12075,14477,16084,15612,11164,288,12478,955,1009,14697,8580,1936,12764,15239,4313,12648,14745,2465,14780,1115,12835,14794,7371,9942,9065,5436,14758,9293,9285,13776,3284,8520,14762,290,8562,7610,14814,14768,110,14770,12263,10523,15192,16053,726,12648,16157,3398,15188,7012,15170,16170,9298,6895,14802,3102,12648,14783,12413,14785,12987,16165,8380,6719,5940,13347,15034,12690,14264,11571,7239, 42815148,13092,2222,16192,13403,109,13180,16218,13182,12872,14435,3419,14740,9306,16195,9315,3041,13281,5546,14804,13104,3419,9325,14809,13108,10036,15739,2632,3076,13247,14684,5022,14714,6361,14817,9338,6951,14819,9145,960,3594,14823,4998,14826,14828,5786,14830,385,10326,9922,7837,383,901,823,14848,10026,4710,14660,2808,3774,6969,9998,16271,
42810517,13626,4930,12977,1954,8022,6346,16272,3979,7211,15207,12050,773,934,7518,15070,14343,15072,8003,9243,13653,16277,10465,12704,15166,10377,16291,9230,3078,9998, 429928,2890,13415,2197,12640,16299,2808,7121,6959,11215,5583,13140,4590,6663,4292,16098,16313,2993,16315,16288,12053,2829,4292,13504,12855,8993,3829,16305,3105,4046,12466,9234,4742,15014,6967,14792,1847,9265,15244,16005,12519,10593,16285,2525,15279,1115,16308,9259,13432,13732,2071,16354,13239,8061,6943,882,10517,16315,15445,4684,13594,15073,13159,5232,100,121,12697,13433,3292,305,16373,15251,8405,16334,12561,7285,11776,16309,7485,12567,16312,16363,16300,7696,13784,11158,3963,13158,7701,9416,14567,10732, 43015522,569,15225,494,16372,16301,2321,8037,339,16385,13232,12758,15154,16377,7284,16412,16372,15178,16367,4011,12581,6204,16304,14923,1429,16324,4755,16391,3078,4584,16338,12672,15013,12914,8190,16408,16335,15242,16393,14487,7499,8389,16389,2808,7110,16222,15221,16422,15165,16406,13880,16435,12981,16357,15161,16416,16327,12070,8781,16455,13298,16375,16458,1824,15062,13676,16330,13731,7735,13364,7015,13366,13737,12435,16350,2797,3461,16190,16333,7451,7463,15089,16407,643,12620,16461,16362,16474,629, 43114688,16415,16463,12592,15282,14991,16442,10202,15267,15040,16416,12883,16280,13651,16282,7948,10384,16459,15091,13667,4292,13690,15276,12807,16447,15059,12956,9282,16359,2941,12702,5726,578,7610,16403,16373,12612,4923,666,16344,4646,12911,10337,16319,12675,16486,16364,13758,16392,7945,16502,16348,16321,3813,13608,7266,14968,13797,7055,8198,13800,13270,14973,7061,12505,7064,13621,8157,15495,16451,12570,12702,16425,10456,16287,13090,16498,16524,16564,3231,16495,2525,16326,16567,2770,16561,10442,16464, 4325554,16304,16374,16453,1236,4078,16558,15248,16388,16487,4125,16427,16336,4929,6874,7246,16284,16278,16456,14022,5927,16578,16500,16591,16283,4520,13656,13352,10337,13719,13661,13539,13328,13541,16597,16334,16352,7135,4292,15081,16205,11513,15084,7964,14791,14900,16586,16423,16568,16586,16477,446,16509,13514,16173,16371,16566,3316,16526,14567,9729,13683,8004,16462,16452,16109,16582,16483,16525,16490,13079,16565,7417,12640,4520,16647,16303,16334,16652,16573,16569,16562,7235,14682,14678,16212,4784, 4334292,12512,15168,9450,16629,13764,15196,16625,16594,4574,15102,15132,16668,13390,15126,16671,10465,16417,10107,16368,16296,12627,16643,16292,9239,9998,16527,2554,13760,14153,16466,13743,8155,13745,14980,1623,16676,7672,13528,11060,3813,16405,2002,16380,16479,16386,13572,16289,6087,16304,12768,13344,10337,8443,9943,14797,16169,16349,10517,16274,14667,14686,16585,16535,8716,14683,16424,16657,3876,16536,16306,12825,14945,16413,15010,13060,7370,6964,16432,13141,8882,16586,7121,16489,13501,16574,16182, 43414677,413,16627,16434,16644,12709,16748,16731,16587,7416,16379,16679,2808,16316,15288,16339,7573,16743,16397,2426,6159,12243,742,15225,16686,16355,2454,16580,5114,16384,15517,13189,11717,16758,7121,16307,16578,16645,16757,16586,15199,5551,16787,16310,109,16508,16542,13604,11759,16754,16687,16428,1949,16346,12313,13629,13653,16775,16764,16430,5572,16532,15015,6763,16583,992,16485,16628,16704,15281,16782,14988,16758,16276,16758,13585,16511,6480,14386,11080,16389,9526,472,11217,9741,14182,14902,12398, 43513487,13847,6894,11860,15649,8373,6289,6266,3660,15832,15865,15708,1015,14696,16841,15766,8704,15676,10592,16854,5559,1529,15875,11174,9621,3670,13438,320,14851,14186,14854,12431,12445,4532,14909,11134,328,13371,14849,9715,9539,11822,11815,12798,6343,14868,15630,16837,13444,5980,14400,13491,12040,13947,6478,5521,14520,7677,16012,15372,3386,6088,1555,1379,3864,12043,15917,10286,12173,11652,14644,11772,15607,294,4082,9994,11120,16028,8478,11783,14223,8284,12266,14903,15313,14259,10590,11772,608,299, 43612244,16772,12246,16772,1088,15225,12256,9394,11689,16909,15970,6088,14635,8448,6024,15577,15894,16898,6450,1875,512,14105,16938,13986,605,16941,14650,14652,14272,16944,15340,16075,16070,15226,14846,16098,2082,15428,8936,14895,14641,6944,16966,9461,16922,15342,1862,11372,8580,5992,8695,1088,2544,2022,13402,2529,8279,8235,281,3690,6528,392,380,345,15880,12390,14909,15646,370,13447,273,7847,13862,392,12679,8474,9502,10477,9006,13627,16018,13850,16991,109,11588,11101,9618,6402,15879,8580,9823,5693,5354, 4377916,16032,9282,6518,15936,4386,679,6908,13845,13895,16007,9809,9628,13850,6691,16977,15926,11685,11297,14626,10032,15319,11301,6172,6106,10056,11306,6125,11309,10053,11309,11312,10043,6194,10051,6189,10064,11319,6192,17055,10066,6198,6145,6143,11326,10068,2022,13449,11565,13576,2274,13863,6725,5654,9656,9216,17071,8592,17073,14448,15793,3691,17080,13861,8146,2348,16150,17017,15292,15260,9601,6443,3915,6017,629,16092,16104,9593,5155,12260,8478,820,512,15497,14044,14038,6943,3405,13945,5143,3816,4307, 4389589,14045,12615,16139,5129,16142,9617,14118,8252,16863,14170,34,8488,5657,323,6422,8776,14042,5169,15498,16596,9687,2556,13981,6554,6603,6422,8670,3069,1822,15407,8580,10675,14866,8406,16925,15970,11780,15385,8286,431,16613,1362,14878,15638,806,9994,6207,6714,10277,9431,10277,7608,8551,1676,68,10331,9565,6682,11204,15292,13917,3389,14949,16E3,15599,11044,5074,7037,2640,6362,8602,972,14441,10510,11644,1726,14440,12180,378,14479,11372,383,11974,9016,8825,10767,16183,10745,12396,16881,7018,8339,8955, 43916873,15009,4583,14901,14198,6828,17200,14257,9117,10224,16868,9042,4711,11829,14913,14732,1865,16250,8324,16890,1536,1683,13381,12559,15928,6474,1683,12290,8069,834,15203,14540,5911,13484,9442,11163,9444,5855,1512,109,14944,7974,6218,8864,2035,12691,17249,15175,2216,8998,16445,2302,1683,16753,17256,5912,15060,4518,13002,16128,9323,8451,11706,13010,1721,5967,13016,
43911710,2871,11712,9198,17251,2002,13836,14291,11696,16086,15292,3734,98,109,17177,9981,14544,15538,6345,11017,15597,17178,15334,15601,3680, 440112,52,17289,7883,17291,14463,8854,327,15291,14246,16973,15351,16712,16493,4475,15172,7398,11034,14231,11042,9777,17305,8874,5356,741,12518,8425,1485,13472,11029,3703,17137,13894,11371,11267,10012,11030,14173,14614,6870,17091,7806,8657,14102,3727,12305,4713,8615,8611,7824,15361,11677,4636,5354,9587,10390,17114,17107,11225,14350,10390,8623,15398,10322,8644,15948,8648,8628,8640,14369,4924,9966,8634,15399,17365,11406,3344,15395,8622,17373,11228,8519,3233,8650,5952,14095,4606,8296,16114,5693,17385,17138, 44115303,12419,15306,9674,15405,14627,1562,6213,12463,15277,6213,14990,6700,6213,14993,12739,5577,9813,14593,15406,9811,8560,12357,9814,1328,8562,5786,16004,16805,746,13896,17409,6315,7180,431,4451,11060,366,1883,6908,13519,7989,11523,17401,120,9670,14268,2770,15541,16971,6498,16960,17311,8875,6228,2351,15294,12538,17069,578,17423,3545,17422,17414,8575,17358,17369,9430,15944,17363,9437,8418,8645,11744,8468,11245,15557,291,258,11616,16959,16013,17444,5123,17403,5926,5123,17406,14427,12462,5569,114,17441, 4429824,16946,8976,16037,960,14600,15929,6516,5123,17437,15301,9819,12454,11529,4243,1637,17427,2622,17450,12923,17446,6491,55,14071,4526,436,17471,15952,16104,6234,17468,114,17470,5676,3552,17410,11027,15930,11109,17490,17092,6516,6694,13450,15960,5829,17526,17503,15964,16047,12663,17503,15956,17534,3535,10235,4558,17484,5887,15108,17532,17498,17521,6516,17151,8950,8628,17494,6463,11153,5194,9560,16186,14260,16968,15896,17405,17546,4570,1703,17511,3945,8266,14052,1362,15252,1236,14433,3801,17025,14607, 44312427,11991,15757,14111,17222,10741,12370,15190,10523,17203,11807,7018,17214,17583,4823,279,14207,17333,13475,16842,12403,8605,9669,14445,15810,16849,15751,1015,2544,16854,15757,15849,4924,11863,11384,9160,11379,10923,8274,7855,17599,16848,15571,15866,569,17604,15817,15756,10915,9162,7110,9705,8769,11859,14287,11046,11479,17394,17168,10014,9852,6411,9910,9781,11833,13442,17204,17223,8748,12450,17227,320,121,17524,4570,120,17649,7129,5471,17652,11673,8272,9362,9498,8224,3829,1883,17659,3535,122,17655, 44417509,10075,17387,1429,11023,1883,6996,17599,17023,4475,8433,16604,12255,17040,2839,11300,10040,10062,6109,11305,10058,10042,6123,10044,11311,11308,10048,11321,17056,11303,17056,6191,10061,17061,6196,17684,11324,17063,17699,17067,12250,17657,16311,13501,10070,17669,13877,11611,4319,17712,11530,16862,17168,11394,5432,17397,9510,13915,15544,15307,8590,15611,17719,11413,8894,11099,13868,17282,10297,17732,17721,11422,17724,11986,6025,17375,15549,9282,1165,12426,15668,14292,17730,14208,17736,461,12326, 44514611,12419,11985,17722,11005,6926,14617,6560,3617,12353,11532,12355,10757,17616,14736,643,9208,745,9210,9181,8952,8069,2071,17448,14158,14213,17433,17438,15302,17593,12400,6331,327,15347,17089,13481,14175,17151,11994,16877,10721,1675,17792,16995,17120,15886,15879,16998,743,1058,12792,13732,14134,7290,738,2119,16046,5219,17548,12043,13340,13501,17151,2155,9998,17099,6394,15311,17443,4260,1058,17810,17020,15962,1839,2221,15020,322,97,2155,16681,7459,7860,1839,17105,6454,15499,3977,17831,3343,7881, 44616098,401,13450,5834,17833,16366,7199,11482,3737,17026,5282,11564,6696,17813,17809,16735,2071,5127,16892,13992,17827,11214,3918,6996,17856,108,17848,13097,17844,16799,462,13449,12202,10777,6296,9431,6277,6296,287,1802,360,11565,8005,1839,4413,16650,591,9429,729,8441,15978,4960,17893,626,14555,4723,9692,10179,5515,7579,12831,17873,15096,3857,10299,17869,17871,1592,13985,10690,17803,17859,16692,9282,8836,14956,9601,12046,16213,13226,14959,7292,16472,17205,17872,12056,16098,17842,13097,17673,17828,1655, 44715328,14303,17714,17849,16293,16596,684,1839,15020,17846,11565,17911,3027,16710,16328,14360,17903,16050,5926,17919,13500,16920,6452,17356,17840,2010,2119,12061,17113,7794,14061,16596,10473,17948,9311,17149,10423,17831,17838,14037,17961,5160,8306,4082,7899,17821,17473,4238,17910,17858,12831,7287,12794,3191,5221,1839,17419,12335,1285,1567,17786,1603,17032,10874,1839,15609,17267,13520,4850,10132,15448,368,6112,11945,10354,454,17975,14021,16332,17938,17903,17804,16468,3189,17807,15390,16752,14264,17331, 44812475,17086,13901,13910,11455,13912,11907,8825,16867,17580,6291,14855,17212,16887,5475,11267,17801,17340,15591,15520,16904,16199,14129,6491,17568,7392,14215,17096,17184,11115,10854,16022,5349,16038,14228,11724,2622,14276,5029,13975,498,17779,9282,17777,15221,16204,5558,13346,14790,15086,5763,17495,10295,14793,13264,14796,5577,14798,8333,11701,13823,13006,8456,13012,5969,13011,17273,17276,13014,2881,9057,13017,5439,16610,14212,9667,13426,6879,9678,16202,17757,365,14602,345,11963,9182,2351,
44817182,10122, 4496362,11489,8209,11940,1379,102,10105,8135,11706,9998,17315,17449,8628,18110,17774,11158,17259,14451,17242,4316,17244,17312,16821,15550,18118,79,18120,3733,5530,1112,16061,9084,18139,18141,4666,18122,2874,7285,8996,1754,8999,13285,5244,18147,18121,5265,9378,18151,12640,17219,10406,2857,2968,18088,18092,17058,18089,8462,17275,8462,9059,6572,14588,14603,18128,15662,17670,18158,18142,18160,18091,5038,17860,5417,6918,11637,411,6529,394,17012,15305,17630,10023,10751,10011,335,11602,11598,323,14580,14174, 45011802,1019,9021,17643,13474,17784,17801,17549,9192,10651,12678,14609,12238,9355,4227,15433,4231,17161,9596,17310,9489,16924,16921,17559,16961,18069,15051,11222,3970,9636,18103,12385,5651,10299,17767,14920,949,6317,9209,9211,18129,12142,6926,18237,11289,10855,16989,379,18193,14293,17338,5673,14310,12378,10569,11977,14377,12968,14379,10519,6579,10903,15011,13061,3825,1939,457,2521,11946,15557,642,10660,18262,14346,14315,11972,11961,10457,12407,14334,13373,11968,14316,14301,13378,14381,11984,10138,10213, 45110140,18292,10142,10332,4728,18267,16739,9195,619,18270,3827,9297,11946,11735,18277,18287,14337,18280,14339,10553,4756,11954,18261,18310,13375,18289,10440,14349,13823,14352,15945,11751,7180,8849,18300,11681,13657,8526,16325,14373,18309,14336,18319,18264,14302,1091,18192,381,17001,18253,18342,18282,11364,831,16674,10558,14345,10561,18351,13378,4534,555,18329,17663,17332,11252,11809,14389,17793,5074,10730,14867,16868,10730,10737,18037,14887,18039,5444,16889,12E3,16843,17608,14406,11864,17611,8138,413, 45218276,11381,18334,10849,18347,6597,9577,1502,17084,6514,15292,18164,13124,11512,13005,13008,17270,5976,11708,18096,18173,5977,8467,1598,14564,17124,17308,18106,9516,17359,4307,17459,17895,9432,11744,11233,8644,15946,17466,6531,1088,8753,15613,11017,11987,18296,14562,15788,18295,8681,17004,4491,14655,14107,15628,11991,10918,14868,11253,17796,16886,9139,17585,12392,14918,17595,9888,9571,15692,8138,15771,12408,8670,11674,9146,16932,14572,5082,16930,17734,13851,9579,17123,6897,18205,11991,16994,18443, 4535855,11254,9537,14116,17731,13839,17800,17646,6609,9411,16281,747,3695,8388,8384,15547,16042,10863,17499,8394,14274,15108,18063,34,14278,1700,13965,16958,5100,15317,18415,13970,15321,537,11656,8401,6158,11659,16573,11739,13501,11253,8642,17461,15400,9434,17374,11730,11872,15843,9750,18135,570,11670,18498,17538,12464,17038,8112,16072,11247,16074,17983,4301,16052,16897,11772,9474,577,8481,11776,8484,18236,12354,17036,15292,6234,15513,99,9167,17524,15456,17526,17408,17455,11781,1015,18249,17452,17366, 45413450,17078,8705,18544,17074,15714,14869,13450,18559,11403,18564,12356,17417,11729,3857,5091,729,18111,18049,17093,10358,9628,6874,16101,1991,18571,5638,8306,9628,17466,2035,885,99,11963,18551,5192,17098,8306,5314,501,431,18562,296,18249,10271,18566,3405,3843,729,6055,2348,16905,12575,9820,10311,18550,17716,14051,12129,4570,17146,262,17551,5291,9831,4549,4808,18612,15431,18555,9385,15580,2786,18558,18630,11550,686,10311,18594,18617,17525,5931,6986,18578,9408,5411,3724,17430,5904,11074,17783,14164, 45517996,4314,15642,6405,268,3843,13874,14432,1429,17574,17782,11856,17195,11049,3643,11560,10686,14424,14920,18231,1115,11217,709,1604,10678,1358,18525,17485,11772,18076,16245,10069,18660,2351,11551,17728,649,461,18662,9672,14437,14565,6880,15911,1723,10828,10641,17395,11402,15292,17146,16031,18228,17486,16054,17651,850,17155,594,1099,453,604,11185,10908,10389,17972,10472,15637,4837,3938,17160,11031,6452,13934,10127,18415,18726,626,16610,11951,15236,18491,10001,9673,17634,11405,1502,10083,5490,86,2727, 4567627,339,5887,10026,4353,3069,13006,18145,14250,4728,1516,6024,18556,12575,965,323,17678,13520,684,279,745,982,3071,823,9042,277,11946,15568,14555,17359,14298,18338,4071,10663,10548,18339,3680,18490,14225,10265,10237,65,14828,1847,16950,16187,6871,10397,11666,10697,12575,15432,10658,10522,18785,2058,18788,10423,4124,77,18781,16294,18320,10175,18775,18321,3966,6149,3593,14822,9992,4193,3590,3592,282,16255,9992,2800,18816,18812,3595,15205,4728,18793,14262,3839,10529,5677,18798,18787,15504,8478,5793, 457117,17184,8820,6332,11100,11961,10629,6377,18804,18285,14376,18318,14378,18312,14348,474,16130,259,17542,14029,14371,2099,16274,10282,18227,18224,18229,17444,4124,11136,2539,1875,4860,4851,10609,18850,18263,18872,10519,10699,10430,674,18832,1591,17432,13338,311,304,14531,7610,3797,4663,4304,9088,1756,13490,6797,10405,9094,13630,8948,327,9194,8176,2639,643,577,114,15796,17558,18706,8887,14531,11569,112,6639,1588,432,18827,14641,11951,367,18599,18759,13717,16740,91,18762,3819,18765,3370,6657,18768, 45813112,18865,120,982,18867,4849,11666,18335,11913,18279,18353,18809,10553,18843,8282,18791,18870,15071,18806,10647,18938,18779,4847,18868,9373,258,1875,1809,5316,2012,11942,3833,6330,6717,18959,5541,18961,3551,13069,3839,18879,18800,18835,6535,16914,3561,5956,4307,511,16268,545,6717,18978,866,631,3305,4077,18945,293,18970,
45818834,10286,15829,17069,18053,12518,11076,6825,1210,5693,5513,282,107,2389,18910,18912,10421,14259,18835,8849,8341,4553,108,18855,14370,17150,4234,11627,18481,5739,18987,10036,18772, 459626,15501,11891,18437,6280,17217,12157,11085,18758,1009,4562,17221,16877,11085,17588,10744,3795,14203,14853,2867,17903,67,14820,4232,17797,11046,16852,386,15648,17596,256,5736,65,12135,14753,354,11041,15778,10970,4599,15864,17618,16850,17296,9777,15838,5342,14716,8964,14828,354,18409,17617,10951,15812,996,1721,58,40,41,32,61,62,1417,3972,11745,15838,846,343,8790,14716,18005,354,262,17714,15856,15824,10970,18374,19075,14707,15834,17290,14951,15755,14900,327,115,78,8314,14716,311,19096,17903,18140, 4604837,19109,19098,11389,5159,19063,19076,19104,17303,19106,19089,9089,19110,19112,15759,569,18374,15838,19042,6383,14716,4220,14660,19115,14606,273,10950,19103,2225,19134,10803,19136,8575,10960,5736,66,10409,19129,19111,18488,11354,19099,1816,2786,18996,15665,17601,19077,15598,8621,19128,19109,19156,6029,10812,5784,8234,17337,18410,18043,5836,18050,4719,18046,15358,17390,4790,8612,17350,12253,17352,17343,1524,17345,3056,17347,9586,17131,5202,17106,17977,18322,5316,17361,17460,11749,17364,17380,18560, 46111565,17368,19200,8643,17362,19203,15402,15394,8639,10318,17372,18514,18517,2529,8649,15553,19178,8653,15339,14088,17922,17391,11140,11640,5984,275,12164,11476,1571,15459,15887,18656,13932,6870,8426,18235,3102,1485,14560,542,17954,9450,9176,8796,15921,292,742,16981,10789,15558,1673,18628,9463,12089,858,1485,17400,14153,9635,17562,9659,9216,19245,11170,17675,9291,1485,19250,15346,19252,16980,13583,9216,19263,15079,9660,13676,9635,1466,107,16524,17022,18532,16898,19260,1018,1485,17476,2255,1485,17479, 46218188,11046,17015,14119,18465,17033,10288,18740,15292,18258,13285,18350,18278,18352,19310,13378,19307,18315,18937,11959,18776,14317,18778,19313,2993,18943,1057,1887,14486,10446,18847,18336,18849,18940,10615,2417,16041,17743,15216,4191,16515,15767,14487,18948,11970,18848,10665,10085,14342,18846,12966,19312,10515,19341,1570,18773,10337,18324,18514,18420,17978,14361,10382,12655,13929,9201,19013,14247,4301,14372,18439,18947,18808,18807,18874,18779,18687,16064,8552,11982,3734,18428,14383,19378,14385,19026, 46312150,15481,19029,11353,14490,259,10751,18369,10725,14388,18473,18367,6535,18366,18035,8581,1564,19391,18474,18693,6606,18375,19052,18377,17758,14407,15725,1604,15901,16060,17232,19060,12559,14404,4458,476,15347,17662,551,97,9964,19415,296,9313,10842,10509,10845,18384,19368,18454,18200,15353,2727,327,9699,9684,9479,10026,3852,4261,83,9691,625,9752,9381,8286,13003,10390,19442,16997,18415,19452,44,102,10469,97,14479,19438,14624,15576,6371,125,19210,5195,15755,4483,9651,9274,443,13417,2085,3821,7114]}); 464define("iL",["require","es","pw"],function(a){function f(e){var n=b[e];if(n)return n;if("string"!=typeof e)return b[e]=function(){return e};var q=(n=d.exec(e))&&parseFloat(n[1]);switch(n&&n[4]&&n[4].toLowerCase()){case "vw":return b[e]=function(p){return p*q};case "vh":return b[e]=function(p,r){return r*q};case "vmin":return b[e]=function(p,r,t){return t*q};case "vmax":return b[e]=function(p,r,t,u){return u*q};default:return b[e]=function(){return e}}}function l(e){this.kb=e;this.RK=this.RK.bind(this); 465this.kb.bind(c.tc,this.Ic,this,!0);this.Iea=new Map;this.yW=[];this.Ic()}function m(e,n,q,p){var r={};r.instance=e;r.Qab=n;r.name=q;r.value=p;h.push(r);g||(g=setTimeout(function(){g=null;k()},100))}function k(){g&&(clearTimeout(g),g=null);var e=h;h=[];e.forEach(function(n){l.H1(n.instance,n.Qab,n.name,n.value)})}a("es");var c=a("pw");l.prototype.Ic=function(){this.i2a();this.Iea.forEach(function(e){for(var n in e)this.RK(e[n])}.bind(this));this.yW.forEach(this.RK)};l.prototype.i2a=function(){var e= 466this.kb.Cb();this.z1=.01*this.kb.Za();this.p1=.01*e;this.KAa=Math.min(this.z1,this.p1);this.JAa=Math.max(this.z1,this.p1)};l.prototype.RK=function(e){e(this.z1,this.p1,this.KAa,this.JAa)};l.prototype.J2a=function(e){this.yW.push(e)};l.prototype.e9a=function(e){e=this.yW.indexOf(e);0<=e&&this.yW.splice(e,1)};l.prototype.H1=function(e,n,q,p){function r(u,v,w,x){n.call(e,q,t(u,v,w,x))}var t=f(p);(p=this.Iea.get(e))||this.Iea.set(e,p={});p[q]=r;r(this.z1,this.p1,this.KAa,this.JAa)};l.ld=new Map;l.get= 467function(e){var n=l.ld.get(e);n||(n=new l(e),l.ld.set(e,n));return n};l.H1=function(e,n,q,p){var r=e.get&&e.get("application")||e.Db&&e.Db();r?(k(),l.get(r).H1(e,n,q,p)):m(e,n,q,p)};var h=[],g=null,b={},d=/^\s*((\+|\-)?(\d*\.)?\d+)\s*(vmin|vmax|vw|vh|px|%)?\s*$/i;return l}); 468define("mQ",["require","exports"],function(){return function(){function a(){}
468a.Ria=function(f){if(this.lg("crossorigin",!1))return!0;if(this.m3(f)){var l=window.location.protocol+"//"+window.location.hostname;window.location.port&&(l+=":"+window.location.port);return f.substring(0,l.length)!=l}return!1};a.Hy=function(f,l){if(this.y7a(f))f=window.location.protocol+f;else if(!this.m3(f)&&!this.vB(f)){if(l)if(0==f.indexOf("/")){var m=l.indexOf("//"),k="";0<=m&&(k=l.substr(0,m+2),l=l.substr(m+2));m=l.indexOf("/"); 4690<m&&(l=l.substr(0,m));f=k+l+f}else f=l+f;this.Bn.href=f;f=this.Bn.href}return f};a.j7a=function(){switch(window.location.protocol){case "http:":case "https:":return!0;default:return!1}};a.y7a=function(f){return 0===f.indexOf("//")};a.m3=function(f){if(!f)return!1;var l=f.indexOf("://");return 3<=l&&5>=l?!0:0==f.indexOf("filesystem:")};a.s7a=function(f){return f&&0<=f.indexOf("/pdfjs/")};a.getDirectory=function(f){f=this.Hy(f);f=f.split("?")[0];f=f.split("/");1<f.length&&f.splice(f.length-1,1);return f.join("/")+ 470"/"};a.Cj=function(f){this.CJ||(this.CJ=this.nsa());return void 0!==this.CJ[f]};a.getQueryParameter=function(f){this.CJ||(this.CJ=this.nsa());return this.CJ[f]};a.hJa=function(f,l){var m=f.split(l);f=m[0];(m=m.slice(1).join(l))&&(m=l+m);return[f,m]};a.gB=function(f,l){if(!l)return f;var m=this.hJa(f,"#"),k=m[1];m=this.hJa(m[0],"?");var c=m[0];m=m[1];return 0<=m.indexOf(l)?f:c+(m+(m?"&":"?")+l)+k};a.parse=function(f){this.Bn.href=f;f={};f.protocol=this.Bn.protocol;f.hostname=this.Bn.hostname;f.port= 471this.Bn.port;f.pathname=this.Bn.pathname;f.search=this.Bn.search;f.hash=this.Bn.hash;f.host=this.Bn.host;var l=f.pathname?f.pathname.lastIndexOf("."):-1;f.H4a=0<=l?f.pathname.substr(l).toLowerCase():"";return f};a.getExtension=function(f){f=this.parse(f).pathname;var l=f.lastIndexOf(".");return 0<=l?f.substr(l,f.length):""};a.lg=function(f,l){f=(this.getQueryParameter(f)||"").toLowerCase();return this.H8a(f,l)};a.H8a=function(f,l){switch(f){case "false":case "0":case "no":case "n":return!1;case "true":case "1":case "yes":case "y":return!0; 472default:return l}};a.jDa=function(f,l){f=parseInt(this.getQueryParameter(f));return isNaN(f)?l:f};a.N2=function(f){f=parseFloat(this.getQueryParameter(f));return isNaN(f)?void 0:f};a.nsa=function(){for(var f={},l=window.location.hash.substring(1).split("&").concat(window.location.search.substring(1).split("&")),m=0;m<l.length;m++){var k=l[m].split("="),c=decodeURIComponent(k[0]);k=1<k.length?decodeURIComponent(k[1]):null;f[c]=k}return f};a.Bn=document.createElement("a");a.CJ=null;a.vB=function(f){return f&& 4730==f.indexOf("data:")};return a}()}); 474define("lQ",["require","exports"],function(){function a(g,b){function d(){}d.prototype=b.prototype;g.prototype=new d;g.prototype.constructor=g}function f(g,b){b.forEach(function(d){Object.getOwnPropertyNames(d).forEach(function(e){g.prototype[e]=d[e]})})}function l(g){setTimeout(function(){try{g()}catch(b){k("Deferred callback failed",b)}},1)}function m(g){if(g!=h){h=g;try{if(c){var b=document.createElement("div");b.innerText=g;c.insertBefore(b,c.childNodes[0]||null)}else console.log(g)}catch(d){}}} 475function k(g,b){var d=[];d.push("Exception: "+g);b.message?(d.push(b.message),d.push(b.stack)):d.push(b);m(d.join("\n"))}var c,h;return{L1:f,s4a:function(g){for(;;){var b=g.pop();if(!b)break;if(b==g.length)break;g.splice(b,1)}b=[];for(var d=0;256>d;d+=1)b[d]=String.fromCharCode(d);var e=256,n=String.fromCharCode(g[0]),q=n;for(d=1;d<g.length;d+=1){var p=g[d];p=b[p]?b[p]:n+n.charAt(0);q+=p;b[e++]=n+p.charAt(0);n=p}return JSON.parse(q)},defer:l,deferred:function(g,b){return function(){var d=arguments; 476l(function(){g.apply(b||window,d)})}},extend:function(){var g=arguments[arguments.length-1],b=Array.prototype.slice.call(arguments,1,arguments.length-1);a(g,arguments[0]);f(g,b);return g},F4a:function(g){c=document.createElement("div");c.style.overflow="auto";c.style.position="absolute";c.style.bottom="0";c.style.left="0";c.style.right="0";c.style.padding="20px";c.style.fontFamily="Verdana";c.style.backgroundColor="#FFFFFF";c.style.color="#000000";c.style.zIndex="100";g?c.style.top="0":(c.style.width= 477"40%",c.style.right="0",c.style.left="auto",c.style.height="50%",c.style.filter="alpha(opacity=60)",c.style.opacity="0.6");document.body.appendChild(c);
477console.log=function(b){m(b)}},log:m,AT:k,zp:function(g,b){var d=!1;return function(){d||(d=!0,l(function(){d=!1;g.apply(b||window)}))}},Y8a:function(g){for(var b=[],d=0;d<g;d++)b.push(Math.floor(16*Math.random()).toString(16));return b.join("")},toArray:function(g){return void 0===g||null===g?[]:Array.isArray(g)?g:[g]},I6a:function(g,b){if(g.length!= 478b.length)return!1;for(var d=0;d<g.length;d++)if(g[d]!=b[d])return!1;return!0},isString:function(g){var b="[object "+g+"]";return function(d){return Object.prototype.toString.call(d)===b}}("String")}}); 479define("oj","require jquery.mod es bu iL mQ lQ".split(" "),function(a){function f(b,d,e){this.qD=b;this.FN=e;this.$Z=d.parent;this.gVa=d.isValidRoot||!1;this.Zca={};this.Tca=[];this.wwa=[];this.vwa=[];this.bX={};b=d.properties||{};for(var n in b)e=b[n],this.Zca[n]=e.type,e.isUrl&&this.wwa.push(n),e.isSize&&this.vwa.push(n),void 0!==e.order&&(this.Tca[e.order]=n),void 0!==e["default"]&&(this.bX[n]=e["default"]);this.twa=[];this.uwa=[];d=d.events||{};for(var q in d)d[q].isDeferred?this.twa.push(q): 480this.uwa.push(q);this.gA=this.Qz=this.fO=this.m0=this.dF=this.h1=this.vF=this.wI=this.VH=this.qN=void 0;this.kta=!1}var l=a("jquery.mod"),m=a("es"),k=a("bu"),c=a("iL"),h=a("mQ"),g=a("lQ");k=g.s4a(k);f.prototype.Q5a=function(){if(this.$Z)return f.Xi(this.$Z)};f.prototype.WF=function(){return this.qD};f.prototype.XS=function(){return this.dA()?this.ow().XS().concat(this.qD):[this.qD]};f.prototype.hasAttributes=function(){return 0<this.getAttributeNames().length};f.prototype.hasAttribute=function(b){return this.eia(b)? 481!0:!1};f.prototype.getAttributeNames=function(){void 0==this.qN&&this.lqa();return this.qN};f.prototype.vDa=function(){if(this.Tca)return this.Tca;if(this.dA())this.ow().vDa();else return[]};f.prototype.$Ca=function(){if(this.wI)return this.wI;this.wI={};if(this.dA()){var b=this.ow().$Ca(),d;for(d in b)this.wI[d]=b[d]}if(this.bX)for(d in this.bX)this.wI[d]=this.bX[d];return this.wI};f.prototype.eia=function(b){void 0==this.VH&&this.lqa();return this.VH[b]};f.prototype.G6a=function(){return 0<this.IDa().length}; 482f.prototype.IDa=function(){void 0==this.vF&&this.tqa();return this.vF};f.prototype.e6a=function(){void 0==this.h1&&this.tqa();return this.h1};f.prototype.E6a=function(){return 0<this.DDa().length};f.prototype.DDa=function(){void 0==this.dF&&this.sqa();return this.dF};f.prototype.c6a=function(){void 0==this.m0&&this.sqa();return this.m0};f.prototype.r6a=function(){return 0<this.iia().length};f.prototype.XDa=function(b){void 0==this.Qz&&this.nI();return-1!=this.Qz.indexOf(b)};f.prototype.iia=function(){void 0== 483this.Qz&&this.nI();return this.Qz};f.prototype.w6a=function(){return 0<this.pia().length};f.prototype.YDa=function(b){void 0==this.gA&&this.nI();return-1!=this.gA.indexOf(b)};f.prototype.pia=function(){void 0==this.gA&&this.nI();return this.gA};f.prototype.t6a=function(b){void 0==this.fO&&this.nI();return-1!=this.fO.indexOf(b)};f.prototype.u5a=function(){void 0==this.fO&&this.nI();return this.fO};f.prototype.kDa=function(){return this.gVa||this.dA()&&this.ow().kDa()};f.prototype.zm=function(b,d,e, 484n){this.GXa(d,e);var q=this.FN;var p=n&&0<n.length?new (g.extend(q,function(){q.apply(this,n)})):new q;p.set("application",b);p.set("baseDirectoy",d);p.set("queryStringParameters",e);p.set("class",this.WF());return p};f.prototype.GXa=function(b,d){this.kta||(this.kta=!0,this.TQa(b,d),this.FRa(),this.oNa())};f.prototype.TQa=function(b,d){if(this.G6a()||this.E6a()){var e=this.FN.prototype,n=this.e6a(),q=this.c6a(),p=e.set;e.set=function(r,t){n[r]?(!t||h.vB(t)||h.m3(t)||h.s7a(t)||(t=h.gB(h.Hy(t,b),d)), 485p.call(this,r,t)):q[r]?c.H1(this,p,r,t):p.call(this,r,t)}}};f.prototype.oNa=function(){var b=this.FN.prototype;this.getAttributeNames().forEach(function(d){Object.defineProperty(b,d,{get:function(){return this.get(d)},set:function(e){this.set(d,e)},enumerable:!0,configurable:!0})})};f.prototype.FRa=function(){var b=this.FN.prototype,d=this;this.hasAttributes()&&(b.set=b.set,b.get=b.get);if(this.r6a()||this.w6a())b.bind=b.bind,b.getBindings=b.jL,b.hasBindings=b.Z2,b.trigger=b.trigger,b.unbind=b.unbind; 486b.getClassName=function(){return d.WF()};b.getClassPath=function(){return d.XS()};b.getAttributeNames=function(){return d.getAttributeNames()};b.getEventNames=function(){return d.u5a()};b.hasEvent=function(e){return d.t6a(e)}};f.prototype.lqa=function(){this.qN=[];this.VH={};for(var b in this.Zca)this.qN.push(b),this.VH[b]=f.U$(this.Zca[b]);if(this.dA())for(var d=this.ow(),e=d.getAttributeNames(),n=0;n<e.length;n++)b=e[n],this.VH[b]||(this.qN.push(b),this.VH[b]=d.eia(b))};f.prototype.tqa=function(){this.vF= 487this.wwa.slice();this.dA()&&(this.vF=m(this.vF).union(this.ow().IDa()));this.h1={};for(var b=0;b<this.vF.length;b++)this.h1[this.vF[b]]=!0};f.prototype.sqa=function(){this.dF=this.vwa.slice();this.dA()&&(this.dF=m(this.dF).union(this.ow().DDa()));this.m0={};for(var b=0;b<this.dF.length;b++)this.m0[this.dF[b]]=!0};f.prototype.nI=function(){this.Qz=this.twa.slice();this.gA=this.uwa.slice();this.dA()&&(this.Qz=m(this.Qz).union(this.ow().iia()),this.gA=m(this.gA).union(this.ow().pia()));this.fO=m(this.Qz).union(this.gA)}; 488f.prototype.dA=function(){return this.$Z?!0:!1};f.prototype.ow=function(){return f.Xi(this.$Z)};f.N8=new Map;f.Npa=new Map;f.define=function(b,d,e){d=g.extend(d,function(){e.apply(this,arguments);var q=n.$Ca(),p;for(p in q)this.set(p,q[p])});var n=new f(b,k[b],d);f.N8.set(b,n);f.Npa.set(d,n);return d};f.getAll=function(){var b=[];f.N8.forEach(function(d){b.push(d)});return b};f.Xi=function(b){return f.N8.get(b)};f.d5a=function(b){return f.Npa.get(b)};f.Ja=function(b,d){b=f.Xi(b);if(m(d).isNull())return!0; 489if(d&&d.constructor)for(d=f.d5a(d.constructor);d;){if(d==b)return!0;d=d.Q5a()}return!1};f.U$=function(b){switch(b){case "string":case "code":return f.W_a;case "number":return f.LVa;case "bool":return f.KOa;case "color":return f.LPa;case "percent":return f.qXa;case "size":return f.p_a;case "identifier":return f.qUa;case "array":return f.Soa;case "canvas":return f.iPa;case "img":return f.tUa;case "dict":return f.rXa;case "*":return f.uRa;default:if(f.PUa(b))switch(f.ASa(b)){case "array":var d=f.U$(f.Era(b)); 490return function(q,p){q=f.Soa(q,p);for(var r=0;r<q.length;r++)q[r]=d(q[r],p);return q};case "enum":var e=f.Fra(b);return f.CSa(e);case "or":e=f.Fra(b);var n=m(e).map(function(q){return f.U$(q)});return function(q,p){for(var r=0;r<n.length;r++)try{return n[r](q,p)}catch(t){}throw"Invalid value";};default:throw"Invalid type validator definition: "+b;}else return f.mn(function(q){return f.Ja(b,q)})}};f.PUa=function(b){return 0<=b.indexOf("[")&&b.lastIndexOf("]")==b.length-1};f.ASa=function(b){return b.substring(0, 491b.indexOf("["))};f.Era=function(b){return b.substring(b.indexOf("[")+1,b.lastIndexOf("]"))};f.Fra=function(b){b=f.Era(b);for(var d=[],e="",n=0,q=0;q<b.length;q++){var p=b.charAt(q);e+=p;switch(p){case "[":n++;break;case "]":n--;break;case ",":0==n&&(d.push(e.substr(0,e.length-1)),e="")}}""!=e&&d.push(e);return m(d).map(function(r){return f.P0a(r)})};f.P0a=function(b){return b.replace(/^\s+|\s+$/g,"")};f.mn=function(b){return function(d,e){if(!b(d)){if("string"!=typeof d)throw"Invalid value";d=f.DRa(d, 492e);if(!b(d))throw"Invalid value";}return d}};f.DRa=function(b,d){return function(){return eval(b)}.call(d)};f.uRa=function(b){return b};f.LVa=f.mn(function(b){return"[object Number]"==Object.prototype.toString.call(b)});f.W_a=f.mn(function(b){return"string"==typeof b||null===b});f.KOa=f.mn(function(b){return!0===b||!1===b});f.Soa=f.mn(function(b){return"[object Array]"==Object.prototype.toString.call(b)});f.iPa=f.mn(function(b){return b&&"CANVAS"==b.tagName});f.tUa=f.mn(function(b){return b&&"IMG"== 493b.tagName});f.CSa=function(b){return f.mn(function(d){return-1!=b.indexOf(d)})};f.wX=function(b,d){return m(b).isString()&&d.test(b)};f.qUa=f.mn(function(b){return f.wX(b,RegExp("^[a-z][a-z0-9_]*$","i"))});f.qXa=f.mn(function(b){return f.wX(b,RegExp("^\\s*([+-]?\\d+\\.?\\d*)%\\s*$","i"))});f.p_a=f.mn(function(b){return f.wX(b,RegExp("^\\s*([+-]?\\d+\\.?\\d*)\\s*((vw)|(vh)|(vmin)|(vmax)|(px))\\s*$","i"))});f.LPa=f.mn(function(b){return f.wX(b,RegExp("^#[0-9a-f]{6}$","i"))});f.rXa=f.mn(function(b){try{return l.isPlainObject(b)}catch(d){return!1}}); 494window.TDV.PlayerAPI.getClassByName=function(b){return f.Xi(b).FN};return f}); 495define("jj",["require"],function(){function a(){c[0]=c[1]=c[2]=c[3]=c[4]=c[5]=c[6]=c[7]=c[8]=c[9]=c[10]=c[11]=c[12]=c[13]=c[14]=c[15]=c[16]=0;this.jha=c;this.hT=1779033703;this.iT=3144134277;this.jT=1013904242;this.kT=2773480762;this.lT=1359893119;this.mT=2600822924;this.nT=528734635;this.oT=1541459225;this.block=this.start=this.kB=this.Eia=0;this.aia=this.b3=!1;this.first=!0}var f="0123456789abcdef".split(""),l=[-2147483648,8388608,32768,128],m=[24,16,8,0],k=[1116352408,1899447441,3049323471,3921009573, 496961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556, 497883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756
497734187,3204031479,3329325298],c=[];a.prototype.update=function(h){if(!this.aia){for(var g,b=0,d,e=h.length,n=this.jha;b<e;){this.b3&&(this.b3=!1,n[0]=this.block,n[16]=n[1]=n[2]=n[3]=n[4]=n[5]=n[6]=n[7]=n[8]=n[9]=n[10]=n[11]=n[12]=n[13]=n[14]=n[15]=0);for(d=this.start;b<e&&64>d;++b)g=h.charCodeAt(b),128>g?n[d>>2]|=g<<m[d++&3]:(2048>g?n[d>>2]|=(192|g>>6)<<m[d++&3]:(55296>g||57344<=g?n[d>> 4982]|=(224|g>>12)<<m[d++&3]:(g=65536+((g&1023)<<10|h.charCodeAt(++b)&1023),n[d>>2]|=(240|g>>18)<<m[d++&3],n[d>>2]|=(128|g>>12&63)<<m[d++&3]),n[d>>2]|=(128|g>>6&63)<<m[d++&3]),n[d>>2]|=(128|g&63)<<m[d++&3]);this.C7a=d;this.kB+=d-this.start;64<=d?(this.block=n[16],this.start=d-64,this.hash(),this.b3=!0):this.start=d}4294967295<this.kB&&(this.Eia+=this.kB/4294967296<<0,this.kB%=4294967296);return this}};a.prototype.CCa=function(){if(!this.aia){this.aia=!0;var h=this.jha,g=this.C7a;h[16]=this.block;h[g>> 4992]|=l[g&3];this.block=h[16];56<=g&&(this.b3||this.hash(),h[0]=this.block,h[16]=h[1]=h[2]=h[3]=h[4]=h[5]=h[6]=h[7]=h[8]=h[9]=h[10]=h[11]=h[12]=h[13]=h[14]=h[15]=0);h[14]=this.Eia<<3|this.kB>>>29;h[15]=this.kB<<3;this.hash()}};a.prototype.hash=function(){var h=this.hT,g=this.iT,b=this.jT,d=this.kT,e=this.lT,n=this.mT,q=this.nT,p=this.oT,r=this.jha,t;for(t=16;64>t;++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= 500g&b;for(t=0;64>t;t+=4){if(this.first){var x=704751109;u=r[0]-210244248;p=u-1521486534<<0;d=u+143694565<<0;this.first=!1}else{v=(h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10);u=(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7);x=h&g;var y=x^h&b^w;var z=e&n^~e&q;u=p+u+z+k[t]+r[t];v+=y;p=d+u<<0;d=u+v<<0}v=(d>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10);u=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7);w=d&h;y=w^d&g^x;z=p&e^~p&n;u=q+u+z+k[t+1]+r[t+1];v+=y;q=b+u<<0;b=u+v<<0;v=(b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10); 501u=(q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7);x=b&d;y=x^b&h^w;z=q&p^~q&e;u=n+u+z+k[t+2]+r[t+2];v+=y;n=g+u<<0;g=u+v<<0;v=(g>>>2|g<<30)^(g>>>13|g<<19)^(g>>>22|g<<10);u=(n>>>6|n<<26)^(n>>>11|n<<21)^(n>>>25|n<<7);w=g&b;y=w^g&d^x;z=n&q^~n&p;u=e+u+z+k[t+3]+r[t+3];v+=y;e=h+u<<0;h=u+v<<0}this.hT=this.hT+h<<0;this.iT=this.iT+g<<0;this.jT=this.jT+b<<0;this.kT=this.kT+d<<0;this.lT=this.lT+e<<0;this.mT=this.mT+n<<0;this.nT=this.nT+q<<0;this.oT=this.oT+p<<0};a.prototype.J6a=function(){this.CCa();var h=this.hT, 502g=this.iT,b=this.jT,d=this.kT,e=this.lT,n=this.mT,q=this.nT,p=this.oT;return f[h>>28&15]+f[h>>24&15]+f[h>>20&15]+f[h>>16&15]+f[h>>12&15]+f[h>>8&15]+f[h>>4&15]+f[h&15]+f[g>>28&15]+f[g>>24&15]+f[g>>20&15]+f[g>>16&15]+f[g>>12&15]+f[g>>8&15]+f[g>>4&15]+f[g&15]+f[b>>28&15]+f[b>>24&15]+f[b>>20&15]+f[b>>16&15]+f[b>>12&15]+f[b>>8&15]+f[b>>4&15]+f[b&15]+f[d>>28&15]+f[d>>24&15]+f[d>>20&15]+f[d>>16&15]+f[d>>12&15]+f[d>>8&15]+f[d>>4&15]+f[d&15]+f[e>>28&15]+f[e>>24&15]+f[e>>20&15]+f[e>>16&15]+f[e>>12&15]+f[e>> 5038&15]+f[e>>4&15]+f[e&15]+f[n>>28&15]+f[n>>24&15]+f[n>>20&15]+f[n>>16&15]+f[n>>12&15]+f[n>>8&15]+f[n>>4&15]+f[n&15]+f[q>>28&15]+f[q>>24&15]+f[q>>20&15]+f[q>>16&15]+f[q>>12&15]+f[q>>8&15]+f[q>>4&15]+f[q&15]+f[p>>28&15]+f[p>>24&15]+f[p>>20&15]+f[p>>16&15]+f[p>>12&15]+f[p>>8&15]+f[p>>4&15]+f[p&15]};a.prototype.digest=function(){this.CCa();var h=this.hT,g=this.iT,b=this.jT,d=this.kT,e=this.lT,n=this.mT,q=this.nT,p=this.oT;return[h>>24&255,h>>16&255,h>>8&255,h&255,g>>24&255,g>>16&255,g>>8&255,g&255,b>> 50424&255,b>>16&255,b>>8&255,b&255,d>>24&255,d>>16&255,d>>8&255,d&255,e>>24&255,e>>16&255,e>>8&255,e&255,n>>24&255,n>>16&255,n>>8&255,n&255,q>>24&255,q>>16&255,q>>8&255,q&255,p>>24&255,p>>16&255,p>>8&255,p&255]};return function(h){return(new a(!0)).update(h).J6a()}}); 505define("cd",["require","jj"],function(a){function f(){for(var c=[[256,"9799e3eb6096a48f515a94324200b7af24251a4131eccf9a2cd65d012a1f5c71"],[1024,"cbab1f6d618e723188cfdb1c7c3f47146e46da4da56030386d85055016afd5d9"],[1E4,"d9c4539649520e3f4a35e5a3331b0fbdc67958dd64ef65a83a75d545413643dd"]],h=0;h<c.length;h++){var g=Array.apply(null,Array(c[h][0])).map((b,d)=>String.fromCharCode(d%256)).join("");if(k(g)!=c[h][1])return!1}return!0}function l(c){var h=Array.isArray(c)?"array":null===c?"null":typeof c;switch(h){case "array":return"["+ 506c.map(l).join(",")+"]";case "object":return"{"+Object.keys(c).sort().map(function(g){return l(g)+":"+l(c[g])}).join(",")+"}";case "boolean":return c?"true":"false";case "number":return c.toFixed(3);case "string":return'"'+c.split('"').join('\\"')+'"';case "null":case "undefined":return h;case "function":return"<"+h+">"}return""}function m(c){return c.map(function(h){return String.fromCharCode(h)}).join("")}var k=a("jj");return{validate:function(c){var h=[104,97,115,104],g=[116,100,118],b=window.location[m([111, 507114,105,103,105,110])],d=c[m(h)];delete c[m(h)];c=m(g)+l(c);c=k(c);g=m(g)+b;g=k(g);return c==d||g==d||!f()}}}); 508define("lT",["require","exports","lQ"],function(a,f,l){function m(){var d=h.length,e=h.splice(0,d);c+=d;for(var n=0;n<d;n++){var q=e[n];if(q)try{q()}catch(p){l.AT("Error in async task",p)}}}var k=0,c=0,h=[],g,b=new Promise(function(d){d()});setInterval(function(){0<h.length&&100<(new Date).getTime()-g&&m()},100);return{RB:function(d,e){void 0===e&&(e=void 0);if(void 0!==e&&0<e)return-1-setTimeout(d,e||1);0==h.length&&(b.then(m),g=(new Date).getTime());k++;h.push(d);return k-1},cancel:function(d){if(0> 509d)clearTimeout(-1-d);else{var e=d-c;if(0<=e){if(!h[e])throw"invalid async handle: "+d;h[e]=null}}}}}); 510define("gD",["require","exports","cI","lT","lQ"],function(a,f,l,m,k){var c=function(){return function(){}}();return function(){function h(){this.Nc={}}h.prototype.o3a=function(g,b,d){this.ipa(g,b,d,!0,b,!0,!1)};h.prototype.bind=function(g,b,d,e,n,q){void 0===q&&(q=!1);return this.ipa(g,b,d,e,n||b,!1,q)};h.prototype.ipa=function(g,b,d,e,n,q,p){if(void 0===g)throw"Event name undefined";if(void 0===b)throw"Event handler undefined";d=d||this;e=e?!0:!1;g in this.Nc||(this.Nc[g]=[]);var r=new c;r.pT=b; 511r.n6a=n||b;r.context=d;r.pEa=e;r.f7a=p;g=this.Nc[g];q?g.unshift(r):g.push(r);return this};h.prototype.unbind=function(g,b,d){g in this.Nc&&(d=d||this,this.Nc[g]=this.Nc[g].filter(function(e){return e.pT!=b||e.context!=d}),0==this.Nc[g].length&&delete this.Nc[g]);return this};h.prototype.Obb=function(g){g in this.Nc&&delete this.Nc[g]};h.prototype.Qla=function(){this.Nc={}};h.prototype.trigger=function(g,b){void 0===b&&(b=void 0);
511"string"==typeof g&&(g=new l(g,b));g.name in this.Nc&&(g.source=this, 512this.Cz(g,!0),g.name in this.Nc&&this.UQa(g));return this};h.prototype.UQa=function(g){h.cX.push({caller:this,event:g});h.L9||(h.L9=!0,m.RB(h.Bqa))};h.Bqa=function(){for(var g=(new Date).getTime()+1E3;h.cX.length;){var b=h.cX.shift();h.prototype.Cz.call(b.caller,b.event,!1);if((new Date).getTime()>g)break}0<h.cX.length?m.RB(h.Bqa,1):h.L9=!1};h.prototype.Z2=function(g){return g in this.Nc};h.prototype.qT=function(g){if(g in this.Nc){g=this.Nc[g];for(var b=0;b<g.length;b++)if(g[b].f7a)return!0}return!1}; 513h.prototype.jL=function(g,b){var d=[];g=this.Nc[g]||[];for(var e=0;e<g.length;e++){var n=g[e];void 0!==b&&n.pEa!=b||d.push(n.n6a)}return d};h.prototype.Cz=function(g,b){var d=this;g.unbindCurrentHandler=function(){q&&d.unbind(g.name,q.pT,q.context)};if(g.name in this.Nc)for(var e=this.Nc[g.name],n=0;n<e.length;n++){var q=e[n];if(q.pEa==b)try{q.pT.call(q.context,g)}catch(p){k.AT("Exception handling event "+g.name,p)}}};h.cX=[];h.L9=!1;return h}()}); 514define("mu",["require","exports","pw","cI","gD"],function(a,f,l,m,k){return function(c){function h(){var g=c.call(this)||this;g.pq={};return g}Z(h,c);h.prototype.set=function(g,b){var d=this;if("object"===typeof g){b=[];var e=0;for(g=Object.entries(g);e<g.length;e++){var n=g[e],q=n[0];n=n[1];this.pq[q]!==n&&(this.pq[q]=n,b.push(q))}b.forEach(function(p){return d.Ffa(p)})}else this.pq[g]!==b&&(this.pq[g]=b,this.Ffa(g))};h.prototype.Ffa=function(g){g=new m(l.F(g));this.trigger(g)};h.prototype.copy= 515function(g){this.pq={};for(var b in g.pq)this.pq[b]=g.pq[b];return this};h.prototype.get=function(g,b){void 0===b&&(b=void 0);g=this.pq[g];return void 0!==g?g:b};return h}(k)}); 516define("fq",["require"],function(){function a(f,l,m){this.set("undefined"!=typeof f?f:0,"undefined"!=typeof l?l:0,"undefined"!=typeof m?m:0)}a.prototype.set=function(f,l,m){this.x=f;this.y=l;this.z=m;return this};a.prototype.clone=function(){return new a(this.x,this.y,this.z)};a.prototype.apply=function(f){f.MK(this)};a.prototype.project=function(f){f.project(this)};return a}); 517define("a",["require","lQ","fq"],function(a){var f=a("lQ"),l=a("fq"),m=f.extend(l,function(k,c,h){l.call(this,k,c,h)});m.prototype.clone=function(){return new m(this.x,this.y,this.z)};m.prototype.Lc=function(){return 0==this.x&&0==this.z?0:-Math.atan2(this.x,this.z)};m.prototype.Kc=function(){return 0==this.y&&0==this.z?0:Math.atan2(this.y,Math.sqrt(this.z*this.z+this.x*this.x))};m.prototype.sia=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)};m.prototype.BU=function(k){k/= 518this.sia();this.x*=k;this.y*=k;this.z*=k;return this};m.prototype.normalize=function(){return this.BU(1)};m.prototype.OF=function(k){return this.x*k.x+this.y*k.y+this.z*k.z};m.prototype.Z1=function(k){var c=this.z*k.x-this.x*k.z,h=this.x*k.y-this.y*k.x;this.x=this.y*k.z-this.z*k.y;this.y=c;this.z=h;return this};m.oB=function(k,c){return new m(c.x-k.x,c.y-k.y,c.z-k.z)};m.K2=function(k,c){k=NaN-k;c=NaN-c;return Math.sqrt(k*k+c*c+NaN)};m.Wx=function(k,c){return new m(Math.cos(c)*Math.sin(k),Math.sin(c), 519Math.cos(c)*Math.cos(k))};return m}); 520define("jQ",["require","mu","oj","a"],function(a){var f=a("mu"),l=a("oj"),m=a("a");a=l.define("AdjacentPanorama",f,function(){f.call(this);this.Cga=this.$v=void 0});a.prototype.bDa=function(){if(void 0===this.$v){for(this.$v=this.Xra()-this.get("yaw");180<this.$v;)this.$v-=360;for(;-180>this.$v;)this.$v+=360}return this.$v};a.prototype.t5a=function(){void 0===this.Cga&&(this.Cga=m.Wx(this.Xra()*Math.PI/180,0));return this.Cga};a.prototype.v3a=function(){return void 0!==this.get("yaw")&&void 0!==this.get("backwardYaw")}; 521a.prototype.Xra=function(){return this.get("backwardYaw")-180};return a});define("iy",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("AmbientLight",f,function(){f.call(this)})}); 522define("ft",["require","mu","oj"],function(a){var f=a("mu");a=a("oj").define("Model3DPostprocessing",f,function(){f.call(this)});a.prototype.aC=function(l){this.kp!==l&&(this.kp=l,this.Tza())};a.prototype.bo=function(l){this.kJ!==l&&(this.kJ=l,this.Tza())};a.prototype.Tza=function(){this.set("disabled",this.kJ&&this.get("disableWhileMoving")||this.kp&&this.get("disableWhileUserInteracting"))};return a}); 523define("or",["require","oj","ft"],function(a){var f=a("oj"),l=a("ft");return f.define("AmbientOcclusionModel3DPostprocessing",l,function(){l.call(this)})});define("lt",["require","exports"],function(){return{V:"stopped",PLAYING:"playing",Qb:"paused"}});define("fs",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("ImageResource",f,function(){f.call(this)})}); 524define("eC","require lQ pw lt oj fs".split(" "),function(a){a("lQ");var f=a("pw"),l=a("lt"),m=a("oj"),k=a("fs");a=m.define("AnimatedImageResource",k,function(){k.call(this)});a.prototype.play=a.prototype.play=function(){this.set("state",l.PLAYING)};a.prototype.pause=a.prototype.pause=function(){this.set("state",l.Qb)};a.prototype.stop=a.prototype.stop=function(){this.set("state",l.V)};a.prototype.set=function(c,h){switch(c){case "state":(this.get("state")||l.V)==l.V&&h==l.PLAYING&&this.trigger(f.ko)}k.prototype.set.call(this, 525c,h)};a.prototype.kk=function(c,h,g){h||(h=1);g||(g=1);return k.prototype.kk.call(this,c,h*this.get("colCount",1),g*this.get("rowCount",1))};return a});define("eo",["require","oj","ft"],function(a){var f=a("oj"),l=a("ft");return f.define("AntialiasModel3DPostprocessing",l,function(){l.call(this)})}); 526define("iM",["require","mu","oj"],function(a){var f=a("mu");a=a("oj").define("HotspotMapOverlay",f,function(l){f.call(this);this.VJ=void 0===l?!0:l;this.bJ=this.nr=this.mr=this.Aa=void 0});a.prototype.getItem=function(){if(void 0===this.Aa){var l=this.get("image");this.Aa=l?l.Y1(this.VJ):null}return this.Aa};a.prototype.zDa=function(){if(void 0===this.mr){var l=this.get("rollOverImage");this.mr=l?l.Y1(this.VJ):null}return this.mr};a.prototype.CDa=function(){if(void 0===this.nr){var l=this.get("selectedImage"); 527this.nr=l?l.Y1(this.VJ):null}return this.nr};a.prototype.I5a=function(){if(void 0===this.bJ){this.bJ=[];var l=this.getItem();l&&this.bJ.push(l);(l=this.zDa())&&this.bJ.push(l);(l=this.CDa())&&this.bJ.push(l)}return this.bJ};return a});define("fc",["require","oj","iM"],function(a){var f=a("oj"),l=a("iM");return f.define("AreaHotspotMapOverlay",l,function(){l.call(this,!0)})});define("oV",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("AudioResource",f,function(){f.call(this)})}); 528define("cZ",["require"],function(){return{GC:"inAdvance",mma:"delayed"}}); 529define("bh",["require","exports"],function(){return function(){function a(){}a.bz="grab";a.Uh="grabbing";a.Vma="move";a.ena="move-n";a.fna="move-ne";a.Wma="move-e";a.ina="move-se";a.hna="move-s";a.jna="move-sw";a.kna="move-w";a.gna="move-nw";a.VLa="move-ew";a.XLa="move-ns";a.WLa="move-nesw";a.YLa="move-nwse";a.Yma="move-fast-n";a.Zma="move-fast-ne";a.Xma="move-fast-e";a.bna="move-fast-se";a.ana="move-fast-s";a.cna="move-fast-sw";a.dna="move-fast-w";a.$ma="move-fast-nw";a.Je="hand";a.RC="transparent";
530a.Ie="default";a.hv="inherit";return a}()}); 531define("hK",["require","pw"],function(a){function f(){this.jj=[]}var l=a("pw");f.prototype.register=function(m){this.pNa(m);this.jj.push(m);m.get("pressed")&&this.Uxa(m)};f.prototype.unregister=function(m){this.WXa(m)};f.prototype.pNa=function(m){m.bind(l.Kj,this.Cua,this,!0)};f.prototype.WXa=function(m){m.unbind(l.Kj,this.Cua,this)};f.prototype.Cua=function(m){this.Uxa(m.source)};f.prototype.Uxa=function(m){this.jj.forEach(function(k){k.set("pressed",k==m)})};f.register=function(m,k){this.unregister(m); 532k=this.Fi(k);m.N7=k;k.register(m)};f.unregister=function(m){m.N7&&(m.N7.unregister(m),delete m.N7)};f.Fi=function(m){return this.Vsa[m]||(this.Vsa[m]=new f)};f.Vsa={};return f});define("ep",["require"],function(){return{Ke:"push",Nj:"toggle"}});define("ik",["require"],function(){return{FH:"visible",Dma:"hidden",fq:"scroll"}});define("hf",["require"],function(){return{Ie:void 0,aa:"over",Ab:"pressed",jc:"pressedOver",ja:"selected"}}); 533define("w",["require","exports","lQ","mQ"],function(a,f,l,m){function k(g){return!!(window.location.hash&&0<=window.location.hash.indexOf("device="+g))}var c={};c.yi=TDV.xb.EV;c.Py=TDV.xb.Z6;c.z7=TDV.xb.ona;c.ldb=TDV.xb.d7;c.S6=TDV.xb.a7;c.Ima=TDV.xb.nna;c.Xcb=TDV.xb.c7;c.b7=TDV.xb.b7;c.KM=TDV.xb.KM;c.Q5=TDV.xb.Q5;c.P5=TDV.xb.P5;c.O5=TDV.xb.O5;c.R5=TDV.xb.R5;c.rh=TDV.xb.rh;c.kV=TDV.xb.kV;c.Ij=TDV.xb.Ij;c.Sm=TDV.xb.Sm;c.lH=TDV.xb.lH;c.Sy=TDV.xb.Sy;c.jV=TDV.xb.jV;c.ys=TDV.xb.ys;c.M5=TDV.xb.M5;c.nH= 534TDV.xb.nH;c.Mp=TDV.xb.Mp;c.Uu=TDV.xb.Uu;c.nV=TDV.xb.nV;c.N5=TDV.xb.N5;c.IM=TDV.xb.IM;c.HM=TDV.xb.HM;c.mH=TDV.xb.mH;c.JM=TDV.xb.JM;c.Uy=TDV.xb.Uy;c.gma=TDV.xb.gma;c.Ty=TDV.xb.Ty;c.zs=TDV.xb.zs;c.Vu=TDV.xb.Vu;c.lV=TDV.xb.lV;c.mV=TDV.xb.mV;c.S5=TDV.xb.S5;c.V5=TDV.xb.V5;c.NM=TDV.xb.NM;c.W5=TDV.xb.W5;c.X5=TDV.xb.X5;c.Xz=function(g){g="force_"+g;if(m.Cj("debug")&&m.Cj(g))return m.getQueryParameter(g)};c.aSa=c.Xz("os");c.zd=function(){return c.aSa||TDV.xb.zd};c.WRa=c.Xz("browser");c.browser=function(){return c.WRa|| 535TDV.xb.browser};c.XRa=c.Xz("browser_type");c.OK=function(){return c.XRa||TDV.xb.OK};c.sra=c.Xz("browser_subtype");c.cc=function(){return c.sra?c.sra:TDV.xb.cc};c.YRa=c.Xz("browser_version");c.vBa=function(){return c.YRa||TDV.xb.vBa};c.$Ra=c.Xz("device");c.NF=function(){return c.$Ra||TDV.xb.NF};c.pb=function(){return TDV.xb.mobile};c.HRa=function(){for(var g=navigator.userAgent.toLowerCase(),b=["SM-G960","SM-G965"],d=0;d<b.length;d++)if(0<=g.indexOf(b[d].toLowerCase()))return!0;return!1}();c.fSa=function(){for(var g= 536navigator.userAgent.toLowerCase(),b="SM-G920 SM-G925 SM-G928 SM-N920 SM-G930 SM-G935 SC-02H SM-G950 SM-G955 SM-N950 SM-G960 SM-G965 SM-N960 SM-G970 SM-G973 SM-G975 SM-G977 SM-N970 SM-N975".split(" "),d=0;d<b.length;d++)if(0<=g.indexOf(b[d].toLowerCase()))return!0;return!1}();c.tra=c.Xz("gearvrcompatible");c.SS=function(){return void 0!==c.tra?"true"==c.tra:c.fSa};c.nPa=c.browser()!=c.Sm||0>navigator.userAgent.indexOf("; wv")?!1:!0;c.ZRa=!!c.Xz("chromewebview");c.LBa=function(){return c.ZRa||c.nPa}; 537c.Df=function(){return c.cc()==c.Mp||c.cc()==c.Uu||c.cc()==c.nV||c.cc()==c.zs||c.cc()==c.Vu||c.cc()==c.Ty};c.r3=function(){return c.hG()};c.q3=function(){return c.CL()||c.AEa()||c.IEa()||c.FEa()};c.Tia=function(){return c.cc()==c.zs};c.Kga=void 0;c.vcb=function(){if(void 0===c.Kga){var g=void 0;c.Xr()&&(window.location.hash.split("&").forEach(function(b){"app-version"==b.split("=")[0]&&(g=b.split("=")[1])}),g&&(g=parseInt(g)));g=g||0;c.Kga=g}return c.Kga};c.Xr=function(){return c.EL()||c.Tia()};c.EL= 538function(){return c.cc()==c.Vu};c.v7a=function(){return k("picog2")};c.n7a=function(){return k("piconeo2")};c.AEa=function(){return k("piconeo3")};c.t7a=function(){return c.cc()==c.Uu&&0<=navigator.userAgent.toLowerCase().indexOf("pico 4")||c.cc()==c.Vu&&0<=navigator.userAgent.toLowerCase().indexOf("picoa8110")?!0:!1};c.u7a=function(){return c.cc()==c.Uu&&0<=navigator.userAgent.toLowerCase().indexOf("pico 4 ultra")||c.cc()==c.Vu&&0<=navigator.userAgent.toLowerCase().indexOf("picoa9210")?!0:!1};c.EEa= 539function(){return c.cc()==c.Uu&&0<=navigator.userAgent.toLowerCase().indexOf("pico g3")||c.cc()==c.Vu&&0<=navigator.userAgent.toLowerCase().indexOf("picoa7q10")?!0:!1};c.FEa=function(){return k("picoxr")};c.IEa=function(){return k("vivefocus")};c.hG=function(){return k("oculusquest3")?!0:c.cc()==c.Mp&&0<=navigator.userAgent.indexOf("Quest 3")};c.CL=function(){return k("oculusquest")||k("oculusquest2")||k("other")?!0:c.cc()==c.Mp&&0<=navigator.userAgent.indexOf("Quest 2")};c.z7a=function(){return c.cc()== 540c.Mp&&0<=navigator.userAgent.indexOf("Quest")&&0>navigator.userAgent.indexOf("Quest 2")};c.Rdb=function(){return c.cc()==c.Mp&&0>navigator.userAgent.indexOf("Quest")};c.i7a=function(){return c.Df()&&c.SS()};c.KE=void 0;c.U8a=function(){void 0===c.KE&&(c.KE=parseInt(m.getQueryParameter("sts")),isNaN(c.KE)&&(c.Df()&&!c.HRa?c.KE=512:c.pb()&&c.zd()==c.yi?c.KE=512:c.KE=c.pb()?256:1024));return c.KE};c.AYa=function(){if(c.browser()==c.Ij||c.browser()==c.rh)try{var g=/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent); 541if(g)return parseFloat(g[1])}catch(b){}}();c.vka=function(){return c.AYa};c.nUa=function(){try{var g=parseFloat((""+(/CPU.*OS ([0-9_]{1,5}
541)|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||!1}catch(b){}g||(g=c.vka());return g}();c.Jia=function(){return c.nUa};c.PNa=function(){if(c.zd()==c.Py)try{var g=/Android ([0-9]+\.?[0-9]*)/i.exec(navigator.userAgent);if(g)return parseFloat(g[1])}catch(b){}}();c.e3a=function(){return c.PNa}; 542c.Csa=function(){var g={NDa:"unknown",I7a:1},b=document.createElement("canvas");if(b&&(b=b.getContext("webgl")||b.getContext("experimental-webgl"))){var d=b.getExtension("WEBGL_debug_renderer_info");d&&(g.NDa=b.getParameter(d.UNMASKED_RENDERER_WEBGL));g.maxTextureSize=b.getParameter(b.MAX_TEXTURE_SIZE);if(d=b.getExtension("EXT_texture_filter_anisotropic")||b.getExtension("MOZ_EXT_texture_filter_anisotropic")||b.getExtension("WEBKIT_EXT_texture_filter_anisotropic"))g.I7a=b.getParameter(d.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}return g}(); 543c.k6a=function(){return c.Csa};c.RNa=function(){var g=c.Csa.NDa.match(/Apple\s+(.+)\s+GPU/);return g?g[1].toUpperCase():"unknown"}();c.Jdb=function(){return c.RNa};c.$Ua=c.NF()==c.NM?!0:!1;c.ey=function(){return c.$Ua};c.CBa=function(){return c.browser()==c.Ij&&14<=c.vka()};var h=!1;try{h="true"==window.localStorage.getItem("tdvp_video_drift_2")}catch(g){}c.D6a=function(){return h};c.pab=function(){h=!0;try{window.localStorage.setItem("tdvp_video_drift_2","true")}catch(g){}};c.NO="ontouchstart"in 544window||"undefined"!==typeof window.PointerEvent&&"undefined"!==typeof navigator.maxTouchPoints&&0<navigator.maxTouchPoints?!0:!1;c.Kla=function(){return c.NO};c.Fo=m.Cj("touchenabled")?m.lg("touchenabled"):"ontouchstart"in window?c.zd()==c.z7?!1:!0:!1;c.u5=function(){return c.Fo};c.summary=function(){return["browser: "+c.browser(),"browserType: "+c.OK(),"browserSubtype: "+c.cc(),"device: "+c.NF(),"isMobile: "+c.pb(),"gearVRCompatibleDevice: "+c.SS(),"chromeWebView: "+c.LBa(),"touchDevice"+c.Kla(), 545"touchEnabled"+c.u5()].join(", ")};c.log=function(){l.log("browser: "+c.browser());l.log("browserType: "+c.OK());l.log("browserSubtype: "+c.cc());l.log("device: "+c.NF());l.log("isMobile: "+c.pb());l.log("gearVRCompatibleDevice: "+c.SS());l.log("chromeWebView: "+c.LBa());l.log("touchDevice: "+c.Kla());l.log("touchEnabled: "+c.u5())};return c});define("nA",["require"],function(){return{ab:"left",tb:"right",Ye:"center",Ec:"top",wc:"bottom",qe:"middle"}}); 546define("fT",["require"],function(){return{Dc:"rollOver",ALWAYS:"always"}}); 547define("my",["require","w"],function(a){function f(){for(;d.length;)d.shift()();document.body.removeEventListener("click",f,!0);document.body.removeEventListener("touchstart",k,!0);document.body.removeEventListener("touchmove",m,!0);document.body.removeEventListener("touchend",l,!0);g=!1}function l(){b&&f()}function m(){b=!1}function k(){b=!0;h.zd()==h.yi&&f()}function c(){document.body.addEventListener("click",f,!0);document.body.addEventListener("touchstart",k,!0);document.body.addEventListener("touchmove", 548m,!0);document.body.addEventListener("touchend",l,!0)}var h=a("w"),g=!1,b=!1,d=[];return{C5:function(){f()},wait:function(e){d.push(e);g||(g=!0,document.body?c():document.addEventListener("DOMContentLoaded",c))},geb:function(e){e=d.indexOf(e);0<=e&&d.splice(e,1)}}});define("iw",["require","exports"],function(){return{RLa:7,L5:6,Mma:5,yl:4,Ena:3,WM:2,f7:1,Rcb:0,Rma:3,HC:2,kMa:1,jMa:2,gMa:2,mo:2,EMa:3,hdb:4}});define("bo",["require"],function(){return{R6:"horizontal",s7:"vertical"}}); 549define("pW",["require"],function(){return{KMa:"1",JMa:"auto",vMa:"1",dMa:"2",cMa:"auto",L5:"2",UKa:"3",TKa:"auto",uMa:"5",DMa:"100",Jcb:"101",wLa:999998,jdb:999999,JLa:1E6}});define("gV",["require"],function(){var a=1,f={};return{css:function(l,m){var k=l.__duqid;void 0===k&&(k=a.toString(),l.__duqid=k,a++);l=f[k]||(f[k]={e:l,s:{}});for(var c in m)l.s[c]=m[c]},process:function(){for(var l in f){var m=f[l],k=m.e.style;m=m.s;for(var c in m)k[c]=m[c]}f={}}}}); 550define("bW",["require"],function(){return{u6a:function(a){return!!a&&0<=a.indexOf("&tdvflipx")},VAa:function(a){a&&(0>a.indexOf("#")&&(a+="#"),a+="&tdvflipx");return a},S4a:function(a,f,l){var m=document.createElement("canvas");m.width=f;m.height=l;l=m.getContext("2d");l.translate(f,0);l.scale(-1,1);l.drawImage(a,0,0);a.src=m.toDataURL()}}}); 551define("J",["require","exports"],function(){return function(){function a(f,l,m,k,c,h){this.queue=f;this.url=l;this.priority=m;this.time=k;this.bbb=c;this.w3a=h}a.prototype.loaded=function(){this.queue.AU(this.url);this.queue.remove(this)};a.prototype.cancel=function(){this.queue.remove(this)};return a}()}); 552define("bA","require exports w mQ lT J".split(" "),function(a,f,l,m,k,c){var h=l.cc()===l.Uy,g=!(m.Cj("debug")&&m.lg("disable-cache"));return function(){function b(){}b.add=function(d,e,n,q){d=new c(this,d,e,(new Date).getTime(),n,q);this.hx.push(d);this.oa();return d};b.obb=function(d){this.mK.push(d);this.oa()};b.nbb=function(d){d=this.mK.indexOf(d);0<=d&&this.mK.splice(d,1);this.oa()};b.ycb=function(d){var e;return h?!0:g?null!==(e=this.xta[d])&&void 0!==e?e:!1:!1};b.AU=function(d){h||g&&(this.xta[d]= 553!0)};b.oa=function(){this.qga||(this.qga=k.RB(b.l1a.bind(this)))};b.l1a=function(){this.qga=null;for(var d=this.IYa(),e=0,n=this.FY;e<n.length;e++){var q=n[e];d.includes(q)||q.w3a()}e=this.FY;this.FY=d;d=0;for(n=this.FY;d<n.length;d++)q=n[d],e.includes(q)||q.bbb()};b.q_a=function(){this.hx.sort(function(d,e){return d.priority-e.priority||e.time-d.time});this.mK.sort(function(d,e){return d-e})};b.IYa=function(){this.q_a();var d=[];if(this.hx.length)for(var e=this.mK.length?this.mK[0]:this.hx[0].priority, 554n=0;10>n&&n<this.hx.length&&this.hx[n].priority<=e;n++)d.push(this.hx[n]);return d};b.remove=function(d){d=this.hx.indexOf(d);0<=d&&this.hx.splice(d,1);this.oa()};b.hx=[];b.FY=[];b.mK=[];b.qga=null;b.xta={};return b}()}); 555define("hh","require lQ cI gD pw iw mQ bW bA".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("pw"),c=a("iw"),h=a("mQ"),g=a("bW"),b=a("bA");a=f.extend(m,function(e){m.call(this);this.zt=e||c.RLa;this.wa=this.sa=this.ic=this.Wd=null;this.nA=!1;this.UJ=this.Ho=null;this.L_=0;this.Taa=[];this.bY=this.bY.bind(this);this.cY=this.cY.bind(this)});a.prototype.load=function(e){this.cancel();this.Wd=e;this.L_=0;this.rxa()};a.prototype.rxa=function(){this.Ho=b.add(this.Wd,this.zt,this.A_a.bind(this), 556this.gPa.bind(this))};a.prototype.cancel=function(){this.Ho&&(this.Ho.cancel(),this.Ho=null);this.Opa();this.Wd=null};a.prototype.l7a=function(){return!!this.ic&&!this.nA||this.UJ};a.prototype.Kh=function(){return this.nA};a.prototype.Af=function(e){return e?(e=this.ic.cloneNode(!0),this.Taa.push(e),e):this.ic};a.prototype.De=function(){return this.sa};a.prototype.Te=function(){return this.wa};a.prototype.Yi=function(){return this.Wd};a.prototype.A_a=function(){this.ic=this.wQa(this.Wd)};a.prototype.gPa= 557function(){this.l7a()&&this.Opa()};a.prototype.Opa=function(){if(this.ic){this.UJ&&(clearTimeout(this.UJ),this.UJ=null);for(this.nA=!1;this.Taa.length;)this.Lqa(this.Taa.shift());this.Lqa(this.ic);this.ic=null}};a.prototype.tNa=function(e){e.addEventListener("load",this.bY);e.addEventListener("error",this.cY)};a.prototype.kxa=function(e){e.removeEventListener("load",this.bY);e.removeEventListener("error",this.cY)};a.prototype.bY=function(){this.ic.width&&this.ic.height||!(-1<this.Wd.indexOf(".svg"))|| 558this.LRa();this.Ho.loaded();this.Ho=null;this.kxa(this.ic);this.nA=!0;this.sa=this.ic.width;this.wa=this.ic.height;
558g.u6a(this.Wd)&&g.S4a(this.ic,this.sa,this.wa);this.trigger(new l(k.da))};a.prototype.cY=function(){this.cancel();this.L_<d?(this.L_++,this.UJ=setTimeout(function(){this.UJ=null;this.rxa()}.bind(this),1E3*Math.pow(2,this.L_))):this.trigger(new l(k.xc))};a.prototype.LRa=function(){var e=new XMLHttpRequest;e.open("GET",this.Wd,!1);e.send();var n=document.createElement("div");n.innerHTML= 559e.responseText;e=n.children[0];this.ic.width=e.width.baseVal.value;this.ic.height=e.height.baseVal.value};a.prototype.wQa=function(e){var n=document.createElement("img");h.Ria(e)?n.setAttribute("crossOrigin","Anonymous"):n.removeAttribute("crossOrigin");n.setAttribute("draggable","false");n.style.position="static";n.style.border="none";n.style.display="none";this.tNa(n);n.src=e;return n};a.prototype.Lqa=function(e){this.kxa(e);e.parentNode&&e.parentNode.removeChild(e);e.src=""};var d=5;a.p5=function(e){return b.ycb(e)}; 560return a}); 561define("gO","require es jquery.mod pw iw bo pW gV hh".split(" "),function(a){function f(){this.qq=this.sq=this.tq=this.rq=this.Nv=this.Mv=this.Pv=this.Ov=0;this.jW=this.lW=this.mW=this.kW="";this.Mb=1;this.Gc=void 0;this.vD=[];this.a9=[];this.X8=h.s7;this.HW=!1;this.ZX=void 0;this.fi=null;this.qaa=this.Mga=0;this.mc=document.createElement("canvas");this.mc.setAttribute("tdvlayer","background");this.xa=m(this.mc);b.css(this.mc,{position:"absolute",left:0,top:0,"z-index":g.L5,"user-select":"none","-ms-user-select":"none", 562"-moz-user-select":"none","-webkit-user-select":"none"});this.Ig=!0}var l=a("es"),m=a("jquery.mod"),k=a("pw"),c=a("iw"),h=a("bo"),g=a("pW"),b=a("gV"),d=a("hh");f.prototype.setSize=function(e,n){if(this.Mga!=e||this.qaa!=n)this.Mga=e||0,this.qaa=n||0,this.Ig=!0};f.prototype.mIa=function(e){this.Iq!=e&&(this.Iq=e,this.Ig=!0)};f.prototype.gd=function(){return this.xa};f.prototype.je=function(){return this.mc};f.prototype.w$a=function(e){if(this.ZX!=e){this.fi&&(this.fi.unbind(k.da,this.FO,this),this.fi.cancel(), 563this.fi=null);if(this.ZX=e)this.fi=new d(c.Ena),this.fi.bind(k.da,this.FO,this),this.fi.load(this.ZX);this.Ig=!0}};f.prototype.Ika=function(e){this.Ov!=e&&(this.Ov=e,this.Ig=!0)};f.prototype.Jka=function(e){this.Pv!=e&&(this.Pv=e,this.Ig=!0)};f.prototype.Dka=function(e){this.Mv!=e&&(this.Mv=e,this.Ig=!0)};f.prototype.Eka=function(e){this.Nv!=e&&(this.Nv=e,this.Ig=!0)};f.prototype.Gka=function(e){this.rq!=e&&(this.rq=e,this.Ig=!0)};f.prototype.Kka=function(e){this.tq!=e&&(this.tq=e,this.Ig=!0)};f.prototype.Hka= 564function(e){this.sq!=e&&(this.sq=e,this.Ig=!0)};f.prototype.Fka=function(e){this.qq!=e&&(this.qq=e,this.Ig=!0)};f.prototype.S9a=function(e){this.kW!=e&&(this.kW=e,this.Ig=!0)};f.prototype.U9a=function(e){this.mW!=e&&(this.mW=e,this.Ig=!0)};f.prototype.T9a=function(e){this.lW!=e&&(this.lW=e,this.Ig=!0)};f.prototype.R9a=function(e){this.jW!=e&&(this.jW=e,this.Ig=!0)};f.prototype.Mh=function(e){this.Mb!=e&&(this.Mb=e,this.Ig=!0)};f.prototype.il=function(){return this.Mb};f.prototype.setColor=function(e){l.isEqual(this.Gc, 565e)||(this.Gc=e,l(e).isArray()||(e=[e]),e=l(e).filter(function(n){return l(n).isString()}),this.XHa(e))};f.prototype.lL=function(){return this.Gc};f.prototype.XHa=function(e){l.isEqual(this.vD,e)||(this.vD=e,this.Ig=!0)};f.prototype.$9a=function(e){this.udb!=e&&(this.a9=e,this.Ig=!0)};f.prototype.Z9a=function(e){this.X8!=e&&(this.X8=e,this.Ig=!0)};f.prototype.FO=function(){this.Ig=!0;this.qh()};f.prototype.qh=function(){this.Ig&&(this.oa(),this.Ig=!1)};f.prototype.oa=function(){var e=Math.max(0,this.Mga- 566(this.rq+this.sq)),n=Math.max(0,this.qaa-(this.tq+this.qq)),q=this.xa.get(0);q.width=e;q.height=n;q=q.getContext("2d");var p=this.cPa(),r=0<p.length,t=this.fi&&this.fi.Kh(),u=0<this.rq&&this.kW||0<this.tq&&this.mW||0<this.sq&&this.lW||0<this.qq&&this.jW;u=r||t||u;if(r){var v=this.X8==h.R6?q.createLinearGradient(0,0,e,0):q.createLinearGradient(0,0,0,n);l(p).forEach(function(w){v.addColorStop(w.ratio,w.color)});q.fillStyle=v;q.fillRect(0,0,e,n);this.HW=!0}else this.HW&&(q.clearRect(0,0,e,n),this.HW= 567!1);t&&(q.drawImage(this.fi.Af(),0,0,e,n),this.HW=!0);this.mc.style.opacity=this.Mb;this.mc.style.filter="alpha(opacity="+Math.round(100*this.Mb)+")";
567this.mc.style["-ms-filter"]="alpha(opacity="+Math.round(100*this.Mb)+")";this.mc.style.borderTopLeftRadius=this.Ov+"px";this.mc.style.borderTopRightRadius=this.Pv+"px";this.mc.style.borderBottomLeftRadius=this.Mv+"px";this.mc.style.borderBottomRightRadius=this.Nv+"px";this.mc.style.borderLeft=this.HX(this.rq,this.kW);this.mc.style.borderTop=this.HX(this.tq, 568this.mW);this.mc.style.borderRight=this.HX(this.sq,this.lW);this.mc.style.borderBottom=this.HX(this.qq,this.jW);this.mc.style.width=e+"px";this.mc.style.height=n+"px";this.mc.style.cursor="inherit";this.mc.style.display=u?"block":"none";0===this.mc.clientWidth&&0!==e&&(this.mc.style.width=0,this.mc.style.width=e+"px")};f.prototype.HX=function(e,n){return 0<e?n?e+"px solid "+n:e+"px solid transparent":"none"};f.prototype.cPa=function(){var e=[];if(0<this.vD.length){var n=this.vD.slice();n=[].concat([n[0]], 569n,[n[n.length-1]]);var q=this.bPa();q=[].concat([0],q,[1]);for(var p=0;p<n.length;p++){var r=q[p];0<=r&&e.push({color:n[p],ratio:r})}for(p=0;p<e.length-1;)e[p].ratio==e[p+1].ratio&&e[p].color==e[p+1].color?e.splice(p,1):p++;for(p=1;p<e.length-1;)e[p-1].ratio==e[p+1].ratio?e.splice(p,1):p++}return e};f.prototype.bPa=function(){var e=this.vD.length,n;for(n=0<this.a9.length?l(this.a9).map(function(q){return Math.min(1,Math.max(0,q))}):1==e?[.5]:l(l.range(e)).map(function(q,p){return 1*p/(e-1)});n.length< 570e;)n.push(1);n.length>e&&n.splice(e,n.length-e);return n};return f}); 571define("eU",["require","jquery.mod","pW","gV"],function(a){function f(){this.QZ=this.SZ=this.TZ=this.RZ=this.qq=this.sq=this.tq=this.rq=0;this.jQ=this.Iq=!0;this.Gga=this.Maa=0;this.Ba=!0;this.NQ=document.createElement("div");this.NQ.setAttribute("tdvlayer","content");this.Lxa=l(this.NQ);k.css(this.NQ,{position:"absolute"});this.IN=document.createElement("div");this.h9=l(this.IN);k.css(this.IN,{position:"absolute"});this.Lxa.append(this.h9)}var l=a("jquery.mod"),m=a("pW"),k=a("gV");f.prototype.append= 572function(c){this.h9.append(c)};f.prototype.prepend=function(c){this.h9.prepend(c)};f.prototype.$ga=function(c){this.IN.appendChild(c)};f.prototype.h9a=function(c){this.IN.removeChild(c)};f.prototype.gd=function(){return this.Lxa};f.prototype.je=function(){return this.NQ};f.prototype.t$a=function(c){this.Maa!=c&&(this.Maa=c,this.Ba=!0)};f.prototype.Oab=function(c){this.Gga!=c&&(this.Gga=c,this.Ba=!0)};f.prototype.oL=function(){return this.RZ+this.rq};f.prototype.qL=function(){return this.TZ+this.tq}; 573f.prototype.pL=function(){return this.SZ+this.sq};f.prototype.kL=function(){return this.QZ+this.qq};f.prototype.kM=function(c){this.jQ!=c&&(this.jQ=c,this.Ba=!0)};f.prototype.V$a=function(c){this.RZ!=c&&(this.RZ=c,this.Ba=!0)};f.prototype.X$a=function(c){this.TZ!=c&&(this.TZ=c,this.Ba=!0)};f.prototype.W$a=function(c){this.SZ!=c&&(this.SZ=c,this.Ba=!0)};f.prototype.U$a=function(c){this.QZ!=c&&(this.QZ=c,this.Ba=!0)};f.prototype.Gka=function(c){this.rq!=c&&(this.rq=c,this.Ba=!0)};f.prototype.Kka=function(c){this.tq!= 574c&&(this.tq=c,this.Ba=!0)};f.prototype.Hka=function(c){this.sq!=c&&(this.sq=c,this.Ba=!0)};f.prototype.Fka=function(c){this.qq!=c&&(this.qq=c,this.Ba=!0)};f.prototype.mIa=function(c){this.Iq!=c&&(this.Iq=c,this.Ba=!0)};f.prototype.qh=function(){this.Ba&&(this.oa(),this.Ba=!1)};f.prototype.oa=function(){k.css(this.NQ,{overflow:this.jQ?"visible":"hidden","z-index":this.Iq?m.UKa:m.TKa,left:this.oL()+"px",top:this.qL()+"px",right:this.pL()+"px",bottom:this.kL()+"px",cursor:"inherit"});k.css(this.IN,{left:-this.Maa+ 575"px",top:-this.Gga+"px",right:this.jQ?0:"initial",bottom:this.jQ?0:"initial",cursor:"inherit"})};return f}); 576define("ky","require es jquery.mod lQ pW gV".split(" "),function(a){function f(){this.wa=this.sa=this.Qa=this.Na=void 0;this.Nv=this.Mv=this.Pv=this.Ov=0;this.Tb=!1;this.Laa=0;this.Fga=4;this.A8=6;this.Uea=0;this.Gc="#000000";this.Mb=1;this.mc=document.createElement("div");this.mc.setAttribute("tdvlayer","shadow");this.xa=l(this.mc);k.css(this.mc,{position:"absolute",left:0,top:0,right:0,bottom:"0"});this.Ba=!1}a("es");var l=a("jquery.mod");a("lQ");var m=a("pW"),k=a("gV");f.prototype.gd=function(){return this.xa}; 577f.prototype.je=function(){return this.mc};f.prototype.Ika=function(c){this.Ov!=c&&(this.Ov=c,this.Ba=!0)};f.prototype.Jka=function(c){this.Pv!=c&&(this.Pv=c,this.Ba=!0)};f.prototype.Dka=function(c){this.Mv!=c&&(this.Mv=c,this.Ba=!0)};f.prototype.Eka=function(c){this.Nv!=c&&(this.Nv=c,this.Ba=!0)};f.prototype.Mh=function(c){this.Mb!=c&&(this.Mb=c,this.Ba=!0)};f.prototype.il=function(){return this.Mb};f.prototype.Xe=function(c){this.Tb!=c&&(this.Tb=c,this.Ba=!0)};f.prototype.s$a=function(c){this.Laa!= 578c&&(this.Laa=c,this.Ba=!0)};f.prototype.Nab=function(c){this.Fga!=c&&(this.Fga=c,this.Ba=!0)};f.prototype.Q9a=function(c){this.A8!=c&&(this.A8=c,this.Ba=!0)};f.prototype.qab=function(c){this.Uea!=c&&(this.Uea=c,this.Ba=!0)};f.prototype.setColor=function(c){this.Gc!=c&&(this.Gc=c,this.Ba=!0)};f.prototype.lL=function(){return this.Gc};f.prototype.qh=function(){this.Ba&&(this.oa(),this.Ba=!1)};f.prototype.oa=function(){var c=this.Laa+"px "+this.Fga+"px "+this.A8+"px "+this.Uea+"px "+this.Gc;this.mc.style.display= 579this.Tb?"block":"none";this.mc.style.boxShadow=c;this.mc.style["-webkit-box-shadow"]=c;this.mc.style["-moz-box-shadow"]=c;this.mc.style.borderTopLeftRadius=this.Ov+"px";this.mc.style.borderTopRightRadius=this.Pv+"px";this.mc.style.borderBottomLeftRadius=this.Mv+"px";this.mc.style.borderBottomRightRadius=this.Nv+"px";this.mc.style.filter="alpha(opacity="+Math.round(100*this.Mb)+")";
579this.mc.style["-ms-filter"]="alpha(opacity="+Math.round(100*this.Mb)+")";this.mc.style.opacity=this.Mb;this.mc.style.zIndex= 580m.vMa};return f}); 581define("nE","require jquery.mod es lQ mu bh pw gO eU ky pW cI gV w".split(" "),function(a){var f=a("jquery.mod");a("es");var l=a("lQ"),m=a("mu"),k=a("bh"),c=a("pw"),h=a("gO"),g=a("eU"),b=a("ky"),d=a("pW"),e=a("cI"),n=a("gV");a("w");var q=l.extend(m,function(){m.call(this);this.RI=q.RI++;this.g9=this.re=this.Xca=this.iQ=this.Kea=this.xa=this.mc=null;this.Eza=this.$sa=!1;this.ta=this.kb=null;this.wa=this.sa=this.Hw=this.Gw=0;this.hA=this.Tb=!1;this.Psa=!0;this.hP=this.iP=this.Zl=this.$l=0;this.Mb=1; 582this.bi=k.Ie;this.set("inView",!1);this.set("toolTip",void 0);this.aF(!0);this.Aea(!0)});q.prototype.Qe=function(p){this.qD=p};q.prototype.toString=function(){return"["+this.xa.attr("tdvclass")+"::"+this.RI+"]"};q.prototype.log=function(p){l.log(p+" "+this.toString()+" "+(new Date).getTime().toString())};q.prototype.Db=function(){return this.kb};q.prototype.Ht=function(p){(this.kb=p)&&this.aba();this.uK();this.trigger(c.OKa)};q.prototype.gd=function(){this.xa=f(this.je());this.gd=function(){return this.xa}; 583return this.xa};q.prototype.HIa=function(p){(p=p||this.qD)?this.mc.setAttribute("tdvclass",p):this.mc.removeAttribute("tdvclass")};q.prototype.B9a=function(){this.HIa()};q.prototype.je=function(){this.mc=document.createElement("div");this.mc.setAttribute("id",this.RI);this.qD&&this.mc.setAttribute("tdvclass",this.qD);n.css(this.mc,{margin:0,padding:0,position:"absolute",overflow:"visible",display:"block"});this.je=function(){return this.mc};return this.mc};q.prototype.Ol=function(){this.Kea=new b; 584this.Ol=function(){return this.Kea};return this.Kea};q.prototype.bd=function(){this.re=new h;this.bd=function(){return this.re};return this.re};q.prototype.MI=function(){this.iQ=document.createElement("div");this.iQ.setAttribute("tdvlayer","overShadow");n.css(this.iQ,{position:"absolute",left:0,top:0,cursor:"inherit"});this.MI=function(){return this.iQ};return this.iQ};q.prototype.gaa=function(){this.Xca=f(this.MI());this.gaa=function(){return this.Xca};return this.Xca};q.prototype.Yb=function(){this.g9= 585new g;this.Yb=function(){return this.g9};return this.g9};q.prototype.getParent=function(){return this.ta};q.prototype.Za=function(){return this.sa};q.prototype.Cb=function(){return this.wa};q.prototype.q6a=function(){return void 0!==this.sa&&void 0!==this.wa};q.prototype.zf=function(){return this.sa-this.Yb().oL()-this.Yb().pL()};q.prototype.yf=function(){return this.wa-this.Yb().qL()-this.Yb().kL()};q.prototype.Bm=function(){return this.Yb().oL()};q.prototype.mu=function(){return this.Yb().qL()}; 586q.prototype.lu=function(){return this.Yb().pL()};q.prototype.mL=function(){return this.Yb().kL()};q.prototype.Xe=function(p){this.Tb!=p&&(this.Tb=p,this.ve(),this.ta&&(this.ta.hc(),this.ta.Xd()),this.uK())};q.prototype.uK=function(){var p=!1;this.kb&&this.Tb&&0<this.il()&&(this==this.kb?p=!0:this.ta&&(p=this.ta.hA));this.hA!=p&&this.m8(p)};q.prototype.m8=function(p){this.hA=p;this.set("inView",p);this.hA?this.trigger(new e(c.jd)):this.trigger(new e(c.ad))};q.prototype.EZa=function(p){this.Psa!=p&& 587(this.Psa=p,this.ta&&this.ta.Xd())};q.prototype.vZa=function(p){this.EI!=p&&(this.EI=p,this.hc())};q.prototype.uZa=function(p){this.DI!=p&&(this.DI=p,this.hc())};q.prototype.tZa=function(p){this.CI!=p&&(this.CI=p,this.hc())};q.prototype.sZa=function(p){this.BI!=p&&(this.BI=p,this.hc())};q.prototype.wZa=function(p){this.qn!=p&&(this.qn=p,void 0!=this.qn&&(this.Jn=void 0),this.hc())};q.prototype.rZa=function(p){this.GD!=p&&(this.GD=p,void 0!=this.GD&&(this.In=void 0),this.hc())};q.prototype.QZa=function(p){this.Jn!= 588p&&(this.Jn=p,void 0!=this.Jn&&(this.qn=void 0),this.hc())};q.prototype.MZa=function(p){this.In!=p&&(this.In=p,void 0!=this.In&&(this.GD=void 0),this.hc())};q.prototype.GZa=function(p){this.Aw!=p&&(void 0!=p&&(this.i_=void 0),this.Aw=p,this.ta&&this.ta.Xd(),this.hc())};q.prototype.e_a=function(p){this.sr!=p&&(void 0!=p&&(this.k_=void 0),this.sr=p,this.ta&&this.ta.Xd(),this.hc())};q.prototype.SZa=function(p){this.KQ!=p&&(void 0!=p&&(this.j_=void 0),this.KQ=p,this.ta&&this.ta.Xd(),this.hc())};q.prototype.iZa= 589function(p){this.wN!=p&&(void 0!=p&&(this.h_=void 0),this.wN=p,this.ta&&this.ta.Xd(),this.hc())};q.prototype.NZa=function(p){this.i_!=p&&(void 0!=p&&(this.Aw=void 0),this.i_=p,this.ta&&this.ta.Xd(),this.hc())};q.prototype.PZa=function(p){this.k_!=p&&(void 0!=p&&(this.sr=void 0),this.k_=p,this.ta&&this.ta.Xd(),this.hc())};q.prototype.OZa=function(p){this.j_!=p&&(void 0!=p&&(this.KQ=void 0),this.j_=p,this.ta&&this.ta.Xd(),this.hc())};q.prototype.LZa=function(p){this.h_!=p&&(void 0!=p&&(this.wN=void 0), 590this.h_=p,this.ta&&this.ta.Xd(),this.hc())};q.prototype.mZa=function(p){this.Ez!=p&&(this.Ez=p,this.ta&&this.ta.Xd())};q.prototype.nZa=function(p){this.Fz!=p&&(this.Fz=p,this.ta&&this.ta.Xd())};q.prototype.ru=function(){return isNaN(this.qn)?this.$l:this.qn};q.prototype.qu=function(){return isNaN(this.GD)?this.Zl:this.GD};q.prototype.xTa=function(){return isNaN(this.ERa)?this.Gta:this.ERa};q.prototype.ou=function(){return isNaN(this.EI)?this.iP:this.EI};q.prototype.Yx=function(){return isNaN(this.DI)? 591this.hP:this.DI};q.prototype.R2=function(){return isNaN(this.CI)?1E4:this.CI};q.prototype.Q2=function(){return isNaN(this.BI)?1E4:this.BI};q.prototype.kya=function(p){this.jaa()!=p&&(this.Yb().V$a(p),this.hc())};q.prototype.jaa=function(){return this.Yb().RZ};q.prototype.mya=function(p){this.laa()!=p&&(this.Yb().X$a(p),this.hc())};q.prototype.laa=function(){return this.Yb().TZ};q.prototype.lya=function(p){this.kaa()!=p&&(this.Yb().W$a(p),this.hc())};q.prototype.kaa=function(){return this.Yb().SZ}; 592q.prototype.jya=function(p){this.iaa()!=p&&(this.Yb().U$a(p),this.hc())};q.prototype.iaa=function(){return this.Yb().QZ};q.prototype.EU=function(p){if(this.Gw!=p){var r=0==this.Gw!=(0==p);this.Gw=p;this.ml();r&&this.ta&&this.ta.Xd()}};q.prototype.FU=function(p){if(this.Hw!=p){var r=0==this.Hw!=(0==p);this.Hw=p;this.ml();r&&this.ta&&this.ta.Xd()}};q.prototype.z6a=function(){return 0!=this.Gw||0!=this.Hw};q.prototype.Mh=function(p){this.Mb!=p&&(this.Mb=p,n.css(this.MI(),{filter:"alpha(opacity="+Math.round(100* 593this.Mb)+") ",opacity:this.Mb}),this.uK(),this.ml())};q.prototype.il=function(){return this.Mb};q.prototype.fZa=function(p){this.bd().Ov!=p&&(this.Ol().Ika(p),this.bd().Ika(p))};q.prototype.uSa=function(){return this.bd().Ov};q.prototype.gZa=function(p){this.bd().Pv!=p&&(this.Ol().Jka(p),this.bd().Jka(p))};q.prototype.vSa=function(){return this.bd().Pv};q.prototype.YYa=function(p){this.bd().Mv!=p&&(this.Ol().Dka(p),this.bd().Dka(p))};q.prototype.sSa=function(){return this.bd().Mv};q.prototype.ZYa= 594function(p){this.bd().Nv!=p&&(this.Ol().Eka(p),this.bd().Eka(p))};q.prototype.tSa=function(){return this.bd().Nv};q.prototype.bZa=function(p){this.bd().rq!=p&&(this.bd().Gka(p),this.Yb().Gka(p),this.hc())};q.prototype.Jra=function(){return this.bd().rq};q.prototype.hZa=function(p){this.bd().tq!=p&&(this.bd().Kka(p),this.Yb().Kka(p),this.hc())};q.prototype.Lra=function(){return this.bd().tq};q.prototype.dZa=function(p){this.bd().sq!=p&&(this.bd().Hka(p),this.Yb().Hka(p),this.hc())};q.prototype.Kra= 595function(){return this.bd().sq};q.prototype.$Ya=function(p){this.bd().qq!=p&&(this.bd().Fka(p),this.Yb().Fka(p),this.hc())};q.prototype.Ira=function(){return this.bd().qq};q.prototype.aZa=function(p){this.bd().S9a(p)};q.prototype.eZa=function(p){this.bd().U9a(p)};q.prototype.cZa=function(p){this.bd().T9a(p)};q.prototype.XYa=function(p){this.bd().R9a(p)};q.prototype.i0=function(p){this.Ol().Xe(p)};q.prototype.YZa=function(p){this.Ol().s$a(p)};q.prototype.a_a=function(p){this.Ol().Nab(p)};q.prototype.WZa= 596function(p){this.Ol().Q9a(p)};q.prototype.$Za=function(p){this.Ol().qab(p)};q.prototype.ZZa=function(p){this.Ol().Mh(p)};q.prototype.XZa=function(p){this.Ol().setColor(p)};q.prototype.TYa=function(p){this.pSa()!=p&&this.bd().Mh(p)};q.prototype.pSa=function(){return this.bd().il()};q.prototype.PYa=function(p){this.oSa()!=p&&this.bd().setColor(p)};q.prototype.oSa=function(){return this.bd().lL()};q.prototype.RYa=function(p){this.bd().$9a(p)};q.prototype.QYa=function(p){this.bd().Z9a(p)};q.prototype.SYa= 597function(p){this.bd().w$a(p)};q.prototype.TA=function(p){this.bi!=p&&(this.bi=p,this.ml())};q.prototype.d_a=function(p){this.gfa!==p&&(this.gfa=p,this.je().tabIndex=void 0===this.gfa?void 0:this.gfa)};q.prototype.NYa=function(p){this.i8!=p&&((this.i8=p)?this.je().setAttribute("aria-label",this.i8):this.je().removeAttribute("aria-label"))};q.prototype.OYa=function(p){this.j8!=p&&((this.j8=p)?this.je().setAttribute("role",this.j8):this.je().removeAttribute("role"))};q.prototype.aF=function(p){this.Iq!= 598p&&(this.Iq=p,n.css(this.MI(),{"z-index":this.Iq?d.dMa:d.cMa}),this.Yb().mIa(this.Iq),this.ml())};q.prototype.Aea=function(p){this.Cwa!=p&&(this.Cwa=p,n.css(this.je(),{"z-index":this.Cwa?d.KMa:d.JMa}),this.ml())};q.prototype.mq=function(){this.uK();this.uT()};q.prototype.Ln=function(){this.uK()};q.prototype.bea=function(){};q.prototype.aba=function(){this.uT();this.ve();this.hc();this.Xd();this.ml()};q.prototype.Fw=function(){this.hP=this.iP=this.Zl=this.$l=0;this.Gta=void 0};q.prototype.uT=function(){var p=
599this.Db();p&&p.RH.uT(this)};q.prototype.ve=function(){var p=this.Db();p&&p.RH.ve(this)};q.prototype.hc=function(){var p=this.Db();p&&p.RH.hc(this)};q.prototype.Xd=function(){var p=this.Db();p&&p.RH.Xd(this)};q.prototype.ml=function(){var p=this.Db();p&&p.RH.ml(this)};q.prototype.waa=function(){var p=isNaN(this.i_)&&isNaN(this.Aw),r=isNaN(this.j_)&&isNaN(this.KQ);return isNaN(this.qn)&&isNaN(this.Jn)&&(p||r)?!0:!1};q.prototype.Dsa=function(){var p=isNaN(this.k_)&&isNaN(this.sr),r=isNaN(this.h_)&&isNaN(this.wN); 600return isNaN(this.GD)&&isNaN(this.In)&&(p||r)?!0:!1};q.prototype.P1a=function(){this.Fw();var p=this.xTa();if(p){var r=this.waa(),t=this.Dsa();r&&!t?(r=this.yf(),0!=r&&(this.$l=r*p+this.Bm()+this.lu(),this.Zl=r+this.mu()+this.mL())):!r&&t&&(r=this.zf(),0!=r&&(this.Zl=r/p+this.Bm()+this.lu(),this.$l=r+this.Bm()+this.lu()))}!isNaN(this.EI)&&this.$l<this.EI&&(this.$l=this.EI);!isNaN(this.CI)&&this.$l>this.CI&&(this.$l=this.CI);!isNaN(this.DI)&&this.Zl<this.DI&&(this.Zl=this.DI);!isNaN(this.BI)&&this.Zl> 601this.BI&&(this.Zl=this.BI)};q.prototype.Hb=function(){if(!this.Eza){this.Eza=!0;var p=this.je(),r=this.MI();p.appendChild(this.Ol().je());p.appendChild(r);r.appendChild(this.bd().je());r.appendChild(this.Yb().je())}};q.prototype.$bb=function(){this.P1a();var p=this.ru(),r=this.qu(),t=this.ou(),u=this.Yx();return p!=this.SVa||r!=this.RVa||t!=this.OVa||u!=this.NVa||this.Jn!=this.QVa||this.In!=this.PVa?(this.SVa=p,this.RVa=r,this.OVa=t,this.NVa=u,this.QVa=this.Jn,this.PVa=this.In,!0):!1};q.prototype.bb= 602function(){this.ml()};q.prototype.cj=function(){};q.prototype.VHa=function(p,r,t,u){if(this.Na!=p||this.Qa!=r||this.sa!=t||this.wa!=u)this.Na=p,this.Qa=r,this.sa=t,this.wa=u,this.bd().setSize(this.sa,this.wa),this.Xd(),this.ml(),this.trigger(new e(c.tc))};q.prototype.qh=function(){var p=this.je(),r=this.MI();this.Tb?(r.style.width=this.sa+"px",r.style.height=this.wa+"px",p.style.left=this.Na+this.Gw+"px",p.style.top=this.Qa+this.Hw+"px",p.style.width=this.sa+"px",p.style.height=this.wa+"px",p.style.visibility= 603"inherit",p.style.overflow="visible",p.style.cursor=this.kb&&this.kb.H9.XCa(this.bi),0===r.clientWidth&&0!==this.sa&&(p.style.width=0,p.style.width=this.sa+"px")):(p.style.visibility="hidden",p.style.width=0,p.style.height=0,p.style.overflow="hidden",r.style.width=0,r.style.height=0);this.Ol().qh();this.bd().qh();this.Yb().qh();!this.$sa&&this.kb&&(this.$sa=!0,this.kb.aja()?this.bba():this.kb.bind(c.ko,this.bba,this,!0))};q.prototype.bba=function(){this.trigger(c.INIT)};q.prototype.Z5a=function(p){p= 604p.gd().offset();var r=this.gd().offset(),t={};t.left=r.left-p.left;t.top=r.top-p.top;this.kb&&(t.left/=this.kb.DA,t.top/=this.kb.DA);return t};q.RI=0;return q}); 605define("S","require es lQ pw cI hf nE".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("pw"),k=a("cI"),c=a("hf"),h=a("nE"),g=l.extend(h,function(){this.o={};this.gx=this.ura=void 0;this.LA={};this.qra=!0;this.Nya={};h.call(this);this.VQa();this.yb();this.Qe("UICustomizable");this.ve()});g.Fc={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, 606maxWidth: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, 607borderTopColor: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,backgroundOpacity:1,backgroundColor:void 0,backgroundColorRatios:void 0,backgroundColorDirection:void 0,backgroundImageUrl:void 0,hideEffect:void 0,showEffect:void 0};g.prototype.VQa=function(){this.Nya[c.jc]=c.Ab};g.prototype.yb=function(){this.Ao(g.Fc)};g.prototype.Ao=function(b){for(var d in b){var e= 608b[d],n=e&&e.length;n&&"string"!=typeof e?1==n?this.h(d,e[0]):2==n?this.A(d,e[0],e[1]):3==n&&this.A(d,e[0],e[1],e[2]):this.h(d,e)}};g.prototype.h=function(b,d){this.o[b]={i:!0,d}};g.prototype.CTa=function(){var b=[],d;for(d in this.o)b.push(d);return b};g.prototype.A=function(b,d,e,n){this.LA[d]||(this.LA[d]={});this.h(b,n);this.LA[d][e]=b};g.prototype.cK=function(b,d){if(d)this.ura=b;else if(void 0!=this.ura)return;if(this.gx!=b){if(d=this.LA[this.gx])for(var e in d)(this.o[e]||(this.o[e]={})).i= 609!0;this.gx=b;if(d=this.LA[this.gx])for(e in d)(this.o[e]||(this.o[e]={})).i=!0;this.ve()}};g.prototype.ra=function(b){if(f(b).isString())this.set(b,void 0);else{var d=b;
609for(b in d)this.set(b,d[b])}};g.prototype.set=function(b,d){var e=this.o[b];e?(void 0==d&&(d=e.d),f.isEqual(this.get(b),d)||("state"==b&&this.cK(d,!0),h.prototype.set.call(this,b,d),e.i=!0,this.ve())):h.prototype.set.call(this,b,d)};g.prototype.get=function(b,d){switch(b){case "actualWidth":return this.Za();case "actualHeight":return this.Cb(); 610default:var e=h.prototype.get.call(this,b);void 0===e&&((b=this.o[b])&&(e=b.d),void 0===e&&(e=d));return e}};g.prototype.Roa=function(){for(var b="paddingLeft paddingTop paddingRight paddingBottom borderRadius borderTopRadius borderBottomRadius borderLeftRadius borderRightRadius borderTopLeftRadius borderTopRightRadius borderBottomLeftRadius borderBottomRightRadius borderSize borderLeftSize borderTopSize borderRightSize borderBottomSize".split(" "),d=0;d<b.length;d++)if(this.L(b[d]))return!0;return!1}; 611g.prototype.L=function(b){if((this.o[b]||{}).i)return!0;if(void 0!==this.gx)return b=this.LA[this.gx][b],!!(this.o[b]||{}).i};g.prototype.cF=function(b){(this.o[b]||(this.o[b]={})).i=!0;this.ve()};g.prototype.S=function(b){(this.o[b]||(this.o[b]={})).i=!1;void 0!=this.gx&&(b=this.LA[this.gx][b])&&((this.o[b]||(this.o[b]={})).i=!1)};g.prototype.B=function(){for(var b,d=0;d<arguments.length;d++){for(var e=arguments[d],n=this.gx;n;){if(b=this.LA[n][e])if(b=this.get(b),void 0!=b&&null!=b)return b;n=this.Nya[n]}b= 612this.get(e);if(void 0!=b&&null!=b)return b}};g.prototype.Mea=function(b){b.source.unbind(m.Gb,this.Mea,this);this.trigger(new k(m.YM))};g.prototype.Iaa=function(b){b.source.unbind(m.Gb,this.Iaa,this);this.trigger(new k(m.RM))};g.prototype.Iv=function(){return this.get("ariaLabel")||this.get("toolTip")};g.prototype.bb=function(){if(this.qra)this.qra=!1;else if(this.L("visible")){var b=this.B("visible"),d=this.get(b?"hideEffect":"showEffect");d&&d.AL(this)&&(d.unbind(m.Gb,b?this.Iaa:this.Mea,this), 613d.end());(d=this.get(b?"showEffect":"hideEffect"))?d.AL(this)||(this.S("visible"),d.bind(m.Gb,b?this.Mea:this.Iaa,this),d.play(this)):this.trigger(new k(b?m.YM:m.RM))}this.L("visible")&&(this.Xe(this.B("visible")),this.S("visible"));this.L("includeInLayout")&&(this.EZa(this.B("includeInLayout")),this.S("includeInLayout"));this.L("left")&&(d=this.B("left"),b=g.Ap(d),d=void 0===b?d:void 0,this.NZa(b),this.GZa(d),this.S("left"));this.L("top")&&(d=this.B("top"),b=g.Ap(d),d=void 0===b?d:void 0,this.PZa(b), 614this.e_a(d),this.S("top"));this.L("right")&&(d=this.B("right"),b=g.Ap(d),d=void 0===b?d:void 0,this.OZa(b),this.SZa(d),this.S("right"));this.L("bottom")&&(d=this.B("bottom"),b=g.Ap(d),d=void 0===b?d:void 0,this.LZa(b),this.iZa(d),this.S("bottom"));this.L("centerX")&&(this.mZa(this.B("centerX")),this.S("centerX"));this.L("centerY")&&(this.nZa(this.B("centerY")),this.S("centerY"));this.L("width")&&(d=this.B("width"),b=g.Ap(d),d=void 0===b?d:void 0,this.QZa(b),this.wZa(d),this.S("width"));this.L("height")&& 615(d=this.B("height"),b=g.Ap(d),d=void 0===b?d:void 0,this.MZa(b),this.rZa(d),this.S("height"));this.L("minWidth")&&(d=this.B("minWidth"),this.vZa(d),this.S("minWidth"));this.L("minHeight")&&(d=this.B("minHeight"),this.uZa(d),this.S("minHeight"));this.L("maxWidth")&&(d=this.B("maxWidth"),this.tZa(d),this.S("maxWidth"));this.L("maxHeight")&&(d=this.B("maxHeight"),this.sZa(d),this.S("maxHeight"));this.L("paddingLeft")&&(this.kya(this.B("paddingLeft")),this.S("paddingLeft"));this.L("paddingTop")&&(this.mya(this.B("paddingTop")), 616this.S("paddingTop"));this.L("paddingRight")&&(this.lya(this.B("paddingRight")),this.S("paddingRight"));this.L("paddingBottom")&&(this.jya(this.B("paddingBottom")),this.S("paddingBottom"));b=!1;this.L("borderRadius")&&(this.S("borderRadius"),b=!0);d=!1;this.L("borderLeftRadius")&&(this.S("borderLeftRadius"),d=!0);var e=!1;this.L("borderTopRadius")&&(this.S("borderTopRadius"),e=!0);var n=!1;this.L("borderRightRadius")&&(this.S("borderRightRadius"),n=!0);var q=!1;this.L("borderBottomRadius")&&(this.S("borderBottomRadius"), 617q=!0);if(this.L("borderTopLeftRadius")||e||d||b)this.fZa(this.B("borderTopLeftRadius","borderLeftRadius","borderTopRadius","borderRadius")),this.S("borderTopLeftRadius");if(this.L("borderTopRightRadius")||e||n||b)this.gZa(this.B("borderTopRightRadius","borderRightRadius","borderTopRadius","borderRadius")),this.S("borderTopRightRadius");if(this.L("borderBottomLeftRadius")||q||d||b)this.YYa(this.B("borderBottomLeftRadius","borderLeftRadius","borderBottomRadius","borderRadius")),this.S("borderBottomLeftRadius"); 618if(this.L("borderBottomRightRadius")||q||n||b)this.ZYa(this.B("borderBottomRightRadius","borderRightRadius","borderBottomRadius","borderRadius")),this.S("borderBottomRightRadius");b=!1;this.L("borderSize")&&(this.S("borderSize"),b=!0);if(this.L("borderLeftSize")||b)this.bZa(this.B("borderLeftSize","borderSize")),this.S("borderLeftSize");if(this.L("borderTopSize")||b)this.hZa(this.B("borderTopSize","borderSize")),this.S("borderTopSize");if(this.L("borderRightSize")||b)this.dZa(this.B("borderRightSize", 619"borderSize")),this.S("borderRightSize");if(this.L("borderBottomSize")||b)this.$Ya(this.B("borderBottomSize","borderSize")),this.S("borderBottomSize");b=!1;this.L("borderColor")&&(this.S("borderColor"),b=!0);if(this.L("borderLeftColor")||b)this.aZa(this.B("borderLeftColor","borderColor")),this.S("borderLeftColor");
619if(this.L("borderTopColor")||b)this.eZa(this.B("borderTopColor","borderColor")),this.S("borderTopColor");if(this.L("borderRightColor")||b)this.cZa(this.B("borderRightColor","borderColor")), 620this.S("borderRightColor");if(this.L("borderBottomColor")||b)this.XYa(this.B("borderBottomColor","borderColor")),this.S("borderBottomColor");this.L("shadow")&&(this.i0(this.B("shadow")),this.S("shadow"));this.L("shadowHorizontalLength")&&(this.YZa(this.B("shadowHorizontalLength")),this.S("shadowHorizontalLength"));this.L("shadowVerticalLength")&&(this.a_a(this.B("shadowVerticalLength")),this.S("shadowVerticalLength"));this.L("shadowBlurRadius")&&(this.WZa(this.B("shadowBlurRadius")),this.S("shadowBlurRadius")); 621this.L("shadowSpread")&&(this.$Za(this.B("shadowSpread")),this.S("shadowSpread"));this.L("shadowColor")&&(this.XZa(this.B("shadowColor")),this.S("shadowColor"));this.L("tabIndex")&&(this.d_a(this.B("tabIndex")),this.S("tabIndex"));b=!1;this.L("opacity")&&(this.Mh(this.B("opacity")),this.S("opacity"),b=!0);if(this.L("shadowOpacity")||b)this.ZZa(this.B("shadowOpacity","opacity")),this.S("shadowOpacity");this.L("backgroundOpacity")&&(this.TYa(this.B("backgroundOpacity")),this.S("backgroundOpacity")); 622this.L("backgroundColor")&&(this.PYa(this.B("backgroundColor")),this.S("backgroundColor"));this.L("backgroundColorRatios")&&(this.RYa(this.B("backgroundColorRatios")),this.S("backgroundColorRatios"));this.L("backgroundColorDirection")&&(this.QYa(this.B("backgroundColorDirection")),this.S("backgroundColorDirection"));this.L("backgroundImageUrl")&&(this.SYa(this.B("backgroundImageUrl")),this.S("backgroundImageUrl"));this.L("ariaRole")&&(this.OYa(this.B("ariaRole")),this.S("ariaRole"));this.NYa(this.Iv()); 623h.prototype.bb.call(this)};g.Ap=function(b){if(f(b).isString()&&(b=b.match(/^\s*([+-]?\d+\.?\d*)\s*%\s*$/))&&2<=b.length)return parseFloat(b[1])};return g});define("kg",["require","es","lQ","cI"],function(a){var f=a("es"),l=a("lQ"),m=a("cI");return l.extend(m,function(k,c,h,g,b,d,e,n){f.isNumber(c)||(c=1);f.isNumber(h)||(h=0);m.call(this,k);this.scale=c;this.rotation=h;this.x=g;this.y=b;this.pageX=d;this.pageY=e;this.touches=n||[]})}); 624define("pA",["require","exports","cI"],function(a,f,l){return function(m){function k(c,h,g,b,d,e,n,q){c=m.call(this,c)||this;c.x=h;c.y=g;c.pageX=b;c.pageY=d;c.delta=e;c.DS=n;c.originalEvent=q;c.movementX=q?q.movementX:0;c.movementY=q?q.movementY:0;return c}Z(k,m);return k}(l)}); 625define("e","require jquery.mod es lQ pw hf my S kg pA gV w mQ".split(" "),function(a){var f=a("jquery.mod"),l=a("es"),m=a("lQ"),k=a("pw"),c=a("hf"),h=a("my"),g=a("S"),b=a("kg"),d=a("pA");a("gV");var e=a("w");a=a("mQ");var n=m.extend(g,function(){g.call(this);this.Qe("UIComponent");this.pX=[];this.Vta=0;this.hca=void 0;this.kRa=500;this.Oc=1;this.Fo=e.u5();this.LO=this.ww=this.nY=!1;this.set("propagateClick",!0)});n.Fc={autoRolledOver:!1,autoPressed:!1,contentOpaque:!0,cursor:void 0,inheritedCursor:void 0, 626inheritedInteractionEnabled:!0,interactionEnabled:!0,rollOverOpacity:[c.aa,"opacity"],rollOverShadow:[c.aa,"shadow"],toolTipFollowMouse:!1};l.defaults(n.Fc,g.Fc);n.prototype.yb=function(){this.Ao(n.Fc)};n.prototype.hpa=function(){this.qya(!0)};n.prototype.gpa=function(){this.qya(!1)};n.prototype.epa=function(){this.bK(!0)};n.prototype.fpa=function(){this.bK(!1)};n.prototype.XQ=function(p){this.ww!=p&&(this.ww=p,this.yg())};n.prototype.bK=function(p){this.LO!=p&&(this.LO=p,this.yg())};n.prototype.qya= 627function(p){this.nY!=p&&(this.nY=p,this.yg())};n.prototype.yg=function(){this.ww?this.cK(c.ja):this.LO&&this.nY?this.cK(c.jc):this.LO?this.cK(c.Ab):this.nY?this.cK(c.aa):this.cK(c.Ie)};n.prototype.trigger=function(){g.prototype.trigger.apply(this,arguments)};n.prototype.wza=function(p,r){this.trigger(new d(k.gb,p.x,p.y,p.pageX,p.pageY,void 0,void 0,r&&r.originalEvent))};n.prototype.xza=function(p,r){this.trigger(new d(k.Pb,p.x,p.y,p.pageX,p.pageY,void 0,void 0,r&&r.originalEvent))};n.prototype.yza= 628function(p,r){this.trigger(new d(k.Eb,p.x,p.y,p.pageX,p.pageY,void 0,void 0,r&&r.originalEvent))};n.prototype.H0a=function(p,r,t){this.trigger(new d(k.Gs,p.x,p.y,p.pageX,p.pageY,r.delta,r.DS,t&&t.originalEvent))};n.prototype.tza=function(p){this.trigger(new d(k.ma,p.x,p.y,p.pageX,p.pageY))};n.prototype.uza=function(p){this.trigger(new d(k.Al,p.x,p.y,p.pageX,p.pageY))};n.prototype.K0a=function(){this.trigger(new d(k.Dc))};n.prototype.J0a=function(){this.trigger(new d(k.Jb))};n.prototype.F0a=function(){this.trigger(new d(k.IC))}; 629n.prototype.G0a=function(){this.trigger(new d(k.Zp))};n.prototype.E0a=function(p,r,t){this.trigger(new b(k.az,p,r,t.x,t.y,t.pageX,t.pageY,t.touches))};n.prototype.A0a=function(p,r,t){this.trigger(new b(k.O6,p,r,t.x,t.y,t.pageX,t.pageY,t.touches))};n.prototype.B0a=function(p,r,t){this.trigger(new b(k.tH,p,r,t.x,t.y,t.pageX,t.pageY,t.touches))};n.prototype.C0a=function(p){this.trigger(new b(k.DLa,void 0,p))};n.prototype.D0a=function(p){this.trigger(new b(k.uH,p))};n.prototype.ufa=function(p){p.stopImmediatePropagation(); 630this.yI(["touchend"]);this.fta(p)?this.Jda(p):this.bxa(p,!0)};n.prototype.bxa=function(p,r){var t=this.RD(p);r&&this.s0a(t);this.wza(t,p);this.ta&&this.ta.bxa(p,r&&this.get("propagateClick"))};n.prototype.tfa=function(p){p.preventDefault();p.stopImmediatePropagation();this.fta(p)?this.Hda(p):this.axa(p)};n.prototype.axa=function(p){var r=this.RD(p);this.r0a(r);this.xza(r,p);this.ta&&this.ta.axa(p)};n.prototype.R$=function(p,r){var t=p.pageX-r.pageX;p=p.pageY-r.pageY;return Math.sqrt(t*t+p*p)};n.prototype.ZA= 631function(p,r){this.VN(["touchend"]);!1!==r&&p.preventDefault();p.stopImmediatePropagation();this.MJ?this.Ida(p):(r=this.RD(p),this.$wa(p,this.eta(r)),this.Tsa(r));this.MJ=null;this.pN()};n.prototype.$wa=function(p,r){var t=this.RD(p);this.yza(t,p);this.q0a(r);this.ta&&this.ta.$wa(p,r)};n.prototype.s0a=function(p){this.bind(k.Jb,this.mza,this,!0);this.lF=p};n.prototype.r0a=function(p){if(this.lF){p=this.R$(this.lF,p);
631if(e.pb()){var r=this.Db();r=.01*n.dNa*Math.min(r.Za(),r.Cb())}else r=n.jNa;p>r&& 632this.O0()}};n.prototype.q0a=function(p){this.lF&&(this.tza(this.lF),p&&this.uza(this.lF),this.O0())};n.prototype.O0=function(){this.lF&&(this.unbind(k.Jb,this.mza,this),this.lF=void 0)};n.prototype.mza=function(){this.O0()};n.prototype.L$=function(p){this.yI(["gesturechange","gestureend"]);p.preventDefault();p.stopImmediatePropagation();this.Jda(p)};n.prototype.Jda=function(p){var r=this.Y$(p);this.MJ=r;this.E0a(r.scale,r.rotation,r.coordinates);this.ta&&this.ta.Jda(p)};n.prototype.xra=function(p){p.preventDefault(); 633p.stopImmediatePropagation();this.Hda(p)};n.prototype.Hda=function(p){var r=this.Y$(p,this.MJ),t=r.rotation-this.MJ.rotation,u=r.scale/this.MJ.scale;this.MJ=r;this.Oc*=u;for(this.Xk+=t;180<this.Xk;)this.Xk-=360;for(;-180>this.Xk;)this.Xk+=360;this.A0a(this.Oc,this.Xk,r.coordinates);0!=t&&this.C0a(this.Xk);1!=u&&this.D0a(this.Oc);this.O0();this.ta&&this.ta.Hda(p)};n.prototype.zra=function(p){this.VN(["gesturechange","gestureend"]);p.preventDefault();p.stopImmediatePropagation();this.Ida(p)};n.prototype.Ida= 634function(p){var r=this.Y$(p);this.B0a(this.Oc,this.Xk,r.coordinates);this.ta&&this.ta.Ida(p)};n.prototype.cca=function(p){this.yI(["mouseup"]);p.stopImmediatePropagation();this.Wwa(p,!0);q&&this.uVa(p.ctrlKey)};n.prototype.Wwa=function(p,r){var t=this.Zz(p);r&&this.IPa(t);this.wza(t,p);this.ta&&this.ta.Wwa(p,r&&this.get("propagateClick"))};n.prototype.gca=function(p){p.preventDefault();p.stopImmediatePropagation();this.Db().IG(this);this.Xwa(p)};n.prototype.Xwa=function(p){var r=this.Zz(p);this.HPa(r); 635this.xza(r,p);this.ta&&this.ta.Xwa(p)};n.prototype.UY=function(p){this.VN(["mouseup"]);p.preventDefault();p.stopImmediatePropagation();var r=this.Zz(p);this.Ywa(p,this.eta(r));this.Tsa(r)};n.prototype.Ywa=function(p,r){var t=this.Zz(p);this.yza(t);this.GPa(r);this.ta&&this.ta.Ywa(p,r)};n.prototype.IPa=function(p){this.bind(k.Jb,this.Vpa,this,!0);this.uD=p};n.prototype.HPa=function(p){this.uD&&this.R$(this.uD,p)>n.XMa&&this.U8()};n.prototype.GPa=function(p){this.uD&&(this.tza(this.uD),p&&this.uza(this.uD), 636this.U8())};n.prototype.U8=function(){this.uD&&(this.unbind(k.Jb,this.Vpa,this),this.uD=void 0)};n.prototype.Vpa=function(){this.U8()};n.prototype.Xta=function(p){this.kb.Wta&&(p.preventDefault(),p.stopImmediatePropagation(),this.Zwa(p))};n.prototype.Bpa=function(){return!1};n.prototype.Zwa=function(p){var r=this.Zz(p),t=this.lTa(p);this.ta&&!this.Bpa(t.delta)&&this.ta.Zwa(p);this.H0a(r,t,p)};n.prototype.Zz=function(p){return this.IX(p.pageX,p.pageY)};n.prototype.lTa=function(p){p=window.event||p.originalEvent|| 637p;var r={};r.delta=Math.max(-1,Math.min(1,p.wheelDelta||-p.detail));r.DS=p.wheelDelta?.01*p.wheelDelta:r.delta;return r};n.prototype.RD=function(p){var r=this.W$(p);if(void 0===r){var t=void 0!==p.pageX?this.IX(p.pageX,p.pageY):this.IX(p.originalEvent.pageX,p.originalEvent.pageY);t.touches=[t]}else 0==r.length?t=this.JXa:(t={x:0,y:0,pageX:0,pageY:0,IB:0,JB:0,touches:[]},Array.from(r).forEach(function(u){u||(u=r[0]);u=this.IX(u.pageX,u.pageY);t.x+=u.x;t.y+=u.y;t.pageX+=u.pageX;t.pageY+=u.pageY;t.IB+= 638u.IB;t.JB+=u.JB;t.touches.push(u)}.bind(this)),t.x/=r.length,t.y/=r.length,t.pageX/=r.length,t.pageY/=r.length,t.IB/=r.length,t.JB/=r.length);return this.JXa=t};n.prototype.fta=function(p){if((p=this.W$(p))&&1<p.length)for(var r=0,t=0;t<p.length;t++)if(this.QUa(p[t].target)&&(r++,1<r))return!0;return!1};n.prototype.QUa=function(p){for(;p;){if(p==this.mc)return!0;p=p.parentNode}return!1};n.prototype.W$=function(p){return p.originalEvent.touches||p.originalEvent.targetTouches||p.originalEvent.changedTouches}; 639n.prototype.IX=function(p,r){var t=this.gd().offset(),u=this.kb?this.kb.DA:1,v={};v.x=(p-t.left)/u;v.y=(r-t.top)/u;v.pageX=p/u;v.pageY=r/u;v.IB=p;v.JB=r;return v};n.prototype.Y$=function(p,r){var t=this.RD(p);return void 0!==p.originalEvent.scale||void 0!==p.originalEvent.rotation?{coordinates:t,scale:p.originalEvent.scale,rotation:p.originalEvent.rotation}:r?(p=this.Zra(p),{coordinates:t,scale:r.scale*p/r.touchesDistance,rotation:0,touchesDistance:p}):{coordinates:t,scale:1,rotation:0,touchesDistance:this.Zra(p)}}; 640n.prototype.Zra=function(p){var r=this.W$(p);return r&&1<r.length?(p=Math.abs(r[0].pageX-r[1].pageX),r=Math.abs(r[0].pageY-r[1].pageY),Math.sqrt(p*p+r*r)):0};n.prototype.yI=function(p){this.pX=l(this.pX).union(p);p=this.Yra(p);for(var r=0;r<p.length;r++){var t=p[r];t.target.bind(t.name,t.handler)}};n.prototype.Tsa=function(p){this.Vta=(new Date).getTime();this.hca=p};n.prototype.eta=function(p){if((new Date).getTime()-this.Vta>this.kRa||!this.hca)return!1;p=this.R$(this.hca,p);
640if(e.pb()){var r=this.Db(); 641r=.01*n.cNa*Math.min(r.Za(),r.Cb())}else r=n.YMa;return p>r?!1:!0};n.prototype.VN=function(p){this.pX=l(this.pX).difference(p);p=this.Yra(p);for(var r=0;r<p.length;r++){var t=p[r];t.target.unbind(t.name,t.handler)}};n.prototype.Yra=function(p){this.kra||(this.kra=this.V$());for(var r=[],t=0;t<p.length;t++)r=r.concat(this.kra[p[t]]);return r};n.prototype.V$=function(){var p=this.gd(),r=f(document),t=f(window);return{touchstart:[{target:p,name:"touchstart",handler:this.Hh(this.ufa)}],touchmove:[{target:p, 642name:"touchmove",handler:this.Hh(this.tfa)}],touchend:[{target:p,name:"touchend",handler:this.Hh(this.ZA,!0)},{target:r,name:"touchend",handler:this.Hh(this.ZA,!0)},{target:p,name:"touchcancel",handler:this.Hh(this.ZA,!0)},{target:r,name:"touchcancel",handler:this.Hh(this.ZA,!0)}],gesturestart:[{target:p,name:"gesturestart",handler:this.Hh(this.L$)}],gesturechange:[{target:p,name:"gesturechange",handler:this.Hh(this.xra)}],gestureend:[{target:p,name:"gestureend",handler:this.Hh(this.zra)}],mousedown:[{target:p, 643name:"mousedown",handler:this.Hh(this.cca)}],mousemove:[{target:p,name:"mousemove",handler:this.Hh(this.gca)}],mouseup:[{target:p,name:"mouseup",handler:this.Hh(this.UY,!0)},{target:t,name:"mouseup",handler:this.Hh(this.UY,!0)}],mousewheel:[{target:p,name:"mousewheel",handler:this.Hh(this.Xta)},{target:p,name:"DOMMouseScroll",handler:this.Hh(this.Xta)}]}};n.prototype.Hh=function(p,r){var t=this;return function(){r&&h.C5();n.i1+=1;var u=p.apply(t,arguments);--n.i1;return u}};n.prototype.bb=function(){this.L("autoRolledOver")&& 644(this.unbind(k.Dc,this.hpa,this),this.unbind(k.Jb,this.gpa,this),this.B("autoRolledOver")&&(this.bind(k.Dc,this.hpa,this),this.bind(k.Jb,this.gpa,this)),this.S("autoRolledOver"));this.L("autoPressed")&&(this.unbind(k.gb,this.epa),this.unbind(k.Eb,this.fpa),this.B("autoPressed")&&(this.bind(k.gb,this.epa),this.bind(k.Eb,this.fpa)),this.S("autoPressed"));var p=!1;this.L("contentOpaque")&&(p=!0,this.S("contentOpaque"));this.L("inheritedInteractionEnabled")&&(p=!0,this.S("inheritedInteractionEnabled")); 645this.L("interactionEnabled")&&(p=!0,this.S("interactionEnabled"));if(this.L("backgroundOpacity")||this.L("backgroundColor"))p=!0;g.prototype.bb.call(this);if(p){var r=this.bd();r=0<r.il()&&0<r.vD.length;var t=this.B("contentOpaque"),u=this.B("inheritedInteractionEnabled"),v=this.B("interactionEnabled");this.$E(u&&v&&(t||r))}if(p||this.L("cursor")||this.L("inheritedCursor"))this.S("cursor"),this.S("inheritedCursor"),this.aW?this.TA(this.B("cursor")):this.TA(this.B("inheritedCursor"))};n.prototype.$E= 646function(p){this.aW!=p&&((this.aW=p)?this.yI(n.Foa):this.VN(n.Foa),this.pN())};n.prototype.pN=function(){this.je().style["pointer-events"]=this.rsa()};n.prototype.rsa=function(){return this.aW?"auto":"none"};n.prototype.uVa=function(p){if(p){p=[];for(var r=this;r;)p.push(r),r=r.getParent();console.log(p.map(function(t){return t.pq}))}else console.log(this.pq)};n.p3=function(){return 0<n.i1};n.Foa=function(){var p=[];p=p.concat(["touchstart","touchmove"]);e.zd()!=e.yi&&(p=p.concat(["mousedown","mousemove", 647"mousewheel"]));return p}();n.i1=0;n.odb=1E3;n.jNa=10;n.dNa=5;n.XMa=10;n.cNa=10;n.YMa=10;var q=a.lg("debug");return n});define("d",["require"],function(){return{hV:"absolute",Gg:"horizontal",cz:"grid",Xh:"vertical"}});define("cJ",["require"],function(){return function(a){this.Md=a;this.height=this.width=this.y=this.x=0}});define("dR",["require"],function(){return function(){this.minHeight=this.minWidth=this.height=this.width=0}}); 648define("cn",["require","nA","cJ","dR"],function(a){function f(){this.Zc=null;this.vm=l.Ec;this.Sl=l.ab;this.wF=this.rw=0}var l=a("nA"),m=a("cJ"),k=a("dR");f.prototype.kIa=function(c){this.rw!=c&&(this.rw=c,this.hf())};f.prototype.V4=function(c){this.wF!=c&&(this.wF=c,this.hf())};f.prototype.IIa=function(c){this.Zc=c;this.hf()};f.prototype.jM=function(c){this.Sl!=c&&(this.Sl=c,this.hf())};f.prototype.qM=function(c){this.vm!=c&&(this.vm=c,this.hf())};f.prototype.measure=function(){return new k};f.prototype.update= 649function(){var c=this.hQa();this.sK(c);this.pZa(c)};f.prototype.sK=function(c){this.LR(c);this.KR(c)};f.prototype.LX=function(){for(var c=this.Asa(),h=[],g=0;g<c.length;g++){var b=c[g];b.get("includeInLayout")&&h.push(b)}return h};f.prototype.Asa=function(){for(var c=this.Zc.ob(),h=[],g=0;g<c.length;g++){var b=c[g];b.get("visible")&&h.push(b)}return h};f.prototype.hQa=function(){for(var c=this.Asa(),h=[],g=0;g<c.length;g++)h.push(new m(c[g]));return h};f.prototype.pZa=function(c){for(var h=0;h<c.length;h++){var g= 650c[h];g.Md.VHa(g.x,g.y,g.width,g.height)}};f.prototype.hf=function(){this.Zc&&(this.Zc.hc(),this.Zc.Xd())};return f});
651define("dK",["require","lQ","nA","cn","dR"],function(a){var f=a("lQ");a("nA");var l=a("cn"),m=a("dR");a=f.extend(l,function(){l.call(this)});a.prototype.measure=function(){for(var k=new m,c=this.LX(),h=0;h<c.length;h++){var g=c[h],b=g.Aw,d=g.KQ,e=0;isNaN(b)||(e+=b);isNaN(d)||(e+=d);k.width=Math.max(e+g.ru(),k.width);k.minWidth=Math.max(e+g.ou(),k.minWidth);b=g.sr;d=g.wN;e=0;isNaN(b)||(e+=b);isNaN(d)||(e+=d);k.height=Math.max(e+g.qu(),k.height);k.minHeight=Math.max(e+g.Yx(),k.minHeight)}c=this.Zc.Bm()+ 652this.Zc.lu();k.width+=c;k.minWidth+=c;c=this.Zc.mu()+this.Zc.mL();k.height+=c;k.minHeight+=c;return k};a.prototype.sK=function(k){this.LR(k);this.KR(k)};a.prototype.sK=function(k){for(var c=this.Zc.zf(),h=this.Zc.yf(),g=0;g<k.length;g++){var b=k[g],d=b.Md,e=d.Aw;if(isNaN(e)){var n=d.i_;isNaN(n)||(e=Math.round(n*c*.01))}n=d.KQ;if(isNaN(n)){var q=d.j_;isNaN(q)||(n=Math.round(q*c*.01))}q=d.Ez;var p=d.qn;if(isNaN(p)){var r=d.Jn;isNaN(r)?isNaN(e)||isNaN(n)||(p=c-e-n):p=Math.round(r*c*.01)}r=d.sr;if(isNaN(r)){var t= 653d.k_;isNaN(t)||(r=Math.round(t*h*.01))}t=d.wN;if(isNaN(t)){var u=d.h_;isNaN(u)||(t=Math.round(u*h*.01))}u=d.Fz;var v=d.GD;if(isNaN(v)){var w=d.In;isNaN(w)?isNaN(r)||isNaN(t)||(v=h-r-t):v=Math.round(w*h*.01)}b.width=isNaN(p)?d.ru():Math.max(d.ou(),Math.min(d.R2(),p));b.height=isNaN(v)?d.qu():Math.max(d.Yx(),Math.min(d.Q2(),v));b.x=isNaN(e)||isNaN(n)?isNaN(e)?isNaN(n)?isNaN(q)?0:Math.round(.5*c+q-.5*b.width):c-n-b.width:e:Math.round(e+.5*(c-n-e-b.width));b.y=isNaN(r)||isNaN(t)?isNaN(r)?isNaN(t)?isNaN(u)? 6540:Math.round(.5*h+u-.5*b.height):h-t-b.height:r:Math.round(r+.5*(h-t-r-b.height))}};return a}); 655define("kN",["require","lQ","nA","cn","dR"],function(a){var f=a("lQ"),l=a("nA"),m=a("cn"),k=a("dR");a=f.extend(m,function(){m.call(this);this.Bxa=this.Ypa=this.OO=this.PO=this.QO=this.gE=this.xw=this.yw=this.SO=this.jA=this.qn=void 0});a.prototype.j$a=function(c){this.qn!=c&&(this.qn=c,this.hf())};a.prototype.B$a=function(c){this.yw!=c&&(this.yw=c,void 0!=this.yw&&(this.jA=void 0),this.hf())};a.prototype.A$a=function(c){this.xw!=c&&(this.xw=c,void 0!=this.xw&&(this.SO=void 0),this.hf())};a.prototype.J$a= 656function(c){this.jA!=c&&(this.jA=c,void 0!=this.yw&&(this.yw=void 0),this.hf())};a.prototype.I$a=function(c){this.SO!=c&&(this.SO=c,void 0!=this.xw&&(this.xw=void 0),this.hf())};a.prototype.G$a=function(c){this.gE!=c&&(this.gE=c,this.hf())};a.prototype.F$a=function(c){this.QO!=c&&(this.QO=c,this.hf())};a.prototype.E$a=function(c){this.PO!=c&&(this.PO=c,this.hf())};a.prototype.D$a=function(c){this.OO!=c&&(this.OO=c,this.hf())};a.prototype.measure=function(){for(var c=new k,h=this.LX(),g=0,b=0;b<h.length;b++)h[b].get("includeInLayout")&& 657g++;if(!isNaN(this.jA))for(isNaN(this.gE)||(c.minWidth=this.gE),b=0;b<h.length;b++){var d=h[b].ou();isNaN(d)||(c.minWidth=Math.max(d,c.minWidth))}if(isNaN(this.yw))for(b=0;b<h.length;b++)d=h[b].ru(),isNaN(d)||(c.width=Math.max(d,c.width));else c.width=this.yw;if(isNaN(this.xw))for(b=0;b<h.length;b++)d=h[b].qu(),isNaN(d)||(c.height=Math.max(d,c.height));else c.height=this.xw;isNaN(this.jA)?isNaN(this.qn)?h=Math.ceil(Math.sqrt(g)):(h=this.qn-this.Zc.Bm()-this.Zc.lu(),h=Math.max(1,Math.floor((h+this.rw)/ 658(c.width+this.rw)))):h=Math.max(1,Math.floor(100/this.jA));g=Math.ceil(g/h);c.width=c.width*h+Math.max(0,h-1)*this.rw+this.Zc.Bm()+this.Zc.lu();c.minWidth=c.minWidth+this.Zc.Bm()+this.Zc.lu();c.height=c.height*g+Math.max(0,g-1)*this.wF+this.Zc.mu()+this.Zc.mL();c.minHeight=0;return c};a.prototype.sK=function(c){for(var h,g,b=[],d=[],e=0;e<c.length;e++)g=c[e].Md,g.get("includeInLayout")?b.push(c[e]):d.push(c[e]);var n=b.length,q=this.Zc.zf(),p=this.rw;if(isNaN(this.yw))if(isNaN(this.jA)){for(e=c=0;e< 659b.length;e++)g=b[e].Md,c=Math.max(g.ou(),g.ru(),c);c=Math.min(q,c)}else c=Math.max(1,Math.floor(100/this.jA)),c=(q-(c-1)*p)/c,e=!1,!isNaN(this.PO)&&this.PO<c&&(c=this.PO,e=!0),!isNaN(this.gE)&&this.gE>c&&(c=this.gE,e=!0),e&&(c=Math.max(1,Math.floor((q+p)/(c+p))),c=(q-(c-1)*p)/c);else c=this.yw;c=Math.max(1,c);var r=Math.max(1,Math.floor(.001+(q+p)/(c+p)));e=r*c;var t=r*(c+p)-p,u=0;if(q>=t)switch(this.Sl){case l.tb:u=q-t;break;case l.Ye:u=Math.round(.5*(q-t));break;default:u=0}q=[];t=[];for(var v= 6600;v<r;v++)g=Math.round(e/(r-v)),e-=g,t.push(u),u+=g+p,q.push(g);u=this.Zc.yf();v=this.wF;if(isNaN(this.xw))if(isNaN(this.SO))for(p=1,e=0;e<b.length;e++)g=b[e].Md,p=Math.max(g.Yx(),g.qu(),p);else p=Math.max(1,100/this.SO),p=(u-(p-1)*v)/p,e=!1,!isNaN(this.OO)&&this.OO<p&&(p=this.OO,e=!0),!isNaN(this.QO)&&this.QO>p&&(p=this.QO,e=!0),e&&(p=Math.max(1,Math.floor((u+v)/(p+v))),p=(u-(p-1)*v)/p);else p=this.xw;n=Math.max(1,Math.ceil(n/r));e=n*p;g=n*(p+v)-v;h=0;if(u>=g)switch(this.vm){case l.wc:h=u-g;break; 661case l.qe:h=Math.round(.5*(u-g))}u=[];g=[];for(var w=0;w<n;w++){var x=Math.round(e/(n-w));e-=x;g.push(h);h+=x+v;u.push(x)}for(e=0;e<b.length;e++)h=b[e],v=e%r,w=Math.floor(e/r),h.x=t[v],h.width=q[v],h.y=g[w],h.height=u[w];for(e=0;e<d.length;e++)h=d[e],h.x=0,h.width=Math.round(c),h.y=0,h.height=Math.round(p);this.Ypa=r;this.Bxa=n};return a});
662define("lO",["require","lQ","nA","cn","dR"],function(a){var f=a("lQ"),l=a("nA"),m=a("cn"),k=a("dR");a=f.extend(m,function(){m.call(this)});a.prototype.measure=function(){for(var c=new k,h=this.LX(),g=0;g<h.length;g++){var b=h[g];c.height=Math.max(b.qu(),c.height);c.minHeight=Math.max(b.Yx(),c.minHeight);c.width+=b.ru();c.minWidth+=b.ou()}h=Math.max(0,h.length-1)*this.rw+this.Zc.Bm()+this.Zc.lu();c.width+=h;c.minWidth+=h;h=this.Zc.mu()+this.Zc.mL();c.height+=h;c.minHeight+=h;return c};a.prototype.sK= 663function(c){this.LR(c);this.KR(c)};a.prototype.LR=function(c){for(var h=0,g=0;g<c.length;g++)c[g].Md.get("includeInLayout")&&h++;g=Math.max(0,h-1)*this.rw;var b=this.Zc.zf()-g,d=this.Zc.yf();h=b;var e=0,n=[];for(g=0;g<c.length;g++){var q=c[g],p=q.Md,r=p.In;q.height=isNaN(r)?p.qu():Math.max(p.Yx(),Math.min(p.Q2(),Math.round(d*r*.01)));r=p.Jn;isNaN(r)?(q.width=p.ru(),h-=q.width):p.get("includeInLayout")?(e+=r,n.push(q)):q.width=Math.max(p.ou(),Math.min(p.R2(),Math.round(b*r*.01)))}h-=Math.max(0,h-b* 664e*.01);do{c=!1;b=Math.max(0,0<e?h/e:0);d=[];for(g=e=0;g<n.length;g++){q=n[g];p=q.Md;r=Math.round(p.Jn*b);var t=p.ou(),u=p.R2();r<t?(q.width=t,h-=q.width,c=!0):r>u?(q.width=u,h-=q.width,c=!0):(e+=p.Jn,d.push(q))}n=d}while(c);for(g=0;g<n.length;g++)q=n[g],p=q.Md,b=Math.max(0,0<e?h/e:0),q.width=Math.round(p.Jn*b),h-=q.width,e-=p.Jn};a.prototype.KR=function(c){for(var h=this.rw,g=this.Zc.zf(),b=this.Zc.yf(),d=0,e=0,n=0;n<c.length;n++){var q=c[n];q.Md.get("includeInLayout")&&(d+=c[n].width,e++)}d+=h*(e- 6651);if(g>=d)switch(this.Sl){case l.tb:g-=d;break;case l.Ye:g=Math.round(.5*(g-d));break;default:g=0}else g=0;for(n=0;n<c.length;n++)if(q=c[n],q.Md.get("includeInLayout")){if(b>=q.height)switch(this.vm){case l.wc:q.y=b-q.height;break;case l.qe:q.y=Math.round(.5*(b-q.height));break;default:q.y=0}else q.y=0;q.x=g;g+=q.width+h}else q.x=0,q.y=0};return a}); 666define("do",["require","lQ","nA","cn","dR"],function(a){var f=a("lQ"),l=a("nA"),m=a("cn"),k=a("dR");a=f.extend(m,function(){m.call(this)});a.prototype.measure=function(){for(var c=new k,h=this.LX(),g=0;g<h.length;g++){var b=h[g];c.width=Math.max(b.ru(),c.width);c.minWidth=Math.max(b.ou(),c.minWidth);c.height+=b.qu();c.minHeight+=b.Yx()}h=Math.max(0,h.length-1)*this.wF+this.Zc.mu()+this.Zc.mL();c.height+=h;c.minHeight+=h;h=this.Zc.Bm()+this.Zc.lu();c.width+=h;c.minWidth+=h;return c};a.prototype.sK= 667function(c){this.LR(c);this.KR(c)};a.prototype.LR=function(c){for(var h=0,g=0;g<c.length;g++)c[g].Md.get("includeInLayout")&&h++;g=Math.max(0,h-1)*this.wF;var b=this.Zc.zf(),d=this.Zc.yf()-g;h=d;var e=0,n=[];for(g=0;g<c.length;g++){var q=c[g],p=q.Md,r=p.Jn;q.width=isNaN(r)?p.ru():Math.max(p.ou(),Math.min(p.R2(),Math.round(b*r*.01)));r=p.In;isNaN(r)?(q.height=p.qu(),h-=q.height):p.get("includeInLayout")?(e+=r,n.push(q)):q.height=Math.max(p.Yx(),Math.min(p.Q2(),Math.round(d*r*.01)))}h-=Math.max(0,h- 668d*e*.01);do{c=!1;b=Math.max(0,0<e?h/e:0);d=[];for(g=e=0;g<n.length;g++){q=n[g];p=q.Md;r=Math.round(p.In*b);var t=p.Yx(),u=p.Q2();r<t?(q.height=t,h-=q.height,c=!0):r>u?(q.height=u,h-=q.height,c=!0):(e+=p.In,d.push(q))}n=d}while(c);for(g=0;g<n.length;g++)q=n[g],p=q.Md,b=Math.max(0,0<e?h/e:0),q.height=Math.round(p.In*b),h-=q.height,e-=p.In};a.prototype.KR=function(c){for(var h=this.wF,g=this.Zc.zf(),b=this.Zc.yf(),d=0,e=0,n=0;n<c.length;n++){var q=c[n];q.Md.get("includeInLayout")&&(d+=q.height,q.width> 669g&&(g=q.width),e++)}d+=h*(e-1);if(b>=d)switch(this.vm){case l.wc:b-=d;break;case l.qe:b=Math.round(.5*(b-d));break;default:b=0}else b=0;for(n=0;n<c.length;n++)if(q=c[n],q.Md.get("includeInLayout")){switch(this.Sl){case l.tb:q.x=g-q.width;break;case l.Ye:q.x=Math.round(.5*(g-q.width));break;default:q.x=0}q.y=b;b+=q.height+h}else q.x=0,q.y=0};return a}); 670define("n","require lQ es e S nA cZ d dK kN lO do".split(" "),function(a){var f=a("lQ"),l=a("es"),m=a("e"),k=a("S"),c=a("nA"),h=a("cZ"),g=a("d"),b=a("dK"),d=a("kN"),e=a("lO"),n=a("do"),q=f.extend(m,function(){m.call(this);this.Qe("BaseContainer");this.Wl=null;this.Zd=[];this.xq=[];this.SN=h.mma;this.set("contentOpaque",!1)});q.Fc={children:[[]],childrenInteractionEnabled:!0,gap:0,horizontalAlign:c.ab,itemHeight:void 0,itemMaxHeight:void 0,itemMaxWidth:void 0,itemMinHeight:void 0,itemMinWidth:void 0, 671itemWidth:void 0,layout:g.hV,verticalAlign:c.Ec};l.defaults(q.Fc,m.Fc);q.prototype.yb=function(){this.Ao(q.Fc)};q.prototype.set=function(p,r){"children"==p?this.ph(r):"creationPolicy"==p?this.b$a(r):m.prototype.set.call(this,p,r)};q.prototype.get=function(p,r){return"children"==p?this.ob():"creationPolicy"==p?this.SN:m.prototype.get.call(this,p,r)};q.prototype.b$a=function(p){this.SN!=p&&(this.SN=p,this.Nfa())};q.prototype.ph=function(p){var r=this.ob();p=p||[];for(var t=l(r).difference(p),u=0;u< 672t.length;u++)this.removeChild(t[u]);r=l(p).difference(r);for(u=0;
672u<r.length;u++)this.Ya(r[u]);for(u=0;u<p.length;u++)this.ao(p[u],u)};q.prototype.ob=function(){return this.Zd};q.prototype.Ya=function(p){p.getParent()&&p.getParent().removeChild(p);this.Zd.push(p);p.ta=this;this.Xoa(p);p.Aea(this.Iq);this.xq.push(p);this.Nfa();p.mq()};q.prototype.removeChild=function(p){p.getParent()==this&&(p.Ln(),p.ta=null,l(this.xq).contains(p)?this.xq=l.without(this.xq,p):(p.gd().detach(),p.Ht(null),this.hc(),this.Xd()), 673this.Zd=l.without(this.Zd,p),p.bea())};q.prototype.iHa=function(){l(this.ob()).forEach(function(p){this.removeChild(p)})};q.prototype.gia=function(p){return l(this.Zd).indexOf(p)};q.prototype.ao=function(p,r){var t=this.gia(p);if(0>t)throw"Can't set index. This is not a child of this container";var u=this.Zd.slice();u.splice(t,1);u.splice(r,0,p);if(!l.isEqual(this.Zd,u)&&(this.Zd=u,!l(this.xq).contains(p))){r=this.gia(p);p.gd().detach();u=t=null;for(var v=r-1;0<=v&&!t;v--)l(this.xq).contains(this.Zd[v])|| 674(t=this.Zd[v]);for(v=r+1;v<this.Zd.length&&!u&&!t;v++)l(this.xq).contains(this.Zd[v])||(u=this.Zd[v]);t?p.gd().insertAfter(t.gd()):u?p.gd().insertBefore(u.gd()):this.Yb().$ga(p.je());this.Xd()}};q.prototype.$E=function(p){m.prototype.$E.call(this,p);this.Nza()};q.prototype.Nza=function(){l(this.Zd).forEach(function(p){this.Xoa(p)},this)};q.prototype.Xoa=function(p){p.set("inheritedInteractionEnabled",this.B("interactionEnabled")&&this.B("inheritedInteractionEnabled")&&this.B("childrenInteractionEnabled"))}; 675q.prototype.pN=function(){m.prototype.pN.call(this);this.Zd.forEach(function(p){p.pN()})};q.prototype.aF=function(p){m.prototype.aF.call(this,p);l(this.Zd).forEach(function(r){r.Aea(this.Iq)},this)};q.prototype.m8=function(p){m.prototype.m8.call(this,p);l(this.ob()).forEach(function(r){r.uK()});this.Nfa()};q.prototype.Ht=function(p){m.prototype.Ht.call(this,p);l(this.ob()).forEach(function(r){l(this.xq).contains(r)||r.Ht(p)},this)};q.prototype.Nfa=function(){(this.SN==h.mma&&this.hA||this.SN==h.GC)&& 6760<this.xq.length&&(l(this.xq).forEach(function(p){this.Yb().$ga(p.je());p.Ht(this.Db())},this),this.xq=[],this.hc(),this.Xd())};q.prototype.yU=function(p){this.Wl!=p&&(this.Wl&&this.Wl.IIa(null),(this.Wl=p)&&this.Wl.IIa(this))};q.prototype.bb=function(){var p=!1,r=this.B("layout");if(this.L("layout")){switch(r){case g.cz:this.yU(new d);break;case g.Gg:this.yU(new e);break;case g.Xh:this.yU(new n);break;default:this.yU(new b)}this.S("layout");p=!0}var t=this.Wl;if(this.L("horizontalAlign")||p)t.jM(this.B("horizontalAlign")), 677this.S("horizontalAlign");if(this.L("verticalAlign")||p)t.qM(this.B("verticalAlign")),this.S("verticalAlign");if(this.L("gap")||p)r==g.cz?(t.kIa(this.B("gap")),t.V4(this.B("gap"))):r==g.Gg?t.kIa(this.B("gap")):r==g.Xh&&t.V4(this.B("gap")),this.S("gap");if(r==g.cz){if(this.L("itemWidth")||p){var u=this.B("itemWidth"),v=k.Ap(u);void 0!==v?t.J$a(v):t.B$a(u);this.S("itemWidth")}if(this.L("itemHeight")||p)u=this.B("itemHeight"),v=k.Ap(u),void 0!==v?t.I$a(v):t.A$a(u),this.S("itemHeight");this.L("itemMinWidth")&& 678(t.G$a(this.B("itemMinWidth")),this.S("itemMinWidth"));this.L("itemMinHeight")&&(t.F$a(this.B("itemMinHeight")),this.S("itemMinHeight"));this.L("itemMaxWidth")&&(t.E$a(this.B("itemMaxWidth")),this.S("itemMaxWidth"));this.L("itemMaxHeight")&&(t.D$a(this.B("itemMaxHeight")),this.S("itemMaxHeight"))}this.L("childrenInteractionEnabled")&&(this.S("childrenInteractionEnabled"),this.Nza());this.uc(["cursor"],{cursor:"inheritedCursor"},this.Zd,!0,!1);m.prototype.bb.call(this);r==g.cz&&t.j$a(this.qn)};q.prototype.uc= 679function(p,r,t,u,v){for(var w=0;w<p.length;w++){var x=p[w];if(!u||this.L(x)){for(var y=0;y<t.length;y++)t[y].set(r[x]?r[x]:x,this.B(x));v&&this.S(x)}}};q.prototype.Fw=function(){if(this.Wl){var p=this.Wl.measure();this.$l=p.width;this.Zl=p.height;this.iP=p.minWidth;this.hP=p.minHeight}else m.prototype.Fw.call(this)};q.prototype.cj=function(){this.Wl&&this.Wl.update(this);m.prototype.cj.call(this)};return q}); 680define("py",["require","jquery.mod","lQ","pW","gV"],function(a){function f(c,h){this.xI=c;this.Gc="#000000";this.Mb=.5;this.sa=10;this.YR=this.xO=5;this.If=h;this.QW=this.ada=this.fb=0;this.Qoa=this.Tb=this.nW=!1;this.Ba=!0;this.kI=document.createElement("div");this.kI.setAttribute("tdvlayer","scrollbar");this.HN=l(this.kI);k.css(this.kI,{position:"absolute","z-index":m.uMa});this.sN=document.createElement("div");this.u8=l(this.sN);k.css(this.sN,{position:"absolute",left:0,top:0});this.HN.append(this.u8)} 681var l=a("jquery.mod");a("lQ");var m=a("pW"),k=a("gV");f.prototype.De=function(){return this.HN.width()};f.prototype.Te=function(){return this.HN.height()};f.prototype.setPosition=function(c){this.fb!=c&&(this.fb=c,this.Cxa(),this.Ba=!0)};f.prototype.jl=function(){return this.fb};f.prototype.setSize=function(c,h){this.ada=c;this.QW=h;this.Cxa();this.Ba=!0};f.prototype.Xe=function(c){this.Tb!=c&&(this.Tb=c,this.Ba=!0)};f.prototype.UHa=function(c){this.nW!=c&&(this.nW=c,this.Ba=!0)};f.prototype.setColor= 682function(c){this.Gc!=c&&(this.Gc=c,this.Ba=!0)};f.prototype.Mh=function(c){this.Mb!=c&&(this.Mb=c,this.Ba=!0)};f.prototype.JU=function(c){this.sa!=c&&(this.sa=c,this.Ba=!0)};f.prototype.iIa=function(c){this.xO!=c&&(this.xO=c,this.Ba=!0)};f.prototype.PIa=function(c){this.YR!=c&&(this.YR=c,this.Ba=!0)};f.prototype.qh=function(){this.Ba&&(this.Qoa!=this.Tb&&(this.Tb?this.If.append(this.HN):this.HN.detach(),this.Qoa=this.Tb),this.oa(),this.Ba=!1)};f.prototype.oa=function(){var c=Math.round(100*this.ada/ 683this.QW),h=Math.round(100*this.fb/this.QW);k.css(this.kI,{filter:"alpha(opacity="+Math.round(100*this.Mb)+")",opacity:this.Mb,display:this.Tb?"block":"none"});k.css(this.sN,{backgroundColor:this.Gc,"border-radius":Math.floor(this.sa/2)+"px"});this.xI==f.Gg?(k.css(this.kI,{left:this.xO+"px",right:(this.nW?this.sa:0)+this.xO+"px",height:this.sa+"px",bottom:this.YR+"px"}),k.css(this.sN,{left:h+"%",width:c+"%",height:this.sa+"px"})):(k.css(this.kI,{top:this.YR+"px",right:this.xO+"px",width:this.sa+"px", 684bottom:(this.nW?this.sa:0)+this.YR+"px"}),k.css(this.sN,{top:h+"%",width:this.sa+"px",height:c+"%"}))};
684f.prototype.Cxa=function(){var c=this.QW-this.ada;0>this.fb?this.fb=0:this.fb>c&&(this.fb=c)};f.Gg="horizontal";f.Xh="vertical";return f});define("kt",["require","lQ","py"],function(a){var f=a("lQ"),l=a("py");return f.extend(l,function(m){l.call(this,l.Gg,m)})});define("eE",["require","lQ","py"],function(a){var f=a("lQ"),l=a("py");return f.extend(l,function(m){l.call(this,l.Xh,m)})}); 685define("hA","require exports pw cI gD mQ".split(" "),function(a,f,l,m,k,c){return new (function(h){function g(){var b=h.call(this)||this;b.visible=!0;b.rb=!1;b.E5=!1;b.visible=!0;b.rb=!1;b.E5=!1;b.hHa=c.getQueryParameter("redirect-when-hidden")||"";b.a9a=c.lg("reload-when-hidden",!1);document.addEventListener("visibilitychange",b.onChange.bind(b),!1);b.onChange();return b}Z(g,h);g.prototype.Ay=function(b){if(this.rb=b)this.E5=!1;this.onChange()};g.prototype.nla=function(b){this.E5=b;this.onChange()}; 686g.prototype.onChange=function(){var b=this.rb?!this.E5:!document.hidden;this.visible!=b&&((this.visible=b)&&this.z8a(),this.trigger(new m(l.ba)))};g.prototype.z8a=function(){this.hHa?window.location.href=this.hHa:this.a9a&&window.location.reload()};return g}(k))}); 687define("nd",["require","exports","mQ"],function(a,f,l){a={};a.Zu=l.lg("debug",!1);a.GLa=l.Cj("hqhls");a.ema=l.lg("audiocontext",!0);a.edb=l.lg("testhash",!1);a.sLa=l.lg("exitvronblur",!1);a.dLa=l.lg("download",!0);a.GMa=l.lg("updatewhilehidden",!1);a.yLa=l.lg("webgl2",!1);a.xLa=l.lg("webgl1",!1);a.vLa=l.lg("lowp",!1);a.Ama=l.lg("antialias");a.LMa=l.lg("unlimited-video-resolution",!1);return a}); 688define("bn",["require","exports","lQ","hA","nd"],function(a,f,l,m,k){var c=window.requestAnimationFrame.bind(window),h=window.cancelAnimationFrame.bind(window),g=function(){function d(){}d.requestFrame=function(e,n,q){for(var p=0;p<d.es.length;p++)if(d.es[p].is(e,n))return;p=d.x3;void 0!==q&&(p+=q);d.es.push(new b(e,n,p));d.paused||void 0!==d.Ku||(d.Ku=d.iU(d.D2))};d.HBa=function(e,n){for(var q=0;q<d.es.length;q++)if(d.es[q].is(e,n)){d.es.splice(q,1);break}};d.lM=function(e){d.paused!=e&&(d.paused= 689e,d.paused?void 0!==d.Ku&&(d.oha(d.Ku),d.Ku=void 0):0<d.es.length&&(d.Ku=d.iU(d.D2)))};d.FIa=function(e,n){d.iU!=e&&(void 0!==d.Ku&&(d.oha(d.Ku),d.Ku=e(d.D2)),d.iU=e,d.oha=n)};d.A9a=function(){d.FIa(c,h)};d.D2=function(e){d.yCa(e);d.Ku=0<d.es.length?d.iU(d.D2):void 0};d.yCa=function(e){e<d.Se&&(d.startTime=e-d.x3*d.M6,d.Se=e);var n=0;void 0===d.startTime?d.startTime=e:n=Math.round((e-d.startTime)/d.M6);var q=(n-d.x3)*d.M6,p=d.es;d.es=[];d.e3=!0;d.x3=n;q=1<q?100>q?q:100:1;d.Se=e;d.RCa=q;for(e=0;e< 690p.length;e++){var r=p[e];n<r.kFa?d.es.push(r):r.call(q)}d.e3=!1};d.Se=(new Date).getTime();d.RCa=0;d.e3=!1;d.iU=c;d.oha=h;d.es=[];d.Ku=void 0;d.paused=!1;d.M6=1E3/60;d.x3=0;d.startTime=void 0;return d}();k.GMa&&setInterval(function(){m.visible||g.yCa(g.Se+100)},100);var b=function(){function d(e,n,q){this.kFa=0;this.np=e;this.context=n;this.kFa=q}d.prototype.is=function(e,n){return this.np==e&&this.context==n};d.prototype.call=function(e){try{this.np.call(this.context,e)}catch(n){l.AT("Error in animation frame", 691n)}};return d}();return g});define("bL",["require","exports"],function(){return function(){return function(a,f,l,m){void 0===m&&(m=void 0);this.name=a;this.from=f;this.to=l;this.J7a=m}}()}); 692define("oY",["require","exports","bL"],function(a,f,l){function m(b){return function(d,e,n){d=Math.abs(e-d);return 1>d/n?0:1/(1-Math.pow((d-n)/d,1/b))}}function k(b){var d=new g;d.cia=function(e,n,q,p){return e+(n-e)*Math.pow(0>=q?0:q>=p?1:q/p,b)};d.qja=m(b);return d}function c(b){var d=new g;d.cia=function(e,n,q,p){return e+(n-e)*(1-Math.pow(1-(0>=q?0:q>=p?1:q/p),b))};d.qja=m(b);return d}function h(b){var d=new g;d.cia=function(e,n,q,p){q=0>=q?0:q>=p?1:q/p;.5>q?q=Math.pow(2*q,b):(q=1-Math.pow(1- 693(2*q-1),b),q+=1);return e+.5*(n-e)*q};d.qja=m(b);return d}a=function(){function b(d,e,n){void 0===n&&(n=void 0);switch(d){case "quad_in":this.curve=k(2);break;case "quad_out":this.curve=c(2);break;case "quad_in_out":this.curve=h(2);break;case "cubic_in":this.curve=k(3);break;case "cubic_out":this.curve=c(3);break;case "cubic_in_out":this.curve=h(3);break;case "quart_in":this.curve=k(4);break;case "quart_out":this.curve=c(4);break;case "quart_in_out":this.curve=h(4);break;case "quint_in":this.curve= 694k(5);break;case "quint_out":this.curve=c(5);break;case "quint_in_out":this.curve=h(5);break;default:this.curve=k(1)}this.Qx=e.slice();this.time=0;this.duration=this.xBa(e,n);this.Iha={};for(d=0;d<this.Qx.length;d++)this.Iha[this.Qx[d].name]=e[d].from}b.prototype.jia=function(d){for(var e=0;e<this.Qx.length;e++)if(this.Qx[e].name==d)return this.Qx[e];return null};b.prototype.cb=function(d){return this.Iha[d]};b.prototype.aja=function(){return 0<this.time};b.prototype.Ve=function(){return this.time>= 695this.duration};b.prototype.ui=function(){return this.duration};b.prototype.jl=function(){return this.time/this.duration};b.prototype.getTime=function(){return this.time};b.prototype.setTime=function(d){this.time=Math.min(Math.max(0,d),this.duration);for(d=0;d<this.Qx.length;d++){var e=this.Qx[d];this.Iha[e.name]=this.curve.cia(e.from,e.to,this.time,this.duration)}};b.prototype.Fb=function(d){this.setTime(this.time+d)};b.prototype.xBa=function(d,e,n){void 0===n&&(n=void 0);for(var q=[],p=0;p<this.Qx.length;p++){var r= 696this.Qx[p],t=n?n:r.J7a;void 0!==t&&0<t&&q.push(this.curve.qja(r.from,r.to,t/1E3))}if(0<q.length){d=q[0];for(p=1;p<q.length;p++)d=Math.max(d,q[p]);return void 0!==e&&0<e?Math.max(e,d):d}return void 0!==e?Math.max(e,.001):this.xBa(d,e,1E3)};b.ui=function(){return(new b(void 0,[new l("",void 0,void 0,void 0)])).ui()};return b}();var g=function(){return function(){}}();return a}); 697define("bs",["require","exports"],function(){var a={gj:38,Qh:40,tb:39,ab:37,EH:32,fo:65,PV:90,yv:87,rv:83,Yu:68,Q:81,E:69,FV:187,CV:189,rV:27,na:{}};a.na.gj="ArrowUp";a.na.Qh="ArrowDown";a.na.tb="ArrowRight";a.na.ab="ArrowLeft";a.na.fo="KeyA";a.na.PV="KeyZ";a.na.yv="KeyW";a.na.rv="KeyS";a.na.Yu="KeyD";a.na.Q="KeyQ";a.na.E="KeyE";a.na.FV="BracketRight";a.na.CV="Slash";a.na.rV="Escape";a.na.EH="Space";a.na.qV="Enter";return a}); 698define("jt",["require","exports","pw","bs","gD"],function(a,f,l,m,k){a=function(){function h(){}h.sp=function(){return document.activeElement&&document.activeElement!==document.body};h.x5a=function(){return document.activeElement};h.g7a=function(g){return Array.isArray(g)?g.includes(document.activeElement):g==document.activeElement};h.tHa=function(g,b){void 0===g&&(g=void 0);void 0===b&&(b=void 0);this.$i||(this.$i=document.createElement("div"));document.querySelectorAll("*[tabindex]").forEach(function(d){d.tabIndex> 699this.$i.tabIndex&&(this.$i.tabIndex=d.tabIndex+1)}.bind(this));document.body.appendChild(this.$i);void 0!=g&&void 0!=b?(this.$i.style.position="absolute",this.$i.style.top=b+"px",this.$i.style.left=g+"px",this.$i.style.width="1px",this.$i.style.height="1px"):(this.$i.style.position="fixed",this.$i.style.top="0",this.$i.style.left="0",this.$i.style.width="100%",this.$i.style.height="100%");this.$i.focus();this.$i.blur();document.body.removeChild(this.$i);this.z2.trigger(l.ba)};h.blur=function(){document.activeElement.blur()}; 700h.Wga=function(g){this.ES.push(g)};h.ika=function(g){g=this.ES.indexOf(g);-1!=g&&this.ES.splice(g,1)};h.b3a=function(g){this.pU.push(g)};h.t9a=function(g){g=this.pU.indexOf(g);-1!=g&&this.pU.splice(g,1)};h.aBa=function(g,b){this.Lka(g,b.map(function(d){return[d]}))};h.S2a=function(g,b){this.Lka(g,[b])};h.P2a=function(g,b,d,e){for(var n=[],q=0;q<d;q++)n.push(b.slice(q*e,(q+1)*e));this.Lka(g,n)};h.Lka=function(g,b){this.Eha.set(g,new c(b))};h.g9a=function(g){this.Eha.delete(g)};h.Jja=function(g){if(g.code== 701m.na.EH||g.code==m.na.qV){var b=this.ADa();b&&this.v4a(b)}
701else g.code!=m.na.rV&&[m.na.gj,m.na.Qh,m.na.tb,m.na.ab].includes(g.code)&&this.Eha.forEach(function(d){d.s6a()&&d.U4a(g.code)})};h.Kja=function(g){g.code==m.na.EH||g.code==m.na.qV?(g=this.ADa())?g.dispatchEvent(this.WBa("mouseup",g)):this.pU.length&&this.pU.pop()():g.code==m.na.rV&&(this.ES.length?this.ES.pop()():this.sp()&&this.tHa())};h.lh=function(g){!g.isTrusted||g.target&&["BUTTON","INPUT","SELECT","TEXTAREA"].includes(g.target.tagName)|| 702setTimeout(function(){this.tHa(g.pageX,g.pageY)}.bind(this),0)};h.a8a=function(){this.z2.trigger(l.ba)};h.v4a=function(g){g.dispatchEvent(this.WBa("mousedown",g))};h.ADa=function(){return this.sp()?document.activeElement:null};h.WBa=function(g,b){b=b.getBoundingClientRect();return new window.MouseEvent(g,{clientX:b.left+b.width/2,clientY:b.top+b.height/2})};h.$a=function(){document.addEventListener("mouseup",this.lh.bind(this),!0);document.addEventListener("keydown",this.Jja.bind(this),!0);document.addEventListener("keyup", 703this.Kja.bind(this),!0);document.addEventListener("focusin",this.a8a.bind(this),!0)};h.z2=new k;h.$i=null;h.ES=[];h.pU=[];h.Eha=new Map;return h}();var c=function(){function h(g){void 0===g&&(g=[]);this.ZK=g}h.prototype.s6a=function(){return null!=this.dDa()};h.prototype.dDa=function(){for(var g=document.activeElement,b=0;b<this.ZK.length;b++)for(var d=0;d<this.ZK[b].length;d++)if(this.ZK[b][d]==g)return{F9a:b,Q3a:d};return null};h.prototype.U4a=function(g){var b=this.dDa();if(null!=b){var d=0,e= 7040;switch(g){case m.na.tb:d=1;break;case m.na.ab:d=-1;break;case m.na.gj:e=-1;break;case m.na.Qh:e=1}g=b.F9a+e;0>g||g>=this.ZK.length||(b=b.Q3a+d,0>b||b>=this.ZK[g].length||this.ZK[g][b].focus())}};return h}();return a}); 705define("oP","require es lQ pw cI w nA ik fT n kt eE bn oY bL jt".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("pw"),k=a("cI"),c=a("w"),h=a("nA"),g=a("ik"),b=a("fT"),d=a("n"),e=a("kt"),n=a("eE"),q=a("bn"),p=a("oY"),r=a("bL"),t=a("jt"),u=l.extend(d,function(){d.call(this);this.Qe("Container");this.xd=this.ae=this.jg=this.Ng=this.ec=this.Rb=this.iqa=this.hqa=0;this.gba=this.oba=this.cm=this.bm=!1;this.cqa=0;this.d9=this.c9=void 0;this.f9=this.e9=0;this.RA=null;this.Yca=g.Dma;this.cA=!1;this.PX= 706null;this.Xt=!1;this.j1=null;t.z2.bind(m.ba,this.jWa,this)});u.Fc={overflow:g.FH,scrollBarColor:"#000000",scrollBarWidth:10,scrollBarMargin:5,scrollBarHorizontalMargin:void 0,scrollBarVerticalMargin:void 0,scrollBarOpacity:.5,scrollBarVisible:b.Dc};f.defaults(u.Fc,d.Fc);u.prototype.Bo=function(){this.PX=new e(this.gaa());this.PX.u8.bind("mousedown touchstart",f.bind(this.$Ta,this));this.Bo=function(){return this.PX};return this.PX};u.prototype.Co=function(){this.j1=new n(this.gaa());this.j1.u8.bind("mousedown touchstart", 707f.bind(this.o2a,this));this.Co=function(){return this.j1};return this.j1};u.prototype.jWa=function(){if(t.sp()){var v=this.ob().map(function(w){return w.je()}).indexOf(t.x5a());-1!==v&&this.scrollIntoView(this.ob()[v])}};u.prototype.scrollIntoView=function(v){var w=v.Na,x=v.Qa;this.scrollTo(Math.min(w,Math.max(w+v.Za()-this.Ng,this.ae)),Math.min(x,Math.max(x+v.Cb()-this.jg,this.xd)))};u.prototype.scrollTo=function(v,w){var x=this.ae;v>this.ae?this.EW()&&(x=Math.min(v,this.Rb-this.Ng)):v<this.ae&& 708this.DW()&&(x=Math.max(v,0));v=this.xd;w>this.xd?this.BW()&&(v=Math.min(w,this.ec-this.jg)):w<this.xd&&this.FW()&&(v=Math.max(w,0));this.nR(x,v)};u.prototype.FHa=function(){if(this.BW()){for(var v=Math.max(0,this.ec-this.jg),w=Math.min(v,this.xd+.5*this.jg),x=v=Math.min(v,this.xd+this.jg),y=this.ob().slice(),z=y.shift();y.length;z=y.shift())if(z.get("visible")){var B=z.Qa;B+z.Cb()>this.xd+this.jg&&B>=w&&B<v&&B<x&&(x=B)}this.nR(this.ae,x)}};u.prototype.BW=function(){return this.zpa()&&this.xd+this.jg< 709this.ec};u.prototype.HHa=function(){if(this.FW()){for(var v=Math.max(0,this.xd-this.jg),w=Math.max(0,this.xd-.5*this.jg),x=v,y=this.ob().slice(),z=y.shift();y.length;z=y.shift())if(z.get("visible")){var B=z.Qa;z=B+z.Cb();B<this.xd&&z>=v+this.jg&&z<w+this.jg&&z>x+this.jg&&(x=z-this.jg)}this.nR(this.ae,x)}};u.prototype.FW=function(){return this.zpa()&&0<this.xd};u.prototype.GHa=function(){if(this.EW()){for(var v=Math.max(0,this.Rb-this.Ng),w=Math.min(v,this.ae+.5*this.Ng),x=v=Math.min(v,this.ae+this.Ng), 710y=this.ob().slice(),z=y.shift();y.length;z=y.shift())if(z.get("visible")){var B=z.Na;B+z.Za()>this.ae+this.Ng&&B>=w&&B<v&&B<x&&(x=B)}this.nR(x,this.xd)}};u.prototype.EW=function(){return this.ypa()&&this.ae+this.Ng<this.Rb};u.prototype.scrollLeft=function(){if(this.DW()){for(var v=Math.max(0,this.ae-this.Ng),w=Math.max(0,this.ae-.5*this.Ng),x=v,y=this.ob().slice(),z=y.shift();y.length;z=y.shift())if(z.get("visible")){var B=z.Na;z=B+z.Za();B<this.ae&&z>=v+this.Ng&&z<w+this.Ng&&z>x+this.Ng&&(x=z-this.Ng)}this.nR(x, 711this.xd)}};u.prototype.DW=function(){return this.ypa()&&0<this.ae};u.prototype.nR=function(v,w){this.bm=this.ae!=v;this.cm=this.xd!=w;this.Vt();this.RA=new p("cubic_in_out",[new r("hScrollPosition",this.ae,v),new r("vScrollPosition",this.xd,w)],500);q.requestFrame(this.b8,this)};u.prototype.zpa=function(){return this.Xt&&this.jg<this.ec};u.prototype.ypa=function(){return this.cA&&this.Ng<this.Rb};u.prototype.yb=function(){this.Ao(u.Fc)};u.prototype.TPa=function(){this.oba=!0;this.Vt()};u.prototype.SPa= 712function(){this.oba=!1;this.Vt()};u.prototype.$Ta=function(){this.bm=!0};u.prototype.o2a=function(){this.cm=!0};
712u.prototype.PPa=function(v){this.bm||this.cm?(this.Db().bind(m.Pb,this.aqa,this),this.Db().bind(m.Eb,this.bqa,this),this.Hz=v.pageX,this.Iz=v.pageY,this.Vt()):this.dqa(v)};u.prototype.aqa=function(v){if(this.bm){var w=(v.pageX-this.Hz)*this.Rb/this.Bo().De();this.ae+=w}else this.cm&&(w=(v.pageY-this.Iz)*this.ec/this.Co().Te(),this.xd+=w);this.Hz=v.pageX;this.Iz=v.pageY;this.Fx()};u.prototype.bqa= 713function(){this.Db().unbind(m.Pb,this.aqa,this);this.Db().unbind(m.Eb,this.bqa,this);this.cm=this.bm=!1;this.Vt()};u.prototype.Bpa=function(v){return this.Xt&&(0<v&&0<this.xd||0>v&&this.xd<this.ec-this.jg)?!0:!1};u.prototype.RPa=function(v){this.Xt&&(this.xd-=(c.zd()==c.S6?.1*v.DS:v.delta)*this.jg*.1,this.Fx())};u.prototype.dqa=function(v){if(this.cA||this.Xt)this.Db().bind(m.Pb,this.eqa,this),this.Db().bind(m.Eb,this.fqa,this),this.gba=!0,this.Hz=v.pageX,this.Iz=v.pageY,this.Vt(),this.uUa()};u.prototype.eqa= 714function(v){var w=v.pageX-this.Hz,x=v.pageY-this.Iz;!this.bm&&!this.cm&&25<w*w+x*x&&(this.bm=this.cA,this.cm=this.Xt,this.Vt());if(this.bm||this.cm)this.ae-=w,this.xd-=x,this.Hz=v.pageX,this.Iz=v.pageY,this.Fx(),this.h1a()};u.prototype.fqa=function(){this.Db().unbind(m.Pb,this.eqa,this);this.Db().unbind(m.Eb,this.fqa,this);this.gba=!1;this.Vt();var v=Math.max(Math.abs(this.e9/.001),Math.abs(this.f9/.001));this.RA=new p("linear",[new r("hScrollPosition",this.ae,this.ae-.5*this.e9*v),new r("vScrollPosition", 715this.xd,this.xd-.5*this.f9*v)],v);q.requestFrame(this.b8,this)};u.prototype.uUa=function(){this.c9=this.Hz;this.d9=this.Iz};u.prototype.h1a=function(){var v=(new Date).getTime(),w=v-this.cqa;10<w&&(this.cqa=v,this.e9=(this.Hz-this.c9)/w,this.f9=(this.Iz-this.d9)/w,this.c9=this.Hz,this.d9=this.Iz)};u.prototype.b8=function(v){this.RA&&!this.RA.Ve()&&(this.bm||this.cm)?(this.RA.Fb(v),this.bm&&(this.ae=this.RA.cb("hScrollPosition"),0>this.ae||this.ae>this.Rb-this.Ng)&&(this.bm=!1),this.cm&&(this.xd=this.RA.cb("vScrollPosition"), 7160>this.xd||this.xd>this.ec-this.jg)&&(this.cm=!1),this.Fx(),q.requestFrame(this.b8,this)):(this.cm=this.bm=!1,this.RA=null,this.Vt())};u.prototype.Fx=function(v){if(v){if(!this.cA)switch(this.B("horizontalAlign")){case h.tb:this.ae=this.Rb-this.Ng;break;case h.Ye:this.ae=(this.Rb-this.Ng)/2;break;default:this.ae=0}if(!this.Xt)switch(this.B("verticalAlign")){case h.wc:this.xd=this.ec-this.jg;break;case h.qe:this.xd=(this.ec-this.jg)/2;break;default:this.xd=0}}this.ae=Math.max(0,Math.min(this.Rb-this.Ng, 717this.ae));this.xd=Math.max(0,Math.min(this.ec-this.jg,this.xd));this.Bo().setPosition(this.ae);this.Co().setPosition(this.xd);this.Yb().t$a(this.ae);this.Yb().Oab(this.xd);this.ml();if(this.Owa!=this.ae||this.Pwa!=this.xd)void 0!==this.Owa&&void 0!==this.Pwa&&this.trigger(new k(m.fq)),this.Owa=this.ae,this.Pwa=this.xd};u.prototype.Vt=function(){var v=this.get("scrollBarVisible")==b.ALWAYS?!0:this.Fo?this.bm||this.cm||this.gba:this.bm||this.cm||this.oba;this.Bo().Xe(this.cA&&v);this.Co().Xe(this.Xt&& 718v);this.ml()};u.prototype.Hb=function(){d.prototype.Hb.call(this);this.QPa||(this.QPa=!0,this.Fo?this.bind(m.gb,this.dqa,this):(this.bind(m.gb,this.PPa,this),this.bind(m.Dc,this.TPa,this),this.bind(m.Jb,this.SPa,this),this.bind(m.Gs,this.RPa,this)))};u.prototype.bb=function(){this.L("overflow")&&(this.Yca=this.B("overflow"),this.S("overflow"),this.Xd());this.L("scrollBarColor")&&(this.Bo().setColor(this.B("scrollBarColor")),this.Co().setColor(this.B("scrollBarColor")),this.S("scrollBarColor"));this.L("scrollBarWidth")&& 719(this.Bo().JU(this.B("scrollBarWidth")),this.Co().JU(this.B("scrollBarWidth")),this.S("scrollBarWidth"));if(this.L("scrollBarMargin")||this.L("scrollBarVerticalMargin")||this.L("scrollBarHorizontalMargin")){var v=this.B("scrollBarHorizontalMargin","scrollBarMargin"),w=this.B("scrollBarVerticalMargin","scrollBarMargin");this.Bo().iIa(v);this.Bo().PIa(w);this.Co().iIa(v);this.Co().PIa(w);this.S("scrollBarMargin");this.S("scrollBarVerticalMargin");this.S("scrollBarHorizontalMargin")}this.L("scrollBarOpacity")&& 720(this.Bo().Mh(this.B("scrollBarOpacity")),this.Co().Mh(this.B("scrollBarOpacity")),this.S("scrollBarOpacity"));d.prototype.bb.call(this)};u.prototype.cj=function(){d.prototype.cj.call(this);this.j1a();this.J1a();this.H1a();this.Vt();this.ml()};u.prototype.j1a=function(){for(var v=0,w=0,x=0,y=0,z=this.ob(),B=0;B<z.length;B++){var E=z[B];E.get("visible")&&(y=Math.min(y,E.Na),x=Math.min(x,E.Qa),v=Math.max(v,E.Na+E.Za()),w=Math.max(w,E.Qa+E.Cb()))}this.hqa=y;this.iqa=x;this.Rb=v;this.ec=w};u.prototype.J1a= 721function(){this.Ng=Math.min(this.zf(),this.Rb);this.jg=Math.min(this.yf(),this.ec)};u.prototype.H1a=function(){var v=this.Zd.some(function(y){return y.z6a()}),w=0>this.hqa||0>this.iqa||this.Rb>this.Ng||this.ec>this.jg;if(this.Yca==g.fq){this.cA=this.Ng<this.Rb;var x=(this.Xt=this.jg<this.ec)&&this.cA;this.Bo().setSize(this.Ng,this.Rb);this.Bo().UHa(x);this.Co().setSize(this.jg,this.ec);this.Co().UHa(x);this.Yb().kM(!w&&!v)}else this.Xt=this.cA=!1,this.Yca==g.FH?this.Yb().kM(!0):this.Yb().kM(!w&&!v); 722this.Fx(!0)};u.prototype.qh=function(){this.Co().qh();this.Bo().qh();d.prototype.qh.call(this)};return u});define("W",["require"],function(){return{Xh:"vertical",Gg:"horizontal"}});define("hR",["require","exports"],function(){return function(){function a(){}a.Tx=function(f){return f?f.split(",").map(function(l){return l.trim()}).filter(function(l){return""!=l}).map(function(l){"'"!=l[0]&&'"'!=l[0]&&(l="'"+l+"'");return l}).join(", "):""};return a}()}); 723define("dE","require jquery.mod es lQ nA W e gV hR".split(" "),function(a){function f(e){var n=e.Nn.width(),q=e.Nn.height();"italic"==e.get("fontStyle")&&(n+=1*q/5);return Math.round(n)}var l=a("jquery.mod"),m=a("es"),k=a("lQ"),c=a("nA"),h=a("W"),g=a("e");a("gV");var b=a("hR");a=k.extend(g,function(){g.call(this);this.Qe("Label");this.Nn=this.gR=null});a.Fc={};a.prototype.yb=function(){g.prototype.yb.call(this);this.h("fontFamily");this.h("fontSize");this.h("fontColor");this.h("fontWeight");this.h("fontStyle"); 724this.h("horizontalAlign",c.ab);this.h("verticalAlign",c.qe);this.h("direction",h.Gg);this.h("text","");this.h("textDecoration");this.h("textShadowBlurRadius",3);this.h("textShadowColor","#000000");this.h("textShadowHorizontalLength",0);this.h("textShadowOpacity",0);this.h("textShadowVerticalLength",0)};a.prototype.Hb=function(){g.prototype.Hb.call(this);if(!this.Nn){this.gR=document.createElement("span");this.Nn=l(this.gR);this.Tea({position:"absolute","text-align":"center",cursor:"inherit","white-space":"nowrap", 725transform:"translate3d(0, 0, 0)"});var e=this.Yb();e.kM(!1);e.append(this.Nn)}};a.prototype.Fw=function(){g.prototype.Fw.call(this);var e=this.Yb();this.$l=f(this)+e.oL()+e.pL();this.Zl=this.Nn.height()+e.qL()+e.kL();d(this)};a.prototype.bb=function(){var e={};if(this.L("direction")||this.L("text")){switch(this.B("direction")){case h.Xh:e["line-height"]="100%";this.Nn.html(this.Nn.text(this.B("text")).text().split("").join("<br/>"));break;default:e["line-height"]="normal",this.Nn.text(this.B("text")), 726this.Nn.html(this.Nn.html().split(" ").join(" "))}this.S("direction");this.S("text");setTimeout(function(){this.hc();this.Xd()}.bind(this),0)}if(this.L("fontFamily")){var n=this.B("fontFamily");m(n).isString()||(n="");e.fontFamily=b.Tx(n);this.S("fontFamily");this.hc();this.Xd()}this.L("fontSize")&&(n=this.B("fontSize"),m(n).isNumber()?n+="px":m(n).isString()||(n=""),e.fontSize=n,this.S("fontSize"),this.hc(),this.Xd());this.L("fontColor")&&(n=this.B("fontColor"),m(n).isString()||(n=""),e.color= 727n,this.S("fontColor"));if(this.L("fontWeight")){n=this.B("fontWeight");switch(n){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:n="normal"}e.fontWeight=n;this.S("fontWeight");this.hc();this.Xd()}if(this.L("fontStyle")){n=this.B("fontStyle");switch(n){case "italic":case "normal":break;default:n="normal"}e.fontStyle=n;this.S("fontStyle");this.hc();this.Xd()}if(this.L("textDecoration")){n= 728this.B("textDecoration");switch(n){case "underline":case "overline":case "line-through":case "none":break;default:n="none"}e.textDecoration=n;this.S("textDecoration");this.hc();this.Xd()}this.L("horizontalAlign")&&(this.Xd(),this.S("horizontalAlign"));this.L("verticalAlign")&&(this.Xd(),this.S("verticalAlign"));n=["textShadowColor","textShadowHorizontalLength","textShadowVerticalLength","textShadowBlurRadius","textShadowOpacity"];if(m(n).any(function(p){return this.L(p)},this)){var q={};m(n).each(function(p){q[p]= 729this.B(p);this.S(p)},this);e["-moz-text-shadow"]=e["-webkit-text-shadow"]=e["text-shadow"]=[q.textShadowHorizontalLength+"px",q.textShadowVerticalLength+"px",q.textShadowBlurRadius+"px","rgba("+parseInt("0x"+q.textShadowColor.substr(1,2))+", "+parseInt("0x"+q.textShadowColor.substr(3,2))+", "+parseInt("0x"+q.textShadowColor.substr(5,2))+", "+q.textShadowOpacity+")"].join(" ");n=0==q.textShadowVerticalLength&&0==this.B("textShadowHorizontalLength")?135:45*Math.round(4*Math.atan2(q.textShadowHorizontalLength, 730-q.textShadowVerticalLength)/Math.PI);e.filter="progid:DXImageTransform.Microsoft.Shadow(color=#"+("00"+(255*q.textShadowOpacity).toString(16)).slice(-2)+q.textShadowColor.substr(1,6)+",direction="+n+")";this.Yb().kM((0<q.textShadowHorizontalLength||0<q.textShadowVerticalLength||0<q.textShadowBlurRadius)&&0<q.textShadowOpacity)}this.Tea(e);g.prototype.bb.call(this)};a.prototype.cj=function(){var e={left:"auto",right:"auto",top:"auto",bottom:"auto"};switch(this.B("horizontalAlign")){case c.ab:e.left= 731"0";break;case c.tb:this.qh();e.left=this.zf()-f(this)+"px";break;case c.Ye:this.qh(),e.left=Math.max(0,Math.round(.5*(this.zf()-f(this))))+"px"}switch(this.B("verticalAlign")){case c.Ec:e.top="0";break;case c.wc:this.qh();e.top=this.yf()-this.gR.clientHeight+"px";break;case c.qe:this.qh(),e.top=Math.max(0,Math.round(.5*(this.yf()-this.gR.clientHeight)))+"px"}this.Tea(e)};a.prototype.Tea=function(e){var n=this.gR.style,q;
731for(q in e)n[q]=e[q]};var d=function(){function e(){r||n()&&(r=setTimeout(function(){r= 732null;var t=(new Date).getTime()-5E3,u;for(u in p){var v=p[u];v.timestamp<t&&delete p[u];var w=v.label;if(v.width!=f(w)||v.height!=w.Nn.height())w.hc(),w.Xd()}e()},500))}function n(){for(var t in p)return!0;return!1}var q=1,p={},r=null;return function(t){t.aua||(t.aua=q++);p[t.aua]={label:t,timestamp:(new Date).getTime(),width:f(t),height:t.Nn.height()};e()}}();return a}); 733define("mr","require lQ es cZ bh pw cI hK ep ik hf oP dE".split(" "),function(a){var f=a("lQ"),l=a("es"),m=a("cZ"),k=a("bh"),c=a("pw"),h=a("cI"),g=a("hK"),b=a("ep"),d=a("ik"),e=a("hf"),n=a("oP"),q=a("dE"),p=f.extend(n,function(){this.Qe("Button");n.call(this);this.Gi=this.Pa=null;this.set("childrenInteractionEnabled",!1);this.set("contentOpaque",!0);this.set("creationPolicy",m.GC);this.set("overflow",d.Dma);this.set("autoRolledOver",!0);this.set("autoPressed",!0);this.set("cursor",k.Je);this.set("ariaRole", 734"button")});p.prototype.yb=function(){n.prototype.yb.call(this);this.h("label");this.h("fontFamily");this.h("fontSize");this.h("fontColor");this.h("fontWeight");this.h("fontStyle");this.h("textDecoration");this.h("textShadowBlurRadius");this.h("textShadowColor");this.h("textShadowHorizontalLength");this.h("textShadowOpacity");this.h("textShadowVerticalLength");this.h("layout","horizontal");this.h("iconWidth");this.h("iconHeight");this.h("iconBeforeLabel");this.h("gap",5);this.h("mode",b.Ke);this.h("buttonGroup"); 735this.h("paddingLeft",5);this.h("paddingTop",5);this.h("paddingRight",5);this.h("paddingBottom",5);this.h("pressed");this.A("rollOverOpacity",e.aa,"opacity");this.A("rollOverIconWidth",e.aa,"iconWidth");this.A("rollOverIconHeight",e.aa,"iconHeight");this.A("rollOverFontSize",e.aa,"fontSize");this.A("rollOverFontColor",e.aa,"fontColor");this.A("rollOverFontWeight",e.aa,"fontWeight");this.A("rollOverFontStyle",e.aa,"fontStyle");this.A("rollOverTextDecoration",e.aa,"textDecoration");this.A("rollOverTextShadowBlurRadius", 736e.aa,"textShadowBlurRadius");this.A("rollOverTextShadowColor",e.aa,"textShadowColor");this.A("rollOverTextShadowHorizontalLength",e.aa,"textShadowHorizontalLength");this.A("rollOverTextShadowOpacity",e.aa,"textShadowOpacity");this.A("rollOverTextShadowVerticalLength",e.aa,"textShadowVerticalLength");this.A("rollOverBorderSize",e.aa,"borderSize");this.A("rollOverBorderLeftSize",e.aa,"borderLeftSize");this.A("rollOverBorderTopSize",e.aa,"borderTopSize");this.A("rollOverBorderRightSize",e.aa,"borderRightSize"); 737this.A("rollOverBorderBottomSize",e.aa,"borderBottomSize");this.A("rollOverBorderColor",e.aa,"borderColor");this.A("rollOverBorderLeftColor",e.aa,"borderLeftColor");this.A("rollOverBorderTopColor",e.aa,"borderTopColor");this.A("rollOverBorderRightColor",e.aa,"borderRightColor");this.A("rollOverBorderBottomColor",e.aa,"borderBottomColor");this.A("rollOverShadow",e.aa,"shadow");this.A("rollOverShadowHorizontalLength",e.aa,"shadowHorizontalLength");this.A("rollOverShadowVerticalLength",e.aa,"shadowVerticalLength"); 738this.A("rollOverShadowBlurRadius",e.aa,"shadowBlurRadius");this.A("rollOverShadowSpread",e.aa,"shadowSpread");this.A("rollOverShadowOpacity",e.aa,"shadowOpacity");this.A("rollOverShadowColor",e.aa,"shadowColor");this.A("rollOverBackgroundOpacity",e.aa,"backgroundOpacity");this.A("rollOverBackgroundColor",e.aa,"backgroundColor");this.A("rollOverBackgroundColorRatios",e.aa,"backgroundColorRatios");this.A("rollOverBackgroundColorDirection",e.aa,"backgroundColorDirection");this.A("pressedLabel",e.Ab, 739"label");this.A("pressedOpacity",e.Ab,"opacity");this.A("pressedIconWidth",e.Ab,"iconWidth");this.A("pressedIconHeight",e.Ab,"iconHeight");this.A("pressedFontSize",e.Ab,"fontSize");this.A("pressedFontColor",e.Ab,"fontColor");this.A("pressedFontWeight",e.Ab,"fontWeight");this.A("pressedFontStyle",e.Ab,"fontStyle");this.A("pressedTextDecoration",e.Ab,"textDecoration");this.A("pressedTextShadowBlurRadius",e.Ab,"textShadowBlurRadius");this.A("pressedTextShadowColor",e.Ab,"textShadowColor");this.A("pressedTextShadowHorizontalLength", 740e.Ab,"textShadowHorizontalLength");this.A("pressedTextShadowOpacity",e.Ab,"textShadowOpacity");this.A("pressedTextShadowVerticalLength",e.Ab,"textShadowVerticalLength");this.A("pressedBorderSize",e.Ab,"borderSize");this.A("pressedBorderLeftSize",e.Ab,"borderLeftSize");this.A("pressedBorderTopSize",e.Ab,"borderTopSize");this.A("pressedBorderRightSize",e.Ab,"borderRightSize");this.A("pressedBorderBottomSize",e.Ab,"borderBottomSize");this.A("pressedBorderColor",e.Ab,"borderColor");this.A("pressedBorderLeftColor", 741e.Ab,"borderLeftColor");this.A("pressedBorderTopColor",e.Ab,"borderTopColor");this.A("pressedBorderRightColor",e.Ab,"borderRightColor");this.A("pressedBorderBottomColor",e.Ab,"borderBottomColor");this.A("pressedShadow",e.Ab,"shadow");this.A("pressedShadowHorizontalLength",e.Ab,"shadowHorizontalLength");this.A("pressedShadowVerticalLength",e.Ab,"shadowVerticalLength");this.A("pressedShadowBlurRadius",e.Ab,"shadowBlurRadius");this.A("pressedShadowSpread",e.Ab,"shadowSpread");this.A("pressedShadowOpacity", 742e.Ab,"shadowOpacity");this.A("pressedShadowColor",e.Ab,"shadowColor");
742this.A("pressedBackgroundOpacity",e.Ab,"backgroundOpacity");this.A("pressedBackgroundColor",e.Ab,"backgroundColor");this.A("pressedBackgroundColorRatios",e.Ab,"backgroundColorRatios");this.A("pressedBackgroundColorDirection",e.Ab,"backgroundColorDirection");this.A("pressedLabel",e.jc,"label");this.A("pressedRollOverOpacity",e.jc,"opacity");this.A("pressedRollOverIconWidth",e.jc,"iconWidth");this.A("pressedRollOverIconHeight",e.jc, 743"iconHeight");this.A("pressedRollOverFontSize",e.jc,"fontSize");this.A("pressedRollOverFontColor",e.jc,"fontColor");this.A("pressedRollOverFontWeight",e.jc,"fontWeight");this.A("pressedRollOverFontStyle",e.jc,"fontStyle");this.A("pressedRollOverTextDecoration",e.jc,"textDecoration");this.A("pressedRollOverTextShadowBlurRadius",e.jc,"textShadowBlurRadius");this.A("pressedRollOverTextShadowColor",e.jc,"textShadowColor");this.A("pressedRollOverTextShadowHorizontalLength",e.jc,"textShadowHorizontalLength"); 744this.A("pressedRollOverTextShadowOpacity",e.jc,"textShadowOpacity");this.A("pressedRollOverTextShadowVerticalLength",e.jc,"textShadowVerticalLength");this.A("pressedRollOverBorderSize",e.jc,"borderSize");this.A("pressedRollOverBorderLeftSize",e.jc,"borderLeftSize");this.A("pressedRollOverBorderTopSize",e.jc,"borderTopSize");this.A("pressedRollOverBorderRightSize",e.jc,"borderRightSize");this.A("pressedRollOverBorderBottomSize",e.jc,"borderBottomSize");this.A("pressedRollOverBorderColor",e.jc,"borderColor"); 745this.A("pressedRollOverBorderLeftColor",e.jc,"borderLeftColor");this.A("pressedRollOverBorderTopColor",e.jc,"borderTopColor");this.A("pressedRollOverBorderRightColor",e.jc,"borderRightColor");this.A("pressedRollOverBorderBottomColor",e.jc,"borderBottomColor");this.A("pressedRollOverShadow",e.jc,"shadow");this.A("pressedRollOverShadowHorizontalLength",e.jc,"shadowHorizontalLength");this.A("pressedRollOverShadowVerticalLength",e.jc,"shadowVerticalLength");this.A("pressedRollOverShadowBlurRadius",e.jc, 746"shadowBlurRadius");this.A("pressedRollOverShadowSpread",e.jc,"shadowSpread");this.A("pressedRollOverShadowOpacity",e.jc,"shadowOpacity");this.A("pressedRollOverShadowColor",e.jc,"shadowColor");this.A("pressedRollOverBackgroundOpacity",e.jc,"backgroundOpacity");this.A("pressedRollOverBackgroundColor",e.jc,"backgroundColor");this.A("pressedRollOverBackgroundColorRatios",e.jc,"backgroundColorRatios");this.A("pressedRollOverBackgroundColorDirection",e.jc,"backgroundColorDirection")};p.prototype.q9=function(){}; 747p.prototype.Hb=function(){n.prototype.Hb.call(this);this.Gi||(this.Gi=this.q9(),this.Ya(this.Gi));this.Pa||(this.Pa=new q,this.Ya(this.Pa))};p.prototype.yN=function(){this.get("pressed")?(this.set("pressed",!1),this.trigger(new h(c.Dl))):(this.set("pressed",!0),this.trigger(new h(c.Kj)))};p.prototype.Iv=function(){return this.get("label")||n.prototype.Iv.call(this)};p.prototype.bb=function(){var r=!1;this.L("mode")&&(this.B("mode")==b.Ke?(this.unbind(c.ma,this.yN,this,!0),this.set("autoPressed",!0)): 748(this.bind(c.ma,this.yN,this,!0),this.set("autoPressed",!1)),this.S("mode"),r=!0);if(r||this.L("pressed"))this.B("mode")==b.Nj?this.bK(1==this.B("pressed")):r&&this.bK(!1);this.L("label")&&(r=this.B("label"),this.Pa.set("text",r),this.Pa.set("visible",r?!0:!1),this.S("label"));this.uc(p.moa,p.noa,[this.Pa],!0,!0);this.L("iconBeforeLabel")&&(0==this.B("iconBeforeLabel")?this.ao(this.Pa,0):this.ao(this.Gi,0),this.S("iconBeforeLabel"));this.L("iconWidth")&&(this.Gi.set("width",this.B("iconWidth")),this.S("iconWidth")); 749this.L("iconHeight")&&(this.Gi.set("height",this.B("iconHeight")),this.S("iconHeight"));this.L("buttonGroup")&&((r=this.B("buttonGroup"))?g.register(this,r):g.unregister(this),this.S("buttonGroup"));this.uc(["horizontalAlign","verticalAlign"],{},[this.Gi],!0,!1);n.prototype.bb.call(this)};p.moa="fontFamily fontSize fontColor fontWeight fontStyle textDecoration textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" ");p.noa={};l(p.moa).each(function(r){p.noa[r]= 750r});return p});define("kh",["require","oj","mr"],function(a){var f=a("oj"),l=a("mr");return f.define("BaseButton",l,function(){l.call(this)})});define("jS",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("BaseObject",f,function(){f.call(this)})}); 751define("eF","require lQ mu pw cI bn oY bL".split(" "),function(a){var f=a("lQ"),l=a("mu");a("pw");var m=a("cI"),k=a("bn"),c=a("oY"),h=a("bL"),g={},b=f.extend(l,function(){l.call(this);this.C="stopped";this.Xb=void 0;this.ep=[];this.set("easing","linear");this.set("duration",1E3);this.set("loop",!1);this.set("animationDirection","normal")});b.prototype.play=function(d){d||(d=g);this.AL(d)||("stopped"==this.C||0>this.ep.indexOf(d)?(this.C="playing",this.ep.push(d),this.$e=0,this.Xb=Math.max(this.get("duration", 7521E3),1),this.sg=new c(this.get("easing","linear"),[new h("pos",0,1)],this.Xb),this.sg.setTime(this.$e),this.fK(),this.tx(),this.wQ()):this.C="playing")};b.prototype.reverse=function(d){d||(d=g);this.w7a(d)||("stopped"==this.C||0>this.ep.indexOf(d)?(this.C="playingReverse",this.ep.push(d),this.$e=this.
752Xb=Math.max(this.get("duration",1E3),0),this.sg=new c(this.get("easing","linear"),[new h("pos",0,1)],this.Xb),this.sg.setTime(this.$e),this.fK(),this.tx(),this.wQ()):this.C="playingReverse")};b.prototype.stop= 753function(){"stopped"!=this.C&&(this.C="stopped",0!==this.$e&&(this.$e=0,this.sg.setTime(this.$e),this.tx(),this.wQ()))};b.prototype.end=function(){"stopped"!=this.C&&(this.$e=this.Xb,this.sg.setTime(this.$e),this.tx(),this.wQ())};b.prototype.cancel=function(){this.C="stopped";this.$e=0;this.ep=[]};b.prototype.AL=function(d){return"playing"==this.C&&0<=this.ep.indexOf(d)};b.prototype.w7a=function(d){return"playingReverse"==this.C&&0<=this.ep.indexOf(d)};b.prototype.bk=function(d){"stopped"!=this.C&& 754(this.$e="playing"==this.C?Math.min(this.Xb,this.$e+d):Math.max(0,this.$e-d),this.sg.setTime(this.$e),this.tx(),this.wQ())};b.prototype.jl=function(){return this.sg&&this.sg.cb("pos")||0};b.prototype.Tz=function(d){if(this.ep)for(var e=0;e<this.ep.length;e++)d.call(this,this.ep[e],e)};b.prototype.fK=function(){this.trigger(new m("playingReverse"==this.C?b.oLa:b.qLa))};b.prototype.tx=function(){this.trigger(new m(b.i6))};b.prototype.dK=function(){this.trigger(new m(b.tk))};b.prototype.eK=function(){this.trigger(new m(b.cv))}; 755b.prototype.wQ=function(){"playingReverse"==this.C&&0>=this.$e?(this.$e=0,this.eK(),this.ep=[],"stopped"!=this.C&&(this.C="stopped",this.get("loop")&&this.play())):"playing"==this.C&&this.$e>=this.Xb?(this.$e=this.Xb,this.dK(),this.ep=[],"stopped"!=this.C&&(this.C="stopped","alternate"==this.get("animationDirection")?this.reverse():this.get("loop")&&this.play())):"stopped"!=this.C&&k.requestFrame(this.bk,this)};b.qLa="start";b.i6="frame";b.tk="end";b.oLa="reverseStart";b.cv="reverseEnd";return b}); 756define("hc",["require","pw","eF"],function(a){var f=a("pw"),l=a("eF");return{wRa:function(){this.Bk=this.Ze=null;this.bind(f.jd,this.dra,this,!0);this.bind(f.ad,this.Zqa,this,!0);this.bind(f.Dc,this.ara,this,!0);this.bind(f.Jb,this.$qa,this,!0);this.bind(f.F("effect"),this.Xqa,this,!0);this.bind(f.F("rollOverEffect"),this.bra,this,!0);this.CD=!1},vdb:function(){this.unbind(f.jd,this.dra,this,!0);this.unbind(f.ad,this.Zqa,this,!0);this.unbind(f.Dc,this.ara,this,!0);this.unbind(f.Jb,this.$qa,this,!0); 757this.unbind(f.F("effect"),this.Xqa,this,!0);this.unbind(f.F("rollOverEffect"),this.bra,this,!0)},dra:function(){this.Ze&&this.Ze.play()},Zqa:function(){this.Ze&&this.Ze.stop();this.Bk&&this.Bk.stop();this.CD=!1},ara:function(){this.CD||(this.CD=!0,this.Bk&&(this.Ze&&this.Ze.get("loop")&&0<this.Ze.jl()?this.Ze.reverse():this.Ze&&0!=this.Ze.jl()&&1!=this.Ze.jl()||(this.Ze&&this.Ze.stop(),this.Bk.play())))},$qa:function(){this.CD&&(this.CD=!1,this.Bk&&(0<this.Bk.jl()?this.Bk.reverse():this.Ze&&this.Ze.get("loop")&& 758this.Ze.play()))},Yqa:function(){this.j$()},j$:function(){this.CD&&this.Bk&&(this.Ze.stop(),this.Bk.play())},cra:function(){this.CD||(this.Bk.stop(),this.Ze&&this.Ze.get("loop")&&this.Ze.play())},Xqa:function(){this.Ze&&this.Ze.unbind(l.tk,this.Yqa,this,!0);this.Ze&&this.Ze.unbind(l.cv,this.j$,this,!0);(this.Ze=this.get("effect"))&&this.Ze.bind(l.tk,this.Yqa,this,!0);this.Ze&&this.Ze.bind(l.cv,this.j$,this,!0)},bra:function(){this.Bk&&this.Bk.unbind(l.cv,this.cra,this,!0);(this.Bk=this.get("rollOverEffect"))&& 759this.Bk.bind(l.cv,this.cra,this,!0)}}}); 760define("jd",["require","lQ","mu","oj","hc"],function(a){var f=a("lQ"),l=a("mu"),m=a("oj");a=a("hc");m=m.define("Model3DObject",l,function(){l.call(this);this.set("hidden",!1);this.wRa();this.kp=this.kJ=this.Faa=this.Eaa=!1;this.Vaa=!0;this.XD=!1});f.L1(m,[a]);var k=["enabledInStandard","enabledInVR","hideBasedOnDistance","hideWhileUserInteracting","hideWhileMoving"];m.prototype.set=function(c,h){l.prototype.set.call(this,c,h);-1!=k.indexOf(c)&&this.pF()};m.prototype.Rka=function(c){this.Faa!==c&& 761(this.Faa=c,this.pF())};m.prototype.aC=function(c){this.kp!==c&&(this.kp=c,this.pF())};m.prototype.bo=function(c){this.kJ!==c&&(this.kJ=c,this.pF())};m.prototype.L4=function(c){this.Vaa!==c&&(this.Vaa=c,this.pF())};m.prototype.Ay=function(c){this.XD!==c&&(this.XD=c,this.pF())};m.prototype.Qka=function(c){this.Eaa!==c&&(this.Eaa=c,this.pF())};m.prototype.pF=function(){this.set("hidden",this.Faa||this.Eaa||this.XD&&!1===this.get("enabledInVR")||this.Vaa&&!1===this.get("enabledInStandard")||this.kJ&& 762this.get("hideWhileMoving")||this.kp&&this.get("hideWhileUserInteracting"))};return m});
762define("gz",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("BoxModel3DObject",l,function(){l.call(this)})});define("mI",["require"],function(){return{NONE:"none",$y:"fill",Sh:"fit_inside",As:"fit_outside",Vp:"fit_to_width",vk:"fit_to_height",WKa:"custom"}}); 763define("nf","require es jquery.mod lQ pw iw w nA mI e gV hh".split(" "),function(a){function f(r){this.G8=r;this.Bd=[];this.Kl=null}var l=a("es"),m=a("jquery.mod"),k=a("lQ"),c=a("pw"),h=a("iw"),g=a("w"),b=a("nA"),d=a("mI"),e=a("e"),n=a("gV"),q=a("hh");f.Bn=document.createElement("a");f.prototype.NPa=function(r){f.Bn.href=r;return f.Bn.href};f.prototype.load=function(r,t,u){r=this.NPa(r);this.Kl&&!this.Kl.Kh()&&(this.Kl.cancel(),this.Bd=l(this.Bd).without(this.Kl));(this.Kl=l(this.Bd).find(function(x){return x.Yi()== 764r}))?this.Bd=l(this.Bd).without(this.Kl):(this.Kl=new q(h.Ena),this.Kl.load(r));for(this.Bd.splice(0,0,this.Kl);this.Bd.length>this.G8;)this.Bd.pop().cancel();if(t){var v=this.Kl,w=function(){t.call(u||window,v.Af(),v.De(),v.Te())};this.Kl.Kh()?w():this.Kl.bind(c.da,w)}};f.prototype.clear=function(){this.Bd.forEach(function(r){r.cancel()});this.Kl=null};a=k.extend(e,function(r){e.call(this);this.Qe("Image");this.G8=r||1;this.uga=!1;this.Sl=b.ab;this.SX=!1;this.vm=b.Ec;this.n1=!1;this.Of=d.NONE;this.lea= 765!1;this.xJ=this.yJ=0;this.Saa=this.Vca=!1;this.ec=this.Rb=0;this.Tv=!1;this.rd=this.Tl=this.ic=this.aY=this.$X=null;this.bind(c.tc,this.rUa,this);this.bind(c.jd,this.sUa,this)});a.prototype.eaa=function(){this.rd=new f(this.G8);this.eaa=function(){return this.rd};return this.rd};a.prototype.yb=function(){e.prototype.yb.call(this);this.h("horizontalAlign",b.ab);this.h("verticalAlign",b.Ec);this.h("scaleMode",d.NONE)};a.prototype.set=function(r,t){"url"==r&&this.get("url")!=t&&(this.uga=!0,this.ve()); 766e.prototype.set.call(this,r,t)};a.prototype.jM=function(r){this.Sl!=r&&(this.Sl=r,this.SX=!0,this.ve())};a.prototype.qM=function(r){this.vm!=r&&(this.vm=r,this.n1=!0,this.ve())};a.prototype.$B=function(r){this.Of!=r&&(this.Of=r,this.lea=!0,this.ve(),this.hc())};a.prototype.rUa=function(){this.Tv=!0;this.ve()};a.prototype.sUa=function(){this.tAa()};var p={position:"static",cursor:"inherit",display:"inline",verticalAlign:"top",visibility:"hidden","pointer-events":"none","user-select":"none","-ms-user-select":"none", 767"-moz-user-select":"none","-webkit-user-select":"none","touch-callout":"none","-webkit-touch-callout":"none"};g.browser()==g.Sm&&g.pb()&&(p.transform="translate3d(0,0,0)");a.prototype.Yoa=function(r,t,u){this.yJ=t?t:0;this.xJ=u?u:0;this.ic&&(this.ic.remove(),this.ic=null);if(this.Tl=r)this.ic=m(this.Tl),n.css(this.Tl,p),this.$X.append(this.ic);this.Vca=this.Saa=!0;this.ve();this.hc();this.ic&&this.trigger(c.da)};a.prototype.Hb=function(){e.prototype.Hb.call(this);this.$X||(this.aY=document.createElement("div"), 768this.$X=m(this.aY),n.css(this.aY,{position:"static",overflow:"hidden",cursor:"inherit"}),this.Yb().append(this.$X))};a.prototype.Fw=function(){this.$l=this.yJ+this.Bm()+this.lu();this.Zl=this.xJ+this.mu()+this.mL();this.Gta=0==this.yJ&&0==this.xJ?0:this.yJ/this.xJ;this.hP=this.iP=0};a.prototype.bb=function(){this.L("scaleMode")&&(this.$B(this.B("scaleMode")),this.S("scaleMode"));this.L("horizontalAlign")&&(this.jM(this.B("horizontalAlign")),this.S("horizontalAlign"));this.L("verticalAlign")&&(this.qM(this.B("verticalAlign")), 769this.S("verticalAlign"));this.Roa()&&(this.Tv=!0);e.prototype.bb.call(this);this.tAa();if(this.q6a()){var r=!1;if(this.lea||this.Vca||this.Tv){var t=this.zf(),u=this.yf(),v=this.yJ,w=this.xJ,x;if(0==v||0==w)var y=x=0;else switch(this.Of){case d.NONE:x=v;y=w;break;case d.$y:x=t;y=u;break;case d.Sh:v*u>w*t?(x=t,y=w*t/v):(x=v*u/w,y=u);break;case d.As:v*u>w*t?(x=v*u/w,y=u):(x=t,y=w*t/v);break;case d.Vp:x=t;y=w*t/v;break;case d.vk:x=v*u/w,y=u}if(this.Rb!=x||this.ec!=y)this.Rb=x,this.ec=y,r=!0;this.Vca= 770this.lea=!1}if(r||this.Tv||this.Saa)this.n1=this.SX=!0,this.Tl&&n.css(this.Tl,{width:this.Rb+"px",height:this.ec+"px",visibility:"inherit"}),n.css(this.aY,{width:this.zf()+"px",height:this.yf()+"px","border-top-left-radius":this.NX(this.uSa(),this.Lra(),this.Jra())+"px","border-top-right-radius":this.NX(this.vSa(),this.Lra(),this.Kra())+"px","border-bottom-left-radius":this.NX(this.sSa(),this.Ira(),this.Jra())+"px","border-bottom-right-radius":this.NX(this.tSa(),this.Ira(),this.Kra())+"px"}),this.hc(), 771this.Saa=this.Tv=!1;if(this.SX&&this.Tl){switch(this.Sl){case b.ab:n.css(this.Tl,{"margin-left":0,"margin-right":this.zf()-this.Rb+"px"});break;case b.tb:n.css(this.Tl,{"margin-left":this.zf()-this.Rb+"px","margin-right":0});break;case b.Ye:n.css(this.Tl,{"margin-left":Math.floor(.5*(this.zf()-this.Rb))+"px","margin-right":Math.ceil(.5*(this.zf()-this.Rb))+"px"})}this.SX=!1}if(this.n1&&this.Tl){switch(this.vm){case b.Ec:n.css(this.Tl,{"margin-top":0,"margin-bottom":this.yf()-this.ec+"px"});break; 772case b.wc:n.css(this.Tl,{"margin-top":this.yf()-this.ec+"px","margin-bottom":0});break;case b.qe:n.css(this.Tl,{"margin-top":Math.floor(.5*(this.yf()-this.ec))+"px","margin-bottom":Math.ceil(.5*(this.yf()-this.ec))+"px"})}this.n1=!1}}};a.prototype.tAa=function(){if(this.uga){var r=this.get("url");r?this.eaa().load(r,this.Yoa,this):(this.eaa().clear(),this.Yoa(null,0,0));this.uga=!1}};a.prototype.NX=function(r,t,u){if(!r)return 0;var v=0;t&&(v=Math.max(v,t));u&&(v=Math.max(v,u));return Math.max(0, 773r-v)};return a}); 774define("gj","require lQ mI hf mr nf".split(" "),function(a){var f=a("lQ"),l=a("mI"),m=a("hf"),k=a("mr"),c=a("nf");a=f.extend(k,function(){k.call(this)});a.prototype.yb=function(){k.prototype.yb.call(this);this.h("iconURL");this.A("rollOverIconURL",m.aa,"iconURL");
774this.A("pressedIconURL",m.Ab,"iconURL");this.A("pressedRollOverIconURL",m.jc,"iconURL")};a.prototype.q9=function(){var h=new c(3);h.set("scaleMode",l.Sh);return h};a.prototype.bb=function(){if(this.L("iconURL")){var h=this.B("iconURL");this.Gi.set("url", 775h);this.Gi.set("visible",h?!0:!1);this.S("iconURL")}k.prototype.bb.call(this)};return a});define("gi",["require","oj","gj"],function(a){var f=a("oj"),l=a("gj");return f.define("Button",l,function(){l.call(this)})});define("iB",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("CapPanoramaOverlay",f,function(){f.call(this)})});define("iq",["require","oj","iB"],function(a){var f=a("oj"),l=a("iB");return f.define("CeilingCapPanoramaOverlay",l,function(){l.call(this)})}); 776define("l",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("ChildModel3DObject",l,function(){l.call(this);this.set("floorColor","transparent")})}); 777define("cH","require es jquery.mod lQ pw cI e".split(" "),function(a){a("es");var f=a("jquery.mod"),l=a("lQ"),m=a("pw"),k=a("cI"),c=a("e");a=l.extend(c,function(){c.call(this);this.Qe("Canvas");this.f$=!0;this.T=null;this.bind(m.tc,this.jPa,this)});a.prototype.jPa=function(){this.h3()};a.prototype.h3=function(){this.f$=!0;this.ml()};a.prototype.Hb=function(){c.prototype.Hb.call(this);this.T||(this.T=f("<canvas/>"),this.T.css({position:"absolute",left:0,top:0,cursor:"inherit"}),this.Yb().append(this.T))}; 778a.prototype.bb=function(){this.Roa()&&this.h3();c.prototype.bb.call(this)};a.prototype.qh=function(){if(this.f$){this.f$=!1;var h=this.T.get(0);h.width=this.zf();h.height=this.yf();this.Wbb()}c.prototype.qh.call(this)};a.prototype.s5a=function(){return this.T.get(0).width};a.prototype.r5a=function(){return this.T.get(0).height};a.prototype.q5a=function(){return this.T.get(0).getContext("2d")};a.prototype.Wbb=function(){this.trigger(new k(m.ba))};return a}); 779define("kB","require lQ pw hf mr cH".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("hf"),k=a("mr"),c=a("cH");a=f.extend(k,function(){k.call(this)});a.prototype.cj=function(){k.prototype.cj.call(this)};a.prototype.yb=function(){k.prototype.yb.call(this);this.h("iconColor");this.A("rollOverIconColor",m.aa,"iconColor");this.A("pressedIconColor",m.Ab,"iconColor");this.A("pressedRollOverIconColor",m.jc,"iconColor")};a.prototype.q9=function(){var h=new c;h.bind(l.ba,this.nKa,this,!0);return h};a.prototype.bb= 780function(){this.L("iconColor")&&(this.Gi.h3(),this.S("iconColor"));k.prototype.bb.call(this)};a.prototype.WSa=function(){return this.B("iconColor")};a.prototype.XSa=function(){return this.Gi.q5a()};a.prototype.ZSa=function(){return this.Gi.s5a()};a.prototype.YSa=function(){return this.Gi.r5a()};a.prototype.nKa=function(){};return a}); 781define("gs","require lQ pw kB nA hf jt".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("kB"),k=a("nA"),c=a("hf"),h=a("jt");a=f.extend(m,function(){m.call(this);this.ra({horizontalAlign:k.Ye,verticalAlign:k.qe});this.Jw=this.Jw.bind(this);this.bind(l.jd,this.sj,this,!0);this.bind(l.ad,this.rj,this,!0)});a.prototype.yb=function(){m.prototype.yb.call(this);this.h("iconLineWidth");this.A("rollOverIconLineWidth",c.aa,"iconLineWidth");this.A("pressedIconLineWidth",c.Ab,"iconLineWidth");this.A("pressedRollOverIconLineWidth", 782c.jc,"iconLineWidth")};a.prototype.hTa=function(){return this.B("iconLineWidth")};a.prototype.bb=function(){this.L("iconLineWidth")&&(this.Gi.h3(),this.S("iconLineWidth"));m.prototype.bb.call(this)};a.prototype.nKa=function(){var g=this.XSa(),b=this.WSa(),d=this.ZSa(),e=this.YSa(),n=this.hTa();g.clearRect(0,0,d,e);g.lineWidth=n||1;g.strokeStyle=b||"#000000";g.beginPath();g.moveTo(0,0);g.lineTo(d,e);g.moveTo(0,e);g.lineTo(d,0);g.closePath();g.stroke()};a.prototype.sj=function(){h.Wga(this.Jw)};a.prototype.rj= 783function(){h.ika(this.Jw)};a.prototype.Jw=function(){this.trigger(l.ma)};return a});define("jP",["require","oj","gs"],function(a){var f=a("oj"),l=a("gs");return f.define("CloseButton",l,function(){l.call(this)})});define("kD",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("CookiesPolicy",f,function(){f.call(this)})}); 784define("ms",["require","lT","oj","oP"],function(a){var f=a("lT"),l=a("oj"),m=a("oP");a=l.define("Container",m,function(){m.call(this)});a.prototype.scrollTo=function(k,c){m.prototype.scrollTo.call(this,k,c)};a.prototype.scrollIntoView=function(k){f.RB(function(){m.prototype.scrollIntoView.call(this,k)}.bind(this))};return a}); 785define("lY",["require","mu","oj"],function(a){var f=a("mu"),l=a("oj");a=l.define("PanoramaFrame",f,function(){f.call(this);this.ya=null});a.prototype.get=function(m,k){switch(m){case "overlays":return this.haa();case "hfov":case "vfov":case "pitch":case "flipImageHorizontally":case "minFaceSize":if(this.ya)return this.ya.get(m,k)}return f.prototype.get.call(this,m,k)};a.prototype.haa=function(){var m=f.prototype.get.call(this,"overlays");m||(m=[]);return this.Qea(m)};a.prototype.Qea=function(m){if(void 0=== 786this.gK||this.zY!=m){var k=function(h){return l.Ja("PopupPanoramaOverlay",h)},c=function(h){return l.Ja("LensFlarePanoramaOverlay",h)};this.zY=m;this.gK=[].concat(m.filter(function(h){return!(k(h)||c(h))}),m.filter(c),m.filter(k))}return this.gK};a.prototype.j3a=function(m){this.ya=m};a.prototype.sB=function(){return this.ya};a.prototype.Dm=function(){return!1};return a});define("pe",["require","oj","lY"],function(a){var f=a("oj"),l=a("lY");return f.define("CubicPanoramaFrame",l,function(){l.call(this)})}); 787define("iO",["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.", 788"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", 789accept:"\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.", 790"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.", 791download:"\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", 792"exit-fullscreen":"\u0418\u0437\u043b\u0435\u0437\u0442\u0435 \u043e\u0442 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",
792no:"\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.", 793"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 <a> \u041f\u0440\u0430\u0432\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0438\u0442\u0435 </a>.", 794"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","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", 795"exit-vr":"\u0418\u0437\u043b\u0438\u0437\u0430\u043d\u0435 \u043e\u0442 \u0440\u0435\u0436\u0438\u043c VR","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.", 796"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.", 797"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?",reject:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\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.", 798"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.", 799"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.", 800"\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."], 801"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", 802"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.", 803"refresh-downloaded":"\u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435","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.", 804"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.", 805cancel:"Sulje","change-to-click-and-move":"Muuta ohjaustilaa klikkaamalla ja siirt\u00e4m\u00e4ll\u00e4",yes:"Kyll\u
80500e4","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.", 806"cookies-notice":"T\u00e4m\u00e4 verkkosivu k\u00e4ytt\u00e4\u00e4 ev\u00e4steit\u00e4 k\u00e4ytt\u00f6tilastojen ker\u00e4\u00e4miseen. Lis\u00e4tietoja <a>ev\u00e4stek\u00e4yt\u00e4nn\u00f6st\u00e4</a>.","use-cardboard":"K\u00e4yt\u00e4 Cardboardia","launch-default-browser":"K\u00e4ynnist\u00e4 oletusselaimessa","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.", 807"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.", 808"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.", 809"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", 810"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.","refresh-downloaded":"P\u00e4ivit\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.", 811"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\u
81100e1lna 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.", 812download:"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.", 813"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 <a> pravidl\u00e1ch pou\u017e\u00edvania s\u00faborov cookie </a>.","use-cardboard":"Pou\u017eite Cardboard okuliare.","launch-default-browser":"Spusti\u0165 v predvolenom prehliada\u010di","rotate-device":"Oto\u010dte svoje zariadenie","exit-vr":"Ukon\u010denie VR","storage-not-provided-launch-from-desktop":"Znovu na\u010d\u00edtajte prehliadku pomocou desktop ikony pre jej stiahnite.", 814"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?",reject:"Odmietnu\u0165",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.", 815"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.", 816"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.", 817"refresh-downloaded":"Obnovi\u0165","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.", 818"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", 819accept:"\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.", 820"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.", 821download:"\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", 822"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.", 823"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 <a> \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</a>.", 824"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","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", 825"exit-vr":"\u0412\u0438\u0439\u0434\u0456\u0442\u044c \u0456\u0437 VR","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.","disable-measure":"\u041f\u0440\u0438\u043f\u0438\u043d\u0456\u0442\u044c \u0432\u0438\u043c\u0456\u0440\u044e\u0432\u0430\u043d\u043d\u044f", 826downloading:"\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.", 827"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?",reject:"\u0412\u0456\u0434\u0445\u0438\u043b\u0438\u0442\u0438",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.", 828"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.", 829"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.", 830"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.", 831"\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."], 832"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\
832u044c \u0443 \u043f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c", 833"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.", 834"refresh-downloaded":"\u041e\u043d\u043e\u0432\u0438\u0442\u0438","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.", 835"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.", 836download:"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 <a>Cookie Policy</a>.", 837"use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","rotate-device":"Please rotate your device","exit-vr":"Exit VR","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.","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?", 838reject:"Reject",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.", 839"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", 840"enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","refresh-downloaded":"Refresh","use-default-cardboard":"Use Default","enable-audio-prompt":"Enable audio?"},"sv-se":{mute:"Inaktivera ljud","cardboard-v1":"If you are not sure, which Cardboard ver
840sion 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", 841"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.", 842cancel:"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 <a>Cookie Policy</a>.", 843"use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","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.", 844downloaded:"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.", 845"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", 846"enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","refresh-downloaded":"Refresh","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", 847"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", 848"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 <a>Kebijakan Cookie</a>.", 849"use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","rotate-device":"Please rotate your device","exit-vr":"Exit VR","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.","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?", 850reject:"Menolak",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.", 851"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", 852"enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","refresh-downloaded":"Refresh","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.", 853"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","
853web-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.", 854download:"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.", 855"cookies-notice":"Esta p\u00e1gina da web usa cookies para coletar estat\u00edsticas de uso. Para obter mais informa\u00e7\u00f5es, visite a <a>Pol\u00edtica de cookies</a>.","use-cardboard":"Use Cardboard","launch-default-browser":"Iniciar no navegador padr\u00e3o","rotate-device":"Por favor, gire seu dispositivo","exit-vr":"Sair do VR","storage-not-provided-launch-from-desktop":"Por favor, reinicie o tour no \u00edcone da \u00e1rea de trabalho para fazer o download.","disable-measure":"Stop measuring", 856downloading:"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?",reject:"Rejeitar",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.", 857"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."], 858"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","refresh-downloaded":"Atualizar","use-default-cardboard":"Use o padr\u00e3o", 859"enable-audio-prompt":"Ativar \u00e1udio?"},"it-it":{mute:"Disabilita audio","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":"Cambia la modalit\u00e0 di controllo per trascinare e rilasciare",accept:"Accettare",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.", 860"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":"Cambia la modalit\u00e0 di controllo per fare clic e spostare",yes:"s\u00ec","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode", 861"exit-fullscreen":"Esci dalla modalit\u00e0 schermo intero",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":"Questa pagina web utilizza i cookie per raccogliere statistiche sull'utilizzo. Per ulteriori informazioni, visita la <a>Cookie Policy</a>.","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser", 862"rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Rifiutare","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":"Abilita audio e 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.", 863"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":"Abilita il video?", 864"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":"Entra a schermo intero","use-cardboard-v2":"Use Cardboard v2",unmute:"Abilita audio","enter-vr":"Enter VR content","enable-measure":"Start measuring", 865"use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","refresh-downloaded":"Refresh","use-default-cardboard":"Use Default","enable-audio-prompt":"Abilita l'audio?"},"zh-tw":{mute:"\u975c\u97f3","cardboard-v1":"If you are not sure, which Cardboard ver
865sion 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", 866"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", 867download:"\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", 868"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<a> Cookie\u653f\u7b56</a>\u3002","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","rotate-device":"Please rotate your device","exit-vr":"Exit VR","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", 869"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?",reject:"\u62d2\u7d55",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.", 870"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", 871"\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", 872"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.","refresh-downloaded":"\u91cd\u65b0\u6574\u7406","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 ver
872sjon du bruker, velger du standard hotspot-kontrollen. Du vil da bare se p\u00e5 et hotspot og vente til handlingen utl\u00f8ses.", 873"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.", 874download:"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.", 875"cookies-notice":"Denne websiden bruker informasjonskapsler for \u00e5 samle inn bruksstatistikk. For mer informasjon, bes\u00f8k <a>retningslinjer for informasjonskapsler</a>.","use-cardboard":"Bruk Cardboard","launch-default-browser":"\u00c5pne i standard nettleser","rotate-device":"Vennligst roter enheten","exit-vr":"G\u00e5 ut av VR","storage-not-provided-launch-from-desktop":"Start turen p\u00e5 nytt fra skrivebordsikonet for \u00e5 laste ned.","disable-measure":"Stop measuring",downloading:"Laster ned", 876"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?",reject:"Avvis",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.", 877"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."], 878"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.","refresh-downloaded":"Last inn p\u00e5 nytt","use-default-cardboard":"Bruk Standard", 879"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", 880"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","
880web-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", 881yes:"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 <a>Pol\u00edtica de cookies</a>.", 882"use-cardboard":"Use Cardboard","launch-default-browser":"Iniciar no navegador padr\u00e3o","rotate-device":"Por favor, gire seu dispositivo","exit-vr":"Sair do VR","storage-not-provided-launch-from-desktop":"Por favor, reinicie o tour no \u00edcone da \u00e1rea de trabalho para fazer o download.","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.", 883"enable-video-audio-prompt":"Ativar \u00e1udio e v\u00eddeo?",reject:"Rejeitar",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.", 884"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", 885unmute:"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","refresh-downloaded":"Atualizar","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.", 886"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.", 887cancel:"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 <a>Pravila o kola\u010di\u0107ima</a>.", 888"use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","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.", 889downloaded:"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.", 890"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", 891"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.","refresh-downloaded":"Refresh","use-default-cardboard":"Use Default","enable-audio-prompt":"\u017delite li omogu\u0107iti zvu
891k?"},"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", 892"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", 893"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", 894download:"\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", 895no:"\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", 896"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\u3001<a>Cookie\u30dd\u30ea\u30b7\u30fc</a>\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","rotate-device":"\u7aef\u672b\u3092\u56de\u8ee2\u3055\u305b\u3066\u304f\u3060\u3055\u3044", 897"exit-vr":"VR\u30d3\u30e5\u30fc \u7d42\u4e86","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","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", 898"enable-video-audio-prompt":"\u30d3\u30c7\u30aa\u3068\u97f3\u58f0\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u304b\uff1f",reject:"\u62d2\u5426\u3059\u308b",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", 899"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", 900"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"], 901"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", 902"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","refresh-downloaded":"\u66f4\u65b0","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",
903"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", 904"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", 905download:"\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", 906"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\u95ee<a>Cookie\u653f\u7b56</a>\u3002","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","rotate-device":"Please rotate your device","exit-vr":"Exit VR","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", 907"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",reject:"\u62d2\u7edd",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.", 908"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", 909"\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", 910"enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","refresh-downloaded":"\u5237\u65b0","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", 911"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.", 912cancel:"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.", 913"cookies-notice":"Deze webpagina maakt gebruik van cookies om gebruiksstatistieken te verzamelen. Raadpleeg het <a>Cookiebeleid</a> voor meer informatie.","use-cardboard":"Gebruik Cardboard","launch-default-browser":"Start op in standaard browser","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.", 914"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.", 915"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", 916unmute:"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.","refresh-downloaded":"Verversen","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.", 917"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.", 918download:"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.", 919"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 <a>s\u00fctikre vonatkoz\u00f3 ir\u00e1nyelvekbe</a>.","use-cardboard":"Cardboard haszn\u00e1lata","launch-default-browser":"Futtat\u00e1s az alap\u00e9rtelmezett b\u00f6ng\u00e9sz\u0151ben","rotate-device":"Forgasd el a telefont!","exit-vr":"Kil\u00e9p\u00e9s a VR m\u00f3db\u00f3l","storage-not-provided-launch-from-desktop":"K\u00e9rlek ind\u00edtsd \u00fajra az oldalt az asztalon tal\u00e1lhat\u00f3 iconra kattintva.", 920"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",reject:"Elutas\u00edt",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.", 921"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."], 922"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.","refresh-downloaded":"Friss\u00edt\u00e9s",
923"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", 924accept:"\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", 925yes:"\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.", 926"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 <a> \u0633\u064a\u0627\u0633\u0629 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 </a>.", 927"use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","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", 928"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.", 929"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", 930"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.","refresh-downloaded":"Refresh","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.", 931"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.", 932download:"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.", 933"cookies-notice":"Aquesta p\u00e0gina web utilitza cookies per recopilar estad\u00edstiques d\u2019\u00fas. Per obtenir m\u00e9s informaci\u00f3, visiteu la <a>Pol\u00edtica de cookies</a>.","use-cardboard":"Utilitzeu Cardboard","launch-default-browser":"Inicieu el navegador per defecte","rotate-device":"Gireu el dispositiu","exit-vr":"Surt de VR","storage-not-provided-launch-from-desktop":"Torneu a iniciar la visita virtual des de la icona de l'escriptori per a descarregar-la.","disable-measure":"Stop measuring", 934downloading:"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?",reject:"Rebutjar",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.", 935"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."], 936"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.","refresh-downloaded":"Actualitzaci\u00f3","use-default-cardboard":"\u00das per defecte", 937"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.", 938"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", 939accept:"\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.", 940"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.", 941cancel:"\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.", 942"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.", 943"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. <
943a>\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</a>.", 944"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","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", 945"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.", 946"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..", 947downloaded:"\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.", 948"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.", 949"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.", 950"\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."], 951"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", 952"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.", 953"refresh-downloaded":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c","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 ver
953sjon du bruker, velger du standard hotspot-kontrollen. Du vil da bare se p\u00e5 et hotspot og vente til handlingen utl\u00f8ses.", 954"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.", 955download:"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.", 956"cookies-notice":"Denne websiden bruker informasjonskapsler for \u00e5 samle inn bruksstatistikk. For mer informasjon, bes\u00f8k <a>retningslinjer for informasjonskapsler</a>.","use-cardboard":"Bruk Cardboard","launch-default-browser":"\u00c5pne i standard nettleser","rotate-device":"Vennligst roter enheten","exit-vr":"G\u00e5 ut av VR","storage-not-provided-launch-from-desktop":"Start turen p\u00e5 nytt fra skrivebordsikonet for \u00e5 laste ned.","disable-measure":"Stop measuring",downloading:"Laster ned", 957"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?",reject:"Avvis",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.", 958"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."], 959"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.","refresh-downloaded":"Last inn p\u00e5 nytt","use-default-cardboard":"Bruk Standard", 960"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\u00f1
960adir la p\u00e1gina a los marcadores y recargarla.", 961"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:"si","delete-downloaded":"Borrar","use-safari-for-vr":"Recomendamos Safari para ver este tour en modo VR", 962"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 <a>Pol\u00edtica de Cookies</a>.","use-cardboard":"Usar Cardboard", 963"launch-default-browser":"Lanzar en el navegador por defecto","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?", 964reject:"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.", 965"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", 966unmute:"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.","refresh-downloaded":"Actualizar","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.", 967"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", 968"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", 969yes:"\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.", 970"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 <a> \u03a0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ae cookie </a>.", 971"use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","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;", 972"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.", 973"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", 974"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.","refresh-downloaded":"Refresh","use-default-cardboard":"Use Default","enable-audio-prompt":"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ae\u03c7\u03bf\u03c5;"}, 975"da-dk":{mute:"Deaktiver lyd","cardboard-v1":"If you are not sure, which Cardboard ver
975sion 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", 976"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", 977"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 <a> Cookiepolitik </a>.","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Afvise","disable-measure":"Stop measuring", 978downloading:"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.", 979"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."], 980"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.","refresh-downloaded":"Refresh","use-default-cardboard":"Use Default","enable-audio-prompt":"Aktiv\u00e9r lyd?"},"pl-pl":{mute:"Wycisz", 981"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.", 982"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",
982yes:"tak","delete-downloaded":"Usu\u0144","use-safari-for-vr":"Zalecamy Safari, jako przegl\u0105dark\u0119 spacer\u00f3w w trybie VR", 983"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 <a>Zasady dotycz\u0105ce plik\u00f3w cookie</a>.", 984"use-cardboard":"U\u017cyj Cardboard","launch-default-browser":"Uruchom w domy\u015blnej przegl\u0105darce","rotate-device":"Obr\u00f3\u0107 urz\u0105dzenie","exit-vr":"Wyjd\u017a z VR","storage-not-provided-launch-from-desktop":"Aby pobra\u0107, uruchom ponownie spacer klikaj\u0105c ikon\u0119 pulpitu.","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.", 985"enable-video-audio-prompt":"W\u0142\u0105czy\u0107 video i d\u017awi\u0119k?",reject:"Odrzuca\u0107",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.", 986"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", 987unmute:"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.","refresh-downloaded":"Od\u015bwie\u017c","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.", 988"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.", 989download:"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 S
989afari 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.", 990"cookies-notice":"Cette page Web utilise des cookies pour collecter des statistiques d'utilisation. Pour plus d'informations, veuillez consulter la <a>Politique en mati\u00e8re de cookies</a>.","use-cardboard":"Utiliser le Cardboard","launch-default-browser":"Lancer dans le navigateur par d\u00e9faut","rotate-device":"Veuillez faire pivoter votre appareil","exit-vr":"Quitter la r\u00e9alit\u00e9 virtuelle","storage-not-provided-launch-from-desktop":"Veuillez relancer la visite \u00e0 partir de l'ic\u00f4ne du bureau pour t\u00e9l\u00e9charger.", 991"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?",reject:"Rejeter",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.", 992"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.", 993"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", 994"use-cardboard-info":"Vous pouvez utiliser n'importe quel casque Google Cardboard compatible pour visualiser ce contenu en r\u00e9alit\u00e9 virtuelle.","refresh-downloaded":"Rafra\u00eechir","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.", 995"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.", 996cancel:"Abbrechen","change-to-click-and-move":"\u00c4ndern Sie den Steuerungsmodus, um zu klicken und zu drehe
996n",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.", 997"cookies-notice":"Diese Webseite verwendet Cookies, um Nutzungsstatistiken zu sammeln. Weitere Informationen finden Sie in der <a>Cookie-Richtlinie</a>.","use-cardboard":"Cardboard verwenden","launch-default-browser":"Im Standardbrowser starten","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.", 998"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.", 999"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", 1000"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.","refresh-downloaded":"Aktualisieren","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.", 1001"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.", 1002cancel:"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.", 1003"cookies-notice":"Bu web sayfas\u0131, kullan\u0131m istatistiklerini toplamak i\u00e7in tan\u0131mlama bilgileri kullan\u0131r. Daha fazla bilgi i\u00e7in l\u00fctfen <a>\u00c7erez Politikas\u0131n\u0131</a> ziyaret edin.","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","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.", 1004"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.", 1005"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", 1006"enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","refresh-downloaded":"Refresh","use-default-cardboard":"Use Default","enable-audio-prompt":"Ses aktif edilsin mi?"}}}); 1007define("pu",["require","lQ","iO","mQ"],function(a){function f(d){return m[b][d]||m.en[d]||d}var l=a("lQ"),m=a("iO"),k=a("mQ"),c;for(c in m)m[c.substr(0,2)]=m[c];m.en["giroscope-disabled-safari-toggle-on"]='<div>
1007Your device\'s motion and orientation access and VR mode are disabled for this site.</div>\n<div>To properly see this webpage, please enable it:</div>\n<ul style="display:inline-block; text-align:left;">\n<li>Access you device\'s settings: "Settings > Safari > Privacy & Security" and toggle on: "Motion & Orientation Access".</li>\n<li>Refresh the browser.</li>\n</ul>';m["zh-hk"]= 1008m["zh-mo"]=m["zh-tw"];m.no=m.nn;var h=function(){var d=window.navigator,e=["language","browserLanguage","systemLanguage","userLanguage"],n,q,p=[];(n=k.getQueryParameter("language"))&&p.push(n.toLowerCase());var r=d.languages;if(Array.isArray(r))for(n=0;n<r.length;n++)(q=r[n])&&q.length&&(q=q.toLowerCase(),-1==p.indexOf(q)&&p.push(q));for(n=0;n<e.length;n++)(q=d[e[n]])&&q.length&&(q=q.toLowerCase(),-1==p.indexOf(q)&&p.push(q));return p}(),g=Object.keys(m),b=function(){for(var d=0;d<h.length;d++){var e= 1009h[d];if(0<=g.indexOf(e))return e;e=e.substr(0,2);if(0<=g.indexOf(e))return e}return"en"}();f.log=function(){l.log("translation lang: "+b);l.log("browser lang: "+h.join(", "))};return f}); 1010define("pL",["require"],function(){var a={};a.src=a.ceb="data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE=";return a}); 1011define("el",["require","pL","w"],function(a){function f(q){var p=document.createElement("video");p.setAttribute("webkit-playsinline","true");p.setAttribute("playsinline","true");p.src=h.src;var r=p.play();if(r){var t=!1;r.then(function(){t=!0;p.pause();q(!1)})["catch"](function(){t||q(!0)})}else p.pause(),q(!1)}function l(q){var p=!1,r=document.createElement("video");r.setAttribute("webkit-playsinline","true");r.setAttribute("playsinline","true");r.src="";(r=r.play())?r["catch"](function(t){p="NotAllowedError"!== 1012t.name}).then(function(){q(!p)}):q(!0)}function m(q){n=q;d=!0;k()}function k(){for(;e.length;)e.shift().call(window,n)}function c(){b||(b=!0,g.browser()==g.Ij&&11<=g.vka()?m(!0):g.browser()==g.rh?f(m):l(function(q){q?f(m):m(!1)}))}var h=a("pL"),g=a("w"),b=!1,d=!1,e=[],n;return{test:function(q){d||b||c();e.push(q);d&&k()}}}); 1013define("bK",["require","pu","my","el"],function(a){function f(h,g){this.DF=h;this.np=g;this.kr=this.kr.bind(this);this.lr=!1}function l(){this.kr=this.kr.bind(this);this.wga=this.wga.bind(this);this.C="not tested";this.Eoa=[];this.Gv=[];this.d_=!1;k.wait(this.wga)}var m=a("pu"),k=a("my"),c=a("el");l.prototype.Ibb=function(){"not tested"==this.C&&(this.C="testing",c.test(function(h){this.C=h?"requires action":"allowed";this.XVa()}.bind(this)))};l.prototype.XVa=function(){"allowed"==this.C?this.kr(!0): 1014this.d_&&(this.d_=!1,this.Gv.forEach(function(h){h.request()}))};l.prototype.bma=function(h){"allowed"==this.C?h.call(this,!0):this.Eoa.push(h)};l.prototype.request=function(h){this.Ct(h)};l.prototype.cancel=function(h){this.mD(h)};l.prototype.active=function(){return"allowed"==this.C};l.prototype.jab=function(){"allowed"==this.C&&(this.C="requires action")};l.prototype.wga=function(){setTimeout(this.hPa.bind(this),300);this.Ts(!0)};l.prototype.hPa=function(){for(;this.Gv.length;)this.Gv.pop().cancel()}; 1015l.prototype.Ct=function(h){"testing"==this.C||"not tested"==this.C?(this.S7(h),this.d_=!0):"requires action"==this.C&&this.S7(h).request()};l.prototype.mD=function(h){"testing"==this.C||"not tested"==this.C?this.d_=!1:"requires action"==this.C&&this.S7(h).c
1015ancel()};l.prototype.kr=function(h){var g=this.Gv;this.Gv=[];g.forEach(function(b){h||b.DF.set("mute",!0);b.cancel()});this.Ts(h)};l.prototype.Ts=function(h){this.C="allowed";this.Eoa.forEach(function(g){g.call(window,h)})};l.prototype.S7=function(h){for(var g= 1016null,b=0;b<this.Gv.length&&!g;b++)this.Gv[b].DF==h&&(g=this.Gv[b]);g||(g=new f(h,this.kr),this.Gv.push(g));return g};f.prototype.request=function(){this.lr||(this.lr=!0,"button"==this.DF.get("mediaActivationMode")?this.DF.yK.w9a(this.kr):this.DF.fJ.show(m("enable-audio-prompt"),this.kr))};f.prototype.cancel=function(){this.DF.yK.z3a(this.kr);this.DF.fJ.hide(this.kr)};f.prototype.kr=function(h){this.np(!1!==h);this.lr=!1};return new l}); 1017define("gn",["require","pw","nd","bK","hA"],function(a){var f=a("pw"),l=a("nd"),m=a("bK"),k=a("hA");if(!l.ema||!1==="AudioContext"in window)return null;var c=new AudioContext;m.bma(function(){"running"!==c.state&&c.resume()});k.bind(f.ba,function(){k.visible&&"interrupted"==c.state&&c.resume()});return c}); 1018define("er","require gn pw w mQ nd hA".split(" "),function(a){function f(g){this.Li=this.Li.bind(this);this.rt=this.rt.bind(this);this.af=!1;this.Cr=this.DX=1;this.QX=!0;this.Wz=this.XH=null;this.U=g;this.U.addEventListener("play",this.Li,!0);this.U.addEventListener("playing",this.rt,!0);this.xya();this.tF()}var l=a("gn");a("pw");var m=a("w"),k=a("mQ"),c=a("nd");a("hA");var h;f.prototype.clear=function(){this.U&&(this.c0a(),this.U.removeEventListener("play",this.Li,!0),this.U.removeEventListener("playing", 1019this.rt,!0),this.U=null)};f.prototype.xya=function(){c.ema&&m.browser()==m.rh&&m.cc()!=m.HM&&l&&!this.XH&&this.$z()&&(h||(h=l.createDelay(),h.delayTime.value=.3,h.connect(l.destination)),this.XH=l.createMediaElementSource(this.U),this.Wz=l.createGain(),this.XH.connect(this.Wz),this.Wz.connect(h))};f.prototype.c0a=function(){this.XH&&(this.XH.disconnect(),this.XH=null);this.Wz&&(this.Wz.disconnect(),this.Wz=null)};f.prototype.q$a=function(g){this.QX!=g&&(this.U.log("AudioController","set hasAudio: "+ 1020g),this.QX=g,this.tF())};f.prototype.Sf=function(g){this.af!=g&&(this.U.log("AudioController","set muted: "+g),this.af=g,this.tF())};f.prototype.Fy=function(g){this.Cr!=g&&(this.U.log("AudioController","set volume: "+g),this.Cr=g,this.tF())};f.prototype.sU=function(g){this.DX!=g&&(this.U.log("AudioController","set gain: "+g),this.DX=Math.max(0,Math.min(1,g)),this.tF())};f.prototype.Li=function(){this.tF()};f.prototype.rt=function(){this.tF()};f.prototype.tF=function(){this.U.log("AudioController", 1021"updateVolume paused: "+this.U.paused+" outputVolume: "+(!this.QX||this.af?0:this.Cr*this.DX));var g=!this.QX||this.af?0:this.Cr*this.DX;0<g&&1>g&&this.xya();this.Wz?(this.Wz.gain.value=g,this.U.volume=1):this.U.volume=g;this.U.muted=0==g};f.prototype.$z=function(){var g=this.U.currentSrc||this.U.children.length&&this.U.children[0].src||"";k.vB(g)&&(g=void 0);return g};return f});define("ip",["require"],function(){return{mo:"video",PKa:"audio"}}); 1022define("nL","require lQ pw lt iw cI gD w mQ bA hA".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("lt"),k=a("iw"),c=a("cI"),h=a("gD"),g=a("w"),b=a("mQ"),d=a("bA"),e=a("hA"),n=f.extend(h,function(q){h.call(this);this.U=q;this.rE=this.rE.bind(this);this.Iw=this.Iw.bind(this);this.dm=this.dm.bind(this);this.vE=this.vE.bind(this);this.ck=this.ck.bind(this);this.fm=this.fm.bind(this);this.Li=this.Li.bind(this);this.rt=this.rt.bind(this);this.QR=this.QR.bind(this);this.U.addEventListener("ended",this.dm, 1023!0);this.U.addEventListener("pause",this.fm,!1);this.U.addEventListener("stalled",this.fm,!1);this.U.addEventListener("waiting",this.fm,!1);this.U.addEventListener("canplay",this.rE,!0);this.U.addEventListener("canplaythrough",this.Iw,!1);this.U.addEventListener("loadedmetadata",this.ck,!0);this.U.addEventListener("play",this.Li,!1);this.U.addEventListener("playing",this.rt,!1);this.U.addEventListener("error",this.vE,!1);this.b$=!1;this.C=m.V;this.EJ=this.si=null;e.bind(l.ba,this.t2a,this)});n.prototype.clear= 1024function(){this.U&&(this.U.removeEventListener("ended",this.dm,!0),this.U.removeEventListener("pause",this.fm,!1),this.U.removeEventListener("stalled",this.fm,!1),this.U.removeEventListener("waiting",this.fm,!1),this.U.removeEventListener("canplay",this.rE,!0),this.U.removeEventListener("canplaythrough",this.Iw,!1),this.U.removeEventListener("loadedmetadata",this.ck,!0),this.U.removeEventListener("play",this.Li,!1),this.U.removeEventListener("error",this.vE,!1),this.U=null)};n.prototype.play=function(){this.U.log("PlaybackController", 1025"play");this.EJ=m.PLAYING;this.BQ()};n.prototype.stop=function(){this.U.log("PlaybackController","stop");this.EJ=m.V;this.BQ()};n.prototype.getState=function(){return this.si||this.C};n.prototype.bG=function(){return this.U.readyState==this.U.HAVE_NOTHING||this.U.readyState==this.U.HAVE_METADATA||0===this.U.currentTime?!1:!0};n.prototype.BQ=function(){!this.si&&this.EJ&&(this.si=this.EJ,this.EJ=null,this.si==m.PLAYING?this.Xea():this.Wea())};n.prototype.t2a=function(){if(e.visible)this.U.log("PlaybackController", 1026"visibile changed to true, setting state to "+this.C),this.si=this.C,this.si==m.PLAYING?this.Xea():this.Wea();else if(!this.U.paused){this.U.log("PlaybackController","paused by visibile changed to fal
1026se");var q=this.U.pause();q&&q["catch"](this.vE)}};n.prototype.$z=function(){return this.U.currentSrc||this.U.children.length&&this.U.children[0].src||""};n.prototype.Xea=function(){var q=this.$z();this.a0(q&&!b.vB(q));this.gW=g.browser()==g.rh;this.U.paused?(this.U.log("PlaybackController","startPlaying calling play"), 1027this.U.muted=!0,this.U.log("PlaybackController","this._media.play()"),(q=this.U.play())&&q["catch"](this.vE)):(this.U.log("PlaybackController","startPlaying already playing"),this.Li())};n.prototype.rt=function(){this.U.log("PlaybackController","onPlaying event received. Visible: "+e.visible)};n.prototype.Li=function(){this.si==m.PLAYING?(this.U.log("PlaybackController","onPlay event received when waiting to play"),this.si=null,this.C=m.PLAYING,this.trigger(new c(n.D6)),this.BQ()):this.U.log("PlaybackController", 1028"onPlay event received. Visible: "+e.visible)};n.prototype.Wea=function(){this.a0(!1);this.gW=!1;if(this.U.paused)this.U.log("PlaybackController","startPausing already paused"),this.fm();else{this.U.log("PlaybackController","startPausing calling pause");var q=this.U.pause();q&&q["catch"](this.vE)}};n.prototype.fm=function(){this.si==m.V?(this.U.log("PlaybackController","onPause event received when waiting to stop"),this.si=null,this.C=m.V,this.BQ()):e.visible?(this.U.log("PlaybackController","onPause event received without calling to pause"), 1029(this.C==m.PLAYING&&!this.si||this.si==m.PLAYING)&&!this.U.hasAttribute("loop")&&!isNaN(this.U.duration)&&this.U.currentTime==this.U.duration&&0<this.U.duration&&this.dm(),this.QR()):this.U.log("PlaybackController","onPause event received when not visible")};n.prototype.rE=function(){this.U.log("PlaybackController","on can play");this.QR()};n.prototype.Iw=function(){this.U.log("PlaybackController","can play through");this.QR();this.a0(!1)};n.prototype.QR=function(){if(this.Aya()){if(this.gW&&0==this.U.currentTime){this.U.log("PlaybackController", 1030"updatePlaying applying ios hack");this.gW=!1;try{this.U.currentTime=.3}catch(q){}}g.browser()!=g.lH&&this.xxa()}};n.prototype.Aya=function(){return this.C==m.PLAYING&&e.visible&&this.U.paused&&3<=this.U.readyState};n.prototype.xxa=function(q){this.yxa||(q?this.Aya()&&(this.U.log("PlaybackController","updatePlaying retrying play"),this.si=m.PLAYING,this.Xea()):this.yxa=setTimeout(function(){this.yxa=null;this.xxa(!0)}.bind(this),500))};n.prototype.vE=function(){this.si==m.PLAYING&&(this.U.log("PlaybackController", 1031"onError waiting to play"),this.si=null,this.EJ?this.BQ():g.browser()==g.rh?this.trigger(new c(n.h6)):this.si=m.PLAYING)};n.prototype.ck=function(){this.U.log("PlaybackController","on loaded metadata");!isNaN(this.U.duration)&&this.U.currentTime==this.U.duration&&0<this.U.duration&&this.dm()};n.prototype.dm=function(){this.U.log("PlaybackController","onEnded");this.gW=!1;if(this.C==m.PLAYING&&!this.si||this.si==m.V)this.U.log("PlaybackController","onEnded finalizing video"),this.a0(!1),this.si=m.V, 1032this.Wea(),this.trigger(new c(n.tk))};n.prototype.a0=function(q){this.b$!=q&&(this.U.log("PlaybackController","downloading changed to: "+q),(this.b$=q)?d.obb(k.Mma):d.nbb(k.Mma))};n.h6="deactivated";n.tk="end";n.D6="play";return n}); 1033define("C",["require","lQ","pw","cI","gD"],function(a){var f=a("lQ"),l=a("pw");a("cI");var m=a("gD");a=f.extend(m,function(k){m.call(this);this.ck=this.ck.bind(this);this.oca=this.oca.bind(this);this.Ji=this.Ji.bind(this);this.U=k;this.al=null;this.Le=[];this.U.addEventListener("loadedmetadata",this.ck,!0);this.U.textTracks.addEventListener("addtrack",this.oca,!1)});a.prototype.set=function(k){k&&this.JNa(k)};a.prototype.clear=function(){this.pYa()};a.prototype.TS=function(){var k=this.al&&this.al.track.activeCues; 1034k&&(k=Array.prototype.slice.call(k,0));return k||[]};a.prototype.ck=function(){this.rAa()};a.prototype.oca=function(){this.rAa()};a.prototype.Ji=function(){this.Qxa(this.al.track.activeCues)};a.prototype.Qxa=function(k){k||(k=[]);if(0!=this.Le.length||0!=k.length)this.Le=Array.prototype.slice.call(k),this.trigger(l.sk,this.Le)};a.prototype.JNa=function(k){this.U.log("TextTracksController","add text track src: "+k);
1034this.al=document.createElement("track");this.al.kind="subtitles";this.al.src=k;this.U.appendChild(this.al)}; 1035a.prototype.pYa=function(){this.al&&(this.U.log("TextTracksController","remove text track"),this.al.track.removeEventListener("cuechange",this.Ji),this.al.track.mode="disabled",this.al.src="",this.U.removeChild(this.al),this.al=null,this.Qxa([]))};a.prototype.rAa=function(){for(var k=0;k<this.U.textTracks.length;k++){var c=this.U.textTracks[k];c.removeEventListener("cuechange",this.Ji);c.mode=this.al&&c==this.al.track?"hidden":"disabled";"hidden"==c.mode&&c.addEventListener("cuechange",this.Ji)}}; 1036return a}); 1037define("iD",["require","exports","mQ"],function(a,f,l){return function(){function m(){}m.is=function(k,c){k=l.parse(k).H4a;return-1!=c.indexOf(k)};m.vB=function(k,c){return!!k&&c.some(function(h){return 0===k.indexOf(h)})};m.mna=[".mp4",".m4v",".m4p"];m.ELa=[".hevc"];m.Tma=[".mov"];m.QMa=[".webm"];m.bMa=[".ogv",".ogg"];m.HLS=[".m3u8"];m.Bma=[".ply",".bin",".splat"];m.TMa=[".json"];m.HLa=".jpg .jpeg .png .webp .gif .avif .apng .bmp".split(" ");m.mo=".m3u8 .mpd .mp4 .m4v .m4p .webm .ogv .ogg .mpg .mpeg .m3u8 .mpd".split(" ");m.ILa= 1038["data:image/"];return m}()}); 1039define("eJ","require lQ pw cI gD w iD".split(" "),function(a){var f=a("lQ");a("pw");var l=a("cI"),m=a("gD"),k=a("w"),c=a("iD"),h=f.extend(m,function(g){m.call(this);this.U=g;this.Iw=this.Iw.bind(this);this.fm=this.fm.bind(this);this.Li=this.Li.bind(this);this.ck=this.ck.bind(this);this.dm=this.dm.bind(this);this.KZ=this.KZ.bind(this);this.kf=this.kf.bind(this);this.Hba=this.lJ=this.jF=void 0;this.pfa=0;this.U.addEventListener("ended",this.dm,!0);this.U.addEventListener("pause",this.fm,!1);this.U.addEventListener("canplaythrough", 1040this.Iw,!1);this.U.addEventListener("timeupdate",this.KZ,!1);this.U.addEventListener("play",this.Li,!1);this.U.addEventListener("playing",this.rt,!1)});h.prototype.clear=function(){this.U&&(this.U.removeEventListener("ended",this.dm,!0),this.U.removeEventListener("pause",this.fm,!1),this.U.removeEventListener("canplaythrough",this.Iw,!1),this.U.removeEventListener("timeupdate",this.KZ,!1),this.U.removeEventListener("play",this.Li,!1),this.U.removeEventListener("playing",this.rt,!1),this.U=null,this.jF&& 1041clearInterval(this.jF))};h.prototype.setTime=function(g){if(!this.U.srcObject){this.pfa=0;this.AY=void 0;this.U.log("TimeController","setTime: "+g);k.CBa()&&!c.is(this.$z(),c.HLS)?this.oN=g||0:this.oN=void 0;try{this.U.currentTime=g}catch(b){}k.browser()==k.Sy||k.browser()==k.lH||k.cc()==k.nH&&0==g||(this.lJ=g,this.Rza())}};h.prototype.getTime=function(){return this.lJ||this.U.currentTime||0};h.prototype.ui=function(){return this.U.duration||0};h.prototype.Li=function(){this.Eea(!0)};h.prototype.fm= 1042function(){this.Eea(!1);this.AY=void 0};h.prototype.Iw=function(){this.U.log("TimeController","on can play through");this.Rza()};h.prototype.dm=function(){this.oN=void 0;this.Eea(!1)};h.prototype.ck=function(){this.trigger(new l(h.dj))};h.prototype.Rza=function(){if(this.U.readyState>=this.U.HAVE_ENOUGH_DATA&&void 0!==this.lJ){this.U.log("TimeController","updateCurrentTime when can play through set time to: "+this.lJ);try{this.U.currentTime=this.lJ}catch(g){}this.lJ=void 0}};h.prototype.kf=function(){this.trigger(new l(h.Tf))}; 1043h.prototype.KZ=function(){if(k.CBa()&&!k.D6a()&&!this.U.paused&&this.U.readyState>=this.U.HAVE_ENOUGH_DATA){var g=(new Date).getTime();this.AY||(this.AY=g);this.Hba&&500<g-this.Hba&&(this.pfa++,.4<this.pfa/(.001*(g-this.AY))&&k.pab());this.Hba=g}if(void 0!==this.oN&&this.U.currentTime>this.oN){this.oN=void 0;try{this.U.currentTime-=.01}catch(b){}}this.kf()};h.prototype.Eea=function(g){!!this.jF!=g&&(this.jF?(clearInterval(this.jF),this.jF=null):this.jF=setInterval(this.kf,16))};h.prototype.$z=function(){return this.U.currentSrc|| 1044this.U.children.length&&this.U.children[0].src||""};h.Tf="time update";h.dj="duration update";return h}); 1045define("ml","require jquery.mod lQ gn w nd mQ".split(" "),function(a){function f(){}a("jquery.mod");var l=a("lQ"),m=a("gn"),k=a("w"),c=a("nd");a=a("mQ");f.Lga=!1;f.Lab=function(){f.Lga=!0};f.eUa=function(){window.MediaSource=window.MediaSource||window.mdb;return window.MediaSource&&"function"===typeof window.MediaSource.isTypeSupp
1045orted&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')};f.oUa=function(){if(k.browser()==k.rh){var b=k.Jia();if(10<=b&&11>b||11.3<=b)return!0}return!1}; 1046f.fUa=function(){return k.browser()==k.Ij||k.browser()==k.rh?!0:!1};var h;f.FBa=function(b){try{return h||(h=document.createElement("audio")),!!h.canPlayType(b).replace(/^no$/,"")}catch(d){}return!1};var g;f.SK=function(b){try{return g||(g=document.createElement("video"),g.setAttribute("webkit-playsinline","true"),g.setAttribute("playsinline","true")),!!g.canPlayType(b).replace(/^no$/,"")}catch(d){}return!1};f.r3a=function(){return k.browser()==k.rh?15<=k.Jia()||m?!0:!1:!0};f.gUa=function(){try{if(document.createElement("canvas").getContext("webgl"))return!0}catch(b){}try{if(document.createElement("canvas").getContext("experimental-webgl"))return!0}catch(b){}return!1}; 1047f.EJa=function(b,d,e,n){if(c.LMa)return!0;if(k.zd()==k.yi)if(!e||30<e){if(3168>=b&&1584>=d)return!0}else{if(4096>=b&&2048>=d)return!0}else if((k.CL()||k.hG())&&!k.Xr())if("h264"==n){if(4400>=b&&4400>=d||6200>=b&&3100>=d)return!0}else{if(5760>=b&&5760>=d||8192>=b&&4096>=d)return!0}else if(k.z7a()&&!k.Xr())if(!e||30<e){if(2880>=b&&2880>=d||4096>=b&&2048>=d)return!0}else{if(4096>=b&&4096>=d||5760>=b&&2880>=d||2880>=b&&5760>=d)return!0}else if((k.CL()||k.hG())&&k.Tia()){if("h264"==n&&(5760>=b&&5760>= 1048d||7680>=b&&3840>=d)||3840>=b&&2160>=d)return!0}else if(k.EL())if("h264"==n){if(5760>=b&&5760>=d||7680>=b&&3840>=d)return!0}else{if(4400>=b&&2200>=d)return!0}else if(k.pb()){if(3840>=b&&2160>=d)return!0}else if(4096>=b&&2048>=d)return!0;return!1};f.t3a=function(){return k.EL()||(k.CL()||k.hG())&&k.cc()==k.Mp||!k.pb()&&f.Lga&&k.browser()==k.Sm?!0:!1};f.DJa=function(b){return f.EJa(b.get("width"),b.get("height"),b.get("framerate"),b.get("codec"))};f.s3a=function(){return f.Lga?!0:!1};f.VGa=!c.yLa&& 1049c.xLa?1:2;f.u3a=function(){return void 0!==c.Ama?c.Ama:k.hG()||k.EL()||k.t7a()||k.u7a()||k.EEa()||k.CL()&&!k.Xr()||!k.Df(
1049)&&k.zd()!=k.Py&&k.zd()!=k.yi?!0:!1};f.Dbb=function(b,d){return f.EJa(b,d,30)};f.log=function(){l.log("webgl: "+f.xs);l.log("html5 audio: "+f.lEa);l.log("html5 video: "+f.oEa)};f.X_a=function(){return["webgl:"+f.xs,"html5audio:"+f.lEa,"html5video:"+f.oEa].join(" ")};f.nEa=f.FBa('audio/ogg; codecs="vorbis"');f.mEa=f.FBa("audio/mpeg");f.lEa=f.nEa||f.mEa;f.Hia=f.SK('video/ogg; codecs="theora"'); 1050f.SK('video/mp4; codecs="avc1.42E01E"');f.Iia=f.SK('video/webm; codecs="vp8, vorbis"');f.N6a=f.SK('video/mp4; codecs="hev1"');f.c3=f.SK("video/mp4");f.O6a=f.SK("video/quicktime");f.P6a=f.oUa();f.ZDa=f.fUa();f.v6a=f.ZDa||f.c3&&f.eUa();f.oEa=f.Hia||f.c3||f.Iia;f.xs=f.gUa();a.Cj("debug")&&a.Cj("capabilities")&&f.log();f.summary=f.X_a();return f}); 1051define("cF",["require","exports","mQ"],function(a,f,l){f=function(){function k(){this.A3=null;this.Q1=[]}k.prototype.initialize=function(c){this.A3=l.Hy(c);this.dV=this.dV.bind(this);this.update()};k.prototype.load=function(c,h){this.Q1.push({call:c,context:h||window});this.JL||(this.JL=this.s2());this.update()};k.prototype.Kh=function(){return void 0!==this.JL};k.prototype.update=function(){0<this.Q1.length&&(void 0!==this.JL?this.u4a():this.A3&&this.gja())};k.prototype.dV=function(){var c=this.s2(); 1052void 0===c?setTimeout(this.dV,250):(this.JL=c,this.update())};k.prototype.gja=function(){throw Error("Method not implemented.");};k.prototype.s2=function(){throw Error("Method not implemented.");};k.prototype.u4a=function(){for(;0<this.Q1.length;){var c=this.Q1.pop();c.call.call(c.context,this.JL)}};return k}();a=function(k){function c(h){var g=k.call(this)||this;g.QEa=h;return g}Z(c,k);c.prototype.gja=function(){this.F4||(this.F4=document.createElement("script"),this.F4.type="text/javascript",this.F4.src= 1053this.A3,document.getElementsByTagName("head")[0].appendChild(this.F4),this.dV())};c.prototype.s2=function(){for(var h=window,g=0;g<this.QEa.length&&void 0!==h;g++)h=h[this.QEa[g]];return h};return c}(f);f=function(k){function c(h){var g=k.call(this)||this;g.namespace=h;return g}Z(c,k);c.prototype.gja=function(){this.module||(c.Y6a(),this.module=document.createElement("script"),this.module.type="module",this.module.textContent=['import * as all from "'+this.A3+'";',"window."+this.namespace.join(".")+ 1054" = all;"].join("\n"),document.getElementsByTagName("head")[0].appendChild(this.module),this.dV())};c.prototype.s2=function(){for(var h=window,g=0;g<this.namespace.length&&void 0!==h;g++)h=h[this.namespace[g]];return h};c.Y6a=function(){this.d3||(this.d3=document.createElement("script"),this.d3.type="importmap",this.d3.textContent=['{\n"imports":\n{','"three": "'+this.j4a()+'"',"}\n}"].join("\n"),document.getElementsByTagName("head")[0].appendChild(this.d3))};c.j4a=function(){var h=[];h.push("const three = window.THREE;"); 1055for(var g in window.THREE)h.push("export const "+g+" = three."+g+";");return window.URL.createObjectURL(new Blob([h.join("\n")],{type:"application/javascript"}))};return c}(f);var m={};m.GS=new f(["TDV","GS"]);m.RMa=new a(["WebVRConfig","FORCE_ENABLE_VR"]);m.Xna=new a(["WebXRPolyfill"]);m.HLS=new a(["Hls"]);m.initialize=function(k){this.HLS.initialize(k.get(TDV.PlayerSettings.HLS_URL));this.RMa.initialize(k.get(TDV.PlayerSettings.WEBVR_POLYFILL_URL));this.Xna.initialize(k.get(TDV.PlayerSettings.WEBXR_POLYFILL_URL)); 1056this.GS.initialize(k.get(TDV.PlayerSettings.GS_URL))};return m}); 1057define("fj",["require"],function(){var a={uFa:"data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU2LjM2LjEwMAAAAAAAAAAAAAAA//OEAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAEAAABIADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV6urq6urq6urq6urq6urq6urq6urq6urq6v////////////////////////////////8AAAAATGF2YzU2LjQxAAAAAAAAAAAAAAAAJAAAAAAAAAAAASDs90hvAAAAAAAAAAAAAAAAAAAA//MUZAAAAAGkAAAAAAAAA0gAAAAATEFN//MUZAMAAAGkAAAAAAAAA0gAAAAARTMu//MUZAYAAAGkAAAAAAAAA0gAAAAAOTku//MUZAkAAAGkAAAAAAAAA0gAAAAANVVV"};a.src= 1058a.uFa;return a}); 1059define("dO","require lQ pw cI gD ml mQ nd iD cF fj".split(" "),function(a){function f(q,p,r){this.src=q||"";this.ul=p||"";this.startTime=r||0}var l=a("lQ"),m=a("pw"),k=a("cI"),c=a("gD"),h=a("ml"),g=a("mQ"),b=a("nd"),d=a("iD"),e=a("cF"),n=a("fj");a=l.extend(c,function(q,p){c.call(this);this.U=q;this.Qn=p;this.Qba=!1;this.r0=[];this.uf=this.Ae=this.vI=null});a.prototype.set=function(q,p,r){this.U.log("SrcSetter","set: "+q+" subtitles: "+p+" startTime: "+r);q=new f(q,p,r);this.Ae&&this.Ae.isEqual(q)||(!this.Ae&& 1060this.vI&&this.vI.isEqual(q)?this.U0():(this.Ae=q,this.pVa()))};a.prototype.clear=function(){this.uf&&(this.uf.destroy(),this.uf=null);this.vI=null;this.oYa();this.Qn.clear()};a.prototype.A6a=function(){return!!this.Ae};a.prototype.pVa=function(){this.Qba=!0;this.txa(this.Ae.src)&&!e.HLS.Kh()?(this.U.log("SrcSetter","hls lib required"),e.HLS.load(this.tta,this)):this.tta()};a.prototype.tta=function(){this.Qba&&(this.Qba=!1,this.oOa())};a.prototype.oOa=function(){this.clear();this.qZa(this.sYa(this.Ae.src)); 1061this.txa(this.Ae.src)?this.cOa():this.lba(this.Ae.src)?this.pOa():this.qOa()};a.prototype.cOa=function(){var q=e.HLS.JL,p=1048576*(navigator.connection?Math.max(navigator.connection.downlink,2):2),r=.66*p;this.uf=new q({debug:b.Zu,startPosition:0===this.Ae.startTime?-1:this.Ae.startTime,playlistLoadPolicy:{"default":{maxTimeToFirstByteMs:6E4,maxLoadTimeMs:6E4}},startLevel:-1,maxMaxBufferLength:12,autoStartLoad:!1,abrEwmaDefaultEstimate:p});this.uf.loadSource(this.Ae.src);this.uf.attachMedia(this.U); 1062var t=function(){this.uf.off(q.Events.MANIFEST_PARSED,t);var u=this.uf.levels.filter(function(w){return w.bitrate<=p});if(u.length){u.sort(function(w,x){return x.width-w.width});var v=this.uf.levels.indexOf(u[0]);this.uf.startLevel=v}u=this.uf.levels.filter(function(w){return w.bitrate<=r});u.length&&(u.sort(function(w,x){return x.width-w.width}),this.uf.config.minAutoBitrate=u[0].bitrate-1);u=this.uf.levels.filter(function(w){return h.Dbb(w.width,w.height)});
1062b.GLa&&(u.sort(function(w,x){return x.width- 1063w.width}),v=this.uf.levels.indexOf(u[0]),this.uf.startLevel=v);u.length&&u.length<this.uf.levels.length&&(u.sort(function(w,x){return x.width-w.width}),this.uf.autoLevelCapping=this.uf.levels.indexOf(u[0]));this.U.log("SrcSetter","bandwidth: "+p+" lowBandwidth: "+r);this.U.log("SrcSetter","levels: "+this.uf.levels);this.U.log("SrcSetter","startLevel: "+this.uf.levels[this.uf.startLevel]);this.U.log("SrcSetter","minLevel: "+this.uf.levels[this.uf.minAutoLevel]);this.uf.startLoad(0===this.Ae.startTime? 1064-1:this.Ae.startTime);0!=this.Ae.startTime&&this.It(this.Ae.startTime);this.Ae.ul&&this.Qn.set(this.Ae.ul);this.vI=this.Ae;this.Ae=null;this.U0()}.bind(this);this.uf.on(q.Events.MANIFEST_PARSED,t);this.uf.on(q.Events.Ncb,function(u,v){v.fatal&&v.type==q.ErrorTypes.Scb&&this.uf.recoverMediaError()}.bind(this))};a.prototype.qOa=function(){this.Ae.src?this.Ooa(this.Ae.src):this.Ooa(n.uFa,"audio/mpeg");this.Ae.ul&&this.Qn.set(this.Ae.ul);this.U.load();0!=this.Ae.startTime&&this.It(this.Ae.startTime); 1065this.vI=this.Ae;this.Ae=null;this.U0()};a.prototype.pOa=function(){this.U.srcObject=this.Ae.src;this.vI=this.Ae;this.Ae=null;this.U0()};a.prototype.U0=function(){this.U.log("SrcSetter","src ready");this.trigger(new k(m.hd))};a.prototype.txa=function(q){return!!q&&!this.lba(q)&&d.is(q,d.HLS)&&!h.ZDa};a.prototype.sYa=function(q){return!!q&&!this.lba(q)&&g.Ria(q)};a.prototype.qZa=function(q){q&&!this.U.hasAttribute("crossorigin")?this.U.setAttribute("crossorigin","anonymous"):!q&&this.U.hasAttribute("crossorigin")&& 1066this.U.removeAttribute("crossorigin")};a.prototype.lba=function(q){return q instanceof MediaStream};a.prototype.It=function(q){try{this.U.currentTime=q}catch(p){}};a.prototype.Ooa=function(q,p){var r=document.createElement("source");p||(p=this.ZTa(q));p&&(r.type=p);g.vB(q)||(q=g.gB(q,"swbypass=true"));r.src=q;this.U.appendChild(r);this.r0.push(r)};a.prototype.oYa=function(){for(;this.r0&&this.r0.length;){var q=this.r0.shift();q.src="";this.U.removeChild(q)}this.U.srcObject=null};a.prototype.ZTa=function(q){switch(g.getExtension(q).toLowerCase()){case ".mp3":return"audio/mpeg"; 1067case ".ogg":return"audio/ogg";case ".m4v":case ".mp4":return"video/mp4";case ".webm":return"video/webm";case ".ogv":return"video/ogg";case ".m3u8":return"application/x-mpegURL";case ".mov":return"video/quicktime"}};f.prototype.isEqual=function(q){return this.src==q.src&&this.ul==q.ul};return a}); 1068define("oM","require lQ pw cI gD w nd e bK my er ip nL C eJ dO".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("w"),h=a("nd"),g=a("e"),b=a("bK"),d=a("my"),e=a("er"),n=a("ip"),q=a("nL"),p=a("C"),r=a("eJ"),t=a("dO"),u=0,v=f.extend(k,function(w,x){k.call(this);this.nf=w;this.w2a=x;this.ck=this.ck.bind(this);this.Ts=this.Ts.bind(this);this.Jca=this.Jca.bind(this);this.dr=this.tI=null;this.e_=void 0;this.rc=this.kb=null;this.Ym="inactive";this.gp=this.Ma=this.Yd=this.vx=this.Qn= 1069null;this.af=!1;this.yya(document.createElement(this.nf));x&&d.wait(this.Ts)});v.prototype.yya=function(w){this.cza();this.rc=w;for(this.rc.parentNode&&this.rc.parentNode.removeChild(this.rc);this.rc.children.length;)this.rc.removeChild(this.rc.children[0]);this.l_a();this.rc.autoplay=!1;this.rc.autobuffer="autobuffer";this.rc.preload=c.browser()==c.rh?"metadata":"none";this.rc.setAttribute("preload",c.browser()==c.rh?"metadata":"none");this.rc.setAttribute("webkit-playsinline","true");this.rc.setAttribute("playsinline", 1070"true");this.rc.addEventListener("loadedmetadata",this.ck,!0);this.Qn=new p(this.rc);this.Qn.bind(l.sk,this.Ji,this,!0);this.vx=new t(this.rc,this.Qn);this.vx.bind(l.hd,this.hwa,this,!0);this.Yd=new e(this.rc);this.Ma=new q(this.rc);this.Ma.bind(q.h6,this.Iua,this,!0);this.Ma.bind(q.tk,this.dm,this,!0);this.Ma.bind(q.D6,this.Li,this,!0);this.gp=new r(this.rc);this.gp.bind(r.Tf,this.kf,this,!0);this.gp.bind(r.dj,this.Dn,this,!0)};v.prototype.l_a=function(){if(h.Zu){var w="["+this.nf+" "+u++ +"]";this.rc.log= 1071function(x,y){console.log(w+"["+(new Date).toISOString().split("T")[1]+"] "+x+" "+y)}}else this.rc.log=function(){}};v.prototype.cza=function(){this.rc&&(this.rc.removeEventListener("loadedmetadata",this.ck,!0),this.vx&&(this.vx.unbind(l.hd,this.hwa,this,!0),this.vx.clear(),this.vx=null),this.Qn&&(this.Qn.unbind(l.sk,this.Ji,this,!0),this.Qn.clear(),this.Qn=null),this.Yd&&(this.Yd.clear(),this.Yd=null),this.Ma&&(this.Ma.unbind(q.h6,this.Iua,this,!0),this.Ma.unbind(q.tk,this.dm,this,!0),this.Ma.unbind(q.D6,
1072this.Li,this,!0),this.Ma.clear(),this.Ma=null),this.gp&&(this.gp.unbind(r.Tf,this.kf,this,!0),this.gp.unbind(r.dj,this.Dn,this,!0),this.gp.clear(),this.gp=null),this.rc=null)};v.prototype.clear=function(){this.cza()};v.prototype.YK=function(w,x,y){if(this.Dm()&&this.bG())try{return w.drawImage(this.rc,0,0,x,y),!0}catch(z){}w.fillRect(0,0,x,y);return!1};v.prototype.play=function(w,x,y){this.rc.log("HTMLMediaPlayer","play src: "+x.src+" subtitlesSrc: "+x.ul+" hasAudio: "+x.uB+" gain: "+x.gain);this.kb= 1073w;this.tI=null;this.dr=x.clone();this.e_=y||0;this.WNa()};v.prototype.n3=function(){return"activated"==this.Ym};v.prototype.F5=function(){return this.w2a};v.prototype.stop=function(){this.rc.log("HTMLMediaPlayer","stop");this.Ma.stop();this.dr=null};v.prototype.getState=function(){return this.Ma.getState()};v.prototype.bG=function(){return this.vx.A6a()?!1:this.Ma.bG()};v.prototype.Sf=function(w){this.Yd.Sf(w);this.af=w;this.kb&&"requested"==this.Ym&&(this.af?b.cancel(this.kb):b.request(this.kb))}; 1074v.prototype.Fy=function(w){this.Yd.Fy(w)};v.prototype.sU=function(w){this.Yd.sU(w)};v.prototype.setLoop=function(w){this.kOa(w)};v.prototype.getCurrentTime=function(){return this.gp.getTime()};v.prototype.setCurrentTime=function(w){return this.gp.setTime(w)};v.prototype.ui=function(){return this.gp.ui()};v.prototype.Dm=function(){return this.nf==n.mo};v.prototype.getType=function(){return this.nf};v.prototype.De=function(){return this.rc&&this.Dm()&&this.rc.videoWidth||0};v.prototype.Te=function(){return this.rc&& 1075this.Dm()&&this.rc.videoHeight||0};v.prototype.TS=function(){return this.Qn.TS()};v.prototype.WNa=function(){this.rc.log("HTMLMediaPlayer","assert can play");"activated"==this.Ym||!this.dr.uB||this.af?(this.rc.log("HTMLMediaPlayer","can play activationState: "+this.Ym+" pending media has audio: "+this.dr.uB+" muted: "+this.af),this.rE()):"inactive"==this.Ym&&(this.rc.log("HTMLMediaPlayer","needs activation"),this.kb&&this.nf==n.mo&&this.dUa()?this.mNa():this.kb&&g.p3()?this.Ts():this.kb&&this.VNa())}; 1076v.prototype.dUa=function(){var w=this.Cra();return!w||w.currentSrc&&!w.paused||w.muted?!1:!0};v.prototype.Cra=function(){return this.kb.get("settings").get(TDV.PlayerSettings.ACTIVE_VIDEO_ELEMENT)};v.prototype.mNa=function(){this.rc.log("HTMLMediaPlayer","activate with application parameter");this.yya(this.Cra());this.Ts()};v.prototype.VNa=function(){this.rc.log("HTMLMediaPlayer","ask for activation");this.Ym="requested";b.bma(this.Ts);this.kb&&!this.af&&b.request(this.kb)};v.prototype.Ts=function(){if("inactive"== 1077this.Ym||"requested"==this.Ym)this.rc.log("HTMLMediaPlayer","activate received when state: "+this.Ym+" and has media: "+!!this.tI),this.tI?setTimeout(function(){d.wait(this.Ts)}.bind(this),0):(this.Ym="activating",this.vx.set("","",0))};v.prototype.rE=function(){this.rc.log("HTMLMediaPlayer","media can play. Has pending properties: "+!!this.dr);this.dr&&this.vx.set(this.dr.src,this.dr.ul,this.e_)};v.prototype.hwa=function(){"activating"==this.Ym?this.TWa():this.dr&&this.DWa()};v.prototype.TWa=function(){this.rc.log("HTMLMediaPlayer", 1078"on src ready activating");this.Ma.play()};v.prototype.Li=function(){"activating"==this.Ym&&(this.rc.log("HTMLMediaPlayer","on play activating"),this.Ma.stop(),this.Ym="activated",this.rE())};v.prototype.DWa=function(){this.rc.log("HTMLMediaPlayer","on pending src ready");this.tI=this.dr;this.dr=null;this.dOa(this.tI.uB);this.bOa(this.tI.gain);this.gp.setTime(this.e_);this.e_=void 0;this.Ma.play()};v.prototype.dOa=function(w){this.Yd.q$a(w)};v.prototype.bOa=function(w){this.Yd.sU(w)};v.prototype.kOa= 1079function(w){w&&!this.rc.hasAttribute("loop")?this.rc.setAttribute("loop",""):!w&&this.rc.hasAttribute("loop")&&this.rc.removeAttribute("loop")};v.prototype.Iua=function(){this.rc.log("HTMLMediaPlayer","on deactivated");b.jab();d.wait(this.Jca);this.kb&&setTimeout(function(){b.request(this.kb)}.bind(this),0)};v.prototype.Jca=function(){this.rc.log("HTMLMediaPlayer","on reactivated");this.Ma.play()};v.prototype.Ji=function(){this.trigger(l.sk,this.Qn.TS())};
1079v.prototype.ck=function(){this.trigger(new m(v.pLa))}; 1080v.prototype.kf=function(){this.trigger(new m(v.Tf))};v.prototype.Dn=function(){this.trigger(new m(v.dj))};v.prototype.dm=function(){this.trigger(new m(v.tk))};v.Tf="time update";v.dj="duration update";v.pLa="size update";v.tk="end";return v});define("dM",["require"],function(){return function(a){this.cue=a;this.text=a.text}}); 1081define("nC",["require"],function(){function a(){this.ul=this.src=void 0;this.uB=!1;this.gain=1}a.prototype.clone=function(){var f=new a;f.src=this.src;f.ul=this.ul;f.uB=this.uB;f.gain=this.gain;return f};return a}); 1082define("cb","require lQ es pw lt cI gD ml w mQ oM ip".split(" "),function(a){function f(u){this.Jv=u;this.Aa=null;this.Iba=(new Date).getTime()}var l=a("lQ"),m=a("es"),k=a("pw"),c=a("lt"),h=a("cI"),g=a("gD"),b=a("ml"),d=a("w"),e=a("mQ"),n=a("oM"),q=a("ip");f.prototype.Uia=function(){return null==this.Aa};f.prototype.n3=function(){return this.Jv.n3()};f.prototype.F5=function(){return this.Jv.F5()};f.prototype.item=function(){return this.Aa};f.prototype.X4a=function(){this.Aa.PEa();this.Aa=null};f.prototype.use= 1083function(u){this.Aa=u;this.Aa.uCa(this.Jv);this.Iba=(new Date).getTime()};var p=l.extend(g,function(){g.call(this);this.Lt=[];var u=e.jDa("avs",10);var v=d.cc()==d.Uy?10:b.r3a()?4:1;v=e.jDa("avpas",v);for(var w=0;w<u;w++)this.Lt.push(new f(new n(q.mo,w<v)));this.cf=[];this.C=c.V});p.prototype.AL=function(){return 0<this.usa().length};p.prototype.A4=function(u){this.cf=[u].concat(m(this.cf).without(u));this.kda();t()};p.prototype.appendItem=function(u){this.cf.push(u);this.kda();t()};p.prototype.ZT= 1084function(u){this.cf=m(this.cf).without(u);this.kda()};p.prototype.kda=function(){var u=this.BTa();if(p.gEa())for(;this.Lt.length<u.length;)this.Lt.push(new f(new n(q.mo,!1)));this.usa().forEach(function(v){0>u.indexOf(v.item())&&v.X4a()});this.wd(0<u.length?c.PLAYING:c.V);u.forEach(function(v){if(!this.$Sa(v)){var w=this.PSa(v.getType(),v.rka());w||v.rka()||this.Lt.push(w=new f(new n(q.mo,!1)));w&&w.use(v)}}.bind(this));
1084this.QSa().forEach(function(v){v.Jv.stop()})};p.prototype.BTa=function(){return this.cf.map(function(u, 1085v){var w={};w.index=v;w.priority=u.xDa();w.item=u;return w}).sort(function(u,v){return u.priority-v.priority||u.index-v.index}).map(function(u){return u.item})};p.prototype.wd=function(u){this.C!=u&&(this.C=u,this.trigger(new h(this.C==c.V?k.Vf:k.ko)))};p.prototype.PSa=function(u,v){u=this.Lt.filter(function(w){return w.Uia()});return u.length?(v?(v=u.filter(function(w){return w.n3()}),v.length||(v=u.filter(function(w){return w.F5()}))):(v=u.filter(function(w){return!w.F5()}),v.length||(v=u.filter(function(w){return!w.n3()}))), 1086v.length&&(u=v),d.browser()==d.Ij?(u.sort(function(w,x){return x.Iba-w.Iba}),u[Math.min(2,u.length-1)]):u[0]):null};p.prototype.QSa=function(){return this.Lt.filter(function(u){return u.Uia()})};p.prototype.usa=function(){return this.Lt.filter(function(u){return!u.Uia()})};p.prototype.$Sa=function(u){for(var v=0;v<this.Lt.length;v++)if(this.Lt[v].item()==u)return this.Lt[v];return null};p.cba=null;p.bind=function(){var u=p.Fi();u.bind.apply(u,arguments)};p.unbind=function(){var u=p.Fi();u.unbind.apply(u, 1087arguments)};var r=0<=[d.Ty,d.zs].indexOf(d.cc());p.gEa=function(){return r};p.AL=function(){return p.Fi().AL()};p.appendItem=function(u){p.Fi().appendItem(u)};p.A4=function(u){p.Fi().A4(u)};p.ZT=function(u){p.Fi().ZT(u)};p.Uv=function(){null===p.cba&&(p.cba=new p);return p.cba};p.Fi=p.Uv;p.Uv();var t=function(){if(0<=[d.Ty,d.zs].indexOf(d.cc())){var u=document.createElement("video");u.muted=!1;u.setAttribute("loop","");u.src="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQADQGgcIQADQGgcAAAACQGeYUQn/wALKCEAA0BoHAAAAAkBnmNEJ/8ACykhAANAaBwhAANAaBwAAAANQZpoNExDP/6plgAMuSEAA0BoHAAAAAtBnoZFESwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBnqVEJ/8ACykhAANAaBwAAAAJAZ6nRCf/AAsoIQADQGgcIQADQGgcAAAADUGarDRMQz/+qZYADLghAANAaBwAAAALQZ7KRRUsK/8ACPkhAANAaBwAAAAJAZ7pRCf/AAsoIQADQGgcIQADQGgcAAAACQGe60Qn/wALKCEAA0BoHAAAAA1BmvA0TEM//qmWAAy5IQADQGgcIQADQGgcAAAAC0GfDkUVLCv/AAj5IQADQGgcAAAACQGfLUQn/wALKSEAA0BoHCEAA0BoHAAAAAkBny9EJ/8ACyghAANAaBwAAAANQZs0NExDP/6plgAMuCEAA0BoHAAAAAtBn1JFFSwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBn3FEJ/8ACyghAANAaBwAAAAJAZ9zRCf/AAsoIQADQGgcIQADQGgcAAAADUGbeDRMQz/+qZYADLkhAANAaBwAAAALQZ+WRRUsK/8ACPghAANAaBwhAANAaBwAAAAJAZ+1RCf/AAspIQADQGgcAAAACQGft0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bm7w0TEM//qmWAAy4IQADQGgcAAAAC0Gf2kUVLCv/AAj5IQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHAAAAAkBn/tEJ/8ACykhAANAaBwAAAANQZvgNExDP/6plgAMuSEAA0BoHCEAA0BoHAAAAAtBnh5FFSwr/wAI+CEAA0BoHAAAAAkBnj1EJ/8ACyghAANAaBwhAANAaBwAAAAJAZ4/RCf/AAspIQADQGgcAAAADUGaJDRMQz/+qZYADLghAANAaBwAAAALQZ5CRRUsK/8ACPkhAANAaBwhAANAaBwAAAAJAZ5hRCf/AAsoIQADQGgcAAAACQGeY0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bmmg0TEM//qmWAAy5IQADQGgcAAAAC0GehkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGepUQn/wALKSEAA0BoHAAAAAkBnqdEJ/8ACyghAANAaBwAAAANQZqsNExDP/6plgAMuCEAA0BoHCEAA0BoHAAAAAtBnspFFSwr/wAI+SEAA0BoHAAAAAkBnulEJ/8ACyghAANAaBwhAANAaBwAAAAJAZ7rRCf/AAsoIQADQGgcAAAADUGa8DRMQz/+qZYADLkhAANAaBwhAANAaBwAAAALQZ8ORRUsK/8ACPkhAANAaBwAAAAJAZ8tRCf/AAspIQADQGgcIQADQGgcAAAACQGfL0Qn/wALKCEAA0BoHAAAAA1BmzQ0TEM//qmWAAy4IQADQGgcAAAAC0GfUkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGfcUQn/wALKCEAA0BoHAAAAAkBn3NEJ/8ACyghAANAaBwhAANAaBwAAAANQZt4NExC//6plgAMuSEAA0BoHAAAAAtBn5ZFFSwr/wAI+CEAA0BoHCEAA0BoHAAAAAkBn7VEJ/8ACykhAANAaBwAAAAJAZ+3RCf/AAspIQADQGgcAAAADUGbuzRMQn/+nhAAYsAhAANAaBwhAANAaBwAAAAJQZ/aQhP/AAspIQADQGgcAAAACQGf+U
1087Qn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA="; 1088return function(){try{u.pause(),setTimeout(function(){u.play()["catch"](function(){})},0)}catch(v){}}}return function(){}}();return p}); 1089define("G","require lQ cI gD pw lt oM dM nC ip cb bn ml".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("pw"),c=a("lt"),h=a("oM"),g=a("dM"),b=a("nC"),d=a("ip"),e=a("cb"),n=a("bn"),q=a("ml"),p=f.extend(m,function(r,t,u){m.call(this);this.kb=r;this.v=t;this.zt=u;this.o=null;this.bR();this.iZ=this.iZ.bind(this);this.v.bind(k.F("gain"),this.oJ,this,!0);this.v.bind(k.F("mp3Url"),this.Kk,this,!0);this.v.bind(k.F("oggUrl"),this.Kk,this,!0);this.v.bind(k.F("subtitlesURL"),this.Kk,this,!0);this.C= 1090c.V;this.Hk=!1;
1090this.Lz=this.Xb=0;this.af=!1;this.Cr=1;this.hO=!1;this.FI=1;this.Ed=null;this.po=[]});p.prototype.Db=function(){return this.kb};p.prototype.Vc=function(r){this.C==r||r==c.Qb&&this.C!=c.PLAYING||(this.C=r,this.C==c.PLAYING?(this.fPa(),e.A4(this)):this.x_a(),this.Gfa())};p.prototype.x_a=function(){this.hO||(this.hO=!0,this.nra=this.v.get("fadeOutTime"),0==this.nra?this.Vya():this.iZ(0))};p.prototype.iZ=function(r){this.Ed&&0!=this.FI&&this.hO&&!this.NUa()?(this.FI=Math.max(0,this.FI- 1091r/this.nra),this.hW(),n.requestFrame(this.iZ)):this.Vya()};p.prototype.fPa=function(){this.hO=!1;this.FI=1;this.hW()};p.prototype.Vya=function(){this.hO=!1;this.FI=1;this.Ed&&(e.ZT(this),this.C==c.V&&this.Dea())};p.prototype.getState=function(){return this.C};p.prototype.ui=function(){return this.Xb};p.prototype.setCurrentTime=function(r){this.Lz=r;this.Ed&&this.Ed.play(this.kb,this.o,this.Lz)};p.prototype.getCurrentTime=function(){return this.Lz};p.prototype.Fy=function(r){this.Cr=r;this.hW()};p.prototype.hW= 1092function(){this.Ed&&this.Ed.Fy(this.Cr*this.FI)};p.prototype.Sf=function(r){this.af=r;this.Ed&&this.Ed.Sf(r)};p.prototype.setLoop=function(r){this.Hk=r;this.Ed&&this.Ed.setLoop(r)};p.prototype.rka=function(){return!this.af};p.prototype.getType=function(){return d.PKa};p.prototype.xDa=function(){return this.zt};p.prototype.uCa=function(r){this.Ed=r;setTimeout(function(){this.Ed&&this.Ed.bind(h.tk,this.CP,this,!0)}.bind(this),0);this.bR();this.Ed.bind(h.Tf,this.kf,this,!0);this.Ed.bind(h.dj,this.Dn, 1093this,!0);this.Ed.bind(k.sk,this.Ji,this,!0);this.Ed.Sf(this.af);this.hW();this.Ed.setLoop(this.Hk);this.Ed.play(this.kb,this.o,this.Lz)};p.prototype.PEa=function(){this.Lz=this.Ed.getCurrentTime();this.Ed.unbind(h.tk,this.CP,this,!0);this.Ed.unbind(h.Tf,this.kf,this,!0);this.Ed.unbind(h.dj,this.Dn,this,!0);this.Ed.unbind(k.sk,this.Ji,this,!0);this.Ed=null};p.prototype.clear=function(){this.Vc(c.V);this.v&&(this.v.unbind(k.F("gain"),this.oJ,this,!0),this.v.unbind(k.F("mp3Url"),this.Kk,this,!0),this.v.unbind(k.F("oggUrl"), 1094this.Kk,this,!0),this.v.unbind(k.F("subtitlesURL"),this.Kk,this,!0),this.v=null)};p.prototype.Kk=function(){this.NE&&clearTimeout(this.NE);this.NE=setTimeout(function(){this.NE=null;this.Ed&&(this.o.src=this.$z(this.v),this.o.ul=this.v.get("subtitlesURL"),this.Ed.play(this.kb,this.o,this.Lz))}.bind(this),10)};p.prototype.oJ=function(){if(this.Ed){var r=this.v.get("gain");this.o.gain!=r&&(this.o.gain=r,this.Ed.sU(this.o.gain))}};p.prototype.bR=function(){this.o=new b;this.o.src=this.$z(this.v);this.o.ul= 1095this.v.get("subtitlesURL");this.o.uB=!0;this.o.gain=this.v.get("gain")};p.prototype.$z=function(r){var t=r.get("mp3Url");return t&&q.mEa?t:(r=r.get("oggUrl"))&&q.nEa?r:t||r};p.prototype.Dn=function(){this.Xb=this.Ed.ui();this.Bfa()};p.prototype.kf=function(){this.Xb!=this.Ed.ui()&&this.Dn();this.Lz=this.Ed.getCurrentTime();this.IR()};p.prototype.Ji=function(){this.po=this.Ed.TS().map(function(r){for(var t=null,u=0;u<this.po.length&&!t;u++)this.po[u].cue==r&&(t=this.po[u]);t||(t=new g(r));return t}.bind(this)); 1096this.trigger(new l(k.sk))};p.prototype.CP=function(){this.Vc(c.V);this.Cfa()};p.prototype.NUa=function(){return this.Ed&&this.Ed.getCurrentTime()&&this.Ed.getCurrentTime()==this.Ed.ui()};p.prototype.Dea=function(){this.Lz=0;this.IR()};p.prototype.IR=function(){this.trigger(new l(p.Tf))};p.prototype.Bfa=function(){this.trigger(new l(p.dj))};p.prototype.Cfa=function(){this.trigger(new l(k.Gb))};p.prototype.Gfa=function(){this.trigger(new l(k.ye))};p.Tf="time update";p.dj="duration update";return p}); 1097define("hm",["require"],function(){function a(l,m,k){this.Wd=l;this.jza=m;this.ct=k||f}var f=function(){var l=document.createElement("canvas");l.width=l.height=256;l.getContext("2d").clearRect(0,0,l.width,l.height);return l}();a.prototype.isEmpty=function(){return this.ct==f||"CANVAS"==this.ct.tagName&&(0==this.ct.width||0==this.ct.height)};a.prototype.isEqual=function(l,m){return this.Wd==l.Wd&&Math.abs(this.jza-l.jza)<(m||0)&&this.ct==l.ct};return a}); 1098define("dq",["require","ml","w","iD"],function(a){function f(g){return k.DJa(g)}function l(g,b){if(!b)return!0;var d=g.get("url"),e=g.get("srcObject");g=g.get("type")||"";switch(b){case "srcObj":return!!e;case "webm":return c.is(d,c.QMa)||m(g,"webm");case "h265":return c.is(d,c.ELa)||(c.is(d,c.mna)||c.is(d,c.Tma)||!d)&&(m(g,"hev1")||m(g,"h265")||m(g,"heic"))?!0:!1;case "mp4":return c.is(d,c.mna)||m(g,"mp4");case "hls":return c.is(d,c.HLS)||m(g,"x-mpegurl");case "ogv":return c.is(d,c.bMa)||m(g,"ogg"); 1099case "mov":return c.is(d,c.Tma)||m(g,"quicktime");default:return!1}}function m(g,b){return 0<=(g||"").toLowerCase().indexOf(b)}var k=a("ml");a("w");var c=a("iD"),h={i6a:function(g){return h.select(g.get("levels"))},g6a:function(g){return h.select(g.get("levels"))},select:function(g){g||(g=[]);g=g.slice();var b=[];b.push({type:"srcObj",ts:!0});k.v6a&&b.push({type:"hls",ts:!1});k.N6a&&b.push({type:"h265",ts:!0});k.Iia&&b.push({type:"webm",ts:!0});k.c3&&b.push({type:"mp4",ts:!0});k.O6a&&b.push({type:"mov", 1100ts:!0});k.Hia&&b.push({type:"ogv",ts:!0});b.push({type:"mp4",ts:!0});b.push({type:"webm",ts:!0});b.push({type:"mp4",ts:!1});b.push({type:"webm",ts:!1});for(var d=0;d<b.length;d++){var e=g;b[d].ts&&(e=e.filter(f));e=e.filter(function(n){if(l(n,b[d].type))return!0});"hls"!=b[d].type&&e.sort(function(n,q){return q.get("width")-n.get("width")});if(e.length)return e[0]}return null}};return h}); 1101define("oR","require lQ cI gD pw lt iw oj w mQ oM dM hm nC ip cb dq".split(" "),function(a){function f(x){d.browser()==d.Ij&&(x=e.gB(x,"playbacksession="+(new Date).getTime()));return x}var l=a("lQ"),m=a("cI"),k=a("gD"),c=a("pw"),h=a("lt"),g=a("iw"),b=a("oj"),d=a("w"),e=a("mQ"),n=a("oM"),q=a("dM"),p=a("hm"),r=a("nC"),t=a("ip"),u=a("cb"),v=a("dq"),w=l.extend(k,function(x,y){k.call(this);this.kb=x;this.v=y;this.eb=w.kk(this.v);this.o=null;this.bR();this.v.bind(c.F("subtitlesURL"),this.Kk,this,!0);this.v.bind(c.F("gain"), 1102this.oJ,this,!0);this.eb.bind(c.F("srcObject"),this.Kk,this,!0);this.eb.bind(c.F("subtitlesURL"),this.Kk,this,!0);this.eb.bind(c.F("url"),this.Kk,this,!0);this.eb.bind(c.F("gain"),this.oJ,this,!0);this.C=h.V;this.Jf=this.Xb=0;this.af=!1;this.Cr=1;this.Hk=!1;this.T=this.bc=null;this.fI=!1;this.IW=void 0;this.Spa=!1;this.po=[]});w.prototype.Db=function(){return this.kb};
1102w.prototype.Vc=function(x){this.C==x||x==h.Qb&&this.C!=h.PLAYING||(this.Spa&&x==h.PLAYING&&this.C==h.V&&this.O8(),this.C=x,this.C== 1103h.PLAYING?(this.bc&&this.bc.play(this.kb,this.o,this.Jf),u.A4(this)):(u.gEa()?this.bc&&this.bc.stop():u.ZT(this),this.C==h.V&&this.Dea()),this.Gfa())};w.prototype.getState=function(){return this.C};w.prototype.ui=function(){return this.Xb};w.prototype.setCurrentTime=function(x){this.Jf=x;this.bc&&(this.bc.bG()&&this.bO(),this.bc.play(this.kb,this.o,this.Jf))};w.prototype.getCurrentTime=function(){return this.Jf};w.prototype.Fy=function(x){this.Cr=x;this.bc&&this.bc.Fy(x)};w.prototype.Sf=function(x){this.af= 1104x;this.bc&&this.bc.Sf(x)};w.prototype.setLoop=function(x){this.Hk=x;this.bc&&this.bc.setLoop(x)};w.prototype.X9a=function(){this.Spa=!0};w.prototype.YK=function(x,y,z){this.bc&&this.bc.bG()?this.bc.YK(x,y,z):this.fI?x.drawImage(this.T,0,0,y,z):x.fillRect(0,0,y,z)};w.prototype.J2=function(){if(this.bc&&this.bc.bG()){var x=this.bc.getCurrentTime(),y=this.bc.rc;if(this.JO())return new p(this.o.src,this.IW,this.T);this.O8();return new p(this.o.src,x,y)}return this.fI?new p(this.o.src,this.Jf,this.T): 1105new p(this.o.src,this.Jf,null)};w.prototype.rka=function(){return!this.af&&this.v.get("hasAudio")};w.prototype.getType=function(){return t.mo};w.prototype.xDa=function(){return g.mo};w.prototype.uCa=function(x){this.bc=x;setTimeout(function(){this.bc&&this.bc.bind(n.tk,this.CP,this,!0)}.bind(this),0);this.bR();this.bc.bind(n.Tf,this.kf,this,!0);this.bc.bind(n.dj,this.Dn,this,!0);this.bc.bind(c.sk,this.Ji,this,!0);this.bc.Sf(this.af);this.bc.Fy(this.Cr);this.bc.setLoop(this.Hk);this.bc.play(this.kb, 1106this.o,this.Jf)};w.prototype.PEa=function(){this.bc.bG()&&this.bO();this.Jf=this.bc.getCurrentTime();this.bc.unbind(n.tk,this.CP,this,!0);this.bc.unbind(n.Tf,this.kf,this,!0);this.bc.unbind(n.dj,this.Dn,this,!0);this.bc.unbind(c.sk,this.Ji,this,!0);this.C==h.V&&(this.bc.stop(),this.bc.setCurrentTime(0),this.CPa());this.bc=null};w.prototype.clear=function(){u.ZT(this);this.O8();this.v&&(this.v.unbind(c.F("subtitlesURL"),this.Kk,this,!0),this.v.unbind(c.F("gain"),this.oJ,this,!0),this.v=null);this.eb&& 1107(this.eb.unbind(c.F("subtitlesURL"),this.Kk,this,!0),this.eb.unbind(c.F("url"),this.Kk,this,!0),this.eb.unbind(c.F("srcObject"),this.Kk,this,!0),this.eb=null)};w.prototype.Kk=function(){this.NE&&clearTimeout(this.NE);this.NE=setTimeout(function(){this.NE=null;this.bc&&(this.o.ul=this.v.get("subtitlesURL")||this.eb.get("subtitlesURL"),this.o.src=this.eb.get("srcObject")||f(this.eb.get("url")),this.bc.play(this.kb,this.o,this.Jf))}.bind(this),10)};w.prototype.oJ=function(){this.bc&&(this.o.gain=this.v.get("gain", 11081)*this.eb.get("gain",1),this.bc.sU(this.o.gain))};w.prototype.bR=function(){this.o=new r;this.o.src=this.eb.get("srcObject")||f(this.eb.get("url"));this.o.ul=this.v.get("subtitlesURL")||this.eb.get("subtitlesURL");this.o.uB=this.v.get("hasAudio",!0)&&this.eb.get("hasAudio",!0);this.o.gain=this.v.get("gain",1)*this.eb.get("gain",1)};w.prototype.bO=function(){this.T||(this.T=document.createElement("canvas"));if(!this.JO()){this.T.width=this.bc.De();this.T.height=this.bc.Te();this.IW=this.bc.getCurrentTime(); 1109var x=this.T.getContext("2d");x.clearRect(0,0,this.T.width,this.T.height);this.fI=this.bc.YK(x,this.T.width,this.T.height)}};w.prototype.JO=function(){var x=this.bc.getCurrentTime();this.Xb&&(x=Math.min(x,this.Xb));return this.fI&&.15>=Math.abs(x-this.IW)};w.prototype.O8=function(){this.fI&&(this.IW=void 0,this.fI=!1,d.browser()!=d.Ij&&(this.T.width=0,this.T.height=0,this.T=null))};w.prototype.Dn=function(){this.Xb=this.bc.ui();this.Bfa()};w.prototype.kf=function(){var x=this.bc.ui();0!==x&&(this.Xb!= 1110x&&this.Dn(),this.Jf=this.bc.getCurrentTime(),d.zd()==d.yi&&0<this.Jf&&this.Jf>this.Xb-.15&&!this.JO()&&!this.Hk?this.bO():d.browser()==d.Ij&&0<this.Jf&&this.Jf>this.Xb-.05&&!this.JO()&&!this.Hk?this.bO():d.browser()==d.Sm&&0<this.Jf&&this.Jf>this.Xb-.05&&!this.JO()&&this.Hk&&this.bO(),this.IR())};w.prototype.Ji=function(){this.po=this.bc.TS().map(function(x){for(var y=null,z=0;z<this.po.length&&!y;z++)this.po[z].cue==x&&(y=this.po[z]);y||(y=new q(x));return y}.bind(this));this.trigger(new m(c.sk))}; 1111w.prototype.CPa=function(){0!=this.po.length&&(this.po=[],this.trigger(new m(c.sk)))};w.prototype.CP=function(){this.Vc(h.V);this.Cfa()};w.prototype.Dea=function(){this.Jf=0;this.IR()};w.prototype.IR=function(){this.trigger(new m(w.Tf))};w.prototype.Bfa=function(){this.trigger(new m(w.dj))};w.prototype.Cfa=function(){this.trigger(new m(c.Gb))};w.prototype.Gfa=function(){this.trigger(new m(c.ye))};w.Tf="time update";w.dj="duration update";w.kk=function(x){if(b.Ja("Video360Resource",x))return v.g6a(x); 1112if(b.Ja("VideoResource",x))return v.i6a(x);throw"invalid video resource object: "+x;};return w}); 1113define("kM",["require","oR","pw"],function(a){function f(m,k){this.iW=m;this.Jv=k;this.Q7=[];this.xOa();this.Ji()}a("oR");var l=a("pw");f.prototype.clear=function(){this.vPa();this.Q0a();this.Jv=this.iW=null};f.prototype.xOa=function(){this.Jv.bind(l.sk,this.Ji,this,!0)};f.prototype.Q0a=function(){this.Jv.unbind(l.sk,this.Ji,this,!0)};f.prototype.Ji=function(){this.iW.set("activeSubtitles",this.Q7=this.Jv.po)};f.prototype.vPa=function(){this.iW.get("activeSubtitles")==this.Q7&&this.iW.set("activeSubtitles", 1114this.Q7=[])};return f}); 1115define("hr","require pw iw lt mu cI oj G kM".split(" "),function(a){var f=a("pw"),l=a("iw"),m=a("lt"),k=a("mu"),c=a("cI"),h=a("oj"),g=a("G"),b=a("kM");a=h.define("Audio",k,function(d){k.call(this);this.zt=d||l.EMa;this.uo=void 0;this.pm=null});a.prototype.VF=function(){if(void 0==this.uo){this.pm&&(this.pm.clear(),this.pm=null);var d=this.get("audio");d?(this.uo=new g(this.get("application"),d,this.zt),d=function(){this.uo.setLoop(this.get("loop",!1))},d.call(this),this.bind(f.F("loop"),d,this),d= 1116function(){this.uo.Sf(this.get("application").get("mute",!1))},d.call(this),this.get("application").bind(f.F("mute"),d,this,!0),d=function(){this.set("state",this.uo.getState())},d.call(this),this.uo.bind(f.ye,d,this,!0),this.uo.bind(f.Gb,this.WVa,this,!0),this.pm=new b(this,this.uo)):this.uo=null}return this.uo};a.prototype.set=function(d,e){switch(d){case "state":var n=this.get("state")||m.V,q=this.uo&&this.uo.getState()||m.V;q!=n&&(n==m.V&&q==m.PLAYING&&this.trigger(f.ko),this.trigger(new c(f.ye, 1117{oldState:n,state:q})));break;case "subtitlesViewerArea":(n=k.prototype.get.call(this,d))&&n.G0.remove(this),e&&e.G0.add(this)}k.prototype.set.call(this,d,e)};a.prototype.su=function(){return[]};a.prototype.WVa=function(){this.trigger(new c(f.Gb))};a.prototype.play=a.prototype.Qk=function(){var d=this.VF();d&&d.Vc(m.PLAYING)};a.prototype.stop=a.prototype.ap=function(){var d=this.VF();d&&d.Vc(m.V)};a.prototype.pause=a.prototype.br=function(){var d=this.VF();d&&d.Vc(m.Qb)};return a}); 1118define("jv",["require","oj","hr"],function(a){var f=a("oj"),l=a("hr");return f.define("MediaAudio",l,function(m){l.call(this,m)})});define("qa",["require","iw","oj","jv"],function(a){var f=a("iw"),l=a("oj"),m=a("jv");return l.define("PanoramaAudio",m,function(){m.call(this,f.gMa)})});define("hF",["require","oj","qa"],function(a){var f=a("oj"),l=a("qa");return f.define("DirectionalPanoramaAudio",l,function(){l.call(this)})}); 1119define("fy",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("Model3DCameraMovement",f,function(){f.call(this)})});define("iH",["require","oj","fy"],function(a){var f=a("oj"),l=a("fy");return f.define("DistanceModel3DCameraMovement",l,function(){l.call(this)})});define("lz",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("DistancePanoramaCameraMovement",f,function(){f.call(this)})}); 1120define("hi",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("DistanceRotationalCameraMovement",f,function(){f.call(this)})}); 1121define("z",["require","exports","pw","lQ"],function(a,f,l,m){return function(){function k(c,h,g,b,d){this.Gq=null;this.mca=c;this.tf=l.F(this.mca);this.raa=h;this.Da=g||window;this.Uaa=b;this.dua=d;this.hba=!1}k.prototype.eC=function(){this.fea(null)};k.prototype.fea=function(c){var h=this;m.toArray(this.Gq).forEach(function(g){g&&g.unbind(this.tf,h.Ipa,h)}.bind(this));this.Gq=c;m.toArray(this.Gq).forEach(function(g){g&&g.bind(this.tf,this.Ipa,h,h.Uaa)}.bind(this));this.uxa()};k.prototype.uxa=function(){this.dua&& 1122this.dua.fea(this.VSa())};k.prototype.VSa=function(){return null==this.Gq?null:Array.isArray(this.Gq)?this.Gq.map(function(c){return c?c.get(this.mca):null}.bind(this)):this.Gq.get(this.mca)};k.prototype.Ipa=function(c){if(!this.hba){try{this.hba=!0,this.uxa(),this.raa.call(this.Da,c)}catch(h){m.AT("ChangeWatcher._changeHandler",h)}this.hba=!1}};k.Ru=function(c,h,g,b,d){void 0===d&&(d=!1);m.isString(h)&&(h=h.split("."));return 0<h.length?(h=new k(h[0],g,b,d,k.Ru(null,h.slice(1),g,b,d)),h.fea(c),h): 1123null};return k}()}); 1124define("pS",["require","jquery.mod","lQ","pw","e"],function(a){var f=a("jquery.mod"),l=a("lQ"),m=a("pw"),k=a("e"),c=l.extend(k,function(){k.call(this);this.Qe("DropDownArrow");this.T=null;this.Tv=!0;this.bind(m.tc,this.tRa,this)});c.prototype.yb=function(){k.prototype.yb.call(this);this.h("color","#000000");this.h("direction",c.Y5)};c.prototype.tRa=function(){this.Tv=!0;this.ve()};c.prototype.Hb=function(){k.prototype.Hb.call(this);this.T||(this.T=f("<canvas/>"),this.T.css({position:"absolute",left:0, 1125top:0}),this.Yb().append(this.T))};c.prototype.bb=function(){var h=!1;this.L("color")&&(h=!0,this.S("color"));this.L("direction")&&(h=!0,this.S("direction"));this.Tv&&(h=!0,this.Tv=!1);if(h){h=this.zf();var g=this.yf(),b=this.B("color"),d=this.B("direction"),e=[.5*h,0,h];d=d==c.Y5?[g,0,0]:[0,g,g];var n=this.T.get(0);n.width=h;n.height=g;n=n.getContext("2d");n.clearRect(0,0,h,g);n.beginPath();n.moveTo(e[0],d[0]);n.lineTo(e[1],d[1]);n.lineTo(e[2],d[2]);n.fillStyle=b;n.fill()}k.prototype.bb.call(this)}; 1126c.Y5="down";c.Lcb="up";return c}); 1127define("id","require lQ cI nA bh pw d hf oP pS dE".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("nA"),k=a("bh"),c=a("pw"),h=a("d"),g=
1127a("hf"),b=a("oP"),d=a("pS"),e=a("dE");a=f.extend(b,function(){b.call(this);this.Qe("DropDownButton");this.qz=this.Pa=null;this.Cba=!0;this.set("ariaRole","dropdown");this.set("autoRolledOver",!0);this.set("autoPressed",!0);this.set("childrenInteractionEnabled",!1);this.set("contentOpaque",!0);this.set("cursor",k.Je);this.bind(c.ma,this.g$,this)});a.prototype.yb= 1128function(){b.prototype.yb.call(this);this.h("arrowColor","#000000");this.h("arrowBeforeLabel");this.h("arrowWidth",9);this.h("arrowHeight",5);this.h("arrowGap",5);this.h("shadow",!1);this.h("layout",h.Gg);this.h("verticalAlign",m.qe);this.h("borderRadius",5);this.h("borderColor","#AAAAAA");this.h("borderSize",1);this.h("backgroundColor",["#FAFAFA","#E5E5E5"]);this.h("backgroundColorRatios",[0,1]);this.h("backgroundColorDirection","vertical");this.h("paddingLeft",5);this.h("paddingTop",5);this.h("paddingRight", 11295);this.h("paddingBottom",5);this.h("fontFamily");this.h("fontSize");this.h("fontColor","#555555");this.h("fontWeight");this.h("fontStyle");this.h("textDecoration");this.h("textShadowColor");this.h("textShadowHorizontalLength");this.h("textShadowVerticalLength");this.h("textShadowBlurRadius");this.h("textShadowOpacity");this.A("rollOverBorderColor",g.aa,"borderColor");this.A("rollOverArrowColor",g.aa,"arrowColor");this.A("rollOverBackgroundColor",g.aa,"backgroundColor");this.A("rollOverBackgroundColorRatios", 1130g.aa,"backgroundColorRatios");this.A("rollOverShadow",g.aa,"shadow");this.A("pressedBorderColor",g.Ab,"borderColor");this.A("pressedArrowColor",g.Ab,"arrowColor");this.A("pressedBackgroundColor",g.Ab,"backgroundColor");this.A("pressedBackgroundColorRatios",g.Ab,"backgroundColorRatios");this.A("pressedShadow",g.Ab,"shadow");this.A("pressedRollOverBorderColor",g.jc,"borderColor");this.A("pressedRollOverArrowColor",g.jc,"arrowColor");this.A("pressedRollOverBackgroundColor",g.jc,"backgroundColor");this.A("pressedRollOverBackgroundColorRatios", 1131g.jc,"backgroundColorRatios");this.A("pressedRollOverShadow",g.jc,"shadow");this.A("pressedBorderColor",g.ja,"borderColor");this.A("pressedArrowColor",g.ja,"arrowColor");this.A("pressedBackgroundColor",g.ja,"backgroundColor");this.A("pressedBackgroundColorRatios",g.ja,"backgroundColorRatios");this.A("pressedShadow",g.ja,"shadow")};a.prototype.set=function(n,q){"label"==n&&this.get("label")!=q&&(this.Cba=!0,this.ve());b.prototype.set.call(this,n,q)};a.prototype.Hb=function(){b.prototype.Hb.call(this); 1132this.Pa||(this.Pa=new e,this.Pa.set("width","100%"),this.Ya(this.Pa));this.qz||(this.qz=new d,this.qz.set("direction",d.Y5),this.Ya(this.qz))};a.prototype.g$=function(){this.open();this.trigger(new l(c.OPEN))};a.prototype.open=function(){this.unbind(c.ma,this.g$,this);this.XQ(!0)};a.prototype.close=function(){this.bind(c.ma,this.g$,this);this.XQ(!1)};a.prototype.Iv=function(){return this.Pa&&this.Pa.get("text")||b.prototype.Iv.call(this)};a.prototype.bb=function(){if(this.Cba){var n=this.get("label"); 1133this.Pa.set("text",n);this.Cba=!1}this.uc("horizontalAlign fontFamily fontSize fontColor fontWeight fontStyle textDecoration textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "),{},[this.Pa],!0,!0);this.L("arrowGap")&&(this.set("gap",this.B("arrowGap")),this.S("arrowGap"));this.L("arrowColor")&&(this.qz.set("color",this.B("arrowColor")),this.S("arrowColor"));this.L("arrowBeforeLabel")&&(1==this.B("arrowBeforeLabel")?this.ao(this.qz, 11340):this.ao(this.Pa,0),this.S("arrowBeforeLabel"));this.L("arrowWidth")&&(this.qz.set("width",this.B("arrowWidth")),this.S("arrowWidth"));this.L("arrowHeight")&&(this.qz.set("height",this.B("arrowHeight")),this.S("arrowHeight"));b.prototype.bb.call(this)};return a});define("hN",["require","es","lQ","oP","d"],function(a){var f=a("es"),l=a("lQ"),m=a("oP");a=a("d");var k=l.extend(m,function(){m.call(this)});k.Fc={layout:a.Xh};f.defaults(k.Fc,m.Fc);k.prototype.yb=function(){this.Ao(k.Fc)};return k}); 1135define("lX","require lQ cI nA bh ik pw oP hN dE".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("nA"),k=a("bh"),c=a("ik"),h=a("pw"),g=a("oP"),b=a("hN"),d=a("dE");a=f.extend(g,function(){g.call(this);this.Qe("DropDownPopup");this.set("ariaRole","listbox");this.Ad=null;this.oW=!1;this.Lb=null;this.XO=[];this.YA=!0});a.prototype.mDa=function(){return this.Lb.ob().map(function(e){return e.je()})};a.prototype.open=function(e){this.Ad=e;this.oW=!0;this.Db().ao(this,this.Db().ob().length-1);this.set("overIndex", 1136-1);this.set("visible",!0);this.bind(h.gb,this.be,this);this.Db().bind(h.Eb,this.ot,this);this.Db().bind(h.tc,this.Ic,this)};a.prototype.close=function(){this.Ad=null;this.oW=!0;this.set("visible",!1);this.Lb.set("overflow",c.FH);this.Lb.set("contentOpaque",!0);this.unbind(h.gb,this.be,this);this.Db().unbind(h.Eb,this.ot,this);this.Db().bind(h.tc,this.Ic,this)};a.prototype.Hb=function(){g.prototype.Hb.call(this);this.Lb||(this.Lb=new b,this.Lb.set("overflow",c.FH),this.Lb.bind(h.tc,this.Ic,this), 1137this.Lb.bind(h.fq,this.QA,this),this.Ya(this.Lb))};a.prototype.Ic=function(){this.hAa()};a.prototype.be=function(){this.nea=!1};a.prototype.QA=function(){this.nea=!0};a.prototype.ot=function(){-1!=this.get("overIndex")||this.nea&&this.Fo||this.trigger(new l(h.oH
1137));this.nea=!1};a.prototype.mWa=function(e){this.set("overIndex",this.daa(e.source))};a.prototype.nWa=function(e){e=this.daa(e.source);this.get("overIndex")==e&&this.set("overIndex",-1)};a.prototype.lWa=function(e){e=this.daa(e.source);this.set("overIndex", 1138e);this.set("selectedIndex",e);this.trigger(new l(h.gq))};a.prototype.daa=function(e){for(var n=0;n<this.XO.length;n++)if(this.XO[n]==e)return n;return-1};a.prototype.yb=function(){g.prototype.yb.call(this);this.h("visible",!1);this.h("width","100%");this.h("height","100%");this.h("includeInLayout",!1);this.h("items",[]);this.h("selectedIndex",-1);this.h("overIndex",-1);this.h("popUpGap",0);this.h("popUpBackgroundColor");this.h("popUpBackgroundOpacity");this.h("rollOverPopUpBackgroundColor");this.h("selectedPopUpBackgroundColor"); 1139this.h("popUpFontColor");this.h("rollOverPopUpFontColor");this.h("selectedPopUpFontColor");this.h("popUpShadow",!0);this.h("popUpShadowBlurRadius");this.h("popUpShadowColor");this.h("popUpShadowHorizontalLength");this.h("popUpShadowOpacity");this.h("popUpShadowSpread");this.h("popUpShadowVerticalLength");this.h("fontFamily");this.h("fontSize");this.h("fontWeight");this.h("fontStyle");this.h("textDecoration");this.h("textShadowColor");this.h("textShadowHorizontalLength");this.h("textShadowVerticalLength"); 1140this.h("textShadowBlurRadius");this.h("textShadowOpacity");this.h("buttonWidth")};a.prototype.bb=function(){var e=!1,n=!1;if(this.L("items")){e=this.B("items")||[];for(var q=this.XO.length;q<e.length;q++){var p=new d;p.ra({width:"100%",paddingLeft:5,paddingRight:5,paddingBottom:2,paddingTop:2,cursor:k.Je});p.bind(h.IC,this.mWa,this);p.bind(h.Zp,this.nWa,this);p.bind(h.ma,this.lWa,this);this.XO.push(p)}p=this.Lb.ob();for(q=e.length;q<p.length;q++)this.Lb.removeChild(p[q]);for(q=p.length;q<e.length;q++)this.Lb.Ya(this.XO[q]); 1141for(q=0;q<e.length;q++)p[q].ra({text:e[q],ariaLabel:e[q],ariaRole:"option"});this.S("items");n=e=!0}this.L("selectedIndex")&&(this.S("selectedIndex"),e=!0);var r="horizontalAlign popUpBackgroundOpacity popUpPaddingBottom popUpPaddingLeft popUpPaddingRight popUpPaddingTop fontFamily fontSize fontWeight fontStyle tabIndex textDecoration textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" ");for(q=0;q<r.length;q++)p=r[q],this.L(p)&&(this.S(p), 1142n=!0);if(n)for(r={fontFamily:this.B("fontFamily"),fontSize:this.B("fontSize"),fontWeight:this.B("fontWeight"),fontStyle:this.B("fontStyle"),horizontalAlign:this.B("horizontalAlign"),tabIndex:this.B("tabIndex"),textDecoration:this.B("textDecoration"),textShadowColor:this.B("textShadowColor"),textShadowHorizontalLength:this.B("textShadowHorizontalLength"),textShadowVerticalLength:this.B("textShadowVerticalLength"),textShadowBlurRadius:this.B("textShadowBlurRadius"),textShadowOpacity:this.B("textShadowOpacity"), 1143paddingBottom:this.B("popUpPaddingBottom"),paddingLeft:this.B("popUpPaddingLeft"),paddingRight:this.B("popUpPaddingRight"),paddingTop:this.B("popUpPaddingTop"),backgroundOpacity:this.B("popUpBackgroundOpacity")},p=this.Lb.ob(),q=0;q<p.length;q++)p[q].ra(r);r="selectedIndex overIndex popUpBackgroundColor rollOverPopUpBackgroundColor selectedPopUpBackgroundColor popUpFontColor rollOverPopUpFontColor selectedPopUpFontColor".split(" ");for(q=0;q<r.length;q++)p=r[q],this.L(p)&&(this.S(p),e=!0);if(e){e= 1144this.B("popUpBackgroundColor");r=this.B("rollOverPopUpBackgroundColor")||e;n=this.B("selectedPopUpBackgroundColor")||e;var t=this.B("popUpFontColor"),u=this.B("rollOverPopUpFontColor")||t,v=this.B("selectedPopUpFontColor")||t,w=this.B("selectedIndex"),x=this.B("overIndex");p=this.Lb.ob();for(q=0;q<p.length;q++)q==w?p[q].ra({fontColor:v,backgroundColor:n}):q==x?p[q].ra({fontColor:u,backgroundColor:r}):p[q].ra({fontColor:t,backgroundColor:e})}if(this.oW||this.L("popUpGap")||this.L("buttonWidth"))this.Ad&& 1145this.Lb.set("minWidth",this.Ad.Za()),this.S("popUpGap"),this.hAa(),this.oW=!1;this.uc("popUpShadow popUpShadowBlurRadius popUpShadowColor popUpShadowHorizontalLength popUpShadowOpacity popUpShadowSpread popUpShadowVerticalLength".split(" "),{popUpShadow:"shadow",popUpShadowBlurRadius:"shadowBlurRadius",popUpShadowColor:"shadowColor",popUpShadowHorizontalLength:"shadowHorizontalLength",popUpShadowOpacity:"shadowOpacity",popUpShadowSpread:"shadowSpread",popUpShadowVerticalLength:"shadowVerticalLength"}, 1146[this.Lb],!0,!0);this.Mza();g.prototype.bb.call(this)};
1146a.prototype.hAa=function(){if(this.Ad){var e=this.Db(),n=this.Ad.Z5a(e),q=this.Ad.Za(),p=this.Ad.Cb(),r=this.B("popUpGap"),t=this.Lb.Rb,u=this.Lb.ec,v=e.Cb()-(n.top+p+r)-5,w=n.top-5-r,x=this.B("horizontalAlign");u<=v?(this.YA=!0,this.Lb.set("top",n.top+p+r),this.Lb.set("maxHeight",void 0),this.Lb.set("overflow",c.FH)):u<=w?(this.YA=!1,this.Lb.set("top",n.top-u-r),this.Lb.set("maxHeight",void 0),this.Lb.set("overflow",c.FH)):(v>=w?(this.YA=!0, 1147this.Lb.set("top",n.top+p+r),this.Lb.set("maxHeight",v)):(this.YA=!1,this.Lb.set("top",n.top-w+r),this.Lb.set("maxHeight",w)),this.Lb.set("overflow",c.fq));p=x==m.Ye?n.left+Math.round(.5*(q-t)):x==m.tb?n.left+q-t:n.left;0>p?p=n.left:n.left+t>e.Za()&&(p=n.left+q-t);this.Lb.set("left",p);this.Mza()}};a.prototype.Mza=function(){var e=this.B("popUpBorderRadius");this.Lb.ra({borderTopRadius:this.YA?0:e,borderBottomRadius:this.YA?e:0});for(var n=this.Lb.ob(),q=0;q<n.length;q++){var p=0==q,r=q==n.length- 11481;n[q].ra({borderTopRadius:!this.YA&&p?e:0,borderBottomRadius:this.YA&&r?e:0})}};return a}); 1149define("pJ","require lQ cI pw oP id lX jt".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("pw"),k=a("oP"),c=a("id"),h=a("lX"),g=a("jt");a=f.extend(k,function(){k.call(this);this.Jw=this.Jw.bind(this);this.Qe("DropDown");this.LO=!1;this.Ad=this.Pi=null;this.Eya=!0;this.Pf=-1;this.ip=!1});a.prototype.yb=function(){k.prototype.yb.call(this);this.h("prompt","");this.h("label","");this.h("items",[]);this.h("selectedIndex",-1);this.h("arrowBeforeLabel");this.h("arrowWidth",9);this.h("arrowHeight",5); 1150this.h("arrowGap",5);this.h("borderRadius",5);this.h("borderSize",1);this.h("backgroundColorDirection","vertical");this.h("horizontalAlign","left");this.h("paddingLeft",5);this.h("paddingTop",5);this.h("paddingRight",5);this.h("paddingBottom",5);this.h("fontFamily");this.h("fontSize");this.h("fontColor","#555555");this.h("fontWeight");this.h("fontStyle");this.h("textDecoration");this.h("textShadowColor");this.h("textShadowHorizontalLength");this.h("textShadowVerticalLength");this.h("textShadowBlurRadius"); 1151this.h("textShadowOpacity");this.h("popUpGap",0);this.h("popUpBorderRadius");this.h("popUpPaddingBottom",2);this.h("popUpPaddingLeft",5);this.h("popUpPaddingRight",5);this.h("popUpPaddingTop",2);this.h("popUpShadow",!0);this.h("popUpShadowBlurRadius");this.h("popUpShadowColor");this.h("popUpShadowHorizontalLength");this.h("popUpShadowOpacity");this.h("popUpShadowSpread");this.h("popUpShadowVerticalLength");this.h("popUpBackgroundColor","#FFFFFF");this.h("popUpBackgroundOpacity");this.h("rollOverPopUpBackgroundColor"); 1152this.h("selectedPopUpBackgroundColor");this.h("popUpFontColor","#555555");this.h("rollOverPopUpFontColor");this.h("selectedPopUpFontColor");this.h("borderColor","#AAAAAA");this.h("arrowColor","#000000");this.h("backgroundColor",["#FAFAFA","#E5E5E5"]);this.h("backgroundColorRatios",[0,1]);this.h("shadow",!1);this.h("rollOverBorderColor");this.h("rollOverArrowColor");this.h("rollOverBackgroundColor");this.h("rollOverBackgroundColorRatios");this.h("rollOverShadow");this.h("pressedBorderColor");this.h("pressedArrowColor"); 1153this.h("pressedBackgroundColor");this.h("pressedBackgroundColorRatios");this.h("pressedShadow");this.h("pressedRollOverBorderColor");this.h("pressedRollOverArrowColor");this.h("pressedRollOverBackgroundColor");this.h("pressedRollOverBackgroundColorRatios");this.h("pressedRollOverShadow")};a.prototype.Hb=function(){k.prototype.Hb.call(this);this.Ad||(this.Ad=new c,this.Ad.bind(m.tc,this.aWa,this),this.Ad.bind(m.OPEN,this.BWa,this),this.Ad.bind(m.o
1153H,this.fZ,this),this.Ad.bind(m.ad,this.$Va,this),this.Ad.set("width", 1154"100%"),this.Ad.set("height","100%"),this.Ad.set("toolTipDisabled",!0),this.Ya(this.Ad));this.Pi||(this.Pi=new h,this.Pi.bind(m.oH,this.fZ,this),this.Pi.bind(m.gq,this.PWa,this),this.Db().Ya(this.Pi))};a.prototype.aWa=function(){this.Eya=!0;this.ve()};a.prototype.BWa=function(){this.Ad.open();this.Pi.set("selectedIndex",this.get("selectedIndex"));this.Pi.open(this.Ad);g.aBa(this,[this.Ad.je()].concat(this.Pi.mDa()));g.Wga(this.Jw)};a.prototype.Jw=function(){this.fZ()};a.prototype.fZ=function(){g.g7a([this.Ad.je()].concat(this.Pi.mDa()))&& 1155this.Ad.je().focus();g.g9a(this);g.ika(this.Jw);this.Ad.close();this.Pi.close()};a.prototype.$Va=function(){this.Ad.close();this.Pi.close()};a.prototype.PWa=function(){this.set("selectedIndex",this.Pi.get("selectedIndex"));this.fZ();this.ip=!0};a.prototype.bb=function(){var b=!1;if(this.L("prompt")||this.L("label"))b=!0,this.S("label"),this.S("prompt");if(this.L("selectedIndex")||this.L("items")){b=!0;var d=this.B("selectedIndex"),e=this.B("items");0<=d&&d>=e.length&&(d=-1);this.set("selectedIndex", 1156d);this.Pi.set("items",this.B("items"));this.Pi.set("selectedIndex",this.B("selectedIndex"));this.S("items");this.S("selectedIndex");this.ip&&(this.ip=!1,this.trigger(new l(m.ba)))}b&&(b=this.B("label"),b||(d=this.B("selectedIndex"),b=0>d?this.B("prompt"):this.B("items")[d]),this.Ad.set("label",b));this.Eya&&(this.Pi.set("minWidth",this.Ad.Za()),this.Pi.set("buttonWidth",this.Ad.Za()));this.uc("fontFamily fontSize fontColor fontWeight fontStyle tabIndex textDecoration horizontalAlign textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "), 1157{},[this.Ad,this.Pi],!0,!0);this.uc("popUpBorderRadius popUpGap popUpPaddingBottom popUpPaddingLeft popUpPaddingRight popUpPaddingTop popUpBackgroundColor popUpBackgroundOpacity rollOverPopUpBackgroundColor selectedPopUpBackgroundColor popUpFontColor rollOverPopUpFontColor selectedPopUpFontColor popUpShadow popUpShadowBlurRadius popUpShadowColor popUpShadowHorizontalLength popUpShadowOpacity popUpShadowSpread popUpShadowVerticalLength".split(" "),{},[this.Pi],!0,!0);this.uc("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(" "), 1158{},[this.Ad],!0,!0);k.prototype.bb.call(this)};return a}); 1159define("fZ",["require","z","pw","oj","pJ"],function(a){var f=a("z"),l=a("pw"),m=a("oj"),k=a("pJ");a=m.define("DropDown",k,function(){k.call(this);this.Dd=null;this.mta=[];this.bind(l.ba,this.dWa,this)});a.prototype.set=function(c,h){if("playList"==c){if(this.Dd)for(this.Dd.unbind("change",this.Tw,this);this.mta.length;)this.mta.shift().eC();(this.Dd=h)?(f.Ru(this.Dd,"items.label",this.Y0,this),f.Ru(this.Dd,"items.media.label",this.Y0,this),this.Y0(),this.Dd.bind("change",this.Tw,this),this.Tw()): 1160this.Y0()}k.prototype.set.call(this,c,h)};a.prototype.Y0=function(){this.Dd?this.set("items",this.Dd.get("items").map(function(c){return c.get("label")||c.get("media")&&c.get("media").get("label")})):this.set("items",[])};a.prototype.Tw=function(){this.set("selectedIndex",this.Dd.get("selectedIndex"))};a.prototype.dWa=function(){this.Dd&&this.Dd.set("selectedIndex",this.get("selectedIndex"))};return a}); 1161define("dA",["require","mu","oj"],function(a){var f=a("mu");a=a("oj").define("DustPanoramaOverlay",f,function(){f.call(this)});a.prototype.get=function(l,m){"startState"==l&&void 0===m&&(m=this.get("initialState"));return f.prototype.get.call(this,l,m)};return a}); 1162define("bG",["require","oj","eF"],function(a){var f=a("oj"),l=a("eF");a=f.define("Effect",l,function(){l.call(this)});a.prototype.cancel=function(){return l.prototype.cancel.apply(this,arguments)};a.prototype.getPosition=function(){return l.prototype.jl.apply(this,arguments)};a.prototype.play=function(){return l.prototype.play.apply(this,arguments)};a.prototype.reverse=function(){return l.prototype.reverse.apply(this,arguments)};a.prototype.stop=function(){return l.prototype.stop.apply(this,arguments)}; 1163return a});
1163define("kq",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("ExternalModel3DObject",l,function(){l.call(this)})}); 1164define("bt",["require","lQ","eF"],function(a){var f=a("lQ"),l=a("eF");a=f.extend(l,function(){l.call(this);this.X7=this.V7=null});a.prototype.fK=function(){l.prototype.fK.call(this);this.V7=[];this.X7=[];this.Tz(function(m){this.V7.push(this.get("alphaFrom",m.il()));this.X7.push(this.get("alphaTo",m.il()))});this.G_()};a.prototype.tx=function(){l.prototype.tx.call(this);this.G_()};a.prototype.G_=function(){this.Tz(function(m,k){var c=this.V7[k];k=c+(this.X7[k]-c)*this.jl();!(0<m.il()&&m.Tb)&&0<k? 1165(m.Mh(0),m.Xe(!0),m.Mh(k)):0==k?(m.Xe(!1),m.Mh(1)):m.Mh(k)})};a.prototype.dK=function(){this.G_();l.prototype.dK.call(this)};a.prototype.eK=function(){this.G_();l.prototype.eK.call(this)};return a});define("ob",["require","lQ","bt"],function(a){var f=a("lQ"),l=a("bt");return f.extend(l,function(){l.call(this);this.set("alphaFrom",0);this.set("alphaTo",1)})});define("on",["require","oj","ob"],function(a){var f=a("oj"),l=a("ob");return f.define("FadeInEffect",l,function(){l.call(this)})}); 1166define("ow",["require","lQ","bt"],function(a){var f=a("lQ"),l=a("bt");return f.extend(l,function(){l.call(this);this.set("alphaFrom",1);this.set("alphaTo",0)})});define("kk",["require","oj","ow"],function(a){var f=a("oj"),l=a("ow");return f.define("FadeOutEffect",l,function(){l.call(this)})}); 1167define("gq","require mu pw lt oj lT".split(" "),function(a){var f=a("mu"),l=a("pw"),m=a("lt"),k=a("oj"),c=a("lT");a=k.define("Model3DCamera",f,function(){f.call(this);this.set("userInteracting",!1);this.set("moving",!1);this.set("mouseDisabled",!1);this.set("clickTranslationDisabled",!1);this.set("doubleClickDisabled",!1);this.Y9=this.EVa=this.W8=this.V8=!1;"distance fov yaw pitch x y z".split(" ").forEach(function(h){this.bind(l.F(h),this.JWa,this,!0)}.bind(this))});a.prototype.mbb=function(){this.lK= 1168{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(h){void 0!==h.x&&this.set("x",h.x);void 0!==h.y&&this.set("y",h.y);void 0!==h.z&&this.set("z",h.z);void 0!==h.distance&&this.set("distance",h.distance);void 0!==h.yaw&&this.set("yaw",h.yaw);void 0!==h.pitch&&this.set("pitch",h.pitch);void 0!==h.fov&&this.set("fov",h.fov);void 0!==h.easing?this.set("easing",h.easing):this.set("easing", 11690)};a.prototype.b_a=function(h){this.lK||(this.lK={});for(var g in h)this.lK[g]=h[g]};a.prototype.C9a=function(){this.lK&&this.setPosition(this.lK)};a.prototype.uIa=function(h){this.Kta!==h&&(this.Kta=h,this.E1a())};a.prototype.E1a=function(){this.set("mouseDisabled",this.EVa||this.Kta)};a.prototype.Y9a=function(h){this.V8!==h&&(this.V8=h,this.Oza())};a.prototype.WHa=function(h){this.W8!==h&&(this.W8=h,this.Oza())};a.prototype.Oza=function(){this.set("clickTranslationDisabled",this.V8||this.W8)}; 1170a.prototype.f$a=function(h){this.Y9!==h&&(this.Y9=h,this.m1a())};a.prototype.m1a=function(){this.set("doubleClickDisabled",this.Y9)};a.prototype.JWa=function(){this.Ewa||(this.Ewa=!0,c.RB(function(){this.Ewa=!1;this.I0a()}.bind(this)))};a.prototype.I0a=function(){this.trigger(l.Cl)};a.Vcb=100;a.prototype.setStoredPosition=function(h){this.b_a(h)};a.prototype.play=function(){this.set("state",m.PLAYING)};a.prototype.pause=function(){this.set("state",m.Qb)};a.prototype.stop=function(){this.set("state", 1171m.V)};return a});define("lk",["require","oj","gq"],function(a){var f=a("oj"),l=a("gq");return f.define("FirstPersonModel3DCamera",l,function(){l.call(this);this.set("distance",0)})}); 1172define("cW",["require","mu","pw","oj","eF"],function(a){var f=a("mu"),l=a("pw"),m=a("oj"),k=a("eF");a=m.define("HotspotPanoramaOverlay",f,function(){f.call(this);this.bind(l.jd,this.sj,this,!0);this.bind(l.ad,this.rj,this,!0);this.Ai=[];this.Tb=!1});a.prototype.set=function(c,h){switch(c){case "enabledInCardboard":this.set("enabledInVR",h);break;case "effect":case "rollOverEffect":case "areas":this.$Xa(),this.Ai=[]}f.prototype.set.call(this,c,h);switch(c){case "enabledInCardboard":this.set("enabledInVR", 1173h);break;case "effect":case "rollOverEffect":case "areas":this.sNa()}};a.prototype.sNa=function(){this.get("effect")&&this.get("effect").bind(k.cv,this.Kua,this,!0);this.get("rollOverEffect")&&this.get("rollOverEffect").bind(k.cv,this.Wva,this,!0);
1173this.get("areas",[]).forEach(function(c){c.bind(l.Dc,this.zua,this,!0);c.bind(l.Jb,this.yua,this,!0)}.bind(this))};a.prototype.$Xa=function(){this.get("effect")&&this.get("effect").unbind(k.cv,this.Kua,this,!0);this.get("rollOverEffect")&&this.get("rollOverEffect").unbind(k.cv, 1174this.Wva,this,!0);this.get("areas",[]).forEach(function(c){c.unbind(l.Dc,this.zua,this,!0);c.unbind(l.Jb,this.yua,this,!0)}.bind(this))};a.prototype.zua=function(c){0>this.Ai.indexOf(c.source)&&(this.Ai.push(c.source),1==this.Ai.length&&this.EZ())};a.prototype.yua=function(c){c=this.Ai.indexOf(c.source);0<=c&&(this.Ai.splice(c,1),0==this.Ai.length&&this.Wq())};a.prototype.EZ=function(){var c=this.get("effect"),h=this.get("rollOverEffect");h&&(c&&0<c.jl()?c.reverse():h.play())};a.prototype.Wq=function(){var c= 1175this.get("rollOverEffect");if(c){var h=this.get("effect");0<c.jl()?c.reverse():h&&h.get("loop")&&h.play()}};a.prototype.Kua=function(){if(0<this.Ai.length){var c=this.get("rollOverEffect");c&&(this.get("effect").stop(),c.play())}};a.prototype.Wva=function(){if(0==this.Ai.length){this.get("rollOverEffect").stop();var c=this.get("effect");c&&c.get("loop")&&c.play()}};a.prototype.sj=function(){var c=this.get("effect");c&&c.play()};a.prototype.rj=function(){var c=this.get("effect");c&&c.stop();(c=this.get("rollOverEffect"))&& 1176c.stop()};return a});define("nh",["require","oj","cW"],function(a){var f=a("oj"),l=a("cW");return f.define("FlatHotspotPanoramaOverlay",l,function(){l.call(this)})});define("v",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("HotspotPanoramaOverlayArea",f,function(){f.call(this);this.set("displayTooltipInTouchScreens",!0)})});define("fR",["require","oj","v"],function(a){var f=a("oj"),l=a("v");return f.define("FlatHotspotPanoramaOverlayArea",l,function(){l.call(this)})}); 1177define("iu",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("QuadPanoramaOverlayPlaybackPosition",f,function(l,m,k){f.call(this);void 0!==l&&this.set("vertices",l);this.set("opacity",void 0!==m?m:1);void 0!==k&&this.set("timestamp",k)})}); 1178define("en",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("FlatPanoramaOverlayPlaybackPosition",f,function(l,m,k,c,h){f.call(this);void 0!==l&&this.set("yaw",l);void 0!==m&&this.set("pitch",m);void 0!==k&&this.set("roll",k);this.set("opacity",void 0!==c?c:1);void 0!==h&&this.set("timestamp",h)})}); 1179define("gC",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PanoramaOverlayPlaybackPosition",f,function(l,m,k,c,h,g,b,d,e){f.call(this);void 0!==l&&this.set("yaw",l);void 0!==m&&this.set("pitch",m);void 0!==k&&this.set("rotationX",k);void 0!==c&&this.set("rotationY",c);void 0!==h&&this.set("roll",h);void 0!==g&&this.set("hfov",g);void 0!==b&&this.set("vfov",b);this.set("opacity",void 0!==d?d:1);void 0!==e&&this.set("timestamp",e)})}); 1180define("cM",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PanoramaPoint",f,function(l,m){f.call(this);this.set("yaw",l);this.set("pitch",m)})}); 1181define("U",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PopupPanoramaOverlayPlaybackPosition",f,function(l,m,k,c,h,g,b){f.call(this);void 0!==l&&this.set("yaw",l);void 0!==m&&this.set("pitch",m);void 0!==k&&this.set("rotationX",k);void 0!==c&&this.set("rotationY",c);void 0!==h&&this.set("rotationZ",h);void 0!==g&&this.set("hfov",g);void 0!==b&&this.set("timestamp",b)})}); 1182define("kP","require mu iu en gC cM U".split(" "),function(a){var f=a("mu"),l=a("iu"),m=a("en"),k=a("gC"),c=a("cM"),h=a("U");return{w5a:function(g){return this.MX(g,this.TRa)},yia:function(g){return this.MX(g,this.wXa)},V5a:function(g){return this.MX(g,this.DXa)},zia:function(g){return this.MX(g,this.NXa)},TRa:function(g){return new m(f.prototype.get.call(g,"yaw",0),f.prototype.get.call(g,"pitch",0),f.prototype.get.call(g,"roll",0),f.prototype.get.call(g,"opacity",1),0)},NXa:function(g){var b=f.prototype.get.call(g, 1183"vertices",[null,null,null,null]);return new l([b[0]||new c(0,0),b[1]||new c(0,0),b[2]||new c(0,0),b[3]||new c(0,0)],f.prototype.get.call(g,"opacity",1),0)},wXa:function(g){function b(d,e){return f.prototype.get.call(g,d,e)}return new k(b("yaw",0),b("pitch",0),b("rotationX",0),b("rotationY",0),b("roll",0),b("hfov",void 0===b("vfov")?45:void 0),b("vfov"),b("opacity",1),0)},DXa:function(g){function b(d,e){return f.prototype.get.call(g,d,e)}return new h(b("yaw",0),b("pitch",0),b("rotationX",0),b("rotationY", 11840),b("rotationZ",0),b("hfov",45),0)},MX:function(g,b){var d=f.prototype.get.call(g,"playbackPositions")||[];return 0<d.length?d.slice().sort(function(e,n){return e.get("timestamp")-n.get("timestamp")||d.indexOf(e)-d.indexOf(n)}):[b(g)]}}}); 1185define("jM",["require","mu","pw","oj","kP"],function(a){var f=a("mu"),l=a("pw"),m=a("oj"),k=a("kP");a=m.define("FlatHotspotPanoramaOverlayImageBase",f,function(){f.call(this);this.sd=void 0});a.prototype.get=function(c,h){switch(c){case "playbackPositions":return void 0===this.sd&&(this.sd=k.w5a(this)),this.sd}return f.prototype.get.call(this,c,h)};a.prototype.set=function(c,h){var g=!1;switch(c){case "opacity":case "distance":case "pitch":case "roll":case "yaw":case "playbackPositions":this.sd=void 0, 1186g=!0}f.prototype.set.call(this,c,h);g&&"playbackPositions"!=c&&this.trigger(l.F("playbackPositions"))};return a});
1186define("r",["require","oj","jM"],function(a){var f=a("oj"),l=a("jM");return f.define("FlatHotspotPanoramaOverlayImage",l,function(){l.call(this)})});define("ei",["require","oj","jM"],function(a){var f=a("oj"),l=a("jM");return f.define("FlatHotspotPanoramaOverlayMap",l,function(){l.call(this)})}); 1187define("pl",["require","oj","gq"],function(a){var f=a("oj"),l=a("gq");return f.define("FlyOverModel3DCamera",l,function(){l.call(this)})}); 1188define("nw",["require","mu","pw","oj","kP"],function(a){var f=a("mu"),l=a("pw"),m=a("oj"),k=a("kP");a=m.define("FramePanoramaOverlay",f,function(){f.call(this);this.sd=void 0});a.prototype.set=function(c,h){var g=!1;switch(c){case "hfov":case "pitch":case "rotationX":case "rotationY":case "roll":case "vfov":case "yaw":case "playbackPositions":this.sd=void 0,g=!0}f.prototype.set.call(this,c,h);g&&"playbackPositions"!=c&&this.trigger(l.F("playbackPositions"))};a.prototype.get=function(c,h){switch(c){case "playbackPositions":return void 0=== 1189this.sd&&(this.sd=k.yia(this)),this.sd}return f.prototype.get.call(this,c,h)};return a});define("ks",["require","mu","oj"],function(a){var f=a("mu");a=a("oj").define("Model3DResource",f,function(){f.call(this)});a.prototype.get=function(l,m){switch(l){case "levels":m=[this];break;case "url":for(var k=f.prototype.get.call(this,l),c=this.get("levels"),h=0;c&&h<c.length&&void 0===k;h++){var g=c[h];g!=this&&(k=g.get(l))}return void 0!==k?k:m}return f.prototype.get.call(this,l,m)};return a}); 1190define("cy",["require","ks","oj"],function(a){var f=a("ks");return a("oj").define("TDTilesModel3DResource",f,function(){f.call(this)})}); 1191define("mS",["require","mu","oj"],function(a){var f=a("mu");a=a("oj").define("Model3DResourceLevel",f,function(){f.call(this)});a.MV="mobile";a.prototype.get=function(l,m){switch(l){case "levels":m=[this];break;case "url":for(var k=f.prototype.get.call(this,l),c=this.get("levels"),h=0;c&&h<c.length&&void 0===k;h++){var g=c[h];g!=this&&(k=g.get(l))}return void 0!==k?k:m}return f.prototype.get.call(this,l,m)};return a}); 1192define("df",["require","cy","mS","oj"],function(a){var f=a("cy"),l=a("mS");a=a("oj").define("GoogleMaps3DTilesModel3DResource",f,function(){f.call(this)});a.prototype.set=function(c,h){f.prototype.set.call(this,c,h);switch(c){case "latitude":case "longitude":this.wf();break;case "apiKey":this.z1a()}};a.prototype.wf=function(){var c=this.get("latitude"),h=this.get("longitude");if(void 0!==c&&void 0!==h){c=this.Qra(c,h);h=(new THREE.Vector3).crossVectors(c,(new THREE.Vector3).crossVectors(this.Qra(90, 11930),c));var g=new THREE.Vector3(0,0,0);h=(new THREE.Matrix4).lookAt(c,g,h).invert();h=(new THREE.Matrix4).makeRotationX(-Math.PI/2).multiply(h);h=(new THREE.Euler).setFromRotationMatrix(h,"XYZ");this.set("rotationOrder",h.order);this.set("rotationX",h.x*k);this.set("rotationY",h.y*k);this.set("rotationZ",h.z*k);this.set("positionX",-c.x);this.set("positionY",-c.y);this.set("positionZ",-c.z)}};a.prototype.Qra=function(c,h){c*=m;h*=m;var g=1/298.257223563;const b=Math.sin(c);c=Math.cos(c);g=2*g-g*g; 1194const d=6378137/Math.sqrt(1-g*b*b);return new THREE.Vector3((d+0)*c*Math.cos(h),(d+0)*c*Math.sin(h),d*(1-g)*b)};a.prototype.z1a=function(){var c=this.get("apiKey");if(void 0!==c){var h=new l;h.set("url","https://tile.googleapis.com/v1/3dtiles/root.json?key="+c);this.set("levels",[h])}};var m=Math.PI/180,k=180/Math.PI;return a}); 1195define("dw",["require","es","lQ","oP","d"],function(a){var f=a("es"),l=a("lQ"),m=a("oP");a=a("d");var k=l.extend(m,function(){m.call(this)});k.Fc={layout:a.cz};f.defaults(k.Fc,m.Fc);k.prototype.yb=function(){this.Ao(k.Fc)};return k});define("kp",["require","oj","dw"],function(a){var f=a("oj"),l=a("dw");return f.define("GridContainer",l,function(){l.call(this)})}); 1196define("jV","require es jquery.mod cI gD pw iw mQ hh bA lQ".split(" "),function(a){function f(){}function l(q){this.$8a=q;this.items=[];this.priority=0}var m=a("es");a("jquery.mod");var k=a("cI"),c=a("gD"),h=a("pw"),g=a("iw"),b=a("mQ"),d=a("hh"),e=a("bA"),n=a("lQ").extend(c,function(q){c.call(this);this.url=q;this.hka=this.priority=0;this.status=n.l7;this.Ny=null});n.prototype.tja=function(q){this.hka+=q};n.prototype.NL=function(q){this.priority+=q};n.prototype.start=function(){this.status=n.LV;d.p5(this.url)? 1197this.nA():this.Ho=e.add(this.url,g.L5,this.LYa.bind(this),this.Apa.bind(this))};n.prototype.LYa=function(){this.Ny=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");this.Ny.open("GET",this.url);this.Ny.onreadystatechange=function(){3<this.Ny.readyState&&this.nA()}.bind(this);this.Ny.send()};n.prototype.Apa=function(){this.Ny&&(this.Ny.abort(),this.Ny=null)};n.prototype.stop=function(){this.status==n.LV&&(this.status=n.l7,this.Apa(),this.Ho&&this.Ho.cancel())};n.prototype.nA= 1198function(){this.Ny=null;this.Ho&&(this.Ho.loaded(),this.Ho=null);this.status=n.xMa;this.trigger(new k(h.da))};n.l7="not loaded";n.LV="loading";n.xMa="loaded";l.prototype.V2a=function(q){q.forEach(function(p){0>this.items.indexOf(p)&&(this.items.push(p),p.NL(this.priority),p.tja(1))}.bind(this))};l.prototype.l9a=function(q){var p=this.items;this.items=[];p.forEach(function(r){0>q.indexOf(r)?this.items.push(r):(r.NL(-this.priority),r.tja(-1))}.bind(this))};
1198l.prototype.b9a=function(){this.items.forEach(function(q){q.NL(-this.priority); 1199q.tja(-1)}.bind(this));this.items=[];this.priority=0};l.prototype.NL=function(q){this.priority+=q;this.items.forEach(function(p){p.NL(q)})};f.Ah=[];f.hxa=[];f.bSa=0;f.$Aa=function(q,p){this.B_(q).V2a(p.map(function(r){return this.Aa(r)}.bind(this)));this.q0();this.oa()};f.u9a=function(q,p){this.B_(q).l9a(p.map(function(r){return this.Aa(r)}.bind(this)));this.q0();this.oa()};f.c9a=function(q){this.B_(q).b9a();this.q0();this.oa()};f.I3=function(q,p){this.B_(q).NL(p);this.q0();this.oa()};f.q0=function(){this.Ah.sort(function(q, 1200p){return p.priority-q.priority})};f.oa=function(q){if(this.enabled()&&(q||!this.Wt))if(q){this.Wt&&clearTimeout(this.Wt);this.Wt=null;q=this.bTa();var p=this.cTa();m(q).difference(p).forEach(function(r){r.stop()});m(p).difference(q).forEach(function(r){r.start()})}else this.Wt=setTimeout(function(){this.Wt=null;this.oa(!0)}.bind(this),1E3)};f.Wt=null;f.bTa=function(){return this.Ah.filter(function(q){return q.status==n.LV})};f.cTa=function(){for(var q=this.dTa(),p=[],r=0;r<this.Ah.length&&p.length< 1201q;r++){var t=this.Ah[r];0<t.hka&&(t.status==n.l7||t.status==n.LV)&&p.push(t)}return p};f.dTa=function(){return 0<this.bSa?0:5};f.B_=function(q){var p=m(this.hxa).find(function(r){return r.$8a==q});p||(p=new l(q),this.hxa.push(p));return p};f.Aa=function(q){var p=m(this.Ah).find(function(r){return r.url==q});p||(p=new n(q),p.bind(h.da,this.oa,this),this.Ah.push(p));return p};f.enabled=function(q){if(void 0===q)return f.ZQa||f.$Qa?!1:void 0!==f.l$?f.l$:f.W;f.W=q};f.W=!0;f.fla=function(q){f.l$=q.get(TDV.PlayerSettings.BACKGROUND_PRELOAD_ENABLED)}; 1202f.l$=void 0;f.$Qa=b.lg("disable-background-preload",!1);f.ZQa=!1;return f});
1202define("ez",["require","lQ","mu","oj","jV"],function(a){var f=a("lQ"),l=a("mu"),m=a("oj"),k=a("jV");a=m.define("Media",l,function(){l.call(this);this.fga=f.zp(this.fga,this)});a.prototype.fga=function(){k.$Aa(this,this.su())};a.prototype.su=function(){return[]};a.prototype.q9a=function(){k.c9a(this)};a.prototype.set=function(c,h){l.prototype.set.call(this,c,h);this.fga()};return a}); 1203define("fn",["require","oj","ez"],function(a){var f=a("oj"),l=a("ez");a=f.define("Panorama",l,function(){l.call(this);this.zY=this.gK=void 0;this.set("minFaceSize",void 0)});a.prototype.get=function(m,k){switch(m){case "overlays":return this.haa();case "frames":return this.dsa();case "partial":if(359.9>this.get("hfov"))return!0}return l.prototype.get.call(this,m,k)};a.prototype.set=function(m,k){switch(m){case "cardboardMenu":this.set("vrMenu",k)}l.prototype.set.call(this,m,k)};a.prototype.haa=function(){var m= 1204l.prototype.get.call(this,"overlays");m||(m=[]);return this.Qea(m)};a.prototype.Qea=function(m){if(void 0===this.gK||this.zY!=m){var k=function(h){return f.Ja("PopupPanoramaOverlay",h)},c=function(h){return f.Ja("LensFlarePanoramaOverlay",h)};this.zY=m;this.gK=[].concat(m.filter(function(h){return!(k(h)||c(h))}),m.filter(c),m.filter(k))}return this.gK};a.prototype.fEa=function(){return 0<this.get("overlays").filter(function(m){return f.Ja("TripodCapPanoramaOverlay",m)}).length};a.prototype.WDa=function(){return 0< 1205this.get("overlays").filter(function(m){return f.Ja("CeilingCapPanoramaOverlay",m)}).length};a.prototype.vEa=function(){if(!this.Qia())return!1;var m=this.get("pitch",0),k=this.get("vfov",180);if(179.9<=k)return!0;var c=this.WDa()?90:m+.5*k;m=this.fEa()?-90:m-.5*k;return 179.9<=c-m?!0:!1};a.prototype.Qia=function(){return 359.9<=this.get("hfov")&&!this.get("partial")};a.prototype.Dm=function(){var m=this.dsa();return 0<m.length&&m[0].Dm()};a.prototype.YS=function(){return 0};a.prototype.dsa=function(){var m= 1206l.prototype.get.call(this,"frames",[]);m.forEach(function(k){k.j3a(this)}.bind(this));return m};return a});define("nR",["require","oj","fn"],function(a){var f=a("oj"),l=a("fn");a=f.define("HDRPanorama",l,function(){l.call(this)});a.prototype.YS=function(){var m=this.get("frames")||[];return Math.floor((m.length-1)/2)};return a});
1206define("bb",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("HorizonGridModel3DObject",l,function(){l.call(this)})}); 1207define("mz",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("HotspotMapOverlayArea",f,function(){f.call(this)})}); 1208define("mD",["require","mu","oj"],function(a){var f=a("mu"),l=a("oj").define("ImageResourceLevel",f,function(){f.call(this)});l.prototype.get=function(m,k){switch(m){case "tags":return(m=f.prototype.get.call(this,m))||(m=[]),Array.isArray(m)||(m=[m]),0>m.indexOf(l.Ps)&&f.prototype.get.call(this,"grayscale")&&(m=m.concat([l.Ps])),m}return f.prototype.get.call(this,m,k)};l.prototype.eEa=function(m){return 0<=this.get("tags").indexOf(m)};l.Ps="preload";l.MV="mobile";l.Hna="ipadpro";l.NV="mobilevr";l.q7= 1209"mobilevr2gen";l.r7="ondemand";return l}); 1210define("gv",["require","mD","w","mQ"],function(a){var f=a("mD"),l=a("w"),m=a("mQ");return{Sr:function(k){return this.kk(k,"load")},ZF:function(k){return this.kk(k,"preload")},tL:function(k){return this.Sr(k)!=this.ZF(k)},kk:function(k,c){k=k.get("levels")||[];var h=this.mSa(k);h=this.zTa(c,h);k=this.NRa(k,c);(c=this.lsa(k,h[0],h[1],this.yTa(c)))||(c=this.lsa(k,h[0],h[1],void 0));return c},NRa:function(k,c){"preload"==c?k=this.iO(k,f.Ps):"load"==c&&(k=this.MRa(k,f.Ps));l.ey()&&(k=this.iO(k,f.Hna)); 1211if(l.q3()||l.r3())k=this.iO(k,f.q7);l.Df()&&(k=this.iO(k,f.NV));l.pb()&&(k=this.iO(k,f.MV));return k},mSa:function(k){if(0==k.length)return 1;k.sort(function(c,h){return h.get("width")-c.get("width")});return k[0].get("width")/k[0].get("height")},zTa:function(k,c){if("preload"==k)return[0,0];k=1E4;this.VRa()||(l.Df()?k=2048:l.ey()?k=2048:l.pb()&&(k=1024));return 1>c?[k*c,k]:[k,k/c]},yTa:function(k){if("load"==k)return!1},VRa:function(){return l.ey()&&m.lg("recent_ipad_use_max_res",!1)},iO:function(k, 1212c){var h=k.filter(function(g){return g.eEa(c)});0==h.length&&(h=k);return h},MRa:function(k,c){var h=k.filter(function(g){return!g.eEa(c)});0==h.length&&(h=k);return h},lsa:function(k,c,h,g){function b(d){return Math.abs(d.get("width")*d.get("height")-c*h)}k=k.filter(function(d){return void 0!==g&&g!=d.get("grayscale",!1)?!1:!0});if(0==k.length)return null;k.sort(function(d,e){return b(d)-b(e)});return k[0]}}}); 1213define("L",["require","mu","oj","gv"],function(a){var f=a("mu"),l=a("oj"),m=a("gv");a=l.define("HotspotMapOverlayImageBase",f,function(){f.call(this)});a.prototype.Sr=function(){return this.get("image")?m.Sr(this.get("image")):null};a.prototype.ZF=function(){return this.get("image")?m.ZF(this.get("image")):null};return a});define("lR",["require","lQ","cI"],function(a){var f=a("lQ"),l=a("cI");return f.extend(l,function(m,k){l.call(this,m);this.Tg=k})}); 1214define("cA",["require","lQ","mu","pw","lR"],function(a){var f=a("lQ"),l=a("mu"),m=a("pw"),k=a("lR");a=f.extend(l,function(){l.call(this);this.UR=[];this.kg=void 0;this.C="initial"});a.prototype.uu=function(){return this.UR};a.prototype.oM=function(c){this.UR!=c&&(this.UR=c,this.nA=this.kg=void 0)};a.prototype.M$a=function(c){this.kg!==c&&(this.C="loading",this.kg=c,this.trigger(new k(m.kc,this.kg)))};a.prototype.AU=function(){"loaded"!==this.C&&(this.C="loaded",this.trigger(m.da))};a.prototype.h$a= 1215function(){"loaded"!==this.C&&(this.C="error",this.trigger(m.xc))};return a});define("dG",["require","lQ","cA"],function(a){var f=a("lQ"),l=a("cA");a=f.extend(l,function(m){l.call(this);this.nf=m;this.v=void 0});a.prototype.getType=function(){return this.nf};a.prototype.C6a=function(m){return void 0!==this.v&&this.v===m.v};a.Rna="map";a.Sna="overlay";return a}); 1216define("kv",["require","lQ","dG"],function(a){var f=a("lQ"),l=a("dG");a=f.extend(l,function(m,k,c){l.call(this,l.Sna);this.lXa=m;this.Na=k;this.Qa=c});a.prototype.getX=function(){return this.Na};a.prototype.getY=function(){return this.Qa};a.Pna="image";a.Ona="fov";return a}); 1217define("mx",["require","lQ","kv"],function(a){var f=a("lQ"),l=a("kv");a=f.extend(l,function(m,k,c,h,g,b,d,e,n,q,p,r){l.call(this,l.Pna,c,h);this.v=m;this.Wd=k;this.Fxa=g;this.Gw=b;this.Hw=d;this.sa=e;this.wa=n;this.Of=q;this.Sl=p;this.vm=r;this.UR=[k]});a.prototype.Yi=function(){return this.Wd};a.prototype.De=function(){return this.sa};a.prototype.Te=function(){return this.wa};return a}); 1218define("hB",["require","oj","L","gv","mx"],function(a){var f=a("oj"),l=a("L"),m=a("gv"),k=a("mx");a=f.define("HotspotMapOverlayImage",l,function(){l.call(this);this.Cw=void 0});a.prototype.getItem=function(){return this.lk()};a.prototype.lk=function(){void 0===this.Cw&&(this.Cw=this.Y1());return this.Cw};a.prototype.Y1=function(c){var h=this.get("image");return h?(h=m.Sr(h),new k(this,h.get("url"),this.get("x"),this.get("y"),c,this.get("offsetX"),this.get("offsetY"),this.get("width"),this.get("height"), 1219this.get("scaleMode"),this.get("horizontalAlign"),this.get("verticalAlign"))):null};return a});define("O",["require","oj","L"],function(a){var f=a("oj"),l=a("L");return f.define("HotspotMapOverlayMap",l,function(){l.call(this)})}); 1220define("gB",["require","mu","pw","oj","kP"],function(a){var f=a("mu"),l=a("pw"),m=a("oj"),k=a("kP");a=m.define("HotspotPanoramaOverlayImageBase",f,function(){f.call(this);this.sd=void 0});a.prototype.get=function(c,h){switch(c){case "playbackPositions":return void 0===this.sd&&(this.sd=k.yia(this)),this.sd}return f.prototype.get.call(this,c,h)};a.prototype.set=function(c,h){var g=!1;switch(c){case "distance":case "hfov":case "vfov":case "pitch":case "rotationX":case "rotationY":case "roll":case "yaw":case "opacity":case "playbackPositions":this.sd= 1221void 0,g=!0}f.prototype.set.call(this,c,h);g&&"playbackPositions"!=c&&this.trigger(l.F("playbackPositions"))};return a});define("mf",["require","oj","gB"],function(a){var f=a("oj"),l=a("gB");return f.define("HotspotPanoramaOverlayImage",l,function(){l.call(this)})});define("Y",["require","oj","gB"],function(a){var f=a("oj"),l=a("gB");return f.define("HotspotPanoramaOverlayMap",l,function(){l.call(this)})}); 1222define("lS",["require"],function(){function a(e){var n={};e=e.split(",");for(var q=0;q<e.length;q++)n[e[q]]=!0;return n}var f=/^<([-A-Za-z0-9_]+:?[-A-Za-z0-9_]*)((?:\s+[-A-Za-z0-9_]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,l=/^<\/([-A-Za-z0-9_]+:?[-A-Za-z0-9_]*)[^>]*>/,m=/([-A-Za-z0-9_]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g,k=a("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"),c=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"), 1223h=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"),g=a("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"),b=a("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),d=a("script,style");return function(e,n){function q(w,x,y,z){x=x.toLowerCase();if(c[x])for(;r.last()&&h[r.last()];)p("",r.last());g[x]&& 1224r.last()==x&&p("",x);(z=k[x]||!!z)||r.push(x);if(n.start){var B=[];y.replace(m,function(E,I,A,C,J){E=A?A:C?C:J?J:b[I]?I:"";B.push({name:I,value:E,Wha:E.replace(/(^|[^\\])"/g,'$1\\"')})});n.start&&n.start(x,B,z)}}function p(w,x){if(x)for(x=x.toLowerCase(),w=r.length-1;0<=w&&r[w]!=x;w--);else w=0;if(0<=w){for(x=r.length-1;x>=w;x--)n.end&&n.end(r[x]);r.length=w}}var r=[],t=e;for(r.last=function(){return this[this.length-1]};e;){var u=!0;if(r.last()&&d[r.last()])e=e.replace(new RegExp("(.*?)</"+r.last()+ 1225"[^>]*>"),function(w,x){x=x.replace(/\x3c!--(.*?)--\x3e/g,"$1").replace(/<!\[CDATA\[(.*?)]]\x3e/g,"$1");n.uS&&n.uS(x);return""}),p("",r.last());else{if(0==e.indexOf("\x3c!--")){var v=e.indexOf("--\x3e");0<=v&&(n.R3a&&n.R3a(e.substring(4,v)),e=e.substring(v+3),u=!1)}else if(0==e.indexOf("</")){if(v=e.match(l))e=e.substring(v[0].length),v[0].replace(l,p),u=!1}else 0==e.indexOf("<")&&(v=e.match(f))&&(e=e.substring(v[0].length),v[0].replace(f,q),u=!1);u&&(v=e.indexOf("<"),u=0>v?e:e.substring(0,v),e=0> 1226v?"":e.substring(v),n.uS&&n.uS(u))}if(e==t)throw"Parse Error: "+e;t=e}p()}}); 1227define("fJ","require jquery.mod es lQ pw cI gD w lS".split(" "),function(a){var f=a("jquery.mod");a("es");var l=a("lQ"),m=a("pw"),k=a("cI"),c=a("gD"),h=a("w"),g=a("lS"),b=l.extend(c,function(d){c.call(this);this.If=f(d);this.MQ=[];this.Nz=null});b.prototype.Z6a=function(d){d&&0<=d.toLowerCase().indexOf("<script")?h.OK()==h.KM?this.yUa(d):this.xUa(d):this.wUa(d)};b.prototype.wUa=function(d){this.If.empty();d&&this.If.append(d);this.vza()};b.prototype.yUa=function(d){this.If.empty();var e=this.If,n= 1228null,q=[],p=null;new g(d,{start:function(r,t,u){if("script"==r){u=void 0;for(var v=0;v<t.length&&void 0===u;v++){var w=t[v];"src"==w.name&&(u=w.value)}p={parent:e,previousSibling:n,src:u,content:""}}else{var x={};for(v=0;v<t.length;v++)w=t[v],x[w.name]=w.value;t=f("<"+r+"/>");t.attr(x);e.append(t);u?n=t:(e=t,n=null)}},uS:function(r){p?p.content+=r:e.append(r)},end:function(r){"script"==r?(q.push(p),p=null):(n=e,e=e.parent())}});this.MQ=q;this.EY()};b.prototype.xUa=function(d){function e(){q++;return n+ 1229q}this.If.empty();var n="fragment_"+l.Y8a(6)+"_",q=0,p=e(),r=[p],t=void 0,u=[],v=null,w="";
1229new g(d,{start:function(z,B,E){if("script"==z){E=void 0;for(z=0;z<B.length&&void 0===E;z++){var I=B[z];"src"==I.name&&(E=I.value)}v={parentClsName:r[r.length-1],previousSiblingClsName:t,src:E,content:""}}else{w+="<"+z;var A=e(),C=!1;for(z=0;z<B.length;z++)I=B[z],"class"==I.name&&(I.Wha+=" "+A,C=!0),w+=" "+I.name+'="'+I.Wha+'"';C||(w+=' class="'+A+'"');E?(w+="/>",t=A):(w+=">",r.push(A),t=void 0)}},uS:function(z){v? 1230v.content+=z:w+=z},end:function(z){"script"==z?(u.push(v),v=null):(t=r[r.length-1],r.pop())}});this.If.get(0).innerHTML=w;this.If.addClass(p);for(d=0;d<u.length;d++){var x=u[d],y=x.parentClsName;delete x.parentClsName;t=x.previousSiblingClsName;delete x.previousSiblingClsName;x.parent=f("."+y);x.previousSibling=t?f("."+t):null}this.If.removeClass(p);this.MQ=u;this.EY()};b.prototype.EY=function(){if(!this.Nz)if(0<this.MQ.length){this.Nz=this.MQ[0];this.MQ.splice(0,1);var d=this.Nz.src;if(d){var e= 1231this;b.mVa(d,function(){e.yta()},function(){e.tVa()})}else{var n=this.Nz.parent;d=this.Nz.previousSibling;var q=d?d.next():n.children(":first");d=document.write;document.write=q.length?function(p){q.before(p)}:function(p){n.append(p)};f.globalEval(this.Nz.content);document.write=d;this.yta()}}else this.vza()};b.prototype.tVa=function(){this.Nz=null;this.EY()};b.prototype.yta=function(){this.Nz=null;this.EY()};b.prototype.vza=function(){this.trigger(new k(m.Gb))};b.wta={};b.mVa=function(d,e,n){b.wta[d]? 1232e.call(window):f.ajax({url:d,async:!1,dataType:"script",error:n,success:function(){b.wta[d]=!0;e.call(window)}})};return b}); 1233define("no",["require","lQ","pw","cI","gD"],function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD");a=f.extend(k,function(c,h){k.call(this);this.HUa=c;this.W=h;this.xj=null});a.prototype.bind=function(){var c=k.prototype.bind.apply(this,arguments);this.RR();return c};a.prototype.unbind=function(){var c=k.prototype.unbind.apply(this,arguments);this.RR();return c};a.prototype.start=function(){this.W=!0;this.RR()};a.prototype.stop=function(){this.W=!1;this.RR()};a.prototype.bQ=function(){this.trigger(new m(l.Ie))}; 1234a.prototype.RR=function(){if(this.W&&this.Z2(l.Ie)){if(null==this.xj){var c=this;this.xj=setTimeout(function(){c.xj=null;c.bQ();c.RR()},this.HUa)}}else null!=this.xj&&(clearTimeout(this.xj),this.xj=null)};return a}); 1235define("lP","require jquery.mod es lQ pw iL nA e fJ hR no".split(" "),function(a){var f=a("jquery.mod"),l=a("es"),m=a("lQ"),k=a("pw"),c=a("iL"),h=a("nA"),g=a("e"),b=a("fJ"),d=a("hR");a=a("no");var e=m.extend(g,function(){g.call(this);this.Qe("HTML");this.pD=e.SV;this.Rwa=this.Swa=0;this.Fya=(new Date).getTime();this.hX=this.Rj=null;this.SH=this.SH.bind(this);this.d8=[]});e.prototype.yb=function(){g.prototype.yb.call(this);this.h("content");this.h("horizontalAlign",h.ab);this.h("verticalAlign",h.qe); 1236this.h("fontFamily");this.h("fontSize");this.h("fontColor");this.h("fontWeight");this.h("fontStyle");this.h("textAlign");this.h("textDecoration");this.h("textShadowBlurRadius",3);this.h("textShadowColor","#000000");this.h("textShadowHorizontalLength",0);this.h("textShadowOpacity",0);this.h("textShadowVerticalLength",0)};e.prototype.Ht=function(q){this.kb&&c.get(this.kb).e9a(this.SH);g.prototype.Ht.call(this,q);this.kb&&(c.get(this.kb).J2a(this.SH),c.get(this.kb).RK(this.SH))};e.prototype.Hb=function(){g.prototype.Hb.call(this); 1237if(!this.hX){this.Rj=document.createElement("div");this.hX=f(this.Rj);this.T9({position:"absolute",display:"inline",left:0,top:0,"box-sizing":"border-box"});var q=this.Yb();q.kM(!1);q.append(this.hX);this.Isa=new b(this.hX);this.Isa.bind(k.Gb,this.lUa,this,!0);this.bind(k.tc,this.Jsa,this)}};e.prototype.bb=function(){var q={},p=!1;this.L("visible")&&(p=!0);this.L("content")&&(p=this.B("content"),this.Isa.Z6a(p),this.S("content"),p=!0);if(this.L("width")||this.L("height"))p=!0;this.L("fontFamily")&& 1238(p=this.B("fontFamily"),l(p).isString()||(p=""),q.fontFamily=d.Tx(p),this.S("fontFamily"),p=!0);this.L("fontSize")&&(p=this.B("fontSize"),l(p).isNumber()?p+="px":l(p).isString()||(p=""),q.fontSize=p,this.S("fontSize"),p=!0);this.L("fontColor")&&(p=this.B("fontColor"),l(p).isString()||(p=""),q.color=p,this.S("fontColor"),p=!0);if(this.L("fontWeight")){p=this.B("fontWeight");switch(p){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; 1239default:p="normal"}q.fontWeight=p;this.S("fontWeight");p=!0}if(this.L("fontStyle")){p=this.B("fontStyle");switch(p){case "italic":case "normal":break;default:p="normal"}q.fontStyle=p;this.S("fontStyle");p=!0}if(this.L("textDecoration")){p=this.B("textDecoration");switch(p){case "underline":case "overline":case "line-through":case "none":break;default:p="none"}q.textDecoration=p;this.S("textDecoration");p=!0}
1239if(this.L("textAlign")){p=this.B("textAlign");switch(p){case "left":case "right":case "center":case "justify":break; 1240default:p=""}q["text-align"]=p;this.S("textAlign");p=!0}var r=["textShadowColor","textShadowHorizontalLength","textShadowVerticalLength","textShadowBlurRadius","textShadowOpacity"];if(l(r).any(function(u){return this.L(u)},this)){var t={};l(r).each(function(u){t[u]=this.B(u);this.S(u)},this);q["-moz-text-shadow"]=q["-webkit-text-shadow"]=q["text-shadow"]=[t.textShadowHorizontalLength+"px",t.textShadowVerticalLength+"px",t.textShadowBlurRadius+"px","rgba("+parseInt("0x"+t.textShadowColor.substr(1, 12412))+", "+parseInt("0x"+t.textShadowColor.substr(3,2))+", "+parseInt("0x"+t.textShadowColor.substr(5,2))+", "+t.textShadowOpacity+")"].join(" ");r=0==t.textShadowVerticalLength&&0==this.B("textShadowHorizontalLength")?135:45*Math.round(4*Math.atan2(t.textShadowHorizontalLength,-t.textShadowVerticalLength)/Math.PI);q.filter="progid:DXImageTransform.Microsoft.Shadow(color=#"+("00"+(255*t.textShadowOpacity).toString(16)).slice(-2)+t.textShadowColor.substr(1,6)+",direction="+r+")"}l(["paddingTop","paddingRight", 1242"paddingBottom","paddingLeft"]).any(function(u){return this.L(u)},this)&&(p=!0);this.T9(q);g.prototype.bb.call(this);p&&this.cua()};e.prototype.cua=function(){this.Jsa();this.hc();this.B("visible")&&this.B("content")?this.QQ(e.boa):this.QQ(e.SV)};e.prototype.ZA=function(q,p){for(p=q.target;p&&"A"!=p.tagName&&"BUTTON"!=p.tagName;)p=p.parentElement;p=!p;g.prototype.ZA.call(this,q,p)};e.prototype.Fw=function(){g.prototype.Fw.call(this);var q=this.Yb();this.$l=this.Rj.clientWidth+q.oL()+q.pL();this.Zl= 1243this.Rj.clientHeight+q.qL()+q.kL()};e.prototype.kya=function(q){this.jaa()!=q&&(this.Rj.style.paddingLeft=q+"px",this.hc())};e.prototype.jaa=function(){return parseInt(this.Rj.style.paddingLeft)||0};e.prototype.mya=function(q){this.laa()!=q&&(this.Rj.style.paddingTop=q+"px",this.hc())};e.prototype.laa=function(){return parseInt(this.Rj.style.paddingTop)||0};e.prototype.lya=function(q){this.kaa!=q&&(this.Rj.style.paddingRight=q+"px",this.hc())};e.prototype.kaa=function(){return parseInt(this.Rj.style.paddingRight)|| 12440};e.prototype.jya=function(q){this.iaa()!=q&&(this.Rj.style.paddingBottom=q+"px",this.hc())};e.prototype.iaa=function(){return parseInt(this.Rj.style.paddingBottom)||0};e.prototype.lUa=function(){this.d8=Array.prototype.slice.call(this.Rj.querySelectorAll("*[style]")).map(function(q){var p={};p.E4a=q;p.style=q.getAttribute("style");return p}).filter(function(q){return n.test(q.style)}).map(function(q){for(var p=q.style,r=[];;){var t=n.exec(p);if(t)r.push(function(u){return function(){return u}}(p.substr(0, 1245t.index+1))),r.push(function(u,v){switch(v){case "vw":return function(w){return Math.round(w*u)+"px"};case "vh":return function(w,x){return Math.round(x*u)+"px"};case "vmin":return function(w,x,y){return Math.round(y*u)+"px"};case "vmax":return function(w,x,y){return Math.round(y*u)+"px"}}}(parseFloat(t[1]),t[3].toLowerCase())),p=p.substr(t.index+t[0].length);else return r.push(function(u){return function(){return u}}(p)),q.functions=r,q}});this.kb&&c.get(this.kb).RK(this.SH)};e.prototype.SH=function(q, 1246p,r,t){0!=this.d8.length&&(this.d8.forEach(function(u){var v=u.functions.map(function(w){return w(q,p,r,t)}).join("");u.E4a.setAttribute("style",v)}),this.cua())};e.prototype.Jsa=function(){var q={width:"auto",height:"auto"},p=this.Yb();if(!this.waa()){this.$l!=this.sa&&this.hc();var r=this.sa-(p.oL()+p.pL());0<r&&(q.width=r+"px")}this.Dsa()||(this.Zl!=this.wa&&this.hc(),p=this.wa-(p.qL()+p.kL()),0<p&&(q.height=p+"px"));this.T9(q)};e.prototype.Eua=function(){var q=this.Rj.clientWidth,p=this.Rj.clientHeight; 1247this.Swa!=q||this.Rwa!=p?(this.Swa=q,this.Rwa=p,this.hc(),this.QQ(e.boa)):(q=(new Date).getTime()-this.Fya,q>e.iNa?this.QQ(e.WMa):q>e.hNa&&this.QQ(e.VMa))};e.prototype.wYa=function(){this.Fya=(new Date).getTime()};e.prototype.QQ=function(q){this.pD==e.Icb&&this.wYa();this.pD!=q&&(this.pD!=e.SV&&e.Lpa[this.pD].unbind(k.Ie,this.Eua,this),this.pD=q,this.pD!=e.SV&&e.Lpa[this.pD].bind(k.Ie,this.Eua,this,!0))};e.prototype.T9=function(q){var p=this.Rj.style,r;for(r in q)p[r]=q[r]};var n=/[^\d]((\d*\.)?\d+)\s*(vmin|vmax|vw|vh)/i; 1248e.SV="stopped";e.WMa="slow";e.VMa="normal";e.boa="fast";e.iNa=3E4;e.hNa=5E3;e.Lpa={slow:new a(2E3,!0),normal:new a(500,!0),fast:new a(100,!0)};return e});define("kJ",["require","lP","oj"],function(a){var f=a("lP");return a("oj").define("HTML",f,function(){f.call(this)})});define("b",["require","es","lQ","oP","d"],function(a){var f=a("es"),l=a("lQ"),m=a("oP");a=a("d");var k=l.extend(m,function(){m.call(this)});k.Fc={layout:a.hV};f.defaults(k.Fc,m.Fc);k.prototype.yb=function(){this.Ao(k.Fc)};return k}); 1249define("jp",["require","lQ","ik","b","lP"],function(a){var f=a("lQ"),l=a("ik"),m=a("b"),k=a("lP");a=f.extend(m,function(){m.call(this);this.eA=null;this.set("contentOpaque",!0)});a.prototype.yb=function(){m.prototype.yb.call(this);this.h("overflow",l.fq);this.h("html")};a.prototype.Hb=function(){m.prototype.Hb.call(this);null==this.eA&&(this.eA=new k,this.eA.ra({left:0,toolTipDisabled:!0}),this.Ya(this.eA))};a.prototype.bb=function(){this.L("html")&&(this.eA.set("content",this.B("html")),this.S("html")); 1250this.uc(["paddingLeft","paddingTop","paddingRight","paddingBottom"],{},[this.eA],!0,!0);this.uc(["cursor"],{},[this.eA],!0,!1);m.prototype.bb.call(this);this.eA.set("width",this.waa()?void 0:"100%")};return a});define("bC",["require","jp","oj"],function(a){var f=a("jp");return a("oj").define("HTMLText",f,function(){f.call(this)})}); 1251define("mt","require jquery.mod lQ pw cI mQ hK bh mI hf ep nf".split(" "),function(a){function f(r,t,u){return function(v){var w="mouse"==t?this.Zz(v):this.RD(v);this.dta(w)?r.call(this,v):"release"==u?r.call(this,v):this.cSa(w,v)}}var l=a("jquery.mod"),m=a("lQ"),k=a("pw"),c=a("cI"),h=a("mQ"),g=a("hK"),b=a("bh"),d=a("mI"),e=a("hf"),n=a("ep"),q=a("nf"),p=h.Cj("debug");a=m.extend(q,function(){this.Qe("Button");q.call(this,3);this.set("ariaRole","button");this.set("autoRolledOver",!0);this.set("autoPressed", 1252!0);this.set("cursor",b.Je);this.set("scaleMode",d.Sh);this.Y8=document.createElement("canvas");this.Y8.width=1;this.Y8.height=1;this.Z8=this.Y8.getContext("2d");this.Z8.globalCompositeOperation="copy";this.D$=!1;this.bind(k.Jb,this.pUa,this)});a.prototype.yb=function(){q.prototype.yb.call(this);this.h("buttonGroup");this.h("mode",n.Ke);this.h("pressed");this.h("iconURL");this.h("transparencyActive");this.A("rollOverOpacity",e.aa,"opacity");this.A("rollOverIconURL",e.aa,"iconURL");this.A("pressedOpacity", 1253e.Ab,"opacity");this.A("pressedIconURL",e.Ab,"iconURL");this.A("pressedRollOverOpacity",e.jc,"opacity");this.A("pressedRollOverIconURL",e.jc,"iconURL")};a.prototype.L$=f(q.prototype.L$,"touch","capture");a.prototype.xra=f(q.prototype.hSa,"touch");a.prototype.zra=f(q.prototype.hSa,"touch","release");a.prototype.ufa=f(q.prototype.ufa,"touch","capture");a.prototype.tfa=f(q.prototype.tfa,"touch");a.prototype.ZA=f(q.prototype.ZA,"touch","release");a.prototype.cca=f(q.prototype.cca,"mouse","capture");a.prototype.gca= 1254function(r){var t=this.Zz(r);if(this.dta(t)||this.D$)q.prototype.gca.call(this,r),q.prototype.set.call(this,"cursor",this.Aqa);else{this.D$=!0;if(t=this.csa(t))l(t).trigger(this.Wpa(r)),r.preventDefault(),r.stopImmediatePropagation();"pointer"==this.Wra(t)?q.prototype.set.call(this,"cursor",b.Je):q.prototype.set.call(this,"cursor",b.Ie);this.D$=!1}};a.prototype.pUa=function(){q.prototype.set.call(this,"cursor",this.Aqa)};a.prototype.UY=f(q.prototype.UY,"mouse","release");a.prototype.dta=function(r){if(!this.ic)return!1; 1255if(this.get("transparencyActive"))return!0;var t=this.kb?this.kb.DA:1,u=this.ic.offset(),v=(r.IB-u.left)/t,w=this.ic.width();r=(r.JB-u.top)/t;t=this.ic.height();if(0<=v&&0<=r&&v<w&&r<t){if(p)return!0;v=v*this.yJ/w;w=r*this.xJ/t;this.Z8.drawImage(this.ic.get(0),v,w,1,1,0,0,1,1);if(0<this.Z8.getImageData(0,0,1,1).data[3])return!0}return!1};a.prototype.cSa=function(r,t){if(r=this.csa(r))l(r).trigger(this.Wpa(t)),t.preventDefault(),t.stopImmediatePropagation()};a.prototype.csa=function(r){this.je().style.pointerEvents= 1256"none";r=document.elementFromPoint(r.IB,r.JB);setTimeout(function(){this.je().style.pointerEvents=this.rsa()}.bind(this),0);return r};a.prototype.Wpa=function(r){return l.extend(l.Event(r.type),{originalEvent:r.originalEvent,wheelDelta:r.wheelDelta,detail:r.detail,which:1,clientX:r.clientX,clientY:r.clientY,pageX:r.pageX,pageY:r.pageY,screenX:r.screenX,screenY:r.screenY})};a.prototype.Wra=function(r){if(r){var t=r.style.cursor;"inherit"==t&&(t=this.Wra(r.parentElement))}else t="default";return t}; 1257a.prototype.yN=function(){this.get("pressed")?(this.set("pressed",!1),this.trigger(new c(k.Dl))):(this.set("pressed",!0),this.trigger(new c(k.Kj)))};a.prototype.set=function(r,t){"cursor"===r&&(this.Aqa=t);return q.prototype.set.call(this,r,t)};a.prototype.bb=function(){var r=!1;if(this.L("backgroundOpacityy")||this.L("backgroundColor"))r=!0;if(this.L("iconURL")){var t=this.B("iconURL");this.set("url",t);this.S("iconURL")}t=!1;this.L("mode")&&(this.B("mode")==n.Ke?(this.unbind(k.ma,this.yN,this,!0), 1258this.set("autoPressed",!0)):(this.bind(k.ma,this.yN,this,!0),this.set("autoPressed",!1)),this.S("mode"),t=!0);if(t||this.L("pressed"))this.B("mode")==n.Nj?this.bK(1==this.B("pressed")):t&&this.bK(!1);this.L("buttonGroup")&&((t=this.B("buttonGroup"))?g.register(this,t):g.unregister(this),this.S("buttonGroup"));q.prototype.bb.call(this);r&&(r=this.bd(),0==r.il()||0==r.vD.length)&&(r.Mh(.001),r.XHa(["#000000"]))};return a}); 1259define("br",["require","mt","oj"],function(a){var f=a("mt");return a("oj").define("IconButton",f,function(){f.call(this)})});define("nQ",["require","oj","iM"],function(a){var f=a("oj"),l=a("iM");return f.define("IconHotspotMapOverlay",l,function(){l.call(this,!1)})});define("oN",["require","nf","oj"],function(a){var f=a("nf");a=a("oj").define("Image",f,function(){f.call(this)});a.prototype.set=function(l,m){f.prototype.set.call(this,l,m)};return a}); 1260define("pR",["require","oj","kq"],function(a){var f=a("oj"),l=a("kq");return f.define("PlaneModel3DObject",l,function(){l.call(this)})});define("jD",["require","oj","pR"],function(a){var f=a("oj"),l=a("pR");return f.define("ImagePlaneModel3DObject",l,function(){l.call(this)})});
1260define("mc",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("InnerModel3DObject",l,function(){l.call(this)})}); 1261define("jI",["require","dE","oj"],function(a){var f=a("dE");return a("oj").define("Label",f,function(){f.call(this)})});define("bR",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("LensFlarePanoramaOverlay",f,function(){f.call(this)})});define("cR",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("LineModel3DObject",l,function(){l.call(this)})}); 1262define("oW",["require","oj","fn"],function(a){var f=a("oj"),l=a("fn");a=f.define("LivePanorama",l,function(){l.call(this)});a.prototype.YS=function(){return this.get("initialFrameIndex",0)};return a});define("jW",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("Light",f,function(){f.call(this)})}); 1263define("dh",["require","lQ","dG"],function(a){var f=a("lQ"),l=a("dG");a=f.extend(l,function(m,k,c,h,g,b,d){l.call(this,l.Rna);this.v=m;this.Wd=k;this.sa=c;this.wa=h;this.Of=g;this.y$=b;this.No=d.slice()});a.prototype.uu=function(){for(var m=[this.Wd],k=0;k<this.No.length;k++)m=m.concat(this.No[k].uu());return m};a.prototype.Yi=function(){return this.Wd};a.prototype.De=function(){return this.sa};a.prototype.Te=function(){return this.wa};return a}); 1264define("nM","require oj mI ez gv dh".split(" "),function(a){var f=a("oj"),l=a("mI"),m=a("ez"),k=a("gv"),c=a("dh");a=f.define("Map",m,function(){m.call(this);this.Cw=this.xQ=void 0});a.prototype.z9a=function(){this.Cw=this.xQ=void 0};a.prototype.tL=function(){return!(!this.get("image")||!k.tL(this.get("image")))};a.prototype.ZF=function(){return this.get("image")&&k.ZF(this.get("image"))};a.prototype.Sr=function(){return this.get("image")&&k.Sr(this.get("image"))};a.prototype.wDa=function(){void 0== 1265this.xQ&&(this.tL()?this.xQ=new c(this,this.ZF().get("url"),this.get("width"),this.get("height"),this.get("scaleMode",l.nC),this.get("flipImageHorizontally",!1),[]):this.xQ=null);return this.xQ};a.prototype.lk=function(){if(void 0==this.Cw)if(this.get("image")){var h=Array.prototype.concat.apply([],this.get("overlays",[]).map(function(g){return g.I5a()}));this.Cw=new c(this,this.Sr().get("url"),this.get("width"),this.get("height"),this.get("scaleMode",l.nC),this.get("flipImageHorizontally",!1),h)}else this.Cw= 1266null;return this.Cw};a.prototype.su=function(){return[].concat(this.KX(this.wDa()),this.KX(this.lk()))};a.prototype.KX=function(h){return h?h.uu():[]};return a});define("lC",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("MapOverlay",f,function(){f.call(this)})}); 1267define("kj","require lQ es pw cI gD ep hf".split(" "),function(a){var f=a("lQ"),l=a("es"),m=a("pw"),k=a("cI"),c=a("gD"),h=a("ep"),g=a("hf");a=f.extend(c,function(b,d,e){c.call(this);this.$pa=b;this.LXa=d;this.opa=e||h.Ke;this.jj=[];this.lD=[];this.Az={};this.Az.mode=this.opa;this.opa==h.Nj&&(this.Az.pressed=!1);this.$pa.bind(m.F(d),this.cxa,this);this.cxa()});a.prototype.cxa=function(){var b=this.$pa.get(this.LXa);b||(b=[]);l.isArray(b)||(b=[b]);this.jZa(b)};a.prototype.jZa=function(b){var d=l.difference(this.jj, 1268b);l(d).each(function(e){e.unbind(m.Kj,this.rpa,this,!0);e.unbind(m.Dl,this.spa,this,!0);e.unbind(m.ma,this.npa,this,!0);e.unbind(m.gb,this.ppa,this,!0);e.unbind(m.Eb,this.qpa,this,!0);e.unbind(m.Dc,this.upa,this,!0);e.unbind(m.Jb,this.tpa,this,!0)},this);d=l.difference(b,this.jj);l(d).each(function(e){e.ra(this.Az);e.bind(m.Kj,this.rpa,this,!0);e.bind(m.Dl,this.spa,this,!0);e.bind(m.ma,this.npa,this,!0);e.bind(m.gb,this.ppa,this,!0);e.bind(m.Eb,this.qpa,this,!0);e.bind(m.Dc,this.upa,this,!0);e.bind(m.Jb, 1269this.tpa,this,!0)},this);this.jj=b;this.lD=this.lD.filter(function(e){return 0<=this.jj.indexOf(e)}.bind(this))};a.prototype.rpa=function(){this.trigger(new k(m.Kj))};a.prototype.spa=function(){this.trigger(new k(m.Dl))};a.prototype.npa=function(){this.trigger(new k(m.ma))};a.prototype.ppa=function(){this.trigger(new k(m.gb))};a.prototype.qpa=function(){this.trigger(new k(m.Eb))};a.prototype.upa=function(b){this.lD.push(b.source);this.cl()};a.prototype.tpa=function(b){this.lD=this.lD.filter(function(d){return d!= 1270b.source});this.cl()};a.prototype.set=function(b,d){this.Az[b]=d;this.jj.forEach(function(e){e.ra(this.Az)}.bind(this));this.cl()};a.prototype.cl=function(){this.jj.forEach(function(b){b.get("state")==g.Ab&&0<=this.lD.indexOf(b)?b.set("state",g.jc):b.get("state")==g.jc&&0>this.lD.indexOf(b)&&b.set("state",g.Ab)}.bind(this))};return a});define("three.mod",["require","exports"],function(){return window.THREE}); 1271define("ld",["require","exports","lQ","z"],function(a,f,l,m){var k=function(){return function(){}}();return function(){function c(){}c.ea=function(h,g,b,d){this.Hoa(h,g,b,d,!1)};c.bu=function(h,g,b,d){this.Hoa(h,g,b,d,!0)};c.Hoa=function(h,g,b,d,e){function n(){for(var r=[],t=0;t<g.length;t++)try{r.push(h.get(g[t]))}catch(u){r.push(void 0),l.AT("BindingsHandler._addBinding",u)}b.apply(this,r)}g=l.toArray(g);e&&(n=l.zp(n));var q=[];g.forEach(function(r){(r=m.Ru(h,r,n,this,!e))&&q.push(r)},this);var p= 1272new k;p.zcb=q;p.host=h;p.properties=g;p.pT=b;this.hha.push(p);d&&n()};c.ca=function(h,g,b){var d=[];
1272this.hha.forEach(function(e){e.pT==b&&e.host==h&&l.I6a(e.properties,l.toArray(g))?e.zcb.forEach(function(n){n.eC()}):d.push(e)});this.hha=d};c.hha=[];return c}()}); 1273define("gI","require es lQ pw cI hf bh b e ob ow".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("pw"),k=a("cI"),c=a("hf"),h=a("bh"),g=a("b"),b=a("e");a("ob");a("ow");var d=l.extend(g,function(){g.call(this);this.Qe("PlaybackBar");this.km=this.kg=null;this.gh=[];this.p_=!1;this.sda=this.IE=void 0;this.$ea=!1});d.Fc={cursor:h.Je,overflow:"visible",height:20,position:0,duration:100,steps:void 0,selectedStep:void 0,backgroundColor:"#000000",barBackgroundColor:"#FFFFFF",barBackgroundColorDirection:void 0, 1274barBackgroundColorRatios:void 0,barBorderColor:void 0,barBorderRadius:void 0,barBorderSize:void 0,barOpacity:void 0,liveDragging:void 0,playheadBackgroundColor:"#FFFFFF",playheadBackgroundColorDirection:void 0,playheadBackgroundColorRatios:void 0,playheadBorderColor:void 0,playheadBorderRadius:void 0,playheadBorderSize:void 0,playheadOpacity:void 0,playheadWidth:5,playheadHeight:30,playheadShadow:!0,playheadShadowBlurRadius:3,playheadShadowColor:"#000000",playheadShadowHorizontalLength:0,playheadShadowOpacity:void 0, 1275playheadShadowSpread:0,playheadShadowVerticalLength:3,stepBackgroundColor:"#FFFFFF",stepBackgroundColorDirection:void 0,stepBackgroundColorRatios:void 0,stepBorderColor:void 0,stepBorderRadius:6,stepBorderSize:0,stepOpacity:1,stepWidth:12,stepHeight:12,stepShadow:!0,stepShadowBlurRadius:6,stepShadowColor:"#000000",stepShadowHorizontalLength:0,stepShadowOpacity:void 0,stepShadowSpread:0,stepShadowVerticalLength:0,selectedStepBackgroundColor:"#3399FF",selectedStepBackgroundColorDirection:void 0,selectedStepBackgroundColorRatios:void 0, 1276selectedStepBorderColor:"#ffffff",selectedStepBorderRadius:10,selectedStepBorderSize:2,selectedStepOpacity:1,selectedStepWidth:20,selectedStepHeight:20,selectedStepShadow:!0,selectedStepShadowBlurRadius:3,selectedStepShadowColor:"#000000",selectedStepShadowHorizontalLength:0,selectedStepShadowOpacity:void 0,selectedStepShadowSpread:0,selectedStepShadowVerticalLength:0};f.defaults(d.Fc,g.Fc);d.prototype.yb=function(){this.Ao(d.Fc)};d.prototype.Hb=function(){g.prototype.Hb.call(this);this.kg&&this.km|| 1277this.bind(m.tc,this.xXa,this,!0);null==this.kg&&(this.kg=new b,this.kg.ra({left:"0",height:"100%",cursor:h.Je}),this.Ya(this.kg));null==this.km&&(this.km=new b,this.km.ra({left:"0",cursor:h.Je}),this.km.bind(m.tc,this.AXa,this,!0),this.km.bind(m.gb,this.yXa,this,!0),this.Db().bind(m.Pb,this.Kwa,this,!0),this.bind(m.ma,this.vXa,this,!0),this.km.bind(m.Eb,this.zXa,this,!0),this.Ya(this.km));var n=this.get("steps")||0;if(this.gh.length!=n){for(;this.gh.length>n;)this.XQa(this.gh.pop());for(;this.gh.length< 1278n;)this.gh.push(this.OQa());this.uc(d.yoa,d.J7,this.gh,!1,!0);this.oAa();this.kga();this.ao(this.km,this.ob().length-1)}};d.prototype.OQa=function(){var n=new e;n.ra({cursor:h.Je});n.bind(m.ma,this.Oya,this,!0);n.bind(m.tc,this.Pya,this,!0);this.Ya(n);return n};d.prototype.XQa=function(n){n.unbind(m.ma,this.Oya,this,!0);n.unbind(m.tc,this.Pya,this,!0);this.removeChild(n)};d.prototype.bb=function(){var n=!1;if(this.L("position")||this.L("duration"))this.S("position"),this.S("duration"),n=!0;this.L("selectedStep")&& 1279(this.S("selectedStep"),this.oAa());this.L("steps")&&(this.S("steps"),this.uT());this.uc(d.C7,d.eN,[this.kg],!0,!0);this.uc(d.eNa,d.uoa,[this.km],!0,!0);this.uc(d.yoa,d.J7,this.gh,!0,!0);g.prototype.bb.call(this);n&&this.e1()};d.prototype.oAa=function(){var n=this.get("selectedStep");this.gh.forEach(function(q,p){q.IU(p===n)});this.km.set("visible",void 0===n)};d.prototype.e1=function(){var n=this.Za(),q=this.km.Za(),p=this.km.Cb(),r=this.mO(),t=this.Eq(),u=t*n/r;n=Math.round((this.p_?this.IE:t)* 1280n/r-.5*q);n=Math.max(0,Math.min(n,this.zf()-q));q=Math.round(.5*this.yf()-.5*p);this.km.ra({left:n,top:q});this.kg.set("width",Math.round(u))};d.prototype.AXa=function(){this.e1()};d.prototype.yXa=function(n){this.p_=!0;this.sda=n.pageX;this.IE=this.B("position")};d.prototype.Kwa=function(n){if(this.p_){var q=n.pageX-this.sda;this.sda=n.pageX;n=this.Za();var p=this.mO();this.IE=Math.max(0,Math.min(p,this.IE+p*q/n));this.e1();this.get("liveDragging")&&(this.set("position",this.IE),this.trigger(new k(m.ba)))}}; 1281d.prototype.zXa=function(n){this.Kwa(n);this.p_=!1;this.get("liveDragging")||(this.set("position",this.IE),this.trigger(new k(m.ba)));this.IE=void 0};d.prototype.vXa=function(n){if(!this.$ea){var q=this.Za(),p=this.mO();this.set("position",p*n.x/q);this.trigger(new k(m.ba))}};d.prototype.Pya=function(){this.kga()};d.prototype.xXa=function(){this.kga();this.e1()};d.prototype.kga=function(){for(var n=this.Za(),q=this.Cb(),p=this.Na,r=this.getParent().Za()-(p+n),t=0,u=this.gh.length;t<u;t++){var v=this.gh[t],
1282w=v.Za();v.ra({left:0==t&&0==p?0:t==u-1&&0==r?n-w:Math.round(n*t/(u-1)-.5*w),top:Math.round(.5*q-.5*v.Cb())})}};d.prototype.Oya=function(n){n=this.gh.indexOf(n.source);var q=this.mO();this.set("position",q*n/(this.gh.length-1));this.$ea=!0;this.trigger(new k(m.ba));setTimeout(function(){this.$ea=!1}.bind(this),0)};d.prototype.mO=function(){var n=this.B("duration");return n?n:1};d.prototype.Eq=function(){return Math.max(0,Math.min(this.mO(),this.B("position")))};d.eN={barBackgroundColor:"backgroundColor", 1283barBackgroundColorDirection:"backgroundColorDirection",barBackgroundColorRatios:"backgroundColorRatios",barBorderColor:"borderColor",barBorderRadius:"borderRadius",barBorderSize:"borderSize",barOpacity:"opacity"};d.C7=f(d.eN).keys();d.uoa={playheadBackgroundColor:"backgroundColor",playheadBackgroundColorDirection:"backgroundColorDirection",playheadBackgroundColorRatios:"backgroundColorRatios",playheadBorderColor:"borderColor",playheadBorderRadius:"borderRadius",playheadBorderSize:"borderSize",playheadOpacity:"opacity", 1284playheadWidth:"width",playheadHeight:"height",playheadShadow:"shadow",playheadShadowBlurRadius:"shadowBlurRadius",playheadShadowColor:"shadowColor",playheadShadowHorizontalLength:"shadowHorizontalLength",playheadShadowOpacity:"shadowOpacity",playheadShadowSpread:"shadowSpread",playheadShadowVerticalLength:"shadowVerticalLength"};d.eNa=f(d.uoa).keys();d.J7={stepBackgroundColor:"backgroundColor",stepBackgroundColorDirection:"backgroundColorDirection",stepBackgroundColorRatios:"backgroundColorRatios", 1285stepBorderColor:"borderColor",stepBorderRadius:"borderRadius",stepBorderSize:"borderSize",stepOpacity:"opacity",stepWidth:"width",stepHeight:"height",stepShadow:"shadow",stepShadowBlurRadius:"shadowBlurRadius",stepShadowColor:"shadowColor",stepShadowHorizontalLength:"shadowHorizontalLength",stepShadowOpacity:"shadowOpacity",stepShadowSpread:"shadowSpread",stepShadowVerticalLength:"shadowVerticalLength",selectedStepBackgroundColor:"selectedBackgroundColor",selectedStepBackgroundColorDirection:"selectedBackgroundColorDirection", 1286selectedStepBackgroundColorRatios:"selectedBackgroundColorRatios",selectedStepBorderColor:"selectedBorderColor",selectedStepBorderRadius:"selectedBorderRadius",selectedStepBorderSize:"selectedBorderSize",selectedStepOpacity:"selectedOpacity",selectedStepWidth:"selectedWidth",selectedStepHeight:"selectedHeight",selectedStepShadow:"selectedShadow",selectedStepShadowBlurRadius:"selectedShadowBlurRadius",selectedStepShadowColor:"selectedShadowColor",selectedStepShadowHorizontalLength:"selectedShadowHorizontalLength", 1287selectedStepShadowOpacity:"selectedShadowOpacity",selectedStepShadowSpread:"selectedShadowSpread",selectedStepShadowVerticalLength:"selectedShadowVerticalLength"};d.yoa=f(d.J7).keys();var e=l.extend(b,function(){b.call(this)});e.prototype.IU=function(n){this.XQ(n)};e.prototype.yb=function(){b.prototype.yb.call(this);this.h("backgroundColor");this.h("backgroundColorDirection");this.h("backgroundColorRatios");this.h("borderColor");this.h("borderRadius");this.h("borderSize");this.h("opacity");this.h("width"); 1288this.h("height");this.h("shadow");this.h("shadowBlurRadius");this.h("shadowColor");this.h("shadowHorizontalLength");this.h("shadowOpacity");this.h("shadowSpread");this.h("shadowVerticalLength");this.A("selectedBackgroundColor",c.ja,"backgroundColor");this.A("selectedBackgroundColorDirection",c.ja,"backgroundColorDirection");this.A("selectedBackgroundColorRatios",c.ja,"backgroundColorRatios");this.A("selectedBorderColor",c.ja,"borderColor");this.A("selectedBorderRadius",c.ja,"borderRadius");this.A("selectedBorderSize", 1289c.ja,"borderSize");this.A("selectedOpacity",c.ja,"opacity");this.A("selectedWidth",c.ja,"width");this.A("selectedHeight",c.ja,"height");this.A("selectedShadow",c.ja,"shadow");this.A("selectedShadowBlurRadius",c.ja,"shadowBlurRadius");this.A("selectedShadowColor",c.ja,"shadowColor");this.A("selectedShadowHorizontalLength",c.ja,"shadowHorizontalLength");this.A("selectedShadowOpacity",c.ja,"shadowOpacity");this.A("selectedShadowSpread",c.ja,"shadowSpread");this.A("selectedShadowVerticalLength",c.ja, 1290"shadowVerticalLength")};e.prototype.bb=function(){b.prototype.bb.call(this)};return d}); 1291define("B",["require","es","lQ","b","e"],function(a){var f=a("es"),l=a("lQ"),m=a("b"),k=a("e"),c=l.extend(m,function(){m.call(this);this.Qe("ProgressBar")});
1291c.Fc={percent:0,backgroundColor:"#000000",barBackgroundColor:"#FFFFFF",barBackgroundColorDirection:void 0,barBackgroundColorRatios:void 0,barBorderColor:void 0,barBorderRadius:void 0,barBorderSize:void 0,barOpacity:void 0};f.defaults(c.Fc,m.Fc);c.prototype.yb=function(){this.Ao(c.Fc)};c.prototype.Hb=function(){m.prototype.Hb.call(this);null== 1292this.kg&&(this.kg=new k,this.kg.ra({left:"0",width:"0%",height:"100%"}),this.Ya(this.kg))};c.prototype.bb=function(){this.L("percent")&&(this.kg.set("width",Math.round(this.B("percent"))+"%"),this.S("percent"));this.uc(c.C7,c.eN,[this.kg],!0,!0);m.prototype.bb.call(this)};c.eN={barBackgroundColor:"backgroundColor",barBackgroundColorDirection:"backgroundColorDirection",barBackgroundColorRatios:"backgroundColorRatios",barBorderColor:"borderColor",barBorderRadius:"borderRadius",barBorderSize:"borderSize", 1293barOpacity:"opacity"};c.C7=f(c.eN).keys();return c}); 1294define("gx","require ml w iD nd mQ bn".split(" "),function(a){var f=a("ml"),l=a("w"),m=a("iD");a("nd");var k=a("mQ");a("bn");var c={Xdb:function(e){return this.DL(e)||this.HEa(e)?!0:!1},tv:function(){var e=l.U8a();c.tv=function(){return e};return e},HEa:function(e){return"string"==typeof e&&m.is(e,m.mo)?!0:!1},Sdb:function(e){return this.Wia(e)||this.Xia(e)?!0:!1},Xia:function(e){return"string"==typeof e&&(m.is(e,m.HLa)||m.vB(e,m.ILa))?!0:!1},DL:function(e){return!!e&&!!e.tagName&&"VIDEO"==e.tagName}, 1295xL:function(e){return"string"==typeof e&&m.is(e,m.HLS)||this.DL(e)&&m.is(e.currentSrc,m.HLS)?!0:!1},Dm:function(e){return"string"==typeof e&&m.is(e,m.mo)||this.DL(e)&&m.is(e.currentSrc,m.mo)?!0:!1},Wia:function(e){return!!e&&!!e.tagName&&"IMG"==e.tagName},b7a:function(e){return!!e&&!!e.tagName&&"CANVAS"==e.tagName},Ndb:function(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))},Udb:function(e){return 0!==e&&0===(e&e-1)},xEa:function(){return l.browser()==l.Ij},Tdb:function(){return l.browser()== 1296l.Sy}
1296,qp:function(){return l.zd()==l.yi}},h=l.zd()==l.Py&&!l.Df()&&11>l.e3a();c.zKa=function(e){return b||h&&e&&.2>e.currentTime?!0:!1};c.iEa=function(){return c.xEa()||c.qp()};c.hEa=function(){return c.qp()&&f.P6a&&11>l.Jia()};var g=!1;c.uEa=function(){g=!1};c.c7a=function(){return g};c.W9a=function(){g=!0};var b=k.Cj("vic");c.M8a=function(){c.qp()&&(b=!0)};c.yDa=function(){return{alpha:!0,depth:!0,stencil:!1,antialias:f.u3a()?!0:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default", 1297failIfMajorPerformanceCaveat:!1,xrCompatible:!c.xEa()}};c.q4a=function(e){if(2==f.VGa){var n=c.yDa();n=e.getContext("webgl2",n)}n||(n=c.yDa(),n=e.getContext("webgl",n)||e.getContext("experimental-webgl",n));return n};c.Cha=function(e,n){n||(n=e.getSize(new THREE.Vector2));e=new THREE.WebGLRenderTarget(n.width,n.height,{minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,format:THREE.RGBAFormat,type:THREE.HalfFloatType,samples:e.capabilities.isWebGL2?l.pb()?2:8:0});e.depthTexture=new THREE.DepthTexture; 1298return e};c.p4a=function(e){return new THREE.WebGLCubeRenderTarget(e,{minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,format:THREE.RGBAFormat,type:THREE.HalfFloatType})};c.getPixelRatio=function(){if(l.pb()){var e=0,n=0;try{e=window.top.innerWidth,n=window.top.innerHeight}catch(q){if(l.zd()==l.Py&&1<window.devicePixelRatio)return window.devicePixelRatio}e=[Math.max(document.documentElement.clientWidth,e),Math.max(document.documentElement.clientHeight,n)].sort(function(q,p){return p-q}); 1299e=[d[0]/e[0],d[1]/e[1]].sort()[0];if(Infinity!==e)return e}else if(l.zd()==l.Ima&&l.browser()==l.Sm)return 1;return window.devicePixelRatio};c.a5a=function(e){if(!l.pb()||l.zd()!=l.Py)return c.getPixelRatio();e=[e.clientWidth,e.clientHeight].sort(function(n,q){return q-n});return[d[0]/e[0],d[1]/e[1]].sort()[0]};var d=[screen.width*window.devicePixelRatio,screen.height*window.devicePixelRatio].sort(function(e,n){return n-e});return c});define("hU",["require","gx"],function(a){return a("gx")}); 1300define("of",["require"],function(){var a=Math.PI/180,f=180/Math.PI,l=new THREE.Euler(0,0,0,"YXZ"),m=new THREE.Quaternion;return{create:function(){return{x:0,y:0,z:0,w:0}},TCa:function(k,c,h){m.setFromEuler(l.set(c*a,-k*a,h*a,"YXZ"));k={};k.x=m.x;k.y=m.y;k.z=m.z;k.w=m.w;return k},t5:function(k,c){l.setFromQuaternion(m.set(k.x,k.y,k.z,k.w),"YXZ");k={};k.Ra=-l.y*f;k.pitch=l.x*f;k.Dg=l.z*f;c||(k.pitch=Math.min(90,Math.max(-90,k.pitch)));return k},Ra:function(k){l.setFromQuaternion(m.set(k.x,k.y,k.z,k.w), 1301"YXZ");return-l.y*f}}}); 1302define("os",["require"],function(){var a={};a.degToRad=Math.PI/180;a.radToDeg=180/Math.PI;a.Vector2=function(f,l){this.x=f||0;this.y=l||0};a.Vector2.prototype={constructor:a.Vector2,set:function(f,l){this.x=f;this.y=l;return this},copy:function(f){this.x=f.x;this.y=f.y;return this},subVectors:function(f,l){this.x=f.x-l.x;this.y=f.y-l.y;return this}};a.Vector3=function(f,l,m){this.x=f||0;this.y=l||0;this.z=m||0};a.Vector3.prototype={constructor:a.Vector3,set:function(f,l,m){this.x=f;this.y=l;this.z= 1303m;return this},copy:function(f){this.x=f.x;this.y=f.y;this.z=f.z;return this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var f=this.length();0!==f?this.multiplyScalar(1/f):this.z=this.y=this.x=0;return this},multiplyScalar:function(f){this.x*=f;this.y*=f;this.z*=f},applyQuaternion:function(f){var l=this.x,m=this.y,k=this.z,c=f.x,h=f.y,g=f.z;f=f.w;var b=f*l+h*k-g*m,d=f*m+g*l-c*k,e=f*k+c*m-h*l;l=-c*l-h*m-g*k;this.x=b*f+l*-c+d*-g-e*-h;this.y=d* 1304f+l*-h+e*-c-b*-g;this.z=e*f+l*-g+b*-h-d*-c;return this},dot:function(f){return this.x*f.x+this.y*f.y+this.z*f.z},crossVectors:function(f,l){var m=f.x,k=f.y;f=f.z;var c=l.x,h=l.y;l=l.z;this.x=k*l-f*h;this.y=f*c-m*l;this.z=m*h-k*c;return this}};a.Quaternion=function(f,l,m,k){this.x=f||0;this.y=l||0;this.z=m||0;this.w=void 0!==k?k:1};a.Quaternion.prototype={constructor:a.Quaternion,set:function(f,l,m,k){this.x=f;this.y=l;this.z=m;this.w=k;return this},copy:function(f){this.x=f.x;this.y=f.y;this.z=f.z; 1305this.w=f.w;return this},gIa:function(f,l,m){var k=Math.cos(f/2),c=Math.cos(l/2),h=Math.cos(m/2);f=Math.sin(f/2);l=Math.sin(l/2);m=Math.sin(m/2);this.x=f*c*h+k*l*m;this.y=k*l*h-f*c*m;this.z=k*c*m-f*l*h;this.w=k*c*h+f*l*m;return this},setFromAxisAngle:function(f,l){l/=2;var m=Math.sin(l);this.x=f.x*m;this.y=f.y*m;this.z=f.z*m;this.w=Math.cos(l);return this},multiply:function(f){return this.multiplyQuaternions(this,f)},multiplyQuaternions:function(f,l){var m=f.x,k=f.y,c=f.z;f=f.w;var h=l.x,g=l.y,b=l.z; 1306l=l.w;this.x=m*l+f*h+k*b-c*g;this.y=k*l+f*g+c*h-m*b;this.z=c*l+f*b+m*g-k*h;this.w=f*l-m*h-k*g-c*b;return this},inverse:function(){this.x*=-1;this.y*=-1;this.z*=-1;this.normalize();return this},normalize:function(){var f=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);0===f?(this.z=this.y=this.x=0,this.w=1):(f=1/f,this.x*=f,this.y*=f,this.z*=f,this.w*=f);return this},slerp:function(f,l){if(0===l)return this;if(1===l)return this.copy(f);var m=this.x,k=this.y,c=this.z,h=this.w,g=h* 1307f.w+m*f.x+k*f.y+c*f.z;0>
1307g?(this.w=-f.w,this.x=-f.x,this.y=-f.y,this.z=-f.z,g=-g):this.copy(f);if(1<=g)return this.w=h,this.x=m,this.y=k,this.z=c,this;f=Math.acos(g);var b=Math.sqrt(1-g*g);if(.001>Math.abs(b))return this.w=.5*(h+this.w),this.x=.5*(m+this.x),this.y=.5*(k+this.y),this.z=.5*(c+this.z),this;g=Math.sin((1-l)*f)/b;l=Math.sin(l*f)/b;this.w=h*g+this.w*l;this.x=m*g+this.x*l;this.y=k*g+this.y*l;this.z=c*g+this.z*l;return this},setFromUnitVectors:function(){var f,l;return function(m,k){void 0=== 1308f&&(f=new a.Vector3);l=m.dot(k)+1;1E-6>l?(l=0,Math.abs(m.x)>Math.abs(m.z)?f.set(-m.y,m.x,0):f.set(0,-m.z,m.y)):f.crossVectors(m,k);this.x=f.x;this.y=f.y;this.z=f.z;this.w=l;this.normalize();return this}}()};return a}); 1309define("fE",["require","pw","cI","gD","os"],function(a){function f(){d||(d=!0,p=new b.Vector3(0,0,1),r=new b.Quaternion,t=new b.Quaternion(-Math.sqrt(.5),0,0,Math.sqrt(.5)),u=new b.Quaternion,m(),window.addEventListener("orientationchange",m,!1),window.addEventListener("deviceorientation",k,!1),l())}function l(){if(v&&void 0!==n&&void 0!==q){v=!1;var y=b.degToRad*q;u.gIa(b.degToRad*n.beta,b.degToRad*n.alpha,-(b.degToRad*n.gamma));u.multiply(t);u.multiply(r.setFromAxisAngle(p,-y));w||(x++,5<=x&&(w= 1310!0,e.trigger(new h(c.hd))));e.trigger(new h(c.ba))}}function m(){q=window.orientation||0;v=!0;l()}function k(y){n=y;v=!0;l()}var c=a("pw"),h=a("cI"),g=a("gD"),b=a("os"),d=!1,e=new g,n,q,p,r,t,u,v,w=!1,x=0;f.prototype.Tr=function(){l();return u};f.prototype.bind=function(){e.bind.apply(e,arguments)};f.prototype.unbind=function(){e.unbind.apply(e,arguments)};f.prototype.stop=function(){window.removeEventListener("orientationchange",m,!1);window.removeEventListener("deviceorientation",k,!1)};return f}); 1311define("jw","require pw cI gD w os".split(" "),function(a){function f(q){this.B7a=q;this.Dha=new k;this.a2=new k;this.eka=new k;this.UF=new d.Quaternion;this.dka=new d.Quaternion;this.QAa=new d.Quaternion;this.CEa=!1;this.j2=new d.Vector3;this.nja=new d.Vector3;this.l6a=new d.Quaternion}function l(){this.deviceId="webvr-polyfill:fused";this.pFa=!1;this.oFa=0;this.iS=new d.Vector3;this.Y2=new d.Vector3;this.filter=new f(.98);this.S8a=new m(.04);this.wL=n.wL();this.qp=n.qp();n.hia();this.bja=n.e7a(); 1312this.q2=new d.Quaternion;n.qp()?this.q2.setFromAxisAngle(new d.Vector3(1,0,0),Math.PI/2):this.q2.setFromAxisAngle(new d.Vector3(1,0,0),-Math.PI/2);this.l3=new d.Quaternion;this.FM=new d.Quaternion;this.tGa=new d.Quaternion;this.tGa.setFromAxisAngle(new d.Vector3(0,0,1),-window.orientation*Math.PI/180);this.GIa();n.zEa()&&this.q2.multiply(this.l3);this.Lu=new d.Quaternion;this.wL=n.wL();this.qp=n.qp();this.d7a=66<=n.hia();this.qG=this.qG.bind(this);this.PT=this.PT.bind(this);this.OT=this.OT.bind(this); 1313screen&&screen.orientation&&screen.orientation.addEventListener?screen.orientation.addEventListener("change",this.qG):window.addEventListener("orientationchange",this.qG);this.bja?window.addEventListener("deviceorientation",this.PT):window.addEventListener("devicemotion",this.OT)}function m(q){this.T8a=q;this.w4=new d.Quaternion;this.bM=null;this.eCa=new d.Quaternion;this.TT=new d.Quaternion}function k(q,p){this.set(q,p)}var c=a("pw"),h=a("cI"),g=a("gD"),b=a("w"),d=a("os"),e=new g;f.prototype.I2a= 1314function(q,p){this.Dha.set(q,p)};f.prototype.Q2a=function(q,p){this.a2.set(q,p);n.A7a(p-this.eka.s5)&&this.G9a();this.eka.copy(this.a2)};f.prototype.G9a=function(){if(this.CEa){var q=this.m6a(this.a2.sample,this.a2.s5-this.eka.s5);this.l6a.multiply(q);this.UF.copy(this.dka);this.UF.multiply(q);q=new d.Quaternion;q.copy(this.UF);q.inverse();this.j2.set(0,0,-1);this.j2.applyQuaternion(q);this.j2.normalize();this.nja.copy(this.Dha.sample);this.nja.normalize();q=new d.Quaternion;q.setFromUnitVectors(this.j2, 1315this.nja);q.inverse();var p=new d.Quaternion;p.copy(this.UF);p.multiply(q);this.UF.slerp(p,1-this.B7a);this.dka.copy(this.UF)}else this.QAa=this.H2a(this.Dha.sample),this.dka.copy(this.QAa),this.CEa=!0};f.prototype.Tr=function(){return this.UF};f.prototype.H2a=function(q){var p=new d.Vector3;p.copy(q);p.normalize();q=new d.Quaternion;q.setFromUnitVectors(new d.Vector3(0,0,-1),p);q.inverse();return q};f.prototype.m6a=function(q,p){var r=new d.Quaternion,t=new d.Vector3;t.copy(q);t.normalize();r.setFromAxisAngle(t, 1316q.length()*p);return r};l.prototype.stop=function(){screen&&screen.orientation&&screen.orientation.addEventListener&&screen.orientation.removeEventListener("change",this.qG);window.removeEventListener("orientationchange",this.qG);window.removeEventListener("deviceorientation",this.PT);window.removeEventListener("devicemotion",this.OT)};l.prototype.jl=function(){return null};l.prototype.Tr=function(){var q=void 0;if(this.bja&&this.dX){this.gCa=this.gCa||function(){var r=(new d.Quaternion).setFromAxisAngle(new d.Vector3(0, 13170,-1),0),t=new d.Quaternion;"landscape-secondary"==this.X_?t.setFromAxisAngle(new d.Vector3(0,1,0),Math.PI/-2):t.setFromAxisAngle(new d.Vector3(0,1,0),Math.PI/2);return r.multiply(t)}();this.fCa=this.fCa||function(){var r=new d.Quaternion;r.setFromAxisAngle(new d.Vector3(1,0,0),-Math.PI/2);return r}();q=this.dX;var p=new d.Quaternion;p.copy(q);p.multiply(this.fCa);p.multiply(this.Lu);p.multiply(this.FM);p.multiplyQuaternions(this.gCa,p);this.keb&&(p.x=0,p.z=0,p.normalize());this.l4[0]=p.x;this.l4[1]= 1318p.y;this.l4[2]=p.z;this.l4[3]=p.w;return this.l4}q=this.filter.Tr();q=this.S8a.W5a(q,this.Y2,this.bM);p=new d.Quaternion;p.copy(this.q2);p.multiply(this.Lu);p.multiply(q);p.multiply(this.FM);return p};
1318l.prototype.resetPose=function(){this.Lu.copy(this.filter.Tr());this.Lu.x=0;this.Lu.y=0;this.Lu.z*=-1;this.Lu.normalize();n.zEa()&&this.Lu.multiply(this.l3);this.Lu.multiply(this.tGa)};l.prototype.PT=function(q){this.dX=this.dX||new d.Quaternion;var p=q.alpha,r=q.beta;q=q.gamma;p=(p||0)*Math.PI/180; 1319r=(r||0)*Math.PI/180;q=(q||0)*Math.PI/180;this.dX.gIa(r,p,-q)};l.prototype.OT=function(q){var p=q.rotationRate;if(p){var r=q.accelerationIncludingGravity;q=q.timeStamp/1E3;this.wL&&(q/=1E3);var t=q-this.bM;t<=n.Pma||t>n.Lma?this.bM=q:(this.iS.set(-r.x,-r.y,-r.z),this.Y2.set(p.alpha,p.beta,p.gamma),(this.qp||this.wL||this.d7a)&&this.Y2.multiplyScalar(Math.PI/180),this.filter.I2a(this.iS,q),this.filter.Q2a(this.Y2,q),this.bM=q,this.pFa||(this.oFa++,5<=this.oFa&&(this.pFa=!0,e.trigger(new h(c.hd)))), 1320this.X_!=this.YCa()&&this.qG(),e.trigger(new h(c.ba)))}else this.bja=!0,window.addEventListener("deviceorientation",this.PT),window.removeEventListener("devicemotion",this.OT)};l.prototype.bind=function(){e.bind.apply(e,arguments)};l.prototype.unbind=function(){e.unbind.apply(e,arguments)};l.prototype.qG=function(){this.GIa();e.trigger(new h(c.ba))};l.prototype.GIa=function(){this.FM.set(0,0,0,1);this.X_=this.YCa();switch(this.X_){case "landscape-primary":this.FM.setFromAxisAngle(new d.Vector3(0, 13210,1),-Math.PI/2);break;case "landscape-secondary":this.FM.setFromAxisAngle(new d.Vector3(0,0,1),Math.PI/2)}this.l3.copy(this.FM);this.l3.inverse()};l.prototype.YCa=function(){var q=screen.orientation&&screen.orientation.type;if(!q)switch(window.orientation){case 0:q="portrait-primary";break;case 90:q="landscape-primary";break;case -90:q="landscape-secondary";break;case 180:q="portrait-secondary"}"landscape-primary"==q&&(4.9<this.iS.z||-4.9>this.iS.z?q=this.X_||q:0<this.iS.x&&(q="landscape-secondary")); 1322return q};m.prototype.W5a=function(q,p,r){if(!this.bM)return this.w4.copy(q),this.bM=r,q;r=new d.Vector3;r.copy(p);r.normalize();p=p.length();if(p<20*d.degToRad)return this.TT.copy(q),this.w4.copy(q),this.TT;this.eCa.setFromAxisAngle(r,p*this.T8a);this.TT.copy(this.w4);this.TT.multiply(this.eCa);this.w4.copy(q);return this.TT};k.prototype.set=function(q,p){this.sample=q;this.s5=p};k.prototype.copy=function(q){this.set(q.sample,q.s5)};var n={Pma:.001,Lma:1,A7a:function(q){return isNaN(q)||q<=n.Pma|| 1323q>n.Lma?!1:!0}};n.qp=function(){var q=/iPad|iPhone|iPod/.test(navigator.platform);return function(){return q}}();n.Wdb=function(){var q=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return q}}();n.wL=function(){var q=-1!==navigator.userAgent.indexOf("Firefox")&&-1!==navigator.userAgent.indexOf("Android");return function(){return q}}();n.hia=function(){var q=navigator.userAgent.match(/.*Chrome\/([0-9]+)/),p=q?parseInt(q[1],10):null;return function(){return p}}();n.e7a= 1324function(){var q=!1;if(65===n.hia()){var p=navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(p){p=p[1].split(".");var r=p[3];q=3325===parseInt(p[2],10)&&148>parseInt(r,10)}}else"getVRDisplays"in navigator&&b.browser()==b.Sm&&b.SS()&&b.cc()==b.mV&&(q=!0);return function(){return q}}();n.zEa=function(){return 90==window.orientation||-90==window.orientation};return l}); 1325define("ii","require lQ pw cI gD of w fE jw mQ".split(" "),function(a){function f(){function w(){q=!0;e.trigger(new m(l.ba))}function x(){var A;!I||!y&&B?B&&(A=z):A=E;p!=A&&(p&&(p.unbind(l.ba,w),p.stop()),p=A)&&(p.bind(l.ba,w,this,!0),w())}var y=h.zd()==h.yi||d.Cj("debug")&&"deviceorientation"==d.getQueryParameter("sensor"),z=new b,B=!1;z.bind(l.hd,function(){B=!0;x()},this,!0);var E=new g,I=!1;E.bind(l.hd,function(){I=!0;x()},this,!0)}a("lQ");var l=a("pw"),m=a("cI"),k=a("gD"),c=a("of"),h=a("w"), 1326g=a("fE"),b=a("jw"),d=a("mQ"),e=new k,n={},q=!1,p,r=[],t=!1,u=!1;n.pka=function(w){w&&r.push(w);if(!n.disabled)for(;r.length;)r.pop()();else if(h.zd()==h.yi&&window.DeviceMotionEvent&&DeviceMotionEvent.requestPermission){DeviceOrientationEvent.requestPermission().then(function(y){"granted"===y&&(u=!0,x())})["catch"](function(){});DeviceMotionEvent.requestPermission().then(function(y){"granted"===y&&(t=!0,x())})["catch"](function(){});var x=function(){if(n.disabled&&t&&u)for(n.disabled=!1,f();r.length;)r.pop()()}; 1327x()}};n.bind=function(w,x){e.bind(l.ba,w,x)};n.unbind=function(w,x){e.unbind(l.ba,w,x)};n.A8a=function(){return q};n.Tr=function(){q=!1;if(p){var w=p.Tr();w=c.t5(w);return{yaw:w.Ra,pitch:w.pitch,roll:w.Dg}}return{yaw:0,pitch:0,roll:0}};if(h.zd()==h.z7||h.zd()==h.S6||h.zd()==h.Ima)n.hk=!1,n.disabled=!1;else if(h.zd()==h.Py&&h.browser()==h.Sm&&"https:"!=window.location.protocol&&"localhost"!=window.location.hostname)n.hk=!0,n.disabled=!0;else if(h.zd()==h.yi)if(n.hk=!0,n.disabled=!0,window.DeviceMotionEvent&& 1328DeviceMotionEvent.requestPermission)n.pka();else{var v=function(){window.removeEventListener("deviceorientation",v,!1);n.disabled=!1;f()};window.addEventListener("deviceorientation",v,!1)}else n.hk=void 0!=window.DeviceMotionEvent,n.disabled=!1;n.hk&&!n.disabled&&f();return n}); 1329define("bg","require exports w ml ii cF mQ".split(" "),function(a,f,l,m,k,c,h){return function(){function g(){}g.initialize=function(b){this.XR.G4?(this.ela(!0),b()):(this.Oia||(this.Oia=this.Cbb().then(function(d){this.ela(d);return d}.bind(this)).catch(function(){this.ela(!1);return!1}.bind(this))),this.Oia.then(function(){b()}))};g.ela=function(b){this.XR.EM=b;this.XR.wcb=b&&(l.Df()||!l.pb());b&&m.Lab()};g.Cbb=function(){return this.Ebb().then(function(b){return b?Promise.resolve(!0):this.Fbb()}.bind(this))}; 1330g.Ebb=function(){return navigator.xr&&"cardboard"!=h.getQueryParameter("vr_mode")?this.Gbb():Promise.resolve(!1)};g.Fbb=function(){return this.q3a()?this.g3a():Promise.resolve(!1)};g.Gbb=function(){return navigator.xr&&navigator.xr.isSessionSupported?navigator.xr.isSessionSupported("immersive-vr"):navigator.xr&&navigator.xr.supportsSession?navigator.xr.supportsSession("immersive-vr"):Promise.reject()};g.q3a=function(){return k.hk&&l.pb()&&l.NF()!=l.NM};g.g3a=function(){var b=this;return new Promise(function(d){c.Xna.load(function(){var e; 1331b.Q8a=new window.WebXRPolyfill({overwriteNativeXR:!0,cardboardConfig:{DPDB_URL:"https://raw.githubusercontent.com/immersive-web/webvr-polyfill-dpdb/refs/heads/main/dpdb.json",BUFFER_SCALE:null===(e=b.XR)||void 0===e?void 0:e.v4,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!0,MOBILE_WAKE_LOCK:!1}});b.XR.BL=!0;d(!0)})})};g.Oia=null;g.Q8a=null;return g}()}); 1332define("pY",["require","exports","pw","three.mod"],function(a,f,l,m){var k=function(){function r(){}r.initialize=function(){this.XR.zj=new m.Group;this.XR.zj.matrixAutoUpdate=!1;this.XR.Un=new m.Group;this.XR.Un.matrixAutoUpdate=!1;this.XR.zj.add(this.XR.Un);this.XR.N.bind(l.iV,this.FB,this,!0);this.XR.N.bind(l.ba,this.xe,this,!0)};r.setScale=function(t){this.fg!==t&&(this.fg=t,this.XR.xm=1/t,this.setPosition({x:this.XR.Bc.x,y:this.XR.Bc.y,z:this.XR.Bc.z,Ra:-b.setFromQuaternion(this.XR.bg,"YXZ").y* 1333p}))};r.hM=function(t){var u,v;this.E3(this.hC,h);this.E3(n.copy(this.hC).premultiply(this.XR.zj.matrixWorld),c);var w=this.XR.zj.matrix;w.identity();w.multiply(n.makeRotationY(void 0===t?c.yaw:-t*q));w.multiply(n.makeRotationY(-h.yaw));w.multiply(n.makeScale(this.XR.xm,this.XR.xm,this.XR.xm));w.multiply(n.makeTranslation(-h.x,-h.y,-h.z));void 0!==t&&(w=this.XR.Un.matrix,w.identity(),w.multiply(n.makeTranslation(h.x,h.y,h.z)),w.multiply(n.makeRotationY(-h.yaw*q)));this.XR.zj.updateMatrixWorld(!0); 1334null===(u=this.camera)||void 0===u?void 0:u.updateMatrixWorld(!0);null===(v=this.rk)||void 0===v?void 0:v.updateMatrixWorld(!0);this.Zla()};r.setPosition=function(t){var u,v;this.E3(this.hC,h);this.E3(n.copy(this.hC).premultiply(this.XR.zj.matrixWorld),c);var w=this.XR.zj.matrix;w.identity();w.multiply(n.makeTranslation(void 0===t.x?c.x:t.x,void 0===t.y?c.y:t.y,void 0===t.z?c.z:t.z));w.multiply(n.makeRotationY(void 0===t.yaw?c.yaw:-t.yaw*q));w.multiply(n.makeRotationX(void 0===t.pitch?c.pitch:t.pitch* 1335q));w.multiply(n.makeRotationZ(void 0===t.roll?c.roll:t.roll*q));w.multiply(n.makeRotationZ(-h.roll));w.multiply(n.makeRotationX(-h.pitch));w.multiply(n.makeRotationY(-h.yaw));w.multiply(n.makeScale(this.XR.xm,this.XR.xm,this.XR.xm));w.multiply(n.makeTranslation(-h.x,-h.y,-h.z));if(void 0!==t.yaw||void 0!==t.pitch||void 0!==t.roll)w=this.XR.Un.matrix,w.identity(),w.multiply(n.makeTranslation(h.x,h.y,h.z)),w.multiply(n.makeRotationY(-h.yaw*q)),w.multiply(n.makeRotationX(h.pitch*q)),w.multiply(n.makeRotationX(h.roll* 1336q));this.XR.zj.updateMatrixWorld(!0);null===(u=this.camera)||void 0===u?void 0:u.updateMatrixWorld(!0);null===(v=this.rk)||void 0===v?void 0:v.updateMatrixWorld(!0);this.Zla()};r.FB=function(){var t,u,v,w;this.Pu(this.XR.xG);this.SIa((null===(t=this.XR.mh)||void 0===t?void 0:t.xr.getCamera())||null);this.setCamera(this.XR.Iu);if(u=(u=(t=null===(u=this.XR.mh)||void 0===u?void 0:u.xr.getFrame())&&this.XR.referenceSpace&&t.getViewerPose(this.XR.referenceSpace))&&u.transform)this.XR.yBa=u.position.y, 1337this.hC.fromArray(u.matrix),this.hC.decompose(this.XR.scb,this.XR.fH,e),null===(v=this.camera)||void 0===v?void 0:v.updateMatrixWorld(!0),null===(w=this.rk)||void 0===w?void 0:w.updateMatrixWorld(!0),this.Zla()};r.xe=function(){this.XR.isPresenting?this.scene&&this.camera&&(this.XR.xG!=this.scene||this.XR.Iu!=this.camera)&&(this.Pu(this.XR.xG),this.setCamera(this.XR.Iu),this.XR.mh.xr.updateCamera(this.XR.Iu),this.setPosition({x:this.XR.Bc.x,y:this.XR.Bc.y,z:this.XR.Bc.z,Ra:-b.setFromQuaternion(this.XR.bg, 1338"YXZ").y*p})):(this.Pu(null),this.SIa(null),this.setCamera(null))};r.Zla=function(){n.copy(this.hC).premultiply(this.XR.zj.matrixWorld).decompose(this.XR.Bc,this.XR.bg,e);b.setFromRotationMatrix(this.XR.Un.matrix,"YXZ");d.setFromMatrixPosition(this.hC);this.XR.Un.matrix.identity();this.XR.Un.matrix.multiply(n.makeTranslation(d.x,d.y,d.z));this.XR.Un.matrix.multiply(n.makeRotationFromEuler(b));this.XR.Un.updateMatrixWorld(!0)};r.Pu=function(t){this.scene!==t&&(this.scene&&this.scene.remove(this.XR.zj), 1339null==t&&(this.uHa(),this.wHa()),(this.scene=t)&&this.scene.add(this.XR.zj))};r.setCamera=function(t){this.camera!==t&&(this.uHa(),(this.camera=t)&&this.XR.zj.add(this.camera))};r.SIa=function(t){this.rk!==t&&(this.wHa(),(this.rk=t)&&this.XR.zj.add(this.rk))};r.uHa=function(){this.scene&&this.camera&&this.camera.parent===this.XR.zj&&(this.scene.add(this.camera),this.camera=null)};r.wHa=function(){this.rk&&this.rk.parent===this.XR.zj&&(this.rk.parent.remove(this.rk),this.rk=null)};r.E3=function(t, 1340u){t.decompose(d,g,e);b.setFromQuaternion(g,"YXZ");u.yaw=b.y;u.pitch=b.x;u.roll=b.z;u.x=d.x;u.y=d.y;u.z=d.z};r.hC=new m.Matrix4;r.fg=1;r.scene=null;r.camera=null;r.rk=null;return r}(),c={x:void 0,y:void 0,z:void 0,Ra:void 0},h={x:void 0,y:void 0,z:void 0,Ra:void 0},g=new m.Quaternion,b=new m.Euler,d=new m.Vector3,e=new m.Vector3,
1340n=new m.Matrix4,q=Math.PI/180,p=180/Math.PI;window.Om=function(r){k.setPosition({x:void 0,y:void 0,z:void 0,Ra:r})};return k}); 1341define("bT",["require","exports"],function(){return{sH:"gaze",SM:"laser"}}); 1342define("jm",["require","exports","pw"],function(a,f,l){return function(){function m(){}m.y$a=function(k,c,h){var g=this.XR.Lm.indexOf(k);-1<g&&g!==this.XR.Lm.length-1&&(this.XR.Lm.splice(g,1),this.XR.Lm.splice(this.XR.Lm.length,0,k));this.XR.nka.set(k,c);this.XR.mka.set(k,h);k!==this.XR.mh||this.XR.xG===c&&this.XR.Iu===h||(this.XR.xG=c,this.XR.Iu=h,this.XR.N.trigger(l.ba))};m.add=function(k){this.remove(k);this.XR.Lm.push(k)};m.remove=function(k){var c=this.XR.Lm.indexOf(k);-1!=c&&(this.XR.Lm.splice(c, 13431),this.XR.nka.delete(k),this.XR.mka.delete(k))};return m}()});define("iP",["require","exports"],function(){return{e7:"Panorama",Qma:"Model3D"}});define("jE",["require","exports"],function(){return{sH:"gaze",BLa:"gaze_click"}});define("F",["require","exports"],function(){return{xl:"Cardboard",kdb:"WebVR",SMa:"WebXR"}}); 1344define("nH",["require","exports","pw","nd","hA"],function(a,f,l,m,k){return function(){function c(){}c.initialize=function(){this.xe=this.xe.bind(this);this.i4=this.i4.bind(this);this.XR.N.bind(l.ba,this.xe,this,!0);window.addEventListener("vrdisplayblur",function(){k.nla(!0)},!0);window.addEventListener("vrdisplayfocus",function(){k.nla(!1)},!0)};c.xe=function(){this.XR.session?(this.jC=this.XR.session,this.jC.addEventListener("visibilitychange",this.i4)):(this.jC&&this.jC.removeEventListener("visibilitychange", 1345this.i4),this.jC=null);k.Ay(this.XR.isPresenting)};c.i4=function(){k.nla(!this.jC||"visible"!=this.jC.visibilityState);m.sLa&&"visible"!=this.jC.visibilityState&&this.XR.Xha()};c.jC=null;return c}()}); 1346define("dC",["require","exports","w","mQ"],function(a,f,l,m){return function(){function k(){}k.initialize=function(){this.Xr=-1<[l.zs,l.Vu].indexOf(l.cc());this.vKa=m.Cj("vr");if(this.Xr||this.vKa)this.bKa(),document.addEventListener("visibilitychange",function(){document.hidden||this.bKa()}.bind(this),!1)};k.bKa=function(){this.K3a();this.dha=0;this.qJa()};k.qJa=function(){this.dha++;this.r5=setTimeout(this.x8a.bind(this),this.vKa?500:1E3*this.dha)};k.K3a=function(){this.r5&&(clearTimeout(this.r5), 1347this.r5=null)};k.x8a=function(){this.r5=null;this.Xr&&5<this.dha?window.location.reload():document.hidden||k.XR.isPresenting||(!this.KS()||this.Xr)&&this.qJa()};k.KS=function(){for(var c=this.XR.r4.Xi("PanoramaPlayer"),h=0;h<c.length;h++){var g=c[h];if(g.get("panorama"))return g.get("viewerArea").set("viewMode","vr"),!0}c=this.XR.r4.Xi("Model3DPlayer");for(h=0;h<c.length;h++)if(g=c[h],g.get("model")&&g.get("model").get("isLoaded"))return g.get("viewerArea").set("viewMode","vr"),!0;return!1};return k}()}); 1348define("ol",["require","exports","three.mod"],function(a,f,l){return function(){function m(){}m.I9a=function(k,c){if(m.GEa(k)){var h=m.ds(k),g,b=256;
1348c.forEach(function(d){if(m.GEa(d)){var e=m.xHa(h,m.ds(d));e<b&&(g=d,b=e)}});if(g&&5>=b)return g}return k};m.K2=function(k,c){return m.xHa(m.ds(k),m.ds(c))};m.GEa=function(k){return!!k&&0===k.indexOf("#")};m.ds=function(k){return[parseInt(k.substr(1,2),16),parseInt(k.substr(3,2),16),parseInt(k.substr(5,2),16)]};m.xHa=function(k,c){return Math.max(Math.abs(k[0]- 1349c[0]),Math.abs(k[1]-c[1]),Math.abs(k[2]-c[2]))};m.Kbb=function(k){k=m.ds(k);return k[0]<<16|k[1]<<8|k[2]<<0};m.Ip=function(k){return new l.Color(m.Kbb(k))};return m}()}); 1350define("fY",["require","exports","ol","three.mod"],function(a,f,l,m){a=function(){function g(b,d){this.dot=this.ray=this.qa=null;this.qa=new m.Group;this.ray=new k(b,d);this.qa.add(this.ray.qa);this.dot=new c(b,d);this.qa.add(this.dot.qa)}g.prototype.update=function(){this.ray.update();this.dot.update()};g.prototype.dispose=function(){var b;this.qa&&(this.ray.dispose(),this.ray=null,this.dot.dispose(),this.dot=null,null===(b=this.qa.parent)||void 0===b?void 0:b.remove(this.qa),this.qa=null)};return g}(); 1351var k=function(){function g(b,d){this.wp=this.material=this.qa=null;this.color="#ffffff";this.pc=b;this.wl=d;this.ila();this.qa=new m.Mesh(new m.CylinderGeometry(5E-4,5E-4,.35,8),this.material);this.qa.renderOrder=999;this.qa.position.z=-.175;this.qa.position.y=-.001;this.qa.rotation.copy(new m.Euler(-Math.PI/2,0,0,"YXZ"));this.qa.updateMatrix()}g.prototype.update=function(){this.WU();this.Yla()};g.prototype.dispose=function(){var b;this.qa&&(this.qa.geometry.dispose(),this.Bla(),null===(b=this.qa.parent)|| 1352void 0===b?void 0:b.remove(this.qa),this.qa=null)};g.prototype.ila=function(){if(!this.material){var b=document.createElement("canvas");b.width=b.height=256;this.wp=b.getContext("2d");this.material=new m.MeshBasicMaterial;this.material.map=new m.Texture(b);
1352this.material.map.colorSpace=m.SRGBColorSpace;this.material.transparent=!0;this.WU()}};g.prototype.Bla=function(){var b,d;if(this.material){var e=null===(b=this.material.map)||void 0===b?void 0:b.image;e.width=e.height=1;null===(d=this.material.map)|| 1353void 0===d?void 0:d.dispose();this.material.map=null;this.material.dispose();this.wp=this.material=null}};g.prototype.WU=function(){var b=this.lL();if(this.color!==b){this.color=b;b=l.ds(this.color).join(", ");var d=this.material.map.image,e=this.wp.createLinearGradient(0,0,0,d.height);e.addColorStop(0,"rgba("+b+", 0)");e.addColorStop(.5,"rgba("+b+", 1)");e.addColorStop(1,"rgba("+b+", 1)");this.wp.fillStyle=e;this.wp.clearRect(0,0,d.width,d.height);this.wp.fillRect(0,0,d.width,d.height);this.material.map.needsUpdate= 1354!0;this.material.needsUpdate=!0}};g.prototype.Yla=function(){this.qa.visible=!this.pc.disabled&&!this.pc.hidden};g.prototype.lL=function(){return this.pc.pressed?this.wl.u4:this.pc.TL?this.wl.Yja:this.wl.s4};return g}(),c=function(){function g(b,d){this.wp=this.cu=this.material=this.border=this.dot=this.qa=null;this.color="#ffffff";this.pc=b;this.wl=d;this.yab();this.ila();this.qa=new m.Group;this.qa.renderOrder=999;this.border=new m.Mesh(new m.SphereGeometry(.0046,32,32),this.cu);this.dot=new m.Mesh(new m.SphereGeometry(.004, 135532,32),this.material);this.qa.add(this.dot);this.qa.add(this.border);this.jKa()}g.prototype.update=function(){this.WU();this.jKa();this.Yla()};g.prototype.dispose=function(){var b;this.qa&&(this.qa.remove(this.dot),this.dot.geometry.dispose(),this.Bla(),this.qa.remove(this.border),this.border.geometry.dispose(),this.vbb(),null===(b=this.qa.parent)||void 0===b?void 0:b.remove(this.qa),this.qa=null)};g.prototype.yab=function(){if(!this.cu){var b=document.createElement("canvas");b.width=b.height=256; 1356var d=b.getContext("2d");d.fillStyle="rgba(0, 0, 0, 0.75)";d.clearRect(0,0,b.width,b.height);d.fillRect(0,0,b.width,b.height);d=new m.MeshBasicMaterial;d.map=new m.Texture(b);
1356d.map.colorSpace=m.SRGBColorSpace;d.map.needsUpdate=!0;d.transparent=!0;d.depthTest=!1;d.side=m.BackSide;this.cu=d;this.cu.needsUpdate=!0}};g.prototype.vbb=function(){var b,d;if(this.cu){var e=null===(b=this.cu.map)||void 0===b?void 0:b.image;e.width=e.height=1;null===(d=this.cu.map)||void 0===d?void 0:d.dispose();this.cu.map= 1357null;this.cu.dispose();this.cu=null}};g.prototype.ila=function(){if(!this.material){var b=document.createElement("canvas");b.width=b.height=256;this.wp=b.getContext("2d");var d=new m.MeshBasicMaterial;d.map=new m.Texture(b);d.map.colorSpace=m.SRGBColorSpace;d.transparent=!0;d.depthTest=!1;this.material=d;this.WU()}};g.prototype.Bla=function(){var b,d;if(this.material){var e=null===(b=this.material.map)||void 0===b?void 0:b.image;e.width=e.height=1;null===(d=this.material.map)||void 0===d?void 0:d.dispose(); 1358this.material.map=null;this.material.dispose();this.wp=this.material=null}};g.prototype.Yla=function(){this.qa.visible=!this.pc.hidden&&!this.pc.disabled&&void 0!==this.pc.xu};g.prototype.jKa=function(){var b,d=this.qa.parent?h.setFromMatrixScale(null===(b=this.qa)||void 0===b?void 0:b.parent.matrixWorld).x:1;b=(this.pc.xu||500)/d;this.qa.position.z=-b;this.qa.scale.set(b,b,b);this.qa.updateMatrix()};g.prototype.WU=function(){var b=this.lL();this.color!==b&&(this.color=b,b=this.material.map.image, 1359this.wp.fillStyle=this.color,this.wp.clearRect(0,0,b.width,b.height),this.wp.fillRect(0,0,b.width,b.height),this.material.map.needsUpdate=!0,this.material.needsUpdate=!0)};g.prototype.lL=function(){return this.pc.pressed?this.wl.u4:this.pc.TL?this.wl.Yja:this.wl.s4};return g}();new m.Matrix4;var h=new m.Vector3;return a}); 1360define("jx",["require","exports","three.mod"],function(a,f,l){return function(){function m(){this.id=0;this.ray=new l.Ray;this.matrixWorld=new l.Matrix4;this.disabled=!1;this.handedness="";this.wi=this.TL=!1;this.BGa=0;this.xu=void 0;this.hidden=this.Hr=this.pressed=!1;this.Wb=new l.Vector2;this.bH=!1;this.id=m.JT++}m.JT=0;return m}()}); 1361define("hO","require exports pw w fY jx three.mod".split(" "),function(a,f,l,m,k,c,h){var g=[0,1];a=function(){function b(){}b.initialize=function(){this.XR.N.bind(l.ba,this.xe.bind(this),this,!0);this.XR.N.bind(l.Th,this.GB.bind(this),this,!0);this.ny=this.ny.bind(this);this.my=this.my.bind(this);this.R3=this.R3.bind(this);this.U3=this.U3.bind(this);this.S3=this.S3.bind(this)};b.qb=function(d){this.enabled=d};b.isConnected=function(){return this.TK.some(function(d){return d})};b.xIa=function(d){var e; 1362if(0<this.Lh.length!==d)if(d){var n=new h.DirectionalLight(16777215,Math.PI);n.position.set(10,20,0);null===(e=this.Km)||void 0===e?void 0:e.add(n);this.Lh.push(n)}else for(;this.Lh.length;)e=this.Lh.pop(),null===(n=this.Km)||void 0===n?void 0:n.remove(e)};b.LIa=function(d){this.w5!==d&&((this.w5=d)?this.Px.forEach(this.nFa.bind(this)):this.Px.forEach(this.vHa.bind(this)))};b.M9a=function(d,e){d=this.T5a(d);-1!=d&&(d=this.wha[d])&&d.hapticActuators&&d.hapticActuators.length&&(d=d.hapticActuators[0], 1363d.pulse&&d.pulse(.6,e))};b.xe=function(){this.XR.isPresenting?this.$a():this.Ca()};b.$a=function(){g.forEach(function(d){this.Aab(d);this.Bab(d)}.bind(this))};b.Ca=function(){g.forEach(function(d){this.zbb(d);this.ybb(d);this.xbb(d)}.bind(this))};b.GB=function(){this.$$a(this.enabled&&this.XR.zj||null);this.Vla();this.Ubb()};b.Vla=function(){if(this.enabled){for(;this.XR.ng.length;)this.XR.ng.pop();g.forEach(function(d){var e=this.controllers[d];if(e&&this.TK[d]){var n=this.JF[d];this.hKa(d);n.matrixWorld.copy(e.matrixWorld); 1364n.ray.origin.set(0,0,0);n.ray.direction.set(0,0,-1);d=(d=(d=this.Px[d].motionController)&&d.components["xr-standard-thumbstick"])&&d.values;n.bH=d&&"pressed"==d.state||!1;n.Wb.set(d&&d.xAxis||0,d&&d.yAxis||0);this.XR.ng.push(n)}}.bind(this))}};b.Ubb=function(){this.enabled&&g.forEach(function(d){d=this.zS[d];null===d||void 0===d?void 0:d.update()}.bind(this))};b.Gab=function(){if(!this.Vha){var d=this.XR.mh,e=d.xr.enabled;d.eu=!0;d.xr.enabled=!1;var n=new h.RoomEnvironment(d);this.Vha=(new h.PMREMGenerator(d)).fromScene(n).texture; 1365d.eu=!1;d.xr.enabled=e}};b.Aab=function(d){var e=this.XR.mh.xr.getController(d);this.controllers[d]!=e&&(e.addEventListener("selectstart",this.ny),e.addEventListener("selectend",this.my),e.addEventListener("connected",this.R3),e.addEventListener("disconnected",this.U3),e.userData.N3=!0,this.controllers[d]=e,this.JF[d]=new c,this.xha[d]=0)};b.xbb=function(d){var e=this.controllers[d];e&&(e.removeEventListener("selectstart",this.ny),e.removeEventListener("selectend",this.my),e.removeEventListener("connected", 1366this.R3),e.removeEventListener("disconnected",this.U3),this.controllers[d]=null)};b.Bab=function(d){if(!this.IF[d]){var e=this.XR.mh.xr.getControllerGrip(d);e.userData.N3=!0;this.W1||(this.W1=new h.XRControllerModelFactory);this.W1.path=h.HH.endsWith("/")?h.HH.slice(0,-1):h.HH;var n=this.W1.createControllerModel(e,this.Ccb);n.addEventListener("loaded",this.S3);this.Px[d]=n;e.add(n);this.IF[d]=e}};b.Ccb=function(d){d=Array.from(d.profiles);if(m.hG())d=["meta-quest-touch-plus"].concat(d);else if(m.CL())d= 1367["oculus-touch-v3"].concat(d);else if(m.EEa())d=["generic-trigger"].concat(d);else if(m.FEa()||0<=d.indexOf("pico-phoenix")||0<=d.indexOf("pico-4"))d=["pico-4"].concat(d);else if(m.IEa()||0<=d.indexOf("htc-vive-focus-3")||0<=d.indexOf("htc-vive-focus-3-plus"))d=["htc-vive-focus-3"].concat(d);else if(m.v7a()||m.n7a()||m.AEa()||0<=d.indexOf("pico-g2")||0<=d.indexOf("pico-neo2")||0<=d.indexOf("pico-neo3"))d=["generic-trigger"].concat(d);return d};b.ybb=function(d){var e,n=this.IF[d];if(n){var q=this.Px[d]; 1368this.Px[d]=null;q.removeEventListener("loaded",this.S3);n.remove(q);this.IF[d]=null;null===(e=n.parent)||void 0===e?void 0:e.remove(n)}};b.Cab=function(d){if(!this.zS[d]){var e=new k(this.JF[d],this.XR.wl);this.zS[d]=e;this.controllers[d].add(e.qa)}};b.zbb=function(d){var e=this.zS[d];
1368e&&(e.dispose(),this.zS[d]=null)};b.$$a=function(d){this.Km!==d&&(this.Km=d,this.bcb())};b.bcb=function(){this.controllers.forEach(function(d){var e,n;d&&d.parent!=this.Km&&(null===(e=d.parent)||void 0===e?void 0:e.remove(d), 1369null===(n=this.Km)||void 0===n?void 0:n.add(d))}.bind(this));this.IF.forEach(function(d){var e,n;d&&d.parent!=this.Km&&(null===(e=d.parent)||void 0===e?void 0:e.remove(d),null===(n=this.Km)||void 0===n?void 0:n.add(d))}.bind(this));this.Lh.forEach(function(d){var e,n;d.parent!==this.Km&&(null===(e=d.parent)||void 0===e?void 0:e.remove(d),null===(n=this.Km)||void 0===n?void 0:n.add(d))}.bind(this))};b.ny=function(d){d=this.I2(d.target);if(this.TK[d]){var e=this.JF[d];e.pressed=!0;this.XR.N.trigger(l.lz, 1370{pointerState:e});this.xha[d]=Date.now()}};b.my=function(d){d=this.I2(d.target);if(this.TK[d]){var e=this.JF[d];e.pressed=!1;this.XR.N.trigger(l.DH,{pointerState:e});this.xha[d]+300>Date.now()&&this.XR.N.trigger(l.Uf,{pointerState:e})}};b.R3=function(d){var e,n;if("gaze"!=d.data.targetRayMode){var q=this.I2(d.target);this.Cab(q);null===(e=this.Km)||void 0===e?void 0:e.add(this.controllers[q]);null===(n=this.Km)||void 0===n?void 0:n.add(this.IF[q]);this.TK[q]=!0;this.wha[q]=d.data.gamepad;this.JF[q].handedness= 1371d.data.handedness;this.XR.N.trigger(l.jma)}};b.Via=function(d){return d.profiles.some(function(e){return 0<=e.indexOf("hand")})};b.U3=function(d){var e,n;d=this.I2(d.target);null===(e=this.Km)||void 0===e?void 0:e.remove(this.controllers[d]);null===(n=this.Km)||void 0===n?void 0:n.remove(this.IF[d]);this.TK[d]=!1;this.wha[d]=null;this.XR.N.trigger(l.kma)};b.S3=function(d){var e=this.l5a(d.target),n=this.Px[e];this.Gab();n.setEnvironmentMap(this.Vha);this.w5?this.nFa(n):this.vHa(n);n.userData.Via= 1372this.Via(d.target.motionController.xrInputSource);n.userData.Kh=!0;this.hKa(e)};b.hKa=function(d){var e=this.Px[d];e.userData.Kh&&(d=this.JF[d],e.visible=e.userData.Via||d.hidden?!1:!0)};b.nFa=function(d){d&&d.traverse(function(e){if("isMesh"in e&&e.material){var n=e.material;if(!n.userData.cs){var q=n.userData.N7a;q||(q=n.clone(),n.userData.N7a=q,q.userData.cs=n,q.transparent||(q.transparent=!0,q.opacity=1,"map"in q&&q.map&&(q.map=this.U3a(q.map)),q.needsUpdate=!0));e.material=q}void 0===e.userData.Rja&& 1373(e.userData.Rja=e.renderOrder);e.renderOrder=1E3}}.bind(this))};b.vHa=function(d){d&&d.traverse(function(e){if("isMesh"in e&&e.material){var n=e.material;n.userData.cs&&(e.material=n.userData.cs);void 0==e.userData.Rja&&(e.renderOrder=e.userData.Rja)}}.bind(this))};b.U3a=function(d){if(!d)return null;var e=document.createElement("canvas");e.width=d.image.width;e.height=d.image.height;var n=e.getContext("2d");n.drawImage(d.image,0,0);for(var q=n.getImageData(0,0,e.width,e.height),p=q.data,r=0;r<p.length;r+= 13744)p[r+3]=255;n.putImageData(q,0,0);d=(new h.Texture).copy(d);d.image=e;d.needsUpdate=!0;return d};b.I2=function(d){return this.controllers.indexOf(d)};b.l5a=function(d){return this.Px.indexOf(d)};b.T5a=function(d){return this.XR.ng.indexOf(d)};b.enabled=!0;b.controllers=[null,null];b.TK=[!1,!1];b.IF=[null,null];b.Px=[null,null];b.W1=null;b.zS=[null,null];b.wha=[null,null];b.Lh=[];b.w5=!1;b.JF=[];b.xha=[];b.Km=null;b.Vha=null;return b}();new h.Matrix4;return a}); 1375define("mo",["require","exports"],function(){return function(){function a(f){this.Gc=this.it(f.s4);this.ox=this.it(f.u4);this.Ax=this.Wk([0,0,0],0);this.k0=this.Wk([0,0,0],.125);this.iRa=this.Wk(this.Gc,1);this.jRa=this.Wk(this.ox,1);this.rPa=this.Wk(this.ox,1);this.qPa=this.Wk(this.Gc,.5);this.oPa=this.Wk(this.Gc,1);this.pPa=this.Wk(this.ox,1);this.Il=this.Xg=128;this.c8=4E3;this.Oqa=.1;this.Jl=.16;this.Yo=.04;this.Mpa=this.LW=.68-this.Yo;this.KW=1-this.Yo;this.T=document.createElement("canvas"); 1376this.T.width=this.Xg;this.T.height=this.Il;this.Da=this.T.getContext("2d");this.od=this.Rv=!1;this.aJ=this.PZ=void 0;this.cD=0}a.prototype.it=function(f){return(f=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(f))?[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]:[0,0,0]};a.prototype.Wk=function(f,l){return"rgba("+f.join(",")+", "+l+")"};a.prototype.OG=function(f,l){this.od=f;this.PZ=l};a.prototype.zy=function(f){this.Rv=f};a.prototype.De=function(){return this.Xg};a.prototype.Te=function(){return this.Il}; 1377a.prototype.cg=function(){return this.T};a.prototype.update=function(f){return this.Rv?this.mRa(f):this.od?this.rRa():this.qRa()};a.prototype.dispose=function(){this.Da=null;this.T.width=this.T.height=1};a.prototype.hI=function(){var f;null===(f=this.Da)||void 0===f?void 0:f.clearRect(0,0,this.Xg,this.Il)};a.prototype.qRa=function(){if(this.aJ==a.Hma)return!1;this.hI();this.Uqa(this.iRa,1);this.aJ=a.Hma;return!0};a.prototype.rRa=function(){if(void 0===this.PZ){if(this.aJ==a.aa)return!1;this.hI(); 1378this.Uqa(this.jRa,2)}else this.kXa(this.PZ);this.aJ=a.aa;return!0};a.prototype.mRa=function(f){for(this.cD+=f;this.cD>this.c8;)this.cD-=this.c8;this.lPa(this.cD/this.c8);this.aJ=a.oV;return!0};a.prototype.Uqa=function(f,l){this.Sj(this.Oqa*l+this.Yo,0,this.Ax,this.k0,0,2*Math.PI);this.Sj(this.Oqa*l,0,this.Ax,f,0,2*Math.PI)};a.prototype.sRa=function(f){this.Sj(this.LW-.5*(this.Jl+this.Yo),this.Jl+this.Yo,this.k0,this.Ax,0,2*Math.PI);this.Sj(this.LW-.5*this.Jl,this.Jl,this.qPa,this.Ax,0,2*Math.PI); 1379this.Sj(this.LW-.5*this.Jl,this.Jl,this.rPa,this.Ax,.5*Math.PI,(.5+2*f)*Math.PI)};a.prototype.nRa=function(f,l){this.Sj(this.Mpa-.5*(this.Jl+this.Yo),this.Jl+this.Yo,this.k0,this.Ax,0,2*Math.PI);this.Sj(this.Mpa-.5*this.Jl,this.Jl,this.oPa,this.Ax,0,2*Math.PI);f=(.5+2*f)*Math.PI;for(l=(.5+2*l)*Math.PI;l<f;)l+=2*Math.PI;var m=f-this.Yo/(2*this.KW*Math.PI),k=l+this.Yo/(2*this.KW*Math.PI);Math.abs(k-m+2*Math.PI)<2*this.Yo&&(m=0,k=l);this.Sj(this.KW-.5*(this.Jl+this.Yo),this.Jl+this.Yo,this.k0,this.Ax, 1380m,k);this.Sj(this.KW-.5*this.Jl,this.Jl,this.pPa,this.Ax,f,l)};
1380a.prototype.Sj=function(f,l,m,k,c,h){var g=Math.round(.5*this.Xg),b=Math.round(.5*this.Il),d=Math.min(g,b);f=Math.round(f*d);var e=this.Da;e&&(e.imageSmoothingEnabled=!0,e.lineWidth=l*d,e.strokeStyle=m,e.fillStyle=k,e.beginPath(),e.arc(g,b,f,c,h,!1),e.stroke(),e.fill())};a.prototype.lPa=function(f){this.hI();if(.25>f){var l=f/.25;f=.5*l}else.5>f?(l=(f-.25)/.25,f=.5+l,l=1+.5*l):.75>f?(l=(f-.5)/.25,f=.5+.5*l,l=.5+l):(f=l=(f-.75)/.25,l=.5+ 1381.5*l);this.nRa(f,l)};a.prototype.kXa=function(f){this.hI();this.sRa(f)};a.Hma="initial";a.oV="changing";a.aa="over";return a}()});define("nn",["require"],function(){return{ddb:"single",FRONT:"front",ab:"left",BACK:"back",tb:"right",Ec:"top",wc:"bottom"}}); 1382define("jH",["require","nn"],function(a){a=a("nn");var f={},l=Math.PI/180,m=new THREE.Matrix4;new THREE.Matrix4;var k=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];f.Fg=500;f.U5=.5*f.Fg;f.wMa=f.Fg;f.Ina=[a.FRONT,a.tb,a.BACK,a.ab,a.Ec,a.wc];f.aCa=function(c,h){for(var g=f.Fg,b=f.U5,d=c*h,e=this.Uv(),n=[],q=0,p=6*d;q<p;q++)n.push(q);q=[];var r=d;q.push(this.QH(e,c,h,-b,+b,-b,+g,0,-g,0,n.slice(0,r)));p=r;r+=d;q.push(this.QH(e,c,h,+b,+b, 1383-b,0,+g,-g,0,n.slice(p,r)));p=r;r+=d;q.push(this.QH(e,c,h,+b,+b,+b,-g,0,-g,0,n.slice(p,r)));p=r;r+=d;q.push(this.QH(e,c,h,-b,+b,+b,0,-g,-g,0,n.slice(p,r)));p=r;r+=d;q.push(this.QH(e,c,h,-b,+b,+b,+g,0,0,-g,n.slice(p,r)));q.push(this.QH(e,c,h,-b,-b,-b,+g,0,0,+g,n.slice(r,r+d)));e.mergeVertices();e.computeFaceNormals();e.userData.type="cube";e.userData.kEa=c;e.userData.yKa=h;e.userData.K8a=q;return f.zR(e)};f.UK=function(){var c=this.Uv();this.Noa(c,-.5,.5,0,1,0,0,0,-1,0,0);c.mergeVertices();c.computeFaceNormals(); 1384c.userData.type="plane";return f.zR(c)};f.$Ba=function(c,h,g,b,d,e,n,q,p,r,t,u){var v=this.Uv();v.vertices.push(new THREE.Vector3(c,h,g));v.vertices.push(new THREE.Vector3(b,d,e));v.vertices.push(new THREE.Vector3(n,q,p));v.vertices.push(new THREE.Vector3(r,t,u));v.faces.push(new THREE.Face3(0,2,1,null,null,0));v.faceVertexUvs[0].push([new THREE.Vector2(0,1),new THREE.Vector2(1,0),new THREE.Vector2(1,1)]);v.faces.push(new THREE.Face3(0,3,2,null,null,0));v.faceVertexUvs[0].push([new THREE.Vector2(0, 13851),new THREE.Vector2(0,0),new THREE.Vector2(1,0)]);v.mergeVertices();v.computeFaceNormals();v.userData.type="quad";return f.zR(v)};f.AIa=function(c,h,g,b,d){c=f.sfa(c);var e=c.faceVertexUvs[0][0];e[0].x=h;e[0].y=g+d;e[1].x=h;e[1].y=g;e[2].x=h+b;e[2].y=g;e=c.faceVertexUvs[0][1];e[0].x=h;e[0].y=g+d;e[1].x=h+b;e[1].y=g;e[2].x=h+b;e[2].y=g+d;c.uvsNeedUpdate=!0;return f.zR(c,!0)};f.Rr=function(){return f.U5};f.wia=function(c,h){return 2*c*Math.tan(.5*h*l)};f.xia=function(c,h){return 2*c*Math.tan(.5*h* 1386l)};f.pu=function(c){return Math.max(Math.min(3.539647*c-6.669366*c*c+4.7454*c*c*c,f.U5),.1)};f.Uv=function(){var c=new THREE.Geometry;c.userData={};return c};f.dispose=function(c){c&&(c.isBufferGeometry&&c.userData&&c.userData.geometry&&c.userData.geometry.dispose(),c.isGeometry&&c.userData&&c.userData.PK&&c.userData.PK.dispose(),c.dispose())};f.zR=function(c,h){if(c.isBufferGeometry)return c;if(c.isGeometry){if(!c.userData.PK||h)c.userData.PK&&c.userData.PK.dispose(),h=c.toBufferGeometry(),(h.userData= 1387{}).geometry=c,c.userData.PK=h;return c.userData.PK}return null};f.sfa=function(c){return c.isGeometry?c:c.isBufferGeometry&&c.userData&&c.userData.geometry?c.userData.geometry:null};f.QH=function(c,h,g,b,d,e,n,q,p,r,t){for(var u={},v=0,w=0;w<g;w++){u[w]={};for(var x=0;x<h;x++)this.Noa(c,b+n*x/h+0*w/g,d+0*x/h+p*w/g,e+q*x/h+r*w/g,n/h,0/h,q/h,0/g,p/g,r/g,t[v]),u[w][x]=c.faces.slice(c.faces.length-2,c.faces.length),v+=1}return u};f.Odb=function(c,h,g){h=.5*h/Math.tan(.5*g);m.copy(c);c=k[0];c.x=0;c.y= 13880;c.z=0;c.applyMatrix4(m);g=Math.sqrt(c.x*c.x+c.y*c.y+c.z*c.z);var b=h/c.z,d=k[1];d.x=c.x*b;d.y=c.y*b;d.z=h;return g/Math.sqrt(d.x*d.x+d.y*d.y+d.z*d.z)};f.K5a=function(c,h,g){c=f.sfa(c);m.copy(h.matrixWorldInverse).multiply(g);switch(c.userData.type){case "cube":return f.NTa(c,m,h.projectionMatrix);default:return f.OTa(c)}};f.F5a=function(c,h,g){c=f.sfa(c);switch(c.userData.type){case "plane":return f.tTa(c,h,g);case "quad":return f.$ra(c,1,h,g)||f.$ra(c,0,h,g);default:return null}};f.Noa=function(c, 1389h,g,b,d,e,n,q,p,r,t){var u=c.vertices.length;c.vertices.push(new THREE.Vector3(h,g,b));c.vertices.push(new THREE.Vector3(h+q,g+p,b+r));c.vertices.push(new THREE.Vector3(h+d+q,g+e+p,b+n+r));c.vertices.push(new THREE.Vector3(h+d,g+e,b+n));c.faces.push(new THREE.Face3(u,u+1,u+2,null,null,t));c.faceVertexUvs[0].push([new THREE.Vector2(0,1),new THREE.Vector2(0,0),new THREE.Vector2(1,0)]);c.faces.push(new THREE.Face3(u,u+2,u+3,null,null,t));c.faceVertexUvs[0].push([new THREE.Vector2(0,1),new THREE.Vector2(1, 13900),new THREE.Vector2(1,1)])};f.tTa=function(c,h,g){var b=c.faces[0],d=c.faces[1],e=k[0],n=k[1],q=k[2];e.copy(c.vertices[b.a]).applyMatrix4(h);n.copy(c.vertices[d.c]).applyMatrix4(h);q.copy(c.vertices[b.b]).applyMatrix4(h);h=n.x-e.x;d=n.y-e.y;var p=n.z-e.z;n=q.x-e.x;var r=q.y-e.y;q=q.z-e.z;
1390var t=d*q-p*r,u=p*n-h*q,v=h*r-d*n,w=g.direction.x*t+g.direction.y*u+g.direction.z*v;if(0!=w&&(v=-(t*(g.origin.x-e.x)+u*(g.origin.y-e.y)+v*(g.origin.z-e.z))/w,!(0>=v||(t=g.origin.x+g.direction.x*v-e.x,u=g.origin.y+ 1391g.direction.y*v-e.y,e=g.origin.z+g.direction.z*v-e.z,g=(h*t+d*u+p*e)/(h*h+d*d+p*p),e=(n*t+r*u+q*e)/(n*n+r*r+q*q),h=c.faceVertexUvs[0][0][0],d=c.faceVertexUvs[0][1][2],c=c.faceVertexUvs[0][0][1],0>g||1<g||0>e||1<e))))return{cKa:h.x+(d.x-h.x)*g+(c.x-h.x)*e,wKa:h.y+(d.y-h.y)*g+(c.y-h.y)*e,materialIndex:b.materialIndex}};f.$ra=function(c,h,g,b){var d=c.faces[h],e=k[0],n=k[1],q=k[2];e.copy(c.vertices[d.a]).applyMatrix4(g);n.copy(c.vertices[d.b]).applyMatrix4(g);q.copy(c.vertices[d.c]).applyMatrix4(g); 1392g=n.x-e.x;var p=n.y-e.y,r=n.z-e.z;n=q.x-e.x;var t=q.y-e.y;q=q.z-e.z;var u=p*q-r*t,v=r*n-g*q,w=g*t-p*n,x=b.direction.x*u+b.direction.y*v+b.direction.z*w;if(0!=x&&(w=-(u*(b.origin.x-e.x)+v*(b.origin.y-e.y)+w*(b.origin.z-e.z))/x,!(0>=w))){u=b.origin.x+b.direction.x*w-e.x;v=b.origin.y+b.direction.y*w-e.y;b=b.origin.z+b.direction.z*w-e.z;if(0!=(e=t*g-n*p))g=(v*g-u*p)/e,p=(v*n-u*t)/-e;else if(0!=(e=q*g-n*r))g=(v*g-u*p)/e,p=(v*n-u*t)/-e;else if(0!=(e=q*p-t*r))g=(b*p-v*r)/e,p=(b*t-v*q)/-e;else return;if(!(0> 1393p||1<p||0>g||1<g||1<p+g))return n=c.faceVertexUvs[0][h][0],t=c.faceVertexUvs[0][h][1],c=c.faceVertexUvs[0][h][2],{cKa:n.x+(t.x-n.x)*p+(c.x-n.x)*g,wKa:n.y+(t.y-n.y)*p+(c.y-n.y)*g,materialIndex:d.materialIndex}}};f.NTa=function(c,h,g){var b=Array.prototype.concat.apply([],c.userData.K8a.map(function(d){return f.psa(h,g,d,c.vertices,0,0,c.userData.kEa,c.userData.yKa).map(function(e){return e.materialIndex})}));return f.zsa(b)};f.OTa=function(c){c=c.faces.map(function(h){return h.materialIndex});return f.zsa(c)}; 1394f.zsa=function(c){var h={};c.forEach(function(b){h[b]=!0});c=[];for(var g in h)c.push(g);return c};f.psa=function(c,h,g,b,d,e,n,q){var p=[];if(f.h0a(c,h,b[g[e][d][0].a],b[g[e+q-1][d][0].b],b[g[e+q-1][d+n-1][0].c],b[g[e][d+n-1][1].c]))if(1==n&&1==q)p.push(g[e][d][0]);else for(e=1<q?[e,e+Math.ceil(.5*q),e+q]:[e,e+q],d=1<n?[d,d+Math.ceil(.5*n),d+n]:[d,d+n],n=1;n<e.length;n++){q=e[n-1];for(var r=e[n]-q,t=1;t<d.length;t++){var u=d[t-1];p=p.concat(f.psa(c,h,g,b,u,q,d[t]-u,r))}}return p};f.h0a=function(c, 1395h,g,b,d,e){var n=[null,null,null,null,null];k[0].copy(g).applyMatrix4(c);k[1].copy(b).applyMatrix4(c);k[2].copy(d).applyMatrix4(c);k[3].copy(e).applyMatrix4(c);g=0;b=4;for(c=0;4>c;c++){d=k[(c+3)%4];e=k[c];var q=k[(c+1)%4];if(0>=e.z)n[g++]=e;else{if(0>=d.z){var p=k[b++],r=d.z/(d.z-e.z);p.x=d.x+(e.x-d.x)*r;p.y=d.y+(e.y-d.y)*r;p.z=-1E-5;n[g++]=p}0>=q.z&&(p=k[b++],r=e.z/(e.z-q.z),p.x=e.x+(q.x-e.x)*r,p.y=e.y+(q.y-e.y)*r,p.z=-1E-5,n[g++]=p)}}if(2<g){for(c=0;c<g;c++)n[c].applyMatrix4(h);c=0;for(h=g-2;c< 1396h;c++)if(g=n[c],b=n[c+1],d=n[c+2],!(1<g.x&&1<b.x&&1<d.x||-1>g.x&&-1>b.x&&-1>d.x||1<g.y&&1<b.y&&1<d.y||-1>g.y&&-1>b.y&&-1>d.y))return!0}return!1};f.bCa=function(c,h,g,b,d,e,n,q,p){var r=c*l,t=.5*-r+.5*Math.PI,u=h*l,v=.5*(Math.PI-u)-g*l,w=.5*f.wMa,x=64/Math.PI,y=Math.max(2,Math.ceil(r/b*x));x=Math.max(2,Math.ceil(u/d*x));for(var z=b*y,B=d*x,E=this.Uv(),I=0,A=[],C=0;C<=B;C++){for(var J=[],D=v+C*u/B,O=0;O<=z;O++){var R=-(t+O*r/z);E.vertices.push(new THREE.Vector3(-w*Math.cos(R)*Math.sin(D),+w*Math.cos(D), 1397+w*Math.sin(R)*Math.sin(D)));J.push(I++)}A.push(J)}for(t=r=0;t<d;t++)for(u=t*x,v=0;v<b;v++){w=v*y;for(C=0;C<x;C++)for(z=n+(1-C/x)*p,B=n+(1-(C+1)/x)*p,O=0;O<y;O++){I=e+O/y*q;J=e+(O+1)/y*q;D=A[u+C][w+O];R=A[u+C+1][w+O+1];var U=A[u+C][w+O+1];E.faces.push(new THREE.Face3(D,A[u+C+1][w+O],R,null,null,r));E.faceVertexUvs[0].push([new THREE.Vector2(I,z),new THREE.Vector2(I,B),new THREE.Vector2(J,B)]);E.faces.push(new THREE.Face3(D,R,U,null,null,r));E.faceVertexUvs[0].push([new THREE.Vector2(I,z),new THREE.Vector2(J, 1398B),new THREE.Vector2(J,z)])}r++}E.mergeVertices();E.computeFaceNormals();E.userData.type="sphere";E.userData.Ue=c;E.userData.vs=h;E.userData.pitch=g;E.userData.kEa=b;E.userData.yKa=d;return f.zR(E)};return f}); 1399define("cL","require exports mo bn three.mod jH".split(" "),function(a,f,l,m,k,c){a=function(){function g(b,d){this.Sx=this.Cp=null;this.pc=b;this.wl=d;
1399this.canvas=new l(d);this.d4a();this.X3a();this.qa=new k.Group;this.qa.add(this.Cp);this.qa.add(this.Sx)}g.prototype.update=function(){this.canvas.update(m.RCa)&&(this.Cp.material.map.needsUpdate=!0);var b=c.pu(this.wl.MGa||2),d=2*b*Math.tan(g.FLa/2);this.qa.matrixAutoUpdate=!1;this.qa.matrixWorldNeedsUpdate=!1;this.qa.matrix.identity();this.qa.matrix.multiply(h.makeTranslation(0, 14000,-b));this.qa.matrix.multiply(h.makeScale(d,d,d));this.qa.updateMatrixWorld(!0)};g.prototype.ff=function(b){this.Cp.material.opacity=b};g.prototype.OG=function(b,d){void 0===d&&(d=void 0);this.canvas.OG(b,d)};g.prototype.zy=function(b){this.canvas.zy(b)};g.prototype.dispose=function(){var b;this.A4a();this.x4a();this.canvas.dispose();null===(b=this.qa.parent)||void 0===b?void 0:b.remove(this.qa);this.qa=null};g.prototype.x4a=function(){var b;if(this.Sx){this.Sx.geometry.dispose();var d=this.Sx.material.map.source; 1401d.width=d.height=1;this.Sx.material.map.dispose();null===(b=this.Sx.parent)||void 0===b?void 0:b.remove(this.Sx);this.Sx=null}};g.prototype.X3a=function(){var b=document.createElement("canvas");b.width=b.height=256;var d=b.getContext("2d");d.fillStyle="rgba(0, 0, 0, 0)";d.fillRect(0,0,256,256);d=new k.Texture;d.image=b;d.generateMipmaps=!0;d.minFilter=k.LinearMipMapLinearFilter;d.needsUpdate=!0;b=new k.MeshBasicMaterial({map:d,transparent:!0});b.map.needsUpdate=!0;b.needsUpdate=!0;b=new k.Mesh(new k.PlaneGeometry, 1402b);b.renderOrder=1E4;this.Sx=b};g.prototype.A4a=function(){var b;this.Cp&&(this.Cp.geometry.dispose(),this.Cp.material.map.dispose(),this.Cp.material.dispose(),null===(b=this.Cp.parent)||void 0===b?void 0:b.remove(this.Cp),this.Cp=null)};g.prototype.d4a=function(){var b=new k.PlaneGeometry,d=new k.Texture;this.canvas.update(10);d.colorSpace=k.SRGBColorSpace;d.image=this.canvas.cg();d.generateMipmaps=!0;d.minFilter=k.LinearMipMapLinearFilter;d.needsUpdate=!0;d=new k.MeshBasicMaterial({map:d,transparent:!0}); 1403this.Cp=new k.Mesh(b,d);this.Cp.renderOrder=1E4};g.FLa=6*Math.PI/180;return g}();var h=new k.Matrix4;return a}); 1404define("jA","require exports pw jx cL jE three.mod".split(" "),function(a,f,l,m,k,c,h){a=function(){function d(){}d.initialize=function(){this.ny=this.ny.bind(this);this.my=this.my.bind(this);this.XR.N.bind(l.ba,this.xe.bind(this),this,!0);this.XR.N.bind(l.Th,this.GB.bind(this),this,!0);this.XR.N.bind(l.gq,this.o8a.bind(this),this,!0)};d.qb=function(e){this.enabled=e;this.lKa()};d.xe=function(){this.lKa()};d.GB=function(){this.setCamera(this.enabled&&this.XR.Iu||null);this.Vla();this.hcb()};d.o8a= 1405function(){this.XR.zka==c.OV&&this.XR.N.trigger(l.Uf,{pointerState:this.pc})};d.lKa=function(){this.XR.isPresenting&&this.enabled?this.mla():this.Fla()};d.setCamera=function(e){this.camera!==e&&(this.camera=e,this.jcb())};d.Vla=function(){this.XR.fL.origin.copy(this.XR.Bc);this.XR.fL.direction.set(0,0,-1).applyQuaternion(this.XR.bg);if(this.enabled){if(1!=this.XR.ng.length&&this.XR.ng[0]!==this.pc){for(;this.XR.ng.length;)this.XR.ng.pop();this.XR.ng.push(this.pc)}this.pc.matrixWorld.copy(g.compose(this.XR.Bc, 1406this.XR.bg,b));this.pc.ray.origin.set(0,0,0);this.pc.ray.direction.set(0,0,-1)}};d.jcb=function(){this.We&&this.We.qa.parent!==this.camera&&(this.We.qa.parent&&this.We.qa.parent.remove(this.We.qa),this.camera.add(this.We.qa))};d.mla=function(){var e;this.We||(this.We=new k(this.pc,this.XR.wl),null===(e=this.camera)||void 0===e?void 0:e.add(this.We.qa),this.controller=this.XR.mh.xr.getController(0),this.controller.addEventListener("selectstart",this.ny),this.controller.addEventListener("selectend", 1407this.my))};d.Fla=function(){this.We&&(this.We.dispose(),this.We=null,this.controller.removeEventListener("selectstart",this.ny),this.controller.removeEventListener("selectend",this.my),this.controller=null)};d.hcb=function(){var e,n,q,p;if(this.enabled){if(this.wi=this.pc.wi)this.pJa=this.pc.BGa;var r=Date.now();if(this.XR.zka==c.sH){var t=this.wi?r-this.pJa:0;var u=this.XR.wl.QGa;this.AGa<u&&t>=u&&this.XR.N.trigger(l.Uf,{pointerState:this.pc});this.AGa=t;null===(e=this.We)||void 0===e?void 0:e.OG(this.wi&& 1408this.pc.TL,Math.min(1,t/u))}else null===(t=this.We)||void 0===t?void 0:t.OG(this.pc.TL);this.pc.wi||this.pc.Hr?this.rT=void 0:void 0==this.rT&&(e=this.XR.wl.WCa,void 0!==e&&(this.rT=r+e));r=(void 0!==this.rT?this.rT:Infinity)-r;null===(n=this.We)||void 0===n?void 0:n.ff(this.pc.hidden?0:Math.max(.01,Math.min(1,r/500)));null===(q=this.We)||void 0===q?void 0:q.zy(this.pc.Hr);null===(p=this.We)||void 0===p?void 0:p.update()}};d.ny=function(){this.pc.pressed=!0;this.XR.N.trigger(l.lz,{pointerState:this.pc})}; 1409d.my=function(){this.pc.pressed=!1;this.XR.N.trigger(l.lz,{pointerState:this.pc});this.XR.N.trigger(l.Uf,{pointerState:this.pc})};d.pc=new m;d.enabled=!1;d.camera=null;d.We=null;d.wi=!1;d.pJa=0;d.AGa=0;d.rT=void 0;d.controller=null;return d}();var g=new h.Matrix4,b=new h.Vector3(1,1,1);return a}); 1410define("kF","require exports pw bT hO jA".split(" "),function(a,f,l,m,k,c){return function(){function h(){}h.iab=function(g){this.UGa=g};h.initialize=function(){this.XR.N.bind(l.ba,this.xe.bind(this),this,!0);this.XR.N.bind(l.Th,this.GB.bind(this),this,!0);this.XR.N.bind(l.jma,this.X7a.bind(this),this,!0);this.XR.N.bind(l.kma,this.Y7a.bind(this),this,!0)};h.xe=function(){this.Wla()};h.GB=function(){};h.X7a=function(){this.Wla()};h.Y7a=function(){this.Wla()};h.Wla=function(){var g=this.XR.isPresenting? 1411this.UGa===m.SM&&k.isConnected()?m.SM:m.sH:null;this.pointerType!==g&&(this.pointerType=g,k.qb(g===m.SM),c.qb(g===m.sH))};h.UGa=m.SM;h.pointerType=null;return h}()});define("cN",["require","exports"],function(){return function(){return function(){this.WCa=1E3;this.s4="#ffffff";this.MGa=2;this.Yja="#007acc";this.u4="#ff6600";this.QGa=1200;this.QCa=0}
1411}()}); 1412define("cl",["require"],function(){return{xl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAckAAACACAMAAABXwWJTAAAAYFBMVEUAAACAgICAgICAgIDzbUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDzbUTzbUTzbUTzbUTzbUTzbUTzbUTzbUTzbUTzbUTzbUTzbUTzbUTzbUSAgIBEWPGZAAAAHnRSTlMAgL9AgBDvn2Aw388gj69wUO8QRb9gn98gzzCvcI9pmC3GAAAPKUlEQVR42uyc65raIBBABxAISUiy6rq3Vt7/LXvb7YATIEmxX9ScX7YiZnMyyGUANu6O1+fdbfH8ChuU55fz7XE8wEbI+9v5NjkujEvRW87dT2resaGFe+H5fLM8vcNcZNUpF9JYA/fA4XzDzFXZauXGqCsJq8J9wmAyr0/nW+ZtP8uji6IYrIkFJk/n22YHk2EuSS1gPcw3+Xq+cZ6mBqVpXA67niZ2vsnv51vnGSZRuQk0q+nHzjd5qwMQ5ART0G4Sai292PkmzzfP2yKR3LJf6MaFWFgHj2jyPFuksgLfkoP/poaVsJkcxYZDR7hAMrU2kZvJbGdH9TCC1CsTuZkcw6gJnVOhViVyMzlGM+lnsG04rIjNJIUlRSJyPdMCm8kxpFpfx3QzOc7UAUgDN8Rm8pIWe62rmYnbTEaY+CvZwy2xmbxEuU9quCk2kxcM7osKborN5AW6VEia3vJfdExISCKY5r+wvclVqT9rnGFSDuzrOh7LZF1kjaNltfPoqrhG7Txq20IE6VdZMwlg+R+qhEnROUTZ9nFMYs/VwGKkHkngGvfISUlOXeKcPaIG4OguYtKQ6tnDmKzcJwoWUyk3AjdUT+fGYEAw9UixrEnmKI15EJPMfdLBUrQbR1VpPUgjpyWipE1KHUlyeAyTHd6QZcjGRanIiksEZYjI+SZ5tPKHMMmTYxDuonBahFKlRSKqJSLnmtSJyh/KpJhpUmGyQQKsVdYOSTawxi0x2QcXxzn3K99MpgIOfiEcUv8ZHg5aef8nsRlHukoCQFv51dsx5coKTCRKmmy9L9Xmdz0VVsQ2kzmT9VjSiOyooGG0Nyk8a4Z2QK3EpOqMST1Wvcb2dTMZxwR3vTGRLksLF8o1GZcEnec20mHSSZNt0EzTD9kHMsnmmhToB1tRqtJehKQmXxE6t6FIpEuZtIFI+pOr5N2btHjH58ck+jHRelWooYlnLNhwaYaRggmT9WgfmHvxffcmGY4q5v9Oagw0KsiXLF28Ea8CyQOJclqQmjT4j8hMcH33JoVnhmIEQWN5jJ828Ygw3w9PzeFLP5b7eEFqssdGFOfpA1R77ybBfTHAJDpsNdvETF/4JkvNP1g/XjlqJdioSY3fheMPj6a6/x4P8Jl5dQ1Gl8D4SYRak/EDwneSSg4boia595pur9fmEWYGvLkRCROQXv+ETRvBeK9VpEpqUgOljZps/l7IwF1I3cvFM+jH42m3Ox5figt5OR53u9PxWNQkjsTYrO2yVc4kGzHJc3kcInkxEZP4uqtdSDcsXZ98+4ZHbewPp6diFp9Ohz0eD7R7KWYSuDfmQrKlW8+VXIvJEMXapdkfp1cI2X97KRONZIP54VjKZOVmLFEK/B3LxaRdYtIsM6kchZPe1b+dR7XfFYhH9Oi7fCtjEuoZ3Vc+OrYYkkXD15R26u+kyfV4EKUNEGbe7vInpR33MM6ujMmKrsnmi7Z+gNpUHi33pxBMqtJ+ed+V9nJG+OejqPYf1zrv4fBUwiQ0ZBEqglFhQ5xKsBz86OpRFkWPjifbeEFqkjkPLf4l3/XtFRKcrnUEy/tTCZMitw+WrhyK8BEQCT8VAJiEc5zJI1NDIVJFTQ5eOmX8LyhxONzyqPwOSd5LmARLkl4yO5+77KStCJc46nhQ2qBSE+9JMxc1KROD4mqWyYxI2C/9rfwocswl5KDruJRKkcSY1sUEySaUbPGjUeUVBM478iDFTUIX7SlZTKgtcjLc+9UOKvsoYbJVudPpWu4c9cbzi4kVkJXgcT/qMmWAkWcjbrKKXUjlpTOUOblo2WDkAFn2TwVMgkkPxQY0E0SL8O0ikvurSTQ7AxEK/ZAd1haQtklnf9TjKpmf517kfsP+Zcn4A8o8I/MPrVO6Ml+SK62iecaeYS7GctKHkahnEs8gpd3m3vsmQfYWxEwO3oPW4t6FIMuozP2Gb8tCskhQzt4SgLmGKp0wLpX/DhuECL13ACgI6XohBOvG8ym5Q2qLVSZNQhdciBBisPXFhSwdJ9AbPpe3UoddQop8ZjEViYjJhbVLwcjTQUiblCp7IdleydUO/P1W6gDaxfsCKN2cLRzKTK1ek2dqrkkwKi0yb/Ljasfiv8I0XpaZpDCXowdClRWZV6lJ8zDfJBiVFgmFIgf2sxdAip0lDFNpuSNktzoOKlJaTt3VxSad/qzqhEn6KdqO5LslhUKHBnupaIfpCB73KGL+u6nn3w+1ozQCCNLSYoYnTNJP0eT4YrfpeK2T6A8FTQK0VjmK0mKWf91CaqsyUlfTqtQSoiaRVpPrllDc5Me1TL6XuUREMB6Ggx0gg7FNuIMnyqAVatRDqso6XG4MTbJPBAS0vXchvJcA5U3uyh5EX/QSKUb0n3fKwDSkqNhPBpEPe8F+0os2W3BgP/mapECTGfwLWYPJQzmT9wGPJM3+99t0ulbr+vogJn+0d6bbbcJAFNZibQgBDt5iJ/X7v2Xt1OogRmx2RFyX+6enwYiTfB6BRsMdSAdN0//6xPMMEtqK7ioEkYjk8aVWIc+grypy11mFYEkiktsXygw8gzSLF2+Zh8287quYwqqTZeveX4mk6yj/EPYxM6//KYP+HMphsWmiIDOSiuSv+od3tVYvRZK4IM+GrSV0OpKb8Y8lSVaU69ciKWTTxaXihPPAVZLcrW/6gyer/vj49VokBzaveUqSm3+/IuuppHtAOpKAJOgjVa/n/ZgqyZcj2YNSkbQk18dU7Uh3w7ffFyRJdAqQ5DtiZ9d95mm1Wp3W94b7cf2SJInJ4nvGD2l8q/npIHc+mOvTvW/4vCZJQqiMbF4nJAkoj5NA4nPq9YSohHNeliQRmiHr+4QkQeuaxHV47wrIt3FvAZ3eutcfL0zyIsEpdUxRygFjKpLDf/GP9cDDzDDKfR39hmx+vTpJpLQkQesVYrndd07HU94d2dSI42XKXkgmIOl12jZg1p/rae/THXuejj+PDYzbSzwuJNOQBL1vVlftNndkbz56Q37zubrqy7NpIZmE5HR9PlQhspB8GpLrt969xoXkVf8EyW1/JcdC8qp/geT7wNbGT5E0pbfws0oL8h3K+UXGm/4KMqv4VSIlyXpgu/FnSGp7DlRw8rio9/9gsLk4m2BDMxHJzfCW9PwkdXZGKvKFZK/qoX2q+UkKdo5JVgvJ/pCcOSgnbSJljDX+pxeSvSE5c1CONouwvnMyd56mXkj2hOTcQTkSJOMRWxe7kOwJybmDcpTnhyxjvXjVMrs+Uoi3n5Wk6zSRVGe1PPE8VBy7nZMkB5BIelmFPPg+0H5GkqzbynzJDPS/fzV/UA6HpBubehtbtsF7SMJhLMNNZ+otH+uQkM9AckfGaT8bSTWyVQhX2fkqWWgRJFWFd/7Ibm1WdCHB9wWTrG6HCzQN6FvWNys0CSRK5k1IgLNP6Iqv6zEn/ljQ2NtySiQmeSDjtJ2NpBwVkoahulOPiUNj17JlnsQMIsmzLktgnXW59FAZ8+m6DVxJMPoVKnB2QiTnDUkoWp+xa6GZaBlaiAZJ8IsT7V7qUvOQpEY2eF3pQiY6jsiqQTLo32uy1ggsHckDGas6PUmAkU0u7rdwMtjWqYgzXRiT6LDyuGynoyg+UgFJCsb52IGQIZKJQzJ9HcjQbbIY55KeKUoZhMCNJIQMv0ak/6TzPweSXozSApKBAUjrqLMBSgcnqcy74nuSVsIlhMTDJyN5IONVz0OSjTCdKpp3NUGheQQF43QjeEl4kPUTDpME72x+A2YauFQemM85eFnd+ZMgkuFtWS5MxW8XkH74LCXJHZmizdOQVNJHSGOuVQ2SOujQpUK/eiAZZiCE+nuMwzDBdM49O93KLF6JtyZhjYZPSPJApqh+GpJElJnMW/dWCSQrhNiLt0lKg2K
1412d+2OagDS4qPMgZyik/2gIkmRoeJaM5I5M0+ZpSF5k0Mol9yQdjIVac9EWyRI7CiiSR5ITrtFcS4j2iFe0YSMZHhs+FckDmab6mUhCgVNjlU+DXmYisp8pQpKSgCC4y5j9DpAJK7u4HzCcAFzkGdwlIvlJpmozF0k3xr/X/n0u5bRJ0oZTqcBPS0DSxbx3TAFMQKrxQ11IMGwNSFZ9v4dJQxKKlecPyuEM94CEChfnTZIKDdWdQa9iTUwr5mMZdQJn2HJbBiRzlCxPn0FfEfJjQTm46BeTW4kASYruYE21cjzRuR1T8CfKuA0+kCRe+NfA10wekumDctBcTA+BHE2SfivJM4AcQ5IkJQkh+XNBOdiwkI1p5Kyq/Iq+UnOS1L5f79dxXtoEJNOFJKhOT7Lsd56CNTeHOLbdJBk6eZBkmflDyJfX+mSDQPdPTBJvBLQGnjEksXbJSQo51KC5QKyLKEkdS8a7gGQZfSRBKyH4XhjUctYgkgBNo77BiGT6kEz5Ft6a9In2eRZdg0Gi41mUpInFRRaQZDE/bOH8YgadSEvUfVvHSRaRnQDdIrlOHJLpg3IzxrtRxRcfVhD0TFTF75OAHMRbOZ4cT64WxkMncrzpZuMkdXT4cNzTjCGJdUiXkwAwGCWkq61o58FE1kHSISLCtkiy4MJ+ZJjgw2tkkOKF22ScpMDD63bedZs4JNMH5XGcN67l0UIB6ydIoNNBMkdJcoX2QlR7cSOFn+CtaF+DoglSo1WIl8LDt0m+rWcMSaxDsskVu/4rjo3lzy78GxnbXk+iGmgOnfMQSWhgWco/tCDKrQmbMmei/eWg506SuUTDI0PYjzlDEms3Q620gkZXJb+IFo2SDu6LpHIiKtWZGQAiZ3b9KHcyutMsHSck918UG5jzqkp8XQMYMPiOmTLDmQGQbgxv/PBAEq3PE5i0Jg7Kz4d6iOomBC+GSHZmg2xAEh2WAjDgSwNjEEMkvVS8YSVHNmSTBeavj2k7x64oz2IcrYm1QNYUkexCaaswg+6nZtR+QGOQ0e+YFYhkJ0qNsxFvmzlBYpQpIxJ3hsRFp3kAQJMOkvijSrSydYKhSsj4VynjUcZWkE6ScG/0t2sg2esjONot9HHV+3sn9nqSDWcRtOCsCIhmjWpkotlF/l8dMSyAyizDLnKEEHc7p7IQr+jEaOGyKYI+s35AdhXq4wQfFXDNQG/b0x0wT1vykODq73dg3NVkqnhJFWOKaoOOUMcYLfNRZjDoo+iwK03sCC1YgS+ea1owRSsyLFHdPrroZfUb1yq7sW9wtnAAAAAASUVORK5CYII=",CLa:"data:image/png;base64,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", 1413rMa:"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+UkuVCfwLJledG2/JblFRu4Ro40VZVulw2ewEQzDCT5jcbdcrCaj78ebebhW19Nk4dvfRyePsYufJO9jCDBQk0XzszdrOeg1Wq5XK1wtN64M2cxpT/4hvo+xykQdNzN3LKf35OwlvPNzAGq0+/wP4GIRpwBQ8sWzxfLtoGp68B7vx2KQhALoLi0nz8sa7V2HQz8L2xScBMkxfWKI/rDEjZG/WL6JQ2KFWYKHEcxftygm9l08rVokiFdjOu/Lnu5njlfpiIByKmzAY7/TBYUpK/gzsnDwlmL538ua+N86uSJOdJxIUVeRfbc/bQ0MUm61vNVtZwtPh9OsiQ48uqy1p8rdSLI2fqPLCm9UKk0qbIsi6KoBkURjKsqLZUfevJP7rXcLCafhifsbOaXW9JTSRbHu11RND9P1TRFscvjNktVcPEtrc0nyZyTqbu8yIp+WUVx8fNyNUWbJSqUFxWi2b17E9zguOdbSQ8w1jH7cEvHRfpR5HEEQIPzNO96S4Rd+dnKLfw0i5uf2+0IxctV1FXpncM5n90tTGjLzzSTMiyz1tjxAoo/8BgVXGvyOlGeOOfNh3vUZHImT/ppVGzJj+zGcZpNGxVA65wAdJyV3vs0nburQpOH6ey96A78rNmSGF9v2KR+1TDLVAi1N8CaxCv1ZNygeTpejrRll3dGE/rJJS//RCrbbUm/KzWVELKmqCaFQnitoRUFQlbv+7OJs+AYIU/s+eJu8iZuFte9xYvuQIkw2bEhGeIuKeO+EUWGIEdYZlKIlLFVKhrlGZeB4SjgGCC13XtJm5Pp5vcVp6xfNcktkmRXplKEHcsMWCbNOMsKrrEva3BwPO7OQxSe+NLMl/fQbsISN1bnSDqxO1RWEEi2I2dIBYh2ZhaD99RhlGWTwB+yFRXPRpRXgJOX0ee6mt142sSOcm2zG+DE57A2JEEEss05ykuEQiNggCz9fJTlPgUn0oTkwdtqZpfWJzRltwzBSQcGlju9bZZT1+ZF909BGm8NSY2vUCKofhqh3VJTbfJAiHCc5UFhVD9p7QXMuj+sAxFkJ4UoUtqYx/8sb7l3nzhzm9cK4noTv/ZJkmoPzNexjNCKjQEG9IJ4yFLTy324lBuWrQDojZklALYy92AVdeodkyTZ6xut6JgpbSbYy5dBtXtBkFx0CGccIpUuRXpA5WC8BMBkNGBZG5Y46VhikVJPRj5cip7GmqRWySOaugbdYtbEpxhLJtjLUF71+mI4Mkkq3VitDUvyWxetpTCNDzLqs0TmzDLBW3QBj9bGSxrngOqhRJonUSPmt/fEQ3fnJzRl2m572lVZ0dXvCE0FU9KwpiBmRSRPWAYwOegJJc/asMT7lWYCB
1413azK8kHeDMGMg6gh3dyuEp72Co4cfRZAsgBPcngXYL6y6DohD6wYme1NRlbUQr/5QGSEpcRcMGpSNHMFZ06s/lFR9wWT5C7+lgo6ZErH4j6S2yAVb4faBUCvBXhdHyRTs1GMBH12nnijLFsM5D1PGOw+xJs/GWV47em4pnsaIAOF6fyGfmHDokNLg3Xx4UWaIPfnjeIUCaKP25kGJvJJ58iDgMl+jGXdrzYVRvWeo5/SJRcimercySqSoFslvWhgObeBcjKZUnz3F4hHUgxRUtXJ0Hxcu0PsFfttd95LkSENxmpPwrwoqjldph3/XPKbjgK9C27eEtmbG6hAWL+tDiRv1lLTBjFMkyIlN+hpP0f6tB00VSWKDiMsHwFSFtEIxwG+hcYIliZG6YDsj/2BadZ+940zzRt4eAQPMiwDkL9tP3vtUDaJqtCimp7ErNgPct88jKwkm4zFLAkZvvQIsAoqPdwRSW7i0fKcPFulsoatmQS8YKG5Yqv5f8QoNb7eS5bFC7uyxTjs2soWjRmb3xxyr9dUtuCykszIejz2peFIZypXMKKDtkA4ICWSLnHvhHtSVqQYpKmXtvs/nx1N4EGlbVK5eZEpewGOHzgoCCVWH+rCG90I7ctewsxDrh1M8vHYlz1lWHrg3G2Bku5daEs2eSTRwIPWPfHMws26Aeb1myPOlc5KgJ4Hh9q9gJhlEdDDyK7eYFy2iBJVd5/xzTxBPASJB/uSKb4Naf/9qNVKDdxU+5CfgCiE3gyLUBSapWugAirQ1TdBvNWxngXBZKBBrUmyMClKbip9/FxEkmBWhLLrcKo+yUGMG2aM823b+WjUJrH5Aghewq0mp9IeziaRBqIwOFeLK7PkAs4c9RESSmLJmx00QIokSVhiQqoDrN4ekEnywSxhwqJdD7Nkyk+Uh2vOltyTDmAiY/YlUZ1fEya70rUZ49tSZPJC6pMERZL2ilo5os2GJPkBmtcHqcOaWQ5FW6ADz1kJwoMyxpkUw9/AZOVIubMmybre/4tjV25MbHQrke3WoIyVag3Nt7D2d/2m0m+YZKc9ZtbDoFI/vseyQr+PoaQbRY/Glj63mjRPkgP/9Caej2has2uznPzi5WxC4yjDOI4nFXuwepDi3WQD2SYFjYHepBSUnKTkYkU99pKIhz2FsDAbpPTiuMMwkNnNzn6x3YsbcBZEIaAICoWVHmyQXvxAtEL8oJb6/X+eed955mN3u7tO8p/JNhtLiL/8n/f5v8+720dzIiZKTUej7JVRx70woXft6NaxwptyQSmivwb/CMfxLHmWMcqWJgwbfJsWNXFB6dPMQ8xJIU3EQJ88UZgo8OgqySibGiWxpEhSC4/AOQjZeuvY4FgkKEUuVb9knwewXHDZfXERPKKVc4NnENtyPlSbVhx/UWCqfi4N6PGTKXPZgava0D+G5a1qlNCgxSXPKBmmyc2bpIZAlrRvkWNwMTLI8SwXcFVsdl9aPD3qSgjV8YjJ8gygGWtBNUNXuPbFCR4EPXZGknmA02wDpbDEoJKLnmuceFbJDIsqVXYsTiwplHNU/S7TSbPsAqBchNOxACn6VS32va+esEmrYbzyCRyjFZp+i2ZHUXOeOqFRB1ypUMpmp9xdF5SsriVDDNAktgbyukx67SG7xfqIkNM0kogXIFoH3YWEWaE+2Sy0cd3igzelOc+SDVEkHOXEHCfqTJyA58SRuGFAQanUqRGvdnj+7dgmT31ZFAwNJ71b9Il4N70w1lutCv1JlxI+qVEI009xaZ5c1CF6GNFs+Tqq8sgDE88UTDtCk515EptznDYKSIWyISi1OKEbbhiEOpVuZ0l2HByeRbrfAI9VSZIkF+JBqCmmVUqtwRe02JYuMY4EJM9BvasKD5rgkKhZMaX74BPAPG5nShgSGTUNslH1OpLRKyZPMWBLrchPnoMqAjLc+zXdeGPWhhOKIr/adJKAobYxbKFgmohH8YLoV2t1PXB3cyLu5sccjYDyTC4hmgqxGi64DmTLwynPWRKUIk6SrY4CqUkmJRij7pvjW8RPI0x5CEw+TtOsm1Qr0RBmyK6BPBvFeXyhXXKlJAfZNrJ6PDOPvPiKgNkdQSnikGfXYzOMISAh8eNYCVPOPI58h4iCCu8KSi8HyR4I/1l2QZwzBeYxoZQ64ClvyJIzuNHWtkS/4Z7ZSaNEcZmqnY4wpThSKE6Gk8q4rNfOOM0W/zyqDqC2mQu2QAIzXuenjm/QgSEbdXDxpcRKUjAQMj32ZTgSsloplvo4xvS1KdOe1I6cFmadbamfxWhWCGWtzyRJlbKKZgKzGsl6EMMUnNlO0U8l2g42OzvSw9fbFu8x2JYk/h+zOymUUN3gOQY0DKUiOYO6HFHl9yA0VYVzGQSTON2IBGYj6cynjmnS/tBjp+OuNJQrJQ8xzHKFUMpQo9ZJoYSqhqVPFNKeDFFMq7P9mmF4sZ6kYXpUJB4+UVm2xmaQbCRpLbpqPsoxM3tXJtKQ5SVQQrytaFKqZJodntE4KZSQ3+36TDILTwrLhX677cf6Oi666xzR+uHEo2VS40yl9gZgxvT0MTiT5hlxtdZVgQvLdQQhgkkgWZza7EYKpSiVy5UpZ4V59mz6i5TgeYGuh8OkLleQP2TY7uZiotPJjEmmgqXhKJI9r7IKlFo1g8ta06xYsZfxJ/c6aZSQPAx13tmkFugaKknxVSoQb06rbfNiNC/qHH66LWUe1SOZw3wk0XeqqsAHZcN0oseOLvd3eWkGV3kSpW4AyfIet04ys9Ea394tqXCSa/BiKfI/vPuT+o1jDhPT6WyTEWZDnIZETV3gXTzJO5EDHsDFPlmqvMnJQ6EURw5v4GOKdwKB9XBv9nmpiWwsLQprvqDsfbF8hJHqcJh4uWumLfypBMqBZjngUNlaFfVcA8fhoXjRr/pxV6YbeBhiJirrKf3ZMvRmSHxZi6BsHC3fOw+WSuxiUf5Mds38odRAozwASdV4cLYDOaEvU++t5V7eZpRiyzRKTkKzOnK8OzmaNf1IcO87XuSQ7oOj5ZtvGzVfsyw5DFOU4aEFto4x2b0dYqlgNmwOSPLKQGg1JImhAR9P1xeHrZVCMgtLiuKZ06VoWVfbING80rf3ls8dGfCpvN+3ndPSB71Z2fKJx+MoKzsk2YiXCWaV523J94GrkgHrmCtxJ+s7A0uOMKeXo9VRdfUkzbkP7i4D5flW7CUyS54V7z94cUw2yfJ0PA2114WlKnPeeHdSNa7PJCwUecySuIWk4MyApCj8No5B+/AFDTPG8tK394Dy5jO8em7EXyATFZbMLFyZrPAqOCZgVlx2pvgyzrLvNb3kCD2q6dfJ53BN7M1+zXT7scAZ6vD+10B57s8Wo9yIOLPhxiM7Umb2ybI22NGSPU/gTI9IRttOGNH7I1COiJSAMI4iLi31fITU76Rfr0cGyaJrPx8tL9+8ee7oQx8k39qIn1qUs06ZSJZxlLZCOagMqPsUmSWcWc4pmOJLhTKRLJMoh+6/R2FMS6COtuZZIRn15ZVvYUq48uZ7jPKt+GZyqW0lU2bG23CzF6Bs2PkbXWrmgFkscqrMh69SHYlybthamQHJcTjjsV0mR9cO0XQI5bm//fnNVzaBkuQ37ZraADmJKQeWuwzGv6KWKu92Pp+3K+sAuV4ESyh05mqa5bg9+EQoheP0OLUtE2VO9c0o//UvvfPKxYuX1Gla+Pa3pcSY49TD/xMlZpasPN9GdadQYJZdCzCt1gAgmWWRnYm/4sGZYyo8FSwfuFI+h3sajbOmwDz8Z1mjPLz82mtrFy5v8qyd8Tmqyjk55/X9P986iZdo5PnbKZWxWBZwQd4KYK40e7AlRB281Cjn4cxaimViNDR+WDmzJUXMf/y+8ud7AUros4svvvDChQubxNKxKQmV+4rlUju7Xo44BDoiqweMWpVyHrI9IknXaqnUaOZ5wjZqtWRfpoaVKVPOTlI0dtG8cn9Zo/zmrxcPoAtrm+/O+1WLp68d+Qd6PCPRyx+avYfTSEN8XiNXkvgRNQ2ZTqnIKpWWSj3wRWifzJaCUjQZyWejmoBlgubh0dehK+/8SCh/PHhtc8P3gJJP16SXd8rRKs+fmXnJVCONvAyHClfBMfTmejWo8wY5s8Qw4UzArCVtKWkoXuEzkHx2mKax5quI54Jy7+BL6GDt8ma9afAxajQYYWRoxiZGGLLPug9fUb8RvuxKIRDbcre4Wxx4ZaLpNpQxQbPvsjMbaVsOD
14135ZjWE6GUTQZzD8YJUd0VPgvX+7t7YHlxcsVl1DaTodZCsyWpQDwH7O+zwIVrlDyh+XtMMaA5u7OLlQMFk1Hs4TqTXyBnDlBSh/bdYaRnJGmwHwDSUi7EvoBJMHy4MV3fDsnpxZRY3aaGgDDRMicgSRHS/mdUIVrlvjYLewyzF5tJb/SLlKJK/VdgllP2jJV4RO7UkBOjzPB8vv796Io7/y6t7dPLC9uVngRY5QJY9ZNJhlQyJ9C+5lpPKQx0m12r14t4Bp0bxFNBrkLNw6q5epAfAnV3aEspe/IbCjVwWcnKRpN83sypaD85re9/f2v9vYO1t651DfRwGVqICy5yokiPcjAaNqDxzxRVMrdLhSAsnDrxsoNbwCWRJNxapVCNaqut6jnVyMrPK5EPJ+JpNCM8JSs+QZWSkFJFb7/1f4+Vsu1l97FpL3q4QcUlvWaSeGI37nAAPKMY6YzXrzgRZbcfM7eYZSF2ysr55HQgxovCk6BuYR7cXFDWKb24ezIyVwJLDOgjHtTm/Luchzlne+uM8uDl67oKbuwdPht/oExuyYx0NnwNFhObUtCqK689QlIkj65sQLd+HiAJZMFiFu4Ncvt7eCRaRLP+GIpGm3LmU0pSsN89YOvkyh/v379OqFcu3ItGAzTFajf4oxeDVh2WsQwvLD7mfbNjgFEpdbO1YDl7scBzOYtJsm+3CoVt7aC9rMd3NvbGxBwxtbLCVt4gmQGNIHynzhK6DdGicXydaCMG7NrAyWfRCuYVj7CAucVU2/E82JMc3CVxDRvfWgyTW8QXzGVKxXJRdLGPMarRPNavMKTrsyYZBomklAS5Q/fBbZce/2NOZIYs99kkmYLKIkl5KxIjU4b2OkfyQlQBh+tgmYJfX47sGYNMN8Ey6DMt0Bxa2sbtgTQDdBUmsc12payWErXEZQZwXwVZzqCUun391WFA6WSMqWbI9mOL60c2zmBkTuNFXCa1fJ0XvsSD2VtS0Wz99F5pukM3iSazBIwt9iVSiFLtiVpCluOR/l8Qg+A+YduOoISceh9sKRkyYulwKwHZ2aWMqU2Zh0UBMg0xkRMVxQDog6jBEmtwW33PMGs9opv0lq5RQ+KYykgKSwv4ebqidtyPMpRGBmkpimfjob5Mo/XBKWucLYl+s5/tJ15bGVTHMeDRIgt9oiIP+wSW4KnyVNCGGPGVFuDKmo203QUNYMaY4zdjIqqSlX0VddHihiihHYwbaVp0hpLpNNM1TpDRGKJXcT39zvn3O+5976lz/I9S5mSyCff33LOffeBLan+Vj1J3tvWiqcWZAl1CAmdPEnO9n1HL1ue2IzC42jaCnTrxh6BmZxoRd0xMCGyJMyFmGrNbCeeAnLlGbkkoONiU0mU0g7BlpIs59Xwibn0mI+rKXFVBIWN2eQFagEnSdgycSLVlA5IWj2FWdc6kxCabd2Ib8UJIcydyHLhwgYNdMLMZsscKMHJMYsyzGXO70jSQ/n5zwblW0DpPZhMK8l77aE8Ysz2Ez0leJLMmy1hS6pHsqWrPbdYmlDKWLOt9Q7KI0mYEuUNDcdgMsILRAmSeRXHWRpF6SL8FYlw6Sy9J+b9vU2KskNRxozZ7dmrgIyJJ+K2ZGmbPqlFfGxoYFhZyqZ7XV3nhNLs2Rgl6YX4woWSMhceuxAoARN7iGRGlnFPxp3IlRXmDmbKEMpvHMpFtfofwU+3wpRpxUiWr6ZeNcbstIdpnbxhz2PLncO2NJ6cHk+O92y8xbB8CiChp4Z7xpOSNdP3WZZYKyP50klZYkJ5bFmAKYlUZpjmF5lQMsKBcrG1JTKlLd/tr2pnRJidTfe2pJRld3PEmDvNqvIkT6TkfqgeLEeTooFJkMREvqwTZ94l1kziGNQdciaArmS6FJBA2aAolWgmlAWRzF+FdugzHeqDgOWPJlm+MK/We5NFUTanlSRxms9utBtj9vos+X5Fblse6f9LHVLE6+s3TCdV44NbbkGM191iWNbdsbFNrJmYSTtnKsqVd96wkqXHsQRH5ZnTlv+GJAOdJx260otwoGysvdo+SutvN5lSP4NNkuYNIL3isF/O4GGZ3Wu8cuShmoY3QGLN4cFxQ3N0uA4oA40NTeBPEzMbaUyQDMX4sYAZSP7zG/4XlBRNGXUlrjRMsmykK5uVZJu+uE5jdqFBEuHtc7A0xuSxnD1m7guihG/LsXolCY05mhODw2QJaw63w5rojUQAianVZyWzpVpTtRjOBMqrMXDP/a9QnqUjg0p+x4PGuCt54EGybFywOGAJ9+F9/a7gUK4ke5vNqby971nXFnX5GTMBY+aH6dtyvA8cEeIC85YNtw7NWG9OeijvqLuzd6ZZO6OVrvawT1fRl4uPWXwMUBpX5meZg6QqI8svSJKu5IFHUL6gtqQvzWvrNGYaJM0BiF1RpMfEBXv+r/4NFfH764UlBJbQ2NCo0pz2jQmY3RvvNLa8A6lS8iVsKWMhjSkgMTXKAXNWtsyFUV3JvwokDxrjrmSEa92ZX+s9Me9rN6akMV2D1CmncrLsGyeZWbRFkYZoGhwFpLKsF5pPTc8UJ4uHgfAWRxILIsuVClNFloJS1LD4+KuvBkqZcZZ5UZIiJoH68U2IdKUf4U+//1HjgqsDlnxpkr7s1EflHV08+qie7fCD/Mg8LHeSRxNU25Z6JwEJa4qGBobQZ3q+DHTbHcISE5a0vrQ41ZMiYSowoX+C0rHTWWLIkiaLTsiVjHCpO++/8AJQKksq7Mu+5ntBMnL0gVItvjF3BsycttwtassNGDJhS6c6XX6UPxLQvA00IfElFlDSmOpK7HCmKCdLHnYoSw4MMfmXDrCg/InxTVfSlposP3ph/vX+Jzl4jKQx+zrT/fIzasyeWRzK2Vzu6//TY86UyhMw64nz9oDmI3fUWY6YK28zKDGUI7U40NVWjiRGXlsqMGdGX7RnCYsOXRlLlu+/8LbYMpcxMZzIUtXqO+0Issx/QzR6qwE5tNVFOVHq7mDCl7eBpZXCXLgSLFcGHGUYNYRolp+ECZTxZ46ZwlsXRZry5zv+IkKi9PQjUCLCGyuAMp8x4yzjB0m+qJLZlgfDjW4khhXh1pniuYNDYxrkluftZtTJeKTukUcAUykqzpVU2JcNzpYyrIASLMvjtgxzxFSY2VXGO6EISiZLsDR1x4ofZMeMG5Ms03jib2B2+nzQYuauPDCmmSdOmMozXAzNHR1SkpTCVJZ1hqeQxAJL50ysuDF9V8KXzJY05hlxWxr35dBv2VDySoPJsjBfpjqa7nVfvp0iH7SYO++UJ8SD2bth3TqwnJwoVuG4ozjXKEjNmGB5+yPGlohyq5AtH8uULgUmbVke2BIzR4DnEo/fMZSMcEX5dunpZOnTzJIwU51o20XWmM1qTOtOBHmu5pIok5Nqy3W3DA+OzFVvTgwOTYKj4tQQVylL8WUE5mMrHyPKiC0phHg5WJadVk6UYZZsgLJpB6/XMlRwtkOoO40LysHSiSRlxn35al97iyH5eFu3rT7qSEXJK+E4Sb1tI8wO2BK+hIRmsWp8ZnrSBfgasoyixFKaj4EmFHVmmCWkxiyPsyTNXOKDxjhK1nDTWQKlxzJ3IceTNFxvKEmcgFz1aXMgsQ5mixkPcedf+dlXLywNzbHJgdEJY86ZweExE+drrDProjBpTIVp7FnDICdIGZZmSflpp5WQZRhkSa74/iUXSiZL1J0XFlwf/uxb9oTZn+q1JO9t6WjtQiG36nV8sPEThBm+2BK/T9h/bmLLOlW9FY7iSJymDk0JzTUwZp0aE0NQEuaNKzGFpIKssTFeE6D0aAYSX5ZYaxbgyhIWnThKRrhNlhXlGVjSl2SZRr0xJHlTZJQyljREd2P1ib3MA5KgmZDVs0FJBjCX1i8dm56Z63BOjq25BRz9MA9QKkzgvFFZ1ghNDLAMRF9iMyTLy+DLEiwdYZAlBZmSKPkMV5IlUGqRy5swu9pbjrMgewBSRZjjykc3Bnn8g8CWpK5hYBTJD5CUsbR+bHj0fEtzZnrMwYQvyXKVbIblY4hyBHcNjAmkQFkTz5gWJFRWVgaKqtnaEtdreVEywhuB0oqVPO7Lvp4m9+5nbxdIRlm2g46DxEoereKHJqjk/esCLQVMkBSatywdHkDiVE1MT4LjGkmYrgABpEF5IxTkyxqrWsGIjV1ROXW6wlRfwpZUDlfyc76ZmiGitBFeUUqUEV/yIVq62cb24836InSUZdHJqQTFII+9zZOgRiXEacx1whIob1m6Zs1WXLsZjQxbX2IQJVhaX94IjjKM1Ja1skD
1413x+usVZUCzTIx5WpnzJaZRYUWHKOPJcgGKG1lmPPm86logXLj1vRo/Raq6JxLUkWQZ+WybZ8tpwUhneloDDU8bcw7EUqZzJgSURjWBgBIwoVjtKUG+hC+dQjcaGcU7oWwBzmSpNxqlp5FloLAr220L1NNpQMZZFmENmmypOpiVPHQW3z9JlhMbjSfH6hHh96xDeDuhgAPn7ZODE0iaU+GMuWqVwFzFKDc4gxCvqa2pFZbwJKapPs6WZRDCu8z5soQN0eybSqL0DzzaWVaUeyxPz9xhdpjr9FY+Jc8U5K0Jqng/sgx9ICtBmSo+Nnj0yOjU8GbxpQ1yoWk0hjthosS6Db40lWcVOFqYPkuQFGPWXr34ekgCvdyLcqVZEnJm9puhL06ZLcqvte68vQBtQgZjhtNla9PjLb19PPp4LPtb21ua0+YWM5mgDmUlD4c4Na0sh0fOP/984BwYmhzzo9zifOR2GNSL8ieBcxWkLD2UFmatDBWMCZYyCLK8pOw0GDOgKSRlZTblZ/lQ8sBjj+GnZWXJhNnfl+4yDSYmWT7ble5ofpz/l9W2BMXb9dCNesLTFu2IJsHSaGRwatNmRxIj0O2OJiL8SSWpNAP52VJRwpeoPkpSQ/x6W8ZBUgs5YSrNTBGOTigfSka4TZYlOVnGTz5k2Z9uR9+uau5yXREVT5g7hTuiCVvFhwZHjlaWas8h+tIjaWk+efuTQvE2x5IiTWdLLIlxiXQ2RZovy0uoLNdDO34rACUi/GlEeIWizFJ86EsnfqUWQDY3uca9rdW8zp0ez9wVkeU+CUrvNdaqNYHTmfNjx9LCvN3QXLFihY3xVcBpRJCCkkGugi2NynWQpUS4V8uFJmb+okOUsRqux/AKJMssLPP4Uiq7PZX3pOFK1cbsXREPkE7JIYBUoYbfc8/mKcNzlG2R04o1K5QmcD75JMLcGpNJUyp5xJaGpLoSHLGEYzkGSw8zZsyUpxSA8nNph4gyJ8uMvuxqMo5sbk+zjoeDnN8c4aXLPf2OaO06jLVAiQmcS8cmp0cHJ2MsHwbMNYhyYYnSA1vSl1gGZk0NZphlLYZRaXk5pvWlOpPSvihy0ikI5ddyDGeyLNyX/W3SI7V3dUtPRKX94sOEyU+3Jb2O6H7huPaetYak0VIZTg87mGrNFXDmk5CrPX4tf7TGc6ZlqcughD3LFSdhMs7ts9r8RYcofX0NWxIlWUKz8yWM2dGe7g/3lxjd/mF7v51jLP3ucnCD8eU9ShIElSW1BiwfNiwfVpZAaUWYFuWNNZfa6nMpmyKwZM4UlDbGLcQyOtM35V+FofxckyVRkiWU92o9fvChiloS1P6uKyLLUHdZvxYosRQlFbjyYcAERqyHV4ClwrydLFXAqCxFilKNeamfMxnmLmFCQOlAoiNiU4QHjYWh/FHrztvos/65L8nS9+XJownqCMOS7z/ufLgNcf0xDJCWJmASqAb5EiywhBQlYGKqM1esWGVhkuUiIXkjQOoUaxo5jjIlwgnT9yVACk7Rb78UhhLt0EsvfSQRfkZOlkSZ15dUrwfL3WGy9Oynv8PAnJhcG8gzJRZIOmdSKwKpM4nyUdDEBpzACJSyZ/BleWmp+tIpFOLgKeJHrvKhZDukdacM5Ss/S5AsxJfsMFl8/IsNAWlZD46pLT/cunXzPdQSkARLpVlJmNcBpvNlOMiBEkO0CBAVJlAGLOlMsESUR1DSmXzQmB8l9adGOFxJlIXX8ThL12HSmHuyW2ennlRjarpURw6MfPzG1KebfJ5LlyxRmJUCkzTJEnJx/uhVynIRSD566aJLNcbBMm7MUmVJmF4dxyjhp1sKQfm1dpalEVvyougf5ctn+1pti9ljcWEljyJL7x44aRY6dWjoaKuZwSk4FCGuGJdAUnywgPE6kMT0gvxKwLQoAVN8ucjCxDAxvgCjora2wpC0NBnnmjHpyrd//+wfoPz
1413yJRvh/40vu7tSnW0tOJe3dSvNQaVovHeISZi8JNo3mRTQCnujstx0NDXyMe42JjcvsTJBXqk0FaZFeeUKsJSxatVVq8ASQ1A++uilnmqdDMlSTMuS1vT69bIvCkYJ/WybdMsSq/Bzj0PZn2rt7Gl53H7owDizV02HDch2D7Pc+ajiBGRti05dNPXxiIKkPh4cgkPhTQQ5WGKAo3gTMB3OVVdeaVCCI7UoDHPBggXCskKzpRVMSZpwpvHl78iUhaOUdki6Ifs21T/1ZT/c2CNupJrSyrLPlWpo151dkPPUoxPOHN+wdpnC3Lx1+9TgTAjo+SMjHw9MDz9cuVRJVoKjypGEM6+88sknr3ryKgi2FIzqTcCUGNeMiRiHhCWkLGnMiDVpykJQfiPJ8m2N8Dz5kih9X9obop7mJuNGkrTXwUWpcc2HZuwSZnmIQ6mPzYAS06hq69DAGyMjpHm+EJ2qNNY0IHVTlpgi+BIDEo4QfOk5U0BWAChgyvRI6mLKxPG7EJQ88AClSZZkWcD95aupVutG6vGm5o7evmddY7RxQmxn43i/MMvd8SurxPS6ZcvI8p61Vbgp2rrpk9ERC1NuNEeuA0xlialyKBUmfAmUKrA0c5HhqAswUX3UljFn0pjf/VIYSrZDirIkC8t8nyjC+2bkaJ4A9bSmusDRgsTs7klSu4VZ7p20AtPhdYrS4axaW1VVpQ3m1qGpAc2hYPlwJXxZCZCUeBJTpRhdnC9S0ZgKE8YUlsiXFaWUlzHf/umzAlGyHXJ1p6AyjqlK3RtAhBk70+Y7wEhSt94kdaQUH7KcKxQx9EWotcugtdhDLBXn5q1bNw0Mjo5OLak0IklVwJI0NV9CGuZkCVU4hVFiYfuC8V0Yym9+QJNOlLNtLxniXS1CsaWtozed6upne+n7smg6SR0RZpmkJiaFJFbYl1VLqu5ZYrV5swFJYzLGnZwvAXNR2JkAifIjztQwv54oacwKFJ3CUPJKQ5KloCw0XQZqbevpbE31s72M+7JoaJzE9gFLotwjSfVsAUZFiRGwxABNB7MStlxCX5JmlCXEICdMSFAGiqAs/f2nglEywrVJz4HSZ5mZ5qv92R+PW1/2TdiMCB28BxImL9WT1OBYQLJKfRkI3iTMeJBfR2MKSyriS9KkSinQxPG7UJS80tBkeUZ2lvl9KQzjLCmglEIeaF8t5GwvqYENzpdVsoFoFXkSZuVSR5O+XL3imisJ06s/ZEmSYZoBSKypXwt2JR+HS7KsAMOC0yVpRk7j8WsibFtm2P
1413nMPchneUSSQksk2rxp0/btWzcvAcdAuCsiTCpafZwyBTlrT9yaqOgVYLljJvFrgSgZ4aazPIsoZ1vGc/iSKOnLk01TpECLj0LC5C1RkhpapyifeMBo27Y33nj+081qSj9jxmGuvu46NkWEaY7lCtJLmJGcWSrDahQfuqUzC0P5A5NlrhAv3JfP4nYj1dre1tLSqr4sGiSx7CyHtYZvP/vsBzy9QZYUUbrzD1hiRPqieYblPJAMaJJlLGNO6QsIvxaAkvpSbzSyoGSIz+owTpbdHR09zbjcMC18S7f4smgg3mBq6dn54BjL18SX1JtMl3RmNMhXr74OKZO2dCy96kOYTjSm6G2Dks4sACXaIXaWBdqSvoy/ENnVHD6TdxeJOkMNJlke7rFMoFVXY37yxrZt2x566CH60sDEEpK6keZqCXHZpZZf41C6KJ83T4xJmibGM1pz1H20/teCXfm1nh1LSnLasvDLSz0HUR3PZme5E1jum6S2gCX14ebt2zd9uunDKqu7nS3vDmXM9caXq1esXh1LmJBAnGdY0pgRmqVKc9CApDNnj/IbRUlb5q88VK73IV9t07uNluae9s7WvhTSpag1Se3j+3LXJDW2dvny5ct8VYXFGPdlgxwsV1/jSBqYcxxMFvP5mITpObMvaUFiTwBmASg//1OTpT7ZUI75bTnLS/Wu9t7WVKqru9uVcVE6SR1MX4ZZbljmsbx82eVVy6qwAl9W3X238SZ+WIzVasxKhQmW18hwxSfImWBpaM6XOAdNkqQxd4woSiyGeR6UjHBJlvZ2SDa+eUWWBfsyY6eudTyVheVec/nn42ApcjCxDEnSBEagxKgMYK6uvK5yvbjS0IQE5hwhOWfeVTpEixTm/PnizPnzA5iYhuaojXAsDDozB0peaZgIh87AxIqwzG3L2LPxOEu26qJUsXfwycJywrBcRmuGovwKxxKbg1mNWa2FxypgOWeOCXIoCjNgWcEw7wM/R5POzImSNdyhPANDSNKYRBnriEhzVt9rUGR2PUSOk9muPsviKEugxFSQIImfwIglAkPFiVmtIKuF5XoI6RJTYarA8koFOW8OMF61CJuixIQAkzgxEOHjoMd8ydaIKLPqR32vrMRJaM4qwkkyvy0J0hzIyXKXzCxn6l2MywpwQkLzCjgTKVMjXH15d3W1IFWagTGFIyak3rQRDpaQsBSOusK1/GPPkPgLwiTKHMnyBblKp8BSx+k5bckQz21LS7OI+dJnOXeXnbOwvElZGpIsQCCpMDEUphVMaeZ6lB+40sFUnHMgiXFJmQYkhrpSls2ZzpsVU3xH2I/zoz/LjpJXGu9rZ6kiTCzl6KHMfBYv2JeFsyRM50vVFVcApVWlMSUEmKvXR2N8zjVzEOWASYEl5fVFOybIj3GuBYgos0X4S0AZZVkuNMsF5emZUZJmyJe5Ltxm50ud0Oi65Tctv2nZ62/k0PYrBKMBqhyxKc7VlbSlao7IwnTmhCkXWZIezh1zw7bkjjDPjfJzRLgkS6qMtgyzJMoczSW2dGtWpawvRxSZGT5L/UPdwFJ8+eHzD+bQ83DmFcqz+uJqDXMlWV0NYxqYmjJNlMOdEGAGaXP+PPoSw4T5lILTFQ1zwATKXO2QdpaOIfYyNSX+Cp9Ud9+acFKYZfbmEuptejyrWgzMbrwU6rBFWEJqS2EJmK+98dBDGTEeLdsbyJmeqgNJMQ87U0lim0eBpINJolPmwEOE9CgK0a+f57Lln5IsS2lKWUpUJb4sY+HJXnmYLtNNx+VQs6C8rHsmaZTJl5AwRoyLMT/d9mZWbduECuQ46jLOXE+WhDlHhswIS0ytPRjYd3yc0ZH2Tx489afP8yTLUlBTfo6nUMQ4PfieGfzMZksfpdBMteRi2WFiHCzpy2i+pC9vAs7tm7Jq6xXCEkEuuriaIksfppKECFNB+oG+Q6806EtSlfXgqad+9Uf2CJdk+bYBid0glZ/yGjUGRE9m7y1pS/Bsbc6uto2ujisw2cMsiwWlbqjjEuSCU6WN++XLl13uJHVcYWIIy7svRs4MYELMmColiT1UywOUC0yE8xuUCJWuFP1BZ0Y+8KIRXuai2uz6F6fhTWpIcIovZ2dLjOxVvEhlWQouCChDdVxeBre/UpZhkgKSuuJyISmuvAIgIbB05kSUa/nB8o2JqfKMSWcCprZDYVtS578Hktmd+bWeHS09J3lT9XQwtBKQfozHQeZ/BEmcmJYlpA7cNc4SSipLFWhiQZfLooASOIUmLAmcMgzL89aDpUiNuT4W5XKUpDRpqjPfnqEluRmkxpV0ZhwlIhwsKetN9SNpYtGVWW0JX+a918AkS6MoSwdzRGNcFiYVNqbqbtA0MCGFyfqz/pr1FzqUF6k14ywDIcK91jJsTaAkzAwR/r2J8IiAESss/UrDqzGiICmSjNuSbXoelufbnhOaqHemJEcZnsSXGucK0wN5nsAUSZRfCJhOQfUhzcaAplxpMFvSkTLOB0IqXs1/fP99h7I0N0mhiC+QE5ageXUWW4JmTlsKSSx7T1RsR5Slgzm+AYYMopw4SVJZGpiwpUQ6pElzvbJUZ2JdaGlelCXKXb78WKDRisQJV0qupJgzmSzxsCy7JynFCJ2kIwKygPMjfanNkGxhlgfsWkxZlqzkpBn25sUm1C1J50yQRN6EYExIYfrlB8sZs7FRbjkGw070/44BzpwZP/DAkqVlboBjJpJg6aRBDpoNIBlv04EzC8siM5xSrlpjO9BjebhhmdR9bDlt+fKHr732zjvy7Gy5Z0ymTJDEDGgaomBppCwvFJYXASZZMsoBc2g8SJaUSaB0JZ0ZhDmTJUgCoh1sK0tJEpM6XoZMoRh9NpHHlvTlZX3F1D4+y71Zx4u3LFOQL7+z/ZlP330eD3bfxIPdT9SapEmYwtLRFKDrwfI8pQmOmGpMpelLQWLM3zE30qQz2okyFOaf80pDUFY4iILU0cSErrcgFWV5BOXi4xvADyu/Lbs7O1vTqe5n2V+CZWuI5U4+S+WomlSWH764bdsDDwXaJiBlXYBlfliQsiiNc8BUmibGwfOiiy4SX16Eoc6EBKWwHHCNJZeFezRRRp3pIvyjj4AyLrEkNoWpNEnS8WxwubIhqy+Jsufex/FIt6Wtraeno6N3o4E57byHeYTHchdh6XAOL7sZLF8XgtTzasuA5RUXaJMpirNUkhe6IAdOgYmceZGQxHJFCPmycWrcOZErkc2VLEC80siIEsvKfG2PKhTn+J53UMRGklTElpHPGrRtsSwpfNaALPehLS3Ld9SUcpHxxvOffLJJ+nUspYmBHT+A8UyFySA/r/o8lHOw1GFQSqwbjtgp8eUORne4v0wcTXhZChBRxliq4Eod+k1I1GLMhsWKEQO7Z8rM58foZ2CMMQecK6EjfZZHePlyaO3N0MuI8ec++RQfHHwNdQe6drkE+bVCU4lCrD/05XnAaYL8QiwaE1KWOlwJmj/I4u3XHT04UvEw1ysNTZZZpO/4Q9gcRMKU70DT/zWGosTEYrKMVZ5n023NLXjTx9qzWX152WAxxc+5KUtqet3NMCYmpL3RtddeqyyvvXz5Bcsvv+ASG+nGmFhnCs4zA5ga4zbOAfRCI1QfiM4EzcY50QOPg0pXZnUm2iF8Y21pBZwZBwovYoEnJlyJGYMpJNWbbNL9ZEmWVDfe5ettb+8uUo3Sfucf5rM8spgaqFeW2IyuxQRIHWB57SUKEjF+DjYJ8zMvuNixhM5DoFNAqT07WaoxG+eA5LxNE14N9x0KlPlgaoRXCEZDk0jBEcOoXFmCJnaNbqsGTA/mQt+SuRoilvEtM94R8iCf5UHF1ODYzUbWm8vhS10YCPFLLr/kAksTppRdRZjASZrwpVPgS0xV4wRrOInyOiOHvn1fvnS+QkSOFiWmJ8tRMApMLAfTw9kAfrltWeSGY7nRY7n3Xh5LXGBSo1sMSehmmPJa+FI4AiT2Sy5BkIspsQxG7IjyM4HS4jxXaGqk05jXhGjKwNRLy/gFMHJlXpRP46KtsaIU+dLArJAh0wY4URqcIFirNCFHUwa0ULZjZcg8IcuRx9mSLEc8loeTJYw5l7+ZmbzZyQY5gAbevOTDd5759PlPtl9AKVJD08JUY1bTmLQmvWnbIV3c2Fdm19+knVlsplMcxq1zITFuEBH78t0IkfRCzCDDVPlscWFfEvu+1dIOnaKkg8qoXTE6jKLMVFst2moZ3aYL0xKiHTpGgsgEQcSdxPN/zjnfc973/b7O4DnL+5kxN788//M/57zL+fPXlz83lE4E6eR+gR5aypv0o+RoepQ4xIVHWN5asOX7b4qlfBnb8vyhfDxVT7CMFuT5mdvlSz9ckuUXPaOtU1vWcR30QcCIAh0PlpDCnCS9YpZKQGH/N2lOLRxLJvFfiJIRnhHfrxRKyaPUaGnF5A69MoTWHcn3xV95+qXXVr/BNyBlTHIUy7mI5aEFlpqsa4KZdCZ8eQEW5R0fgKLXR6dKyEEEaYW+RDGGLqUnfSmYA3Il5X9vy5U/f/+OoTzj46IgMyhvtspPbl5xC0pSdCUaTwoEyVtvZXyv9W/dP/fKGn5YXUDFEtNL6ZDopWdO1qW5ewNIa109Pa3tHW32uLVIfrQFgyYFjqdeZDS9MVk5ZC4NtkTJGvM7RHjBlZoTbWus/OVXoHz77TP0nGERoFCBZUEYMSOM5xpJcoQsvu2sWitH3npk8zNkyQ8wP4fX+dY2t2RsOR1PL/cWy/QEc+D+4Mqu0b7JjnWOojh+04Z9I89SoS5rosKcgAmaciZRFmDO5otO0uXKEvH9B97fAUo+GFcKp4PoUXqaBClDGkuLbUb4rbiGQ/yhI997Te+O+481rl7zRkuCJZ40kHYXyx3txTOEf56FO+sEOblOmxsPWQPFLd+NnnqOianc+/IkFMvmivOlS88GyKVQ8SHzlG/JLj1i5raRdH5/y+L748cBkZVAWSW8mW4QL0Tvv3VGlKymG8CRlSJQi3GCtI4voaxd80rmmwbPvLSmubPFoTy/s4K8WCo0XHLA3B9/RxnNBrKcfMiLHL/5YOrH8Z6uc6655hwvYLRGW2LQZCoXTkAkS1yppDM3Kbrlym2hNFN+tf5tkPz4LLQL0RFkoEoBInDaJRZx3nCFFRNJWvMcrXiBJRoeEmxpeXXNa+E7oor55x3LteAUtJAs5cvdF3jK1s0w+UwFlN+0dUyOAqJ0jgFV7kE5Hv70AknrCDIFk
14137IIj6bnSkEnbCPp4BX7r95+G9vHRpIgWShDWWhEiUpbFmTnDrDdDIxWJcY4OsqcWX9k/dHUq8+//tpzsUPxNNH50Bxdx6IpUdjB3Mv9HfshsrS3pZo+mOqDG4Hv2SRJKjEvIkxp6fGWgEQzdubsmKZBcub8aefPP3jeKFBCBo+dI6lf5lD+uhlVchF+g2MJjFZi0Zbem7RlfZhbGtKWlubXX+O3l8Wyn6ic+w7VcKmdIv6t392Aevt6uu16PWQMBVMKxrwIJSJpzrSpUUApmOjPHCBH12nrd96k86sdNwqUJAmO6EvqZrRsjNsndkETwkEjSRGihINXQbK+vh6dFuKd9jbk04hxQ4mdDbIizMPTLA8LtkQZWEaW5EiUaZgyJiolX0oK8ijO0T5MLBu3x5U//2rHXPsAjx6CZZ8BSUv6RhlFXgiTzhRGVJYAEqX+PjI0nolp+nRLZydHy3hnI4+dDbLUpGjfvPTtxBFH3HUXqndllmZsTCn2JWoIcRmTNGdHojuOocyL8vs/6Mr1jG9Pkj0uRXEWvs51HuoNdKSEk1ueig5iE0YPEzTrCyJIVs2HoOGNorVw9zTLA/NSxcztR4BmBJNdMWMGmBblnqZ4AmOG5mmX9ROjAnxba/A/YUoGeIQyhHpG51k1gibSBMu07PAWOdNOBbVKkJB1BZRoxx5dH08tqbkCK6Sews6GVuR5aeheoZQxny3qzESYuzFTOEWzwFILHmXweVH+/q5QCiarK6hCyUKFa8KUGi2fIkfZ0pASJlGiEiUbWKLGLAdI0TqmnjTLA6K/7r+fvgRNOlKaJ8pPtBQEmMSpXB7TNKCXfUqQCnKoYr6R0pFc//YZYimginnFu0gKZYIl5M5gI01jeQdR0pNUIshlS7EcyUuHB5YK8v3y0lgDWCZ92TXa2telqZFYxjBPOglRfhJoCqdElKf1y47hxwmflTZlQHnm42cA5uOoMcxQ+Igx4UlCmY5yeDKwvMMKUeJwaom2pOrgS7CsQ8GGRkA5HeIbrWLfQhrX1voCGfPbmSMIE8Wc+Wxv39Q6TNrbn30WNE02x5RO9DBhS4BEI02PNAlzi+ZCmleWXn6/G+JbDP1P2ZJvV6LDxTtSVMERJNlTOGeEAk3oDsCkQBNdMZZvPPf0850tdQazjiCptXlp4Z4pW2Jrfc+FUfIZQoBDDPKuvvZ17iMHbQxysgTNZyOaRHmi4fQKINmL5uhxiWf6hbJEfHMqBJQGEJVPIKUjHQxRSyrQ9DBJkzDB0FgSI0AC5R0ZmC124LhtvgEmTBlo9uelQ33qkXbCtlte6kfyMV3fNd7eFj68sWTSgt078xw0GTPQTMMkTqE8jY+0bV+A//TnH3aIPV0ZlPDl6fKmt+XlaFmQ7OFIVOuo21yPo+0A1CzJI+hF0qOs63zyKMoOSOqc9iSxSZSXDtFwqeRzcF7a3ECU3ZN0JGE2tY93I5ejUiAaYC5GA0ZjeZKxFE3UBM1wh0c1X9KVvxpKuvIUcjwdDfzw2Aw58sL+crE8jy2t28677YbLcZSDESTLwPOOICYesJQ1DSTa9CtHBeHw0lc6HcuhjXlpb7HUgLl/PtLEtcZytGkJBJgdkwAZBIwmjZiLfZiTpqQw9zC/kyX9taL08tsPldifw+1fsmSFK60TT6AMij4nxR/+J1CGY0bQsacpJWKMSNbeVwuUqHV1LWtXvwRzUvhYcAhx6UClHvly99QMExpfB5RNbe3jXZpkWis3ll09fT0B5mIHEzEOlQrz2XCHhyw1RS+2J/TDuyGBkySEHiwJlSzlT2v2liUrvSmo/PlEOH5ASIFSvoxwHnlfbS1Qugg3AWhLM3YzyfM5Z8yxvLSXbBlvFcUD5kCDj/G2ydHuI8qOAEEJIMvPGZ1at6StJ7BcDHMCJFGKprK50RzY3p2hn39/USjJkiBPMZZssGagycvlVvXVniAPlV8lhzefuAGdwWQ1X6JJsGPn66+vra+F6muJUup8A8frPvn6NDc2KvLSfkVZ7nxI+H80K+ru6S3DpSwF85zx1o6mhx59qKkvDJkQjekUxbnM+aFA8qK0k54JEeXL3pVkaT1g0pans/G9FkjhXVw4deAJCtZEpStNnqNUe0ftfauPOe7TV9a0wJvGsjaGef6xLc3N0yuMZXNeWsDZZZblvolZEZbkVBlBloGgdbRlD+5eUE2j5YsFEzQzMDVp91sa7OTKUvEdUFKPo1qzwjg3lGgQwxym5JvpxVk6lArygBLd3bfdTYo4zh+X2je/5depX1rTUldLkCJpbcX5K1ZYFw+Xe2i4lMBy5z0qALEij4Igt2UkZca8HkQ9yt6+MEla0taHkZMQrTvRfqRYhmn70uMV4Z5nvsSNCB/fL5MkMg8gFlDqCW2CJMvwAyRL0GSjL9M8gRICSoOJcfJ1O2aCONe20JbsyBI0PcrpzcaHmCoqFOIRSswwdz04T5bUSEOBZRlwogdPkmwKJFt7n4XKGeYO5onosmFOxfdwIQV4CuUPQPkuTbke3DxNGpOhTqQRy0DSmlnT0WTvENKYhjKpu9EA8W62uyHgrK1tef41f1zMp68931InrUCpWwGWaJ05IiIqzYjSQb53RUH5/DCDPPC8y0B2jXcEkOvae8rLny2HLKkvDlFOmmIpmh8CZbSbXmJe+fMfLxaGSlA0gSZK0OP+koEJjGjsAfLSS4Mfn8AvP1iykSMKeoooTRgjqZbVGwPOVzqnCXKVoQRLQwn105BeB4plJJsVLYxgDtwbs4S6LN9gtonSNtpbXn59uZkSDaFthSRZszS/GBNKVKFMmfIxoLT4RoA7EaO/0J6JNytxSYumLJw5cClYFkZLu9xJlncCJ2pCtUFvruVZmjTnmulVxFlgiTYSsdxrZ7DMouTShxHu2sj0EZG6+zAFclo3OX49VE7RnIufBUmhLMS5kvlAcmuoovieEEi+iKESrlx6pkRbWh+ABnN6opIL8ieAE1ENjAbTsPIKluFMOxRIGH2ES81rng44V78xXbfKtMJrGHgoI6oQLxLkYbzEdeZaoWxtbwokW3u6y8QSxiRMRTivXoHl6HGapSvAUyh/eBEB/glR4l6lUFolzseJk648E0mISsHERyiswplgacU6MjVPBpk70zAjmnUW6q8XaL6yts5IBppzQBhSz4LdS7M8MFchDSzzIHsm2wLI9tHu6y0JLVokmhbqlsJFEyVBk9MhpZ6KojcaX9RQqeeOEkANJzqFO2I8401+bZOfIo/lsXqSkEhmvVm5qraysrK+eTWyOvX0mmbihJDFK6Q9dtWtnvSAuesBBt2X3IzbeBttc55s6piEJYOI0gsoUSlvzCTMsQJIa1w4ZqfnkEO59DSvkjyBUbZEd4pAkmVx3SmRJYo4NtY2FlB6rarvfP01h/O4jaubvTGHciJUcZBsWTSTS3NXk2WHJ9nXVRYJ9ixftEiDplDGcyPuHH1XmFOW2hn6HkkHrvx6g0N5poFEScMExVDA1CASJ6s1fFeKLNGyJMlSJNkVaDaiNjbGMOsqV6FMv/HSp96bK5xiW+YOnI/lngsi6psnyHKyCdsbU6OepLQIkjMh0VSUQ9zSYNXCMbXn++JjHCqJ8mTvSeLM8kQBUnSnSERauPALclmWqBmRIFGiGEQjiQsoguYqu0w3r37aJknP1BHlTGzLA5TFMzAxXd8jxu6mmF2THa09uKZIWpQLpgJdYe59ORA/ZylXRjcaHwNK7mVstTtsCnG5UyjZFQway3wJkkWVBdl4591ojeQYXFlZUK1hBEuqcw1ovla9ohosNwmPsnjpIBf3sI7UajIOcjrz+tiZiHRCDAVChIOitjOKJJ3HiJLxvf5kp6VnAilQWk3izE7gw6dR+LEzwMTFI72E3SV2ufMS4MMJTS9EMd6IM2sB0gsDZmNlZWOlhkt21SioncOrqgHTMo/wLDxwfpa7LozBTyD7SEbSmrx5fTLMuTiXyPLHvOeosTJrSqCEK0+EK8HxNOI8k/4ERs+TTdI83kiyEiFosidBXFDw21heYofaBZg4RhksHcQaa4BaiWulSDqWAGkFIktkHmmfnZnFS8HceefDY5ZDVxfxZff4uB87jSRYSohyOZMwTxqJJpaZsfKn7/967MXHMFR+veGrrScRpQOpp4/iWC9m0PC9nsvct85Ikp/d5OeK0f
1413keJ9pdCprEyYYKpDWQJ0pfBkd6U1oHVRrQFdXVq/ojljlNLufJPjkWaGAiG+SjHU1NU1GUJ2FKDqa+0qbbZEo6MCUT+IaXX966nk8joFAu2g2iSe5ETWYiOtL3/HiplUtOIUEv9xswrUo1KESJilJZU1MZND3X34mLYVzF6jX8EeAEPHvtKpalp5jS0L2pIB/v4ARJcS5r2iVGaeXD47Rjmc8uvx3KTza8vHVx4RY6OgiO5MVLzhTQ8B71ZSzsKAczQJQIUCRhRZox0DSFGH8Fn00eW1tXaX6UVkwkbHnI/ChhzF0TU8z+ZQLp7lksEUuA9DR7Jvu6iJM0JWxpgGQJV/7qUX4NlBbgnia7oPXE6mCGJvnVpb6CZATRXRYRTOG8EcUCnGrEYf6kSMmYVfxU28aBaTgzpjnzcIW0UCG+fdlnZPjqiGQrSJqmemRLlK5WLIzagzdjlNjS0M5QJukw63Co3OpurklM5sZRLKGQ2yn6ks1ASiCJmsXIc+2gF1B9dN/oIPaPfDtsRBXj/Z+6T3qvHq6O1Z/IPFo/lg7ygxOL8kHtFHU0RQsg0eyZsj/vcCwTML87Tmvwz1JJx5uSKE8USsEMOBXqkmgSZZpmcWPqnFoKvxzMTnt1pH+WWOFJ8+XE0Bho0pudE7JlYs2jyWUplm4XM8dCY+JRTKq3vcnvExlJqbvVbXxMEiVYiuao39KwAG/KJB3IhsoNX8KVYpmlyWmS3rjKShAFM1Q2oaSMIkFCBnPYvVE7XFNTRWfWVIHnxBDinDT7WwLLTUTi4fBGz/wsbe1ziEdPnri5S3X4vctuy0Ay5bj/8z5gJMwoBW2mK7VwjE0J0ZQbtp540vFLDebx65euJ1PloIyCIQPFM0UyRdNXHs3kgpu9MEKFGOfXxD4dmOGYWRU0PHaCi/Th6qrq6obqVQ+TidOCvTW5LCXLPgfmHEdq84xjSfd1jCcn7N19zpQdo0BpMF3vaH5YeLL/hCXJG43OlC8SJQKczyK4lwVSKjDk2Gk19mP0oyhOZ0crQhkrjJiNQ986a87Qk66gTsxtJMy5amooJ4t5WwpmyeyzT+EfaRuzdV1Tx2hqJdnjTdm6CCmIIkxO2stH/c2yMEXXjcYYpdmSAk0405QMeA2a+oKHcFqj0jTx/U0jeRlJuqrzk/GTtlxeU7N8ObqaiQFaM98/UbPcaHpVVlukb7QE1NAw8U1AYtf9Mbmcj6QW5Qv0j7CN6VJ5b0+3ZuzE6dN6Wy+nRp5mwZmM8GyA05R+qARK3amkBDKaIZGmoAqlZC/8x0RB0T4bid6DhO6JSa5EW37jSgO5HKVxeMS9Oz8EkoUwB8OJof7OVRbhDbClLLbXnkC5bZaar3ue/RwxJW/L3imX1ie7CRI1VvmWkMKPI0olHe/Kr9/Z8OViuJICRFZ0GYli5NAAEKUgfG+TH950vnTiyS2X2NnJl9wEiCjWr1wJjqigaOJlYiB/AhP6RJVUjVLVAFU3THzkiVAHpdc8pXfe9ueICVk/gq23tGhKN4KSZAbmKBc8hnJJcqUTUH69YeuizE10Ai1FE1021vFDzrxHHysOV8ADSLrRiv3GMd/05I0rgXBljUOJftiPmsM+wANPx3JTbEttAm/bmLvtk4s01pBBOTrlwruPpgw0hbI3rzV40pQaKsujG5WoniQvVrJAKeGkSBP2hO4poptQKcc0+o0gB03glCZcQs8PTFdJjmTDzEcxkcNky20bc99cLLddJPUiEVl4t49HJHn16mKEo+abons6fwklZpWL9eCrB4oilMWVBkqWRHkPa1GcN6W10mQ9WUqYoudtdjQ2POFBsjNtKZwXjn6PPbcXJUfMvdw/ZcnxZoXEhQ7nmsZPNOVMW/Aw7TQlJ5VCuWgr76uhRiyX2lRTmh+mgOJrZwBa1JziGIsg0VIokcJpTY2aDSiM8ZmHc1LF/ttjSy0k915QyphdfW1uKTnenSSpZD7uH3iJXPmL4tu7koppplM6W1GaSaAkCZZUEV+iJEnKm0mSVrHe4VuhtGYDKnBiPgRbSgt3236UO2RGzBFtsIf03RpICiiLRfgHWjgq6ThxqCwrT91AT7gTCE8KA2dJf+rTKFKWJiA+QnLEKZiBpWgK6Ey/S+hzgEmU0HewpXSIbLl9I+buOQm3d8Pe26gj2d57RJqkNjSn3LwSkyE93UJxW+jrL78sB8OIppWg9aDJojBfb0gzM3h217HgSo6epx0wQqq48uiwi8EUx7GhEiV+iCRqwZVXXbXcStXw5jDXBMhlZssEyr1oS7Lc3hFzj1ykzWGLo809vtGtKXvGl+MjR5k0GfrTko6GyrKysOkelLYmR07JYSw696SuC6EOjihBF1sxfKlj0kkzwLQCASM6XKqszIw5a05UASVgfpeLpbnldo+Yey5MRHnDXQWWHT2as2e1aDMDHK4MSYcchVKbcjFNmZPOlDUV6MVo0pfsfIhHn3lHuwn/XTjAMiDFdflKLwBEA0oWCAkIRIc5ag5XAeWyhh8/SthSKLePpdvHjOXvVvS0rWuFKbWY7J6cVHhbpNs7PAxwTSqdXNb5crEURXpgKZ7emsIpi/pNEG9IXtiDIQmyEOxN15GlxFBfOTc251AaSSAMAkf2y5ZNYNTciKvBbIs5LFAS/xcj5m6YF0naYc/c/5mK0xCf/+UUPWPKT0ByUcAYLlmYwin5RabbTcKVOO27cWgmehNVokEdSbSkbA3TP3jVxSuvMpzU7Ni3Qw7qsquWLatCnRmeAErA3JQYLff71yjdvCgXS7d+InH7cl1XNGZuTIyVvxZHKaWTUBZoBqk+5GE4zyZS03UopHkyQBIjCmtKN22ypeCmlVeuvNhQGs3lm/BU+ZyhBD12xMj+o4QtD+QG0XbD1BZHOspT6rYbPQlfdn9QcKVmQorvRembvuwTOLMrIa0vdT278FEpVHIMrsQviTyzGhwzmP2DoOg12M+3QGedL2NVbcn9D1sqle++IJPLs3clm6Zgy6APbcGTX+IfuUqj5M4matacpSMdLJNxjoYClGiGkU2fd0dNwswG+ZUXzxLmlkHD6IAOj4BlxcDw8jTN72RLv3qELf+FtCmcizUwkULpJu0RyvG8uTKgfDHK3w4lYEIxRauKdK2FirxvJQkrCKJJaZCogaRQojmY/QB3JZrpw818e2SIHKXBb4oknn8Nk8a09CPNhSjXAghZXSh7NnOsdDsZeCUiGioNpSnzfIdykCSO8wElRsZ6UmmcpCmQKNDsWM7GzOVXFnDODlQYzDlkHPGsshwu7bObbPmvjXlQLhZuSgqlm7X3RXP2rg9sO8Oh/PVrovRrHaFc5FmKZnBmyXFTNFETLIkyrRDoD3iUDxQwUsSJ6py56Sr8URgzN1UwzmcjmB8mVzx7/uvRMt7ITE4ytWHU08ShsjfM2dH1dhQWjr/88QkYFgLckww0QZL5nJ1EnB4lO4i9aLo+rSxM5iA78Iok7UBQO8cfHRVg5nKWgDzJB9GGNxvNjcP3WzJHd38S5YK9hfLfs8xGeXgik2MlUOpuWld7DuudJWbKvzd8TZYoQilt1bOvsfQ+iySYkdIcMzR9JrLDFtHxcO/rAJMcJTgzZ858EIU0A8zNE/cDJDT4QS7WAbuJ5X+CuX8utS2svMNVOQVf9nY8jIVjkyWdcaB0LH3WCduaMudWwszQVJwrrZekKZ4omXgHRDT0F5MmBJr4lYKZy20avPLBB42mdfb0VX5k9n64EurIJWz5HyNc6Yebb9KIf7miq42PHQQB5UMnuAD/u+vLDURpJDVUUgp0smRJx3maJolmlIQZMrpw8lQ7XLwIEZGe1OAIszkoOpz3owzhLvZV95s0WCa32v6jLwlzYRLmRDzLVCYiSjNl95ewpVB+KVdKivTFWRHnv/WmsyZPX+OFrjThF30pU0oPDg6AJcZMknzQIZyYCSg/SubwXZDDxfI/RvmC5JDZUATl1JLcMcc9ZCjLyr5khAtlWTbEC9ZEnyZprZiKw2TvD7FDpXglTTTAJEmUNElo8CNOjcAR5jSCD6Jctcx+DbYlI3z3/2xLPV608y6cGEn9mmVqfvTwcZhX/vQbJpsFW4KkR4lbba2EmB02qQxNqChOMSVGCTwJEEALNA0jQc5u6f8QKLNADeYAszlIOtGSDmUyh+8rlP9RLsq5LSwNp2D2YoPjBMwr/8YdINoSvkQxlG4K/0975/PaSBmHccTqYcH20pZQuku3h1x63KMiFUT0nkPxkoO2Za+Bgqey2EMLvZf8CTlkSGBymEzXFLJudkMOQYiH1rq0IMWDiopXwef7fd83z/xKXG22P1afyUwzVj18eL6/3pnOVPXmjkx9aPVyNFnYP5bPxw6kPKtYt6hA0sA828u/OP7ysyK+JlEC5vO8FqAEy8/7e4k5/JIsIc7lIwdzHyjz7wFlU/pM2BIsXXyLGv1VskzDzKZpeGYEutIESUMU3nTPeMcmRGNAjTMfy1u+25o9i0OaxWIRMFF0juHMvHWmhrhKx3Bqju3Q5Vi+ObWcj+krFHO6sra6uvf+6k+/+tq1G5YWpSosy50ypJeEKZsoq0HCMVPAKJuRwQmS+KSE6nO+B52BI/gpzKLVTsKZtOVFHOU0u/RLG3MqEeXPvxjCbMCVu5/s/tm1neaz77777Xcb3ypfFpPqTfk6ima2NxntWUiFpO7ui/rS/nQqKsy2GPPpcfHLTz8rgqO68ksHE/uxganOtChP8zHdneKSxqVhzt7Lj1gyCkHqo2969gwh/uznP/745dm3K5ZloybDZteCHeFMN6Wzqsft6ZAWkkA/cA+FNc7UQ1Tm/d7HhybKi07tF1hwE5SfFdWZJswlwJUmqntMi1NvsR2aAMzpRDF/RJb73zSHKL999usfP/34A1xpVTERzsuU2RKSYIpDMtIdznjMA6KB6WjK6wfs+4TW5AcOVOtIohwQBSfM+X0+L6egKR/AfCFloL2zDZDbj9rV/IRmx+z7rqfYZcZX2f162fNXnJ49+/VHzD6Vb91FyqZGuP+AGgVzdBniTxz4RF1QZMIEQrNLDVrDgTDx1vnBGVgeHRedcJp/evKZhbmzvSOT9/f4CZg7O/V8THPSWfK6xCRS5mI+AdM6s9Ft4OiyZRcov6mrKxnhgSAcbiO9+a727hnW1M0dsH9cUJTEKYXI0nRM9W2g4In3+ANnW4zptRnje/m9vXP9vr0jh3brov1oWzTo5+NakAgnyEnA5PIb14yS+rb5DVRvrsQivJK6wWN0TR9XhohVHxJJX1KmNQJGoSnbGjJmkVHudHEIlkdPAFE2aGdb9Wh7R3t06m3cWvDmJOoOFzkkZSaK+d7Xm6lrvHVhGZrHQ0mE16W1tBFOXyrMbmM8zfR6XOxCcEGURXMAW4IlDkqziENxrYgoh0yUr2GXpmfvRRscYUxBiV0P54qSus9kORmUXMuMKXnJvCHoymHD/Xm03y+zhsfvLmz0M3tO/vWAMh1d1FHSsaW9OfD2j1oCElKYTu1TreVFpxbKjZ5vU0BZS6DMTRmUk4OpLAEzUcxfJGD2BJ1b1XQRXovfcmRpSgNfHRPqOHC9OJNo/AHv7qn5F/IutoG8pjYpjfJz06evF4uDE1BDCo2xbJtxh5rhmuVkYfKuTMKMjubdsqy1+zz3bJeezpdmrnzwdyxH8iyYI6U8heUR3nx1jBBP0Rx4YHl6UXTSqM+f7WxTAw7hkQs8ZDlJmOyMsgpQUNV7OJg8NeKJMkpTsJc7epJNU3cmTgVqn2lIhAQ5pDmo7+/v1d1bakmyCJga5cfr60X9aGeENnN7XTkWgdJLocS8M3lbjuqMnvJujlCTJW3aYYSn1FPHmiKEfXQD73jacf3AuhIbRaRQS4w5gC/TOtmDzhHhskHtQ3FqOlfyWhmT5YRxEmZMT76gL8sVomSXHhNn9BBfCHNktLsqpIeCQUk7JqTFB2/x35Cva4WoM9eLa9qxt9YMyqKBebZujTmo5+OavmtRUpMOc17/SY6T3VpnheqLTTu8eh6VWtgfNpscLmv1MIWTLNWbBxCeOFMo+D2vB5pJnYPl6QCvpNYYJ0rsgyMxYnFt3al9cj4AS2wI8HzClQblpFny5jf27H93B5yZwxvu6rkfNBu0pXDuG5QuzpVmT1qoKEcLkzJBfoCtUNndPw0TIOHH7ilgXoDchq057YHjuWlqORy5hg0IRdtFRVlNolwCSs47k6dpYN5LwvwKNw1TjPC+a4+k06xy/OlWhZkjaZslSPvTMJExcQwqHcI0R2w1vB2w5iCS5sc1aYuUJN7wvTnwjrwAGNdkN3N520S4HsET8b3eOcwntGxRvmKYaWc+/7qU0bVXg1jn6TmUWuDrjWjrbr42lXGqAMk9IhWLkkwPKnjZolcoHGDbiBhzo7MPdTYKxpgXkj4HgAqWttwcDhQkQ71YsVWHSufKVwRzljBjjSYVlsVhRCsuHZZ0sAEcdkjWmOYX1SDVKFXkP45zPMDekfcEAmQBryCACu6wVgW+c5AsbBY214Ts6QVIroPl5nrrVOdygKQGtkOnpq0rkzCvJsyfumUj3rjlNYhWXDqcJStyxuxJX3bKrPyjWboY9z08uHhwAJKyR1SRIA/sm/wHhzjzBptWa/19RPnFelT9lCvnR+fKyQ9As4spmI+PGeeAAnZEWxcaDbvioWeVrA5eFuh6DPoMloSJTx0sKwdQnGUhKIsx8U1YbrbEmC3BiG0TmVGMuU516nsjys6rZEmYbI2SV9Q4AvUSc3oHNUgF0ByHYiJk8nxAlkmcNbCsbXwoJOMw+4JPUKozD8WmzpeI8v0Yy85pPtUMXQFKwtSmneNket0o6IVE2SiL3x7YO+IariFKO1OyatetzDH2laVUoYRCsKwDIxTH2d0FvtbGJmgCZ3iq+VONiZS5eX54NhimSs46yRb9Kli+4WAuE2ZyoKSYLd2UHkgu7WSxDMSwjZQvDcsHYJng2UXxqTYPnMhyTWaf/kBMiY+eHXY2hxoAKD4QUdKVC1fgyrQz59POfI44T0oHxl4s4KsPstTRp5uN8KV8MctHeIQpdiioopAHDz90JKkOjHnU2ShpnON
1413M0JIlyrk5dlz9pmbe4bRzBSLMBa5n8k+qHmXakq2mpwE/fP5JrxmbLOsPRvgyVtyBEvJRfFY7eKC2CfFOr2lRlnxpi2pCEjxLazJWHrUdypL7UkujvDd7Ra5Mw3xnJp8uQbypkNmyEiPrBXaybPSA2Y9OlqE9yfKlnlmYqooUH/eyq3B3vxrE2qIBvgAlQtlzfRG1HlbT8b14hy36FYkwZzNgPo+vtndWoeaQbE3ADO/LrutVSqOml76gQV+6eVP3h3haMSTFx7MsD3raIW1gA0IfYb1bUY+WNksl7YsC+eacuV45zacElFfuSq4avXVnOZ/S3mNjTfaatdhAVHZkdTCvuiAPeBIXY9zRFIFmAHzlhkGpJq1u6FsXcV4HTA+uBEscB2fCEgwVJ/aQq0LxAs71yisQUZpG887SXIY1nwy26MR6r8mVOBltuJhkMiSv//YbY1hSsKXAbKxqwjQKyoAZaLhD2ggF4GgU1L0KEELCMmCmpGYWODdesdi1v0OYVNSaPnYO5tEF45rWIVuI+tFxyA9DP5tlEIZqzIf4yBTZe2hVxUnoXkrt16V2g5xkTKdNcwyxKHQjqk6UpYPJ6Zx68aS9ld1qek3euWlSqYHkRUtPv1zuZ7JsemXevFDD+2/6jqUkzD5eGFiSk1KIID/sKkg5UEE/w5Rv4zL4daJkBbqTY6cZnSlZg7gUF02emi7dXwjpWpKrQ1r8G3GWbEI99xaHUE78SJBXA3uytVHd392vlR4qSMqv0JTxsdG2ldcBkzMQYDLOEzQ3EyvEUnnYamqGHII1nTqoQsEqlOnLbjnSRqFbx//P4tN1o4pzaakmxtwqbZXA02mT1TsV3wbl9YlxPsu1jtjiUfxp902Pf2EF1W3yZEsvJGFSNwKlWQJfZGWkWTdtlMFXkyB/6NSt4gwkIwp40TaqpTuugF+vGOdL05k042mzW683eSYh3mVNF5O6cciwXMnIl8JymAp6mmMFJj7Bqg1yvDQde1ivBWLLLZgTQi3PJDk3PzWsOtdKk0sdHIKSNE/Sl9YY1fVGtA517Iniq5oCn2Qp/143PnaCpOxSyVcrLmGqgNHKZ8mJKWdMee0BnojzKVozpr2TdimLpZiqwvA3qZS/8hK+XNGtUYuW+65lLtZc0Upe97ecMZ3gzS49mWoqYcqbEN9ODuYCS1CiQdqJUaQTfXdmph42ntrSG4D0Jcna6+6+udAOH65gD3URbiulZu00n6nc7DC+bwpMjXNaM7sKXbBDIjCPNZ0BD/WjvVPUlwjr2CXNqssMW9j8/u5qzX+4he9UI2TFSZhyfupG1O8UTpc1F9hrJrz5+EIHS8qv1boMeC09UZaVGEvO92JgkOWwFMpXVbMS+pbkivnZDL2jfKamF2dtfN8gVyZgTnFAT+qr9CwUHydjPX0nm6XeqAB2/F3PdvuCD8JxSLLHzjyVKTW8b1SqTHVHbI+y9PhrmjN5z0y5MWTJQpRi6Xtm8OSzKkLDkjIkmxxxssP7hmXKRNJ0WXOeE3ranK1Mms2a1yOvahZLxv9uh4+b8tzds5S1JNNkavqetZnypqXKzEBfYLOZGeullUzRlyzqZMnMGoz/z4MeC3eaZA6J8ib1lGN7TQ30uwz0tJ4ePuGfVGao61VDuhThH0YdXOdZpsOzHcmrY0B580lCDPQ7i6SZpcdP2j55jlO311l5Ofndnpcfo7fn7jqSN698jw302eXxNJ+iTyquTEyNSv2Ujsyeve9M3aiR8R/QRKSjQRqv52fn0nheTn6ndoYUOV45FG8leaNrTvrvBOjNuzNs3kf58/nZSavT9P8NUb/ZrdS8UzbkIyvO7fNkzJrWm6zp44B+9fikdTwo/QOgzQ4wjg1rdkELUyZR3sQ555/QnJ2/x8Q5PoE+P3x8dt7qdINm029kYW34zWbQ7YS9vnd4ekSOYwvO/QXrydtnSiHpaGqko9+8T5ovDfXs/Py8Umm1QqjVqlRw2j/zDg9fAOHLa2Z5duoWk1SRpsWJxPlv9VH+X2o6946AZMW59sXzS3oTMDVxLuRgzqvU3KKSvPWeHBJl4oTmc9Nw5xUIWRKLaja4b7cn6U3SVJxw5/0roAlH3nGWvEX95MsQTeB8Z3HmFUb7XG4JoU2QrxNJFWlanMtz+VeimaVZdeRraEmH0pnTVSKN9gnbc+7eEhrJKMjXIU2OkKMJWZyz84v35i4P9O3pmdzywtCQr2lsJ82pXZJzJ3iqP5dzlzHo3Mx99SNBvp6xPcKctKfz5+zCkjiUHdPLmHFuLrd4F3Ykx9c+tFNNkgt28KQ/tSIt3F26f2+GRLMhSkjfX3IUlSMNeTtWeSenFFASJdb5pcXFxVwud0+Vy91fXFy+O78gjSNlIDqMr3eOHE/TyPEEUSIdKUJ0GP/jHCNAyZNMAdUoxc8iJERi/C+kyLEo40DfINGxchD/t+OIimSJOqwEKx8n/YUR3fgfN+SYFjQlGlD0vxVfliS/m819sLkv7vfXf1P
141307dAbmf/gZofzX6k1ap8efBKGAAAAAElFTkSuQmCC", 1414XM:"data:image/png;base64,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", 1415BMa:"data:image/png;base64,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", 1416T5:"data:image/png;base64,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", 1417kz:"data:image/png;base64,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", 1418g7:115,mMa:115,CH:"data:image/png;base64,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", 1419iMa:115,hMa:115,MMa:"data:image/png;base64,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", 1420NMa:115,idb:117,PMa:"data:image/png;base64,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", 1421RC:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}}); 1422define("nJ","require jquery.mod lQ pw cI gD w".split(" "),function(a){var f=a("jquery.mod"),l=a("lQ"),m=a("pw"),k=a("cI"),c=a("gD");a=a("w");if(a.cc()!=a.JM){var h=function(r){return r.requestFullscreen||r.msRequestFullscreen||r.mozRequestFullScreen||r.webkitRequestFullscreen},g=function(){return document.exitFullscreen||document.msExitFullscreen||document.mozCancelFullScreen||document.webkitExitFullscreen},b=document.createElement("div");if(!(a=!(!h(b)&&!g())))try{a=window.self===window.top}catch(r){a= 1423!1}if(a){var d=l.extend(c,function(r){c.call(this);this.xa=r;this.Ct=h(r);this.mD=g(r);this.W=this.S$();var t=this;f(document).bind("msfullscreenchange webkitfullscreenchange mozfullscreenchange fullscreenchange",function(){t.jfa()});f(window).bind("resize",function(){t.jfa()})});d.Nka=function(){};d.prototype.hk=function(){return!(!h(this.xa||b)&&!g())};d.prototype.g2=function(){this.enabled()||this.toggle()};d.prototype.Mr=function(){this.enabled()&&this.toggle()};d.prototype.toggle=function(){this.enabled()?
1424this.mD.call(document):this.Ct.call(this.xa);this.jfa()};d.prototype.enabled=function(){return this.W&&this.S$()};d.prototype.S$=function(){return this.xa===d.fullscreenElement()};d.prototype.jfa=function(){var r=this.S$();this.W!=r&&(this.W=r,this.trigger(new k(m.ba)),d.N.trigger(m.ba))};d.N=new c;d.enabled=function(){return!!d.fullscreenElement()};d.fullscreenElement=function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement}; 1425d.Mr=function(){d.enabled()&&g().call(document)}}else{d=l.extend(c,function(r){c.call(this);this.xa=r});var e=!0;d.Nka=function(r){e="out_of_frame"==r};d.prototype.hk=function(){return e};d.prototype.g2=function(){this.toggle()};d.prototype.Mr=function(){};d.prototype.toggle=function(){e&&window.open(window.self.location.href,"_blank")};d.prototype.enabled=function(){return d.enabled()};d.enabled=function(){return!1};d.fullscreenElement=function(){return null};d.Mr=function(){}}}else{d=l.extend(c, 1426function(r){c.call(this);this.xa=r});d.prototype.hk=function(){return!0};d.prototype.g2=function(){this.enabled()||this.toggle()};d.prototype.Mr=function(){this.enabled()&&this.toggle()};d.prototype.toggle=function(){if(this.enabled())n("fullscreen"),d.Vz=null;else{d.Vz&&d.Vz.Mr();n("fullscreen");var r=q();r.push("fullscreen");p(r);d.Vz=this}this.trigger(new k(m.ba));d.N.trigger(m.ba)};d.prototype.enabled=function(){return this==d.Vz};d.N=new c;d.enabled=function(){return!!d.fullscreenElement()}; 1427d.fullscreenElement=function(){return d.Vz&&d.Vz.xa};d.Mr=function(){d.enabled()&&d.Vz.Mr()};d.Nka=function(){};d.Vz=null;var n=function(r){for(var t=q(),u=[],v=0;v<t.length;v++)t[v]!=r&&u.push(t[v]);p(u)},q=function(){var r=window.location.hash.substring(1);return r.length?r.split("&"):[]},p=function(r){window.location.hash="#"+(r.length?r.join("&"):"")}}return d}); 1428define("dF",["require"],function(){var a={};a:{try{if("localStorage"in window&&(window.localStorage.setItem("test","test"),"test"==window.localStorage.getItem("test"))){window.localStorage.removeItem("test");var f=!0;break a}}catch(m){}f=!1}if(f)a.setItem=function(m,k){window.localStorage.setItem(m,k)},a.getItem=function(m){return window.localStorage.getItem(m)},a.removeItem=function(m){return window.localStorage.removeItem(m)},a.clear=function(){try{window.localStorage.clear()}catch(m){}};else{var l= 1429{};a.setItem=function(m,k){l[m]=k};a.getItem=function(m){return l[m]};a.removeItem=function(m){delete l[m]};a.clear=function(){l={}}}return a}); 1430define("jr","require jquery.mod lQ pu w mQ pW cl nJ dF".split(" "),function(a){function f(V,W){this.z2a=V;this.UPa=W;this.efa=[];this.Oj=null;this.dR=!1}var l=a("jquery.mod"),m=a("lQ"),k=a("pu"),c=a("w"),h=a("mQ"),g=a("pW"),b=a("cl"),d=a("nJ"),e=a("dF"),n="color:#000; font-family:Arial, Helvetica, sans-serif;",q="",p="border-color:#b2b2b2;",r=p,t="background-color:#009adb; border:none; box-sizing:border-box; color:#fff; cursor:pointer; font-family:Arial, Helvetica, sans-serif; text-align:center;",u= 1431"vertical-align:middle; padding:0;",v='<img style="width:33vmin;" src="'+b.xl+'"/>',w='<img style="width:24vmin;" src="'+b.xl+'"/>',x='<img style="width:34vmin;" src="'+b.T5+'"/>',y='<img style="width:34vmin;" src="'+b.CLa+'"/>',z='<img style="width:24vmin;" src="'+b.rMa+'"/>';c.pb()?(t+=" margin:0 1vmin; min-width:20vmin; padding:2.2vmin 4vmin; font-size:3.6vmin; font-weight:bold; min-width:30vmin;",n+=" font-size:3.6vmin; line-height:4.3vmin;",q+=" margin:5vmin 0;",p+=" margin:5vmin 0;",r+=" margin:3vmin 0;", 1432u+=" height:4vmin; margin:0 1vmin 0 0; width:4vmin;"):t+=" font-size:19px; padding:17px 34px;";q+=n;f.prototype.p9=function(){this.Oj||(this.Oj=l("<div/>"),this.Oj.css({position:"fixed","z-index":g.JLa,left:0,top:0,margin:0,padding:0,height:"100%",width:"100%","background-color":"rgba(255, 255, 255, 0.99)"}),this.Oj.html(this.UPa),l(this.Oj).find("button").on("click",function(V){this.ZVa(l(V.currentTarget).attr("id"))}.bind(this)))};f.prototype.tea=function(V,W){var K={},M;for(M in W)K[M]=V.css(M); 1433this.efa.push({$el:V,css:K});V.css(W)};f.prototype.xYa=function(){for(;this.efa.length;){var V=this.efa.pop();V.$el.css(V.css)}};f.prototype.show=function(V,W,K){V||(V=function(){});W||(W=function(){});if(this.dR){var M=this.SW;this.SW=function(){M();V()};var S=this.GW;this.GW=function(){S();W()}}else{this.p9();this.SW=V;this.GW=W;var X=this.LSa();if(void 0===X){this.dR=!0;var ba=this;X=d.fullscreenElement()||document.body;X=l(X);!0!==K?X.children().each(function(){ba.tea(l(this),{visibility:"hidden"})}): 1434(this.tea(X,{overflow:"hidden"}),X.children().each(function(){ba.tea(l(this),{position:"absolute","z-index":0})}));X.append(this.Oj)}else this.dR=!1,X?this.SW():this.GW()}};f.prototype.hide=function(){this.dR&&(this.dR=!1,this.Oj.detach(),this.xYa())};f.prototype.LSa=function(){var V=e.getItem(this.Ura());if("true"==V)return!0;
1434if("false"==V)return!1};f.prototype.Xxa=function(V){e.setItem(this.Ura(),V?"true":"false")};f.prototype.Ura=function(){return this.z2a+"DontDisplay:"+window.location.pathname}; 1435f.prototype.ZVa=function(V){var W=l("#tdvvriw_dontdisplay").is(":checked");this.hide();"tdvvriw_continue"==V?(this.SW(),W&&this.Xxa(!0)):"tdvvriw_cancel"==V&&(this.GW(),W&&this.Xxa(!1))};a=m.extend(f,function(){var V=['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">\n<div>',v,'<div style="'+q+'">'+k("use-cardboard-info")+"</div>",'<div><button style="'+t+'" id="tdvvriw_continue">'+ 1436k("use-cardboard")+"</button></div>","</div>",'<hr style="'+p+'">',"<div>",'<div style="'+q+'">','<div style="margin-bottom:2vmin;">'+k("samsung-internet-vr-app-info")+"</div>",'<div><button style="'+t+'" id="tdvvriw_cancel">'+k("launch-default-browser")+"</button></div>","</div>",y,"</div>\n</div></div>",'<div style="position:absolute; left:12vmin; right:12vmin; bottom:6vmin; '+q+'">','<input type="checkbox" id="tdvvriw_dontdisplay" name="tdvvriw_dontdisplay" value="true" style="'+u+'"><label for="tdvvriw_dontdisplay">'+ 1437k("dont-display-again")+"</label>","</div>"].join("\n");f.call(this,"ChromeAppInfoWindow",V)});var B=m.extend(f,function(){var V=['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">\n<div>',v,'<div style="'+q+'">'+k("use-cardboard-info")+"</div>",'<div><button style="'+t+'" id="tdvvriw_continue">OK</button></div>',"</div>",'<hr style="'+p+'">',"<div>",'<div style="'+q+'">', 1438'<div style="margin-bottom:2vmin;">'+k("samsung-internet-vr-info")+"</div>","</div>",y,"</div>\n</div></div>",'<div style="position:absolute; left:12vmin; right:12vmin; bottom:6vmin; '+q+'">','<input type="checkbox" id="tdvvriw_dontdisplay" name="tdvvriw_dontdisplay" value="true" style="'+u+'"><label for="tdvvriw_dontdisplay">'+k("dont-display-again")+"</label>","</div>"].join("\n");f.call(this,"SamsungInternetInfoWindow",V)}),E=m.extend(f,function(){f.call(this,"SamsungInternetForGearVRInfoWindow", 1439['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">\n<div>',y,'<div style="'+q+'">This content requires access to the WebVR API.<br>To enable WebVR open the "More" menu you\'ll find above this window and then click on the "Labs" item.</div>','<div><button style="'+t+'" id="tdvvriw_cancel">OK</button></div>',"</div>\n</div></div>"].join("\n"))}),I=m.extend(f,function(){var V= 1440['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">','<div style="'+q+'"></div>','<div style="text-align:center;"><button style="'+t+' box-shadow:0 0 4px rgba(0, 0, 0, 0.5);" id="tdvvriw_continue">'+k("exit-vr")+"</button></div>","</div></div>"].join("\n");f.call(this,"ExternalVRDisplayVRInfoWindow",V)});I.prototype.p9=function(){f.prototype.p9.call(this);!0===h.lg("vrv")&& 1441this.Oj.css({background:"none"})};var A=m.extend(f,function(){var V=c.browser()==c.rh?"https:"!=window.location.protocol&&"localhost"!=window.location.hostname?"<div>"+k("giroscope-disabled-http")+"</div>":k("giroscope-disabled-safari-request-permission").map(function(W){return"<div>"+W+"</div>"}).join("\n"):"<div>"+k("giroscope-disabled-http")+"</div>";V=['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">\n<div>', 1442'<div style="'+q+'">',V,"</div>",'<div><button style="'+t+'" id="tdvvriw_continue">OK</button></div>',"</div>\n</div></div>",'<div style="position:absolute; left:12vmin; right:12vmin; bottom:6vmin; '+q+'">','<input type="checkbox" id="tdvvriw_dontdisplay" name="tdvvriw_dontdisplay" value="true" style="'+u+'"><label for="tdvvriw_dontdisplay">'+k("dont-display-again")+"</label>","</div>"].join("\n");f.call(this,"GiroscopeDisabledInfoWindow",V)}),C=m.extend(f,function(){var V=['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">\n<div>', 1443v,'<div style="'+q+'">'+k("use-cardboard-info")+'</div><div><button style="'+t+'" id="tdvvriw_continue">'+k("use-cardboard")+"</button></div>","</div>",'<hr style="'+p+'">',"<div>",y,'<div style="'+q+'">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).</div>','<div><button style="'+t+'" id="tdvvriw_cancel">Use Carmel web browser</button></div>',"</div>\n</div></div>"].join("\n");f.call(this,"CarmelInstallationPromptVRInfoWindow", 1444V)}),J=m.extend(f,function(){var V=['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">\n<div>',v,'<div style="'+n+' margin:2vmin 0;">'+k("cardboard-v1")+"</div>",'<div><button style="'+t+'" id="tdvvriw_cancel">'+k("use-default-cardboard")+"</button></div>","</div>",'<hr style="'+r+'">',"<div>",'<div style="'+n+' margin-bottom:2vmin;">'+k("cardboard-v2")+"</div>",'<div><button style="'+ 1445t+'" id="tdvvriw_continue">'+k("use-cardboard-v2")+"</button></div>",x,"</div>\n</div></div>",'<div style="position:absolute; left:12vmin; right:12vmin; bottom:6vmin; '+q+'">','<input type="checkbox" id="tdvvriw_dontdisplay" name="tdvvriw_dontdisplay" value="true" style="'+u+'"><label for="tdvvriw_dontdisplay">'+k("dont-display-again")+"</label>","</div>"].join("\n");f.call(this,"CardboardV2InfoWindow",V)}),D=m.extend(f,function(){var V=['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">', 1446'<div style="'+q+'"></div>','<div style="text-align:center;"><button style="'+t+'" id="tdvvriw_continue">'+k("enter-vr")+"</button></div>","</div></div>"].join("\n");f.call(this,"EnterVRInfoWindow",V)}),O=m.extend(f,function(){f.call(this,"PreparingVRInfoWindow",['<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">','<div style="'+q+'">Preparing VR...</div>',"</div></div>"].join("\n"))}), 1447R=m.extend(f,function(){var V=['<div style="position: absolute; top: 7vmin; right:5vmin; ">',w,'</div>\n<div style="box-sizing:border-box; margin:0; padding:0 12vmin; display:table; height:100%; width:100%;"><div style="vertical-align:middle; text-align:center; display:table-cell;">',z,'<div style="'+q+'">'+k("use-safari-for-vr")+"</div>",'<div style="text-align:center;"><button style="'+t+'" id="tdvvriw_continue">OK</button></div>',"</div></div>",'<div style="position:absolute; left:12vmin; right:12vmin; bottom:6vmin; '+ 1448q+'">','<input type="checkbox" id="tdvvriw_dontdisplay" name="tdvvriw_dontdisplay" value="true" style="'+u+'"><label for="tdvvriw_dontdisplay">'+k("dont-display-again")+"</label>","</div>"].join("\n");f.call(this,"UseSafariVRInfoWindow",V)});m=m.extend(f,function(){var V=['<div style="position: absolute; top: 5vmin; right:5vmin;">','<img style="width:24vmin" src="'+b.xl+'"/>','</div>\n<div style="box-sizing:border-box; padding:0 10vmin; display:table; height:100%; width:100vw;">\n<div style="vertical-align:middle; text-align:center; display:table-cell;">', 1449'<img style="width:22vmin" src="'+b.XM+'"/>','<div style="color:#000; font-family:Arial, Helvetica, sans-serif; font-size:3.6vmin; line-height:4.3vmin; margin:5vmin 0; text-align:center;">'+k("rotate-device")+"</div>","</div>\n</div>"].join("\n");f.call(this,"RotateVRInfoWindow",V)});var U={};U.sMa=new B;U.bdb=new E;U.xma=new I;U.Hcb=new C;U.Mcb=new D;U.Wcb=new O;U.Vna=new R;U.XM=new m;U.Cma=new A;U.SKa=new a;U.T5=new J;return U}); 1450define("ed","require lQ jquery.mod es pu cl pw w e ob ow".split(" "),function(a){function f(){this.Tb=!1;this.wR=null;this.wa=this.sa=100;this.Oaa=this.Gi=void 0;this.Paa=100;this.xa=document.createElement("div");this.xa.style.opacity=0;this.xa.style.display="none";this.xa.style.transition="opacity 0.3s";this.xa.addEventListener("transitionend",this.yfa.bind(this));this.re=document.createElement("div");this.SHa(!0);this.re.style.position="absolute";this.re.style.left=0;this.re.style.top=0;this.re.style.right= 14510;this.re.style.bottom=0;this.xa.appendChild(this.re);this.ic=document.createElement("img");this.ic.style.cursor="pointer";this.ic.style.position="absolute";this.ic.style.left="50%";this.ic.style.top="50%";this.ic.style.transform="translate(-50%, -50%)";this.xa.appendChild(this.ic);this.A7=k(this.xa)}function l(t,u){this.reason=t;this.np=u}var m=a("lQ"),k=a("jquery.mod");a("es");a("pu");var c=a("cl"),h=a("pw"),g=a("w"),b=a("e"),d=a("ob"),e=a("ow"),n=m.extend(b,function(){b.call(this);this.Qe("UserInteractionWindow"); 1452this.oc=null;this.Dt=[];var t=new d;t.set("duration",500);t.set("easing","cubic_in");var u=new e;u.set("duration",500);u.set("easing","cubic_out");this.ra({contentOpaque:!0,left:0,top:0,right:0,bottom:0,hideEffect:u,showEffect:t,visible:!1});this.bind(h.tc,this.yga,this,!0);this.bind(h.ma,this.n2a,this,!0)});n.prototype.yga=function(){this.oc&&this.oc.setSize(this.zf(),this.yf())};n.prototype.n2a=function(){var t=this.Dt.slice();this.Dt=[];this.f1();
1452t.forEach(function(u){u.np.call(u.context)})};n.prototype.Hb= 1453function(){b.prototype.Hb.call(this);this.oc||(this.oc=new f,this.oc.setSize(this.zf(),this.yf()),this.oc.Xe(!0),this.Yb().append(this.oc.gd().css({position:"absolute",left:0,top:0,right:0,bottom:0,overflow:"hidden"})),this.f1())};n.prototype.mq=function(){b.prototype.mq.call(this);this.getParent().bind(h.tc,this.yga,this,!0);n.xNa(this)};n.prototype.Ln=function(){this.getParent().unbind(h.tc,this.yga,this,!0);b.prototype.Ln.call(this);n.cYa(this)};n.prototype.w9a=function(t){this.Ct(p,t)};n.prototype.hU= 1454function(t){this.Ct(q,t)};n.prototype.Ct=function(t,u){this.Dt.push(new l(t,u));this.Dt.sort(function(v,w){return r[v.reason]-r[w.reason]});this.f1()};n.prototype.z3a=function(t){this.cancel(p,t)};n.prototype.x3a=function(){this.cancel(q,void 0)};n.prototype.cancel=function(t,u){t=this.ETa(t,u);0<=t&&this.nYa(t)};n.prototype.$H=function(){this.fW(!0)};n.prototype.zz=function(){this.fW(!1)};n.prototype.ETa=function(t,u){for(var v=0;v<this.Dt.length;v++){var w=this.Dt[v];if(w.reason==t&&w.np==u)return v}return-1}; 1455n.prototype.f1=function(){if(this.oc){var t=this.PTa();if(t){switch(t.reason){case q:this.oc.Ska(f.Ema);break;case p:this.oc.Ska(f.P6)}this.set("visible",!0)}else this.set("visible",!1)}};n.prototype.nYa=function(t){this.Dt.splice(t,1);t==this.Dt.length&&this.f1()};n.prototype.PTa=function(){return 0<this.Dt.length?this.Dt[0]:null};var q="vr",p="play",r={};r[q]=0;r[p]=1;f.prototype.gd=function(){return this.A7};f.prototype.setSize=function(t,u){if(this.sa!==t||this.wa!==u)this.sa=t,this.wa=u,this.g1()}; 1456f.prototype.SHa=function(t){this.re.style.backdropFilter=t?"blur(8px)":"none"};f.prototype.Xe=function(t){this.Tb!=t&&(this.Tb=t,this.wR&&(clearTimeout(this.wR),this.wR=null),this.Tb?(this.xa.style.display="block",this.xa.style.opacity=0,this.wR=setTimeout(function(){this.wR=null;this.xa.style.opacity=1}.bind(this),30)):this.xa.style.opacity=0)};f.prototype.Ska=function(t){this.Gi!=t&&(this.Gi=t,this.u1a())};f.prototype.yfa=function(){this.Tb||(this.xa.style.display="none")};f.prototype.u1a=function(){switch(this.Gi){case f.P6:this.Oaa= 1457c.kz;this.Paa=c.g7;break;case f.Ema:this.Oaa=c.MMa,this.Paa=c.NMa}this.ic.src=this.Oaa;this.g1()};f.prototype.g1=function(){g.pb()?(this.ic.style.maxWidth=Math.round(.5*this.sa)+"px",this.ic.style.width="20vmin"):(this.ic.style.maxWidth=Math.round(.33*this.sa)+"px",this.ic.style.width=this.Paa+"px")};f.P6="play";f.Ema="vr";n.pna=f;n.ld=[];n.gda=[];n.xNa=function(t){n.ld.push(t);
1457n.gda.forEach(function(u){n.Usa(t,u)});n.gda=[]};n.cYa=function(t){n.ld.splice(n.ld.indexOf(t),1)};n.ready=function(){return 0< 1458n.ld.length};n.hU=function(t){n.ld.length?n.ld.forEach(function(u){n.Usa(u,t)}):n.gda.push(t)};n.Usa=function(t,u){t.hU(function(){n.ld.forEach(function(v){v!=t&&v.x3a()});u()})};return n}); 1459define("dj",["require","exports"],function(){return function(){function a(){}a.addParameter=function(f){this.removeParameter(f);var l=this.toArray();l.push(f);this.NJa(l)};a.removeParameter=function(f){var l=this.toArray().filter(function(m){return m!=f});this.NJa(l)};a.toArray=function(){var f=window.location.hash.substring(1);return f.length?f.split("&"):[]};a.NJa=function(f){window.location.hash="#"+(f.length?f.join("&"):"")};return a}()}); 1460define("gQ","require exports w ii jr e nJ my ed dj jE mQ".split(" "),function(a,f,l,m,k,c,h,g,b,d,e,n){var q=!1;g.wait(function(){setTimeout(function(){q=!0},10)});return function(){function p(){}p.UG=function(r){this.sCa(r)};p.sCa=function(r){function t(){v.sCa(r)}function u(){v.Tab(r)}var v=this;this.XR.BL?m.disabled?k.Cma.show(function(){m.pka(t)}):h.enabled()||!c.p3()?(h.Mr(),b.hU(t)):u():this.XR.G4?u():l.Xr()?u():l.cc()==l.Mp||l.cc()==l.Uu?q?u():c.p3()?setTimeout(u,10):b.hU(function(){setTimeout(u, 146110)}):c.p3()?u():b.hU(u)};p.Tab=function(r){function t(){u.J9a(r)}var u=this;l.cc()==l.mH?(d.removeParameter("vr"),k.SKa.show(t,function(){d.addParameter("vr")}.bind(this))):l.SS()&&l.cc()==l.nH?k.sMa.show(t):l.cc()==l.HM?k.Vna.show(t):l.cc()==l.lV?k.Vna.show():t()};p.J9a=function(r){function t(){v.XR.zka=e.BLa;r()}function u(){v.XR.zka=e.sH;r()}var v=this;!l.pb()||l.Df()?u():"1"==n.getQueryParameter("cardboard_version")?u():"2"==n.getQueryParameter("cardboard_version")?t():k.T5.show(t,u)};return p}()}); 1462define("u",["require","jquery.mod","nJ"],function(a){function f(){e.get(0)==document.body&&h.height(window.innerHeight)}function l(p,r){var t={},u;for(u in r)t[u]=p.css(u);n.push({$el:p,css:t});p.css(r)}function m(p){this.xa=p}var k=a("jquery.mod"),c=a("nJ");m.prototype.g2=function(){this.enabled()||this.toggle()};m.prototype.Mr=function(){this.enabled()&&this.toggle()};m.prototype.toggle=function(){this.enabled()?m.cancel():m.request(this.xa)};m.prototype.enabled=function(){return m.enabled(this.xa)}; 1463var h=k("<div/>").css({position:"fixed",bottom:0,left:0,height:"100vh",width:"100vw"}),g=k("<div/>"),b=null,d=null,e=null,n=[],q=null;m.request=function(p){if(p!==b){m.cancel();b=p;var r=c.fullscreenElement()||document.body;d=k(p);e=k(r);g.insertAfter(d);d.appendTo(h);e.children().each(function(){l(k(this),{visibility:"hidden"})});l(d,{position:"absolute",left:0,top:0,width:"100%",height:"100%"});r==document.body?l(h,{position:"fixed",left:0,top:"",right:"",bottom:0,height:"100vh",width:"100vw",margin:0, 1464padding:0}):l(h,{position:"absolute",left:0,top:0,right:"",bottom:"",width:"100%",height:"100%",margin:0,padding:0});h.appendTo(e);f();q=setInterval(f,300)}};m.cancel=function(){if(b){h.detach();d.insertBefore(g);for(g.detach();n.length;){var p=n.pop();p.$el.css(p.css)}e=d=b=null;n=[];clearInterval(q)}};m.enabled=function(p){return b==p};return m}); 1465define("lJ","require lQ pw cI gD pu cl".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("pu");a=a("cl");var h=['<div style="position: absolute; top: 5vmin; right:5vmin;">','<img style="width:24vmin" src="'+a.xl+'"/>','</div>\n<div style="box-sizing:border-box; padding:0 10vmin; display:table; height:100%; width:100vw;">\n<div style="vertical-align:middle; text-align:center; display:table-cell;">'].join("\n"),g=h+['<img style="width:22vmin" src="'+a.XM+'"/>','<div style="color:#000; font-family:Arial, Helvetica, sans-serif; font-size:3.6vmin; line-height:4.3vmin; margin:5vmin 0; text-align:center;">'+ 1466c("rotate-device")+"</div>"].join("\n")+"</div>\n</div>",b=h+['<img style="width:13vmin; vertical-align:middle;" src="'+a.BMa+'"/>','<div style="color:#000; font-family:Arial, Helvetica, sans-serif; font-size:3.6vmin; line-height:4.3vmin; text-align:left; display:inline-block; vertical-align:middle; margin:5vmin 0 0 2vmin;">Please, swipe up to<br>enter Fullscreen Mode</div>'].join("\n")+"</div>\n</div>";f=f.extend(k,function(){k.call(this);this.gm=this.yo=this.zo=this.YO=this.ZO=this.Eba=this.Fba= 1467void 0;this.eY=!1;this.QA=this.tda=this.Dba=this.If=null;this.wra=[];this.bba=this.lr=!1;this.Ic=this.Ic.bind(this)});f.prototype.request=function(){this.lr||(this.lr=!0,this.o9(),window.addEventListener("resize",this.Ic),document.body.appendChild(this.If),document.body.appendChild(this.QA),this.V_a=document.documentElement.style.overflow,this.U_a=document.body.style.overflow,document.documentElement.style.overflow="auto",document.body.style.overflow="auto",this.aQ())};f.prototype.cancel=function(){this.lr&& 1468(this.lr=!1,window.removeEventListener("resize",this.Ic),document.body.style.overflow=this.U_a,document.documentElement.style.overflow=this.V_a,document.body.removeChild(this.If),document.body.removeChild(this.QA),this.aya(!1))};f.prototype.enabled=function(){return this.eY};f.prototype.o9=function(){this.If||(this.If=this.WW({position:"fixed",top:0,left:0,zIndex:9999998},!0),this.If.id="tdvminuictr",this.tda=this.WW({position:"fixed",backgroundColor:"#fff",top:0,left:0,textAlign:"center"},!0,g), 1469this.If.appendChild(this.tda),this.Dba=this.WW({position:"fixed",backgroundColor:"#fff",top:0,left:0,textAlign:"center"},!0,b),this.If.appendChild(this.Dba),this.QA=this.WW({position:"absolute",top:0,left:0,right:0,height:"999999999vmax",zIndex:9999999},!1),this.QA.id="tdvminuiscrl",this.QA.addEventListener("touchend",this.Ic))};f.prototype.WW=function(d,e,n){var q=document.createElement("div");this.RQ(q,d);void 0!==n&&this.CZa(q,n);e&&this.wra.push(q);return q};f.prototype.Ic=function(){[0,250,1E3, 14702E3].forEach(function(d){setTimeout(this.Kca.bind(this),d)}.bind(this))};f.prototype.Kca=function(){this.zo==window.innerWidth&&this.yo==window.innerHeight||this.aQ()};f.prototype.aQ=function(){this.zo=window.innerWidth;this.yo=window.innerHeight;this.gm=this.zo>this.yo?"landscape":"portrait";if("landscape"==this.gm){this.Fba&&this.Eba&&this.dVa(this.Fba,this.Eba)&&(!this.ZO&&!this.YO||this.eVa(this.ZO,this.YO))&&(this.ZO=this.zo,this.YO=this.yo);this.ZUa()&&(this.ZO=this.zo,this.YO=this.yo);this.Fba= 1471this.zo;this.Eba=this.yo;var d=this.ZO==this.zo&&this.YO==this.yo}else d=!1;this.wra.forEach(function(p){p.style.height=this.yo+"px";p.style.width=this.zo+"px"}.bind(this));var e=this.lr&&"portrait"==this.gm,n=this.lr&&"landscape"==this.gm&&!d,q=this.lr&&"landscape"==this.gm;this.RQ(this.If,{display:e||n?"block":"none"});this.RQ(this.tda,{display:e?"block":"none"});this.RQ(this.Dba,{display:n?"block":"none"});this.RQ(this.QA,{display:q?"block":"none",right:n?0:"99.9%"});this.aya(d)};f.prototype.aya= 1472function(d){null!=this.b0&&(clearTimeout(this.b0),this.b0=null);this.eY!=d&&(this.b0=setTimeout(function(){this.b0=null;(this.eY=d)?this.trigger(new m(l.Lp)):this.trigger(new m(l.Gb));this.trigger(new m(l.ba))}.bind(this),d?1E3:0))};f.prototype.ZUa=function(){var d=window.innerWidth,e=window.innerHeight,n=Infinity;[[480,320],[960,640],[1136,640],[1334,750],[1920,1080],[2001,1125],[2048,1536],[2172,1125],[2208,1242],[2732,2048],[2436,1125]].forEac
1472h(function(q){n=Math.min(n,Math.abs(100-100*d*q[1]/ 1473(e*q[0])))});return 1>=n?!0:!1};f.prototype.dVa=function(d,e){return d*window.innerHeight>e*window.innerWidth};f.prototype.eVa=function(d,e){return d*window.innerHeight>=e*window.innerWidth};f.prototype.RQ=function(d,e){for(var n in e)d.style[n]=e[n]};f.prototype.CZa=function(d,e){d.innerHTML=e};return new f}); 1474define("pB",["require","exports"],function(){return function(){function a(){}a.enable=function(){null===this.wakeLock&&navigator.wakeLock&&navigator.wakeLock.request("screen").then(function(f){this.wakeLock=f}.bind(this))};a.disable=function(){null!==this.wakeLock&&(this.wakeLock.release(),this.wakeLock=null)};a.wakeLock=null;return a}()}); 1475define("kW",["require","jquery.mod","pu","cl"],function(a){function f(){this.Oj=null;this.W=!1;this.Ic=this.Ic.bind(this);this.yo=this.zo=this.gm=void 0}var l=a("jquery.mod"),m=a("pu"),k=a("cl");f.prototype.Uv=function(){this.Oj||(this.Oj=l("<div/>"),this.Oj.css({position:"fixed","z-index":1E6,left:0,top:0,margin:0,padding:0,height:"100%",width:"100%","background-color":"rgba(255, 255, 255, 0.99)"}),this.Oj.html(['<div style="position: absolute; top: 5vmin; right:5vmin;">','<img style="width:24vmin" src="'+ 1476k.xl+'"/>','</div>\n<div style="box-sizing:border-box; padding:0 10vmin; display:table; height:100%; width:100vw;">\n<div style="vertical-align:middle; text-align:center; display:table-cell;">','<img style="width:22vmin" src="'+k.XM+'"/>','<div style="color:#000; font-family:Arial, Helvetica, sans-serif; font-size:3.6vmin; line-height:4.3vmin; margin:5vmin 0; text-align:center;">'+m("rotate-device")+"</div>","</div>\n</div>"].join("\n")))};f.prototype.show=function(c){this.W||(this.W=!0,this.Uv(), 1477l(c).append(this.Oj),l(window).on("resize",this.Ic),this.aQ())};f.prototype.hide=function(){this.W&&(this.W=!1,l(window).off("resize",this.Ic),this.Oj.detach())};f.prototype.Ic=function(){[0,250,1E3,2E3].forEach(function(c){setTimeout(this.Kca.bind(this),c)}.bind(this))};f.prototype.Kca=function(){this.zo==window.innerWidth&&this.yo==window.innerHeight||this.aQ()};f.prototype.aQ=function(){this.zo=window.innerWidth;this.yo=window.innerHeight;this.gm=this.zo>this.yo?"landscape":"portrait";this.Oj.toggle("landscape"!= 1478this.gm)};return new f}); 1479define("hS","require exports pw w jr dj nJ u lJ pB kW bn".split(" "),function(a,f,l,m,k,c,h,g,b,d,e,n){function q(p,r){p?setTimeout(r,200):r()}return function(){function p(){}p.request=function(r,t){this.XR.isPresenting||this.XR.yT||(this.sl=r,this.qka=t,this.sl&&(this.XR.yT=!0,this.S7a(),this.requestSession().then(function(u){this.s8a(u);this.sl.xr.setReferenceSpaceType("local-floor");this.sl.xr.setFoveation(this.qka.QCa);return this.sl.xr.setSession(u)}.bind(this)).then(function(){this.XR.referenceSpace=this.sl.xr.getReferenceSpace(); 1480this.XR.yT=!1;this.t8a()}.bind(this)).catch(function(u){console.error(u);this.XR.yT=!1;this.r8a()}.bind(this))))};p.end=function(){this.XR.session&&this.XR.session.end()};p.requestSession=function(){var r,t=["local-floor","bounded-floor","hand-tracking"];(null===(r=this.sl)||void 0===r?0:r.capabilities.isWebGL2)&&t.push("layers");return navigator.xr.requestSession("immersive-vr",{optionalFeatures:t})};p.S7a=function(){n.lM(!0);this.o$a(this.sl);this.Rab()};p.s8a=function(r){this.Oja||(this.Oja=this.q8a.bind(this)); 1481this.Pja||(this.Pja=this.u8a.bind(this));r.addEventListener("end",p.Oja);r.addEventListener("select",p.Pja)};p.r8a=function(){n.lM(!1);this.AJa()};p.t8a=function(){var r;null===(r=this.sl)||void 0===r?void 0:r.xr.setAnimationLoop(this.Zn.bind(this));n.FIa(this.requestFrame.bind(this),this.A3a.bind(this));n.lM(!1);this.DIa(this.sl,this.qka);this.sl=null;m.cc()!=m.IM&&e.show(h.fullscreenElement());m.pb()||k.xma.show(this.XR.Xha.bind(this.XR))};p.q8a=function(){var r;this.XR.session&&(this.XR.session.removeEventListener("end", 1482p.Oja),this.XR.session.removeEventListener("select",p.Pja),null===(r=this.sl)||void 0===r?void 0:r.xr.setAnimationLoop(null),n.A9a(),this.AJa(),this.DIa(null,null))};p.u8a=function(){this.XR.N.trigger(l.gq)};p.DIa=function(r,t){this.XR.mh!==r&&(this.XR.mh=r,this.XR.wl=t,this.XR.session=r?r.xr.getSession():null,this.XR.isPresenting=!!r,this.XR.xG=r?this.XR.nka.get(r)||null:null,this.XR.Iu=r?this.XR.mka.get(r)||null:null,this.mKa(),q(!this.XR.isPresenting,function(){this.XR.N.trigger(l.ba)}.bind(this)))}; 1483p.o$a=function(r){var t=void 0;m.i7a()?t=1:m.hG()?t=1.2545454545454546:m.Df()?t=1.4222222222:m.pb()&&this.XR.BL&&(t=this.
1483XR.v4);t&&r.xr.setFramebufferScaleFactor(t)};p.Rab=function(){var r;g.request(null===(r=this.sl)||void 0===r?void 0:r.domElement);this.XR.BL&&(this.sl.domElement.width=this.sl.domElement.height=100,m.cc()==m.JM?c.addParameter("vr"):d.enable(),m.cc()==m.IM&&b.request())};p.AJa=function(){g.cancel();e.hide();m.pb()||k.xma.hide();this.XR.BL&&(c.removeParameter("vr"),b.cancel(),d.disable())}; 1484p.Zn=function(r){var t;null!==(t=this.XR.mh)&&void 0!==t&&t.xr.getFrame()&&(this.mKa(),t=this.E2,this.E2=null,this.XR.N.trigger(l.iV),t&&t(r),this.XR.N.trigger(l.Th))};p.mKa=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 r=this.XR.session.renderState.layers;r&&0<r.length&&r[0].textureWidth&& 1485(this.XR.framebufferWidth=r[0].textureWidth,this.XR.framebufferHeight=r[0].textureHeight)}};p.requestFrame=function(r){this.E2=r;return 0};p.A3a=function(){this.E2=null};p.sl=null;p.qka=null;p.E2=null;return p}()}); 1486define("oQ","require exports lQ gD bg pY bT jm iP jE F nH dC hO jA kF cN gQ hS three.mod".split(" "),function(a,f,l,m,k,c,h,g,b,d,e,n,q,p,r,t,u,v,w,x){a=function(){function y(){}y.initialize=function(z){k.initialize(function(){this.Lm.forEach(function(B){B.xr.enabled=this.EM}.bind(this));n.initialize();q.initialize();p.initialize();r.initialize();t.initialize();c.initialize();this.qEa=!0;z()}.bind(this))};y.getType=function(){return this.BL?this.wv.xl:this.wv.SMa};y.KS=function(z,B){this.qEa?!this.EM|| 1487this.isPresenting||this.yT||this.UG(function(){w.request(z,B)}.bind(w)):this.initialize(function(){y.KS(z,B)}.bind(y))};y.Xha=function(){w.end()};y.QIa=function(z){t.iab(z)};y.setScale=function(z){c.setScale(z)};y.setPosition=function(z){c.setPosition(z)};y.hM=function(z){c.hM(z)};y.Yka=function(z,B,E,I){g.y$a(z,B,E);switch(I){case b.e7:p.LIa(!0);p.xIa(!0);break;default:p.LIa(!1),p.xIa(!1)}};y.a3a=function(z){z.xr.enabled=this.EM;g.add(z)};y.r9a=function(z){g.remove(z)};y.Xka=function(z,B,E,I){void 0=== 1488I&&(I=void 0);z.wi=B;z.TL=E;z.xu=I;B&&(z.BGa=Date.now())};y.BIa=function(z,B){B!=z.disabled&&(z.disabled=B)};y.PHa=function(z,B){p.M9a(z,B)};y.eab=function(z,B){z.Hr=B};y.Wka=function(z,B){z.hidden=B};y.log=function(){l.log("VR: "+(this.EM?"available":"not available"))};y.UG=function(z){v.UG(z)};y.wna=h;y.wv=e;y.JV=b;y.Wna=u;y.EM=!0;y.BL=!1;y.mh=null;y.xG=null;y.Iu=null;y.isPresenting=!1;y.yT=!1;y.session=null;y.framebufferWidth=void 0;y.framebufferHeight=void 0;y.bg=new x.Quaternion;y.yBa=1.7;y.Bc= 1489new x.Vector3;y.xm=1;y.fH=new x.Quaternion;y.scb=new x.Vector3;y.v4=Math.min(1,1280/(Math.max(screen.width,screen.height)*window.devicePixelRatio));y.Lm=[];y.wl=null;y.nka=new Map;y.mka=new Map;y.N=new m;y.referenceSpace=null;y.qEa=!1;y.ng=[];y.fL=new x.Ray;y.G4=null;return y}();k.XR=a;c.XR=a;g.XR=a;n.XR=a;q.XR=a;p.XR=a;r.XR=a;t.XR=a;v.XR=a;return w.XR=a});define("mW",["require","exports"],function(){return function(){return function(){this.nB=this.cL=void 0}}()}); 1490define("eS",["require","exports","hU","three.mod"],function(a,f,l,m){a=function(){function c(h,g,b,d){this.state=h;this.renderer=g;this.scene=b;this.camera=d;this.Aha()}c.prototype.dispose=function(){this.sha()};c.prototype.update=function(h,g){if(void 0!==this.state.nB)if(this.Jh.material.opacity=1-this.state.nB,h=null!=g.parent?g:h,this.Jh.parent!==h&&h.add(this.Jh),g.isPerspectiveCamera){this.Jh.position.z=1.01*-g.near;var b=this.renderer.getSize(new m.Vector2),d=b.height;h=this.m2.width;var e= 1491this.m2.height;g=d/(2*Math.tan(g.fov*k/2));g=Math.max(d/g,b.width/(g*h/e));this.Jh.scale.y=g;this.Jh.scale.x=g*h/e}else g.isOrthographicCamera&&(this.Jh.position.z=-(g.near+.1),this.renderer.getSize(new m.Vector2),this.Jh.scale.y=g.top-g.bottom,this.Jh.scale.x=g.right-g.left)};c.prototype.Cf=function(){return this.scene};c.prototype.Aha=function(){this.m2=this.B3a();this.Jh=this.h4a(this.m2)};c.prototype.B3a=function(){this.renderer.eu=!0;var h=l.Cha(this.renderer),g=this.renderer.getRenderTarget(); 1492this.renderer.setRenderTarget(h);this.renderer.render(this.scene,this.camera);this.renderer.setRenderTarget(g);this.renderer.eu=!1;return h};c.prototype.h4a=function(h){h=new m.SpriteMaterial({map:h.texture});h.sizeAttenuation=!1;h.transparent=!0;h.visible=!0;h.opacity=1;h.depthTest=!1;h.needsUpdate=!0;h=new m.Sprite(h);h.renderOrder=1E3;return h};c.prototype.sha=function(){var h,g,b,d=this.Jh.material;null===(h=d.map)||void 0===h?void 0:h.dispose();null===(g=d.envMap)||void 0===g?void 0:g.dispose(); 1493d.dispose();this.Jh.geometry.dispose();
1493this.m2.dispose();null===(b=this.Jh.parent)||void 0===b?void 0:b.remove(this.Jh)};return c}();var k=Math.PI/180;return a}); 1494define("mi",["require","exports","hU","oQ","three.mod"],function(a,f,l,m,k){a=function(){function g(b,d,e,n){this.state=b;this.renderer=d;this.scene=e;this.camera=n;this.Aha();this.m4a()}g.prototype.dispose=function(){this.sha();this.M3a()};g.prototype.update=function(){var b=void 0===this.state.nB?0:1-this.state.nB,d=void 0===this.state.cL?1:1-this.state.cL;b*=d;this.dL.material.opacity=1*d;this.Jh.children.forEach(function(e){e.material.opacity=b})};g.prototype.Cf=function(){return this.scene}; 1495g.prototype.Aha=function(){this.Jh||(this.ACa=this.C3a(),this.Jh=this.W3a(this.ACa),m.Un.add(this.Jh))};g.prototype.C3a=function(){var b=new k.Vector2(1024,1024),d=this.camera,e=this.renderer,n=this.scene,q=e.getRenderTarget(),p=e.getActiveCubeFace(),r=e.getActiveMipmapLevel(),t=e.xr.enabled,u=new k.PerspectiveCamera(90,1,d.near,d.far);u.matrixAutoUpdate=!1;u.layers=d.layers;this.renderer.eu=!0;e.xr.enabled=!1;m.Un.add(u);d=c.map(function(v){var w=l.Cha(e,b);u.matrix.identity();u.matrix.multiply(h.makeRotationFromEuler(v)); 1496u.updateMatrixWorld();e.setRenderTarget(w,0,0);e.render(n,u);return w});e.setRenderTarget(q,p,r);e.xr.enabled=t;this.renderer.eu=!1;m.Un.remove(u);return d};g.prototype.W3a=function(b){var d=new k.Group;c.forEach(function(e,n){var q=new k.PlaneGeometry(2,2);n=new k.MeshBasicMaterial({side:k.DoubleSide,depthTest:!1,transparent:!0,map:b[n].texture});q=new k.Mesh(q,n);q.matrixAutoUpdate=!1;q.renderOrder=1001;q.userData.N3=!0;q.matrix.identity();q.matrix.multiply(h.makeRotationFromEuler(e));q.matrix.multiply(h.makeTranslation(0, 14970,-1));d.add(q)});return d};g.prototype.sha=function(){var b;this.Jh.children.forEach(function(d){var e,n;d.material.dispose();null===(e=d.geometry)||void 0===e?void 0:e.dispose();null===(n=d.parent)||void 0===n?void 0:n.remove(d)});this.ACa.forEach(function(d){d.texture.dispose();d.dispose()});null===(b=this.Jh.parent)||void 0===b?void 0:b.remove(this.Jh)};g.prototype.m4a=function(){var b=new k.SphereGeometry(1,32,16,0,2*Math.PI,0,Math.PI),d=new k.MeshBasicMaterial({color:0,side:k.DoubleSide,depthTest:!1, 1498transparent:!0});b=new k.Mesh(b,d);b.renderOrder=1E3;b.userData.N3=!0;this.dL=b;m.Un.add(this.dL)};g.prototype.M3a=function(){var b;this.dL.material.dispose();this.dL.geometry.dispose();null===(b=this.dL.parent)||void 0===b?void 0:b.remove(this.dL)};return g}();var c=[new k.Euler(0,0,0,"YXZ"),new k.Euler(0,-.5*Math.PI,0,"YXZ"),new k.Euler(0,-Math.PI,0,"YXZ"),new k.Euler(0,.5*Math.PI,0,"YXZ"),new k.Euler(.5*Math.PI,0,0,"YXZ"),new k.Euler(-.5*Math.PI,0,0,"YXZ")],h=new k.Matrix4;new k.Euler;return a}); 1499define("jo","require exports pw mW eS mi oQ w nd".split(" "),function(a,f,l,m,k,c,h,g,b){return function(){function d(e){this.g5=this.f5=this.i5=this.j5=this.h5=this.k5=void 0;this.ms=null;this.$ia=!1;this.MS=void 0;this.renderer=e;this.Nu=new m;this.uGa=this.renderer.render.bind(e);this.renderer.render=this.render.bind(this);this.wGa=this.renderer.setSize.bind(e);this.renderer.setSize=this.setSize.bind(this);this.B8a=this.renderer.clear.bind(e);this.renderer.clear=this.clear.bind(this);this.vGa= 1500this.renderer.setRenderTarget.bind(e);this.renderer.setRenderTarget=this.setRenderTarget.bind(this);h.N.bind(l.ba,this.xe,this,!0);window.startFadeOut=this.WG.bind(this);window.setFadeOutPosition=this.LG.bind(this);window.endFadeOut=this.RF.bind(this)}d.prototype.dispose=function(){var e;h.N.unbind(l.ba,this.xe,this);null===(e=this.ms)||void 0===e?void 0:e.dispose()};d.prototype.setSize=function(e,n,q){void 0===q&&(q=!0);!this.renderer.eu&&this.ll()?(this.k5=e,this.h5=n,this.j5=q):this.wGa(e,n,q)}; 1501d.prototype.setRenderTarget=function(e,n,q){void 0===n&&(n=0);void 0===q&&(q=0);this.$ia||this.renderer.eu||!this.ll()||e.isXRRenderTarget?this.vGa(e,n,q):(this.i5=e,this.f5=n,this.g5=q)};d.prototype.render=function(e,n){if(!this.renderer.eu){if(this.ms&&this.ms.Cf()===e&&e!==this.y3)return;h.Yka(this.renderer,e,n,this.JKa);if(this.ll()||null===this.renderer.getRenderTarget())this.y3=e,this.KEa=n,this.ms&&this.ms.update(e,n)}if(!this.N4a(e,n)){this.$ia=!0;try{this.uGa(e,n)}catch(q){b.Zu&&console.error("render error:", 1502q)}this.$ia=!1}};d.prototype.clear=function(e,n,q){this.B8a(e,n,q)};d.prototype.xe=function(){this.ll()||(void 0!==this.k5&&void 0!==this.h5&&void 0!==this.j5&&(this.wGa(this.k5,this.h5,this.j5),this.j5=this.h5=this.k5=void 0),void 0!==this.i5&&void 0!==this.f5&&void 0!==this.g5&&(this.vGa(this.i5,this.f5,this.g5),this.g5=this.f5=this.i5=void 0))};d.prototype.ll=function(){return h.isPresenting&&h.mh===this.renderer};d.prototype.WG=function(){this.Nu.nB=0;this.$U()};d.prototype.LG=function(e){this.Nu.nB= 1503e};d.prototype.RF=function(){this.Nu.nB=void 0;this.$U()};d.prototype.vM=function(){this.Nu.cL=0;this.$U()};d.prototype.iM=function(e){this.Nu.cL=e;this.$U()};d.prototype.$K=function(){this.Nu.cL=void 0;this.$U()};d.prototype.N4a=function(e,n){if(!h.isPresenting||0===this.MS)return!1;
1503if(void 0===this.MS){if(g.cc()!=g.zs&&g.cc()!=g.Ty)return this.MS=0,!1;this.MS=20}this.MS--;var q=n.near,p=n.far;n.near=Math.min(q,.1);n.far=Math.max(p,1E3);this.uGa(e,n);n.near=q;n.far=p;return!0};d.prototype.$U=function(){var e= 1504this.y3&&(h.isPresenting&&void 0!==this.Nu.cL||void 0!==this.Nu.nB);e!==!!this.ms&&(e?this.ll()?this.ms=new c(this.Nu,this.renderer,this.y3,this.KEa):this.ms=new k(this.Nu,this.renderer,this.y3,this.KEa):this.ms&&(this.ms.dispose(),this.ms=null))};return d}()}); 1505define("fU","require exports pw hU nd oQ jo three.mod nJ".split(" "),function(a,f,l,m,k,c,h,g,b){return function(){function d(e){this.hS=!0;this.ls=this.renderer=null;this.gU=void 0;this.Gj=0;this.hS=e;this.container=document.createElement("div")}d.prototype.dispose=function(){this.Ca()};d.prototype.G1=function(){this.Gj++};d.prototype.B6a=function(){return 0<this.Gj};d.prototype.B4=function(){this.Gj--;0===this.Gj&&this.Ca()};d.prototype.gd=function(){return this.container};d.prototype.Ur=function(){this.OIa(); 1506return this.renderer};d.prototype.e5a=function(){this.Dab();return this.lB};d.prototype.f5a=function(){this.Eab();return this.Lr};d.prototype.dbb=function(){this.Zka(d.zna)};d.prototype.cbb=function(){this.Zka(d.yna)};d.prototype.hbb=function(){this.Zka(d.Ana)};d.prototype.WG=function(){var e;null===(e=this.ls)||void 0===e?void 0:e.WG()};d.prototype.LG=function(e){var n;null===(n=this.ls)||void 0===n?void 0:n.LG(e)};d.prototype.RF=function(){var e;null===(e=this.ls)||void 0===e?void 0:e.RF()};d.prototype.vM= 1507function(){this.OIa();this.ls.vM()};d.prototype.iM=function(e){this.ls.iM(e)};d.prototype.$K=function(){this.ls.$K()};d.prototype.Dab=function(){this.lB||(this.lB=new g.CSS3DRenderer,this.lB.domElement.style.position="absolute",this.lB.domElement.style.zIndex="0",this.container.prepend(this.lB.domElement))};d.prototype.OIa=function(){if(!this.renderer){var e={alpha:!0};k.vLa&&(e.precision="lowp");0<d.vha.length?(e.context=d.vha.pop(),e.canvas=e.context.canvas):(e.canvas=document.createElement("canvas"), 1508e.context=m.q4a(e.canvas));this.renderer=new g.WebGLRenderer(e);this.ls=new h(this.renderer);this.renderer.setAnimationLoop(null);this.renderer.setPixelRatio(m.getPixelRatio());this.renderer.debug.checkShaderErrors=k.Zu;this.renderer.domElement.style.position="absolute";this.renderer.domElement.style.zIndex="1";this.renderer.domElement.style.pointerEvents="none";this.renderer.outputColorSpace=g.SRGBColorSpace;this.renderer.shadowMap.type=g.PCFShadowMap;this.Lr?this.container.insertBefore(this.renderer.domElement, 1509this.Lr.domElement):this.container.appendChild(this.renderer.domElement);this.sKa();c.a3a(this.renderer);b.N.bind(l.ba,this.LFa,this,!0)}};d.prototype.LFa=function(){setTimeout(function(){if(this.renderer){var e=b.enabled()||!1;this.renderer.setPixelRatio(e?m.a5a(this.renderer.domElement):m.getPixelRatio())}}.bind(this),100)};d.prototype.Zka=function(e){this.gU!==e&&(this.gU=e,this.sKa())};d.prototype.sKa=function(){this.renderer&&(this.gU===d.zna?(this.renderer.setClearColor(0,1),this.renderer.autoClear= 1510!0,this.renderer.shadowMap.enabled=!1,this.ls.JKa=c.JV.e7):this.gU===d.yna?(this.renderer.setClearColor(0,0),this.renderer.autoClear=!1,this.renderer.shadowMap.enabled=!0,this.ls.JKa=c.JV.Qma):this.gU===d.Ana&&(this.renderer.setClearColor(0,0),this.renderer.autoClear=!1,this.renderer.shadowMap.enabled=!1))};d.prototype.Eab=function(){this.Lr||(this.Lr=new g.CSS3DRenderer,this.Lr.domElement.style.position="absolute",this.Lr.domElement.style.zIndex="2",this.Lr.domElement.style.pointerEvents="none", 1511this.container.appendChild(this.Lr.domElement))};d.prototype.Ca=function(){var e;this.Lr&&(this.container.removeChild(this.Lr.domElement),this.Lr=null);this.renderer&&(b.N.unbind(l.ba,this.LFa,this),c.r9a(this.renderer),this.container.removeChild(this.renderer.domElement),d.vha.push(this.renderer.getContext()),this.renderer.dispose(),this.renderer=null,null===(e=this.ls)||void 0===e?void 0:e.dispose(),this.ls=null);this.lB&&(this.container.removeChild(this.lB.domElement),this.lB=null)};d.zna=0;d.yna= 15121;d.Ana=2;d.vha=[];return d}()}); 1513define("gk",["require","exports","pw","gD","w"],function(a,f,l,m,k){return function(c){function h(g,b){var d=c.call(this)||this;d.enabled=!1;d.L3=0;d.M3=0;d.parentElement=null;d.Wi=null;d.rl=null;d.wM=null;d.Gj=0;d.vc=g;d.parentElement=b;return d}Z(h,c);h.prototype.dispose=function(){this.qb(!1);this.parentElement=this.vc=null};h.prototype.G1=function(){this.Gj++;1<=this.Gj&&this.qb(!0)};h.prototype.B4=function(){this.Gj--;0>=this.Gj&&this.qb(!1)};h.prototype.qb=function(g){this.enabled!=g&&((this.enabled= 1514g)?(this.vc.HIa("Button"),this.d3a()):(this.vc.B9a(),this.tha(),this.stop(),this.v9a()))};h.prototype.getX=function(){return this.L3};h.prototype.getY=function(){return this.M3};h.prototype.$r=function(g){this.lh(g);this.enabled&&(this.yja=this.wja=g.x,this.zja=this.xja=g.y,this.rab())};h.prototype.HB=function(g){this.yja=g.x;this.zja=g.y;this.wM?this.Hbb():this.Wi&&this.YU()};h.prototype.lh=function(){this.tha();this.stop()};h.prototype.MFa=function(){this.lh()};h.prototype.pG=function(){this.D5= 1515Math.min(this.vc.Za(),this.vc.Cb())/100};h.prototype.start=function(){this.Y3a();this.trigger(l.ko);this.YU()};h.prototype.stop=function(){this.Wi&&(this.y4a(),this.trigger(l.Vf))};h.prototype.Hbb=function(){var g=this.yja-this.wja,b=this.zja-this.xja;Math.sqrt(g*g+b*b)>this.D5*h.bLa&&this.tha()};h.prototype.rab=function(){this.wM=window.setTimeout(this.gbb.bind(this),h.cLa)};h.prototype.tha=function(){this.wM&&(clearTimeout(this.wM),this.wM=null)};h.prototype.Y3a=function(){this.Wi=document.createElement("div"); 1516this.Wi.setAttribute("tdvclass","Button");this.Wi.style.position="absolute";this.Wi.style.width=this.Wi.style.height=Math.round(2*h.ima*this.D5)+"px";this.Wi.style.borderRadius="50%";this.Wi.style.backgroundColor="rgba(255, 255, 255, 0.5)";this.Wi.style.transform="translate(-50%, -50%)";this.Wi.style.zIndex="1000";this.Wi.style.left=this.wja+"px";this.Wi.style.top=this.xja+"px";this.parentElement.appendChild(this.Wi);this.rl=document.createElement("div");this.rl.setAttribute("tdvclass","Button"); 1517this.rl.style.position="absolute";this.rl.style.width=this.rl.style.height=Math.round(2*h.oMa*this.D5)+"px";this.rl.style.borderRadius="50%";this.rl.style.backgroundColor="rgba(255, 255, 255, 0.5)";this.rl.style.transform="translate(-50%, -50%)";this.rl.style.zIndex="1000";this.Wi.appendChild(this.rl)};h.prototype.YU=function(){var g=this.yja-this.wja,b=this.zja-this.xja;if(0==g&&0==b)this.M3=this.L3=0;else{var d=Math.atan2(-b,g);g=Math.min(Math.sqrt(g*g+b*b)/(this.D5*h.ima),h.OLa);this.L3=Math.cos(d)* 1518g;this.M3=Math.sin(d)*g}this.rl.style.left=(50+50*this.L3).toFixed(2)+"%";this.rl.style.top=(50-50*this.M3).toFixed(2)+"%";this.trigger(l.ba)};h.prototype.y4a=function(){var g,b;null===(g=this.rl.parentNode)||void 0===g?void 0:g.removeChild(this.rl);this.rl=null;null===(b=this.Wi.parentNode)||void 0===b?void 0:b.removeChild(this.Wi);this.Wi=null};h.prototype.gbb=function(){this.wM=null;this.start()};h.prototype.d3a=function(){this.vc.bind(l.gb,this.$r,this,!0);this.vc.bind(l.Pb,this.HB,this,!0);this.vc.bind(l.Eb, 1519this.lh,this,!0);
1519this.vc.bind(l.tc,this.pG,this,!0);this.vc.bind(l.az,this.MFa,this,!0);this.pG()};h.prototype.v9a=function(){this.vc.unbind(l.gb,this.$r,this);this.vc.unbind(l.Pb,this.HB,this);this.vc.unbind(l.Eb,this.lh,this);this.vc.unbind(l.tc,this.pG,this);this.vc.unbind(l.az,this.MFa,this)};h.bLa=k.pb()?5:.5;h.cLa=k.pb()?300:600;h.ima=k.pb()?10:6.6;h.oMa=k.pb()?5:3.3;h.OLa=6;return h}(m)}); 1520define("dN","require jquery.mod es pw nA bn hR".split(" "),function(a){function f(n){this.xla=n;this.element=document.createElement("div");this.Hla=document.createElement("span");this.element.appendChild(this.Hla);this.Hla.innerHTML=n.text.split("<br>").join("\n").split("\n").map(m).join("<br>");this.V1=!1}function l(n){this.M=n;this.MR=c.throttle(this.MR.bind(this),100);this.NR=c.throttle(this.NR.bind(this),100);this.xa=document.createElement("div");this.xa.style.position="absolute";this.xa.style.left= 15210;this.xa.style.top=0;this.xa.style.right=0;this.xa.style.bottom=0;this.xa.style.zIndex=1;this.xa.style.cursor="inherit";this.xa.style.display="none";this.A7=k(this.xa);this.hm=document.createElement("div");this.hm.style.position="absolute";this.hm.style.left=0;this.hm.style.right=0;this.hm.style.zIndex=1;this.hm.style.cursor="inherit";this.xa.appendChild(this.hm);this.fR=[];this.qR=[];this.ji=[];this.cda={};this.AK=g.wc;this.M.bind(h.F("subtitlesEnabled"),this.Dx,this);l.qna.forEach(function(q){this.M.bind(h.F(q), 1522this.MR,this)}.bind(this));l.rna.forEach(function(q){this.M.bind(h.F(q),this.NR,this)}.bind(this));this.Dx();this.MR();this.NR()}function m(n){e.innerHTML=n;return e.innerText}var k=a("jquery.mod"),c=a("es"),h=a("pw"),g=a("nA"),b=a("bn"),d=a("hR");l.prototype.clear=function(){this.feb(null);this.M&&(this.M.unbind(h.F("subtitlesEnabled"),this.Dx,this),l.qna.forEach(function(n){this.M.unbind(h.F(n),this.MR,this)}.bind(this)),l.rna.forEach(function(n){this.M.unbind(h.F(n),this.NR,this)}.bind(this)), 1523this.M=null)};l.prototype.gd=function(){return this.A7};l.prototype.je=function(){return this.xa};l.prototype.Yga=function(n){0>this.fR.indexOf(n)&&(this.fR.push(n),n.bind(h.F("activeSubtitles"),this.dZ,this,!0),this.dZ())};l.prototype.lka=function(n){var q=this.fR.indexOf(n);0<=q&&(this.fR.splice(q,1),n.unbind(h.F("activeSubtitles"),this.dZ,this,!0),this.dZ())};l.prototype.dZ=function(){var n=[];this.fR.forEach(function(q){n=n.concat(q.get("activeSubtitles")||[])});this.c_a(n)};l.prototype.Dx=function(){this.W= 1524this.M.get("subtitlesEnabled");this.lga()};l.prototype.MR=function(){this.AK=this.oO("subtitlesVerticalAlign",[g.Ec,g.qe,g.wc],g.wc);this.hm.style["text-align"]=this.oO("subtitlesHorizontalAlign",[g.ab,g.tb,g.Ye],g.Ye);this.hm.style.bottom=this.AK==g.wc?this.Ek("subtitlesBottom",0):"";this.hm.style.top=this.AK==g.Ec?this.Ek("subtitlesTop",0):this.AK==g.qe?"50%":"";this.hm.style.transform=this.AK==g.qe?"translate(0, -50%)":"";this.lga()};l.prototype.NR=function(){var n={};n["background-color"]=this.oaa("subtitlesBackgroundColor", 1525"subtitlesBackgroundOpacity");n.border=[this.Ek("subtitlesBorderSize"),"solid",this.Fi("subtitlesBorderColor")].join(" ");n["box-shadow"]=this.Fi("subtitlesShadow",!1)?[this.Ek("subtitlesShadowHorizontalLength"),this.Ek("subtitlesShadowVerticalLength"),this.Ek("subtitlesShadowBlurRadius"),this.oaa("subtitlesShadowColor","subtitlesShadowOpacity","#000000",0)].join(" "):"";n.display="inline-block";n["font-family"]=d.Tx(this.Fi("subtitlesFontFamily"));n["font-size"]=this.Ek("subtitlesFontSize");n.color= 1526this.Fi("subtitlesFontColor");n["font-weight"]=this.oO("subtitlesFontWeight","bold bolder lighter 100 200 300 400 500 600 700 800 900 normal".split(" "),"normal");n["font-style"]=this.oO("subtitlesFontStyle",["italic","normal"],"normal");n["margin-bottom"]=this.Ek("subtitlesGap");n.opacity=this.Fi("subtitlesOpacity");n["padding-top"]=this.Ek("subtitlesPaddingTop");n["padding-bottom"]=this.Ek("subtitlesPaddingBottom");n["padding-left"]=this.Ek("subtitlesPaddingLeft");n["padding-right"]=this.Ek("subtitlesPaddingRight"); 1527n.position="relative";n["text-align"]=this.oO("subtitlesHorizontalAlign",["left","right","center"],"center");n["text-decoration"]=this.Fi("subtitlesTextDecoration",["underline","overline","line-through","none"],"none");n["text-shadow"]=[this.Ek("subtitlesTextShadowHorizontalLength"),this.Ek("subtitlesTextShadowVerticalLength"),this.Ek("subtitlesTextShadowBlurRadius"),this.oaa("subtitlesTextShadowColor","subtitlesTextShadowOpacity","#000000",0)].join(" ");this.cda=n;this.mOa()};l.prototype.c_a=function(n){this.qR= 1528n;this.lga()};l.prototype.lga=function(){for(var n=this.W?this.qR:[],q=this.ji.length-1;0<=q;q--){var p=this.ji[q];if(0<=n.indexOf(p.xla))break;this.hm.removeChild(p.element)}for(var r=[],t=!1;0<=q;q--)p=this.ji[q],!p.V1&&0>n.indexOf(p.xla)&&(p.V1=!0,p.element.style.visibility="hidden",t=!0),r.splice(0,0,p);t&&b.requestFrame(this.Zpa,this);this.ji=r;var u=this.ji.filter(function(v){return!v.V1}).map(function(v){return v.xla});n.filter(function(v){return 0>u.indexOf(v)}
1528).forEach(function(v){v=new f(v); 1529this.$oa(v);this.AK==g.wc&&0<this.ji.length?this.hm.insertBefore(v.element,this.ji[this.ji.length-1].element):this.hm.appendChild(v.element);this.ji.push(v)}.bind(this));this.xa.style.display=0<this.ji.length?"block":"none"};l.prototype.Zpa=function(n){var q=!1;n=Math.round(200*n/1E3);for(var p=0;p<this.ji.length;p++){var r=this.ji[p];if(r.V1)if(q=!0,n>=r.element.clientHeight)n-=r.element.clientHeight,this.hm.removeChild(r.element),this.ji.splice(p,1),p--;else{r.element.style.height=r.element.clientHeight- 1530n+"px";break}}q&&b.requestFrame(this.Zpa,this)};l.prototype.mOa=function(){this.ji.forEach(this.$oa.bind(this))};l.prototype.$oa=function(n){for(var q in this.cda)n.Hla.style[q]=this.cda[q]};l.prototype.Fi=function(n,q){return this.M.get(n,q)};l.prototype.Ek=function(n,q){n=this.M.get(n,q);isNaN(n)||(n=Math.round(n)+"px");return n};l.prototype.oO=function(n,q,p){n=this.M.get(n);return 0>q.indexOf(n)?p:n};l.prototype.oaa=function(n,q,p,r){n=this.M.get(n,p);q=this.M.get(q,r);return"rgba("+parseInt("0x"+ 1531n.substr(1,2))+", "+parseInt("0x"+n.substr(3,2))+", "+parseInt("0x"+n.substr(5,2))+", "+q+")"};l.qna=["subtitlesHorizontalAlign","subtitlesVerticalAlign","subtitlesTop","subtitlesBottom"];l.rna="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(" "); 1532var e=document.createElement("div");return l}); 1533define("mg","require exports ld pw lt oj".split(" "),function(a,f,l,m,k,c){a=function(){function n(q){this.tM=new Map;this.tl=q}n.prototype.add=function(q){c.Ja("PanoramaPlayer",q)?this.tM.set(q,new h(this.tl,q)):c.Ja("VideoPlayer",q)?this.tM.set(q,new g(this.tl,q)):c.Ja("PhotoAlbumPlayer",q)?this.tM.set(q,new b(this.tl,q)):c.Ja("Audio",q)&&this.tM.set(q,new e(this.tl,q))};n.prototype.remove=function(q){var p=this.tM.get(q);p&&(p.clear(),this.tM.delete(q))};return n}();f=function(){function n(q,p){this.tl= 1534q;this.source=p}n.prototype.clear=function(){};return n}();var h=function(n){function q(p,r){p=n.call(this,p,r)||this;p.FF=new d(p.tl);p.Ef=null;p.source.bind(m.F("panorama"),p.Lja,p,!0);p.Lja();return p}Z(q,n);q.prototype.clear=function(){this.source&&(this.source.unbind(m.F("panorama"),this.Lja,this),this.source=null,this.rf(null),this.FF.clear(),this.FF=null)};q.prototype.Lja=function(){this.rf(this.source.get("panorama"))};q.prototype.rf=function(p){if(this.Ef!=p){this.Ef&&(this.Ef.unbind(m.F("audios"), 1535this.mG,this),this.tl.lka(this.Ef));if(this.Ef=p)this.tl.Yga(this.Ef),this.Ef.bind(m.F("audios"),this.mG,this,!0);this.mG()}};q.prototype.mG=function(){this.FF.Cka(this.Ef&&this.Ef.get("audios")||[])};return q}(f),g=function(n){function q(p,r){p=n.call(this,p,r)||this;p.video=null;p.source.bind(m.F("video"),p.sG,p,!0);p.source.bind(m.ye,p.sG,p,!0);p.sG();return p}Z(q,n);q.prototype.clear=function(){this.source&&(this.source.unbind(m.F("video"),this.sG,this),this.source.unbind(m.ye,this.sG,this),this.source= 1536null,this.W4(null))};q.prototype.sG=function(){var p;this.W4((null===(p=this.source)||void 0===p?void 0:p.get("state"))!=k.V?this.source.get("video"):null)};q.prototype.W4=function(p){this.video!=p&&(this.video&&this.tl.lka(this.video),(this.video=p)&&this.tl.Yga(this.video))};return q}(f),b=function(n){function q(p,r){p=n.call(this,p,r)||this;p.oG=p.oG.bind(p);p.FF=new d(p.tl);p.MB=null;l.bu(p.source,"photoAlbum.playList.items",p.oG,!1);l.bu(p.source,"photoAlbum.playList.selectedIndex",p.oG,!1); 1537p.oG();return p}Z(q,n);q.prototype.clear=function(){this.source&&(l.ca(this.source,"photoAlbum.playList.items",this.oG),l.ca(this.source,"photoAlbum.playList.selectedIndex",this.oG),this.source=null,this.zIa(null),this.FF.clear(),this.FF=null)};q.prototype.oG=function(){var p=this.source.get("photoAlbum");p=(p=p?p.get("playList"):null)&&0<=p.get("selectedIndex")?p.get("items")[p.get("selectedIndex")]:null;this.zIa(p?p.get("media"):null)};q.prototype.zIa=function(p){this.MB!=p&&(this.MB&&this.MB.unbind(m.F("audios"), 1538this.mG,this),(this.MB=p)&&this.MB.bind(m.F("audios"),this.mG,this,!0),this.mG())};q.prototype.mG=function(){this.FF.Cka(this.MB&&this.MB.get("audios")||[])};return q}(f),d=function(){function n(q){this.O1=[];this.N1=new Map;this.tl=q}n.prototype.clear=function(){this.Cka([])};
1538n.prototype.Cka=function(q){this.O1!=q&&(this.O1.forEach(function(p){0<=q.indexOf(p)||(this.N1.get(p).clear(),this.N1.delete(p))}.bind(this)),this.O1=q,this.O1.forEach(function(p){this.N1.has(p)||this.N1.set(p,new e(this.tl, 1539p))}.bind(this)))};return n}(),e=function(n){function q(p,r){p=n.call(this,p,r)||this;p.OB=!1;p.source.bind(m.F("state"),p.Fja,p,!0);p.Fja();return p}Z(q,n);q.prototype.clear=function(){this.source&&(this.RHa(!1),this.source.unbind(m.F("state"),this.Fja,this),this.source=null)};q.prototype.Fja=function(){this.RHa(this.source.get("state")!=k.V)};q.prototype.RHa=function(p){this.OB!=p&&(this.OB&&this.tl.lka(this.source),(this.OB=p)&&this.tl.Yga(this.source))};return q}(f);return a}); 1540define("bE","require es three.mod lQ ld pw lt cI oj kj gI B fU gk dN mg w oQ ep bh cZ hf oP e".split(" "),function(a){function f(){function D(){w.xG==U&&w.Iu==V?R.Ur().render(U,V):w.N.unbind(h.Th,D,this)}w.G4=new b(h.cdb);var O=C=new w.Wna,R=J=new p,U=new m.Scene,V=new m.Camera;w.Yka(R.Ur(),U,V,w.JV.e7);w.KS(R.Ur(),O);w.N.bind(h.Th,D,this,!0);w.G4=null}var l=a("es"),m=a("three.mod"),k=a("lQ"),c=a("ld"),h=a("pw"),g=a("lt"),b=a("cI"),d=a("oj"),e=a("kj"),n=a("gI"),q=a("B"),p=a("fU"),r=a("gk"),t=a("dN"), 1541u=a("mg"),v=a("w"),w=a("oQ"),x=a("ep"),y=a("bh"),z=a("cZ"),B=a("hf"),E=a("oP"),I=a("e"),A=d.define("ViewerArea",E,function(){E.call(this);this.set("childrenInteractionEnabled",!0);this.set("contentOpaque",!0);this.set("creationPolicy",z.GC);this.set("subtitlesEnabled",!0);this.set("checkToolTipOcclusion",!0);this.set("isKeyboardTarget",!1);this.Qt=this.UO=this.Jq=this.Si=this.OA=this.et=this.de=this.sX=this.mi=null;this.qR=new t(this);this.G0=new u(this.qR);this.pda=this.wt=!1;this.Oi=g.V;this.Zm= 1542this.yk=null;this.vn=!1;this.GQ=[];this.bind(A.tna,this.IWa,this,!0);this.bind(A.sna,this.HWa,this,!0);this.bind(h.gb,this.Gva,this);this.bind(h.gb,this.Gva,this);this.bind(h.Dc,this.bXa,this);this.bind(h.Jb,this.aXa,this);this.bind(h.jd,this.NZ,this,!0);this.bind(h.ad,this.ZWa,this,!0);this.aI=new e(this,"buttonPause",x.Nj);this.aI.bind(h.ma,this.BE,this);this.aI.set("state",B.Ie);this.bI=new e(this,"buttonPlay",x.Nj);this.bI.bind(h.ma,this.CE,this);this.bI.set("state",B.Ie);this.jD=new e(this,"buttonPlayPause", 1543x.Nj);this.jD.bind(h.ma,this.EWa,this);this.jD.set("state",B.Ie);this.dI=new e(this,"buttonStop",x.Nj);this.dI.bind(h.ma,this.AA,this);this.dI.set("state",B.Ab);this.XOa=new e(this,"buttonRestart",x.Ke);this.XOa.bind(h.ma,this.zA,this);this.uW=new e(this,"buttonToggleSubtitles",x.Nj);this.uW.bind(h.Kj,function(){this.set("subtitlesEnabled",!0)},this,!0);this.uW.bind(h.Dl,function(){this.set("subtitlesEnabled",!1)},this,!0);this.bind(h.F("subtitlesEnabled"),function(){this.uW.set("pressed",this.get("subtitlesEnabled"))}, 1544this);this.uW.set("pressed",this.get("subtitlesEnabled"));(new e(this,"buttonVRView",x.Ke)).bind(h.ma,function(){this.set("viewMode","vr")},this,!0);this.KUa=k.zp(this.l2a,this);this.bind(h.Al,this.YWa,this,!0);this.bind(A.IV,this.$Wa,this,!0);w.N.bind(h.ba,function(){this.set("viewMode",w.isPresenting?"vr":"standard");this.trigger(A.L6)},this,!0)});A.prototype.play=function(){this.CE()};A.prototype.pause=function(){this.BE()};A.prototype.stop=function(){this.AA()};A.prototype.restart=function(){this.zA()}; 1545A.Fc={progressBackgroundColor:void 0,progressBackgroundColorDirection:void 0,progressBackgroundColorRatios:void 0,progressBackgroundOpacity:void 0,progressBarBackgroun
1545dColor: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, 1546progressOpacity:void 0,progressPercent:0,progressRight:0,progressVisible:!1,externalPlaybackBar:void 0,externalProgressBar:void 0,playbackBarBackgroundColor:void 0,playbackBarBackgroundColorDirection:void 0,playbackBarBackgroundOpacity:void 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, 1547playbackBarDuration: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, 1548playbackBarHeadBackgroundColorRatios: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, 1549playbackBarStepBackgroundColorDirection: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, 1550playbackBarStepSelectedBackgroundColor: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, 1551playbackBarStepSelectedShadowHorizontalLength: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", 1552subtitlesOpacity: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, 1553subtitlesVerticalAlign:"bottom",transitionDuration:500,blendingTransitionDuration:void 0,disolveTransitionDuration:void 0,translationTransitionDuration:void 0,translationTransitionEnabled:!0,toolTipEnabled:!0};l.defaults(A.Fc,E.Fc);A.prototype.get=function(D,O){switch(D){case "viewMode":return w.isPresenting?"vr":"standard"}return E.prototype.get.call(this,D,O)};A.prototype.set=function(D,O){"playbackState"==D&&(O=this.Oi,this.get(D)!=O&&(this.pda=!0,this.KUa()));switch(D){case "toolTipEnabled":this.set("toolTipDisabled", 1554!1===O);break;case "cardboardPointerDistance":this.set("vrPointerDistance",O);break;case "cardboardPointerColor":this.set("vrPointerColor",O);break;case "cardboardPointerSelectionColor":this.set("vrPointerSelectionColor",O);break;case "cardboardPointerSelectionTime":this.set("vrPointerSelectionTime",O);break;case "playbackBarVisible":case "playbackBarRollOverDisplay":this.PR();break;case "viewMode":this.Od().B6a()&&("vr"!=O||w.isPresenting?"vr"!=O&&w.isPresenting&&w.Xha():w.KS(this.Od().Ur(),this.Bia())), 1555O=w.isPresenting?"vr":"standard"}E.prototype.set.call(this,D,O)};A.prototype.yb=function(){this.Ao(A.Fc)};A.prototype.Hb=function(){E.prototype.Hb.call(this);null==this.OA&&(this.OA=new I,this.OA.set("width","100%"),this.OA.set("height","100%"),this.OA.set("interactionEnabled",!1),this.OA.set("toolTipDisabled",!0),this.Ya(this.OA),this.OA.Yb().je().appendChild(this.Od().gd()));null==this.Jq&&(this.Jq=new I,this.Jq.set("width","100%"),this.Jq.set("height","100%"),this.Jq.set("toolTipDisabled",!0), 1556this.Jq.set("interactionEnabled",!1),this.Ya(this.Jq),k.defer(function(){this.Jq.set("cursor",y.hv)}.bind(this)),this.UO=new r(this,this.Jq.Yb().je()),this.UO.qb(!1));null==this.Qt&&(this.Qt=new I,this.Qt.set("width","100%"),this.Qt.set("height","100%"),this.Qt.set("toolTipDisabled",!0),this.Qt.set("interactionEnabled",!1),this.Ya(this.Qt),this.Qt.Yb().je().appendChild(this.qR.je()));null==this.mi&&(this.mi=new q,this.Ya(this.mi));null==this.de&&(this.de=new n,this.de.bind(h.ba,this.mda,this,!0), 1557this.Ya(this.de),this.PR())};A.prototype.Bia=function(){if(this.MAa)return this.MAa;if(C){var D=C;C=null}else D=new w.Wna;c.ea(this,"vrGazePointerHideTime vrFoveation vrPointerColor vrPointerDistance vrPointerOverColor vrPointerSelectionColor vrPointerSelectionTime".split(" "),function(){D.WCa=this.get("vrGazePointerHideTime");D.QCa=this.get("vrFoveation");D.s4=this.get("vrPointerColor");D.MGa=this.get("vrPointerDistance");D.Yja=this.get("vrPointerOverColor");D.u4=this.get("vrPointerSelectionColor"); 1558D.QGa=this.get("vrPointerSelectionTime")}.bind(this),!0);return this.MAa=D};A.prototype.E5a=function(){return this.de};A.prototype.Od=function(){this.Si||(J?(this.Si=J,J=null):this.Si=new p(this.get("aaEnabled")));return this.Si};A.prototype.cj=function(){E.prototype.cj.call(this);for(var D=[],O=this.GQ.length-1;0<=O;O--)D.push(this.GQ[O].j);this.Qt&&D.push(this.Qt);this.Jq&&D.push(this.Jq);this.de&&D.push(this.de);this.mi&&D.push(this.mi);var R=this.ob();D=D.filter(function(U){return 0<=R.indexOf(U)}); 1559R=R.filter(function(U){return-1==D.indexOf(U)}).concat(D);R.forEach(function(U,V){U&&this.gia(U)!=V&&this.ao(U,V)}.bind(this))};A.prototype.bb=function(){this.L("externalProgressBar")&&((this.sX=this.B("externalProgressBar"))?this.removeChild(this.mi):this.Ya(this.mi),this.S("externalProgressBar"),l(A.woa).each(function(O){this.cF(O)},this));this.uc(A.$Ma,A.loa,[this.mi],!0,!0);var D=[this.mi];this.sX&&D.push(this.sX);this.uc(A.woa,A.xoa,D,!0,!0);this.L("externalPlaybackBar")&&(this.et&&this.et.unbind(h.ba, 1560this.mda,this,!0),(this.et=this.B("externalPlaybackBar"))?this.removeChild(this.de):this.Ya(this.de),this.PR(),this.et&&this.et.bind(h.ba,this.mda,this,!0),this.S("externalPlaybackBar"),l(A.soa).each(function(O){this.cF(O)},this));this.uc(A.ZMa,A.koa,[this.de],!0,!0);D=[this.de];this.et&&D.push(this.et);
1560this.uc(A.soa,A.toa,D,!0,!0);E.prototype.bb.call(this)};A.prototype.l2a=function(){this.pda&&(this.pda=!1,this.aI.set("state",this.Oi==g.Qb?B.Ab:B.Ie),this.bI.set("state",this.Oi==g.PLAYING||this.Oi== 1561g.Qb?B.Ab:B.Ie),this.jD.set("state",this.Oi==g.PLAYING?B.Ab:B.Ie),this.dI.set("state",this.Oi==g.V?B.Ab:B.Ie))};A.prototype.wd=function(D){this.Oi=D;this.set("playbackState",D)};A.prototype.NZ=function(){A.sj(this)};A.prototype.ZWa=function(){A.rj(this)};A.prototype.BE=function(){this.Oi==g.Qb?this.Qk():this.br()};A.prototype.CE=function(){this.Qk()};A.prototype.EWa=function(){this.Oi==g.PLAYING?this.br():this.Qk()};A.prototype.AA=function(){this.ap()};A.prototype.zA=function(){this.ap();this.Qk()}; 1562A.prototype.YWa=function(){if(!this.yk||!this.yk.rha())switch(this.get("doubleClickAction")){case "toggle_fullscreen":var D=this.Db().pj;D&&D.hk()&&D.toggle()}};A.prototype.$Wa=function(D){this.GQ.forEach(function(O){this.G0.remove(O)}.bind(this));this.GQ=D.data.players;this.GQ.forEach(function(O){this.G0.add(O)}.bind(this));this.Xd()};A.prototype.Qk=function(){this.Zm&&this.Zm.play()};A.prototype.br=function(){this.Zm&&this.Zm.pause()};A.prototype.ap=function(){this.Zm&&this.Zm.stop()};A.prototype.IWa= 1563function(D){this.Rxa(D.data.player)};A.prototype.HWa=function(D){this.yk==D.data.player&&this.Rxa(null)};A.prototype.Gva=function(){A.Ep(this)};A.prototype.bXa=function(){this.vn=!0;this.PR()};A.prototype.aXa=function(){this.vn=!1;this.PR()};A.prototype.PR=function(){this.de&&this.de.set("visible",this.get("playbackBarVisible")&&(this.vn||!this.get("playbackBarRollOverDisplay")||v.u5()))};A.prototype.Rxa=function(D){this.yk!=D&&(this.set("playbackBarVisible",!1),this.yk&&this.yk.Ep(!1),this.Zm&&this.Zm.unbind(h.F("state"), 1564this.P7,this),this.HXa=this.yk,(this.yk=D)&&this.yk.Ep(!!this.un),(this.Zm=this.yk&&this.yk.ePa?this.yk:null)&&this.Zm.bind(h.F("state"),this.P7,this,!0),this.P7())};A.prototype.Ep=function(D){this.un=D;this.set("isKeyboardTarget",D);this.yk&&this.yk.Ep(!!this.un)};A.prototype.xcb=function(){return!this.HXa};A.prototype.P7=function(){this.Zm?this.wd(this.Zm.get("state")):this.wd(g.V)};A.prototype.mda=function(){var D=(this.et?this.et:this.de).get("position");this.trigger(new b(A.E6,{position:D}))}; 1565A.loa={progressBackgroundColor:"backgroundColor",progressBackgroundColorDirection:"backgroundColorDirection",progressBackgroundColorRatios:"backgroundColorRatios",progressBackgroundOpacity:"backgroundOpacity",progressBarBackgroun
1565dColor:"barBackgroundColor",progressBarBackgroundColorDirection:"barBackgroundColorDirection",progressBarBackgroundColorRatios:"barBackgroundColorRatios",progressBarBorderColor:"barBorderColor",progressBarBorderRadius:"barBorderRadius",progressBarBorderSize:"barBorderSize", 1566progressBarOpacity:"barOpacity",progressBorderColor:"borderColor",progressBorderRadius:"borderRadius",progressBorderSize:"borderSize",progressHeight:"height",progressOpacity:"opacity",progressBottom:"bottom",progressLeft:"left",progressRight:"right"};A.$Ma=l(A.loa).keys();A.xoa={progressPercent:"percent",progressVisible:"visible"};A.woa=l(A.xoa).keys();A.koa={playbackBarBackgroundColor:"backgroundColor",playbackBarBackgroundColorDirection:"backgroundColorDirection",playbackBarBackgroundOpacity:"backgroundOpacity", 1567playbackBarBorderColor:"borderColor",playbackBarBorderRadius:"borderRadius",playbackBarBorderSize:"borderSize",playbackBarBottom:"bottom",playbackBarHeight:"height",playbackBarWidth:"width",playbackBarLeft:"left",playbackBarOpacity:"opacity",playbackBarRight:"right",playbackBarLiveDragging:"liveDragging",playbackBarProgressBackgroundColor:"barBackgroundColor",playbackBarProgressBackgroundColorDirection:"barBackgroundColorDirection",playbackBarProgressBackgroundColorRatios:"barBackgroundColorRatios", 1568playbackBarProgressBorderColor:"barBorderColor",playbackBarProgressBorderRadius:"barBorderRadius",playbackBarProgressBorderSize:"barBorderSize",playbackBarProgressOpacity:"barOpacity",playbackBarHeadBackgroundColor:"playheadBackgroundColor",playbackBarHeadBackgroundColorDirection:"playheadBackgroundColorDirection",playbackBarHeadBackgroundColorRatios:"playheadBackgroundColorRatios",playbackBarHeadBorderColor:"playheadBorderColor",playbackBarHeadBorderRadius:"playheadBorderRadius",playbackBarHeadBorderSize:"playheadBorderSize", 1569playbackBarHeadOpacity:"playheadOpacity",playbackBarHeadWidth:"playheadWidth",playbackBarHeadHeight:"playheadHeight",playbackBarHeadShadow:"playheadShadow",playbackBarHeadShadowBlurRadius:"playheadShadowBlurRadius",playbackBarHeadShadowColor:"playheadShadowColor",playbackBarHeadShadowHorizontalLength:"playheadShadowHorizontalLength",playbackBarHeadShadowOpacity:"playheadShadowOpacity",playbackBarHeadShadowSpread:"playheadShadowSpread",playbackBarHeadShadowVerticalLength:"playheadShadowVerticalLength", 1570playbackBarStepBackgroundColor:"stepBackgroundColor",playbackBarStepBackgroundColorDirection:"stepBackgroundColorDirection",playbackBarStepBackgroundColorRatios:"stepBackgroundColorRatios",playbackBarStepBorderColor:"stepBorderColor",playbackBarStepBorderRadius:"stepBorderRadius",playbackBarStepBorderSize:"stepBorderSize",playbackBarStepOpacity:"stepOpacity",playbackBarStepWidth:"stepWidth",playbackBarStepHeight:"stepHeight",playbackBarStepShadow:"stepShadow",playbackBarStepShadowBlurRadius:"stepShadowBlurRadius", 1571playbackBarStepShadowColor:"stepShadowColor",playbackBarStepShadowHorizontalLength:"stepShadowHorizontalLength",playbackBarStepShadowOpacity:"stepShadowOpacity",playbackBarStepShadowSpread:"stepShadowSpread",playbackBarStepShadowVerticalLength:"stepShadowVerticalLength",playbackBarSelectedStepBackgroundColor:"selectedStepBackgroundColor",playbackBarSelectedStepBackgroundColorDirection:"selectedStepBackgroundColorDirection",playbackBarSelectedStepBackgroundColorRatios:"selectedStepBackgroundColorRatios", 1572playbackBarSelectedStepBorderColor:"selectedStepBorderColor",playbackBarSelectedStepBorderRadius:"selectedStepBorderRadius",playbackBarSelectedStepBorderSize:"selectedStepBorderSize",playbackBarSelectedStepOpacity:"selectedStepOpacity",playbackBarSelectedStepWidth:"selectedStepWidth",playbackBarSelectedStepHeight:"selectedStepHeight",playbackBarSelectedStepShadow:"selectedStepShadow",playbackBarSelectedStepShadowBlurRadius:"selectedStepShadowBlurRadius",playbackBarSelectedStepShadowColor:"selectedStepShadowColor", 1573playbackBarSelectedStepShadowHorizontalLength:"selectedStepShadowHorizontalLength",playbackBarSelectedStepShadowOpacity:"selectedStepShadowOpacity",playbackBarSelectedStepShadowSpread:"selectedStepShadowSpread",playbackBarSelectedStepShadowVerticalLength:"selectedStepShadowVerticalLength"};A.ZMa=l(A.koa).keys();A.toa={playbackBarDuration:"duration",playbackBarPosition:"position",playbackBarSteps:"steps",playbackBarSelectedStep:"selectedStep",playbackBarVisible:"visible"};A.soa=l(A.toa).keys();A.IV= 1574"requestByPlayer";A.tna="playerShow";A.sna="playerHide";A.E6="playbackBarPositionChange";A.L6="viewModeChange";A.iE=null;A.Ep=function(D){A.iE!=D&&(A.iE&&A.iE.Ep(!1),A.iE=D,A.iE&&A.iE.Ep(!0))};A.eB=[];A.sj=function(D){var O=A.eB.indexOf(D);-1<O&&A.eB.splice(O,1);A.eB.push(D);this.Ep(D)};A.rj=function(D){var O=A.eB.indexOf(D);-1<O&&A.eB.splice(O,1);A.iE==D&&A.Ep(A.eB.length?A.eB[A.eB.length-1]:null)};var C=null,J=null;navigator.xr&&navigator.xr.addEventListener("sessiongranted",function(){f()});return A}); 1575define("dn",["require","lQ","mu","cI","bE"],function(a){var f=a("lQ"),l=a("mu"),m=a("cI"),k=a("bE"),c=f.extend(l,function(h){l.call(this);this.ePa=h;this.eR=this.qA=null});c.sh="mediaShow";c.Um="mediaHide";c.prototype.Ep=function(){};c.prototype.rha=function(){return!1};c.prototype.aR=function(h){this.qA!=h&&(this.qA&&this.Kfa(this.qA),(this.qA=h)&&this.y8(this.qA))};c.prototype.y8=function(h){h.bind(k.IV,this.IAa,this,!0);h.bind(k.E6,this.qQ,this)};c.prototype.Kfa=function(h){h.unbind(k.IV,this.IAa, 1576this);h.unbind(k.E6,this.qQ,this)};c.prototype.DG=function(h){this.qA.trigger(new m(k.IV,{players:h||[this]}))};c.prototype.IAa=function(h){0>h.data.players.indexOf(this)&&this.kK()};c.prototype.qQ=function(){};c.prototype.kK=function(){};c.prototype.kP=function(h){this.trigger(new m(c.sh,{media:h}));this.eR=this.qA;this.eR.trigger(new m(k.tna,{player:this}))};c.prototype.jP=function(h){this.trigger(new m(c.Um,{media:h}));this.eR&&(this.eR.trigger(new m(k.sna,{player:this})),this.eR=null)};return c}); 1577define("kz",["require"],function(){return{nC:"constrained",ALa:"free_drag",Pcb:"free_drag_and_rotation",n7:"sync_with_field_of_view"}}); 1578define("le",["require","lQ","kz","mI"],function(a){function f(){this.Ba=!0;this.Qa=this.Na=.5;this.qd=0;this.nb=1;this.Of=m.Sh;this.Cn=l.nC;this.Wba=this.Zba=1;this.Oe=this.Pe=this.$m=this.an=100;this.Mn=f.VC}a("lQ");var l=a("kz"),m=a("mI");f.prototype.bEa=function(){return this.Mn!==f.VC};f.prototype.aEa=function(){return this.Mn&f.LH?!0:!1};f.prototype.cEa=function(){return this.Mn&f.MH?!0:!1};f.prototype.dEa=function(){return this.Mn&f.YC?!0:!1};f.prototype.$Da=function(){return this.Mn&f.UC?!0: 1579!1};f.prototype.getX=function(){this.Sn();return this.Na};f.prototype.getY=function(){this.Sn();return this.Qa};f.prototype.Vr=function(){this.Sn();return this.nb};f.prototype.iL=function(){this.Sn();return this.qd};f.prototype.setConfiguration=function(k,c,h,g,b){this.Pe=k;this.Oe=c;this.Of=h;this.Zba=g;this.Wba=b;this.Qa=this.Na=.5;this.qd=0;this.nb=g;this.Ba=!0};f.prototype.setPosition=function(k,c,h,g){this.Na=k;this.Qa=c;this.qd=h;this.nb=g;this.Ba=!0};f.prototype.rs=function(k){this.Cn=k;this.Ba= 1580!0};f.prototype.setSize=function(k,c){this.an=k;this.$m=c;this.Ba=!0};f.prototype.Sn=function(){if(this.Ba){this.Ba=!1;var k=f.VC;this.nb>this.Wba?(this.nb=this.Wba,k|=f.aNa):this.nb<this.Zba&&(this.nb=this.Zba,k|=f.bNa);if(this.Cn==l.nC){switch(this.Of){case m.NONE:var c=this.Pe;var h=this.Oe;break;case m.Vp:c=this.an;h=this.Oe*this.an/this.Pe;break;case m.vk:c=this.Pe*this.$m/this.Oe;h=this.$m;break;case m.As:this.Pe*this.$m>this.Oe*this.an?(c=this.Pe*this.$m/this.Oe,h=this.$m):(c=this.an,h=this.Oe* 1581this.an/this.Pe);break;default:case m.Sh:this.Pe*this.$m>this.Oe*this.an?(c=this.an,h=this.Oe*this.an/this.Pe):(c=this.Pe*this.$m/this.Oe,h=this.$m)}c*=this.nb;h*=this.nb;var g=Math.min(.5*this.an/c,.5);c=Math.max(1-.5*this.an/c,.5);var b=Math.min(.5*this.$m/h,.5);h=Math.max(1-.5*this.$m/h,.5)}else g=0,c=1,b=0,h=1;this.Na<g?(this.Na=g,k|=f.LH):this.Na>c&&(this.Na=c,k|=f.MH);this.Qa<b?(this.Qa=b,k|=f.YC):this.Qa>h&&(this.Qa=h,k|=f.UC);this.Cn!=l.nC&&this.Cn!=l.ALa||0==this.qd||(this.qd=0,k|=f.gNa); 1582this.Mn=k}};f.VC=0;f.LH=1;f.MH=2;f.YC=4;f.UC=8;f.bNa=16;f.aNa=32;f.gNa=64;return f}); 1583define("gH",["require"],function(){function a(){this.cO=.1;this.aX=this.v9=this.y9=this.x9=this.F9=this.u9=this.D9=this.C9=this.gS=this.Vga=this.aD=this.a8=this.eS=this.Sga=this.dS=this.Rga=0}a.prototype.J4=function(f){this.cO=f};a.prototype.vIa=function(f,l,m,k,c,h,g,b){this.Rga=f;this.Sga=l;this.a8=m;this.Vga=k;this.dS+=c;this.eS+=h;this.aD+=g;this.gS+=b};a.prototype.pf=function(){return 0!=this.C9||0!=this.D9||0!=this.u9||0!=this.F9||0!=this.Rga||0!=this.Sga||0!=this.a8||0!=this.Vga||0!=this.dS|| 15840!=this.eS||0!=this.aD||0!=this.gS};a.prototype.Fb=function(f){f=1E3/f;this.x9=this.nX(this.C9/f,this.Rga/f+this.dS,this.cO);this.y9=this.nX(this.D9/f,this.Sga/f+this.eS,this.cO);
1584this.v9=this.nX(this.u9/f,this.a8/f+this.aD,this.cO);this.aX=this.nX(this.F9/f,this.Vga/f+this.gS,this.cO);this.C9=this.x9*f;this.D9=this.y9*f;this.u9=this.v9*f;this.F9=this.aX*f;this.gS=this.aD=this.eS=this.dS=0};a.prototype.nX=function(f,l,m){return 0==l?this.sg(f,l,m):l};a.prototype.sg=function(f,l,m){f=(l-f)*(1-m);.01> 1585Math.abs(f)&&(f=0);return l-f};return a}); 1586define("gM","require lQ pw cI gD mI".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD");a("mI");var c=f.extend(k,function(){k.call(this);this.aO=7;this.YY=this.nba=!1;this.$Y=void 0;this.qd=0;this.nb=1;this.Oe=this.Pe=100;this.xY=1;this.uda=!0;this.vda=!1;this.G2a=!0;this.Uga=!1;this.hb=null});c.prototype.rU=function(h){this.aO=h};c.prototype.Vc=function(h,g,b,d){this.qd=h;this.nb=g;this.Pe=b;this.Oe=d};c.prototype.hab=function(h){this.uda=h;this.f0(this.uda&&!!this.hb)};c.prototype.ns= 1587function(h){this.hb!=h&&(this.f0(!1),this.Hea(!1),this.ym(),this.hb=h,this.f0(this.uda&&!!this.hb),this.Hea(this.G2a&&!!this.hb))};c.prototype.ym=function(){this.f0(!1);this.Hea(!1);this.hb=null};c.prototype.f0=function(h){this.vda!=h&&((this.vda=h)?this.FOa():this.T0a())};c.prototype.Hea=function(h){this.Uga!=h&&((this.Uga=h)?this.IOa():this.V0a())};c.prototype.FOa=function(){this.hb.bind(l.gb,this.be,this,!0);this.hb.bind(l.Pb,this.Yj,this,!0);this.hb.bind(l.Eb,this.Zj,this,!0)};c.prototype.T0a= 1588function(){this.hb.unbind(l.gb,this.be,this);this.hb.unbind(l.Pb,this.Yj,this);this.hb.unbind(l.Eb,this.Zj,this)};c.prototype.IOa=function(){this.hb.bind(l.Gs,this.pE,this,!0);this.hb.bind(l.uH,this.ND,this,!0)};c.prototype.V0a=function(){this.hb.unbind(l.Gs,this.pE,this);this.hb.unbind(l.uH,this.ND,this)};c.prototype.be=function(h){this.C_a(h)};c.prototype.Yj=function(h){this.gAa(h)};c.prototype.Zj=function(){this.n$()};c.prototype.pE=function(h){this.sga(h)};c.prototype.ND=function(h){this.tga(h)}; 1589c.prototype.C_a=function(h){this.nba=!0;this.YY=!1;this.$Y=h;this.gAa(h)};c.prototype.gAa=function(h){if(this.nba){var g=h.pageX-this.$Y.pageX,b=h.pageY-this.$Y.pageY;this.YY||(Math.sqrt(g*g+b*b)>this.aO?this.YY=!0:g=b=0);this.YY&&(this.$Y=h);h=this.qd*Math.PI/180;this.trigger(new m(c.Qp,{xDelta:-((g*Math.cos(h)+b*Math.sin(h))/this.Pe),yDelta:-((b*Math.cos(h)-g*Math.sin(h))/this.Oe)}))}};c.prototype.n$=function(){this.nba=!1};c.prototype.tga=function(h){if(this.xY!=h.scale){this.n$();var g=this.xY; 1590this.xY=h.scale;this.trigger(new m(c.Up,{zoomDelta:this.nb*this.xY/g-this.nb}))}};c.prototype.sga=function(h){0!=h.delta&&(this.n$(),this.trigger(new m(c.Up,{zoomDelta:this.nb*h.DS*.1})))};c.Qp="position change";c.Up="zoom change";c.adb="vieport navigation";c.$cb="relative navigation";c.Zcb="relative exponential navigation";c.Ycb="dragging";return c});define("ki",["require"],function(){return{h7:"rotateClockwise",i7:"rotateCounterClockwise",zv:"zoomIn",Av:"zoomOut",Vf:"stop"}}); 1591define("og","require lQ cI gD mI gH gM ki pw".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("mI"),c=a("gH"),h=a("gM"),g=a("ki");a("pw");var b=f.extend(m,function(d,e){m.call(this);this.j=d;this.pa=e;this.kt=this.A_=this.W=!1;this.Qa=this.Na=.5;this.qd=0;this.nb=1;this.Oe=this.Pe=100;this.Of=k.nC;this.nc=new c;this.ub=new h;this.j.Fo?(this.ub.rU(b.K7),this.nc.J4(b.L7)):(this.ub.rU(0),this.nc.J4(1));this.ub.bind(h.Qp,this.uWa,this,!0);this.ub.bind(h.Up,this.vA,this,!0)});b.prototype.clear= 1592function(){this.ub.unbind(h.Qp,this.deb,this,!0);this.ub.unbind(h.Up,this.vA,this,!0);this.ub.ym();this.j=this.pa=this.nc=this.ub=null};b.prototype.pk=function(d){switch(d){case g.h7:this.Xc(0,0,+b.F7,0,0,0,0,0);break;case g.i7:this.Xc(0,0,-b.F7,0,0,0,0,0);break;case g.zv:this.Xc(0,0,0,+b.fN,0,0,0,0);break;case g.Av:this.Xc(0,0,0,-b.fN,0,0,0,0);break;case g.Vf:this.Xc(0,0,0,0,0,0,0,0)}};b.prototype.setPosition=function(d,e,n,q,p,r){this.Na=d;this.Qa=e;this.qd=n;this.nb=q;this.Pe=p;this.Oe=r;this.ub.Vc(this.qd, 1593this.nb,this.Pe,this.Oe)};b.prototype.pf=function(){return this.W&&this.nc.pf()};b.prototype.Fb=function(d){this.nc.Fb(d);this.pa.setPosition(this.Na+this.nc.x9,this.Qa+this.nc.y9,this.qd+this.nc.v9,this.nb+this.nc.aX);this.Na=this.pa.getX();this.Qa=this.pa.getY();this.qd=this.pa.iL();this.nb=this.pa.Vr()};b.prototype.vU=function(d){this.kt=d;this.ub.hab(!this.kt)}
1593;b.prototype.qb=function(d){(this.W=d)?this.ub.ns(this.j.getParent()):this.ub.ym()};b.prototype.uWa=function(d){this.Xc(0,0,0,0,d.data.xDelta, 1594d.data.yDelta,0,0)};b.prototype.vA=function(d){this.Xc(0,0,0,0,0,0,0,d.data.zoomDelta)};b.prototype.Xc=function(d,e,n,q,p,r,t,u){this.nc.vIa(d,e,n,q,p,r,t,u);this.pi()};b.prototype.pi=function(){this.trigger(new l(b.Rh))};b.Rh="position change request";b.K7=7;b.L7=.2;b.fN=.5;b.F7=30;return b}); 1595define("nt","require lQ cI gD oY bL gH gM ki pw".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("oY"),c=a("bL"),h=a("gH"),g=a("gM"),b=a("ki");a("pw");var d=f.extend(m,function(e,n){m.call(this);this.j=e;this.pa=n;this.W=!1;this.Qa=this.Na=.5;this.qd=0;this.nb=1;this.Oe=this.Pe=100;this.fa=null;this.i$=!0;this.dd=null;this.WZ=0;this.St=this.$k=this.yx=void 0;this.nc=new h;this.ub=new g;this.j.Fo?(this.ub.rU(d.K7),this.nc.J4(d.L7)):(this.ub.rU(0),this.nc.J4(1));this.ub.bind(g.Up,this.vA, 1596this,!0)});d.prototype.O$a=function(e,n){this.Pe=e;this.Oe=n;this.wK()};d.prototype.Dy=function(e){this.dd!=e&&(this.dd=e,this.WZ=void 0,this.wK())};d.prototype.Fp=function(e,n){this.dd==e&&(this.WZ=n,this.wK())};d.prototype.wK=function(){if(this.dd&&void 0!=this.WZ){var e=this.dd.get("x",0)/this.Pe;var n=this.dd.get("y",0)/this.Oe;var q=-(this.WZ+this.dd.get("angle",0))}else q=n=e=void 0;this.St!=q&&(this.St=q,this.pi());if(this.yx!=e||this.$k!=n)this.yx=e,this.$k=n,this.JUa(),this.pi()};d.prototype.JUa= 1597function(){this.i$=!0;this.pi()};d.prototype.oF=function(){if(this.i$||this.fa&&this.fa.Ve())if(this.i$=!1,this.fa=null,void 0!=this.yx&&void 0!=this.$k&&void 0!=this.St){for(var e=this.St-this.qd;180<e;)e-=360;for(;-180>e;)e+=360;this.Na!=this.yx||this.Qa!=this.$k?this.fa=new k("quad_in_out",[new c("x",this.Na,this.yx,1),new c("y",this.Qa,this.$k,1),new c("angleDif",e,e,360)],500):this.St!=this.qd&&(this.fa=new k("quad_in_out",[new c("x",this.Na,this.Na,1),new c("y",this.Qa,this.Qa,1),new c("angleDif", 1598e,0,360)],500))}};d.prototype.clear=function(){this.ub.unbind(g.Up,this.vA,this,!0);this.ub.ym();this.j=this.pa=this.fa=this.nc=this.ub=null};d.prototype.pk=function(e){switch(e){case b.zv:this.Xc(+d.fN,0);break;case b.Av:this.Xc(-d.fN,0);break;case b.Vf:this.Xc(0,0)}};d.prototype.setPosition=function(e,n,q,p,r,t){this.Na=e;this.Qa=n;this.qd=q;this.nb=p;this.ub.Vc(this.qd,this.nb,r,t)};d.prototype.pf=function(){return this.W&&(this.fa||this.nc.pf()||void 0!=this.yx&&this.Na!=this.yx||void 0!=this.$k&& 1599this.Qa!=this.$k||void 0!=this.St&&this.qd!=this.St)?!0:!1};d.prototype.Fb=function(e){this.oF();this.fa?(this.fa.Fb(e),this.Na=this.fa.cb("x"),this.Qa=this.fa.cb("y"),this.qd=this.St-this.fa.cb("angleDif")):(void 0!=this.yx&&(this.Na=this.yx),void 0!=this.$k&&(this.Qa=this.$k),void 0!=this.St&&(this.qd=this.St));this.nc.Fb(e);this.pa.setPosition(this.Na,this.Qa,this.qd,this.nb+this.nc.aX);this.Na=this.pa.getX();this.Qa=this.pa.getY();this.qd=this.pa.iL();this.nb=this.pa.Vr()};d.prototype.qb=function(e){(this.W= 1600e)?(this.ub.ns(this.j.getParent()),this.wK()):this.ub.ym()};d.prototype.vA=function(e){this.Xc(0,e.data.zoomDelta)};d.prototype.Xc=function(e,n){this.nc.vIa(0,0,0,e,0,0,0,n);this.pi()};d.prototype.pi=function(){this.trigger(new l(d.Rh))};d.Rh="position change request";d.K7=7;d.L7=.2;d.fN=.5;d.F7=30;return d}); 1601define("oE","require lQ cI gD kz mI le og nt pw".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("kz"),c=a("mI"),h=a("le"),g=a("og"),b=a("nt"),d=a("pw"),e=f.extend(m,function(n){m.call(this);this.j=n;this.j.bind(d.tc,this.Ic,this);this.Cn=k.nC;this.dd=null;this.Qa=this.Na=.5;this.qd=0;this.nb=1;this.Ua=null;this.Q_=this.P_=this.au=this.$t=!1;this.On=!0;this.W=!1;this.pa=new h;this.pa.rs(this.Cn);this.fc=new g(this.j,this.pa);this.fc.bind(g.Rh,this.Vq,this,!0);this.Ui=new b(this.j,this.pa); 1602this.Ui.bind(b.Rh,this.Vq,this,!0);this.C_()});e.prototype.clear=function(){this.fc.unbind(g.Rh,this.Vq,this);this.fc.clear();this.fc=null;this.Ui.unbind(b.Rh,this.Vq,this);this.Ui.clear();this.Ua=this.pa=this.Ui=null;this.j.unbind(d.tc,this.Ic,this);this.j=null};e.prototype.stop=function(){this.ne=this.Ua=null;this.W=!1;this.fc.qb(!1);this.Ui.qb(!1);this.px(0,0,0)};e.prototype.start=function(n){var q=n.Ua,p=q.get("width",100),r=q.get("height",100),t=q.get("scaleMode",c.Sh),u=q.get("minimumZoomFactor", 16031),v=q.get("maximumZoomFactor",1),w=q.get("initialZoomFactor",1);this.Ua=q;this.W=!0;this.ne=n.getItem();this.px(0,0,0);this.Ui.O$a(p,r);this.pa.setConfiguration(p,r,t,u,v);this.pa.setPosition(.5,.5,0,w);this.j.xU(this.ne,this.pa.getX(),this.pa.getY(),this.pa.iL(),this.pa.Vr());this.C_()};e.prototype.pk=function(n){this.fc.pk(n);this.Ui.pk(n)};e.prototype.rs=function(n){this.Cn!=n&&(this.Cn=n,this.pa.rs(n),this.C_())};e.prototype.Dy=function(n){this.dd!=n&&(this.dd=n,this.Ui.Dy(n),this.C_())};e.prototype.vU= 1604function(n){this.fc&&this.fc.vU(n)};e.prototype.Fp=function(n,q,p,r){this.Ui.Fp(n,q,p,r)};e.prototype.uy=function(n){this.W&&(this.Ui.pf()?(this.Ui.Fb(n),this.mm(this.Ui.Na,this.Ui.Qa,this.Ui.qd,this.Ui.nb),this.Sa()):this.fc.pf()?(this.fc.Fb(n),this.mm(this.fc.Na,this.fc.Qa,this.fc.qd,this.fc.nb),this.Sa()):this.px(0,0,0))};e.prototype.Ld=function(){if(this.ne){var n=this.j.aT(this.ne),q=this.j.bT(this.ne),p=this.j.O2(this.ne),r=this.j.lDa(this.ne),t=this.j.$S(this.ne),u=this.j.ZS(this.ne),v=n-this.Na, 1605w=q-this.Qa,x=r-this.nb;this.Na=n;this.Qa=q;this.qd=p;this.nb=r;this.px(v,w,x);this.Ui.setPosition(n,q,p,r,t,u);this.fc.setPosition(n,q,p,r,t,u)}};e.prototype.C_=function(){this.Cn==k.n7&&null!=this.dd&&this.dd.get("map")==this.Ua?(this.fc.qb(!1),this.Ui.qb(!0)):(this.fc.qb(!0),this.Ui.qb(!1))};e.prototype.Vq=function(){this.Sa()};e.prototype.Ic=function(){this.pa.setSize(this.j.Za(),this.j.Cb());this.Sa()};e.prototype.Sa=function(){this.trigger(new l(e.Ob))};e.prototype.mm=function(n,q,p,r){this.j.xU(this.ne, 1606n,q,p,r)};e.prototype.px=function(n,q,p){n=!1;this.au!=0>p&&(this.au=!this.au,n=!0);this.$t!=0<p&&(this.$t=!this.$t,n=!0);this.P_!=0<this.aD&&(this.P_=!this.P_,n=!0);this.Q_!=0>this.aD&&(this.Q_=!this.Q_,n=!0);this.On!=(0==p)&&(this.On=!this.On,n=!0);n&&this.trigger(new l(e.uk,{rotatingClockwise:this.P_,rotatingCounterClockwise:this.Q_,zoomingIn:this.$t,zoomingOut:this.au,stopped:this.On}))};e.Ob="request frame";e.uk="movement change";return e}); 1607define("km","require lQ cI gD mI le".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("mI"),c=a("le"),h=f.extend(m,function(g,b){m.call(this);this.M=g;this.j=b;this.pa=new c;this.Og=[];this.ua=h.Yh;this.Bq=this.Pj=this.Ll=null;this.hh=this.M.get("transitionDuration");this.sm=void 0});h.prototype.rs=function(g){this.pa.rs(g)};h.prototype.HS=function(g){g.wT()&&this.S8();this.Og.push(g);this.AZ()};h.prototype.hide=function(){this.S8();this.Og.push(null);this.AZ()};h.prototype.clear=function(){this.ua= 1608h.Yh;this.S8();this.XXa();this.Uda();this.j=null};h.prototype.Ld=function(g){this.ua==h.Yh||this.ua!=h.Fl&&this.ua!=h.Rs||(this.sm+=g,g=Math.min(1,this.sm/this.hh),this.ua==h.Fl?this.j.qs(this.Bq,g):this.j.qs(this.eX,1-g),this.sm<this.hh?this.Sa():this.ua==h.Fl?this.xRa():this.zRa())};h.prototype.AZ=function(){if(this.ua==h.Yh){for(;0<this.Og.length&&this.UNa(this.Og[0],this.Pj);)this.Og.shift();0<this.Og.length&&this.oq()}};h.prototype.UNa=function(g,b){return g==b||!!g&&!!b&&g.isEqual(b)}
1608;h.prototype.oq= 1609function(){!this.Pj||this.Og[0]&&!this.Og[0].wT()||this.Pj.Ua==(this.Og[0]&&this.Og[0].Ua)||this.trigger(new l(h.qC,{map:this.Pj.Ua}));"fade_out_fade_in"!=this.M.get("transitionMode","blending")||!this.Pj||this.Og[0]&&!this.Og[0].wT()?(this.Bq=(this.Ll=this.Og.shift())&&this.Ll.getItem(),this.Ll?this.tN():this.Pj&&this.wz()):this.wz()};h.prototype.tN=function(){this.rNa();this.Ll.wT()&&this.WYa();this.sm=0;this.ua=h.Fl;this.Sa()};h.prototype.xRa=function(){this.Uda();this.Pj=this.Ll;this.eX=this.Bq; 1610this.Bq=this.Ll=null;this.Uz()};h.prototype.wz=function(){this.sm=0;this.ua=h.Rs;this.Sa()};h.prototype.zRa=function(){this.Uda();this.Pj=null;this.Uz()};h.prototype.Uz=function(){this.ua=h.Yh;this.Pj&&this.Pj.wT()&&this.trigger(new l(h.rC,{map:this.Pj.Ua}));0==this.Og.length?this.Pj?this.trigger(new l(h.r6,{level:this.Pj})):this.trigger(new l(h.c6)):this.oq()};h.prototype.WYa=function(){var g=this.Ll.Ua;this.Ll.kk();this.pa.setConfiguration(g.get("width",100),g.get("height",100),g.get("scaleMode", 1611k.Sh),g.get("minimumZoomFactor",1),g.get("maximumZoomFactor",1));this.pa.setPosition(.5,.5,0,g.get("initialZoomFactor",1));this.j.xU(this.Bq,this.pa.getX(),this.pa.getY(),this.pa.iL(),this.pa.Vr())};h.prototype.Sa=function(){this.trigger(new l(h.Ob))};h.prototype.S8=function(){for(;0<this.Og.length;){var g=this.Og.shift();g&&this.j.Hj(g.getItem())}};h.prototype.rNa=function(){this.Ll&&(this.j.Xga(this.Bq),this.j.nha(this.Bq),this.j.qs(this.Bq,0),this.trigger(new l(h.q6,{level:this.Ll})))};h.prototype.Uda= 1612function(){this.Pj&&(this.j.removeItem(this.eX),this.trigger(new l(h.tV,{level:this.Pj})),this.j.Hj(this.eX),this.eX=this.Pj=null)};h.prototype.XXa=function(){this.Ll&&(this.j.removeItem(this.Bq),this.trigger(new l(h.tV,{level:this.Ll})),this.j.Hj(this.Bq),this.Bq=this.Ll=null)};h.Yh="stopped";h.Fl="blending";h.Rs="disolving";h.Ob="request frame";h.q6="level added";h.tV="level removed";h.r6="level fully displayed";h.c6="all pending maps hidden";h.rC="map show";h.qC="map hide";return h}); 1613define("lD",["require"],function(){function a(f,l){this.Ua=f;this.Xa=f.get("image");this.nf=l;this.iba=void 0}a.prototype.getItem=function(){switch(this.nf){case a.GV:return this.Ua.wDa();default:return this.Ua.lk()}};a.prototype.kk=function(){switch(this.nf){case a.GV:return this.Ua.ZF();default:return this.Ua.Sr()}};a.prototype.wT=function(){return void 0===this.iba?0==this.getIndex():this.iba};a.prototype.z$a=function(f){this.iba=f};a.prototype.xT=function(){return this.nf==a.Jma};a.prototype.isEqual= 1614function(f){return f&&this.Ua==f.map&&this.nf==f.type};a.prototype.getIndex=function(){return this.nf==a.GV||this.Ua.tL()?0:1};a.prototype.ZCa=function(){return this.Ua.tL()?2:1};a.GV="preload";a.Jma="load";return a}); 1615define("ju","require lQ ld pw cI gD lD w".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("cI"),c=a("gD"),h=a("lD"),g=a("w"),b=f.extend(c,function(d){c.call(this);this.j=d;this.Og=[];this.UN=this.kE=this.Zg=null;this.dE=!1;this.yY=null;this.qZ=f.zp(this.qZ,this)});b.prototype.clear=function(){this.stop();this.j=null};b.prototype.$Ea=function(d,e){if(this.yY!=d||e)this.stop(),this.Ua=d,this.Ua.z9a(),l.bu(this.Ua,"image.levels.url",this.qZ),e=[],d.tL()&&g.pb()&&e.push(new h(d,h.GV)),e.push(new h(d, 1616h.Jma)),e=e.filter(function(n){return n.getItem().Yi()}),e.length&&(this.Og=this.Og.concat(e),this.AZ())};b.prototype.qZ=function(){this.reload()};b.prototype.reload=function(){this.$Ea(this.Ua,!0)};b.prototype.stop=function(){l.ca(this.Ua,"image.levels.url",this.qZ);this.yY=this.Ua=null;this.Og=[];this.Tya();this.dE&&(this.dE=!1,this.Hfa(),this.j.Hj(this.Zg.getItem()),this.Zg=null,this.trigger(new k(b.uV)))};b.prototype.AZ=function(){this.dE||this.Pba()};b.prototype.Pba=function(){0<this.Og.length? 1617(this.Zg=this.Og.shift(),this.dE||(this.dE=!0,this.trigger(new k(b.sV,{level:this.Zg,percent:0}))),this.zOa(),this.j.Yn(this.Zg.getItem()),this.j.q5(this.Zg.getItem())&&this.sca()):this.dE&&(this.dE=!1,this.trigger(new k(b.uV)))};b.prototype.sca=function(){this.Hfa();this.t_a();this.Zg=null;this.Pba()};b.prototype.t_a=function(){this.Tya();this.kE=this.Zg;var d=this;this.UN=setTimeout(function(){d.UN=null;d.cWa()},500)};b.prototype.cWa=function(){var d=this.kE.Ua;this.kE.z$a(d!=this.yY);this.yY=d; 1618this.trigger(new k(b.s6,{level:this.kE}));this.kE=null};b.prototype.Tya=function(){null!=this.UN&&(clearTimeout(this.UN),this.UN=null,this.j.Hj(this.kE.getItem()),this.kE=null)};b.prototype.Gua=function(){this.Hfa();this.Zg=null;this.Pba()};b.prototype.Hua=function(d){this.trigger(new k(b.sV,{level:this.Zg,percent:d.Tg}))};b.prototype.zOa=function(){var d=this.Zg.getItem();d.bind(m.da,this.sca,this);d.bind(m.xc,this.Gua,this);d.bind(m.kc,this.Hua,this)};b.prototype.Hfa=function(){var d=this.Zg.getItem(); 1619d.unbind(m.da,this.sca,this);d.unbind(m.xc,this.Gua,this);d.unbind(m.kc,this.Hua,this)};b.sV="level loading progress";b.s6="level loaded";b.uV="load stopped";return b}); 1620define("cU",["require"],function(){function a(f,l){this.x=f;this.y=l}a.prototype.rotate=function(f){var l=Math.cos(f);f=Math.sin(f);var m=this.x*f+this.y*l;this.x=this.x*l-this.y*f;this.y=m;return this};a.prototype.translate=function(f,l){this.x+=f;this.y+=l;return this};a.prototype.scale=function(f,l){this.x*=f;this.y*=l;return this};return a}); 1621define("nk",["require","mI","nA"],function(a){function f(k,c,h){this.ni=k;this.Iya=c;this.Gya=h;this.Of=l.$y;this.Sl=m.Ye;this.vm=m.qe}var l=a("mI"),m=a("nA");f.prototype.$B=function(k){this.Of=k};f.prototype.jM=function(k){this.Sl=k};f.prototype.qM=function(k){this.vm=k};f.prototype.YK=function(k,c,h){var g=this.Iya,b=this.Gya,d;switch(this.Of){case l.NONE:var e=d=1;break;case l.Sh:d=e=Math.min(c/g,h/b);break;case l.As:d=e=Math.max(c/g,h/b);break;case l.Vp:d=e=c/g;break;case l.vk:d=e=h/b;break;default:d= 1622c/g,e=h/b}var n=Math.min(this.Iya*d,c);d=Math.min(c/d,g);switch(this.Sl){case m.ab:g=c=0;break;case m.tb:c-=n;g-=d;break;default:c=.5*(c-n),g=.5*(g-d)}var q=Math.min(this.Gya*e,h);e=Math.min(h/e,b);switch(this.vm){case m.Ec:b=h=0;break;case m.wc:h-=q;
1622b-=e;break;default:h=.5*(h-q),b=.5*(b-e)}k.drawImage(this.ni,Math.round(g),Math.round(b),Math.round(d+g-Math.round(g)),Math.round(e+b-Math.round(b)),Math.round(c),Math.round(h),Math.round(n+c-Math.round(c)),Math.round(q+h-Math.round(h)))};return f}); 1623define("mR","require pw iw cU hh nk".split(" "),function(a){function f(g,b,d,e){this.j=g;this.Ua=b;this.Pe=this.Ua.get("width");this.Oe=this.Ua.get("height");this.ne=this.Ua.lk();this.Gsa=d;this.Eo=e;this.TD=null;if(this.Eo){if(this.VJ=this.Gsa.VJ,this.sa=this.Eo.get("width"),this.wa=this.Eo.get("height"),this.Na=this.Eo.get("x",0),this.Qa=this.Eo.get("y",0),this.Gw=this.Eo.get("offsetX",0),this.Hw=this.Eo.get("offsetY",0),this.eb=this.Eo.Sr())this.fi=new c(m.yl),this.fi.load(this.eb.get("url")), 1624this.fi.bind(l.da,this.mva,this)}else this.fi=null}var l=a("pw"),m=a("iw"),k=a("cU"),c=a("hh"),h=a("nk");f.prototype.clear=function(){this.Eo=this.Gsa=this.ne=this.Ua=this.j=null;this.fi&&(this.fi.unbind(l.da,this.mva,this),this.fi.cancel(),this.fi=null);this.TD=null};f.prototype.oDa=function(g,b){this.Hsa=void 0;if(this.TD&&void 0!=g&&void 0!=b){var d=.5*this.j.Za(),e=.5*this.j.Cb(),n=this.j.O2(this.ne)*Math.PI/180,q=this.j.$S(this.ne),p=this.j.ZS(this.ne),r=this.j.aT(this.ne),t=this.j.bT(this.ne); 1625g=new k(g,b);g.translate(-d,-e);g.rotate(-n);g.scale(1/q,1/p);g.translate(r,t);g.scale(this.Pe,this.Oe);g.translate(-this.Na,-this.Qa);this.VJ||(g.rotate(n),g.scale(q/this.Pe,p/this.Oe));g.translate(this.Gw,this.Hw);d=Math.round(g.x);e=Math.round(g.y);0<=d&&d<this.TD.width&&0<=e&&e<this.TD.height&&(d=4*(this.TD.width*e+d),e=this.TD.data,this.Hsa=0<e[d+3]?"#"+this.F8(e[d+0])+this.F8(e[d+1])+this.F8(e[d+2]):"transparent")}return this.Hsa};f.prototype.mva=function(){var g=new h(this.fi.Af(),this.eb.get("width"), 1626this.eb.get("height"));g.$B(this.Eo.get("scaleMode"));g.jM(this.Eo.get("horizontalAlign"));g.qM(this.Eo.get("verticalAlign"));var b=document.createElement("canvas");b.width=Math.round(this.sa);b.height=Math.round(this.wa);var d=b.getContext("2d");g.YK(d,b.width,b.height);this.TD=d.getImageData(0,0,b.width,b.height);b.width=b.height=0};f.prototype.F8=function(g){for(g=g.toString(16);2>g.length;)g="0"+g;return g};return f}); 1627define("ly","require es lQ pw cI gD ol mR bh oY bL".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("pw"),k=a("cI"),c=a("gD"),h=a("ol"),g=a("mR"),b=a("bh"),d=a("oY"),e=a("bL"),n=l.extend(c,function(q,p,r){c.call(this);this.j=q;this.Ua=p;this.oc=r;this.Aa=this.oc.getItem();this.mr=this.oc.zDa();this.nr=this.oc.CDa();this.ww=this.vn=void 0;this.M=this.j.getParent();this.M.bind(m.Pb,this.Mf,this);this.M.bind(m.Jb,this.OP,this);this.M.bind(m.gb,this.Ko,this);this.M.bind(m.Eb,this.Ow,this);this.M.bind(m.ma, 1628this.Nw,this);r.bind(m.F("selected"),this.awa,this);r.bind(m.F("enabled"),this.Sq,this);this.HY=new g(this.j,this.Ua,this.oc,this.oc.get("map",null));this.JY=new g(this.j,this.Ua,this.oc,this.oc.get("rollOverMap",this.oc.get("map",null)));this.KY=new g(this.j,this.Ua,this.oc,this.oc.get("selectedMap",this.oc.get("rollOverMap",this.oc.get("map",null))));this.WX=new g(this.j,this.Ua,this.oc,this.oc.get("image",null));this.XX=new g(this.j,this.Ua,this.oc,this.oc.get("rollOverImage",this.oc.get("image", 1629null)));this.YX=new g(this.j,this.Ua,this.oc,this.oc.get("selectedImage",this.oc.get("rollOverImage",this.oc.get("image",null))));this.nd=this.md=void 0;this.rK=null;this.Hv=[];this.Us=[];this.EN=[];this.Zh={};this.Cta=[];this.qw=!1;this.vga=this.oc.get("useHandCursor");this.fa=null;this.jK=void 0;this.Z_=this.N_=this.pY=0;q=this.oc.get("areas",[]);for(p=0;p<q.length;p++){r=q[p];var t=r.get("mapColor");t&&(t=t.toLowerCase(),void 0===this.Zh[t]&&(this.Zh[t]=[],this.Cta.push(t)),this.Zh[t].push(r))}this.Aa&& 1630(this.j.F1(this.Ua.lk(),this.Aa),this.j.qs(this.Aa,this.pY));this.mr&&(this.j.F1(this.Ua.lk(),this.mr),this.j.qs(this.mr,this.N_));this.nr&&(this.j.F1(this.Ua.lk(),this.nr),this.j.qs(this.nr,this.Z_));this.$Q("none");this.Tfa();this.bya(!1);this.cya(this.oc.get("selected"))});n.prototype.clear=function(){this.M.unbind(m.Pb,this.Mf,this);this.M.unbind(m.Jb,this.OP,this);this.M.unbind(m.gb,this.Ko,this);this.M.unbind(m.Eb,this.Ow,this);this.M.unbind(m.ma,this.Nw,this);this.M=null;this.HY&&this.HY.clear(); 1631this.HY=null;this.JY&&this.JY.clear();this.JY=null;this.KY&&this.KY.clear();this.KY=null;this.WX&&this.WX.clear();this.WX=null;this.XX&&this.XX.clear();this.XX=null;this.YX&&this.YX.clear();this.YX=null;this.Hv=[];this.vn=!1;this.Tfa();this.Us=[];this.EN=[];this.Zh={};this.Yya();this.SR();this.Ua=this.j=null;this.oc.unbind(m.F("selected"),this.awa,this);this.nr=this.mr=this.Aa=this.oc=null};n.prototype.match=function(q){return this.oc==q};n.prototype.Ld=function(q){this.VI(!1);this.fa&&(this.fa.Fb(q), 1632this.pY=this.fa.cb("itemAlpha"),this.N_=this.fa.cb("rollOverItemAlpha"),this.Z_=this.fa.cb("selectedItemAlpha"),this.Aa&&this.j.qs(this.Aa,this.pY),this.mr&&this.j.qs(this.mr,this.N_),this.nr&&this.j.qs(this.nr,this.Z_),this.fa.Ve()?this.fa=null:this.Sa())};n.prototype.Ko=function(q){this.md=q.x-this.M.Bm();this.nd=q.y-this.M.mu();this.VI(!0);this.Us=this.Hv.slice()};n.prototype.Mf=function(q){this.md=q.x-this.M.Bm();this.nd=q.y-this.M.mu();this.VI(!0)};n.prototype.Ow=function(q){this.md=q.x-this.M.Bm(); 1633this.nd=q.y-this.M.mu();this.VI(!0);this.EN=f.intersection(this.Us,this.Hv);this.Us=[]};n.prototype.Nw=function(){this.EN&&(this.Afa(this.EN,"click"),this.EN=[])};n.prototype.OP=function(){this.nd=this.md=void 0;this.VI(!0);this.Us=this.Hv.slice()};n.prototype.awa=function(){this.cya(this.oc.get("selected"))};n.prototype.Sq=function(){this.VI(!0);this.yg();this.Sa()};n.prototype.VI=function(q){this.Wsa=!0;q?this.qK():this.aVa()||this.O_a()};n.prototype.O_a=function(){this.Yya();var q=this;this.rK= 1634setTimeout(function(){q.rK=null;q.qK()},200)};n.prototype.aVa=function(){return this.rK?!0:!1};
1634n.prototype.Yya=function(){this.rK&&(clearTimeout(this.rK),this.rK=null)};n.prototype.qK=function(){if(this.Wsa){this.Wsa=!1;var q=this.Hv,p=this.lSa();this.Hv=p;this.M.Fo||(this.Afa(f.difference(p,q),"rollOver"),this.bya(0<p.length),this.Afa(f.difference(q,p),"rollOut"),this.SR())}};n.prototype.SR=function(){for(var q="",p=0;p<this.Hv.length&&!q;p++){var r=this.Hv[p];r.get("toolTip")&&(q=r.get("toolTip"))}this.$b!= 1635q&&(this.$b&&this.j.R8a(this.$b),(this.$b=q)&&this.j.X8a(this.$b))};n.prototype.Tfa=function(){var q=this.vn&&(!1!==this.vga||f(this.Hv).any(function(p){return!0===p.get("useHandCursor")}));this.qw!=q&&((this.qw=q)?this.j.z4(b.Je):this.j.$L(b.Je))};n.prototype.lSa=function(){if(!1===this.oc.get("enabled"))return[];var q=[],p=this.ww?this.KY:this.vn?this.JY:this.HY;p&&(p=p.oDa(this.md,this.nd))&&(this.Zh.any&&(q=q.concat(this.Zh.any)),"transparent"==p&&this.Zh.transparent&&(q=q.concat(this.Zh.transparent)), 1636"transparent"!=p&&(q=this.Zh[p]?q.concat(this.Zh[p]):q.concat(this.Zh[h.I9a(p,this.Cta)]||[]),this.Zh.image&&(q=q.concat(this.Zh.image))));if(p=this.ww?this.YX:this.vn?this.XX:this.WX)if(p=p.oDa(this.md,this.nd))this.Zh.any&&(q=q.concat(this.Zh.any)),"transparent"==p&&this.Zh.transparent&&(q=q.concat(this.Zh.transparent)),"transparent"!=p&&this.Zh.image&&(q=q.concat(this.Zh.image));p=[];for(var r=0;r<q.length;r++){var t=q[r];0>p.indexOf(t)&&p.push(t)}return p};n.prototype.Afa=function(q,p){if(q)for(var r= 16370;r<q.length;r++)q[r].trigger(new k(p))};n.prototype.zL=function(){return this.vn};n.prototype.bya=function(q){this.vn!=q&&(this.vn=q,this.trigger(new k(n.m6)),this.yg(),this.Tfa(),this.Sa())};n.prototype.cya=function(q){this.ww!=q&&(this.ww=q,this.yg(),this.Sa())};n.prototype.yg=function(){!this.vn&&1==this.oc.get("rollOverDisplay")||!1===this.oc.get("enabled")?this.$Q("none"):this.ww?this.$Q("selected"):this.vn?this.$Q("roll over"):this.$Q("visible")};n.prototype.$Q=function(q){if(this.jK!=q){this.jK= 1638q;var p;if(f(["selected"]).contains(this.jK)&&this.nr){var r=1;q=p=0}else f(["selected","roll over"]).contains(this.jK)&&this.mr?(p=1,q=r=0):f(["selected","roll over","visible"]).contains(this.jK)?(q=1,r=p=0):q=r=p=0;var t=this.pY,u=this.N_,v=this.Z_,w=Math.max(200*Math.abs(q-t),200*Math.abs(p-u),200*Math.abs(r-v));this.fa=new d("none"==this.jK?"quad_out":"quad_in",[new e("itemAlpha",t,q),new e("rollOverItemAlpha",u,p),new e("selectedItemAlpha",v,r)],w)}};n.prototype.Sa=function(){this.trigger(new k(n.Ob))}; 1639n.Ob="request frame";n.m6="is over update";return n});define("nz",["require","lQ","kv"],function(a){var f=a("lQ"),l=a("kv");a=f.extend(l,function(m,k,c,h,g,b,d){l.call(this,l.Ona,m,k);this.zUa=c;this.AUa=h;this.iXa=g;this.jXa=b;this.Oc=d;this.UR=[]});a.prototype.$x=function(){return this.Oc};return a}); 1640define("fW","require lQ pw cI gD cU nz".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("cU"),h=a("nz"),g=f.extend(k,function(b,d,e){k.call(this);this.j=b;this.M=this.j.getParent();this.M.bind(l.gb,this.Ko,this,!0);this.M.bind(l.Pb,this.Mf,this,!0);this.M.bind(l.Zp,this.OP,this,!0);this.Ua=d;this.Pe=this.Ua.get("width");this.Oe=this.Ua.get("height");this.OXa=Math.sqrt(this.Pe*this.Pe+this.Oe*this.Oe)*this.Ua.get("fieldOfViewOverlayRadiusScale",1);this.ne=this.Ua.lk();this.dd= 1641e;this.AJ=this.dd.get("x",0);this.BJ=this.dd.get("y",0);this.VZ=this.dd.get("angle",0);this.Aa=this.yQa();this.kt=!1;this.Ka=0;this.Wa=.5*Math.PI;this.be=!1;this.nd=this.md=void 0;this.j.F1(this.Ua.lk(),this.Aa)});g.prototype.yIa=function(b,d){this.Ka=b+this.VZ-90;this.Wa=d;this.Sa()};g.prototype.clear=function(){this.M.unbind(l.gb,this.Ko,this);this.M.unbind(l.Pb,this.Mf,this);this.M.unbind(l.Zp,this.OP,this);this.M=null;this.j.f9a(this.Ua.lk(),this.Aa);this.Aa=this.dd=this.ne=this.Ua=this.j=null}; 1642g.prototype.Ld=function(){this.j.C$a(this.Aa,this.Ka,this.Wa)};g.prototype.yQa=function(){return new h(this.AJ,this.BJ,this.Ua.get("fieldOfViewOverlayInsideColor","#FFFFFF"),this.Ua.get("fieldOfViewOverlayInsideOpacity",0),this.Ua.get("fieldOfViewOverlayOutsideColor","#000000"),this.Ua.get("fieldOfViewOverlayOutsideOpacity",0),this.Ua.get("fieldOfViewOverlayRadiusScale",1))};g.prototype.Sa=function(){this.trigger(new m(g.Ob))};g.prototype.Xfa=function(){var b=!1;if(void 0!=this.md&&void 0!=this.nd){var d= 1643.5*this.j.Za(),e=.5*this.j.Cb(),n=this.j.O2(this.ne)*Math.PI/180,q=this.j.$S(this.ne),p=this.j.ZS(this.ne),r=this.j.aT(this.ne),t=this.j.bT(this.ne);b=new c(this.md,this.nd);b.translate(-d,-e);b.rotate(-n);b.scale(1/q,1/p);b.translate(r,t);b.scale(this.Pe,this.Oe);b.translate(-this.AJ,-this.BJ);b.rotate(-this.Ka*Math.PI/180);d=Math.round(180*Math.atan2(b.y,b.x)/Math.PI);b=Math.round(Math.sqrt(b.x*b.x+b.y*b.y))<=this.OXa&&Math.abs(d)<.5*this.Wa}this.kt!=b&&(this.kt=b,this.trigger(new m(g.W6,{inFOV:this.kt})))}; 1644g.prototype.R6a=function(){return this.kt};g.prototype.Ko=function(b){this.md=b.x;this.nd=b.y;this.be=!0;this.Xfa()};g.prototype.Mf=function(b){this.be||(this.md=b.x,this.nd=b.y,this.Xfa())};g.prototype.OP=function(){this.nd=this.md=void 0;this.be=!1;this.Xfa()};g.Ob="request frame";g.W6="mouse in fov change";return g}); 1645define("pi","require es lQ cI gD iM ly fW".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("cI"),k=a("gD"),c=a("iM"),h=a("ly"),g=a("fW"),b=l.extend(k,function(d){k.call(this);this.j=d;this.fP=[];this.tw=[];this.rn=[];this.Gn=this.dd=null});b.prototype.clear=function(){for(var d=0;d<this.tw.length;d++)this.tw[d].clear();for(d=0;d<this.rn.length;d++)this.rn[d].clear();this.j=this.fP=this.dd=this.rn=this.tw=null};b.prototype.HS=function(d){d.xT()&&this.DNa(d.Ua)};b.prototype.Gia=function(d){d.xT()&& 1646this.gYa(d.Ua)};b.prototype.Dy=function(d){this.dd!=d&&(this.dd&&this.Xda(this.dd.get("map")),this.dd=d,this.Gn=null,this.dd&&(d=this.dd.get("map"),this.kba(d)&&this.Koa(d)))};b.prototype.Fp=function(d,e,n,q){this.Gn={yaw:e,pitch:n,hfov:q};for(n=0;n<this.rn.length;n++){var p=this.rn[n];if(p.dd==d){p.yIa(e,q);break}}};b.prototype.DNa=function(d){this.kba(d)&&(this.lxa(d),this.Xda(d));this.fP.push(d);this.vNa(d);this.Koa(d)};b.prototype.gYa=function(d){var e=this.fP.indexOf(d);0<=e&&this.fP.splice(e, 16471);this.kba(d)||(this.lxa(d),this.Xda(d))};b.prototype.kba=function(d){return 0<=f(this.fP).indexOf(d)};b.prototype.Ld=function(d){for(var e=0;e<this.tw.length;e++)this.tw[e].Ld(d);for(e=0;e<this.rn.length;e++)this.rn[e].Ld(d)};b.prototype.vNa=function(d){for(var e=d.get("overlays",[]),n=0;n<e.length;n++){var q=e[n];q instanceof c&&(q=new h(this.j,d,q),q.bind(h.Ob,this.Sa,this,!0),q.bind(h.m6,this.hta,this,!0),this.tw.push(q))}};b.prototype.Koa=function(d){this.dd&&this.dd.get("map")==d&&!1!==this.dd.get("visible")&& 1648(d=new g(this.j,d,this.dd),d.bind(g.Ob,this.Sa,this,!0),d.bind(g.W6,this.lZ,this,!0),this.rn.push(d),this.Gn&&d.yIa(this.Gn.yaw,this.Gn.hfov));this.lZ()};b.prototype.lxa=function(d){d=d.get("overlays",[]);for(var e=0;e<d.length;e++)for(var n=d[e],q=0;q<this.tw.length;q++){var p=this.tw[q];
1648if(p.match(n)){p.unbind(h.Ob,this.Sa,this);p.unbind(h.m6,this.hta,this);p.clear();this.tw.splice(q,1);break}}};b.prototype.Xda=function(d){for(var e=0;e<this.rn.length;e++){var n=this.rn[e];if(n.Ua==d){n.unbind(g.Ob, 1649this.Sa,this);n.unbind(g.W6,this.lZ,this);n.clear();this.rn.splice(e,1);break}}this.lZ()};b.prototype.hta=function(){};b.prototype.Sa=function(){this.trigger(new m(b.Ob))};b.prototype.lZ=function(){for(var d=!1,e=0;e<this.rn.length;e++)this.rn[e].R6a()&&(d=!0);this.trigger(new m(b.l6,{inFOV:d}))};b.Ob="request frame";b.l6="in fov change";return b}); 1650define("kZ","require lQ pw cI gD kz cU".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("kz"),h=a("cU"),g=f.extend(k,function(b){k.call(this);this.j=b;this.M=this.j.getParent();this.M.bind(l.Pb,this.Mf,this,!0);this.M.bind(l.gb,this.Ko,this,!0);this.M.bind(l.Eb,this.Ow,this,!0);this.Ua=null;this.ne=this.Oe=this.Pe=void 0;this.dd=null;this.VZ=this.BJ=this.AJ=void 0;this.kt=!1;this.nd=this.md=this.Cn=void 0;this.be=!1;this.Ka=0});g.prototype.clear=function(){this.M.unbind(l.Pb, 1651this.Mf,this);this.M.unbind(l.gb,this.Ko,this);this.M.unbind(l.Eb,this.Ow,this);this.j=this.dd=this.ne=this.Ua=this.M=null};g.prototype.vU=function(b){this.kt=b;this.Pfa()};g.prototype.HS=function(b){b.xT()&&this.fya(b.Ua)};g.prototype.Gia=function(b){b.xT()&&this.Ua==b.Ua&&this.fya(null)};g.prototype.fya=function(b){this.Ua!=b&&((this.Ua=b)?(this.Pe=this.Ua.get("width"),this.Oe=this.Ua.get("height"),this.ne=this.Ua.lk()):(this.Oe=this.Pe=void 0,this.ne=null))};g.prototype.Dy=function(b){this.dd!= 1652b&&((this.dd=b)?(this.AJ=this.dd.get("x",0),this.BJ=this.dd.get("y",0),this.VZ=this.dd.get("angle",0)):this.VZ=this.BJ=this.AJ=void 0)};g.prototype.Fp=function(b,d){this.dd==b&&(this.Ka=d)};g.prototype.rs=function(b){this.Cn=b};g.prototype.Ko=function(b){this.md=b.x;this.nd=b.y;this.be=!0;this.Pfa()};g.prototype.Mf=function(b){this.md=b.x;this.nd=b.y;this.Ei&&(b=this.ksa(),this.trigger(new m(g.xi,{yawDelta:b-this.qd})),this.qd=b)};g.prototype.Ow=function(b){this.md=b.x;this.nd=b.y;this.be=!1;this.Pfa()}; 1653g.prototype.Pfa=function(){var b=this.be&&this.dd&&this.Ua&&(this.Cn==c.n7||this.kt);this.Ei!=b&&(this.Ei=b)&&(this.qd=this.ksa())};g.prototype.ksa=function(){var b=.5*this.j.Za(),d=.5*this.j.Cb(),e=new h(this.md,this.nd);e.translate(-b,-d);if(this.Cn==c.n7)return 180*-Math.atan2(e.y,e.x)/Math.PI;b=this.j.O2(this.ne)*Math.PI/180;d=this.j.$S(this.ne);var n=this.j.ZS(this.ne),q=this.j.aT(this.ne),p=this.j.bT(this.ne);e.rotate(-b);
1653e.scale(1/d,1/n);e.translate(q,p);e.scale(this.Pe,this.Oe);e.translate(-this.AJ, 1654-this.BJ);return 180*Math.atan2(e.y,e.x)/Math.PI};g.xi="request yaw change";return g}); 1655define("ns",["require","lQ","cI","gD","bn"],function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("bn"),c=f.extend(m,function(h){m.call(this);this.W=!0;this.KD=!1;this.j=h});c.prototype.clear=function(){this.W=!1;this.j=null};c.prototype.requestFrame=function(){this.KD||(this.KD=!0,k.requestFrame(this.bk,this))};c.prototype.bk=function(h){this.W&&(this.KD=!1,this.trigger(new l(c.Rp,{frameTime:h})),this.trigger(new l(c.Sp,{frameTime:h})),this.j.render())};c.Rp="frameStart";c.Sp="positionSet";return c}); 1656define("dI","require lQ pw cI gD oE km ju pi kZ ns".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("oE"),h=a("km"),g=a("ju"),b=a("pi"),d=a("kZ"),e=a("ns"),n=f.extend(k,function(q,p){k.call(this);this.M=q;this.j=p;this.j.set("visible",!1);this.c_=null;this.vg=new e(this.j);this.me=new g(this.j);this.Oa=new h(this.M,this.j);this.ib=new c(this.j);this.ar=new b(this.j);this.ut=new d(this.j);this.M.bind(l.jd,this.NZ,this,!0);this.vg.bind(e.Rp,this.xA,this,!0);this.vg.bind(e.Sp, 1657this.yA,this,!0);this.me.bind(g.uV,this.KP,this);this.me.bind(g.s6,this.bva,this);this.me.bind(g.sV,this.cva,this);this.Oa.bind(h.Ob,this.bf,this,!0);this.Oa.bind(h.q6,this.$ua,this,!0);this.Oa.bind(h.tV,this.dva,this,!0);this.Oa.bind(h.r6,this.ava,this,!0);this.Oa.bind(h.qC,this.Kw,this,!0);this.Oa.bind(h.rC,this.tA,this,!0);this.Oa.bind(h.c6,this.nua,this,!0);this.ib.bind(c.Ob,this.bf,this,!0);this.ib.bind(c.uk,this.Tq,this);this.ar.bind(b.Ob,this.bf,this,!0);this.ar.bind(b.l6,this.Qua,this,!0); 1658this.ut.bind(d.xi,this.$P,this,!0);this.gra=!1});n.prototype.rs=function(q){this.ib.rs(q);this.Oa.rs(q);this.ut.rs(q)};n.prototype.clear=function(){this.gra=!0;this.me.clear();this.vg.clear();this.ib.clear();this.Oa.clear();this.ar.clear();this.ut.clear();this.M.unbind(l.jd,this.NZ,this);this.me.unbind(g.uV,this.KP,this);this.me.unbind(g.s6,this.bva,this);this.me.unbind(g.sV,this.cva,this);this.vg.unbind(e.Rp,this.xA,this);this.vg.unbind(e.Sp,this.yA,this);this.Oa.unbind(h.Ob,this.bf,this);this.Oa.unbind(h.q6, 1659this.$ua,this);this.Oa.unbind(h.tV,this.dva,this);this.Oa.unbind(h.r6,this.ava,this);this.Oa.unbind(h.qC,this.Kw,this);this.Oa.unbind(h.rC,this.tA,this);this.Oa.unbind(h.c6,this.nua,this);this.ib.unbind(c.rLa,this.bf,this);this.ib.unbind(c.uk,this.Tq,this);this.ar.unbind(b.Ob,this.bf,this);this.ar.unbind(b.l6,this.Qua,this);this.ut.unbind(d.xi,this.$P,this);this.M=this.j=this.ut=this.ar=this.Oa=this.ib=this.vg=this.me=null};n.prototype.NZ=function(){this.c_&&(this.qIa(this.c_),this.c_=null)};n.prototype.qIa= 1660function(q){this.j.set("visible",!0);this.M.hA?this.me.$Ea(q):(this.me.stop(),this.ib.stop(),this.Oa.hide(),this.c_=q)};n.prototype.yy=function(){this.me.stop();this.ib.stop();this.Oa.hide()};n.prototype.pk=function(q){this.ib.pk(q)};n.prototype.Dy=function(q){this.gra||(this.ib.Dy(q),this.ar.Dy(q),this.ut.Dy(q))};n.prototype.Fp=function(q,p,r,t){this.ib.Fp(q,p,r,t);this.ar.Fp(q,p,r,t);this.ut.Fp(q,p,r,t)};n.prototype.cva=function(q){var p=q.data.level;q=(q.data.percent+100*p.getIndex())/p.ZCa(); 1661this.trigger(new m(n.bv,{percent:q}))};n.prototype.bva=function(q){this.j.set("visible",!0);q=q.data.level;this.ib.stop();this.Oa.HS(q)};n.prototype.KP=function(){this.trigger(new m(n.pC))};n.prototype.bf=function(){this.vg.requestFrame()};n.prototype.xA=function(q){this.ib.uy(q.data.frameTime)};n.prototype.yA=function(q){q=q.data.frameTime;this.Oa.Ld(q);this.ib.Ld(q);this.ar.Ld(q)};n.prototype.$ua=function(q){q=q.data.level;this.ar.HS(q);this.ut.HS(q)};n.prototype.dva=function(q){q=q.data.level; 1662this.ar.Gia(q);this.ut.Gia(q)};n.prototype.ava=function(q){q=q.data.level;q.xT()&&this.ib.start(q)};n.prototype.nua=function(){this.j.set("visible",!1)};n.prototype.Qua=function(q){q=q.data.inFOV;this.ib.vU(q);this.ut.vU(q)};n.prototype.tA=function(q){this.trigger(new m(n.rC,{map:q.data.map}))};n.prototype.Kw=function(q){this.trigger(new m(n.qC,{map:q.data.map}))};n.prototype.Tq=function(q){this.trigger(new m(n.uk,q.data))};n.prototype.$P=function(q){this.trigger(new m(n.xi,{yawDelta:q.data.yawDelta}))}; 1663n.uk="movementChange";n.pC="loadingEnd";n.bv="loadingProgress";n.rC="mapShow";n.qC="mapHide";n.xi="requestYawChange";return n});define("lm",["require","iw"],function(a){function f(){this.status=f.DV;this.progress=this.Gj=0;this.fka=[]}a("iw");f.LOADING="loading";f.da="loaded";f.DV="not loaded";return f}); 1664define("lN","require es lQ cI pw hh lm".split(" "),function(a){function f(){this.ira={};this.Ah=[];this.pA=[];this.Bd={}}var l=a("es"),m=a("lQ");a("cI");
1664var k=a("pw"),c=a("hh"),h=a("lm");f.prototype.q5=function(g){g=g.uu();for(var b=0,d=g.length;b<d;b++)if(this.nO(g[b]).status!=h.da)return!1;return!0};f.prototype.Yn=function(g,b){this.Ah.push(g);this.yNa(g,b)};f.prototype.Hj=function(g,b){var d=l(this.Ah).indexOf(g);0>d&&m.log("Unloading item not loaded");this.Ah.splice(d,1);this.dYa(g,b)};f.prototype.Af= 1665function(g,b){return this.Bd[g].Af(b)};f.prototype.yNa=function(g,b){this.pA.push(g);g=g.uu();for(var d=0,e=g.length;d<e;d++){var n=g[d],q=this.nO(n);q.Gj++;q.fka.push(b);q.status==h.DV&&(q.status=h.LOADING,this.rVa(n,Math.min.apply(Math,q.fka)))}this.bAa()};f.prototype.dYa=function(g,b){this.pA=l(this.pA).without(g);g=g.uu();for(var d=0,e=g.length;d<e;d++){var n=g[d],q=this.nO(n);q.Gj--;var p=q.fka,r=p.indexOf(b);0<=r&&p.splice(r,1);0==q.Gj&&q.status!=h.DV&&(q.status=h.DV,q.progress=0,this.Z0a(n))}}; 1666f.prototype.bAa=function(g){g=(void 0==g?this.pA:this.isa(g)).slice();for(var b=0;b<g.length;b++){for(var d=g[b],e=d.uu(),n=0,q=0,p=e.length,r=0;r<e.length;r++){var t=this.nO(e[r]);n+=t.progress;t.status==h.da&&q++}d.M$a(n/p);q==p&&(d.AU(),this.pA=l(this.pA).without(d))}};f.prototype.nO=function(g){var b=this.ira[g];b||(this.ira[g]=b=new h);return b};f.prototype.isa=function(g){for(var b=[],d=0;d<this.pA.length;d++){var e=this.pA[d];l(e.uu()).contains(g)&&b.push(e)}return b};f.prototype.rVa=function(g, 1667b){b=new c(b);this.Bd[g]=b;b.bind(k.da,this.LP,this,!0);b.bind(k.xc,this.MP,this,!0);b.load(g)};f.prototype.Z0a=function(g){var b=this.Bd[g];delete this.Bd[g];b.unbind(k.da,this.LP,this);b.unbind(k.xc,this.MP,this);b.cancel()};f.prototype.LP=function(g){g=g.source.Yi();var b=this.nO(g);b.progress=100;b.status=h.da;this.bAa(g)};f.prototype.MP=function(g){g=g.source.Yi();for(var b=this.isa(g),d=0;d<b.length;d++){var e=b[d];this.Hj(e);e.h$a()}m.log("Error loading: "+g)};return f.instance=new f}); 1668define("hX",["require","jquery.mod","w"],function(a){function f(m,k){this.Aa=m;this.ta=k;this.aP=0;this.Gt=this.Ft=.5;this.Xk=0;this.Mb=1;this.sr=this.Aw=this.wa=this.sa=0;this.Oc=1;this.iY=this.kY=!0;this.xa=l("<canvas/>");this.T=this.xa.get(0);this.Da=this.T.getContext("2d")}var l=a("jquery.mod");a=a("w");f.prototype.getItem=function(){return this.Aa};f.prototype.NS=function(m){return this.Aa==m?this:null};f.prototype.u2=function(m){return this.Aa==m?[this]:[]};f.prototype.Ih=function(){this.ta&& 1669this.ta.mha(this)};f.prototype.ff=function(m){this.IZa(m)};f.prototype.dya=function(m){this.aP!=m&&(this.aP=m,this.ta&&this.ta.j3())};f.prototype.IZa=function(m){this.Mb!=m&&(this.Mb=m,this.i3())};f.prototype.g0=function(m){this.Xk!=m&&(this.Xk=m,this.i3())};f.prototype.ZQ=function(m,k){if(this.sa!=m||this.wa!=k)this.sa=m,this.wa=k,this.f3()};f.prototype.mm=function(m,k){if(this.Aw!=m||this.sr!=k)this.Aw=m,this.sr=k,this.i3()};f.prototype.i3=function(){this.ta&&this.ta.g3()};f.prototype.ve=function(){this.kY= 1670!0};f.prototype.bb=function(){this.kY&&(this.kY=!1,this.ih())};f.prototype.ih=function(){};f.prototype.f3=function(){this.iY=!0;this.i3()};f.prototype.Ky=function(){if(this.iY){this.iY=!1;if(this.T.width!=this.sa||this.T.height!=this.wa)this.T.width=Math.round(this.sa),this.T.height=Math.round(this.wa);this.Da.clearRect(0,0,this.T.width,this.T.height);this.wg()}};f.prototype.wg=function(){};f.prototype.D4a=function(m){if(0<this.Mb&&1<=this.sa&&1<=this.wa){m.save();var k=Math.round(this.Aw),c=Math.round(this.sr), 1671h=Math.round(this.sa*this.Ft),g=Math.round(this.wa*this.Gt);m.scale(this.Oc,this.Oc);m.translate(k+h,c+g);m.rotate(this.Xk*Math.PI/180);m.globalAlpha=this.Mb;m.drawImage(this.T,-h,-g);m.restore()}};f.prototype.F2=function(){this.T.width=this.T.height=1;this.kY=this.iY=!0};f.Kma=window.devicePixelRatio||1;f.nk=f.Kma;f.MLa=a.zd()==a.yi?16E6:256E6;return f}); 1672define("nr",["require","es","lQ","hX"],function(a){var f=a("es"),l=a("lQ"),m=a("hX");a=l.extend(m,function(k,c){m.call(this,k,c);this.yc=[];this.D1=null;this.Jx=!0});a.prototype.UAa=function(k){k=this.l9(k);if(!k)throw"Container renderer can't create child renderer for an item";this.yc.push(k);this.j3();this.g3()};a.prototype.l9=function(){};a.prototype.mHa=function(k){if(k=this.ju(k))this.yc=f.without(this.yc,k
1672),this.j3(),this.g3()};a.prototype.NS=function(k){for(var c=m.prototype.NS.call(this,k), 1673h=0;h<this.yc.length&&!c;h++)c=this.yc[h].NS(k);return c};a.prototype.u2=function(k){for(var c=m.prototype.u2.call(this,k),h=0;h<this.yc.length;h++)c=c.concat(this.yc[h].u2(k));return c};a.prototype.ju=function(k){for(var c=null,h=0;h<this.yc.length&&!c;h++)this.yc[h].getItem()==k&&(c=this.yc[h]);for(h=0;h<this.yc.length&&!c;h++)this.yc[h].getItem().C6a(k)&&(c=this.yc[h]);return c};a.prototype.mha=function(k){this.yc=f.without(this.yc,k);this.yc.push(k);this.j3();this.g3()};a.prototype.j3=function(){this.Jx= 1674!0;this.ve()};a.prototype.g3=function(){this.f3()};a.prototype.bb=function(){m.prototype.bb.call(this);for(var k=0;k<this.yc.length;k++)this.yc[k].bb()};a.prototype.ih=function(){if(this.Jx){this.Jx=!1;for(var k=[],c=0;c<this.yc.length;c++){var h=this.yc[c];k.push({l:h.aP,z:c,r:h})}k.sort(function(g,b){return g.l==b.l?g.z-b.z:g.l-b.l});this.D1=[];for(c=0;c<k.length;c++)this.D1.push(k[c].r);this.f3()}m.prototype.ih.call(this)};a.prototype.Ky=function(){for(var k=0;k<this.yc.length;k++)this.yc[k].Ky(); 1675m.prototype.Ky.call(this)};a.prototype.wg=function(){for(var k=0;k<this.D1.length;k++)this.D1[k].D4a(this.Da);m.prototype.wg.call(this)};a.prototype.F2=function(){for(var k=0;k<this.yc.length;k++)this.yc[k].F2();m.prototype.F2.call(this)};return a});define("Q",["require","lQ","hX"],function(a){var f=a("lQ"),l=a("hX");a=f.extend(l,function(m,k){l.call(this,m,k)});a.prototype.M4=function(){};return a}); 1676define("jf",["require","lQ","Q","w"],function(a){var f=a("lQ"),l=a("Q"),m=a("w");a=f.extend(l,function(k,c){l.call(this,k,c);this.b_=this.ta.getItem().De();this.a_=this.ta.getItem().Te();this.Oc=2;this.xI=0;this.Wa=.5*Math.PI;this.eba=this.fba=!0;this.Yl=1;this.jY=!0;this.dya(1)});a.prototype.M4=function(k,c){this.Yl!=c&&(this.Yl=c,this.jY=!0,this.ve())};a.prototype.eIa=function(k,c){this.Wa!=c&&(this.Wa=c,this.fba=!0,this.ve());this.xI!=k&&(this.xI=k,this.eba=!0,this.ve())};a.prototype.ih=function(){this.fba&& 1677(this.fba=!1,this.f3());if(this.jY||this.eba){this.eba=this.jY=!1;this.Oc=Math.max(1,Math.ceil(Math.sqrt(this.b_*this.b_+this.a_*this.a_))/(m.zd()==m.yi?1024:4096));var k=this.Yl/this.Oc,c=this.Aa.getX()*k,h=this.Aa.getY()*k,g=Math.max(c,k*this.b_-c);k=Math.max(h,k*this.a_-h);g=2*Math.ceil(Math.sqrt(g*g+k*k));var b=this.xI*Math.PI/180;k=Math.cos(b);b=Math.sin(b);c=c-this.Ft*g-(.5-this.Ft)*g*k+(.5-this.Gt)*g*b;h=h-this.Gt*g-(.5-this.Gt)*g*k-(.5-this.Ft)*g*b;this.jY=!1;this.mm(c,h);this.ZQ(g,g);this.g0(this.xI)}l.prototype.ih.call(this)}; 1678a.prototype.wg=function(){var k=this.Aa.AUa,c=this.Aa.jXa;if(0<c||0<k){var h=this.Yl*this.b_,g=this.Yl*this.a_;h=Math.ceil(Math.sqrt(h*h+g*g))*this.Aa.$x()/this.Oc;g=Math.round(.5*this.sa);var b=Math.round(.5*this.wa),d=this.Wa*Math.PI/180,e=.5*-d;d=e+d;0<c&&(this.Da.fillStyle=this.Aa.iXa,this.Da.globalAlpha=c,this.Da.rect(0,0,this.sa,this.wa),this.Da.fill(),this.Da.globalCompositeOperation="destination-out",this.Da.fillStyle="#FFFFFF",this.Da.globalAlpha=1,this.Da.beginPath(),this.Da.moveTo(g,b), 1679this.Da.arc(g,b,h,e,d,!1),this.Da.lineTo(g,b),this.Da.closePath(),this.Da.fill(),this.Da.globalCompositeOperation="source-over");0<k&&(this.Da.fillStyle=this.Aa.zUa,this.Da.globalAlpha=k,this.Da.beginPath(),this.Da.moveTo(g,b),this.Da.arc(g,b,h,e,d,!1),this.Da.lineTo(g,b),this.Da.closePath(),this.Da.fill())}l.prototype.wg.call(this)};return a}); 1680define("k","require lQ hX Q lN nk".split(" "),function(a){var f=a("lQ"),l=a("hX"),m=a("Q"),k=a("lN"),c=a("nk");a=f.extend(m,function(h,g){m.call(this,h,g);this.dya(this.Aa.Fxa?0:2);this.ic=k.Af(this.Aa.Yi());this.T_=new c(this.ic,this.ic.width,this.ic.height);this.T_.$B(this.Aa.Of);this.T_.qM(this.Aa.vm);this.T_.jM(this.Aa.Sl);this.dP=0;this.Yl=1;this.Tba=!0});a.prototype.M4=function(h,g){if(this.dP!=h||this.Yl!=g)this.dP=h,this.Yl=g,this.Tba=!0,this.ve()};a.prototype.ih=function(){if(this.Tba){this.Tba= 1681!1;var h=this.Aa.getX(),g=this.Aa.getY(),b=this.Aa.De(),d=this.Aa.Te(),e=this.Aa.Gw,n=this.Aa.Hw;if(this.Aa.Fxa)this.g0(0),this.mm((h-e)*this.Yl,(g-n)*this.Yl),this.ZQ(b*this.Yl,d*this.Yl);else{b*=l.nk;d*=l.nk;e*=l.nk;n*=l.nk;var q=Math.cos(-this.dP*Math.PI/180),p=Math.sin(-this.dP*Math.PI/180);h=h*this.Yl-this.Ft*b-(e-this.Ft*b)*q+(n-this.Gt*d)*p;g=g*this.Yl-this.Gt*d-(n-this.Gt*d)*q-(e-this.Ft*b)*p;this.g0(-this.dP);this.mm(h,g);this.ZQ(b,d)}}m.prototype.ih.call(this)};a.prototype.wg=function(){this.T_.YK(this.Da, 1682this.T.width,this.T.height);m.prototype.wg.call(this)};return a}); 1683define("iJ","require lQ mI lN dG kv jf k nr".split(" "),function(a){var f=a("lQ"),l=a("mI"),m=a("lN"),k=a("dG"),c=a("
1683kv"),h=a("jf"),g=a("k"),b=a("nr");a=f.extend(b,function(d,e){b.call(this,d,e,d.No);this.Rb=this.Aa.De();this.ec=this.Aa.Te();this.Of=this.Aa.Of;this.uX=this.Aa.y$;this.Sd=this.Gd=100;this.b9=!0;this.Qa=this.Na=.5;this.qd=0;this.nb=1;this.vQ=!0;this.vf=1;this.ic=m.Af(this.Aa.Yi())});a.prototype.l9=function(d){if(d.getType()!=k.Sna)throw"Invalid item type";switch(d.lXa){case c.Ona:d= 1684new h(d,this);break;case c.Pna:d=new g(d,this);break;default:d=null}d&&d.M4(this.qd,this.vf*this.nb);return d};a.prototype.getX=function(){return this.Na};a.prototype.getY=function(){return this.Qa};a.prototype.iL=function(){return this.qd};a.prototype.Vr=function(){return this.nb};a.prototype.Za=function(){return Math.round(this.Rb*this.nb*this.vf)};a.prototype.Cb=function(){return Math.round(this.ec*this.nb*this.vf)};a.prototype.JG=function(d,e){if(this.Gd!=d||this.Sd!=e)this.Gd=d,this.Sd=e,this.b9= 1685!0,this.ve()};a.prototype.setPosition=function(d,e,n,q){if(this.Na!=d||this.Qa!=e||this.qd!=n||this.nb!=q)this.Na=d,this.Qa=e,this.qd=n,this.nb=q,this.vQ=!0,this.ve()};a.prototype.ih=function(){if(this.b9){this.b9=!1;switch(this.Of){case l.NONE:this.vf=1;break;case l.Vp:this.vf=this.Gd/this.Rb;break;case l.vk:this.vf=this.Sd/this.ec;break;case l.As:this.vf=this.Rb*this.Sd>this.ec*this.Gd?this.Sd/this.ec:this.Gd/this.Rb;break;default:this.vf=this.Rb*this.Sd>this.ec*this.Gd?this.Gd/this.Rb:this.Sd/ 1686this.ec}this.vQ=!0}if(this.vQ){this.vQ=!1;var d=this.Za(),e=this.Cb(),n=Math.cos(this.qd*Math.PI/180),q=Math.sin(this.qd*Math.PI/180);this.mm(.5*this.Gd-this.Ft*d+(this.Ft-this.Na)*n*d-(this.Gt-this.Qa)*q*e,.5*this.Sd-this.Gt*e+(this.Gt-this.Qa)*n*e+(this.Ft-this.Na)*q*d);this.g0(this.qd);this.ZQ(d,e);for(d=0;d<this.yc.length;d++)this.yc[d].M4(this.qd,this.vf*this.nb)}b.prototype.ih.call(this)};a.prototype.wg=function(){var d=Math.round(this.sa),e=Math.round(this.wa);this.uX?(this.Da.save(),this.Da.translate(d, 16870),this.Da.scale(-1,1),this.Da.drawImage(this.ic,0,0,d,e),this.Da.restore()):this.Da.drawImage(this.ic,0,0,d,e);b.prototype.wg.call(this)};return a}); 1688define("ho","require es lQ dG nr iJ".split(" "),function(a){a("es");var f=a("lQ"),l=a("dG"),m=a("nr"),k=a("iJ");a=f.extend(m,function(){m.call(this,null,null);this.M8=!0});a.prototype.gd=function(){return this.xa};a.prototype.render=function(){this.bb();this.Ky()};a.prototype.N5a=function(){for(var c=1,h=0;h<this.yc.length;h++){var g=this.yc[h];g=g.Za()*g.Cb();c<g&&(c=g)}return c};a.prototype.l9=function(c){if(c.getType()!=l.Rna)throw"Invalid item type";c=new k(c,this);c.JG(this.sa,this.wa);c.setPosition(.5, 1689.5,0,1);return c};a.prototype.setSize=function(c,h){this.ZQ(c,h);this.M8=!0;this.ve()};a.prototype.ih=function(){if(this.M8){this.M8=!1;for(var c=0;c<this.yc.length;c++)this.yc[c].JG(this.sa,this.wa)}m.prototype.ih.call(this)};return a}); 1690define("kX","require es lQ pw iw lN hX ho oQ bh e".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("pw"),k=a("iw"),c=a("lN"),h=a("hX"),g=a("ho"),b=a("oQ"),d=a("bh"),e=a("e");a=l.extend(e,function(){e.call(this);this.Qe("Renderer");this.set("toolTipDisabled",!0);this.set("cursor",d.hv);this.Pz=[];this.kF=[];this.$b="";this.Bh=new g;this.Yb().append(this.Bh.gd());this.bind(m.tc,this.Ic,this,!0);this.bind(m.jd,this.sj,this,!0);this.bind(m.ad,this.rj,this,!0);b.N.bind(m.ba,this.gga,this,!0);this.TE= 1691this.cea=!1});a.prototype.Yn=function(n){c.Yn(n,k.yl)};a.prototype.q5=function(n){return c.q5(n)};a.prototype.Hj=function(n){c.Hj(n,k.yl)};a.prototype.Xga=function(n){this.Bh.UAa(n)};a.prototype.removeItem=function(n){this.Bh.mHa(n)};a.prototype.F1=function(n,q){this.Bh.ju(n).UAa(q);this.dga()};a.prototype.f9a=function(n,q){(n=this.Bh.ju(n))&&n.mHa(q)};a.prototype.nha=function(n){this.Bh.NS(n).Ih()};a.prototype.qs=function(n,q){this.Bh.u2(n).forEach(function(p){p.ff(q)})};a.prototype.xU=function(n, 1692q,p,r,t){this.Bh.ju(n).setPosition(q,p,r,t);this.dga()};a.prototype.dga=function(){var n=this.Bh.N5a();n&&(h.nk=Math.min(h.Kma,h.nk*Math.sqrt(h.MLa/n)),this.cAa())};a.prototype.C$a=function(n,q,p){this.Bh.NS(n).eIa(q,p)};a.prototype.aT=function(n){return this.Bh.ju(n).getX()};a.prototype.bT=function(n){return this.Bh.ju(n).getY()};a.prototype.O2=function(n){return this.Bh.ju(n).iL()};a.prototype.lDa=function(n){return this.Bh.ju(n).Vr()};a.prototype.$S=function(n){return this.Bh.ju(n).Za()/h.nk}; 1693a.prototype.ZS=function(n){return this.Bh.ju(n).Cb()/h.nk};a.prototype.render=function(){this.TE&&this.Bh.render()};a.prototype.z4=function(n){this.Pz.push(n);this.Sza()};a.prototype.$L=function(n){n=f(this.Pz).lastIndexOf(n);0<=n&&this.Pz.splice(n,1);this.Sza()};a.prototype.Sza=function(){var n=0<this.Pz.length?this.Pz[this.Pz.length-1]:d.Ie;this.getParent().set("cursor",n)};a.prototype.NW=function(){0<this.Pz.length&&(this.getParent().set("cursor",d.Ie),this.Pz=[])};a.prototype.X8a=function(n){this.kF.push(n); 1694this.SR()};a.prototype.R8a=function(n){n=f(this.kF).lastIndexOf(n);0<=n&&this.kF.splice(n,1);this.SR()};a.prototype.SR=function(){var n=0==this.kF.length?"":this.kF[this.kF.length-1]||"";this.$b!=n&&(this.$b=n,this.getParent().set("toolTip",this.$b))};a.prototype.DPa=function(){this.$b&&this.getParent().set("toolTip","");this.$b="";this.kF=[]};a.prototype.Ln=function(){this.DPa();this.NW();e.prototype.Ln.call(this)};a.prototype.Ic=function(){this.cAa();this.dga()};a.prototype.cAa=function(){this.Bh.gd().css({transform:1!= 1695h.nk?"scale("+(1/h.nk).toFixed(3)+")":"none","transform-origin":"0% 0%"});this.Bh.setSize(this.Za()*h.nk,this.Cb()*h.nk);this.render()};a.prototype.sj=function(){this.cea=!0;this.gga()};a.prototype.rj=function(){this.cea=!1;this.gga()};a.prototype.gga=function(){var n=this.cea&&!b.isPresenting;this.TE!=n&&((this.TE=n)?(this.Ic(),this.render()):this.Bh.F2())};return a}); 1696define("R","require lQ cI oj kj dn dI ki kX pw ep hf".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("oj"),k=a("kj"),c=a("dn"),h=a("dI"),g=a("ki"),b=a("kX"),d=a("pw"),e=a("ep"),n=a("hf"),q=m.define("MapPlayer",c,function(){c.call(this,"map");this.ZY=this.Sba=this.ri=!1;this.Gn=this.dd=this.O=this.j=null;this.Az={};for(var p in q.Bv)this.Az[p]=this.dQa(p);this.Hd=f.zp(this.ih,this)});q.prototype.stop=function(){this.Xc(g.Vf)};q.prototype.rotateClockwise=function(){this.Xc(g.h7)};q.prototype.rotateCounterClockwise= 1697function(){this.Xc(g.i7)};q.prototype.zoomIn=function(){this.Xc(g.zv)};q.prototype.zoomOut=function(){this.Xc(g.Av)};q.prototype.set=function(p,r){if(this.get(p)!=r){switch(p){case "map":this.Sba=!0;this.Hd();break;case "viewerArea":this.ri=!0;this.Hd();break;case "panoramaMapLocation":this.fda=!0;this.Hd();break;case "movementMode":this.ZY=!0,this.Hd()}c.prototype.set.call(this,p,r)}};q.prototype.dQa=function(p){var r=q.Bv[p];p=new k(this,p,e.Ke);p.bind(d.gb,function(){this.Xc(r.movement)},this); 1698r.stopOnRelease&&p.bind(d.Eb,function(){this.Xc(g.Vf)},this);return p};q.prototype.$2a=function(p){this.Gn=null;this.set("map",p.get("map"));this.set("panoramaMapLocation",p)};q.prototype.o9a=function(p){this.get("panoramaMapLocation")==p&&(this.set("panoramaMapLocation",null),this.Gn=null)};q.prototype.Fp=function(p,r,t,u){this.O&&this.O.Fp(p,r,t,u);this.Gn={yaw:r,pitch:t,hfov:u}};q.prototype.ih=function(){this.ri&&(this.ri=!1,this.Zv(),this.get("viewerArea")&&this.Xv(),this.aR(this.get("viewerArea"))); 1699if(this.O){if(this.Sba){this.Sba=!1;var p=this.get("map");p?(this.DG(),this.O.qIa(p)):this.O.yy();this.fda=this.ZY=!0}this.fda&&(this.fda=!1,p=this.get("panoramaMapLocation"),this.O.Dy(p),p&&this.Gn&&this.O.Fp(p,this.Gn.yaw,this.Gn.pitch,this.Gn.hfov));this.ZY&&(this.ZY=!1,this.O.rs(this.get("movementMode")))}};q.prototype.kK=function(){this.set("map",null)};q.prototype.Xv=function(){var p=this.get("viewerArea");this.j=new b;this.j.ra({left:0,top:0,bottom:0,right:0});p.Ya(this.j);this.O=new h(p,this.j); 1700this.O.bind(h.uk,this.Tq,this);this.O.bind(h.bv,this.Ki,this);this.O.bind(h.pC,this.rJ,this);this.O.bind(h.rC,this.tA,this);this.O.bind(h.qC,this.Kw,this);this.O.bind(h.xi,this.$P,this,!0)};q.prototype.Zv=function(){this.j&&(this.O.unbind(h.uk,this.Tq,this),this.O.unbind(h.bv,this.Ki,this),this.O.unbind(h.pC,this.rJ,this),this.O.unbind(h.rC,this.tA,this),this.O.unbind(h.qC,this.Kw,this),this.O.unbind(h.xi,this.$P,this),this.O.clear(),this.j.getParent().removeChild(this.j),this.j=null)};q.prototype.tA= 1701function(p){this.kP(p.data.map)};q.prototype.Kw=function(p){this.jP(p.data.map)};q.prototype.Tq=function(p){for(var r in q.Bv)this.Az[r].set("state",p.data[q.Bv[r].pressedOn]?n.Ab:n.Ie);this.trigger(new l(d.Uma,p.data))};q.prototype.$P=function(p){this.trigger(new l(q.xi,{yawDelta:p.data.yawDelta}))};q.prototype.Ki=function(p){this.j.getParent().ra({progressPercent:p.data.percent,progressVisible:!0})};q.prototype.rJ=function(){this.j.getParent().set("progressVisible",!1)};q.prototype.Xc=function(p){this.O&&
1702this.O.pk(p)};q.Bv={buttonRotateClockwise:{movement:g.h7,pressedOn:"rotatingClockwise",stopOnRelease:!0},buttonRotateCounterClockwise:{movement:g.i7,pressedOn:"rotatingCounterClockwise",stopOnRelease:!0},buttonZoomIn:{movement:g.zv,pressedOn:"zoomingIn",stopOnRelease:!0},buttonZoomOut:{movement:g.Av,pressedOn:"zoomingOut",stopOnRelease:!0}};q.xi="requestYawChange";return q}); 1703define("iK",["require","mu","pw","cI","oj"],function(a){var f=a("mu"),l=a("pw"),m=a("cI");a=a("oj").define("PlayListItem",f,function(){f.call(this);this.C="stopped"});a.prototype.get=function(k,c){return"state"==k?this.C:f.prototype.get.call(this,k,c)};a.prototype.start=function(){this.Nbb()};a.prototype.Nbb=function(){if("stopped"==this.C||"stopping"==this.C)this.C="starting",this.trigger(new m(l.ko))};a.prototype.iB=function(){this.YJa()};a.prototype.YJa=function(){if("starting"==this.C||"stopping"== 1704this.C)this.C="playing",this.trigger(new m(l.Lp))};a.prototype.stop=function(){this.AM()};a.prototype.AM=function(){if("playing"==this.C||"starting"==this.C)this.C="stopping",this.trigger(new m(l.Vf))};a.prototype.end=function(){this.ZJa()};a.prototype.ZJa=function(){if("stopping"==this.C||"starting"==this.C)this.C="stopped",this.trigger(new m(l.Gb))};return a}); 1705define("qe",["require","oj","dn","iK"],function(a){var f=a("oj"),l=a("dn"),m=a("iK");a=f.define("MapPlayListItem",m,function(){m.call(this)});a.prototype.start=function(){m.prototype.start.call(this);var k=this.get("player");k&&(k.bind(l.sh,this.tA,this),k.set("map",this.get("media")))};a.prototype.stop=function(){var k=this.get("player");k&&k.get("map")==this.get("media")&&k.set("map",null);m.prototype.stop.call(this)};a.prototype.tA=function(){this.get("player").unbind(l.sh,this.tA,this);this.get("player").bind(l.Um, 1706this.Kw,this);this.iB();this.get("player").get("map")!=this.get("media")&&this.Kw()};a.prototype.Kw=function(){this.get("player").unbind(l.Um,this.Kw,this);this.stop();this.end()};return a}); 1707define("gt",["require","pw","oj","kq"],function(a){var f=a("pw"),l=a("oj"),m=a("kq"),k=l.define("MeasureModel3DObject",m,function(){m.call(this);this.bind(f.F("mode"),function(){this.trigger(k.lLa)},this,!0);this.bind(f.F("distance"),function(){this.trigger(k.hLa)},this,!0)});k.lLa="modeChange";k.hLa="distanceChange";return k});define("dv",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("MeasureModel3DObjectPoint",f,function(){f.call(this)})}); 1708define("eq",["require","oj","gq"],function(a){var f=a("oj"),l=a("gq");return f.define("OrbitModel3DCamera",l,function(){l.call(this)})}); 1709define("pT",["require","exports","pw","gD"],function(a,f,l,m){var k=function(){return function(c){this.TBa=c;this.Tg=0;this.finished=!1}}();return function(c){function h(g){var b=c.call(this)||this;b.wn=new Map;b.AI=g||b;return b}Z(h,c);h.prototype.i$a=function(g){if(this.AI=g)this.yj(),this.$0()};h.prototype.update=function(){this.yj();this.$0()};h.prototype.MBa=function(){this.wn.forEach(function(g,b){this.D_(b)}.bind(this));this.wn=new Map};h.prototype.Kh=function(){var g=0;this.wn.forEach(function(b){b.finished&& 1710g++});return g==this.wn.size};h.prototype.dispose=function(){this.MBa();this.wn.clear();this.AI=void 0};h.prototype.JK=function(g,b){void 0===b&&(b=1);if(this.wn.has(g))return g;this.wn.set(g,new k(b));this.ANa(g);return g};h.prototype.cM=function(g){this.wn.has(g)&&(this.wn["delete"](g),this.D_(g))};h.prototype.iu=function(g){void 0===g&&(g=1);var b=new m;return this.JK(b,g)};h.prototype.Cd=function(g){g=g.source;var b=this.wn.get(g);b&&(this.D_(g),b.Tg=100,b.finished=!0,this.yj(),this.$0())};h.prototype.Ki= 1711function(g){this.wn.get(g.source).Tg=g.data.percent;this.yj()};h.prototype.ag=function(g){g=g.source;this.D_(g);g=this.wn.get(g);g.finished=!0;g.Tg=100;this.AI.trigger(l.xc);this.yj();this.$0()};h.prototype.yj=function(){var g=0,b=0;this.wn.forEach(function(d){b+=d.TBa;g+=d.Tg*d.TBa});this.AI.trigger(l.kc,{percent:b?g/b:100})};h.prototype.$0=function(){this.Kh()&&this.AI.trigger(l.da)};h.prototype.ANa=function(g){g.bind(l.da,this.Cd,this,!0);g.bind(l.kc,this.Ki,this,!0);
1711g.bind(l.xc,this.ag,this,!0)}; 1712h.prototype.D_=function(g){g.unbind(l.da,this.Cd,this);g.unbind(l.kc,this.Ki,this);g.unbind(l.xc,this.ag,this)};return h}(m)}); 1713define("cc","require pw lt oj ez eq pT".split(" "),function(a){function f(r,t){Array.isArray(t)?r.fromArray(t):r.copy(t);return r}function l(r,t){Array.isArray(t)?r.fromArray(t):r.copy(t);return r}function m(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 k=a("pw"),c=a("lt"),h=a("oj"),g=a("ez"),b=a("eq"),d=a("pT");a=h.define("Model3D",g,function(){g.call(this);this.set("camera",new b);this.set("geometryQuery",void 0);this.set("objectQuery",void 0);this.set("preload", 1714!0)});a.prototype.ska=function(){this.Ri&&(this.Ri.unbind(k.da,this.vJ,this),this.Ri.dispose());this.Ri=new d;this.Ri.bind(k.da,this.vJ,this,!0);this.Ne&&this.Ne.dispose();this.Ne=new d(this)};a.prototype.vJ=function(){this.trigger(k.MC)};a.prototype.P2=function(){this.Ne||this.ska();return this.Ne};a.prototype.S2=function(){this.Ri||this.ska();return this.Ri};a.prototype.pause=function(){this.get("state")==c.PLAYING&&this.set("state",c.Qb)};a.prototype.play=function(){this.set("state",c.PLAYING)}; 1715a.prototype.stop=function(){this.set("state",c.V)};a.prototype.worldPositionToLocal=function(r,t){l(e,r);f(q,t);q.invert();e.applyMatrix4(q);return m(e,r)};a.prototype.getMatrixWorld=function(r){var t=this.get("objectQuery");return t&&t.qDa(r)};a.prototype.worldDirectionToLocal=function(r,t){l(e,r);f(p,t);q.extractRotation(p);q.invert();e.applyMatrix4(q);return m(e,r)};a.prototype.testIntersection=function(r,t){var u=this.get("geometryQuery");if(u)return l(e,r),l(n,t),u.ZG(e,n)};a.prototype.getDistanceToFloor= 1716function(r){var t=this.get("geometryQuery");if(t)return l(e,r),t.p5a(e)};a.prototype.pick=function(r,t){var u=this.get("picker");if(u)return u.p4(r,t)};a.prototype.getScreenPosition=function(r,t){var u=this.get("projectionQuery");if(u)return u.Aia(l(e,r),t)};var e=new THREE.Vector3,n=new THREE.Vector3,q=new THREE.Matrix4,p=new THREE.Matrix4;a.prototype.su=function(){return[]};return a}); 1717define("bj",["require","mu","lt","pw","oj"],function(a){var f=a("mu"),l=a("lt"),m=a("pw");a=a("oj").define("Model3DAnimation",f,function(){f.call(this);this.bind(m.F("state"),function(){this.trigger(m.ye)},this,!0)});a.prototype.pause=function(){this.get("state")==l.PLAYING&&this.set("state",l.Qb)};a.prototype.play=function(){this.set("currentDirection","forward");this.set("state",l.PLAYING)};a.prototype.reverse=function(){this.set("currentDirection","backward");this.set("state",l.PLAYING)};a.prototype.stop= 1718function(){this.set("currentTime",0);this.set("state",l.V)};return a}); 1719define("hk",["require","mu","lt","oj","pw"],function(a){var f=a("mu"),l=a("lt"),m=a("oj"),k=a("pw");a=m.define("Model3DCameraSequence",f,function(){f.call(this);this.set("state",l.V);this.bind(k.F("state"),function(){this.trigger(k.ye)},this,!0)});a.prototype.play=a.prototype.play=function(){this.set("state",l.PLAYING)};a.prototype.pause=a.prototype.pause=function(){this.get("state")==l.PLAYING&&this.set("state",l.Qb)};a.prototype.stop=a.prototype.stop=function(){this.set("state",l.V)};return a}); 1720define("Z",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("Model3DDisplayEffect",f,function(){f.call(this)})}); 1721define("iX","require lQ pw cI kj dn lt ep hf".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("kj"),c=a("dn"),h=a("lt"),g=a("ep"),b=a("hf");a=f.extend(c,function(){c.call(this,!0);this.wt=!1;this.iK=!0;this.C=h.V;this.jD=new k(this,"buttonPlayPause",g.Nj);this.jD.bind(l.Kj,this.FWa,this,!0);this.jD.bind(l.Dl,this.GWa,this,!0);this.aI=new k(this,"buttonPause",g.Ke);this.aI.bind(l.ma,this.BE,this,!0);this.bI=new k(this,"buttonPlay",g.Ke);this.bI.bind(l.ma,this.CE,this,!0);this.dI=new k(this, 1722"buttonStop",g.Ke);
1722this.dI.bind(l.ma,this.AA,this,!0);this.YOa=new k(this,"buttonRestart",g.Ke);this.YOa.bind(l.ma,this.zA,this,!0);this.Xsa=f.zp(this.N1a,this);this.Xsa()});a.prototype.set=function(d,e){"state"!=d&&c.prototype.set.call(this,d,e)};a.prototype.get=function(d,e){switch(d){case "state":return this.C}return c.prototype.get.call(this,d,e)};a.prototype.N1a=function(){this.iK&&(this.iK=!1,this.aI.set("state",this.C==h.Qb?b.Ab:b.Ie),this.bI.set("state",this.C==h.PLAYING||this.C==h.Qb?b.Ab: 1723b.Ie),this.jD.set("pressed",this.C==h.PLAYING),this.dI.set("state",this.C==h.V?b.Ab:b.Ie))};a.prototype.UA=function(d){this.wt!=d&&((this.wt=d)||this.wd(h.V))};a.prototype.wd=function(d){var e=this.C;this.C=d;c.prototype.set.call(this,"state",d);e!=this.C&&(this.iK=!0,this.Xsa(),this.trigger(new m(l.ye,{oldState:e,state:this.C})))};a.prototype.BE=function(){this.wt&&(this.C==h.Qb?this.Qk():this.br())};a.prototype.CE=function(){this.wt&&this.Qk()};a.prototype.FWa=function(){this.wt&&this.Qk()};a.prototype.GWa= 1724function(){this.wt&&this.br()};a.prototype.AA=function(){this.wt&&this.ap()};a.prototype.zA=function(){this.wt&&(this.ap(),this.Qk())};a.prototype.Qk=function(){};a.prototype.br=function(){};a.prototype.ap=function(){};return a}); 1725define("eW",["require","lQ","bn","cI","gD"],function(a){var f=a("lQ"),l=a("bn"),m=a("cI"),k=a("gD"),c=f.extend(k,function(h,g){k.call(this);this.M=h;this.j=g;this.cr=null;this.ua=c.Yh;this.lj=this.Ci=null;this.Rn=this.hh=void 0;this.zca=[]});c.prototype.display=function(h){this.cr=null;if(this.lj!=h||this.ua!=c.Yh)this.cr=h,this.Ava()};c.prototype.hide=function(){this.cr="none";this.Ava()};c.prototype.clear=function(){this.ua=c.Yh;this.cr=null;this.YXa();this.Vda();this.j=null};c.prototype.Ug=function(h){for(;this.zca.length;)this.zca.shift()(); 1726this.ua==c.Yh||this.ua!=c.Fl&&this.ua!=c.Rs&&this.ua!=c.Cv||(this.Rn+=h,h=Math.min(1,this.Rn/this.hh),this.ua==c.Fl?(this.Ci.set("opacity",h),this.M.Od().iM(h)):this.ua==c.Cv?(this.M.Od().iM(h),this.M.Od().LG(h)):(this.M.Od().LG(h),this.lj.set("opacity",1-h)),this.j.Ta(),this.Rn<this.hh?this.Sa():this.Uz())};c.prototype.cT=function(){return this.lj&&this.j.cT(this.lj)||void 0};c.prototype.Ava=function(){this.cr&&this.ua==c.Yh&&this.oq()};c.prototype.oq=function(){this.lj&&this.trigger(new m(c.sC, 1727{model:this.lj}));"fade_out_fade_in"==this.M.get("transitionMode","blending")&&this.lj?this.wz():(this.Ci="none"==this.cr?null:this.cr,this.cr=null,this.Ci?this.lj?this.w8():this.tN():this.lj&&this.wz())};c.prototype.tN=function(){this.ua=c.Fl;this.Ioa();this.j.sIa(this.Ci);this.M.Od().vM();this.Rn=0;this.hh=this.M.get("transitionDuration");this.Sa()};c.prototype.w8=function(){this.ua=c.Cv;this.M.Od().WG();this.Vda();this.Ioa();this.j.sIa(this.Ci);this.M.Od().vM();this.Rn=0;this.hh=2*this.M.get("transitionDuration"); 1728this.Sa()};c.prototype.wz=function(){this.ua=c.Rs;this.Ci=null;this.Rn=0;this.hh=this.M.get("transitionDuration");this.M.Od().WG();this.Sa()};c.prototype.Uz=function(){this.cr!=this.lj&&this.Vda();this.lj=this.Ci;this.Ci=null;this.ua==c.Rs?this.M.Od().RF():this.ua==c.Fl?this.M.Od().$K():this.ua==c.Cv&&(this.M.Od().$K(),this.M.Od().RF());this.ua=c.Yh;this.lj?this.trigger(new m(c.tC,{model:this.lj})):this.cr||this.trigger(new m(c.d6));this.cr&&this.oq()};c.prototype.Sa=function(){l.requestFrame(this.Ug, 1729this)};c.prototype.Ioa=function(){if(this.Ci){this.Ci.set("opacity",this.ua==c.Cv?1:.01);this.Ci.set("currentTime",0);this.j.XAa(this.Ci);this.trigger(new m(c.t6,{model:this.Ci}));var h=this.Ci;this.zca.push(function(){this.trigger(new m(c.uC,{model:h}))}.bind(this))}};c.prototype.Vda=function(){this.lj&&(this.j.kka(this.lj),this.trigger(new m(c.vV,{model:this.lj})),this.lj=null)};c.prototype.YXa=function(){this.Ci&&(this.j.kka(this.Ci),this.trigger(new m(c.vV,{model:this.Ci})),this.Ci=null)};c.Yh= 1730"stopped";c.Fl="blending";c.Cv="double blending";c.Rs="disolving";c.Ob="request frame";c.t6="model added";c.vV="model removed";c.uC="model start";c.tC="model show";c.sC="model hide";c.d6="all pending models hidden";return c}); 1731define("da",["require","lQ","gD","pw"],function(a){var f=a("lQ"),l=a("gD"),m=a("pw");a=f.extend(l,function(k,c){l.call(this);this.M=k;this.j=c;this.Kg=null});a.prototype.clear=function(){this.stop();this.j=null};a.prototype.load=function(k){k!=this.Kg&&(this.stop(),this.j.y6a(k)?(this.Bza(k),this.T0(k)):(this.Kg=k,this.Kg.set("opacity",0),this.DOa(),this.j.XAa(this.Kg)))};a.prototype.stop=function(){this.Kg&&(this.Jfa(),this.j.kka(this.Kg),this.Kg=null)};a.prototype.vJ=function(){this.Fza();this.Bza(this.Kg)}; 1732a.prototype.Cd=function(){this.Kg.Z2(m.MC)&&this.vJ();this.Jfa();var k=this.Kg;this.Kg=null;this.M.set("progressVisible",!1);this.T0(k)};a.prototype.ag=function(){this.Jfa();this.Kg=null;this.M.set("progressVisible",!1)};a.prototype.Ki=function(k){this.M.ra({progressPercent:k.data.percent,progressVisible:!0})};
1732a.prototype.GOa=function(){this.Kg.bind(m.MC,this.vJ,this,!0)};a.prototype.Fza=function(){this.Kg.unbind(m.MC,this.vJ,this,!0)};a.prototype.DOa=function(){this.GOa();this.Kg.bind(m.da,this.Cd, 1733this,!0);this.Kg.bind(m.kc,this.Ki,this,!0);this.Kg.bind(m.xc,this.ag,this,!0)};a.prototype.Jfa=function(){this.Fza();this.Kg.unbind(m.da,this.Cd,this,!0);this.Kg.unbind(m.kc,this.Ki,this,!0);this.Kg.unbind(m.xc,this.ag,this,!0)};a.prototype.Bza=function(k){this.trigger(m.MC,{model:k})};a.prototype.T0=function(k){this.trigger(m.da,{model:k})};a.prototype.x7a=function(){return this.Kg&&this.Kg.Z2(m.MC)};a.wma=m.MC;a.tma=m.da;return a}); 1734define("hw","require lQ pw cI gD lt".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("lt"),h=f.extend(k,function(){k.call(this);this.ia=null;this.C=c.V});h.prototype.start=function(g){this.ia=g;this.ia.bind(l.F("camera"),this.qca,this,!0);this.ia.bind(l.F("state"),this.Pca,this,!0);this.ia.bind(l.F("currentTime"),this.JZ,this,!0);this.ia.bind(l.F("duration"),this.JZ,this,!0);this.Pca();this.qca()};h.prototype.end=function(){this.stop();this.Kb&&(this.Kb.unbind(l.F("state"), 1735this.AP,this,!0),this.Kb=null);this.ia&&(this.ia.unbind(l.F("camera"),this.qca,this,!0),this.ia.unbind(l.F("state"),this.Pca,this,!0),this.ia.unbind(l.F("currentTime"),this.JZ,this,!0),this.ia.unbind(l.F("duration"),this.JZ,this,!0),this.ia=null)};h.prototype.clear=function(){this.end()};h.prototype.play=function(){this.ia&&this.ia.set("state",c.PLAYING)};h.prototype.pause=function(){this.ia&&this.ia.set("state",c.Qb)};h.prototype.stop=function(){this.ia&&this.ia.set("state",c.V)};h.prototype.setTime= 1736function(g){this.ia&&this.ia.set("currentTime",g)};h.prototype.getTime=function(){return this.ia&&this.ia.get("currentTime")||void 0};h.prototype.Pca=function(){var g=this.ia.get("state");this.C!=g&&(this.C=g,this.Kb&&this.Kb.set("state",g),this.trigger(new m(h.Qc,{state:this.C})))};h.prototype.JZ=function(){this.trigger(new m(h.Jj,{model:this.ia,time:this.ia.get("currentTime"),duration:this.ia.get("duration")}));this.AP()};h.prototype.qca=function(){this.Kb&&this.Kb.unbind(l.F("state"),this.AP,this, 1737!0);(this.Kb=this.ia.get("camera"))&&this.Kb.bind(l.F("state"),this.AP,this,!0);this.AP()};h.prototype.AP=function(){0===this.ia.get("duration")&&this.ia.set("state",this.Kb?this.Kb.get("state"):c.V)};h.Qc="playback state change";h.Jj="time change";return h}); 1738define("eh","require lQ lt cI gD eW da hw".split(" "),function(a){var f=a("lQ"),l=a("lt"),m=a("cI"),k=a("gD"),c=a("eW"),h=a("da"),g=a("hw"),b=f.extend(k,function(d,e){k.call(this);this.M=d;this.j=e;this.j.set("visible",!1);this.me=new h(this.M,this.j);this.Oa=new c(this.M,this.j);this.Ma=new g(this.j);this.me.bind(h.wma,this.rva,this,!0);this.me.bind(h.tma,this.Mw,this,!0);
1738this.Oa.bind(c.sC,this.uA,this,!0);this.Oa.bind(c.tC,this.em,this,!0);this.Oa.bind(c.uC,this.NP,this,!0);this.Oa.bind(c.t6,this.ova, 1739this,!0);this.Oa.bind(c.vV,this.sva,this,!0);this.Oa.bind(c.d6,this.oua,this,!0);this.Ma.bind(g.Qc,this.jf,this,!0);this.Ma.bind(g.Jj,this.Xq,this,!0)});b.prototype.clear=function(){this.me.clear();this.Oa.clear();this.Ma.clear();this.me.unbind(h.wma,this.rva,this);this.me.unbind(h.tma,this.Mw,this);this.Oa.unbind(c.sC,this.uA,this);this.Oa.unbind(c.tC,this.em,this);this.Oa.unbind(c.uC,this.NP,this);this.Oa.unbind(c.t6,this.ova,this);this.Oa.unbind(c.vV,this.sva,this);this.Oa.unbind(c.d6,this.oua, 1740this);this.Ma.unbind(g.Qc,this.jf,this);this.Ma.unbind(g.Jj,this.Xq,this);this.M=this.j=this.Ma=this.Oa=this.me=null};b.prototype.R$a=function(d){this.j.set("visible",!0);this.me.load(d)};b.prototype.yy=function(){this.me.x7a()&&this.me.stop();this.Oa.hide();this.Ma.end()};b.prototype.play=function(){this.Ma.play()};b.prototype.stop=function(){this.Ma.stop()};b.prototype.pause=function(){this.Ma.pause()};b.prototype.setTime=function(d){this.Ma.setTime(d)};b.prototype.getTime=function(){return this.Ma.getTime()}; 1741b.prototype.cT=function(){return this.Oa.cT()};b.prototype.rva=function(d){this.Oa.display(d.data.model)};b.prototype.Mw=function(){};b.prototype.ova=function(d){this.Ma.start(d.data.model)};b.prototype.NP=function(d){d=d.data.model;this.j.set("visible",!0);this.trigger(new m(b.uC,{model:d}))};b.prototype.sva=function(){};b.prototype.em=function(d){d=d.data.model;d.get("autoplay")&&d.get("state")!=l.PLAYING&&d.set("state",l.PLAYING);this.trigger(new m(b.tC,{model:d}))};b.prototype.uA=function(d){this.trigger(new m(b.sC, 1742{model:d.data.model}))};b.prototype.oua=function(){this.j.set("visible",!1)};b.prototype.Xq=function(d){this.trigger(new m(b.u6,d.data))};b.prototype.jf=function(d){this.trigger(new m(b.Qc,{state:d.data.state}))};b.tC="modelShow";b.sC="modelHide";b.Ocb="modelEnd";b.uC="modelStart";b.u6="videoTimeChange";b.Qc="playbackStateChange";return b}); 1743define("ey",["require","exports"],function(){return function(){function a(){}a.prototype.clear=function(){};a.sb=function(f){this.id=f+"Component";this.not="!"+this.id};a.Ub=function(f){this.sb(f+"SystemState");this.s3=!0};a.s3=!1;return a}()}); 1744define("fS",["require","exports","ey","three.mod"],function(a,f,l,m){var k;(function(c){var h=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.bias=0;F.pCa=500;F.intensity=1;F.scale=100;F.JEa=25;F.jFa=0;F.kha=4;F.output=null;return F}Z(N,H);return N}(l);c.jH=h;h.sb("AmbientOcclusionEffect");var g=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.color="#ffffff";F.intensity=1;return F}Z(N,H);return N}(l);c.AmbientLight=g;g.sb("AmbientLight");var b=function(H){function N(){var F= 1745null!==H&&H.apply(this,arguments)||this;F.light=null;return F}Z(N,H);return N}(l);c.Qy=b;b.Ub("AmbientLight");var d=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.properties=null;return F}Z(N,H);return N}(l);c.Animation=d;d.sb("Animation");var e=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Su=e;e.Ub("Animation");var n=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.UCa=!1;F.lJa= 1746!1;F.NU=2;return F}Z(N,H);return N}(l);c.lC=n;n.sb("AntialiasEffect");var q=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.u=[];F.renderOrder=null;F.N=null;return F}Z(N,H);return N}(l);c.Rm=q;q.sb("Area");var p=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.u=[];return F}Z(N,H);return N}(l);c.Ry=p;p.Ub("Area");var r=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.M1=[];return F}Z(N,H);return N}(l);c.mC=r;r.Ub("AreaPoint"); 1747var t=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.Vy=t;t.sb("Beacon");var u=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.position=null;return F}Z(N,H);return N}(l);c.Wy=u;u.Ub("Beacon");var v=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.N=null;return F}Z(N,H);return N}(l);c.io=v;v.sb("BeaconTracker");var w=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.position=null; 1748return F}Z(N,H);return N}(l);c.Wu=w;w.Ub("BeaconTracker");var x=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.zg=null;F.EHa=null;F.wB=!0;F.enabled=!0;F.locked=!1;F.VK=!0;F.fg=void 0;F.qk=0;return F}Z(N,H);return N}(l);c.Kcb=x;var y=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.La=null;F.rotate=!1;return F}Z(N,H);return N}(l);c.pH=y;y.sb("CameraOffsetTransform");var z=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.La=null; 1749return F}Z(N,H);return N}(l);c.YKa=z;z.Ub("CameraOffsetTransform");var B=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.properties=null;return F}Z(N,H);return N}(l);c.qH=B;B.sb("CameraSequence");var E=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Xu=E;E.Ub("CameraSequence");var I=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.source=null;F.uM=null;F.opacity=1;F.isSprite=!1;F.hidden= 1750!1;F.depthTest=!0;return F}Z(N,H);return N}(l);c.gg=I;I.sb("CanvasMaterial");var A=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Xy=A;A.Ub("CanvasMaterial");var C=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.PM=C;C.sb("Data");var J=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.target=null;return F}Z(N,H);return N}(l);c.DirectionalLight=J;J.sb("DirectionalLight"); 1751var D=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.Xn=null;return F}Z(N,H);return N}(l);c.Np=D;D.Ub("DirectionalLight");var O=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.N=null;F.direction=null;F.min=null;return F}Z(N,H);return N}(l);c.av=O;O.sb("Draggable");var R=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.Oha=null;return F}Z(N,H);return N}(l);c.Yy=R;R.Ub("Draggable");var U=function(H){function N(){return null!== 1752H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.Tm=U;U.sb("Dragging");var V=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(x);c.EC=V;V.sb("FirstPersonControls");var W=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Bs=W;W.Ub("FirstPersonControls");var K=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.color="#ffffff";F.opacity=1;F.height=0;F.radius=1;F.renderOrder= 17530;return F}Z(N,H);return N}(l);c.Wp=K;K.sb("Floor");var M=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.floor=null;return F}Z(N,H);return N}(l);c.ev=M;M.Ub("Floor");var S=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.distance=0;F.sT=!1;F.x=0;F.y=0;F.z=0;return F}Z(N,H);return N}(l);c.fv=S;S.sb("FloorTransform");var X=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Cs=X;X.Ub("FloorTransform"); 1754var ba=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(x);c.FC=ba;ba.sb("FlyOverControls");var da=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.gv=da;da.Ub("FlyOverControls");var ea=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.geometry=null;return F}Z(N,H);return N}(l);c.Geometry=ea;ea.sb("Geometry");var G=function(H){function N(){var F=null!==H&&H.apply(this, 1755arguments)||this;F.IBa="#ffffff";F.depthTest=!0;F.c2=10;F.ODa="#ffffff";F.size=10;return F}Z(N,H);return N}(l);c.Ds=G;G.sb("Grid");var P=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.grid=null;return F}Z(N,H);return N}(l);c.dz=P;P.Ub("Grid");var T=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.group=null;return F}Z(N,H);return N}(l);c.Group=T;T.sb("Group");var L=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.group=null; 1756return F}Z(N,H);return N}(l);c.vH=L;L.Ub("Group");var Q=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.properties=null;F.Kia=null;F.N=null;F.vp=null;F.priority=void 0;F.isSprite=!1;return F}Z(N,H);return N}(l);c.Vm=Q;Q.sb("ImageMaterial");var Y=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.ez=Y;Y.Ub("ImageMaterial");var aa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.AHa=7; 1757F.intensity=1;return F}Z(N,H);return N}(l);c.UM=aa;aa.sb("MotionBlurEffect");var ca=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.line=null;F.renderOrder=0;return F}Z(N,H);return N}(l);c.Line=ca;ca.sb("Line");var fa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.line=null;return F}Z(N,H);return N}(l);c.hz=fa;fa.Ub("Line");var ha=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.color="#ffffff";F.opacity=1;F.width=1;F.transparent= 1758!0;F.depthTest=!0;return F}Z(N,H);return N}(l);c.th=ha;ha.sb("LineMaterial");var ia=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.gz=ia;ia.Ub("LineMaterial");var ja=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.G=null;F.position=null;return F}Z(N,H);return N}(l);c.Es=ja;ja.sb("LineToTransform");var ka=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.iz=ka; 1759ka.Ub("LineToTransform");var la=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.material=null;return F}Z(N,H);return N}(l);c.Material=la;la.sb("Material");var ma=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.name=null;return F}Z(N,H);return N}(l);c.kv=ma;ma.sb("MaterialVariant");var na=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.$p=na;na.Ub("MaterialVariant");var oa=function(H){function N(){var F= 1760null!==H&&H.apply(this,arguments)||this;F.xp=null;F.renderOrder=0;return F}Z(N,H);return N}(l);c.Mesh=oa;oa.sb("Mesh");var pa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.xp=null;return F}Z(N,H);return N}(l);c.Hs=pa;pa.Ub("Mesh");var qa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.properties=null;F.sja=null;F.WGa=null;F.vp=null;F.N=null;F.Cia=null;F.vc=null;return F}Z(N,H);return N}(l);c.Vh=qa;qa.sb("Model");var ra=function(H){function N(){var F= 1761null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.lv=ra;ra.Ub("Model");var sa=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.JC=sa;sa.sb("NotCollidable");var ta=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.aMa=ta;ta.Ub("NotCollidable");var ua=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.Ola=!0;F.Pla=!0;return F}Z(N,H);return N}(l);c.aq=ua; 1762ua.sb("NotSelectable");var va=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.KC=va;va.Ub("NotSelectable");var wa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.qa=null;return F}Z(N,H);return N}(l);c.Object3D=wa;wa.sb("Object3D");var xa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.id=null;F.container=null;return F}Z(N,H);return N}(l);c.BH=xa;xa.sb("Object3DId");var ya=function(H){function N(){var F= 1763null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.mv=ya;ya.Ub("Object3DId");var za=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.kS=void 0;F.castShadow=void 0;F.receiveShadow=void 0;F.opacity=1;F.rS=void 0;F.N=null;return F}Z(N,H);return N}(l);c.Wh=za;za.sb("ObjectTransform");var Aa=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.jz=Aa;Aa.Ub("ObjectTransform");var Ba=function(H){function N(){return null!== 1764H&&H.apply(this,arguments)||this}Z(N,H);return N}(x);c.LC=Ba;Ba.sb("OrbitControls");var Ca=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.nv=Ca;Ca.Ub("OrbitControls");var Da=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.width=100;F.height=100;return F}Z(N,H);return N}(l);
1764c.OrthographicCamera=Da;Da.sb("OrthographicCamera");var Ea=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.camera= 1765null;F.width=void 0;F.height=void 0;return F}Z(N,H);return N}(l);c.Is=Ea;Ea.Ub("OrthographicCamera");var Fa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.G=null;F.attach=!1;F.id=null;return F}Z(N,H);return N}(l);c.mb=Fa;Fa.sb("Parent");var Ga=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.parent=null;F.Md=null;F.id=void 0;F.attach=!1;return F}Z(N,H);return N}(l);c.Js=Ga;Ga.Ub("Parent");var Ha=function(H){function N(){var F=null!==H&&H.apply(this, 1766arguments)||this;F.width=100;F.height=100;F.fov=75;F.near=.01;F.far=100;F.lBa=!1;F.mBa=0;F.ll=!1;return F}Z(N,H);return N}(l);c.PerspectiveCamera=Ha;Ha.sb("PerspectiveCamera");var Ia=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.camera=null;F.rk=null;F.scene=null;F.boundingBox=null;F.lha=null;F.n4=!1;F.width=void 0;F.height=void 0;F.fov=void 0;F.near=void 0;F.far=void 0;return F}Z(N,H);return N}(l);c.Lj=Ia;Ia.Ub("PerspectiveCamera");var Ja=function(H){function N(){var F= 1767null!==H&&H.apply(this,arguments)||this;F.qf=1;F.Ff=1;F.nh=1;F.scale=1;F.zB=void 0;F.AB=void 0;return F}Z(N,H);return N}(l);c.Mj=Ja;Ja.sb("PixelScaleTransform");var Ka=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.NC=Ka;Ka.Ub("PixelScaleTransform");var La=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.renderOrder=null;return F}Z(N,H);return N}(l);c.Plane=La;La.sb("Plane");var Ma=function(H){function N(){var F=null!==H&&H.apply(this, 1768arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.ov=Ma;Ma.Ub("Plane");var Na=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.La=null;F.N=null;F.matrixWorld=null;F.origin=new m.Vector3;F.direction=new m.Vector3;F.Wb=new m.Vector2;F.bH=!1;F.UBa=!1;F.Zi=!1;F.enabled=!0;return F}Z(N,H);return N}(l);c.Cc=Na;Na.sb("Pointer");var Oa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.G=null;F.rotate=!0;F.N=null;return F}Z(N,H);return N}(l);c.wk= 1769Oa;Oa.sb("PointerOverTransform");var Pa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Ks=Pa;Pa.Ub("PointerOverTransform");var Qa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.pv=Qa;Qa.Ub("PointerDragging");var Ra=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.qv=Ra;Ra.Ub("PointerSelection"); 1770var Sa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.bC=null;F.KU=null;F.RU=null;return F}Z(N,H);return N}(l);c.Wm=Sa;Sa.sb("ProjectedMaterial");var Ta=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.bC=null;F.qa=null;F.rM=null;F.ly=null;F.material=null;F.LL=null;return F}Z(N,H);return N}(l);c.bq=Ta;Ta.Ub("ProjectedMaterial");var Ua=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.vc=null;F.renderer=null;F.oU=[];return F} 1771Z(N,H);return N}(l);c.zi=Ua;Ua.sb("Renderer");var Va=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Ls=Va;Va.Ub("Renderer");var Wa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.opacity=1;F.locked=!1;F.enabled=!0;F.scene=null;F.La=null;F.backgroundColor=null;F.eha=null;F.nBa=null;F.i2=1;F.xCa=null;F.Uha=null;F.NCa=null;F.OCa=0;F.LS=0;F.outputEncoding=null;F.q4=1;F.N=null;return F}Z(N,H);return N}(l);c.Scene= 1772Wa;Wa.sb("Scene");var Xa=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.scene=null;F.manager=null;return F}Z(N,H);return N}(l);c.lo=Xa;Xa.Ub("Scene");var Ya=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.N=null;F.zM=!1;F.Nx=!0;F.xy=!1;F.eH=!1;return F}Z(N,H);return N}(l);c.Qd=Ya;Ya.sb("Selectable");var Za=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.OC=Za;Za.Ub("Selectable");var $a=function(H){function N(){var F= 1773null!==H&&H.apply(this,arguments)||this;F.color="#ffffff";F.opacity=1;F.depthTest=!0;F.doubleSided=!1;return F}Z(N,H);return N}(l);c.kd=$a;$a.sb("SolidMaterial");var ab=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.sv=ab;ab.Ub("SolidMaterial");var bb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.radius=1;F.widthSegments=32;F.heightSegments=16;F.renderOrder=0;return F}Z(N,H);return N}(l);c.Sphere=bb;bb.sb("Sphere"); 1774var cb=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.PC=cb;cb.Ub("Sphere");var db=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.SpotLight=db;db.sb("SpotLight");var eb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.light=null;F.Xn=null;return F}Z(N,H);return N}(l);c.Ns=eb;eb.Ub("SpotLight");var fb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.KK=.5;F.LK= 1775.5;F.height=100;F.width=100;F.scale=1;F.sizeAttenuation=!1;F.Nh=null;F.renderOrder=0;return F}Z(N,H);return N}(l);c.Sprite=fb;fb.sb("Sprite");var gb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Os=gb;
1775gb.Ub("Sprite");var hb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.Kx=!1;F.positionX=0;F.positionY=0;F.positionZ=0;F.Pd=0;F.ud=0;F.Fe=0;F.Ee="XYZ";F.scale=1;F.qf=1;F.Ff=1;F.nh=1;F.translationX=0;F.translationY= 17760;F.He=0;F.easing=0;F.N=null;return F}Z(N,H);return N}(l);c.va=hb;hb.sb("Transform");var ib=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.Kx=!1;F.positionX=0;F.positionY=0;F.positionZ=0;F.Pd=0;F.ud=0;F.Fe=0;F.Ee="XYZ";F.scale=1;F.qf=1;F.Ff=1;F.nh=1;F.translationX=0;F.translationY=0;F.He=0;return F}Z(N,H);return N}(l);c.Wf=ib;ib.Ub("Transform");var jb=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.SC=jb;jb.Ub("TransformEasing"); 1777var kb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.translate=!0;F.rotate=!0;F.scale=!0;F.N=null;return F}Z(N,H);return N}(l);c.Wg=kb;kb.sb("TransformControls");var lb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.v5=null;F.Hu=null;F.ty=null;return F}Z(N,H);return N}(l);c.El=lb;lb.Ub("TransformControls");var mb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.fg=void 0;return F}Z(N,H);return N}(x);c.vv=mb;mb.sb("TransitionControls"); 1778var nb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.Qs=nb;nb.Ub("TransitionControlsSystemState");var ob=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.properties=null;F.$la=null;F.N=null;return F}Z(N,H);return N}(l);c.oo=ob;ob.sb("VideoMaterial");var pb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.nz=pb;pb.Ub("VideoMaterial");var qb= 1779function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.La=null;F.width=null;F.height=null;return F}Z(N,H);return N}(l);c.Xm=qb;qb.sb("Viewport");var rb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.La=null;F.properties=null;return F}Z(N,H);return N}(l);c.oz=rb;rb.sb("ViewportPlaneGeometry");var sb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.geometry=null;F.bJa=void 0;F.$Ia=void 0;F.jEa=void 0;F.verticalAlign=void 0;F.BHa=void 0; 1780F.zIndex=void 0;return F}Z(N,H);return N}(l);c.xv=sb;sb.Ub("ViewportPlaneGeometry");var tb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.zGa=1;F.rEa=.5;F.color="#000000";F.opacity=.5;return F}Z(N,H);return N}(l);c.GH=tb;tb.sb("VignetteEffect");var ub=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(l);c.xk=ub;ub.Ub("XRPerspectiveCamera");var vb=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(x); 1781c.IH=vb;vb.sb("XRDragControls");var wb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.iq=wb;wb.Ub("XRDragControlsSystemState");var xb=function(H){function N(){return null!==H&&H.apply(this,arguments)||this}Z(N,H);return N}(x);c.JH=xb;xb.sb("XRFlyControls");var yb=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.jq=yb;yb.Ub("XRFlyControlsSystemState");var zb=function(H){function N(){return null!== 1782H&&H.apply(this,arguments)||this}Z(N,H);return N}(x);c.KH=zb;zb.sb("XRTeleportControls");var Ab=function(H){function N(){var F=null!==H&&H.apply(this,arguments)||this;F.manager=null;return F}Z(N,H);return N}(l);c.kq=Ab;Ab.Ub("XRTeleportControlsSystemState")})(k||(k={}));return k}); 1783define("kG",["require","jquery.mod","w"],function(a){function f(){this.xa=l("<div/>");this.xa.css({position:"absolute",left:0,top:0,right:0,bottom:0,"z-index":0,"pointer-events":"none","background-color":"#ffffff"});this.xa.hide()}var l=a("jquery.mod"),m=a("w");f.prototype.gd=function(){return this.xa};f.prototype.trigger=function(){m.browser()!=m.rh&&this.xa.fadeIn(100).fadeOut(100)};return f}); 1784define("mA",["require","exports"],function(){return function(){function a(f,l){this.P=f;this.tag=l||"Entity";this.id=this.tag+"_"+a.JT++;this.components={};this.fU={};this.yla=0}a.prototype.getComponent=function(f){return this.components[f.id]};a.prototype.J=function(f,l){void 0===l&&(l=!1);var m=this.components[f.id];m?this.P.E3a(this,f):l&&(m=this.I(f));return m};a.prototype.I=function(f){if(f.id in this.components)return this.components[f.id];f.s3&&this.yla++;var l=this.components[f.id]=new f; 1785this.P.N2a(this,f);return l};a.prototype.ha=function(f){var l;void 0===l&&(l=!1);f.id in this.components&&(f.s3&&this.yla--,l?this.components[f.id].clear():this.fU[f.id]=this.components[f.id],delete this.components[f.id],this.P.oHa(this,f,l))};a.prototype.I3a=function(){for(var f in this.fU)this.fU[f].clear(),delete this.fU[f]};a.prototype.d9a=function(){for(var f in this.components){var l=this.components[f].constructor;l.s3||(this.fU[f]=this.components[f],delete this.components[f],this.P.oHa(this, 1786l,!1))}};a.JT=0;return a}()});define("ci",["require","exports"],function(){return function(){function a(){this.id=a.KVa++;this.u=[]}a.KVa=0;return a}()});define("ln",["require","exports"],function(){return function(){function a(f,l){this.id=a.JT++;this.name=l;this.u=f.u;this.Kd=f.u.slice();this.Ea=[];this.og=[]}a.prototype.F3a=function(){this.Kd.length&&(this.Kd=[]);this.Ea.length&&(this.Ea=[]);this.og.length&&(this.og=[])};a.JT=0;return a}()}); 1787define("bv",["require","exports","ci","ln"],function(a,f,l,m){function k(g){return"string"==typeof g?g:g.id}function c(g,b){0>g.indexOf(b)&&g.push(b);return g}function h(g,b){b=g.indexOf(b);0<=b&&g.splice(b,1);return g}return function(){function g(){this.H6a={};this.H={};this.CG={};this.aL={};this.Ux={};this.AG={};this.yS={};this.zG={}}g.prototype.la=function(b){this.yS[b.id]={};this.yS[b.not]={}};g.prototype.i4a=function(b,d){b=this.DTa(b);d=new m(b,d);this.CG[b.id].push(d);return d};g.prototype.DTa= 1788function(b){var d=this.Y5a(b);
1788if(d=this.H6a[d])return d;d=new l;this.H[d.id]=d;b=b.map(k);this.zG[d.id]={};for(var e=0;e<b.length;e++){var n=b[e];this.zG[d.id][n]=!0;this.yS[n][d.id]=!0}this.AG[d.id]={};this.CG[d.id]=[];return d};g.prototype.Y5a=function(b){b=b.map(k);b.sort();return b.join("-")};g.prototype.Z7a=function(b){this.aL[b.id]={};this.Ux[b.id]={}};g.prototype.$7a=function(b){delete this.aL[b.id];delete this.Ux[b.id]};g.prototype.U7a=function(b,d){var e=d.id,n=d.not;d=b.id;this.aL[d][e]= 1789!0;for(var q in this.Ux[d])if(n in this.zG[q]){delete this.AG[q][d];delete this.Ux[d][q];h(this.H[q].u,b);for(var p=this.CG[q],r=0,t=p.length;r<t;r++){var u=p[r];c(u.og,b);h(u.Kd,b);h(u.Ea,b)}}for(q in this.yS[e])if(!(d in this.AG[q])){e=!0;for(var v in this.zG[q])if(n="!"!=v[0],(n?v:v.slice(1))in this.aL[d]!=n){e=!1;break}if(e)for(this.AG[q][d]=!0,this.Ux[d][q]=!0,c(this.H[q].u,b),p=this.CG[q],r=0,t=p.length;r<t;r++)u=p[r],c(u.Kd,b),h(u.og,b),h(u.Ea,b)}};g.prototype.W7a=function(b,d){var e=d.id, 1790n="!"+e;d=b.id;delete this.aL[d][e];for(var q in this.Ux[d])if(e in this.zG[q]){delete this.AG[q][d];delete this.Ux[d][q];h(this.H[q].u,b);for(var p=this.CG[q],r=0,t=p.length;r<t;r++){var u=p[r];c(u.og,b);h(u.Kd,b);h(u.Ea,b)}}for(q in this.yS[n])if(!(d in this.AG[q])){e=!0;for(var v in this.zG[q])if(n="!"!=v[0],(n?v:v.slice(1))in this.aL[d]!=n){e=!1;break}if(e)for(this.AG[q][d]=!0,this.Ux[d][q]=!0,this.H[q].u.push(b),p=this.CG[q],r=0,t=p.length;r<t;r++)u=p[r],c(u.Kd,b),h(u.og,b),h(u.Ea,b)}};g.prototype.V7a= 1791function(b,d){d=d.id;var e=b.id,n;for(n in this.Ux[e])if(d in this.zG[n]){e=this.CG[n];for(var q=0,p=e.length;q<p;q++)c(e[q].Ea,b)}};return g}()}); 1792define("lI",["require","exports","bn","mA","bv"],function(a,f,l,m,k){return function(){function c(h){this.enabled=!0;this.u={};this.CS=[];this.components={};this.QU=[];this.BG=new k;this.h2=[];this.Wja=!1;this.r4=h}c.prototype.K4=function(h){this.V4a=h};c.prototype.pp=function(){return this.r4};c.prototype.la=function(h){this.components[h.id]=h;this.BG.la(h);return this};c.prototype.$c=function(h,g){var b=(new h).initialize(this,g,this.QU.length);this.QU.push(b);for(var d in h.H)b[d]=this.BG.i4a(h.H[d], 1793g+"."+d);this.QU.sort(function(e,n){return e.order-n.order});return this};c.prototype.Pc=function(h){h=new m(this,h);this.u[h.id]=h;this.BG.Z7a(h);this.Ta();return h};c.prototype.Nd=function(h){h.id in this.u&&(delete this.u[h.id],this.CS.push(h),h.d9a(),this.Ta())};c.prototype.N2a=function(h,g){this.BG.U7a(h,g);this.Ta()};c.prototype.oHa=function(h,g,b){this.BG.W7a(h,g);b||this.h2.push(h);this.Ta()};c.prototype.E3a=function(h,g){this.BG.V7a(h,g);this.Ta()};c.prototype.qb=function(h){this.enabled= 1794h;this.Ta()};c.prototype.Ta=function(){this.enabled&&!this.Wja&&(this.Wja=!0,l.requestFrame(this.update,this,this.V4a))};c.prototype.update=function(h){h=h||0;this.Wja=!1;if(this.enabled){for(var g=(new Date).getTime(),b=0;b<this.QU.length;b++){var d=this.QU[b];d.Tc(h,g);for(var e in d.constructor.H)d[e].F3a()}for(b=0;b<this.h2.length;b++)this.h2[b].I3a();this.h2.length=0;for(b=this.CS.length-1;0<=b;b--)0==this.CS[b].yla&&(this.BG.$7a(this.CS[b]),this.CS.splice(b,1))}};return c}()}); 1795define("ma",["require","exports"],function(){return function(){function a(){this.order=0;this.P=null;this.name=""}a.prototype.initialize=function(f,l,m){void 0===m&&(m=0);this.P=f;this.name=l;this.order=m;return this};a.prototype.Tc=function(){};return a}()}); 1796define("cQ","require exports three.mod ol fS ma".split(" "),function(a,f,l,m,k,c){a=function(h){function g(){var b=h.call(this)||this;b.Vb=b.Vb.bind(b);b.Ib=b.Ib.bind(b);b.xf=b.xf.bind(b);b.jb=b.jb.bind(b);return b}Z(g,h);g.prototype.Tc=function(){this.xB.u.length&&this.xB.u.slice().forEach(this.Vb);this.yB.u.length&&this.yB.u.slice().forEach(this.jb);this.Lh.Ea.length&&this.Lh.Ea.slice().forEach(this.Ib);this.Lh.u.length&&this.Lh.u.slice().forEach(this.xf)};g.prototype.Vb=function(b){var d=b.I(k.Qy), 1797e=b.I(k.Object3D);d.light=e.qa=new l.AmbientLight;this.Ib(b)};g.prototype.Ib=function(b){var d=b.getComponent(k.AmbientLight);b=b.getComponent(k.Qy).light;b.color=m.Ip(d.color).convertLinearToSRGB();b.intensity=d.intensity*Math.PI;b.visible=0<b.intensity};g.prototype.xf=function(){};g.prototype.jb=function(b){var d=b.getComponent(k.Qy).light;d.parent&&d.parent.remove(d);b.ha(k.Qy);b.ha(k.Object3D)};g.H={};return g}(c);a.H={};a.H.xB=[k.AmbientLight,k.Qy.not];a.H.Lh=[k.AmbientLight,k.Qy];a.H.yB=[k.AmbientLight.not, 1798k.Qy];return a}); 1799define("cm",["require","pw","lt"],function(a){function f(k,c,h,g,b){this.o=k;this.oe=c;this.pg=h;this.zk=g;this.Ga=b;this.j0()}var l=a("pw"),m=a("lt");f.prototype.getAnimations=function(){return this.pg};f.prototype.US=function(){return this.zk};f.prototype.frame=function(k){this.C==m.PLAYING&&(this.It(this.vh.time+k/1E3),this.Ga())};f.prototype.dispose=function(){this.K0();this.pz=this.bD=this.vh=this.Ga=this.zk=this.pg=this.oe=this.o=null};f.prototype.j0=function(){this.vh=new THREE.AnimationMixer(this.oe);this.Xb= 18000;this.Bb=!1;this.bD=[];this.pz=[];for(var k=0;k<this.pg.length;k++){var c=this.pg[k],h="alternate"==c.get("animationDirection"),g=this.Xb;this.Xb+=this.zk[k].duration*(h?2:1);this.pz.push({start:g,end:this.Xb});g=this.vh.clipAction(this.zk[k]);
1800h?g.setLoop(THREE.LoopPingPong,2):g.setLoop(THREE.LoopOnce,1);this.bD.push(g);c.set("state",m.V);c.set("currentTime",0);c.set("duration",this.zk[k].duration)}this.C=m.V;this.Gl=void 0;this.o.bind(l.F("state"),this.Mi,this,!0);this.o.bind(l.F("currentTime"), 1801this.sE,this,!0);this.o.bind(l.F("animationDirection"),this.Jua,this,!0);this.o.set("duration",this.Xb);this.It(0);this.o.get("autoplay")&&this.o.set("state",m.PLAYING)};f.prototype.K0=function(){this.o.unbind(l.F("state"),this.Mi,this,!0);this.o.unbind(l.F("currentTime"),this.sE,this,!0);this.o.unbind(l.F("animationDirection"),this.Jua,this,!0);this.o.set("state",m.V);for(var k=0;k<this.pg.length;k++)this.bD[k].stop(),this.vh.uncacheClip(this.zk[k]),this.pg[k].set("state",m.V),this.pg[k].set("currentTime", 18020);this.o.set("duration",void 0);this.o.set("currentTime",void 0)};f.prototype.Jua=function(){this.K0();this.j0()};f.prototype.Mi=function(){var k=this.o.get("state");this.C!=k&&(this.C==m.V?k==m.Qb?this.o.set("state",m.V):k==m.PLAYING&&(this.C=m.PLAYING,this.Bb=!1,this.It(0),this.Ga()):this.C==m.PLAYING?k==m.V?(this.C=m.V,this.Bb&&"last"==this.o.get("finalFrame")?this.It(this.Xb):this.It(0)):k==m.Qb&&(this.C=m.Qb):this.C==m.Qb&&(k==m.PLAYING?(this.C=m.PLAYING,this.Ga()):k==m.V&&(this.C=m.V,this.It(0))), 1803void 0!==this.Gl&&this.pg[this.Gl].set("state",this.C),this.o.set("state",this.C))};f.prototype.sE=function(){var k=this.o.get("currentTime");this.vh.time!=k&&(this.C!=m.V&&this.It(k),this.o.set("currentTime",this.vh.time))};f.prototype.It=function(k){if(this.vh.time!=k||void 0===this.Gl)if(k>this.Xb)this.o.get("loop")?this.o.set("currentTime",k%this.Xb):(this.Bb=!0,this.o.trigger(l.Gb),this.o.set("state",m.V));else{for(var c=this.Gl||0;k>this.pz[c].end;)c++;for(;k<this.pz[c].start;)c--;if(this.Gl!== 1804c){for(var h=this.Gl||0;h<c;h++){var g=this.pg[h],b=this.bD[h],d=this.pz[h];"last"==g.get("finalFrame")&&"normal"==g.get("animationDirection")?(b.reset(),b.startAt(d.start),g.set("currentTime",g.get("duration")),b.clampWhenFinished=!0,b.play()):(g.set("currentTime",0),b.stop(),b.clampWhenFinished=!1);g.set("state",m.V)}g=this.pg[c];b=this.bD[c];d=this.pz[c];b.reset();b.startAt(d.start);b.clampWhenFinished="last"==g.get("finalFrame")&&"normal"==g.get("animationDirection");b.play();for(h=this.Gl||0;h> 1805c;h--)g=this.pg[h],b=this.bD[h],g.set("currentTime",0),b.stop();this.Gl=c}else b=this.bD[this.Gl],k<this.vh.time&&(b.reset(),b.startAt(this.pz[this.Gl].start)),b.paused=!1;this.vh.update(k-this.vh.time);g=this.pg[this.Gl];g.set("state",this.C);k=this.vh.time-this.pz[this.Gl].start;g=g.get("duration");c=k>g;this.pg[this.Gl].set("currentTime",c?2*g-k:k);this.pg[this.Gl].set("currentDirection",c?"backward":"forward");this.o.set("currentTime",this.vh.time);this.Ga()}};return f}); 1806define("kb",["require","pw","lt"],function(a){function f(k,c,h,g,b){this.o=k;this.oe=c;this.pg=h;this.zk=g;this.Ga=b;this.Eca=this.Eca.bind(this);this.yca=this.yca.bind(this);this.j0()}var l=a("pw"),m=a("lt");f.prototype.dispose=function(){this.K0();this.Ga=this.zk=this.pg=this.oe=this.o=null};f.prototype.getAnimations=function(){return this.pg};f.prototype.US=function(){return this.zk};f.prototype.frame=function(k){0<this.Fv.length&&(this.vh.update(k/1E3),this.Fv.forEach(function(c){this.Voa(c)}.bind(this)), 1807this.Ga())};f.prototype.j0=function(){this.vh=new THREE.AnimationMixer(this.oe);this.vh.addEventListener("loop",this.Eca);this.vh.addEventListener("finished",this.yca);this.Ev=new Map;this.dW=new Map;this.Fv=[];for(var k=0;k<this.pg.length;k++){var c=this.pg[k],h=this.zk[k];this.dW.set(c,h);var g=this.vh.clipAction(h);this.Ev.set(c,g);c.set("duration",h.duration);c.set("currentTime",c.get("currentTime")||0);c.set("currentDirection","forward");c.bind(l.F("state"),this.xua,this,!0);c.bind(l.F("animationDirection"), 1808this.uua,this,!0);c.bind(l.F("currentTime"),this.tua,this,!0);c.bind(l.F("currentDirection"),this.sua,this,!0);c.bind(l.F("loop"),this.wua,this,!0);c.bind(l.F("finalFrame"),this.vua,this,!0);this.pK(c);this.Iza(c)}this.Ga()};f.prototype.K0=function(){for(var k=0;k<this.pg.length;k++){var c=this.pg[k];c.unbind(l.F("state"),this.xua,this,!0);c.unbind(l.F("animationDirection"),this.uua,this,!0);c.unbind(l.F("currentTime"),this.tua,this,!0);c.unbind(l.F("currentDirection"),this.sua,this,!0);c.unbind(l.F("loop"), 1809this.wua,this,!0);c.unbind(l.F("finalFrame"),this.vua,this,!0);this.Ev.get(c).stop();this.Ev["delete"](c);this.vh.uncacheClip(this.dW.get(c));this.dW["delete"](c);this.pg[k].set("state",m.V);this.pg[k].set("currentTime",0)}this.vh=this.dW=this.Ev=null};f.prototype.Eca=function(k){this.Ev.forEach(function(c,h){k.action==c&&h.get("loop")&&h.trigger(l.cq)})};f.prototype.yca=function(k){this.Ev.forEach(function(c,h){k.action==c&&(this.Voa(h),h.set("state",m.V),"alternate"==h.get("animationDirection")&& 1810h.set("currentDirection","forward"==h.get("currentDirection")?"backward":"forward"),h.trigger(l.Gb))}.bind(this))};f.prototype.uua=function(k){this.pK(k.source)};f.prototype.wua=function(k){this.pK(k.source)};f.prototype.vua=function(k){this.pK(k.source)};f.prototype.sua=function(k){this.pK(k.source)};f.prototype.tua=function(k){this.pK(k.source)};f.prototype.Voa=function(k){this.Toa=!0;var c=this.Ev.get(k),h="alternate"==k.get("animationDirection");h=0<c._loopCount&&1==c._loopCount%2&&h;k.set("currentDirection", 1811h?"backward":"forward");c=c.time;var g=k.get("duration");h?k.set("currentTime",g-c):k.set("currentTime",c);this.Toa=!1};f.prototype.pK=function(k){if(!this.Toa){var c=this.Ev.get(k),h="alternate"==k.get("animationDirection"),g="backward"==k.get("currentDirection")&&h,b=k.get("loop"),d="last"==k.get("finalFrame"),e=k.get("currentTime");k=k.get("duration");
1811b?(c.loop=h?THREE.LoopPingPong:THREE.LoopRepeat,c.repetitions=Infinity,c.clampWhenFinished=!1):g?(c.loop=THREE.LoopPingPong,c.repetitions=2,c.clampWhenFinished= 1812!1):(c.loop=THREE.LoopOnce,c.repetitions=1,c.clampWhenFinished=d||h);h=!h||-1!=c._loopCount&&0!=c._loopCount%2?h&&1==c._loopCount%2?k-e:e:g?k+k-e:e;c.time!=h&&(c.time=h,c.paused&&c.enabled&&0==h&&c.stop());this.Ga()}};f.prototype.xua=function(k){this.Iza(k.source)};f.prototype.Iza=function(k){var c=this.Ev.get(k),h=k.get("state");var g=0<=this.Fv.indexOf(k)?m.PLAYING:c.paused&&c.enabled&&c.time<k.get("duration")?m.Qb:m.V;g!=h&&(g==m.PLAYING?h==m.Qb?(this.Fv.splice(this.Fv.indexOf(k),1),c.paused=!0): 1813h==m.V&&(this.Fv.splice(this.Fv.indexOf(k),1),!c.paused&&c.enabled&&c.stop()):g==m.Qb?h==m.PLAYING?(this.Fv.push(k),c.paused=!1):h==m.V&&c.stop():g==m.V&&(h==m.PLAYING?(this.Fv.push(k),c.paused&&c.enabled&&"alternate"==k.get("animationDirection")&&"backward"==k.get("currentDirection")?c.paused=!1:(c.reset(),c.play(),c.fadeIn(.1))):h==m.Qb&&(c.play(),c.paused=!0,this.vh.update(0))),k.set("state",h),this.Ga())};return f}); 1814define("lv",["require","exports"],function(){return function(){function a(){}a.Cm=function(f,l,m){return this.KF(f,l,m)};a.Kp=function(f,l,m){return this.KF(f,m,l)};a.KF=function(f,l,m){return 2*Math.atan(m*Math.tan(f*this.QC*.5)/l)*this.FMa};a.FMa=180/Math.PI;a.QC=Math.PI/180;return a}()}); 1815define("cv",["require","exports","fS","lv","three.mod"],function(a,f,l,m,k){return function(){function c(){}c.Uc=function(h){return h?h.isObject3D?h:(h=h.getComponent(l.Object3D))?h.qa:null:null};c.getWorldPosition=function(h,g){g=g||new k.Vector3;h=this.Uc(h);if(!h)return null;g.setFromMatrixPosition(h.matrixWorld);return g};c.CU=function(h,g){(h=h.getComponent(l.Object3D))&&null!==h.qa&&(h=h.qa,h.matrixAutoUpdate=!1,h.matrixWorldNeedsUpdate=!1,g.Kx&&h.parent?(h.parent.updateWorldMatrix(!0,!1),h.matrix.copy(h.parent.matrixWorld).invert()): 1816h.matrix.identity(),h.matrix.multiply(this.D3.makeTranslation(g.translationX,g.translationY,g.He)),h.matrix.multiply(this.D3.makeRotationFromEuler(this.G4a.set(g.Pd*this.QC,g.ud*this.QC,g.Fe*this.QC,g.Ee))),h.matrix.multiply(this.D3.makeTranslation(g.positionX,g.positionY,g.positionZ)),h.matrix.multiply(this.D3.makeScale(g.scale*g.qf,g.scale*g.Ff,g.scale*g.nh)),h.updateMatrixWorld(!0),h.matrix.decompose(h.position,h.quaternion,h.scale))};c.US=function(h){if(!h)return[];h=h.getComponent(l.Vh);return(h= 1817null===h||void 0===h?void 0:h.Cia)?h.animations||[]:[]};c.WS=function(h){return h.getComponent(l.Is)||h.getComponent(l.Lj)};c.Or=function(h){var g=h.getComponent(l.Is);return g?g.camera:(h=h.getComponent(l.Lj))?h.rk||h.camera:null};c.Cf=function(h){return this.dT(this.Uc(h))};c.dT=function(h){for(;h&&!h.isScene;)h=h.parent;return h};c.lab=function(h,g){h.userData.camera=g};c.oab=function(h,g,b){h.userData.width=g;h.userData.height=b};c.mab=function(h,g){h.userData.colorSpace!==g&&(h.userData.colorSpace= 1818g,this.Xla(h))};c.nab=function(h,g){h.userData.VCa!==g&&(h.userData.VCa=g,this.Xla(h))};c.tu=function(h){return h.userData.camera};c.fT=function(h){return h.userData.width};c.tB=function(h){return h.userData.height};c.V2=function(h){return h.userData.colorSpace};c.T4=function(h,g){h.userData.background!==g&&(h.userData.background=g,this.Xla(h))};c.Xla=function(h){if(h&&h.userData){var g=h.userData.background,b=h.userData.colorSpace,d=h.userData.VCa;g&&g.isColor?h.background=b==k.SRGBColorSpace||d? 1819g:g.clone().convertLinearToSRGB():(g&&g.isTexture&&(g.colorSpace=b==k.SRGBColorSpace?k.SRGBColorSpace:k.LinearSRGBColorSpace),h.background=g)}};c.K2a=function(h,g){var b=h.userData.vla||(h.userData.vla=[]);0<=b.indexOf(g)||(b.push(g),h.add(g),this.x5(h))};c.jHa=function(h,g){var b=h.userData.vla;if(b){var d=b.indexOf(g);0>d||(b.splice(d,1),h.remove(g))}};c.x5=function(h){var g=h.userData.vla;if(g){var b=.99*-h.far;g.forEach(function(d){d.position.z=b})}};c.M2a=function(h,g){var b=h.userData.rla|| 1820(h.userData.rla=[]);0<=b.indexOf(g)||(b.push(g),h.add(g),this.gKa(h))};c.lHa=function(h,g){var b=h.userData.rla;if(b){var d=b.indexOf(g);0>d||(b.splice(d,1),h.remove(g))}};c.gKa=function(h){var g=h.userData.rla;if(g){var b=.99*h.far;g.forEach(function(d){d.scale.x=d.scale.y=d.scale.z=b})}};c.L2a=function(h,g){var b=h.userData.Aja||(h.userData.Aja=[]);
18200<=b.indexOf(g)||(b.push(g),h.add(g),this.fKa(h))};c.kHa=function(h,g){var b=h.userData.Aja;if(b){var d=b.indexOf(g);0>d||(b.splice(d,1),h.remove(g))}}; 1821c.fKa=function(h){var g=h.userData.Aja;if(g){var b=1.001*h.near;g.forEach(function(d){d.position.z=-b;d.scale.x=d.scale.y=d.scale.z=2*Math.tan((1<h.aspect?m.Kp(h.fov,h.aspect,1):h.fov)*this.QC*.5)*b*2}.bind(this))}};c.YF=function(h){if((h=this.Uc(h))&&h.parent){var g=this.LDa(h);if(g)return this.LT.setFromMatrixScale(h.parent.matrixWorld),g/Math.max(this.LT.x,this.LT.y,this.LT.z)}};c.LDa=function(h){if((h=this.Uc(h))&&h.parent){var g=this.dT(h);if(g){var b=this.tu(g);if(b)return h.matrixWorld.decompose(this.objectPosition, 1822this.Q7a,this.LT),this.objectPosition.applyMatrix4(b.matrixWorldInverse),this.xm.setFromMatrixScale(b.matrixWorld),2*Math.abs(this.objectPosition.z)*Math.tan(b.fov*this.QC/2)*Math.max(this.xm.x,this.xm.y,this.xm.z)/this.tB(g)}}};c.pB=function(h,g){if(h.userData.id===g)return h;var b=null;if(h.children)for(var d=0;d<h.children.length&&!b;d++)b=this.pB(h.children[d],g);if(!b&&h.skeleton)for(d=0;d<h.skeleton.bones.length&&!b;d++)b=this.pB(h.skeleton.bones[d],g);return b};c.cDa=function(){this.Rha||(this.Rha= 1823new k.WebGLRenderer);return this.Rha};c.NIa=function(h){this.Nha||(this.Nha=new k.DRACOLoader,this.Nha.setDecoderPath(k.eLa));this.w3||(this.w3=new k.KTX2Loader,this.w3.setTranscoderPath(k.QKa),this.w3.detectSupport(this.cDa()));h.setKTX2Loader(this.w3);h.setMeshoptDecoder(k.MeshoptDecoder);h.setDRACOLoader(this.Nha);return h};c.D3=new k.Matrix4;c.G4a=new k.Euler;c.objectPosition=new k.Vector3;c.Q7a=new k.Quaternion;c.LT=new k.Vector3;c.xm=new k.Vector3;c.QC=Math.PI/180;c.Rha=null;return c}()}); 1824define("D","require ld lt fS bj cm kb cv".split(" "),function(a){function f(e){this.m=e;this.zk=this.oe=null;this.eW={};this.mX=new Map;this.pt=this.Hl=this.o=null;this.xg=!1;this.yP=this.yP.bind(this);this.update()}function l(e,n){if(e==n||!(null!=e&&0!=e.length||null!=n&&0!=n.length))return!0;if(null==e||null==n||e.length!=n.length)return!1;for(var q=0;q<e.length;q++)if(e[q]!=n[q])return!1;return!0}var m=a("ld"),k=a("lt"),c=a("fS"),h=a("bj"),g=a("cm"),b=a("kb"),d=a("cv");f.prototype.update=function(){var e= 1825this.m.getComponent(c.Animation);this.nm(e&&e.properties)};f.prototype.frame=function(e,n){this.wK();this.xg&&(this.xg=!1,this.Hl&&this.Hl.frame(e,n),this.pt&&this.pt.frame(e,n))};f.prototype.dispose=function(){this.nm(null)};f.prototype.nm=function(e){this.o!=e&&(this.o&&(m.ca(this.o,["animations.autoplay"],this.yP),this.uYa()),(this.o=e)&&m.bu(this.o,["animations.autoplay"],this.yP),this.yP())};f.prototype.yP=function(){this.Qza()};f.prototype.wK=function(){if(!this.oe){var e=d.Uc(this.m),n=d.US(this.m); 1826if(this.oe!=e||this.zk!=n)this.oe=e,this.zk=n,this.eW={},this.zk.forEach(function(q){q.name&&(this.eW[q.name]=q)}.bind(this)),this.Qza()}};f.prototype.Qza=function(){var e=this.o&&this.o.get("animations")||[],n=this.zk||[],q=n.slice(),p=[],r=[],t=[],u=[];e.length&&n.length&&e.forEach(function(v){var w=v.get("index"),x=v.get("name"),y;void 0!==w&&w<n.length?y=n[w]:void 0!==x&&x in this.eW&&(y=this.eW[x]);0<=q.indexOf(y)&&(q.splice(q.indexOf(y),1),v.get("autoplay")?(p.push(y),r.push(v)):(t.push(y), 1827u.push(v)))}.bind(this));this.o&&0==r.length&&0<q.length&&(r=q.map(function(v){if(this.mX.has(v))return this.mX.get(v);var w=new h;this.mX.set(v,w);return w}.bind(this)),p=q);l(this.Hl&&this.Hl.getAnimations()||[],r)&&l(this.Hl&&this.Hl.US()||[],p)||(this.Hl&&(this.Hl.dispose(),this.Hl=null),0<r.length&&(this.Hl=new g(this.o,this.oe,r,p,this.Ga.bind(this))));l(this.pt&&this.pt.getAnimations()||[],u)&&l(this.pt&&this.pt.US()||[],t)||(this.pt&&(this.pt.dispose(),this.pt=null),0<u.length&&(this.pt=new b(this.o, 1828this.oe,u,t,this.Ga.bind(this))))};f.prototype.uYa=function(){(this.o&&this.o.get("animations")||[]).forEach(function(e){e.set("state",k.V);e.set("currentTime",0)});this.mX.clear()};f.prototype.Ga=function(){this.xg||(this.xg=!0,this.m.P.Ta())};f.$a=function(e){e.I(c.Su).manager=new f(e)};f.Ca=function(e){var n=e.getComponent(c.Su);n.manager.dispose();n.manager=null;e.ha(c.Su)};
1828f.update=function(e){e.getComponent(c.Su).manager.update()};f.frame=function(e,n,q){e.getComponent(c.Su).manager.frame(n, 1829q)};return f}); 1830define("nG",["require","lQ","ma","fS","D"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("D");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(c,h){this.dBa.u.length&&this.dBa.u.slice().forEach(k.$a);this.animations.Ea.length&&this.animations.Ea.slice().forEach(function(g){k.update(g,c,h)});this.animations.u.length&&this.animations.u.slice().forEach(function(g){k.frame(g,c,h)});this.eBa.u.length&&this.eBa.u.slice().forEach(k.Ca)};a.H={};a.H.dBa=[m.Animation,m.Su.not]; 1831a.H.eBa=[m.Animation.not,m.Su];a.H.animations=[m.Animation,m.Su];return a}); 1832define("fo",["require"],function(){function a(v,w,x,y,z){for(var B,E=0,I=w,A=x-y;I<x;I+=y)E+=(v[A]-v[I])*(v[I+1]+v[A+1]),A=I;if(z===0<E)for(z=w;z<x;z+=y)B=r(z,v[z],v[z+1],B);else for(z=x-y;z>=w;z-=y)B=r(z,v[z],v[z+1],B);B&&b(B,B.next)&&(t(B),B=B.next);return B}function f(v,w){if(!v)return v;w||(w=v);do{var x=!1;if(v.rJa||!b(v,v.next)&&0!==g(v.prev,v,v.next))v=v.next;else{t(v);v=w=v.prev;if(v===v.next)break;x=!0}}while(x||v!==w);return w}function l(v,w,x,y,z,B,E){if(v){if(!E&&B){var I=v,A=I;do 0=== 1833A.z&&(A.z=c(A.x,A.y,y,z,B)),A.js=A.prev,A=A.Jm=A.next;while(A!==I);A.js.Jm=null;A.js=null;I=A;var C,J,D,O,R=1;do{A=I;var U=I=null;for(J=0;A;){J++;var V=A;for(C=D=0;C<R&&(D++,V=V.Jm,V);C++);for(O=R;0<D||0<O&&V;)0!==D&&(0===O||!V||A.z<=V.z)?(C=A,A=A.Jm,D--):(C=V,V=V.Jm,O--),U?U.Jm=C:I=C,C.js=U,U=C;A=V}U.Jm=null;R*=2}while(1<J)}for(I=v;v.prev!==v.next;){A=v.prev;V=v.next;if(B)U=m(v,y,z,B);else a:{var W=v;U=W.prev;O=W.next;if(0<=g(U,W,O))U=!1;else{J=U.x;D=W.x;R=O.x;C=U.y;W=W.y;var K=O.y,M=J<D?J<R?J:R: 1834D<R?D:R,S=C<W?C<K?C:K:W<K?W:K,X=J>D?J>R?J:R:D>R?D:R,ba=C>W?C>K?C:K:W>K?W:K;for(O=O.next;O!==U;){if(O.x>=M&&O.x<=X&&O.y>=S&&O.y<=ba&&h(J,C,D,W,R,K,O.x,O.y)&&0<=g(O.prev,O,O.next)){U=!1;break a}O=O.next}U=!0}}if(U)w.push(A.Qg/x|0),w.push(v.Qg/x|0),w.push(V.Qg/x|0),t(v),I=v=V.next;else if(v=V,v===I){if(E)if(1===E){v=f(v);E=w;I=x;A=v;do V=A.prev,U=A.next.next,!b(V,U)&&d(V,A,A.next,U)&&q(V,U)&&q(U,V)&&(E.push(V.Qg/I|0),E.push(A.Qg/I|0),E.push(U.Qg/I|0),t(A),t(A.next),A=v=U),A=A.next;while(A!==v);v=f(A); 1835l(v,w,x,y,z,B,2)}else{if(2===E)a:{E=v;do{for(I=E.next.next;I!==E.prev;){if(A=E.Qg!==I.Qg){A=E;V=I;if(U=A.next.Qg!==V.Qg&&A.prev.Qg!==V.Qg){b:{U=A;do{if(U.Qg!==A.Qg&&U.next.Qg!==A.Qg&&U.Qg!==V.Qg&&U.next.Qg!==V.Qg&&d(U,U.next,A,V)){U=!0;break b}U=U.next}while(U!==A);U=!1}U=!U}if(U){if(U=q(A,V)&&q(V,A)){U=A;J=!1;D=(A.x+V.x)/2;R=(A.y+V.y)/2;do U.y>R!==U.next.y>R&&U.next.y!==U.y&&D<(U.next.x-U.x)*(R-U.y)/(U.next.y-U.y)+U.x&&(J=!J),U=U.next;while(U!==A);U=J}U=U&&(g(A.prev,A,V.prev)||g(A,V.prev,V))||b(A, 1836V)&&0<g(A.prev,A,A.next)&&0<g(V.prev,V,V.next)}A=U}if(A){v=p(E,I);E=f(E,E.next);v=f(v,v.next);l(E,w,x,y,z,B,0);l(v,w,x,y,z,B,0);break a}I=I.next}E=E.next}while(E!==v)}}else l(f(v),w,x,y,z,B,1);break}}}}function m(v,w,x,y){var z=v.prev,B=v.next;if(0<=g(z,v,B))return!1;var E=z.x,I=v.x,A=B.x,C=z.y,J=v.y,D=B.y,O=E<I?E<A?E:A:I<A?I:A,R=C<J?C<D?C:D:J<D?J:D,U=E>I?E>A?E:A:I>A?I:A,V=C>J?C>D?C:D:J>D?J:D,W=c(O,R,w,x,y);w=c(U,V,w,x,y);x=v.js;for(v=v.Jm;x&&x.z>=W&&v&&v.z<=w;){if(x.x>=O&&x.x<=U&&x.y>=R&&x.y<=V&& 1837x!==z&&x!==B&&h(E,C,I,J,A,D,x.x,x.y)&&0<=g(x.prev,x,x.next))return!1;x=x.js;if(v.x>=O&&v.x<=U&&v.y>=R&&v.y<=V&&v!==z&&v!==B&&h(E,C,I,J,A,D,v.x,v.y)&&0<=g(v.prev,v,v.next))return!1;v=v.Jm}for(;x&&x.z>=W;){if(x.x>=O&&x.x<=U&&x.y>=R&&x.y<=V&&x!==z&&x!==B&&h(E,C,I,J,A,D,x.x,x.y)&&0<=g(x.prev,x,x.next))return!1;x=x.js}for(;v&&v.z<=w;){if(v.x>=O&&v.x<=U&&v.y>=R&&v.y<=V&&v!==z&&v!==B&&h(E,C,I,J,A,D,v.x,v.y)&&0<=g(v.prev,v,v.next))return!1;v=v.Jm}return!0}function k(v,w){return v.x-w.x}function c(v,w,x,y, 1838z){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 h(v,w,x,y,z,B,E,I){return(z-E)*(w-I)>=(v-E)*(B-I)&&(v-E)*(y-I)>=(x-E)*(w-I)&&(x-E)*(B-I)>=(z-E)*(y-I)}function g(v,w,x){return(w.y-v.y)*(x.x-w.x)-(w.x-v.x)*(x.y-w.y)}function b(v,w){return v.x===w.x&&v.y===w.y}function d(v,w,x,y){var z=n(g(v,w,x)),B=n(g(v,w,y)),E=n(g(x,y,v)),I=n(g(x,y,w)); 1839return z!==B&&E!==I||0===z&&e(v,x,w)||0===B&&e(v,y,w)||0===E&&e(x,v,y)||0===I&&e(x,w,y)?!0:!1}function e(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 n(v){return 0<v?1:0>v?-1:0}function q(v,w){return 0>g(v.prev,v,v.next)?0<=g(v,w,v.next)&&0<=g(v,v.prev,w):0>g(v,w,v.prev)||0>g(v,v.next,w)}function p(v,w){var x=new u(v.Qg,v.x,v.y),y=new u(w.Qg,w.x,w.y),z=v.next,B=w.prev;v.next=w;w.prev=v;x.next=z;z.prev=x;y.next=x;x.prev=y;B.next= 1840y;y.prev=B;return y}function r(v,w,x,y){v=new u(v,w,x);y?(v.next=y.next,v.prev=y,y.next.prev=v,y.next=v):(v.prev=v,v.next=v);return v}function t(v){v.next.prev=v.prev;v.prev.next=v.next;v.js&&(v.js.Jm=v.Jm);v.Jm&&(v.Jm.js=v.js)}function u(v,w,x){this.Qg=v;this.x=w;this.y=x;this.next=this.prev=null;this.z=0;this.Jm=this.js=null;this.rJa=!1}return function(v,w,x){x=x||2;var y=w&&w.length,z=y?w[0]*x:v.length,B=a(v,0,z,x,!0),E=[];if(!B||B.next===B.prev)return E;var I;if(y){var A=B;var C=x;B=[];var J; 1841y=0;for(J=w.length;y<J;y++){var D=w[y]*C;var O=y<J-1?w[y+1]*C:v.length;D=a(v,D,O,C,!1);D===D.next&&(D.rJa=!0);O=B;var R=O.push,U=D,V=D;do{if(U.x<V.x||U.x===V.x&&U.y<V.y)V=U;U=U.next}while(U!==D);R.call(O,V)}B.sort(k);for(y=0;y<B.length;y++){C=void 0;w=B[y];b:{J=A;D=w.x;O=w.y;R=-Infinity;do{if(O<=J.y&&O>=J.next.y&&J.next.y!==J.y&&(U=J.x+(O-J.y)*(J.next.x-J.x)/(J.next.y-J.y),U<=D&&U>R&&(R=U,C=J.x<J.next.x?J:J.next,U===D)))break b;J=J.next}while(J!==A);if(C){V=C;var W=C.x,K=C.y,M=Infinity;J=C;do{if(D>= 1842J.x&&J.x>=W&&D!==J.x&&h(O<K?D:R,O,W,K,O<K?R:D,O,J.x,J.y)){U=Math.abs(O-J.y)/(D-J.x);var S;if((S=q(J,w))&&!(S=U<M)&&(S=U===M)&&!(S=J.x>
1842C.x)&&(S=J.x===C.x)){S=C;var X=J;S=0>g(S.prev,S,X.prev)&&0>g(X.next,S,S.next)}S&&(C=J,M=U)}J=J.next}while(J!==V)}else C=null}C&&(w=p(C,w),f(w,w.next),A=f(C,C.next))}B=A}if(v.length>80*x){var ba=I=v[0];var da=y=v[1];for(A=x;A<z;A+=x)w=v[A],C=v[A+1],w<ba&&(ba=w),C<da&&(da=C),w>I&&(I=w),C>y&&(y=C);I=Math.max(I-ba,y-da);I=0!==I?32767/I:0}l(B,E,x,ba,da,I,0);return E}}); 1843define("oq",["require","exports","three.mod"],function(a,f,l){return function(){function m(){}m.O5a=function(k){return k.userData.cs||k.material};m.hB=function(k,c){if(k.material!=c&&k.userData.cs!=c){var h=k.userData.ET,g=k.userData.kja;this.kU(k);k.material=c;g?this.VBa(k):h&&this.Tha(k);k.needsUpdate=!0}};m.Tha=function(k,c){void 0===c&&(c=null);k.userData.ET||(k.userData.ET=!0,k.userData.cs=k.material,k.material=c||this.P3a(k.material))};m.kU=function(k){k.userData.ET&&(this.z4a(k.material),k.material= 1844k.userData.cs,delete k.userData.cs,delete k.userData.ET,delete k.userData.kja)};m.Tbb=function(k){if(k.userData.ET){var c=k.userData.cs;k=k.material;k.side=c.side;k.depthTest=c.depthTest;
1844k.map&&c.map&&(k.map.colorSpace=c.map.colorSpace);k.emissiveMap&&c.emissiveMap&&(k.emissiveMap.colorSpace=c.emissiveMap.colorSpace)}};m.VBa=function(k){this.p6a(k)||(this.kU(k),this.Tha(k,this.O3a(k.material)),k.userData.kja=!0)};m.p6a=function(k){return!(!k.userData.kja&&k.material&&!this.o3(k.material))};m.o3=function(k){return Array.isArray(k)? 1845!!k.every(function(c){return m.o3(c)}):k?!(k.isMeshPhysicalMaterial||k.isMeshStandardMaterial):!1};m.O3a=function(k){return Array.isArray(k)?k.map(function(c){return m.RBa(c)}):k?this.RBa(k):k};m.RBa=function(k){return(new l.MeshBasicMaterial).copy(k)};m.P3a=function(k){return Array.isArray(k)?k.map(function(c){return c.clone()}):k?k.clone():k};m.z4a=function(k){Array.isArray(k)?k.forEach(function(c){c.dispose()}):k&&k.dispose()};return m}()}); 1846define("p","require lQ pw fo ma fS cv oq".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("fo"),k=a("ma"),c=a("fS"),h=a("cv"),g=a("oq");a=f.extend(k,function(){k.apply(this,arguments);this.Vb=this.Vb.bind(this);this.Ib=this.Ib.bind(this);this.jb=this.jb.bind(this);this.y5=this.y5.bind(this)});a.prototype.Tc=function(){this.hBa.u.length&&this.hBa.u.slice().forEach(this.Vb);this.gBa.Ea.length&&this.Sbb(this.gBa.Ea.slice());this.areas.Ea.length&&this.areas.Ea.slice().forEach(this.Ib);this.iBa.u.length&& 1847this.iBa.u.slice().forEach(this.jb);this.jBa.u.length&&this.jBa.u.slice().forEach(this.jb)};a.prototype.Vb=function(D){D.I(c.Ry);this.Ib(D)};a.prototype.Ib=function(D){this.Zbb(D);this.XU(D)};a.prototype.Sbb=function(D){var O=[];D.forEach(function(R){R.getComponent(c.mC).M1.forEach(function(U){-1===O.indexOf(U)&&O.push(U)})});O.forEach(this.y5)};a.prototype.Zbb=function(D){this.dcb(D);this.y5(D)};a.prototype.dcb=function(D){var O=D.getComponent(c.Rm),R=O&&O.u||[],U=(O=D.getComponent(c.Ry))&&O.u|| 1848[];U.forEach(function(V){if(-1===R.indexOf(V)){var W=V.getComponent(c.mC).M1.filter(function(K){return K!==K});0==W.length?V.ha(c.mC):V.J(c.mC).M1=W}});R.forEach(function(V){-1===U.indexOf(V)&&V.J(c.mC,!0).M1.push(D)})};var b=new THREE.Matrix4,d=[];a.prototype.y5=function(D){var O=D.getComponent(c.Rm);for(O=O&&O.u||[];d.length<O.length;)d.push(new THREE.Vector3);var R=O.map(function(M,S){return M.getComponent(c.Object3D).qa.getWorldPosition(d[S])});R=R.filter(function(M,S){return 1E-4<M.distanceTo(R[(S+ 18491)%R.length])});O=this.d6a(R);if(0===O.length)this.Jqa(D),this.sza(D);else{this.BZa(D,3*O.length);this.fcb(D,d,O);b.copy(D.getComponent(c.Object3D).qa.matrixWorld).invert();d.forEach(function(M){M.applyMatrix4(b)});D=D.getComponent(c.Geometry);for(var U=D.geometry.attributes.position.array,V=0,W=0;V<O.length;){var K=d[O[V++]];U[W++]=K.x;U[W++]=K.y;U[W++]=K.z;K=d[O[V++]];U[W++]=K.x;U[W++]=K.y;U[W++]=K.z;K=d[O[V++]];U[W++]=K.x;U[W++]=K.y;U[W++]=K.z}D.geometry.attributes.position.needsUpdate=!0}};var e= 1850new THREE.Plane,n=new THREE.Vector3,q=new THREE.Vector3,p=new THREE.Vector3,r=new THREE.Line3,t=new THREE.Vector3,u=new THREE.Vector3,v=new THREE.Vector3,w=new THREE.Vector3,x=new THREE.Vector3,y=5*Math.PI/180;a.prototype.d6a=function(D){if(3>D.length)return[];var O=D[0];for(var R=Number.NEGATIVE_INFINITY,U=1;U<D.length;++U){var V=O.distanceToSquared(D[U]);if(!(V<=R)){R=V;var W=D[U]}}if(0>=R)return[];r.set(O,W);R=Number.NEGATIVE_INFINITY;for(U=0;U<D.length;++U)if(V=r.closestPointToPoint(D[U],!0,t).distanceToSquared(D[U]), 1851!(V<=R)){R=V;var K=D[U]}if(0>=R)return[];e.setFromCoplanarPoints(O,W,K);for(U=0;U<D.length;++U)if(R=D[U],R!==O&&R!==W&&R!==K){u.copy(O).sub(R).normalize();v.copy(W).sub(R).normalize();w.copy(K).sub(R).normalize();R=u.dot(v);V=u.dot(w);var M=v.dot(w);R<V&&R<M?x.copy(u).cross(v):V<M?x.copy(u).cross(w):x.copy(v).cross(w);x.normalize();R=Math.abs(Math.acos(x.dot(e.normal)));R>.5*Math.PI&&(R=Math.PI-R);if(R>y)return[]}q.copy(D[1]).sub(D[0]).normalize();p.copy(e.normal).cross(q).normalize();O=[];for(U= 18520;U<D.length;++U)e.projectPoint(D[U],n),O.push(n.dot(q),n.dot(p));return m(O,null,2)};var z=new THREE.Vector3,B=new THREE.Vector3,E=new THREE.Vector3,I=new THREE.Vector3,A=new THREE.Vector3,C=new THREE.Vector3,J=new THREE.Vector3;a.prototype.fcb=function(D,O,R){var U=0;z.set(0,0,0);for(var V=0;V<R.length;){E.copy(O[R[V++]]);I.copy(O[R[V++]]);A.copy(O[R[V++]]);B.copy(E).add(I).add(A).divideScalar(3);var W=.5*J.subVectors(A,E).cross(C.subVectors(I,E)).length();B.multiplyScalar(W);z.add(B);U+=W}z.divideScalar(U); 1853O=D.J(c.va,!0);O.positionX=z.x;O.positionY=z.y;O.positionZ=z.z;h.CU(D,O);this.sza(D,U)};a.prototype.sza=function(D,O){(D=(D=D.J(c.Rm))&&D.N)&&D.trigger(l.ba,{area:O})};a.prototype.XU=function(D){var O=D.getComponent(c.Object3D);if(O=O&&O.qa){var R=D.getComponent(c.Material).material;R&&g.hB(O,R);O.renderOrder=D.getComponent(c.Rm).renderOrder}};a.prototype.Jqa=function(D){var O=D.getComponent(c.Geometry);O&&(O.geometry&&O.geometry.dispose(),D.ha(c.Geometry),D.getComponent(c.Object3D).qa.geometry=null); 1854if(O=D.getComponent(c.Object3D))O.qa&&O.qa.parent&&O.qa.parent.remove(O.qa),D.ha(c.Object3D)};a.prototype.BZa=function(D,O){var R=D.getComponent(c.Geometry);R&&R.geometry&&R.geometry.attributes.position.array.length===3*O||(R=D.J(c.Geometry,!0),R.geometry&&R.geometry.dispose(),R.geometry=this.cQa(O),O=D.getComponent(c.Object3D),O||(O=D.I(c.Object3D),O.qa=new THREE.Mesh,this.XU(D)),O.qa.geometry=R.geometry)};a.prototype.cQa=function(D){var O=new THREE.BufferGeometry,R=O.setAttribute,U=THREE.Float32BufferAttribute; 1855D*=3;for(var V=[],W=0;W<D;W++)V.push(0);R.call(O,"position",new U(V,3));return O};a.prototype.jb=function(D){this.Jqa(D);D.ha(c.Ry);D.ha(c.Object3D)};a.H={};a.H.hBa=[c.Material,c.Rm,c.Ry.not];a.H.gBa=[c.Object3D,c.va,c.mC];a.H.areas=[c.Rm,c.Material,c.Ry];a.H.iBa=[c.Rm.not,c.Ry];a.H.jBa=[c.Material.not,c.Ry];return a}); 1856define("nB","require lQ pw ma fS cv".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("ma"),k=a("fS"),c=a("cv");a=f.extend(m,function(){m.apply(this,arguments);this.hla=this.hla.bind(this);this.o5=this.o5.bind(this);this.gla=this.gla.bind(this);this.n5=this.n5.bind(this);this.sS=new Map;this.zFa=new Map;this.P1=new Map;this.AFa=new Map});a.prototype.Tc=function(){this.oBa.u.length&&this.oBa.u.slice().forEac
1856h(this.hla);this.pBa.u.length&&this.pBa.u.slice().forEach(this.o5);this.qBa.u.length&&this.qBa.u.slice().forEach(this.o5); 1857this.rBa.u.length&&this.rBa.u.slice().forEach(this.gla);this.sBa.u.length&&this.sBa.u.slice().forEach(this.n5);this.tBa.u.length&&this.tBa.u.slice().forEach(this.n5);this.frame()};a.H={};a.H.oBa=[k.Object3D,k.io,k.Wu.not];a.H.n3a=[k.Object3D,k.io,k.Wu];a.H.pBa=[k.Object3D.not,k.Wu];a.H.qBa=[k.io.not,k.Wu];a.H.rBa=[k.Object3D,k.Vy,k.Wy.not];a.H.sBa=[k.Object3D.not,k.Wy];a.H.tBa=[k.Vy.not,k.Wy];a.prototype.frame=function(){0!=this.n3a.u.length&&this.P1.forEach(function(h,g){var b=this.sS.get(g)||[]; 1858b.forEach(function(d){var e=d.getComponent(k.Object3D).qa;d.getComponent(k.Wy).position.set(0,0,0).applyMatrix4(e.matrixWorld)});h.forEach(function(d){var e=d.getComponent(k.Object3D).qa;d.getComponent(k.Wu).position.set(0,0,0).applyMatrix4(e.matrixWorld)});h.forEach(function(d){var e=d.getComponent(k.io).N;d=this.VS(b,d.getComponent(k.Wu).position);e.trigger(l.ba,{beacons:d})}.bind(this))}.bind(this))};a.prototype.c5a=function(h){return function(g){var b=this.sS.get(h.P)||[];return this.VS(b,g)}.bind(this)}; 1859a.prototype.VS=function(h,g){h=h.map(function(b){return{entity:b,distance:g.distanceTo(b.getComponent(k.Wy).position)}});h.sort(function(b,d){return b.distance-d.distance});return h};a.prototype.hla=function(h){h.I(k.Wu).position=new THREE.Vector3;this.AFa.set(h,c.Uc(h));var g=this.P1.get(h.P);g||this.P1.set(h.P,g=[]);0>g.indexOf(h)&&g.push(h);h.getComponent(k.io).VS=this.c5a(h)};a.prototype.o5=function(h){var g=this.P1.get(h.P),b=g.indexOf(h);0<=b&&g.splice(b,1);this.AFa["delete"](h);h.ha(k.Wu)}; 1860a.prototype.gla=function(h){h.I(k.Wy).position=new THREE.Vector3;this.zFa.set(h,c.Uc(h));var g=this.sS.get(h.P);g||this.sS.set(h.P,g=[]);0>g.indexOf(h)&&g.push(h)};a.prototype.n5=function(h){var g=this.sS.get(h.P),b=g.indexOf(h);0<=b&&g.splice(b,1);this.zFa["delete"](h);h.ha(k.Wy)};return a}); 1861define("iv","require lQ pw ma fS lv oQ cv".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("ma"),k=a("fS"),c=a("lv"),h=a("oQ"),g=a("cv");a=f.extend(m,function(){m.apply(this,arguments);this.jla=this.jla.bind(this);this.kla=this.kla.bind(this);this.z5=this.z5.bind(this);this.A5=this.A5.bind(this);this.Cla=this.Cla.bind(this);this.Dla=this.Dla.bind(this);h.N.bind(l.ba,this.xe,this,!0)});a.prototype.Tc=function(){this.xGa.u.length&&this.xGa.u.slice().forEach(this.jla);this.DGa.u.length&&this.DGa.u.slice().forEach(this.kla); 1862this.tG.Ea.length&&this.tG.Ea.slice().forEach(this.z5);this.gs.Ea.length&&this.gs.Ea.slice().forEach(this.A5);this.yGa.u.length&&this.yGa.u.slice().forEach(this.Cla);this.EGa.u.length&&this.EGa.u.slice().forEach(this.Dla)};a.prototype.xe=function(){this.gs.u.forEach(function(p){p.J(k.PerspectiveCamera)})};a.prototype.jla=function(p){var r=p.J(k.OrthographicCamera),t=p.I(k.Is);p.I(k.Object3D).qa=t.camera=r.camera=new THREE.OrthographicCamera;this.z5(p)};a.prototype.kla=function(p){var r=p.J(k.PerspectiveCamera), 1863t=p.I(k.Lj);t.boundingBox=new THREE.Box3;t.n4=!0;p.I(k.Object3D).qa=t.camera=r.camera=new THREE.PerspectiveCamera;this.A5(p)};a.prototype.z5=function(p){var r=p.getComponent(k.OrthographicCamera);p=p.getComponent(k.Is);p.width=r.width;p.height=r.height;p=p.camera;p.left=-.5*r.width;p.right=.5*r.width;p.top=.5*r.height;p.bottom=-.5*r.height;p.updateProjectionMatrix()};a.prototype.A5=function(p){var r=p.getComponent(k.PerspectiveCamera),t=p.getComponent(k.Lj);r.ll?(p.I(k.xk),t.width=h.framebufferWidth? 1864.5*h.framebufferWidth:r.width,t.height=h.framebufferHeight||r.height,p=t.rk=h.mh.xr.getCamera(),p.aspect=t.width/t.height,p.fov=t.fov=p&&p.cameras.length?2*Math.atan2(1,p.cameras[0].projectionMatrix.elements[5])*e:r.fov,p.near=t.near=.1,p.far=t.far=1E3,g.x5(p)):(p.ha(k.xk),t.fov=r.fov,t.width=r.width,t.height=r.height,t.rk=null,p=t.camera,p.aspect=t.width/t.height,p.fov=t.width>t.height?c.Cm(t.fov,t.width,t.height):t.fov,p.near=t.near=r.near,p.far=t.far=r.far,g.x5(p),t.camera.updateProjectionMatrix())}; 1865a.prototype.Cla=function(p){var r=p.getComponent(k.Is);r.camera.parent&&r.camera.parent.remove(r.camera);r.camera=null;p.ha(k.Is);p.ha(k.Object3D)};a.prototype.Dla=function(p){var r=p.getComponent(k.Lj),t=r.camera;h.Vdb&&t.parent&&t.parent.remove(t);r.camera=null;p.ha(k.Lj);p.ha(k.Object3D)};a.H={};
1865a.H.xGa=[k.OrthographicCamera,k.Is.not];a.H.yGa=[k.OrthographicCamera.not,k.Is];a.H.DGa=[k.PerspectiveCamera,k.Lj.not];a.H.EGa=[k.PerspectiveCamera.not,k.Lj];a.H.tG=[k.OrthographicCamera,k.Is];a.H.gs=[k.PerspectiveCamera, 1866k.Lj];a.kH=f.extend(m,function(){m.apply(this,arguments);this.Xja=this.Xja.bind(this)});a.kH.prototype.Tc=function(){this.gs.u.length&&this.gs.u.slice().forEach(this.Xja)};a.kH.prototype.Xja=function(p){var r=p.getComponent(k.PerspectiveCamera);if(r.lBa){var t=p.getComponent(k.Lj),u=t.scene||g.Cf(p),v=t.camera;if(u&&v&&g.dT(v)===u){var w=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(r.ll)w=.1,x=1E3;else{var y=!1;t.n4&&(t.boundingBox=this.OPa(u,t.boundingBox),t.n4=!1,y=!0);u=t.boundingBox; 1867u=[[u.min.x,u.max.x],[u.min.y,u.max.y],[u.min.z,u.max.z]];for(var z=0;2>z;z++)for(var B=0;2>B;B++)for(var E=0;2>E;E++)q.set(u[0][z],u[1][B],u[2][E]).applyMatrix4(v.matrixWorldInverse),-q.z>x&&(x=-q.z),-q.z<w&&(w=-q.z);u=Math.max(r.mBa||0,0);z=.5*(w+x);w+=(w-z)*u;x+=(x-z)*u;x=Infinity==x||isNaN(x)?2E3:x;w=0<w?w:20<x?.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,g.x5(v),g.gKa(v),g.fKa(v),v.updateProjectionMatrix();y||t.lha||(t.lha=setTimeout(function(){t.lha= 1868null;t.n4=!0;p.P&&p.P.Ta()},b))}}};a.kH.prototype.OPa=function(p,r){r||(r=new THREE.Box3);r.makeEmpty();p.traverse(function(t){if(t.boundingBox)var u=t.boundingBox;else{if(!t.geometry||t.isSprite||t.yu||t.material&&!t.material.visible)return;t.updateWorldMatrix(!1,!1);u=t.geometry;null===u.boundingBox&&u.computeBoundingBox();u=u.boundingBox}n.copy(u);n.applyMatrix4(t.matrixWorld);r.union(n)});return r};var b=500,d=1E-4,e=180/Math.PI,n=new THREE.Box3,q=new THREE.Vector3;a.kH.H={};a.kH.H.gs=[k.PerspectiveCamera, 1869k.Lj];return a}); 1870define("hn",["require","exports","three.mod","fS","cv"],function(a,f,l,m,k){a=function(){function d(){}d.cha=function(e,n,q){e.camera=n;n=q.getComponent(m.Cc);q=(q=k.Uc(q))&&q.matrixWorld;q||(q=n.matrixWorld);q?(e.ray.origin.copy(n.origin).applyMatrix4(q),e.ray.direction.copy(n.origin).add(n.direction).applyMatrix4(q).sub(e.ray.origin).normalize()):(e.ray.origin.copy(n.origin),e.ray.direction.copy(n.direction).normalize());return e};d.intersect=function(e,n){c.length=0;n.forEach(function(q){this.XGa(q);q.isSkinnedMesh&& 1871!q.userData.gha&&(q.userData.gha=q.geometry.boundingBox,q.geometry.boundingBox=g,q.userData.wBa=q.geometry.boundingSphere,q.geometry.boundingSphere=b,c.push(q))}.bind(this));e.firstHitOnly=!0;n=n.filter(function(q){return(q.isScene||q.parent)&&(!q.isMesh||q.geometry)});h.length=0;h=e.intersectObjects(n,!1,h);c.forEach(function(q){q.geometry.boundingBox=q.userData.gha;delete q.userData.gha;q.geometry.boundingSphere=q.userData.wBa;delete q.userData.wBa});h=h.filter(function(q){return q.object.isLine? 1872!1:!0});1<h.length&&h.sort(function(q,p){var r=-q.object.renderOrder,t=-p.object.renderOrder;r==t&&(r=q.object.material&&!q.object.material.depthTest?0:1,t=p.object.material&&!p.object.material.depthTest?0:1);r==t&&(r=q.distance,t=p.distance);return r-t});return h};d.XGa=function(e){if(e.isMesh&&e.geometry&&e.geometry.attributes&&e.geometry.attributes.position&&!e.geometry.userData.uBa&&!e.isSkinnedMesh){try{e.geometry.computeBoundsTree()}catch(n){}e.geometry.userData.uBa=!0}};return d}();var c=[], 1873h=[],g=new l.Box3;g.min.x=g.min.y=g.min.z=-Infinity;g.max.x=g.max.y=g.max.z=Infinity;var b=new l.Sphere;b.center.x=b.center.y=b.center.z=0;b.radius=Infinity;return a}); 1874define("mC",["require","exports","cv","hn","three.mod"],function(a,f,l,m,k){a=function(){function b(d){this.HG=null;this.jCa=new k.Vector3;this.Lha=void 0;this.La=d}b.prototype.refresh=function(){this.HG=null};b.prototype.ZG=function(d,e){return 0<this.intersect(d,e).length};b.prototype.a7a=function(d){var e=l.Or(this.La);if(!e)return[];c.far=e.far;c.setFromCamera(d,e);return m.intersect(c,this.U2())};b.prototype.tT=function(d){var e=l.Or(d.La||this.La);if(!e)return[];c.far=Infinity;c.camera=e;c.ray.origin.copy(d.origin); 1875c.ray.direction.copy(d.direction);d.matrixWorld&&c.ray.applyMatrix4(d.matrixWorld);return m.intersect(c,this.U2())};b.prototype.intersect=function(d,e){c.far=d.distanceTo(e);c.ray.origin.copy(d);c.ray.direction.copy(e).sub(d).normalize();return m.intersect(c,this.U2())};b.prototype.IS=function(d){if(this.jCa.equals(d)&&void 0!==this.Lha)return this.Lha;c.far=Infinity;c.ray.origin.copy(d);var e=[],n=[];
1875this.U2().forEach(function(p){p.isGaussianCloud||p.yu?n.push(p):e.push(p)});var q=Infinity;[e,n].forEach(function(p){(p== 1876n?g:[h]).forEach(function(r){c.ray.direction.copy(r);r=m.intersect(c,p);0!=r.length&&(r=d.y-r[0].point.y,r<q&&(q=r))})});if(Infinity==q)return Infinity;this.jCa.copy(d);return this.Lha=q};b.prototype.U2=function(){if(this.HG)return this.HG;var d=l.Cf(this.La);if(!d)return this.HG=[];var e=[];(b.KT.get(this.La.P)||[]).forEach(function(q){(q=l.Uc(q))&&e.push(q)});this.HG=[];for(d=[d];0<d.length;){var n=d.pop();n.userData.N3||n.isSprite||n.isLine||n.isSkinnedMesh||n.material&&!n.material.visible||-1!== 1877e.indexOf(n)||(n.children&&d.push.apply(d,n.children),this.HG.push(n))}return this.HG};b.T$a=function(d){this.KT.clear();d.forEach(function(e){this.KT.has(e.P)||this.KT.set(e.P,[]);this.KT.get(e.P).push(e)}.bind(this))};b.KT=new Map;return b}();var c=new k.Raycaster,h=new k.Vector3(0,-1,0),g=[(new k.Vector3(0,-1,.1)).normalize(),(new k.Vector3(0,-1,.1)).normalize().applyMatrix4((new k.Matrix4).makeRotationY(2*Math.PI/3)),(new k.Vector3(0,-1,.1)).normalize().applyMatrix4((new k.Matrix4).makeRotationY(2* 1878-Math.PI/3))];return a}); 1879define("dZ","require exports pw lt oj fS oY bL".split(" "),function(a,f,l,m,k,c,h,g){return function(){function b(d,e,n){this.G=d;this.properties=e;this.oh=n;this.oka=0;this.uG=this.ky=void 0;this.m4=!1;this.O4(0);this.$ha=this.n2=this.Zha=this.l2=this.state=void 0;this.Vc(m.V);this.oh.bind(l.F("state"),this.rG,this,!0);this.oh.bind(l.F("movementIndex"),this.YFa,this,!0)}b.prototype.DM=function(){this.oh.get("mandatory")||(this.T1(),this.oh.get("restartMovementOnUserInteraction")?this.state==m.PLAYING&& 1880(this.tJa(),this.Vc(m.Qb,!0)):this.state==m.PLAYING&&this.Vc(m.V))};b.prototype.qcb=function(){this.state==m.Qb&&this.m4&&this.oh.get("restartMovementOnUserInteraction")&&this.fbb()};b.prototype.frame=function(d){this.state==m.PLAYING&&null!==this.Re&&(this.Re.aja()||0!=this.ky||this.oh.trigger(l.Lp),this.Re.Fb(d),this.Xbb(),this.properties.set("x",this.Re.cb("x")),this.properties.set("y",this.Re.cb("y")),this.properties.set("z",this.Re.cb("z")),this.properties.set("yaw",this.PB(this.Re.cb("yaw"), 1881-180,180)),this.properties.set("pitch",this.Re.cb("pitch")),this.properties.set("distance",this.Re.cb("distance")),this.properties.set("fov",this.Re.cb("fov")),this.properties.set("easing",0),d=this.oh.get("movements")[this.ky],d.set("position",this.Re.jl()),d.trigger(l.Th),this.Re.Ve()&&(d.trigger(l.Gb),this.O4((this.ky+1)%this.oh.get("movements").length,!0),0==this.ky&&(this.oka++,this.oh.trigger(l.cq),this.oka==this.oh.get("repeat")&&(this.pHa(),this.Vc(m.V),this.oh.trigger(l.Gb)))))};b.prototype.Xbb= 1882function(){var d=void 0!==this.l2&&void 0!==this.Zha,e=void 0!==this.n2&&void 0!==this.$ha;if(d||e){var n=this.G.getComponent(c.mb).G;if(n){var q=this.Re.getTime(),p=this.Re.ui();n=n.J(c.Scene,!0);d=d&&q<this.l2?1-q/this.l2:0;e=e&&p-q<this.n2?1-(p-q)/this.n2:0;0<e||0<d?e>d?(n.bL=this.$ha,n.LS=e):(n.bL=this.Zha,n.LS=d):(n.bL="#000000",n.LS=0)}}};b.prototype.pHa=function(){var d=this.G.getComponent(c.mb);if(d=d&&d.G)d.J(c.Scene).LS=0};b.prototype.dispose=function(){this.T1();this.oh.unbind(l.F("state"), 1883this.rG,this);this.oh.unbind(l.F("movementIndex"),this.YFa,this);this.Vc(m.V)};b.prototype.rG=function(){var d=this.oh.get("state");this.state!=d&&(d==m.Qb&&this.state==m.V?this.oh.set("state",m.V):this.Vc(d))};b.prototype.Vc=function(d,e){void 0===e&&(e=void 0);this.state!=d&&(this.state=d,this.state==m.PLAYING?(this.T1(),this.m4=!1,this.XBa(),this.G3a()):this.state==m.Qb?(this.m4=!!e,this.tJa()):this.state==m.V&&(this.m4=!1,this.T1(),this.oka=0,d=this.Re.getTime(),e=this.Re.ui(),0<d&&d<e&&this.pHa(), 1884this.O4(0)));this.oh.set("state",this.state)};b.prototype.YFa=function(){this.O4(this.oh.get("movementIndex"))};b.prototype.O4=function(d,e){void 0===e&&(e=void 0);if(this.ky!==d||e)this.ky=d,this.XBa(),this.oh.set("movementIndex",this.ky),this.oh.get("movements")[this.ky].set("position",0)};b.prototype.fbb=function(){this.C4=setTimeout(function(){this.C4=null;this.Vc(m.PLAYING)}.bind(this),this.oh.get("restartMovementDelay"))};b.prototype.T1=function(){this.C4&&(clearTimeout(this.C4),this.C4=null)}; 1885b.prototype.XBa=function(){var d=this.oh.get("movements")[this.ky],e=this.properties.get("x",this.properties.get("initialX",0)
1885),n=this.properties.get("y",this.properties.get("initialY",0)),q=this.properties.get("z",this.properties.get("initialZ",0)),p=this.PB(this.properties.get("yaw",this.properties.get("initialYaw",0)),-180,180),r=this.properties.get("pitch",this.properties.get("initialPitch",0)),t=this.properties.get("distance",0),u=this.properties.get("fov",this.properties.get("initialFov")); 1886if(k.Ja("TargetModel3DCameraMovement",d)){var v=d.get("targetX",e);var w=d.get("targetY",n);var x=d.get("targetZ",q);var y=d.get("targetYaw",p);var z=d.get("targetPitch",r);var B=d.get("targetFov",u);var E=d.get("targetDistance",t);switch(this.K4a(d)){case "left":y=this.PB(y,p-360,p);break;case "right":y=this.PB(y,p,p+360);break;case "longest":y=this.PB(y,p-180,p+180);y=y==p?p+360:y>=p?this.PB(y,p-360,p):this.PB(y,p,p+360);break;default:y=this.PB(y,p-180,p+180)}}else k.Ja("DistanceModel3DCameraMovement", 1887d)&&(v=e+d.get("xDelta",0),w=n+d.get("yDelta",0),x=q+d.get("zDelta",0),y=p+d.get("yawDelta",0),z=r+d.get("pitchDelta",0),B=u+d.get("fovDelta",0),E=t+d.get("distanceDelta",0));this.Re=new h(d.get("easing"),[new g("x",e,v,d.get("xSpeed")),new g("y",n,w,d.get("ySpeed")),new g("z",q,x,d.get("zSpeed")),new g("yaw",p,y,d.get("yawSpeed")),new g("pitch",r,z,d.get("pitchSpeed")),new g("fov",u,B,d.get("fovSpeed")),new g("distance",t,E,d.get("distanceSpeed"))],d.get("duration"));this.l2=d.get("fadeFromDuration"); 1888this.Zha=d.get("fadeFromColor");this.n2=d.get("fadeToDuration");this.$ha=d.get("fadeToColor")};b.prototype.G3a=function(){this.uG=void 0};b.prototype.tJa=function(){if(this.Re){this.uG=void 0;var d=this.Re&&this.Re.jia("yaw");d&&(d.to>d.from?this.uG="right":d.to<d.from&&(this.uG="left"))}};b.prototype.K4a=function(d){d=d.get("yawPath");"longest"==d&&this.uG&&(d=this.uG);this.uG=void 0;return d};b.prototype.PB=function(d,e,n){for(;d<e;)d+=n-e;for(;d>n;)d-=n-e;return d};return b}()}); 1889define("kL","require exports ld pw lt dZ cv".split(" "),function(a,f,l,m,k,c,h){return function(){function g(b,d){this.G=b;this.properties=d;this.g4=this.g4.bind(this);this.d4=this.d4.bind(this);this.rG=this.rG.bind(this);this.kl=this.wu=null;this.gM=[];this.Ag=null;this.fC=!1;this.Ox=new Map;l.ea(this.properties,["userInteracting"],this.g4,!0);l.ea(this.properties,["initialSequence","idleSequence","sequences.movements"],this.d4,!0);l.ea(this.properties,["state"],this.rG,!0);this.ready=!1}g.prototype.frame= 1890function(b){if(!this.ready){var d=h.Cf(this.G),e=0;d&&d.traverse(function(n){(n.isMesh||n.isSprite)&&e++});if(0<e)this.ready=!0,this.n8a();else return!1}this.Ag&&this.Ox.get(this.Ag).frame(b);(b=this.Ag&&this.Ag.get("state")==k.PLAYING)&&this.G.P.Ta();this.properties.set("controllingPosition",b)};g.prototype.dispose=function(){this.Ag&&this.Ag.get("mandatory")&&this.properties.set("inMandatorySequence",!1);this.Ag&&this.properties.set("controllingPosition",!1);l.ca(this.properties,["userInteracting"], 1891this.g4);l.ca(this.properties,["initialSequence","idleSequence","sequences.movements"],this.d4);l.ca(this.properties,["state"],this.rG);this.d5();this.kl&&this.XK(this.kl);this.wu&&this.XK(this.wu);this.gM.forEach(this.XK.bind(this));this.gM=[]};g.prototype.OU=function(){this.fC||this.eG||!this.kl||this.Ag||!this.properties.get("timeToIdle")||(this.eG=setTimeout(function(){this.eG=null;this.b8a()}.bind(this),this.properties.get("timeToIdle")))};g.prototype.d5=function(){this.eG&&(clearTimeout(this.eG), 1892this.eG=null)};g.prototype.b8a=function(){this.kl&&this.kl.set("state",k.PLAYING)};g.prototype.n8a=function(){this.wu?this.wu.set("state",k.PLAYING):this.OU()};g.prototype.rG=function(){this.Ag?this.Ag.set("state",this.properties.get("state")):this.properties.get("state")==k.PLAYING?(this.OU(),this.eG||this.properties.set("state",k.V)):this.d5()};g.prototype.g4=function(){var b=this.properties.get("userInteracting");this.fC!=b&&(this.fC&&(this.Ag&&this.Ox.get(this.Ag).qcb(),!this.kl||this.Ag&&this.Ag!= 1893this.kl||this.OU()),this.fC=b)&&(this.d5(),this.Ag&&this.Ox.get(this.Ag).DM())};g.prototype.d4=function(){var b=this.wka(this.properties.get("initialSequence"));this.wu!=b&&(this.wu&&this.XK(this.wu),(this.wu=b)&&this.Bha(this.wu));b=this.wka(this.properties.get("idleSequence"));this.kl!=b&&(this.kl&&this.XK(this.kl),(this.kl=b)&&this.Bha(this.kl));var d=(this.properties.get("sequences")||[]).filter(this.wka.bind(this));this.gM.forEach(function(n){0>d.indexOf(n)&&this.XK(n)}.bind(this));var e=this.gM; 1894this.gM=d;this.gM.forEach(function(n){0>e.indexOf(n)&&this.Bha(n)}.bind(this));this.Ag||!this.kl||this.eG||this.OU()};g.prototype.wka=function(b){var d=b&&b.get("movements");return d&&0!=d.length?b:null};g.prototype.kGa=function(b){b=b.source;var d=b.get("state");d==k.PLAYING?(this.d5(),d=this.Ag,this.Ag=b,d&&d!=this.Ag&&d.set("state",k.V),this.properties.set("state",k.PLAYING),this.properties.set("inMandatorySequence",b.get("mandatory")),this.G.P.Ta()):d==k.Qb?b==this.Ag&&this.properties.set("state", 1895k.Qb):d==k.V&&b==this.Ag&&(this.properties.set("state",k.V),this.properties.set("inMandatorySequence",!1),this.Ag=null,b!=this.kl&&this.OU())};g.prototype.Bha=function(b){if(this.Ox.has(b))this.Ox.get(b);else{b.set("state",k.V);b.bind(m.F("state"),this.kGa,this,!0);var d=new c(this.G,this.properties,b);this.Ox.set(b,d)}};g.prototype.XK=function(b){this.Ox.has(b)&&(b.set("state",k.V),b.unbind(m.F("state"),this.kGa,this),this.Ox.get(b).dispose(),this.Ox["delete"](b))};return g}()}); 1896define("fh",["require","exports","kL","fS"],function(a,f,l,m){return function(){function k(c){this.qU=this.properties=null;this.G=c;this.update()}k.prototype.update=function(){var c=this.G.getComponent(m.qH);this.mM(c&&c.properties)};k.prototype.mM=function(c){var h;this.properties&&(null===(h=this.qU)||void 0===h?void 0:h.dispose(),this.qU=null);if(this.properties=c)this.qU=new l(this.G,this.properties)};k.prototype.frame=function(c){this.qU&&this.qU.frame(c)};k.prototype.dispose=function(){this.mM(null)}; 1897k.$a=function(c){c.I(m.Xu).manager=new k(c)};
1897k.update=function(c){c.getComponent(m.Xu).manager.update()};k.frame=function(c,h,g){c.getComponent(m.Xu).manager.frame(h,g)};k.Ca=function(c){c.getComponent(m.Xu).manager.dispose();c.ha(m.Xu)};return k}()});define("ph",["require","exports"],function(){return function(){function a(){}a.Sia=function(f){return 0<=this.H5.indexOf(f)};a.Mka=function(f){this.H5=[];f.forEach(function(l){l=l.P;0>this.H5.indexOf(l)&&this.H5.push(l)}.bind(this))};a.H5=[];return a}()}); 1898define("lG",["require"],function(){return{sdb:function(){},tdb:function(){},lY:function(){return this.o&&this.o.get("inMandatorySequence")||this.o&&!this.o.get("keyboardEnabled")?!0:!1},Ul:function(){return this.o&&this.o.get("inMandatorySequence")||this.o&&(!this.o.get("mouseEnabled")||this.o.get("mouseDisabled"))?!0:!1},Zsa:function(){return this.o&&this.o.get("doubleClickDisabled")?!0:!1},Wua:function(){this.YI()||this.kw||this.BAa()},Vua:function(){this.YI()||this.kw||this.AAa()},uJ:function(){this.ata()|| 1899this.BAa()},tJ:function(){this.ata()||this.AAa()},BAa:function(){this.o&&this.o.set("userInteracting",!0)},AAa:function(){this.o&&this.o.set("userInteracting",!1)}}}); 1900define("fG",["require","exports","cv","three.mod"],function(a,f,l,m){return function(){function k(c){this.matrixWorld=new m.Matrix4;this.DB=!1;this.timeout=null;this.G=c}k.prototype.mM=function(c,h){if(this.YG!=c||this.propertyName!=h)this.YG&&this.YG.set(this.propertyName,!1),this.YG=c,this.propertyName=h,this.YG&&this.YG.set(this.propertyName,this.DB)};k.prototype.Tla=function(){var c=l.Uc(this.G),h=!!c&&!c.matrixWorld.equals(this.matrixWorld);h&&this.matrixWorld.copy(c.matrixWorld);this.bo(h); 1901this.timeout&&(clearTimeout(this.timeout),this.timeout=null);h&&(this.timeout=setTimeout(function(){this.timeout=null;this.bo(!1)}.bind(this),k.ZLa))};k.prototype.Ca=function(){this.bo(!1);this.timeout&&clearTimeout(this.timeout)};k.prototype.bo=function(c){this.DB!=c&&(this.DB=c,this.YG&&this.YG.set(this.propertyName,c))};k.ZLa=100;return k}()}); 1902define("oJ",["require","exports"],function(){return function(){function a(f){this.properties=f}a.prototype.eIa=function(f){this.properties.set("fov",this.KL(f,this.properties.get("minFov",.1),this.properties.get("maxFov",180)))};a.prototype.Om=function(f){this.properties.set("yaw",this.H4(this.E7a(f,this.properties.get("minYaw"),this.properties.get("maxYaw"),this.properties.get("yaw"))))};a.prototype.Ey=function(f){this.properties.set("pitch",this.KL(f,this.properties.get("minPitch",-90),this.properties.get("maxPitch", 190390)))};a.prototype.setX=function(f){this.properties.set("x",this.KL(f,this.properties.get("minX"),this.properties.get("maxX")))};a.prototype.setY=function(f){this.properties.set("y",this.KL(f,this.properties.get("minY"),this.properties.get("maxY")))};a.prototype.setZ=function(f){this.properties.set("z",this.KL(f,this.properties.get("minZ"),this.properties.get("maxZ")))};a.prototype.KG=function(f){this.properties.set("distance",this.KL(f,this.properties.get("minDistance"),this.properties.get("maxDistance")))}; 1904a.prototype.bj=function(f){this.properties.set("easing",f)};a.prototype.E7a=function(f,l,m,k){if(void 0!==l||void 0!==m){var c=this.H4(f-k);if(void 0!==l&&0>c){if(this.H4(k)+c<l)return l}else if(void 0!==m&&0<c&&this.H4(k)+c>m)return m}return f};a.prototype.KL=function(f,l,m){if(isNaN(f))throw"invalid value";void 0!==l&&f<l&&(f=l);void 0!==m&&f>m&&(f=m);return f};a.prototype.H4=function(f){for(;-180>f;)f+=360;for(;180<f;)f-=360;return f};return a}()}); 1905define("pK",["require","jt"],function(a){var f=a("jt");return{zba:function(l){this.tY=this.tY.bind(this);this.uY=this.uY.bind(this);this.KN=this.wj=!1;this.$f={};for(var m=0;m<l.length;m++)this.$f[l[m]]=!1;this.VO=0;this.vY=!1;this.WO(!0)},Aba:function(){this.WO(!1)},WO:function(l){this.vY!=l&&(this.vY&&(document.removeEventListener("keyup",this.uY),document.removeEventListener("keydown",this.tY)),this.vY=l)&&(document.addEventListener("keyup",this.uY),document.addEventListener("keydown",this.tY))}, 1906ata:function(){return 0<this.VO},uY:function(l){if(!(f.sp()||this.lY&&this.lY())){var m=!1;this.wj!=l.shiftKey&&(this.wj=l.shiftKey,m=!0);this.KN!=l.ctrlKey&&(this.KN=l.ctrlKey,m=!0);!0===this.$f[l.code]&&(this.$f[l.code]=!1,m=!0,this.Jo&&this.Jo(l.code),this.VO--,0==this.VO&&this.Vua&&this.Vua());m&&this.JP&&this.JP()}},tY:function(l){if(!(f.sp()||this.lY&&this.lY())){var m=!1;this.wj!=l.shiftKey&&(this.wj=l.shiftKey,m=!0);this.KN!=l.ctrlKey&&(this.KN=l.ctrlKey,m=!0);!1===this.$f[l.code]&&(m=this.$f[l.code]= 1907!0,this.xE&&this.xE(l.code),this.VO++,1==this.VO&&this.Wua&&this.Wua());m&&this.JP&&this.JP()}},Bdb:function(){return this.wj},wdb:function(){return this.KN}}}); 1908define("kl",["require","exports","bh"],function(a,f,l){a=function(){function k(){this.cf=[]}k.prototype.ns=function(c){this.ZHa(c);this.hb=c;this.G9=null};k.prototype.$Ha=function(c){this.ZHa(c?c.EDa():null);this.hb=null;this.G9=c};k.prototype.tab=function(c,h){this.hb&&this.hb.set("cursor",c);this.G9&&this.G9.I4(c,h)};k.prototype.ZHa=function(c){this.se&&(this.se.k9a(this),this.se=void 0);c&&(this.se=m.get(c),this.se.U2a(this))};k.prototype.dispose=function(){this.ns(null);this.cf=[]};k.prototype.push= 1909function(c){this.cf.push(c);
1909this.se&&this.se.update()};k.prototype.pop=function(c){for(var h=this.cf.length-1;0<=h;h--)if(this.cf[h]==c){this.cf.splice(h,1);this.se&&this.se.update();break}};k.prototype.has=function(c){return 0<=this.cf.indexOf(c)};k.prototype.top=function(){if(this.cf.length)return this.cf[this.cf.length-1]};k.prototype.all=function(){return this.cf};return k}();var m=function(){function k(c){this.Zc=c;this.ld=[]}k.prototype.U2a=function(c){this.ld.push(c);this.update()};k.prototype.k9a= 1910function(c){this.ld.splice(this.ld.indexOf(c),1);this.update();0==this.ld.length&&k.clear(this.Zc)};k.prototype.update=function(){var c=this.ONa();var h=this.saa(l.RC)?l.RC:this.saa(l.Uh)?l.Uh:this.saa(l.Je)?l.Je:this.sr()||l.Ie;this.ld.forEach(function(g){g.tab(h,c)})};k.prototype.saa=function(c){for(var h=this.ld.length-1;0<=h;h--)if(this.ld[h].has(c))return!0;return!1};k.prototype.ONa=function(){var c=[];this.ld.forEach(function(h){h.all().forEach(function(g){0>c.indexOf(g)&&c.push(g)})});return c}; 1911k.prototype.sr=function(){for(var c,h=this.ld.length-1;0<=h&&void 0===c;h--)c=this.ld[h].top();return c};k.get=function(c){var h=this.Ua.get(c);h||this.Ua.set(c,h=new k(c));return h};k.clear=function(c){this.Ua["delete"](c)};k.Ua=new Map;return k}();return a}); 1912define("jU",["require","exports","pw","gD"],function(a,f,l,m){return function(k){function c(h){var g=k.call(this)||this;if(h instanceof HTMLElement)g.J3=h;else if("function"===typeof h.gd)g.J3=h.gd().get(0);else if(h.length&&h.get)g.J3=h.get(0);else throw Error("invalid element");g.a4=g.a4.bind(g);document.addEventListener("pointerlockchange",g.a4.bind(g),!1);return g}Z(c,k);c.prototype.dispose=function(){document.removeEventListener("pointerlockchange",this.a4)};c.prototype.lock=function(){if(!this.rp())return this.J3.requestPointerLock()}; 1913c.prototype.unlock=function(){this.rp()&&document.exitPointerLock()};c.prototype.rp=function(){return document.pointerLockElement===this.J3};c.prototype.a4=function(){this.trigger(l.ba)};c.rp=function(){return null!==document.pointerLockElement};return c}(m)}); 1914define("ix",["require","pw","kl","jU"],function(a){function f(h,g){var b=g.x-h.x;h=g.y-h.y;return Math.sqrt(b*b+h*h)}var l=a("pw"),m=a("kl"),k=a("jU"),c=180/Math.PI;return{eca:function(){this.VY=this.nP=this.kw=this.ot=!1;this.u_=this.ze=null;this.gY=new m;this.qP=null;this.wWa=this.GVa.bind(this)},fca:function(){this.c0(null);this.gY.dispose()},Qta:function(h){this.bp(h);if(!this.Ul||!this.Ul()){var g=this.XI();this.ot||(this.ot=!0,g||this.uJ&&this.uJ());this.nP=!h.originalEvent||!h.originalEvent.buttons|| 19150===(h.originalEvent.buttons&2);this.u_=h;this.Ko&&this.Ko(h.x,h.y);this.uZ&&this.uZ(h.x,h.y)}},XI:function(){return this.ot||this.kw||this.VY},YI:function(){return this.ot},xdb:function(){return this.kw},ydb:function(){return this.nP},zdb:function(){return this.VY},Sta:function(h){this.bp(h);if(this.Ul&&this.Ul())this.oP(h);else if(this.Mf&&this.Mf(h.x,h.y),this.ot||this.gJ.rp()){var g=void 0!==h.movementX?h.movementX:h.x-this.u_.x,b=void 0!==h.movementY?h.movementY:h.y-this.u_.y;this.gJ.rp()&&(g*= 1916-1,b*=-1);this.u_=h;this.tZ&&this.tZ(g,b,h.x,h.y)}},oP:function(h){this.ot&&(h&&this.bp(h),this.nP=this.ot=!1,this.Ow&&this.Ow(this.md,this.nd),this.yE&&this.yE(),this.XI()||this.tJ&&this.tJ())},Mta:function(h){this.Ul&&this.Ul()||(this.bp(h),this.Nw&&this.Nw(h.x,h.y))},Nta:function(h){this.Ul&&this.Ul()||this.Zsa&&this.Zsa()||(this.bp(h),this.sJ&&this.sJ(h.x,h.y))},Tta:function(h){this.bp(h);if(!this.Ul||!this.Ul()){h=h.DS/10;var g=this.XI();this.qP||(this.VY=!0,this.xWa&&this.xWa(),g||this.uJ&& 1917this.uJ());this.vZ&&this.vZ(h);this.qP&&clearTimeout(this.qP);this.qP=setTimeout(this.wWa,100)}},GVa:function(){this.qP=null;this.vWa&&this.vWa();this.VY=!1;this.XI()||this.tJ&&this.tJ()},Pta:function(h){if(!(this.Ul&&this.Ul()||2>h.touches.length)){var g=this.XI();this.kw||(this.kw=!0,this.HVa(h.touches),g||this.uJ&&this.uJ());this.Oua&&this.Oua();this.oP()}},Ota:function(h){this.Ul&&this.Ul()||2>h.touches.length||!this.kw||(this.Uta(h.touches),this.Aca&&this.Aca(this.u0a,this.v0a,this.wfa,this.w0a), 1918this.Nua&&this.Nua(this.Zaa,this.$aa,this.DR,this.ER,1,this.wfa,this.HO,this.vfa,this.Yaa,this.CR))},dca:function(){this.kw&&(this.kw=!1,this.Bca&&this.Bca());this.XI()||this.tJ&&this.tJ()},HVa:function(h){this.Yaa=this.$aa=this.Zaa=this.HO=this.wfa=this.ER=this.DR=this.vfa=this.CR=void 0;this.BR=h;this.Uta(h)},Uta:function(h){f(h[0],this.BR[0])+f(h[1],this.BR[1])>f(h[0],this.BR[1])+f(h[1],this.BR[0])&&(h=[h[1],h[0]]);var g=h[0];var b=h[1];g=Math.atan2(-(b.y-g.y),b.x-g.x)*c;b=f(h[0],h[1]);var d=(h[0].x+ 1919h[1].x)/2,e=(h[0].y+h[1].y)/2;this.wfa=void 0!==this.HO?b/this.HO:1;this.w0a=void 0!==this.CR?g-this.CR:0;this.CR=g;this.vfa=b;this.u0a=void 0!==this.DR?d-this.DR:0;this.v0a=void 0!==this.ER?e-this.ER:0;this.DR=d;this.ER=e;void 0!==this.Zaa||(this.Zaa=this.DR);void 0!==this.$aa||(this.$aa=this.ER);void 0!==this.Yaa||(this.Yaa=this.CR);void 0!==this.HO||(this.HO=this.vfa);this.BR=h},Rta:function(){},BRa:function(){this.oP();this.dca()},rO:function(){return this.ze?this.ze.Za():100},PD:function(){return this.ze? 1920this.ze.Cb():100},nw:function(){return this.ze?Math.max(this.ze.Za(),this.ze.Cb()):100},c0:function(h){this.ze!=h&&(this.ze&&(this.ze.unbind(l.gb,this.Qta,this,!0),this.ze.unbind(l.Pb,this.Sta,this,!0),this.ze.unbind(l.Eb,this.oP,this,
1920!0),this.ze.unbind(l.ma,this.Mta,this,!0),this.ze.unbind(l.Al,this.Nta,this,!0),this.ze.unbind(l.Gs,this.Tta,this,!0),this.ze.unbind(l.O6,this.Ota,this,!0),this.ze.unbind(l.az,this.Pta,this,!0),this.ze.unbind(l.tH,this.dca,this,!0),this.gJ.unbind(l.ba,this.Rta,this, 1921!0),this.gJ.dispose(),this.gJ=null),this.ze=h,this.gY.ns(this.ze),this.ze&&(this.ze.bind(l.gb,this.Qta,this,!0),this.ze.bind(l.Pb,this.Sta,this,!0),this.ze.bind(l.Eb,this.oP,this,!0),this.ze.bind(l.ma,this.Mta,this,!0),this.ze.bind(l.Al,this.Nta,this,!0),this.ze.bind(l.Gs,this.Tta,this,!0),this.ze.bind(l.O6,this.Ota,this,!0),this.ze.bind(l.az,this.Pta,this,!0),this.ze.bind(l.tH,this.dca,this,!0),this.gJ=new k(this.ze),this.gJ.bind(l.ba,this.Rta,this,!0)))},pP:function(h){h.x=-1+2*h.x/this.rO();h.y= 19221-2*h.y/this.PD();return h},bp:function(h){this.md=h.x;this.nd=h.y;this.hJ=h.pageX;this.iJ=h.pageY},OE:function(h){this.gY.push(h)},r_:function(h){this.gY.pop(h)}}}); 1923define("kT",["require","pw"],function(a){var f=a("pw");return{EYa:function(){this.W_=!1;this.Wo=null;this.hE=this.ZI=0;this.WE=!1;this.Jxa(!0)},FYa:function(){this.Jxa(!1);this.rya(null)},Jxa:function(l){this.W_!=l&&((this.W_=l)||this.V_())},rya:function(l){this.Wo!=l&&(this.V_(),this.Wo&&(this.Wo.unbind(f.ko,this.Kxa,this,!0),this.Wo.unbind(f.Vf,this.V_,this,!0),this.Wo.unbind(f.ba,this.Ixa,this,!0),this.hE=this.ZI=0),this.Wo=l)&&(this.Wo.bind(f.ko,this.Kxa,this,!0),this.Wo.bind(f.Vf,this.V_,this, 1924!0),this.Wo.bind(f.ba,this.Ixa,this,!0))},Kxa:function(){!this.WE&&this.W_&&(this.WE=!0,this.$va&&this.$va())},Ixa:function(){this.WE&&(this.ZI=this.Wo.getX(),this.hE=this.Wo.getY(),this.Yva&&this.Yva())},V_:function(){this.WE&&(this.WE=!1,this.hE=this.ZI=0,this.Zva&&this.Zva())},Adb:function(){return this.WE}}}); 1925define("dY","require lQ pw bs fS lG mC ph fG oJ pK ix kT bh oY bL".split(" "),function(a){function f(M){this.YN=!1;this.Z9=0;this.Pqa=!1;this.Qqa=M}function l(M){this.m=M;this.Oq=new e(M);this.zba(y);this.eca();this.EYa();this.fF=.025;this.am=.25;this.RY=this.SY=this.TY=this.GX=0;this.Fa=null;this.AW=this.Q0=!1;this.wa=void 0;this.pta=new THREE.Vector3(void 0,void 0,void 0);this.gt=[];this.AVa=5;this.wVa=10;this.Sv=new b(this.m);this.OE(t.bz);this.$I={};[c.na.gj,c.na.Qh,c.na.ab,c.na.tb].forEach(function(S){this.$I[S]= 1926new f(300)}.bind(this));[c.na.fo,c.na.rv,c.na.Yu,c.na.yv,c.na.Q,c.na.E].forEach(function(S){this.$I[S]=new f(300)}.bind(this));this.update()}var m=a("lQ"),k=a("pw"),c=a("bs"),h=a("fS"),g=a("lG"),b=a("mC"),d=a("ph"),e=a("fG"),n=a("oJ"),q=a("pK"),p=a("ix"),r=a("kT"),t=a("bh"),u=a("oY"),v=a("bL");m.L1(l,[g,q,p,r]);l.prototype.update=function(){var M=this.m.getComponent(h.EC);this.nm(M&&M.properties);this.Oq.mM(M&&M.properties,"moving");var S=(!M.VK||!d.Sia(this.m.P))&&M.enabled;this.c0(M&&(S?M.zg:null)); 1927this.WO(!!M&&S&&M.wB);this.rya(!!M&&S&&M.EHa);S||this.yE();S&&M.wB||(this.zn=this.yn=this.Fk=this.Vj=this.Gk=0)};l.prototype.frame=function(M){this.OUa()?this.bUa(M):this.cUa(M);this.PRa()};l.prototype.OUa=function(){return this.properties&&this.properties.get("playingSequence")||this.ci};l.prototype.bUa=function(M){this.properties&&this.properties.get("playingSequence")||this.SNa(M)};l.prototype.SNa=function(M){this.ci&&(this.ci.Fb(M),this.Fa.setX(this.ci.cb("x")),this.Fa.setY(this.ci.cb("y")),this.Fa.setZ(this.ci.cb("z")), 1928this.Fa.bj(0),this.ci.Ve()&&(this.ci=null),this.m.P.Ta())};var w=1E3/3600*8/1.7;l.prototype.cUa=function(M){J.set(this.o.get("x"),this.o.get("y"),this.o.get("z"));this.eTa(M,R,V);this.pTa(J,R,D);this.Fa.setX(D.x);this.Fa.setY(D.y);this.Fa.setZ(D.z);this.Fa.Om(this.o.get("yaw")+V.x);this.Fa.Ey(this.o.get("pitch")+V.y);this.Fa.bj(this.am);0==R.x&&0==R.y&&0==R.z&&0==V.x&&0==V.y||this.m.P.Ta()};l.prototype.PRa=function(){this.h2a();this.f1a();this.Oq.Tla();this.WE&&this.m.P.Ta();this.Sv.refresh()};l.prototype.eTa= 1929function(M,S,X){M/=1E3;var ba=this.wj?.2:1,da=1.7*w;da*=this.o.get("translationSpeed")*ba;var ea=this.o.get("rotationSpeed")*ba;ba=this.RY;var G=this.SY,P=this.TY,T=this.GX;this.RY=this.SY=this.TY=this.GX=0;var L=(ba*ba+G*G)/x;L=1<L?1/Math.sqrt(L):1;ba*=L;G*=L;var Q=I*Math.atan2(this.ZI,Math.abs(this.hE));L=Math.sqrt(this.ZI*this.ZI+this.hE*this.hE);var Y=Math.max(this.PD(),this.rO()),aa=this.o.get("fov")/Y*2;ba=-ba*aa*ea;G=G*aa*ea;P=25*-P*da;aa=this.qO(c.na.fo,c.na.Yu)*da;var ca=this.qO(c.na.yv, 1930c.na.rv)*da,fa=this.qO(c.na.Q,c.na.E)*da,ha=this.qO(c.na.Qh,c.na.gj)*ea*30,ia=this.qO(c.na.ab,c.na.tb)*ea*30;T=3.4*T/Y;ea*=Q*L*.125;da*=.5*-L*this.hE;(L=this.m.getComponent(h.va))&&(ba||G||P||aa||fa||ca||ha||ia||ea||da||T)?(A.makeRotationFromEuler(C.set(0,L.ud*E,0,L.Ee)),S.set(aa*M,fa*M+T,(ca+da+P)*M).applyMatrix4(A),X.set(ba+(ia+ea)*M,G+ha*M)):(S.set(0,0,0),X.set(0,0))};l.prototype.qO=function(M,S){M=this.$I[M].getState();if(M===f.a6)return-3;if(M===f.Qh)return-1.5;S=this.$I[S].getState();return S=== 1931f.a6?3:S===f.Qh?1.5:0};l.prototype.pTa=function(M,S,X){X.copy(M).add(S);if(!X.equals(M)){var ba=!this.pta.equals(M);this.Yza(X,ba);void 0!==this.wa&&0!==S.y&&(this.wa=Math.max(.595,this.wa+S.y));var da=this.Sv.IS(X);(ba||Infinity==da)&&this.yPa();var ea=Infinity!==da?X.y-da:void 0;if(this.o.get("keepHeight")&&Infinity!==da){da=this.pO();if(ea>(ba?ea:this.gTa(M))+this.o.get("maxStepHeight",.25*da)){X.copy(M);return}X.y=(ba?ea:this.nTa(ea))+da}if(this.o.get("collisionDetection")&&(U.copy(S).normalize().multiplyScalar(.1).add(X), 1932this.Sv.ZG(M,U))){X.copy(M);return}void 0!==ea&&this.uNa(ea);this.pta.copy(X)}};l.prototype.yPa=function(){this.gt=[]};l.prototype.gTa=function(M){return 0==this.gt.length?M:this.gt[this.gt.length-1]};l.prototype.nTa=function(M){return this.gt.length<this.AVa?M:this.gt.reduce((S,X)=>S+X,0)/this.gt.length};l.prototype.uNa=function(M){this.gt.push(M);this.gt.length>this.wVa&&this.gt.shift()};l.prototype.Yza=function(M,S){if(void 0===this.wa||S)M=this.Sv.IS(M),Infinity!==M&&(this.wa=M)};l.prototype.pO= 1933function(){return void 0===this.wa?1.7:this.wa};l.prototype.xE=function(M){this.m.P.Ta();this.$I[M].Jja()};l.prototype.Jo=function(M){this.$I[M].Kja()};l.prototype.uZ=function(){this.Ei=!0;this.OE(t.Uh)};l.prototype.sJ=function(M,S){if("translate"==this.o.get("doubleClickAction")&&(this.pP(K.set(M,S)),M=this.Sv.a7a(K),0!=M.length)){var X=M[0];M=J.set(this.o.get("x"),this.o.get("y"),this.o.get("z"));S=D.copy(X.point);this.Yza(M);var ba=this.pO();X.face&&X.face.normal?(X=O.copy(X.face.normal).transformDirection(X.object.matrixWorld), 1934X=Math.abs(Math.acos(X.dot(W)))<.25*Math.PI):X=S.y<M.y-.75*ba;if(X)S.y+=ba;else{R.copy(S).sub(M);X=R.length();var da=2*ba;if(X<da)return;S.sub(R.multiplyScalar(da/X));S.y+=ba-this.Sv.IS(S)}this.Sv.ZG(M,S)||Math.abs(ba-this.Sv.IS(S))>.05*ba||(this.ci=new u("cubic_in_out",[new v("x",M.x,S.x),new v("y",M.y,S.y),new v("z",M.z,S.z)],1500),this.m.P.Ta())}};var x=2500;l.prototype.tZ=function(M,S){this.Ei&&(this.RY+=M,this.SY+=S,this.m.P.Ta())};l.prototype.yE=function(){this.Ei=!1;this.r_(t.Uh);this.m.P.Ta()}; 1935l.prototype.vZ=function(M){this.TY+=M;this.m.P.Ta()};l.prototype.Aca=function(M,S){this.GX+=S;this.m.P.Ta()};l.prototype.$va=function(){this.BRa();this.OE(t.Uh)};l.prototype.Yva=function(){this.m.P.Ta()};l.prototype.Zva=function(){this.r_(t.Uh)};l.prototype.nm=function(M){this.o!=M&&(this.o&&(this.Fa=null,z.forEach(function(S){this.o.unbind(k.F(S),this.Rca,this,!0)}.bind(this)),B.forEach(function(S){this.o.unbind(k.F(S),this.rca,this,!0)}.bind(this)),this.o.set("userInteracting",!1)),this.o=M)&&(this.Fa= 1936new n(this.o),z.forEach(function(S){this.o.bind(k.F(S),this.Rca,this,!0)}.bind(this)),this.Rca(),B.forEach(function(S){this.o.bind(k.F(S),this.rca,this,!0)}.bind(this)),this.rca(),this.o.set("userInteracting",!1))};l.prototype.Rca=function(){this.Q0||(this.Q0=!0,this.m.P.Ta())};l.prototype.h2a=function(){if(this.Q0&&this.m&&this.o){this.Q0=!1;var M=this.m.J(h.va,!0);M.translationX=this.o.get("x");M.translationY=this.o.get("y");M.He=this.o.get("z");M.ud=-this.o.get("yaw");M.Pd=this.o.get("pitch"); 1937M.Fe=0;M.Ee="YXZ";M.positionX=0;M.positionY=0;M.positionZ=0;M.easing=this.o.get("easing")}};l.prototype.rca=function(){this.AW||(this.AW=!0,this.m.P.Ta())};l.prototype.f1a=function(){this.AW&&this.m&&this.o&&(this.AW=!1,this.m.J(h.PerspectiveCamera,!0).fov=this.o.get("fov"))};var y=[c.na.gj,c.na.Qh,c.na.ab,c.na.tb,c.na.fo,c.na.rv,c.na.Yu,c.na.yv,c.na.Q,c.na.E],z="minYaw maxYaw yaw minPitch maxPitch pitch minX maxX x minY maxY y minZ maxZ z distance easingSpeed".split(" "),B=["minFov","maxFov","fov"], 1938E=Math.PI/180,I=180/Math.PI,A=new THREE.Matrix4,C=new THREE.Euler,J=new THREE.Vector3,D=new THREE.Vector3,O=new THREE.Vector3,R=new THREE.Vector3,U=new THREE.Vector3,V=new THREE.Vector2,W=new THREE.Vector3(0,1,0),K=new THREE.Vector2;l.prototype.dispose=function(){this.nm(null);this.Aba();this.fca();this.FYa();this.Oq.Ca();this.Sv=null};l.$a=function(M){M.I(h.Bs).manager=new l(M)};l.Ca=function(M){var S=M.getComponent(h.Bs);S.manager.dispose();S.manager=null;M.ha(h.Bs)};
1938l.update=function(M){M.getComponent(h.Bs).manager.update()}; 1939l.frame=function(M,S,X){M.getComponent(h.Bs).manager.frame(S,X)};f.prototype.Jja=function(){this.YN||(this.YN=!0,this.Pqa=Date.now()-this.Z9<this.Qqa,this.Z9=Date.now())};f.prototype.Kja=function(){this.YN&&(this.YN=!1)};f.prototype.getState=function(){return this.YN||Date.now()-this.Z9<this.Qqa?this.Pqa?f.a6:f.Qh:f.gj};f.gj=0;f.Qh=1;f.a6=2;return l}); 1940define("cf","require lQ pw bs lv cv fS lG ph fG oJ kL pK ix bh oY bL".split(" "),function(a){function f(L){this.m=L;this.zba(U);this.eca();this.Oq=new n(L);this.cd=w;this.fr=this.oj=null;this.fF=.025;this.am=.25;this.oi=void 0;this.gF=1;this.Gk=this.Vj=this.Fk=this.zn=this.yn=0;this.Tk=[];this.aE=this.bE=this.cE=this.ZD=this.YD=this.Sz=this.nj=this.dw=this.ew=this.gw=this.fw=this.cw=void 0;this.Waa=1E3;this.zO=void 0;this.OI=0;this.Fa=null;this.OE(t.bz);this.update()}function l(L,Q){L=Q-L;180<L?L-= 1941360:-180>L&&(L+=360);return L}function m(){return(new Date).getTime()}var k=a("lQ"),c=a("pw"),h=a("bs");a("lv");var g=a("cv"),b=a("fS"),d=a("lG"),e=a("ph"),n=a("fG"),q=a("oJ");a("kL");var p=a("pK"),r=a("ix"),t=a("bh"),u=a("oY"),v=a("bL");k.L1(f,[d,p,r]);f.prototype.update=function(){var L=this.m.getComponent(b.FC);this.nm(L&&L.properties);this.Oq.mM(L&&L.properties,"moving");var Q=(!L.VK||!e.Sia(this.m.P))&&L.enabled;this.c0(L&&(Q?L.zg:null));this.WO(!!L&&Q&&L.wB);Q||this.yE();Q&&L.wB||(this.zn=this.yn= 1942this.Fk=this.Vj=this.Gk=0)};f.prototype.frame=function(L){this.ci&&(this.ci.Fb(L),this.Fa.setX(this.ci.cb("x")),this.Fa.setY(this.ci.cb("y")),this.Fa.setZ(this.ci.cb("z")),this.Fa.KG(this.ci.cb("distance")),this.Fa.bj(0),this.ci.Ve()&&(this.ci=null));this.Hg&&(this.Hg=Math.max(0,this.Hg-L/this.Waa),this.Fa.setX(this.o.get("x")+this.aE*this.Hg),this.Fa.setY(this.o.get("y")+this.bE*this.Hg),this.Fa.setZ(this.o.get("z")+this.cE*this.Hg),this.Fa.Om(this.o.get("yaw")+this.ZD*this.Hg),this.Fa.Ey(this.o.get("pitch")+ 1943this.YD*this.Hg),this.Fa.bj(0),this.m.P.Ta(),0==this.Hg&&this.DQ());if(this.zn||this.yn||this.Fk||this.Vj||this.Gk){var Q=L/1E3;this.jca(this.Fk*Q,this.Vj*Q,this.Gk*Q,this.zn*Q,this.yn*Q)}if(this.cd==w&&void 0!==this.$k&&!this.Vj&&this.o.get("keepHeight")&&void 0!==this.zO&&Math.abs(this.$k-this.o.get("y"))>X){this.OI=Math.max(this.OI-L,0);Q=this.o.get("y");var Y=this.$k-Q;this.Fa.setY(Q+Math.min(L*this.zO,Math.abs(Y))*(0<Y?1:-1));this.m.P.Ta()}this.cd!=w||!this.fr||this.Hg||this.ci||(this.sD(),this.m.P.Ta()); 1944this.Oq.Tla()};f.prototype.JP=function(){this.Yfa()};f.prototype.Yfa=function(){var L=0!=this.Gk||0!=this.Vj||0!=this.Fk;this.zn=this.yn=this.Gk=this.Vj=this.Fk=0;var Q=this.$f[h.na.fo]?1:this.$f[h.na.Yu]?-1:0,Y=this.$f[h.na.yv]?1:this.$f[h.na.rv]?-1:0,aa=this.$f[h.na.Q]?1:this.$f[h.na.E]?-1:0,ca=this.$f[h.na.gj]?1:this.$f[h.na.Qh]?-1:0,fa=this.$f[h.na.ab]?1:this.$f[h.na.tb]?-1:0;if(ca||fa||Q||Y||aa){var ha=this.wj?.2:1;Q&&(this.Fk=-Q*ha*this.o.get("translationSpeed"));aa&&(this.Vj=-aa*ha*this.o.get("translationSpeed")); 1945Y&&(this.Gk=-Y*ha*this.o.get("translationSpeed"));fa&&(this.zn=-fa*ha*100*this.o.get("rotationSpeed"));ca&&(this.yn=ca*ha*100*this.o.get("rotationSpeed"));this.sD();this.m.P.Ta();this.Rda();this.ARa();Q=0!=this.Gk||0!=this.Vj||0!=this.Fk;!L&&Q&&this.DQ()}};f.prototype.uZ=function(){this.Ei=!0;this.cd==I||this.cd==A||m()<this.Ara+500||(this.OE(t.Uh),this.cd=w)};f.prototype.tZ=function(L,Q,Y,aa){if(this.Ei&&!(this.cd==I||this.cd==A||m()<this.Ara+500)){var ca=(L*L+Q*Q)/2500;ca=1<ca?1/Math.sqrt(ca):1; 1946L*=ca;Q*=ca;ca=this.kTa();this.cd!=ca?(this.cd=ca,this.cd==x?this.v_a(Y,aa):this.cd==y?this.Lya():this.cd==z?this.J_a():this.cd==E&&this.H_a()):this.cd!=w&&(this.cd==x?this.n1a(L,Q,Y,aa):this.cd==y?this.U1a(L,Q):this.cd==z?this.W1a(L,Q):this.cd==E&&this.T1a(L,Q))}};f.prototype.yE=function(){this.r_(t.Uh);this.Ei=!1;this.cd!=w&&(this.cd=w,this.oj=null,this.Jya(),this.Rda(),this.Qsa(),this.m.P.Ta())};f.prototype.vZ=function(L){this.cd!=B?(this.cd=B,this.D_a()):this.F1a(L);this.ica&&clearTimeout(this.ica); 1947this.ica=setTimeout(function(){this.ica=null;this.cd==B&&(this.cd=w,this.Et())}.bind(this),1E3)};f.prototype.Nua=function(L,Q,Y,aa,ca,fa,ha,ia,ja,ka){this.cd!=I&&this.cd!=A?(L=.05<Math.abs(fa-ca),Y=5<l(ja,ka),Q=Math.abs(aa-Q)>.02*this.PD(),ja=10>Math.min(Math.abs(ja),180-Math.abs(ja),Math.abs(ka),180-Math.abs(ka)),ha=.2>ha/this.nw(),(L||Q)&&(ja||ha)?(this.cd=A,this.I_a()):!Y&&!L||ja&&ha||(this.cd=I,this.K_a())):this.cd==I?this.X1a(ca,fa,ja,ka):this.cd==A&&this.V1a(Q,aa,c
1947a,fa)};f.prototype.Bca=function(){this.oj= 1948null;this.cd==I&&this.Jya();this.cd=w;this.Ara=m();this.Rda();this.Qsa();this.m.P.Ta()};f.prototype.sJ=function(L,Q){if("zoom"==this.o.get("doubleClickAction")){var Y=g.Cf(this.m),aa=g.Or(this.m);aa&&Y&&(G.set(L,Q),this.pP(G),L=this.IO(G,aa),0!=L.length&&(this.Et(),this.sD(),L=L[0].point,C.setFromMatrixPosition(aa.matrixWorld),this.ci=new u("quad_in_out",[new v("x",C.x,.5*(L.x+C.x)),new v("y",C.y,.5*(L.y+C.y)),new v("z",C.z,.5*(L.z+C.z)),new v("distance",0,0)],500)))}};f.prototype.kTa=function(){return this.nP? 1949this.wj?y:x:this.YI()?this.wj?E:z:w};f.prototype.v_a=function(L,Q){this.RJ();this.sD();this.ZNa(L,Q);this.o.get("keepHeight")&&this.E0();this.m.P.Ta()};f.prototype.n1a=function(L,Q,Y,aa){var ca=g.Or(this.m);ca&&(C.setFromMatrixPosition(ca.matrixWorld),this.oj?(J.set(Y,aa,0),this.pP(J),J.unproject(ca),L=this.oj.x-C.x,Q=this.oj.z-C.z,-2<Math.atan2(this.oj.y-C.y,Math.sqrt(Q*Q+L*L))*S?(O.copy(this.oj).applyMatrix4(ca.matrixWorldInverse),R.copy(J).applyMatrix4(ca.matrixWorldInverse),L=O.z/R.z,D.copy(R).multiplyScalar(L).applyMatrix4(ca.matrixWorld).sub(this.oj), 19500!=D.y&&this.Et()):(L=(this.oj.y-C.y)/(J.y-C.y),D.copy(J).sub(C).multiplyScalar(L).add(C).sub(this.oj)),D.multiplyScalar(-1)):(ba.makeRotationFromEuler(P.set(0,-this.o.get("yaw")*M,0,"YXZ")),da.set(-L*this.o.get("translationSpeed")/this.nw(),0,-Q*this.o.get("translationSpeed")/this.nw()).applyMatrix4(ba),D.copy(da).multiplyScalar(10*this.gF)),this.Fa.setX(C.x+D.x),this.Fa.setY(C.y+D.y),this.Fa.setZ(C.z+D.z),this.tK(D.x,D.y,D.z,0,0),this.Fa.bj(this.am))};f.prototype.Lya=function(){this.RJ();this.oj= 1951null;this.p8();this.Et();this.m.P.Ta()};f.prototype.U1a=function(L,Q){var Y;Y||(Y=1);L=360*L/this.rO()*this.o.get("rotationSpeed");Q=180*-Q/this.PD()*this.o.get("rotationSpeed");this.Fa.Om(this.o.get("yaw")+L);this.Fa.Ey(this.o.get("pitch")+Q);this.Fa.KG(this.jda/Y);this.tK(0,0,0,L,Q);this.Fa.bj(this.am);this.m.P.Ta()};f.prototype.J_a=function(){this.Lya()};f.prototype.W1a=function(L,Q){var Y=g.Or(this.m),aa=this.o.get("distance")||this.oi||1;Q=Q*aa*2*Math.tan(Y.fov*M/2)/this.PD();0!=Q&&this.Et(); 1952this.Fa.setY(this.o.get("y")+Q);L=360*L/this.rO()*this.o.get("rotationSpeed");this.Fa.Om(this.o.get("yaw")+L);this.tK(0,Q,0,L,0);this.Fa.bj(this.am)};f.prototype.H_a=function(){this.RJ();this.sD();this.Et();this.m.P.Ta()};f.prototype.T1a=function(L,Q){L=360*-L/this.rO()*this.o.get("rotationSpeed");Q=180*Q/this.PD()*this.o.get("rotationSpeed");this.Fa.Om(this.o.get("yaw")+L);this.Fa.Ey(this.o.get("pitch")+Q);this.tK(0,0,0,L,Q);this.Fa.bj(this.am);this.m.P.Ta()};f.prototype.D_a=function(){this.Et(); 1953this.RJ();this.oj=null;this.sD();this.o.get("keepHeight")&&this.E0();this.m.P.Ta()};f.prototype.F1a=function(L){this.AZa(da);da.multiplyScalar(-L*this.o.get("translationSpeed")*(this.gF||1));this.oi&&this.apa(this.oi+da.y);this.Fa.setX(this.o.get("x")+da.x);this.Fa.setY(this.o.get("y")+da.y);this.Fa.setZ(this.o.get("z")+da.z);this.Fa.bj(this.fF)};f.prototype.K_a=function(){this.RJ();this.oj=null;this.p8();this.Et();this.m.P.Ta();this.yt=void 0};f.prototype.X1a=function(L,Q,Y,aa){void 0!==this.yt|| 1954(this.yt=Y);Y=l(this.yt,aa);this.yt=aa;this.Fa.Om(this.o.get("yaw")+Y);this.Fa.KG(this.jda*L/Q);this.tK(0,0,0,Y,0);this.Fa.bj(this.am);this.m.P.Ta()};f.prototype.I_a=function(){this.RJ();this.oj=null;this.p8();this.Et();this.m.P.Ta();this.w_=void 0};f.prototype.V1a=function(L,Q,Y,aa){void 0!==this.w_||(this.w_=L);L=180*-(Q-this.w_)/this.PD();this.w_=Q;this.Fa.Ey(this.o.get("pitch")+L);this.Fa.KG(this.jda*Y/aa);this.tK(0,0,0,0,L);this.Fa.bj(this.am);this.m.P.Ta()};f.prototype.ZNa=function(L,Q){var Y= 1955g.Cf(this.m),aa=g.Or(this.m);this.oj=null;aa&&Y&&(G.set(L,Q),this.pP(G),L=this.IO(G,aa),L.length&&(this.oj=L[0].point))};f.prototype.p8=function(){this.fr=null;var L=g.Cf(this.m),Q=g.Or(this.m);Q&&L&&(G.set(0,0),L=this.IO(G,Q),L.length&&(this.fr=L[0].point),this.fr||(this.fr=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld)),this.o.set("distance",C.setFromMatrixPosition(Q.matrixWorld).distanceTo(this.fr)),this.jda=this.o.get("distance"),this.o.set("x",this.fr.x),this.o.set("y",this.fr.y),this.o.set("z", 1956this.fr.z),this.o.set("easing",0))};f.prototype.sD=function(){this.fr&&(this.fr=null,C.setFromMatrixPosition(g.Or(this.m).matrixWorld),this.o.set("distance",0),this.o.set("x",C.x),this.o.set("y",C.y),this.o.set("z",C.z),this.o.set("easing",0))};var w="none",x="dragging",y="rotating",z="rotating yaw dragging y",B="moving front",E="rotating around camera",I="rotating yaw gesture",A="rotating pitch gesture",C=new THREE.Vector3,J=new THREE.Vector3,D=new THREE.Vector3,O=new THREE.Vector3,R=new THREE.Vector3; 1957f.prototype.nm=function(L){this.o!=L&&(this.o&&(this.Fa=null,V.forEac
1957h(function(Q){this.o.unbind(c.F(Q),this.eAa,this,!1)}.bind(this)),W.forEach(function(Q){this.o.unbind(c.F(Q),this.Hx,this,!1)}.bind(this)),K.forEach(function(Q){this.o.unbind(c.F(Q),this.vr,this,!1)}.bind(this)),this.o.set("userInteracting",!1)),this.o=L)&&(this.Fa=new q(this.o),V.forEach(function(Q){this.o.bind(c.F(Q),this.eAa,this,!1)}.bind(this)),W.forEach(function(Q){this.o.bind(c.F(Q),this.Hx,this,!1)}.bind(this)),K.forEach(function(Q){this.o.bind(c.F(Q), 1958this.vr,this,!1)}.bind(this)),this.Hx(),this.vr(),this.o.set("userInteracting",!1))};f.prototype.Hx=function(){if(this.m&&this.o){var L=this.m.J(b.va,!0);L.translationX=this.o.get("x");var Q=this.o.get("y")-L.translationY;Math.abs(Q)>X&&(L.translationY=this.o.get("y"),this.cd!=w||this.Fk||this.Vj||this.Gk||this.zn||this.yn||this.ci||this.Hg||this.Et());L.He=this.o.get("z");L.ud=-this.o.get("yaw");L.Pd=this.o.get("pitch");L.Fe=0;L.Ee="YXZ";L.positionX=0;L.positionY=0;L.positionZ=this.o.get("distance"); 1959L.easing=this.o.get("easing");(void 0!==this.o.get("minHeight")||this.o.get("keepHeight"))&&this.pAa()}};f.prototype.vr=function(){this.m&&this.o&&(this.m.J(b.PerspectiveCamera,!0).fov=this.o.get("fov"))};f.prototype.jca=function(L,Q,Y,aa,ca){var fa=this.m.getComponent(b.va);fa&&(ba.makeRotationFromEuler(P.set(0,fa.ud*M,0,fa.Ee)),da.set(L,Q,Y).applyMatrix4(ba).multiplyScalar(this.gF),void 0!==this.oi&&(this.oi+=da.y,this.DQ()),this.Fa.setX(this.o.get("x")+da.x),this.Fa.setY(this.o.get("y")+da.y), 1960this.Fa.setZ(this.o.get("z")+da.z),this.Fa.Om(this.o.get("yaw")+aa),this.Fa.Ey(this.o.get("pitch")+ca),this.Fa.bj(this.am))};f.prototype.AZa=function(L){var Q=this.m.getComponent(b.va);Q&&(ba.makeRotationFromEuler(P.set(Q.Pd*M,Q.ud*M,Q.Fe*M,Q.Ee)),L.set(0,0,1).applyMatrix4(ba))};f.prototype.RJ=function(){this.Sz=m();this.nj=1;this.dw=this.ew=this.gw=this.fw=this.cw=0;this.Hg=this.aE=this.bE=this.cE=this.ZD=this.YD=void 0};f.prototype.tK=function(L,Q,Y,aa,ca){var fa=m();this.nj=fa-this.Sz;this.Sz= 1961fa;this.dw=L;this.ew=Q;this.gw=Y;this.fw=aa;this.cw=ca};f.prototype.Jya=function(){this.nj&&(this.aE=this.dw/this.nj,this.bE=this.ew/this.nj,this.cE=this.gw/this.nj,this.ZD=this.fw/this.nj,this.YD=this.cw/this.nj,this.Hg=1)};f.prototype.eAa=function(){void 0!==this.o.get("minHeight")&&(void 0===this.oi&&this.E0(),void 0!==this.oi&&this.oi<this.o.get("minHeight")&&(this.oi=this.o.get("minHeight")),this.pAa())};f.prototype.Et=function(){this.oi=this.$k=void 0;this.EQ&&(clearTimeout(this.EQ),this.EQ= 1962null)};f.prototype.Qsa=function(){this.OI=2E3;this.zO=void 0;this.m.P.Ta()};f.prototype.ARa=function(){this.OI=0;this.zO=Infinity;this.m.P.Ta()};f.prototype.Rda=function(){this.oj||void 0!==this.oi||this.EQ||(this.EQ=setTimeout(function(){this.EQ=null;this.E0()}.bind(this),0))};f.prototype.E0=function(){var L=this.pO();void 0!==L?this.apa(L):this.DQ()};f.prototype.apa=function(L){var Q=this.o.get("minHeight")||L;this.oi=Math.max(L,Q);this.DQ();this.$k=this.o.get("y")+this.oi-L};f.prototype.DQ=function(){if(this.oi)this.gF= 1963Math.min(10,Math.max(this.oi||0,.1));else{this.Eq(da);this.RSa(ea);var L=this.dba(da,ea);this.gF=L.length?da.distanceTo(L[0].point):da.y-(this.o.get("minY")||0)}this.gF=Math.max(Math.abs(this.gF||0),.1)};f.prototype.pAa=function(){this.qAa||void 0===this.oi||(this.qAa=setTimeout(function(){this.qAa=null;var L=this.pO();void 0!==L&&void 0!==this.oi&&(L=this.oi-L,this.zO=0==this.OI?Infinity:Math.abs(L/this.OI),this.$k=this.o.get("y")+L,0!==L&&this.m.P.Ta())}.bind(this),0))};f.prototype.pO=function(){if(this.o)return this.Eq(da), 1964this.vTa(da.x,da.y,da.z)};f.prototype.vTa=function(L,Q,Y){var aa=this.dba(da.set(L,Q,Y),ea.set(0,-1,0));if(0<aa.length)return aa[0].distance;aa=this.dba(da.set(L,Q+1E3,Y),ea.set(0,-1,0));if(0<aa.length)return aa[aa.length-1].distance-1E3};f.prototype.dba=function(L,Q){T.ray.origin.copy(L);T.ray.direction.copy(Q);return T.intersectObjects(this.QD(),!1)};f.prototype.IO=function(L,Q){T.setFromCamera(L,Q);return T.intersectObjects(this.QD(),!1)};f.prototype.QD=function(){var L=this.m&&g.Cf(this.m);if(!L)return[]; 1965var Q=[];L.traverse(function(Y){Y.isSprite||Y.isLine||Q.push(Y)});return Q};f.prototype.Eq=function(L){L.set(0,0,0);this.o&&(L.applyMatrix4(ba.makeTranslation(0,0,this.o.get("distance"))),L.applyMatrix4(ba.makeRotationFromEuler(P.set(this.o.get("pitch")*M,-this.o.get("yaw")*M,0*M,"YXZ"))),L.applyMatrix4(ba.makeTranslation(this.o.get("x"),this.o.get("y"),this.o.get("z"))))};f.prototype.RSa=function(L){this.o?(ba.makeRotationFromEuler(P.set(this.o.get("pitch")*M,-this.o.get("yaw")*M,0,"YXZ")),L.set(0, 19660,-1).applyMatrix4(ba)):L.set(0,0,-1)};var U=[h.na.gj,h.na.Qh,h.na.ab,h.na.tb,h.na.fo,h.na.rv,h.na.Yu,h.na.yv,h.na.Q,h.na.E],V=["minHeight"],W="minYaw maxYaw yaw minPitch maxPitch pitch minX maxX x minY maxY y minZ maxZ z distance easingSpeed".split(" "),K=["minFov","maxFov","fov"],M=Math.PI/180,S=180/Math.PI,X=1E-6,ba=new THREE.Matrix4,da=new THREE.Vector3(0,0,0),ea=new THREE.Vector3(0,0,0),G=new THREE.Vector2(0,0),P=new THREE.Euler,T=new THREE.Raycaster;f.prototype.dispose=function(){this.sD(); 1967this.nm(null);this.Aba();this.fca();this.Oq.Ca()};f.$a=function(L){L.I(b.gv).manager=new f(L)};f.Ca=function(L){var Q=L.getComponent(b.gv);Q.manager.dispose();Q.manager=null;L.ha(b.gv)};
1967f.update=function(L){L.getComponent(b.gv).manager.update()};f.frame=function(L,Q,Y){L.getComponent(b.gv).manager.frame(Q,Y)};return f}); 1968define("oS","require lQ pw bs fS cv lG ph fG oJ pK ix bh".split(" "),function(a){function f(C){this.m=C;this.zba(E);this.eca();this.Oq=new d(C);this.Xk=new THREE.Matrix4;this.fF=.05;this.am=.25;this.Fk=this.Vj=this.Gk=this.zn=this.yn=0;this.aE=this.bE=this.cE=this.ZD=this.YD=this.Sz=this.nj=this.dw=this.ew=this.gw=this.fw=this.cw=void 0;this.Waa=1E3;this.Axa=720;this.qza=4;this.nta=720;this.Bba=2;this.Fa=null;this.OE(p.bz);this.update()}var l=a("lQ"),m=a("pw"),k=a("bs"),c=a("fS"),h=a("cv"),g=a("lG"), 1969b=a("ph"),d=a("fG"),e=a("oJ"),n=a("pK"),q=a("ix"),p=a("bh");l.L1(f,[g,n,q]);f.prototype.update=function(){var C=this.m.getComponent(c.LC);this.nm(C&&C.properties);this.Oq.mM(C&&C.properties,"moving");var J=(!C.VK||!b.Sia(this.m.P))&&C.enabled;this.c0(C&&(J?C.zg:null));this.WO(!!C&&J&&C.wB);J||this.yE();J&&C.wB||(this.zn=this.yn=this.Fk=this.Vj=this.Gk=0)};f.prototype.frame=function(C){this.Hg&&(this.Hg=Math.max(0,this.Hg-C/this.Waa),this.Fa.setX(this.o.get("x")+this.aE*this.Hg),this.Fa.setY(this.o.get("y")+ 1970this.bE*this.Hg),this.Fa.setZ(this.o.get("z")+this.cE*this.Hg),this.Fa.Om(this.o.get("yaw")+this.ZD*this.Hg),this.Fa.Ey(this.o.get("pitch")+this.YD*this.Hg),this.m.P.Ta());if(this.zn||this.yn||this.Fk||this.Vj||this.Gk)C/=1E3,this.jca(this.Fk*C,this.Vj*C,this.Gk*C,this.zn*C,this.yn*C);this.Oq.Tla()};f.prototype.JP=function(){this.Yfa()};f.prototype.Yfa=function(){this.zn=this.yn=this.Gk=this.Vj=this.Fk=0;var C=this.$f[k.na.fo]?1:this.$f[k.na.Yu]?-1:0,J=this.$f[k.na.yv]?1:this.$f[k.na.rv]?-1:0,D=this.$f[k.na.Q]? 19711:this.$f[k.na.E]?-1:0,O=this.$f[k.na.gj]?1:this.$f[k.na.Qh]?-1:0,R=this.$f[k.na.ab]?1:this.$f[k.na.tb]?-1:0;if(C||J||D||O||R){var U=this.wj?.2:1;C&&(this.Fk=-C*U*this.Bba*this.o.get("translationSpeed"));D&&(this.Vj=-D*U*this.Bba*this.o.get("translationSpeed"));J&&(this.Gk=-J*U*this.Bba*this.o.get("translationSpeed"));R&&(this.zn=R*U*this.nta*this.o.get("rotationSpeed"));O&&(this.yn=-O*U*this.nta*this.o.get("rotationSpeed"));this.m.P.Ta()}};f.prototype.uZ=function(){this.OE(p.Uh);this.Ei=!0;this.Sz= 1972(new Date).getTime();this.nj=1;this.dw=this.ew=this.gw=this.fw=this.cw=0;this.Hg=this.aE=this.bE=this.cE=this.ZD=this.YD=void 0;this.m.P.Ta()};f.prototype.tZ=function(C,J){if(this.Ei){var D=(C*C+J*J)/2500;D=1<D?1/Math.sqrt(D):1;C*=D;J*=D;D=(new Date).getTime();this.nj=D-this.Sz;this.Sz=D;this.dw=this.ew=this.gw=this.fw=this.cw=0;D=this.nP;this.wj&&(D=!D);D?(this.fw=+C*this.o.get("rotationSpeed")*this.Axa/this.nw(),this.cw=-J*this.o.get("rotationSpeed")*this.Axa/this.nw(),this.zxa(this.fw,this.cw)): 1973(this.Vra(C*this.qza/this.nw(),J*this.qza/this.nw(),u),this.dw=u.x,this.ew=u.y,this.gw=u.z,this.zfa(this.dw,this.ew,this.gw));this.Fa.bj(this.am)}};f.prototype.Vra=function(C,J,D){var O=this.m.getComponent(c.va);D.set(-C*this.o.get("translationSpeed"),+J*this.o.get("translationSpeed"),0*this.o.get("translationSpeed"));D.applyMatrix4(z.makeRotationFromEuler(y.set(O.Pd*r,O.ud*r,O.Fe*r,O.Ee)));D.multiplyScalar(this.o.get("distance"))};f.prototype.yE=function(){this.r_(p.Uh);this.Ei&&(this.Ei=!1,this.nj&& 1974(this.aE=this.dw/this.nj,this.bE=this.ew/this.nj,this.cE=this.gw/this.nj,this.ZD=this.fw/this.nj,this.YD=this.cw/this.nj,this.Hg=1,this.Fa.bj(this.am)),this.Sz=void 0)};f.prototype.vZ=function(C){this.Fa.KG(this.o.get("distance")-C*this.o.get("distance")*this.o.get("translationSpeed"));this.Fa.bj(this.fF)};f.prototype.sJ=function(C,J){if("center"==this.o.get("doubleClickAction")){var D=h.Cf(this.m),O=h.Or(this.m);O&&D&&(w.set(C,J),this.pP(w),C=this.IO(w,O),0!=C.length&&(C=C[0].point,J=u.setFromMatrixPosition(O.matrixWorld).sub(C), 1975O=J.length(),x.setFromUnitVectors(v.set(0,0,1),J.normalize()),y.setFromQuaternion(x,"YXZ"),J=y.x*t,this.Fa.Om(-y.y*t),this.Fa.Ey(J),this.Fa.KG(O),this.Fa.setX(C.x),this.Fa.setY(C.y),this.Fa.setZ(C.z),this.Fa.bj(this.fF)))}};f.prototype.Oua=function(){this.Rsa=this.o.get("distance");this.Ei=!1};f.prototype.Aca=function(C,J,D){this.Vra(C/this.nw(),J/this.nw(),u);this.zfa(u.x,u.y,u.z);this.Fa.KG(this.Rsa/D);this.Fa.bj(this.am)};f.prototype.Bca=function(){this.Rsa=this.o.get("distance")};f.prototype.jca= 1976function(C,J,D,O,R){var U=this.m.getComponent(c.va);U&&(z.makeRotationFromEuler(y.set(0,U.ud*r,0,U.Ee)),u.set(C,J,D).applyMatrix4(z).multiplyScalar(this.o.get("distance")),this.zfa(u.x,u.y,u.z),this.zxa(O,R),this.Fa.bj(this.am))};f.prototype.zfa=function(C,J,D){this.Fa.setX(this.o.get("x")+C);this.Fa.setY(this.o.get("y")+J);this.Fa.setZ(this.o.get("z")+D)};f.prototype.zxa=function(C,J){this.Fa.Om(this.o.get("yaw")+C);this.Fa.Ey(this.o.get("pitch")+J)};f.prototype.nm=function(C){this.o!=C&&(this.o&& 1977(this.Fa=null,I.forEach(function(J){this.o.unbind(m.F(J),this.Hx,this,!1)}.bind(this)),A.forEach(function(J){this.o.unbind(m.F(J),this.vr,this,!1)}.bind(this)),this.o.set("userInteracting",!1)),this.o=C)&&(this.o.set("userInteracting",!1),this.Fa=new e(this.o),I.forEach(function(J){this.o.bind(m.F(J),this.Hx,this,!1)}.bind(this)),A.forEach(function(J){this.o.bind(m.F(J),this.vr,this,!1)}.bind(this)),this.Hx(),this.vr())};f.prototype.IO=function(C,J){B.setFromCamera(C,J);return B.intersectObjects(this.QD(), 1978!1)};f.prototype.QD=function(){var C=this.m&&h.Cf(this.m);
1978if(!C)return[];var J=[];C.traverse(function(D){D.isSprite||D.isLine||J.push(D)});return J};f.prototype.Hx=function(){if(this.m&&this.o){var C=this.m.J(c.va,!0);C.translationX=this.o.get("x");C.translationY=this.o.get("y");C.He=this.o.get("z");C.ud=-this.o.get("yaw");C.Pd=this.o.get("pitch");C.Fe=0;C.Ee="YXZ";C.positionX=0;C.positionY=0;C.positionZ=this.o.get("distance");C.easing=this.o.get("easing")}};f.prototype.vr=function(){this.m&&this.o&& 1979(this.m.J(c.PerspectiveCamera,!0).fov=this.o.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,B=new THREE.Raycaster,E=[k.na.gj,k.na.Qh,k.na.ab,k.na.tb,k.na.fo,k.na.rv,k.na.Yu,k.na.yv,k.na.Q,k.na.E],I="easing minYaw maxYaw yaw minPitch maxPitch pitch minDistance maxDistance distance minX maxX x minY maxY y minZ maxZ z".split(" "),A=["minFov","maxFov","fov"];f.prototype.dispose= 1980function(){this.nm(null);this.Aba();this.fca();this.Oq.Ca()};f.$a=function(C){C.I(c.nv).manager=new f(C)};f.Ca=function(C){var J=C.getComponent(c.nv);J.manager.dispose();J.manager=null;C.ha(c.nv)};f.update=function(C){C.getComponent(c.nv).manager.update()};f.frame=function(C,J,D){C.getComponent(c.nv).manager.frame(J,D)};return f}); 1981define("ic","require exports oQ cv fS three.mod".split(" "),function(a,f,l,m,k,c){a=function(){function b(d){this.G=d;this.properties=this.G.getComponent(k.vv).properties;this.ll()&&this.m3a();this.update()}b.prototype.update=function(){this.properties=this.G.getComponent(k.vv).properties;this.ll()||this.kBa()};b.prototype.frame=function(){this.ll()?this.l3a():this.kBa()};b.prototype.m3a=function(){var d=this.G.getComponent(k.vv).fg||1;this.tCa();l.setPosition({x:this.properties.get("x"),y:this.properties.get("y"), 1982z:this.properties.get("z"),yaw:this.properties.get("yaw")});l.setScale(d)};b.prototype.l3a=function(){this.tCa();l.setPosition({x:this.properties.get("x"),y:this.properties.get("y"),z:this.properties.get("z"),yaw:void 0});this.properties.set("yaw",-h.setFromQuaternion(l.bg).y*g)};b.prototype.kBa=function(){var d=this.G.J(k.va,!0);d.translationX=this.properties.get("x");d.translationY=this.properties.get("y");d.He=this.properties.get("z");d.ud=-this.properties.get("yaw");d.Pd=this.properties.get("pitch"); 1983d.Fe=0;d.Ee="YXZ";d.positionX=0;d.positionY=0;d.positionZ=this.properties.get("distance",0);d.easing=0;this.G.J(k.PerspectiveCamera,!0).fov=this.properties.get("fov")};b.prototype.tCa=function(){var d=m.Cf(this.G),e=this.G.getComponent(k.Lj);e=e&&e.camera;l.Iu!==e&&l.Yka(l.mh,d,e,l.JV.Qma)};b.prototype.ll=function(){return this.G.getComponent(k.PerspectiveCamera).ll};b.$a=function(d){d.I(k.Qs).manager=new b(d)};b.update=function(d){d.getComponent(k.Qs).manager.update()};b.frame=function(d,e,n){d.getComponent(k.Qs).manager.frame(e, 1984n)};b.Ca=function(d){d.getComponent(k.Qs).manager=null;d.ha(k.Qs)};return b}();var h=new c.Euler,g=180/Math.PI;return a}); 1985define("kR","require exports pw oQ mC fS three.mod".split(" "),function(a,f,l,m,k,c,h){a=function(){function y(z){this.locked=!0;this.tp=!1;this.Pha=this.gl=this.we=null;this.f2=new h.Matrix4;this.QF=new h.Vector3;this.YL=new Map;this.fg=1;this.cC=0;this.ws=!1;this.qk=0;this.Aj=null;this.NB=new h.Vector3;this.td=new h.Vector3;this.K3=new h.Quaternion;this.bU=this.cU=this.dU=0;this.Lx=new h.Box3(new h.Vector3(-Infinity,-Infinity,-Infinity),new h.Vector3(Infinity,Infinity,Infinity));this.G=z;this.Dj= 1986this.Dj.bind(this);this.Ir=new k(this.G);m.N.bind(l.ba,this.xe,this,!0);this.update()}y.prototype.update=function(){var z=this.G.getComponent(c.IH),B=(null===z||void 0===z?void 0:z.locked)||!1;!B&&this.locked&&(this.tp=!0);this.locked=B;this.fg=(null===z||void 0===z?void 0:z.fg)||1;this.qk=null===z||void 0===z?void 0:z.qk;this.dC();this.properties=z.properties;this.locked||(m.setScale(this.fg),this.tS(),this.Dj());this.tp&&(g.setFromQuaternion(m.fH),m.setPosition({pitch:g.x*w,roll:g.z*w}),this.EF())}; 1987y.prototype.frame=function(z){if(!this.locked){this.us();this.bV();this.EF();if(!this.properties.get("controllingPosition")){this.td.copy(m.Bc);this.K3.copy(m.bg);var B;(B=this.lS())||(B=this.aha(z));B||(B=this.mS(z));B&&(z={},m.Bc.equals(this.td)||(z.x=this.td.x,z.y=this.td.y,z.z=this.td.z),m.bg.equals(this.K3)||(g.setFromQuaternion(this.K3,"YXZ"),z.yaw=-g.y*w,z.pitch=g.x*w,z.roll=g.z*w),m.setPosition(z))}this.qS();this.NK();this.tp=!1}};y.prototype.dispose=function(){m.N.unbind(l.ba,this.xe,this); 1988this.properties.set("userInteracting",!1);this.dC();this.lh();this.GU([])};y.prototype.dC=function(){y.fz.forEach(function(z){var B;null===(B=this.properties)||void 0===B?void 0:B.unbind(l.F(z),this.Dj,this)}.bind(this))};y.prototype.tS=function(){y.fz.forEach(function(z){var B;null===(B=this.properties)||void 0===B?void 0:B.bind(l.F(z),this.Dj,this,!0)}.bind(this))};y.prototype.Dj=function(){this.Lx.min.set(this.properties.get("minX",-Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ", 1989-Infinity));this.Lx.max.set(this.properties.get("maxX",Infinity),this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};y.prototype.EF=function(){var z=this.properties.get("x"),B=this.properties.get("y"),E=this.properties.get("z"),I=this.properties.get("yaw"),A=this.properties.get("pitch"),C=this.properties.get("distance");if(z!==this.NB.x||B!==this.NB.y||E!==this.NB.z||I!==this.dU||A!==this.cU||C!==this.bU)this.NB.set(z,B,E),n.identity(),n.multiply(q.makeTranslation(z,B,E)), 1990n.multiply(q.makeRotationFromEuler(g.set(A*x,-I*x,0,"YXZ"))),n.multiply(q.makeTranslation(0,0,C)),n.decompose(d,b,e),g.setFromQuaternion(b,"YXZ"),m.setPosition({x:d.x,y:d.y,z:d.z,yaw:-g.y*w})};y.prototype.qS=function(){d.copy(m.Bc).sub(this.NB);var z=d.length();g.setFromQuaternion(b.setFromUnitVectors(u,d.multiplyScalar(1/z)),"YXZ");this.properties.set("x",this.NB.x);this.properties.set("y",this.NB.y);this.properties.set("z",this.NB.z);this.properties.set("yaw",-g.y*w);this.properties.set("pitch", 1991g.x*w);this.properties.set("roll",g.z*w);this.properties.set("distance",z)};y.prototype.NK=function(){this.dU=this.properties.get("yaw");this.cU=this.properties.get("pitch");this.bU=this.properties.get("distance")};y.prototype.us=function(){this.GU((y.iC.get(this.G.P)||[]).map(function(z){return z.getComponent(c.Cc)}))};y.prototype.GU=function(z){var B=[],E=[];
1991this.YL.forEach(function(I){-1===z.indexOf(I)&&B.push(I)}.bind(this));z.forEach(function(I){this.YL.has(I.N)||E.push(I)}.bind(this));this.gl&& 1992-1===z.indexOf(this.gl)&&this.lh();B.forEach(function(I){this.eU(I.N);this.YL.delete(I.N)}.bind(this));E.forEach(function(I){this.jS(I.N);this.YL.set(I.N,I)}.bind(this));this.we=z.find(function(I){return I.Zi})||null};y.prototype.jS=function(z){z.bind(l.ma,this.Zr,this,!0);z.bind(l.gb,this.$r,this,!0)};y.prototype.eU=function(z){z.unbind(l.ma,this.Zr,this);z.unbind(l.gb,this.$r,this)};y.prototype.xe=function(){this.G.J(c.iq)};y.prototype.Zr=function(z){this.properties.get("inMandatorySequence")|| 1993z.data.qT||"other"==z.data.type||this.properties.get("clickTranslationDisabled")||(z=this.YL.get(z.source),z=this.Ir.tT(z),0!=z.length&&(this.Aj=z[0].point))};y.prototype.$r=function(z){if(!this.properties.get("inMandatorySequence")&&!this.properties.get("mouseDisabled")){this.lh();z=z.source;var B=this.YL.get(z),E=this.Ir.tT(B);0!=E.length&&(this.gl=B,this.Pha=z,this.Pha.bind(l.Eb,this.lh,this,!0),this.QF.copy(E[0].point),this.f2.copy(this.gl.matrixWorld))}};y.prototype.lh=function(){this.gl&&(this.gl.N.unbind(l.Eb, 1994this.lh,this),this.gl=this.Pha=null)};y.prototype.lS=function(){if(!this.Aj)return!1;this.td.copy(this.Aj).sub(m.Bc).multiplyScalar(.5).add(m.Bc);this.Aj=null;return!0};y.prototype.mS=function(z){return this.nS()?!0:this.oS(z)?!0:!1};y.prototype.nS=function(){if(!this.we)return!1;if(0===this.we.Wb.y&&0===this.we.Wb.x)return this.cC=Date.now(),this.ws=!1;if(this.ws)return!0;var z=Math.sqrt(this.we.Wb.y*this.we.Wb.y+this.we.Wb.x*this.we.Wb.x)*this.properties.get("rotationSpeed",1),B=Math.atan2(-this.we.Wb.y, 1995this.we.Wb.x),E=Math.abs(B)<.25*Math.PI;B=Math.abs(B)>.75*Math.PI;return 0!==this.qk&&.95<z&&(E||B)&&100>Date.now()-this.cC?(this.ws=!0,z=this.qk*(B?-1:1),z=-g.setFromQuaternion(m.bg,"YXZ").y*w+z,m.setPosition({yaw:z}),!0):!1};y.prototype.oS=function(z){if(!this.we||0===this.we.Wb.y&&0===this.we.Wb.x)return!1;z=4E3/3600/this.fg*this.properties.get("translationSpeed",1)*(this.we.bH?3:1)*z/1E3;var B=d.set(0,0,-1).applyQuaternion(m.bg),E=e.set(1,0,0).applyQuaternion(m.bg);B.normalize().multiplyScalar(-this.we.Wb.y* 1996z);E.normalize().multiplyScalar(this.we.Wb.x*z);this.td.set(m.Bc.x+B.x+E.x,m.Bc.y+B.y+E.y,m.Bc.z+B.z+E.z);return!0};y.prototype.aha=function(z){if(!this.gl)return!1;this.bha(z);z=n.copy(this.f2);var B=q.copy(this.gl.matrixWorld);B=r.copy(p.compose(m.Bc,m.bg,v)).invert().multiply(B);t.copy(z).multiply(B.invert()).decompose(this.td,this.K3,d);return!0};y.prototype.bha=function(z){if(!this.gl||0===this.gl.Wb.y&&0===this.gl.Wb.x)return!1;z=90*z/1E3*this.properties.get("rotationSpeed",1);var B=p.makeRotationFromQuaternion(b.setFromRotationMatrix(this.f2)), 1997E=r.copy(B).invert(),I=q.identity();I.multiply(n.makeTranslation(this.QF.x,this.QF.y,this.QF.z));I.multiply(B);I.multiply(n.makeRotationFromEuler(g.set(this.gl.Wb.y*z*x,this.gl.Wb.x*z*x,0,"YXZ")));I.multiply(E);I.multiply(n.makeTranslation(-this.QF.x,-this.QF.y,-this.QF.z));this.f2.premultiply(I);return!0};y.prototype.bV=function(){this.properties.get("inMandatorySequence")?this.properties.set("userInteracting",!1):this.gl?this.properties.set("userInteracting",!0):this.Aj?this.properties.set("userInteracting", 1998!0):!this.we||0===this.we.Wb.y&&0===this.we.Wb.x?this.properties.set("userInteracting",!1):this.properties.set("userInteracting",!0)};y.QG=function(z,B){this.iC.set(z,B)};y.$a=function(z){z.I(c.iq).manager=new y(z)};y.update=function(z){z.getComponent(c.iq).manager.update()};y.frame=function(z,B,E){z.getComponent(c.iq).manager.frame(B,E)};y.Ca=function(z){var B=z.getComponent(c.iq);B.manager.dispose();B.manager=null;z.ha(c.iq)};y.iC=new Map;y.fz="minX maxX minY maxY minZ maxZ".split(" ");return y}(); 1999var g=new h.Euler(0,0,0,"YXZ"),b=new h.Quaternion,d=new h.Vector3,e=new h.Vector3,n=new h.Matrix4,q=new h.Matrix4,p=new h.Matrix4,r=new h.Matrix4,t=new h.Matrix4,u=new h.Vector3(0,0,1),v=new h.Vector3(1,1,1),w=180/Math.PI,x=Math.PI/180;return a}); 2000define("hu","require exports pw oQ mC fS three.mod".split(" "),function(a,f,l,m,k,c,h){a=function(){function x(y){this.locked=!0;this.tp=!1;this.aj=this.mU=this.we=null;this.vja=new h.Matrix4;this.wG=[];this.fg=1;this.cC=0;this.ws=!1;this.qk=0;this.Aj=null;this.cma=!1;this.td=new h.Vector3;this.bU=this.cU=this.dU=this.aHa=this.$Ga=this.ZGa=0;this.Lx=new h.Box3(new h.Vector3(-Infinity,-Infinity,-Infinity),new h.Vector3(Infinity,Infinity,Infinity));this.G=y;this.Dj=this.Dj.bind(this);this.Ir=new k(this.G); 2001m.N.bind(l.ba,this.xe,this,!0);this.update()}x.prototype.update=function(){var y=this.G.getComponent(c.JH),z=(null===y||void 0===y?void 0:y.locked)||!1;!z&&this.locked&&(this.tp=!0);this.locked=z;this.fg=(null===y||void 0===y?void 0:y.fg)||1;this.qk=null===y||void 0===y?void 0:y.qk;this.dC();this.properties=y.properties;this.locked||(m.setScale(this.fg),this.tS(),this.Dj());this.tp&&(g.setFromQuaternion(m.fH),m.setPosition({pitch:g.x*v,roll:g.z*v}),this.EF(!0))};x.prototype.frame=function(y){if(!this.locked){this.us(); 2002this.bV();this.EF(!1);if(!this.properties.get("controllingPosition")){this.td.copy(m.Bc);var z=this.EB=-g.setFromQuaternion(m.bg).y*v;var B=this.lS();this.cma&&this.aj&&this.vja.copy(this.aj.matrixWorld);this.cma=!1;B||(B=this.cma=this.bha(y));B||(B=this.aha(y));B||(B=this.mS(y));B&&(y={},m.Bc.equals(this.td)||(y.x=this.td.x,y.y=this.td.y,y.z=this.td.z),this.EB!=z&&(y.yaw=this.EB),m.setPosition(y))}this.qS();this.NK();this.tp=!1}};x.prototype.dispose=function(){m.N.unbind(l.ba,this.xe,this);this.properties.set("userInteracting", 2003!1);this.dC();this.lh();this.GU([])};x.prototype.dC=function(){x.fz.forEach(function(y){var z;null===(z=this.properties)||void 0===z?void 0:z.unbind(l.F(y),this.Dj,this)}.bind(this))};x.prototype.tS=function(){x.fz.forEach(function(y){var z;null===(z=this.properties)||void 0===z?void 0:z.bind(l.F(y),this.Dj,this,!0)}.bind(this))};x.prototype.Dj=function(){this.Lx.min.set(this.properties.get("minX",-Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ",-Infinity));this.Lx.max.set(this.properties.get("maxX", 2004Infinity),this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};x.prototype.EF=function(y){var z=this.properties.get("x"),B=this.properties.get("y"),E=this.properties.get("z"),I=this.properties.get("controllingPosition"),A=this.properties.get("yaw"),C=this.properties.get("pitch"),J=this.properties.get("distance");if(z!==this.ZGa||B!==this.$Ga||E!==this.aHa||A!==this.dU||C!==this.cU||J!==this.bU)n.identity(),n.multiply(q.makeTranslation(z,B,E)),n.multiply(q.makeRotationFromEuler(g.set(C* 2005w,-A*w,0,"YXZ"))),n.multiply(q.makeTranslation(0,0,J)),n.decompose(d,b,e),g.setFromQuaternion(b,"YXZ"),m.setPosition({x:d.x,y:d.y,z:d.z,yaw:!y||I?void 0:-g.y*v})};x.prototype.qS=function(){this.properties.set("x",m.Bc.x);this.properties.set("y",m.Bc.y);this.properties.set("z",m.Bc.z);g.setFromQuaternion(m.bg);this.properties.set("yaw",-g.y*v);this.properties.set("pitch",g.x*v);this.properties.set("roll",g.z*v);this.properties.set("distance",0)};x.prototype.NK=function(){this.ZGa=this.properties.get("x"); 2006this.$Ga=this.properties.get("y");this.aHa=this.properties.get("z");this.dU=this.properties.get("yaw");this.cU=this.properties.get("pitch");this.bU=this.properties.get("distance")};x.prototype.us=function(){this.GU((x.iC.get(this.G.P)||[]).map(function(y){return y.getComponent(c.Cc)}))};x.prototype.GU=function(y){var z=[],B=[];this.wG.forEach(function(E){-1===y.indexOf(E)&&z.push(E)}.bind(this));
2006y.forEach(function(E){-1===this.wG.indexOf(E)&&B.push(E)}.bind(this));this.aj&&-1===y.indexOf(this.aj)&& 2007this.lh();z.forEach(function(E){this.eU(E);this.wG.splice(this.wG.indexOf(E),1)}.bind(this));B.forEach(function(E){this.jS(E);this.wG.push(E)}.bind(this));this.we=y.find(function(E){return E.Zi})||null;this.mU=y.find(function(E){return!E.Zi})||this.we};x.prototype.jS=function(y){y.N.bind(l.gb,this.$r,this,!0);y.N.bind(l.ma,this.Zr,this,!0)};x.prototype.eU=function(y){y.N.unbind(l.gb,this.$r,this);y.N.unbind(l.ma,this.Zr,this)};x.prototype.xe=function(){this.G.J(c.jq)};x.prototype.Zr=function(y){if(!(this.properties.get("inMandatorySequence")|| 2008y.data.qT||"other"==y.data.type||this.properties.get("clickTranslationDisabled"))){var z=this.wG.find(function(B){return y.source===B.N});z&&(z=this.Ir.tT(z),0!=z.length&&(this.Aj=z[0].point))}};x.prototype.$r=function(y){if(!this.properties.get("inMandatorySequence")&&!this.properties.get("mouseDisabled")){this.lh();var z=this.wG.find(function(B){return y.source===B.N});z&&(this.aj=z,this.aj.N.bind(l.Eb,this.lh,this,!0),this.vja.copy(this.aj.matrixWorld),z=this.Ir.tT(z),
20080!=z.length&&(this.CB=(new h.Vector3).copy(z[0].point)))}}; 2009x.prototype.lh=function(){this.aj&&(this.aj.N.unbind(l.Eb,this.lh,this),this.CB=this.aj=null)};x.prototype.lS=function(){if(!this.Aj)return!1;this.td.copy(this.Aj).sub(m.Bc).multiplyScalar(.5).add(m.Bc);this.Aj=null;return!0};x.prototype.mS=function(y){return this.nS()?!0:this.oS(y)?!0:!1};x.prototype.nS=function(){var y=this.mU;if(!y)return!1;if(0===y.Wb.y&&0===y.Wb.x)return this.cC=Date.now(),this.ws=!1;if(this.ws)return!0;var z=Math.sqrt(y.Wb.y*y.Wb.y+y.Wb.x*y.Wb.x),B=Math.atan2(-y.Wb.y,y.Wb.x); 2010y=Math.abs(B)<.25*Math.PI;B=Math.abs(B)>.75*Math.PI;return 0!==this.qk&&.95<z&&(y||B)&&100>Date.now()-this.cC?(this.ws=!0,this.EB+=this.qk*(B?-1:1),!0):!1};x.prototype.oS=function(y){if(!this.we||0===this.we.Wb.y&&0===this.we.Wb.x)return!1;y=1E4/3600/this.fg*this.properties.get("translationSpeed",1)*(this.we.bH?3:1)*y/1E3;this.we.matrixWorld.decompose(d,b,e);var z=d.set(0,0,-1).applyQuaternion(b),B=e.set(1,0,0).applyQuaternion(b);z.normalize().multiplyScalar(-this.we.Wb.y*y);B.normalize().multiplyScalar(this.we.Wb.x* 2011y);this.td.set(m.Bc.x+z.x+B.x,m.Bc.y+z.y+B.y,m.Bc.z+z.z+B.z);return!0};x.prototype.aha=function(){if(!this.aj)return!1;var y=this.PBa(n.copy(this.vja)),z=this.PBa(q.copy(this.aj.matrixWorld));z=r.copy(p.compose(m.Bc,m.bg,u)).invert().multiply(z);t.copy(y).multiply(z.invert()).decompose(this.td,b,d);this.EB=-g.setFromQuaternion(b).y*v;return!0};x.prototype.PBa=function(y){return y.decompose(d,b,e).compose(d,b.identity(),e)};x.prototype.bha=function(y){if(!this.aj||!this.CB||0===this.aj.Wb.y&&0===this.aj.Wb.x)return!1; 2012y=90*y/1E3;var z=n.compose(m.Bc,m.bg,u),B=q.identity();B.multiply(p.makeTranslation(this.CB.x,this.CB.y,this.CB.z));B.multiply(p.makeRotationY(-this.EB*w));B.multiply(p.makeRotationFromEuler(g.set(this.aj.Wb.y*y*w,this.aj.Wb.x*y*w,0,"YXZ")));B.multiply(p.makeRotationY(this.EB*w));B.multiply(p.makeTranslation(-this.CB.x,-this.CB.y,-this.CB.z));z.premultiply(B);z.decompose(this.td,b,d);this.EB=-g.setFromQuaternion(b).y*v;return!0};x.prototype.bV=function(){this.properties.get("inMandatorySequence")? 2013this.properties.set("userInteracting",!1):this.aj?this.properties.set("userInteracting",!0):this.Aj?this.properties.set("userInteracting",!0):!this.we||0===this.we.Wb.y&&0===this.we.Wb.x?this.properties.set("userInteracting",!1):this.properties.set("userInteracting",!0)};x.QG=function(y,z){this.iC.set(y,z)};x.$a=function(y){y.I(c.jq).manager=new x(y)};x.update=function(y){y.getComponent(c.jq).manager.update()};x.frame=function(y,z,B){y.getComponent(c.jq).manager.frame(z,B)};x.Ca=function(y){var z= 2014y.getComponent(c.jq);z.manager.dispose();z.manager=null;y.ha(c.jq)};x.iC=new Map;x.fz="minX maxX minY maxY minZ maxZ".split(" ");return x}();var g=new h.Euler(0,0,0,"YXZ");new h.Euler(0,0,0,"YXZ");var b=new h.Quaternion,d=new h.Vector3,e=new h.Vector3,n=new h.Matrix4,q=new h.Matrix4,p=new h.Matrix4,r=new h.Matrix4,t=new h.Matrix4,u=new h.Vector3(1,1,1),v=180/Math.PI,w=Math.PI/180;return a}); 2015define("dQ","require exports pw oQ mC fS three.mod".split(" "),function(a,f,l,m,k,c,h){a=function(){function r(t){this.locked=!0;this.tp=!1;this.mU=this.ty=this.Bp=null;this.fg=1;this.cC=0;this.ws=!1;this.qk=0;this.Aj=null;this.td=new h.Vector3;this.PS=[];this.ks=new h.Vector3;this.Lx=new h.Box3(new h.Vector3(-Infinity,-Infinity,-Infinity),new h.Vector3(Infinity,Infinity,Infinity));this.G=t;this.Dj=this.Dj.bind(this);this.Ir=new k(this.G);m.N.bind(l.ba,this.xe,this,!0);this.update()}r.prototype.update= 2016function(){var t=this.G.getComponent(c.KH),u=(null===t||void 0===t?void 0:t.locked)||!1;!u&&this.locked&&(this.tp=!0);this.locked=u;this.fg=(null===t||void 0===t?void 0:t.fg)||1;this.qk=null===t||void 0===t?void 0:t.qk;this.dC();this.properties=t.properties;this.locked||(m.setScale(this.fg),this.tS(),this.Dj());this.tp&&(g.setFromQuaternion(m.fH),m.setPosition({x:this.properties.get("x"),y:this.properties.get("y"),z:this.properties.get("z"),yaw:this.properties.get("yaw"),pitch:g.x*p,roll:g.z*p}))}; 2017r.prototype.dC=function(){r.fz.forEach(function(t){var u;null===(u=this.properties)||void 0===u?void 0:u.unbind(l.F(t),this.Dj,this)}.bind(this))};r.prototype.tS=function(){r.fz.forEach(function(t){var u;null===(u=this.properties)||void 0===u?void 0:u.bind(l.F(t),this.Dj,this,!0)}.bind(this))};r.prototype.Dj=function(){this.Lx.min.set(this.properties.get("minX",-Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ",-Infinity));this.Lx.max.set(this.properties.get("maxX",Infinity), 2018this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};r.prototype.frame=function(t){this.locked||(this.us(),this.bV(),this.EF(),this.properties.get("controllingPosition")||(this.td.copy(m.Bc),this.lS()||this.mS(t),this.td.y=this.fBa(this.ks.y,this.T2(this.td.x,this.td.y,this.td.z),t),this.t4a()&&(this.td.copy(this.ks),this.td.y=this.fBa(this.ks.y,this.T2(this.td.x,this.td.y,this.td.z),t)),this.Lx.clampPoint(this.td,this.td),m.Bc.equals(this.td)||m.setPosition({x:this.td.x,y:this.td.y, 2019z:this.td.z,Ra:void 0})),this.qS(),this.NK(),this.y9a(),this.tp=!1)};r.prototype.y9a=function(){this.Ir.refresh();
2019this.PS.forEach(function(t){t.y=NaN})};r.prototype.dispose=function(){m.N.unbind(l.ba,this.xe,this);this.properties.set("userInteracting",!1);this.dC()};r.prototype.EF=function(){var t=this.properties.get("x"),u=this.properties.get("y"),v=this.properties.get("z");if(this.ks.x!==t||this.ks.y!==u||this.ks.z!==v)this.properties.get("controllingPosition")||(u=this.T2(t,u,v)),m.setPosition({x:t, 2020y:u,z:v,yaw:void 0}),this.NK()};r.prototype.qS=function(){this.properties.set("x",m.Bc.x);this.properties.set("y",m.Bc.y);this.properties.set("z",m.Bc.z);g.setFromQuaternion(m.bg);this.properties.set("yaw",-g.y*p);this.properties.set("pitch",g.x*p);this.properties.set("roll",g.z*p)};r.prototype.NK=function(){this.ks.copy(m.Bc);this.YGa=this.lia(this.ks)};r.prototype.us=function(){var t=null,u=null;(r.iC.get(this.G.P)||[]).forEach(function(v){v=v.getComponent(c.Cc);v.Zi?t=v:u=v});this.fab(t,u)};r.prototype.fab= 2021function(t,u){this.Bp=t;this.mU=u;t=t?t.N:null;this.ty!==t&&(this.ty&&this.eU(this.ty),(this.ty=t)&&this.jS(this.ty))};r.prototype.jS=function(t){t.bind(l.ma,this.Zr,this,!0)};r.prototype.eU=function(t){t.unbind(l.ma,this.Zr,this)};r.prototype.xe=function(){this.G.J(c.kq)};r.prototype.Zr=function(t){if(this.Bp&&this.properties&&!this.properties.get("inMandatorySequence")&&!t.data.qT&&"other"!=t.data.type&&!this.properties.get("clickTranslationDisabled")&&"translate"==this.properties.get("doubleClickAction")&& 2022(t=this.Ir.tT(this.Bp),0!=t.length)){var u=t[0];if(u.face&&u.face.normal){t=b.copy(m.Bc);var v=d.copy(u.point);u=e.copy(u.face.normal).transformDirection(u.object.matrixWorld);if(Math.abs(Math.acos(u.dot(q)))<.25*Math.PI)v.y+=this.L2();else{u=n.copy(v).sub(t);var w=u.length(),x=.5*this.L2();if(w<x)return;v.sub(u.multiplyScalar(x/w))}v.y=this.T2(v.x,v.y,v.z);this.Ir.ZG(t,v)||(this.Aj=new h.Vector3(v.x,v.y,v.z))}}};r.prototype.lS=function(){if(!this.Aj)return!1;this.td.copy(this.Aj);this.Aj=null;return!0}; 2023r.prototype.mS=function(t){return this.nS()?!0:this.oS(t)?!0:!1};r.prototype.nS=function(){var t=this.mU;if(!t)return!1;if(0===t.Wb.y&&0===t.Wb.x)return this.cC=Date.now(),this.ws=!1;if(this.ws)return!0;var u=Math.sqrt(t.Wb.y*t.Wb.y+t.Wb.x*t.Wb.x),v=Math.atan2(-t.Wb.y,t.Wb.x);t=Math.abs(v)<.25*Math.PI;v=Math.abs(v)>.75*Math.PI;return 0!==this.qk&&.95<u&&(t||v)&&100>Date.now()-this.cC?(this.ws=!0,u=this.qk*(v?-1:1),u=-g.setFromQuaternion(m.bg,"YXZ").y*p+u,m.setPosition({x:void 0,y:void 0,z:void 0, 2024yaw:u}),!0):!1};r.prototype.oS=function(t){if(!this.Bp||0===this.Bp.Wb.y&&0===this.Bp.Wb.x)return!1;t=4E3/3600/this.fg*this.properties.get("translationSpeed",1)*(this.Bp.bH?3:1)*t/1E3;var u=b.set(0,0,-1).applyQuaternion(m.bg),v=d.crossVectors(u,q);u.y=0;v.y=0;u.normalize().multiplyScalar(-this.Bp.Wb.y*t);v.normalize().multiplyScalar(this.Bp.Wb.x*t);this.td.set(m.Bc.x+u.x+v.x,m.Bc.y,m.Bc.z+u.z+v.z);return!0};r.prototype.bV=function(){this.properties.get("inMandatorySequence")?this.properties.set("userInteracting", 2025!1):this.Aj?this.properties.set("userInteracting",!0):!this.Bp||0===this.Bp.Wb.y&&0===this.Bp.Wb.x?this.properties.set("userInteracting",!1):this.properties.set("userInteracting",!0)};r.prototype.t4a=function(){if(!this.properties.get("collisionDetection"))return!1;var t=b,u=d;t.copy(this.td).sub(this.ks);u.copy(this.ks).add(t.setLength(t.length()+.2/this.fg));if(this.Ir.ZG(this.ks,u))return!0;t=this.properties.get("maxStepHeight");void 0===t&&(t=.25*this.L2());u=this.lia(this.td);return-Infinity< 2026this.YGa&&-Infinity<u&&this.YGa+t<u?!0:!1};r.prototype.fBa=function(t,u,v){var w=u-t,x=Math.abs(w);v=2/this.fg*(v/1E3);return v>x?u:t+w*v/x};r.prototype.T2=function(t,u,v){t=this.tp?-Infinity:this.lia(b.set(t,u,v));return-Infinity===t?u:t+this.L2()};r.prototype.lia=function(t){var u=this.PS.findIndex(function(w){return w.x==t.x&&w.z==t.z&&!isNaN(w.y)});if(-1!==u)return this.PS[u].y;u=this.Ir.IS(t);var v=this.PS.find(function(w){return isNaN(w.y)});v||this.PS.push(v=new h.Vector3);v.set(t.x,t.y-u, 2027t.z);return v.y};r.prototype.L2=function(){return m.yBa/this.fg};r.QG=function(t,u){this.iC.set(t,u)};r.$a=function(t){t.I(c.kq).manager=new r(t)};
2027r.update=function(t){t.getComponent(c.kq).manager.update()};r.frame=function(t,u,v){t.getComponent(c.kq).manager.frame(u,v)};r.Ca=function(t){var u=t.getComponent(c.kq);u.manager.dispose();u.manager=null;t.ha(c.kq)};r.iC=new Map;r.fz="minX maxX minY maxY minZ maxZ".split(" ");return r}();var g=new h.Euler(0,0,0,"YXZ"),b=new h.Vector3,d=new h.Vector3,e= 2028new h.Vector3,n=new h.Vector3,q=new h.Vector3(0,1,0),p=180/Math.PI;return a}); 2029define("hx","require lQ ma fS mC fh ph dY cf oS ic kR hu dQ".split(" "),function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("mC"),c=a("fh"),h=a("ph"),g=a("dY"),b=a("cf"),d=a("oS"),e=a("ic"),n=a("kR"),q=a("hu"),p=a("dQ");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(r,t){(this.Cja.Kd.length||this.Cja.og.length)&&k.T$a(this.Cja.u);this.ABa.u.length&&this.ABa.u.slice().forEach(c.$a);this.S1.Ea.length&&this.S1.Ea.slice().forEach(c.update);this.S1.u.length&&this.S1.u.slice().forEach(function(u){c.frame(u, 2030r,t)});this.BBa.u.length&&this.BBa.u.slice().forEach(c.Ca);this.LCa.u.length&&this.LCa.u.slice().forEach(b.$a);this.QS.Ea.length&&this.QS.Ea.slice().forEach(b.update);this.QS.u.length&&this.QS.u.slice().forEach(function(u){b.frame(u,r,t)});this.MCa.u.length&&this.MCa.u.slice().forEach(b.Ca);this.DCa.u.length&&this.DCa.u.slice().forEach(g.$a);this.OS.Ea.length&&this.OS.Ea.slice().forEach(g.update);this.OS.u.length&&this.OS.u.slice().forEach(function(u){g.frame(u,r,t)});this.ECa.u.length&&this.ECa.u.slice().forEach(g.Ca); 2031this.FCa.u.length&&this.FCa.u.slice().forEach(g.Ca);this.qGa.u.length&&this.qGa.u.slice().forEach(d.$a);this.ST.Ea.length&&this.ST.Ea.slice().forEach(d.update);this.ST.u.length&&this.ST.u.slice().forEach(function(u){d.frame(u,r,t)});this.rGa.u.length&&this.rGa.u.slice().forEach(d.Ca);p.QG(this.P,this.Fj.u.slice());this.KKa.u.length&&this.KKa.u.slice().forEach(p.$a);this.gV.Ea.length&&this.gV.Ea.slice().forEach(p.update);this.gV.u.length&&this.gV.u.slice().forEach(function(u){p.frame(u,r,t)});this.LKa.u.length&& 2032this.LKa.u.slice().forEach(p.Ca);this.MKa.u.length&&this.MKa.u.slice().forEach(p.Ca);n.QG(this.P,this.Fj.u.slice());this.DKa.u.length&&this.DKa.u.slice().forEach(n.$a);this.eV.Ea.length&&this.eV.Ea.slice().forEach(n.update);this.eV.u.length&&this.eV.u.slice().forEach(function(u){n.frame(u,r,t)});this.EKa.u.length&&this.EKa.u.slice().forEach(n.Ca);this.FKa.u.length&&this.FKa.u.slice().forEach(n.Ca);q.QG(this.P,this.Fj.u.slice());this.GKa.u.length&&this.GKa.u.slice().forEach(q.$a);this.fV.Ea.length&& 2033this.fV.Ea.slice().forEach(q.update);this.fV.u.length&&this.fV.u.slice().forEach(function(u){q.frame(u,r,t)});this.HKa.u.length&&this.HKa.u.slice().forEach(q.Ca);this.IKa.u.length&&this.IKa.u.slice().forEach(q.Ca);this.SJa.u.length&&this.SJa.u.slice().forEach(e.$a);this.xM.Ea.length&&this.xM.Ea.slice().forEach(e.update);this.xM.Kd.length&&this.xM.Kd.slice().forEach(e.update);this.xM.u.length&&this.xM.u.slice().forEach(function(u){e.frame(u,r,t)});this.TJa.u.length&&this.TJa.u.slice().forEach(e.Ca); 2034this.UJa.u.length&&this.UJa.u.slice().forEach(e.Ca);if(this.PF.Kd.length||this.PF.og.length)h.Mka(this.PF.u),this.OS.u.slice().forEach(g.update),this.QS.u.slice().forEach(b.update),this.ST.u.slice().forEach(d.update),this.eV.u.slice().forEach(n.update),this.fV.u.slice().forEach(q.update),this.gV.u.slice().forEach(p.update)};a.H={};a.H.Fj=[m.Cc];a.H.PF=[m.Tm];a.H.Cja=[m.JC];a.H.DCa=[m.EC,m.xk.not,m.Bs.not];a.H.OS=[m.EC,m.xk.not,m.Bs];a.H.ECa=[m.EC.not,m.Bs];a.H.FCa=[m.xk,m.Bs];a.H.SJa=[m.vv,m.Lj,m.Qs.not]; 2035a.H.xM=[m.vv,m.Lj,m.Qs];a.H.TJa=[m.Lj.not,m.Qs];a.H.UJa=[m.vv.not,m.Qs];a.H.KKa=[m.xk,m.KH,m.kq.not];a.H.gV=[m.xk,m.KH,m.kq];a.H.LKa=[m.KH.not,m.kq];a.H.MKa=[m.xk.not,m.kq];a.H.DKa=[m.xk,m.IH,m.iq.not];a.H.eV=[m.xk,m.IH,m.iq];a.H.EKa=[m.IH.not,m.iq];a.H.FKa=[m.xk.not,m.iq];a.H.GKa=[m.xk,m.JH,m.jq.not];a.H.fV=[m.xk,m.JH,m.jq];a.H.HKa=[m.JH.not,m.jq];a.H.IKa=[m.xk.not,m.jq];a.H.LCa=[m.FC,m.gv.not];a.H.QS=[m.FC,m.gv];a.H.MCa=[m.FC.not,m.gv];a.H.qGa=[m.LC,m.nv.not];a.H.ST=[m.LC,m.nv];a.H.rGa=[m.LC.not, 2036m.nv];a.H.ABa=[m.qH,m.Xu.not];a.H.S1=[m.qH,m.Xu];a.H.BBa=[m.qH.not,m.Xu];return a}); 2037define("ib","require exports three.mod fS ma oQ".split(" "),function(a,f,l,m,k,c){a=function(p){function r(){var t=p.call(this)||this;t.xf=t.xf.bind(t);return t}Z(r,p);r.prototype.Tc=function(){this.u.u.length&&this.u.u.slice().forEac
2037h(this.xf)};r.prototype.xf=function(t){var u=t.getComponent(m.Object3D);if(u&&u.qa&&u.qa.parent){u=u.qa;var v=t.getComponent(m.pH);if(v.La){var w=v.La,x=w.getComponent(m.PerspectiveCamera);(w=w.getComponent(m.Object3D))&&w.qa&&(w=w.qa,w.updateMatrixWorld(!0),x.ll?(b.copy(c.Bc), 2038n.copy(c.bg)):w.matrixWorld.decompose(b,n,e),v.rotate||n.identity(),h.copy(u.parent.matrixWorld).invert(),g.compose(b,n,e.set(1,1,1)).premultiply(h),g.decompose(b,n,e.set(1,1,1)),d.setFromQuaternion(n,"YXZ"),t=t.J(m.va),t.translationX=b.x,t.translationY=b.y,t.He=b.z,t.Pd=0,t.ud=d.y*q,t.Fe=0)}}};r.H={};return r}(k);a.H={};a.H.u=[m.pH,m.Object3D,m.va];var h=new l.Matrix4,g=new l.Matrix4,b=new l.Vector3,d=new l.Euler,e=new l.Vector3,n=new l.Quaternion,q=180/Math.PI;return a}); 2039define("jn",["require","fS"],function(a){function f(m){this.m=m;this.Hya=this.za=null;this.wa=this.sa=void 0;this.update()}var l=a("fS");f.prototype.update=function(){var m=this.m.getComponent(l.gg),k=m.source&&m.source.width||0,c=m.source&&m.source.height||0;!this.za||!!this.za.isSpriteMaterial==m.isSprite&&this.sa==k&&this.wa==c||(this.za.map.dispose(),this.za.dispose(),this.za=null);this.sa=k;this.wa=c;this.za||(m.isSprite?(this.za=new THREE.SpriteMaterial,this.za.sizeAttenuation=!1):this.za=new THREE.MeshBasicMaterial, 2040this.za.map=new THREE.Texture,this.za.transparent=!0,this.m.I(l.Material).material=this.za);this.za.map.image!=m.source&&(this.za.map.image=m.source,this.za.map.needsUpdate=!0);this.Hya!=m.uM&&(this.Hya=m.uM,this.za.map.needsUpdate=!0);this.za.opacity=m.opacity||0;this.za.depthTest=!!m.depthTest;this.za.visible=0<this.za.opacity&&!m.hidden;this.za.needsUpdate=!0;this.m.P.Ta()};f.prototype.dispose=function(){this.za&&(this.za.map.dispose(),this.za.map=null,this.za.dispose(),this.za=null,this.m.ha(l.Material)); 2041this.m=null};f.$a=function(m){m.I(l.Xy).manager=new f(m)};f.Ca=function(m){var k=m.getComponent(l.Xy);k.manager.dispose();k.manager=null;m.ha(l.Xy)};f.update=function(m){m.getComponent(l.Xy).manager.update()};return f}); 2042define("iN",["require","lQ","ma","fS","jn"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("jn");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.Fm.u.length&&this.Fm.u.slice().forEach(k.$a);this.materials.Ea.length&&this.materials.Ea.slice().forEach(k.update);this.Gm.u.length&&this.Gm.u.slice().forEach(k.Ca)};a.H={};a.H.Fm=[m.gg,m.Xy.not];a.H.materials=[m.gg,m.Xy];a.H.Gm=[m.gg.not,m.Xy];return a}); 2043define("oA",["require","exports","three.mod","cv"],function(a,f,l,m){a=function(){function d(e){this.light=e;e=new l.EdgesGeometry(new l.PlaneGeometry(2,2));var n=new l.LineBasicMaterial({color:16711680,linewidth:1,depthTest:!1,transparent:!0});this.Cg=new l.LineSegments(e,n);e=(new l.BufferGeometry).setFromPoints([new l.Vector3,new l.Vector3]);n=new l.LineBasicMaterial({color:65280,depthTest:!1,transparent:!0});this.line=new l.Line(e,n);this.light.add(this.Cg);this.light.add(this.line)}d.prototype.update= 2044function(){var e=this.Cf();this.Cg.parent!=e&&(this.Cg.parent&&(this.Cg.parent.remove(this.Cg),this.line.parent.remove(this.line)),e&&(e.add(this.Cg),e.add(this.line)));if(e){this.Cg.material.color!=this.light.color&&(this.Cg.material.color=this.light.color,this.Cg.material.needsUpdate=!0,this.line.material.color=this.light.color,this.line.material.needsUpdate=!0);this.light.updateMatrixWorld(!0);k.setFromMatrixPosition(this.light.matrixWorld);this.light.target.updateMatrixWorld(!0);c.setFromMatrixPosition(this.light.target.matrixWorld); 2045h.copy(c).sub(k).normalize();b.y=Math.atan2(h.x,h.z);b.x=-Math.atan2(h.y,Math.sqrt(h.x*h.x+h.z*h.z));b.z=0;b.order="YXZ";g.setFromEuler(b);e=m.tB(e);this.Cg.quaternion.copy(g);var n=m.YF(this.line)*e*2/7;h.setLength(n).multiplyScalar(-1);n=this.line.geometry.attributes.position;n.setXYZ(0,0,0,0);n.setXYZ(1,h.x,h.y,h.z);n.needsUpdate=!0;this.Cg.position.copy(h);this.Cg.updateMatrixWorld(!0);e=m.YF(this.Cg)*e/7;this.Cg.scale.set(e,e,e);this.Cg.updateMatrixWorld(!0)}};d.prototype.dispose=function(){this.Cg.geometry.dispose(); 2046this.Cg.material.dispose();this.Cg.parent&&this.Cg.parent.remove(this.Cg);this.line.geometry.dispose();this.line.material.dispose();this.line.parent&&this.line.parent.remove(this.line)};d.prototype.Cf=function(){for(var e=this.light.parent;e&&!e.isScene;)e=e.parent;return e};return d}();var k=new l.Vector3,c=new l.Vector3,h=new l.Vector3,g=new l.Quaternion,b=new l.Euler;return a}); 2047define("hp","require exports three.mod ol fS ma cv oA".split(" "),function(a,f,l,m,k,c,h,g){function b(n,q){q.makeEmpty();var p=new l.Box3;n.traverse(function(r){if(r.geometry&&!r.isSprite&&!r.isLine){r.updateWorldMatrix(!1,!1);var t=r.geometry;null===t.boundingBox&&t.computeBoundingBox();p.copy(t.boundingBox);p.applyMatrix4(r.matrixWorld);q.union(p)}});return q}a=function(n){function q(){var p=n.call(this)||this;
2047p.Vb=p.Vb.bind(p);p.Ib=p.Ib.bind(p);p.xf=p.xf.bind(p);p.jb=p.jb.bind(p);return p}Z(q, 2048n);q.prototype.Tc=function(){this.xB.u.length&&this.xB.u.slice().forEach(this.Vb);this.yB.u.length&&this.yB.u.slice().forEach(this.jb);this.Lh.Ea.length&&this.Lh.Ea.slice().forEach(this.Ib);this.Lh.u.length&&this.Lh.u.slice().forEach(this.xf)};q.prototype.Vb=function(p){var r=p.I(k.Np),t=p.I(k.Object3D);r.light=t.qa=new l.DirectionalLight;this.Ib(p)};q.prototype.Ib=function(p){var r=p.getComponent(k.DirectionalLight),t=p.getComponent(k.Np),u=t.light;u.color=m.Ip(r.color).convertLinearToSRGB();u.intensity= 2049r.intensity*Math.PI;u.visible=0<u.intensity;u.castShadow=0<u.intensity&&r.castShadow;var v=u.castShadow?r.pla: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.qla;u.shadow.bias=r.ola;r.FS!=!!t.Xn&&(t=p.J(k.Np),r.FS?t.Xn=new g(u):(t.Xn.dispose(),t.Xn=null))};q.prototype.xf=function(p){this.kcb(p);this.Rla(p)};q.prototype.kcb=function(p){var r=p.getComponent(k.DirectionalLight);if((p=p.getComponent(k.Np).light)&& 2050p.castShadow){var t=h.Uc(r.target);if(t){var u=p.shadow.camera,v=b(t,d);t=Number.POSITIVE_INFINITY;for(var w=Number.NEGATIVE_INFINITY,x=Number.NEGATIVE_INFINITY,y=Number.POSITIVE_INFINITY,z=Number.POSITIVE_INFINITY,B=Number.NEGATIVE_INFINITY,E=0;2>E;E++)for(var I=0;2>I;I++)for(var A=0;2>A;A++)e.set(0==E?v.min.x:v.max.x,0==I?v.min.y:v.max.y,0==A?v.min.z:v.max.z).applyMatrix4(u.matrixWorldInverse),e.x<t&&(t=e.x),e.x>w&&(w=e.x),e.y>x&&(x=e.y),e.y<y&&(y=e.y),-e.z>B&&(B=-e.z),-e.z<z&&(z=-e.z);r=r.Sab|| 20510;v=.5*(z+B);z+=(z-v)*r;B+=(B-v)*r;v=.5*(t+w);t+=(t-v)*r;w+=(w-v)*r;v=.5*(x+y);x+=(x-v)*r;y+=(y-v)*r;if(u.left!=t||u.right!=w||u.top!=x||u.bottom!=y||u.near!=z||u.far!=B)p.shadow.camera.left=t,p.shadow.camera.top=x,p.shadow.camera.right=w,p.shadow.camera.bottom=y,p.shadow.camera.near=z,p.shadow.camera.far=B,p.shadow.camera.updateProjectionMatrix(),p.shadow.needsUpdate=!0}}};q.prototype.Rla=function(p){(p=(p=p.getComponent(k.Np))&&p.Xn)&&p.update()};q.prototype.jb=function(p){var r=p.getComponent(k.Np), 2052t=r&&r.Xn;t&&t.dispose();(r=r.light)&&r.parent&&r.parent.remove(r);p.ha(k.Np);p.ha(k.Object3D)};q.H={};return q}(c);a.H={};a.H.xB=[k.DirectionalLight,k.Np.not];a.H.Lh=[k.DirectionalLight,k.Np];a.H.yB=[k.DirectionalLight.not,k.Np];var d=new l.Box3,e=new l.Vector3;return a}); 2053define("em",["require","pw","fS","cv","bh"],function(a){function f(x){this.Pg=x;this.se=this.pn=null;this.$N=!1;this.update()}var l=a("pw"),m=a("fS"),k=a("cv"),c=a("bh");f.prototype.update=function(){var x=this.Pg.getComponent(m.Cc);this.TQ(x&&x.enabled?x.SF:null);this.SQ(x&&x.enabled?x.b2:null)};f.prototype.frame=function(){this.wf()};f.prototype.TQ=function(x){this.pn!=x&&(this.pn&&this.pn.unbind(l.Pb,this.Mf,this,!0),(this.pn=x)&&this.pn.bind(l.Pb,this.Mf,this,!0))};f.prototype.SQ=function(x){this.se!= 2054x&&(this.se&&this.$N&&this.se.pop(c.Uh),(this.se=x)&&this.$N&&this.se.push(c.Uh))};f.prototype.Mf=function(){var x=v.get(this.Pg.P);x&&0!=x.length&&this.Pg.P.Ta()};f.prototype.wf=function(){var x=v.get(this.Pg.P),y=x&&x.length||0;this.Yxa(0<y);if(0!=y&&(y=this.Pg.getComponent(m.Cc))){var z=k.Uc(this.Pg);z?(h.copy(y.origin).applyMatrix4(z.matrixWorld),g.copy(y.origin).add(y.direction).applyMatrix4(z.matrixWorld).sub(h).normalize()):(h.copy(y.origin),g.copy(y.direction).normalize());for(y=0;y<x.length;y++){z= 2055x[y];var B=z.getComponent(m.av),E=z.getComponent(m.Yy),I=w.get(z);I&&B&&E&&(E.mCa||(E.mCa=(new THREE.Vector3).setFromMatrixPosition(I.matrixWorld)),b.copy(E.mCa),d.copy(B.direction),this.mTa(b,d,h,g,e),E.Oha||(E.Oha=(new THREE.Vector3).copy(e).sub(b)),e.sub(E.Oha),B.min&&0>n.copy(e).sub(B.min).dot(B.direction)&&e.copy(B.min),e.applyMatrix4(q.copy(I.parent.matrixWorld).invert()),z=z.J(m.va),p.multiply(q.makeTranslation(z.translationX,z.translationY,z.He).invert()),p.multiply(q.makeRotationFromEuler(r.set(z.Pd* 2056u,z.ud*u,z.Fe*u,z.Ee)).invert()),e.applyMatrix4(q),z.positionX=e.x,z.positionY=e.y,z.positionZ=e.z)}}};f.prototype.Yxa=function(x){this.$N!=x&&(this.$N=x,this.se&&(this.$N?this.se.push(c.Uh):this.se.pop(c.Uh)))};f.prototype.mTa=function(x,y,z,B,E){t.copy(x).sub(z);z=y.dot(B);var I=B.dot(B),A=y.dot(y);B=t.dot(B);var C=t.dot(y);E.copy(x);x=z*z-I*A;0!=x&&E.addScaledVector(y,(I*C-B*z)/x)};var h=new THREE.Vector3,g=new THREE.Vector3,b=new THREE.Vector3,d=new THREE.Vector3,e=new THREE.Vector3,
2056n=new THREE.Vector3, 2057q=new THREE.Matrix4,p=new THREE.Matrix4,r=new THREE.Euler,t=new THREE.Vector3,u=Math.PI/180;f.prototype.dispose=function(){this.Yxa(!1);this.TQ(null);this.SQ(null);this.m=null};f.lla=function(x){x.I(m.pv).manager=new f(x)};f.Ela=function(x){var y=x.getComponent(m.pv);y.manager.dispose();y.manager=null;x.ha(m.pv)};f.us=function(x){x.getComponent(m.pv).manager.update()};f.frame=function(x){x.getComponent(m.pv).manager.frame()};var v=new Map,w=new Map;f.Fab=function(x){x.I(m.Yy);x.I(m.Tm);f.kKa(x)}; 2058f.kKa=function(x){var y=k.Uc(x);w.set(x,y);var z=v.get(x.P);z||v.set(x.P,z=[]);y&&(y=z,0>y.indexOf(x)&&y.push(x))};f.xJa=function(x){var y=v.get(x.P),z=y.indexOf(x);0<=z&&y.splice(z,1);w["delete"](x);x.ha(m.Yy);x.ha(m.Tm)};return f}); 2059define("lB",["require","lQ","ma","fS","em"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("em");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.WT.u.length&&this.WT.u.slice().forEach(k.lla);this.Fj.Ea.length&&this.Fj.Ea.slice().forEach(k.us);this.Fj.u.length&&this.Fj.u.slice().forEach(k.frame);this.XT.u.length&&this.XT.u.slice().forEach(k.Ela);this.lCa.u.length&&this.lCa.u.slice().forEach(k.Fab);this.kCa.u.length&&this.kCa.u.slice().forEach(k.kKa);this.nCa.u.length&& 2060this.nCa.u.slice().forEach(k.xJa);this.oCa.u.length&&this.oCa.u.slice().forEach(k.xJa)};a.H={};a.H.WT=[m.Cc,m.pv.not];a.H.Fj=[m.Cc,m.pv];a.H.XT=[m.Cc.not,m.pv];a.H.lCa=[m.Object3D,m.av,m.Yy.not];a.H.kCa=[m.Object3D,m.av,m.Yy];a.H.nCa=[m.Object3D.not,m.Yy];a.H.oCa=[m.av.not,m.Yy];return a}); 2061define("gN","require exports three.mod ol fS ma".split(" "),function(a,f,l,m,k,c){a=function(b){function d(){var e=b.call(this)||this;e.Vb=e.Vb.bind(e);e.Ib=e.Ib.bind(e);e.jb=e.jb.bind(e);e.xf=e.xf.bind(e);return e}Z(d,b);d.prototype.Tc=function(){this.JCa.u.length&&this.JCa.u.slice().forEach(this.Vb);this.KCa.u.length&&this.KCa.u.slice().forEach(this.jb);this.w2.Ea.length&&this.w2.Ea.slice().forEach(this.Ib);this.w2.u.length&&this.w2.u.slice().forEach(this.xf)};d.prototype.Vb=function(e){var n=e.I(k.ev), 2062q=e.I(k.Object3D);n.floor=q.qa=this.Z3a();this.XU(e,!0)};d.prototype.Ib=function(e){this.XU(e)};d.prototype.jb=function(e){var n=e.getComponent(k.ev).floor;n.parent&&n.parent.remove(n);n.geometry.dispose();n.material.dispose();e.ha(k.ev);e.ha(k.Object3D)};d.prototype.xf=function(e){this.k$a(e)};d.prototype.k$a=function(e){var n=e.getComponent(k.Wp),q=(e=(e=e.getComponent(k.ev))&&e.floor)&&e.parent&&e.parent.matrixWorld;if(q){g.setFromMatrixScale(q);var p=Math.max(Math.abs(g.x),Math.abs(g.y),Math.abs(g.z)); 2063e.matrix.identity();e.matrix.multiply(h.makeScale(n.radius/p,n.radius/p,n.radius/p));e.matrix.multiply(h.extractRotation(q).invert());e.matrix.multiply(h.makeTranslation(0,n.height/n.radius,0));e.matrix.multiply(h.makeRotationX(.5*-Math.PI));e.updateMatrixWorld(!0)}};d.prototype.Z3a=function(){var e=new l.CircleGeometry(1,128);
2063e=new l.Mesh(e);e.receiveShadow=!0;e.needsUpdate=!0;e.matrixAutoUpdate=!1;e.castShadow=!1;return e};d.prototype.XU=function(e,n){void 0===n&&(n=!1);var q=e.getComponent(k.Wp); 2064e=e.getComponent(k.ev).floor;var p="transparent"==q.color,r=e.material&&e.material.isShadowMaterial||!1;e.material&&(n||r!=p)&&(e.material.dispose(),e.material=null);p?e.material||(e.material=new l.ShadowMaterial):(e.material||(e.material=new l.MeshStandardMaterial,e.material.defines.USE_UV="",e.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"+ 2065t.fragmentShader.substring(u,t.fragmentShader.length)},e.material.roughness=1,e.material.metalness=0,e.material.envMapIntensity=0,e.material.transparent=!0),e.material.color=m.Ip(q.color));e.material.needsUpdate=!0;e.material.opacity=q.opacity;e.renderOrder=q.renderOrder};d.H={};return d}(c);a.H={};a.H.JCa=[k.Wp,k.ev.not];a.H.w2=[k.Wp,k.ev];a.H.KCa=[k.Wp.not,k.ev];var h=new l.Matrix4,g=new l.Vector3;return a}); 2066define("lq",["require","fS","cv"],function(a){function f(w){this.m=w;this.yda=!1}var l=a("fS"),m=a("cv");f.prototype.update=function(){this.yda=!1};f.prototype.frame=function(){this.wf()};f.prototype.wf=function(){if(!this.yda&&(this.Va=this.Va||m.Cf(this.m))){var w=m.Uc(this.m),x=w&&w.parent;if(x&&x.matrixWorld){var y=[];this.Va.traverse(function(I){I.isSprite||I.isLine||I==w||y.push(I)});var z=this.m.J(l.fv);e.set(z.x,z.y,z.z).applyMatrix4(x.matrixWorld);d.ray.origin.set(e.x,e.y,e.z);d.ray.direction.set(0, 2067-1,0);var B=d.intersectObjects(y,!1);if(0!=B.length){var E=B[0];h.copy(x.matrixWorld).invert();B=this.m.J(l.va,!0);g.setFromMatrixPosition(x.matrixWorld);k.copy(E.object.matrixWorld);b.setFromMatrixPosition(k);c.copy(k).invert();!z.sT&&E.face&&E.face.normal?p.copy(E.face.normal).applyMatrix4(k).sub(b).add(g):p.copy(g).add(r);p.applyMatrix4(h).normalize();u.setFromUnitVectors(q,p);t.setFromQuaternion(u,B.Ee);B.Pd=t.x*v;B.ud=t.y*v;B.Fe=t.z*v;e.copy(E.point).applyMatrix4(h);B.translationX=e.x;B.translationY= 2068e.y;B.He=e.z;n.setFromMatrixScale(h);x=Math.max(n.x,n.y,n.z);B.positionX=0;B.positionY=0;B.positionZ=x*z.distance;this.yda=!0}}}};f.prototype.dispose=function(){};var k=new THREE.Matrix4,c=new THREE.Matrix4,h=new THREE.Matrix4,g=new THREE.Vector3,b=new THREE.Vector3,d=new THREE.Raycaster,e=new THREE.Vector3,n=new THREE.Vector3;new THREE.Matrix4;new THREE.Matrix4;var q=new THREE.Vector3(0,0,1),p=new THREE.Vector3,r=new THREE.Vector3(0,1,0),t=new THREE.Euler,u=new THREE.Quaternion,v=180/Math.PI;f.$a= 2069function(w){w.I(l.Cs).manager=new f(w)};f.Ca=function(w){var x=w.getComponent(l.Cs);x.manager.dispose();x.manager=null;w.ha(l.Cs)};f.frame=function(w){w.getComponent(l.Cs).manager.frame()};f.update=function(w){w.getComponent(l.Cs).manager.update()};return f}); 2070define("il",["require","lQ","ma","fS","lq"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("lq");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.GCa.u.length&&this.GCa.u.slice().forEach(k.$a);this.v2.Ea.length&&this.v2.u.slice().forEach(k.update);this.v2.u.length&&this.v2.u.slice().forEach(k.frame);this.HCa.u.length&&this.HCa.u.slice().forEach(k.Ca);this.ICa.u.length&&this.ICa.u.slice().forEach(k.Ca)};a.H={};a.H.GCa=[m.Object3D,m.fv,m.Cs.not];a.H.v2=[m.Object3D, 2071m.fv,m.Cs];a.H.HCa=[m.Object3D.not,m.Cs];a.H.ICa=[m.fv.not,m.Cs];return a});define("gF",["require","fS"],function(a){var f=a("fS");return{$a:function(l){var m=l.I(f.vH),k=l.I(f.Object3D);l.I(f.va);l=l.J(f.Group);k.qa=m.group=l.group=new THREE.Group},Ca:function(l){l.getComponent(f.vH).group=null;l.ha(f.vH);l.ha(f.Object3D)}}}); 2072define("lV",["require","lQ","ma","fS","gF"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("gF");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.TDa.u.length&&this.TDa.u.slice().forEach(k.$a);this.UDa.u.length&&this.UDa.u.slice().forEach(k.Ca)};a.H={};a.H.TDa=[m.Group,m.vH.not];a.H.UDa=[m.Group.not,m.vH];return a}); 2073define("mH","require lQ ol ma fS cv oq".split(" "),function(a){var f=a("lQ"),l=a("ol"),m=a("ma"),k=a("fS");a("cv");a("oq");a=f.extend(m,function(){m.apply(this,arguments);this.Vb=this.Vb.bind(this);this.Ib=this.Ib.bind(this);this.jb=this.jb.bind(this)});a.prototype.Tc=function(){this.QDa.u.length&&this.QDa.u.slice().forEac
2073h(this.Vb);this.PDa.Ea.length&&this.PDa.Ea.slice().forEach(this.Ib);this.RDa.u.length&&this.RDa.u.slice().forEach(this.jb)};a.prototype.Vb=function(c){var h=c.getComponent(k.Ds); 2074h=new THREE.LineSegments(this.YBa(h),this.Kr(h));c.I(k.Object3D).qa=c.I(k.dz).grid=h};a.prototype.Ib=function(c){var h=c.getComponent(k.Ds);c=c.getComponent(k.dz).grid;c.geometry=this.YBa(h);c.material=this.Kr(h)};a.prototype.jb=function(c){var h=c.getComponent(k.dz).grid;h.material.dispose();h.geometry.dispose();c.ha(k.Object3D);c.ha(k.dz)};a.prototype.YBa=function(c){var h=l.Ip(c.IBa),g=l.Ip(c.ODa),b=c.c2/2,d=c.size/c.c2,e=c.size/2,n=[],q=[];for(let r=0,t=0,u=-e;r<=c.c2;r++,u+=d){n.push(-e,0,u, 2075e,0,u);n.push(u,0,-e,u,0,e);var p=r===b?h:g;p.toArray(q,t);t+=3;p.toArray(q,t);t+=3;p.toArray(q,t);t+=3;p.toArray(q,t);t+=3}c=new THREE.BufferGeometry;c.setAttribute("position",new THREE.Float32BufferAttribute(n,3));c.setAttribute("color",new THREE.Float32BufferAttribute(q,3));return c};a.prototype.Kr=function(c){var h=new THREE.LineBasicMaterial;h.depthTest=c.depthTest;h.toneMapped=!1;h.vertexColors=!0;return h};a.H={};a.H.QDa=[k.Ds,k.dz.not];a.H.PDa=[k.Ds,k.dz];a.H.RDa=[k.Ds.not,k.dz];return a}); 2076define("bm","require lQ pw lt cI gD bn".split(" "),function(a){function f(e,n,q,p){this.Lia=e;this.src=e.src;this.D4=n;this.xS=q;this.C2=p;this.frameWidth=this.Lia.width/this.xS;this.frameHeight=this.Lia.height/this.D4}var l=a("lQ"),m=a("pw"),k=a("lt");a("cI");var c=a("gD"),h=a("bn");a=l.extend(c,function(e,n,q,p,r,t,u){c.call(this);this.Ml=r;this.zh=new f(e,n,q,r);this.qxa=t;this.Oka(p);this.w$=u;this.T=document.createElement("canvas");this.T.width=this.zh.frameWidth;this.T.height=this.zh.frameHeight; 2077this.Da=this.T.getContext("2d");this.Da.globalCompositeOperation="copy";this.C=k.V;this.I_=this.jn=0;this.t9=void 0;this.ei=g.request(this.zh);this.ei.bind(m.ba,this.Sj,this,!0);this.Sj()});a.prototype.Oka=function(e){if(this.$e!==e){var n=this.AR;this.$e=e;this.AR=this.$e*this.zh.C2;this.x$=this.AR-.1*this.$e;void 0!==n&&(this.jn=this.jn/n*this.AR)}};a.prototype.dIa=function(e){this.w$!==e&&(this.w$=e,this.Sj())};a.prototype.Vc=function(e){if(this.C!=e){if(e==k.Qb){if(this.C!=k.PLAYING)return}else e== 2078k.PLAYING?this.C==k.V&&(this.jn=this.I_=0,this.Sj()):e!=k.V||0==this.jn&&0!=this.I_||(this.jn=this.x$,this.Sj());this.C=e;h.requestFrame(this.bk,this);this.trigger(m.ye)}};a.prototype.getState=function(){return this.C};a.prototype.bk=function(e){this.C==k.PLAYING&&(this.jn=Math.min(this.jn+e,this.ei.ei.length*this.$e),this.jn>=this.AR&&(this.I_++,this.qxa&&this.I_==this.qxa?(this.Vc(k.V),this.jn=this.x$,this.trigger(m.Gb)):(this.jn%=this.AR,this.trigger(m.cq))),this.Sj(),this.C==k.PLAYING&&h.requestFrame(this.bk, 2079this))};a.prototype.clear=function(){this.Vc(k.V);this.T.width=this.T.height=0;this.T=null;g.release(this.zh);this.zh=null};a.prototype.cg=function(){return this.T};a.prototype.Sj=function(){var e=this.w$&&this.jn>=this.x$?0:Math.floor(this.jn/this.$e);this.t9!=e&&e<this.ei.ei.length&&(this.t9=e,this.Da.drawImage(this.ei.get(this.t9),0,0),this.trigger(m.ba))};f.prototype.isEqual=function(e){return this.src==e.src&&this.D4==e.D4&&(this.xS=e.xS)&&(this.frameWidth=e.frameWidth)&&(this.frameHeight=e.frameHeight)&& 2080(this.C2=e.C2)};var g={Xj:[],fNa:2E3,request:function(e){e=this.Fi(e);e.Gj++;this.Uya(e);return e.frames},release:function(e){e=this.Fi(e);e.Gj--;0==e.Gj&&this.u_a(e)},Fi:function(e){for(var n=0;n<this.Xj.length;n++)if(this.Xj[n].W4a.isEqual(e))return this.Xj[n];n={};n.W4a=e;n.frames=new b(e);n.Gj=0;this.Xj.push(n);return n},u_a:function(e){this.Uya(e);e.Hha=setTimeout(function(){g.WQa(e)},g.fNa)},Uya:function(e){e.Hha&&(clearTimeout(e.Hha),e.Hha=null)},WQa:function(e){this.Xj.splice(this.Xj.indexOf(e), 20811);e.frames.clear()}},b=l.extend(c,function(e){c.call(this);this.zh=e;this.ei=[];d.add(this)});b.prototype.clear=function(){d.remove(this);this.ei.forEach(function(e){e.width=0;e.height=0});this.ei=null};b.prototype.get=function(e){return this.ei[e]};b.prototype.J4a=function(){var e=this.ei.length%this.zh.xS,n=Math.floor(this.ei.length/this.zh.xS)%this.zh.D4,q=document.createElement("canvas");q.width=this.zh.frameWidth;q.height=this.zh.frameHeight;var p=q.getContext("2d");p.globalCompositeOperation= 2082"copy";p.drawImage(this.zh.Lia,e*this.zh.frameWidth,n*this.zh.frameHeight,this.zh.frameWidth,this.zh.frameHeight,0,0,this.zh.frameWidth,this.zh.frameHeight);b.URa(q);this.ei.push(q);this.trigger(m.ba)};b.URa=function(){var e=document.createElement("canvas");e.width=1;e.height=1;var n=e.getContext("2d");return function(q){n.drawImage(q,0,0,1,1,0,0,1,1)}}();var d={Xj:[],qfa:null,add:function(e){this.Xj.push(e);this.Hxa()},remove:function(e){this.Xj=this.Xj.filter(function(n){return n!=e})},Hxa:function(){this.qfa|| 2083(this.qfa=setTimeout(function(){this.qfa=null;this.bQ()}
2083.bind(this),40))},bQ:function(){if(0!=this.Xj.length){for(var e=(new Date).getTime()+10;(new Date).getTime()<e;){var n=this.Xj.filter(function(q){return 0==q.ei.length});n=0<n.length?n[0]:this.Xj[0];n.J4a();if(n.ei.length==n.zh.C2&&(this.Xj.splice(this.Xj.indexOf(n),1),0==this.Xj.length))return}this.Hxa()}}};return a}); 2084define("pr",["require","pw","lt"],function(a){function f(k,c){this.Rd=k;this.zc=c;this.Tb=!1;this.R7();this.U7();this.wE()}var l=a("pw"),m=a("lt");f.prototype.clear=function(){this.Sda();this.Yda();this.Rd.set("state",m.V);this.zc=this.Rd=null};f.prototype.Xe=function(k){this.Tb!=k&&(this.Tb=k,this.Ut())};f.prototype.wE=function(){this.zc.Vc(this.Rd.get("state"))};f.prototype.GP=function(){this.Ut()};f.prototype.IP=function(){this.zc.Oka(this.Rd.get("frameDuration"))};f.prototype.HP=function(){this.zc.dIa("first"== 2085this.Rd.get("finalFrame"))};f.prototype.EP=function(){this.Rd.trigger(l.cq)};f.prototype.DP=function(){this.Rd.trigger(l.Gb)};f.prototype.FP=function(){this.Rd.set("state",this.zc.getState())};f.prototype.Ut=function(){this.Rd.get("autoplay")&&this.zc.Vc(this.Tb?m.PLAYING:m.V)};f.prototype.R7=function(){this.Rd.bind(l.F("state"),this.wE,this,!0);this.Rd.bind(l.F("autoplay"),this.GP,this,!0);this.Rd.bind(l.F("frameDuration"),this.IP,this,!0);
2085this.Rd.bind(l.F("finalFrame"),this.HP,this,!0)};f.prototype.Sda= 2086function(){this.Rd.unbind(l.F("state"),this.wE,this,!0);this.Rd.unbind(l.F("autoplay"),this.GP,this,!0);this.Rd.unbind(l.F("frameDuration"),this.IP,this,!0);this.Rd.unbind(l.F("finalFrame"),this.HP,this,!0)};f.prototype.U7=function(){this.zc.bind(l.cq,this.EP,this,!0);this.zc.bind(l.Gb,this.DP,this,!0);this.zc.bind(l.ye,this.FP,this,!0)};f.prototype.Yda=function(){this.zc.unbind(l.cq,this.EP,this,!0);this.zc.unbind(l.Gb,this.DP,this,!0);this.zc.unbind(l.ye,this.FP,this,!0)};return f}); 2087define("eQ",["require","pw","oj","bm","pr"],function(a){function f(h,g,b,d){this.Me=h;this.ic=g;this.Ia=b;this.Ga=d.bind(this);m.Ja("AnimatedImageResource",this.Me)?(this.zc=new k(this.ic,this.Me.get("rowCount",1),this.Me.get("colCount",1),this.Me.get("frameDuration"),this.Me.get("frameCount",this.Me.get("rowCount",1)*this.Me.get("colCount",1)),this.Me.get("repeat"),"first"==this.Me.get("finalFrame")),this.Ia.image=this.zc.cg(),this.zc.bind(l.ba,this.EO,this,!0),this.so=new c(this.Me,this.zc)):this.Ia.image= 2088this.ic;this.Ia.needsUpdate=!0;this.Ga()}var l=a("pw"),m=a("oj"),k=a("bm"),c=a("pr");f.prototype.Xe=function(h){this.so&&this.so.Xe(h)};f.prototype.dispose=function(){this.so&&(this.so.clear(),this.so=null);this.zc&&(this.zc.unbind(l.ba,this.EO,this,!0),this.zc.clear(),this.zc=null);this.Ia=this.ic=this.Me=null};f.prototype.EO=function(){this.Ia.needsUpdate=!0;this.Ga()};return f}); 2089define("eV",["require"],function(){var a={},f=null;a.aDa=function(){if(!f){var l=document.createElement("canvas");l.width=128;l.height=128;l.getContext("2d").clearRect(0,0,l.width,l.height);f=l}return f};return a}); 2090define("kQ",["require","lv","nA","mI"],function(a){var f=a("lv"),l=a("nA"),m=a("mI"),k=180/Math.PI,c=Math.PI/180;return{M2:function(h,g,b,d,e,n,q){g||(g=h*d/b);e||(e=m.$y);var p={};switch(e){case m.$y:p.width=h;p.height=g;break;case m.NONE:p.width=b;p.height=d;break;case m.Sh:p.width=Math.min(g*b/d,h);p.height=Math.min(h*d/b,g);break;case m.As:p.width=Math.max(g*b/d,h);p.height=Math.max(h*d/b,g);break;case m.Vp:p.width=h;p.height=h*d/b;break;case m.vk:p.width=g*b/d,p.height=g}p.width>h?(p.Jy=h/p.width, 2091p.UU=n==l.ab?0:n==l.tb?1-p.Jy:.5*(1-p.Jy),p.width=h):(p.UU=0,p.Jy=1);p.height>g?(p.Ly=g/p.height,p.cV=q==l.Ec?1-p.Ly:q==l.wc?0:.5*(1-p.Ly),p.height=g):(p.cV=0,p.Ly=1);return p},via:function(h,g,b,d,e,n,q,p){g||(g=f.Cm(h,b,d));e||(e=m.$y);n||(n=4096/360);var r={};switch(e){case m.$y:r.Ue=h;r.vs=g;break;case m.NONE:r.Ue=2*Math.atan2(.5*b,45*n)*k;r.vs=f.Cm(r.Ue,b,d);break;case m.Sh:r.Ue=Math.min(f.Kp(g,b,d),h);r.vs=Math.min(f.Cm(h,b,d),g);break;case m.As:r.Ue=Math.max(f.Kp(g,b,d),h);r.vs=Math.max(f.Cm(h, 2092b,d),g);break;case m.Vp:r.Ue=h;r.vs=f.Cm(h,b,d);break;case m.vk:r.Ue=f.Kp(g,b,d),r.vs=g}r.Ue>h?(r.Jy=Math.tan(.5*h*c)*b/Math.tan(.5*r.Ue*c)/b,r.UU=q==l.ab?0:q==l.tb?1-r.Jy:.5*(1-r.Jy),r.Ue=h):(r.UU=0,r.Jy=1);r.vs>g?(r.Ly=Math.tan(.5*g*c)*d/Math.tan(.5*r.vs*c)/d,r.cV=p==l.Ec?1-r.Ly:p==l.wc?0:.5*(1-r.Ly),r.vs=g):(r.cV=0,r.Ly=1);return r}}}); 2093define("kx","require ld pw cI oj cA lN eQ eV fS oY bL kQ".split(" "),function(a){function f(v){this.m=v;this.YE=this.YE.bind(this);this.Ga=this.Ga.bind(this);this.Vi=this.Vi.bind(this);v=v.getComponent(e.Vm);this.dh=v.vp;this.le=v.N;this.o=v.properties;this.Me=v.Kia;this.bVa=v.isSprite;this.xg=!1;this.ln=this.eb=null;this.hw=0;this.Nea=this.M9=this.Mb=this.qX=this.W=void 0;l.ea(this.o,r,this.YE,!1);l.ea(this.Me,t,this.YE,!1);l.ea(this.o,u,this.Vi,!1);this.YE()}var l=a("ld"),m=a("pw"),k=a("cI"),c= 2094a("oj"),h=a("cA"),g=a("lN"),b=a("eQ"),d=a("eV"),e=a("fS"),n=a("oY"),q=a("bL"),p=a("kQ"),r=["height","scaleMode","width"],t=["levels.url","levels.width","levels.height"],u="depthTest enabled encoding hidden side opacity".split(" ");f.prototype.frame=function(v){this.ln&&(this.ln.Fb(v),this.hw=this.ln.cb("alpha"),this.bga(),this.ln.Ve()&&(this.ln=null),this.m.P.Ta());this.xg&&(this.xg=!1)};f.prototype.YE=function(){var v=this.Me&&this.Me.get("levels")||[];v=v.filter(function(C){return!!C.get("url")}); 2095var w=1,x=1;c.Ja("AnimatedImageResource",this.Me)&&(w=this.Me.get("rowCount"),x=this.Me.get("
2095colCount"));var y=null;if(0<v.length){v.sort(function(C,J){return J.get("width")-C.get("width")});y=this.o.get("width");var z=this.o.get("height"),B=this.o.get("scaleMode","fill"),E=v[0].get("width")/x,I=v[0].get("height")/w,A=p.M2(y,z,E,I,B);y=v.reduce(function(C,J){return!C||C.get("width")>J.get("width")&&J.get("width")/x>=A.width&&J.get("height")/w>=A.height?J:C})}this.UQ(y)};f.prototype.UQ=function(v){this.eb!= 2096v&&(this.eb&&(this.fRa(),this.P9(),this.gX(),this.Cq(),this.xg=!1),this.eb=v)&&(this.wq(),this.Wv(),this.QN(),this.xg=!1,this.Ga())};f.prototype.QN=function(){this.Jd||(this.Jd=new h,this.Jd.oM([this.eb.get("url")]),this.Jd.bind(m.da,this.Cd,this,!0),this.Jd.bind(m.kc,this.fva,this,!0),this.Jd.bind(m.xc,this.ag,this,!0),this.zt=this.m.getComponent(e.Vm).priority,g.Yn(this.Jd,this.zt))};f.prototype.Cq=function(){this.Jd&&(this.Jd.unbind(m.da,this.Cd,this,!0),this.Jd.unbind(m.kc,this.fva,this,!0),this.Jd.unbind(m.xc, 2097this.ag,this,!0),g.Hj(this.Jd,this.zt),this.Jd=null)};f.prototype.Cd=function(){this.PQa();this.Dfa(new k(m.da))};f.prototype.fva=function(v){this.Dfa(new k(m.kc,{percent:v.Tg}))};f.prototype.ag=function(){this.Dfa(new k(m.xc))};f.prototype.Dfa=function(v){this.dh&&this.dh.trigger(v)};f.prototype.Ga=function(){this.xg||(this.xg=!0,this.m.P.Ta())};f.prototype.wq=function(){this.Ia=new THREE.Texture;this.Ia.image=d.aDa();this.Ia.generateMipmaps=!0;this.Ia.minFilter=THREE.LinearMipMapLinearFilter};f.prototype.gX= 2098function(){this.Ia&&(this.Ia.dispose(),this.Ia=null)};f.prototype.Wv=function(){this.bVa?(this.za=new THREE.SpriteMaterial({map:this.Ia}),this.za.sizeAttenuation=!0):this.za=new THREE.MeshBasicMaterial({map:this.Ia});this.za.transparent=!0;this.za.needsUpdate=!0;this.m.I(e.Material).material=this.za;this.Zoa(0);this.m.J(e.Wh,!0);this.Vi(!0)};f.prototype.Vi=function(v){var w=this.o.get("enabled")&&!this.o.get("hidden")&&!!this.fp,x=this.W!==w;if(x||v){this.W=w;w=this.hw;var y=this.W?1:0,z=this.o.get("hidden")? 20990:200;this.ln=w!==y?new n("linear",[new q("alpha",w,y,void 0)],Math.abs(w-y)*z):null;this.bga()}w=this.o.get("encoding");if(this.qX!==w||v)this.qX=w,this.e2a();w=this.o.get("depthTest");if(this.M9!==w||v)this.M9=w,this.B1a();w=this.o.get("opacity");if(this.Mb!==w||v)this.Mb=w,this.bga();w=this.o.get("side");if(this.Nea!==w||v)this.Nea=w,this.C1a();x&&this.le&&this.le.trigger(this.W?m.jd:m.ad)};f.prototype.e2a=function(){if(this.za&&(this.za.map||this.za.emissiveMap)){var v="srgb"==this.qX?THREE.SRGBColorSpace: 2100THREE.LinearSRGBColorSpace;
2100this.za.map&&(this.za.map.colorSpace=v);this.za.emissiveMap&&(this.za.emissiveMap.colorSpace=v);this.za.needsUpdate=!0}this.m.J(e.Wh,!0);this.Ga()};f.prototype.B1a=function(){this.za&&(this.za.depthTest=this.M9);this.m.J(e.Wh,!0);this.Ga()};f.prototype.bga=function(){this.za&&this.Zoa((this.Mb||0)*this.hw);this.fp&&this.fp.Xe(0<this.Mb);this.Ga()};f.prototype.Zoa=function(v){this.za.opacity=v;this.za.visible=0<this.za.opacity;this.za.isShaderMaterial&&this.za.uniforms.opacity&& 2101(this.za.uniforms.opacity.value=v);this.m.J(e.Wh,!0)};f.prototype.C1a=function(){if(this.za)switch(this.Nea){case "back":this.za.side=THREE.BackSide;break;case "double":this.za.side=THREE.DoubleSide;break;default:this.za.side=THREE.FrontSide}this.m.J(e.Wh,!0);this.Ga()};f.prototype.P9=function(){this.za&&(this.za.dispose(),this.za=null,this.m.ha(e.Material))};f.prototype.PQa=function(){this.fp=new b(this.Me,g.Af(this.eb.get("url")),this.Ia,this.Ga);this.Vi(!0)};f.prototype.fRa=function(){this.fp&& 2102(this.fp.dispose(),this.fp=null)};f.prototype.dispose=function(){this.UQ(null);l.ca(this.o,r,this.YE);l.ca(this.Me,t,this.YE);l.ca(this.o,u,this.Vi);this.m=this.dh=this.Me=this.o=null};f.$a=function(v){v.I(e.ez).manager=new f(v)};f.Ca=function(v){var w=v.getComponent(e.ez);w.manager.dispose();w.manager=null;v.ha(e.ez)};f.frame=function(v,w){v.getComponent(e.ez).manager.frame(w)};return f}); 2103define("ng",["require","lQ","ma","fS","kx"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("kx");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(c,h){this.Gm.u.length&&this.Gm.u.slice().forEach(k.Ca);this.Fm.u.length&&this.Fm.u.slice().forEach(k.$a);this.materials.u.length&&this.materials.u.slice().forEach(function(g){k.frame(g,c,h)})};a.H={};a.H.Fm=[m.Vm,m.ez.not];a.H.materials=[m.Vm,m.ez];a.H.Gm=[m.Vm.not,m.ez];return a}); 2104define("K",["require","ol","fS"],function(a){function f(k){this.m=k;this.za=null;this.update()}var l=a("ol"),m=a("fS");f.prototype.update=function(){this.za||(this.za=new THREE.LineBasicMaterial,this.m.I(m.Material).material=this.za);var k=this.m.getComponent(m.th);this.za.color=l.Ip(k.color||"#ffffff");this.za.lineWidth=k.width||1;this.za.opacity=k.opacity||0;this.za.transparent=k.transparent;this.za.depthTest=!!k.depthTest;this.za.visible=0<this.za.opacity;this.za.needsUpdate=!0};f.prototype.dispose= 2105function(){this.za&&(this.za.dispose(),this.za=null,this.m.ha(m.Material));this.m=null};f.$a=function(k){k.I(m.gz).manager=new f(k)};f.Ca=function(k){var c=k.getComponent(m.gz);c.manager.dispose();c.manager=null;k.ha(m.gz)};f.update=function(k){k.getComponent(m.gz).manager.update()};return f}); 2106define("js",["require","lQ","ma","fS","K"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("K");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.Fm.u.length&&this.Fm.u.slice().forEach(k.$a);this.materials.Ea.length&&this.materials.Ea.slice().forEach(k.update);this.Gm.u.length&&this.Gm.u.slice().forEach(k.Ca)};a.H={};a.H.Fm=[m.th,m.gz.not];a.H.materials=[m.th,m.gz];a.H.Gm=[m.th.not,m.gz];return a}); 2107define("pf","require lQ ma fS cv oq".split(" "),function(a){var f=a("lQ"),l=a("ma"),m=a("fS");a("cv");var k=a("oq");a=f.extend(l,function(){l.apply(this,arguments);this.Vb=this.Vb.bind(this);this.Ib=this.Ib.bind(this);this.jb=this.jb.bind(this)});a.prototype.Tc=function(){this.WEa.u.length&&this.WEa.u.slice().forEach(this.Vb);this.lines.Ea.length&&this.lines.Ea.slice().forEach(this.Ib);this.XEa.u.length&&this.XEa.u.slice().forEach(this.jb);this.YEa.u.length&&this.YEa.u.slice().forEach(this.jb);this.ZEa.u.length&& 2108this.ZEa.u.slice().forEach(this.jb)};a.prototype.Vb=function(c){c.I(m.Object3D).qa=new THREE.LineSegments;c.I(m.hz);c.I(m.va);if(!c.getComponent(m.Geometry)){var h=(new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,1)]);h.userData.wEa=!0;c.I(m.Geometry).geometry=h}this.Ib(c)};a.prototype.Ib=function(c){var h=c.getComponent(m.Object3D).qa;k.hB(h,c.getComponent(m.Material).material);var g=c.getComponent(m.Geometry).geometry;h.geometry!=g&&(h.geometry&&g.userData.wEa&& 2109h.geometry.dispose(),h.geometry=g,h.needsUpdate=!0);c=c.getComponent(m.Line).renderOrder||0;h.renderOrder!=c&&(h.renderOrder=c,h.needsUpdate=!0)};a.prototype.jb=function(c){c.ha(m.hz);c.ha(m.Geometry);var h=c.getComponent(m.Object3D);h&&(h=h.qa,h.geometry&&h.geometry.userData.wEa&&h.geometry.dispose(),h.geometry=null,k.hB(h,null),c.ha(m.Object3D))};a.H={};a.H.WEa=[m.Line,m.Material,m.hz.not];a.H.lines=[m.Line,m.Geometry,m.Material,m.hz];a.H.XEa=[m.Line.not,m.hz];a.H.YEa=[m.Material.not,m.hz];a.H.ZEa= 2110[m.Geometry.not,m.hz];return a}); 2111define("gh",["require","lQ","ma","fS","cv"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("cv");a=f.extend(l,function(){l.apply(this,arguments);this.Vb=this.Vb.bind(this);this.jb=this.jb.bind(this);this.xf=this.xf.bind(this)});a.prototype.Tc=function(){this.SEa.u.length&&this.SEa.u.slice().forEac
2111h(this.Vb);this.REa.u.length&&this.REa.u.slice().forEach(this.xf);this.TEa.u.length&&this.TEa.u.slice().forEach(this.jb);this.UEa.u.length&&this.UEa.u.slice().forEach(this.jb);this.VEa.u.length&&this.VEa.u.slice().forEach(this.jb)}; 2112a.prototype.Vb=function(n){n.I(m.iz)};a.prototype.jb=function(n){n.ha(m.iz)};var c=new THREE.Matrix4,h=new THREE.Quaternion,g=new THREE.Vector3,b=new THREE.Vector3(0,0,1),d=new THREE.Euler,e=180/Math.PI;a.prototype.xf=function(n){var q=n.getComponent(m.va);if(q){var p=k.Uc(n);if(p&&p.parent){var r=n.getComponent(m.Es),t=r.G;if(t){r=k.Uc(t);if(!r||!r.parent)return;g.setFromMatrixPosition(r.matrixWorld)}else if(r.position)g.copy(r.position);else return;c.copy(p.parent.matrixWorld).invert();g.applyMatrix4(c); 2113g.x-=q.translationX;g.y-=q.translationY;g.z-=q.He;p=g.length();h.setFromUnitVectors(b,g.normalize());d.setFromQuaternion(h,q.Ee);d.x*=e;d.y*=e;d.z*=e;if(q.scale!=p||q.Pd!=d.x||q.ud!=d.y||q.Fe!=d.z)q=n.J(m.va),q.scale=p,q.Pd=d.x,q.ud=d.y,q.Fe=d.z,k.CU(n,q),n.P.Ta()}}};a.H={};a.H.SEa=[m.Object3D,m.Es,m.iz.not];a.H.REa=[m.Object3D,m.Es,m.iz,m.va];a.H.TEa=[m.Object3D.not,m.iz];a.H.UEa=[m.Es.not,m.iz];a.H.VEa=[m.va.not,m.iz];return a}); 2114define("ff","require lQ pw oQ ma fS cv oq".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("oQ"),k=a("ma"),c=a("fS"),h=a("cv"),g=a("oq");a=f.extend(k,function(){k.apply(this,arguments);this.Vb=this.Vb.bind(this);this.jb=this.jb.bind(this);this.Ib=this.Ib.bind(this)});a.prototype.Tc=function(){this.EFa.u.length&&this.EFa.u.slice().forEach(this.Vb);this.Dja.Ea.length&&this.Dja.Ea.slice().forEach(this.Ib);this.FFa.u.length&&this.FFa.u.slice().forEach(this.jb);this.GFa.u.length&&this.GFa.u.slice().forEach(this.jb)}; 2115a.prototype.Vb=function(b){b.I(c.jz);this.Dja.u.forEach(function(d){this.LUa(d,b)&&this.x_(h.Uc(d))}.bind(this));this.Ib(b)};a.prototype.Ib=function(b){var d=b.getComponent(c.Wh);if(b=h.Uc(b))this.rOa(b,d),this.x_(b),this.he(b,d)};a.prototype.jb=function(b){b.ha(c.jz);var d=h.Uc(b);d&&(this.EPa(d),this.x_(d),b.ha(c.jz))};a.prototype.rOa=function(b,d){b.userData.pGa=d.opacity;b.userData.kS=d.kS;b.userData.castShadow=d.castShadow;b.userData.receiveShadow=d.receiveShadow;b.userData.rS=d.rS};a.prototype.EPa= 2116function(b){b.userData.pGa=void 0;b.userData.kS=void 0;b.userData.castShadow=void 0;b.userData.receiveShadow=void 0;b.userData.rS=void 0};a.prototype.x_=function(b){if(m.zj!=b&&!b.yu){var d=this.Mra(b),e=this.wSa(b),n=this.ySa(b),q=this.zSa(b),p=this.xSa(b);if(b.material){if(void 0===d&&!0!==p)g.kU(b);else{var r=b.userData.cs||b.material,t=g.o3(r),u=g.o3(b.material),v=r.opacity;r=r.transparent;!0!==p&&u&&!t?g.kU(b):!0!==p||u||g.VBa(b);void 0!==v&&(t=v*(void 0===d?1:d),u=0<t,r=1>t?!0:r,b.material.opacity!== 2117t||b.material.visible!==u||b.material.transparent!==r)&&(g.Tha(b),b.material.opacity=t,b.material.transparent=r,b.material.visible=u,b.material.needsUpdate=!0);g.Tbb(b)}var w=this.iSa(e);(null==b.material.map?[]:Array.isArray(b.material.map)?b.material.map:[b.material.map]).forEach(function(x){x.anisotropy!==w&&(x.anisotropy=w,x.needsUpdate=!0)})}b.isMesh&&(void 0!==n&&b.castShadow!==n&&(b.castShadow=n),void 0!==q&&b.receiveShadow!==q&&(b.receiveShadow=q));b.children&&b.children.forEach(function(x){x.userData.V6a= 2118d;x.userData.S6a=e;x.userData.U6a=n;x.userData.W6a=q;x.userData.T6a=p;this.x_(x)}.bind(this))}};a.prototype.iSa=function(b){return 1+Math.round((b||0)*(h.cDa().capabilities.getMaxAnisotropy()-1))};a.prototype.Mra=function(b){var d=b.userData.pGa;b=b.userData.V6a;if(void 0!==b||void 0!==d)if(d=(void 0!==b?b:1)*(void 0!==d?d:1),1!==d)return d};a.prototype.wSa=function(b){var d=b.userData.kS;if(void 0!==d)return d;b=b.userData.S6a;if(void 0!==b)return b};a.prototype.ySa=function(b){var d=b.userData.castShadow; 2119if(void 0!==d)return d;b=b.userData.U6a;if(void 0!==b)return b};a.prototype.zSa=function(b){var d=b.userData.receiveShadow;if(void 0!==d)return d;b=b.userData.W6a;if(void 0!==b)return b};a.prototype.xSa=function(b){var d=b.userData.rS;if(void 0!==d)return d;b=b.userData.T6a;if(void 0!==b)return b};a.prototype.he=function(b,d){var e=this.Mra(b);void 0!==e&&(e=0<e,b.userData.ucb!==e&&(b.userData.ucb=e,d.N&&d.N.trigger(e?l.jd:l.ad)))};a.prototype.LUa=function(b,d){b=h.Uc(b);d=h.Uc(d);if(!b||!d)return!1; 2120for(d=d.parent;d;){if(d===b)return!0;d=d.parent}return!1};a.H={};a.H.EFa=[c.Wh,c.Object3D,c.jz.not];a.H.Dja=[c.Wh,c.Object3D,c.jz];a.H.FFa=[c.Wh.not,c.jz];a.H.GFa=[c.Object3D.not,c.jz];return a}); 2121define("pp",["require","fS","oq"],function(a){function f(k){this.m=k;this.Bga=this.Pl=this.oe=null;this.zK=-1}var l=a("fS"),m=a("oq");f.prototype.frame=function(){if(!this.Pl&&(this.Pl=this.m.getComponent(l.Vh).Cia)){var k=this.Pl.userData&&this.Pl.userData.gltfExtensions&&this.Pl.userData.gltfExtensions.KHR_materials_variants;this.Bga=k&&k.variants||[];this.update()}};f.prototype.update=function(){if(this.Bga){var k=this.m.getComponent(l.kv).name,c=this.Bga.findIndex(function(g){return g.name==k}), 2122h=this.Pl.scene;this.oe!=h?(this.oe&&this.vxa(this.oe),this.oe=h,this.zK=c,this.oe&&this.wya(this.oe,this.zK)):this.zK!=c&&(this.zK=c,this.oe&&this.wya(this.oe,this.zK));this.m.P.Ta()}};f.prototype.vxa=function(k){this.bpa(k,-1)};f.prototype.wya=function(k,c){this.sVa(k,c,function(){this.oe==k&&this.zK==c&&this.bpa(k,c)}.bind(this))};f.prototype.sVa=function(k,c,h){var g=[];k.traverse(function(b){var d=b.isMesh&&b.userData.gltfExtensions&&b.userData.gltfExtensions.KHR_materials_variants;if(d=d&&d.mappings){b.userData.C8a|| 2123(b.userData.C8a=m.O5a(b));b.userData.gC||(b.userData.gC={});for(var e=null,n=d.length-1;0<=n&&!e;--n)-1!=d[n].variants.indexOf(c)&&(e=d[n]);
2123e&&g.push(this.Pl.parser.getDependency("material",e.material).then(function(q){b.userData.gC[c]||(b.userData.gC[c]=q)}))}}.bind(this));Promise.all(g).then(function(){h(k,c)})};f.prototype.bpa=function(k,c){k.traverse(function(h){if(h.userData.gC){var g=h.userData.gC[c];g&&(m.hB(h,g),this.Pl.parser.assignFinalMaterial(h),this.m.J(l.Wh,!0))}}.bind(this));this.m.P.Ta()}; 2124f.prototype.dispose=function(){this.oe&&(this.vxa(this.oe),this.m.J(l.Wh,!0),this.oe=null)};f.$a=function(k){k.I(l.$p).manager=new f(k)};f.Ca=function(k){var c=k.getComponent(l.$p);c.manager.dispose();c.manager=null;k.ha(l.$p)};f.update=function(k){k.getComponent(l.$p).manager.update()};f.frame=function(k){k.getComponent(l.$p).manager.frame()};return f}); 2125define("hY",["require","lQ","ma","fS","pp"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("pp");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.cFa.u.length&&this.cFa.u.slice().forEach(k.$a);this.C3.u.length&&this.C3.u.slice().forEach(k.frame);this.C3.Ea.length&&this.C3.Ea.slice().forEach(k.update);this.dFa.u.length&&this.dFa.u.slice().forEach(k.Ca);this.eFa.u.length&&this.eFa.u.slice().forEach(k.Ca);this.fFa.u.length&&this.fFa.u.slice().forEach(k.Ca)};a.H={}; 2126a.H.cFa=[m.kv,m.Vh,m.Object3D,m.$p.not];a.H.C3=[m.kv,m.Vh,m.Object3D,m.$p];a.H.dFa=[m.kv.not,m.$p];a.H.eFa=[m.Object3D.not,m.$p];a.H.fFa=[m.Vh.not,m.$p];return a}); 2127define("io",["require","fS"],function(a){var f=a("fS");return{$a:function(l){var m=l.I(f.Hs);l.I(f.va);var k=l.J(f.Mesh);l.I(f.Object3D).qa=m.xp=k.xp=new THREE.Mesh(l.getComponent(f.Geometry).geometry,l.getComponent(f.Material).material);k.xp.renderOrder=k.renderOrder},update:function(l){var m=l.J(f.Hs);m.xp.geometry=l.getComponent(f.Geometry).geometry;m.xp.material=l.getComponent(f.Material).material;m.xp.renderOrder=l.getComponent(f.Mesh).renderOrder},Ca:function(l){l.getComponent(f.Hs).xp=null; 2128l.ha(f.Hs);l.ha(f.Object3D)}}}); 2129define("f",["require","lQ","ma","fS","io"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("io");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.iFa.u.length&&this.iFa.u.slice().forEach(k.$a);this.hFa.Ea.length&&this.hFa.Ea.slice().forEach(k.update);this.G3.u.length&&this.G3.u.slice().forEach(k.Ca);this.K7a.u.length&&this.G3.u.slice().forEach(k.Ca);this.L7a.u.length&&this.G3.u.slice().forEach(k.Ca)};a.H={};a.H.iFa=[m.Mesh,m.Geometry,m.Material,m.Hs.not];a.H.hFa= 2130[m.Mesh,m.Geometry,m.Material,m.Hs];a.H.G3=[m.Mesh.not,m.Hs];a.H.K7a=[m.Geometry.not,m.Hs];a.H.L7a=[m.Material.not,m.Hs];return a}); 2131define("dV",["require","exports","pw","gD","bA"],function(a,f,l,m,k){return function(c){function h(g,b){var d=c.call(this)||this;d.So=null;d.mpa=null;d.Dz=!1;d.cJ=null;d.Wd=g;d.zt=b;d.Ct=new Request(g);d.lR=d.lR.bind(d);d.mD=d.mD.bind(d);return d}Z(h,c);h.prototype.start=function(){this.cJ||(this.Dz=!1,this.cJ=k.add(this.Wd,this.zt,this.lR,this.mD))};h.prototype.lR=function(){0===this.Wd.indexOf("filesystem:")?this.IRa():this.JRa()};h.prototype.IRa=function(){var g=this,b=new XMLHttpRequest;b.open("GET", 2132this.Wd,!0);b.responseType="arraybuffer";b.onload=function(){g.iva(b.response);b.onload=b.onerror=null};b.onerror=function(){g.eva();b.onload=b.onerror=null};b.send()};h.prototype.JRa=function(){var g=this;fetch(this.Ct).then(function(b){function d(t){void 0===t&&(t=null);if(t=t||r)t.close(),r=null,g.So=null}function e(t){var u;return null===(u=g.So.read().then(function(v){var w=null===v||void 0===v?void 0:v.value;w&&(p+=w.byteLength,t.enqueue(w));v&&v.done&&(q&&p<q?t.error("connection closed prematurely"): 2133(q=p,d(t)));void 0!==q&&g.trigger(l.kc,{totalBytes:q,bytesLoaded:p,percent:p<q?100*p/q:100})}))||void 0===u?void 0:u.catch(function(v){console.log("Error reading response",v);t.error(v)})}if(g.Dz)return b.body.getReader().cancel(),Promise.reject("cancel requested before server responded.");if(!b.ok)return Promise.resolve(b);var n=b.headers.get("content-length")||b.headers.get("x-content-length"),q,p=0;null!==n&&(q=parseInt(n,10));g.So=b.body.getReader();var r=null;return new Response(new ReadableStream({start:function(t){g.Dz? 2134t.close():r=t},pull:function(t){return e(t)},cancel:function(){return d()}}))}).then(function(b){return b.arrayBuffer()}).then(function(b){g.iva(b)}
2134).catch(function(){g.eva()})};h.prototype.cancel=function(){this.cJ&&(this.cJ.cancel(),this.cJ=null)};h.prototype.mD=function(){this.Dz=!0;this.So&&(this.So.cancel(),this.So=null)};h.prototype.iva=function(g){var b;this.mpa=g;null===(b=this.cJ)||void 0===b?void 0:b.loaded();this.trigger(l.da,{buffer:g})};h.prototype.eva=function(){this.cancel();this.trigger(l.xc)}; 2135h.prototype.getData=function(){return this.mpa};return h}(m)}); 2136define("cu","require exports three.mod pw iw gD cv hn ml dV nd mQ fS".split(" "),function(a,f,l,m,k,c,h,g,b,d,e,n,q){return function(p){function r(t){var u=p.call(this)||this;u.type=r.TYPE;u.vG=[];u.LB=[];u.aFa=0;u.G=t;u.Mja=u.Mja.bind(u);u.Nja=u.Nja.bind(u);u.rL=h.NIa(new l.GLTFLoader);return u}Z(r,p);r.prototype.mia=function(){return this.Pl?this.Pl.scene:null};r.prototype.start=function(t){this.url=t;this.MIa();this.Nr.start()};r.prototype.update=function(){if(0!=this.vG.length||0!=this.LB.length){for(var t= 2137Date.now()+8,u=this.G.getComponent(q.Vh).vc.Od().Ur();0<this.LB.length&&Date.now()<t;){var v=this.LB.shift();u&&u.initTexture(v)}for(;0<this.vG.length&&Date.now()<t;)g.XGa(this.vG.shift());0==this.vG.length&&0==this.LB.length?this.$Ja():this.G.P.Ta()}};r.prototype.dispose=function(){this.yJa()};r.prototype.MIa=function(){this.Nr=new d(this.url,k.HC);this.O2a()};r.prototype.yJa=function(){this.Nr&&(this.j9a(),this.Nr.cancel())};r.prototype.O2a=function(){this.Nr.bind(m.da,this.PL,this,!0);this.Nr.bind(m.kc, 2138this.RL,this,!0);this.Nr.bind(m.xc,this.QL,this,!0)};r.prototype.j9a=function(){this.Nr.unbind(m.da,this.PL,this);this.Nr.unbind(m.kc,this.RL,this);this.Nr.unbind(m.xc,this.QL,this)};r.prototype.PL=function(){this.rL.parse(this.Nr.getData(),n.getDirectory(this.url),this.Mja,this.Nja)};r.prototype.RL=function(t){this.trigger(m.kc,t.data)};r.prototype.QL=function(){2>this.aFa?(this.aFa++,this.yJa(),this.MIa(),this.Nr.start()):this.trigger(m.xc)};r.prototype.Nja=function(t){e.Zu&&t&&t.message&&console.error(t.message); 2139this.trigger(m.xc)};r.prototype.Mja=function(t){this.rL&&(this.vG=[],this.LB=[],t.scene.traverse(function(u){if(u.isMesh){var v=u.material;v&&(1==b.VGa&&v.isMeshPhysicalMaterial&&(u.material=v=(new l.MeshStandardMaterial).copy(v)),v.depthWrite=!v.transparent,v=this.L5a(v),this.LB=this.LB.concat(v))}this.vG.push(u)}.bind(this)),this.Pl=t,0==this.vG.length&&0==this.LB.length?this.$Ja():this.G.P.Ta())};r.prototype.$Ja=function(){this.trigger(m.INIT);this.trigger(m.da)};r.prototype.L5a=function(t){var u= 2140[];t.isMeshStandardMaterial?(t.alphaMap&&u.push(t.alphaMap),t.aoMap&&u.push(t.aoMap),t.bumpMap&&u.push(t.bumpMap),t.displacementMap&&u.push(t.displacementMap),t.emissiveMap&&u.push(t.emissiveMap),t.envMap&&u.push(t.envMap),t.lightMap&&u.push(t.lightMap),t.map&&u.push(t.map),t.metalnessMap&&u.push(t.metalnessMap),t.normalMap&&u.push(t.normalMap),t.roughnessMap&&u.push(t.roughnessMap)):t.isMeshBasicMaterial&&(t.alphaMap&&u.push(t.alphaMap),t.envMap&&u.push(t.envMap),t.map&&u.push(t.map));return u}; 2141r.TYPE="gltf";return r}(c)}); 2142define("cj",["require","exports","pw","gD","cF"],function(a,f,l,m,k){return function(c){function h(g){var b=c.call(this)||this;b.type=h.TYPE;b.Bj=null;b.gT=null;b.url="";b.mB=null;b.Am=null;b.CF=null;b.VG=null;b.properties=g;b.PL=b.PL.bind(b);b.RL=b.RL.bind(b);b.QL=b.QL.bind(b);b.QT=b.QT.bind(b);return b}Z(h,c);h.prototype.mia=function(){return this.Bj};h.prototype.start=function(g){this.url=g;k.GS.Kh()?this.nJa():k.GS.load(this.d8a,this)};h.prototype.update=function(){(!this.gT||this.Am&&this.Am.state== 2143TDV.GS.StateFx.PLAYING)&&this.trigger(l.ba)};h.prototype.dispose=function(){this.CF&&(this.properties.unbind(l.F("antialiasingLevel"),this.Eja,this),this.CF.dispose(),this.CF=null);this.VG&&(this.properties.unbind(l.F("sphericalHarmonicsMaxDegree"),this.Qja,this),this.VG.dispose(),this.VG=null);this.properties.unbind(l.F("displayEffect"),this.Hja,this);this.gT&&(this.Bj.remove(this.gT),this.gT=null);this.Bj&&(this.Bj.removeEventListener("refresh",this.QT),this.Bj.dispose(),this.Bj=null);this.url= 2144""};h.prototype.d8a=function(){this.url&&this.nJa()};h.prototype.nJa=function(){this.Bj=new TDV.GS.GaussianSplattingGroup;this.Bj.addEventListener("refresh",this.QT);this.Bj.renderOrder=0;this.Bj.yu=!0;this.CF=new TDV.GS.AntialiasingFx;this.VG=new TDV.GS.SphericalHarmonicsFx;this.Bj.fx=(this.Bj.fx||[]).concat([this.CF,this.VG]);this.properties.bind(l.F("antialiasingLevel"),this.Eja,this,!1);this.properties.bind(l.F("sphericalHarmonicsMaxDegree"),this.Qja,this,!1);this.properties.bind(l.F("displayEffect"), 2145this.Hja,this,!1);this.Eja();this.Qja();this.Hja();(new TDV.GS.GaussianCloudLoader).load(this.url,this.PL,this.RL,this.QL)};h.prototype.PL=function(g){this.Bj&&(this.gT=g,this.Bj.add(g),this.trigger(l.INIT),this.trigger(l.da))};h.prototype.RL=function(g){var b=g.total;g=g.loaded;this.trigger(l.kc,{totalBytes:b,bytesLoaded:g,percent:g<b?100*g/b:100})};h.prototype.QL=function(){this.trigger(l.xc)};h.prototype.Hja=function(){var g=this.properties.get("displayEffect");if(this.mB!=g&&this.Bj){var b=this.Bj.fx; 2146this.Am&&(b=b.filter(function(d){return d!=this.Am}.bind(this)),this.Am.dispose(),this.Am=null);if(this.mB=g)this.Am=new TDV.GS.RadialFadeInAnimationFx,this.Am.sparseFadeFactor=this.mB.get("sparseFadeFactor"),this.Am.denseFadeFactor=this.mB.get("denseFadeFactor"),this.Am.denseTimeDelay=this.mB.get("denseTimeDelay"),this.Am.speedFactor=this.mB.get("speedFactor"),this.Am.minimumPointSize=this.mB.get("minimumPointSize"),b=b.concat([this.Am]),this.Am.play(),this.QT();this.Bj.fx=b}};h.prototype.QT=function(){this.trigger(l.ba)}; 2147h.prototype.Eja=function(){this.CF&&(this.CF.value=this.properties.get("antialiasingLevel"),this.trigger(l.ba))};h.prototype.Qja=function(){this.VG&&(this.VG.maxDegree=this.properties.get("sphericalHarmonicsMaxDegree"),this.trigger(l.ba))};h.TYPE="gs";return h}(m)}); 2148define("oo","require exports three.mod pw gD cv oq mQ".split(" "),function(a,f,l,m,k,c,h,g){a=function(p){function r(){var t=p.call(this)||this;t.type=r.TYPE;t.pe=null;t.rL=null;t.camera=null;t.mp=null;t.width=void 0;t.height=void 0;t.Kh=!1;t.K1=null;t.session=null;t.config=null;return t}Z(r,p);r.prototype.mia=function(){return this.pe?this.pe.group:null};r.prototype.a$a=function(t){this.config=t};r.prototype.start=function(t){this.K1=this.$4a(t);this.pe=new l.TDTiles.TilesRenderer(t);this.rL=c.NIa(new l.GLTFLoader(this.pe.manager)); 2149this.pe.manager.addHandler(/\.gltf$/,this.rL);this.config&&(this.pe.maxDepth=this.config.maxDepth,this.pe.loadSiblings=this.config.loadSiblings,this.pe.parseQueue.maxJobs=this.config.Uja,this.pe.downloadQueue.maxJobs=this.config.Mha,this.pe.lruCache.minSize=this.config.ija,this.pe.lruCache.maxSize=this.config.hja,this.pe.errorTarget=this.config.errorTarget,this.pe.errorThreshold=this.config.errorThreshold);g.Ria(t)&&(this.pe.fetchOptions.mode="cors");this.pe.onLoadModel=this.onLoadModel.bind(this); 2150this.pe.onDisposeModel=this.onDisposeModel.bind(this);this.pe.onLoadTileSet=this.onLoadTileSet.bind(this);this.pe.onTileVisibilityChange=this.onTileVisibilityChange.bind(this);this.pe.preprocessURL=this.m8a.bind(this);this.trigger(m.INIT)};r.prototype.dispose=function(){this.pe&&(this.rL=null,this.pe.dispose(),this.pe=null,this.mp&&this.mp.removeFromParent(),this.session=this.K1=null)};r.prototype.setCamera=function(t){this.camera!==t&&(this.camera=t,this.eKa(),this.updateCamera())};r.prototype.setSize= 2151function(t,u){if(this.width!==t||this.height!==u)this.width=t,this.height=u,this.gcb()};r.prototype.update=function(){this.camera&&this.width&&this.height&&(this.eKa(),this.pe.update(
2151))};r.prototype.$4a=function(t){return(new window.URL(t)).searchParams.get("key")||null};r.prototype.b6a=function(t){return(new window.URL(t)).searchParams.get("session")||null};r.prototype.updateCamera=function(){this.pe&&this.camera&&(this.pe.setCamera(this.camera),this.pe.setCamera(this.mp))};r.prototype.eKa=function(){this.camera&& 2152(this.mp||(this.mp=new l.OrthographicCamera(-1,1,-1,1),this.mp.matrixAutoUpdate=!1),this.mp.parent!==this.camera&&this.camera.add(this.mp),this.camera.updateMatrixWorld(!0),q.setFromMatrixPosition(this.camera.matrixWorld),n.copy(q).y-=this.camera.far,n.applyMatrix4(b.copy(this.camera.matrixWorld).invert()),e.random().cross(n).normalize(),this.mp.matrix.lookAt(d,n,e),this.mp.near=this.camera.near,this.mp.far=this.camera.far)};r.prototype.gcb=function(){this.pe&&this.camera&&this.width&&this.height&& 2153(this.pe.setResolution(this.camera,this.width,this.height),this.pe.setResolution(this.mp,1,1))};r.prototype.m8a=function(t){t=new window.URL(t);/^http/.test(t.protocol)&&(this.K1&&t.searchParams.append("key",this.K1),this.session&&t.searchParams.append("session",this.session));return t.toString()};r.prototype.onLoadModel=function(){this.Kh||(this.Kh=!0,this.trigger(m.da));this.trigger(m.ba)};r.prototype.onDisposeModel=function(t){t.traverse(function(u){u instanceof l.Mesh&&h.kU(u)})};r.prototype.onTileVisibilityChange= 2154function(t,u,v){v&&this.trigger(m.ba)};r.prototype.onLoadTileSet=function(){null==this.session&&this.pe.traverse(function(t){return t.content&&t.content.uri?(this.session=this.b6a(t.content.uri),!0):!1}.bind(this));this.trigger(m.ba)};r.TYPE="tiles";return r}(k);var b=new l.Matrix4,d=new l.Vector3,e=new l.Vector3,n=new l.Vector3,q=new l.Vector3;return a}); 2155define("hL",["require","exports"],function(){return function(){function a(){this.errorTarget=6;this.maxDepth=this.errorThreshold=Infinity;this.loadSiblings=!0;this.Mha=6;this.Uja=3;this.ija=600;this.hja=800}a.$3a=function(f){var l=new a;l.errorTarget=f.get("errorTarget",l.errorTarget);l.errorThreshold=f.get("errorThreshold",l.errorThreshold);l.maxDepth=f.get("maxDepth",l.maxDepth);l.loadSiblings=f.get("loadSiblings",l.loadSiblings);l.Mha=f.get("downloadMaxJobs",l.Mha);l.Uja=f.get("parseMaxJobs",l.Uja); 2156l.ija=f.get("lruCacheMinSize",l.ija);l.hja=f.get("lruCacheMaxSize",l.hja);return l};return a}()}); 2157define("nI",["require","hn"],function(a){function f(g){this.ia=g}var l=a("hn"),m=new THREE.Raycaster,k=new THREE.Vector3,c=new THREE.Vector3(0,-1,0),h=new THREE.Vector3(0,1,0);f.prototype.ZG=function(g,b){m.ray.origin.copy(g);k.copy(b).sub(g);var d=k.length();k.normalize();m.ray.direction.copy(k);g=this.QD();return 0<l.intersect(m,g).filter(function(e){if(e.distance>=.98*d||!e.object.visible)return!1;e=Array.isArray(e.object.material)&&e.face?e.object.material[e.face.materialIndex]:e.object.material; 2158return!e||e.visible}).length};f.prototype.p5a=function(g){m.ray.origin.copy(g);m.ray.direction.copy(c);g=this.QD();var b=l.intersect(m,g);if(0<b.length)return b[0].distance;m.ray.direction.copy(h);b=l.intersect(m,g);if(0<b.length)return-b[0].distance};f.prototype.QD=function(){var g=[];this.ia.traverse(function(b){b.isSprite||b.isLine||g.push(b)});return g};return f}); 2159define("bd",["require","cv"],function(a){function f(m,k){this.lb=m;this.YTa=k}var l=a("cv");f.prototype.qDa=function(m){return(m=this.Uc(m))&&m.matrixWorld};f.prototype.Uc=function(m){return m?l.pB(this.YTa,m):l.Uc(this.lb)};return f}); 2160define("eu",["require","cv"],function(a){function f(b,d,e){this.lb=b;this.MVa=d;this.gSa=e}var l=a("cv"),m=new THREE.Vector3,k=new THREE.Vector3,c=new THREE.Vector3,h=new THREE.Frustum,g=new THREE.Matrix4;f.prototype.Aia=function(b,d){d=this.MVa.qDa(d);if(!d)return null;k.copy(b).applyMatrix4(d);var e=(b=l.Uc(this.lb))&&l.dT(b);b=e&&l.tu(e);if(!b)return null;g.identity().multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);h.setFromProjectionMatrix(g);
2160if(!h.containsPoint(k))return null;d=(e&& 2161l.fT(e))/2;e=(e&&l.tB(e))/2;m.copy(k).project(b);d=m.x*d+d;e=-(m.y*e)+e;c.setFromMatrixPosition(b.matrixWorld);b=this.gSa.ZG(c,k);return{x:Math.round(d),y:Math.round(e),visible:!b}};return f}); 2162define("eO","require pw mS cu cj oo hL nI bd eu cv fS w iD mQ".split(" "),function(a){function f(t,u,v,w){this.m=t;this.Do=u;t=this.m.getComponent(q.Vh);this.o=t.properties;this.Ri=w;this.Ne=v;this.le=this.Ri.iu(1);this.Ne.JK(this.le,1);this.Ha=this.Pl=null;v=this.STa(t.sja);this.rd=this.BQa(v);this.CNa();this.rd.type===h.TYPE&&this.rd.a$a(g.$3a(t.sja));this.rd.start(v)}var l=a("pw"),m=a("mS"),k=a("cu"),c=a("cj"),h=a("oo"),g=a("hL"),b=a("nI"),d=a("bd"),e=a("eu"),n=a("cv"),q=a("fS"),p=a("w"),r=a("iD"); 2163a("mQ");f.prototype.BQa=function(t){return r.is(t,r.Bma)?new c(this.o):r.is(t,r.TMa)?new h:new k(this.m)};f.prototype.STa=function(t){var u=t.get("levels");if(!v&&p.pb())var v=(v=u.find(function(w){return-1<w.get("tags").indexOf(m.MV)}))&&v.get("url");v||u.length&&(v=u[0].get("url"));v||(v=t.get("url"));return v};f.prototype.update=function(){};f.prototype.frame=function(){this.rd.type===h.TYPE?this.g2a():this.rd.type===k.TYPE?this.s1a():this.rd.type===c.TYPE&&this.t1a()};f.prototype.g2a=function(){var t= 2164n.Cf(this.m),u=t&&n.tu(t);u&&(this.rd.setCamera(u),this.rd.setSize(n.fT(t),n.tB(t)),this.rd.update())};f.prototype.s1a=function(){this.rd.update()};f.prototype.t1a=function(){this.rd.update()};f.prototype.CNa=function(){this.rd.bind(l.INIT,this.Rua,this,!0);this.rd.bind(l.da,this.Cd,this,!0);this.rd.bind(l.xc,this.ag,this,!0);this.rd.bind(l.kc,this.Ki,this,!0);this.rd.bind(l.ba,this.jva,this,!0)};f.prototype.fYa=function(){this.rd.unbind(l.INIT,this.Rua,this);this.rd.unbind(l.da,this.Cd,this);this.rd.unbind(l.xc, 2165this.ag,this);this.rd.unbind(l.kc,this.Ki,this);this.rd.unbind(l.ba,this.jva,this)};f.prototype.Rua=function(){this.Ha=this.rd.mia();this.Do.I(q.Object3D).qa=this.Ha;var t=this.rd.type==k.TYPE,u=this.rd.type==c.TYPE;this.eOa(this.Ha,t||u);u=this.m.J(q.Vh,!0);u.Cia=t?this.rd.Pl:null;this.m.J(q.Animation,!0).properties=u.properties};f.prototype.Cd=function(){this.o.set("geometryQuery",new b(this.Ha));this.o.set("objectQuery",new d(this.m,this.Ha));this.o.set("projectionQuery",new e(this.m,this.o.get("objectQuery"), 2166this.o.get("geometryQuery")));this.T0()};f.prototype.Ki=function(t){this.le.trigger(l.kc,t.data)};f.prototype.ag=function(){this.le.trigger(l.xc)};f.prototype.jva=function(){this.m.J(q.Object3D,!0)};f.prototype.T0=function(){this.o.set("isLoaded",!0);this.le.trigger(l.da)};f.prototype.eOa=function(t,u){void 0===t.userData.id&&(t.userData.id="root");if(!1!==u)for(var v=[t];v.length;){var w=v.shift();t=[];w.children&&(t=t.concat(w.children));w.isSkinnedMesh&&(t=t.concat(w.skeleton.bones));t.forEach(function(x, 2167y){void 0===x.userData.id&&(x.userData.id=w.userData.id+"/"+y);v.push(x)})}};f.prototype.dispose=function(){this.Ha&&(this.rd.type!=c.TYPE&&this.Ha.traverse(function(t){function u(x){x&&0>v.indexOf(x)&&v.push(x)}var v=[];u(t.material);u(t.userData.cs);if(t.userData.gC)for(var w in t.userData.gC)u(t.userData.gC[w]);v.forEach(function(x){x.dispose();Object.keys(x).forEach(function(y){(y=x[y])&&"object"===typeof y&&"minFilter"in y&&y.dispose()})});t.geometry&&t.geometry.userData.uBa&&t.geometry.disposeBoundsTree(); 2168t.geometry&&t.geometry.dispose()}),this.Ha=null,this.Do.ha(q.Object3D));this.rd&&(this.fYa(),this.rd.dispose(),this.rd=null);this.le&&(this.Ne.cM(this.le),this.Ri.cM(this.le),this.Ne=this.le=null);this.o&&(this.o.set("geometryQuery",null),this.o.set("objectQuery",null),this.o.set("isLoaded",!1),this.o=null)};return f}); 2169define("o","require ld pw gD fS cv".split(" "),function(a){function f(p,r,t){this.lb=p;this.m=r;this.K=t;this.Jk=this.Jk.bind(this);this.Mg=this.Mg.bind(this);this.Pw=this.Pw.bind(this);this.ue=null;this.W=!1;this.z_=[1,1,1,1,1,1];this.iw=[];this.rg=[this.EK=this.vq(),this.DK=this.vq(),this.GK=this.vq(),this.FK=this.vq(),this.IK=this.vq(),this.HK=this.vq()];this.rg.forEach(function(u){u=u.J(c.kd);u.opacity=.5;u.depthTest=!1}.bind(this));l.ea(this.K,e,this.Mg,!0);l.ea(this.K,n,this.Jk,!0);l.ea(this.K, 2170q,this.Pw,!0)}var l=a("ld"),m=a("pw"),k=a("gD"),c=a("fS"),h=a("cv");f.prototype.frame=function(){if(this.W&&(this.KZa(this.rg.map(function(A){return h.YF(A)||1})),this.ue)){var p=h.Uc(this.m),r=h.Uc(this.KI(this.ue));if(p&&r){b.copy(p.matrixWorld).invert();g.setFromMatrixPosition(r.matrixWorld).applyMatrix4(b);p=this.K.get("x");r=this.K.get("y");var t=this.K.get("z"),u=this.K.get("width"),v=this.K.get("height"),w=this.K.get("depth"),x=0,y=0,z=0,B=0,E=0,I=0;switch(this.ue){case this.EK:B=g.x-.5*u; 2171x=.5*B;break;case this.DK:B=-g.x-.5*u;x=.5*-B;break;case this.GK:E=g.y-.5*v;y=.5*E;break;case this.FK:E=-g.y-.5*v;y=.5*-E;break;case this.IK:I=g.z-.5*w;z=.5*I;break;case this.HK:I=-g.z-.5*w,z=.5*-I}this.K.set("x",p+x);this.K.set("width",u+B);this.K.set("y",r+y);this.K.set("height",v+E);this.K.set("z",t+z);this.K.set("depth",w+I)}}};var g=new THREE.Vector3,b=new THREE.Matrix4;f.prototype.vq=function(){var p=this.lb.P.Pc("DraggingSphere");this.iw.push(p);p.I(c.Mesh).renderOrder=2;p.I(c.Geometry).geometry= 2172new THREE.SphereGeometry;p.I(c.kd);return p};f.prototype.Mg=function(){this.EK.J(c.kd).color=this.K.get("draggableXControl
2172sColor");this.DK.J(c.kd).color=this.K.get("draggableXControlsColor");this.GK.J(c.kd).color=this.K.get("draggableYControlsColor");this.FK.J(c.kd).color=this.K.get("draggableYControlsColor");this.IK.J(c.kd).color=this.K.get("draggableZControlsColor");this.HK.J(c.kd).color=this.K.get("draggableZControlsColor");var p=this.K.get("draggableSphereRadius");this.rg.forEach(function(r,t){r.J(c.va, 2173!0).scale=p*this.z_[t]}.bind(this))};f.prototype.Jk=function(){this.EK.J(c.va,!0).positionX=this.K.get("width")/2;this.DK.J(c.va,!0).positionX=-this.K.get("width")/2;this.GK.J(c.va,!0).positionY=this.K.get("height")/2;this.FK.J(c.va,!0).positionY=-this.K.get("height")/2;this.IK.J(c.va,!0).positionZ=this.K.get("depth")/2;this.HK.J(c.va,!0).positionZ=-this.K.get("depth")/2};f.prototype.Pw=function(){var p=this.K.get("sizeDraggable");this.W!=p&&(this.W=p,this.rg.forEach(function(r){p?(r.I(c.mb).G=this.m, 2174this.rg.forEach(function(t){t=t.I(c.Qd);t.xy=!0;t.Nx=!0;t.N=new k;t.N.bind(m.Dc,this.mJ,this,!0);t.N.bind(m.Jb,this.vca,this,!0);t.N.bind(m.gb,this.tca,this,!0);t.N.bind(m.Eb,this.uca,this,!0)}.bind(this))):(r.ha(c.mb),this.rg.forEach(function(t){t.ha(c.Qd)}.bind(this)))}.bind(this)))};f.prototype.KZa=function(p){for(var r=!1,t=0;t<this.z_.length&&!r;t++)r=this.z_[t]!=p[t];r&&(this.z_=p,this.Mg())};f.prototype.mJ=function(p){(p=this.lw(p))&&p!=this.ue&&(p.J(c.kd).opacity=1)};f.prototype.vca=function(p){(p= 2175this.lw(p))&&p!=this.ue&&(p.J(c.kd).opacity=.5)};f.prototype.lw=function(p){p=this.rg.map(function(r){return r.getComponent(c.Qd).N}).indexOf(p.source);return-1==p?null:this.rg[p]};f.prototype.tca=function(p){p=this.lw(p);this.YQ(p)};f.prototype.uca=function(p){p=this.lw(p);p==this.ue&&(this.YQ(null),this.Jk(),(p=-1!=this.rg.indexOf(p))&&this.K.trigger(m.Cl),p&&this.K.trigger(m.Dna))};f.prototype.YQ=function(p){this.ue&&(this.ue.J(c.kd).opacity=.5,this.KI(this.ue).ha(c.av));if(this.ue=p)this.ue.J(c.kd).opacity= 21761,p=this.KI(this.ue).I(c.av),p.direction=this.MSa(this.ue),p.min=this.NSa(this.ue)};f.prototype.MSa=function(p){var r=h.getWorldPosition(this.m);return h.getWorldPosition(p).sub(r)};f.prototype.KI=function(p){return-1!=this.rg.indexOf(p)?p:null};f.prototype.NSa=function(p){var r=this.qTa(p);if(r){r=h.getWorldPosition(r);var t=h.getWorldPosition(p).sub(r);switch(p){case this.EK:case this.DK:var u=this.K.get("minWidth");break;case this.GK:case this.FK:u=this.K.get("minHeight");break;case this.IK:case this.HK:u= 2177this.K.get("minDepth")}return r.add(t.setLength(u||d))}};f.prototype.qTa=function(p){switch(p){case this.EK:return this.DK;case this.DK:return this.EK;case this.GK:return this.FK;case this.FK:return this.GK;case this.IK:return this.HK;case this.HK:return this.IK}return null};f.prototype.dispose=function(){l.ca(this.K,e,this.Mg);l.ca(this.K,n,this.Jk);l.ca(this.K,q,this.Pw);var p=this.lb.P;this.iw.forEach(function(r){p.Nd(r)});this.K=this.lb=this.rg=this.m=this.iw=null};var d=1E-6,e=["draggableSphereRadius", 2178"draggableXControlsColor","draggableYControlsColor","draggableZControlsColor"],n="depth height x y z width".split(" "),q=["sizeDraggable"];return f}); 2179define("cB","require ld pw gD fS o".split(" "),function(a){function f(e,n,q){this.lb=e;this.K=q;this.Jk=this.Jk.bind(this);this.Mg=this.Mg.bind(this);this.Qw=this.Qw.bind(this);this.m=this.aQa();e=this.m.I(c.mb);e.G=this.lb;e.id=this.K.get("parentId");this.Xs=this.j9();this.Xs.I(c.mb).G=this.m;this.gO=this.oQa();this.gO.I(c.mb).G=this.m;this.iw=[this.m,this.Xs,this.gO];this.e$=new h(this.lb,this.m,this.K);e=this.m.I(c.Qd);e.Nx=!0;e.xy=!0;e.N=this.K;l.ea(this.K,g,this.Mg,!0);l.ea(this.K,b,this.Jk, 2180!0);l.ea(this.K,d,this.Qw,!0);this.K.trigger(m.jd)}var l=a("ld"),m=a("pw"),k=a("gD"),c=a("fS"),h=a("o");f.prototype.frame=function(){this.e$.frame()};f.prototype.aQa=function(){var e=this.lb.P.Pc("Box");e.I(c.Group);return e};f.prototype.j9=function(){var e=this.lb.P.Pc("BoxBorder");e.I(c.Line);e.I(c.Geometry).geometry=this.bQa();e.I(c.th);return e};f.prototype.oQa=function(){var e=this.lb.P.Pc("BoxFace");e.I(c.Mesh);var n=e.I(c.Wh);n.castShadow=!1;n.receiveShadow=!1;e.I(c.Geometry).geometry=new THREE.BoxGeometry(1, 21811,1);e.I(c.kd);return e};f.prototype.bQa=function(){var e=[new THREE.Vector3(-.5,-.5,.5),new THREE.Vector3(.5,-.5,.5),new THREE.Vector3(.5,-.5,.5),new THREE.Vector3(.5,.5,.5),new THREE.Vector3(.5,.5,.5),new THREE.Vector3(-.5,.5,.5),new THREE.Vector3(-.5,.5,.5),new THREE.Vector3(-.5,-.5,.5),new THREE.Vector3(-.5,-.5,-.5),new THREE.Vector3(.5,-.5,-.5),new THREE.Vector3(.5,-.5,-.5),new THREE.Vector3(.5,.5,-.5),new THREE.Vector3(.5,.5,-.5),new THREE.Vector3(-.5,.5,-.5),new THREE.Vector3(-.5,.5,-.5),new THREE.Vector3(-.5, 2182-.5,-.5),new THREE.Vector3(-.5,-.5,.5),new THREE.Vector3(-.5,-.5,-.5),new THREE.Vector3(.5,-.5,.5),new THREE.Vector3(.5,-.5,-.5),new THREE.Vector3(-.5,.5,.5),new THREE.Vector3(-.5,.5,-.5),new THREE.Vector3(.5,.5,.5),new THREE.Vector3(.5,.5,-.5)];return(new THREE.BufferGeometry).setFromPoints(e)};f.prototype.Mg=function(){var e=this.Xs.J(c.th);e.color=this.K.get("lineColor");e.opacity=this.K.get("lineOpacity");e.width=this.K.get("lineWidth");e.depthTest=this.K.get("depthTest");e=this.gO.J(c.kd);e.color= 2183this.K.get("faceColor");e.opacity=this.K.get("faceOpacity");e.depthTest=this.K.get("depthTest");e=this.m.J(c.Qd,!0);e.eH=this.K.get("useHandCursor");e.zM=this.K.get("transparentAreaActive")};f.prototype.Jk=function(){var e=this.m.J(c.va,!0);e.positionX=this.K.get("x");e.positionY=this.K.get("y");e.positionZ=this.K.get("z");
2183e=this.Xs.J(c.va,!0);var n=this.gO.J(c.va,!0);n.qf=e.qf=this.K.get("width");n.Ff=e.Ff=this.K.get("height");n.nh=e.nh=this.K.get("depth")};f.prototype.Qw=function(){if(this.K.get("positionDraggable")){var e= 2184this.m.J(c.Wg,!0);e.N||(e.N=new k,e.N.bind(m.ba,this.pl,this,!0));e.translate=this.K.get("positionDraggable")||!1;e.rotate=!1;e.scale=!1}else(e=this.m.getComponent(c.Wg))&&e.N.unbind(m.ba,this.pl,this),this.m.ha(c.Wg)};f.prototype.pl=function(e){this.K.set({x:e.data.position.x,y:e.data.position.y,z:e.data.position.z});this.K.trigger(m.Cl)};f.prototype.dispose=function(){this.e$.dispose();this.e$=null;l.ca(this.K,d,this.Qw);l.ca(this.K,g,this.Mg);l.ca(this.K,b,this.Jk);var e=this.lb.P;this.iw.forEach(function(n){e.Nd(n)}); 2185this.lb=this.gO=this.Xs=this.m=this.iw=null;this.K.trigger(m.ad);this.K=null};var g=["transparentAreaActive","useHandCursor"],b="depth height x y z width".split(" "),d=["positionDraggable"];return f}); 2186define("cS","require ld pw gD fS cv".split(" "),function(a){function f(w,x,y){this.lb=w;this.m=x;this.K=y;this.zE=this.zE.bind(this);this.Mg=this.Mg.bind(this);this.Pw=this.Pw.bind(this);this.ue=null;this.W=!1;this.RV=this.At=1;this.Zs=this.lb.P.Pc("DraggingSize2DContainer");this.Zs.I(c.Group);this.Zs.I(c.va);this.rg=[this.Rba=this.vq(),this.Kba=this.vq(),this.jea=this.vq(),this.Qda=this.vq()];this.rg.forEach(function(z){z.I(c.va);z=z.J(c.kd);z.color="#ffffff";z.opacity=.5;z.depthTest=!1}.bind(this));
2187this.Xs=this.j9();this.iw=[this.Zs,this.Xs].concat(this.rg);[this.Xs].concat(this.rg).forEach(function(z){z.I(c.mb).G=this.Zs}.bind(this));l.ea(this.K,u,this.zE,!0);l.ea(this.K,t,this.Mg,!0);l.ea(this.K,v,this.Pw,!0)}var l=a("ld"),m=a("pw"),k=a("gD"),c=a("fS"),h=a("cv"),g=new THREE.Matrix4,b=new THREE.Vector3,d=new THREE.Vector3,e=new THREE.Quaternion,n=new THREE.Vector3,q=new THREE.Vector3,p=new THREE.Euler,r=180/Math.PI;f.prototype.frame=function(){if(this.W){var w=h.Uc(this.Zs),x=w&&h.dT(w),y= 2188x&&h.tu(x);if(y){if(this.ue){var z=h.fT(x);x=h.tB(x);h.getWorldPosition(this.m,q).project(y);q.x=(q.x+1)*z*.5;q.y=(1-q.y)*x*.5;h.getWorldPosition(this.ue,n).project(y);n.x=(n.x+1)*z*.5;n.y=(1-n.y)*x*.5;z=this.K.get("anchorX");x=this.K.get("anchorY");var B,E,I=q.x-n.x,A=n.y-q.y,C=-I,J=-A;this.Kba===this.ue&&(0<z||1>x)?I>A?B=I/z:E=A/(1-x):this.Qda===this.ue&&(1>z||1>x)?C>A?B=C/(1-z):E=A/(1-x):this.Rba===this.ue&&(0<z||0<x)?I>J?B=I/z:E=J/x:this.jea===this.ue&&(1>z||0<x)&&(C>J?B=C/(1-z):E=J/x);void 0!== 2189E&&void 0===B?B=E*this.Uoa:void 0!==B&&void 0===E&&(E=B/this.Uoa);void 0!==B&&void 0!==E&&(z=this.K.get("sizeAttenuation")?this.At/this.RV:1,this.K.set("width",this.sa=B*z),this.K.set("height",this.wa=E*z))}B=this.Zs.getComponent(c.va);g.copy(w.parent.matrixWorld).invert().multiply(y.matrixWorld).decompose(b,e,d);p.setFromQuaternion(e,B.Ee);p.x*=r;p.y*=r;p.z*=r;if(B.Pd!=p.x||B.ud!=p.y||B.Fe!=p.z)B=this.Zs.J(c.va),B.Pd=p.x,B.ud=p.y,B.Fe=p.z;w.parent.getWorldScale(b);this.MYa(1/Math.max(b.x,b.y,b.z)); 2190this.zea(h.YF(this.Zs)||1)}}};f.prototype.c1a=function(w,x){null!=this.Mfa&&clearTimeout(this.Mfa);this.Mfa=setTimeout(function(){this.Mfa=null;if(this.sa!==w||this.wa!==x)this.sa=w,this.wa=x,this.Uoa=this.sa/this.wa}.bind(this),100)};f.prototype.vq=function(){var w=this.lb.P.Pc("DraggingSphere");w.I(c.Mesh).renderOrder=2;w.I(c.Geometry).geometry=new THREE.SphereGeometry;w.I(c.kd);return w};f.prototype.j9=function(){var w=this.lb.P.Pc("BoxBorder");w.I(c.Line);w.I(c.Geometry).geometry=this.NQa();var x= 2191w.I(c.th);x.color="#0000ff";x.depthTest=!1;x.width=1;return w};f.prototype.NQa=function(){var w=[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(w)};f.prototype.Mg=function(){var w=this.Xs.J(c.th);w.color=this.K.get("draggableLineColor");w.opacity=this.K.get("draggableLineOpacity"); 2192w.width=this.K.get("draggableLineWidth");this.rg.forEach(function(x){x.J(c.kd).color=this.K.get("draggableSphereColor");x.J(c.va).scale=this.K.get("draggableSphereRadius")*this.At}.bind(this))};f.prototype.zea=function(w){this.At!=w&&(this.At=w,this.zE(),this.Mg())};f.prototype.MYa=function(w){this.RV!=w&&(this.RV=w,this.zE(),this.Mg())};f.prototype.zE=function(){var w=this.K.get("anchorX"),x=this.K.get("anchorY"),y=this.K.get("width"),z=this.K.get("height"),B=this.K.get("sizeAttenuation")?this.RV: 2193this.At,E=this.Rba.J(c.va,!0);E.positionX=-w*y*B;E.positionY=x*z*B;E=this.jea.J(c.va,!0);E.positionX=(1-w)*y*B;E.positionY=x*z*B;E=this.Kba.J(c.va,!0);E.positionX=-w*y*B;E.positionY=(x-1)*z*B;E=this.Qda.J(c.va,!0);E.positionX=(1-w)*y*B;E.positionY=(x-1)*z*B;E=this.Xs.J(c.va,!0);E.positionX=(.5-w)*y*B;E.positionY=(x-.5)*z*B;E.qf=y*B;E.Ff=z*B;this.c1a(y,z)};f.prototype.Pw=function(){var w=this.K.get("sizeDraggable");this.W!=w&&((this.W=w)?(this.Zs.I(c.mb).G=this.m,this.rg.forEach(function(x){x=x.I(c.Qd); 2194x.xy=!0;x.Nx=!0;x.N=new k;x.N.bind(m.Dc,this.mJ,this,!0);x.N.bind(m.Jb,this.vca,this,!0);x.N.bind(m.gb,this.tca,this,!0);x.N.bind(m.Eb,this.uca,this,!0)}.bind(this))):(this.Zs.ha(c.mb),this.rg.forEach(function(x){x.ha(c.Qd)}.bind(this))))};f.prototype.mJ=function(w){(w=this.lw(w))&&w!=this.ue&&(w.J(c.kd).opacity=1)};f.prototype.vca=function(w){(w=this.lw(w))&&w!=this.ue&&(w.J(c.kd).opacity=.5)};f.prototype.tca=function(w){w=this.lw(w);this.YQ(w)};f.prototype.uca=function(w){(w=this.lw(w))&&w==this.ue&& 2195(this.YQ(null),this.zE(),(w=-1!=this.rg.indexOf(w))&&this.K.trigger(m.Cl),w&&this.K.trigger(m.Dna))};
2195f.prototype.lw=function(w){w=this.rg.map(function(x){return x.getComponent(c.Qd).N}).indexOf(w.source);if(-1==w)return null;w=this.rg[w];return this.WUa(w)?w:null};f.prototype.WUa=function(w){var x=this.K.get("anchorX"),y=this.K.get("anchorY");return this.Kba===w&&(0<x||0<y)||this.Qda===w&&(1>x||0<y)||this.Rba===w&&(0<x||1>y)||this.jea===w&&(1>x||1>y)?!0:!1};f.prototype.YQ=function(w){this.ue&&(this.ue.J(c.kd).opacity= 2196.5,this.KI(this.ue).ha(c.av));if(this.ue=w){this.ue.J(c.kd).opacity=1;var x=this.KI(this.ue).I(c.av),y=h.getWorldPosition(this.m);w=h.getWorldPosition(w);w=(new THREE.Vector3).copy(w).sub(y);var z=Math.min(w.length(),10*this.At);y=(new THREE.Vector3).copy(y).add(b.copy(w).setLength(z));x.direction=w;x.min=y}};f.prototype.KI=function(w){return-1!=this.rg.indexOf(w)?w:null};f.prototype.dispose=function(){l.ca(this.K,u,this.zE);l.ca(this.K,t,this.Mg);l.ca(this.K,v,this.Pw);var w=this.lb.P;this.iw.forEach(function(x){w.Nd(x)}); 2197this.K=this.lb=this.rg=this.m=this.iw=null};var t=["draggableLineColor","draggableLineOpacity","draggableLineWidth","draggableSphereColor","draggableSphereRadius"],u="anchorX anchorY height sizeAttenuation x y z width".split(" "),v=["sizeDraggable"];return f}); 2198define("iC","require ld pw iw gD fS cS cv".split(" "),function(a){function f(x,y,z,B,E){this.lb=x;this.Ne=z;this.Ri=B;this.K=E;this.Jk=this.Jk.bind(this);this.RP=this.RP.bind(this);this.Mg=this.Mg.bind(this);this.yZ=this.yZ.bind(this);this.Qw=this.Qw.bind(this);this.dh=this.Ne.iu(1);this.xpa=new THREE.Vector3;this.xW=new THREE.Euler;this.K.get("preload")&&this.Ri.JK(this.dh);this.m=this.lb.P.Pc("SpriteContainer");this.m.I(h.Group);x=this.m.I(h.mb);x.G=this.lb;x.id=this.K.get("parentId");this.GR=this.lb.P.Pc("TranslationSpriteContainer"); 2199this.GR.I(h.Group);this.GR.I(h.mb).G=this.m;this.Mt=this.lb.P.Pc("Sprite");this.Mt.I(h.mb).G=this.GR;x=this.Mt.I(h.Vm);x.properties=this.K;x.Kia=this.K.get("image");x.N=this.K;x.vp=this.dh;x.isSprite=!0;x.priority=this.K.get("preload")?k.HC:k.Rma;this.Mt.I(h.Qd).N=this.K;this.Mt.I(h.Vy);this.Mt.I(h.PM).object=this.K;this.Lba=!1;this.At=1E-4;this.Bw=this.m.P.Pc("TranslationLine");this.Bw.I(h.Line);this.Bw.I(h.th);this.d$=new g(this.lb,this.GR,this.K);l.ea(this.K,w,this.Qw,!0);l.ea(this.K,r,this.Jk, 2200!0);l.ea(this.K,u,this.RP,!0);l.ea(this.K,v,this.Mg,!0);l.ea(this.K,t,this.yZ,!0)}var l=a("ld"),m=a("pw"),k=a("iw"),c=a("gD"),h=a("fS"),g=a("cS"),b=a("cv");f.prototype.frame=function(){this.d$.frame();this.zea(b.YF(this.m)||1E-4)};f.prototype.Jk=function(){this.m.I(h.mb).id!=this.K.get("parentId")&&(this.m.J(h.mb).id=this.K.get("parentId"));var x=this.m.J(h.va,!0);x.translationX=this.K.get("x");x.translationY=this.K.get("y");x.He=this.K.get("z")};f.prototype.zea=function(x){this.At!=x&&(this.At=x, 2201this.K.set("worldPixelScale",b.LDa(this.m)),this.RP())};f.prototype.RP=function(){var x=this.m.J(h.va,!0),y=this.GR.J(h.va,!0),z=this.Bw.J(h.va,!0),B=this.K.get("translationLength");n.set(this.K.get("translationX"),this.K.get("translationY"),this.K.get("translationZ"));B=void 0!==B?B*this.At:n.length();if(this.xpa.equals(n)){var E=this.xW.x;var I=this.xW.y;var A=this.xW.z}else d.setFromUnitVectors(q,n.normalize()),I=Math.atan2(n.x,n.z),E=-Math.atan2(n.y,Math.sqrt(n.x*n.x+n.z*n.z)),A=0;y.translationX= 22020;y.translationX=0;y.translationY=0;y.He=B;z.scale=B;x.Pd=E*p;x.ud=I*p;x.Fe=A*p;x.Ee="YXZ";this.aAa()};var d=new THREE.Quaternion,e=new THREE.Euler,n=new THREE.Vector3,q=new THREE.Vector3(0,0,1),p=180/Math.PI;f.prototype.Mg=function(){var x=this.Mt.J(h.Qd,!0);x.eH=this.K.get("useHandCursor");x.zM=this.K.get("transparentAreaActive");x.Nx=this.K.get("clickEnabled");x.xy=this.K.get("rollOverEnabled");x=this.Bw.J(h.th);x.color=this.K.get("translationLineColor");x.depthTest=this.K.get("depthTest");x.opacity= 2203this.K.get("hidden")?0:this.K.get("translationLineOpacity");x.transparent=!1;x.width=this.K.get("translationLineWidth");this.aAa();x=this.Bw.J(h.Line,!0);var y=this.Mt.J(h.Sprite,!0);x.renderOrder=y.renderOrder=this.K.get("depthTest")?0:2};f.prototype.yZ=function(){var x=this.Mt.J(h.Sprite,!0);x.KK=this.K.get("anchorX");x.LK=this.K.get("anchorY");x.width=this.K.get("width");x.height=this.K.get("height");x.scale=this.K.get("scale");x.sizeAttenuation=this.K.get("sizeAttenuation")};f.prototype.Qw=function(){if(this.K.get("positionDraggable")|| 2204this.K.get("translationDraggable")){var x=this.m.J(h.Wg,!0);x.N||(x.N=new c,x.N.bind(m.ba,this.pl,this,!0));x.translate=this.K.get("positionDraggable")||!1;x.rotate=this.K.get("translationDraggable")||!1;x.scale=!1}else(x=this.m.getComponent(h.Wg))&&x.N.unbind(m.ba,this.pl,this),this.m.ha(h.Wg)};f.prototype.pl=function(x){var y=n.set(this.K.get("translationX"),this.K.get("translationY"),this.K.get("translationZ")).length();e.setFromQuaternion(x.data.quaternion,this.m.getComponent(h.va).Ee);n.copy(q).setLength(y).applyQuaternion(x.data.quaternion); 2205this.xpa.copy(n);this.xW.copy(e);this.K.set({x:x.data.position.x,y:x.data.position.y,z:x.data.position.z,translationX:n.x,translationY:n.y,translationZ:n.z});this.K.trigger(m.Cl)};f.prototype.aAa=function(){var x=this.K.get("translationLineVisible")&&0<this.K.get("translationLineOpacity")&&(0!=this.K.get("translationX")||0!=this.K.get("translationY")||0!=this.K.get("translationZ"));this.Lba!=x&&((this.Lba=x)?this.Bw.I(h.mb).G=this.m:this.Bw.ha(h.mb))};f.prototype.dispose=function(){this.d$.dispose(); 2206this.d$=null;l.ca(this.K,w,this.Qw);l.ca(this.K,r,this.Jk);l.ca(this.K,u,this.RP);l.ca(this.K,v,this.Mg);l.ca(this.K,t,this.yZ);this.Ne.cM(this.dh);this.Ri.cM(this.dh);this.dh=this.Ri=this.Ne=null;var x=this.lb.P;this.lb=null;x.Nd(this.Mt);this.Mt=null;x.Nd(this.Bw);this.Bw=null;x.Nd(this.m);this.K=this.m=null};
2206var r=["parentId","x","y","z"],t="anchorX anchorY width height scale sizeAttenuation".split(" "),u=["translationX","translationY","translationZ","translationLength"],v="clickEnabled depthTest hidden rollOverEnabled transparentAreaActive translationLineColor translationLineOpacity translationLineVisible translationLineWidth useHandCursor".split(" "), 2207w=["positionDraggable","translationDraggable"];return f});define("gp",["require","oj","cB","iC"],function(a){var f=a("oj"),l=a("cB"),m=a("iC");return{create:function(k,c,h,g,b){return f.Ja("SpriteModel3DObject",b)?new m(k,c,h,g,b):f.Ja("BoxModel3DObject",b)?new l(k,c,b):null}}}); 2208define("lx",["require","ld","pT","fS","gp"],function(a){function f(h,g,b,d){this.m=h;this.Do=g;this.Ne=b;this.Ri=d;this.iua=new m(this.Ri.iu(.1));this.hua=new m(this.Ne.iu(.1));this.AE=this.AE.bind(this);this.Ix=h.P;this.o=this.m.getComponent(k.Vh).properties;this.Ha=(h=this.m.getComponent(k.Object3D))&&h.qa;this.ak=[];this.cZ=new Map;l.ea(this.o,["objects.enabled"],this.AE,!0)}var l=a("ld"),m=a("pT"),k=a("fS"),c=a("gp");f.prototype.update=function(){var h=this.m.getComponent(k.Object3D);h=h&&h.qa; 2209if(this.Ha!==h){var g=this.Ha;this.Ha=h;this.c1(!!g)}};f.prototype.frame=function(){this.cZ.forEach(function(h){h&&h.frame&&h.frame()})};f.prototype.dispose=function(){this.Ha=null;l.ca(this.o,["objects.enabled"],this.AE);this.iya([])};f.prototype.AE=function(){this.c1()};f.prototype.c1=function(h){var g=this.o.get("objects").filter(function(b){return b.get("enabled")});this.iya(g,h);this.iua.update();this.hua.update()};f.prototype.iya=function(h,g){if(this.ak!=h||g)this.ak.forEach(function(b){(g|| 22100>h.indexOf(b))&&this.iYa(b)}.bind(this)),h.forEach(function(b){(g||0>this.ak.indexOf(b))&&this.ENa(b)}.bind(this)),this.ak=h};f.prototype.ENa=function(h){this.cZ.set(h,c.create(this.m,this.Do,this.hua,this.iua,h))};f.prototype.iYa=function(h){var g=this.cZ.get(h);g&&g.dispose();this.cZ["delete"](h)};return f}); 2211define("kK",["require","pw","fS"],function(a){function f(h,g){this.m=h;this.Do=g;this.Ch=this.Ha=this.o=null;this.nm(this.m.getComponent(m.Vh).properties);this.update()}var l=a("pw"),m=a("fS");f.prototype.frame=function(){this.update()};f.prototype.update=function(){var h=this.Do.getComponent(m.Object3D);h=h&&h.qa;this.Ha!=h&&(this.Ha=h,this.dD())};f.prototype.nm=function(h){this.o&&k.forEach(function(g){this.o.unbind(l.F(g),this.dD,this,!1)}.bind(this));if(this.o=h)k.forEach(function(g){this.o.bind(l.F(g), 2212this.dD,this,!1)}.bind(this)),this.dD()};f.prototype.dD=function(){this.hya(this.o.get("model"));this.Ha&&this.m.P.Ta()};f.prototype.hya=function(h){this.Ch!=h&&(this.Ch&&c.forEach(function(g){this.Ch.unbind(l.F(g),this.o8,this,!1)}.bind(this)),this.Ch=h)&&(c.forEach(function(g){this.Ch.bind(l.F(g),this.o8,this,!1)}.bind(this)),this.o8())};f.prototype.o8=function(){var h=this.Do.J(m.va,!0);h.positionX=this.Ch.get("positionX");h.positionY=this.Ch.get("positionY");h.positionZ=this.Ch.get("positionZ"); 2213h.Ee=this.Ch.get("rotationOrder");h.Pd=this.Ch.get("rotationX");h.ud=this.Ch.get("rotationY");h.Fe=this.Ch.get("rotationZ");h.scale=this.Ch.get("scale");h.qf=this.Ch.get("invertX")?-1:1;h.Ff=this.Ch.get("invertY")?-1:1;h.nh=this.Ch.get("invertZ")?-1:1;h.translationX=this.Ch.get("translationX");h.translationY=this.Ch.get("translationY");h.He=this.Ch.get("translationZ")};f.prototype.dispose=function(){this.Ha=null;this.hya(null);this.nm(null)};var k=["model"],c="invertX invertY invertZ positionX positionY positionZ rotationOrder rotationX rotationY rotationZ scale translationX translationY translationZ".split(" "); 2214return f}); 2215define("bX","require pw cI pT fS eO lx kK".split(" "),function(a){function f(d){this.m=d;this.m.I(c.Group);d=this.m.getComponent(c.Vh);this.Do=d.HF;this.Ri=new k(d.WGa);this.Ne=new k(d.vp);this.le=d.N;this.rd=new h(this.m,this.Do,this.Ne,this.Ri);this.ak=new g(this.m,this.Do,this.Ne,this.Ri);this.o=new b(this.m,this.Do)}var l=a("pw"),m=a("cI"),k=a("pT"),c=a("fS"),h=a("eO"),g=a("lx"),b=a("kK");f.prototype.update=function(){this.rd.update();this.ak.update();this.o.update()};f.prototype.frame=function(){this.rd.frame(); 2216this.ak.frame();this.o.frame();this.le.trigger(new m(l.Th))};f.prototype.dispose=function(){this.rd&&(this.rd.dispose(),this.rd=null);this.ak&&(this.ak.dispose(),this.ak=null);this.o&&(this.o.dispose(),this.o=null);this.Ne&&(this.Ne.dispose(),this.Ne=null);this.le=this.Do=null};f.$a=function(d){d.I(c.lv).manager=new f(d)};f.Ca=function(d){var e=d.getComponent(c.lv);e.manager.dispose();e.manager=null;d.ha(c.lv)};
2216f.update=function(d){d.getComponent(c.lv).manager.update()};f.frame=function(d){d.getComponent(c.lv).manager.frame()}; 2217return f});define("lA",["require","lQ","ma","fS","bX"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("bX");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.lFa.u.length&&this.lFa.u.slice().forEach(k.$a);this.H3.Ea.length&&this.H3.Ea.slice().forEach(k.update);this.H3.u.length&&this.H3.u.slice().forEach(k.frame);this.mFa.u.length&&this.mFa.u.slice().forEach(k.Ca)};a.H={};a.H.lFa=[m.Vh,m.lv.not];a.H.H3=[m.Vh,m.lv];a.H.mFa=[m.Vh.not,m.lv];return a}); 2218define("cq",["require","fS","cv"],function(a){function f(k){this.m=k;this.oe=null}var l=a("fS"),m=a("cv");f.prototype.frame=function(){if(!this.oe){var k=this.m.getComponent(l.BH),c=m.Uc(k.container);if(this.oe=c&&k.id&&m.pB(c,k.id)||null)this.m.I(l.Object3D).qa=this.oe,this.m.P.Ta()}};f.prototype.update=function(){this.oe&&(this.m.ha(l.Object3D),this.oe=null)};f.prototype.dispose=function(){this.oe&&(this.m.ha(l.Object3D),this.oe=null)};f.$a=function(k){k.I(l.mv).manager=new f(k)};f.Ca=function(k){var c= 2219k.getComponent(l.mv);c.manager.dispose();c.manager=null;k.ha(l.mv)};f.frame=function(k){k.getComponent(l.mv).manager.frame()};f.update=function(k){k.getComponent(l.mv).manager.update()};return f}); 2220define("hy",["require","lQ","ma","fS","cq"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("cq");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.CFa.u.length&&this.CFa.u.slice().forEach(k.$a);this.O3.Ea.length&&this.O3.Ea.slice().forEach(k.update);this.O3.u.length&&this.O3.u.slice().forEach(k.frame);this.DFa.u.length&&this.DFa.u.slice().forEach(k.Ca)};a.H={};a.H.CFa=[m.BH,m.mv.not];a.H.O3=[m.BH,m.mv];a.H.DFa=[m.BH.not,m.mv];return a}); 2221define("oB",["require","fS","oq"],function(a){function f(k){this.m=k;this.MD=new THREE.PlaneGeometry;this.Hta=this.m.I(l.Object3D).qa=new THREE.Mesh(this.MD);this.update()}var l=a("fS"),m=a("oq");f.prototype.update=function(){var k=this.m.getComponent(l.Material).material;k&&m.hB(this.Hta,k);this.Hta.renderOrder=this.m.getComponent(l.Plane).renderOrder};f.prototype.dispose=function(){this.MD.dispose();this.MD=null};f.$a=function(k){k.I(l.ov).manager=new f(k)};f.Ca=function(k){var c=k.getComponent(l.ov); 2222c.manager.dispose();c.manager=null;k.ha(l.ov);k.ha(l.Object3D)};f.update=function(k){k.getComponent(l.ov).manager.update()};return f}); 2223define("ht",["require","lQ","ma","fS","oB"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("oB");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.UT.u.length&&this.UT.u.slice().forEach(k.$a);this.planes.Ea.length&&this.planes.Ea.slice().forEach(k.update);this.KGa.u.length&&this.KGa.u.slice().forEach(k.Ca);this.LGa.u.length&&this.LGa.u.slice().forEach(k.Ca)};a.H={};a.H.UT=[m.Material,m.Plane,m.ov.not];a.H.planes=[m.Plane,m.Material,m.ov];a.H.KGa=[m.Plane.not,m.ov]; 2224a.H.LGa=[m.Material.not,m.ov];return a}); 2225define("in",["require","fS","cv"],function(a){var f=a("fS"),l=a("cv");return{$a:function(m){var k=m.getComponent(f.mb),c=l.Uc(k.G);if(c){var h=m.I(f.Js);h.parent=c;k.id&&(c=c&&l.pB(c,k.id));h.id=k.id;h.Md=l.Uc(m);h.attach=k.attach;c&&h.Md&&(h.attach?c.attach(h.Md):c.add(h.Md))}},update:function(m){var k=m.getComponent(f.mb),c=m.getComponent(f.Js),h=l.Uc(k.G),g=l.Uc(m);if(c.parent!=h||c.Md!=g||k.id!=c.id||k.attach!=c.attach||g&&h&&!g.parent)c=m.J(f.Js),c.Md&&c.Md.parent&&(k.G.J(f.Object3D),c.Md.parent.remove(c.Md)), 2226c.parent=h,k.id&&(h=h&&l.pB(h,k.id)),c.id=k.id,c.Md=g,c.attach=k.attach,h&&c.Md&&(c.attach?h.attach(c.Md):h.add(c.Md),(k=m.getComponent(f.va))&&l.CU(m,k))},Ca:function(m){var k=m.getComponent(f.Js);k.Md&&k.Md.parent&&k.Md.parent.remove(k.Md);k.parent=null;k.Md=null;k.id=void 0;m.ha(f.Js)}}}); 2227define("nq",["require","lQ","ma","fS","in"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("in");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.MT.u.length&&this.MT.u.slice().forEach(k.$a);this.Yr.u.length&&this.Yr.u.slice().forEach(k.update);
2227this.Yr.Ea.length&&this.Yr.Ea.slice().forEach(k.update);this.Yr.Kd.length&&this.Yr.Kd.slice().forEach(k.update);this.JBa.u.length&&this.JBa.u.slice().forEach(k.Ca);this.KBa.u.length&&this.KBa.u.slice().forEach(k.Ca)};a.H= 2228{};a.H.MT=[m.Object3D,m.mb,m.Js.not];a.H.Yr=[m.Object3D,m.mb,m.Js];a.H.JBa=[m.Object3D.not,m.mb,m.Js];a.H.KBa=[m.mb.not,m.Js];return a}); 2229define("dr",["require","lQ","ma","fS","cv"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("cv");a=f.extend(l,function(){l.apply(this,arguments);this.Vb=this.Vb.bind(this);this.jb=this.jb.bind(this);this.xf=this.xf.bind(this)});a.prototype.Tc=function(){this.GGa.u.length&&this.GGa.u.slice().forEach(this.Vb);this.FGa.u.length&&this.FGa.u.slice().forEach(this.xf);this.HGa.u.length&&this.HGa.u.slice().forEach(this.jb);this.IGa.u.length&&this.IGa.u.slice().forEach(this.jb)};a.prototype.Vb=function(g){g.I(m.NC)}; 2230a.prototype.jb=function(g){g.ha(m.NC)};var c=new THREE.Matrix4,h=new THREE.Vector3;a.prototype.xf=function(g){var b=g.getComponent(m.Mj),d=g.getComponent(m.va);if(d){var e=g.getComponent(m.Object3D).qa;if(e&&e.parent){var n=g.getComponent(m.Wf),q=1E-7;n&&(q=k.YF(g)||q);c.copy(e.parent.matrixWorld).invert();h.setFromMatrixScale(c);e=Math.max(h.x,h.y,h.z);n&&n.Kx&&(q/=e,e=1);n=b.scale*e;void 0!==b.zB&&(n=Math.min(b.zB*q,n));void 0!==b.AB&&(n=Math.max(b.AB*q,n));if(d.scale!=n||d.qf!=b.qf||d.Ff!=b.Ff|| 2231d.nh!=b.nh)d=g.J(m.va),d.scale=n,d.qf=b.qf,d.Ff=b.Ff,d.nh=b.nh}}};a.H={};a.H.GGa=[m.Object3D,m.Mj,m.NC.not];a.H.FGa=[m.Object3D,m.Mj,m.NC];a.H.HGa=[m.Object3D.not,m.NC];a.H.IGa=[m.Mj.not,m.NC];return a}); 2232define("eb",["require","pw","fS","cv"],function(a){function f(u){this.m=u;this.wP=new THREE.Vector3;this.fb=new THREE.Vector3;this.Xaa=this.od=this.xfa=!1;this.HJ=null;this.update()}var l=a("pw"),m=a("fS"),k=a("cv");f.prototype.update=function(){this.Wca=this.m.getComponent(m.wk).G};f.prototype.frame=function(){this.iAa();this.Hx()};f.prototype.iAa=function(){var u=(t.get(this.m.P)||[]).map(function(v){return v.getComponent(m.Cc)}).filter(function(v){return v&&v.N}).reduce(function(v,w){return!v|| 2233!v.Zi&&w.Zi?w:v},null);u=u&&u.N;this.HJ!==u&&(this.HJ&&this.mYa(this.HJ),(this.HJ=u)&&this.INa(this.HJ))};f.prototype.INa=function(u){u.bind(l.Pb,this.Mf,this,!0);u.bind(l.Jb,this.Wq,this,!0)};f.prototype.mYa=function(u){u.unbind(l.Pb,this.Mf,this);u.unbind(l.Jb,this.Wq,this)};f.prototype.Mf=function(u){if(this.Wca&&k.pB(k.Uc(this.Wca),u.data.objectId)&&["mesh","gs"].includes(u.data.type)){var v=this.od;this.od=!0;var w=k.Uc(this.m);if((w=w&&w.parent)&&w.matrixWorld){var x=this.m.getComponent(m.wk); 2234x&&(h.setFromMatrixPosition(w.matrixWorld),g.copy(w.matrixWorld).invert(),b.fromArray(u.data.objectMatrixWorld),c.setFromMatrixPosition(b),d.copy(b).invert(),x.rotate?u.data.normal?this.wP.copy(u.data.normal).applyMatrix4(b).sub(c).add(h):this.wP.copy(u.data.cameraPosition):this.wP.copy(q),this.wP.applyMatrix4(g).normalize(),this.fb.copy(u.data.position).applyMatrix4(g),this.xfa=!0,this.m.P.Ta(),v||(u=(x=this.m.getComponent(m.wk))&&x.N)&&u.trigger(l.Dc))}}else this.Wq()};var c=new THREE.Vector3,h= 2235new THREE.Vector3,g=new THREE.Matrix4,b=new THREE.Matrix4,d=new THREE.Matrix4;f.prototype.Wq=function(){if(this.od){this.od=!1;this.m.P.Ta();var u=this.m.getComponent(m.wk);(u=u&&u.N)&&u.trigger(l.Jb)}};f.prototype.Hx=function(){if(this.xfa||this.od){this.xfa=!1;var u=this.m.J(m.va,!0);u.positionX=0;u.positionY=0;u.positionZ=0;e.setFromUnitVectors(n,this.wP);p.setFromQuaternion(e,u.Ee);u.Pd=p.x*r;u.ud=p.y*r;u.Fe=p.z*r;u.translationX=this.fb.x;u.translationY=this.fb.y;u.He=this.fb.z;u.easing=this.Xaa? 2236.4:0;this.Xaa||(k.CU(this.m,u),this.Xaa=!0)}};var e=new THREE.Quaternion,n=new THREE.Vector3(0,0,1),q=new THREE.Vector3(0,1,0),p=new THREE.Euler,r=180/Math.PI;f.prototype.dispose=function(){this.Wca=null;this.iAa()};f.QG=function(u,v){t.set(u,v)};var t=new Map;f.$a=function(u){u.I(m.Ks).manager=new f(u)};f.Ca=function(u){var v=u.getComponent(m.Ks);v.manager.dispose();v.manager=null;u.ha(m.Ks)};f.frame=function(u){u.getComponent(m.Ks).manager.frame()};
2236f.update=function(u){u.getComponent(m.Ks).manager.update()}; 2237return f}); 2238define("iW",["require","lQ","ma","fS","eb"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("eb");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){k.QG(this.P,this.Fj.u.slice());this.NGa.u.length&&this.NGa.u.slice().forEach(k.$a);this.t4.Ea.length&&this.t4.u.slice().forEach(k.update);this.t4.u.length&&this.t4.u.slice().forEach(k.frame);this.OGa.u.length&&this.OGa.u.slice().forEach(k.Ca);this.PGa.u.length&&this.PGa.u.slice().forEach(k.Ca)};a.H={};a.H.Fj=[m.Cc];a.H.NGa= 2239[m.Object3D,m.wk,m.Ks.not];a.H.t4=[m.Object3D,m.wk,m.Ks];a.H.OGa=[m.Object3D.not,m.Ks];a.H.PGa=[m.wk.not,m.Ks];return a}); 2240define("ba",["require"],function(){var a={jo:function(){this.$ab=this.aJa=this.Zab=this.b5=this.a5=this.Z4=0;this.sla=!1;this.LU=new THREE.CubeTexture;this.tbb=this.wJa=this.sbb=this.m5=this.targetY=this.targetX=this.Y4=0;this.zla=!1;this.SU=new THREE.CubeTexture;this.l5=0;this.Ee="XYZ"},Mdb:function(){return new a.jo},create:function(m){var k=new THREE.ShaderMaterial;k.uniforms={sCube:{value:m.LU},sPos:{value:new THREE.Vector3},sRot:{value:new THREE.Matrix4},sEnabled:{value:!1},sCoef:{value:0},tCube:{value:m.SU}, 2241tPos:{value:new THREE.Vector3},tRot:{value:new THREE.Matrix4},tEnabled:{value:!1},tCoef:{value:0}};k.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 <tonemapping_fragment>\n#include <colorspace_fragment>\n}"; 2242k.vertexShader="varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";k.side=THREE.DoubleSide;k.depthWrite=!0;k.transparent=!0;k.needsUpdate=!0;this.update(k,m);return k},update:function(m,k){m.uniforms.sCube.value=k.LU;m.uniforms.sPos.value.set(k.Z4,k.a5,k.b5);m.uniforms.sRot.value.makeRotationFromEuler(f.set(k.Zab*l,k.aJa*l,k.$ab*l,k.Ee));m.uniforms.sEnabled.value= 2243k.sla&&0<k.Y4;m.uniforms.sCoef.value=k.Y4;m.uniforms.tCube.value=k.SU;m.uniforms.tPos.value.set(k.targetX,k.targetY,k.m5);m.uniforms.tRot.value.makeRotationFromEuler(f.set(k.sbb*l,k.wJa*l,k.tbb*l,k.Ee));m.uniforms.tEnabled.value=k.zla&&0<k.l5;m.uniforms.tCoef.value=k.l5;m.needsUpdate=!0;return m}},f=new THREE.Euler,l=Math.PI/180;return a}); 2244define("mJ","require lQ lv ma fS ba cv".split(" "),function(a){var f=a("lQ");a("lv");var l=a("ma"),m=a("fS"),k=a("ba"),c=a("cv");a=f.extend(l,function(){l.apply(this,arguments);this.Vb=this.Vb.bind(this);this.jb=this.jb.bind(this);this.Ib=this.Ib.bind(this)});a.prototype.Tc=function(){this.dHa.u.length&&this.dHa.u.slice().forEach(this.jb);this.eHa.u.length&&this.eHa.u.slice().forEach(this.jb);this.cHa.u.length&&this.cHa.u.slice().forEach(this.Vb);this.bHa.Ea.length&&this.bHa.Ea.slice().forEach(this.Ib)}; 2245a.prototype.Vb=function(g){var b=g.getComponent(m.Wm),d=(b=b&&b.bC)&&c.Uc(b),e=c.Cf(b);if(d&&e){var n=g.I(m.bq);n.bC=b;n.LL=new k.jo;n.material=this.Wv(n.LL);n.qa=this.JPa(d,n.material);n.rM=this.$Pa(n.material);n.ly=this.HQa(n.material);
2245n.colorSpace=c.V2(e);g.I(m.Object3D).qa=n.qa;this.Ib(g)}};a.prototype.Ib=function(g){this.Vi(g);this.d2a(g);this.c2a(g);this.G1a(g)};a.prototype.jb=function(g){var b=g.getComponent(m.bq),d=c.Uc(b.bC);d&&(d.visible=!0);b.qa&&b.qa.traverse(function(e){e.material==b.material&& 2246(e.material=h)});b.rM&&((d=b.rM.parent)&&c.lHa(d,b.rM),b.rM=null);b.ly&&((d=b.ly.parent)&&c.kHa(d,b.ly),b.ly=null);b.material&&(b.LL.LU=null,b.LL.SU=null,b.LL=null,b.material.dispose(),b.material=null);g.ha(m.bq);g.ha(m.Object3D)};a.prototype.Vi=function(g){var b=g.getComponent(m.Wm);g=g.getComponent(m.bq);var d=g.LL;b.KU?(d.LU!=b.KU&&(d.LU=b.KU),d.Z4=b.Z4,d.a5=b.a5,d.b5=b.b5,d.aJa=b.MU,d.Y4=b.ZIa,d.sla=!0):(d.sla=!1,d.Y4=0);b.RU?(d.SU!=b.RU&&(d.SU=b.RU),d.targetX=b.targetX,d.targetY=b.targetY,d.m5= 2247b.m5,d.wJa=b.ubb,d.l5=b.uJa,d.zla=!0):(d.zla=!1,d.l5=0);k.update(g.material,d)};a.prototype.d2a=function(g){g=g.getComponent(m.Wm);var b=c.Uc(g.bC);b&&(b.visible=0<(1-(g.KU?g.ZIa:0))*(1-(g.RU?g.uJa:0)))};a.prototype.c2a=function(g){var b=g.getComponent(m.Wm),d=g.getComponent(m.bq).rM;!!d.parent!=b.XIa&&(g=(g=c.Cf(g)||c.Cf(b.bC))&&c.tu(g),b.XIa?g&&c.M2a(g,d):g&&c.lHa(g,d))};a.prototype.G1a=function(g){var b=g.getComponent(m.Wm),d=g.getComponent(m.bq).ly;!!d.parent!=b.ly&&(g=(g=c.Cf(g)||c.Cf(b.bC))&& 2248c.tu(g),b.ly?g&&c.L2a(g,d):c.kHa(g,d))};var h=new THREE.MeshBasicMaterial;a.prototype.Wv=function(g){g=k.create(g);g.polygonOffset=!0;g.polygonOffsetUnits=1;g.polygonOffsetFactor=-10;g.needsUpdate=!0;return g};a.prototype.JPa=function(g,b){if(this.lra(g))return new THREE.Object3D;var d=new Map;g.traverse(function(r){if(r.material&&r.userData){var t={};r.material&&(t.material=r.material,r.material=b);r.userData&&(t.userData=r.userData,r.userData={});var u=r.children.filter(function(v){return!this.lra(v)}.bind(this)); 2249r.children.length!=u.length&&(t.children=r.children,r.children=u);d.set(r,t)}}.bind(this));var e=g.clone();d.forEach(function(r,t){r.material&&(t.material=r.material);r.userData&&(t.userData=r.userData);r.children&&(t.children=r.children)});for(g=[[g,e]];g.length;){var n=g.shift(),q=n[0];n=n[1];q.pe&&(n.pe=q.pe);for(var p=0;p<q.children.length;p++)g.push([q.children[p],n.children[p]])}return e};a.prototype.lra=function(g){return g.yu||g.isGaussianCloud};a.prototype.$Pa=function(g){return new THREE.Mesh(new THREE.BoxGeometry(2, 22502,2),g)};a.prototype.HQa=function(g){g=new THREE.Mesh(new THREE.PlaneGeometry(1,1),g);g.renderOrder=10;return g};a.H={};a.H.cHa=[m.Wm,m.bq.not];a.H.bHa=[m.Wm,m.Object3D,m.bq];a.H.dHa=[m.Wm.not,m.bq];a.H.eHa=[m.Object3D.not,m.bq];return a}); 2251define("eZ",["require","fS","oY","bL"],function(a){function f(c){this.m=c;this.enabled=!1;this.ln=null;this.hw=0;this.passes=[];this.ol=this.ql=!1;this.gf=null;this.wa=this.sa=100}var l=a("fS"),m=a("oY"),k=a("bL");f.prototype.dispose=function(){this.gf&&(this.gf.saoRenderTarget.dispose(),this.gf.blurIntermediateRenderTarget.dispose(),this.gf.beautyRenderTarget.dispose(),this.gf.normalRenderTarget.dispose(),this.gf.depthRenderTarget.dispose(),this.gf.depthMaterial.dispose(),this.gf.normalMaterial.dispose(), 2252this.gf.saoMaterial.dispose(),this.gf.vBlurMaterial.dispose(),this.gf.hBlurMaterial.dispose(),this.gf.materialCopy.dispose(),this.gf.depthCopy.dispose(),this.gf=null)};f.prototype.update=function(c,h,g,b,d){var e=this.m.getComponent(l.jH),n=!!e;if(this.ql=this.enabled!=n)(this.enabled=n)?(!this.gf&&c&&h&&(this.gf=new THREE.SAOPass(c,h,!1,!0)),this.ln=new m("linear",[new k("alpha",0,1,void 0)],e.pCa),this.hw=0,this.passes=[this.gf],this.ol=!0):(this.passes=[],this.ol=!1);this.enabled&&(this.ln&&(this.ln.Fb(d), 2253this.hw=this.ln.cb("alpha"),1==this.hw&&(this.ln=null),this.m.P.Ta()),null!==e.output&&(this.gf.params.output=e.output),this.gf.params.saoBias=e.bias/e.scale,this.gf.params.saoIntensity=this.hw*e.intensity,this.gf.params.saoScale=e.scale,this.gf.params.saoKernelRadius=e.JEa,this.gf.params.saoMinResolution=e.jFa/1E3,this.gf.params.saoBlur=0<e.kha,this.gf.params.saoBlurRadius=e.kha,this.gf.params.saoBlurStdDev=8,this.gf.params.saoBlurDepthCutoff=.01,(this.sa!=g||this.wa!=b)&&this.gf.setSize(this.sa= 2254g,this.wa=b))};return f}); 2255define("s",["require","fS"],function(a){function f(m){this.m=m;this.enabled=!1;this.passes=[];this.ol=this.ql=!1;this.Ss=null}var l=a("fS");f.prototype.dispose=function(){this.Ss&&(this.Ss.material.dispose(),this.Ss=null)};f.prototype.update=function(m,k,c,h){m=this.m.getComponent(l.lC);m=!!m&&m.UCa;if(this.ql=this.enabled!=m)(this.enabled=m)?(this.Ss||(this.Ss=new THREE.ShaderPass(THREE.FXAAShader),this.Ss.needsSwap=!0),this.passes=[this.Ss],this.ol=!0):(this.passes=[],this.ol=!1);!this.enabled|| 2256this.sa==c&&this.wa==h||(this.sa=c,this.wa=h,this.Ss.material.uniforms.resolution.value.x=1/this.sa,this.Ss.material.uniforms.resolution.value.y=1/this.wa,this.Ss.setSize(c,h))};return f}); 2257define("gr",["require","fS"],function(a){function f(m){this.m=m;this.enabled=!1;this.fM=void 0;this.ln=null;this.hw=0;this.passes=[];this.ol=this.ql=!1;this.hi=null;this.Bda=new THREE.Matrix4;this.Dda=new THREE.Matrix4;this.Ada=new THREE.Vector3}var l=a("fS");f.prototype.dispose=function(){this.hi&&(this.hi.dispose(),this.hi=null)};f.prototype.update=function(m,k){var c=this.m.getComponent(l.UM),h=!!c,g=c?c.AHa:void 0;if(this.ql=this.enabled!=h||this.fM!=g)(this.enabled=h)?(this.fM!=g&&this.hi&&(this.hi.dispose(), 2258this.hi=null),!this.hi&&m&&k&&(this.hi=new THREE.MotionBlurPass(this.fM=g),this.hi.needsSwap=!0,this.Bda.copy(k.matrixWorldInverse),this.Dda.copy(k.projectionMatrix),this.Ada.copy(k.position)),this.passes=[this.hi],this.ol=!0):(this.passes=[],this.ol=!1);this.enabled&&(this.hi.uniforms.inverseProjectionMatrix.value.copy(k.projectionMatrix).invert(),this.hi.uniforms.near.value=k.near,this.hi.uniforms.far.value=k.far,this.hi.uniforms.depthLimit.value=.99,this.hi.uniforms.clipToWorldMatrix.value.copy(k.matrixWorld).multiply(this.hi.uniforms.inverseProjectionMatrix.value), 2259this.hi.uniforms.previousWorldToClipMatrix.value.copy(this.Dda).multiply(this.Bda),this.hi.uniforms.cameraMove.value.copy(k.position).sub(this.Ada),this.hi.uniforms.velocityFactor.value=c.intensity);this.Bda.copy(k.matrixWorldInverse);this.Dda.copy(k.projectionMatrix);this.Ada.copy(k.position)};return f}); 2260define("eT",["require","ol","fS"],function(a){function f(m){this.m=m;this.enabled=!0;this.passes=[];this.Bja=this.ol=this.ql=!1;this.u0=void 0;this.ai=this.jr=this.Zk=null}a("ol");var l=a("fS");f.prototype.dispose=function(){this.Zk&&(this.Zk.dispose(),this.Zk=null);this.jr&&(this.jr=null);this.ai&&(this.ai.material.dispose(),this.ai=null)};f.prototype.update=function(m,k,c,h,g,b){g=this.m.getComponent(l.lC);b=!!g&&g.lJa&&b;if(this.ql=this.u0!==b)(this.u0=b)?(this.Zk||(this.Zk=new THREE.SSAARenderPass(m, 2261k),this.Zk.sampleLevel=g.NU,this.Zk.needsSwap=!0,this.Zk.clear=!0,this.Zk.clearColor=65793,this.Zk.clearAlpha=0),this.ai||(this.ai=new THREE.ShaderPass(THREE.CopyShader),this.ai.needsSwap=!0),this.passes=[this.Zk,this.ai],this.Bja=this.ol=!0):(this.jr||(this.jr=new THREE.RenderPass,this.jr.clear=!0,this.jr.clearColor=65793,this.jr.clearAlpha=0),this.passes=[this.jr],this.Bja=this.ol=!1);this.u0?(this.Zk.scene=m,this.Zk.camera=k,this.Zk.sampleLevel=g.NU,this.ai.uniforms.opacity.value=Math.pow(2,Math.round(5< 2262g.NU?5:g.NU)),this.Zk.setSize(c,h)):(this.jr.scene=m,this.jr.camera=k,this.jr.setSize(c,h))};return f}); 2263define("od",["require","ol","fS"],function(a){function f(c){this.m=c;this.enabled=!1;this.passes=[];this.ol=this.ql=!1;this.Br=null;this.Gc=void 0}var l=a("ol"),m=a("fS");f.prototype.dispose=function(){this.Br&&(this.Br.material.dispose(),this.Br=null)};f.prototype.update=function(){var c=this.m.getComponent(m.GH),h=!!c;if(this.ql=this.enabled!=h)(this.enabled=h)?(this.Br||(this.Br=new THREE.ShaderPass(k),this.Br.needsSwap=!0),this.passes=[this.Br],this.ol=!0):(this.passes=[],this.ol=!1);this.enabled&&
2264(this.Br.uniforms.innerRadius.value=c.rEa,this.Br.uniforms.outerRadius.value=c.zGa,this.Br.uniforms.opacity.value=c.opacity,this.Gc!==c.color&&(this.Gc=c.color,this.Br.uniforms.color.value=l.Ip(this.Gc)))};var k={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}"}; 2265return f}); 2266define("hj","require eZ s gr eT od cv".split(" "),function(a){function f(b){this.pd=b;this.Va=this.Kb=this.Yf=null;this.wa=this.sa=void 0;this.ai=this.ht=this.j=this.QJ=null;this.oX=[new c(b),new l(b),new k(b),new h(b),new m(b)];this.bZ=!1}var l=a("eZ"),m=a("s"),k=a("gr"),c=a("eT"),h=a("od"),g=a("cv");f.prototype.dispose=function(){this.j&&(this.j.domElement.style.backgroundColor=void 0);for(;this.oX.length;)this.oX.pop().dispose();this.Hqa();this.ht&&(this.ht.material.dispose(),this.ht=null);this.ai&& 2267(this.ai.material.dispose(),this.ai=null)};f.prototype.setSize=function(b,d){if(this.sa!=b||this.wa!=d)this.sa=b,this.wa=d,this.Yf&&this.Yf.setSize(this.sa,this.wa),this.j&&!this.j.xr.isPresenting&&this.j.setSize(this.sa,this.wa)};f.prototype.Pu=function(b){this.Va=b};f.prototype.setCamera=function(b){this.Kb=b};f.prototype.setRenderTarget=function(b){this.QJ!=b&&(this.QJ=b,this.Yf&&(this.Yf.reset(b||void 0),this.Yf.renderToScreen=!b))};f.prototype.S4=function(b){this.j!=b&&(this.j=b,this.j.setSize(this.sa, 2268this.wa),this.Hqa())};f.prototype.render=function(b){this.k_a();this.p1a(b);this.j.domElement.style.backgroundColor=this.bZ?"#000000":void 0;this.Yf.render()};f.prototype.k_a=function(){this.Yf||(this.Yf=new THREE.EffectComposer(this.j,this.QJ||void 0),this.Yf.renderToScreen=!this.QJ,this.Yf.setSize(this.sa,this.wa))};f.prototype.p1a=function(b){var d=!1,e=!1;this.bZ=!1;this.oX.forEach(function(q){q.update(this.Va,this.Kb,this.sa,this.wa,b,this.Yf.renderToScreen);d||(d=q.ql);e||(e=q.ol);this.bZ|| 2269(this.bZ=q.Bja)}.bind(this));e=e&&this.j.outputColorSpace==THREE.SRGBColorSpace&&this.Yf.renderToScreen;g.nab(this.Va,e);e&&!this.ht?(this.ht=new THREE.ShaderPass(THREE.GammaCorrectionShader),d=this.ht.needsSwap=!0):this.ht&&(this.ht.enabled=e);this.Yf.renderToScreen||this.ai?this.ai&&(this.ai.enabled=!this.Yf.renderToScreen):(this.ai=new THREE.ShaderPass(THREE.CopyShader),d=this.ai.needsSwap=!0);if(d){var n=[];this.oX.forEach(function(q){n=n.concat(q.passes)});this.ht&&n.push(this.ht);for(this.ai&& 2270n.push(this.ai);0<this.Yf.passes.length;)this.Yf.removePass(this.Yf.passes[this.Yf.passes.length-1]);n.forEach(function(q){this.Yf.addPass(q)}.bind(this))}};f.prototype.Hqa=function(){this.Yf&&(this.Yf.renderTarget1!=this.QJ&&this.Yf.renderTarget1.dispose(),this.Yf.renderTarget2!=this.QJ&&this.Yf.renderTarget2.dispose(),this.Yf=null)};return f}); 2271define("dp","require pw oQ fS cv gx hj".split(" "),function(a){function f(n){this.Nla=this.Nla.bind(this);this.Ge=n;this.opacity=0;this.height=this.width=void 0;this.renderTarget=null;this.scene=void 0;this.Gxa=!1;this.mea=!0;this.nU=this.camera=void 0;this.SE=!1;this.OZ=void 0;this.Ac=new g(n);this.update()}var l=a("pw"),m=a("oQ"),k=a("fS"),c=a("cv"),h=a("gx"),g=a("hj");f.prototype.update=function(){var n=this.Ge.getComponent(k.Scene);this.opacity=n&&n.opacity||0;this.Gxa=n?n.locked:!1;this.mea= 2272n?n.enabled:!0;var q=n&&n.scene;this.scene!=q&&(this.scene=q,this.SE=!0,this.Ac.Pu(this.scene));var p=(q=n&&n.La)&&c.WS(q),r=p&&p.width;p=p&&p.height;if(this.width!=r||this.height!=p)this.width=r,this.height=p,this.SE=!0,this.Ac.setSize(this.width,this.height);n=n&&"srgb"==n.outputColorSpace?THREE.SRGBColorSpace:THREE.LinearSRGBColorSpace;this.OZ!=n&&(this.OZ=n,this.SE=!0,c.mab(this.scene,n));n=q&&c.Or(q);this.camera!=n&&(this.camera=n,this.SE=!0,this.Ac.setCamera(this.camera));q=q&&c.WS(q).camera; 2273this.nU!=q&&(this.nU=q);this.scene&&(c.lab(this.scene,this.camera),c.oab(this.scene,m.isPresenting?2048:this.width,m.isPresenting?2048:this.height));return this};f.prototype.render=function(n,q,p){if((q||this.SE||!this.Gxa)&&this.mea){q?(n.xr.isPresenting||n.setRenderTarget(null),this.SE=!0):(this.renderTarget||(this.renderTarget=h.Cha(n)),n.setRenderTarget(this.renderTarget),this.renderTarget.texture.colorSpace
2273=this.OZ,this.SE=!1);n.outputColorSpace=this.OZ;var r=this.Ge.getComponent(k.Scene),t= 2274h.getPixelRatio();r&&1!==r.q4&&(t*=r.q4);n.getPixelRatio()!=t&&n.setPixelRatio(t);this.M6a(n);n.xr.isPresenting?n.render(this.scene,this.nU):(this.Ac.setRenderTarget(q?null:this.renderTarget),this.Ac.S4(n),this.Ac.render(p));this.D9a(n);(r=this.Ge.getComponent(k.Scene))&&r.N&&r.N.trigger(l.Th)}};f.prototype.M6a=function(n){var q=[],p=[];this.scene.traverse(function(r){r.yu||r.isGaussianCloud?q.push(r):r.visible&&r.material&&r.material.transparent&&r.material.depthTest&&0>=r.renderOrder&&0<r.material.opacity&& 2275p.push(r)});b.camera=this.nU;b.ray.origin.setFromMatrixPosition(this.nU.matrixWorld);b.firstHitOnly=!0;p.forEach(function(r){e.setFromMatrixPosition(r.matrixWorld).sub(b.ray.origin);b.ray.direction.copy(e).normalize();var t=e.length();b.far=t;d.length=0;d=b.intersectObjects(q,!1,d);0<d.length&&d[0].distance<t&&(r.visible=!1,r.userData.XJa=!0)});this.Kab(n)};f.prototype.D9a=function(n){this.Abb(n);this.scene.traverse(function(q){q.userData.XJa&&(q.visible=!0,delete q.userData.XJa)})};f.prototype.Kab= 2276function(n){n.setTransparentSort(this.Nla)};f.prototype.Abb=function(n){n.setTransparentSort(null)};f.prototype.Nla=function(n,q){return n.Dia!==q.Dia?n.Dia-q.Dia:n.renderOrder!==q.renderOrder?n.renderOrder-q.renderOrder:n.object.yu||q.object.yu?(n.object.yu?-1:1)-(q.object.yu?-1:1):n.z!==q.z?q.z-n.z:n.id-q.id};var b=new THREE.Raycaster,d=[],e=new THREE.Vector3;f.prototype.isVisible=function(){return this.scene&&this.camera&&0<this.opacity&&this.mea};f.prototype.dispose=function(){this.camera=this.scene= 2277this.Ge=null;this.Ac&&(this.Ac.dispose(),this.Ac=null);this.renderTarget&&(this.renderTarget.dispose(),this.renderTarget=null)};return f}); 2278define("ga",["require","pw","oQ","fS","dp"],function(a){function f(h){this.m=h;this.mx=[];this.Si=null;this.h_a();this.f_a()}var l=a("pw"),m=a("oQ"),k=a("fS"),c=a("dp");f.prototype.frame=function(h){var g=!!this.j&&m.mh==this.j;if(!m.isPresenting||g){var b=this.m.getComponent(k.zi).oU.map(function(n){for(var q=0;q<this.mx.length;q++)if(this.mx[q].Ge==n)return this.mx[q].update();return new c(n)}.bind(this));this.mx.filter(function(n){return 0>b.indexOf(n)}).forEach(function(n){n.dispose()});this.mx= 2279b;var d=this.mx.filter(function(n){return n.isVisible()});if(0<d.length){g&&d.reduce(function(n,q){return n.opacity>q.opacity?n:q});var e=1==d.length&&1<=d[0].opacity||g;d.forEach(function(n){n.render(this.j,e,h)}.bind(this));e||this.rYa(d.slice(0,2))}g&&this.m.P.Ta()}};f.prototype.rYa=function(h){this.gn.material.uniforms.t1.value=h[0].renderTarget.texture;this.gn.material.uniforms.o1.value=h[0].opacity;1<h.length?(this.gn.material.uniforms.useT2.value=1,this.gn.material.uniforms.t2.value=h[1].renderTarget.texture, 2280this.gn.material.uniforms.o2.value=h[1].opacity):this.gn.material.uniforms.useT2.value=0;this.j.setSize(h[0].width,h[0].height);this.j.setRenderTarget(null);this.j.setClearColor(0,0);this.j.clear();this.j.render(this.uN,this.z8)};f.prototype.dispose=function(){for(;this.mx.length;)this.mx.shift().dispose();this.mx=null;this.d0a();this.f0a()};f.prototype.h_a=function(){var h=this.m.J(k.zi);this.Si=h.vc.Od();this.Si.G1();h.renderer=this.Si.Ur();this.j=h.renderer;m.N.bind(l.ba,this.PAa,this,!0)};f.prototype.f0a= 2281function(){m.N.unbind(l.ba,this.PAa,this);this.j=null;this.Si.B4();this.Si=null};f.prototype.PAa=function(){this.m.P.Ta()};f.prototype.f_a=function(){this.uN=new THREE.Scene;this.z8=new THREE.OrthographicCamera(window.innerWidth/-2,window.innerWidth/2,window.innerHeight/2,window.innerHeight/-2,-10,10);this.uN.add(this.z8);this.gn=new THREE.Mesh(new THREE.PlaneGeometry(window.innerWidth,window.innerHeight),this.ZPa());this.uN.add(this.gn)};f.prototype.d0a=function(){this.uN.remove(this.gn);this.gn.geometry.dispose(); 2282this.gn.geometry=null;this.gn.material.dispose();this.uN=this.z8=this.gn=this.gn.material=null};f.prototype.ZPa=function(){var h=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 <colorspace_fragment>\n#include <tonemapping_fragment>\n}"}); 2283h.transparent=!0;return h};f.$a=function(h){h.I(k.Ls).manager=new f(h)};f.Ca=function(h){var g=h.getComponent(k.Ls);g.manager.dispose();g.manager=null;h.ha(k.Ls)};
2283f.update=function(h){h.getComponent(k.Ls).manager.update()};f.frame=function(h,g,b){h.getComponent(k.Ls).manager.frame(g,b)};return f}); 2284define("lW",["require","lQ","ma","fS","ga"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("ga");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(c,h){this.rHa.u.length&&this.rHa.u.slice().forEach(k.$a);this.Lm.u.length&&this.Lm.u.slice().forEach(function(g){k.frame(g,c,h)});this.sHa.u.length&&this.sHa.u.slice().forEach(k.Ca)};a.H={};a.H.rHa=[m.zi,m.Ls.not];a.H.sHa=[m.zi.not,m.Ls];a.H.Lm=[m.zi,m.Ls];return a}); 2285define("ku","require lQ pw gD dG cv iw lN".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("gD"),k=a("dG"),c=a("cv"),h=a("iw"),g=a("lN");a=f.extend(m,function(d,e){m.call(this);this.Wd=d;this.Va=e;this.Aa=new k;this.Aa.oM([this.Wd]);this.Aa.bind(l.da,this.Cd,this,!1);this.Aa.bind(l.xc,this.ag,this,!1);this.Yc=null;this.Mb=0;g.Yn(this.Aa,h.HC)});a.prototype.Mh=function(d){this.Mb!==d&&(this.Mb=d,this.Yc&&(this.Yc.material.opacity=this.Mb,this.Yc.material.visible=0<this.Mb,this.Yc.material.needsUpdate= 2286!0))};a.prototype.Kh=function(){return!!this.Yc};a.prototype.Cd=function(){this.MQa();this.trigger(l.da)};a.prototype.ag=function(){this.trigger(l.xc)};a.prototype.MQa=function(){var d=new THREE.Texture;d.image=g.Af(this.Wd);d.generateMipmaps=!0;d.minFilter=THREE.LinearMipMapLinearFilter;d.needsUpdate=!0;d=new THREE.SpriteMaterial({map:d});d.sizeAttenuation=!1;d.transparent=!0;d.visible=0<this.Mb;d.opacity=this.Mb;d.polygonOffset=!0;d.polygonOffsetUnits=1;d.polygonOffsetFactor=-10;this.Yc=new THREE.Sprite(d); 2287this.Yc.renderOrder=-1E3};a.prototype.update=function(){if(this.Yc){var d=c.tu(this.Va);this.Yc.parent!=d&&(this.Yc.parent&&c.jHa(this.Yc.parent,this.Yc),d&&c.K2a(d,this.Yc));if(d){var e=c.tB(this.Va),n=this.Yc.material.map.image.width,q=this.Yc.material.map.image.height;d=e/(2*Math.tan(d.fov*b/2));e=Math.max(e/d,c.fT(this.Va)/(d*n/q));this.Yc.scale.y!=e&&(this.Yc.scale.y=e,this.Yc.scale.x=e*n/q)}n=c.V2(this.Va);this.Yc.material.map.colorSpace!=n&&(this.Yc.material.map.colorSpace
2287=n,this.Yc.material.needsUpdate= 2288!0)}};a.prototype.dispose=function(){this.Yc&&(this.Yc.parent&&c.jHa(this.Yc.parent,this.Yc),this.Yc.material.map.dispose(),this.Yc.material.dispose(),this.Yc=null);this.Aa&&g.Hj(this.Aa,h.HC)};var b=Math.PI/180;return a}); 2289define("bO","require pw fS ku oY bL".split(" "),function(a){function f(g,b){this.m=g;this.dh=b;this.Lv=void 0;this.Ii=this.cn=this.fa=this.Va=null;this.update()}var l=a("pw"),m=a("fS"),k=a("ku"),c=a("oY"),h=a("bL");f.prototype.frame=function(g){this.fa&&this.oF(g);this.cn&&this.cn.update();this.Ii&&this.Ii.update()};f.prototype.update=function(){var g=this.m.getComponent(m.Scene);this.Va=g.scene;if(!this.Va){if(!g.scene)return;this.Va=g.scene}g=g.eha||null;this.Lv===g||this.fa||(this.XN(this.Ii), 2290this.Ii=null,(this.Lv=g)?this.Ii=this.YPa(this.Lv):(this.ON(),this.dh.trigger(l.da)))};f.prototype.oF=function(g){this.fa.Fb(g);this.cn&&this.cn.Mh(Math.min(1,Math.max(0,this.fa.cb("alpha"))));this.Ii&&this.Ii.Mh(Math.min(1,Math.max(0,this.fa.cb("nextAlpha"))));this.fa.Ve()&&(this.fa=null,this.cn&&(this.XN(this.cn),this.cn=null),this.cn=this.Ii,this.Ii=null,this.update());this.m.P.Ta()};f.prototype.Nca=function(){this.Ii.unbind(l.da,this.Nca,this,!0);this.Ii.unbind(l.xc,this.Oca,this,!0);this.ON(); 2291this.dh.trigger(l.da)};f.prototype.Oca=function(){this.XN(this.Ii);this.Ii=null;this.ON();this.dh.trigger(l.da)};f.prototype.ON=function(){this.Ii&&this.cn?this.fa=new c("linear",[new h("nextAlpha",0,2,void 0),new h("alpha",2,0,void 0)],600):this.Ii?this.fa=new c("linear",[new h("nextAlpha",0,1,void 0)],300):this.cn&&(this.fa=new c("linear",[new h("alpha",1,0,void 0)],300));this.m.P.Ta()};f.prototype.YPa=function(g){g=new k(g,this.Va);this.yOa(g);g.Mh(0);return g};f.prototype.XN=function(g){g&&(this.R0a(g), 2292g.dispose())};f.prototype.yOa=function(g){g.bind(l.da,this.Nca,this,!0);g.bind(l.xc,this.Oca,this,!0)};f.prototype.R0a=function(g){g.unbind(l.da,this.Nca,this,!0);g.unbind(l.xc,this.Oca,this,!0)};f.prototype.dispose=function(){this.cn&&(this.XN(this.cn),this.cn=null);this.Ii&&(this.XN(this.Ii),this.Ii=null)};return f}); 2293define("lZ","require pw iw ol pT fS cv hh".split(" "),function(a){function f(d,e){this.m=d;this.ED=void 0;this.q$=1;this.U_=this.YJ=this.XJ=this.vz=this.eD=this.Lv=void 0;this.Kb=this.j=this.Va=null;this.dh=e;this.Ne=new c(this.dh);this.Bd=[new b(m.HC),new b(m.HC)];this.Bd.forEach(function(n){n.bind(l.da,this.Cd,this,!0);n.bind(l.xc,this.ag,this,!0)}.bind(this));this.uya([]);this.update()}var l=a("pw"),m=a("iw"),k=a("ol"),c=a("pT"),h=a("fS"),g=a("cv"),b=a("hh");f.prototype.frame=function(){if(this.Va){var d= 2294f.$5a(this.m.P,this.Va);this.j!=d&&(this.j&&(this.aw(),this.fX()),this.j=d)&&(this.oa(),this.$fa())}};f.prototype.update=function(){var d=this.m.getComponent(h.Scene),e=!1,n=!1,q=d.xCa||null;this.ED!==q&&(this.ED=q,n=!0);q=d.eha||null;this.Lv!==q&&(this.Lv=q,n=!0);q=d.nBa||null;this.eD!==q&&(this.eD=q,n=!0);n&&(this.uAa(),this.$fa(),e=!0);this.vz!==d.backgroundColor&&(this.vz=d.backgroundColor,e=!0);this.Va!==d.scene&&(this.Va=d.scene,e=!0);this.q$!==d.i2&&(this.q$=d.i2,e=!0);e&&this.oa()};f.prototype.uAa= 2295function(){this.uya(this.TTa())};f.prototype.TTa=function(){var d=[];this.ED&&-1==d.indexOf(this.ED)&&d.push(this.ED);!this.Lv&&this.eD&&-1==d.indexOf(this.eD)&&d.push(this.eD);if(this.Va&&this.Va.background&&this.Va.background.image&&this.Va.background.image.src){var e=this.Va.background.image.src;-1==d.indexOf(e)&&d.push(e)}return d};f.prototype.uya=function(d){var e=[],n=[];this.Bd.forEach(function(q){var p=q.Yi();0>d.indexOf(p)?(q.cancel(),e.push(q)):n.push(p)});d.forEach(function(q){0>n.indexOf(q)&& 2296e.shift().load(q)})};f.prototype.$fa=function(){var d=0;this.Ne.MBa();this.Bd.forEach(function(e){e.Yi()&&!e.Kh()&&(this.Ne.JK(e),d++)}.bind(this));0==d&&this.dh&&this.dh.trigger(l.da)};f.prototype.dispose=function(){this.Bd.forEach(function(d){d.cancel();d.unbind(l.da,this.Cd,this,!0);d.unbind(l.xc,this.ag,this,!0)}.bind(this));this.m&&(this.fX(),this.aw(),this.m=null)};f.prototype.Cd=function(){this.oa();this.$fa()};f.prototype.oa=function(){if(this.Va&&this.j){this.Va.i2=this.q$;if(this.ED){var d= 2297this.hsa(this.ED);d&&this.$Na(d)}else this.fX();this.Lv?this.aw():this.eD?(d=this.hsa(this.eD))&&this.Woa(d):this.vz?this.Woa(void 0,this.vz):this.aw();this.uAa();this.m.P.Ta()}};f.prototype.hsa=function(d){for(var e=0;e<this.Bd.length;e++)if(this.Bd[e].Kh()&&this.Bd[e].Yi()==d)return this.Bd[e];return null};f.prototype.Woa=function(d,e){if(this.Va){if(d){var n=d&&d.Yi()||void 0;if(n==this.YJ)return;this.aw();g.T4(this.Va,this.wq(d,!1));this.YJ=n;this.XJ=void 0}e&&e!=this.XJ&&(this.aw(),g.T4(this.Va, 2298"transparent"==e?null:k.Ip(e)),this.XJ=e,this.YJ=void 0)}};f.prototype.aw=function(){this.Va&&(this.XJ||this.YJ)&&(this.YJ&&(this.Va.background.dispose(),g.T4(this.Va,null),this.YJ=void 0),this.XJ&&(g.T4(this.Va,null),this.XJ=void 0))};f.prototype.$Na=function(d){if(this.Va){var e=d&&d.Yi()||void 0;e!=this.U_&&(this.fX(),this.Va.environment=this.wq(d,!0),this.U_=e)}};f.prototype.fX=function(){this.Va&&this.U_&&(this.Va.environment.dispose(),this.Va.environment=null,this.U_=void 0)};f.prototype.wq= 2299function(d,e){return 6>Math.round(d.De()/d.Te())?this.nQa(d,e):this.iQa(d,e)};f.prototype.nQa=function(d,e){var n=new THREE.Texture;n.image=d.Af();
2299n.colorSpace=g.V2(this.Va);n.mapping=THREE.EquirectangularReflectionMapping;n.needsUpdate=!0;return e?(d=new THREE.PMREMGenerator(this.j),n=d.fromEquirectangular(n).texture,d.dispose(),n):n};f.prototype.iQa=function(d,e){for(var n=Array(6),q=d.De()/6,p=d.Te(),r=0;6>r;r++){var t=document.createElement("canvas");t.width=q;t.height=p;t.getContext("2d").drawImage(d.Af(), 2300r*q,0,q,p,0,0,q,p);n[r]=t}d=new THREE.CubeTexture;d.images=[n[1],n[3],n[4],n[5],n[0],n[2]];d.colorSpace=g.V2(this.Va);d.needsUpdate=!0;return e?(e=new THREE.PMREMGenerator(this.j),n=e.fromCubemap(d).texture,e.dispose(),n):d};f.prototype.ag=function(){this.m.getComponent(h.Scene).scene.environment=null;this.m.P.Ta()};f.pxa=new Map;f.$ka=function(d,e){f.pxa.set(d,e||[])};f.$5a=function(d,e){d=f.pxa.get(d)||[];for(var n=0;n<d.length;n++){var q=d[n].getComponent(h.zi);if(q&&0<q.oU.filter(function(p){return p.getComponent(h.Scene).scene== 2301e}).length)return q.renderer}return null};return f}); 2302define("jX","require exports ol oQ fS cv three.mod".split(" "),function(a,f,l,m,k,c,h){a=function(){function b(d){this.opacity=this.bL=void 0;this.G=d}b.prototype.frame=function(){var d=this.G.getComponent(k.Scene),e=d.scene,n=e&&c.tu(e),q=d.bL;d=d.LS;!m.isPresenting&&n&&q&&0<d?(this.g4a(),this.mcb(e,n),this.lcb(q,d)):(this.opacity=this.bL=void 0,this.QBa())};b.prototype.update=function(){};b.prototype.mcb=function(d,e){this.Nh.parent!=e&&e.add(this.Nh);var n=c.fT(d);d=c.tB(d);e.isPerspectiveCamera? 2303(this.Nh.position.z=1.01*-e.near,e=d/(2*Math.tan(e.fov*g/2)),e=Math.max(d/e,n/(e*n/d)),this.Nh.scale.y=e,this.Nh.scale.x=e*n/d):e.isOrthographicCamera&&(this.Nh.position.z=-(e.near+1),this.Nh.scale.y=e.top-e.bottom,this.Nh.scale.x=e.right-e.left)};b.prototype.lcb=function(d,e){this.bL!==d&&this.opacity!==e&&(this.Nh.material.color=l.Ip(d),this.Nh.material.opacity=e,this.Nh.material.needsUpdate=!0)};b.prototype.g4a=function(){if(!this.Nh){var d=new h.SpriteMaterial;d.depthTest=!1;d.renderOrder=1E3; 2304d.sizeAttenuation=!1;d.transparent=!0;d.visible=!0;d.opacity=0;d.needsUpdate=!0;this.Nh=new h.Sprite(d);this.Nh.renderOrder=1E3}};b.prototype.QBa=function(){var d,e,n;if(this.Nh){var q=this.Nh.material;null===(d=q.map)||void 0===d?void 0:d.dispose();null===(e=q.envMap)||void 0===e?void 0:e.dispose();q.dispose();this.Nh.geometry.dispose();null===(n=this.Nh.parent)||void 0===n?void 0:n.remove(this.Nh)}};b.prototype.dispose=function(){this.QBa()};return b}();var g=Math.PI/180;return a}); 2305define("gm",["require","exports","ol","fS","three.mod"],function(a,f,l,m,k){return function(){function c(h){this.G=h}c.prototype.update=function(){var h=this.G.getComponent(m.Scene),g=h.scene,b=h.OCa;h=l.Ip(h.NCa||"#ffffff");0<b?null==g.fog?g.fog=new k.FogExp2(h,b):(g.fog.color=h,g.fog.density=b):g.fog=null};c.prototype.dispose=function(){var h=this.G.getComponent(m.Scene);h&&h.scene&&(h.scene.fog=null)};return c}()}); 2306define("if","require fS pT bO lZ jX gm".split(" "),function(a){function f(b){this.m=b;this.dh=null;var d=this.m.J(l.Scene),e=this.m.J(l.lo);this.m.I(l.Object3D).qa=e.scene=d.scene=new THREE.Scene;this.Ne=new m;this.eO=new c(b,this.Ne.iu());this.re=new k(b,this.Ne.iu());this.vX=new g(b);this.mra=new h(b)}var l=a("fS"),m=a("pT"),k=a("bO"),c=a("lZ"),h=a("jX"),g=a("gm");f.prototype.frame=function(b){this.eO.frame(b);this.re.frame(b)};f.prototype.Yha=function(b){this.mra.frame(b)};f.prototype.update=function(){this.eO.update(); 2307this.re.update();this.vX.update();this.mra.update();this.A1a()};f.prototype.A1a=function(){var b=this.m.getComponent(l.Scene);this.dh!=b.Uha&&(this.dh=b.Uha,this.Ne.i$a(this.dh))};f.prototype.dispose=function(){this.Ne&&(this.Ne.dispose(),this.Ne=null);this.re&&(this.re.dispose(),this.re=null);this.eO&&(this.eO.dispose(),this.eO=null);this.vX&&(this.vX.dispose(),this.vX=null);this.m&&(this.m=null)};f.$a=function(b){b.I(l.lo).manager=new f(b)};f.Ca=function(b){var d=b.getComponent(l.lo);d.manager.dispose(); 2308d.manager=null;b.ha(l.lo);b.ha(l.Object3D)};f.frame=function(b,d){b.getComponent(l.lo).manager.frame(d)};f.Yha=function(b,d){(b=b.getComponent(l.lo))&&b.manager&&b&&b.manager.Yha(d)};
2308f.update=function(b){b.getComponent(l.lo).manager.update()};f.$ka=function(b,d){c.$ka(b,d)};return f}); 2309define("fi",["require","lQ","ma","fS","if"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("if");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(c){this.CHa.u.length&&this.CHa.u.slice().forEach(k.$a);this.scenes.Ea.length&&this.scenes.Ea.slice().forEach(k.update);this.scenes.u.length&&this.scenes.u.slice().forEach(function(h){k.frame(h,c)});k.$ka(this.P,this.Lm.u.slice());this.DHa.u.length&&this.DHa.u.slice().forEach(k.Ca)};a.H={};a.H.CHa=[m.Scene,m.lo.not];a.H.scenes= 2310[m.Scene,m.lo];a.H.DHa=[m.Scene.not,m.lo];a.H.Lm=[m.zi,m.Ls];a.zV=f.extend(l,function(){l.apply(this,arguments)});a.zV.prototype.Tc=function(c){this.scenes.u.length&&this.scenes.u.slice().forEach(function(h){k.Yha(h,c)})};a.zV.H={};a.zV.H.scenes=[m.Scene,m.lo];return a}); 2311define("eN",["require","w"],function(a){function f(g){this.ni=g;"CANVAS"==g.tagName?(this.T=g,this.Oc=1):(this.T=document.createElement("canvas"),this.Oc=k.zd()==k.yi?.5:1,this.T.width=Math.round(g.width*this.Oc),this.T.height=Math.round(g.height*this.Oc));this.Da=this.T.getContext("2d");this.Da.globalCompositeOperation="copy";this.T!=g&&this.Da.drawImage(g,0,0,g.width,g.height,0,0,this.T.width,this.T.height)}function l(g,b,d){0>g?g=d==THREE.RepeatWrapping?b+g%b:d==THREE.MirroredRepeatWrapping?0== 2312Math.floor(Math.abs(g/b))%2?Math.abs(g%b):b-1+g%b:0:g>=b&&(g=d==THREE.RepeatWrapping?g%b:d==THREE.MirroredRepeatWrapping?1==Math.floor(g/b)%2?b-1-g%b:g%b:b-1);return g}function m(g,b,d){try{if(g instanceof CanvasRenderingContext2D)return g.getImageData(b,d,1,1).data;if(g.tagName&&"CANVAS"==g.tagName)return g.VUa?[0,0,0,0]:g.getContext("2d").getImageData(b,d,1,1).data;c.drawImage(g,b,d,1,1,0,0,1,1);return c.getImageData(0,0,1,1).data}catch(e){return[0,0,0,0]}}var k=a("w");f.prototype.transparent=function(g, 2313b){return f.transparent(this.Da,Math.round(g*this.Oc),Math.round(b*this.Oc))};f.prototype.Gy=function(g,b){return f.Gy(this.Da,Math.round(g*this.Oc),Math.round(b*this.Oc))};f.prototype.info=function(g,b){return f.info(this.Da,Math.round(g*this.Oc),Math.round(b*this.Oc))};f.prototype.dispose=function(){this.T!=this.ni&&(this.T.width=this.T.height=0);this.ni=this.T=this.Da=null};f.Jbb=function(g,b,d){if(!g.image||!g.image.width||!g.image.height)return!0;b=l(Math.round(b*g.image.width),g.image.width, 2314g.wrapS);d=l(Math.round((1-d)*g.image.height),g.image.height,g.wrapT);return!f.transparent(g.image,b,d)};f.transparent=function(g,b,d){return!f.Gy(g,b,d)};f.Gy=function(g,b,d){return!g.tagName||g.tagName&&"VIDEO"==g.tagName?!0:0<m(g,b,d)[3]};f.info=function(g,b,d){g=m(g,b,d);b=g[3];return{Gy:0<b,opacity:b,color:"#"+h[g[0]]+h[g[1]]+h[g[2]]}};a=document.createElement("canvas");a.width=a.height=1;var c=a.getContext("2d");c.globalCompositeOperation="copy";var h=function(){for(var g=Array(256),b=0;16> 2315b;b++)g[b]="0"+b.toString(16);for(;256>b;b++)g[b]=b.toString(16);return g}();return f}); 2316define("oZ","require pw eN fS cv hn bh".split(" "),function(a){function f(A){this.Pg=A;this.ZJ=this.jw=this.se=this.pn=null;this.vP=void 0;this.qw=!1;this.update()}function l(A,C,J,D){this.G=A;this.qa=C;this.point=J;this.normal=D}function m(A){return{x:A.x,y:A.y,z:A.z}}function k(A,C,J,D){var O=C.P,R=A.get(O);R||A.set(O,R=[]);A=R.indexOf(C);J&&0>A?R.push(C):!J&&0<=A&&R.splice(A,1);D.delete(O)}var c=a("pw"),h=a("eN"),g=a("fS"),b=a("cv"),d=a("hn"),e=a("bh");f.prototype.update=function(){var A=this.Pg.getComponent(g.Cc); 2317A.hs=this;this.TQ(A&&A.enabled?A.SF:null);this.SQ(A&&A.enabled?A.b2:null)};f.prototype.frame=function(){this.zPa();var A=this.Pg.getComponent(g.Cc);A&&A.UBa?this.Xva():this.nx(p)};f.prototype.TQ=function(A){if(this.pn!=A){if(this.pn)for(var C in u)this.pn.unbind(C,this.le,this);if(this.pn=A)for(C in u)this.pn.bind(C,this.le,this,!0)}};f.prototype.le=function(A){var C=this.Pg.getComponent(g.Cc);C&&C.enabled&&(C=u[A.name])&&C.call(this,A)};f.prototype.SQ=function(A){this.se!=A&&(this.se&&this.qw&&this.se.pop(e.Je), 2318(this.se=A)&&this.qw&&this.se.push(e.Je))};f.prototype.Mf=function(A){this.bp(A);this.YI&&-1==v.indexOf(this.Pg.P)&&-1==w.indexOf(this.Pg.P)?this.nx(p):this.nx(q)};f.prototype.Nw=function(A){this.bp(A);(A=this.P$())&&this.V0(c.ma,A)};f.prototype.sJ=function(A){this.bp(A);(A=this.P$())&&this.V0(c.Al,A)};f.prototype.Ko=function(A){this.YI=!0;this.bp(A);if(A=this.P$())this.p$=A.G,this.s$=A.G.getComponent(g.Qd).N,this.V0(c.gb,A)};f.prototype.Ow=function(A){this.YI=!1;this.bp(A);if(this.p$)var C=(C=this.p$.getComponent(g.Qd))&& 2319C.N;!C&&this.s$&&(C=this.s$);this.s$=this.p$=null;
2319C&&(A=this.Gra(),C.trigger(c.Eb,A),C=this.Pg.getComponent(g.Cc),C.N&&C.N.trigger(c.Eb,A))};f.prototype.bp=function(A){this.md=A.x;this.nd=A.y;this.hJ=A.pageX;this.iJ=A.pageY};f.prototype.nx=function(A){var C=(new Date).getTime()+A;this.vP&&C>=this.vP||(this.vP=C,clearTimeout(this.ZJ),this.ZJ=setTimeout(function(){this.ZJ=null;this.vP=void 0;this.Xva()}.bind(this),A))};f.prototype.Xva=function(){var A=this.GTa();this.Zxa(A&&A.G);A&&this.V0(c.Pb,A)}; 2320f.prototype.p4=function(A,C,J){var D=this.md,O=this.nd,R=this.hJ,U=this.iJ;this.iJ=this.hJ=this.nd=this.md=void 0;A=this.$$(A,[]);C=this.T$(A,C,J);var V;C&&(V=this.tsa(C));this.md=D;this.nd=O;this.hJ=R;this.iJ=U;return V};f.prototype.GTa=function(){var A=this.Pg.getComponent(g.Cc);if(!A)return null;var C=this.FTa();return this.T$(C,A.origin,A.direction)||null};f.prototype.P$=function(){var A=this.Pg.getComponent(g.Cc);if(!A)return null;var C=this.DSa();return this.T$(C,A.origin,A.direction)||null}; 2321f.prototype.Zxa=function(A){if(this.jw!=A){if(null!=this.jw!=(null!=A)){var C=this.Pg.getComponent(g.Cc);C&&C.N&&C.N.trigger(A?c.Dc:c.Jb)}this.jw&&this.zza(this.jw,c.Jb);(this.jw=A)&&this.zza(this.jw,c.Dc);A=this.jw&&this.jw.getComponent(g.Qd);A=!!A&&A.eH;this.qw!=A&&(this.qw=A,this.se&&(this.qw?this.se.push(e.Je):this.se.pop(e.Je)))}};f.prototype.T$=function(A,C,J){var D=Array.from(A.keys());C=this.GUa(D,C,J);for(J=0;J<C.length;J++){D=C[J];var O=D.point,R=D.object,U=D.face&&D.face.normal,V=A.get(R), 2322W=V&&V.getComponent(g.Qd);if(W){var K=Array.isArray(R.material)&&D.face?R.material[D.face.materialIndex]:R.material;if(!K||K.visible)if(W.zM||!K||!K.map||h.Jbb(K.map,D.uv.x,D.uv.y))return R.isSkinnedMesh&&(R=this.SRa(R.skeleton.bones,O)),new l(V,R,O,U)}}return null};f.prototype.DSa=function(){var A=this.Pg.P,C=E.get(A);if(!C){C=x.get(A);var J=z.get(A);C=this.$$(C,J);E.set(A,C)}return C};f.prototype.FTa=function(){var A=this.Pg.P,C=I.get(A);if(!C){C=y.get(A);var J=B.get(A);C=this.$$(C,J);I.set(A,C)}return C}; 2323f.prototype.$$=function(A,C){var J=(C&&C.map(function(R){return b.Uc(R)}).filter(function(R){return!!R})||[]).slice(),D=new Map;A&&A.forEach(function(R){var U=b.Uc(R);U&&-1==J.indexOf(U)&&(J.push(U),D.set(R,U))});var O=new Map;D.forEach(function(R,U){for(var V=[R];V.length;){var W=V.shift();if(W==R||-1==J.indexOf(W))O.set(W,U),W.children&&(V=V.concat(W.children))}});return O};f.prototype.GUa=function(A,C,J){t.camera=this.Nra();var D=b.Uc(this.Pg);D=D&&D.matrixWorld;D||(D=(D=this.Pg.getComponent(g.Cc))&& 2324D.matrixWorld);D?(t.ray.origin.copy(C).applyMatrix4(D),t.ray.direction.copy(C).add(J).applyMatrix4(D).sub(t.ray.origin).normalize()):(t.ray.origin.copy(C),t.ray.direction.copy(J).normalize());return d.intersect(t,A)};f.prototype.V0=function(A,C){var J=this.tsa(C);C=C.G.getComponent(g.Qd);J.qT=C&&C.N.qT(A)||!1;C.N&&C.N.trigger(A,J);C=this.Pg.getComponent(g.Cc);C.N&&C.N.trigger(A,J)};f.prototype.Gra=function(){var A={};void 0!==this.md&&void 0!==this.nd&&(A.x=this.md,A.y=this.nd);void 0!==this.hJ&& 2325void 0!==this.iJ&&(A.pageX=this.hJ,A.pageY=this.iJ);return A};f.prototype.tsa=function(A){var C=this.Gra(),J=A.qa,D=A.point;A=A.normal;C.position=m(D);var O=this.Nra();C.cameraPosition=m(O?r.setFromMatrixPosition(O.matrixWorld):r.set(0,0,0));O=J;for(var R=C;;){R.object=O.userData.id;R.name=O.name;R.type=O.isMesh?"mesh":O.isBone?"bone":O.yu||O.isGaussianCloud?"gs":"other";R.localPosition=m(O.worldToLocal(r.copy(D)));r.setFromMatrixScale(O.matrixWorld);R.localScale=Math.max(r.x,r.y,r.z);R.objectMatrixWorld= 2326J.matrixWorld.toArray();A&&(R.normal=m(n(J,A,O,r)));if(!O.parent||!O.parent.userData.id)break;O=O.parent;R=R.parent={}}return C};var n=function(){var A=new THREE.Vector3,C=new THREE.Matrix4;return function(J,D,O,R){R.copy(D);if(J==O)return R;R.applyMatrix4(J.matrixWorld);R.sub(A.setFromMatrixPosition(J.matrixWorld));R.add(A.setFromMatrixPosition(O.matrixWorld));R.applyMatrix4(C.copy(O.matrixWorld).invert()).normalize();return R}}();f.prototype.Nra=function(){if(this.xX.camera)return this.xX.camera; 2327var A=this.Pg.getComponent(g.Cc);A=A&&A.La;this.xX.camera=A&&b.Or(A);return this.xX.camera};f.prototype.zPa=function(){this.xX={}};f.prototype.zza=function(A,C){(A=(A=A.getComponent(g.Qd))&&A.N)&&A.trigger(C)};f.prototype.SRa=function(A,C){var J=null,D=Infinity;for(A=A.slice();A.length;){var O=A.shift(),R=C.distanceTo(O.getWorldPosition(r));R<D&&(J=O,D=R);A.unshift.apply(A,O.children)}return J};f.prototype.dispose=function(){this.ZJ&&(clearTimeout(this.ZJ),this.ZJ=null,this.vP=void 0);this.TQ(null); 2328this.SQ(null);this.Zxa(null)};var q=16,p=400,r=new THREE.Vector3(0,1,0),t=new THREE.Raycaster;a=new THREE.Box3;a.min.x=a.min.y=a.min.z=-Infinity;a.max.x=a.max.y=a.max.z=Infinity;a=new THREE.Sphere;a.center.x=a.center.y=a.center.z=0;a.radius=Infinity;var u={};u[c.Pb]=f.prototype.Mf;u[c.ma]=f.prototype.Nw;u[c.Al]=f.prototype.sJ;u[c.gb]=f.prototype.Ko;u[c.Eb]=f.prototype.Ow;f.lla=function(A){A.I(g.qv).manager=new f(A)};
2328f.Ela=function(A){var C=A.getComponent(g.qv);C.manager.dispose();C.manager=null;A.ha(g.qv)}; 2329f.frame=function(A){A.getComponent(g.qv).manager.frame()};f.us=function(A){A.getComponent(g.qv).manager.update()};f.Jab=function(A){A.I(g.OC);f.uKa(A)};f.uKa=function(A){var C=b.Uc(A),J=A.getComponent(g.Qd);k(x,A,C&&J.Nx,E);k(y,A,C&&J.xy,I)};f.CJa=function(A){k(x,A,!1,E);k(y,A,!1,I);A.ha(g.OC)};f.Iab=function(A){A.I(g.KC);f.qKa(A)};f.qKa=function(A){var C=b.Uc(A),J=A.getComponent(g.aq);k(z,A,C&&J.Ola,E);k(B,A,C&&J.Pla,I)};f.BJa=function(A){k(B,A,!1,I);k(z,A,!1,E);A.ha(g.KC)};var v=[];f.gab=function(A){v= 2330[];A.forEach(function(C){0>v.indexOf(C.P)&&v.push(C.P)})};var w=[];f.Mka=function(A){w=[];A.forEach(function(C){0>w.indexOf(C.P)&&w.push(C.P)})};var x=new Map,y=new Map,z=new Map,B=new Map,E=new Map,I=new Map;return f}); 2331define("oc",["require","lQ","ma","fS","oZ"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("oZ");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.WT.u.length&&this.WT.u.slice().forEach(k.lla);this.Fj.Ea.length&&this.Fj.Ea.slice().forEach(k.us);this.Fj.u.length&&this.Fj.u.slice().forEach(k.frame);this.XT.u.length&&this.XT.u.slice().forEach(k.Ela);this.KHa.u.length&&this.KHa.u.slice().forEach(k.Jab);this.JHa.u.length&&this.JHa.Ea.slice().forEach(k.uKa);this.LHa.u.length&& 2332this.LHa.u.slice().forEach(k.CJa);this.MHa.u.length&&this.MHa.u.slice().forEach(k.CJa);this.wFa.u.length&&this.wFa.u.slice().forEach(k.Iab);this.vFa.u.length&&this.vFa.Ea.slice().forEach(k.qKa);this.xFa.u.length&&this.xFa.u.slice().forEach(k.BJa);this.yFa.u.length&&this.yFa.u.slice().forEach(k.BJa);(this.Zja.Kd.length||this.Zja.og.length)&&k.gab(this.Zja.u);(this.PF.Kd.length||this.PF.og.length)&&k.Mka(this.PF.u)};a.H={};a.H.PF=[m.Tm];a.H.Zja=[m.wk];a.H.WT=[m.Cc,m.qv.not];a.H.Fj=[m.Cc,m.qv];a.H.XT= 2333[m.Cc.not,m.qv];a.H.KHa=[m.Object3D,m.Qd,m.OC.not];a.H.JHa=[m.Object3D,m.Qd,m.OC];a.H.LHa=[m.Object3D.not,m.OC];a.H.MHa=[m.Qd.not,m.OC];a.H.wFa=[m.Object3D,m.aq,m.KC.not];a.H.vFa=[m.Object3D,m.aq,m.KC];a.H.xFa=[m.Object3D.not,m.KC];a.H.yFa=[m.aq.not,m.KC];return a}); 2334define("hM","require exports three.mod ol fS ma cv".split(" "),function(a,f,l,m,k,c,h){a=function(g){function b(){var d=g.call(this)||this;d.Vb=d.Vb.bind(d);d.Ib=d.Ib.bind(d);d.xf=d.xf.bind(d);d.jb=d.jb.bind(d);return d}Z(b,g);b.prototype.Tc=function(){this.xB.u.length&&this.xB.u.slice().forEach(this.Vb);this.yB.u.length&&this.yB.u.slice().forEach(this.jb);this.Lh.Ea.length&&this.Lh.Ea.slice().forEach(this.Ib);this.Lh.u.length&&this.Lh.u.slice().forEach(this.xf)};b.prototype.Vb=function(d){var e= 2335d.I(k.Ns),n=d.I(k.Object3D);e.light=n.qa=new l.SpotLight;this.Ib(d)};b.prototype.Ib=function(d){var e=d.getComponent(k.SpotLight),n=d.getComponent(k.Ns),q=n.light;q.color=m.Ip(e.color).convertLinearToSRGB();q.intensity=e.intensity*Math.PI;q.visible=0<q.intensity;q.castShadow=0<q.intensity&&e.castShadow;q.distance=e.distance;q.angle=e.angle*Math.PI/180;q.penumbra=e.penumbra;q.decay=e.decay;q.target.position.set(0,0,1);q.add(q.target);var p=q.castShadow?e.pla:16;p!=q.shadow.mapSize.width&&(q.shadow.dispose(), 2336q.shadow=q.shadow.clone(),q.shadow.mapSize.width=q.shadow.mapSize.height=p);q.shadow.bias=e.ola;q.shadow.radius=e.qla;e.FS!=!!n.Xn&&(n=d.J(k.Ns),e.FS?n.Xn=new l.SpotLightHelper(q):(n.Xn.dispose(),n.Xn=null))};b.prototype.xf=function(d){this.Rla(d)};b.prototype.Rla=function(d){var e=d.getComponent(k.Ns);if(e=e&&e.Xn)d=h.Cf(d),e.parent!=d&&(e.parent&&e.parent.remove(e),d&&d.add(e)),e.update()};b.prototype.jb=function(d){var e=d.getComponent(k.Ns),n=e&&e.Xn;n&&n.parent&&n.parent.remove(n);n&&n.dispose(); 2337e=e.light;e.parent&&e.parent.remove(e);d.ha(k.Ns);d.ha(k.Object3D)};b.H={};return b}(c);a.H={};a.H.xB=[k.SpotLight,k.Ns.not];a.H.Lh=[k.SpotLight,k.Ns];a.H.yB=[k.SpotLight.not,k.Ns];return a}); 2338define("jT",["require","ol","fS"],function(a){function f(k){this.m=k;this.za=null;this.update()}var l=a("ol"),m=a("fS");f.prototype.update=function(){this.za||(this.za=new THREE.MeshBasicMaterial,this.za.transparent=!0,this.m.I(m.Material).material=this.za);var k=this.m.getComponent(m.kd);this.za.color=l.Ip(k.color||"#ffffff");this.za.opacity=k.opacity||0;this.za.depthTest=!!k.depthTest;this.za.side=k.doubleSided?THREE.DoubleSide:THREE.FrontSide;this.za.visible=0<this.za.opacity;this.za.needsUpdate= 2339!0};f.prototype.dispose=function(){this.za&&(this.za.dispose(),this.za=null,this.m.ha(m.Material));this.m=null};f.$a=function(k){k.I(m.sv).manager=new f(k)};f.Ca=function(k){var c=k.getComponent(m.sv);c.manager.dispose();c.manager=null;k.ha(m.sv)};
2339f.update=function(k){k.getComponent(m.sv).manager.update()};return f}); 2340define("iS",["require","lQ","ma","fS","jT"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("jT");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.Fm.u.length&&this.Fm.u.slice().forEach(k.$a);this.materials.Ea.length&&this.materials.Ea.slice().forEach(k.update);this.Gm.u.length&&this.Gm.u.slice().forEach(k.Ca)};a.H={};a.H.Fm=[m.kd,m.sv.not];a.H.materials=[m.kd,m.sv];a.H.Gm=[m.kd.not,m.sv];return a}); 2341define("lE",["require","lQ","ma","fS","oq"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("oq");a=f.extend(l,function(){l.apply(this,arguments);this.Vb=this.Vb.bind(this);this.Ib=this.Ib.bind(this);this.jb=this.jb.bind(this)});a.prototype.Tc=function(){this.eJa.u.length&&this.eJa.u.slice().forEach(this.Vb);this.dJa.Ea.length&&this.dJa.Ea.slice().forEach(this.Ib);this.fJa.u.length&&this.fJa.u.slice().forEach(this.jb);this.gJa.u.length&&this.gJa.u.slice().forEach(this.jb)};a.prototype.Vb=function(c){c.I(m.Object3D).qa= 2342new THREE.Mesh(new THREE.SphereGeometry);c.I(m.PC);this.Ib(c)};a.prototype.Ib=function(c){var h=c.getComponent(m.Object3D).qa;k.hB(h,c.getComponent(m.Material).material);c=c.getComponent(m.Sphere);var g=h.geometry;if(g.radius!=c.radius||g.widthSegments!=c.widthSegments||g.heightSegments!=c.heightSegments)g.dispose(),g=new THREE.SphereGeometry(c.radius,c.widthSegments,c.heightSegments),h.geometry=g,h.needsUpdate=!0;c=c.renderOrder||0;h.renderOrder!=c&&(h.renderOrder=c,h.needsUpdate=!0)};a.prototype.jb= 2343function(c){var h=c.getComponent(m.Object3D);(h=h&&h.qa)&&h.geometry&&(h.geometry.dispose(),h.geometry=null);h&&k.hB(h,null);c.ha(m.PC);c.ha(m.Object3D)};a.H={};a.H.eJa=[m.Sphere,m.Material,m.PC.not];a.H.dJa=[m.Sphere,m.Material,m.PC];a.H.fJa=[m.Sphere.not,m.PC];a.H.gJa=[m.Material.not,m.PC];return a}); 2344define("mw",["require","oQ","fS","cv","oq"],function(a){function f(g){this.m=g;this.Va=null;this.I8=90;this.J8=100;this.sa=this.wa=void 0;this.l0=!1;this.Oc=1;this.Yc=this.m.J(l.Sprite).Nh=this.m.J(l.Object3D,!0).qa=new THREE.Sprite;this.Yc.material.opacity=0;this.Vi();this.update();this.frame()}a("oQ");var l=a("fS"),m=a("cv"),k=a("oq");f.prototype.update=function(){var g=this.m.getComponent(l.Sprite);this.wa=g.height;this.sa=g.width;this.l0=g.sizeAttenuation;this.Yc.center.x=g.KK;this.Yc.center.y= 23451-g.LK;this.Oc=g.scale;this.um();this.Yc.needsUpdate=!0};f.prototype.frame=function(){this.Va||(this.Va=m.Cf(this.m));this.vr();this.Vi();this.um()};f.prototype.vr=function(){if(this.Va){var g=m.tu(this.Va);if(g&&g.isPerspectiveCamera){var b=m.tB(this.Va);if(this.I8!=g.fov||this.J8!=b)this.I8=g.fov,this.J8=b,this.um(),this.Yc.needsUpdate=!0}}};f.prototype.Vi=function(){var g=this.Va?this.m.getComponent(l.Material).material:null;g&&k.hB(this.Yc,g);this.Yc.renderOrder=this.m.getComponent(l.Sprite).renderOrder; 2346this.Yc.material&&this.Yc.material.sizeAttenuation!=this.l0&&(this.Yc.material.sizeAttenuation=this.l0,this.Yc.material.needsUpdate=!0)};f.prototype.um=function(){var g=this.wa;this.l0||(g/=this.J8/(2*Math.tan(this.I8*h/2)));var b=this.Oc;this.Yc.parent&&(this.Yc.parent.getWorldScale(c),b/=Math.max(c.x,c.y,c.z));g*=b;b=g*this.sa/this.wa;var d=this.m.getComponent(l.va)||this.m.I(l.va);if(d.qf!=b||d.Ff!=g||1!=d.nh)d=this.m.J(l.va,!0),d.qf=b,d.Ff=g,d.nh=1};var c=new THREE.Vector3,h=Math.PI/180;f.prototype.dispose= 2347function(){};f.$a=function(g){g.I(l.Os).manager=new f(g)};f.Ca=function(g){var b=g.getComponent(l.Os);b.manager.dispose();b.manager=null;g.ha(l.Os);g.ha(l.Object3D)};f.update=function(g){g.getComponent(l.Os).manager.update()};f.frame=function(g){g.getComponent(l.Os).manager.frame()};return f}); 2348define("eM",["require","lQ","ma","fS","mw"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("mw");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.iJa.u.length&&this.iJa.u.slice().forEach(k.$a);this.c5.Ea.length&&this.c5.u.slice().forEach(k.update);this.c5.u.length&&this.c5.u.slice().forEach(k.frame);this.jJa.u.length&&this.jJa.u.slice().forEach(k.Ca);
2348this.kJa.u.length&&this.kJa.u.slice().forEach(k.Ca)};a.H={};a.H.iJa=[m.Material,m.Sprite,m.Os.not];a.H.c5=[m.Sprite, 2349m.Material,m.Os];a.H.jJa=[m.Sprite.not,m.Os];a.H.kJa=[m.Material.not,m.Os];return a}); 2350define("hD","require lQ pw cI ma fS cv".split(" "),function(a){function f(e,n,q){for(;e<n-180;)e+=360;for(;e>n+180;)e-=360;return l(e,n,q)}function l(e,n,q){if(!q)return n;e=(n-e)*(1-q);1E-5>Math.abs(e)&&(e=0);return n-e}var m=a("lQ"),k=a("pw"),c=a("cI"),h=a("ma"),g=a("fS"),b=a("cv");a=m.extend(h,function(){h.apply(this,arguments);this.Vb=this.Vb.bind(this);this.Ib=this.Ib.bind(this);this.jb=this.jb.bind(this)});a.prototype.Tc=function(e,n){this.MT.u.length&&this.MT.u.slice().forEach(this.Vb);this.Yr.Kd.length&& 2351this.Yr.Kd.slice().forEach(function(q){this.Ib(q,e,n)}.bind(this));this.Yr.Ea.length&&this.Yr.Ea.slice().forEach(function(q){this.Ib(q,e,n)}.bind(this));this.HFa.u.length&&this.HFa.u.slice().forEach(function(q){this.Ib(q,e,n)}.bind(this));this.vCa.u.length&&this.vCa.u.slice().forEach(this.jb);this.wCa.u.length&&this.wCa.u.slice().forEach(this.jb)};a.prototype.Vb=function(e){var n=e.getComponent(g.va),q=e.I(g.Wf);q.positionX=n.positionX;q.positionY=n.positionY;q.positionZ=n.positionZ;q.Pd=n.Pd;q.ud= 2352n.ud;q.Fe=n.Fe;q.Ee=n.Ee;q.scale=n.scale;q.qf=n.qf;q.Ff=n.Ff;q.nh=n.nh;q.translationX=n.translationX;q.translationY=n.translationY;q.He=n.He;this.updateMatrixWorld(e)};a.prototype.Ib=function(e){var n=e.getComponent(g.va),q=e.getComponent(g.Wf),p=n.easing||0;p?e.getComponent(g.SC)||e.I(g.SC):e.ha(g.SC);var r=null;n.Kx!==q.Kx&&(r||(r=e.J(g.Wf)),r.Kx=n.Kx);n.positionX!==q.positionX&&(r||(r=e.J(g.Wf)),r.positionX=l(r.positionX,n.positionX,p));n.positionY!==q.positionY&&(r||(r=e.J(g.Wf)),r.positionY= 2353l(r.positionY,n.positionY,p));n.positionZ!==q.positionZ&&(r||(r=e.J(g.Wf)),r.positionZ=l(r.positionZ,n.positionZ,p));n.Pd!==q.Pd&&(r||(r=e.J(g.Wf)),r.Pd=f(r.Pd,n.Pd,p));n.ud!==q.ud&&(r||(r=e.J(g.Wf)),r.ud=f(r.ud,n.ud,p));n.Fe!==q.Fe&&(r||(r=e.J(g.Wf)),r.Fe=f(r.Fe,n.Fe,p));n.scale!==q.scale&&(r||(r=e.J(g.Wf)),r.scale=n.scale);n.qf!==q.qf&&(r||(r=e.J(g.Wf)),r.qf=n.qf);n.Ff!==q.Ff&&(r||(r=e.J(g.Wf)),r.Ff=n.Ff);n.nh!==q.nh&&(r||(r=e.J(g.Wf)),r.nh=n.nh);n.translationX!==q.translationX&&(r||(r=e.J(g.Wf)), 2354r.translationX=l(r.translationX,n.translationX,p));n.translationY!==q.translationY&&(r||(r=e.J(g.Wf)),r.translationY=l(r.translationY,n.translationY,p));n.He!==q.He&&(r||(r=e.J(g.Wf)),r.He=l(r.He,n.He,p));r?this.updateMatrixWorld(e):e.ha(g.SC)};var d=new THREE.Vector3;a.prototype.updateMatrixWorld=function(e){b.CU(e,e.getComponent(g.Wf));var n=e.getComponent(g.va).N;n&&(b.getWorldPosition(e,d),e={position:{}},e.position.x=d.x,e.position.y=d.y,e.position.z=d.z,n.trigger(new c(k.Cl,e)))};a.prototype.jb= 2355function(e){e.ha(g.Wf);e.ha(g.SC)};a.H={};a.H.Yr=[g.Object3D,g.va,g.Wf];a.H.MT=[g.Object3D,g.va,g.Wf.not];a.H.HFa=[g.Object3D,g.va,g.Wf,g.SC];a.H.vCa=[g.Object3D.not,g.va,g.Wf];a.H.wCa=[g.va.not,g.Wf];return a}); 2356define("jy",["require","three.mod"],function(a){const f=a("three.mod");class l extends f.Object3D{constructor(r){function t(K,M){K=new f.TorusGeometry(K,.0075,3,64,M*Math.PI*2);K.rotateY(Math.PI/2);K.rotateX(Math.PI/2);return K}function u(K){const M=new f.Object3D;for(const X in K)for(let ba=K[X].length;ba--;){const da=K[X][ba][0].clone();var S=K[X][ba][1];const ea=K[X][ba][2],G=K[X][ba][3],P=K[X][ba][4];da.name=X;da.tag=P;S&&da.position.set(S[0],S[1],S[2]);ea&&da.rotation.set(ea[0],ea[1],ea[2]); 2357G&&da.scale.set(G[0],G[1],G[2]);da.updateMatrix();S=da.geometry.clone();S.applyMatrix4(da.matrix);da.geometry=S;da.renderOrder=Infinity;da.position.set(0,0,0);da.rotation.set(0,0,0);da.scale.set(1,1,1);M.add(da)}return M}super();this.type="TransformControlsGizmo";this.properties=r;var v=new f.MeshBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0}),w=new f.LineBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0});r=v.clone();r.opacity=.15;w=w.clone(); 2358w.opacity=.5;var x=v.clone();x.color.setHex(16711680);const y=v.clone();y.color.setHex(65280);const z=v.clone();z.color.setHex(255);const B=v.clone();B.color.setHex(16711680);B.opacity=.5;const E=v.clone();E.color.setHex(65280);E.opacity=.5;const I=v.clone();I.color.setHex(255);I.opacity=.5;const A=v.clone();A.opacity=.25;var C=v.clone();C.color.setHex(16776960);C.opacity=.25;v.clone().color.setHex(16776960);var J=v.clone();J.color.setHex(7895160);var D=new f.CylinderGeometry(0,.04,.1,12);D.translate(0, 2359.05,0);const O=new f.BoxGeometry(.08,.08,.08);O.translate(0,.04,0);v=new f.BufferGeometry;v.setAttribute("position",new f.Float32BufferAttribute([0,0,0,1,0,0,0,0,0,0,0,0],3));const R=new f.CylinderGeometry(.0075,.0075,.5,3);R.translate(0,.25,0);D={X:[[new f.Mesh(D,x),[.5,0,0],[0,0,-Math.PI/2]],[new f.Mesh(D,x),[-.5,0,0],[0,0,Math.PI/2]],[new f.Mesh(R,x),[0,0,0],[0,0,-Math.PI/2]]],Y:[[new f.Mesh(D,y),[0,.5,0]],[new f.Mesh(D,y),[0,-.5,0],[Math.PI,0,0]],[new f.Mesh(R,y)]],Z:[[new f.Mesh(D,z),[0,0,.5], 2360[Math.PI/2,0,0]],[new f.Mesh(D,z),[0,0,-.5],[-Math.PI/2,0,0]],[new f.Mesh(R,z),null,[Math.PI/2,0,0]]],XYZ:[[new f.Mesh(new f.OctahedronGeometry(.1,0),A.clone()),[0,0,0]]],XY:[[new f.Mesh(new f.BoxGeometry(.15,.15,.01),I.clone()),[.15,.15,0]]],YZ:[[new f.Mesh(new f.BoxGeometry(.15,.15,.01),B.clone()),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new f.Mesh(new f.BoxGeometry(.15,.15,.01),E.clone()),[.15,0,.15],[-Math.PI/2,0,0]]]};const U={X:[[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[.3,0,0],[0,0,-Math.PI/ 23612]],[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[0,.3,0]],[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[0,-.3,0],[0,0,Math.PI]]],Z:[[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[0,0,.3],[Math.PI/2,0,0]],[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[0,0,-.3],[-Math.PI/2,0,0]]],XYZ:[[new f.Mesh(new f.OctahedronGeometry(.2,0),r)]],XY:[[new f.Mesh(new f.BoxGeometry(.2,.2,.01),r),[.15,.15,0]]],YZ:[[new f.Mesh(new f.BoxGeometry(.2, 2362.2,.01),r),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new f.Mesh(new f.BoxGeometry(.2,.2,.01),r),[.15,0,.15],[-Math.PI/2,0,0]]]},V={START:[[new f.Mesh(new f.OctahedronGeometry(.01,2),w),null,null,null,"helper"]],END:[[new f.Mesh(new f.OctahedronGeometry(.01,2),w),null,null,null,"helper"]],DELTA:[[new f.Line(function(){const K=new f.BufferGeometry;K.setAttribute("position",new f.Float32BufferAttribute([0,0,0,1,1,1],3));return K}(),w),null,null,null,"helper"]],X:[[new f.Line(v,w.clone()),[-1E3,0,0],null,[1E6, 23631,1],"helper"]],Y:[[new f.Line(v,w.clone()),[0,-1E3,0],[0,0,Math.PI/2],[1E6,1,1],"helper"]],Z:[[new f.Line(v,w.clone()),[0,0,-1E3],[0,-Math.PI/2,0],[1E6,1,1],"helper"]]};C={XYZE:[[new f.Mesh(t(.5,1),J),null,[0,Math.PI/2,0]]],X:[[new f.Mesh(t(.5,.5),x)]],Y:[[new f.Mesh(t(.5,.5),y),null,[0,0,-Math.PI/2]]],Z:[[new f.Mesh(t(.5,.5),z),null,[0,Math.PI/2,0]]],E:[[new f.Mesh(t(.75,1),C),null,[0,Math.PI/2,0]]]};J={AXIS:[[new f.Line(v,w.clone()),[-1E3,0,0],null,[1E6,1,1],"helper"]]};const W={XYZE:[[new f.Mesh(new f.SphereGeometry(.25, 236410,8),r)]],X:[[new f.Mesh(new f.TorusGeometry(.5,.1,4,24),r),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new f.Mesh(new f.TorusGeometry(.5,.1,4,24),r),[0,0,0],[Math.PI/2,0,0]]],Z:[[new f.Mesh(new f.TorusGeometry(.5,.1,4,24),r),[0,0,0],[0,0,-Math.PI/2]]],E:[[new f.Mesh(new f.TorusGeometry(.75,.1,2,24),r)]]};x={X:[[new f.Mesh(O,x),[.5,0,0],[0,0,-Math.PI/2]],[new f.Mesh(R,x),[0,0,0],[0,0,-Math.PI/2]],[new f.Mesh(O,x),[-.5,0,0],[0,0,Math.PI/2]]],Y:[[new f.Mesh(O,y),[0,.5,0]],[new f.Mesh(R,y)],[new f.Mesh(O, 2365y),[0,-.5,0],[0,0,Math.PI]]],Z:[[new f.Mesh(O,z),[0,0,.5],[Math.PI/2,0,0]],[new f.Mesh(R,z),[0,0,0],[Math.PI/2,0,0]],[new f.Mesh(O,z),[0,0,-.5],[-Math.PI/2,0,0]]],XY:[[new f.Mesh(new f.BoxGeometry(.15,.15,.01),I),[.15,.15,0]]],YZ:[[new f.Mesh(new f.BoxGeometry(.15,.15,.01),B),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new f.Mesh(new f.BoxGeometry(.15,.15,.01),E),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new f.Mesh(new f.BoxGeometry(.1,.1,.1),A.clone())]]};r={X:[[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r), 2366[.3,0,0],[0,0,-Math.PI/2]],[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[0,.3,0]],[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[0,-.3,0],[0,0,Math.PI]]],Z:[[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[0,0,.3],[Math.PI/2,0,0]],[new f.Mesh(new f.CylinderGeometry(.2,0,.6,4),r),[0,0,-.3],[-Math.PI/2,0,0]]],XY:[[new f.Mesh(new f.BoxGeometry(.2,.2,.01),r),[.15,.15,0]]],YZ:[[new f.Mesh(new f.BoxGeometry(.2,.2,.01), 2367r),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new f.Mesh(new f.BoxGeometry(.2,.2,.01),r),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new f.Mesh(new f.BoxGeometry(.2,.2,.2),r),[0,0,0]]]};w={X:[[new f.Line(v,w.clone()),[-1E3,0,0],null,[1E6,1,1],"helper"]],Y:[[new f.Line(v,w.clone()),[0,-1E3,0],[0,0,Math.PI/2],[1E6,1,1],"helper"]],Z:[[new f.Line(v,w.clone()),[0,0,-1E3],[0,-Math.PI/2,0],[1E6,1,1],"helper"]]};this.ay={};this.hs={};this.cG={};this.add(this.ay.translate=u(D));this.add(this.ay.rotate=u(C));this.add(this.ay.scale= 2368u(x));this.add(this.hs.translate=u(U));this.add(this.hs.rotate=u(W));this.add(this.hs.scale=u(r));this.add(this.cG.translate=u(V));this.add(this.cG.rotate=u(J));this.add(this.cG.scale=u(w));this.hs.translate.visible=!1;this.hs.rotate.visible=!1;this.hs.scale.visible=!1}updateMatrixWorld(r){const t="local"===("scale"===this.properties.mode?"local":this.properties.ula)?this.properties.hH:e;this.ay.translate.visible="translate"===this.properties.mode;this.ay.rotate.visible="rotate"===this.properties.mode; 2369this.ay.scale.visible="scale"===this.properties.mode;this.cG.translate.visible="translate"===this.properties.mode;this.cG.rotate.visible="rotate"===this.properties.mode;this.cG.scale.visible="scale"===this.properties.mode;let u=[];u=u.concat(this.hs[this.properties.mode].children);u=u.concat(this.ay[this.properties.mode].children);u=u.concat(this.cG[this.properties.mode].children);for(let w=0;w<u.length;w++){const x=u[w];x.visible=!0;x.rotation.set(0,0,0);x.position.copy(this.properties.My);var v= 2370void 0;this.properties.camera.isOrthographicCamera?(v=this.properties.camera,v=(v.top-v.bottom)/v.zoom):(v=this.properties.camera,v=this.properties.My.distanceTo(this.properties.Bc)*Math.min(1.9*Math.tan(Math.PI*v.fov/360)/v.zoom,7));x.scale.set(1,1,1).multiplyScalar(v*this.properties.size/4);"helper"===x.tag?(x.visible=!1,"AXIS"===x.name?(x.visible=!!this.properties.axis,"X"===this.properties.axis&&(k.setFromEuler(c.set(0,0,0)),x.quaternion.copy(t).multiply(k),.9<Math.abs(h.copy(n).applyQuaternion(t).dot(this.properties.eye))&& 2371(x.visible=!1)),"Y"===this.properties.axis&&(k.setFromEuler(c.set(0,0,Math.PI/2)),x.quaternion.copy(t).multiply(k),.9<Math.abs(h.copy(q).applyQuaternion(t).dot(this.properties.eye))&&(x.visible=!1)),"Z"===this.properties.axis&&(k.setFromEuler(c.set(0,Math.PI/2,0)),x.quaternion.copy(t).multiply(k),.9<Math.abs(h.copy(p).applyQuaternion(t).dot(this.properties.eye))&&(x.visible=!1)),"XYZE"===this.properties.axis&&(k.setFromEuler(c.set(0,Math.PI/2,0)),h.copy(this.properties.QB),x.quaternion.setFromRotationMatrix(b.lookAt(g, 2372h,q)),x.quaternion.multiply(k),x.visible=this.properties.ik),"E"===this.properties.axis&&(x.visible=!1)):"START"===x.name?(x.position.copy(this.properties.gH),x.visible=this.properties.ik):"END"===x.name?(x.position.copy(this.properties.My),x.visible=this.properties.ik):"DELTA"===x.name?(x.position.copy(this.properties.gH),x.quaternion.copy(this.properties.dma),m.set(1E-10,1E-10,1E-10).add(this.properties.gH).sub(this.properties.My).multiplyScalar(-1),m.applyQuaternion(this.properties.dma.clone().invert()), 2373x.scale.copy(m),x.visible=this.properties.ik):(x.quaternion.copy(t),this.properties.ik?x.position.copy(this.properties.gH):x.position.copy(this.properties.My),this.properties.axis&&(x.visible=-1!==this.properties.axis.search(x.name)))):(x.quaternion.copy(t),"translate"===this.properties.mode||"scale"===this.properties.mode?("X"===x.name&&.99<Math.abs(h.copy(n).applyQuaternion(t).dot(this.properties.eye))&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),"Y"===x.name&&.99<Math.abs(h.copy(q).applyQuaternion(t).dot(this.properties.eye))&& 2374(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),"Z"===x.name&&.99<Math.abs(h.copy(p).applyQuaternion(t).dot(this.properties.eye))&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),"XY"===x.name&&.2>Math.abs(h.copy(p).applyQuaternion(t).dot(this.properties.eye))&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),"YZ"===x.name&&.2>Math.abs(h.copy(n).applyQuaternion(t).dot(this.properties.eye))&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),"XZ"===x.name&&.2>Math.abs(h.copy(q).applyQuaternion(t).dot(this.properties.eye))&& 2375(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1)):"rotate"===this.properties.mode&&(d.copy(t),h.copy(this.properties.eye).applyQuaternion(k.copy(t).invert()),-1!==x.name.search("E")&&x.quaternion.setFromRotationMatrix(b.lookAt(this.properties.eye,g,q)),"X"===x.name&&(k.setFromAxisAngle(n,Math.atan2(-h.y,h.z)),k.multiplyQuaternions(d,k),x.quaternion.copy(k)),"Y"===x.name&&(k.setFromAxisAngle(q,Math.atan2(h.x,h.z)),k.multiplyQuaternions(d,k),x.quaternion.copy(k)),"Z"===x.name&&(k.setFromAxisAngle(p,Math.atan2(h.y, 2376h.x)),k.multiplyQuaternions(d,k),x.quaternion.copy(k))),x.visible=x.visible&&(-1===x.name.indexOf("X")||this.properties.UIa),x.visible=x.visible&&(-1===x.name.indexOf("Y")||this.properties.VIa),x.visible=x.visible&&(-1===x.name.indexOf("Z")||this.properties.WIa),x.visible=x.visible&&(-1===x.name.indexOf("E")||this.properties.UIa&&this.properties.VIa&&this.properties.WIa),x.material.Gc=x.material.Gc||x.material.color.clone(),x.material.Mb=x.material.Mb||x.material.opacity,x.material.color.copy(x.material.Gc), 2377x.material.opacity=x.material.Mb,this.properties.enabled&&this.properties.axis&&(x.name===this.properties.axis?(x.material.color.setHex(16776960),x.material.opacity=1):this.properties.axis.split("").some(function(y){return x.name===y})&&(x.material.color.setHex(16776960),x.material.opacity=1)))}super.updateMatrixWorld(r)}}const m=new f.Vector3,k=new f.Quaternion,c=new f.Euler,h=new f.Vector3(0,1,0),g=new f.Vector3(0,0,0),b=new f.Matrix4,d=new f.Quaternion,e=new f.Quaternion,n=new f.Vector3(1,0,0), 2378q=new f.Vector3(0,1,0),p=new f.Vector3(0,0,1);return l}); 2379define("lf",["require","three.mod"],function(a){const f=a("three.mod");class l extends f.Mesh{constructor(r){super(new f.PlaneGeometry(1E5,1E5,2,2),new f.MeshBasicMaterial({visible:!1,wireframe:!0,side:f.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1}));this.properties=r;this.type="TransformControlsPlane"}updateMatrixWorld(r){let t=this.properties.ula;this.position.copy(this.properties.My);"scale"===this.properties.mode&&(t="local");
2379n.copy(b).applyQuaternion("local"===t?this.properties.hH:c); 2380q.copy(d).applyQuaternion("local"===t?this.properties.hH:c);p.copy(e).applyQuaternion("local"===t?this.properties.hH:c);k.copy(q);switch(this.properties.mode){case "translate":case "scale":switch(this.properties.axis){case "X":k.copy(this.properties.eye).cross(n);h.copy(n).cross(k);break;case "Y":k.copy(this.properties.eye).cross(q);h.copy(q).cross(k);break;case "Z":k.copy(this.properties.eye).cross(p);h.copy(p).cross(k);break;case "XY":h.copy(p);break;case "YZ":h.copy(n);break;case "XZ":k.copy(p); 2381h.copy(q);break;case "XYZ":case "E":h.set(0,0,0)}break;default:h.set(0,0,0)}0===h.length()?this.quaternion.copy(this.properties.zBa):(g.lookAt(m.set(0,0,0),h,k),this.quaternion.setFromRotationMatrix(g));super.updateMatrixWorld(r)}}const m=new f.Vector3,k=new f.Vector3(0,1,0),c=new f.Quaternion,h=new f.Vector3,g=new f.Matrix4,b=new f.Vector3(1,0,0),d=new f.Vector3(0,1,0),e=new f.Vector3(0,0,1),n=new f.Vector3,q=new f.Vector3,p=new f.Vector3;return l}); 2382define("be",["require","three.mod","jy","lf"],function(a){function f(r,t,u){r=t.intersectObject(r,!0);for(t=0;t<r.length;t++)if(r[t].object.visible||u)return r[t];return!1}var l=a("three.mod"),m=a("jy"),k=a("lf");const c=new l.Vector3,h=new l.Vector3,g=new l.Quaternion,b={X:new l.Vector3(1,0,0),Y:new l.Vector3(0,1,0),Z:new l.Vector3(0,0,1)},d={type:"change"},e={type:"mouseDown",mode:null},n={type:"mouseUp",mode:null},q={type:"objectChange"};class p extends l.Object3D{constructor(r){super();this.camera= 2383r;this.visible=!1;this.ay=r=new m(this);this.add(r);this.Cg=r=new k(this);this.add(r);this.object=void 0;this.enabled=!0;this.axis=null;this.mode="translate";this.ik=!1;this.Mu=this.uka=this.eo=null;this.ula="world";this.size=1;this.WIa=this.VIa=this.UIa=!0;this.offset=new l.Vector3;this.oJa=new l.Vector3;this.rCa=new l.Vector3;this.xm=new l.Vector3;this.F8a=new l.Vector3;this.CGa=new l.Quaternion;this.Sja=new l.Quaternion;this.Tja=new l.Vector3;this.Bcb=new l.Vector3;this.G5=new l.Quaternion;this.Acb= 2384new l.Vector3;this.aka=new l.Vector3;this.yG=new l.Quaternion;this.yka=new l.Vector3;this.My=new l.Vector3;this.gH=new l.Vector3;this.hH=new l.Quaternion;this.dma=new l.Quaternion;this.Bc=new l.Vector3;this.zBa=new l.Quaternion;this.sy=new l.Vector3;this.qy=new l.Vector3;this.QB=new l.Vector3;this.rotationAngle=0;this.eye=new l.Vector3}updateMatrixWorld(r=!1){void 0!==this.object&&(this.object.updateMatrixWorld(),null===this.object.parent?console.error("TransformControls: The attached 3D object must be a part of the scene graph."): 2385this.object.parent.matrixWorld.decompose(this.F8a,this.CGa,this.Tja),this.object.matrixWorld.decompose(this.My,this.hH,this.Acb),this.Sja.copy(this.CGa).invert(),this.G5.copy(this.hH).invert());this.camera.updateMatrixWorld();this.camera.matrixWorld.decompose(this.Bc,this.zBa,this.xm);this.camera.isOrthographicCamera?this.camera.getWorldDirection(this.eye):this.eye.copy(this.Bc).sub(this.My).normalize();super.updateMatrixWorld(r)}N8a(r){if(void 0!==this.object&&!0!==this.ik&&null!==this.axis){if(r= 2386f(this.Cg,r,!0))this.object.updateMatrixWorld(),this.object.parent&&this.object.parent.updateMatrixWorld(),this.aka.copy(this.object.position),this.yG.copy(this.object.quaternion),this.yka.copy(this.object.scale),this.object.matrixWorld.decompose(this.gH,this.dma,this.Bcb),this.sy.copy(r.point).sub(this.gH);this.ik=!0;e.mode=this.mode;this.dispatchEvent(e)}}O8a(r){if(!1===this.ik){var t=f(this.ay.hs[this.mode],r);this.axis=t?t.object.name:null}else{t=this.axis;var u=this.mode,v=this.object,w=this.ula; 2387if("scale"===u)w="local";else if("E"===t||"XYZE"===t||"XYZ"===t)w="world";if(void 0!==v&&null!==t&&!1!==this.ik&&(r=f(this.Cg,r,!0))){this.qy.copy(r.point).sub(this.gH);if("translate"===u)this.offset.copy(this.qy).sub(this.sy),"local"===w&&"XYZ"!==t&&this.offset.applyQuaternion(this.G5),-1===t.indexOf("X")&&(this.offset.x=0),-1===t.indexOf("Y")&&(this.offset.y=0),-1===t.indexOf("Z")&&(this.offset.z=0),"local"===w&&"XYZ"!==t?this.offset.applyQuaternion(this.yG).divide(this.Tja):this.offset.applyQuaternion(this.Sja).divide(this.Tja), 2388v.position.copy(this.offset).add(this.aka),this.eo&&("local"===w&&(v.position.applyQuaternion(g.copy(this.yG).invert()),-1!==t.search("X")&&(v.position.x=Math.round(v.position.x/this.eo)*this.eo),-1!==t.search("Y")&&(v.position.y=Math.round(v.position.y/this.eo)*this.eo),-1!==t.search("Z")&&(v.position.z=Math.round(v.position.z/this.eo)*this.eo),v.position.applyQuaternion(this.yG)),"world"===w&&(v.parent&&v.position.add(c.setFromMatrixPosition(v.parent.matrixWorld)),-1!==t.search("X")&&(v.position.x= 2389Math.round(v.position.x/this.eo)*this.eo),-1!==t.search("Y")&&(v.position.y=Math.round(v.position.y/this.eo)*this.eo),-1!==t.search("Z")&&(v.position.z=Math.round(v.position.z/this.eo)*this.eo),v.parent&&v.position.sub(c.setFromMatrixPosition(v.parent.matrixWorld))));else if("scale"===u)-1!==t.search("XYZ")?(w=this.qy.length()/this.sy.length(),0>this.qy.dot(this.sy)&&(w*=-1),h.set(w,w,w)):(c.copy(this.sy),h.copy(this.qy),c.applyQuaternion(this.G5),h.applyQuaternion(this.G5),h.divide(c),-1===t.search("X")&& 2390(h.x=1),-1===t.search("Y")&&(h.y=1),-1===t.search("Z")&&(h.z=1)),v.scale.copy(this.yka).multiply(h),this.Mu&&(-1!==t.search("X")&&(v.scale.x=Math.round(v.scale.x/this.Mu)*this.Mu||this.Mu),-1!==t.search("Y")&&(v.scale.y=Math.round(v.scale.y/this.Mu)*this.Mu||this.Mu),-1!==t.search("Z")&&(v.scale.z
2390=Math.round(v.scale.z/this.Mu)*this.Mu||this.Mu));else if("rotate"===u){this.offset.copy(this.qy).sub(this.sy);u=20/this.My.distanceTo(c.setFromMatrixPosition(this.camera.matrixWorld));r=!1;if("XYZE"===t)this.QB.copy(this.offset).cross(this.eye).normalize(), 2391this.rotationAngle=this.offset.dot(c.copy(this.QB).cross(this.eye))*u;else if("X"===t||"Y"===t||"Z"===t)this.QB.copy(b[t]),c.copy(b[t]),"local"===w&&c.applyQuaternion(this.hH),c.cross(this.eye),0===c.length()?r=!0:this.rotationAngle=this.offset.dot(c.normalize())*u;if("E"===t||r)this.QB.copy(this.eye),this.rotationAngle=this.qy.angleTo(this.sy),this.oJa.copy(this.sy).normalize(),this.rCa.copy(this.qy).normalize(),this.rotationAngle*=0>this.rCa.cross(this.oJa).dot(this.eye)?1:-1;this.uka&&(this.rotationAngle= 2392Math.round(this.rotationAngle/this.uka)*this.uka);"local"===w&&"E"!==t&&"XYZE"!==t?(v.quaternion.copy(this.yG),v.quaternion.multiply(g.setFromAxisAngle(this.QB,this.rotationAngle)).normalize()):(this.QB.applyQuaternion(this.Sja),v.quaternion.copy(g.setFromAxisAngle(this.QB,this.rotationAngle)),v.quaternion.multiply(this.yG).normalize())}this.dispatchEvent(d);this.dispatchEvent(q)}}}P8a(){this.ik&&null!==this.axis&&(n.mode=this.mode,this.dispatchEvent(n));this.ik=!1;this.axis=null}dispose(){this.traverse(r=> 2393{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.ik&&(this.object.position.copy(this.aka),this.object.quaternion.copy(this.yG),this.object.scale.copy(this.yka),this.dispatchEvent(d),this.dispatchEvent(q),this.sy.copy(this.qy))}setSize(r){this.size=r}}return p}); 2394define("fC","require exports three.mod pw cI fS ma hn cv be".split(" "),function(a,f,l,m,k,c,h,g,b,d){function e(t){var u=this.getComponent(c.El),v=this.getComponent(c.Wg),w=u.v5;u=u.Hu;if(w&&u){var x=u.getComponent(c.Cc).SF;t.name==m.gb?(w.N8a(g.cha(r,w.camera,u)),x.unbind(m.ma,e,this),w.ik&&x.bind(m.ma,e,this,!0)):t.name==m.Eb?w.P8a(g.cha(r,w.camera,u)):t.name==m.Pb?(x.unbind(m.ma,e,this),w.O8a(g.cha(r,w.camera,u))):t.name==m.ma&&(u=n(v),w.mode=u[(u.indexOf(w.mode)+1)%u.length]);w.ik&&!this.getComponent(c.Tm)? 2395this.I(c.Tm):!w.ik&&this.getComponent(c.Tm)&&this.ha(c.Tm);if(v.N&&w.ik&&t.name==m.Pb){p.multiplyMatrices(w.object.parent.matrixWorld,q);t=v.N;v=t.trigger;u=m.ba;x=w.object.position;var y=w.object.quaternion;a:{w=w.object.scale;var z=Math.abs(w.x-w.y)+Math.abs(w.x-w.z),B=Math.abs(w.y-w.x)+Math.abs(w.y-w.z),E=Math.abs(w.z-w.x)+Math.abs(w.z-w.y);if(!(z>B&&z>E)){if(B>z&&B>E){w=w.y;break a}if(E>z&&E>B){w=w.z;break a}}w=w.x}v.call(t,new k(u,{position:x,quaternion:y,scale:w,matrix:q,matrixWorld:p}))}}} 2396function n(t){var u=[];t.translate&&u.push("translate");t.rotate&&u.push("rotate");t.scale&&u.push("scale");0==u.length&&u.push("translate");return u}a=function(t){function u(){var v=t.call(this)||this;v.Vb=v.Vb.bind(v);v.Ib=v.Ib.bind(v);v.jb=v.jb.bind(v);return v}Z(u,t);u.prototype.Tc=function(){this.PJa.u.length&&this.PJa.u.slice().forEach(this.Vb);this.QJa.u.length&&this.QJa.u.slice().forEach(this.jb);this.RJa.u.length&&this.RJa.u.slice().forEach(this.jb);this.OJa.u.length&&this.OJa.u.slice().forEach(this.Ib)}; 2397u.prototype.Vb=function(v){v.I(c.El)};u.prototype.Ib=function(v){this.pcb(v);this.us(v)};u.prototype.pcb=function(v){var w=v.getComponent(c.Object3D).qa,x=b.Cf(v),y=x&&b.tu(x),z=v.getComponent(c.Wg),B=v.getComponent(c.El).v5;B&&w&&B.camera===y&&B.parent===x||(B&&(B.object.parent.remove(B.object),B.detach(),B.dispose()),B=null,y&&w&&x&&(B=new d(y),B.attach(new l.Object3D),x.add(B)),v.J(c.El).v5=B);B&&w&&(w.parent!=B.object.parent&&(B.object.parent&&B.object.parent.remove(B.object),w.parent&&w.parent.add(B.object)), 2398v=n(z),-1==v.indexOf(B.mode)&&(B.mode=v[0]),B.object.matrix.copy(w.matrix),B.object.matrix.decompose(B.object.position,B.object.quaternion,B.object.scale))};u.prototype.us=function(v){var w=v.getComponent(c.El),x=this.J5a(v),y=x&&x.getComponent(c.Cc).SF||null,z=(w=w.Hu)&&w.getComponent(c.Cc).SF||null;x!=w&&(z&&(z.unbind(m.gb,e,v),z.unbind(m.Eb,e,v),z.unbind(m.Pb,e,v),z.unbind(m.ma,e,v)),v.J(c.El).ty=y)&&(y.bind(m.gb,e,v,!0),y.bind(m.Eb,e,v,!0),y.bind(m.Pb,e,v,!0));
2398x!=w&&(v.J(c.El).Hu=x)};u.prototype.J5a= 2399function(v){return this.Fj.u.reduce(function(w,x){if(x.P!==v.P)return w;if(!w)return x;var y=x.getComponent(c.Cc);return!w.getComponent(c.Cc).Zi&&y.Zi?x:w})};u.prototype.jb=function(v){var w=v.getComponent(c.El),x=w&&w.v5;x&&(x.object.parent.remove(x.object),x.detach(),x.dispose());if(w=w.ty)w.unbind(m.gb,e,v),w.unbind(m.Eb,e,v),w.unbind(m.Pb,e,v),w.unbind(m.ma,e,v);v.ha(c.El)};u.H={};return u}(h);var q=new l.Matrix4,p=new l.Matrix4,r=new l.Raycaster;a.H.Fj=[c.Cc];a.H.OJa=[c.Object3D,c.Wg,c.El];a.H.PJa= 2400[c.Object3D,c.Wg,c.El.not];a.H.QJa=[c.Object3D.not,c.El];a.H.RJa=[c.Wg.not,c.El];return a}); 2401define("gK",["require","pw","lt","cI","oR"],function(a){function f(h,g,b,d){this.ga=h;this.o=g;this.le=b;this.Ga=d;this.Vd=h.Db();this.Jf=this.o.get("currentTime");this.C=this.o.get("state");this.Hk=this.o.get("loop");this.o_=this.Vd.get("mute");this.aZ=this.o.get("mute");this.C=this.o.get("autoplay")?m.PLAYING:m.Qb;this.T7();this.o.set("state",this.C);this.ga.Sf(this.o_||this.aZ);this.ga.setLoop(this.Hk);this.ga.setCurrentTime(this.Jf);this.ga.Vc(this.C)}var l=a("pw"),m=a("lt"),k=a("cI"),c=a("oR"); 2402f.prototype.dispose=function(){this.Wda()};f.prototype.Qva=function(){var h=this.o.get("currentTime",0);this.Jf!=h&&this.ga.setCurrentTime(this.Jf=h)};f.prototype.Uva=function(){var h=this.o.get("state",m.V);this.C!=h&&this.ga.Vc(this.C=h)};f.prototype.Sva=function(){var h=this.o.get("mute",!1);this.aZ!=h&&this.ga.Sf(this.o_||(this.aZ=h))};f.prototype.Rva=function(){var h=this.o.get("loop",!1);this.Hk!=h&&this.ga.setLoop(this.Hk=h)};f.prototype.YP=function(){var h=this.Vd.get("mute",!1);this.o_!= 2403h&&this.ga.Sf((this.o_=h)||this.aZ)};f.prototype.eQ=function(){this.o.set("currentTime",this.Jf=this.ga.getCurrentTime())};f.prototype.cQ=function(){this.o.set("duration",this.ga.ui())};f.prototype.dQ=function(){this.o.set("state",this.C=this.ga.getState());this.Ga()};f.prototype.fQ=function(){this.le.trigger(new k(l.Gb))};f.prototype.T7=function(){this.Vd.bind(l.F("mute"),this.YP,this,!0);this.ga.bind(c.Tf,this.eQ,this,!0);this.ga.bind(c.dj,this.cQ,this,!0);this.ga.bind(l.ye,this.dQ,this,!0);this.ga.bind(l.Gb, 2404this.fQ,this,!0);this.o.bind(l.F("currentTime"),this.Qva,this,!0);this.o.bind(l.F("state"),this.Uva,this,!0);this.o.bind(l.F("mute"),this.Sva,this,!0);this.o.bind(l.F("loop"),this.Rva,this,!0)};f.prototype.Wda=function(){this.Vd.unbind(l.F("mute"),this.YP,this,!0);this.ga.unbind(c.Tf,this.eQ,this,!0);this.ga.unbind(c.dj,this.cQ,this,!0);this.ga.unbind(l.ye,this.dQ,this,!0);this.ga.unbind(l.Gb,this.fQ,this,!0);this.o.unbind(l.F("currentTime"),this.Qva,this,!0);this.o.unbind(l.F("state"),this.Uva,this, 2405!0);this.o.unbind(l.F("mute"),this.Sva,this,!0);this.o.unbind(l.F("loop"),this.Rva,this,!0)};return f}); 2406define("x","require pw lt iw cA lN eV gx w".split(" "),function(a){function f(e,n,q,p){this.qX=d.browser()==d.ys?THREE.LinearSRGBColorSpace:"srgb"==n.get("encoding","srgb")?THREE.SRGBColorSpace:THREE.LinearSRGBColorSpace;this.wq();this.ga=e;this.o=n;this.eb=q;this.Ga=p;this.LJ=this.eb.get("posterURL");this.GAa=this.eb.get("url");this.sa=this.eb.get("width");this.wa=this.eb.get("height");this.Zf=null;this.hF=this.iF=void 0;this.vta();this.eb.bind(l.F("posterURL"),this.Ova,this,!0);this.Ga();this.Da= 2407this.T=null}var l=a("pw"),m=a("lt"),k=a("iw"),c=a("cA"),h=a("lN"),g=a("eV"),b=a("gx"),d=a("w");f.prototype.update=function(){var e=this.ga.J2();e.isEmpty()&&(e=null);if(e&&(!this.Zf||this.Zf&&!this.Zf.isEqual(e))){this.Zf=e;e=this.Zf.ct;var n=b.DL(e);n&&(e.width=e.videoWidth||this.sa,e.height=e.videoHeight||this.wa);!this.T&&this.GAa&&b.zKa(this.GAa)&&(this.T=document.createElement("canvas"),this.T.width=this.sa,this.T.height=this.wa,this.Da=this.T.getContext("2d"));this.T&&n&&(this.Da.drawImage(e, 24080,0,this.T.width,this.T.height),e=this.T);this.tya(e)}else!this.Zf&&this.$w&&this.Ia.image!=this.$w&&this.tya(this.$w);(this.Ia.needsUpdate||this.ga.getState()==m.PLAYING)&&this.Ga()};f.prototype.Ova=function(){this.RZa(this.eb.get("posterURL"))};f.prototype.RZa=function(e){this.LJ!=e&&(this.Gza(),this.LJ=e,this.vta())};f.prototype.vta=function(){this.LJ&&(this.$w=null,this.KJ=new c,this.KJ.oM([this.LJ]),this.KJ.bind(l.da,this.Nva,this,!0),h.Yn(this.KJ,this.o.get("loadPriority",k.yl)))};f.prototype.Gza= 2409function(){this.LJ&&(this.KJ.unbind(l.da,this.Nva,this,!0),h.Hj(this.KJ,this.o.get("loadPriority",k.yl)),this.$w=this.KJ=null)};f.prototype.Nva=function(){this.$w=h.Af(this.LJ);
2409if(this.$w.width!=this.sa||this.$w.height!=this.wa){var e=document.createElement("canvas"),n=e.getContext("2d");e.width=this.sa;e.height=this.wa;n.drawImage(this.$w,0,0,this.sa,this.wa);this.$w=e}this.Ga()};f.prototype.tya=function(e){this.Ia&&this.iF==e.width&&this.hF==e.height?this.Ia.image=e:this.wq(e);this.Ia.needsUpdate= 2410!0};f.prototype.wq=function(e){this.gX();this.Ia=new THREE.Texture;this.Ia.image=e||g.aDa();this.iF=this.Ia.image.width;this.hF=this.Ia.image.height;this.Ia.generateMipmaps=!1;this.Ia.minFilter=THREE.LinearFilter;this.Ia.magFilter=THREE.LinearFilter;this.Ia.format=THREE.RGBAFormat};f.prototype.gX=function(){this.Ia&&(this.hF=this.iF=void 0,this.Ia.dispose(),this.Ia=null)};f.prototype.dispose=function(){this.Gza();this.eb.unbind(l.F("posterURL"),this.Ova,this,!0);this.Da=this.eb=null;this.T&&(this.T= 2411this.T.width=this.T.height=0);this.gX();this.Ga=this.jh=this.ga=null};f.prototype.W2=function(){return this.Ia};return f}); 2412define("ds","require exports ld pw iw cA lN three.mod".split(" "),function(a,f,l,m,k,c,h,g){var b=["alphaMap"];return function(){function d(e,n,q){this.N9a=function(p){this.J1!=p&&(this.dKa(),this.J1=p,this.F7a())};this.properties=e;this.level=n;this.Ta=q;this.W3=this.W3.bind(this);l.ea(this.level,b,this.W3,!0)}d.prototype.dispose=function(){l.ca(this.level,b,this.W3);this.dKa();this.B4a()};d.prototype.W2=function(){return this.texture};d.prototype.W3=function(){this.N9a(this.level.get("alphaMapURL"))}; 2413d.prototype.F7a=function(){this.J1&&(this.BF=new c,this.BF.oM([this.J1]),this.BF.bind(m.da,this.IFa,this,!0),h.Yn(this.BF,this.properties.get("loadPriority",k.yl)))};d.prototype.dKa=function(){this.BF&&(this.BF.unbind(m.da,this.IFa,this,!0),h.Hj(this.BF,this.properties.get("loadPriority",k.yl)),this.bBa=this.BF=null)};d.prototype.IFa=function(){this.bBa=h.Af(this.J1);this.createTexture();this.Ta()};d.prototype.createTexture=function(){this.texture=new g.Texture;this.texture.image=this.bBa;this.texture.generateMipmaps= 2414!1;this.texture.minFilter=g.LinearFilter;this.texture.magFilter=g.LinearFilter;this.texture.format=g.RGBAFormat;this.texture.needsUpdate=!0};d.prototype.B4a=function(){this.texture&&(this.texture.dispose(),this.texture=null)};return d}()}); 2415define("li",["require","w","gx"],function(a){a("w");var f=a("gx");return{ZKa:function(){this.blending=0;this.HL=void 0;this.YIa=this.threshold=0},OMa:function(){this.xL=!1;this.height=this.width=100},create:function(l,m,k){var c=l.xL&&f.iEa(),h=l.xL&&f.hEa(),g=void 0,b=!c,d={uniforms:{},transparent:!0};d.uniforms.text1={type:"sampler2D",value:null};d.uniforms.textAlpha={type:"sampler2D",value:null};d.uniforms.validTextAlpha={type:"bool",value:!1};d.uniforms.opacity={type:"float",value:1};d.vertexShader= 2416["varying vec2 vUV;\nvoid main() {","\tvUV = vec2( uv.x, "+(c?"1.0 - uv.y":"uv.y")+");","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}"].join("\n");if(h||m.blending||m.HL){c=[];var e=[];c=c.concat(["uniform sampler2D text1;","uniform sampler2D textAlpha;","uniform bool validTextAlpha;","uniform float opacity;","varying vec2 vUV;"]);e=e.concat([" vec4 color = texture2D(text1, vUV);"," float alpha = color.a * opacity;"," if (validTextAlpha)"," alpha *= texture2D(textAlpha, vUV).r;"]); 2417m.blending&&(g=.5*Math.min(l.width,l.height)*m.blending,d.uniforms.blendingLimit={type:"v2",value:new THREE.Vector2(g/l.width,g/l.height)},c=c.concat(["uniform vec2 blendingLimit;"]),e=e.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(","))); 2418m.HL&&(d.uniforms.chromaColor={type:"v3",value:new THREE.Vector3(parseInt(m.HL.substr(1,2),16)/255,parseInt(m.HL.substr(3,2),16)/255,parseInt(m.HL.substr(5,2),16)/255)},d.uniforms.chromaThreshold={type:"f",value:m.threshold},d.uniforms.chromaSmoothing={type:"f",value:m.YIa},c=c.concat(["uniform vec3 chromaColor;","uniform float chromaThreshold;","uniform float chromaSmoothing;"]),e=e.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("{"))); 2419e=e.concat(["\tgl_FragColor = vec4(color"+(h?".bgr":".rgb")+", alpha);"]);g=THREE.RGBAFormat;d.fragmentShader=[].concat(c,["void main() {"],e,[],["}"]).join("\n")}else d.fragmentShader="uniform sampler2D text1;\nuniform sampler2D textAlpha;\nuniform bool validTextAlpha;\nuniform float opacity;\nvarying vec2 vUV;\nvoid main() {\n vec4 color = texture2D(text1, vUV);\n float alpha = color.a * opacity;\n if (validTextAlpha)\n alpha *= 1.0 - texture2D(textAlp
2419ha, vUV).r;\n\tgl_FragColor = vec4(color.rgb, alpha);\n\n}"; 2420l=new THREE.ShaderMaterial(d);l.transparent=!0;l.depthWrite=!0;l.side=THREE.FrontSide;l.depthTest=!0;l.needsUpdate=!0;l.userData.JJa=b;l.userData.KJa=g;this.aV(l,k);return l},aV:function(l,m){l.uniforms.text1.value!==m&&(void 0!==l.userData.JJa&&(m.flipY=l.userData.JJa),void 0!==l.userData.KJa&&(m.format=l.userData.KJa),l.uniforms.text1.value=m)},Rbb:function(l,m){l.uniforms.textAlpha.value!==m&&(l.uniforms.textAlpha.value=m,l.uniforms.validTextAlpha.value=!!m)}}}); 2421define("bl","require ld pw lt gK x ds li gx fS kM oR".split(" "),function(a){function f(p){this.m=p;this.mZ=this.mZ.bind(this);p=p.getComponent(e.oo);this.le=p.N;this.o=p.properties;this.s1=p.$la;this.Vd=this.m.P.pp();this.Ga=this.Ga.bind(this);this.xg=!1;this.eb=null;l.ea(this.s1,["levels.url","levels.srcObject","levels.width","levels.height"],this.mZ,!0)}var l=a("ld"),m=a("pw"),k=a("lt"),c=a("gK"),h=a("x"),g=a("ds"),b=a("li"),d=a("gx"),e=a("fS"),n=a("kM"),q=a("oR");f.prototype.update=function(){this.xg&& 2422(this.xg=!1,this.fp.update(),b.aV(this.za,this.fp.W2()),b.Rbb(this.za,this.W7.W2()))};f.prototype.mZ=function(){this.UQ(q.kk(this.s1))};f.prototype.UQ=function(p){p=p&&(p.get("url")||p.get("srcObject"))?p:null;this.eb!=p&&(this.eb&&(this.FAa.dispose(),this.FAa=null,this.o.unbind(m.F("opacity"),this.Tva,this,!0),this.P9(),this.fp.dispose(),this.fp=null,this.W7.dispose(),this.W7=null,this.hRa(),this.xg=!1),this.eb=p)&&(this.SQa(),this.FAa=new c(this.ga,this.o,this.le,this.Ga),this.fp=new h(this.ga, 2423this.o,this.eb,this.Ga),this.W7=new g(this.o,this.eb,this.Ga),this.Wv(),this.o.bind(m.F("opacity"),this.Tva,this,!0),this.gya(this.Mb=this.o.get("opacity",1)),this.xg=!1,this.Ga())};f.prototype.Ga=function(){this.xg||(this.xg=!0,this.m.P.Ta())};f.prototype.SQa=function(){this.ga=new q(this.m.P.pp(),this.s1);this.pm=new n(this.o,this.ga)};f.prototype.hRa=function(){this.ga.Vc(k.V);this.ga.clear();this.ga=null;this.pm.clear();this.pm=null};f.prototype.Wv=function(){var p=new b.OMa;p.xL=!this.eb.get("srcObject")&& 2424d.xL(this.eb.get("url"));p.width=this.eb.get("width");p.height=this.eb.get("height");var r=new b.ZKa;r.blending=this.o.get("blending",0);r.HL=this.o.get("chromaColor");r.threshold=this.o.get("chromaThreshold",0);r.YIa=this.o.get("chromaSmoothing",0);this.za=b.create(p,r,this.fp.W2());this.m.I(e.Material).material=this.za};f.prototype.P9=function(){this.za.dispose();this.za=null;this.m.ha(e.Material)};f.prototype.dispose=function(){this.UQ(null);this.o.set("state",k.V);this.m=this.le=this.o=this.Vd= 2425null;l.ca(this.s1,["levels.url","levels.srcObject","levels.width","levels.height"],this.mZ)};f.prototype.Tva=function(){var p=this.o.get("opacity");this.Mb!=p&&(this.gya(this.Mb=p),this.Ga())};f.prototype.gya=function(p){this.za.opacity=p;this.za.isShaderMaterial&&this.za.uniforms.opacity&&(this.za.uniforms.opacity.value=p)};f.$a=function(p){p.I(e.nz).manager=new f(p)};f.Ca=function(p){var r=p.getComponent(e.nz);r.manager.dispose();r.manager=null;p.ha(e.nz)};f.update=function(p){p.getComponent(e.nz).manager.update()}; 2426return f});define("eI",["require","lQ","ma","fS","bl"],function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("bl");a=f.extend(l,function(){l.apply(this,arguments)});a.prototype.Tc=function(){this.Fm.u.length&&this.Fm.u.slice().forEach(k.$a);this.Gm.u.length&&this.Gm.u.slice().forEach(k.Ca);this.materials.u.length&&this.materials.u.slice().forEach(k.update)};a.H={};a.H.Fm=[m.oo,m.nz.not];a.H.materials=[m.oo,m.nz];a.H.Gm=[m.oo.not,m.nz];return a}); 2427define("pn",["require","lQ","ma","cv","fS"],function(a){var f=a("lQ"),l=a("ma"),m=a("cv"),k=a("fS");a=f.extend(l,function(){l.apply(this,arguments);this.Gea=this.Gea.bind(this);this.xK=this.xK.bind(this)});a.prototype.Tc=function(){this.ama.Kd.length&&this.ama.Kd.slice().forEach(this.Gea);this.tG.Ea.length&&this.tG.Ea.slice().forEach(this.xK);this.gs.Ea.length&&this.gs.Ea.slice().forEach(this.xK);this.tG.Kd.length&&this.tG.Kd.slice().forEach(this.xK);this.gs.Kd.length&&this.gs.Kd.slice().forEach(this.xK)}; 2428a.prototype.Gea=function(c){var h=c.getComponent(k.Xm),g=m.WS(h.La),b=g&&g.width||100;g=g&&g.height||100;if(h.width!=b||h.height!=g)h=c.J(k.Xm),h.width=b,h.height=g};a.prototype.xK=function(c){var h=m.WS(c);this.ama.u.forEach(function(g){if(g.getComponent(k.Xm).La==c){var b=g.getComponent(k.Xm);if(b.width!=h.width||b.height!=h.height)b=g.J(k.Xm),b.width=h.width,b.height=h.height}})};a.H={};a.H.ama=[k.Xm];
2428a.H.tG=[k.OrthographicCamera];a.H.gs=[k.PerspectiveCamera];return a}); 2429define("ek",["require"],function(){return{create:function(){var a=new THREE.BufferGeometry;a.setAttribute("position",new THREE.BufferAttribute(new Float32Array(18),3));a.setAttribute("normal",new THREE.BufferAttribute(new Float32Array(18),3));a.setAttribute("uv",new THREE.BufferAttribute(new Float32Array(12),2));a.setIndex(new THREE.BufferAttribute(new Uint32Array(6),1));return a},set:function(a,f,l,m,k,c,h,g,b,d,e,n,q,p,r){var t=a.getAttribute("position").array,u=a.getAttribute("normal").array,v= 2430a.getAttribute("uv").array,w=a.getIndex().array;t[9]=t[0]=f;t[10]=t[1]=l;t[11]=t[2]=m;v[6]=v[0]=k;v[7]=v[1]=c;t[3]=t[0]+e;t[4]=t[1]+n;t[5]=t[2]+q;v[2]=v[0];v[3]=v[1]+p;t[12]=t[6]=t[3]+h;t[13]=t[7]=t[4]+g;t[14]=t[8]=t[5]+b;v[8]=v[4]=v[2]+d;v[9]=v[5]=v[3];t[15]=t[12]-e;t[16]=t[13]-n;t[17]=t[14]-q;v[10]=v[8];v[11]=v[9]-p;f=g*q-b*n;b=b*e-h*q;h=h*n-g*e;g=1/Math.sqrt(f*f+b*b+h*h);u[0]=u[3]=u[6]=u[9]=u[12]=u[15]=f*g;u[1]=u[4]=u[7]=u[10]=u[13]=u[16]=b*g;u[2]=u[5]=u[8]=u[11]=u[14]=u[17]=h*g;w[0]=0;w[1]=2; 2431w[2]=1;w[3]=3;w[4]=5;w[5]=4;a.getAttribute("position").needsUpdate=!0;a.getAttribute("normal").needsUpdate=!0;a.getAttribute("uv").needsUpdate=!0;a.clearGroups();a.addGroup(0,6,r);a.computeBoundingBox();a.computeBoundingSphere();return a}}}); 2432define("pa",["require","pw","lT"],function(a){function f(k,c,h){this.Gq=k;this.o=c;this.raa=h;this.S_=this.S_.bind(this);this.UH=void 0;this.o.forEach(function(g){this.Gq.bind(l.F(g),this.BP,this,!0)}.bind(this));this.S_()}var l=a("pw"),m=a("lT");f.prototype.stop=function(){this.o.forEach(function(k){this.Gq.unbind(l.F(k),this.BP,this,!0)}.bind(this));this.UH&&(m.cancel(this.UH),this.UH=void 0)};f.prototype.BP=function(){this.UH||(this.UH=m.RB(this.S_))};f.prototype.S_=function(){this.UH=void 0;var k= 2433this.Gq;this.raa.apply(window,this.o.map(function(c){return k.get(c)}))};return f}); 2434define("fK","require lQ ma fS ek pa cv nA mI".split(" "),function(a){var f=a("lQ"),l=a("ma"),m=a("fS"),k=a("ek"),c=a("pa"),h=a("cv"),g=a("nA"),b=a("mI"),d=f.extend(l,function(){l.apply(this,arguments);this.Fea=this.Fea.bind(this);this.ega=this.ega.bind(this);this.ifa=this.ifa.bind(this)});d.prototype.Tc=function(){this.UT.u.length&&this.UT.u.slice().forEach(this.Fea);this.planes.Ea.length&&this.planes.Ea.slice().forEach(this.ega);this.JGa.u.length&&this.JGa.u.slice().forEach(this.ifa)};d.prototype.Fea= 2435function(e){var n=e.getComponent(m.oz),q=e.I(m.Xm);q.La=n.La;var p=h.WS(n.La);p&&(q.width=p.width,q.height=p.height);q=e.I(m.xv);q.geometry=k.create();q.fHa=new c(n.properties,"width height horizontalAlign verticalAlign scaleMode zIndex".split(" "),function(r,t,u,v,w,x){var y=e.J(m.xv);y.bJa=r;y.$Ia=t;y.jEa=u;y.verticalAlign=v;y.BHa=w;y.zIndex=x});e.I(m.Geometry).geometry=q.geometry};d.prototype.ifa=function(e){var n=e.getComponent(m.xv);n.geometry.dispose();n.geometry=null;n.fHa.stop();n.fHa=null; 2436e.ha(m.Geometry);e.ha(m.Xm);e.ha(m.xv)};d.prototype.ega=function(e){var n=e.getComponent(m.xv),q=e.getComponent(m.Xm),p=q.width,r=q.height,t=n.bJa,u=n.$Ia;switch(n.BHa){case b.NONE:q=t;var v=u;break;case b.Vp:q=p;v=u*p/t;break;case b.vk:v=r;q=t*r/u;break;case b.As:t*r>u*p?(v=r,q=t*r/u):(q=p,v=u*p/t);break;default:t*r>u*p?(q=p,v=u*p/t):(v=r,q=t*r/u)}switch(n.jEa){case g.ab:p=.5*-p;break;case g.tb:p=.5*p-q;break;default:p=.5*-q}switch(n.verticalAlign){case g.Ec:r=.5*r-v;break;case g.wc:r=.5*-r;break; 2437default:r=.5*-v}t=n.zIndex-d.QLa;k.set(n.geometry,p,r,0,0,0,q,0,0,1,0,v,0,1,0);e.J(m.va,!0).positionZ=t;e.P.Ta()};d.QLa=100;d.H={};d.H.UT=[m.oz,m.xv.not];d.H.planes=[m.oz,m.xv,m.Xm];d.H.JGa=[m.oz.not,m.xv];return d}); 2438define("jg","require cQ nG p nB iv hx ib iN hp lB gN il lV mH ng js pf gh ff hY f lA hy ht nq dr iW mJ lW fi oc hM iS lE eM hD fC eI pn fK".split(" "),function(a){var f=a("cQ"),l=a("nG"),m=a("p"),k=a("nB"),c=a("iv"),h=a("hx"),g=a("ib"),b=a("iN"),d=a("hp"),e=a("lB"),n=a("gN"),q=a("il"),p=a("lV"),r=a("mH"),t=a("ng"),u=a("js"),v=a("pf"),w=a("gh"),x=a("ff"),y=a("hY"),z=a("f"),B=a("lA"),E=a("hy"),I=a("ht"),A=a("nq"),C=a("dr"),J=a("iW"),D=a("mJ"),O=a("lW"),R=a("fi"),U=a("oc"),V=a("hM"),W=a("iS"),K=a("lE"), 2439M=a("eM"),S=a("hD"),X=a("fC"),ba=a("eI"),da=a("pn");a=a("fK");var ea={};ea.AmbientLight=f;ea.Animation=l;ea.Rm=m;ea.Vy=k;ea.Camera=c;ea.XKa=h;ea.pH=g;ea.gg=b;ea.DirectionalLight=d;ea.Tm=e;ea.Wp=n;ea.fv=q;ea.Ds=r;ea.Group=p;ea.Vm=t;ea.th=u;ea.Line=v;ea.Es=w;ea.Wh=x;ea.kv=y;ea.Mesh=z;ea.Vh=B;ea.eMa=E;ea.mb=A;ea.Plane=I;ea.Mj=C;ea.wk=J;ea.Wm=D;ea.zi=O;ea.Scene=R;ea.Selection=U;ea.kd=W;ea.Sphere=K;ea.SpotLight=V;ea.Sprite=M;ea.va=S;ea.Wg=X;ea.oo=ba;ea.Xm=da;ea.oz=a;return ea}); 2440define("ox",["require","w"],function(a){var f=a("w");return{MJa:function(l,m){m||(m="screenshot.jpg");a:{try{var k=l.toDataURL("image/jpeg");break a}catch(b){}k=void 0}if(!k)return!1;var c=k;l=document.createElement("a");if("string"===typeof l.download)document.body.appendChild(l),l.download=m,l.href=c,l.click(),document.body.removeChild(l);else if(f.browser()==f.Sy){l=window.navigator;k=l.msSaveOrOpenBlob;c=atob(c.split(",")[1]);for(var h=[],g=0;g<c.length;g++)h.push(c.charCodeAt(g));c=new Blob([new Uint8Array(h)], 2441{type:"image/jpeg"});k.call(l,c,m)}else window.location.replace(c);return!0}}}); 2442define("gE","require lQ pw e cl kG lI fS jg ox".split(" "),function(a){function f(p){return p.map(function(r){return String.fromCharCode(r)}).join("")}var l=a("lQ"),m=a("pw"),k=a("e"),c=a("cl"),h=a("kG"),g=a("lI"),b=a("fS"),d=a("jg"),e=a("ox");a=l.extend(k,function(p,r,t){k.call(this);this.Vd=p;this.M=r;this.C2a=t;this.Ix=(new g(p)).la(b.jH).la(b.AmbientLight).la(b.Qy).la(b.Animation).la(b.Su).la(b.lC).la(b.Rm).la(b.Ry).la(b.mC).la(b.Vy).la(b.Wy).la(b.io).la(b.Wu).la(b.gg).la(b.Xy).la(b.qH).la(b.Xu).la(b.pH).la(b.YKa).la(b.DirectionalLight).la(b.Np).la(b.av).la(b.Yy).la(b.Tm).la(b.EC).la(b.Bs).la(b.FC).la(b.gv).la(b.Wp).la(b.ev).la(b.fv).la(b.Cs).la(b.Geometry).la(b.Ds).la(b.dz).la(b.Group).la(b.vH).la(b.Vm).la(b.ez).la(b.Line).la(b.th).la(b.gz).la(b.Es).la(b.iz).la(b.hz).la(b.Material).la(b.Wh).la(b.jz).la(b.kv).la(b.$p).la(b.Mesh).la(b.Hs).la(b.Vh).la(b.lv).la(b.JC).la(b.aMa).la(b.aq).la(b.KC).la(b.Object3D).la(b.BH).la(b.mv).la(b.LC).la(b.nv).la(b.Orthogra
2442phicCamera).la(b.Is).la(b.PerspectiveCamera).la(b.Lj).la(b.mb).la(b.Js).la(b.Mj).la(b.NC).la(b.Plane).la(b.ov).la(b.Cc).la(b.pv).la(b.wk).la(b.Ks).la(b.qv).la(b.Wm).la(b.bq).la(b.kd).la(b.sv).la(b.va).la(b.SC).la(b.Wf).la(b.Wg).la(b.El).la(b.zi).la(b.Ls).la(b.Scene).la(b.lo).la(b.Qd).la(b.OC).la(b.Sphere).la(b.PC).la(b.SpotLight).la(b.Ns).la(b.Sprite).la(b.Os).la(b.kd).la(b.sv).la(b.vv).la(b.Qs).la(b.oo).la(b.nz).la(b.Xm).la(b.oz).la(b.xv).la(b.GH).la(b.xk).la(b.IH).la(b.iq).la(b.JH).la(b.jq).la(b.KH).la(b.kq).$c(d.Camera,"Camera").$c(d.Xm, 2443"Viewport").$c(d.Vm,"ImageMaterial").$c(d.gg,"CanvasMaterial").$c(d.th,"LineMaterial").$c(d.kd,"SolidMaterial").$c(d.oo,"VideoMaterial").$c(d.kv,"MaterialVariant").$c(d.oz,"ViewportPlaneGeometry").$c(d.Ds,"Grid").$c(d.Group,"Group").$c(d.Line,"Line").$c(d.Mesh,"Mesh").$c(d.Plane,"Plane").$c(d.Wp,"Floor").$c(d.Sphere,"Sphere").$c(d.Sprite,"Sprite").$c(d.Vh,"Model").$c(d.Wm,"ProjectedMaterial").$c(d.AmbientLight,"AmbientLight").$c(d.DirectionalLight,"DirectionalLight").$c(d.SpotLight,"SpotLight").$c(d.Scene, 2444"Scene").$c(d.mb,"Parent").$c(d.eMa,"ObjectId").$c(d.Animation,"Animation").$c(d.pH,"CameraOffsetTransform").$c(d.Wh,"ObjectTransform").$c(d.fv,"FloorTransform").$c(d.XKa,"CameraControls").$c(d.Tm,"Dragging").$c(d.Selection,"Selection").$c(d.wk,"PointerOverTransform").$c(d.Mj,"PixelScaleTransform").$c(d.va,"Transform").$c(d.Wg,"TransformControls").$c(d.Rm,"Area").$c(d.Es,"LineToTransform").$c(d.Camera.kH,"CameraAutoNearFar").$c(d.Scene.zV,"SceneFade").$c(d.Vy,"Beacon").$c(d.zi,"Renderer");this.j= 2445this.Ix.Pc("Renderer");this.VE=[];this.Lea=!1;this.jO=new h;this.Yb().append(this.jO.gd());this.bind(m.jd,this.sj,this,!0);this.bind(m.ad,this.rj,this,!0)});a.prototype.Pc=function(p){return this.Ix.Pc(p)};a.prototype.Nd=function(p){this.Ix.Nd(p)};a.prototype.Ta=function(){this.Ix.Ta()};a.prototype.YAa=function(p){!(0<=this.VE.indexOf(p))&&(this.VE.push(p),p=this.j.J(b.zi))&&(p.oU=this.VE.slice())};a.prototype.s9a=function(p){p=this.VE.indexOf(p);!(0>p)&&(this.VE.splice(p,1),p=this.j.J(b.zi))&&(p.oU= 2446this.VE.slice())};a.prototype.K4=function(p){this.Ix.K4(p)};a.prototype.qb=function(p){this.Ix.qb(p)};a.prototype.FG=function(){this.jO.trigger();this.Ix.update();return e.MJa(this.j.getComponent(b.zi).renderer.domElement)};a.prototype.qha=function(){this.Ix.update();return this.j.getComponent(b.zi).renderer.domElement.toDataURL("image/png")};a.prototype.sj=function(){this.n_a()};a.prototype.rj=function(){this.g0a()};a.prototype.n_a=function(){var p=this.j.getComponent(b.zi);if(!p&&(p=this.j.I(b.zi), 2447p.vc=this.M,p.oU=this.VE.slice(),this.Vd.get(n)&&this.C2a)){this.cS=document.createElement("div");for(var r in q)this.cS.style[r]=q[r];this.Yb().$ga(this.cS)}};a.prototype.g0a=function(){this.j.getComponent(b.zi)&&(this.cS&&this.Yb().h9a(this.cS),this.cS=null,this.j.ha(b.zi))};var n=f([119,97,116,101,114,109,97,114,107]),q={};q[f([104,101,105,103,104,116])]=f([49,48,48,37]);q[f([119,105,100,116,104])]=f([49,48,48,37]);q[f([112,111,115,105,116,105,111,110])]=f([97,98,115,111,108,117,116,101]);q[f([116, 2448111,112])]=0;q[f([108,101,102,116])]=0;q[f([98,97,99,107,103,114,111,117,110,100,73,109,97,103,101])]=f([117,114,108,40,34])+c.PMa+f([34,41]);q[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]);q[f([98,97,99,107,103,114,111,117,110,100,83,105,122,101])]=f([99,111,110,116,97,105,110]);q[f([112,111,105,110,116,101,114,69,118,101,110,116,115])]=f([110,111,110,101]);q[f([98,97,99,107,103,114,111,117,110,100,82,101,112,101,97,116])]=f([110,111,45,114, 2449101,112,101,97,116]);q[f([111,112,97,99,105,116,121])]=.5;return a}); 2450define("eY","require exports ld pw oj fS oQ".split(" "),function(a,f,l,m,k,c,h){var g=["autoNearFar","autoNearFarTolerance","near","far","userInteracting"],b=["inTransition"],d={OrbitModel3DCamera:c.LC,FirstPersonModel3DCamera:c.EC,FlyOverModel3DCamera:c.FC},e={FirstPersonModel3DCamera:c.KH,OrbitModel3DCamera:c.IH,FlyOverModel3DCamera:c.JH};return function(){function n(q,p,r){this.renderer=q;this.model=p;this.La=r;this.vc=this.renderer.M;this.camera=null;this.mg=this.mg.bind(this);this.T3=this.T3.bind(this);
2451this.renderer.bind(m.tc,this.pG,this,!0);this.model.bind(m.F("camera"),this.Gja,this,!0);this.vc.bind(m.F("isKeyboardTarget"),this.Ija,this,!0);h.N.bind(m.ba,this.xe,this,!0);this.Gja();this.xe();this.Ija();this.pG()}n.prototype.Ou=function(q){for(var p in d){var r=this.La.J(d[p]);r&&(r.locked=q)}for(p in e)if(r=this.La.J(e[p]))r.locked=q};n.prototype.qb=function(q){for(var p in d){var r=this.La.J(d[p]);r&&(r.enabled=q)}};n.prototype.dispose=function(){this.setCamera(null);this.model.unbind(m.F("camera"), 2452this.Gja,this);this.vc.unbind(m.F("isKeyboardTarget"),this.Ija,this);this.renderer.unbind(m.tc,this.pG,this);h.N.unbind(m.ba,this.xe,this)};n.prototype.xe=function(){this.La.J(c.PerspectiveCamera,!0).ll=h.mh==this.vc.Od().Ur()};n.prototype.Gja=function(){this.setCamera(this.model.get("camera"))};n.prototype.setCamera=function(q){if(this.camera!==q){this.camera&&(this.aC(!1),l.ca(this.camera,g,this.mg),l.ca(this.camera,b,this.T3),this.camera.set("inTransition",!1));if(this.camera=q)l.ea(this.camera, 2453g,this.mg,!0),l.ea(this.camera,b,this.T3,!0),this.h3a(),this.La.J(c.qH,!0).properties=this.camera;this.iKa()}};n.prototype.iKa=function(){var q,p,r,t=!!this.camera&&this.camera.get("inTransition");t?r=this.La.J(c.vv,!0):this.La.ha(c.vv);for(var u in d){var v=d[u];!t&&this.camera&&k.Ja(u,this.camera)?q=this.La.J(v,!0):this.La.ha(v);(v=e[u])&&(!t&&this.camera&&k.Ja(u,this.camera)?p=this.La.J(v,!0):this.La.ha(v))}q&&(q.properties=this.camera,q.zg=this.renderer.getParent(),q.EHa=this.vc.UO,q.wB=this.vc.get("isKeyboardTarget")); 2454r&&(r.properties=this.camera,r.fg=this.model.get("worldUnitToMeters"));p&&(p.properties=this.camera,p.fg=this.model.get("worldUnitToMeters"),p.qk=this.vc.get("vrThumbstickRotationStep"))};n.prototype.Ija=function(){var q=this.m5a();q&&(q.wB=this.vc.get("isKeyboardTarget"))};n.prototype.m5a=function(){if(!this.camera)return null;var q=null,p;for(p in d){var r=d[p];this.camera&&k.Ja(p,this.camera)&&(q=this.La.J(r,!0))}return q};n.prototype.mg=function(){if(this.camera){var q=this.La.J(c.PerspectiveCamera, 2455!0);q.lBa=this.camera.get("autoNearFar");q.mBa=this.camera.get("autoNearFarTolerance");q.near=this.camera.get("near");q.far=this.camera.get("far");this.aC(this.camera.get("userInteracting"))}};n.prototype.T3=function(){this.iKa()};n.prototype.pG=function(){var q=this.La.J(c.PerspectiveCamera,!0);q.width=this.renderer.zf();q.height=this.renderer.yf()};n.prototype.h3a=function(){var q=this.camera;q.set("fov",q.get("initialFov"));q.set("x",q.get("initialX"));q.set("y",q.get("initialY"));q.set("z",q.get("initialZ")); 2456q.set("distance",q.get("initialDistance",0));q.set("yaw",q.get("initialYaw"));q.set("pitch",q.get("initialPitch"))};n.prototype.aC=function(q){this.fC!=q&&(this.fC=q,this.camera&&this.camera.trigger(this.fC?m.Una:m.Tna))};return n}()});define("jc",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("OrbitLight",f,function(){f.call(this)})}); 2457define("ou",["require","exports","ld"],function(a,f,l){return function(){function m(){this.NT=this.NT.bind(this);this.y4=this.object=null;this.elements=[];this.JS=new Map;this.TGa=this.og=this.Kd=this.filter=null}m.prototype.UG=function(k,c){this.dispose();this.object=k;this.y4=c;l.ea(this.object,[this.y4],this.NT,!0)};m.prototype.NT=function(k){k=k||[];this.filter&&(k=k.filter(this.filter));var c=this.elements,h=this.elements=k;
2457c.forEach(function(g,b){var d=h.indexOf(g);if(-1==d){var e=this.JS.get(g); 2458this.JS["delete"](g);this.og&&this.og(g,e)}else d!=b&&(e=this.JS.get(g),this.TGa&&(b=this.TGa(g,d,e,b),b!=e&&this.JS.set(g,b)))}.bind(this));h.forEach(function(g,b){-1==c.indexOf(g)&&this.Kd&&(b=this.Kd(g,b),this.JS.set(g,b))}.bind(this))};m.prototype.dispose=function(){this.object&&(l.ca(this.object,[this.y4],this.NT),this.NT([]),this.y4=this.object=null)};return m}()}); 2459define("mK",["require","exports","ld","fS"],function(a,f,l,m){var k=["color","intensity"];return function(){function c(h,g,b,d,e){this.mg=this.mg.bind(this);this.object=h;this.model=g;this.sc=b;this.Ge=d;this.La=e;this.G=b.P.Pc("AmbientLight");this.G.I(m.AmbientLight);this.G.I(m.mb).G=this.Ge;l.ea(this.object,k,this.mg,!0)}c.prototype.dispose=function(){l.ca(this.object,k,this.mg);this.G&&(this.G.P.Nd(this.G),this.G=null)};c.prototype.mg=function(){var h=this.G.J(m.AmbientLight);h.color=this.object.get("color"); 2460h.intensity=this.object.get("intensity")};return c}()}); 2461define("eD","require exports three.mod ld pw gD fS".split(" "),function(a,f,l,m,k,c,h){a=function(){function p(r,t,u,v,w){this.mg=this.mg.bind(this);this.object=r;this.model=t;this.sc=u;this.Ge=v;this.La=w;this.G=this.sc.P.Pc("OrbitLight");this.G.I(h.DirectionalLight).target=this.sc;this.G.I(h.mb);r=this.G.I(h.va);r.Ee="YXZ";r.positionZ=10;this.EG=null;m.ea(this.object,g,this.mg,!0)}p.prototype.dispose=function(){m.ca(this.object,g,this.mg);this.G&&(this.G.P.Nd(this.G),this.G=null);this.EG&&(this.EG.dispose(), 2462this.EG=null)};p.prototype.mg=function(){var r=this.G.J(h.DirectionalLight);r.castShadow=this.object.get("castShadow");r.color=this.object.get("color");r.FS=this.object.get("displayHelper");r.intensity=this.object.get("intensity");r.mode=this.object.get("mode");var t="fixed_to_target"==this.object.get("mode")?this.Ge:this.La;this.G.getComponent(h.mb).G!=t&&(this.G.J(h.mb).G=t);t=this.object.get("yaw");var u=-this.object.get("pitch"),v=this.G.getComponent(h.va);if(v.Pd!=u||v.ud!=t)v=this.G.J(h.va), 2463v.Pd=u,v.ud=t;r.ola=this.object.get("shadowBias");r.qla=this.object.get("shadowRadius");r.pla=this.object.get("shadowMapSize");r.Sab=this.object.get("shadowTolerance");this.object.get("rotationDraggable")!=!!this.EG&&(this.object.get("rotationDraggable")?this.EG=new b(this.object,this.model,this.sc):(this.EG.dispose(),this.EG=null))};return p}();var g="castShadow color displayHelper intensity mode pitch yaw rotationDraggable shadowBias shadowRadius shadowMapSize shadowTolerance".split(" "),b=function(){function p(r, 2464t,u){this.SL=this.SL.bind(this);this.object=r;this.model=t;this.sc=u;this.N=new c;this.N.bind(k.ba,this.pl,this,!0);this.Eu=this.sc.P.Pc("OrbitLightTransformControls");this.Eu.I(h.va).Ee="YXZ";this.Eu.I(h.Group);this.Eu.I(h.mb).G=this.sc;this.by=this.sc.P.Pc("OrbitLightTransformControlsInner");this.by.I(h.va).Ee="YXZ";this.by.I(h.Group);this.by.I(h.mb).G=this.Eu;r=this.by.I(h.Wg);r.translate=!1;r.rotate=!0;r.scale=!1;r.N=this.N;m.ea(this.object,d,this.SL,!0);m.ea(this.model,e,this.SL,!0)}p.prototype.dispose= 2465function(){m.ca(this.object,d,this.SL);m.ca(this.model,e,this.SL);this.Eu&&(this.Eu.P.Nd(this.Eu),this.Eu=null);this.by&&(this.by.P.Nd(this.by),this.by=null)};p.prototype.SL=function(){if("fixed_to_target"==this.object.get("mode")){var r=this.Eu.J(h.va);r.ud=0;r.Pd=0}else r=this.Eu.J(h.va),r.ud=-this.model.get("camera").get("yaw"),r.Pd=this.model.get("camera").get("pitch");r.Fe=0;r=this.by.J(h.va);r.ud=this.object.get("yaw");r.Pd=-this.object.get("pitch");r.Fe=0};p.prototype.pl=function(r){n.setFromQuaternion(r.data.quaternion, 2466"YXZ");this.object.set({yaw:n.y*q,pitch:-n.x*q});this.object.trigger(k.Cl)};return p}(),d=["mode","yaw","pitch"],e=["camera.yaw","camera.pitch"],n=new l.Euler,q=180/Math.PI;return a}); 2467define("fO","require exports three.mod ld pw gD fS".split(" "),function(a,f,l,m,k,c,h){a=function(){function e(n,q,p,r,t){this.mg=this.mg.bind(this);this.object=n;this.model=q;this.sc=p;this.Ge=r;this.La=t;this.G=p.P.Pc("SpotLight");this.G.I(h.SpotLight);this.G.I(h.mb).G=this.Ge;this.G.I(h.va).Ee="YXZ";this.Jp=new c;this.Jp.bind(k.ba,this.pl,this,!0);m.ea(this.object,g,this.mg,!0)}e.prototype.dispose=function(){m.ca(this.object,g,this.mg);this.G.P.Nd(this.G);this.G=null};e.prototype.mg=function(){var n= 2468this.G.J(h.SpotLight);n.color=this.object.get("color");n.intensity=this.object.get("intensity");n.distance=this.object.get("distance");n.FS=this.object.get("displayHelper");n.angle=this.object.get("angle");n.penumbra=this.object.get("penumbra");n.decay=this.object.get("decay");n.castShadow=this.object.get("castShadow");n.pla=this.object.get("shadowMapSize");n.ola=this.object.get("shadowBias");n.qla=this.object.get("shadowRadius");n=this.object.get("yaw");var q=-this.object.get("pitch"),p=this.G.getComponent(h.va); 2469if(p.Pd!=q||p.ud!=n||p.positionX!=this.object.get("x")||p.positionY!=this.object.get("y")||p.positionZ!=this.object.get("z"))p=this.G.J(h.va),p.Pd=q,p.ud=n,p.translationX=this.object.get("x"),p.translationY=this.object.get("y"),p.He=this.object.get("z");this.object.get("rotationDraggable")||this.object.get("positionDraggable")?(n=this.G.J(h.Wg,!0),n.N=this.Jp,n.rotate=this.object.get("rotationDraggable"),n.translate=this.object.get("positionDraggable"),n.scale=!1):this.G.ha(h.Wg)};e.prototype.pl= 2470function(n){b.setFromQuaternion(n.data.quaternion,"YXZ");this.object.set({x:n.data.position.x,y:n.data.position.y,z:n.data.position.z,yaw:b.y*d,pitch:-b.x*d});this.object.trigger(k.Cl)};return e}();var g="color intensity distance angle penumbra displayHelper decay castShadow shadowMapSize shadowBias shadowRadius x y z pitch yaw rotationDraggable positionDraggable".split(" "),b=new l.Euler,d=180/Math.PI;return a}); 2471define("nm","require exports oj mK eD fO".split(" "),function(a,f,l,m,k,c){return function(){function h(){}
2471h.yha=function(g,b,d,e,n){return l.Ja("AmbientLight",g)?new m(g,b,d,e,n):l.Ja("OrbitLight",g)?new k(g,b,d,e,n):l.Ja("SpotLight",g)?new c(g,b,d,e,n):null};return h}()}); 2472define("nb","require exports w jc ou nm".split(" "),function(a,f,l,m,k,c){return function(){function h(g,b,d,e){this.Qha=this.Rx=null;this.model=g;this.sc=b;this.Ge=d;this.La=e;this.B3=new k;this.B3.Kd=this.OFa.bind(this);this.B3.og=this.PFa.bind(this);this.B3.UG(this.model,"lights");this.f3a()}h.prototype.dispose=function(){this.B3.dispose();this.p9a()};h.prototype.OFa=function(g){return c.yha(g,this.model,this.sc,this.Ge,this.La)};h.prototype.PFa=function(g,b){b.dispose()};h.prototype.f3a=function(){var g, 2473b,d,e;l.Df()&&this.model.get("backgroundPanoramaURL")&&(this.Rx=new m,null===(g=this.Rx)||void 0===g?void 0:g.set("intensity",.001),null===(b=this.Rx)||void 0===b?void 0:b.set("castShadow",!0),null===(d=this.Rx)||void 0===d?void 0:d.set("shadowMapWidth",64),null===(e=this.Rx)||void 0===e?void 0:e.set("shadowTolerance",4),this.Qha=this.OFa(this.Rx))};h.prototype.p9a=function(){this.Rx&&(this.PFa(this.Rx,this.Qha),this.Qha=this.Rx=null)};return h}()}); 2474define("j",["require","exports","ld","fS"],function(a,f,l,m){var k=["floorColor","floorHeight","floorOpacity","floorRadius"];return function(){function c(h,g,b){this.model=h;this.object=g;this.sc=b;this.mg=this.mg.bind(this);this.G=b.P.Pc("Floor");this.G.I(m.Wp);this.G.I(m.mb).G=this.sc;l.ea(this.object,k,this.mg,!0)}c.prototype.dispose=function(){l.ca(this.object,k,this.mg);this.G.P.Nd(this.G);this.G=null};c.prototype.mg=function(){var h=this.object.get("floorColor"),g=this.object.get("floorOpacity"), 2475b=this.object.get("floorHeight"),d=this.object.get("floorRadius");if(h&&0<g){var e=this.G.J(m.Wp,!0);e.color=h;e.opacity=g;e.height=b;e.radius=d;e.renderOrder=this.model==this.object?-1:0}else this.G.ha(m.Wp)};return c}()}); 2476define("ge",["require","exports","oj"],function(a,f,l){return function(){function m(){}m.Ju=function(k,c){m.E1[k]=c};m.o6a=function(k){for(var c in m.E1)if(l.Ja(c,k))return!0;return!1};m.yha=function(k,c,h,g,b){for(var d in m.E1)if(l.Ja(d,k))return new m.E1[d](k,c,h,g,b);return null};m.E1={};return m}()}); 2477define("pU",["require","exports","ou","ge"],function(a,f,l,m){return function(){function k(c,h,g,b,d){this.E9a=c;this.model=h;this.sc=g;this.rja=b;this.renderer=d;this.filter=this.filter.bind(this);this.Kd=this.Kd.bind(this);this.og=this.og.bind(this);this.lG=new l;this.lG.filter=this.filter;this.lG.Kd=this.Kd;this.lG.og=this.og;this.lG.UG(this.model,"objects")}k.prototype.filter=function(c){return m.o6a(c)?!0:!1};k.prototype.Kd=function(c){return m.yha(c,this.E9a,this.sc,this.rja,this.renderer)}; 2478k.prototype.og=function(c,h){h.dispose()};k.prototype.dispose=function(){this.lG.dispose()};return k}()}); 2479define("H",["require","exports","pw","oj"],function(a,f,l,m){return function(){function k(c,h){this.mP=c.mP;this.ia=h;this.ak=[];this.mP.bind(l.F("spritesEnabled"),this.gwa,this,!0);this.ia.bind(l.F("objects"),this.AE,this,!0);this.oa()}k.prototype.dispose=function(){this.mP.unbind(l.F("spritesEnabled"),this.gwa,this);this.ia.unbind(l.F("objects"),this.AE,this);this.ak.forEach(function(c){c.Qka(!1)});this.ak=[]};k.prototype.gwa=function(){this.oa()};k.prototype.AE=function(){this.oa()};k.prototype.oa= 2480function(){var c=[];!1===this.mP.get("spritesEnabled")&&c.push("SpriteModel3DObject");var h=this.ia.get("objects");this.ak.forEach(function(g){-1==h.indexOf(g)&&g.Qka(!1)});this.ak=h;this.ak.forEach(function(g){var b=c.some(function(d){return m.Ja(d,g)});g.Qka(b)})};return k}()}); 2481define("bx",["require","exports","ld"],function(a,f,l){var m=["camera","objects","postprocessing"],k=["userInteracting","moving"];return function(){function c(h){this.model=h;this.camera=null;this.vi=[];this.nG=this.nG.bind(this);this.Q3=this.Q3.bind(this);l.ea(this.model,m,this.nG,!0)}c.prototype.dispose=function(){this.WB([])};c.prototype.nG=function(){this.setCamera(this.model.get("camera"));this.WB([].concat(this.model.get("objects"),this.model.get("postprocessing")))};c.prototype.setCamera=function(h){this.camera!== 2482h&&(this.camera&&l.ca(this.camera,k,this.Q3),(this.camera=h)&&l.ea(this.camera,k,this.Q3,!0))};c.prototype.Q3=function(){this.BM()};c.prototype.WB=function(h){this.vi!=h&&(h||(h=[]),this.vi&&this.vi.forEac
2482h(function(g){-1==h.indexOf(g)&&(g.aC&&g.aC(!1),g.bo&&g.bo(!1))}.bind(this)),this.vi=h,this.BM())};c.prototype.BM=function(){if(this.vi&&this.camera){var h=this.camera.get("userInteracting"),g=this.camera.get("moving");this.vi.forEach(function(b){b.aC&&b.aC(h);b.bo&&b.bo(g)}.bind(this))}};return c}()}); 2483define("dx",["require","exports","ld","pw","oQ"],function(a,f,l,m,k){var c=["objects"];return function(){function h(g){this.model=g;this.vi=[];this.nG=this.nG.bind(this);k.N.bind(m.ba,this.BM,this,!0);l.ea(this.model,c,this.nG,!0)}h.prototype.dispose=function(){k.N.unbind(m.ba,this.BM,this);this.WB([])};h.prototype.nG=function(){this.WB([].concat(this.model.get("objects")))};h.prototype.WB=function(g){this.vi!=g&&(g||(g=[]),this.vi&&this.vi.forEach(function(b){-1==g.indexOf(b)&&(b.L4&&b.L4(!0),b.Ay&& 2484b.Ay(!1))}.bind(this)),this.vi=g,this.BM())};h.prototype.BM=function(){if(this.vi){var g=!k.isPresenting,b=k.isPresenting;this.vi.forEach(function(d){d.L4&&d.L4(g);d.Ay&&d.Ay(b)}.bind(this))}};return h}()}); 2485define("nU","require exports ld fS j pU H bx dx".split(" "),function(a,f,l,m,k,c,h,g,b){var d=["variant"];return function(){function e(n,q,p,r){this.object=n;this.model=q;this.UL=p;this.renderer=r;this.h4=this.h4.bind(this);this.G=this.UL.P.Pc("Model");n=this.G.I(m.Vh);this.HF=n.HF=this.UL.P.Pc("ModelContent");this.HF.I(m.mb).G=this.G;n.N=this.object;this.object.get("preload")&&(n.WGa=this.model.S2().iu());n.vp=this.model.P2().iu();n.sja=this.object.get("model");n.properties=this.object;n.vc=this.renderer.M; 2486n=this.G.I(m.Qd);n.N=this.object;n.Nx=!0;n.xy=!0;this.G.I(m.mb).G=this.UL;this.G.I(m.va);l.ea(this.object,d,this.h4,!0);this.lG=new c(this.model,this.object,this.G,this.HF,this.renderer);this.abb=new h(this.renderer,this.object);this.rcb=new g(this.model);this.Dcb=new b(this.model);this.T4a=new k(this.model,this.object,this.G)}e.prototype.nu=function(){return this.G};e.prototype.dispose=function(){l.ca(this.object,d,this.h4);this.G.P.Nd(this.HF);this.G.P.Nd(this.G);this.lG.dispose();this.abb.dispose(); 2487this.rcb.dispose();this.Dcb.dispose();this.T4a.dispose()};e.prototype.h4=function(){var n=this.object.get("variant");n?this.G.J(m.kv,!0).name=n:this.G.ha(m.kv)};return e}()}); 2488define("eg","require exports ld pw iw fS three.mod".split(" "),function(a,f,l,m,k,c,h){var g=["collidable"],b=["image"],d=["color","depthTest","opacity","width"],e=["parentId"],n=["maxWorldToPixelScale","minWorldToPixelScale","scale"],q="x y z normalX normalY normalZ upX upY upZ width height attachToParent".split(" "),p=new h.Matrix4,r=new h.Vector3,t=new h.Vector3,u=new h.Vector3,v=new h.Euler,w=180/Math.PI,x="x y z positionX positionY positionZ rotationX rotationY rotationZ scale translationX translationY translationZ attachToParent".split(" "), 2489y=["clickEnabled","rollOverEnabled","transparentAreaActive","useHandCursor"],z=["castShadow","receiveShadow"],B=["color","depthTest","hidden","opacity"],E=["video"],I=["hidden","enabled","opacity"];return{MM:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);l.ea(this.object,g,this.JFa||(this.JFa=this.T7a.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object,g,this.JFa);C.prototype.fd.call(this)}; 2490J.prototype.T7a=function(){this.object.get("collidable")?this.G.ha(c.JC):this.G.I(c.JC)};return J}(A)},Vm:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);this.vp=this.model.P2().iu(.1);this.object.get("preload")&&this.model.S2().JK(this.vp,.1);var D=this.G.I(c.Vm);D.properties=this.object;D.N=this.object;D.isSprite=!1;D.priority=this.object.get("preload")?k.HC:k.Rma;D.vp=this.vp;l.ea(this.object, 2491b,this.NFa||(this.NFa=this.c8a.bind(this)),!0)};J.prototype.fd=function(){this.model.P2().cM(this.vp);this.model.S2().cM(this.vp);l.ca(this.object,b,this.NFa);C.prototype.fd.call(this)};J.prototype.c8a=function(){this.G.J(c.Vm).Kia=this.object.get("image")};return J}(A)},th:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);this.G.I(c.th);l.ea(this.object,d,this.QFa||(this.QFa=this.e8a.bind(this)),!0)}; 2492J.prototype.fd=function(){l.ca(this.object,d,this.QFa);C.prototype.fd.call(this)};J.prototype.e8a=function(){var D=this.G.J(c.th);D.color=this.object.get("color");D.opacity=this.object.get("opacity");D.depthTest=this.object.get("depthTest");D.width=this.object.get("width")};return J}(A)},Plane:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);this.G.I(c.Plane);this.G.I(c.va);l.ea(this.object,q,this.eGa|| 2493(this.eGa=this.k8a.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object,q,this.eGa);C.prototype.fd.call(this)};J.prototype.k8a=function(){r.set(0,0,0);u.set(this.object.get("upX",0),this.object.get("upY",1),this.object.get("upZ",0));t.set(this.object.get("normalX",0),this.object.get("normalY",0),this.object.get("normalZ",1)).multiplyScalar(-1);p.lookAt(r,t,u);v.setFromRotationMatrix(p);var D=this.G.J(c.va);D.Kx=this.object.get("attachToParent");D.translationX=this.object.get("x",0);D.translationY= 2494this.object.get("y",0);D.He=this.object.get("z",0);D.qf=this.object.get("width",1);D.Ff=this.object.get("height",1);D.Pd=v.x*w;D.ud=v.y*w;D.Fe=v.z*w;D.positionX=0;D.positionY=0;D.positionZ=0};return J}(A)},mb:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);this.G.I(c.mb).G=this.sc;l.ea(this.object,e,this.bGa||(this.bGa=this.i8a.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object,e,this.bGa); 2495C.prototype.fd.call(this)};
2495J.prototype.i8a=function(){this.G.J(c.mb).id=this.object.get("parentId")};return J}(A)},qMa:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);l.ea(this.object,n,this.dGa||(this.dGa=this.j8a.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object,n,this.dGa);C.prototype.fd.call(this)};J.prototype.j8a=function(){var D=this.object.get("maxWorldToPixelScale"),O=this.object.get("minWorldToPixelScale"); 2496if(void 0!==D||void 0!==O){var R=this.G.J(c.Mj,!0);R.zB=D;R.AB=O;R.qf=R.Ff=R.nh=this.object.get("scale")}else null===(R=this.G)||void 0===R?void 0:R.ha(c.Mj)};return J}(A)},xna:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);this.G.I(c.va);l.ea(this.object,x,this.iGa||(this.iGa=this.l8a.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object,x,this.iGa);C.prototype.fd.call(this)};J.prototype.l8a= 2497function(){var D=this.G.J(c.va);D.Kx=this.object.get("attachToParent");D.positionX=this.object.get("x",this.object.get("positionX",0));D.positionY=this.object.get("y",this.object.get("positionY",0));D.positionZ=this.object.get("z",this.object.get("positionZ",0));D.Ee=this.object.get("rotationOrder","XYZ");D.Pd=this.object.get("rotationX",0);D.ud=this.object.get("rotationY",0);D.Fe=this.object.get("rotationZ",0);D.scale=this.object.get("scale",1);D.translationX=this.object.get("translationX",0);D.translationY= 2498this.object.get("translationY",0);D.He=this.object.get("translationZ",0)};return J}(A)},Qd:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);l.ea(this.object,y,this.jGa||(this.jGa=this.p8a.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object,y,this.jGa);C.prototype.fd.call(this)};J.prototype.p8a=function(){var D=this.object.get("clickEnabled"),O=this.object.get("rollOverEnabled");if(!1!==D&& 2499!1!==O)this.G.ha(c.aq);else{var R=this.G.I(c.aq);R.Ola=!1===D;R.Pla=!1===O}!1===D&&!1===O?this.G.ha(c.Qd):(R=this.G.J(c.Qd,!0),R.eH=this.object.get("useHandCursor"),R.zM=this.object.get("transparentAreaActive"),R.N=this.object,R.Nx=!!D,R.xy=!!O)};return J}(A)},aN:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);l.ea(this.object,z,this.lGa||(this.lGa=this.v8a.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object, 2500z,this.lGa);C.prototype.fd.call(this)};J.prototype.v8a=function(){var D=this.G.J(c.Wh,!0);D.castShadow=this.object.get("castShadow");D.receiveShadow=this.object.get("receiveShadow")};return J}(A)},kd:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);this.G.I(c.kd);this.visible=!1;l.ea(this.object,B,this.mGa||(this.mGa=this.w8a.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object,B,this.mGa); 2501this.Xe(!1);C.prototype.fd.call(this)};J.prototype.w8a=function(){var D=this.G.J(c.kd);D.color=this.object.get("color");D.opacity=this.object.get("hidden")?0:this.object.get("opacity");D.depthTest=this.object.get("depthTest");this.Xe(0<D.opacity)};J.prototype.Xe=function(D){this.visible!=D&&((this.visible=D)?this.object.trigger(m.jd):this.object.trigger(m.ad))};return J}(A)},oo:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this); 2502var D=this.G.I(c.oo);D.properties=this.object;D.N=this.object;l.ea(this.object,E,this.nGa||(this.nGa=this.sG.bind(this)),!0)};J.prototype.fd=function(){l.ca(this.object,E,this.nGa);C.prototype.fd.call(this)};J.prototype.sG=function(){this.G.J(c.oo).$la=this.object.get("video")};return J}(A)},y7:function(A){return function(C){function J(){return null!==C&&C.apply(this,arguments)||this}Z(J,C);J.prototype.ed=function(){C.prototype.ed.call(this);l.ea(this.object,I,this.oGa||(this.oGa=this.y8a.bind(this)), 2503!0)};J.prototype.fd=function(){l.ca(this.object,I,this.oGa);C.prototype.fd.call(this)};J.prototype.y8a=function(){var D=this.G.J(c.Wh,!0);D.opacity=this.object.get("enabled")&&!this.object.get("hidden")?this.object.get("opacity"):0;D.N=this.object};return J}(A)}}}); 2504define("kf","require exports three.mod ld pw gD nU eg fS".split(" "),function(a,f,l,m,k,c,h,g,b){a=function(q){function p(r,t,u,v){r=q.call(this,r,t,u,v)||this;r.oy=r.oy.bind(r);r.sc=r.G;r.Jp=new c;r.Jp.bind(k.ba,r.pl,r,!0);m.ea(r.object,d,r.oy,!0);r.ed();return r}Z(p,q);p.prototype.ed=function(){};p.prototype.fd=function(){};p.prototype.dispose=function(){m.ca(this.object,d,this.oy);this.Jp.unbind(k.ba,this.pl,this);this.Jp=null;this.fd();q.prototype.dispose.call(this)};p.prototype.pl=function(r){var t= 2505this.model.get("model");t.set("translationX",r.data.position.x);t.set("translationY",r.data.position.y);t.set("translationZ",r.data.position.z);e.setFromQuaternion(r.data.quaternion,t.get("rotationOrder"));t.set("rotationX",e.x*n);t.set("rotationY",e.y*n);t.set("rotationZ",e.z*n);.001<r.data.scale&&t.set("scale",r.data.scale);this.object.trigger(k.Cl)};p.prototype.oy=function(){if(this.object.get("positionDraggable")||this.object.get("rotationDraggable")||this.object.get("scaleDraggable")){var r= 2506this.HF.J(b.Wg,!0);r.translate=this.object.get("positionDraggable")||!1;r.rotate=this.object.get("rotationDraggable")||!1;r.scale=this.object.get("scaleDraggable")||!1;r.N=this.Jp}else this.HF.ha(b.Wg)};return p}(h);var d=["positionDraggable","rotationDraggable","scaleDraggable"],e=new l.Euler,n=180/Math.PI;return g.aN(a)}); 2507define("bY",["require","exports","hR"],function(a,f,l){function m(h,g,b){void 0===b&&(b=null);c.style.fontFamily=l.Tx(g.fontFamily);c.style.fontSize=g.fontSize;c.style.fontWeight=g.fontWeight;c.style.fontStyle=g.fontStyle;c.innerHTML=h;document.body.appendChild(c);var d=new k(Math.ceil(c.clientWidth),Math.ceil(c.clientHeight));document.body.removeChild(c);b&&(b.font=g.fontSize+" "+l.Tx(g.fontFamily),h=b.measureText(h).width,0<h&&(d.height*=h/d.width,d.width=h));return d}var k=function(){return function(h, 2508g){this.width=h;this.height=g}}(),c=document.createElement("div");c.style.display="inline-block";c.style.margin="0";c.style.padding="0";c.style.whiteSpace="nowrap";m.p7=function(){return function(){this.fontFamily="Arial";this.fontSize="12px";this.fontWeight="400";this.fontStyle="normal"}}();return m}); 2509define("jb",["require","exports","bY","hR"],function(a,f,l,m){var k=function(){function h(g,b,d){this.Bg=g;this.item=b;this.label=b.get("label");this.fontFamily=this.Bg.get("fontFamily","Arial");this.fontSize=Math.round(12*d)+"px";this.backgroundColor=this.Bg.get("backgroundColor","#000000");
2509this.yHa=this.Bg.get("rollOverBackgroundColor",this.backgroundColor);this.K9a=this.Bg.get("selectedBackgroundColor",this.yHa);this.PCa=this.Bg.get("fontColor","#000000");this.zHa=this.Bg.get("rollOverFontColor", 2510this.PCa);this.L9a=this.Bg.get("selectedFontColor",this.zHa);this.GJa=this.FJa=this.HJa=this.IJa=this.height=this.width=this.left=this.top=0;this.status=!1;this.Pia=!0}h.prototype.ncb=function(){var g=new l.p7;g.fontFamily=this.fontFamily;g.fontSize=this.fontSize;g=l(this.label,g);this.IJa=g.width;this.HJa=g.height};h.prototype.sab=function(g){this.status!==g&&(this.status=g,this.Pia=!0)};h.prototype.C4a=function(g){if(this.Pia){this.Pia=!1;switch(this.status){case "over":var b=this.yHa;var d=this.zHa; 2511break;case "selected":b=this.K9a;d=this.L9a;break;default:b=this.backgroundColor,d=this.PCa}g.clearRect(this.left,this.top,this.width,this.height);g.fillStyle=b;g.fillRect(this.left,this.top,this.width,this.height);g.fillStyle=d;g.font=this.fontSize+" "+m.Tx(this.fontFamily);g.textBaseline="middle";g.textAlign="center";g.fillText(this.label,Math.round(this.FJa),Math.round(this.GJa));return!0}return!1};return h}(),c=180/Math.PI;return function(){function h(g,b){this.Bg=g;this.items=b.map(this.b4a.bind(this)); 2512this.FL=this.GL=this.Fr=this.Gr=0;this.cj();this.canvas=document.createElement("canvas");this.canvas.width=this.Gr;this.canvas.height=this.Fr;this.context=this.canvas.getContext("2d");this.selectedIndex=this.Fu=-1}h.prototype.b4a=function(g){return new k(this.Bg,g,3)};h.prototype.j6a=function(g){return this.Gr/3*g/300};h.prototype.B5a=function(g){return this.Fr/3*g/300};h.prototype.Ce=function(){return 2*Math.atan2(this.Gr/3*.5,300)*c};h.prototype.De=function(){return this.Gr};h.prototype.Te=function(){return this.Fr}; 2513h.prototype.cg=function(){return this.canvas};h.prototype.cj=function(){var g=0,b=0;this.items.forEach(function(q){q.ncb();g=Math.max(q.IJa,g);b=Math.max(q.HJa,b)}.bind(this));this.GL=g+30;this.FL=b+30;var d=0,e=0,n=0;this.FT=20;20<this.items.length&&(this.FT=Math.ceil(this.items.length/Math.ceil(this.items.length/20)));this.items.forEach(function(q){n>=this.FT&&(n=0,e+=this.GL,d=0);q.left=e;q.top=d;q.FJa=e+.5*this.GL;q.GJa=d+.5*this.FL;q.width=this.GL;q.height=this.FL;n+=1;d+=this.FL}.bind(this)); 2514this.Gr=Math.ceil(this.items.length/this.FT)*this.GL;this.Fr=Math.min(this.FT,this.items.length)*this.FL};h.prototype.update=function(){for(var g=!1,b=0;b<this.items.length;b++)this.items[b].sab(this.Fu==b?"over":this.selectedIndex==b?"selected":"normal"),g=this.items[b].C4a(this.context)||g;return g};h.prototype.qia=function(g,b){var d=-1;0<=g&&g<this.Gr&&0<=b&&b<this.Fr&&(d=Math.floor(g/this.GL)*this.FT+Math.floor(b/this.FL),d>=this.items.length&&(d=-1));return d};h.prototype.XB=function(g){this.Fu= 2515g};h.prototype.Qu=function(g){this.selectedIndex=g};h.prototype.clear=function(){this.items=this.canvas=this.context=this.Bg=null};return h}()}); 2516define("bk","require exports three.mod ld pw jb gD oQ fS oY bL bn".split(" "),function(a,f,l,m,k,c,h,g,b,d,e,n){function q(z){return g.isPresenting?-u.setFromQuaternion(g.fH,"YXZ").y*x:z.get("camera").get("yaw")}function p(z){return g.isPresenting?u.setFromQuaternion(g.fH,"YXZ").x*x:z.get("camera").get("pitch")}a=function(){function z(B,E,I){this.model=B;this.sc=E;this.La=I;this.j4=this.j4.bind(this);this.Hm=[];this.ML=[];this.zL=!1;g.N.bind(k.ba,this.xe,this,!0);m.ea(this.model,["xrMenu"],this.j4, 2517!0)}z.prototype.dispose=function(){m.ca(this.model,["xrMenu"],this.j4);g.N.unbind(k.ba,this.xe,this);this.Ca()};z.prototype.xe=function(){this.pKa()};z.prototype.j4=function(){this.pKa()};z.prototype.pKa=function(){var B=g.isPresenting?this.model.get("xrMenu"):null;B!=this.Bg&&(this.Bg&&this.Ca(),(this.Bg=B)&&this.$a())};z.prototype.$a=function(){this.du=this.La.P.Pc("CameraOffsetGroup");this.du.I(b.Group);this.du.I(b.va).easing=0;var B=this.du.I(b.pH);B.La=this.La;B.rotate=!1;this.du.I(b.mb).G=this.sc; 2518this.Bu=new r(this.model,this.Bg,this.du);this.Bu.bind(k.ma,this.f8a,this,!0);this.Bu.bind(k.Jb,this.g8a,this,!0);this.Bu.bind(k.Dc,this.h8a,this,!0)};z.prototype.f8a=function(){this.mJa();this.WAa(this.Bg,0);this.Bu.Xe(!1)};z.prototype.WAa=function(B,E){for(;this.Hm.length>E;)this.Jha(this.Hm.pop());this.Hm.push(this.c4a(B))};z.prototype.SBa=function(){for(this.Bu.Xe(!0);this.Hm.length;)this.Jha(this.Hm.pop())};z.prototype.c4a=function(B){B=new t(this.model,this.Bg,B,this.du,0<this.Hm.length?this.Hm[this.Hm.length- 25191]:this.Bu);if(0<this.Hm.length){var E=this.Hm[this.Hm.length-1];var I=E.Kc();E=E.Lc()+E.Ce()/2+1+B.Ce()/2;B.setPosition(E,I)}else E=q(this.model),I=p(this.model);B.setPosition(E,I);
2519B.oja.get("children",[]).forEach(function(A){A.bind(k.ma,this.UFa,this,!0)},this);B.bind(k.Dc,this.TFa,this,!0);B.bind(k.Jb,this.SFa,this,!0);return B};z.prototype.Jha=function(B){B.oja.get("children",[]).forEach(function(E){E.unbind(k.ma,this.UFa,this)},this);B.unbind(k.Dc,this.TFa,this);B.unbind(k.Jb,this.SFa,this); 2520this.jka(B);B.dispose()};z.prototype.UFa=function(B){B=B.source;if(B.get("children",[]).length){var E=this.Q4a(B);this.WAa(B,E+1)}else this.SBa()};z.prototype.TFa=function(B){this.Z2a(B.source)};z.prototype.SFa=function(B){this.jka(B.source)};z.prototype.h8a=function(){this.CM()};z.prototype.g8a=function(){this.CM()};z.prototype.Z2a=function(B){this.jka(B);this.ML.push(B);0<this.ML.length&&this.jbb();this.CM()};z.prototype.jka=function(B){this.ML=this.ML.filter(function(E){return E!=B});0==this.ML.length&& 2521this.mJa();this.CM()};z.prototype.CM=function(){this.lIa(0<this.ML.length||this.Bu.zL())};z.prototype.lIa=function(B){this.zL!==B&&((this.zL=B)?(this.model.get("camera").WHa(!0),this.model.get("camera").uIa(!0),this.P4&&(clearTimeout(this.P4),this.P4=0)):this.P4=setTimeout(function(){this.P4=0;this.model.get("camera").WHa(!1);this.model.get("camera").uIa(!1)}.bind(this),100))};z.prototype.mJa=function(){this.U1||(this.U1=setTimeout(this.SBa.bind(this),3E3))};z.prototype.jbb=function(){this.U1&&(clearTimeout(this.U1), 2522this.U1=0)};z.prototype.Q4a=function(B){return this.Hm.findIndex(function(E){return 0<=E.oja.get("children",[]).indexOf(B)?!0:!1})};z.prototype.Ca=function(){this.du&&(this.du.P.Nd(this.du),this.du=null);this.Bu&&(this.Bu.dispose(),this.Bu=null);for(;this.Hm.length;)this.Jha(this.Hm.pop());this.lIa(!1)};return z}();h=function(z){function B(E,I,A,C,J){var D=z.call(this)||this;D.model=E;D.Bg=I;D.F3=A;D.UL=C;D.Cu=new c(D.Bg,D.F3);D.Ra=0;D.pitch=0;D.Re=new d("linear",[new e("coef",0,1)],150);D.Fu=-1; 2523D.selectedIndex=-1;D.wi=!1;J?(D.MU=null===J||void 0===J?void 0:J.Lc(),D.tla=null===J||void 0===J?void 0:J.Kc()):(D.MU=q(D.model),D.tla=p(D.model));D.G=D.UL.P.Pc("MenuItems");D.G.I(b.Plane).renderOrder=0;D.G.I(b.mb).G=D.UL;D.G.I(b.va).Ee="YXZ";E=D.G.I(b.gg);E.source=D.Cu.cg();E.isSprite=!1;E.hidden=!1;E.depthTest=!1;D.G.I(b.JC);E=D.G.I(b.Qd);E.eH=!0;E.zM=!1;E.N=D;E.Nx=!0;E.xy=!0;D.NEa=Date.now();D.bind(k.Pb,D.HB,D,!0);D.bind(k.Dc,D.RT,D,!0);D.bind(k.Jb,D.bs,D,!0);D.bind(k.ma,D.XFa,D,!0);g.N.bind(k.iV, 2524D.FB,D,!0);n.requestFrame(D.Zn,D);D.Ky();D.dH();D.FB();return D}Z(B,z);B.prototype.dispose=function(){this.unbind(k.Pb,this.HB,this);this.unbind(k.Dc,this.RT,this);this.unbind(k.Jb,this.bs,this);this.unbind(k.ma,this.XFa,this);g.N.unbind(k.iV,this.FB,this);n.HBa(this.Zn,this);this.G.P.Nd(this.G)};B.prototype.Lc=function(){return this.Ra};B.prototype.Kc=function(){return this.pitch};B.prototype.Ce=function(){return this.Cu.Ce()};B.prototype.BDa=function(){return this.selectedIndex};B.prototype.zL= 2525function(){return this.wi};B.prototype.setPosition=function(E,I){this.Ra=E;this.pitch=I;this.YU()};B.prototype.HB=function(E){this.XB(this.eDa(E))};B.prototype.RT=function(){this.wi=!0;this.dH()};B.prototype.bs=function(){this.wi=!1;this.XB(-1);this.dH()};B.prototype.XFa=function(E){E=this.eDa(E);this.Qu(E);this.F3[E].trigger(k.ma)};B.prototype.eDa=function(E){var I=(E.data.localPosition.x+.5)*this.Cu.De();E=(.5-E.data.localPosition.y)*this.Cu.Te();return this.Cu.qia(I,E)};B.prototype.Zn=function(){g.isPresenting|| 2526this.FB();n.requestFrame(this.Zn,this)};B.prototype.FB=function(){if(this.Re){var E=Date.now();this.Re.Fb(E-this.NEa);this.NEa=E;this.Re.Ve()&&(this.Re=null);this.dH()}this.YU()};B.prototype.setScale=function(E){this.G.getComponent(b.va).scale!=E&&(this.G.J(b.va).scale=E)};B.prototype.Mh=function(E){this.G.getComponent(b.gg).opacity!=E&&(this.G.J(b.gg).opacity=E)};B.prototype.XB=function(E){this.Fu!=E&&(0<=this.Fu&&this.F3[this.Fu].trigger(k.Jb),this.Fu=E,0<=this.Fu&&this.F3[this.Fu].trigger(k.Dc), 2527this.Ky())};B.prototype.Qu=function(E){this.selectedIndex!=E&&(this.selectedIndex=E,this.Ky())};B.prototype.Ky=function(){this.Cu.Qu(this.selectedIndex);this.Cu.XB(this.Fu);this.Cu.update()&&(this.G.J(b.gg).uM=Date.now())};B.prototype.YU=function(){var E=this.Bg.get("distance")/this.model.get("worldUnitToMeters",1),I=this.G.J(b.va);v.identity();v.multiply(w.makeRotationFromQuaternion(g.bg,"YXZ"));v.multiply(w.makeRotationFromQuaternion(g.fH,"YXZ").invert());var A=this.Ra,C=this.pitch;if(this.Re){var J= 2528this.Re.cb("coef");for(A-=this.MU;180<A;)A-=360;for(;-180>A;)A+=360;C-=this.tla;A=this.MU+A*J;C=this.tla+C*J}v.multiply(w.makeRotationFromEuler(u.set(C*y,-A*y,0,"YXZ"),"YXZ"));u.setFromRotationMatrix(v,I.Ee);I.Pd=u.x*x;I.ud=u.y*x;I.Fe=u.z*x;I.positionZ=-E;I.qf=this.Cu.j6a(E);I.Ff=this.Cu.B5a(E)};B.prototype.dH=function(){};return B}(h);var r=function(z){function B(E,I,A){E=z.call(this,E,I,[I],A,null)||this;E.visible=!0;E.G.I(b.va).easing=.01;E.OL=E.OL.bind(E);m.ea(E.model,["camera.pitch","camera.yaw"], 2529E.OL,!0);return E}Z(B,z);B.prototype.dispose=function(){z.prototype.dispose.call(this);m.ca(this.model,["camera.pitch"],this.OL)};B.prototype.Xe=function(E){this.visible!==E&&(this.visible=E,this.visible||(this.XB(-1),this.Qu(-1)),E=!this.visible,this.G.getComponent(b.gg).hidden!==E&&(this.G.J(b.gg).hidden=E,this.OL()))};B.prototype.OL=function(){this.visible&&(this.setPosition(q(this.model),this.FDa()),this.dH())};B.prototype.FB=function(){this.OL();z.prototype.FB.call(this)};B.prototype.dH=function(){var E= 2530this.Bg.get("opacity",.5),I=this.Bg.get("rollOverOpacity",E);E=this.wi?I:E;var A=.66,C=this.model.get("camera"),J=p(this.model);C=Math.abs(J-this.FDa())/(.5*C.get("fov"));1>C&&(A+=(1-C)*(1-A),E+=(1-C)*(I-E));E*=this.Re?this.Re.cb("coef"):1;this.Mh(Math.min(1,Math.max(0,E)));this.setScale(A);this.Ky()};B.prototype.FDa=function(){var E=p(this.model);return Math.min(90,Math.max(-90,40-E))};return B}(h),t=function(z){function B(E,I,A,C,J){E=z.call(this,E,I,A.get("children",[]),C,J)||this;E.oja=A;return E} 2531Z(B,z);B.prototype.dH=function(){var E=this.Bg.get("opacity",.5),I=this.Bg.get("rollOverOpacity",E);E=this.wi?I:E;E*=this.Re?this.Re.cb("coef"):1;this.Mh(Math.min(1,Math.max(0,E)))};return B}
2531(h),u=new l.Euler,v=new l.Matrix4,w=new l.Matrix4,x=180/Math.PI,y=Math.PI/180;return a}); 2532define("gZ",["require","exports","ld","pw"],function(a,f,l,m){return function(){function k(c,h){this.renderer=c;this.model=h;this.vc=this.renderer.M;this.X3=this.X3.bind(this);this.vi=[];this.Iy="";this.Du=null;this.$a()}k.prototype.dispose=function(){this.Ca()};k.prototype.$a=function(){l.ea(this.model,"objects",this.X3,!0);this.model.bind(m.Dc,this.WFa,this,!0);this.model.bind(m.Jb,this.VFa,this,!0)};k.prototype.Ca=function(){this.model.unbind(m.Dc,this.WFa,this);this.model.unbind(m.Jb,this.VFa, 2533this);l.ca(this.model,"objects",this.X3);this.WB([]);this.Du&&this.bs(this.Du)};k.prototype.X3=function(){this.WB(this.model.get("objects"))};k.prototype.WB=function(c){this.vi!=c&&(this.vi.forEach(function(h){h.unbind(m.Dc,this.aGa,this);h.unbind(m.Jb,this.$Fa,this);h.unbind(m.ad,this.ZFa,this)}.bind(this)),this.Du&&0<=this.vi.indexOf(this.Du)&&0>c.indexOf(this.Du)&&this.bs(this.Du),this.vi=c,this.vi.forEach(function(h){h.bind(m.Dc,this.aGa,this,!0);h.bind(m.Jb,this.$Fa,this,!0);h.bind(m.ad,this.ZFa, 2534this,!0)}.bind(this)))};k.prototype.aGa=function(c){c=c.source;this.RT(c,c.get("toolTip"))};k.prototype.$Fa=function(c){this.bs(c.source)};k.prototype.ZFa=function(c){this.bs(c.source)};k.prototype.WFa=function(){this.RT(this.model,this.model.get("toolTip"))};k.prototype.VFa=function(){this.bs(this.model)};k.prototype.bs=function(c){this.Du==c&&(this.Du=null,this.KIa(""))};k.prototype.RT=function(c,h){this.Du!=c&&(this.Du=c,this.KIa(h||""))};k.prototype.KIa=function(c){this.Iy!=c&&(this.Iy=c,this.vc.set("toolTip", 2535this.Iy))};return k}()}); 2536define("mq",["require"],function(){function a(f){this.Gc=this.it(f.get("surfaceReticleColor"));this.ox=this.it(f.get("surfaceReticleSelectionColor"));this.Mb=f.get("surfaceReticleOpacity");this.KYa=f.get("surfaceReticleSelectionOpacity");this.Il=this.Xg=128;this.gXa=.456;this.hXa=.088;this.vUa=.18;this.T=document.createElement("canvas");this.T.width=this.Xg;this.T.height=this.Il;this.Da=this.T.getContext("2d");this.Da.fillStyle="red";this.Da.imageSmoothingEnabled=!0;this.Da.fillRect(0,0,this.Xg,this.Il); 2537this.od=this.Rv=!1;this.aJ=this.PZ=void 0;this.cD=0}a.prototype.Q$=function(){return this.Wk(NaN*this.ox[0]+NaN*this.Gc[0],NaN*this.ox[1]+NaN*this.Gc[1])};a.prototype.it=function(f){f=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(f);return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]};a.prototype.Wk=function(f,l){return"rgba("+f.join(",")+", "+l+")"};a.prototype.setPosition=function(f){this.fb!=f&&(this.fb=f,this.Ba=!0)};a.prototype.De=function(){return this.Xg};a.prototype.Te=function(){return this.Il}; 2538a.prototype.cg=function(){return this.T};a.prototype.update=function(){if(!this.Ba)return!1;this.Ba=!1;this.Da.clearRect(0,0,this.Xg,this.Il);var f=[this.ox[0]*this.fb+(1-this.fb)*this.Gc[0],this.ox[1]*this.fb+(1-this.fb)*this.Gc[1],this.ox[2]*this.fb+(1-this.fb)*this.Gc[2]],l=this.KYa*this.fb+(1-this.fb)*this.Mb;this.Da.strokeStyle=this.Wk(f,l);this.Da.fillStyle=this.Wk(f,l*this.fb);this.Da.beginPath();this.Da.lineWidth=this.Xg*this.hXa;
2538this.Da.arc(.5*this.Xg,.5*this.Xg,this.Xg*this.gXa,0,2*Math.PI, 2539!1);this.Da.stroke();this.Da.beginPath();this.Da.arc(.5*this.Xg,.5*this.Xg,this.Xg*this.vUa,0,2*Math.PI,!1);this.Da.fill();return!0};return a});define("hI",["require","mq"],function(a){return a("mq")}); 2540define("ja","require ld pw gD hI w oQ fS".split(" "),function(a){function f(n,q,p){this.ia=n;this.lb=q;this.j=p;this.M=this.j.M;this.Lw=this.Lw.bind(this);this.Uw=this.Uw.bind(this);this.od=void 0;this.ia.bind(m.F("surfaceSelectionEnabled"),this.m$,this,!0);this.m$()}var l=a("ld"),m=a("pw"),k=a("gD"),c=a("hI"),h=a("w"),g=a("oQ"),b=a("fS");f.prototype.m$=function(){var n=this.ia.get("surfaceSelectionEnabled");!!this.m!=n&&(n?this.DD():this.zq())};f.prototype.DD=function(){if(!this.m){this.m=this.lb.P.Pc("PointerReticle"); 2541this.m.I(b.Plane).renderOrder=2;this.m.I(b.wk).G=this.lb;this.m.I(b.aq);this.m.I(b.JC);this.m.I(b.mb).G=this.lb;var n=this.m.I(b.io);n.N=new k;n.N.bind(m.ba,this.zP,this,!0);l.ea(this.ia,d,this.Lw,!0);this.Rt=new c(this.M);this.Rt.setPosition(0);this.Rt.update();n=this.m.I(b.gg);n.source=this.Rt.cg();n.depthTest=!1;l.ea(this.ia,e,this.Uw,!0);g.N.bind(m.ba,this.wJ,this,!0);this.le=null;this.bF(!1)}};f.prototype.zq=function(){this.m&&(this.le&&(this.le.trigger(m.Jb),this.le=null),l.ca(this.ia,e,this.Uw), 2542this.WQ(null),this.m.getComponent(b.io).N.unbind(m.ba,this.zP,this,!0),this.lb.P.Nd(this.m),this.Rt=this.m=null,g.N.unbind(m.ba,this.wJ,this),l.ca(this.ia,d,this.Lw))};f.prototype.Lw=function(){var n=this.m.J(b.Mj,!0);n.qf=n.Ff=2;n.scale=this.ia.get("surfaceReticleRadius");n.zB=this.ia.get("surfaceReticleMaxRadius");n.AB=this.ia.get("surfaceReticleMinRadius")};f.prototype.zP=function(n){n=this.asa(n.data.beacons);var q=this.Hra(n);0==q&&(n=null);this.VYa(n);this.lZa(q)};f.prototype.Uw=function(){this.WQ(this.ia&& 2543this.ia.get("pointer"))};f.prototype.WQ=function(n){this.ee!==n&&(this.ee&&(this.ee.unbind(m.ma,this.Nw,this,!0),this.ee.unbind(m.Pb,this.Mf,this,!0),this.ee.unbind(m.Jb,this.Wq,this,!0)),this.ee=n)&&(this.ee.bind(m.ma,this.Nw,this,!0),this.ee.bind(m.Pb,this.Mf,this,!0),this.ee.bind(m.Jb,this.Wq,this,!0))};f.prototype.Nw=function(n){var q=null;if(h.pb()&&!g.isPresenting){var p=this.m.getComponent(b.io);p&&p.VS&&n.data.position&&(n=p.VS((new THREE.Vector3).copy(n.data.position)),n=this.asa(n),0!=this.Hra(n)&& 2544(q=this.N$(n)))}else q=this.le;q&&q.trigger(m.ma)};f.prototype.Mf=function(n){this.bF("other"==n.data.type?!1:!0)};f.prototype.Wq=function(){this.bF(!1)};f.prototype.bF=function(n){this.od!==n&&(this.od=n,this.bl())};f.prototype.wJ=function(){this.bl()};f.prototype.bl=function(){this.m.J(b.gg).opacity=h.pb()&&!g.isPresenting||!this.od?0:1};f.prototype.VYa=function(n){n=this.N$(n);this.le!=n&&(this.le&&this.le.trigger(m.Jb),(this.le=n)&&this.le.trigger(m.Dc))};f.prototype.asa=function(n){if(!n)return null; 2545for(var q=0;q<n.length;q++)if(this.N$(n[q]))return n[q];return null};f.prototype.Hra=function(n){if(!n)return 0;var q=this.m.getComponent(b.va);return q?Math.max(0,1-n.distance/(this.ia.get("surfaceSelectionCoef")*q.scale*q.qf)):0};f.prototype.N$=function(n){return(n=(n=n&&n.entity)&&n.getComponent(b.PM))&&n.pbb||null};f.prototype.lZa=function(n){this.Rt.setPosition(n);this.Rt.update()&&(this.m.J(b.gg).uM=(new Date).getTime())};f.prototype.dispose=function(){this.zq();this.ia.unbind(m.F("surfaceSelectionEnabled"), 2546this.m$,this,!0)};var d=["surfaceReticleRadius","surfaceReticleMaxRadius","surfaceReticleMinRadius"],e=["pointer"];return f}); 2547define("lF",["require","ld","pw","gD","fS"],function(a){function f(g,b,d){this.ia=g;this.lb=b;this.uq=d;this.W=!1;this.sZ=this.sZ.bind(this);l.ea(this.ia,h,this.sZ,!0)}var l=a("ld"),m=a("pw"),k=a("gD"),c=a("fS");f.prototype.sZ=function(){var g=!!this.ia.get("maxNearestObjectsVisible");this.W!=g&&(this.W&&this.zq(),(this.W=g)&&this.DD())};f.prototype.DD=function(){var g=this.uq.I(c.io);g.N=new k;g.N.bind(m.ba,this.zP,this,!0);this.lb.P.Ta()};f.prototype.zq=function(){this.uq.getComponent(c.io).N.unbind(m.ba, 2548this.zP,this,!0);this.uq.ha(c.io);this.ia.get("objects").forEach(function(g){g.get("hideBasedOnDistance")&&g.Rka(!1)})};f.prototype.zP=function(g){var b=0,d=this.ia.get("maxNearestObjectsVisible");g.data.beacons.forEach(function(e){if(e=this.qSa(e))e.get("hideBasedOnDistance")?(e.Rka(b>=d),b++):e.Rka(!1)}.bind(this))};f.prototype.qSa=function(g){g=(g=g.entity.getComponent(c.PM))&&g.object;g.get&&void 0!==g.get("hideBasedOnDistance")||(g=null);return g};f.prototype.dispose=function(){l.ca(this.ia, 2549h,this.sZ);this.W&&(this.W=!1,this.zq())};var h=["maxNearestObjectsVisible"];return f}); 2550define("fV","require lQ ld pw gD fS".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("gD"),c=a("fS");a=f.extend(k,function(g,b){k.call(this);this.Id=g;this.lb=b;this.Nf=this.Nf.bind(this);this.m=null;this.dl=0;this.Tb=!1;this.tQ=[];this.Id.bind(m.F("areaOpacity"),this.xva,this);this.Dx()});a.prototype.R4=function(g){this.tQ.forEach(function(b){b.unbind(m.jd,this.he,this,!0);b.unbind(m.ad,this.he,this,!0)}.bind(this));this.tQ=g;this.tQ.forEach(function(b){b.bind(m.jd,this.he,this,!0); 2551b.bind(m.ad,this.he,this,!0)}.bind(this));this.Jza();this.he()};a.prototype.dispose=function(){this.Id.unbind(m.F("areaOpacity"),this.xva,this);this.zx()};a.prototype.nu=function(){return this.m};a.prototype.isVisible=function(){return this.Tb};a.prototype.xva=function(){this.Dx();this.bl()};a.prototype.Dx=function(){0<this.Id.get("areaOpacity")?this.VA():this.zx()};a.prototype.VA=function(){if(!this.m){this.m=this.lb.P.Pc("MeasureArea");var g=new k;g.bind(m.ba,this.sA,this,!0);this.m.I(c.Rm).N=g; 2552this.m.I(c.kd);this.m.I(c.mb).G=this.lb;l.ea(this.Id,h,this.Nf,!0);this.Jza()}};a.prototype.zx=function(){this.m&&(this.m.getComponent(c.Rm).N.unbind(m.ba,this.sA,this,!0),l.ca(this.Id,h,this.Nf),this.m.P.Nd(this.m),this.m=null)};a.prototype.Jt=function(g){this.Tb!=g&&((this.Tb=g)?(this.Xo(1),this.trigger(m.jd)):(this.Xo(0),this.trigger(m.ad)))};a.prototype.he=function(){this.Jt(this.tQ.every(function(g){return g.isVisible()}))};a.prototype.sA=function(g){this.Id.set("area",g.data.area)};a.prototype.Nf= 2553function(){if(this.m){var g=this.m.J(c.kd);g.color=this.Id.get("areaColor");g.depthTest=this.Id.get("depthTest");g.doubleSided=!0;this.bl()}};a.prototype.Xo=function(g){this.dl!=g&&(this.dl=g,this.bl())};a.prototype.bl=function(){this.m&&(this.m.J(c.kd).opacity=this.Id.get("areaOpacity")*Math.max(1E-4,this.dl))};a.prototype.Jza=function(){this.m&&(this.m.J(c.Rm).u=this.tQ.map(function(g){return g.nu()}))};var h=["areaColor","areaOpacity","depthTest"];return a}); 2554define("fF",["require","bY","hR"],function(a){function f(){this.B$=this.it("#ffffff");this.vz=this.it("#000000");this.Il=this.Xg=0;this.T=document.createElement("canvas");this.Da=this.T.getContext("2d");this.Da.imageSmoothingQuality="high";this.Pt=new m.p7;this.C$=this.GI=void 0;this.Y7=this.Z7=.5;this.Ar=void 0;this.oK=f.V6;this.Cx=void 0;this.pM(0)}function l(c){return 100<c?c.toFixed(0):10<c?c.toFixed(1):c.toFixed(2)}var m=a("bY"),k=a("hR");f.Fma="imperial area";f.Gma="imperial length";f.Nma="metric area"; 2555f.V6="metric length";f.prototype.dispose=function(){this.T.width=this.T.height=0;this.T=null};f.prototype.l$a=function(c){this.B$!=c&&(this.B$=c,this.Ba=!0)};f.prototype.P9a=function(c){this.vz!=c&&(this.vz=c,this.Ba=!0)};f.prototype.m$a=function(c){this.C$!=c&&(this.C$=c,this.Ba=!0)};f.prototype.n$a=function(c){this.GI!=c&&(this.GI=c,this.Ba=!0)};f.prototype.Aka=function(){.5!=this.Pt.KK&&(this.Y7=.5,this.Ba=!0)};f.prototype.Bka=function(c){this.Pt.LK!=c&&(this.Z7=c,this.Ba=!0)};f.prototype.pM=function(c){this.Ar!= 2556c&&(this.Ar=c,this.Zfa())};f.prototype.wab=function(c){this.oK!=c&&(this.oK=c,this.Zfa())};f.prototype.xab=function(c){this.Cx!=c&&(this.Cx=c,this.Zfa())};f.prototype.Zfa=function(){if(void 0===this.Cx)this.Pa=l(this.Ar);else if(this.oK==f.V6){var c=this.Ar*this.Cx;this.Pa=1<=c?l(c)+"m":l(100*c)+"cm"}else this.oK==f.Nma?(c=this.Ar*this.Cx*this.Cx,this.Pa=.1<=c?l(c)+"m\u00b2":l(1E4*c)+"cm\u00b2"):this.oK==f.Gma?(c=this.Ar*this.Cx*1.0936,this.Pa=1760<c?l(c/1760)+"mi":100<=c?l(c)+"yd":1<=3*c?l(3*c)+
2557"ft":l(36*c)+"in"):this.oK==f.Fma&&(c=this.Ar*this.Cx*1.0936*this.Cx*1.0936,this.Pa=1<=c?l(c)+"yd\u00b2":1<=9*c?l(9*c)+"ft\u00b2":l(1296*c)+"in\u00b2");this.Ba=!0};f.prototype.it=function(c){c=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(c);return[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]};f.prototype.Wk=function(c,h){return"rgba("+c.join(",")+", "+h+")"};f.prototype.De=function(){return this.Xg};f.prototype.Te=function(){return this.Il};f.prototype.cg=function(){return this.T};f.prototype.update= 2558function(){if(!this.Ba)return!1;this.Ba=!1;this.Pt.fontFamily=this.C$||"Arial";this.Pt.fontSize=this.GI?"string"==typeof this.GI?this.GI:this.GI+"px":"30px";var c=m(this.Pa,this.Pt),h=this.it(this.B$),g=this.it(this.vz),b=c.width;c=c.height;var d=.5*c,e=.3*c,n=d+b+.5*c,q=e+c+.2*c,p=.5*q;this.T.width=this.T.height=this.Xg=this.Il=Math.max(128,Math.pow(2,Math.ceil(Math.log(Math.max(n,q))/Math.LN2)));var r=this.Xg*this.Y7-n*this.Y7,t=this.Il*this.Z7-q*this.Z7;this.hI();this.Da.save();this.Da.translate(r, 2559t);this.Da.fillStyle=this.Wk(g,1);this.Da.beginPath();this.Da.moveTo(0,p);this.Da.quadraticCurveTo(0,0,p,0);this.Da.lineTo(n-p,0);this.Da.quadraticCurveTo(n,0,n,p);this.Da.quadraticCurveTo(n,q,n-p,q);this.Da.lineTo(p,q);this.Da.quadraticCurveTo(0,q,0,q-p);this.Da.closePath();this.Da.fill();this.Da.fillStyle=this.Wk(h,1);this.Da.font=this.Pt.fontSize+" '"+this.Pt.fontFamily+"'";this.Da.font=this.Pt.fontSize+(isNaN(this.Pt.fontSize)?"":"px")+" "+k.Tx(this.Pt.fontFamily);this.Da.textBaseline="middle"; 2560this.Da.textAlign="center";this.Da.fillText(this.Pa,Math.round(d+.5*b),Math.round(e+.5*c));this.Da.restore();return!0};f.prototype.hI=function(){this.Da.clearRect(0,0,this.Xg,this.Il)};return f}); 2561define("fP","require lQ ld pw gD fS fF eF".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("gD"),c=a("fS"),h=a("fF"),g=a("eF");a=f.extend(k,function(d,e,n){k.call(this);this.bca=d;this.Id=e;this.lb=n;this.Nf=this.Nf.bind(this);this.Zo=this.m=null;this.dl=0;this.Tb=!1;this.F0=this.wh=this.IA=this.mA=null;this.Ar=void 0;this.gi=new h;this.bca.bind(m.F("worldUnitToMeters"),this.Sca,this,!0);this.Id.bind(m.F("units"),this.Fca,this,!0);this.VA()});a.prototype.pIa=function(d){this.e0(d,null, 2562null)};a.prototype.dab=function(d){this.e0(null,d,null)};a.prototype.O9a=function(d){this.e0(null,null,d)};a.prototype.e0=function(d,e,n){if(this.IA!=e||this.mA!=d||this.wh!=n)[this.mA,this.IA,this.wh].forEach(function(q){q&&q.unbind(m.jd,this.he,this,!0);q&&q.unbind(m.ad,this.he,this,!0)}.bind(this)),this.zx(),this.mA=d,this.IA=e,this.wh=n,this.VA(),this.Nf(),this.wg(!0),[this.mA,this.IA,this.wh].forEach(function(q){q&&q.bind(m.jd,this.he,this,!0);q&&q.bind(m.ad,this.he,this,!0)}.bind(this)),this.mA? 2563(this.m.J(c.mb).G=this.mA.nu(),this.m.J(c.va).He=.5,d=this.m.J(c.Sprite),d.KK=.5,d.LK=.5,this.gi.Aka(),this.gi.Bka(.5)):this.IA?(this.m.J(c.mb).G=this.IA.nu(),this.m.J(c.va).He=0,d=this.m.J(c.Sprite),d.KK=.5,d.LK=1.1,this.gi.Aka(),this.gi.Bka(1)):this.wh?(this.m.J(c.mb).G=this.wh.nu(),this.m.J(c.va).He=0,d=this.m.J(c.Sprite),d.KK=.5,d.LK=.5,this.gi.Aka(),this.gi.Bka(.5)):this.m.J(c.mb).G=null,this.he(),this.Fca(),this.Sca()};a.AMa="partialDistance";a.Gna="distance";a.zMa="area";a.prototype.setStyle= 2564function(d){this.F0!=d&&(this.F0=d,this.Nf())};a.prototype.pM=function(d){void 0!==d&&this.Ar!==d&&(this.Ar=d,this.gi.pM(d),this.wg(),this.he())};a.prototype.dispose=function(){this.bca.unbind(m.F("worldUnitToMeters"),this.Sca,this,!0);this.Id.unbind(m.F("units"),this.Fca,this,!0);this.e0(null,null);this.gi.dispose();this.gi=null;this.zx()};a.prototype.Sca=function(){this.gi.xab(this.bca.get("worldUnitToMeters"));this.wg()};a.prototype.Fca=function(){var d=this.Id.get("units"),e=!!this.wh;this.gi.wab("imperial"== 2565d?e?h.Fma:h.Gma:e?h.Nma:h.V6);this.wg()};a.prototype.VA=function(){if(!this.m){this.m=this.lb.P.Pc("MeasureLabel");this.m.I(c.Sprite).renderOrder=2;this.m.I(c.aq);var d=this.m.I(c.gg);d.source=this.gi.cg();d.isSprite=!0;l.ea(this.Id,b,this.Nf,!0);this.m.I(c.va);this.m.I(c.mb)}};a.prototype.zx=function(){this.m&&(l.ca(this.Id,b,this.Nf),this.m.P.Nd(this.m),this.m=null)};a.prototype.isVisible=function(){return this.Tb};a.prototype.Jt=function(d){this.Tb!=d&&((this.Tb=d)?(this.g_a(),this.trigger(m.jd)): 2566(this.e0a(),this.Xo(0),this.trigger(m.ad)))};a.prototype.he=function(){this.Jt(0<this.Ar&&(this.mA&&this.mA.isVisible()||this.IA&&this.IA.isVisible()||this.wh&&this.wh.isVisible()))};a.prototype.g_a=function(){this.Zo||(this.Zo=new g,this.Zo.set("duration",300),this.Zo.bind(g.i6,this.fwa,this,!0),this.Zo.bind(g.tk,this.ewa,this,!0),this.Zo.play())};
2566a.prototype.e0a=function(){this.Zo&&(this.Zo.unbind(g.i6,this.fwa,this,!0),this.Zo.unbind(g.tk,this.ewa,this,!0),this.Zo.stop(),this.Zo=null)};a.prototype.fwa= 2567function(){this.Xo(2*this.Zo.jl()-1)};a.prototype.ewa=function(){this.Xo(1)};a.prototype.Nf=function(){this.m.J(c.gg).depthTest=this.NI("depthTest");this.gi.l$a(this.NI("labelFontColor"));this.gi.P9a(this.NI("labelBackgroundColor"));this.gi.m$a(this.NI("labelFontFamily"));this.gi.n$a(this.NI("labelFontSize"));this.bl();this.wg()};a.prototype.NI=function(d){var e;this.F0&&(e=this.Id.get(this.F0+d[0].toUpperCase()+d.substr(1)));void 0===e&&(e=this.Id.get(d));return e};a.prototype.wg=function(d){if(this.gi.update()|| 2568d){d=this.m.J(c.gg);var e=this.m.J(c.Sprite);d.uM=(new Date).getTime();e.width=this.gi.De();e.height=this.gi.Te()}};a.prototype.Xo=function(d){this.dl!=d&&(this.dl=d,this.bl())};a.prototype.bl=function(){this.m.J(c.gg).opacity=this.NI("labelOpacity")*Math.max(1E-4,this.dl)};var b="depthTest areaLabelBackgroundColor areaLabelFontColor areaLabelFontFamily areaLabelOpacity areaLabelFontSize distanceLabelBackgroundColor distanceLabelFontColor distanceLabelFontFamily distanceLabelOpacity distanceLabelFontSize labelBackgroundColor labelFontColor labelFontFamily labelOpacity labelFontSize partialDistanceLabelBackgroundColor partialDistanceLabelFontColor partialDistanceLabelFontFamily partialDistanceLabelOpacity partialDistanceLabelFontSize".split(" "); 2569return a}); 2570define("dT","require lQ ld pw gD fS".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("gD"),c=a("fS");a=f.extend(k,function(g,b){k.call(this);this.Id=g;this.lb=b;this.qm=this.om=null;this.Nf=this.Nf.bind(this);this.m=null;this.dl=0;this.Tb=!1;this.VA()});a.prototype.R4=function(g,b){if(this.om!=g||this.qm!=b)this.om&&this.om.unbind(m.jd,this.he,this,!0),this.om&&this.om.unbind(m.ad,this.he,this,!0),this.qm&&this.qm.unbind(m.jd,this.he,this,!0),this.qm&&this.qm.unbind(m.ad,this.he,this, 2571!0),this.om=g,this.qm=b,this.om&&this.om.bind(m.jd,this.he,this,!0),this.om&&this.om.bind(m.ad,this.he,this,!0),this.qm&&this.qm.bind(m.jd,this.he,this,!0),this.qm&&this.qm.bind(m.ad,this.he,this,!0),this.m.J(c.mb,!0).G=this.om&&this.om.nu(),this.m.J(c.Es,!0).G=this.qm&&this.qm.nu(),this.he()};a.prototype.nu=function(){return this.m};a.prototype.dispose=function(){this.R4(null,null);this.zx()};a.prototype.VA=function(){this.m||(this.m=this.lb.P.Pc("MeasureLine"),this.m.I(c.Line),this.m.I(c.th),this.m.I(c.va), 2572l.ea(this.Id,h,this.Nf,!0))};a.prototype.zx=function(){this.m&&(l.ca(this.Id,h,this.Nf),this.m.P.Nd(this.m),this.m=null)};a.prototype.isVisible=function(){return this.Tb};a.prototype.Jt=function(g){this.Tb!=g&&((this.Tb=g)?(this.Xo(1),this.trigger(m.jd)):(this.Xo(0),this.trigger(m.ad)))};a.prototype.he=function(){this.Jt(this.om&&this.om.isVisible()&&this.qm&&this.qm.isVisible())};a.prototype.Nf=function(){var g=this.m.J(c.th);g.color=this.Id.get("lineColor");g.depthTest=this.Id.get("depthTest"); 2573g.width=this.Id.get("lineWidth");g.depthTest=this.Id.get("depthTest");this.bl()};a.prototype.Xo=function(g){this.dl!=g&&(this.dl=g,this.bl())};a.prototype.bl=function(){this.m.J(c.th).opacity=this.Id.get("lineOpacity")*Math.max(1E-4,this.dl)};var h=["depthTest","lineColor","lineOpacity","lineWidth"];return a}); 2574define("oT","require lQ ld pw gD fS".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("gD"),c=a("fS");a=f.extend(k,function(d,e,n,q){k.call(this);this.Id=d;this.ia=e;this.lb=n;this.gr=q;this.zZ=this.zZ.bind(this);this.Nf=this.Nf.bind(this);this.En=this.En.bind(this);this.m=null;this.Ei=this.LQ=this.od=this.uz=!1;this.dl=0;this.Tb=!1;this.VA();l.ea(this.Id,h,this.zZ,!0);l.ea(this.Id,b,this.Nf,!0);l.bu(this.gr,g,this.En,!0);this.bind(m.Cl,this.Mva,this,!0);this.bind(m.Dc,this.EZ,this,!0); 2575this.bind(m.Jb,this.Wq,this,!0);this.En();this.a3()&&this.Jt(!0)});a.prototype.dispose=function(){l.ca(this.Id,h,this.zZ);l.ca(this.Id,b,this.Nf);l.ca(this.gr,g,this.En);this.unbind(m.Cl,this.Mva,this,!0);this.unbind(m.Dc,this.EZ,this,!0);this.unbind(m.Jb,this.Wq,this,!0);this.zx()};a.prototype.nu=function(){return this.m};a.prototype.QHa=function(d){this.uz!==d&&((this.uz=d)?(d=this.m.I(c.wk),d.G=this.lb,d.rotate=!1,d.N=new k,this.Jt(!0),d.N.bind(m.Dc,this.mJ,this,
2575!0)):((d=this.m.getComponent(c.wk))&& 2576d.N.unbind(m.Dc,this.mJ,this,!0),this.m.ha(c.wk),d=this.ia.worldPositionToLocal([this.x,this.y,this.z],this.ia.getMatrixWorld()),this.YHa(d[0],d[1],d[2])),this.cB(),this.jga())};a.prototype.cIa=function(d){void 0===d&&(d=!1);this.Ei!==d&&((this.Ei=d)?this.m.I(c.Tm):this.m.ha(c.Tm))};a.prototype.kab=function(d){this.LQ!==d&&(this.LQ=d,this.jga(),this.od=!1,this.cB())};a.prototype.YHa=function(d,e,n){this.gr.set("x",d);this.gr.set("y",e);this.gr.set("z",n);this.Jt(this.a3())};a.prototype.VA=function(){this.m= 2577this.lb.P.Pc("MeasurePoint");this.m.I(c.Sphere);this.m.I(c.kd);this.m.I(c.Qd).N=this;this.m.I(c.aq);this.m.I(c.va).N=this;this.m.I(c.Mj);this.m.I(c.mb).G=this.lb;this.jga();this.bl();this.cB()};a.prototype.zx=function(){this.m.P.Nd(this.m);this.m=null};a.prototype.isVisible=function(){return this.Tb};a.prototype.Jt=function(d){this.Tb!=d&&((this.Tb=d)?(this.Xo(1),this.trigger(m.jd)):(this.Xo(0),this.trigger(m.ad)))};a.prototype.jga=function(){var d=this.m.J(c.Qd);d.eH=this.LQ;d.xy=this.LQ;d.Nx=!this.uz; 2578d=this.m.J(c.aq,!0);d.Pla=!this.LQ||this.uz;d.Ola=this.uz};a.prototype.mJ=function(){this.Jt(!0)};a.prototype.EZ=function(){this.od=!0;this.cB()};a.prototype.Wq=function(){this.od=!1;this.cB()};a.prototype.zZ=function(){this.m.J(c.mb).id=this.Id.get("parentId")};a.prototype.Nf=function(){if(this.m){var d=this.m.J(c.Mj);d.qf=d.Ff=d.nh=1;d.zB=this.Id.get("pointMaxRadius");d.AB=this.Id.get("pointMinRadius");d.scale=this.Id.get("pointRadius")||1;this.m.J(c.kd).depthTest=this.Id.get("depthTest");this.cB()}}; 2579a.prototype.cB=function(){if(this.m){var d=this.uz?"pointDragColor":this.od?"pointOverColor":"pointColor";this.m.J(c.kd).color=this.Id.get(d)}};a.prototype.Xo=function(d){this.dl!=d&&(this.dl=d,this.bl())};a.prototype.bl=function(){this.m.J(c.kd).opacity=Math.max(1E-4,this.dl)};a.prototype.Mva=function(d){this.x=d.data.position.x;this.y=d.data.position.y;this.z=d.data.position.z};a.prototype.En=function(){if(this.a3()&&this.m){var d=this.m.J(c.va,!0);d.positionX=d.positionY=d.positionZ=0;d.Pd=d.ud= 2580d.Fe=0;d.translationX=this.gr.get("x");d.translationY=this.gr.get("y");d.He=this.gr.get("z")}};a.prototype.a3=function(){var d=this.gr.get("x"),e=this.gr.get("y"),n=this.gr.get("z");return void 0!==d&&void 0!==e||void 0!==n};a.prototype.distanceTo=function(d){var e=this.x-d.x,n=this.y-d.y;d=this.z-d.z;return Math.sqrt(e*e+n*n+d*d)};var h=["parentId"],g=["x","y","z"],b="depthTest mode pointDragColor pointColor pointOverColor pointMaxRadius pointMinRadius pointRadius".split(" ");return a}); 2581define("eG","require ld pw bs fV fP dT oT w".split(" "),function(a){function f(u,v,w,x,y){this.K=u;this.ia=v;this.lb=w;this.j=y;this.M=this.j.M;this.Sq=this.Sq.bind(this);this.CZ=this.CZ.bind(this);this.rZ=this.rZ.bind(this);this.LZ=this.LZ.bind(this);this.pJ=this.pJ.bind(this);this.sA=this.sA.bind(this);this.Uw=this.Uw.bind(this);this.Jo=this.Jo.bind(this);this.ee=null;this.Ti=new Map;this.sQ=new Map;this.Lq=[];this.jE=[];this.DJ=new Map;this.Dh=[];this.Qi=null;this.X0();this.nf=this.cd=void 0;this.W= 2582!1;l.ea(this.K,["enabled"],this.Sq,!0)}var l=a("ld"),m=a("pw"),k=a("bs"),c=a("fV"),h=a("fP"),g=a("dT"),b=a("oT"),d=a("w");f.prototype.dispose=function(){this.zq();l.ca(this.K,["enabled"],this.Sq);this.Qi=this.Dh=this.jE=this.Lq=this.sQ=this.Ti=null;this.X0();this.nf=this.cd=null};f.prototype.Sq=function(){this.K.get("enabled")?this.DD():this.zq()};f.prototype.DD=function(){this.W||(this.W=!0,this.VPa(),this.rqa(this.K),document.addEventListener("keyup",this.Jo),l.ea(this.K,e,this.CZ,!0),l.ea(this.K, 2583q,this.LZ,!0),l.ea(this.K,n,this.rZ,!0),l.ea(this.K,p,this.pJ,!0),l.ea(this.K,r,this.sA,!0),l.ea(this.ia,t,this.Uw,!0))};f.prototype.zq=function(){this.W&&(this.W=!1,this.oya([]),this.Nqa(this.K),this.bRa(),document.removeEventListener("keyup",this.Jo),l.ca(this.K,e,this.CZ),l.ca(this.K,q,this.LZ),l.ca(this.K,n,this.rZ),l.ca(this.K,p,this.pJ),l.ca(this.K,r,this.sA),l.ca(this.ia,t,this.Uw),this.WQ(null))};f.prototype.Uw=function(){this.WQ(this.ia&&this.ia.get("pointer"))};f.prototype.WQ=function(u){this.ee!== 2584u&&(this.ee&&(this.ee.unbind(m.ma,this.pva,this,!0),this.ee.unbind(m.Al,this.qva,this,!0)),this.ee=u)&&(this.ee.bind(m.ma,this.pva,this,!0),this.ee.bind(m.Al,this.qva,this,!0))};f.prototype.CZ=function(){this.oya(this.K.get("points"))};f.prototype.rZ=function(){var u=this.K.get("mode");if(u!=this.cd){switch(this.cd){case "create":1>this.Dh.length||this.Qi&&2>this.Dh.length?u="create":this.lYa(this.Qi);break;case "edit":"create"==u?"single"===this.K.get("type")&&0<this.Dh.length?u="edit":this.bW(): 2585this.qx(null);break;case "view":"create"===u&&("single"===this.K.get("type")&&0<this.Dh.length?u="view":this.bW());break;default:"create"==u&&("single"===this.K.get("type")&&0<this.Dh.length&&this.uaa(this.pw(-1))?u="edit":this.qx(this.pw(-1),!1))}this.cd=u;this.K.set("mode",this.cd);this.jAa()}};f.prototype.LZ=function(){var u=this.K.get("type");u!==this.nf&&(this.nf=u,"single"===this.nf&&1<this.Dh.length&&this.K.set("points",this.Fdb.slice(0,1)))};f.prototype.pJ=function(){this.Zza();this.W0()}; 2586f.prototype.sA=function(){var u=this.caa(this.wh);u&&u.pM(this.K.get("area"))};f.prototype.Jo=function(u){u.which==k.rV&&this.M.get("isKeyboardTarget")&&("create"==this.K.get("mode")?this.K.set("mode","edit"):"edit"==this.cd&&this.qx(null))};f.prototype.bW=function(){this.HNa();this.qx(this.pw(-1),!1)};f.prototype.NO=function(){return d.pb()&&!d.Df()};f.prototype.HNa=function(){var u=this.M.get("application").zm("MeasureModel3DObjectPoint");if(!this.NO()){var v=this.pw(-1);v&&this.uaa(v)&&(u.set("x", 2587v.get("x")),u.set("y",v.get("y")),u.set("z",v.get("z")))}this.K.set("points",this.Dh.concat([u]))};f.prototype.pw=function(u){var v=[this.K].concat(this.Dh);return 0>u&&0<v.length-u?v[v.length+u]:0<=u&&u<v.length?v[u]:null};f.prototype.lYa=function(u){this.K.set("points",this.Dh.filter(function(v){return v!=u}))};f.prototype.uaa=function(u){return!!u&&this.Ti.get(u).a3()};f.prototype.pva=function(u){if("other"!=u.data.type)if("create"==this.K.get("mode")){if(this.Qi){var v=this.Qi;this.qx(null);this.aOa(v, 2588u)}"single"==this.nf&&0<this.Dh.length?this.K.set("mode","edit"):this.bW()}else"edit"==this.K.get("mode")&&this.qx(null)};f.prototype.qva=function(){"create"==this.K.get("mode")&&this.NO()&&this.K.set("mode","edit")};f.prototype.Iva=function(){"create"==this.K.get("mode")&&this.K.set("mode","edit")};f.prototype.Hva=function(u){if("create"==this.K.get("mode")){var v=this.pw(-2);u=this.sQ.get(u.source);v==u?this.K.set("mode","edit"):(v=this.Qi,this.qx(null),v.set("x",u.get("x")),v.set("y",u.get("y")), 2589v.set("z",u.get("z")),v=this.pw(0),u==v?this.K.set("mode","edit"):this.bW())}};f.prototype.Jva=function(u){"edit"==this.K.get("mode")&&this.qx(this.sQ.get(u.source),!0)};f.prototype.Kva=function(){"edit"==this.K.get("mode")&&this.qx(null)};f.prototype.Lva=function(){this.W0()};f.prototype.W0=function(){for(var u=[],v=this.pw(0),w=this.naa(),x=0;x<w.length;x++){var y=w[x];v=this.Ti.get(v);var z=this.Ti.get(y);z=v.distanceTo(z);(v=this.caa(this.Lq[x]))&&v.pM(z);u.push(z);v=y}u=u.reduce(function(B,E){return B+ 2590E},0);(v=this.caa(this.Ti.get(w[w.length-1])))&&v.pM(u);this.K.set("distance",isNaN(u)?void 0:u)};f.prototype.aOa=function(u,v){if(v=v&&v.data.position)v=this.ia.worldPositionToLocal(v,this.ia.getMatrixWorld()),this.Ti.get(u).YHa(v.x,v.y,v.z)};f.prototype.qx=function(u,v){v||(v=!1);if(this.Qi!==u){if(this.Qi){var w=this.Ti.get(this.Qi);w.cIa(!1);w.QHa(!1)}if(this.Qi=u)w=this.Ti.get(this.Qi),w.cIa(v),w.QHa(v||!this.NO());this.$za();this.jAa();this.X0()}};
2590f.prototype.oya=function(u){this.Dh!=u&&(this.Dh.forEach(function(v){-1== 2591u.indexOf(v)&&this.Nqa(v)}.bind(this)),this.Dh=u,this.Qi&&this.Dh.indexOf(this.Qi)&&(this.Qi=null),this.X0(),this.Dh.forEach(function(v){this.rqa(v)}.bind(this)),this.$za(),this.Zza(),this.b1a(),this.W0())};f.prototype.naa=function(){return this.Dh.filter(function(u){return this.uaa(u)||this.Ti.get(u).uz}.bind(this))};f.prototype.$za=function(){for(;this.Dh.length<this.Lq.length;)this.eRa();for(;this.Dh.length>this.Lq.length;)this.AQa();for(var u=!0,v=0;v<this.Dh.length;v++){var w=this.pw(v),x=this.pw(v+ 25921);w==this.Qi&&(u=!1);var y=u?x:w;this.Lq[v].R4(this.Ti.get(u?w:x),this.Ti.get(y))}};f.prototype.Zza=function(){this.X0a();var u=this.naa(),v=1==u.length;this.K.get("displayPartialDistanceLabel")&&!v&&this.Lq.forEach(function(w){var x=this.DY(w);x.pIa(w);x.setStyle(h.AMa)}.bind(this));this.K.get("displayDistanceLabel")&&(v?(u=this.DY(this.Lq[0]),u.pIa(this.Lq[0]),u.setStyle(h.Gna)):1<u.length&&(v=this.Ti.get(u[u.length-1]),u=this.DY(v),u.dab(v),u.setStyle(h.Gna)));this.K.get("displayAreaLabel")&& 2593this.wh&&(u=this.DY(this.wh),u.O9a(this.wh),u.setStyle(h.zMa));this.gRa();this.W0();this.sA()};f.prototype.jAa=function(){var u=!this.Qi&&"view"!=this.cd;this.Ti.forEach(function(v){v.kab(u)})};f.prototype.b1a=function(){this.wh&&this.wh.R4([this.K].concat(this.naa()).map(function(u){return this.Ti.get(u)}.bind(this)))};f.prototype.rqa=function(u){var v=this.Ti.get(u);v||(v=new b(this.K,this.ia,this.lb,u),this.Ti.set(u,v),this.sQ.set(v,u),v.bind(m.Al,this.Iva,this,!0),v.bind(m.ma,this.Hva,this,!0), 2594v.bind(m.gb,this.Jva,this,!0),v.bind(m.Eb,this.Kva,this,!0),v.bind(m.Cl,this.Lva,this,!1))};f.prototype.Nqa=function(u){var v=this.Ti.get(u);v&&(v.unbind(m.Cl,this.Lva,this,!1),v.unbind(m.Al,this.Iva,this,!0),v.unbind(m.ma,this.Hva,this,!0),v.unbind(m.gb,this.Jva,this,!0),v.unbind(m.Eb,this.Kva,this,!0),v.dispose(),this.Ti["delete"](u),this.sQ["delete"](v))};f.prototype.AQa=function(){var u=new g(this.K,this.lb);this.Lq.push(u)};f.prototype.eRa=function(){0!=this.Lq.length&&this.Lq.pop().dispose()}; 2595f.prototype.zQa=function(){var u=new h(this.ia,this.K,this.lb);this.jE.push(u);return u};f.prototype.X0a=function(){this.DJ.clear()};f.prototype.DY=function(u){var v=this.jE.length>this.DJ.size?this.jE[this.DJ.size]:this.zQa();this.DJ.set(u,v);return v};f.prototype.caa=function(u){return this.DJ.get(u)};f.prototype.gRa=function(){for(;this.jE.length>this.DJ.size;)this.dRa()};f.prototype.dRa=function(){0!=this.jE.length&&this.jE.pop().dispose()};f.prototype.VPa=function(){this.wh||(this.wh=new c(this.K, 2596this.lb))};f.prototype.bRa=function(){this.wh&&(this.wh.dispose(),this.wh=null)};f.prototype.X0=function(){this.K.set("draggingPoint",!!this.Qi)};var e=["points"],n=["mode"],q=["type"],p=["displayAreaLabel","displayDistanceLabel","displayPartialDistanceLabel"],r=["area"],t=["pointer"];return f}); 2597define("eX","require exports three.mod ld pw gD fS nU eg".split(" "),function(a,f,l,m,k,c,h,g,b){a=function(q){function p(r,t,u,v,w){r=q.call(this,r,t,u,w)||this;r.oy=r.oy.bind(r);r.sc=u;r.Jp=new c;r.Jp.bind(k.ba,r.pl,r,!0);r.G.I(h.Vy);r.G.I(h.PM).object=r.object;m.ea(r.object,d,r.oy,!0);r.ed();return r}Z(p,q);p.prototype.ed=function(){};p.prototype.fd=function(){};p.prototype.dispose=function(){m.ca(this.object,d,this.oy);this.Jp.unbind(k.ba,this.pl,this);this.Jp=null;this.fd();q.prototype.dispose.call(this)}; 2598p.prototype.pl=function(r){e.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:e.x*n,rotationY:e.y*n,rotationZ:e.z*n,scale:Math.max(r.data.scale,.001)});this.object.trigger(k.Cl)};p.prototype.oy=function(){if(this.object.get("positionDraggable")||this.object.get("rotationDraggable")||this.object.get("scaleDraggable")){var r=this.G.J(h.Wg,!0);r.translate= 2599this.object.get("positionDraggable")||!1;r.rotate=this.object.get("rotationDraggable")||!1;r.scale=this.object.get("scaleDraggable")||!1;r.N=this.Jp}else this.G.ha(h.Wg)};return p}(g);var d=["positionDraggable","rotationDraggable","scaleDraggable"],e=new l.Euler,n=180/Math.PI;l=b.Qd(a);l=b.y7(l);l=b.MM(l);l=b.aN(l);l=b.mb(l);l=b.qMa(l);return l=b.xna(l)}); 2600define("cP",["require","exports","ld","eg"],function(a,f,l,m){a=function(){function k(c,h,g,b,d){this.object=c;this.model=h;this.sc=g;this.renderer=d;this.ef=this.ef.bind(this);this.enabled=!1;this.G=null;l.ea(this.object,["enabled"],this.ef,!0)}k.prototype.ed=function(){};k.prototype.fd=function(){};k.prototype.dispose=function(){this.disable();l.ca(this.object,["enabled"],this.ef)};k.prototype.ef=function(){this.object.get("enabled")?this.enable():this.disable()};k.prototype.enable=function(){this.enabled|| 2601(this.enabled=!0,this.G=this.sc.P.Pc("ImagePlane"),this.ed())};k.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.fd(),this.G.P.Nd(this.G),this.G=null)};return k}();a=m.Qd(a);a=m.MM(a);a=m.Vm(a);a=m.aN(a);a=m.mb(a);
2601return a=m.Plane(a)}); 2602define("cO",["require","exports","ld","fS","eg"],function(a,f,l,m,k){var c=["objectId"];a=function(){function h(g,b,d,e,n){this.object=g;this.model=b;this.sc=d;this.renderer=n;this.G=this.sc.P.Pc("InnerObject");this.xZ=this.xZ.bind(this);l.ea(this.object,c,this.xZ,!0);this.ed()}h.prototype.ed=function(){};h.prototype.fd=function(){};h.prototype.xZ=function(){var g=this.G.J(m.BH,!0);g.id=this.object.get("objectId");g.container=this.sc};h.prototype.dispose=function(){this.fd();l.ca(this.object,c,this.xZ); 2603this.sc.P.Nd(this.G);this.G=null};return h}();a=k.Qd(a);a=k.MM(a);a=k.aN(a);return a=k.y7(a)}); 2604define("nW","require exports ld fS eg three.mod".split(" "),function(a,f,l,m,k,c){var h=["x","y","z"],g=["targetX","targetY","targetZ"];a=function(){function b(d,e,n,q,p){this.object=d;this.model=e;this.sc=n;this.renderer=p;this.ef=this.ef.bind(this);this.Y3=this.Y3.bind(this);this.f4=this.f4.bind(this);this.enabled=!1;this.G=null;l.ea(this.object,["enabled"],this.ef,!0)}b.prototype.ed=function(){};b.prototype.fd=function(){};b.prototype.dispose=function(){this.disable();l.ca(this.object,["enabled"], 2605this.ef)};b.prototype.ef=function(){this.object.get("enabled")?this.enable():this.disable()};b.prototype.enable=function(){this.enabled||(this.enabled=!0,this.G=this.sc.P.Pc("Line"),this.G.I(m.va),this.G.I(m.Line),this.G.I(m.Es).position=new c.Vector3,l.ea(this.object,h,this.Y3,!0),l.ea(this.object,g,this.f4,!0),this.ed())};b.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.fd(),l.ca(this.object,h,this.Y3),l.ca(this.object,g,this.f4),this.G.P.Nd(this.G),this.G=null)};b.prototype.Y3= 2606function(){var d=this.G.J(m.va);d.translationX=this.object.get("x",0);d.translationY=this.object.get("y",0);d.He=this.object.get("z",0)};b.prototype.f4=function(){var d=this.G.J(m.Es);d.position.x=this.object.get("targetX");d.position.y=this.object.get("targetY");d.position.z=this.object.get("targetZ")};return b}();a=k.Qd(a);a=k.th(a);return a=k.mb(a)}); 2607define("lj",["require","exports","ld","fS","eg"],function(a,f,l,m,k){var c=["x","y","z"],h="divisions centerLinesColor depthTest gridColor opacity size".split(" ");a=function(){function g(b,d,e,n,q){this.object=b;this.model=d;this.sc=e;this.renderer=q;this.ef=this.ef.bind(this);this.b4=this.b4.bind(this);this.V3=this.V3.bind(this);this.enabled=!1;this.G=null;l.ea(this.object,["enabled"],this.ef,!0)}g.prototype.ed=function(){};g.prototype.fd=function(){};g.prototype.dispose=function(){this.disable(); 2608l.ca(this.object,["enabled"],this.ef)};g.prototype.ef=function(){this.object.get("enabled")?this.enable():this.disable()};g.prototype.enable=function(){this.enabled||(this.enabled=!0,this.G=this.sc.P.Pc("HorizonGrid"),this.G.I(m.va),this.G.I(m.Ds),l.ea(this.object,c,this.b4,!0),l.ea(this.object,h,this.V3,!0),this.ed())};g.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.fd(),l.ca(this.object,c,this.b4),l.ca(this.object,h,this.V3),this.G.P.Nd(this.G),this.G=null)};g.prototype.b4=function(){var b= 2609this.G.J(m.va);b.translationX=this.object.get("x",0);b.translationY=this.object.get("y",0);b.He=this.object.get("z",0)};g.prototype.V3=function(){var b=this.G.J(m.Ds);b.IBa=this.object.get("centerLinesColor");b.depthTest=this.object.get("depthTest");b.c2=this.object.get("divisions");b.ODa=this.object.get("gridColor");b.size=this.object.get("size")};return g}();a=k.y7(a);return a=k.mb(a)}); 2610define("fu",["require","exports","ld","fS","eg"],function(a,f,l,m,k){var c=["radius","maxRadius","minRadius"];a=function(){function h(g,b,d,e,n){this.object=g;this.model=b;this.sc=d;this.renderer=n;this.ef=this.ef.bind(this);this.e4=this.e4.bind(this);this.enabled=!1;this.G=null;l.ea(this.object,["enabled"],this.ef,!0)}h.prototype.ed=function(){};h.prototype.fd=function(){};h.prototype.dispose=function(){this.disable();l.ca(this.object,["enabled"],this.ef)};h.prototype.ef=function(){this.object.get("enabled")? 2611this.enable():this.disable()};h.prototype.enable=function(){this.enabled||(this.enabled=!0,this.G=this.sc.P.Pc("Sphere"),this.G.I(m.Sphere),this.G.I(m.Mj),l.ea(this.object,c,this.e4,!0),this.ed())};h.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.fd(),l.ca(this.object,c,this.e4),this.G.P.Nd(this.G),this.G=null)};h.prototype.e4=function(){var g=this.G.J(m.Mj);g.qf=g.Ff=g.nh=1;g.scale=this.object.get("radius");g.zB=this.object.get("maxRadius");g.AB=this.object.get("minRadius")};return h}(); 2612a=k.Qd(a);a=k.MM(a);a=k.kd(a);a=k.mb(a);return a=k.xna(a)}); 2613define("oD",["require","exports","ld","fS","eg"],function(a,f,l,m,k){var c="cameraBox skyBox sourceAlpha sourceCubeTexture sourceX sourceY sourceYaw sourceZ targetAlpha targetCubeTexture targetX targetY targetYaw targetZ".split(" ");a=function(){function h(g,b,d,e,n){this.object=g;this.model=b;this.sc=d;this.rja=e;this.renderer=n;this.ef=this.ef.bind(this);this.c4=this.c4.bind(this);this.enabled=!1;this.G=null;l.ea(this.object,["enabled"],this.ef,!0)}h.prototype.ed=function(){};h.prototype.fd=function(){}; 2614h.prototype.dispose=function(){this.disable();l.ca(this.object,["enabled"],this.ef)};h.prototype.ef=function(){this.object.get("enabled")?this.enable():this.disable()};h.prototype.enable=function(){if(!this.enabled){this.enabled=!0;this.G=this.sc.P.Pc("ProjectedMaterial");this.G.I(m.Wm);var g=this.G.I(m.mb);g.G=this.sc;g.attach=!0;l.ea(this.object,c,this.c4,!0);this.ed()}};h.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.fd(),l.ca(this.object,c,this.c4),this.G.P.Nd(this.G),this.G= 2615null)};h.prototype.c4=function(){var g=this.G.J(m.Wm);g.ly=this.object.get("nearPlane")||!1;g.XIa=this.object.get("skyBox")||!1;g.ZIa=this.object.get("sourceAlpha")||0;g.bC=this.rja;g.Z4=this.object.get("sourceX")||0;g.a5=this.object.get("sourceY")||0;g.b5=this.object.get("sourceZ")||0;g.MU=this.object.get("sourceYaw")||0;g.KU=this.object.get("sourceCubeTexture");g.uJa=this.object.get("targetAlpha")||0;g.targetX=this.object.get("targetX")||0;g.targetY=this.object.get("targetY")||0;g.m5=this.object.get("targetZ")|| 26160;g.ubb=this.object.get("targetYaw")||0;g.RU=this.object.get("targetCubeTexture")};return h}();return k.mb(a)}); 2617define("kV",["require","ld","pw","hI","fS"],function(a){function f(d,e,n,q,p){this.K=d;this.ia=e;this.lb=n;this.j=p;this.M=this.j.M;this.Sq=this.Sq.bind(this);this.Lw=this.Lw.bind(this);this.En=this.En.bind(this);this.Nf=this.Nf.bind(this);this.$ba=this.lb.getComponent(c.Vh).vp;this.$ba.bind(m.da,this.Mw,this,!1);this.aca=this.Jta=!1;this.Rt=new k(this.M);this.Rt.setPosition(0);
2617this.Rt.update();this.m=null;l.ea(this.K,["enabled"],this.Sq,!0)}var l=a("ld"),m=a("pw"),k=a("hI"),c=a("fS");f.prototype.Sq= 2618function(){this.K.get("enabled")?this.DD():this.zq()};f.prototype.DD=function(){if(!this.m){this.m=this.lb.P.Pc("Reticle");var d=this.m.I(c.mb);d.G=this.lb;d.id=this.K.get("parentId");this.m.I(c.Plane).renderOrder=2;this.m.I(c.gg).source=this.Rt.cg();this.m.I(c.Vy);d=this.m.I(c.PM);d.pbb=this.K;d.object=this.K;l.ea(this.ia,b,this.Lw,!0);l.ea(this.K,h,this.En,!0);l.ea(this.K,g,this.Nf,!0)}};f.prototype.zq=function(){this.m&&(this.lb.P.Nd(this.m),this.m=null,l.ca(this.ia,b,this.Lw),l.ca(this.K,h,this.En), 2619l.ca(this.K,g,this.Nf))};f.prototype.Lw=function(){var d=this.m.J(c.Mj,!0);d.qf=d.Ff=2;d.scale=this.ia.get("surfaceReticleRadius");d.zB=this.ia.get("surfaceReticleMaxRadius");d.AB=this.ia.get("surfaceReticleMinRadius");this.fAa()};f.prototype.En=function(){var d=this.m.J(c.fv,!0);d.x=this.K.get("x");d.y=this.K.get("y");d.z=this.K.get("z");d.distance=this.K.get("distance");d.sT=this.K.get("horizontal")};f.prototype.Nf=function(){var d=this.m.J(c.Qd,!0);d.eH=this.K.get("useHandCursor");d.zM=this.K.get("transparentAreaActive"); 2620d.N=this.K;d=this.m.J(c.gg);d.opacity=this.K.get("opacity");d.hidden=this.K.get("hidden");d.depthTest=this.K.get("depthTest")};f.prototype.Mw=function(){this.Jta=!0;this.fAa()};f.prototype.fAa=function(){var d=this.Jta&&.5<this.ia.get("opacity");this.aca!=d&&(this.aca=d)&&this.m&&this.m.J(c.fv)};f.prototype.dispose=function(){this.zq();l.ca(this.K,["enabled"],this.Sq);this.$ba.unbind(m.da,this.Mw,this,!1);this.$ba=null};var h=["distance","horizontal","x","y","z"],g=["depthTest","hidden","opacity", 2621"transparentAreaActive","useHandCursor"],b=["opacity","surfaceReticleRadius","surfaceReticleMaxRadius","surfaceReticleMinRadius","surfaceSelectionEnabled"];return f}); 2622define("gu",["require","exports","ld","eg"],function(a,f,l,m){a=function(){function k(c,h,g,b,d){this.object=c;this.model=h;this.sc=g;this.renderer=d;this.ef=this.ef.bind(this);this.enabled=!1;this.G=null;l.ea(this.object,["enabled"],this.ef,!0)}k.prototype.ed=function(){};k.prototype.fd=function(){};k.prototype.dispose=function(){this.disable();l.ca(this.object,["enabled"],this.ef)};k.prototype.ef=function(){this.object.get("enabled")?this.enable():this.disable()};k.prototype.enable=function(){this.enabled|| 2623(this.enabled=!0,this.G=this.sc.P.Pc("VideoPlane"),this.ed())};k.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.fd(),this.G.P.Nd(this.G),this.G=null)};return k}();a=m.Qd(a);a=m.MM(a);a=m.oo(a);a=m.mb(a);a=m.aN(a);return a=m.Plane(a)}); 2624define("hg","require exports eG eX cP cO nW lj fu ge oD kV gu".split(" "),function(a,f,l,m,k,c,h,g,b,d,e,n,q){d.Ju("MeasureModel3DObject",l);d.Ju("ChildModel3DObject",m);d.Ju("HorizonGridModel3DObject",g);d.Ju("ImagePlaneModel3DObject",k);d.Ju("InnerModel3DObject",c);d.Ju("LineModel3DObject",h);d.Ju("ProjectedMaterialModel3DObject",e);d.Ju("SphereModel3DObject",b);d.Ju("SurfaceReticleModel3DObject",n);d.Ju("VideoPlaneModel3DObject",q);return d}); 2625define("ih","require exports ld pw bs pA gD w lQ jU oj".split(" "),function(a,f,l,m,k,c,h,g,b,d,e){return function(n){function q(p,r,t,u,v){var w=n.call(this)||this;w.kG=[];w.TAa=0;w.SAa=0;w.e2=!1;w.qCa=!1;w.cja=!1;w.MEa=0;w.renderer=p;w.xs=r;w.model=t;w.sc=u;w.La=v;w.Er=w.Er.bind(w);w.R1=w.R1.bind(w);w.Gha=b.zp(w.Gha,w);w.jy=w.jy.bind(w);w.v3=w.v3.bind(w);w.u3=w.u3.bind(w);w.vc=w.renderer.M;w.zg=w.renderer.getParent();w.enabled=!0;w.type=q.TM;w.$a();return w}Z(q,n);q.prototype.getType=function(){return this.type}; 2626q.prototype.qb=function(p){this.enabled=p};q.prototype.dispose=function(){this.Ca()};q.prototype.$a=function(){this.zg.bind(m.Pb,this.Er,this,!0);this.zg.bind(m.ma,this.RAa,this,!0);l.bu(this.model,["camera.lockMouse"],this.R1,!0);l.bu(this.model,["objects"],this.jy,!0);this.nl=new d(this.zg.gd());this.nl.bind(m.ba,this.qFa,this,!0);document.addEventListener("keyup",this.v3);document.addEventListener("keydown",this.u3);this.ss(q.TM)};q.prototype.Ca=function(){this.zg.unbind(m.Pb,this.Er,this);this.zg.unbind(m.ma, 2627this.RAa,this);l.ca(this.model,["camera.lockMouse"],this.R1);l.ca(this.model,["objects"],this.jy);this.DU([]);this.nl.unbind(m.ba,this.qFa,this);this.nl.rp()&&this.nl.unlock();this.nIa(!1);this.nl.dispose();document.removeEventListener("keyup",this.v3);document.removeEventListener("keydown",this.u3)};q.prototype.R1=function(){this.zT=!g.pb()&&this.model.get("camera").get("lockMouse");!this.zT&&this.nl.rp()&&this.nl.unlock();this.oKa()};q.prototype.oKa=function(){this.nIa((!this.e2||!this.qCa)&&(g.pb()|| 2628!this.zT))};q.prototype.nIa=function(p){this.cja!=p&&((this.cja=p)?this.vc.UO.G1():this.vc.UO.B4())};q.prototype.Er=function(){this.nl.rp()||this.ss(q.TM)};
2628q.prototype.u3=function(p){-1!=q.ULa.indexOf(p.code)&&(this.type==q.TM&&this.ss(q.N6),this.zT&&!this.nl.rp()&&this.nl.lock())};q.prototype.v3=function(p){p.code==k.na.EH&&(p=(new Date).getTime(),this.aKa(m.ma),500>p-this.MEa&&this.aKa(m.Al),this.MEa=p)};q.prototype.aKa=function(p){var r=this.vc.Za()/2,t=this.vc.Cb()/2;p=new c(p,r,t,r,t,0,0,void 0); 2629this.zg.trigger(p)};q.prototype.RAa=function(){this.SAa=(new Date).getTime();this.zT&&!this.nl.rp()?this.nl.lock():this.Gha()};q.prototype.N3a=function(){this.zT&&this.nl.rp()&&this.nl.unlock()};q.prototype.qFa=function(){this.nl.rp()?this.ss(q.N6):this.ss(q.TM)};q.prototype.jy=function(){this.DU(this.model.get("objects",[]))};q.prototype.DU=function(p){var r=this;this.kG.forEach(function(t){t.unbind(m.ma,r.BFa,r)});this.kG=p;this.kG.forEach(function(t){t.bind(m.ma,r.BFa,r,!0);e.Ja("MeasureModel3DObject", 2630t)&&(t.bind(m.F("draggingPoint"),r.GT,r,!0),t.bind(m.F("mode"),r.GT,r,!0))});this.GT()};q.prototype.BFa=function(p){p.source.get("useHandCursor")&&(this.TAa=(new Date).getTime())};q.prototype.GT=function(){var p=!1,r=!1;this.kG.forEach(function(u){e.Ja("MeasureModel3DObject",u)&&(r=r||!!u.get("draggingPoint"),p=p||"edit"==u.get("mode")&&!!u.get("draggingPoint"))});this.qCa=p;var t=this.model.get("camera");r!=this.e2&&(this.e2=r,setTimeout(function(){t.f$a(this.e2)}.bind(this),0));this.oKa()};q.prototype.Gha= 2631function(){100<Math.abs(this.SAa-this.TAa)&&this.N3a()};q.prototype.ss=function(p){this.type!==p&&(this.type=p,this.trigger(m.ba))};q.TM="mouse";q.N6="gaze";q.ULa=[k.na.gj,k.na.Qh,k.na.ab,k.na.tb,k.na.fo,k.na.Yu,k.na.yv,k.na.rv,k.na.E,k.na.Q];return q}(h)}); 2632define("fk","require exports three.mod ld pw mo kl fS bh bn".split(" "),function(a,f,l,m,k,c,h,g,b,d){var e=new l.Vector3(0,0,0),n=new l.Vector3(0,0,-1);a=function(){function p(r,t,u,v,w,x){this.renderer=r;this.xs=t;this.model=u;this.Ge=v;this.sc=w;this.La=x;this.ZU=this.ZU.bind(this);this.vy=this.vy.bind(this);this.Mx=this.Mx.bind(this);this.vc=this.renderer.M;this.zg=this.renderer.getParent();this.Gu=this.model.get("application").zm("Model3DPointer");this.$a()}p.prototype.qb=function(r){var t=this.La.J(g.Cc); 2633t&&(t.enabled=r)};p.prototype.dispose=function(){this.Ca()};p.prototype.$a=function(){this.eM=new c(this.vc.Bia());this.Z4a=new q(this.zg,this.eM);this.Wn=new h;this.Wn.$Ha(this.Z4a);var r=this.La.I(g.Cc);r.La=this.La;r.origin=e;r.direction=n;r.SF=this.zg;r.b2=this.Wn;r.N=this.Gu;this.vc.set("toolTipCentered",!0);this.model.set("pointer",this.Gu);this.zab();this.mla();this.Wn.push(b.RC);d.requestFrame(this.ZU)};p.prototype.Ca=function(){this.Wn.pop(b.RC);this.wbb();this.Fla();this.vc.set("toolTipCentered", 2634!1);this.vc.set("toolTipCenteredOffsetY",void 0);this.model.set("pointer",void 0);this.La.ha(g.Cc);this.Wn.dispose();d.HBa(this.ZU)};p.prototype.mla=function(){this.$n=this.sc.P.Pc("GazeReticle");this.$n.I(g.mb).G=this.La;this.$n.I(g.Plane).renderOrder=2;this.$n.I(g.JC);var r=this.$n.I(g.gg);r.source=this.eM.cg();r.depthTest=!1;this.$n.I(g.va).He=-1;this.renderer.bind(k.tc,this.vy,this,!0);this.vy();this.pS(this.La.getComponent(g.Cc),this.Gu)};p.prototype.pS=function(r,t){t.set("originX",r.origin.x); 2635t.set("originY",r.origin.y);t.set("originZ",r.origin.z);t.set("directionX",r.direction.x);t.set("directionY",r.direction.y);t.set("directionZ",r.direction.z)};p.prototype.Fla=function(){this.$n&&(this.$n.P.Nd(this.$n),this.$n=null)};p.prototype.icb=function(){if(this.$n){var r=this.$n.J(g.Mj,!0);r.qf=r.Ff=2;var t=Math.min(this.vc.Za(),this.vc.Cb())/100;r.AB=r.zB=Math.round(4*t);this.vc.set("toolTipCenteredOffsetY",2*t)}};p.prototype.ZU=function(r){this.$n&&this.eM.update(r)&&(this.$n.J(g.gg).uM=(new Date).getTime()); 2636d.requestFrame(this.ZU)};p.prototype.vy=function(){this.icb()};p.prototype.zab=function(){m.bu(this.model,"camera",this.Mx,!0)};p.prototype.wbb=function(){m.ca(this.model,"camera",this.Mx);this.aIa(!0)};p.prototype.Mx=function(){this.aIa(!1)};p.prototype.aIa=function(r){var t=this.La.J(g.EC);t&&(t.VK=r);(t=this.La.J(g.FC))&&(t.VK=r);(t=this.La.J(g.LC))&&(t.VK=r)};return p}();var q=function(){function p(r,t){this.zg=r;this.eM=t}p.prototype.EDa=function(){return this.zg};p.prototype.I4=function(r,t){-1<
2637t.indexOf(b.Je)?this.eM.OG(!0):this.eM.OG(!1)};return p}();return a}); 2638define("cw","require exports three.mod ld pw gD kl fS oQ bh oj".split(" "),function(a,f,l,m,k,c,h,g,b,d,e){a=function(){function t(u,v,w,x,y,z){this.kG=[];this.HT=[];this.renderer=u;this.xs=v;this.model=w;this.Ge=x;this.sc=y;this.La=z;this.jy=this.jy.bind(this);this.YT=[];this.enabled=!1;this.$a()}t.prototype.qb=function(u){this.enabled!==u&&((this.enabled=u)?m.bu(this.model,["objects"],this.jy,!0):(m.ca(this.model,["objects"],this.jy),this.DU([])))};t.prototype.dispose=function(){this.Ca()};t.prototype.$a= 2639function(){b.N.bind(k.Th,this.GB,this,!0)};t.prototype.Ca=function(){b.N.unbind(k.Th,this.GB,this);this.CIa([])};t.prototype.GB=function(){this.CIa(b.ng)};t.prototype.CIa=function(u){var v=this.YT;this.YT=u.map(function(x){var y=v.findIndex(function(z){return z.pc==x});return-1!==y?v.splice(y,1)[0]:new n(x,this.model,this.Ge,this.La)}.bind(this));v.forEach(function(x){x.dispose()});this.YT.forEach(function(x){x.qb(this.enabled);x.update()}.bind(this));var w=this.YT.reduce(function(x,y){return!x|| 2640x.d2<y.d2?y:x},null);this.YT.forEach(function(x){x.N$a(x===w)});this.model.set("pointer",null!==w?w.Im:void 0)};t.prototype.jy=function(){this.DU(this.model.get("objects",[]))};t.prototype.DU=function(u){this.kG=u;this.GT()};t.prototype.GT=function(){this.HT.forEach(function(u){u.unbind(k.F("mode"),this.mja,this)}.bind(this));this.HT=[];this.HT=this.kG.filter(function(u){return e.Ja("MeasureModel3DObject",u)});this.HT.forEach(function(u){u.bind(k.F("mode"),this.mja,this,!0)}.bind(this));this.mja()}; 2641t.prototype.mja=function(){var u=!1,v=!1;this.HT.forEach(function(w){v=v||"create"==w.get("mode");u=u||"edit"==w.get("mode")}.bind(this));this.model.get("camera").Y9a(v)};return t}();var n=function(){function t(u,v,w,x){this.d2=this.uha=0;this.pc=u;this.model=v;this.Ge=w;this.La=x;this.d2=this.uha="right"===this.pc.handedness?1:0;this.Im=this.model.get("application").zm("Model3DPointer");this.Zi=this.enabled=!1;this.$a()}t.prototype.update=function(){this.ecb();b.Xka(this.pc,this.Fha.wi,this.Fha.wi, 2642this.model.get("surfaceSelectionEnabled")&&(this.p7a||this.r7a||this.q7a)?void 0:this.distance);b.BIa(this.pc,!this.Zi||!this.enabled)};t.prototype.qb=function(u){this.enabled!==u&&(this.enabled=u,u=this.Hu.J(g.Cc,!0))&&(u.enabled=this.enabled)};t.prototype.N$a=function(u){this.Zi!==u&&(this.Zi=u,u=this.Hu.J(g.Cc,!0))&&(u.Zi=this.Zi)};t.prototype.dispose=function(){this.Ca()};t.prototype.$a=function(){this.Fha=new r(this.Im);this.Wn=new h;this.Wn.$Ha(this.Fha);this.VT=new c;this.Hu=this.Ge.P.Pc("Pointer"); 2643var u=this.Hu.J(g.Cc,!0);u.UBa=!0;u.matrixWorld=new l.Matrix4;u.La=this.La;u.SF=this.VT;u.b2=this.Wn;u.N=this.Im;u.enabled=this.enabled;b.N.bind(k.lz,this.gGa,this,!0);b.N.bind(k.DH,this.hGa,this,!0);b.N.bind(k.Uf,this.fGa,this,!0);this.Im.bind(k.gb,this.$r,this,!0);this.Im.bind(k.Eb,this.lh,this,!0);this.Im.bind(k.Pb,this.HB,this,!0);this.Im.bind(k.Jb,this.bs,this,!0)};t.prototype.Ca=function(){this.Im.unbind(k.gb,this.$r,this);this.Im.unbind(k.Eb,this.lh,this);this.Im.unbind(k.Pb,this.HB,this); 2644this.Im.unbind(k.Jb,this.bs,this);this.Hu.P.Nd(this.Hu);this.Wn.dispose();b.N.unbind(k.lz,this.gGa,this);b.N.unbind(k.DH,this.hGa,this);b.N.unbind(k.Uf,this.fGa,this)};t.prototype.ecb=function(){var u=this.Hu.J(g.Cc,!0);u.matrixWorld.copy(this.pc.matrixWorld);u.origin.copy(this.pc.ray.origin);u.direction.copy(this.pc.ray.direction);u.Wb.copy(this.pc.Wb);u.bH=this.pc.bH;this.pS(u,this.Im)};t.prototype.pS=function(u,v){p.origin.set(u.origin);p.direction.set(u.direction);p.applyMatrix4(u.matrixWorld); 2645v.set("originX",u.origin.x);v.set("originY",u.origin.y);v.set("originZ",u.origin.z);v.set("directionX",u.direction.x);v.set("directionY",u.direction.y);v.set("directionZ",u.direction.z)};t.prototype.fGa=function(u){u.data.pointerState===this.pc&&(u=300>Date.now()-this.uha,this.uha=Date.now(),this.VT.trigger(k.ma),u&&this.VT.trigger(k.Al))};t.prototype.gGa=function(u){u.data.pointerState===this.pc&&(this.d2=Date.now(),this.VT.trigger(k.gb))};t.prototype.hGa=function(u){u.data.pointerState===this.pc&& 2646this.VT.trigger(k.Eb)};t.prototype.HB=function(u){this.bIa(u);this.wIa(u)};t.prototype.bIa=function(u){u.data.position?(u=u.data.position,p.copy(this.pc.ray).applyMatrix4(this.pc.matrixWorld),this.distance=p.origin.distanceTo(q.set(u.x,u.y,u.z))):this.distance=void 0};t.prototype.wIa=function(u){this.r7a="mesh"==u.data.type;this.p7a="bone"==u.data.type;this.q7a="gs"==u.data.type};t.prototype.$r=function(u){this.bIa(u);this.wIa(u)};t.prototype.lh=function(){this.distance=void 0};t.prototype.bs=function(){this.distance= 2647void 0};return t}(),q=new l.Vector3,p=new l.Ray,r=function(){function t(u){this.Im=u}t.prototype.EDa=function(){return this.Im};t.prototype.I4=function(u,v){this.wi=-1<v.indexOf(d.Je)};return t}();return a}); 2648define("pd","require exports three.mod ld pw kl lv fS".split(" "),function(a,f,l,m,k,c,h,g){var b=new l.Vector3(0,0,0),d=Math.PI/180,e=new l.Vector3;return function(){function n(q,p,r,t,u,v){this.renderer=q;this.xs=p;this.model=r;this.Ge=t;this.sc=u;this.La=v;this.B2=this.B2.bind(this);this.vy=this.vy.bind(this);this.Er=this.Er.bind(this);this.vc=this.renderer.M;this.zg=this.renderer.getParent();this.Gu=this.model.get("application").zm("Model3DPointer");this.enabled=!0;this.$a()}n.prototype.qb=function(q){this.enabled= 2649q;var p=this.La.J(g.Cc);p&&(p.enabled=q)};n.prototype.dispose=function(){this.Ca()};n.prototype.$a=function(){var q=this.La.I(g.Cc);q.La=this.La;q.origin=b;q.direction=new l.Vector3;q.SF=this.zg;q.N=this.Gu;this.Wn=new c;this.Wn.ns(this.zg);q.b2=this.Wn;q.enabled=this.enabled;m.ea(this.model,["camera.fov"],this.B2,!0);this.renderer.bind(k.tc,this.vy,this,!0);this.zg.o3a(k.gb,this.Er,this);
2649this.zg.bind(k.Pb,this.Er,this,!0);this.model.set("picker",this);this.model.set("pointer",this.Gu)};n.prototype.Ca= 2650function(){m.ca(this.model,["camera.fov"],this.B2);this.renderer.unbind(k.tc,this.vy,this);this.zg.unbind(k.gb,this.Er,this);this.zg.unbind(k.Pb,this.Er,this);this.La.ha(g.Cc);this.Wn.dispose();this.model.set("picker",void 0);this.model.set("pointer",void 0)};n.prototype.vy=function(){this.Sla()};n.prototype.B2=function(){this.Sla()};n.prototype.Er=function(q){this.O7a=q.x;this.P7a=q.y;this.Sla()};n.prototype.Sla=function(){var q=this.La.J(g.Cc);this.sDa(this.O7a,this.P7a,q.direction);this.pS(q,this.Gu)}; 2651n.prototype.pS=function(q,p){p.set("originX",q.origin.x);p.set("originY",q.origin.y);p.set("originZ",q.origin.z);p.set("directionX",q.direction.x);p.set("directionY",q.direction.y);p.set("directionZ",q.direction.z)};n.prototype.sDa=function(q,p,r){var t;r=r||new l.Vector3;var u=(null===(t=this.model.get("camera"))||void 0===t?void 0:t.get("fov"))||90;t=this.vc.Za();var v=this.vc.Cb();void 0===q&&(q=t/2);void 0===p&&(p=v/2);r.set(q-t/2,v/2-p,-t/(2*Math.tan((t>v?u:h.Kp(u,t,v))*d/2))).normalize();return r}; 2652n.prototype.p4=function(q,p){var r=this.La.getComponent(g.Cc);if(r&&r.hs)return r.hs.p4([this.sc],b,this.sDa(q,p,e))};return n}()}); 2653define("mZ","require exports ld pw ih fk cw pd oQ".split(" "),function(a,f,l,m,k,c,h,g,b){return function(){function d(e,n,q,p,r,t){this.renderer=e;this.xs=n;this.model=q;this.Ge=p;this.sc=r;this.La=t;this.enabled=!0;this.Mx=this.Mx.bind(this);this.$a()}d.prototype.qb=function(e){var n;this.enabled=e;null===(n=this.MF)||void 0===n?void 0:n.qb(this.enabled)};d.prototype.dispose=function(){this.Ca()};d.prototype.$a=function(){l.ea(this.model,"camera",this.Mx,!1);b.N.bind(m.ba,this.CKa,this,!0);this.Ula()}; 2654d.prototype.Ca=function(){l.ca(this.model,"camera",this.Mx);b.N.unbind(m.ba,this.CKa,this);this.ss("none");this.zJa()};d.prototype.Mx=function(){this.Ula()};d.prototype.CKa=function(){this.Ula()};d.prototype.Ula=function(){b.isPresenting?this.ss("xr"):"FirstPersonModel3DCamera"==this.model.get("camera").get("class")?this.Hab():(this.zJa(),this.ss("mouse"))};d.prototype.Hab=function(){this.eL||(this.eL=new k(this.renderer,this.xs,this.model,this.sc,this.La),this.eL.bind(m.ba,this.KFa,this,!0),this.KFa())}; 2655d.prototype.zJa=function(){var e;this.eL&&(null===(e=this.eL)||void 0===e?void 0:e.dispose(),this.eL=void 0)};d.prototype.KFa=function(){var e;switch(null===(e=this.eL)||void 0===e?void 0:e.getType()){case k.N6:this.ss("gaze");break;default:this.ss("mouse")}};d.prototype.ss=function(e){var n;if(this.type!==e){this.MF&&this.MF.dispose();this.type=e;switch(this.type){case "mouse":this.MF=new g(this.renderer,this.xs,this.model,this.Ge,this.sc,this.La);break;case "gaze":this.MF=new c(this.renderer,this.xs, 2656this.model,this.Ge,this.sc,this.La);break;case "xr":this.MF=new h(this.renderer,this.xs,this.model,this.Ge,this.sc,this.La);break;default:this.MF=void 0}null===(n=this.MF)||void 0===n?void 0:n.qb(this.enabled)}};return d}()}); 2657define("lc",["require","ld","fS"],function(a){function f(c,h){this.Ac=c;this.pd=h;this.W=!1;this.ii=this.ii.bind(this);l.ea(this.Ac,k,this.ii,!0)}var l=a("ld"),m=a("fS");f.prototype.ii=function(){var c=this.Ac.get("enabled")&&!this.Ac.get("disabled");this.W!=c&&(this.W&&this.pd.ha(m.jH),(this.W=c)&&this.pd.I(m.jH));this.W&&(c=this.pd.J(m.jH),c.pCa=this.Ac.get("easingDuration"),c.bias=this.Ac.get("bias"),c.intensity=this.Ac.get("intensity"),c.scale=this.Ac.get("scale"),c.JEa=this.Ac.get("kernelRadius"), 2658c.jFa=this.Ac.get("minResolution"),c.kha=this.Ac.get("blurRadius"),c.output="ao"==this.Ac.get("output")?THREE.SAOPass.OUTPUT.SAO:THREE.SAOPass.OUTPUT.Default)};f.prototype.dispose=function(){this.pd.ha(m.jH);this.pd=null;l.ca(this.Ac,k,this.ii)};var k="disabled enabled bias easingDuration intensity scale kernelRadius minResolution blurRadius output".split(" ");return f}); 2659define("E",["require","ld","fS"],function(a){function f(c,h){this.Ac=c;this.pd=h;this.W=!1;this.ii=this.ii.bind(this);l.ea(this.Ac,k,this.ii,!0)}var l=a("ld"),m=a("fS");f.prototype.ii=function(){var c=this.Ac.get("enabled")&&!this.Ac.get("disabled");this.W!=c&&(this.W&&this.pd.ha(m.lC),(this.W=c)&&this.pd.I(m.lC));this.W&&(c=this.pd.J(m.lC),c.UCa="fxaa"==this.Ac.get("mode"),c.lJa="ssaa"==this.Ac.get("mode"),c.NU=this.Ac.get("ssaaSampleLevel"))};f.prototype.dispose=function(){this.pd.ha(m.lC);this.pd= 2660null;l.ca(this.Ac,k,this.ii)};var k=["disabled","enabled","mode","ssaaSampleLevel"];return f}); 2661define("ll",["require","ld","fS"],function(a){function f(c,h){this.Ac=c;this.pd=h;this.W=!1;this.ii=this.ii.bind(this);l.ea(this.Ac,k,this.ii,!0)}var l=a("ld"),m=a("fS");f.prototype.ii=function(){var c=this.Ac.get("enabled")&&!this.Ac.get("disabled");this.W!=c&&(this.W&&this.pd.ha(m.UM),(this.W=c)&&this.pd.I(m.UM));this.W&&(c=this.pd.J(m.UM),c.AHa=this.Ac.get("samples"),c.intensity=this.Ac.get("intensity"))};f.prototype.dispose=function(){this.pd.ha(m.UM);this.pd=null;l.ca(this.Ac,k,this.ii)};var k= 2662["disabled","enabled","samples","intensity"];return f}); 2663define("he",["require","ld","fS"],function(a){function f(c,h){this.Ac=c;this.pd=h;this.ii=this.ii.bind(this);l.ea(this.Ac,k,this.ii,!0)}var l=a("ld"),m=a("fS");f.prototype.ii=function(){var c=this.Ac.get("enabled")&&!this.Ac.get("disabled");this.W!=c&&(this.W&&this.pd.ha(m.GH),(this.W=c)&&this.pd.I(m.GH));this.W&&(c=this.pd.J(m.GH),c.rEa=this.Ac.get("innerRadius"),c.zGa=this.Ac.get("outerRadius"),c.color=this.Ac.get("color"),c.opacity=this.Ac.get("opacity"))};f.prototype.dispose=function(){this.pd.ha(m.GH); 2664this.pd=null;l.ca(this.Ac,k,this.ii)};var k="enabled disabled opacity color innerRadius outerRadius".split(" ");return f}); 2665define("m","require exports ou lc E ll he oj".split(" "),function(a,f,l,m,k,c,h,g){return function(){function b(d,e){this.model=d;this.Ge=e;this.filter=this.filter.bind(this);this.Kd=this.Kd.bind(this);this.og=this.og.bind(this);this.$T=new l;this.$T.filter=this.filter;this.$T.Kd=this.Kd;this.$T.og=this.og;this.$T.UG(this.model,"postprocessing")}b.prototype.filter=function(d){return g.Ja("AmbientOcclusionModel3DPostprocessing",d)||g.Ja("AntialiasModel3DPostprocessing",d)||g.Ja("MotionBlurModel3DPostprocessing", 2666d)||g.Ja("VignetteModel3DPostprocessing",d)};b.prototype.Kd=function(d){return g.Ja("AmbientOcclusionModel3DPostprocessing",d)?new m(d,this.Ge):g.Ja("AntialiasModel3DPostprocessing",d)?new k(d,this.Ge):g.Ja("MotionBlurModel3DPostprocessing",d)?new c(d,this.Ge):g.Ja("VignetteModel3DPostprocessing",d)?new h(d,this.Ge):null};b.prototype.og=function(d,e){e.dispose()};b.prototype.dispose=function(){this.$T.dispose()};return b}()}); 2667define("oU","require exports ld pw gD nd fS".split(" "),function(a,f,l,m,k,c,h){a=function(){function e(n,q){this.DB=this.enabled=!1;this.sFa=this.tFa=0;this.model=n;this.Ge=q;this.Gla=this.Gla.bind(this);this.P3=this.P3.bind(this);this.Z3=this.Z3.bind(this);l.ea(this.model,"pixelRatioMinScale",this.Z3,!0)}e.prototype.dispose=function(){this.disable();l.ca(this.model,"pixelRatioMinScale",this.Z3)};e.prototype.Z3=function(){this.disable();1>this.model.get("pixelRatioMinScale")&&this.enable()};e.prototype.disable= 2668function(){this.enabled&&(this.enabled=!1,this.bo(!1),this.XL.unbind(m.ba,this.cGa,this),l.ca(this.model,"camera.x camera.y camera.z camera.yaw camera.pitch camera.fov camera.distance".split(" "),this.P3),this.XL.dispose())};e.prototype.enable=function(){this.enabled||(this.enabled=!0,this.XL=new g(this.model.get("pixelRatioMinScale")),this.XL.bind(m.ba,this.cGa,this,!0),l.ea(this.model,"camera.x camera.y camera.z camera.yaw camera.pitch camera.fov camera.distance".split(" "),this.P3,!0))};e.prototype.P3= 2669function(){this.tFa=Date.now();this.bo(!0)};e.prototype.Gla=function(){Date.now()-this.tFa>e.lna&&this.bo(!1)};e.prototype.bo=function(n){this.DB!==n&&((this.DB=n)?(this.sFa=window.setInterval(this.Gla,e.lna),this.XL.enable()):(window.clearInterval(this.sFa),this.XL.disable()),this.tKa())};e.prototype.cGa=function(){this.tKa()};e.prototype.tKa=function(){var n=this.DB&&this.enabled?this.XL.$x():1;this.Ge.getComponent(h.Scene).q4!=n&&(this.Ge.J(h.Scene).q4=n)};e.lna=100;return e}();var g=function(e){function n(q){var p= 2670e.call(this)||this;p.SB=[];p.IL=0;p.Zn=p.Zn.bind(p);p.k3a(q);p.reset();return p}Z(n,e);n.prototype.k3a=function(q){for(var p=1;p>q;p-=.1)this.SB.push(p);Math.abs(q-this.SB[this.SB.length-1])>d&&this.SB.push(q);c.Zu&&console.log("steps = ["+this.SB.map(function(r){return r.toFixed(2)}).join(", ")+"]")};n.prototype.reset=function(){this.disable();this.jG=0;this.GG=.5;this.dja=0;this.scale=.5*this.SB.length;this.xka=Math.floor(this.scale);this.NBa();this.enable()};n.prototype.enable=function(){!this.IL&& 2671this.GG>n.Oma&&(this.IL=window.requestAnimationFrame(this.Zn))};n.prototype.disable=function(){this.IL&&(window.cancelAnimationFrame(this.IL),this.IL=0)};n.prototype.$x=function(){return this.SB[this.xka]};n.prototype.dispose=function(){this.disable()};n.prototype.Zn=function(q){0!==this.jG&&(this.Ybb(q-this.jG),this.ccb());this.jG=q;this.IL=this.GG>n.Oma?window.requestAnimationFrame(this.Zn):0};n.prototype.Ybb=function(q){for(this.RS.push(q);this.RS.length>n.zLa;)this.RS.shift(),this.GF=this.RS.reduce(function(p, 2672r){return p+r},0)/this.RS.length};
2672n.prototype.NBa=function(){this.RS=[];this.GF=void 0};n.prototype.ccb=function(){if(void 0!==this.GF){var q=1E3/b.y5a(),p=q*n.SLa;q=Math.max(1E3/n.TLa,q*n.NLa);if(this.GF<=q)var r=-1;else if(this.GF>p)r=1;else{c.Zu&&console.log("["+p.toFixed(2)+" > "+this.GF.toFixed(2)+" > "+q.toFixed(2)+"]");return}this.dja&&this.dja!==r&&(this.GG*=n.tMa);this.dja=r;this.scale=Math.min(Math.max(this.scale+r*this.GG,0),this.SB.length-1);1==r?c.Zu&&console.log("["+this.GF.toFixed(2)+ 2673" > "+p.toFixed(2)+"]",this.scale.toFixed(2),"("+(r*this.GG).toFixed(2)+")"):-1==r&&c.Zu&&console.log("["+this.GF.toFixed(2)+" <= "+q.toFixed(2)+"]",this.scale.toFixed(2),"("+(r*this.GG).toFixed(2)+")");p=Math.round(this.scale);this.xka!==p&&(this.NBa(),this.xka=p,this.trigger(m.ba))}};n.SLa=1.5;n.NLa=1.1;n.zLa=15;n.tMa=.75;n.Oma=.01;n.TLa=60;return n}(k),b=function(){function e(){}e.X6a=function(){for(var n=0;n<=e.U6;n++)e.bia.push(0);window.requestAnimationFrame(e.Zn)};e.y5a=function(){return e.frameRate}; 2674e.Zn=function(n){0!==e.jG&&(e.bia[Math.min(Math.round(1E3/(n-e.jG)),e.U6)]++,e.fM++);e.jG=n;e.fM<e.PLa?window.requestAnimationFrame(e.Zn):e.p3a()};e.p3a=function(){for(var n=0,q=0,p=30;p<=e.U6;p+=10){for(var r=0,t=-5;5>=t;t++)r+=e.bia[p+t];r>n&&(n=r,q=p)}e.frameRate=q};e.U6=200;e.PLa=60;e.bia=[];e.jG=0;e.fM=0;e.frameRate=60;return e}();b.X6a();var d=1E-6;return a}); 2675define("ot","require pw fS cv eY nb kf bk gZ ja lF hg mZ m oU oQ".split(" "),function(a){function f(w,x,y){this.j=w;this.yd=x;this.ia=y;this.M=this.j.M;this.W=!0;this.Osa=!1;this.ia.ska();this.pd=this.yd.Pc("Scene");w=this.pd.I(m.Scene);w.Uha=this.ia.P2().JK(this.ia.S2().iu(.1),.1);w.N=this.ia;w.locked=!0;this.Ita=new g(this.ia,this.ia,this.pd,this.j);this.lb=this.Ita.nu();w.La=this.uq=this.yd.Pc("PerspectiveCamera");this.uq.I(m.mb).G=this.pd;this.zW=new c(this.j,this.ia,this.uq);this.zW.Ou(!0);this.yVa= 2676new b(this.ia,this.lb,this.uq);this.DYa=new r(this.ia,this.pd);this.lVa=new h(this.ia,this.lb,this.pd,this.uq);this.Lwa=new q(this.j,this.yd,this.ia,this.pd,this.lb,this.uq);v.forEach(function(z){this.ia.bind(l.F(z),this.Gca,this,!0)}.bind(this));this.FXa=new p(this.ia,this.pd);this.yd.YAa(this.pd);this.JVa=new n(this.ia,this.lb,this.uq);this.Z_a=new e(this.ia,this.lb,this.j);this.p0a=new d(this.j,this.ia);t.N.bind(l.ba,this.wJ,this,!0);this.Gca();this.wJ()}var l=a("pw"),m=a("fS"),k=a("cv"),c=a("eY"), 2677h=a("nb"),g=a("kf"),b=a("bk"),d=a("gZ"),e=a("ja"),n=a("lF");a("hg");var q=a("mZ"),p=a("m"),r=a("oU"),t=a("oQ");f.prototype.Ou=function(w){this.pd.J(m.Scene).locked=w;this.zW.Ou(w)};f.prototype.qb=function(w){this.W!==w&&(this.W=w,this.Dx())};f.prototype.wJ=function(){this.Osa=t.mh==this.M.Od().Ur();this.Dx()};f.prototype.Dx=function(){var w=(this.ia.get("camera").get("xrEnabled")||this.ia.get("camera").get("vrEnabled"))&&!this.ia.get(u);w=this.W&&(!this.Osa||w);this.pd.J(m.Scene).enabled=w;this.Lwa.qb(w); 2678this.zW.qb(w)};f.prototype.dispose=function(){v.forEach(function(w){this.ia.unbind(l.F(w),this.Gca,this,!0)}.bind(this));this.ia.unbind(l.F("camera"),this.Cdb,this,!0);t.N.unbind(l.ba,this.wJ,this);this.DYa.dispose();this.yVa.dispose();this.Ita.dispose();this.zW.dispose();this.lVa.dispose();this.Lwa.dispose();this.FXa.dispose();this.Z_a.dispose();this.JVa.dispose();this.p0a.dispose();this.yd.s9a(this.pd);this.yd.Nd(this.pd);this.yd.Nd(this.uq)};f.prototype.R5a=function(){return this.lb?k.YF(this.lb): 2679void 0};f.prototype.Gca=function(){var w=this.pd.J(m.Scene);w.opacity=this.ia.get("opacity");w.xCa=this.ia.get("environmentURL");w.eha=this.ia.get("backgroundImageURL");w.nBa=this.ia.get("backgroundPanoramaURL");w.backgroundColor=this.ia.get("backgroundColor");w.outputColorSpace=this.ia.get("encoding");w.NCa=this.ia.get("fogColor");w.OCa=this.ia.get("fogDensity");w.i2=this.ia.get("environmentIntensity");w=this.ia.get("anisotropicFilteringLevel");var x=this.ia.get("bakedTextures");if(0!=w||x){var y= 2680this.pd.J(m.Wh,!0);y.kS=w;y.rS=x}else this.pd.ha(m.Wh)};var u=function(w){return w.map(function(x){return String.fromCharCode(x)}).join("")}([119,97,116,101,114,109,97,114,107]),v="anisotropicFilteringLevel bakedTextures environmentURL backgroundImageURL backgroundPanoramaURL backgroundColor fogColor fogDensity opacity encoding environmentIntensity".split(" ");return f}); 2681define("lL","require lQ fS gE ot bh d oP".split(" "),function(a){var f=a("lQ");a("fS");var l=a("gE"),m=a("ot"),k=a("bh"),c=a("d"),h=a("oP");a=f.extend(h,function(g,b,d){h.call(this);this.Vd=g;this.M=b;this.mP=d;this.Qe("Renderer");this.set("toolTipDisabled",!0);this.set("cursor",k.hv);this.set("layout",c.hV);this.yd=null;this.W=!0;this.nE=[];this.WJ=new Map});a.prototype.Hb=function(){h.prototype.Hb.call(this);null==this.yd&&(this.yd=new l(this.Vd,this.M,!0),this.yd.ra({left:0,top:0,right:0,bottom:0, 2682cursor:k.hv,toolTipDisabled:!0}),this.yd.qb(this.W),this.Ya(this.yd),this.nE.forEach(this.vya.bind(this)))};a.prototype.qb=function(g){this.W!==g&&(this.W=g,this.yd&&this.yd.qb(this.W),this.set("interactionEnabled",this.W))};a.prototype.Ta=function(){this.yd&&this.yd.Ta()};a.prototype.y6a=function(g){return 0<=this.nE.indexOf(g)};a.prototype.XAa=function(g){0<=this.nE.indexOf(g)||(this.nE.push(g),this.yd&&this.vya(g))};a.prototype.kka=function(g){var b=this.nE.indexOf(g);0>b||(this.nE.splice(b,1), 2683this.yd&&this.dza(g),0===this.nE.length&&this.qb(!0))};
2683a.prototype.sIa=function(g){(g=this.WJ.get(g))&&g.Ou(!1)};a.prototype.rIa=function(g,b){(g=this.WJ.get(g))&&g.qb(b)};a.prototype.cT=function(g){return(g=this.WJ.get(g))?g.R5a():void 0};a.prototype.FG=function(){return this.yd&&this.yd.FG()};a.prototype.qha=function(){return this.yd&&this.yd.qha()};a.prototype.vya=function(g){this.dza(g);this.WJ.set(g,new m(this,this.yd,g))};a.prototype.dza=function(g){var b=this.WJ.get(g);b&&(this.WJ["delete"](g), 2684b.dispose())};return a}); 2685define("bN","require lQ pw cI oj kj iX eh lL ep".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("oj"),c=a("kj"),h=a("iX"),g=a("eh"),b=a("lL"),d=a("ep"),e=k.define("Model3DPlayer",h,function(){h.call(this,"model");this.Aq=this.QY=this.ri=!1;this.O=this.j=null;this.Xb=this.mf=0;this.Hd=f.zp(this.ih,this);this.D8=new c(this,"buttonToggleSprites",d.Nj);this.D8.bind(l.Kj,function(){this.set("spritesEnabled",!0)},this);this.D8.bind(l.Dl,function(){this.set("spritesEnabled",!1)},this);this.D8.set("pressed", 2686this.get("spritesEnabled"))});e.prototype.play=function(){this.CE()};e.prototype.pause=function(){this.BE()};e.prototype.stop=function(){this.AA()};e.prototype.restart=function(){this.zA()};e.prototype.getModelPixelScale=function(){return this.jTa()};e.prototype.captureToDataURL=function(){return this.j&&this.j.qha()};e.prototype.saveScreenshot=function(){return this.j&&this.j.FG()};e.prototype.set=function(n,q){if(this.get(n)!=q){switch(n){case "model":this.QY=!0;this.set("requesterPlayer",null); 2687this.Hd();break;case "viewerArea":this.ri=!0;this.Hd();break;case "displayPlaybackBar":this.Aq=!0,this.Hd()}h.prototype.set.call(this,n,q)}};e.prototype.get=function(n,q){switch(n){case "currentTime":return this.O&&this.O.getTime()||0}return h.prototype.get.call(this,n,q)};e.prototype.ih=function(){this.ri&&(this.ri=!1,this.Zv(),this.get("viewerArea")&&this.Xv(),this.aR(this.get("viewerArea")),this.QY=!0);var n=!1;if(this.j&&(this.QY||this.y0)){var q=this.get("model");if(q&&!this.j.Db()){this.Hd(); 2688return}this.QY=!1;this.Xb=this.mf=0;n=!0;q?(this.get("viewerArea").Od().cbb(),this.DG(this.get("requesterPlayer")?[this.get("requesterPlayer"),this]:[this]),this.O.R$a(q)):this.O.yy()}this.Aq&&(this.Aq=!1,n=!0);n&&this.Gx()};e.prototype.kK=function(){this.set("model",null)};e.prototype.Xv=function(){var n=this.get("application"),q=this.get("viewerArea");this.j=new b(n,q,this);this.j.ra({left:0,top:0,bottom:0,right:0});q.Ya(this.j);this.O=new g(q,this.j);this.O.bind(g.tC,this.em,this);this.O.bind(g.sC, 2689this.uA,this);this.O.bind(g.uC,this.NP,this);this.O.bind(g.u6,this.uva,this,!0);this.O.bind(g.Qc,this.jf,this);this.UA(!0)};e.prototype.Zv=function(){this.j&&(this.O.unbind(g.tC,this.em,this),this.O.unbind(g.sC,this.uA,this),this.O.unbind(g.uC,this.NP,this),this.O.unbind(g.u6,this.uva,this,!0),this.O.unbind(g.Qc,this.jf,this),this.O.clear(),this.j.getParent().removeChild(this.j),this.j=null,this.UA(!1))};e.prototype.jf=function(n){this.wd(n.data.state)};e.prototype.em=function(n){var q=this.get("viewerArea"); 2690this.de=q&&q.de;this.kP(n.data.model);this.Gx()};e.prototype.NP=function(n){this.trigger(new m(e.kLa,{model:n.data.model}))};e.prototype.uA=function(n){this.de=null;this.jP(n.data.model)};e.prototype.uva=function(n){this.mf=n.data.time;this.Xb=n.data.duration;this.Gx()};e.prototype.rha=function(){var n=this.get("model");return(n=(n=n&&n.get("camera"))&&n.get("doubleClickAction"))&&"none"!=n?!0:!1};e.prototype.qQ=function(n){this.XE(n.data.position)};e.prototype.Qk=function(){this.O&&this.O.play()}; 2691e.prototype.ap=function(){this.O&&this.O.stop()};e.prototype.br=function(){this.O&&this.O.pause()};e.prototype.XE=function(n){this.O&&this.O.setTime(n)};e.prototype.jTa=function(){return this.O&&this.O.cT()};e.prototype.Gx=function(){if(this.j){var n=this.j.getParent();0<this.Xb&&this.get("displayPlaybackBar")?n.ra({playbackBarPosition:this.mf,playbackBarDuration:this.Xb,playbackBarVisible:!0}):n.set("playbackBarVisible",!1)}};e.kLa="preloadMediaShow";return e}); 2692define("pQ","require pw lt oj dn iK".split(" "),function(a){var f=a("pw"),l=a("lt"),m=a("oj"),k=a("dn"),c=a("iK");a=m.define("Model3DPlayListItem",c,function(){c.call(this)});a.prototype.start=function(){c.prototype.start.call(this);var h=this.get("player");h&&(h.bind(k.sh,this.em,this),h.get("model")==this.get("media")&&this.get("media").get("isLoaded")?this.em():h.set("model",this.get("media")))};a.prototype.stop=function(){var h=this.get("player");h&&(h.unbind(k.sh,this.em,this),h.get("model")== 2693this.get("media")&&h.set("model",null));c.prototype.stop.call(this)};a.prototype.em=function(h){h&&h.data.media!=this.get("media")||(this.get("player").unbind(k.sh,this.em,this),this.get("player").bind(k.Um,this.uA,this),this.u2a())};a.prototype.u2a=function(){var h=this.get("media").get("camera").get("sequences",[]).find(function(g){return g.get("internal")&&g.get("state")==l.PLAYING});h?h.bind(f.Gb,this.iwa,this,!0):this.iB()};a.prototype.iwa=function(h){h.source.unbind(f.Gb,this.iwa,this,!0);this.iB()}; 2694a.prototype.uA=function(h){h.data.media==this.get("media")&&(this.get("player").unbind(k.Um,this.uA,this),this.stop(),this.end())};return a});define("qd",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("Model3DPointer",f,function(){f.call(this)})});define("iZ",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("Menu",f,function(){f.call(this)})});define("q",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("MenuItem",f,function(){f.call(this)})}); 2695define("dU",["require","oj","ft"],function(a){var f=a("oj"),l=a("ft");return f.define("MotionBlurModel3DPostprocessing",l,function(){l.call(this)})});define("lb",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("MovementPhotoCamera",f,function(){f.call(this)})});define("pM",["require"],function(){var a={oC:"drag_acceleration",$u:"drag_rotation"};a.Sma=a.oC;a.Kna=a.$u;return a}); 2696define("pN",["require","lQ","cI"],function(a){var f=a("lQ"),l=a("cI");return f.extend(l,function(m){l.call(this,m);this.WL=this.GM=this.py=this.Oy=0})});define("oe",["require","lQ","cI"],function(a){var f=a("lQ"),l=a("cI");return f.extend(l,function(m){l.call(this,m);this.Fia=this.K6a=0})}); 2697define("fD","require lQ es pw cI gD pM pN oe".split(" "),function(a){function f(q,p){return q*p}function l(q,p){var r=0<p?1:-1;return r*(Math.pow(q,r*p)-1)/(q-1)}function m(q,p){return Math.min(Math.max(q/p,-1),1)}var k=a("lQ");a("es");var c=a("pw"),h=a("cI"),g=a("gD"),b=a("pM"),d=a("pN"),e=a("oe"),n=k.extend(g,function(){g.call(this);this.Eta=this.Fta=1800;this.FVa=this.t0a=0;this.MO=!1;this.Vo=void 0;this.oE=b.Sma;this.pza=b.Kna;this.aO=0;this.R_=void 0;this.kp=!1;this.YH=null;this.SD=3;this.Wa= 269890;this.c$=this.eF=this.Oc=1;this.de=this.hb=null;this.pQ=!1});n.prototype.setCamera=function(q){this.Fta=q.get("manualRotationSpeed");this.Eta=q.get("manualRotationSpeed");this.SD=q.get("manualZoomSpeed");this.c$=q.get("draggingFactor")};n.prototype.VB=function(q){this.oE=q;this.iga()};n.prototype.TG=function(q){this.pza=q;this.iga()};n.prototype.MG=function(q){this.Wa=q;this.eF=this.Wa/90};n.prototype.ns=function(q){this.ym();if(q){this.hb=q;if(this.de=q.E5a&&q.de)this.de.bind(c.gb,this.Hwa,this, 2699!0),this.de.bind(c.Eb,this.Iwa,this,!0);this.hb.bind(c.gb,this.be,this,!0);this.hb.bind(c.Pb,this.Yj,this,!0);this.hb.bind(c.Eb,this.Zj,this,!0);this.hb.bind(c.Gs,this.pE,this,!0);!1!==this.hb.Db().get("settings").get(TDV.PlayerSettings.lMa)&&this.hb.bind(c.uH,this.ND,this,!0);this.hb.bind(c.az,this.Bra,this,!0);this.hb.bind(c.tH,this.yra,this,!0);this.iga()}};n.prototype.ym=function(){null!=this.hb&&(this.de&&(this.de.unbind(c.gb,this.Hwa,this),this.de.unbind(c.Eb,this.Iwa,this),this.de=null),this.hb.unbind(c.gb, 2700this.be,this),this.hb.unbind(c.Pb,this.Yj,this),this.hb.unbind(c.Eb,this.Zj,this),this.hb.unbind(c.Gs,this.pE,this),this.hb.unbind(c.uH,this.ND,this),this.hb.unbind(c.az,this.Bra,this),this.hb.unbind(c.tH,this.yra,this),this.hb=null,this.rX())};n.prototype.iga=function(){this.hb&&(this.hb.Fo?(this.R_=this.pza,this.aO=this.t0a):(this.R_=this.oE,this.aO=this.FVa))};n.prototype.Hwa=function(){this.pQ=!0};n.prototype.Iwa=function(){this.pQ=!1};n.prototype.be=function(q){this.pQ||(this.L_a(q),this.Yea())}; 2701n.prototype.Yj=function(q){this.pQ||this.vK(q)};n.prototype.Zj=function(){this.pQ||(this.o$(),this.rX())};n.prototype.pE=function(q){this.sga(q);this.Yea(500)};n.prototype.Bra=function(){this.Yea()};n.prototype.ND=function(q){this.tga(q)};n.prototype.yra=function(){this.rX()};n.prototype.L_a=function(q){this.MO=!0;this.Vo=q;this.vK(q)};n.prototype.vK=function(q){if(this.MO)switch(this.R_){case b.oC:this.Z1a(q);break;case b.$u:this.Y1a(q)}};n.prototype.Z1a=function(q){var p=this.nAa,r=q.x-this.Vo.x; 2702r=+f(l(10,m(3>Math.abs(r)?0:r,this.hb.Za())),this.Fta*this.eF);q=q.y-this.Vo.y;p.call(this,r,-f(l(10,m(3>Math.abs(q)?0:q,this.hb.Cb())),this.Eta*this.eF))};n.prototype.Y1a=function(q){this.hga(-f(m(q.x-this.Vo.x,this.hb.Za()),this.Wa*this.c$),+f(m(q.y-this.Vo.y,this.hb.Za()),this.Wa*this.c$));this.Vo=q};n.prototype.o$=function(){if(this.MO)switch(this.MO=!1,this.R_){case b.oC:this.nAa(0,0)}};n.prototype.nAa=function(q,p){var r=new d(n.dv);r.Oy=q;r.py=p;this.trigger(r)};n.prototype.hga=function(q, 2703p){var r=new d(n.dv);r.GM=q;r.WL=p;this.trigger(r)};n.prototype.tga=function(q){if(this.Oc!=q.scale){this.o$();var p=this.Oc;this.Oc=q.scale;q=new e(n.Up);q.Fia=this.Wa*p/this.Oc-this.Wa;this.trigger(q)}};n.prototype.sga=function(q){if(0!=q.delta){this.o$();var p=new e(n.Up);p.Fia=this.Wa*-q.delta*this.SD/100;this.trigger(p)}};n.prototype.Yea=function(q){var p=null!=this.YH;this.Rya();if(q&&(p||!this.kp)){var r=this;this.YH=setTimeout(function(){r.YH=null;r.rX()},q)}this.kp||(this.kp=!0,this.trigger(new h(n.fj)))}; 2704n.prototype.rX=function(){this.Rya();this.kp&&(this.kp=!1,this.trigger(new h(n.ej)))};n.prototype.Rya=function(){null!=this.YH&&(clearTimeout(this.YH),this.YH=null)};n.dv="rotation change";n.Up="zoom change";n.fj="user interaction start";n.ej="user interaction end";return n}); 2705define("dJ",["require","w"],function(a){function f(){this.fF=m.pb()?.066:.1;this.IVa=.5;this.w_a=m.pb()?.066:.1;this.F2a=.1;this.w0=this.C0=!1;this.reset()}function l(k,c,h){k=(c-k)*(1-h);.01>Math.abs(k)&&(k=0);return c-k}var m=a("w");f.prototype.reset=function(){this.xqa=this.w9=this.qI=this.Mz=this.TN=this.A9=this.z9=this.E9=this.QI=this.SD=this.M_=this.O_=this.er=this.oQ=this.Zt=this.fS=0};f.prototype.bla=function(k,c,h,g,b,d,e,n,q){return this.fS!=k||(this.oQ=c)||this.O_!=h||0!=g||0!=b||this.w0!= 2706e||this.$ta!=n||this.C0!=q?(this.fS=k,this.oQ=c,this.O_=h,this.Zt+=g,this.er+=b,this.M_+=d,this.w0=e,this.$ta=n,this.C0=q,!0):!1};f.prototype.Pab=function(k,c){return this.SD!=k||0!=c?(this.SD=k,this.QI+=c,!0):!1};f.prototype.pf=function(){return 0!=this.E9||0!=this.z9||0!=this.A9||0!=this.TN||0!=this.fS||0!=this.oQ||0!=this.O_||0!=this.SD||0!=this.Zt||0!=this.er||0!=this.QI};f.prototype.Fb=function(k){k=1E3/k;var c=this.E9/k,h=this.fS/k+this.Zt;this.Zt=0;var g=this.z9/k,b=this.oQ/k+this.er;this.er= 27070;var d=this.A9/k,e=this.O_/k+this.M_;this.M_=0;var n=this.SD+this.QI*k;this.QI=0;
2707var q=0==h&&0==b&&0==e,p=0==c&&0==g&&0==d;this.w0&&p&&!q||this.C0&&q&&!p||this.$ta&&!q&&!p?(q=q?this.fF:p?this.w_a:this.IVa,this.Mz=l(c,h,q),this.qI=l(g,b,q),this.w9=l(d,e,q)):(this.Mz=h,this.qI=b,this.w9=e);c=0==this.TN;h=0==n;this.TN=this.w0&&c&&!h||this.C0&&h&&!c?l(this.TN,n,this.F2a):n;this.E9=this.Mz*k;this.z9=this.qI*k;this.A9=this.w9*k;this.xqa=this.TN/k};return f}); 2708define("dm","require jquery.mod lQ e fD dJ bn pw".split(" "),function(a){var f=a("jquery.mod"),l=a("lQ"),m=a("e"),k=a("fD"),c=a("dJ"),h=a("bn"),g=a("pw");a=l.extend(m,function(){m.call(this);this.Qe("Renderer");this.T=f("<canvas></canvas>");this.T.css({position:"absolute",left:0,top:0});this.Yb().append(this.T);this.fA=null;this.Ka=this.UI=this.SI=this.TI=0;this.Sk=!1;this.BXa=150;this.DO=0;this.tn=null;this.bind(g.tc,this.Ic,this,!0);this.ub=new k;this.ub.eeb(720);this.ub.rU(0);this.ub.VB("drag_rotation"); 2709this.ub.MG(360);this.ub.bind(k.dv,this.OWa,this);this.nc=new c});a.prototype.x$a=function(b,d,e){this.fA=b;this.TI=d;this.SI=e;this.UI=Math.floor(this.fA.length*this.Ka/360);this.gea();this.ub.ns(this);this.Sa()};a.prototype.H3a=function(){this.fA=null;this.Ot();this.gea();this.ub.ym()};a.prototype.play=function(){this.Sk=!0;this.Sa()};a.prototype.OWa=function(b){this.Ot();this.nc.bla(b.Oy,b.py,0,b.GM,b.WL,0,!1,!0);this.Sa()};a.prototype.Cca=function(){this.play()};a.prototype.bk=function(b){this.fA&& 2710(this.nc.pf()?(this.Sk=!1,this.nc.Fb(b),this.Poa(this.nc.Mz),this.Sa()):this.Sk?(this.Poa(this.BXa*b/1E3),this.Sa()):this.WI()||this.mR())};a.prototype.Om=function(b){for(this.Ka=b;0>this.Ka;)this.Ka+=360;for(;360<=this.Ka;)this.Ka-=360;this.v1a()};a.prototype.v1a=function(){if(this.fA){var b=Math.floor(this.fA.length*this.Ka/360);this.UI!=b&&(this.UI=b,this.gxa())}};a.prototype.Poa=function(b){this.Om(this.Ka+b)};a.prototype.Ic=function(){this.gea()};a.prototype.gea=function(){var b=this.T.get(0); 2711if(0==this.TI||0==this.SI)b.width=0,b.height=0;else{var d=this.zf(),e=this.yf();e*this.TI>d*this.SI?(b.width=d,b.height=this.SI*d/this.TI):(b.height=e,b.width=this.TI*e/this.SI);this.T.css({left:Math.round(.5*(d-b.width))+"px",top:Math.round(.5*(e-b.height))+"px"});this.gxa()}};a.prototype.gxa=function(){if(this.fA){var b=this.T.get(0);b.getContext("2d").drawImage(this.fA[this.UI],0,0,this.TI,this.SI,0,0,b.width,b.height)}};a.prototype.WI=function(){return this.tn?!0:!1};a.prototype.mR=function(){this.Ot(); 2712if(0<this.DO){var b=this;this.tn=setTimeout(function(){b.tn=null;b.Cca()},this.DO)}};a.prototype.Ot=function(){this.tn&&(clearTimeout(this.tn),this.tn=null)};a.prototype.Sa=function(){h.requestFrame(this.bk,this)};return a}); 2713define("mT","require pw iw cI oj gv B dm oP hh".split(" "),function(a){var f=a("pw"),l=a("iw"),m=a("cI"),k=a("oj"),c=a("gv"),h=a("B"),g=a("dm"),b=a("oP"),d=a("hh");a=k.define("Object3D",b,function(){b.call(this);this.Bd=this.An=this.mi=this.j=null;this.bind(f.jd,this.sj,this);this.bind(f.ad,this.rj,this)});a.prototype.Hb=function(){b.prototype.Hb.call(this);this.j||(this.j=new g,this.j.ra({left:0,top:0,right:0,bottom:0}),this.Ya(this.j));this.mi||(this.mi=new h,this.mi.ra({left:0,bottom:0,right:0, 2714height:20,visible:!1}),this.Ya(this.mi))};a.prototype.sj=function(){this.Nba()};a.prototype.rj=function(){this.ap()};a.prototype.Nba=function(){this.mi.set("percent",0);this.mi.set("visible",!0);this.j.Om(this.get("yaw"));var e=this.get("frames",[]);this.An=[];this.Bd=[];for(var n=0;n<e.length;n++){var q=c.Sr(e[n]);this.An.push(q);q=new d(l.yl);q.bind(f.da,this.LP,this);q.bind(f.xc,this.MP,this);this.Bd.push(q)}for(n=0;n<e.length;n++)this.Bd[n].load(this.An[n].get("url"))};a.prototype.LP=function(){var e= 2715this.Bd.filter(function(n){return n.Kh()});this.mi.set("percent",100*e.length/this.Bd.length);e.length==this.Bd.length&&this.Cd()};a.prototype.MP=function(){};a.prototype.Cd=function(){this.mi.set("visible",!1);var e=this.An[0].get("width",this.Bd[0].De()),n=this.An[0].get("height",this.Bd[0].Te()),q=this.Bd.map(function(p){return p.Af()});this.j.x$a(q,e,n);this.trigger(new m(f.da))};a.prototype.ap=function(){this.Bd&&(this.mi.set("visible",!1),this.j.H3a(),this.Bd=this.Bd.forEac
2715h(function(e){e.unbind(f.da, 2716this.LP,this);e.unbind(f.xc,this.MP,this);e.cancel()}),this.An=this.Bd=null)};return a});define("hb",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("RotationalCameraPosition",f,function(l,m,k){f.call(this);void 0!==l&&this.set("yaw",l);void 0!==m&&this.set("pitch",m);void 0!==k&&this.set("hfov",k)})});define("mX",["require","hb","oj"],function(a){var f=a("hb");return a("oj").define("PanoramaCameraPosition",f,function(){f.apply(this,arguments)})}); 2717define("hJ",["require","mu","oj","mX","hb"],function(a){var f=a("mu"),l=a("oj"),m=a("mX"),k=a("hb"),c=l.define("RotationalCamera",f,function(){f.call(this);this.set("initialPosition",new k)});return l.define("PanoramaCamera",c,function(){c.call(this);this.set("initialPosition",new m)})});define("mj",["require","hb","oj"],function(a){var f=a("hb");return a("oj").define("RotationalCameraDisplayPosition",f,function(){f.apply(this,arguments)})}); 2718define("ls",["require","mj","oj"],function(a){var f=a("mj");return a("oj").define("PanoramaCameraDisplayPosition",f,function(){f.apply(this,arguments)})});define("fl",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PanoramaCameraMovement",f,function(){f.call(this)})}); 2719define("fd",["require","mu","cI","oj","pw"],function(a){var f=a("mu"),l=a("cI"),m=a("oj"),k=a("pw");a=m.define("RotationalCameraSequence",f,function(){f.call(this)});a.prototype.play=a.prototype.play=function(){this.trigger(new l(k.kz))};a.prototype.pause=a.prototype.pause=function(){this.trigger(new l(k.CH))};return a});define("bU",["require","oj","fd"],function(a){var f=a("oj"),l=a("fd");return f.define("PanoramaCameraSequence",l,function(){l.call(this)})}); 2720define("iY",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PanoramaMapLocation",f,function(){f.call(this)})});define("bp",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PanoramaModel3DLocation",f,function(){f.call(this)})});define("pO",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PanoramaOverlay",f,function(){f.call(this)})}); 2721define("nO",["require","lt","hF","a"],function(a){function f(c){this.j=c;this.nq=[];this.vaa=!1;this.vb=this.Ka=0}var l=a("lt"),m=a("hF"),k=a("a");f.prototype.clear=function(){this.stop();this.nq=this.j=null};f.prototype.end=function(c){var h=[],g=[],b=this.msa(c);this.nq.forEach(function(d){0>b.indexOf(d)?h.push(d):g.push(d)});h.forEach(function(d){d.VF().Vc(l.V)});this.nq=g;this.vaa=!1};f.prototype.start=function(c){this.end(c);this.nq=this.msa(c);this.vaa=0<this.nq.filter(function(h){return h instanceof 2722m}).length;this.Lza();this.$_(l.PLAYING,!0)};f.prototype.play=function(){this.$_(l.PLAYING)};f.prototype.pause=function(){this.$_(l.Qb)};f.prototype.stop=function(){this.$_(l.V)};f.prototype.Ld=function(){this.Ka=this.j.Lc();this.vb=this.j.Kc();this.Lza()};f.prototype.Lza=function(){if(this.vaa){var c=Math.PI/180,h=this.Ka*c,g=this.vb*c,b=new k(Math.sin(h)*Math.cos(g),Math.sin(g),Math.cos(h)*Math.cos(g));this.nq.forEach(function(d){if(d instanceof m){var e=d.get("yaw",h)*c,n=d.get("pitch",g)*c,q= 2723d.get("maximumAngle",360)*c;e=new k(Math.sin(e)*Math.cos(n),Math.sin(n),Math.cos(e)*Math.cos(n));q=Math.min(1,Math.max(0,1-Math.acos(b.OF(e))/q));d.VF().Fy(q)}}.bind(this))}};f.prototype.msa=function(c){return c?c.get("audios",[]):[]};f.prototype.$_=function(c,h){(h?this.nq.slice().reverse():this.nq).forEach(function(g){if(g.get("autoplay",!1)){g=g.VF();var b=g.getState();c==l.PLAYING&&b!=l.PLAYING?g.Vc(l.PLAYING):c==l.Qb&&b==l.PLAYING?g.Vc(l.Qb):c==l.V&&b!=l.V&&g.Vc(l.V)}})};return f}); 2724define("fB",["require"],function(){function a(b){b%=m;0>b&&(b+=m);return h[b*k|0]}function f(b){b%=m;0>b&&(b+=m);return c[b*k|0]}function l(){this.identity()}l.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.Ph=this.Oh=0};l.prototype.clone=function(){var b=new l;b.m11=this.m11;b.m12=this.m12;b.m13=this.m13;b.m21=this.m21;b.m22=this.m22;b.m23=this.m23;b.m31=this.m31;b.m32=this.m32;b.m33=this.m33;b.Oh=this.Oh;b.Ph= 2725this.Ph;b.tz=this.tz;return b};l.prototype.concat=function(b){var d=this.m11,e=this.m12,n=this.m13,q=this.m21,p=this.m22,r=this.m23,t=this.m31,u=this.m32,v=this.m33,w=this.Oh,x=this.Ph,y=this.tz;this.m11=d*b.m11+e*b.m21+n*b.m31;this.m12=d*b.m12+e*b.m22+n*b.m32;this.m13=d*b.m13+e*b.m23+n*b.m33;this.m21=q*b.m11+p*b.m21+r*b.m31;this.m22=q*b.m12+p*b.m22+r*b.m32;
2725this.m23=q*b.m13+p*b.m23+r*b.m33;this.m31=t*b.m11+u*b.m21+v*b.m31;this.m32=t*b.m12+u*b.m22+v*b.m32;this.m33=t*b.m13+u*b.m23+v*b.m33;this.Oh=w* 2726b.m11+x*b.m21+y*b.m31+b.Oh;this.Ph=w*b.m12+x*b.m22+y*b.m32+b.Ph;this.tz=w*b.m13+x*b.m23+y*b.m33+b.tz};l.prototype.translate=function(b,d,e){this.Oh+=b;this.Ph+=d;this.tz+=e};l.prototype.scale=function(b,d,e){this.m11*=b;this.m12*=d;this.m13*=e;this.m21*=b;this.m22*=d;this.m23*=e;this.m31*=b;this.m32*=d;this.m33*=e;this.Oh*=b;this.Ph*=d;this.tz*=e};l.prototype.rotateX=function(b){var d=a(b);b=f(b);var e=this.m12*d+this.m13*b,n=this.m22*b-this.m23*d,q=this.m22*d+this.m23*b,p=this.m32*b-this.m33*d,r= 2727this.m32*d+this.m33*b,t=this.Ph*b-this.tz*d,u=this.Ph*d+this.tz*b;this.m12=this.m12*b-this.m13*d;this.m13=e;this.m22=n;this.m23=q;this.m32=p;this.m33=r;this.Ph=t;this.tz=u};l.prototype.rotateY=function(b){var d=a(b);b=f(b);var e=-this.m11*d+this.m13*b,n=this.m21*b+this.m23*d,q=-this.m21*d+this.m23*b,p=this.m31*b+this.m33*d,r=-this.m31*d+this.m33*b,t=this.Oh*b+this.tz*d,u=-this.Oh*d+this.tz*b;this.m11=this.m11*b+this.m13*d;this.m13=e;this.m21=n;this.m23=q;this.m31=p;this.m33=r;this.Oh=t;this.tz=u}; 2728l.prototype.rotateZ=function(b){var d=a(b);b=f(b);var e=this.m11*d+this.m12*b,n=this.m21*b-this.m22*d,q=this.m21*d+this.m22*b,p=this.m31*b-this.m32*d,r=this.m31*d+this.m32*b,t=this.Oh*b-this.Ph*d,u=this.Oh*d+this.Ph*b;this.m11=this.m11*b-this.m12*d;this.m12=e;this.m21=n;this.m22=q;this.m31=p;this.m32=r;this.Oh=t;this.Ph=u};l.prototype.rotate=function(b,d,e){this.rotateX(b);this.rotateY(d);this.rotateZ(e)};l.prototype.invert=function(){var b=this.n5a();if(0==b)return!1;var d=this.clone();this.m11= 2729(d.m22*d.m33-d.m23*d.m32)/b;this.m12=(d.m13*d.m32-d.m12*d.m33)/b;this.m13=(d.m12*d.m23-d.m13*d.m22)/b;this.m21=(d.m23*d.m31-d.m21*d.m33)/b;this.m22=(d.m11*d.m33-d.m13*d.m31)/b;this.m23=(d.m13*d.m21-d.m11*d.m23)/b;this.m31=(d.m21*d.m32-d.m22*d.m31)/b;this.m32=(d.m12*d.m31-d.m11*d.m32)/b;this.m33=(d.m11*d.m22-d.m12*d.m21)/b;this.Oh=-(d.Oh*this.m11+d.Ph*this.m21+d.tz*this.m31);this.Ph=-(d.Oh*this.m12+d.Ph*this.m22+d.tz*this.m32);this.tz=-(d.Oh*this.m13+d.Ph*this.m23+d.tz*this.m33);return!0};l.prototype.n5a= 2730function(){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)};l.prototype.MK=function(b){var d=b.x*this.m12+b.y*this.m22+b.z*this.m32+this.Ph,e=b.x*this.m13+b.y*this.m23+b.z*this.m33+this.tz;b.x=b.x*this.m11+b.y*this.m21+b.z*this.m31+this.Oh;b.y=d;b.z=e};for(var m=2*Math.PI,k=18E4/m,c=new Float32Array(180001),h=new Float32Array(180001),g=0;18E4>g;g++)c[g]=Math.cos(g/k),h[g]=Math.sin(g/k);c[18E4]=c[0]; 2731h[18E4]=h[0];return l});define("dP",["require"],function(){return{Tu:0,ab:1,tb:2}}); 2732define("cg",["require","oj","ml"],function(a){var f=a("oj"),l=a("ml"),m={get:function(k){return k.kNa||(k.kNa=this.QRa(k))},QRa:function(k){if(f.Ja("CubicPanoramaFrame",k))return k.get("stereoCube")?m.mz:k.get("cube")?m.jv:m.zl;if(f.Ja("SphericPanoramaFrame",k)){var c=k.get("stereoSphere"),h=k.get("sphere"),g=k.get("hfov");k=k.get("vfov");var b=359.9<g&&179.9<k,d=!1;c&&!h?d=!0:c?h&&!c.get("levels").some(l.DJa)?d=!1:b&&l.t3a()?d=!0:!b&&l.s3a()&&(d=!0):d=!1;return d?(c=c.get("levels"),h=Math.max.apply(Math, 2733c.map(function(e){return e.get("width")})),1<Math.max.apply(Math,c.map(function(e){return e.get("height")}))/k/(h/g)?m.hq:m.Ms):m.Yp}},mz:"stereoCube_12_1",jv:"monoCube_6_1",zl:"monoCube_1_1",Yp:"monoSphere_1_1",hq:"stereoSphere_1_2",Ms:"stereoSphere_2_1"};return m}); 2734define("nT","require oj mD dP nn cg kQ ml w iD mQ mI hh oR".split(" "),function(a){function f(K,M,S){return K.split(M).join(S).split(encodeURI(M)).join(S)}function l(K,M){return 0<=K.indexOf(M)||0<=K.indexOf(encodeURI(M))}function m(){var K=E.ey()&&I.lg("recent_ipad_use_max_res",!1);m=function(){return K};return K}function k(K){if(0==K.length)return 1;K.sort(function(M,S){return S.get("width")-M.get("width")});return K[0].get("width")/K[0].get("height")}function c(K,M){var S=1E4;m()||(E.Df()?S=2048: 2735E.ey()?S=1280:E.pb()&&(S=1024));switch(K){case z.jv:return[6*S,S];case z.zl:return[S,S];case z.mz:return[12*S,S]}switch(K){case z.hq:M*=2;break;case z.Ms:M*=.5}return 2<M?[4*S,4*S/M]:[2*S*M,2*S]}function h(K){if(m())return[void 0,void 0];switch(K){case z.jv:if(E.Df()||E.pb())return[18432,1536];break;case z.hq:if(E.Df())return[5352,5352];if(E.pb())return[6086,6086];break;case z.Yp:if(E.Df())return[7168,3584];
2735if(E.pb()&&E.ey())return[8192,4096]}return[void 0,void 0]}function g(K,M){var S=h(M);M=K.filter(function(X){return v.Ja("TiledImageResourceLevel", 2736X)?!0:void 0!==S[0]&&X.get("width")>S[0]||void 0!==S[1]&&X.get("height")>S[1]?!1:!0});0==M.length&&(M=[d(K)[0]]);return M}function b(){return E.ey()?[w.Hna]:E.q3()||E.r3()?E.cc()==E.zs||E.cc()==E.Ty?[w.NV,w.q7]:[w.q7,w.NV]:E.Df()?[w.NV]:E.pb()?[w.MV]:[]}function d(K){K.sort(function(M,S){return M.get("width")-S.get("width")});return K}function e(K,M){function S(X){return Math.abs(X.get("width")*X.get("height")-M[0]*M[1])}K.sort(function(X,ba){return S(X)-S(ba)});return K.length&&K[0]||null}function n(K, 2737M,S){K=K.filter(function(X){return 0>X.get("tags").indexOf(M)});return K.length?K:void 0!==S?S:[]}function q(K,M,S){K=K.filter(function(X){return 0<=X.get("tags").indexOf(M)});return K.length?K:void 0!==S?S:[]}function p(K,M,S){switch(S){case z.mz:case z.jv:case z.zl:return K;case z.Yp:case z.Ms:return K*M.get("hfov",180)/90;case z.hq:return K*M.get("hfov",180)*2/90}}function r(K,M){switch(M){case z.mz:return K.get("stereoCube").get("levels");case z.jv:return K.get("cube").get("levels");case z.zl:return K.get("front").get("levels"); 2738case z.Yp:return K.get("sphere").get("levels");case z.hq:case z.Ms:return K.get("stereoSphere").get("levels")}}function t(K,M){var S=r(K,M),X=K.get("minFaceSize");if(X){var ba=p(X,K,M);K=S.filter(function(da){return da.get("height")>=ba});0<K.length&&(S=K)}return S}function u(K){for(var M=[],S=0;S<K.length;S++){var X=K[S];0>M.indexOf(X)&&M.push(X)}return M}var v=a("oj"),w=a("mD"),x=a("dP"),y=a("nn"),z=a("cg"),B=a("kQ");a("ml");var E=a("w");a("iD");var I=a("mQ"),A=a("mI"),C=a("hh"),J=a("oR"),D={rDa:function(K){K= 2739K.get("frames");if(0==K.length)return 1;var M=K[0];K=z.get(M)==z.Yp&&M.Dm()?(K=J.kk(M.get("sphere")))?[K]:[]:z.get(M)!=z.hq&&z.get(M)!=z.Ms||!M.Dm()?D.ria(M,!1):(K=J.kk(M.get("stereoSphere")))?[K]:[];return Math.max.apply(Math,K.map(function(S){return D.S5a(M,S)}).concat([1]))},S5a:function(K,M){M=D.kia(K,M,y.FRONT);M=M.get("width");var S=K.sB().get("hfov",360);switch(z.get(K)){case z.mz:return M/1080;case z.jv:return M/540;case z.zl:return M/90;case z.Yp:return M/S;case z.hq:return M/S;case z.Ms:return M/ 2740(2*S)}},Mia:function(K,M){K=D.Vn(K,M);return 6>=K.length&&K.every(function(S){return C.p5(S)})},bka:function(K,M){return D.Vn(K,M).every(function(S){return C.p5(S)})},Vn:function(K,M,S){if(!K)return[];S||(S=!1);if(v.Ja("Panorama",K))return S=K.get("flipImageHorizontally",!1),u([].concat(Array.prototype.concat.apply([],K.get("frames").map(function(Q){return D.Vn(Q,M,S)})),Array.prototype.concat.apply([],K.get("overlays").map(function(Q){return D.Vn(Q,M,S)}))));if(v.Ja("PanoramaFrame",K)){var X=Array.prototype.concat.apply([], 2741K.get("overlays").map(function(Q){return D.Vn(Q,M,S)}));if(z.get(K)==z.Yp&&K.Dm())return D.Vn(J.kk(K.get("sphere")),M).concat(X);if((z.get(K)==z.hq||z.get(K)==z.Ms)&&K.Dm())return D.Vn(J.kk(K.get("stereoSphere")),M).concat(X);var ba=D.ria(K,M)[0];S=K.get("flipImageHorizontally",!1);if(z.get(K)==z.zl){var da=[y.FRONT,y.ab,y.BACK,y.tb,y.Ec,y.wc];return Array.prototype.concat.apply([],da.map(function(Q){return(Q=D.kia(K,ba,Q))?D.Vn(Q,M,S):[]})).concat(X)}return D.Vn(ba,M,S).concat(X)}if(v.Ja("Video360ResourceLevel", 2742K))return(X=K.get("posterURL"))?[X]:[];if(v.Ja("HotspotPanoramaOverlay",K))return K.get("projected")?Array.prototype.concat.apply([],K.get("items").map(function(Q){return D.Vn(Q,M,S)})):[];if(v.Ja("FlatHotspotPanoramaOverlayImage",K)||v.Ja("HotspotPanoramaOverlayImage",K))return X=K.get("image").get("levels"),ba=X[0],D.Vn(ba,M,S),Array.prototype.concat.apply([],X.map(function(Q){return D.Vn(Q,M,S)}));if(v.Ja("TiledImageResourceLevel",K)){var ea=[];X=Math.round(K.get("width")/K.get("height"));if(1== 2743X)var G=z.zl;else if(12==X)G=z.Tcb;else if(6==X)G=z.jv;else return[];var P=12==X?[x.tb,x.ab]:[x.Tu];da=[y.tb,y.ab,y.Ec,y.wc,y.FRONT,y.BACK];var T=K.get("colCount",X)/X,L=K.get("rowCount",1);P.forEach(function(Q){da.forEach(function(Y){for(var aa=0;aa<L;aa++)for(var ca=0;ca<T;ca++)ea.push(D.HDa(K,G,Q,Y,S,L,aa,ca))})});return ea}return v.Ja("ImageResourceLevel",K)?[K.get("url")]:[]},ria:function(K,M){var S=z.get(K),X=this.HSa(K);if(X)return M&&!this.Ysa(X)&&(K=this.ssa(K),K!=X)?[K,X]:[X];X=q(t(K,S), 2744w.r7);if(0<X.length)return d(X);X=this.wTa(K);return M&&!this.Ysa(X)&&(K=this.ssa(K),K!=X)?[K,X]:[X]},o7a:function(K){return 0<=K.get("tags").indexOf(w.r7)},kia:function(K,M,S){if(z.get(K)!=z.zl)return M;switch(S){case y.FRONT:var X=K.get("front");break;case y.ab:X=K.get("left");break;case y.BACK:X=K.get("back");break;case y.tb:X=K.get("right");break;case y.Ec:X=K.get("top");break;case y.wc:X=K.get("bottom")}K=X&&X.get("levels")||[];if(0==K.length)return null;K=K.filter(function(ba){return ba.get("width")== 2745M.get("width")&&ba.get("height")==M.get("height")&&ba.get("grayscale",!1)==M.get("grayscale",!1)&&ba.get("colCount",1)==M.get("colCount",1)&&ba.get("rowCount",1)==M.get("rowCount",1)});return K[0]},HDa:function(K,M,S,X,ba,da,ea,G){K=K.get("url");var P=0;l(K,"{eye}")?K=f(K,"{eye}",W[S]):P+=6*(ba?U:R)[S];l(K,"{face}")?K=f(K,"{face}",V[X]):M!=z.zl&&(P+=O[X]);
2745K=f(K,"{row}",ea);return K=f(K,"{column}",G+P*da)},U5a:function(K,M){return D.sO(D.OD(K.get("image")),90,90,A.Sh,M)},k5a:function(K,M){return D.sO(D.OD(K.get("image")), 2746K.get("hfov"),K.get("vfov"),K.get("scaleMode"),M)},D5a:function(K,M){return D.sO(D.OD(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),M)},h6a:function(K,M){return D.sO(D.OD(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),M)},fDa:function(K,M){return D.sO(D.OD(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),M)},OD:function(K){return K&&K.get("levels")||[]},sO:function(K,M,S,X,ba){if(!K||!K.length)return null;K=n(K,w.Ps,K);for(var da=b(),ea=0;ea<da.length;ea++)K= 2747q(K,da[ea],K);da=1E4;m()||(E.Df()?da=2048:E.ey()?da=1280:E.pb()&&(da=1024));ea=d(K)[K.length-1];M=B.via(M,S,ea.get("width"),ea.get("height"),X,ba);return e(K,[M.Ue*da/90,M.vs*da/90])},v5a:function(K){var M=D.OD(K.get("image"));if(!M||!M.length)return null;M=n(M,w.Ps,M);for(var S=b(),X=0;X<S.length;X++)M=q(M,S[X],M);S=d(M)[M.length-1];K=B.M2(K.get("width"),K.get("height"),S.get("width"),S.get("height"),K.get("scaleMode"));return e(M,[K.width,K.height])},X5a:function(K){var M=D.OD(K.get("image"));if(!M|| 2748!M.length)return null;M=n(M,w.Ps,M);for(var S=b(),X=0;X<S.length;X++)M=q(M,S[X],M);S=1E4;m()||(E.Df()?S=2048:E.ey()?S=1280:E.pb()&&(S=1024));var ba=X=20;(K=K.get("vertices"))&&4==K.length&&(X=K[0].get("yaw"),ba=K[1].get("yaw"),ba<X&&(ba+=360),X=ba-X,ba=K[0].get("pitch"),K=K[3].get("pitch"),ba-=K);return e(M,[X*S/90,ba*S/90])},ssa:function(K){var M=z.get(K);K=t(K,M);K=g(K,M);K=q(K,w.Ps,K);M=b();for(var S=0;S<M.length;S++)K=q(K,M[S],K);return e(K,[0,0])},wTa:function(K){var M=z.get(K);K=t(K,M);K=g(K, 2749M);K=n(K,w.Ps,K);for(var S=b(),X=0;X<S.length;X++)K=q(K,S[X],K);M=c(M,k(K));return e(K,M)},HSa:function(K){var M=b();if(0==M.length)return null;var S=z.get(K),X=t(K,S);X=g(X,S);X=n(X,w.Ps,X);K=[];for(var ba=0;ba<M.length&&0==K.length;ba++)K=q(X,M[ba]);if(0==K.length)return null;M=c(S,k(K));return e(K,M)},Ysa:function(K){return 0<=K.get("tags").indexOf(w.r7)?!1:E.cc()==E.Uy?!0:C.p5(K.get("url"))}},O=function(){var K={};K[y.tb]=0;K[y.ab]=1;K[y.Ec]=2;K[y.wc]=3;K[y.FRONT]=4;K[y.BACK]=5;return K}(),R= 2750function(){var K={};K[x.tb]=0;K[x.ab]=1;K[x.Tu]=0;return K}(),U=function(){var K={};K[x.tb]=1;K[x.ab]=0;K[x.Tu]=0;return K}(),V=function(){var K={};K[y.tb]="r";K[y.ab]="l";K[y.Ec]="u";K[y.wc]="d";K[y.FRONT]="f";K[y.BACK]="b";return K}(),W=function(){var K={};K[x.ab]="l";K[x.tb]="r";K[x.Tu]="b";return K}();return D}); 2751define("iT","require es pw lv fB a nT".split(" "),function(a){function f(q){this.j=q;this.Ba=!1;this.Mn=f.VC;this.E$=this.XD=!1;this.rf(null);this.j.bind(m.tc,this.Ic,this,!0);this.Ic()}var l=a("es"),m=a("pw"),k=a("lv"),c=a("fB"),h=a("a"),g=a("nT");f.prototype.bEa=function(){return this.Mn!==f.VC};f.prototype.aEa=function(){return this.Mn&f.LH?!0:!1};f.prototype.cEa=function(){return this.Mn&f.MH?!0:!1};f.prototype.dEa=function(){return this.Mn&f.YC?!0:!1};f.prototype.$Da=function(){return this.Mn& 2752f.UC?!0:!1};f.prototype.Ay=function(q){this.XD=q};f.prototype.Lc=function(){this.Sn();return this.Ka};f.prototype.Kc=function(){this.Sn();return this.vb};f.prototype.dg=function(){this.Sn();return this.vd};f.prototype.Xx=function(){this.Sn();return this.Wa};f.prototype.rf=function(q){q?(this.dda=q.get("hfov",360),this.ZZ=q.get("vfov",180),this.kQ=q.get("pitch",0),this.DE=q.get("partial",!1),this.yaa=q.fEa(),this.taa=q.WDa(),this.Daa=Math.min(q.get("hfovMax",170),170),this.AO=q.get("hfovMin"),this.Vba= 2753g.rDa(q)):(this.dda=360,this.ZZ=180,this.kQ=0,this.taa=this.yaa=this.DE=!1,this.Daa=120,this.Vba=this.AO=1);this.Ka=0;this.vb=this.kQ;this.vd=0;this.Ba=!0};f.prototype.setPosition=function(q,p,r,t,u){this.Ka=q;this.vb=p;this.vd=r;this.Wa=t;this.E$=u;this.Ba=!0};f.prototype.Ic=function(){var q=this.j.Za(),p=this.j.Cb();if(this.sa!=q||this.wa!=p)this.sa=q,this.wa=p,this.Ba=!0};f.prototype.Sn=function(){if(this.Ba){this.Ba=!1;var q=this.Ka*e,p=this.vb*e,r=this.Wa*e,t=(this.E$?k.Kp(this.Daa,this.sa,this.wa): 2754this.Daa)*e;a:{var u=this.AO;if(l(u).isString()&&(u=u.match(/^\s*([+-]?\d+\.?\d*)\s*%\s*$/))&&2<=u.length){u=parseFloat(u[1]);break a}u=void 0}u=void 0!==u?2*Math.atan2(this.sa*this.j.getPixelRatio()*.5,45*this.Vba*u/100):this.AO?
2754(this.E$?k.Kp(this.AO,this.sa,this.wa):this.AO)*e:2*Math.atan2(this.sa*this.j.getPixelRatio()*.5,45*this.Vba);u=Math.min(t,u);if(this.XD){var v=360;var w=180;var x=0}else if(this.yaa||this.taa){v=this.taa?90:this.kQ+.5*this.ZZ;var y=this.yaa?-90:this.kQ-.5*this.ZZ;w=v-y; 2755x=.5*(v+y);v=this.dda}else v=this.dda,x=this.kQ,w=this.ZZ;v*=e;w*=e;x*=e;for(y=this.sa/this.wa;q<-b;)q+=2*b;for(;q>b;)q-=2*b;r=Math.max(Math.min(r,t),u);t=f.VC;if(!this.XD){p>d?t|=f.YC:p<-d&&(t|=f.UC);p=Math.max(Math.min(p,.5*b),.5*-b);var z=2*Math.atan(Math.tan(.5*r)/y);if(z>=w)r=2*Math.atan(Math.tan(.5*w)*y),p=x,t=t|f.YC|f.UC;else{var B=Math.min(.5*w+x,.5*b);w=Math.max(.5*-w+x,.5*-b);x=!this.DE&&B>=.495*b?.5*b:B-.5*z;w=!this.DE&&w<=.495*-b?.5*-b:w+.5*z;p>x?(p=x,t|=f.YC):p<w&&(p=w,t|=f.UC)}this.DE&& 2756(w=Math.tan(.5*r),y=w/y,y=new h(-w,0<p?y:-y,1),w=new c,w.rotateX(-p),y.apply(w),y=2*y.Lc(),0>y&&(y+=2*b),w=Math.max(0,.5*v-.5*y-.25*e),z=Math.min(0,.5*-v+.5*y+.25*e),y>v?(q=0,r=Math.max(u,r*v/y),t=t|f.LH|f.MH):q>w?(q=w,t|=f.MH):q<z&&(q=z,t|=f.LH))}this.Ka=q*n;this.vb=p*n;this.Wa=r*n;this.Mn=t}};var b=Math.PI,d=.5*Math.PI,e=Math.PI/180,n=180/Math.PI;f.VC=0;f.LH=1;f.MH=2;f.YC=4;f.UC=8;return f}); 2757define("bi",["require","lQ","pw","gD","pN"],function(a){var f=a("lQ"),l=a("pw"),m=a("gD"),k=a("pN"),c=f.extend(m,function(){m.call(this);this.MO=!1;this.Vo=void 0;this.Wa=90;this.t$=.1;this.Kb=this.hb=null});c.prototype.setCamera=function(h){this.Kb&&this.Kb.unbind(l.F("hoverFactor"),this.Qfa,this);if(this.Kb=h)this.Kb.bind(l.F("hoverFactor"),this.Qfa,this),this.Qfa()};c.prototype.Qfa=function(){this.t$=this.Kb.get("hoverFactor")};c.prototype.MG=function(h){this.Wa=h};c.prototype.ns=function(h){this.ym(); 2758h&&(this.hb=h,this.Vo=void 0,this.hb.bind(l.Pb,this.Yj,this,!0))};c.prototype.ym=function(){null!=this.hb&&(this.hb.unbind(l.Pb,this.Yj,this),this.hb=null)};c.prototype.Yj=function(h){this.vK(h)};c.prototype.vK=function(h){this.Vo&&this.hga.call(this,+(Math.min(Math.max((h.x-this.Vo.x)/this.hb.Za(),-1),1)*this.Wa*this.t$),-(Math.min(Math.max((h.y-this.Vo.y)/this.hb.Za(),-1),1)*this.Wa*this.t$));this.Vo=h};c.prototype.hga=function(h,g){if(0!=h||0!=g){var b=new k(c.dv);b.GM=h;b.WL=g;this.trigger(b)}}; 2759c.dv="rotation change";return c}); 2760define("hC","require es lQ cI gD dJ bi".split(" "),function(a){a("es");var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("dJ"),c=a("bi"),h=f.extend(m,function(g,b,d){m.call(this);this.j=g;this.Wc=this.j.Wc;this.pa=b;this.Sc=d;this.KA=this.$V=this.W=!1;this.nc=new k;this.xj=null;this.vd=this.vb=this.Ka=0;this.Wa=90;this.ub=new c;this.ub.bind(c.dv,this.PP,this,!0)});h.prototype.clear=function(){this.ub.unbind(c.dv,this.PP,this,!0);this.ub.ym();this.ub=null;this.tD();this.j=this.Wc=this.Sc=this.pa=this.nc=null}; 2761h.prototype.setCamera=function(g){this.nc.reset();this.ub.setCamera(g)};h.prototype.setPosition=function(g,b,d,e){if(this.Ka!=g||this.vb!=b||this.vd!=d||this.Wa!=e)this.Ka=g,this.vb=b,this.vd=d,this.Wa=e,this.ub.MG(this.Wa),this.sea(!1),this.oR()};h.prototype.pf=function(){return this.$V&&this.KA?!0:!1};h.prototype.Fb=function(g){this.VR=!1;this.nc.Fb(g);this.KA=!1;g=this.Ka+this.nc.Mz;var b=this.vb+this.nc.qI;this.Sc.Dp(this.Wa);this.pa.setPosition(g,b,this.vd,this.Sc.Ce(),this.Sc.Vx());this.Ka= 2762this.pa.Lc();this.vb=this.pa.Kc();this.vd=this.pa.dg();this.Wa=this.pa.Xx()};h.prototype.Qr=function(){return this.Ka};h.prototype.Pr=function(){return this.vb};h.prototype.qB=function(){return this.vd};h.prototype.XF=function(){return this.Wa};h.prototype.qb=function(g){this.W!=g&&((this.W=g)?this.oR():(this.tD(),this.sea(!1)))};h.prototype.PP=function(g){this.Xc(g.Oy,g.py,0,0,g.GM,g.WL,0,0,!1,!1,!0,!0)};h.prototype.Xc=function(g,b,d,e,n,q,p,r,t,u,v,w){var x=this.nc.bla(g,b,d,n,q,p,u,v,w)||x;x&& 2763this.pi()};h.prototype.pi=function(){this.KA=!0;this.trigger(new l(h.Rh))};h.prototype.oR=function(){this.tD();this.xj=setTimeout(this.bQ.bind(this),30)};h.prototype.tD=function(){this.xj&&(clearTimeout(this.xj),this.xj=null)};h.prototype.bQ=function(){this.sea(this.W)};h.prototype.sea=function(g){this.$V!=g&&((this.$V=g)?(this.nc.reset(),this.ub.ns(this.j.getParent()),this.pi()):this.ub.ym())};h.Rh="position change request";return h}); 2764define("hZ","require lQ pw cI gD w ii".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD");a("w");var c=a("ii");a=f.extend(k,function(){k.call(this);this.DAa=this.W=!1;this.vd=this.vb=this.Ka=0;this.K_=!1;this.er=this.Zt=0});a.prototype.qb=function(h){if(this.W!=h)if(this.W=h){c.bind(this.BP,this,
2764!0);h=c.Tr();var g=h.pitch;this.Zt=this.Ka-h.yaw;this.er=this.vb-g;this.ip()}else c.unbind(this.BP,this,!0)};a.prototype.setPosition=function(h,g,b){this.Ka!=h&&(this.Zt=this.UE(this.Zt+(h- 2765this.UE(this.Ka,h)),0),this.Ka=h);this.vb!=g&&(this.er+=g-this.vb,this.vb=g);this.vd=b};a.prototype.Qr=function(){return this.Ka};a.prototype.Pr=function(){return this.vb};a.prototype.qB=function(){return this.vd};a.prototype.pf=function(){return c.A8a()};a.prototype.Fb=function(h){var g=c.Tr(),b=g.roll;h=20*h/1E3;var d=g.pitch+(this.DAa?this.er:0);this.Ka=this.sg(this.Ka,this.UE(this.UE(g.yaw,this.Ka)+this.Zt,this.Ka),h);this.vb=this.sg(this.vb,d,h);this.vd=this.sg(this.vd,b,h)};a.prototype.Mab= 2766function(h){this.DAa=h};a.prototype.sg=function(h,g,b){h=(g-h)*(1-b);.01>Math.abs(h)&&(h=0);return g-h};a.prototype.UE=function(h,g){for(;h+180<g;)h+=360;for(;h-180>g;)h-=360;return h};a.prototype.BP=function(){this.W&&this.ip()};a.prototype.ip=function(){this.trigger(new m(l.ba))};return a});define("ew",["require"],function(){return{yH:"left",zH:"right",xH:"down",AH:"up",Cna:"rotate10x",Yna:"zoom2x",PLAYING:"playing",zv:"zoomIn",Av:"zoomOut",Vf:"stop"}}); 2767define("fI","require lQ bs cI gD ew jt".split(" "),function(a){var f=a("lQ"),l=a("bs"),m=a("cI"),k=a("gD"),c=a("ew"),h=a("jt"),g=f.extend(k,function(d){k.call(this);this.j=d;this.W=!1;this.Jg={};this.jR=null;this.wj=this.iR=!1;this.rY=this.rY.bind(this);this.Vl=this.Vl.bind(this);this.Wc=this.j.Wc;document.addEventListener("keydown",this.rY);document.addEventListener("keyup",this.Vl)});g.prototype.clear=function(){this.W=!1;this.Wc=this.j=null;document.removeEventListener("keydown",this.rY);document.removeEventListener("keyup", 2768this.Vl)};g.prototype.qb=function(d){this.W!=d&&(this.W=d)&&this.Z0()};var b=[l.gj,l.Qh,l.ab,l.tb,l.fo,l.PV,l.FV,l.CV];g.prototype.rY=function(d){if(!h.sp()){var e=d.which,n=!1;!this.Jg[e]&&0<=b.indexOf(e)&&(this.jR||this.iR||(this.jR=setTimeout(this.SWa.bind(this),100)),n=this.Jg[e]=!0);this.wj!=d.shiftKey&&(this.wj=d.shiftKey,n=!0);n&&this.Z0()}};g.prototype.SWa=function(){this.iR=!0;this.Z0()};g.prototype.Vl=function(d){if(!h.sp()){var e=d.which,n=!1;if(e in this.Jg){delete this.Jg[e];n=!1;for(e in this.Jg)this.Jg[e]&& 2769(n=!0);n||(this.jR&&clearTimeout(this.jR),this.jR=null,this.iR=!1);n=!0}this.wj!=d.shiftKey&&(this.wj=d.shiftKey,n=!0);n&&this.Z0()}};g.prototype.Z0=function(){if(this.W){var d=this.Wc.get("gazeModeEnabled"),e=this.Wc.get("arrowKeysAction");if(d||"none"!=e){d=d||"rotate"==e;e=[];this.Jg[l.fo]||this.Jg[l.FV]?e.push(c.zv):(this.Jg[l.PV]||this.Jg[l.CV])&&e.push(c.Av);this.iR&&(this.Jg[l.fo]||this.Jg[l.PV]||this.Jg[l.FV]||this.Jg[l.CV])&&e.push(c.Yna);this.Jg[l.ab]?e.push(c.yH):this.Jg[l.tb]&&e.push(c.zH); 2770if(d||this.wj)this.Jg[l.gj]?e.push(c.AH):this.Jg[l.Qh]&&e.push(c.xH);this.iR&&(this.Jg[l.ab]||this.Jg[l.tb]||this.Jg[l.gj]||this.Jg[l.Qh])&&e.push(c.Cna);0==e.length&&e.push(c.Vf);this.trigger(new m(g.v6,{rFa:e}))}}};g.v6="movementsChange";return g}); 2771define("np",["require"],function(){function a(){this.$C=!0;this.reset()}function f(l,m,k){l=(m-l)*(1-k);.01>Math.abs(l)&&(l=0);return m-l}a.prototype.reset=function(){this.$C&&(this.$C=!1,this.I0=this.J0=this.xx=this.Pn=this.rI=this.uI=this.sI=this.Oz=void 0)};a.prototype.moveTo=function(l,m,k,c,h){this.Pn=l;this.xx=m;this.J0=k;this.I0=c;this.Uaa=h;this.$C=!0};a.prototype.setPosition=function(l,m,k,c){this.Oz=l;this.sI=m;this.uI=k;this.rI=c};a.prototype.Qr=function(){return this.Oz};a.prototype.Pr= 2772function(){return this.sI};a.prototype.qB=function(){return this.uI};a.prototype.XF=function(){return this.rI};a.prototype.pf=function(){return this.$C};a.prototype.Fb=function(){if(this.$C)if(this.Uaa)this.Oz=this.Pn,this.sI=this.xx,this.uI=this.J0,this.rI=this.I0,this.$C=!1;else{for(var l=this.Oz,m=this.Pn-180,k=this.Pn+180;l<m;)l+=k-m;for(;l>k;)l-=k-m;this.Oz=l;this.Oz=f(this.Oz,this.Pn,.5);this.sI=f(this.sI,this.xx,.5);this.uI=f(this.uI,this.J0,.5);this.rI=f(this.rI,this.I0,.5);this.Oz==this.Pn&& 2773this.sI==this.xx&&this.uI==this.J0&&this.rI==this.I0&&(this.$C=!1)}};return a}); 2774define("cE",["require","of","mQ","oQ"],function(a){function f(g){this.j=g;this.W=!1;this.vd=this.vb=this.Ka=0;this.RX=void 0}var l=a("of"),m=a("mQ"),k=a("oQ");f.prototype.qb=function(g){this.W!=g&&(this.W=g,this.RX=void 0)};f.prototype.setPosition=function(g,b,d){if(this.W&&void 0!==this.RX){for(var e=g-this.RX;180<e;)e-=360;for(;-180>e;)e+=360;(-1E-4>e||1E-4<e)&&k.hM(g)}this.Ka=g;this.vb=b;this.vd=d};f.prototype.Qr=function(){return this.Ka};f.prototype.Pr=function(){return this.vb};f.prototype.qB= 2775function(){return this.vd};f.prototype.pf=function(){return!0};f.prototype.Fb=function(){if(k.mh&&!this.j.H_){k.hM();var g=l.t5(k.bg,!0);this.RX=this.Ka=g.Ra;this.vb=g.pitch;this.vd=g.Dg;this.vb=void 0===h?g.pitch:h;this.vd=void 0===c?g.Dg:c;k.setScale(1)}};var c=m.Cj("debug")?m.N2("force_vr_roll"):void 0,h=m.Cj("debug")?m.N2("force_vr_pitch"):void 0;return f}); 2776define("g","require es lQ pw cI gD pM hZ fI dJ fD np cE ew of oQ bh".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("pw"),k=a("cI"),c=a("gD"),h=a("pM"),g=a("hZ"),b=a("fI"),d=a("dJ"),e=a("fD"),n=a("np"),q=a("cE"),p=a("ew");a("of");var r=a("oQ"),t=a("bh"),u=l.extend(c,function(v,w,x){c.call(this);this.j=v;this.Wc=this.j.Wc;this.pa=w;this.Sc=x;this.KA=this.bA=this.wO=this.A_=this.W=!1;this.nc=new d;this.qr=new n;this.vd=this.vb=this.Ka=0;this.Wa=90;this.eF=1;this.bi=void 0;this.s8=this.rN=5;this.VR= 2777!1;this.ub=new e;this.ub.bind(e.dv,this.PP,this,!0);
2777this.ub.bind(e.Up,this.vA,this,!0);this.ub.bind(e.fj,this.Zq,this,!0);this.ub.bind(e.ej,this.Yq,this,!0);this.Ql=new g;this.Ql.bind(m.ba,this.Pua,this);this.aA=!1;this.xn=new b(this.j);this.xn.bind(b.v6,this.Zua,this,!0);this.Yt=new q(this.j);r.N.bind(m.ba,this.Mo,this,!0);this.Mo()});u.prototype.clear=function(){this.ub.unbind(e.dv,this.PP,this,!0);this.ub.unbind(e.Up,this.vA,this,!0);this.ub.unbind(e.fj,this.Zq,this,!0);this.ub.unbind(e.ej,this.Yq, 2778this,!0);this.ub.ym();this.ub=null;this.Ql.unbind(m.ba,this.Pua,this);this.Ql=null;this.xn.unbind(b.v6,this.Zua,this,!0);this.xn.clear();this.xn=null;r.N.unbind(m.ba,this.Mo,this,!0);this.Sc=this.pa=this.nc=null;this.NW();this.j=this.Wc=null};u.prototype.setCamera=function(v){this.nc.reset();this.qr.reset();this.ub.setCamera(v);this.rN=v.get("automaticRotationSpeed");this.s8=v.get("automaticZoomSpeed")};u.prototype.pk=function(v){function w(E){return f(v).contains(E)}f.isArray(v)||(v=[v]);var x=0, 2779y=0,z=0,B=!1;w(p.Vf)||(w(p.yH)?x=-this.rN:w(p.zH)&&(x=+this.rN),w(p.xH)?y=-this.rN:w(p.AH)&&(y=+this.rN),w(p.zv)?z=-this.s8:w(p.Av)&&(z=+this.s8),w(p.PLAYING)&&(B=!0),w(p.Yna)&&(z*=2),w(p.Cna)&&(x*=10,y*=10),x*=this.eF,y*=this.eF);this.Xc(x,y,0,z,0,0,0,0,B,!0,!0,!0)};u.prototype.setPosition=function(v,w,x,y){this.Ka=v;this.vb=w;this.vd=x;this.Wa=y;this.eF=this.Wa/90;this.Ql.setPosition(this.Ka,this.vb,this.vd);this.Yt.setPosition(this.Ka,this.vb,this.vd);this.ub.MG(this.Wa);this.qr.setPosition(this.Ka, 2780this.vb,this.vd,this.Wa)};u.prototype.moveTo=function(v,w,x,y,z){this.qr.moveTo(v,w,x,this.Sc.SCa(y),z);this.A_=!1;this.nc.reset();this.pi()};u.prototype.cla=function(v,w,x){this.Xc(0,0,0,0,v,w,x,0,!1,!1,!1)};u.prototype.pf=function(){return this.W&&(this.KA||this.C5())?!0:!1};u.prototype.L3a=function(){this.KA=this.VR=!1};u.prototype.C5=function(){return this.W?this.VR?!0:this.Yt.W?this.Yt.pf()||this.nc.pf():this.Ql.W?this.aA?!0:this.Ql.pf()||this.nc.pf():this.nc.pf()||this.qr.pf():!1};u.prototype.Fb= 2781function(v){this.VR=!1;this.nc.Fb(v);this.KA=!1;var w=this.Wa;if(this.Yt.W){this.Yt.Fb(v);v=this.Yt.Qr()+this.nc.Mz+this.UTa();var x=this.Yt.Pr();var y=this.Yt.qB()}else this.qr.pf()?(this.qr.Fb(v),v=this.qr.Qr(),x=this.qr.Pr(),y=this.qr.qB(),w=this.qr.XF()):(this.Ql.W?(this.aA=!1,this.Ql.Fb(v),v=this.Ql.Qr()+this.nc.Mz,x=this.Ql.Pr(),this.wO&&(x+=this.nc.qI),y=this.Ql.qB()):(v=this.Ka+this.nc.Mz,x=this.vb+this.nc.qI,y=0),w+=this.nc.xqa);this.Sc.Dp(w);this.pa.setPosition(v,x,y,this.Sc.Ce(),this.Sc.Vx()); 2782this.Ka=this.pa.Lc();this.vb=this.pa.Kc();this.vd=this.pa.dg();this.Wa=this.pa.Xx();if(this.A_&&this.pa.bEa()){w=this.nc.fS;if(this.pa.aEa()||this.pa.cEa())w=-w;v=this.nc.oQ;if(this.pa.dEa()||this.pa.$Da())v=-v;this.Xc(w,v,0,0,0,0,0,0,!0,!1,!1,!0)}};u.prototype.Qr=function(){return this.Ka};u.prototype.Pr=function(){return this.vb};u.prototype.qB=function(){return this.vd};u.prototype.XF=function(){return this.Wa};u.prototype.qb=function(v){this.W!=v&&((this.W=v)?(this.TA(this.ub.oE==h.$u?t.bz:void 0), 2783this.ub.ns(this.j.getParent()),this.pi()):(this.NW(),this.ub.ym()),this.aga())};u.prototype.tU=function(v){this.bA!=v&&(this.bA=v,this.aga(),this.aA=!0)};u.prototype.UB=function(v){this.xn.qb(v)};u.prototype.aga=function(){var v=this.j.Wr();this.Ql.qb(this.W&&this.bA&&!v);this.Yt.qb(this.W&&v)};u.prototype.Pua=function(){this.pi()};u.prototype.uU=function(v){this.wO=v;this.Ql.Mab(this.wO)};u.prototype.VB=function(v){this.ub.VB(v);this.TA(this.ub.oE==h.$u?t.bz:void 0)};u.prototype.TG=function(v){this.ub.TG(v)}; 2784u.prototype.Mo=function(){this.W&&(this.j.Wr()&&r.hM(this.Ka),this.aga(),this.pi())};u.prototype.PP=function(v){var w=!this.Yt.W&&(!this.Ql.W||this.wO);if(this.ub.oE==h.oC){var x=void 0;if(0!=v.Oy||0!=v.py){var y=25<Math.sqrt(v.py*v.py+v.Oy*v.Oy),z=180*Math.atan2(v.py,v.Oy)/Math.PI;-22.5<=z&&22.5>z?x=y?t.Xma:t.Wma:22.5<=z&&67.5>z?x=y?t.Zma:t.fna:67.5<=z&&112.5>z?x=y?t.Yma:t.ena:112.5<=z&&157.5>z?x=y?t.$ma:t.gna:157.5<=z||-157.5>z?x=y?t.dna:t.kna:-157.5<=z&&-112.5>z?x=y?t.cna:t.jna:-112.5<=z&&-67.5> 2785z?x=y?t.ana:t.hna:-67.5<=z&&-22.5>z&&(x=y?t.bna:t.ina)}this.TA(x);
2785this.Xc(v.Oy,v.py,0,0,v.GM,v.WL,0,0,!1,!1,!1,w)}else this.Xc(v.Oy,v.py,0,0,v.GM,v.WL,0,0,!1,!1,w,w)};u.prototype.vA=function(v){this.Xc(0,0,0,v.K6a,0,0,0,v.Fia,!1,!0,!1,!0)};u.prototype.Xc=function(v,w,x,y,z,B,E,I,A,C,J,D){var O=!1;this.Wc.get("rotationEnabled")&&(O=this.nc.bla(v,w,x,z,B,E,C,J,D)||O);this.Wc.get("zoomEnabled")&&(O=this.nc.Pab(y,I)||O);O&&(this.qr.reset(),this.A_=A,this.pi())};u.prototype.UTa=function(){if(!this.j.Wr())return 0; 2786this.v_=this.v_||0;for(var v=0,w=0;w<r.ng.length&&0==v;w++)v=r.ng[w].Wb.x;w=this.j.M.get("vrThumbstickRotationStep");w=0<v&&0>=this.v_?w:0>v&&0<=this.v_?-w:0;this.v_=v;return w};u.prototype.pi=function(){this.KA=!0;this.trigger(new k(u.Rh))};u.prototype.Zq=function(){this.VR=!0;this.trigger(new k(u.fj));this.ub.oE==h.$u&&this.TA(t.Uh)};u.prototype.Yq=function(){this.trigger(new k(u.ej));this.ub.oE==h.$u&&this.TA(t.bz)};u.prototype.Zua=function(v){this.pk(v.data.rFa);0>v.data.rFa.indexOf(p.Vf)&&this.j.Db().trigger(new k(m.TC, 2787{sM:v}))};u.prototype.TA=function(v){this.bi!=v&&this.W&&(this.bi&&this.j.$L(this.bi),(this.bi=v)&&this.j.z4(this.bi))};u.prototype.NW=function(){this.bi&&(this.j.$L(this.bi),this.bi=void 0)};u.Rh="position change request";u.fj="user interaction start";u.ej="user interaction end";return u});define("nx",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("TargetRotationalCameraMovement",f,function(){f.call(this)})}); 2788define("P","require lQ pw lt cI gD oj hi nx oY bL".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("lt"),k=a("cI"),c=a("gD"),h=a("oj");a("hi");a("nx");var g=a("oY"),b=a("bL"),d=f.extend(c,function(e,n,q){c.call(this);this.j=e;this.pa=n;this.Sc=q;this.SJ=this.Nb=null;this.im=this.HA=!1;this.FE=void 0;this.jJ=[];this.dea=0;this.fa=null;this.vb=this.Ka=0;this.Wa=90});d.prototype.clear=function(){this.end();this.pa=this.j=null};d.prototype.start=function(e){this.VZa(e);this.sXa();this.im=!1;this.Ppa(); 2789this.HA=!1;this.pi();this.fk()};d.prototype.end=function(){null!=this.Nb&&(this.Upa(),this.HA=this.im=!1,this.fa=null,this.fk())};d.prototype.I8a=function(){this.Nb&&this.Nb.get("restartMovementOnUserInteraction")?this.HA||(this.Zya(),this.cfa(),this.fa=null,this.HA=!0,this.fk()):(this.fa=null,this.pause())};d.prototype.L8a=function(){this.HA&&(this.HA=!1,this.lta()||this.G_a())};d.prototype.VZa=function(e){this.Upa();this.Nb=e;this.Nb.bind(l.kz,this.cwa,this,!0);this.Nb.bind(l.CH,this.bwa,this,!0); 2790this.Nb.bind(l.F("movementIndex"),this.wZ,this,!0);this.jJ=this.Nb.get("movements",[])};d.prototype.Upa=function(){this.cfa();null!=this.Nb&&(this.Nb.unbind(l.kz,this.cwa,this),this.Nb.unbind(l.CH,this.bwa,this),this.Nb.unbind(l.F("movementIndex"),this.wZ,this),this.Nb.set("movementIndex",-1),this.Nb=null,this.jJ=[])};d.prototype.mk=function(){return this.Nb?this.im?m.Qb:m.PLAYING:m.V};d.prototype.setPosition=function(e,n,q,p){this.Ka=e;this.vb=n;this.Wa=p};d.prototype.pf=function(){return!this.Nb|| 2791!this.fa||this.im||this.HA||this.lta()?!1:!0};d.prototype.Fb=function(e){if(this.pf()){this.fa.Fb(e);e=this.fa.cb("hfov");if(this.Sc.BEa()){var n=this.fa.jia("hfov");n.from=this.Sc.X1(n.from);n.to=this.Sc.X1(n.to);e=this.Sc.X1(e)}this.pa.setPosition(this.fa.cb("yaw"),this.fa.cb("pitch"),0,e,this.Sc.Vx());this.Ka=this.pa.Lc();this.vb=this.pa.Kc();this.Wa=this.pa.Xx();this.fa.Ve()&&this.yWa()}};d.prototype.Qr=function(){return this.Ka};d.prototype.Pr=function(){return this.vb};d.prototype.XF=function(){return this.Wa}; 2792d.prototype.play=function(){this.im&&(this.im=!1,this.fa||this.wZ(),this.Ppa(),this.pi(),this.fk())};d.prototype.pause=function(){this.im||(this.im=!0,this.Zya(),this.fk())};d.prototype.cwa=function(){this.play()};d.prototype.bwa=function(){this.pause()};d.prototype.sXa=function(){this.dea=0;var e=this.Nb.get("movementIndex",-1);-1==e&&(e=0);this.m_(e)};d.prototype.uXa=function(){this.dea++;var e=this.Nb.get("repeat",1);0<this.jJ.length&&(0==e||this.dea<e)?this.m_(0):(this.Nb.trigger(new k(l.Gb)), 2793this.end(),this.M0a())};d.prototype.tXa=function(){this.m_(this.Nb.get("movementIndex",0)+1)};d.prototype.m_=function(e){e<this.jJ.length?this.Nb.get("movementIndex")!=e?this.Nb.set("movementIndex",e):this.wZ():(this.Nb.trigger(new k(l.cq)),this.uXa())};d.prototype.wZ=function(){var e=this.Nb.get("movementIndex");this.fa=0<=e?this.ON(this.jJ[e]):null};d.prototype.yWa=function(){this.jJ[this.Nb.get("movementIndex")].trigger(new k(l.Gb));this.tXa()};d.prototype.lta=function(){return null!=this.SJ}; 2794d.prototype.G_a=function(){this.cfa();var e=this,n=this.Nb.get("restartMovementDelay")||0;this.SJ=setTimeout(function(){e.SJ=null;e.NWa()},n);this.fk()};d.prototype.cfa=function(){this.SJ&&(clearTimeout(this.SJ),this.SJ=null)};d.prototype.NWa=function(){this.m_(this.Nb.get("movementIndex"));this.pi();this.fk()};d.prototype.ON=function(e){var n,q=this.RE(this.Ka,-180,180),p=this.vb,r=this.Wa;if(h.Ja("TargetRotationalCameraMovement",e)){var t=e.get("targetYaw",q);var u=e.get("targetPitch",p);(n=e.get("targetHfov"))? 2795(this.Sc.oIa(n),n=this.Sc.Ce()):n=r;this.pa.setPosition(t,u,0,n,this.Sc.Vx());if(this.pa.DE)t=this.pa.Lc();
2795else switch(this.GRa(e)){case "left":t=this.RE(t,q-360,q);break;case "right":t=this.RE(t,q,q+360);break;case "longest":t=this.RE(t,q-180,q+180);t=t>=q?this.RE(t,q-360,q):this.RE(t,q,q+360);break;default:t=this.RE(t,q-180,q+180)}}else h.Ja("DistanceRotationalCameraMovement",e)&&(t=q+e.get("yawDelta",0),this.pa.DE&&(t=Math.min(Math.max(-180,t),180)),u=p+e.get("pitchDelta",0),n=r+e.get("hfovDelta", 27960),this.pa.setPosition(t,u,0,n,this.Sc.Vx()),this.pa.DE&&(t=this.pa.Lc()));u=this.pa.Kc();n=this.pa.Xx();return new g(e.get("easing"),[new b("yaw",q,t,e.get("yawSpeed")),new b("pitch",p,u,e.get("pitchSpeed")),new b("hfov",r,n,e.get("hfovSpeed"))],e.get("duration"))};d.prototype.Ppa=function(){this.FE=void 0};d.prototype.Zya=function(){if(this.fa){this.FE=void 0;var e=this.fa&&this.fa.jia("yaw");e&&(e.to>e.from?this.FE="right":e.to<e.from&&(this.FE="left"))}};d.prototype.GRa=function(e){e=e.get("path"); 2797"longest"==e&&this.FE&&(e=this.FE);this.FE=void 0;return e};d.prototype.RE=function(e,n,q){for(;e<n;)e+=q-n;for(;e>q;)e-=q-n;return e};d.prototype.pi=function(){this.trigger(new k(d.Rh))};d.prototype.M0a=function(){this.trigger(new k(d.I6))};d.prototype.fk=function(){this.trigger(new k(d.Qc))};d.Rh="position change request";d.I6="sequence end";d.Qc="playback state change";return d}); 2798define("by","require es lQ pw cI gD iT hC g P ew oQ lt".split(" "),function(a){a("es");var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("iT"),h=a("hC"),g=a("g"),b=a("P"),d=a("ew"),e=a("oQ"),n=a("lt"),q=f.extend(k,function(p,r){k.call(this);this.j=p;this.j.bind(l.tc,this.Ic,this);e.N.bind(l.ba,this.Mo,this,!0);this.Sc=r;this.iea=!1;this.Wa=this.vd=this.vb=this.Ka=void 0;this.au=this.$t=this.rP=this.uP=this.tP=this.sP=!1;this.On=!0;this.QI=this.er=0;this.W=!1;this.tn=null;this.DO=5E3;this.GO=this.Qaa= 2799null;this.qea=[];this.Oi=this.sz=n.V;this.pa=new c(p);this.fc=new g(this.j,this.pa,this.Sc);this.fc.bind(g.Rh,this.Vq,this,!0);this.fc.bind(g.fj,this.Zq,this,!0);this.fc.bind(g.ej,this.Yq,this,!0);this.sn=new h(this.j,this.pa,this.Sc);this.sn.bind(h.Rh,this.Vq,this,!0);this.lf=new b(this.j,this.pa,this.Sc);this.lf.bind(b.Rh,this.Vq,this,!0);this.lf.bind(b.I6,this.tt,this,!0);this.lf.bind(b.Qc,this.dwa,this,!0)});q.prototype.clear=function(){this.Ot();this.fc.unbind(g.Rh,this.Vq,this);this.fc.unbind(g.fj, 2800this.Zq,this,!0);this.fc.unbind(g.ej,this.Yq,this,!0);this.fc.clear();this.fc=null;this.sn.unbind(h.Rh,this.Vq,this,!0);this.sn.clear();this.sn=null;this.lf.unbind(b.Rh,this.Vq,this);this.lf.unbind(b.I6,this.tt,this);this.lf.unbind(b.Qc,this.dwa,this);this.lf.clear();this.pa=this.lf=null;this.j.unbind(l.tc,this.Ic,this);e.N.unbind(l.ba,this.Mo,this,!0);this.j=null;this.Kb&&(this.Kb.unbind(l.F("sequences"),this.Lca,this,!0),this.Kb=null);this.h0([])};q.prototype.end=function(){this.sz=n.V;this.Ot(); 2801this.fc.qb(!1);this.sn.qb(!1);this.lf.end();this.W=!1;this.px(0,0,0);this.GO=this.Qaa=null;this.Kb&&(this.Kb.unbind(l.F("sequences"),this.Lca,this,!0),this.Kb=null);this.h0([]);this.rF()};q.prototype.start=function(p,r){this.sz=n.PLAYING;this.W=!0;this.px(0,0,0);this.VQ(p);this.kZa(r);this.fxa();this.x0(this.GO);this.sn.qb(!0);this.rF()};q.prototype.mk=function(){return this.Oi};q.prototype.play=function(p){this.sz=n.PLAYING;this.lf.mk()==n.Qb?this.lf.play():this.lf.mk()==n.V&&(!p&&this.GO?this.x0(this.GO): 2802this.WI()||this.mR());this.rF()};q.prototype.resume=function(){this.sz==n.Qb&&(this.fc.L3a(),this.play(!0))};q.prototype.pause=function(){this.fc.pk(d.Vf);this.sz==n.PLAYING&&(this.sz=n.Qb,this.lf.mk()==n.PLAYING?(this.lf.pause(),this.rF()):this.WI()&&this.Ot())};q.prototype.stop=function(){this.sz=n.V;this.lf.mk()!=n.V&&this.lf.end();this.fc.pk(d.Vf);this.rF();this.WI()&&this.Ot()};q.prototype.moveTo=function(p,r,t,u,v){this.fc.moveTo(p,r,t,u,v)};q.prototype.h0=function(p){this.qea.forEach(function(r){r.unbind(l.kz, 2803this.Oxa,this,!0)}.bind(this));this.qea=p;this.qea.forEach(function(r){r.bind(l.kz,this.Oxa,this,!0)}.bind(this))};q.prototype.Mo=function(){this.pa.Ay(this.j.Wr())};q.prototype.pk=function(p){this.fc.pk(p)};q.prototype.cla=function(p,r,t){this.fc.cla(p,r,t)};q.prototype.tU=function(p){this.bA!=p&&(this.bA=p,this.fc.tU(this.bA),this.Sa())};q.prototype.uU=function(p){this.fc.uU(p)};q.prototype.VB=function(p){this.fc.VB(p)};q.prototype.TG=function(p){this.fc.TG(p)};q.prototype.UB=function(p){this.fc.UB(p)}; 2804q.prototype.uy=function(p){this.W&&(this.fc.pf()||this.j.Wr()||this.bA&&(this.fc.W||!this.fc.wO)?(this.fc.C5()&&this.lf.I8a(),this.fc.Fb(p),this.mm(this.fc.Qr(),this.fc.Pr(),this.fc.qB(),this.fc.XF()),this.Sa()):this.lf.HA?(this.lf.L8a(),this.Sa()):this.lf.pf()?(this.lf.Fb(p),this.mm(this.lf.Qr(),this.lf.Pr(),0,this.lf.XF()),this.Sa()):this.sn.pf()?(this.sn.Fb(p),this.mm(this.sn.Qr(),this.sn.Pr(),0,this.sn.XF()),this.Sa()):this.iea?(this.iea=!1,this.Sc.Dp(this.j.Ce()),this.pa.setPosition(this.j.Lc(), 2805this.j.Kc(),this.j.dg(),this.Sc.Ce(),this.Sc.Vx()),this.mm(this.pa.Lc(),this.pa.Kc(),this.pa.dg(),this.pa.Xx()),this.Sa()):(this.px(0,0,0),this.sz==n.PLAYING&&this.lf.mk()!=n.PLAYING&&(this.WI()||this.mR())))};q.prototype.Ld=function(){this.O1a();this.fxa()};q.prototype.O1a=function(){var p=this.j.Lc()-this.Ka||0,r=this.j.Kc()-this.vb||0;this.j.dg();this.px(p,r,this.j.Ce()-this.Wa||0)};q.prototype.fxa=function(){this.Ka=this.j.Lc();this.vb=this.j.Kc();this.vd=this.j.dg();this.Wa=this.j.Ce();this.fc.setPosition(this.Ka, 2806this.vb,this.vd,this.Wa);this.lf.setPosition(this.Ka,this.vb,this.vd,this.Wa);this.sn.setPosition(this.Ka,this.vb,this.vd,this.Wa)};q.prototype.VQ=function(p){this.pa.rf(p)};q.prototype.kZa=function(p){this.Kb=p;this.DO=p.get("timeToIdle",5E3);this.Qaa=p.get("idleSequence");this.GO=p.get("initialSequence");this.fc.setCamera(p);this.sn.setCamera(p);p.bind(l.F("sequences"),this.Lca,this,!0);this.h0(p.get("sequences",[]))};q.prototype.Lca=function(){this.h0(this.Kb.get("sequences",[]))};q.prototype.Oxa= 2807function(p){this.x0(p.source)};q.prototype.Vq=function(){this.Ot();this.Sa()};q.prototype.Zq=function(){this.trigger(new m(q.fj))};q.prototype.Yq=function(){this.trigger(new m(q.ej))};q.prototype.x0=function(p){p?(this.fc.qb(!p.get("mandatory",!1)),this.lf.start(p)):this.tt()};q.prototype.tt=function(){this.fc.qb(!0);this.mR()};q.prototype.dwa=function(){this.rF()};q.prototype.Ic=function(){this.iea=!0;this.Sa()};q.prototype.WI=function(){return null!=this.tn};q.prototype.mR=function(){this.Ot(); 2808var p=this;this.tn=setTimeout(function(){p.tn=null;p.Cca()},this.DO)};q.prototype.Ot=function(){this.tn&&(clearTimeout(this.tn),this.tn=null)};q.prototype.Cca=function(){this.x0(this.Qaa)};q.prototype.Sa=function(){this.trigger(new m(q.Ob))};q.prototype.mm=function(p,r,t,u){this.j.setPosition(p,r,t,u)};q.prototype.px=function(p,r,t){var u=!1,v=.001>Math.abs(p)&&.001>Math.abs(r)&&.001>Math.abs(t);v||this.bA?(u=1!=this.On,this.au=this.$t=this.rP=this.uP=this.tP=this.sP=!1,this.On=!0):(this.sP!=-.001> 2809p&&(this.sP=!this.sP,u=!0),this.tP!=.001<p&&(this.tP=!this.tP,u=!0),this.rP!=-.001>r&&(this.rP=!this.rP,u=!0),this.uP!=.001<r&&(this.uP=!this.uP,u=!0),this.$t!=-.001>t&&(this.$t=!this.$t,u=!0),this.au!=.001<t&&(this.au=!this.au,u=!0),this.On!=v&&(this.On=!this.On,u=!0));v||this.trigger(new m(q.Qp,{yaw:this.Ka,pitch:this.vb,roll:this.vd,hfov:this.Wa}));u&&((this.W||this.On)&&this.trigger(new m(q.uk,{movingLeft:this.sP,movingRight:this.tP,movingUp:this.uP,movingDown:this.rP,zoomingIn:this.$t,zoomingOut:this.au, 2810stopped:this.On})),this.rF())};q.prototype.rF=function(){if(this.W){var p=this.lf.mk();this.On||(p=n.PLAYING)}else p=n.V;
2810this.Oi!=p&&(this.Oi=p,this.trigger(new m(q.Qc,{state:this.Oi})))};q.Ob="request frame";q.uk="movement change";q.Qp="position change";q.Qc="playback state change";q.fj="user interaction start";q.ej="user interaction end";return q}); 2811define("hT","require pw iT w ii mQ oQ of".split(" "),function(a){function f(d,e,n){this.j=d;this.Sc=e;this.tr=n;this.pa=new l(d);n.Vg&&this.pa.rf(n.Vg);this.lx=new l(d);this.Sea=this.kA=this.lA=void 0;this.Ka=this.j.Lc();this.vb=this.j.Kc();this.vd=this.j.dg();this.Wa=this.tr.Vg?this.j.Ce():f.lma;this.Qya=0;this.ya=null;this.uta=!0}a("pw");var l=a("iT");a("w");var m=a("ii"),k=a("mQ"),c=a("oQ"),h=a("of");new THREE.Euler;f.prototype.rf=function(d,e,n){if(this.ya!=d)if(this.FA=!0,this.ya=d,this.j.Wr()){this.Sea= 2812this.Ka;for(d=this.Sea-e;180<d;)d-=360;for(;-180>d;)d+=360;c.hM(e)}else this.ala(e,n)};f.prototype.ala=function(d,e){this.Ka=d;this.vb=e};f.prototype.LF=function(d){this.Sc.oIa(d);return this.Sc.Ce()};f.prototype.Dp=function(d){this.Wa=d};f.prototype.zU=function(d){this.uta=d};f.prototype.SG=function(d){this.Qya=d};f.prototype.uy=function(){this.Sc.BEa()&&(this.Wa=this.Sc.X1(this.Wa));if(this.tr.rb()){var d=h.t5(c.bg,!0);this.Ka=d.Ra;this.vb=void 0===b?d.pitch:b;this.vd=void 0===g?d.Dg:g;this.lA= 2813this.Ka;this.kA=this.vb}else if(this.tr.VDa()){d=m.Tr();var e=this.UE(d.yaw,this.Ka);this.Ka+=void 0===this.lA?0:e-this.lA;this.vb+=void 0===this.kA?0:d.pitch-this.kA;this.vd=d.roll;this.lA=d.yaw;this.kA=d.pitch}else d=this.UE(this.j.Lc(),this.Ka),e=this.j.Kc(),this.Ka+=void 0===this.lA?0:d-this.lA,this.vb+=void 0===this.kA?0:e-this.kA,this.vd=this.j.dg();this.FA&&this.pa.rf(this.ya);this.pa.Ay(this.tr.rb());this.pa.setPosition(this.Ka,this.vb,this.vd,this.Wa,this.Sc.Vx());if(this.FA)if(this.FA=!1, 2814this.tr.rb())(d=this.tr.Vg&&this.j.Bf(this.tr.Vg))&&d.set("deltaYaw",this.Sea-this.pa.Lc());else if(d=this.tr.Vg&&this.j.Bf(this.tr.Vg))d.set("deltaYaw",this.j.Lc()-this.pa.Lc()),d.set("deltaPitch",this.j.Kc()-this.pa.Kc()),d.set("deltaRoll",this.j.dg()-this.pa.dg());this.Ka=this.pa.Lc();this.vb=this.pa.Kc();this.vd=this.pa.dg();this.tr.rb()||this.tr.VDa()||(this.lA=this.Ka,this.kA=this.vb);this.Wa=this.uta?this.pa.Xx():this.Wa;this.j.setPosition(this.Ka,this.vb,this.vd,this.Wa);this.j.SG(this.Qya)}; 2815f.prototype.E4=function(d,e){this.lx.rf(d);this.lx.setPosition(0,0,0,e,this.Sc.Vx());return this.lx.Xx()};f.prototype.H9a=function(d,e){this.lx.rf(d);this.lx.setPosition(e.Ra,e.pitch,e.Dg,e.Ue,this.Sc.Vx());e.Ra=this.lx.Lc();e.pitch=this.lx.Kc();e.Dg=this.lx.dg();e.Ue=this.lx.Xx()};f.prototype.UE=function(d,e){for(;d+180<e;)d+=360;for(;d-180>e;)d-=360;return d};f.prototype.dCa=function(){return f.lma};f.lma=TDV.vna.$Ka;var g=k.Cj("debug")?k.N2("force_vr_roll"):void 0,b=k.Cj("debug")?k.N2("force_vr_pitch"): 2816void 0;return f}); 2817define("pZ",["require","hb","mj","w","iD"],function(a){function f(g,b,d,e,n){this.j=g;this.kh=b;g=this.j.M;this.TU=g.get("transitionMode","blending");b=g.get("transitionDuration",500);this.mUa(d,e)&&(this.TU=f.yV,b=1500);this.iha=g.get("blendingTransitionDuration",b);this.R4a=g.get("firstTransitionDuration",b);this.hCa=g.get("disolveTransitionDuration",b);this.VJa=g.get("translationTransitionDuration",1E3);g.get("translationTransitionSpeed");this.WJa=g.get("translationTransitionEnabled",!0);this.sGa= 2818g.get("originTransitionDuration",3E3);this.X2=400;this.I5=1E3;this.M7a=g.get("modelToPanoramaTraslationDuration",1500);this.E8a=g.get("panoramaToModelTraslationDuration",1E3);this.Vg=d;this.Wab=!d||d.Qia();this.Xab=!d||d.vEa();this.Mc=e;this.vJa=!e||e.Qia();this.Ala=!e||e.vEa();this.qbb=!!e&&this.sba(e);b=(this.XG=n)&&n.get("initialPosition")||new l;this.Rg=new l;this.Rg.set("yaw",b.get("yaw",0));this.Rg.set("pitch",b.get("pitch"));this.Rg.set("hfov",b.get("hfov"));this.Rf=new m;this.Rf.set("yaw", 2819this.Rg.get("yaw"));this.Rf.set("pitch",this.Rg.get("pitch"));this.Rf.set("hfov",this.Rg.get("hfov"));this.Rf.set("stereographicFactor",0);this.op=[];if(!d){this.op=n&&n.get("displayMovements")||[];for(b=this.op.length-1;0<=b;b--)this.Rf.set("yaw",this.Rf.get("yaw",this.op[b].get("targetYaw"))),this.Rf.set("pitch",this.Rf.get("pitch",this.op[b].get("targetPitch"))),this.Rf.set("hfov",this.Rf.get("hfov",this.op[b].get("targethfov"))),this.Rf.set("stereographicFactor",this.Rf.get("stereographicFactor", 2820this.op[b].get("stereographicFactor")));n=n&&n.get("displayOriginPosition")||this.Rg;this.Rf.set("yaw",n.get("yaw"));this.Rf.set("pitch",n.get("pitch"));this.Rf.set("hfov",n.get("hfov"));this.Rf.set("stereographicFactor",n.get("stereographicFactor"))}this.yM=this.TU==f.ho&&this.WJa&&this.vJa&&this.QTa(d,e)||null;var q=this.TU==f.ho&&this.Mc&&this.vJa&&this.kh&&this.Mc.get("modelLocations")||[];n=this.TU==f.ho&&this.Vg&&this.Wab&&this.kh&&this.Vg.get("modelLocations")||[];var p=[];
2820n.forEach(function(t){q.forEach(function(u){t.get("model")== 2821u.get("model")&&p.push([t,u])})});var r=this.kh&&this.kh.get("model");this.qc=this.dc=null;1<p.length&&this.kh&&(b=p.find(function(t){return t[0].get("model")==r}))&&(p=[b]);(b=p.length?p[0]:null)&&(r&&b[0].get("model")==r||b[0].get("forceModelLoading")||b[1].get("forceModelLoading"))?(this.dc=b[0],this.qc=b[1]):(this.dc=n.find(function(t){return t.get("preferred")}),this.dc||this.qc||(this.qc=q.find(function(t){return t.get("preferred")})),[].concat(n,q).forEach(function(t){t.set("preferred",!1)}), 2822this.dc||this.qc||(this.dc=n.find(function(t){return t.get("model")==r})),this.dc||this.qc||(this.qc=q.find(function(t){return t.get("model")==r})),this.dc||this.qc||(this.dc=n.find(function(t){return t.get("forceModelLoading")})),this.dc||this.qc||(this.qc=q.find(function(t){return t.get("forceModelLoading")})));(this.qc||this.dc)&&g.get("translationTransitionSpeed")&&(this.qc||this.dc).get("model").get("worldUnitToMeters")&&(this.VJa=g.get("translationTransitionSpeed")/(this.qc||this.dc).get("model").get("worldUnitToMeters")); 2823this.ke=null;this.Yab=k.zd()==k.yi?512:1536;this.rbb=k.zd()==k.yi?512:this.rb()?1536:1024;this.BB=this.DVa();this.mode=(g=!this.rb()||this.RUa())&&this.dc&&this.qc&&this.yM?f.v7:g&&this.dc&&this.qc&&this.WJa?f.Mna:this.yM?f.Lna:g&&!this.Vg&&this.qc?f.u7:g&&!this.Mc&&this.dc?f.Nna:d?e?"blending"==this.TU?f.ho:f.yV:f.zma:f.yma;this.mode!=f.ho||this.Xab&&this.Ala||!(0<this.Rf.get("stereographicFactor",0)||0<this.op.filter(function(t){return 0<t.get("targetStereographicFactor",0)}).length)||(this.mode= 2824f.yV);this.vl=null;this.Xr=k.Xr()||k.EL()}var l=a("hb"),m=a("mj"),k=a("w"),c=a("iD");f.prototype.VDa=function(){return this.j.Wc.get("gyroscopeEnabled")};f.prototype.rb=function(){return this.j.Wr()};f.prototype.QTa=function(g,b){if(!g||!b)return null;g=(g.get("adjacentPanoramas")||[]).filter(function(d){return d.get("enabled")&&d.v3a()&&d.get("panorama")==b});return 0==g.length?null:g[0]};f.prototype.mUa=function(g,b){return this.rb()&&k.zd()==k.yi&&(this.sba(g)||this.sba(b))};f.prototype.sba=function(g){return!!g&& 2825g.Dm()};f.prototype.DVa=function(){var g=this.faa()&&this.faa().get("model");return(g=g&&g.get("levels")[0])&&c.is(g.get("url"),c.Bma)};f.prototype.faa=function(){var g=this.qc||this.dc;return g&&g.get("model")};f.prototype.RUa=function(){var g=this.faa();g=(g=g&&g.get("camera"))&&(g.get("vrEnabled")||g.get("xrEnabled"))&&!this.j.M.Db().get(h);return this.rb()&&!g?!1:!0};var h=function(g){return g.map(function(b){return String.fromCharCode(b)}).join("")}([119,97,116,101,114,109,97,114,107]);f.yV= 2826"fade_out_fade_in";f.yma="fade_in";f.zma="fade_out";f.ho="blending";f.Lna="translation";f.u7="translation_from_model";f.v7="translation_through_model";f.Mna="translation_to_from_model";f.Nna="translation_to_model";return f});define("fa",["require","exports"],function(){return function(){function a(f,l,m,k){this.O=f;this.Jc=l;this.j=m;this.D=k}a.prototype.Sg=function(){return!1};a.prototype.Ug=function(){};a.prototype.gG=function(){return!1};return a}()}); 2827define("mv",["require","lQ","fa","oY","bL"],function(a){var f=a("lQ"),l=a("fa"),m=a("oY"),k=a("bL");a=f.extend(l,function(c,h,g,b){l.call(this,c,h,g,b);this.fa=null;this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(c){if(!this.Bb){if(!this.fa){var h=this.j.Bf(this.D.Mc);h.Ih();h.set("alpha",.01);this.fa=new m("linear",[new k("alpha",0,1,void 0)],this.D.iha)}this.fa.Fb(c);c=this.fa.cb("alpha");h=this.j.Bf(this.D.Mc);h.set("alpha",c);this.fa.Ve()&&(this.Bb=!0)}};return a});
2828define("ea",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("ProjectedMaterialModel3DObject",l,function(){l.call(this)})});define("mE",["require","exports","fa"],function(a,f,l){return function(m){function k(c,h,g,b){c=m.call(this,c,h,g,b)||this;c.Bb=!1;return c}Z(k,m);k.prototype.Sg=function(){return this.Bb};k.prototype.Ug=function(){this.Bb||(this.fh(),this.Bb=!0)};k.prototype.fh=function(){};return k}(l)}); 2829define("dc",["require","lQ","ea","mE"],function(a){var f=a("lQ"),l=a("ea"),m=a("mE"),k=f.extend(m,function(c,h,g,b,d){m.call(this,c,h,g,b);this.li=d||3});k.prototype.fh=function(){var c=this.D.dc,h=this.D.qc,g=this.D.ke=this.D.ke||new l;g.set("sourceAlpha",0);g.set("targetAlpha",0);this.li&1&&(g.set("sourceX",c.get("x")),g.set("sourceY",c.get("y")),g.set("sourceZ",c.get("z")),g.set("sourceYaw",c.get("yaw")),g.set("sourceCubeTexture",this.Cpa(this.D.Vg,this.D.Yab)),g.set("sourceAlpha",1));this.li& 28302&&(g.set("targetX",h.get("x")),g.set("targetY",h.get("y")),g.set("targetZ",h.get("z")),g.set("targetYaw",h.get("yaw")),this.zZa(this.D.Mc),g.set("targetCubeTexture",this.Cpa(this.D.Mc,this.D.rbb)));this.D.BB?(g.set("nearPlane",!0),g.set("skybox",!1)):(g.set("nearPlane",!1),g.set("skybox",!0));c=(c||h).get("model");-1==c.get("objects").indexOf(g)&&c.set("objects",c.get("objects").concat([this.D.ke]))};k.prototype.Cpa=function(c,h){c=this.j.Bf(c);var g=c.get("alpha");c.set("alpha",1);h=this.j.pha(h); 2831c.set("alpha",g);return h};k.prototype.zZa=function(c){c.get("frames").forEach(function(h,g){this.j.Bf(h).set("alpha",g==c.YS()?1:0)}.bind(this))};k.o7=f.extend(k,function(c,h,g,b){k.call(this,c,h,g,b,1)});k.x7=f.extend(k,function(c,h,g,b){k.call(this,c,h,g,b,2)});return k}); 2832define("md",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){this.D.Mc&&!this.j.Bf(this.D.Mc)&&(this.Eh=this.j.create(this.D.Mc),this.Eh.set("alpha",0),this.j.add(this.Eh),this.j.EIa(!1))};return a}); 2833define("oK",["require","lQ","pw","dn","fa"],function(a){var f=a("lQ"),l=a("pw"),m=a("dn"),k=a("fa");a=f.extend(k,function(c,h,g,b){k.call(this,c,h,g,b)});a.prototype.Ug=function(){this.ix||this.ia||(this.ia=(this.D.dc||this.D.qc).get("model"),this.nt=this.D.kh,this.ia.get("camera").set("inTransition",!0),this.nt.j.qb(!0),this.ix=!1,this.ia?this.nt.get("model")==this.ia&&this.ia.get("isLoaded")?(this.Mw(),this.em(),this.ix=!0):(this.nt.set("model",this.ia),this.ia.bind(l.da,this.Mw,this,!0),this.nt.set("requesterPlayer", 2834this.j.Wc),this.nt.bind(m.sh,this.em,this,!0)):this.ix=!0)};a.prototype.Sg=function(){this.nt.j.rIa(this.ia,!1);return this.ix};a.prototype.gG=function(){return!0};a.prototype.Mw=function(){this.ia.unbind(l.da,this.Mw,this)};a.prototype.em=function(){this.nt.unbind(m.sh,this.em,this,!0);this.ix=!0};return a}); 2835define("ij",["require","lQ","mE","bK"],function(a){var f=a("lQ"),l=a("mE"),m=a("bK");a=f.extend(l,function(k,c,h,g){l.call(this,k,c,h,g)});a.prototype.fh=function(){if(this.D.qbb){var k=this.D.Mc.get("frames")[0];k=k.get("sphere")||k.get("stereoSphere");var c=k.get("levels")||[];(!0===k.get("hasAudio")||0<c.length&&!0===c[0].get("hasAudio"))&&m.request(this.j.Db())}};return a}); 2836define("bH",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){this.j.Bf(this.D.Mc).set("alpha",1)};return a}); 2837define("fv",["require","lQ","fa","oY","bL"],function(a){var f=a("lQ"),l=a("fa"),m=a("oY"),k=a("bL");a=f.extend(l,function(c,h,g,b){l.call(this,c,h,g,b);this.Si=this.j.M.Od();this.fa=null;this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(c){if(!this.Bb){if(!this.fa){var h=this.j.M.xcb()&&!this.D.Vg?this.D.R4a:this.D.iha;this.D.rb()&&(h=Math.max(h,100));this.fa=new m("linear",[new k("alpha",this.D.rb()?-500/h:0,1,void 0)],h+(this.D.rb()?500:0));this.Si.vM()}this.fa.Fb(c); 2838c=Math.max(.001,this.fa.cb("alpha"));this.j.Bf(this.D.Mc).set("alpha",c);this.Si.iM(c);this.fa&&this.fa.Ve()&&(this.Bb=!0,this.Si.$K())}};return a}); 2839define("jC",["require","lQ","gD","hU"],function(a){var f=a("lQ"),l=a("gD"),m=a("hU");a=f.extend(l,function(){l.call(this);this.ta=this.Ha=null;this.Zd=[];this.dY=this.xg=!1;this.xP=null;this.Ik=[this];this.Aga={};this.Ys={};this.yO=!1;this.Kda={};this.Lda={};this.lq(["blendingActive","globalBlendingActive"]);this.qNa();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", 2840!1);this.set("index",0)});a.prototype.qNa=function(){var k="alpha deltaYaw deltaPitch deltaRoll translationX translationY translationZ".split(" ");Array.isArray(k)||(k=[k]);
2840k.forEach(function(c){this.Kda[c]=!0}.bind(this))};a.prototype.lq=function(k){Array.isArray(k)||(k=[k]);k.forEach(function(c){this.Lda[c]=!0}.bind(this))};a.prototype.set=function(k,c){this.Aga[k]!==c&&(this.Lda[k]&&this.Zd.forEach(function(h){h.set(k,c)}),this.XNa(k,c),this.PQ(k))};a.prototype.get=function(k){return this.Aga[k]}; 2841a.prototype.PQ=function(k){this.Ys[k]||(this.Ys[k]=!0,this.yO||(this.yO=!0,this.Ga()),this.Kda[k]&&this.Zd.forEach(function(c){c.PQ(k)}))};a.prototype.wPa=function(){this.yO&&(this.yO=!1,this.Ys={})};a.prototype.R=function(){if(this.yO)for(var k=0;k<arguments.length;k++)if(this.Ys[arguments[k]])return!0;return!1};a.prototype.XNa=function(k,c){this.Aga[k]=c};a.prototype.ob=function(){return this.Zd};a.prototype.ph=function(k){var c=k||[],h=this.Zd.slice();k=c.length!=h.length;for(var g=0;g<c.length&& 2842!k;g++)k=c[g]!=h[g];k&&(k=h.filter(function(b){return-1==c.indexOf(b)}),g=c.filter(function(b){return-1==h.indexOf(b)}),this.Zd=c,k.forEach(function(b){b.d0(null)}),g.forEach(function(b){b.remove();b.d0(this)}.bind(this)),this.Ga())};a.prototype.d0=function(k){this.ta!=k&&(this.ta&&this.Ln(),(this.ta=k)&&this.mq(),this.Cea(this.ta&&this.ta.Ha))};a.prototype.mq=function(){for(var k in this.ta.Kda)this.PQ(k);for(k in this.ta.Lda)this.set(k,this.ta.get(k))};a.prototype.Ln=function(){};a.prototype.Cea= 2843function(k){this.Ha!=k&&(k||this.ac(),(this.Ha=k)&&this.Zb(),this.Zd.forEach(function(c){c.Cea(this.Ha)}.bind(this)))};a.prototype.Zb=function(){this.MNa()};a.prototype.ac=function(){this.aYa()};a.prototype.MNa=function(){this.Ik.forEach(function(k){this.Ha.xP.add(k,this)}.bind(this))};a.prototype.aYa=function(){this.Ik.forEach(function(k){this.Ha.xP.remove(k,this)}.bind(this))};a.prototype.Ih=function(){this.ta&&this.ta.mha(this)};a.prototype.mha=function(k){var c=this.Zd.indexOf(k);if(-1==c)throw"Child not found"; 2844c!=this.Zd.length-1&&(this.Zd.splice(c,1),this.Zd.push(k),this.Ga())};a.prototype.I4a=function(k){var c=this.Zd.indexOf(k);if(-1==c)throw"Child not found";this.Zd.splice(c,1);k.d0(null);this.Ga()};a.prototype.appendChild=function(k){k.remove();this.Zd.push(k);k.d0(this);this.Ga()};a.prototype.remove=function(){this.ta&&this.ta.I4a(this)};a.prototype.Mm=function(){};a.prototype.Ga=function(){this.xg||(this.xg=!0,this.ta&&this.ta.Ga(this))};a.prototype.FPa=function(){this.xg=!1};a.prototype.eea=function(){this.dY|| 2845(this.dY=!0,this.ta&&this.ta.eea())};a.prototype.BPa=function(){this.dY=!1};a.prototype.oa=function(){this.Pza();this.R("translationX","translationY","translationZ")&&(this.set("composedTranslationX",this.get("translationX")+(this.ta?this.ta.get("composedTranslationX"):0)),this.set("composedTranslationY",this.get("translationY")+(this.ta?this.ta.get("composedTranslationY"):0)),this.set("composedTranslationZ",this.get("translationZ")+(this.ta?this.ta.get("composedTranslationZ"):0)));this.R("deltaYaw", 2846"deltaPitch","deltaRoll")&&(this.set("composedDeltaYaw",this.get("deltaYaw")+(this.ta?this.ta.get("composedDeltaYaw"):0)),this.set("composedDeltaPitch",this.get("deltaPitch")+(this.ta?this.ta.get("composedDeltaPitch"):0)),this.set("composedDeltaRoll",this.get("deltaRoll")+(this.ta?this.ta.get("composedDeltaRoll"):0)),m.uEa())};a.prototype.Pza=function(){this.R("alpha")&&this.set("composedAlpha",this.get("alpha")*(this.ta?this.ta.get("composedAlpha"):1))};return a}); 2847define("ok",["require","lN","hU"],function(a){var f=a("lN"),l=a("hU"),m={CVa:void 0,Q$a:function(k){this.CVa=k},YQa:void 0,d$a:function(k){this.YQa=k},createTexture:function(){var k=new THREE.Texture;
2847k.colorSpace=THREE.SRGBColorSpace;k.generateMipmaps=!1;k.minFilter=THREE.LinearFilter;k.magFilter=THREE.LinearFilter;k.image=m.nL();k.userData={};k.userData.LJa={};return k},J3a:function(k){k.image!=this.nL()&&(k.image=this.nL(),k.needsUpdate=!0,k.Ydb=!0)},aV:function(k,c){c=this.b5a(c);l.DL(c)&&(c.videoWidth&& 2848c.videoHeight&&(c.width=c.videoWidth,c.height=c.videoHeight),l.zKa(c)&&(c=this.w1a(k,c)));k.image=c;k.needsUpdate=!0;l.uEa()},b5a:function(k){k?l.Xia(k)?k=f.Af(k,!1):l.HEa(k)?k=this.nL():!l.DL(k)||k.readyState>=k.HAVE_CURRENT_DATA&&0<k.videoWidth&&0<k.videoHeight||(k=this.nL()):k=this.nL();return k},k4a:function(k,c,h,g,b){var d=document.createElement("canvas");d.width=l.tv();d.height=l.tv();d.hfa=!0;var e=d.getContext("2d");if(!e)return null;e.drawImage(k,c,h,g,b,0,0,l.tv(),l.tv());this.A2(d);return d}, 2849Kha:function(k){l.b7a(k)&&k.hfa&&(delete k.hfa,k.width=0,k.height=0)},dispose:function(k){k.Hq&&k.Hq!=k.image&&this.Kha(k.Hq);k.image&&this.Kha(k.image);k.dispose()},JIa:function(k,c){k.userData.LJa.material=c},GDa:function(k){return k.userData.LJa.material},Kdb:function(k){return l.Wia(k)},decode:function(k){l.Xia(k)&&(k=f.Af(k,!1));l.Wia(k)&&this.A2(k)},A2:function(k){var c=document.createElement("canvas");c.width=1;c.height=1;var h=c.getContext("2d");m.A2=function(g){h.drawImage(g,0,0,1,1,0,0, 28501,1)};return m.A2(k)},J9:null,nL:function(){if(!this.J9){var k=document.createElement("canvas");k.width=128;k.height=128;k.VUa=!0;k.getContext("2d").clearRect(0,0,k.width,k.height);this.J9=k}return this.J9},w1a:function(k,c){k.Hq||(k.Hq=document.createElement("canvas"),k.FUa=k.Hq.getContext("2d"),k.Hq.hfa=!0);var h=c.videoWidth;l.qp()&&(h=Math.min(4096,h));var g=h*c.videoHeight/c.videoWidth;if(k.Hq.width!=h||k.Hq.height!=g)k.Hq.width=h,k.Hq.height=g;c.readyState>=c.HAVE_CURRENT_DATA&&k.FUa.drawImage(c, 28510,0,h,g);return k.Hq}};return m}); 2852define("cD",["require","hU","ok","w"],function(a){function f(h){this.VU=(h=l.xL(h))&&l.iEa();this.vT=h&&l.hEa();this.jB=0;this.fu=void 0;this.vS=this.wS=0;this.premultipliedAlpha=!1;this.side=void 0;this.params={}}var l=a("hU"),m=a("ok");a=a("w");var k=a.browser()==a.ys||a.browser()==a.Ij||a.browser()==a.rh,c={tia:function(h){return h.map||h.uniforms&&h.uniforms.textureSampler2D&&h.uniforms.textureSampler2D.value},Kr:function(h,g){h||(h=m.createTexture());g||(g=new c.jo);h=g.VU||g.vT||g.jB||g.fu|| 2853g.premultipliedAlpha||h.isVideoTexture&&k?this.e4a(h,g):this.zha(h);g.side&&(h.side=g.side);for(var b in g.params)h[b]=g.params[b];return h},i3a:function(h,g){h.isShaderMaterial?h.uniforms.textureSampler2D.value=g:h.map=g;h.needsUpdate=!0},zha:function(h){var g=new THREE.MeshBasicMaterial;g.map=h;this.dD(g);return g},e4a:function(h,g){var b={uniforms:{},transparent:!0};b.uniforms.textureSampler2D={type:"sampler2D",value:h};h.flipY=!g.VU;b.vertexShader=["varying vec2 vUV;\nvoid main() {","\tvUV = vec2( uv.x, "+ 2854(g.VU?"1.0 - uv.y":"uv.y")+");","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}"].join("\n");if(g.vT||g.jB||g.fu||g.premultipliedAlpha){var d=[],e=[];d=d.concat(["uniform sampler2D textureSampler2D;","uniform float opacity;","varying vec2 vUV;"]);b.uniforms.opacity={type:"float",value:1};e=e.concat([" vec4 color = texture2D(textureSampler2D, vUV);"," float alpha = color.a * opacity;"]);g.premultipliedAlpha&&(e=e.concat([" if ((color.a > 0.0) && (color.a < 1.0))", 2855" 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(g.jB){var n=h.image.width||h.image.videoWidth,q=h.image.height||h.image.videoHeight,p=.5*Math.min(n,q)*g.jB;b.uniforms.blendingLimit={type:"v2",value:new THREE.Vector2(p/n,p/q)};d=d.concat(["uniform vec2 blendingLimit;"]);e=e.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(","))}g.fu&& 2856(b.uniforms.chromaColor={type:"v3",value:new THREE.Vector3(parseInt(g.fu.substr(1,2),16)/255,parseInt(g.fu.substr(3,2),16)/255,parseInt(g.fu.substr(5,2),16)/255)},b.uniforms.chromaThreshold={type:"f",value:g.wS},b.uniforms.chromaSmoothing={type:"f",value:g.vS},d=d.concat(["uniform vec3 chromaColor;","uniform float chromaThreshold;","uniform float chromaSmoothing;"]),e=e.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("{"))); 2857e=e.concat([" gl_FragColor = vec4(color"+(g.vT?".bgr":".rgb")+", alpha);"]);h.format=THREE.RGBAFormat;b.fragmentShader=[].concat(d,["void main() {"],e,h.isVideoTexture?[]:["#include <tonemapping_fragment>","#include <colorspace_fragment>"],["}"]).join("\n")}else b.fragmentShader=[].concat(["uniform sampler2D textureSampler2D;","varying vec2 vUV;","void main() {","\tgl_FragColor = texture2D(textureSampler2D, vUV);"],h.isVideoTexture?[]:["#include <tonemapping_fragment>","#include <colorspace_fragment>"], 2858["}"]).join("\n");h=new THREE.ShaderMaterial(b);this.dD(h);return h},dispose:function(h){Array.isArray(h)||(h=[h]);h.forEach(function(g){var b=c.tia(g);b&&m.dispose(b);g.dispose()})},dD:function(h){h.side=THREE.FrontSide;h.transparent=!0;h.depthTest=!1;h.needsUpdate=!0;h.userData={};h.userData.bFa={};m.JIa(c.tia(h),h)},Tka:function(h,g){h.userData.bFa.xp=g},pDa:function(h){return h.userData.bFa.xp}};f.prototype.isEqual=function(h){return this.VU===h.VU&&this.vT===h.vT&&this.jB===h.jB&&this.fu===h.fu&& 2859this.wS===h.wS&&this.vS===h.vS&&this.premultipliedAlpha===h.premultipliedAlpha&&this.side===h.side};c.jo=f;return c}); 2860define("eB",["require","jH","cD"],function(a){function f(c){return Array.isArray(c)?c:c?[c]:[]}var l=a("jH"),m=a("cD"),k={create:function(c,h){var g=new THREE.Mesh(c,h);g.overdraw=!1;g.matrixAutoUpdate=!1;g.userData.iy={};g.userData.iy.attributes={};
2860f(h).forEach(function(b){m.Tka(b,g)});return g},ZBa:function(c){var h=new THREE.Group;k.forEach(c,function(g){h.add(g)});return h},P$a:function(c,h){f(h).forEach(function(g){m.Tka(g,null)});m.dispose(c.material);c.material=h;f(h).forEach(function(g){m.Tka(g, 2861c)})},rB:function(c){return f(c.material)},M5a:function(c,h){if(c.layers.mask&h.layers.mask){var g=k.rB(c);return l.K5a(c.geometry,h,c.matrixWorld).map(function(b){return g[b]})}return[]},Pka:function(c,h){c.geometry=h},G5a:function(c,h){var g=[];k.jk(c,function(b){var d=k.rB(b);h.forEach(function(e){var n=l.F5a(b.geometry,b.matrixWorld,e);if(n){e=m.tia(d[n.materialIndex]).image;var q=Math.round(n.cKa*e.width-.5);q=0>q?0:q>e.width-1?e.width-1:q;n=Math.round((1-n.wKa)*e.height-.5);n=0>n?0:n>e.height- 28621?e.height-1:n;g.push({x:q,y:n,source:e})}})});return g},Pu:function(c,h){k.forEach(c,function(g){h?h.add(g):g.parent&&g.parent.remove(g)})},kC:"panoramaId",iH:"panoramaFrameId",K5:"panoramaOverlayId",J5:"levelIndex",setAttribute:function(c,h,g){k.jk(c,function(b){b.userData.iy.attributes[h]=g})},getAttribute:function(c,h){return c.userData.iy.attributes[h]},BCa:function(c,h,g){for(var b=[],d=0,e=c.length;d<e;d++){var n=c[d];n.userData.iy.attributes[h]!==g&&b.push(n)}return b},p2:function(c,h,g){for(var b= 2863[],d=0,e=c.length;d<e;d++){var n=c[d];n.userData.iy.attributes[h]===g&&b.push(n)}return b},SDa:function(c,h){for(var g={},b=0,d=c.length;b<d;b++){var e=c[b],n=e.userData.iy.attributes[h];void 0!==n&&(g[n]||(g[n]=[])).push(e)}return g},H2:function(c){c=c.userData.iy.alpha;return void 0===c?1:c},ff:function(c,h){k.jk(c,function(g){g.userData.iy.alpha=h;k.rB(g).forEach(function(b){b.opacity=h;"ShaderMaterial"==b.type&&b.uniforms&&b.uniforms.opacity&&(b.uniforms.opacity.value=h)})})},Jr:function(c,h){k.jk(c, 2864function(g){g.matrix.copy(h);g.matrixWorldNeedsUpdate=!0})},MDa:function(c){return c.renderOrder},X4:function(c,h){k.forEach(c,function(g){g.renderOrder=h})},dispose:function(c){k.jk(c,function(h){h.geometry&&(l.dispose(h.geometry),h.geometry=void 0);h.material&&(m.dispose(h.material),h.material=void 0)})},hl:function(c){var h=[];k.jk(c,function(g){h.push(g)});return h},forEach:function(c,h){Array.isArray(c)?c.forEach(h):c&&c.isObject3D&&(c.isMesh||"Group"==c.type)&&h(c)},jk:function(c,h){if(Array.isArray(c))for(var g= 28650,b=c.length;g<b;g++)k.jk(c[g],h);else if(c&&c.children)for(g=0,b=c.children.length;g<b;g++)k.jk(c.children[g],h);c&&c.isObject3D&&c.isMesh&&h(c)}};return k}); 2866define("V",["require","eB"],function(a){var f=a("eB");return{hl:function(l){var m=[];l.children&&l.children.forEach(function(k){f.jk(k,function(c){c.userData&&c.userData.iy&&m.push(c)})});return m},V9a:function(l,m){l.userData.cameras=m},fia:function(l){return l.userData.cameras||[]},getCamera:function(l){return l.userData.cameras&&0<l.userData.cameras.length&&l.userData.cameras[0]||null}}}); 2867define("pE","require lQ pw gD eB V".split(" "),function(a){function f(n,q){return n.reduce(function(p,r){return p?!0:!!(q.layers.mask&r.layers.mask)},!1)}function l(n){n=c(n).loaded;return void 0===n?!1:n}function m(n){n=c(n).active;return void 0===n?!0:n}function k(n){n=c(n).blending;return void 0===n?!1:n}function c(n){return n.userData.R7a||(n.userData.R7a={})}var h=a("lQ"),g=a("pw"),b=a("gD"),d=a("eB"),e=a("V");a=h.extend(b,function(){b.call(this);this.C=void 0;this.Xba=!1});a.prototype.update= 2868function(n){var q=n.rb&&this.C&&!this.C.rb;this.C=n.clone();this.Xba||(q?this.jUa():this.D1a())};a.prototype.D1a=function(){var n=!1,q=e.fia(this.C.Eg),p=e.hl(this.C.Eg);d.p2(p,d.iH,void 0).forEach(function(w){var x=f(q,w)&&0<d.H2(w)&&m(w);w.visible!=x&&(w.visible=x,n=!0)});p=d.BCa(p,d.iH,void 0);p=d.SDa(p,d.kC);for(var r in p){var t=p[r],u=q.map(function(){return!1});t.sort(function(w,x){return d.MDa(x)-d.MDa(w)});var v=t.some(k);t.forEach(function(w){var x=f(q,w)&&0<d.H2(w)&&m(w)&&(!v||l(w));if(x){x= 2869!0;for(var y=v||l(w)&&.999<d.H2(w),z=0;z<q.length;z++)w.layers.mask&q[z].layers.mask&&!u[z]&&(x=!1,y&&(u[z]=!0));x=!x}w.visible!=x&&(w.visible=x,n=!0)})}n&&this.trigger(g.ba)};a.prototype.jUa=function(){this.Xba=!0;e.hl(this.C.Eg).forEach(function(n){n.visible=!1});setTimeout(function(){this.Xba=!1;this.update(this.C)}.bind(this),300);this.trigger(g.ba)};a.AU=function(n,q){c(n).loaded=q};a.setActive=function(n,q){c(n).active=q};a.THa=function(n,q){d.jk(n,function(p){c(p).blending=q})};return a}); 2870define("kU","require lQ pw iw gD pE cD eB V w".split(" "),function(a){function f(w){return(w=w.userData.Hp)&&!(!w.pja&&!w.lja)}function l(w){return w.userData.Hp||(w.userData.Hp={})}function m(w){return l(w).aH}function k(w){return l(w).enabled||!1}function c(w){return!m(w).fja()}var h=a("lQ"),g=a("pw");a("iw");var b=a("gD"),d=a("pE"),e=a("cD"),n=a("eB"),q=a("V"),p=a("w"),r=h.extend(b,function(){b.call(this);this.j=null;this.dJ=[];this.oA=[];this.PH=[];this.C=void 0;this.Wt=null;this.dB=this.dB.bind(this)}); 2871r.prototype.S4=function(w){this.j=w};r.prototype.update=function(w){this.C=w.clone();this.$0a()?this.dB():this.dAa()};r.prototype.dAa=function(){this.Wt||(this.Wt=setTimeout(this.dB,1E3))};var t=Math.PI/180,u=function(){if(p.pb()){if(p.Tia()&&1<=p.vcb())return 2;if(p.cc()==p.Mp||p.cc()==p.Uu||p.EL())return 1.5}else return 1.5;return 1}();r.prototype.$0a=function(){var w=0<this.C.Pm?1E3:this.C.Fr/Math.tan(Math.min(.5*this.C.ti,89.99)*t);w*=u;var x=q.fia(this.C.Eg),y=q.hl(this.C.Eg).filter(f),z=y.filter(k); 2872var B=n.BCa(z,n.iH,void 0);B=n.SDa(B,n.iH);B.none=n.p2(z,n.iH,void 0);z=[];for(var E in B)for(var I=B[E],A=0,C=I.length;A<C;A++){var J=I[A];(l(J).pja||r.BV)==r.Fs&&z.push(J)}for(var D=0,O=x.length;D<O;D++){var R=x[D];for(E in B){I=B[E];var U=null,V=Number.NEGATIVE_INFINITY,W=null,K=Number.POSITIVE_INFINITY;A=0;for(C=I.length;A<C;A++)if(J=I[A],J.layers.mask&R.layers.mask&&(l(J).pja||r.BV)==r.BV){var M=90*l(J).J8a;M<w&&M>V?(U=J,V=M):M>=w&&M<K&&(W=J,K=M)}this.C.rb&&W&&U?V>.75*w?z.push(U):z.push(W):(W&& 28730>z.indexOf(W)&&z.push(W),U&&0>z.indexOf(U)&&z.push(U))}}w=[];for(x=0;x<z.length;x++)E=z[x],0>w.indexOf(E)&&w.push(E);z=w;a:{w=this.PH;x=z;for(E=0;E<w.length;E++)if(0>x.indexOf(w[E])){w=!1;break a}for(E=0;E<x.length;E++)if(0>
2873w.indexOf(x[E])){w=!1;break a}w=!0}w=!w;this.PH=z;A=0;for(C=y.length;A<C;A++)J=y[A],k(J)&&d.setActive(J,0<=this.PH.indexOf(J));return w};r.prototype.dB=function(){this.Wt=null;for(var w=[],x=[],y=[],z=(new Date).getTime()-v,B=q.fia(this.C.Eg),E=q.hl(this.C.Eg),I=0,A=E.length;I< 2874A;I++){var C=E[I],J=C.userData.Hp;if(J){var D=n.rB(C);if(J.enabled){var O=[];if(0<=this.PH.indexOf(C)){if(0<this.C.Pm||(l(C).lja||r.T6)==r.Xp)O=D;else for(var R=0,U=B.length;R<U;R++){var V=n.M5a(C,B[R]);if(0==R)O=V;else for(var W=0,K=V.length;W<K;W++){var M=V[W];0>O.indexOf(M)&&O.push(M)}}W=0;for(K=O.length;W<K;W++)M=O[W],(M.userData.Hp||(M.userData.Hp={})).LEa=z}this.n8(C,O);W=0;for(K=J.fs.length;W<K;W++)w.push(J.fs[W]);W=0;for(K=J.wy.length;W<K;W++)x.push(J.wy[W])}else for(J.wy||this.n8(C,[]),W= 28750,K=J.wy.length;W<K;W++)M=J.wy[W],0>J.fs.indexOf(M)&&x.push(M);W=0;for(K=D.length;W<K;W++)y.push(D[W])}}I=[];W=0;for(K=this.oA.length;W<K;W++)M=this.oA[W],0>y.indexOf(M)?M.userData.Hp.aH.unload():c(M)?this.yea(M,!1):I.push(M);this.oA=I;W=Math.max(r.gFa(),Math.round(1.25*x.length))-w.length;if(this.oA.length>W)for(this.oA.sort(function(S,X){return l(S).LEa-l(X).LEa}),I=this.oA.splice(0,this.oA.length-W),W=0,K=I.length;W<K;W++)M=I[W],M.userData.Hp.aH.unload(),this.yea(M,!1);x=[];I=0;for(A=this.PH.length;I< 2876A;I++)C=this.PH[I],J=C.userData.Hp,0<J.fs.length&&x.push(C);y=Number.POSITIVE_INFINITY;I=0;for(A=x.length;I<A;I++)C=x[I],J=C.userData.Hp,W=J.priority,W=void 0!==W?W:Number.POSITIVE_INFINITY,W<y&&(y=W);w=[];I=0;for(A=x.length;I<A;I++)if(C=x[I],J=C.userData.Hp,W=J.priority,W=void 0!==W?W:Number.POSITIVE_INFINITY,W==y)for(V=J.fs,W=0,K=V.length;W<K;W++)M=V[W],w.push(M);W=0;for(K=this.dJ.length;W<K;W++)M=this.dJ[W],0>w.indexOf(M)&&(M=M.userData.Hp.aH,M.unbind(g.da,this.mfa,this,!0),M.unbind(g.xc,this.nfa, 2877this,!0),M.y3a());I=this.dJ;this.dJ=w;A=this.dJ.slice();W=0;for(K=A.length;W<K;W++)M=A[W],0>I.indexOf(M)&&(M=M.userData.Hp.aH,M.bind(g.da,this.mfa,this,!0),M.bind(g.xc,this.nfa,this,!0),M.load(this.j))};r.prototype.mfa=function(w){this.hza(w.source);this.trigger(g.da)};r.prototype.nfa=function(w){this.hza(w.source)};r.prototype.hza=function(w){w.unbind(g.da,this.mfa,this,!0);w.unbind(g.xc,this.nfa,this,!0);var x=w.material(),y=this.dJ,z=y.indexOf(x);0<=z&&y.splice(z,1);this.oA.push(x);this.yea(x, 2878!0);w=w.xp();0<=l(w).fs.indexOf(x)&&this.n8(w,l(w).wy);this.dAa()};r.prototype.n8=function(w,x){var y=l(w).wy;y=y?y.length:void 0;var z=l(w).fs;z=z?z.length:void 0;l(w).wy=x;l(w).fs=x.filter(c);d.AU(w,0==l(w).fs.length&&(l(w).lja||r.T6)==r.Xp);x=(x=l(w).wy)?x.length:void 0;var B=l(w).fs;B=B?B.length:void 0;z===B&&y===x||w.dispatchEvent({type:g.kc,Tg:x?100-100*B/x:100});z!==B&&0===B&&w.dispatchEvent({type:g.da})};r.prototype.yea=function(w,x){if(x!=w.visible){var y=e.pDa(w),z=n.getAttribute(y,n.kC), 2879B=n.getAttribute(y,n.J5);if(void 0===z||void 0===B)w.visible=x;else{var E=q.hl(this.C.Eg).filter(f);z=n.p2(E,n.kC,z);B=n.p2(z,n.J5,B);var I=n.rB(y).indexOf(w);w=B.map(function(A){return n.rB(A)[I]});for(y=0;y<w.length&&x;y++)x=x&&m(w[y]).fja();for(y=0;y<w.length;y++)w[y].visible=x}}};r.gFa=function(){var w=p.q3()||p.r3()?384:p.pb()?128:384;r.gFa=function(){return w};return w};r.qb=function(w,x){n.jk(w,function(y){l(y).enabled=x})};r.enabled=k;r.Q4=function(w,x){n.jk(w,function(y){l(y).J8a=x})};r.Xp= 2880"all";r.T6="in view";r.By=function(w,x){n.jk(w,function(y){l(y).lja=x})};r.Fs="always";r.BV="on demand";r.Cy=function(w,x){n.jk(w,function(y){l(y).pja=x})};r.HU=function(w,x){n.jk(w,function(y){l(y).priority=x})};r.NG=function(w,x){n.jk(w,function(y){l(y).aeb=x;n.rB(y).forEach(function(z){m(z).L$a(x)})})};r.$db=function(w){return 100-100*l(w).fs.length/l(w).wy.length};r.Zdb=function(w){return 0==l(w).fs.length};r.nM=function(w,x){(l(w).aH=x)&&(w.visible=x.fja())};r.aH=m;var v=(new Date).getTime(); 2881return r}); 2882define("h","require lQ jC eB V kU pE".split(" "),function(a){var f=a("lQ"),l=a("jC"),m=a("eB"),k=a("V"),c=a("kU"),h=a("pE");a=f.extend(l,function(){l.call(this);this.set("tag","WebGLObject");this.set("zOrder",0);this.set("webglScene",null);this.set("meshGroup",null);this.set("camera",null)});a.prototype.vo=function(){return[]};a.prototype.ac=function(){m.dispose(this.get("meshGroup"));m.Pu(this.get("meshGroup"),null);this.set("meshGroup",null);l.prototype.ac.call(this)};a.prototype.oa=function(g){l.prototype.oa.call(this, 2883g);
2883this.set("camera",k.getCamera(g.Eg));this.set("webglScene",g.Eg);this.get("meshGroup")||(this.set("meshGroup",m.ZBa(this.vo())),this.get("meshGroup").userData.D8a=this);this.R("webglScene","meshGroup")&&m.Pu(this.get("meshGroup"),this.get("webglScene"));this.tm();this.yr(g);this.uF();this.R("loadingActive","meshGroup")&&c.qb(this.get("meshGroup"),this.get("loadingActive"));this.R("blendingActive","meshGroup")&&h.THa(this.get("meshGroup"),this.get("blendingActive"))};a.prototype.tm=function(){this.R("composedAlpha", 2884"meshGroup")&&this.rz()};a.prototype.rz=function(){m.ff(this.get("meshGroup"),this.get("composedAlpha"))};a.prototype.yr=function(){throw"Must be overridden in descendants.";};a.prototype.uF=function(){if(this.R("index","meshGroup")){var g=this.get("meshGroup");g&&g.children.forEach(function(b,d,e){m.X4(b,this.get("index")+d/e.length)}.bind(this))}};return a}); 2885define("fQ",["require","lQ","jH","h","eB"],function(a){var f=a("lQ"),l=a("jH"),m=a("h"),k=a("eB"),c=new THREE.Matrix4,h=Math.PI/180;a=f.extend(m,function(){m.call(this);this.set("tag","Frame");this.Gh=new THREE.Matrix4;this.Td=new THREE.Matrix4;this.lm=new THREE.Matrix4;this.Hi=new THREE.Matrix4});a.prototype.oa=function(g){m.prototype.oa.call(this,g)};a.prototype.yr=function(g){var b=!1;this.R("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.Gh.makeTranslation(.5*-this.get("composedTranslationX")* 2886l.Fg,.5*this.get("composedTranslationY")*l.Fg,.5*this.get("composedTranslationZ")*l.Fg),b=!0);this.R("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.Td.makeRotationY(-g.Ra*h),this.Td.multiply(c.makeRotationX(-this.get("composedDeltaPitch")*h)),this.Td.multiply(c.makeRotationY(this.get("composedDeltaYaw")*h)),this.Td.multiply(c.makeRotationY(g.Ra*h)),b=!0);this.R("flipHorizontally")&&(g=this.get("flipHorizontally")?-1:1,this.lm.makeScale(g,1,1),b=!0);if(b||this.R("meshGroup"))this.Hi.copy(this.Gh), 2887this.Hi.multiply(this.Td),this.Hi.multiply(this.lm),k.Jr(this.get("meshGroup"),this.Hi)};return a}); 2888define("A",["require"],function(){function a(){this.RI=f++;this.eP="_map_"+this.RI+"_key";this.sY={};this.Kq=[];this.length=0}var f=0;a.prototype.set=a.prototype.add=function(l,m){0>this.Kq.indexOf(l)&&this.Kq.push(l);if("object"===typeof l&&null!==l){var k=l[this.eP];if(!k){k=this.eP;for(var c=[],h=0;8>h;h++)c.push(Math.floor(16*Math.random()).toString(16));k=l[k]=c.join("")}}else k=l;this.sY[k]=m;this.length=this.Kq.length};a.prototype.get=function(l){return this.sY["object"===typeof l&&null!== 2889l?l[this.eP]:l]};a.prototype.x6a=function(l){return 0<=this.Kq.indexOf(l)};a.prototype.remove=function(l){var m=this.Kq.indexOf(l);0>m||(this.Kq.splice(m,1),"object"===typeof l&&null!==l?(m=l[this.eP],delete l[this.eP]):m=l,delete this.sY[m],this.length=this.Kq.length)};a.prototype.forEach=function(l){this.Kq.slice().forEach(function(m){l(m,this.get(m))}.bind(this))};a.prototype.dispose=function(){for(;this.Kq.length;)this.remove(this.Kq.pop());this.Kq=this.sY=null};return a}); 2890define("oO",["require","lQ","gD","A"],function(a){function f(){this.TF=[]}var l=a("lQ"),m=a("gD"),k=a("A");a=l.extend(m,function(c){m.call(this);this.tf=c;this.ld=[];this.uw=new k;this.bS=[];this.h$=[];this.nJ=this.nJ.bind(this)});a.prototype.Gf=function(c){this.ld.forEach(function(h){if(h.removeEventListener)h.removeEventListener(this.tf,this.nJ);else if(h.unbind)h.unbind(this.tf,this.nJ,this,!0);else throw"invalid instance type";}.bind(this));this.ld=c.slice();this.ld.forEach(function(h){if(h.addEventListener)h.addEventListener(this.tf, 2891this.nJ);else if(h.bind)h.bind(this.tf,this.nJ,this,!0);else throw"invalid instance type";this.uw.x6a(h)||this.uw.set(h,new f)}.bind(this));this.Ofa()};a.prototype.dispose=function(){this.Gf([]);this.ld=null;this.uw.dispose();this.h$=this.bS=this.uw=null};a.prototype.Qm=function(c){this.bS.push(c);this.Ofa();return this};a.prototype.yp=function(c){this.h$.push(c);return this};a.prototype.ku=function(c){this.ld.forEach(function(h){c(h,this.uw.get(h).TF)}.bind(this))};a.prototype.Em=function(c){c=this.uw.get(c).TF; 2892return 0==c.length?null:c[c.length-1]};a.prototype.nJ=function(c){var h=c.target||c.source;if(h=this.uw&&this.uw.get(h))h.TF.push(c),this.h$.forEach(function(g){g(c,this)}.bind(this)),this.Ofa()};a.prototype.Ofa=function(){if(0!=this.ld.length){for(var c=0;c<this.ld.length;c++)if(0==this.uw.get(this.ld[c]).TF.length)return;
2892this.bS.length&&(c=this.bS.slice(),this.bS=[],c.forEach(function(h){h(this)}.bind(this)))}};return a}); 2893define("dS","require lQ pw gD ok bn oQ".split(" "),function(a){function f(){p||0===n.length||(d.e3?k():l())}function l(){q||(q=!0,d.requestFrame(m,null))}function m(){q=!1;r=void 0;k()}function k(){if(!p){for(void 0===r&&(r=Date.now());n.length&&Date.now()-r<u;)n.shift().add();n.length&&l()}}var c=a("lQ"),h=a("pw"),g=a("gD"),b=a("ok"),d=a("bn"),e=a("oQ"),n=[],q=!1,p=!1,r=void 0,t=c.extend(g,function(v,w,x){g.call(this);this.renderer=v;this.texture=w;this.source=x});t.prototype.add=function(){b.aV(this.texture, 2894this.source);!e.isPresenting&&this.renderer&&this.renderer.initTexture(this.texture);this.trigger(h.da)};t.prototype.remove=function(){var v=n.indexOf(this);0<=v&&n.splice(v,1);b.aV(this.texture,null)};var u=8;return{add:function(v,w,x,y){var z=n.find(function(B){B.texture===w});z?(z.source=x,z.renderer=v):(z=new t(v,w,x),n.push(z));y&&z.bind(h.da,y,this,!0);f();return z},T2a:function(v,w,x){v=new t(v,w,x);v.add();return v},lM:function(v){if(p!==v)if(p=v)for(;n.length;)n.shift().add();else f()}}}); 2895define("dk","require lQ pw iw gD cD ok w".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("iw"),k=a("gD"),c=a("cD"),h=a("ok"),g=a("w"),b=f.extend(k,function(){k.call(this);this.nf=void 0;this.Ia=h.createTexture();
2895this.Ia.colorSpace=THREE.SRGBColorSpace;this.xaa=!1;this.C=b.ZM;this.bP=m.yl;this.j=null});b.prototype.type=function(){return this.nf};b.prototype.texture=function(){return this.Ia};b.prototype.material=function(){return this.Ia&&h.GDa(this.Ia)};b.prototype.xp=function(){var d=this.Ia&& 2896h.GDa(this.Ia);return d&&c.pDa(d)};b.prototype.L$a=function(d){this.bP=d};b.prototype.r$a=function(d){this.xaa!==d&&(this.xaa=d,this.Vza())};b.prototype.wU=function(d){this.Ia.isVideoTexture!==d&&(this.Ia.isVideoTexture=d,this.Ia.update=d?function(){}:null,this.Vza())};b.prototype.Vza=function(){this.xaa?this.Ia.colorSpace=THREE.LinearSRGBColorSpace:!this.Ia.isVideoTexture||g.browser()!=g.ys&&g.browser()!=g.Ij&&g.browser()!=g.rh?this.Ia.colorSpace=THREE.SRGBColorSpace:this.Ia.colorSpace=THREE.LinearSRGBColorSpace}; 2897b.prototype.load=function(d){this.C===b.ZM&&(this.j=d,this.C=b.KV,this.x8())};b.prototype.y3a=function(){this.G7a()&&(this.C==b.KV?this.D0():this.pR(),this.C=b.ZM)};b.prototype.unload=function(){this.C!=b.ZM&&(this.C==b.KV?this.D0():this.C==b.k7?this.pR():this.bB(),this.C=b.ZM)};b.prototype.Z8a=function(){if(this.Ia){var d=this.material(),e=h.createTexture();e.flipY=this.Ia.flipY;e.format=this.Ia.format;e.colorSpace=this.Ia.colorSpace;this.Ia.isVideoTexture&&(e.isVideoTexture=!0,e.update=function(){}); 2898h.dispose(this.Ia);d&&h.JIa(e,d);d&&c.i3a(d,e);this.Ia=e}};b.prototype.x8=function(){};b.prototype.D0=function(){};b.prototype.v8=function(){};b.prototype.pR=function(){};b.prototype.bB=function(){h.J3a(this.texture)};b.prototype.G7a=function(){return this.C==b.KV||this.C==b.k7};b.prototype.fja=function(){return this.C==b.j7||this.C==b.Fna};b.prototype.dispose=function(){h.dispose(this.Ia);this.Ia=null};b.prototype.qJ=function(d){this.C=d?b.k7:b.Fna;d?this.v8():this.trigger(l.xc)};b.prototype.lua= 2899function(){this.C=b.j7;this.trigger(l.da)};b.ZM="initial";b.KV="loading";b.k7="adding";b.Fna="error loading";b.j7="added";b.HMa="custom";b.IMa="image tile";b.fdb="image animation";b.gdb="video 360";return b}); 2900define("fr","require lQ pw cA lN dS dk".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cA"),k=a("lN"),c=a("dS"),h=a("dk");a=f.extend(h,function(g){h.call(this);this.nf=h.HMa;this.Wd=g;this.Wd||(this.C=h.j7);this.ni=this.Jd=null;this.hF=this.iF=void 0});a.prototype.Nm=function(g){this.ni=g;c.add(this.j,this.Ia,this.ni,function(){var b=this.Ia&&this.Ia.image&&this.Ia.image.width||void 0,d=this.Ia&&this.Ia.image&&this.Ia.image.height||void 0;void 0===this.iF||void 0===this.hF||this.iF===b&&this.hF=== 2901d||(this.Z8a(),c.add(this.j,this.Ia,this.ni));this.iF=b;this.hF=d}.bind(this))};a.prototype.Af=function(){return k.Af(this.Wd)};a.prototype.update=function(){c.T2a(this.j,this.Ia,this.ni)};a.prototype.x8=function(){this.Wd?this.QN():this.qJ(!0)};a.prototype.D0=function(){this.Cq()};a.prototype.v8=function(){this.lua()};a.prototype.bB=function(){this.Cq()};a.prototype.dispose=function(){this.Cq();h.prototype.dispose.call(this)};a.prototype.Cd=function(){this.qJ(!0)};a.prototype.ag=function(){this.qJ(!1)}; 2902a.prototype.QN=function(){this.Jd||(this.Jd=new m,this.Jd.oM([this.Wd]),this.Jd.bind(l.da,this.Cd,this,!0),this.Jd.bind(l.xc,this.ag,this,!0),k.Yn(this.Jd,this.bP))};a.prototype.Cq=function(){this.Jd&&(this.Jd.unbind(l.da,this.Cd,this,!0),this.Jd.unbind(l.xc,this.ag,this,!0),k.Hj(this.Jd,this.bP),this.Jd=null)};return a}); 2903define("nu","require lQ pw cA lN dS dk".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cA"),k=a("lN"),c=a("dS"),h=a("dk");a=f.extend(h,function(g){h.call(this);this.nf=h.IMa;this.Wd=g;this.ni=this.OJ=this.Jd=null});a.prototype.Af=function(){return this.ni};a.prototype.x8=function(){this.QN()};a.prototype.D0=function(){this.Cq()};a.prototype.v8=function(){this.JQa()};a.prototype.pR=function(){this.Cq();this.Q9()};a.prototype.bB=function(){this.Cq();this.Q9()};a.prototype.dispose=function(){this.Cq(); 2904this.Q9();h.prototype.dispose.call(this)};a.prototype.Cd=function(){this.ni=k.Af(this.Wd);this.qJ(!0)};a.prototype.ag=function(){this.qJ(!1)};a.prototype.mua=function(){this.lua()};a.prototype.QN=function(){this.Jd||(this.Jd=new m,this.Jd.oM([this.Wd]),this.Jd.bind(l.da,this.Cd,this,!0),this.Jd.bind(l.xc,this.ag,this,
2904!0),k.Yn(this.Jd,this.bP))};a.prototype.Cq=function(){this.Jd&&(this.Jd.unbind(l.da,this.Cd,this,!0),this.Jd.unbind(l.xc,this.ag,this,!0),k.Hj(this.Jd,this.bP),this.Jd=null)};a.prototype.JQa= 2905function(){this.OJ=c.add(this.j,this.Ia,this.ni);this.OJ.bind(l.da,this.mua,this,!0)};a.prototype.Q9=function(){this.OJ&&(this.OJ.unbind(l.da,this.mua,this,!0),this.OJ.remove(),this.OJ=null)};return a}); 2906define("pG",["require","lQ","lN","ok","nu"],function(a){var f=a("lQ"),l=a("lN"),m=a("ok"),k=a("nu");a=f.extend(k,function(c,h,g,b,d){k.call(this,c.get("url"));this.Na=h;this.Qa=g;this.sa=b;this.wa=d;this.fVa=0!=this.Na||0!=this.Qa||this.sa!=c.get("width")||this.wa!=c.get("height")});a.prototype.Cd=function(){this.fVa?(this.QQa(),this.Cq(),this.qJ(!!this.ni)):k.prototype.Cd.call(this)};a.prototype.pR=function(){k.prototype.pR.call(this);this.R9()};a.prototype.bB=function(){k.prototype.bB.call(this); 2907this.R9()};k.prototype.dispose=function(){k.prototype.dispose.call(this);this.R9()};a.prototype.QQa=function(){var c=l.Af(this.Wd);this.ni=m.k4a(c,this.Na,this.Qa,this.sa,this.wa)};a.prototype.R9=function(){this.ni&&(m.Kha(this.ni),this.ni=null)};return a}); 2908define("fM","require oj dP nn hU fr nu pG jH cD eB cg nT kU w".split(" "),function(a){var f=a("oj"),l=a("dP"),m=a("nn"),k=a("hU"),c=a("fr"),h=a("nu"),g=a("pG"),b=a("jH"),d=a("cD"),e=a("eB"),n=a("cg"),q=a("nT"),p=a("kU"),r=a("w"),t={a4a:function(u,v){var w=n.get(u);switch(w){case n.mz:case n.jv:case n.zl:return this.tQa(w,u,v);case n.Yp:case n.hq:case n.Ms:return this.vQa(w,u,v)}},o4a:function(u,v){var w=new h(v.get("posterURL"));w.wU(!0);return this.uqa(u,v,w)},n4a:function(u,v){var w=new c;w.wU(!0); 2909return this.uqa(u,v,w)},uqa:function(u,v,w){var x=u.get("hfov"),y=u.get("vfov"),z=u.get("pitch"),B=v.get("width");v=v.get("url");u=n.get(u);var E=u==n.Ms?2:1,I=u==n.hq?2:1;u=2<E+I?[l.ab,l.tb]:[l.Tu];var A=Math.round(B/E);B=new d.jo(v);var C=d.Kr(w.texture(),B);p.nM(C,w);C.visible=!0;return u.map(function(J,D){D=b.bCa(x,y,z,1,1,D%E/E,(I-1-Math.floor(D/E))/I,1/E,1/I);D=e.create(D,[C]);D.layers.set(J);p.Q4(D,A/x);return D}.bind(this))},f4a:function(u){var v=[m.tb,m.ab,m.Ec,m.wc,m.FRONT,m.BACK].map(function(){var x= 2910new c;x.Nm(t.LTa(u));var y=d.Kr(x.texture());p.nM(y,x);y.visible=!0;return y}),w=b.aCa(1,1);v=e.create(w,v);p.Q4(v,256/90);v.layers.set(l.Tu);return v},Oea:{},LTa:function(u){if(!t.Oea[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.Oea[u]=v}return t.Oea[u]},tQa:function(u,v,w){var x=u==n.mz?[l.tb,l.ab]:[l.Tu],y=v.get("flipImageHorizontally");y&&(x=x.reverse());var z=u==n.zl?1:6*x.length,B=w.get("width")/z,E= 2911w.get("height");if(f.Ja("TiledImageResourceLevel",w)){var I=w.get("colCount",z)/z;var A=w.get("rowCount",1)}else this.sxa(u,w)?(I=Math.ceil(B/k.tv()),A=Math.ceil(E/k.tv())):A=I=1;var C=[m.tb,m.ab,m.Ec,m.wc,m.FRONT,m.BACK];return x.map(function(J,D){var O=Array(6);C.forEach(function(V,W){var K=q.kia(v,w,V);if(f.Ja("TiledImageResourceLevel",w))O[b.Ina.indexOf(V)]=this.pQa(K,u,J,V,y,I,A);else{W=u==n.zl?0:Math.round((D*C.length+W)*B);var M=1<I||1<A||u!=n.zl?256<B?1:.5:0;O[b.Ina.indexOf(V)]=this.oqa(K, 2912I,A,W,0,B,E,M)}}.bind(this));var R=Array.prototype.concat.apply([],O),U=b.aCa(I,A);R=e.create(U,R);R.layers.set(J);p.Q4(R,B/90);return R}.bind(this))},vQa:function(u,v,w){var x=u==n.Yp?[l.Tu]:[l.ab,l.tb];v.get("flipImageHorizontally")&&(x=x.reverse());var y=w.get("width"),z=w.get("height"),B=v.get("hfov"),E=v.get("vfov"),I=v.get("pitch"),A=Math.round(y/B/(z/E)),C=Math.round(y/A),J=Math.round(z/Math.round(z/E/(y/B))),D=(u=this.sxa(u,w))?Math.ceil(C/k.tv()):1,O=u?Math.ceil(J/k.tv()):1;return x.map(function(R, 2913U){U=this.oqa(w,D,O,U%A*C,Math.floor(U/A)*J,C,J);var V=b.bCa(B,E,I,D,O,0,0,1,1);U=e.create(V,U);U.layers.set(R);p.Q4(U,C/B);return U}.bind(this))},sxa:function(u,v){switch(u){case n.mz:case n.jv:case n.hq:case n.Ms:return!0;case n.zl:return!1;case n.Yp:return r.k6a().maxTextureSize<Math.max(v.get("width"),v.get("height"))?!0:k.qp()||r.pb()?!1:r.cc()==r.Uy?!0:!1}},oqa:function(u,v,w,x,y,z,B,E){E||(E=0);for(var I=[],A=0;A<w;A++)for(var C=y+E+(B-2*E)*A/w,J=y+E+(B-2*E)*(A+1)/w,D=0;D<v;D++){var O=x+E+ 2914(z-2*E)*D/v,R=x+E+(z-2*E)*(D+1)/v;O=u?new g(u,O,C,R-O,J-C):new c;R=d.zha(O.texture());p.nM(R,O);I.push(R)}return I},pQa:function(u,v,w,x,y,z,B){for(var E=[],I=0;I<B;I++)for(var A=0;A<z;A++){var C=u?new h(q.HDa(u,v,w,x,y,B,I,A)):new c;var J=d.zha(C.texture());p.nM(J,C);J.visible=!1;E.push(J)}return E}};return t}); 2915define("du","require lQ pw fQ oO fM kU".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("fQ"),k=a("oO"),c=a("fM"),h=a("kU");a=f.extend(m,function(g){m.call(this);this.Gc=g;this.set("tag","SolidFrame");this.bh=null});a.prototype.Zb=function(){this.bh=(new k(l.da)).Qm(this.Cd.bind(this));m.prototype.Zb.call(this)};a.prototype.ac=function(){this.bh.dispose();m.prototype.ac.call(this)};a.prototype.vo=function(){var g=[c.f4a(this.Gc)];h.Cy(g,h.Fs);h.By(g,h.Xp);this.bh.Gf(g);return g};a.prototype.Cd= 2916function(){this.trigger(l.hd);this.trigger(l.da)};return a});
2917define("mk","require lQ fa du oY bL oQ".split(" "),function(a){var f=a("lQ"),l=a("fa"),m=a("du"),k=a("oY"),c=a("bL"),h=a("oQ");a=f.extend(l,function(g,b,d,e){l.call(this,g,b,d,e);this.fa=null;this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(g){if(!this.Bb){this.D.vl||(this.D.vl=new m("#000000"),this.D.vl.set("alpha",1),this.j.add(this.D.vl));if(!this.fa){this.D.vl.Ih();var b=2*this.D.iha;this.fa=new k("linear",[new c("alpha",2,0,void 0)],b);this.D.vl.Ih()}this.fa.Fb(g); 2918this.D.vl.set("alpha",Math.min(.99,this.fa.cb("alpha")));this.j.Bf(this.D.Mc).set("alpha",1);this.fa&&this.fa.Ve()&&(this.Bb=!0,this.j.remove(this.D.vl),this.D.vl=null);h.ng.forEach(function(d){h.Wka(d,!this.Bb)}.bind(this))}};return a}); 2919define("bP",["require","lQ","fa","oY","bL"],function(a){var f=a("lQ"),l=a("fa"),m=a("oY"),k=a("bL");a=f.extend(l,function(c,h,g,b){l.call(this,c,h,g,b);this.Si=this.j.M.Od();this.fa=null;this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(c){if(!this.Bb){if(!this.fa){this.Si.WG();this.j.Bf(this.D.Vg).set("alpha",0);var h=this.D.hCa;this.fa=new m("linear",[new k("position",0,1,void 0)],h)}this.fa.Fb(c);this.Si.LG(this.fa.cb("position"));this.fa.Ve()&&(this.Bb=!0,this.Si.RF())}}; 2920return a}); 2921define("op","require lQ fa du oY bL oQ".split(" "),function(a){var f=a("lQ"),l=a("fa"),m=a("du"),k=a("oY"),c=a("bL"),h=a("oQ");a=f.extend(l,function(g,b,d,e){l.call(this,g,b,d,e);this.fa=null;this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(g){if(!this.Bb){this.D.vl||(this.D.vl=new m("#000000"),this.D.vl.set("alpha",0),this.j.add(this.D.vl));if(!this.fa){this.D.vl.Ih();var b=2*this.D.hCa;this.fa=new k("linear",[new c("alpha",0,2,void 0)],b)}this.fa.Fb(g);g=Math.min(1, 2922this.fa.cb("alpha"));this.D.vl.set("alpha",g);h.ng.forEach(function(d){h.Wka(d,!0)});1==g&&this.j.Bf(this.D.Vg).set("alpha",0);this.fa.Ve()&&(this.Bb=!0)}};return a}); 2923define("pj",["require","lQ","fa","oY","bL"],function(a){var f=a("lQ"),l=a("fa"),m=a("oY"),k=a("bL");a=f.extend(l,function(c,h,g,b){l.call(this,c,h,g,b);this.fa=null;this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(c){if(!this.Bb){if(!this.fa){var h=this.j.Ce(),g=this.Jc.E4(this.D.Mc,h),b=!this.D.rb()&&.01<Math.abs(h-g)?this.D.I5:1;this.fa=new m("cubic_in_out",[new k("hfov",h,g,void 0)],b)}this.fa.Fb(c);this.Jc.Dp(this.fa.cb("hfov"));this.fa.Ve()&&(this.Jc.zU(!0),this.Bb= 2924!0)}};return a}); 2925define("cr",["require","lQ","fa","oY","bL"],function(a){function f(h,g,b){for(;h<g;)h+=b-g;for(;h>b;)h-=b-g;return h}var l=a("lQ"),m=a("fa"),k=a("oY"),c=a("bL");a=l.extend(m,function(h,g,b,d){m.call(this,h,g,b,d);this.fa=null;this.Bb=!1;this.WY=0});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(h){this.Bb||(this.fa||(this.fa=this.WY<this.D.op.length?this.FQa(this.WY):this.lQa()),this.fa.Fb(h),this.Jc.ala(this.fa.cb("yaw"),this.fa.cb("pitch")),this.Jc.Dp(this.fa.cb("hfov")),this.Jc.SG(this.fa.cb("stereographicFactor")), 2926this.fa.Ve()&&(this.fa=null,this.WY++,this.WY>this.D.op.length&&(this.Jc.zU(!0),this.Bb=!0)))};a.prototype.lQa=function(){var h=f(this.j.Lc(),-180,180),g=this.j.Kc();this.j.dg();var b=this.j.Ce(),d=this.j.C.Pm,e=this.D.Rg.get("hfov");e={Ra:this.D.Rg.get("yaw"),pitch:this.D.Rg.get("pitch",g),Dg:this.j.dg(),Ue:e?this.Jc.LF(e):b,Pm:0};this.Jc.H9a(this.D.Mc,e);e.Ra=f(e.Ra,h-180,h+180);var n=.5<Math.abs(b-e.Ue),q=Math.abs(d-e.Pm),p=.01<q;n=this.D.rb()?1:Math.max(n?this.D.I5:1,p?this.D.sGa*q:1);return new k(p? 2927"linear":"cubic_in_out",[new c("yaw",h,e.Ra,void 0),new c("pitch",g,e.pitch,void 0),new c("hfov",b,e.Ue,void 0),new c("stereographicFactor",d,e.Pm,void 0)],n)};a.prototype.FQa=function(h){var g=this.D.op[h],b=f(this.j.Lc(),-180,180),d=this.j.Kc();this.j.dg();var e=this.j.Ce(),n=this.j.C.Pm,q=g.get("targetStereographicFactor",n),p=g.get("targetHfov");if(p)p=this.Jc.LF(p);else{for(p=!1;h<this.D.op.length&&!p;h++)p=void 0!==this.D.op[h].get("targetHfov");p?p=e:(p=this.Jc.LF(this.D.Rg.get("hfov",this.Jc.dCa())), 2928p=e+(p-e)*(n-q))}h=g.get("targetYaw",b);var r=g.get("targetPitch",d);this.j.dg();
2928switch(g.get("path")){case "left":h=f(h,b-360,b);break;case "right":h=f(h,b,b+360);break;case "longest":h=f(h,-360,360);h=h>=b?f(h,b,b+360):f(h,b-360,b);break;default:h=f(h,b-180,b+180)}return new k(g.get("easing"),[new c("yaw",b,h,g.get("yawSpeed")),new c("pitch",d,r,g.get("pitchSpeed")),new c("hfov",e,p,g.get("hfovSpeed")),new c("stereographicFactor",n,q,g.get("stereographicFactorSpeed"))],g.get("duration"))};return a}); 2929define("ne",["require","lQ","fa","oY","bL"],function(a){var f=a("lQ"),l=a("fa"),m=a("oY"),k=a("bL");a=f.extend(l,function(c,h,g,b){l.call(this,c,h,g,b);this.fa=null;this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(c){if(!this.Bb){if(!this.fa){var h=this.j.Kc(),g=this.j.Ce(),b=this.j.C.Pm,d=this.D.Rf.get("stereographicFactor",0),e=Math.abs(b-d),n=0<d?this.D.Rf.get("pitch",h):h,q=this.D.Rf.get("hfov");q=q?this.Jc.LF(q):g;0==d&&(q=Math.min(g,this.Jc.E4(this.D.Mc,q)));this.Jc.zU(!1); 2930e=this.D.rb()?1:Math.max(.5<Math.abs(g-q)?this.D.I5:1,.01<e?this.D.sGa:1);this.fa=new m("cubic_in_out",[new k("hfov",g,q,void 0),new k("pitch",h,n,void 0),new k("stereographicFactor",b,d,void 0)],e)}this.fa.Fb(c);this.Jc.Dp(this.fa.cb("hfov"));this.Jc.SG(this.fa.cb("stereographicFactor"));this.Jc.ala(this.j.Lc(),this.fa.cb("pitch"));this.fa.Ve()&&(this.Jc.rf(this.D.Mc,this.D.Rf.get("yaw"),this.D.Rf.get("pitch",this.j.Kc())),this.Bb=!0)}};return a}); 2931define("gb",["require","lQ","fa","oY","bL"],function(a){var f=a("lQ"),l=a("fa"),m=a("oY"),k=a("bL");a=f.extend(l,function(c,h,g,b){l.call(this,c,h,g,b);this.fa=null;this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(c){if(!this.Bb){if(!this.fa){var h=this.j.Ce(),g=Math.min(this.Jc.E4(this.D.Mc,h),h),b=!this.D.rb()&&.01<Math.abs(h-g)?this.D.I5:1;this.fa=new m("cubic_in_out",[new k("hfov",h,g,void 0)],b);this.Jc.zU(!1)}this.fa.Fb(c);this.Jc.Dp(this.fa.cb("hfov"));this.fa.Ve()&& 2932(this.Jc.rf(this.D.Mc,this.j.Lc()+this.D.yM.bDa(),this.j.Kc()),this.Bb=!0)}};a.prototype.gG=function(){return!0};return a});define("eK",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){var m=this.j.Bf(this.D.Vg);this.j.remove(m)};return a}); 2933define("lr",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){var m=(this.D.dc||this.D.qc).get("model");m.set("objects",m.get("objects").filter(function(k){return k!=this.D.ke}.bind(this)));[this.D.ke.get("sourceCubeTexture"),this.D.ke.get("targetCubeTexture")].forEach(function(k){k&&k.dispose()});this.D.ke=null};return a}); 2934define("mL",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){var m=[this.j.Wc];this.kVa()&&m.push(this.D.kh);this.j.Wc.DG(m)};a.prototype.kVa=function(){return this.D.qc?!0:this.j.Wc.get("keepModel3DLoadedWithoutLocation")&&this.D.Vg&&this.D.kh&&this.D.kh.get("model")?!0:!1};return a}); 2935define("qc",["require","exports","mE"],function(a,f,l){return function(m){function k(c,h,g,b){return m.call(this,c,h,g,b)||this}Z(k,m);k.prototype.fh=function(){var c,h,g;null===(g=null===(h=null===(c=this.D.kh)||void 0===c?void 0:c.get("model"))||void 0===h?void 0:h.get("camera"))||void 0===g?void 0:g.C9a()};return k}(l)}); 2936define("t",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){this.Jc.rf(this.D.Mc,this.D.Rg.get("yaw"),this.D.Rg.get("pitch",this.j.Kc()));var m=this.D.Rg.get("hfov");m&&(m=this.Jc.LF(m),this.Jc.Dp(m))};return a}); 2937define("dB",["require","lQ","lv","mE"],function(a){var f=a("lQ");a("lv");var l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){var m=this.D.qc.get("model").get("camera");if(this.D.XG.get("keepInitialPositionOnTranslation")){var k=this.D.Rg.get("yaw");m=this.D.Rg.get("pitch")}else k=m.get("yaw")-this.D.qc.get("yaw"),m=this.D.XG.get("enterPointingToHorizon")?0:m.get("pitch");this.Jc.rf(this.D.Mc,k,m);if(k=this.D.Rg.get("hfov"))k=this.Jc.LF(k),this.Jc.Dp(k)};return a}); 2938define("pV",["require","lQ","of","oQ","mE"],function(a){var f=a("lQ"),l=a("of"),m=a("oQ"),k=a("mE");a=f.extend(k,function(c,h,g,b){k.call(this,c,h,g,b)});a.prototype.fh=function(){if(m.isPresenting){var c=l.t5(m.bg,!0);this.D.qc.get("model").get("camera");var h=c.Ra-this.D.qc.get("yaw");c=c.pitch}else this.D.XG.get("keepInitialPositionOnTranslation")?(h=this.D.Rg.get("yaw"),c=this.D.Rg.get("pitch")):(c=this.D.qc.get("model").get("camera"),h=c.get("yaw")-this.D.qc.get("yaw"),c=c.get("pitch"));this.Jc.rf(this.D.Mc, 2939h,c)};return a}); 2940define("lw",["require","lQ","pw","fa"],function(a){var f=a("lQ"),l=a("pw"),m=a("fa");a=f.extend(m,function(k,c,h,g){m.call(this,k,c,h,g);this.ia=null;this.Bb=!1});a.prototype.sWa=function(){this.Bb=!0};a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(){if(!this.ia&&(this.ia=this.D.dc.get("model"),this.D.kh.get("model")==this.ia)){var k=this.ia.get("camera");k.set("easing",0);k.set("x",this.D.dc.get("x"));k.set("y",this.D.dc.get("y"));k.set("z",this.D.dc.get("z"));k.set("yaw",this.j.Lc()+ 2941this.D.dc.get("yaw"));k.set("pitch",this.j.Kc());k.set("fov",this.j.Za()>this.j.Cb()?this.j.gL():this.j.hL());this.ia.bind(l.Th,this.sWa,this,!0)}};return a}); 2942define("fA",["require","exports","mE"],function(a,f,l){a=function(m){function k(c,h,g,b,d){c=m.call(this,c,h,g,b)||this;c.value=!1;c.value=d;return c}Z(k,m);k.prototype.fh=function(){var c,h=null===(c=this.D.dc||this.D.qc||this.D.kh)||void 0===c?void 0:c.get("model");h&&h.get("camera").set("inTransition",this.value)};return k}(l);f=function(m){function k(c,h,g,b){return m.call(this,c,h,g,b,!0)||this}Z(k,m);return k}(a);a.uh=f;f=function(m){function k(c,h,g,b){return m.call(this,c,h,g,b,!1)||this} 2943Z(k,m);return k}(a);a.Hf=f;return a}); 2944define("nS",["require","exports","mE"],function(a,f,l){a=function(m){function k(c,h,g,b,d){c=m.call(this,c,h,g,b)||this;c.enabled=!1;c.enabled=d;return c}Z(k,m);k.prototype.fh=function(){var c;null===(c=this.D.kh)||void 0===c?void 0:c.j.qb(this.enabled)};return k}(l);f=function(m){function k(c,h,g,b){return m.call(this,c,h,g,b,!0)||this}Z(k,m);return k}(a);a.uh=f;f=function(m){function k(c,h,g,b){return m.call(this,c,h,g,b,!1)||this}Z(k,m);return k}(a);a.Hf=f;return a}); 2945define("jY",["require","exports","mE"],function(a,f,l){a=function(m){function k(c,h,g,b,d){c=m.call(this,c,h,g,b)||this;c.paused=!1;c.paused=d;return c}Z(k,m);k.prototype.fh=function(){var c,h=null===(c=this.D.qc||this.D.dc||this.D.kh)||void 0===c?void 0:c.get("model");h&&this.D.kh.j.rIa(h,!this.paused)};return k}(l);f=function(m){function k(c,h,g,b){return m.call(this,c,h,g,b,!0)||this}Z(k,m);return k}(a);a.uh=f;f=function(m){function k(c,h,g,b){return m.call(this,c,h,g,b,!1)||this}Z(k,m);return k}(a); 2946a.Hf=f;return a});define("it",["require","lQ","mE","pZ"],function(a){var f=a("lQ"),l=a("mE"),m=a("pZ");a=f.extend(l,function(k,c,h,g){l.call(this,k,c,h,g)});a.prototype.fh=function(){this.D.Mc&&(this.D.mode==m.u7||this.D.mode==m.v7?this.D.Mc.set("minFaceSize",1024):this.D.Mc.set("minFaceSize",void 0))};return a}); 2947define("hG",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){var m=this.D.Ala?this.D.Rf.get("stereographicFactor",0):0;this.Jc.SG(m);this.Jc.rf(this.D.Mc,this.D.Rf.get("yaw"),this.D.Rf.get("pitch",this.j.Kc()));(m=this.D.Rf.get("hfov"))||this.D.Vg||(m=this.Jc.dCa());m&&(m=this.Jc.LF(m),this.Jc.Dp(m),this.Jc.zU(!this.D.Ala))};return a}); 2948define("fp",["require","exports","mE"],function(a,f,l){a=function(m){function k(c,h,g,b,d){c=m.call(this,c,h,g,b)||this;c.paused=!1;c.paused=d;return c}Z(k,m);k.prototype.fh=function(){this.j.EIa(this.paused)};return k}(l);f=function(m){function k(c,h,g,b){return m.call(this,c,h,g,b,!0)||this}Z(k,m);return k}(a);a.uh=f;f=function(m){function k(c,h,g,b){return m.call(this,c,h,g,b,!1)||this}Z(k,m);return k}(a);a.Hf=f;return a}); 2949define("gG",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){var m=this.Jc.E4(this.D.Mc,this.j.Ce());this.Jc.Dp(m);this.Jc.rf(this.D.Mc,this.j.Lc()+this.D.yM.bDa(),this.j.Kc())};a.prototype.gG=function(){return!0};return a}); 2950define("lH",["require","exports","fa","oQ"],function(a,f,l,m){a=function(k){function c(h,g,b,d,e){h=k.call(this,h,g,b,d)||this;h.value=!1;h.ended=!1;h.wait=!1;h.Sg=function(){return this.ended};h.value=e;h.value||(h.wait=!0);return h}Z(c,k);c.prototype.Ug=function(){m.ng.forEach(function(h){m.Wka(h,!this.value)}.bind(this));this.wait?this.wait=!1:this.ended=!0};return c}(l);f=function(k){function c(h,g,b,d){return k.call(this,h,g,b,d,!0)||this}Z(c,k);return c}(a);a.uh=f;f=function(k){function c(h, 2951g,b,d){return k.call(this,h,g,b,d,!1)||this}Z(c,k);return c}(a);a.Hf=f;return a});define("ec",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.fh=function(){this.D.dc&&this.D.kh.get("model")==this.D.dc.get("model")&&this.j.Wc.DG([this.D.kh])};return a}); 2952define("bB",["require","lQ","fa","dS","w"],function(a){var f=a("lQ"),l=a("fa"),m=a("dS"),k=a("w");a=f.extend(l,function(c,h,g,b){l.call(this,c,h,g,b);this.C="not initialized";this.fb=0});a.prototype.Sg=function(){return"ended"==this.C};a.prototype.Ug=function(c){this.Sg()||("not initialized"==this.C&&this.aba(),"initialized"==this.C&&(this.cp.get("ready")||this.cp.Mia())&&this.lR(),"started"==this.C&&this.oa(c),1<=this.fb&&this.dO())};a.prototype.aba=function(){this.Jwa=this.D.VJa;this.vN=.25;this.JOa= 2953.75;this.UXa=.25;this.rza=this.RTa();this.O7=.5*this.Jwa;this.W0a=this.Jwa-2*this.O7;this.mE=1/(this.O7+this.W0a);this.ZV=this.mE/this.O7;this.ux=0;this.cp=this.j.Bf(this.D.Mc);this.Rea=this.j.Bf(this.D.Vg);this.zI=this.D.yM.t5a();this.C="initialized"};a.prototype.RTa=function(){var c=this.D.yM.get("distance");return c?Math.min(.99,c/this.D.Vg.get("distanceToFloor")):.75};a.prototype.lR=function(){this.j.tIa(!this.D.rb()&&k.browser()!=k.Ij);this.cp.Ih();this.C="started"};a.prototype.oa=function(c){this.cp.get("ready")&& 2954m.lM(!0);this.cp.get("ready")||this.fb<this.UXa?this.fb>=1-.5*this.ux*this.ux/this.ZV?this.ux=Math.sqrt(2*(1-this.fb)*this.ZV):this.ux<this.mE&&(this.ux=Math.min(this.ux+this.ZV*c,this.mE)):this.ux=Math.max(this.ux-this.ZV*c,0);this.fb=Math.min(Math.max(0,this.fb+this.ux*c),1);this.cp.get("ready")||(this.vN=Math.max(this.vN,this.fb));this.c1(this.fb,Math.max(0,Math.min(1,(this.fb-this.vN)/(this.JOa-this.vN))))};a.prototype.dO=function(){this.cp.set("alpha",1);this.j.tIa(!1);this.C="ended";m.lM(!1)}; 2955a.prototype.c1=function(c,h){var g=(c-1)*this.rza;this.cp.set("translationX",g*this.zI.x);this.cp.set("translationY",g*this.zI.y);this.cp.set("translationZ",g*this.zI.z);this.cp.get("ready");c*=this.rza;this.Rea.set("translationX",c*this.zI.x);this.Rea.set("translationY",c*this.zI.y);this.Rea.set("translationZ",c*this.zI.z);this.cp.set("alpha",Math.max(.01,Math.min(.99,h)))};a.prototype.gG=function(){return this.fb<this.vN};return a}); 2956define("fz",["require","oj","fy"],function(a){var f=a("oj"),l=a("fy");return f.define("TargetModel3DCameraMovement",l,function(){l.call(this)})}); 2957define("gY","require lQ pw lt hk fz fa oQ".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("lt"),k=a("hk"),c=a("fz"),h=a("fa"),g=a("oQ");a=f.extend(h,function(d,e,n,q){h.call(this,d,e,n,q);this.pr=this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(){this.D.kh.get("model")!=this.D.dc.get("model")?this.tt():this.Nb?this.Nb.get("state")==m.V&&setTimeout(function(){this.tt()}.bind(this),10):this.pr||(this.pr=!0,this.Jea(),this.cR())};a.prototype.Jea=function(){var d=this.D.dc.get("model").get("camera"), 2958e=d.lK;e||(e={x:d.get("initialX",d.get("x")),y:d.get("initialY",d.get("y")),z:d.get("initialZ",d.get("z")),yaw:d.get("initialYaw",d.get("yaw")),pitch:d.get("initialPitch",d.get("pitch")),fov:d.get("initialFov",d.get("fov")),distance:d.get("initialDistance",d.get("distance"))});d.set("easing",0);d.set("x",this.D.dc.get("x"));d.set("y",this.D.dc.get("y"));d.set("z",this.D.dc.get("z"));d.set("distance",0);g.isPresenting||d.set("yaw",this.j.Lc()+this.D.dc.get("yaw"));d.set("pitch",this.j.Kc());d.set("fov", 2959this.j.Za()>this.j.Cb()?this.j.gL():this.j.hL());var n=[];if(this.D.BB){var q=new c;q.set("duration",this.D.X2);q.set("easing","linear");q.bind(l.Th,this.xca,this,!0);this.v$=q;n.push(q);this.D.ke.set("sourceAlpha",1)}else this.D.ke.set("sourceAlpha",.99);this.Ud=new c;this.Ud.set("targetX",e.x);this.Ud.set("targetY",e.y);this.Ud.set("targetZ",e.z);g.isPresenting||this.Ud.set("targetYaw",e.yaw);this.Ud.set("targetPitch",e.pitch);this.Ud.set("targetFov",e.fov);this.Ud.set("targetDistance",e.distance); 2960this.Ud.set("duration",this.D.E8a);this.Ud.set("easing","quad_in_out");this.Ud.bind(l.Th,this.Hca,this,!0);n.push(this.Ud);this.Nb=new k;this.Nb.set("movements",n);this.Nb.set("mandatory",!0);this.Nb.set("internal",!0);this.Nb.bind(l.Gb,this.tt,this,!0);d.set("sequences",d.get("sequences").concat([this.Nb]));this.Nb.play();this.tR=(new THREE.Vector3).set(e.x,e.y,e.z);this.WA=(new THREE.Vector3).set(this.D.dc.get("x"),this.D.dc.get("y"),this.D.dc.get("z"))};a.prototype.xca=function(){var d=this.v$.get("position"); 2961this.D.ke.set("sourceAlpha",1-d);this.D.ke.set("targetAlpha",0)};a.prototype.Hca=function(){if(this.D.BB)this.D.ke.set("sourceAlpha",0),this.D.ke.set("targetAlpha",0);else{var d=this.vO();this.D.ke.set("sourceAlpha",1-Math.max(.01,Math.min(.99,(d-0)/.33)))}};var b=new THREE.Vector3;a.prototype.vO=function(){var d=this.D.dc.get("model").get("camera");return b.set(d.get("x"),d.get("y"),d.get("z")).distanceTo(this.WA)/this.WA.distanceTo(this.tR)};a.prototype.tt=function(){if(!this.Bb){var d=this.D.dc.get("model").get("camera"); 2962d.set("sequences",d.get("sequences").filter(function(e){return e!=this.Nb}.bind(this)));this.Bb=!0;this.JQ()}};a.prototype.cR=function(){var d=this.D.dc.get("model");this.zQ=d.get("postprocessing");this.AQ=d.get("surfaceSelectionEnabled");d.set("postprocessing",!1);d.set("surfaceSelectionEnabled",!1)};a.prototype.JQ=function(){var d=this.D.dc.get("model"),e=this.zQ,n=this.AQ;setTimeout(function(){d.set("postprocessing",e);d.set("surfaceSelectionEnabled",n)},30)};return a}); 2963define("iI","require lQ pw hk fz fa oQ".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("hk"),k=a("fz"),c=a("fa"),h=a("oQ");a=f.extend(c,function(b,d,e,n){c.call(this,b,d,e,n);this.Bb=this.pr=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(){this.D.kh.get("model")!=this.D.qc.get("model")?this.tva():this.pr||(this.pr=!0,this.i_a(),this.cR())};a.prototype.i_a=function(){var b=this.D.qc.get("model").get("camera");b.set("easing",0);b.set("x",this.D.dc.get("x"));b.set("y",this.D.dc.get("y")); 2964b.set("z",this.D.dc.get("z"));b.set("distance",0);h.isPresenting||b.set("yaw",this.j.Lc()+this.D.dc.get("yaw"));b.set("pitch",this.j.Kc());b.set("fov",this.j.Za()>this.j.Cb()?this.j.gL():this.j.hL());var d=[];if(this.D.BB){var e=new k;e.set("duration",this.D.X2);e.set("easing","linear");e.bind(l.Th,this.xca,this,!0);this.v$=e;d.push(e);this.D.ke.set("skyBox",!1);this.D.ke.set("nearPlane",!0);this.D.ke.set("sourceAlpha",1);this.D.ke.set("targetAlpha",0)}else this.D.ke.set("skyBox",!0),this.D.ke.set("nearPlane", 2965!1),this.D.ke.set("targetAlpha",.01),this.D.ke.set("sourceAlpha",.99);this.Ud=new k;this.Ud.set("targetX",this.D.qc.get("x"));this.Ud.set("targetY",this.D.qc.get("y"));this.Ud.set("targetZ",this.D.qc.get("z"));this.D.XG.get("keepInitialPositionOnTranslation")&&(h.isPresenting||(e=this.D.Rg.get("yaw")+this.D.qc.get("yaw"),this.Ud.set("targetYaw",e)),e=this.D.Rg.get("pitch"),void 0!==e&&this.Ud.set("targetPitch",e),e=this.D.Rg.get("hfov"),void 0!==e&&this.Ud.set("targetFov",e));this.Ud.set("duration", 29661500);this.Ud.set("easing","cubic_in_out");this.Ud.bind(l.Th,this.tWa,this,!0);d.push(this.Ud);this.D.BB&&(e=new k,e.set("duration",this.D.X2),e.set("easing","linear"),e.bind(l.Th,this.wca,this,!0),this.u$=e,d.push(e));this.Nb=new m;this.Nb.set("movements",d);this.Nb.set("mandatory",!0);this.Nb.set("internal",!0);this.Nb.bind(l.Gb,this.tva,this,!0);b.set("sequences",b.get("sequences").concat([this.Nb]));this.N
2966b.play();this.WA=(new THREE.Vector3).set(this.D.dc.get("x"),this.D.dc.get("y"),this.D.dc.get("z")); 2967this.tR=(new THREE.Vector3).set(this.D.qc.get("x"),this.D.qc.get("y"),this.D.qc.get("z"))};a.prototype.tWa=function(){if(this.D.BB)this.D.ke.set("sourceAlpha",0),this.D.ke.set("targetAlpha",0);else{var b=this.vO();this.D.ke.set("targetAlpha",Math.max(.01,Math.min(.99,b-0)));this.D.ke.set("sourceAlpha",1)}};var g=new THREE.Vector3;a.prototype.vO=function(){var b=this.D.dc.get("model").get("camera");return g.set(b.get("x"),b.get("y"),b.get("z")).distanceTo(this.WA)/this.WA.distanceTo(this.tR)};a.prototype.xca= 2968function(){var b=this.v$.get("position");this.D.ke.set("sourceAlpha",1-b);this.D.ke.set("targetAlpha",0)};a.prototype.wca=function(){var b=this.u$.get("position");this.D.ke.set("sourceAlpha",0);this.D.ke.set("targetAlpha",b)};a.prototype.tva=function(){var b=this.D.dc.get("model").get("camera");b.set("sequences",b.get("sequences").filter(function(d){return d!=this.Nb}.bind(this)));this.JQ();this.Bb=!0};a.prototype.cR=function(){var b=this.D.dc.get("model"),d=this.D.kh;this.zQ=b.get("postprocessing"); 2969this.AQ=b.get("surfaceSelectionEnabled");this.IXa=d.get("spritesEnabled");b.set("postprocessing",!1);b.set("surfaceSelectionEnabled",!1);d.set("spritesEnabled",!1)};a.prototype.JQ=function(){var b=this.D.dc.get("model"),d=this.D.kh,e=this.zQ,n=this.AQ,q=this.IXa;setTimeout(function(){b.set("postprocessing",e);b.set("surfaceSelectionEnabled",n);d.set("spritesEnabled",q)},500)};return a}); 2970define("lM","require lQ pw lt hk fz fa lv oQ".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("lt"),k=a("hk"),c=a("fz"),h=a("fa"),g=a("lv"),b=a("oQ");a=f.extend(h,function(e,n,q,p){h.call(this,e,n,q,p);this.pr=this.Bb=!1});a.prototype.Sg=function(){return this.Bb};a.prototype.Ug=function(){this.Nb?this.Nb.get("state")==m.V&&setTimeout(function(){this.tt()}.bind(this),10):this.pr||(this.pr=!0,this.Jea(),this.cR())};a.prototype.Jea=function(){var e=this.D.qc.get("model").get("camera");e.mbb();var n= 2971Math.abs(e.get("pitch")-this.j.Kc()),q=30<n;this.Ud=new c;this.Ud.set("targetX",this.D.qc.get("x"));this.Ud.set("targetY",this.D.qc.get("y"));this.Ud.set("targetZ",this.D.qc.get("z"));this.Ud.set("targetDistance",0);this.Ud.set("targetFov",this.iUa(this.j.Ce()));b.isPresenting||this.Ud.set("targetYaw",this.j.Lc()+this.D.qc.get("yaw"));q?this.Ud.set("targetPitch",e.get("pitch")):this.Ud.set("targetPitch",this.j.Kc());this.Ud.set("duration",this.D.M7a);this.Ud.set("easing","cubic_in_out");this.Ud.bind(l.Th, 2972this.Hca,this,!0);var p=[this.Ud];q&&(q=new c,q.set("targetPitch",this.j.Kc()),q.set("duration",n/90*1E3),q.set("easing","quad_in_out"),p.push(q));this.D.BB?(n=new c,n.set("duration",this.D.X2),n.set("easing","linear"),n.bind(l.Th,this.wca,this,!0),this.u$=n,p.push(n),this.D.ke.set("targetAlpha",0)):this.D.ke.set("targetAlpha",.01);this.Nb=new k;this.Nb.set("movements",p);this.Nb.set("mandatory",!0);this.Nb.set("internal",!0);this.Nb.bind(l.Gb,this.tt,this,!0);e.set("sequences",e.get("sequences").concat([this.Nb])); 2973this.Nb.play();this.WA=(new THREE.Vector3).set(e.get("x"),e.get("y"),e.get("z"));this.tR=(new THREE.Vector3).set(this.D.qc.get("x"),this.D.qc.get("y"),this.D.qc.get("z"))};a.prototype.iUa=function(e){return this.j.Za()<this.j.Cb()?g.Cm(e,this.j.Za(),this.j.Cb()):e};a.prototype.Hca=function(){if(!this.Bb&&!this.D.BB){var e=this.vO();this.D.ke.set("targetAlpha",Math.max(.01,Math.min(.99,(e-.66)/(1-.66))))}};var d=new THREE.Vector3;a.prototype.vO=function(){var e=this.D.qc.get("model").get("camera"); 2974return d.set(e.get("x"),e.get("y"),e.get("z")).distanceTo(this.WA)/this.WA.distanceTo(this.tR)};a.prototype.wca=function(){var e=this.u$.get("position");this.D.ke.set("targetAlpha",e)};a.prototype.tt=function(){this.Bb||this.ORa()};a.prototype.ORa=function(){var e=this.D.qc.get("model").get("camera");e.set("sequences",e.get("sequences").filter(function(n){return n!=this.Nb}.bind(this)));this.Bb=!0;this.Nb=null;this.JQ();this.j.Bf(this.D.Mc).set("alpha",1)};a.prototype.cR=function(){var e=this.D.qc.get("model"); 2975this.zQ=e.get("postprocessing");this.AQ=e.get("surfaceSelectionEnabled");
2975e.set("postprocessing",!1);e.set("surfaceSelectionEnabled",!1)};a.prototype.JQ=function(){var e=this.D.qc.get("model"),n=this.zQ,q=this.AQ;setTimeout(function(){e.set("postprocessing",n);e.set("surfaceSelectionEnabled",q)},30)};return a});define("jz",["require","lQ","mE"],function(a){var f=a("lQ"),l=a("mE");a=f.extend(l,function(m,k,c,h,g){l.call(this,m,k,c,h);this.dPa=g});a.prototype.fh=function(){this.dPa.call(this.O)};return a}); 2976define("gA",["require","lQ","fa"],function(a){var f=a("lQ"),l=a("fa");a=f.extend(l,function(m,k,c,h){l.call(this,m,k,c,h)});a.prototype.Sg=function(){var m=this.j.Db(),k=m&&m.yK;m=m&&m.fJ;return!!k&&!k.get("visible")&&!!m&&!m.get("visible")};return a}); 2977define("N",["require","lQ","fa"],function(a){var f=a("lQ"),l=a("fa"),m=f.extend(l,function(k,c,h,g){l.call(this,k,c,h,g);this.kx=null});m.prototype.Sg=function(){this.kx||(this.kx=this.D.Mc&&this.j.Bf(this.D.Mc));return this.kx&&this.kx.get("ready")};m.prototype.gG=function(){return!0};m.$La=f.extend(m,function(k,c,h,g){m.call(this,k,c,h,g)});m.$La.prototype.gG=function(){return!1};m.fMa=f.extend(m,function(k,c,h,g){m.call(this,k,c,h,g)});m.fMa.prototype.Sg=function(){this.kx||(this.kx=this.D.Mc&& 2978this.j.Bf(this.D.Mc));return this.kx&&(this.kx.get("ready")||this.kx.bka())};return m}); 2979define("pH","require cI gD hT pZ mv dc md oK ij bH fv mk bP op pj cr ne gb eK lr mL qc t dB pV lw fA nS jY it hG fp gG lH ec bB gY iI lM jz gA N lQ".split(" "),function(a){var f=a("cI"),l=a("gD"),m=a("hT"),k=a("pZ"),c=a("mv"),h=a("dc"),g=a("md"),b=a("oK"),d=a("ij"),e=a("bH"),n=a("fv");a("mk");var q=a("bP");a("op");var p=a("pj"),r=a("cr"),t=a("ne"),u=a("gb"),v=a("eK"),w=a("lr"),x=a("mL"),y=a("qc"),z=a("t"),B=a("dB"),E=a("pV"),I=a("lw"),A=a("fA"),C=a("nS"),J=a("jY"),D=a("it"),O=a("hG"),R=a("fp"),U= 2980a("gG"),V=a("lH"),W=a("ec"),K=a("bB"),M=a("gY"),S=a("iI"),X=a("lM"),ba=a("jz"),da=a("gA"),ea=a("N"),G=a("lQ").extend(l,function(P,T,L){l.call(this);this.M=P;this.j=T;this.Sc=L;this.Jc=this.nt=null;this.Gqa=this.bt=this.nQ=this.Yw=void 0;this.D=null;this.gh=[]});G.prototype.Uka=function(P){this.nt=P};G.prototype.clear=function(){this.$da(this.bt);this.D&&this.$da(this.D.Mc);this.nQ=this.Yw=void 0;this.pa=this.Sc=this.j=this.M=this.D=null};G.prototype.start=function(P,T){!this.D&&P==this.bt||this.D&& 2981P==this.D.Mc?this.nQ=this.Yw=void 0:(this.Yw=P,this.nQ=T,0==this.gh.length&&this.A0())};G.prototype.hide=function(){this.Yw=null;!this.D&&this.bt&&this.A0()};G.prototype.Nia=function(){return null!==this.D};G.prototype.o5a=function(){return this.D&&this.D.Mc};G.prototype.A0=function(){this.D=new k(this.j,this.nt,this.bt,this.Yw,this.nQ);this.Jc=new m(this.j,this.Sc,this.D);this.nQ=this.Yw=void 0;this.ka(D);this.ka(g);switch(this.D.mode){case k.zma:this.lc(this.aB);this.ka(V.Hf);this.ka(y);this.ka(R.uh); 2982this.ka(J.Hf);this.ka(C.uh);this.ka(q);this.lc(this.$A);this.ka(v);this.lc(this.Tt);this.ka(A.Hf);this.ka(V.uh);break;case k.yma:this.ka(x);this.lc(this.nF);this.ka(ea);this.ka(d);this.ka(O);this.lc(this.Bx);this.ka(n);this.ka(da);this.ka(r);this.lc(this.mF);break;case k.yV:this.ka(x);this.lc(this.aB);this.ka(V.Hf);this.ka(q);this.lc(this.nF);this.lc(this.$A);this.ka(v);this.lc(this.Tt);this.ka(ea);this.ka(d);this.ka(O);this.lc(this.Bx);this.ka(n);this.ka(V.uh);this.ka(da);this.ka(r);this.lc(this.mF); 2983break;case k.Lna:this.ka(x);this.lc(this.nF);this.lc(this.aB);this.lc(this.$A);this.D.rb()?(this.ka(ea),this.ka(U),this.lc(this.Bx),this.ka(K),this.ka(v),this.lc(this.Tt)):(this.ka(u),this.lc(this.Bx),this.ka(K),this.ka(v),this.lc(this.Tt),this.ka(p),this.ka(d),this.ka(da));this.lc(this.mF);break;case k.ho:this.ka(x);this.lc(this.nF);this.ka(ea);this.D.rb()?(this.lc(this.aB),this.lc(this.$A),this.ka(z),this.lc(this.Bx),this.ka(c),this.ka(v),this.lc(this.Tt)):(this.lc(this.aB),this.lc(this.$A),this.ka(t), 2984this.lc(this.Bx),this.ka(c),this.ka(v),this.lc(this.Tt),this.ka(d),this.ka(da),this.ka(r));this.lc(this.mF);break;case k.u7:this.ka(R.uh);this.ka(x);this.lc(this.nF);this.ka(b);this.ka(J.Hf);this.ka(ea);this.ka(V.Hf);this.ka(h.x7);this.ka(B);this.ka(X);this.ka(A.Hf);this.ka(A.uh);this.lc(this.Bx);this.ka(R.Hf);this.ka(C.Hf);this.ka(w);this.ka(V.uh);this.ka(d);this.ka(da);this.ka(J.uh);this.lc(this.mF);break;case k.Nna:this.ka(b);this.lc(this.aB);this.ka(I);this.lc(this.$A);this.ka(V.Hf);this.ka(h.o7); 2985this.ka(R.uh);this.ka(J.Hf);this.ka(v);this.lc(this.Tt);this.ka(M);this.ka(A.Hf);this.ka(w);this.ka(V.uh);this.ka(W);break;case k.v7:this.lc(this.nF);this.ka(b);this.lc(this.aB);this.lc(this.$A);this.ka(V.Hf);this.ka(h.o7);this.ka(ea);this.ka(h.x7);this.ka(I);this.ka(R.uh);this.ka(J.Hf);this.ka(v);this.lc(this.Tt);this.ka(S);this.ka(C.Hf);this.ka(A.Hf);this.ka(w);this.ka(E);this.lc(this.Bx);this.ka(e);this.ka(R.Hf);this.ka(V.uh);this.ka(d);this.ka(da);this.ka(J.uh);this.lc(this.mF);break;case k.Mna:this.lc(this.nF), 2986this.ka(b),this.ka(V.Hf),this.ka(h.o7),this.ka(I),this.ka(R.uh),this.ka(J.Hf),this.ka(ea),this.lc(this.aB),this.lc(this.$A),this.ka(v),this.lc(this.Tt),this.ka(M),this.ka(w),this.ka(h.x7),this.ka(B),this.ka(X),this.ka(A.Hf),this.lc(this.Bx),this.ka(R.Hf),this.ka(C.Hf),this.ka(w),this.ka(V.uh),this.ka(J.uh),this.lc(this.mF)}this.lc(this.O0a);this.Sa()};G.prototype.yfa=function(){this.bt=this.D.Mc;this.Gqa=this.D.XG;this.D=this.Jc=null;void 0===this.Yw?this.bt?this.x0a(this.bt,this.Gqa):this.y0a(): 2987this.A0()};window.S3a=!0;window.T3a=!0;document.addEventListener("keydown",function(P){67==P.which&&(window.S3a=window.T3a=!0)});G.prototype.uy=function(P){for(;this.gh.length;){var T=this.gh[0];T.N_a||(T.N_a=(new Date).getTime());if(void 0!==this.Yw&&this.Yw!==this.bt&&T.gG()){this.$da(this.D.Mc);this.gh=[];this.A0();break}else if(T.Ug(P),this.Sa(),this.Jc.uy(P),T.Sg())this.gh.shift(),0==this.gh.length&&this.yfa();else break}};document.addEventListener("keydown",function(){(new Date).getTime()}); 2988document.addEventListener("keyup",function(){(new Date).getTime()});G.prototype.Ld=function(){};G.prototype.ka=function(P){this.gh.push(new P(this,this.Jc,this.j,this.D))};G.prototype.lc=function(P){this.gh.push(new ba(this,this.Jc,this.j,this.D,P))};G.prototype.$da=function(P){P&&(P=this.j.Bf(P))&&(this.j.remove(P),this.Tt())};G.prototype.nF=function(){this.trigger(new f(G.H6,{panorama:this.D.Mc}))};G.prototype.Tt=function(){this.trigger(new f(G.y6,{panorama:this.D?this.D.Vg:this.bt,nextPanorama:this.D? 2989this.D.Mc:null}))};G.prototype.aB=function(){this.trigger(new f(G.wC,{panorama:this.D.Vg}))};G.prototype.$A=function(){this.trigger(new f(G.vC,{panorama:this.D.Vg,nextPanorama:this.D.Mc}))};G.prototype.mF=function(){this.trigger(new f(G.xC,{panorama:this.D.Mc,camera:this.D.XG}))};G.prototype.O0a=function(){this.trigger(new f(G.Tp))};G.prototype.Bx=function(){this.trigger(new f(G.yC,{panorama:this.D.Mc,camera:this.D.XG}))};G.prototype.x0a=function(P,T){this.trigger(new f(G.e6,{panorama:P,camera:T}))}; 2990G.prototype.y0a=function(){this.trigger(new f(G.f6))};G.prototype.Sa=function(){this.trigger(new f(G.Ob))};G.Ob="request frame";G.H6="request load";G.y6="panorama removed";G.e6="all pending panoramas displayed";G.f6="all pending panoramas hidden";G.vC="panorama end";G.yC="panorama start";G.xC="panorama show";G.wC="panorama hide";G.Tp="transition end";return G}); 2991define("mP",["require","lQ","cI","gD"],function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=f.extend(m,function(c){m.call(this);this.j=c});k.prototype.clear=function(){this.end();this.j=null};k.prototype.uL=function(c){for(var h=this.JX(c),g=c.YS(),b=0;b<h;b++)this.j.Bf(this.X$(c,b)).set("alpha",b==g?1:0)};k.prototype.getTime=function(){return 0};k.prototype.start=function(){};k.prototype.end=function(){};k.prototype.play=function(){};k.prototype.pause=function(){};k.prototype.VL=function(){};k.prototype.dM= 2992function(){};k.prototype.e5=function(){};k.prototype.stop=function(){};k.prototype.PG=function(){};k.prototype.TB=function(){};k.prototype.DM=function(){};k.prototype.Ld=function(){};k.prototype.mk=function(){};k.prototype.JX=function(c){return c.get("frames").length};k.prototype.X$=function(c,h){return c.get("frames")[h]};k.prototype.Sa=function(){this.trigger(new l(k.Ob))};k.prototype.ur=function(c,h,g,b,d,e){this.trigger(new l(k.Jj,{time:c,duration:h,transitionPosition:g,transitionLength:b,steps:d, 2993selectedStep:e}))};
2993k.prototype.fk=function(){this.trigger(new l(k.Qc,{state:this.mk()}))};k.Ob="request frame";k.iLa="frame display";k.jLa="frame hide";k.Jj="time change";k.Qc="playback state change";return k}); 2994define("bw","require jquery.mod es lQ pw iw cI mP fq fB mQ oQ hh".split(" "),function(a){a("jquery.mod");var f=a("es"),l=a("lQ"),m=a("pw"),k=a("iw");a("cI");var c=a("mP"),h=a("fq"),g=a("fB");a("mQ");a("oQ");var b=a("hh"),d=l.extend(c,function(e){c.call(this,e);this.AX=null;this.G$=this.LD=0;this.ya=this.lE=null;this.lO=void 0;this.wda=!1;this.Wa=360;this.EAa=180;this.vb=.5;this.Io=.2;this.Dw=.45;this.zta=5E3;this.Dta=1;this.NY=[[.5,.25],[.5,.375],[.25,.5],[.375,.5],[.5,.5],[.625,.5],[.75,.5],[.5, 2995.625],[.5,.75]];this.zVa=[.05,.1,.05,.1,.4,.1,.05,.1,.05]});d.prototype.uL=function(e){c.prototype.uL.call(this,e);this.VQ(e)};d.prototype.start=function(e){this.VQ(e);this.Sa()};d.prototype.end=function(){this.VQ(null)};d.prototype.VQ=function(e){this.ya!=e&&(this.ya&&(this.S0a(),this.ya=null,this.Y0a()),this.ya=e)&&(this.EOa(),this.Wa=e.get("hfov",360),this.EAa=e.get("vfov",180),this.vb=e.get("pitch",0),this.Cda=this.ME=void 0,this.qVa(e),this.fb=.5)};d.prototype.DM=function(){this.wda=!1};d.prototype.PG= 2996function(e){this.fb=e/d.iN;this.Sa();this.wda=!0};d.prototype.TB=function(e){this.PG(e)};d.prototype.ur=function(){var e=this.JX(this.ya),n=this.fb*(e-1),q=Math.max(0,Math.min(e-2,Math.floor(n))),p=void 0;.01>n-q?p=q:.99<n-q&&(p=q+1);c.prototype.ur.call(this,this.fb*d.iN,d.iN,this.fb*d.iN,d.iN,e,p)};d.prototype.Ld=function(e){if(this.ya){var n=this.j.Lc(),q=this.j.Kc(),p=this.j.dg(),r=0;if(void 0!==this.ME&&void 0!==this.Cda&&void 0!==this.Twa){var t=n-this.ME,u=q-this.Cda,v=p-this.Twa;r=1E3*Math.sqrt(t* 2997t+u*u+v*v)/e}this.ME=n;this.Cda=q;this.Twa=p;t=this.JX(this.ya);var w=this.fb*(t-1);u=Math.max(0,Math.min(t-2,Math.floor(w)));v=u+1;w=1-(w-u);for(var x=1-w,y=[],z=0;z<t;z++)y.push(0);y[v]=x;y[u]=1>x?1:0;for(z=0;z<t;z++)this.j.Bf(this.X$(this.ya,z)).set("alpha",y[z]);this.ur();if(this.AX&&(r<=this.Dta||this.j.Wr())&&!this.wda){z=Math.PI/180;r=180/Math.PI;y=this.j.Za();var B=this.j.Cb(),E=new g;E.rotateZ(-p*z);E.rotateX(-q*z);E.rotateY(-n*z);n=[];for(z=0;z<this.NY.length;z++)q=new h(this.NY[z][0]*y, 2998this.NY[z][1]*B,0),p=this.j.unproject(q).JDa(),p.apply(E),q=p.Lc()*r,p=p.Kc()*r,n.push(Math.round((90-p)*this.G$/180)*this.LD+Math.round((q+180)*this.LD/360));q=[];for(z=0;z<t;z++){p=this.AX[z];for(y=r=0;y<this.NY.length;y++)r+=this.zVa[y]*p[n[y]];q.push(r)}z=q[u];n=q[v];u=w*q[u]+x*q[v];e=Math.min(1/t,e/this.zta);t=this.fb;v=Math.max.apply(Math,q);w=Math.min.apply(Math,q);u<this.Io&&u<v?t=n>u?t+e:t-e:u>this.Dw&&u>w&&(t=z<u?t-e:t+e);t=Math.min(1,Math.max(0,t));this.fb!=t&&(this.fb=t,this.Sa())}}}; 2999d.prototype.qVa=function(e){var n=f(e.get("frames",[])).map(function(q){return q.get("thumbnailUrl")});this.lE=f(n).map(function(q){var p=null;q&&(p=new b(k.yl),p.bind(m.da,this.kva,this),p.bind(m.xc,this.lva,this));return p},this);f(this.lE).each(function(q,p){q&&q.load(n[p])})};d.prototype.Y0a=function(){this.Cqa();this.AX=null};d.prototype.pWa=function(){this.LD=150;this.lE.map(function(e){e&&(this.LD=Math.min(360*e.De()/this.Wa,this.LD))},this);this.G$=Math.round(this.LD/2);this.AX=this.lE.map(function(e){return this.CQa(e, 3000this.LD,this.G$,this.Wa,this.EAa,this.vb)},this);this.Cqa()};d.prototype.CQa=function(e,n,q,p,r,t){var u=document.createElement("canvas");u.width=n;u.height=q;var v=u.getContext("2d");v.fillStyle="#000000";v.fillRect(0,0,n,q);e&&(e=e.Af(),p=Math.round(n*p/360),v.drawImage(e,.5*(n-p),Math.round(q*(90-(t+.5*r))/180),p,Math.round(q*r/180)));n=[];u=v.getImageData(0,0,u.width,u.height);for(q=v=0;v<u.height;v++)for(r=0;r<u.width;r++,q+=4)n.push((.299*u.data[q]+.587*u.data[q+1]+.114*u.data[q+2])/255);return n}; 3001d.prototype.Cqa=function(){f(this.lE).each(function(e){e&&(e.unbind(m.da,this.kva,this),e.unbind(m.xc,this.lva,this),e.cancel())},this);this.lE=null};d.prototype.kva=function(){0==f(this.lE).filter(function(e){return e&&!e.Kh()}).length&&this.pWa()};d.prototype.lva=function(){};d.prototype.EOa=function(){this.ya.bind(m.F("minimumLuminance"),this.Rw,this);this.ya.bind(m.F("maximumLuminance"),this.Rw,this);this.ya.bind(m.F("luminanceChangeTime"),this.Rw,this);this.ya.bind(m.F("maxLuminanceChangeSpeed"), 3002this.Rw,this);this.Rw()};d.prototype.S0a=function(){this.ya.unbind(m.F("minimumLuminance"),this.Rw,this);this.ya.unbind(m.F("maximumLuminance"),this.Rw,this);this.ya.unbind(m.F("luminanceChangeTime"),this.Rw,this);this.ya.unbind(m.F("maxLuminanceChangeSpeed"),this.Rw,this)};d.prototype.Rw=function(){this.Io=this.ya.get("minimumLuminance");this.Dw=this.ya.get("maximumLuminance");void 0==this.Io&&void 0==this.Dw?(this.Io=.2,this.Dw=.45):void 0==this.Io?this.Io=Math.min(.2,this.Dw):void 0==this.Io?this.Dw= 3003Math.max(.45,this.Io):this.Io=Math.min(this.Io,this.Dw);this.Dw=Math.min(1,Math.max(0,this.Dw));this.Io=Math.min(1,Math.max(0,this.Io));this.zta=Math.max(100,this.ya.get("luminanceChangeTime",5E3));this.Dta=this.ya.get("maxLuminanceChangeSpeed",1);this.Sa()};d.iN=1E3;return d}); 3004define("eA","require lQ z pw lt mP".split(" "),function(a){var f=a("lQ"),l=a("z"),m=a("pw"),k=a("lt"),c=a("mP");a=f.extend(c,function(h){c.call(this,h);this.yX=this.zX=null;this.Tj=this.di=5E3;this.mf=void 0;this.Xb=this.di;this.Ml=1;this.ya=null;this.eE=!1});a.prototype.start=function(h){this.ya=h;this.eE=!1;this.mY=!0;this.zX=l.Ru(this.ya,"frameDisplayTime",this.Sfa,this);this.yX=l.Ru(this.ya,"frameTransitionTime",this.Sfa,this);this.Ml=this.JX(this.ya);this.mf=this.ya.YS()*(this.di+this.Tj);this.Sfa(!0); 3005this.ur();this.Sa();this.fk()};a.prototype.Sfa=function(h){var g=Math.max(100,this.ya.get("frameDisplayTime",5E3)),b=Math.max(100,this.ya.get("frameTransitionTime",5E3));if(this.di!=g||this.Tj!=b||h){h=this.JI();var d=this.JSa();this.di=g;this.Tj=b;1<this.Ml?(this.mf=h*(this.di+this.Tj)+d*this.di+d*this.Tj,this.Xb=this.Ml*(this.di+this.Tj)):(this.mf=d*this.di,this.Xb=this.di)}};a.prototype.JI=function(){return 1<this.Ml?Math.floor(this.mf/(this.di+this.Tj)):0};a.prototype.KSa=function(){return 1< 3006this.Ml?(this.JI()+1)%this.Ml:0};a.prototype.JSa=function(){return 1<this.Ml?Math.max(0,Math.min(1,this.mf-this.JI()*(this.di+this.Tj))):this.mf/this.di};a.prototype.Tra=function(){return 1<this.Ml?Math.max(0,Math.min(1,(this.mf-(this.JI()*(this.di+this.Tj)+this.di))/this.Tj)):0};a.prototype.P_a=function(h){var g=Math.floor(h/this.Tj);return g*(this.di+this.Tj)+this.di+(h-g*this.Tj)};a.prototype.iza=function(h){var g=Math.floor(h/(this.di+this.Tj));return g*this.Tj+Math.max(0,h-g*(this.di+this.Tj)- 3007this.di)};a.prototype.play=function(){this.eE&&(this.eE=!1,this.mY&&this.Sa(),this.fk())};a.prototype.pause=function(){this.eE=!0;this.fk()};a.prototype.VL=function(){this.pause()};a.prototype.dM=function(){this.play()};a.prototype.end=function(){this.mY=!1;this.ya=null;this.zX&&(this.zX.eC(),this.zX=null);this.yX&&(this.yX.eC(),this.yX=null);this.fk()};a.prototype.PG=function(h){this.mf=h;this.Sa()};a.prototype.TB=function(h){this.mf=this.P_a(h);this.Sa();this.pause()};a.prototype.Ld=function(h){if(this.mY){this.eE|| 3008(this.mf+=h);this.mf%=this.Xb;h=this.JI();var g=this.KSa(),b=this.Tra(),d=g>h?b:1;b=g>h?1:1-b;for(var e=0;e<this.Ml;e++){var n=e==h?b:e==g?d:0;var q=this.j.Bf(this.X$(this.ya,e)),p=q.get("alpha");p!=n&&(0<n&&1>
3008n&&q.Ih(),p=q.get("alpha"),q.set("alpha",n),e==this.Ml-1&&1==p&&1>n&&this.ya.trigger(m.cq))}this.ur();this.eE||this.Sa()}};a.prototype.mk=function(){return this.mY?this.eE?k.Qb:k.PLAYING:k.V};a.prototype.fk=function(){c.prototype.fk.call(this,this.mk())};a.prototype.ur=function(){c.prototype.ur.call(this, 3009this.mf,this.Xb,this.iza(this.mf),this.iza(this.Xb),this.Ml+1,0===this.Tra()?this.JI():void 0)};return a});define("bS",["require","lQ","mP"],function(a){var f=a("lQ"),l=a("mP");return f.extend(l,function(m){l.call(this,m)})}); 3010define("mY",["require","lQ","pw","lt","mP"],function(a){var f=a("lQ"),l=a("pw"),m=a("lt"),k=a("mP");a=f.extend(k,function(c){k.call(this,c);this.af=!1});a.prototype.uL=function(){};a.prototype.start=function(c){this.end();this.ya=c;this.ya.set("mute",this.af);this.ya.get("autoplay")&&this.ya.set("state",m.PLAYING);this.Dv()};a.prototype.getTime=function(){return this.ya?this.ya.get("currentTime"):0};a.prototype.mk=function(){return this.ya?this.ya.get("state"):m.V};a.prototype.play=function(){this.ya&& 3011this.ya.set("state",m.PLAYING)};a.prototype.pause=function(){this.ya&&this.ya.set("state",m.Qb)};a.prototype.e5=function(){this.ya&&this.ya.set("state",m.Qb)};a.prototype.stop=function(){this.ya&&this.ya.set("state",m.V)};a.prototype.end=function(){this.ya&&(this.jx(),this.ya=null)};a.prototype.PG=function(c){this.ya&&this.ya.set("state",m.PLAYING);this.ya&&this.ya.set("currentTime",c)};a.prototype.Sf=function(c){this.af=c;this.ya&&this.ya.set("mute",this.af)};a.prototype.Dv=function(){this.ya.bind(l.F("currentTime"), 3012this.kf,this,!0);this.ya.bind(l.F("duration"),this.Dn,this,!0);this.ya.bind(l.F("state"),this.Mi,this,!0);this.ya.get("state")!=m.V&&this.fk()};a.prototype.jx=function(){this.ya.unbind(l.F("currentTime"),this.kf,this,!0);this.ya.unbind(l.F("duration"),this.Dn,this,!0);this.ya.unbind(l.F("state"),this.Mi,this,!0)};a.prototype.Mi=function(){this.fk()};a.prototype.kf=function(){this.ur()};a.prototype.Dn=function(){this.ur()};a.prototype.ur=function(){this.ya&&k.prototype.ur.call(this,this.ya.get("currentTime"), 3013this.ya.get("duration"))};return a}); 3014define("y","require lQ lt cI gD oj mP bw eA bS mY".split(" "),function(a){var f=a("lQ");a("lt");var l=a("cI"),m=a("gD"),k=a("oj"),c=a("mP"),h=a("bw"),g=a("eA"),b=a("bS"),d=a("mY"),e=f.extend(m,function(n){m.call(this);this.j=n;this.Mba=this.VW(g);this.Aaa=this.VW(h);this.q1=this.VW(d);this.Vea=this.VW(b);this.$d=null});e.prototype.clear=function(){this.MW(this.Mba);this.Mba=null;this.MW(this.Aaa);this.Aaa=null;this.MW(this.q1);this.q1=null;this.MW(this.Vea);this.j=this.$d=this.Vea=null};e.prototype.VW= 3015function(n){n=new n(this.j);n.bind(c.Ob,this.bf,this,!0);n.bind(c.Jj,this.Xq,this,!0);n.bind(c.Qc,this.jf,this,!0);return n};e.prototype.MW=function(n){n.unbind(c.Ob,this.bf,this);n.unbind(c.Jj,this.Xq,this);n.unbind(c.Qc,this.jf,this);n.clear()};e.prototype.pba=function(n,q){return k.Ja(q,n)};e.prototype.Pra=function(n){return this.pba(n,"HDRPanorama")?this.Aaa:this.pba(n,"LivePanorama")?this.Mba:this.pba(n,"VideoPanorama")?this.q1:this.Vea};e.prototype.uL=function(n){(this.$d=this.Pra(n))&&this.$d.uL(n)}; 3016e.prototype.start=function(n){this.bf();(this.$d=this.Pra(n))&&this.$d.start(n)};e.prototype.mk=function(){if(this.$d)return this.$d.mk()};e.prototype.getTime=function(){return this.$d?this.$d.getTime():0};e.prototype.play=function(){this.$d&&this.$d.play()};e.prototype.pause=function(){this.$d&&this.$d.pause()};e.prototype.VL=function(){this.$d&&this.$d.VL()};e.prototype.dM=function(){this.$d&&this.$d.dM()};e.prototype.e5=function(){this.$d&&this.$d.e5()};e.prototype.stop=function(){this.$d&&this.$d.stop(); 3017this.trigger(new l(e.Jj,{duration:0,time:0,steps:void 0,selectedStep:void 0}))};e.prototype.end=function(){this.$d&&(this.$d.end(),this.$d=null)};e.prototype.PG=function(n){this.$d&&this.$d.PG(n)};e.prototype.TB=function(n){this.$d&&this.$d.TB(n)};e.prototype.DM=function(){this.$d&&this.$d.DM()};e.prototype.Ld=function(n){this.$d&&this.$d.Ld(n)};e.prototype.Sf=function(n){this.q1.Sf(n)};e.prototype.bf=function(){this.trigger(new l(e.Ob))};e.prototype.Xq=function(n){this.trigger(new l(e.Jj,n.data))}; 3018e.prototype.jf=function(n){this.trigger(new l(e.Qc,n.data))};e.Ob="request frame";e.iLa="frame display";e.jLa="frame hide";e.Jj="time change";e.Qc="playback state change";return e}); 3019define("na",["require","lQ","pw","gD","lR"],function(a){var f=a("lQ"),l=a("pw"),m=a("gD"),k=a("lR");a=f.extend(m,function(c){m.call(this);this.j=c;this.Eh=this.ya=null});a.prototype.start=function(c){this.ya=c;this.Eh=this.j.Bf(this.ya);this.Eh.bind(l.da,this.Cd,this,!0);this.Eh.bind(l.kc,this.Vw,this,!0);this.Eh.get("ready")?this.trigger(l.hd,{panorama:this.ya}):this.Eh.bind(l.hd,this.DZ,this,!0);this.Eh.set("loadingActive",!0)};a.prototype.stop=function(){this.ya=null;this.Eh&&(this.Eh.unbind(l.hd, 3020this.DZ,this),this.Eh.unbind(l.da,this.Cd,this),this.Eh.unbind(l.kc,this.Vw,this),this.Eh.set("loadingActive",!1),this.Eh=null,this.trigger(l.Vf))};a.prototype.clear=function(){this.stop()};a.prototype.DZ=function(){this.Eh.unbind(l.hd,this.DZ,this);this.trigger(l.hd,{panorama:this.ya})};a.prototype.Cd=function(){this.Eh.unbind(l.hd,this.DZ,this);this.Eh.unbind(l.da,this.Cd,this);this.Eh.unbind(l.kc,this.Vw,this);this.Eh=null;this.trigger(l.da,{panorama:this.ya});this.ya=null;this.trigger(l.Vf)}; 3021a.prototype.Vw=function(c){this.trigger(new k(l.kc,c.Tg))};return a}); 3022define("kw","require exports pw cI gD R".split(" "),function(a,f,l,m,k,c){var h=function(b){function d(e){var n=b.call(this)||this;n.renderer=e;n.jja=[];n.DT=new Map;n.Ef=null;return n}Z(d,b);d.prototype.clear=function(){this.N4([])};d.prototype.N4=function(e){e?Array.isArray(e)||(e=[e]):e=[];this.jja.filter(function(n){return!e.includes(n)}
3022).forEach(this.n9a.bind(this));e.filter(function(n){return!this.jja.includes(n)}.bind(this)).forEach(this.X2a.bind(this));this.jja=e};d.prototype.display=function(e){this.rf(e)}; 3023d.prototype.hide=function(e){this.Ef==e&&this.stop()};d.prototype.stop=function(){this.rf(null)};d.prototype.X2a=function(e){var n=new g(this.renderer,e);n.bind(d.xi,this.jU,this,!0);n.rf(this.Ef);this.DT.set(e,n)};d.prototype.n9a=function(e){var n=this.DT.get(e);n.unbind(d.xi,this.jU,this);n.dispose();this.DT.delete(e)};d.prototype.rf=function(e){this.Ef!==e&&(this.Ef=e,this.DT.forEach(function(n){n.rf(e)}))};d.prototype.Ld=function(){this.DT.forEach(function(e){e.acb()})};d.prototype.jU=function(e){this.trigger(new m(d.xi, 3024{yawDelta:e.data.yawDelta}))};d.xi="request yaw change";return d}(k),g=function(b){function d(e,n){var q=b.call(this)||this;q.renderer=e;q.hy=n;q.Ef=null;q.Au=null;q.W2a();return q}Z(d,b);d.prototype.dispose=function(){this.m9a();this.rf(null)};d.prototype.rf=function(e){this.Ef!==e&&(this.OBa(),this.Ef=e,this.Y2a())};d.prototype.acb=function(){this.rKa()};d.prototype.IHa=function(e,n,q){e=e.get("mapLocations",[]);for(var p=0;p<e.length;p++){var r=e[p];if(r.get("map")==n)return r}return q&&0<e.length? 3025e[0]:null};d.prototype.TIa=function(){this.hy.$2a(this.Au);this.hy.bind(c.xi,this.jU,this,!0);this.rKa()};d.prototype.L6a=function(){this.hy.o9a(this.Au);this.hy.unbind(c.xi,this.jU,this)};d.prototype.OBa=function(){this.Au&&(this.L6a(),this.Au=null)};d.prototype.Y2a=function(){this.Ef&&(this.Au=this.IHa(this.Ef,this.hy.get("map",null),!0))&&this.TIa()};d.prototype.rKa=function(){if(this.Au){var e=this.renderer.Lc(),n=this.renderer.Kc();this.hy.Fp(this.Au,e,n,this.renderer.Ce())}};d.prototype.W2a= 3026function(){this.hy.bind(l.F("map"),this.RFa,this,!1)};d.prototype.m9a=function(){this.hy.unbind(l.F("map"),this.RFa,this)};d.prototype.RFa=function(){this.Ef&&(this.OBa(),(this.Au=this.IHa(this.Ef,this.hy.get("map",null),!1))&&this.TIa())};d.prototype.jU=function(e){this.trigger(new m(h.xi,{yawDelta:e.data.yawDelta}))};return d}(k);return h}); 3027define("hE","require pw lT gD bn mQ oQ".split(" "),function(a){function f(w){this.PW=w;this.Ck=null;this.E8={};for(w=0;w<this.PW.buttons.length;w++)this.E8[this.PW.buttons[w]]=!1;this.C8=0;this.JA=null;this.PE=[new THREE.Quaternion,new THREE.Quaternion];this.Vk=this.PE[0];this.li=[new THREE.Vector3,new THREE.Vector3];this.fb=this.li[0];this.NJ=new THREE.Vector3;this.LE=new THREE.Quaternion;this.Jpa=0}function l(w,x,y){this.Q6a=w;this.buttons=x;this.V8a=y}function m(){if(!v&&u!=b.Se){u=b.Se;var w= 3028navigator.getGamepads&&navigator.getGamepads();if(w){for(var x=0;x<p.length;x++)p[x].hIa(null);for(x=0;x<w.length;x++){var y=w[x];if(y&&(y.pose||y.sEa)){var z=y.id||y.Qdb,B=z+(y.hand?"-"+y.hand:""),E=t[B];if(!E){a:{for(var I=0;I<e.length;I++){var A=e[I];if(0==z.indexOf(n[A].Q6a)){z=A;break a}}z=void 0}z&&p.push(E=t[B]=new f(n[z]))}E&&t[B].hIa(y)}}(w=r)&&!r.Zia()&&(r=null);for(x=0;x<p.length;x++)if(E=p[x],E.Zia()&&E.pressed()){r=E;break}if(!r)for(x=0;x<p.length;x++)if(E=p[x],E.Zia()){if("right"==E.hand()){r= 3029E;break}r||(r=E)}w!=r&&h.RB(k)}}}function k(){q.trigger(c.ba)}var c=a("pw"),h=a("lT"),g=a("gD"),b=a("bn"),d=a("mQ");a("oQ");var e="oculus go;oculus touch;xr-standard;gear vr;daydream;vive;vive focus;microsoft;unknown".split(";"),n={};n["oculus go"]=new l("Oculus Go",["trackpad","trigger"],"trigger");n["oculus touch"]=new l("Oculus Touch","thumbstick trigger grip abutton bbutton surface".split(" "),"trigger");n["xr-standard"]=new l("xr-standard","trigger grip unknow_button_0 thumbstick abutton bbutton unknow_button".split(" "), 3030"trigger");n["gear vr"]=new l("Gear VR",["trackpad","trigger"],"trigger");n.daydream=new l("Daydream Controller",["trackpad","menu","system"],"trackpad");n.vive=new l("OpenVR",["trackpad","trigger","grip","menu","system"],"trigger");n["vive focus"]=new l("HTC Vive Focus",["trackpad","trigger","grip"],"trigger");n.microsoft=new l("Spatial Controller (Spatial Interaction Source)",["thumbstick","trigger","grip","menu","thumbpad"],"trigger");n.unknown=new l("",[],void 0);f.prototype.hIa=function(w){if(this.Ck= 3031w){this.aUa=this.Ck.hand||this.Ck.Pdb;this.Ck.pose&&this.Ck.pose.orientation?(this.JA=this.Ck.pose,this.JA.orientation&&(this.Vk=this.PE[0]==this.Vk?this.PE[1]:this.PE[0],this.Vk.fromArray(this.JA.orientation)),this.JA.position?(this.fb=this.li[0]==this.fb?this.li[1]:this.li[0],this.fb.fromArray(this.JA.position)):this.fb=null):this.Ck.sEa&&(this.JA=this.Ck.sEa.transform,this.Vk=this.PE[0]==this.Vk?this.PE[1]:this.PE[0],this.Vk.copy(this.JA.orientation),this.fb=this.li[0]==this.fb?this.li[1]:this.li[0], 3032this.fb.copy(this.JA.position));w=0;for(var x=Math.min(this.Ck.buttons.length,this.Ck.buttons.length);w<x;w++)this.E8[this.PW.buttons[w]]=this.Ck.buttons[w].pressed;for(w=this.C8=0;w<this.Ck.buttons.length;w++)this.Ck.buttons[w].pressed&&this.C8++;(w=!!this.NJ!=!!this.fb||this.fb&&this.NJ.x!=this.fb.x&&this.NJ.y!=this.fb.y&&this.NJ.z!=this.fb.z)&&(this.fb?this.NJ.copy(this.fb):this.NJ.set(0,0,0,0));(x=!!this.LE!=!!this.Vk||this.Vk&&(this.LE.x!=this.Vk.x||this.LE.y!=this.Vk.y||this.LE.z!=this.Vk.z|| 3033this.LE.w!=this.Vk.w))&&(this.Vk?this.LE.copy(this.Vk):this.LE.set(0,0,0));if(w||x)this.Jpa=b.Se}};f.prototype.Zia=function(){return!!this.Ck};f.prototype.k7a=function(){return 500<b.Se-this.Jpa};f.prototype.hand=function(){return this.aUa};f.prototype.quaternion=function(){return this.Vk};f.prototype.position=function(){return this.fb};
3033f.prototype.pressed=function(w){w||(w=this.PW.V8a);return w?this.E8[w]:0<this.C8};var q=new g;q.all=function(){m();return p};q.Zi=function(){m();return r};q.ab="left"; 3034q.tb="right";var p=[],r=null,t={},u=void 0,v=d.lg("disable-controller",!1);return q});define("dt",["require","fq","a"],function(a){function f(k,c){this.eg=k||new l(0,0,0);this.Ej=c||new l(1,0,0)}var l=a("fq"),m=a("a");f.prototype.clone=function(){return new f(this.eg.clone(),this.Ej.clone())};f.prototype.apply=function(k){k.MK(this.eg);k.MK(this.Ej)};f.prototype.JDa=function(){return m.oB(this.eg,this.Ej)};return f}); 3035define("iE",["require","dt","fq"],function(a){function f(k,c,h){this.sa=k||100;this.wa=c||100;this.Wa=h||Math.PI;this.Gda=void 0;this.Ys=!0}var l=a("dt"),m=a("fq");f.prototype.MG=function(k){this.Wa!=k&&(this.Wa=k,this.Ys=!0)};f.prototype.Xx=function(){return this.Wa};f.prototype.JU=function(k){this.sa!=k&&(this.sa=k,this.Ys=!0)};f.prototype.De=function(){return this.sa};f.prototype.jIa=function(k){this.wa!=k&&(this.wa=k,this.Ys=!0)};f.prototype.Te=function(){return this.wa};f.prototype.project=function(k){if(0!= 3036k.z){this.lAa();var c=1/k.z,h=this.Gda*c;k.x=.5*this.sa-k.x*h;k.y=.5*this.wa-k.y*h;k.z=c}};f.prototype.unproject=function(k){this.lAa();return new l(new m(0,0,0),new m(.5*this.sa-k.x,.5*this.wa-k.y,this.Gda))};f.prototype.lAa=function(){this.Ys&&(this.Gda=.5*this.sa/Math.tan(.5*this.Wa),this.Ys=!1)};return f}); 3037define("pD",["require"],function(){function a(){this.Dg=this.pitch=this.Ra=0;this.ti=this.Ue=90;this.Fr=this.Gr=this.height=this.width=100;this.nk=1;this.fG=this.rb=!1;this.Pm=0;this.dia=this.hS=this.uja=!1;this.dG=this.aU=!0;this.camera=this.BS=this.AS=this.Eg=null;this.enabled=!1;this.Se=0;this.PU=void 0}a.prototype.clone=function(){var f=new a;f.Ra=this.Ra;f.pitch=this.pitch;f.Dg=this.Dg;f.Ue=this.Ue;f.ti=this.ti;f.width=this.width;f.height=this.height;f.Gr=this.Gr;f.Fr=this.Fr;f.nk=this.nk;f.rb= 3038this.rb;f.fG=this.fG;f.Pm=this.Pm;f.uja=this.uja;f.dia=this.dia;f.hS=this.hS;f.aU=this.aU;f.dG=this.dG;f.Eg=this.Eg;f.AS=this.AS;f.BS=this.BS;f.camera=this.camera;f.enabled=this.enabled;f.Se=this.Se;f.PU=this.PU;return f};return a}); 3039define("pm",["require","dP","hU"],function(a){var f=a("dP"),l=a("hU");return function(m){var k=1,c=new THREE.WebGLCubeRenderTarget(1024),h=new THREE.CubeCamera(.1,1E4,c);h.layers.enable(f.Tu);h.layers.enable(f.ab);c=new THREE.ShaderMaterial;c.uniforms={tCube:{value:h.renderTarget.texture},tFlip:{value:1},opacity:{value:1}};c.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 <tonemapping_fragment>\n#include <colorspace_fragment>\n}"; 3040c.vertexShader="varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}\n";c.side=THREE.BackSide;c.depthWrite=!1;c.transparent=!0;c.depthTest=!1;c.needsUpdate=!0;var g=new THREE.Mesh(new THREE.SphereGeometry(5,64,64),c);g.overdraw=!1;g.matrixAutoUpdate=!1;g.renderOrder=1E3;var b=new THREE.Matrix4;this.SG=function(e){k=e};this.start=function(e){e.add(g); 3041e.add(h);e.traverse(function(n){n.layers.test(h.layers)&&(n.userData.eja=n.layers.mask,n.layers.mask=h.layers.mask)});h.visible=!0;g.visible=!0;m.setClearColor(16777215,1)};this.stop=function(e){m.setClearColor(0,0);e.traverse(function(n){void 0!==n.userData.eja&&(n.layers.mask=n.userData.eja,delete n.userData.eja)});h.visible=!1;g.visible=!1;e.remove(g);e.remove(h)};var d=0;this.render=function(e,n){0<k&&(g.matrix.copy(n.matrixWorld),g.matrix.multiply(b.makeTranslation(0,0,5*-k)),g.matrixWorldNeedsUpdate= 3042!0,d++,l.c7a()&&0!=d%10||(l.W9a(),g.visible=!1,h.update(m,e),g.visible=!0))}}}); 3043define("eR","require lv of dP pm jH V hU oQ".split(" "),function(a){function f(n){this.M=n;this.Kb=new THREE.PerspectiveCamera(90,16/9,.1,2*h.Fg);this.Kb.layers.enable(k.ab);this.$s=new THREE.PerspectiveCamera;this.Va=new THREE.Scene;this.vqa=new THREE.Scene;this.wqa=new THREE.Scene;this.Va.add(this.Kb);this.xo=this.afa=this.$W=this.ZW=this.j=null;this.bua=this.s9=!1}var l=a("lv"),m=a("of"),k=a("dP"),c=a("pm"),h=a("jH"),g=a("V"),b=a("hU"),d=a("oQ");f.prototype.Y4a=function(){this.uPa()};f.prototype.Ur= 3044function(){return this.j};f.prototype.Cf=function(){return this.Va};f.prototype.getCamera=function(){return this.$s};f.prototype.Wr=function(){return d.isPresenting&&d.mh==this.j};f.prototype.g5a=function(){return this.$s.isArrayCamera&&0<this.$s.cameras.length?2*Math.atan2(1,this.$s.cameras[0].projectionMatrix.elements[5])*e:this.$s.fov};f.prototype.getPixelRatio=function(){return this.j?this.j.getPixelRatio():b.getPixelRatio()};f.prototype.j5a=function(){return d.isPresenting&&d.framebufferWidth? 3045.5*d.framebufferWidth:this.j?this.j.domElement.width:1024};f.prototype.i5a=function(){return d.isPresenting&&d.framebufferHeight?d.framebufferHeight:this.j?this.j.domElement.height:1024};f.prototype.cg=function(){return this.j.domElement};f.prototype.update=function(n){this.R1a(n);this.o1a(n);this.vr(n)};f.prototype.pha=function(n){this.j.eu=!0;n=b.p4a(n);var q=new THREE.CubeCamera(this.$s.near,this.$s.far,n);this.Va.add(q);q.position.setFromMatrixPosition(this.$s.matrixWorld);q.update(this.j,this.Va); 3046this.Va.remove(q);this.j.eu=!1;return n.texture};f.prototype.render=function(){this.E_()};f.prototype.R1a=function(n){n.enabled&&(this.j||this.m_a(n),n.rb&&d.getType()==d.wv.xl&&(this.bua=!0));this.aza==n.width&&this.$ya==n.height||this.j.setSize(this.aza=n.width,this.$ya=n.height);if(this.s9=n.enabled&&!n.rb)this.ZW.setSize(n.width,n.height),this.$W.setSize(n.width,n.height)};f.prototype.m_a=function(n){!this.j&&n.enabled&&(this.M.Od().G1(),this.ZW=this.M.Od().e5a(),this.j=this.M.Od().Ur(),n=this.j.getSize(new THREE.Vector2), 3047this.aza=n.width,this.$ya=n.height,this.$W=this.M.Od().f5a(),this.afa=new c(this.j,this.Kb))};f.prototype.uPa=function(){this.j&&(this.ZW=this.j=this.$W=this.xo=null,this.M.Od().B4())};f.prototype.vr=function(n){n.rb?this.$s=this.j.xr.getCamera():(this.Kb.quaternion.copy(m.TCa(n.Ra,n.pitch,n.Dg)),this.Kb.fov=l.Cm(n.Ue,n.width,n.height),this.Kb.aspect=n.width/n.height,this.Kb.updateProjectionMatrix(),this.Kb.updateMatrixWorld(),this.$s=this.Kb);g.V9a(this.Va,this.Wr()?this.j.xr.getCamera().cameras: 3048[this.Kb]);!0===this.Va.beb&&this.Va.updateMatrixWorld()};f.prototype.o1a=function(n){var q=!n.rb&&0<n.Pm?this.afa:null;this.xo!=q&&(this.xo&&this.xo.stop(this.Va),(this.xo=q)&&this.xo.start(this.Va));this.xo&&this.xo==this.afa&&this.xo.SG(n.Pm)};f.prototype.E_=function(){this.bua&&this.j.resetState();this.xo&&this.xo.render(this.Va,this.Kb);this.j.render(this.Va,this.Kb);this.s9&&(this.ZW.render(this.vqa,this.Kb),this.$W.render(this.wqa,this.Kb))};var e=180/Math.PI;return f}); 3049define("c","require lQ jC fr cD eB V kU pE".split(" "),function(a){var f=a("lQ"),l=a("jC"),m=a("fr"),k=a("cD"),c=a("eB"),h=a("V"),g=a("kU"),b=a("pE");a=f.extend(l,function(){l.call(this);this.set("tag","ComposedWebGLObject");this.set("webglScene",null);this.set("meshGroup",null);this.set("camera",null);this.set("textureSource",null);
3049this.set("materialConfig",this.Uba=new k.jo);this.Vv&&this.Vv();this.yD&&this.yD();this.Kz&&this.Kz();this.wo&&this.wo()});a.prototype.Zb=function(){l.prototype.Zb.call(this); 3050this.Po&&this.Po();this.gP&&this.gP();this.GJ&&this.GJ()};a.prototype.ac=function(){this.eJ&&this.eJ();this.IJ&&this.IJ();this.Ro&&this.Ro();c.dispose(this.get("meshGroup"));c.Pu(this.get("meshGroup"),null);this.set("meshGroup",null);l.prototype.ac.call(this)};a.prototype.oa=function(d){this.wf&&this.wf(d);l.prototype.oa.call(this,d);this.set("camera",h.getCamera(d.Eg));this.set("webglScene",d.Eg);this.get("meshGroup")||(this.set("meshGroup",c.ZBa(this.vo())),this.get("meshGroup").userData.D8a=this); 3051this.R("webglScene","meshGroup")&&c.Pu(this.get("meshGroup"),this.get("webglScene"));this.tm();this.Vi&&this.Vi(d);this.f2a();this.Ex&&this.Ex(d);this.jp&&this.jp(d);this.uF();this.R("loadingActive","meshGroup")&&g.qb(this.get("meshGroup"),this.get("loadingActive"));this.R("blendingActive","meshGroup")&&b.THa(this.get("meshGroup"),this.get("blendingActive"))};a.prototype.tm=function(){this.R("composedAlpha","meshGroup")&&this.rz()};a.prototype.rz=function(){c.ff(this.get("meshGroup"),this.get("composedAlpha"))}; 3052a.prototype.f2a=function(){if(this.R("textureSource")||this.R("materialConfig")&&!this.Uba.isEqual(this.get("materialConfig"))){var d=this.II();d&&(c.P$a(d,this.NN()),this.rz())}};a.prototype.uF=function(){if(this.R("index","meshGroup")){var d=this.get("meshGroup");d&&d.children.forEach(function(e,n,q){c.X4(e,this.get("index")+n/q.length)}.bind(this))}};a.prototype.NN=function(){var d=this.get("textureSource")||new m;this.Uba=this.get("materialConfig");var e=k.Kr(d.texture(),this.Uba);g.nM(e,d);return[e]}; 3053a.prototype.mqa=function(){var d=new m,e=k.Kr(d.texture());g.nM(e,d);return[e]};a.prototype.mw=function(d){return c.G5a(this.get("meshGroup"),d)};return a}); 3054define("oI","require iw jH eB kQ kU lv of nA".split(" "),function(a){var f=a("iw"),l=a("jH"),m=a("eB"),k=a("kQ"),c=a("kU"),h=a("lv"),g=a("of"),b=a("nA"),d=new THREE.Matrix4,e=Math.PI/180;return{Vv: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", 3055null);this.set("horizontalAlign",null);this.set("verticalAlign",null);this.set("attachToCamera",!1);this.$g=this.Jz();this.Gh=new THREE.Matrix4;this.Td=new THREE.Matrix4;this.Qo=new THREE.Matrix4;this.kn=new THREE.Matrix4;this.vj=new THREE.Matrix4;this.r8=new THREE.Matrix4;this.dpa=new THREE.Quaternion;this.gqa=new THREE.Matrix4;this.xN=new THREE.Matrix4;this.JN=new THREE.Matrix4;this.yz=new THREE.Matrix4;this.$h=new THREE.Matrix4},Ex:function(n){this.yr(n);this.oga()},oga:function(){if(this.R("hfov", 3056"vfov","contentWidth","contentHeight","panoramaPixelsPerDegree","scaleMode","horizontalAlign","verticalAlign")){var n=k.via(this.get("hfov"),this.get("vfov"),this.get("contentWidth"),this.get("contentHeight"),this.get("scaleMode"),this.get("panoramaPixelsPerDegree"),this.get("horizontalAlign"),this.get("verticalAlign"));n=l.AIa(this.$g[1],n.UU,n.cV,n.Jy,n.Ly);this.$g[1]!=n&&(this.$g[1]=n,(n=this.II())&&m.Pka(n,this.$g[1]))}},II:function(){var n=this.get("meshGroup");return n?m.hl(n)[1]:null},vo:function(){return[0, 30571].map(function(n){var q=0==n?this.mqa():this.NN();n=m.create(this.$g[n],q);c.By(n,c.Xp);c.Cy(n,c.Fs);c.NG(n,f.WM);c.HU(n,1);return n}.bind(this))},Jz:function(){return[l.UK(),l.UK()]},yr:function(n){var q=!1;this.R("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.Gh.makeTranslation(.5*-this.get("composedTranslationX")*l.Fg,.5*this.get("composedTranslationY")*l.Fg,.5*this.get("composedTranslationZ")*l.Fg),q=!0);this.R("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&& 3058(this.Td.makeRotationY(-n.Ra*e),this.Td.multiply(d.makeRotationX(-this.get("composedDeltaPitch")*e)),this.Td.multiply(d.makeRotationY(this.get("composedDeltaYaw")*e)),this.Td.multiply(d.makeRotationY(n.Ra*e)),q=!0);this.R("yaw","pitch")&&(this.Qo.makeRotationY(-this.get("yaw")*e),this.Qo.multiply(d.makeRotationX(this.get("pitch")*e)),q=!0);if(this.R("distance","flipHorizontally","scale","hfov","vfov","contentWidth","contentHeight","scaleMode","horizontalAlign","verticalAlign","composedTranslationX", 3059"composedTranslationY","composedTranslationZ")){var p=0==this.ta.get("composedTranslationX")&&0==this.ta.get("composedTranslationY")&&0==this.ta.get("composedTranslationZ")&&void 0!==this.get("distance")?l.pu(this.get("distance")):l.Rr();this.kn.makeTranslation(0,0,-p);var r=this.get("contentWidth"),t=this.get("contentHeight"),u=this.get("hfov"),v=this.get("vfov")||h.Cm(u,r,t),w=(this.get("flipHorizontally")?-1:1)*this.get("scale"),x=this.get("scale"),y=this.get("scaleMode"),z=this.get("panoramaPixelsPerDegree"); 3060q=this.get("horizontalAlign")||b.Ye;var B=this.get("verticalAlign")||b.qe;r=k.via(u,v,r,t,y,z,q,B);u=w*l.wia(p,u);v=x*l.xia(p,v);this.xN.makeScale(u,v,1);w*=l.wia(p,r.Ue);p=x*l.xia(p,r.vs);this.JN.makeScale(w,p,1);this.gqa.makeTranslation(q==b.ab?.5*-(u-w):q==b.tb?.5*(u-w):0,B==b.Ec?.5*(v-p):B==b.wc?.5*-(v-p):0,
30600);q=!0}this.R("rotationX","rotationY","rotationZ","roll")&&(this.vj.makeRotationZ(this.get("roll")*e),this.vj.multiply(d.makeRotationY(this.get("rotationY")*e)),this.vj.multiply(d.makeRotationX(this.get("rotationX")* 3061e)),this.vj.multiply(d.makeRotationZ(this.get("rotationZ")*e)),q=!0);this.set("cameraYaw",n.Ra);this.set("cameraPitch",n.pitch);this.set("cameraRoll",n.Dg);this.get("attachToCamera")&&this.R("cameraYaw","cameraPitch","cameraRoll")?(this.dpa.copy(g.TCa(n.Ra,n.pitch,n.Dg)),this.r8.makeRotationFromQuaternion(this.dpa),q=!0):this.R("attachToCamera")&&(this.r8.identity(),q=!0);if(q||this.R("meshGroup"))this.$h.copy(this.Gh),this.$h.multiply(this.Td),this.$h.multiply(this.r8),this.$h.multiply(this.Qo), 3062this.$h.multiply(this.kn),this.$h.multiply(this.vj),this.yz.copy(this.$h),this.yz.multiply(this.xN),this.$h.multiply(this.gqa),this.$h.multiply(this.JN),n=m.hl(this.get("meshGroup")),m.Jr(n[0],this.yz),m.Jr(n[1],this.$h)}}});define("jZ",["require","lQ","c","oI"],function(a){var f=a("lQ"),l=a("c");a=a("oI");return f.extend(l,a,function(){l.call(this);this.set("tag","Plane")})}); 3063define("ig","require lQ ld pw oj jZ nu oO nT eN lR".split(" "),function(a){function f(p,r,t,u,v,w){for(p=(p-r)/w;t+180<u;)u-=360;for(;t-180>u;)u+=360;t=(t-u)/w;return t=-.1>p||.1<p?l(v,t,Math.abs(1/(1500*p))):l(v,t,.08)}function l(p,r,t){p=(r-p)*(1-t);1E-5>Math.abs(p)&&(p=0);return r-p}var m=a("lQ"),k=a("ld"),c=a("pw"),h=a("oj"),g=a("jZ"),b=a("nu"),d=a("oO"),e=a("nT"),n=a("eN"),q=a("lR");a=m.extend(g,function(p){g.call(this);this.v=p;this.Ik.push(this.v);this.ig=this.ig.bind(this);this.nf=h.Ja("CeilingCapPanoramaOverlay", 3064this.v)?"ceiling":"tripod";this.set("tag","Cap");this.set("pitch","tripod"==this.nf?-90:90);this.od=!1;this.ME=this.Eda=this.yt=void 0;this.EXa="tripod"==this.nf?1:-1;this.Ak=this.Uk=this.bh=null});a.prototype.Zb=function(){g.prototype.Zb.call(this);this.bh=(new d(c.da)).Qm(this.Qq.bind(this));this.Uk=(new d(c.kc)).yp(this.uE.bind(this));k.ea(this.v,"angle distance hfov image.levels.url inertia rotate".split(" "),this.ig,!0)};a.prototype.ac=function(){this.Ak&&this.Ak.dispose();this.Ak=null;this.bh.dispose(); 3065this.Uk.dispose();k.ca(this.v,"angle distance hfov image.levels.url inertia rotate".split(" "),this.ig);g.prototype.ac.call(this)};a.prototype.ig=function(){this.set("angle",this.v.get("angle"));this.set("distance",this.v.get("distance"));this.set("hfov",this.v.get("hfov"));var p=e.k5a(this.v,this.get("panoramaPixelsPerDegree"));this.set("imageURL",p&&p.get("url"));this.set("imageWidth",p&&p.get("width"));this.set("imageHeight",p&&p.get("height"));this.set("inertia",this.v.get("inertia"));this.set("rotate", 3066this.v.get("rotate"))};a.prototype.vo=function(){var p=g.prototype.vo.call(this);this.bh.Gf(p);this.Uk.Gf(p);return p};a.prototype.oa=function(p){this.Wfa();this.vK(p);g.prototype.oa.call(this,p)};a.prototype.Wfa=function(){this.R("imageURL")&&this.get("imageURL")&&(this.set("textureSource",new b(this.get("imageURL"))),this.set("contentWidth",this.get("imageWidth")),this.set("contentHeight",this.get("imageHeight")))};a.prototype.Qq=function(){this.trigger(c.hd);this.trigger(c.da)};a.prototype.uE= 3067function(p,r){var t=0;r.ku(function(u){(u=r.Em(u))&&(t+=u.Tg)});this.trigger(new q(c.kc,t/r.ld.length))};a.prototype.vK=function(p){this.set("rendererYaw",p.Ra);if(this.R("angle","inertia","rotate")||(this.get("rotate")||this.get("inertia"))&&this.R("rendererYaw")){var r=this.get("angle"),t=this.get("rotate"),u=this.get("inertia"),v=this.EXa*p.Ra;t&&(r+=v);var w=0,x=r-v;void 0!==this.yt&&(u&&(t?(w=f(v,this.ME,r,this.yt,this.Eda,p.Se),r=this.yt+w*p.Se):(w=f(v,this.ME,x,this.Qwa,this.Eda,p.Se),x=this.Qwa+ 3068w*p.Se,r=x+v)),this.yt!=r&&this.Ga());this.Qwa=x;this.yt=r;this.Eda=w;this.ME=v;this.set("rotationZ",-r)}};a.prototype.Mm=function(p){if(p.tf==c.Bl){var r=!p.fl()&&this.rr(p);r&&(p.fB(this.v),this.v.get("useHandCursor")&&p.AF(this.v),p.el(this.get("distance")));this.od!=r&&(this.od=r,this.v.trigger(this.od?c.Dc:c.Jb),p.zu()&&this.v.trigger(this.od?c.IC:c.Zp))}else p.tf==c.Uf&&!p.fl()&&this.rr(p)&&(1<this.v.jL(c.ma,!0).length&&p.ps(this.v),p.el(this.get("distance")),this.v.trigger(c.ma))};a.prototype.rr= 3069function(p){return this.mw(p.ir).some(function(r){var t=this.ESa();return t&&t.Gy(r.x,r.y)}.bind(this))};a.prototype.ESa=function(){if(this.Ak)return this.Ak;var p=this.get("textureSource");if(p=p&&p.Af())this.Ak=new n(p);return this.Ak};return a}); 3070define("kC","require lQ pw lt jC oQ".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("lt"),k=a("jC"),c=a("oQ");a=f.extend(k,function(){k.call(this);this.Gh=new THREE.Matrix4;this.zAa=!1;this.Hi=new THREE.Matrix4;this.tg=null;this.lm=new THREE.Matrix4;this.FQ=this.rQ=0;this.nN=.75;this.WN=.5;this.lt=4;this.Yba=0;this.mt=-2;this.Mq=3;this.LY=0;this.HD=7;this.lQ=this.GA=1;this.lP=.15;this.ID=this.EE=0;this.fY=this.q_=m.V;this.B0=this.v0=1E3});var h=Math.PI/180,g=new THREE.Matrix4;a.prototype.bn=function(){}; 3071a.prototype.Zb=function(){k.prototype.Zb.call(this);this.trigger(l.hd);this.trigger(l.da)};a.prototype.ac=function(){this.P8()};a.prototype.Lk=function(){this.bn();this.HQ()};a.prototype.Mk=function(){this.Ga()};a.prototype.HQ=function(){this.tg&&(this.P8(),this.pqa())};a.prototype.XW=function(){};a.prototype.pqa=function(){this.vYa();this.tg=new THREE.Group;for(var b=this.fY==m.PLAYING,d=this.EE,e=this.ID;0<e+d;){var n=Math.random()*(e+d)<=e;n?e--:d--;
3071var q=this.XW();q.matrixAutoUpdate=!1;q.overdraw= 3072!1;q.material.opacity=0;q.userData={M4a:n,aM:new THREE.Matrix4,cBa:new THREE.Matrix4,tka:new THREE.Matrix4,y:void 0,NKa:void 0,OB:b};this.tg.add(q);b&&this.hea(q,this.mt,this.Mq);this.tYa(q)}this.rQ=b?this.tg.children.length:0;this.Nga.add(this.tg);this.cpa()};a.prototype.P8=function(){if(this.tg){this.tg.parent&&this.tg.parent.remove(this.tg);for(var b=0,d=this.tg&&this.tg.children.length;b<d;b++)this.tg.children[b].material.dispose();this.tg=null;this.FQ=0}};a.prototype.vYa=function(){this.lm=(new THREE.Matrix4).makeScale(this.GA, 3073this.GA,this.GA)};a.prototype.hea=function(b,d,e){d+=Math.random()*(e-d);if(b.userData.M4a){e=this.HD;var n=360*Math.random()*h;b.userData.aM.makeTranslation(e*Math.cos(n),d,e*Math.sin(n))}else e=2*Math.random()*Math.PI,n=this.Yba+(this.lt-this.Yba)*Math.sqrt(Math.random()),b.userData.aM.makeTranslation(n*Math.cos(e),d,n*Math.sin(e));b.userData.aM.multiply(this.lm);b.userData.y=d};a.prototype.tYa=function(b){var d=this.lP+Math.random()*(this.mE-this.lP);do var e=Math.random()*this.LY;while(80<e&& 3074100>e);var n=360*Math.random(),q=Math.sin(n*h)*Math.sin(e*h)*d,p=-Math.cos(e*h)*d;d*=Math.cos(n*h)*Math.sin(e*h);b.userData.NKa=p*this.GA;b.userData.cBa.makeTranslation(q,p,d);b.userData.tka.makeRotationY(n*h);b.userData.tka.multiply(g.makeRotationX(-e*h))};a.prototype.oa=function(b){k.prototype.oa.call(this,b);this.g1a(b);this.Nga=b.Eg;this.Nga!=(this.tg&&this.tg.parent)?(this.P8(),this.Nga&&this.pqa()):this.R("index")&&this.cpa();this.K1a(b)};a.prototype.g1a=function(b){b=b.rb&&c.getType()==c.wv.xl; 3075b!=this.Nsa&&(this.Nsa=b)&&setTimeout(function(){this.tg&&this.HQ()}.bind(this),0)};a.prototype.K1a=function(b){if(this.tg){this.R("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.zAa=0!=this.get("composedTranslationX")||0!=this.get("composedTranslationY")||0!=this.get("composedTranslationZ"),this.Gh.makeTranslation(-this.get("composedTranslationX")*this.lt,this.get("composedTranslationY")*this.lt,this.get("composedTranslationZ")*this.lt));var d=this.q_==m.PLAYING,e=this.tg.children, 3076n=e.length,q=d?Math.round(n*b.Se/this.v0):0;if(0<this.rQ+q){this.FQ=d?0:Math.min(this.rQ,this.FQ+Math.round(n*b.Se/this.B0));b=this.get("composedAlpha");for(d=0;d<n;d++){var p=e[d];if(!p.userData.OB)if(0<q)q--,p.userData.OB=!0,this.rQ++,this.hea(p,this.Mq,this.Mq+(this.Mq-this.mt));else continue;
3076p.userData.aM.multiply(p.userData.cBa);p.userData.y+=p.userData.NKa;if(p.userData.y<this.mt||p.userData.y>this.Mq){if(0<this.FQ){this.FQ--;p.userData.OB=!1;this.rQ--;p.material.opacity=0;continue}var r=p.userData.y< 3077this.mt?this.Mq:this.mt;this.hea(p,r,r)}r=b;p.userData.y<this.mt+this.WN?r*=(p.userData.y-this.mt)/this.WN:p.userData.y>this.Mq-this.nN&&(r*=(this.Mq-p.userData.y)/this.nN);p.material.opacity=r*this.lQ;this.zAa?(p.matrix.copy(this.Gh),p.matrix.multiply(p.userData.aM)):p.matrix.copy(p.userData.aM);p.matrix.multiply(p.userData.tka);p.matrixWorldNeedsUpdate=!0}this.Ga()}}};a.prototype.cpa=function(){if(this.tg)for(var b=this.get("index"),d=0;d<this.tg.children.length;d++)this.tg.children[d].renderOrder= 3078b};return a}); 3079define("jk","require lQ ld lt kC ol w".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("lt"),k=a("kC"),c=a("ol"),h=a("w");a=f.extend(k,function(b){k.call(this);this.v=b;this.Lk=this.Lk.bind(this);this.Mk=this.Mk.bind(this);this.bn()});a.prototype.Zb=function(){k.prototype.Zb.call(this);this.v.set("state",this.v.get("startState"));l.ea(this.v,"color intensity speed opacity distance maxDistance farPlaneDistance minSpeed maxSpeed particleCount farPlaneParticleCount particleScale".split(" "),this.Lk, 3080!0);l.ea(this.v,["state"],this.Mk,!0)};a.prototype.ac=function(){l.ca(this.v,"color intensity speed opacity distance maxDistance farPlaneDistance minSpeed maxSpeed particleCount farPlaneParticleCount particleScale".split(" "),this.Lk);l.ca(this.v,["state"],this.Mk);this.v.set("state",m.V);k.prototype.ac.call(this)};a.prototype.Lk=function(){this.bn();this.HQ()};a.prototype.Mk=function(){this.q_=this.v.get("state");this.Ga()};a.prototype.bn=function(){k.prototype.bn.call(this);var b=h.pb()||h.browser()== 3081h.ys?2500:h.Df()?4E3:5E3;this.lP=this.mE=.2*this.v.get("speed",.2);this.lt=14.5*this.v.get("distance",.5)+.5;this.lQ=1*this.v.get("opacity",.1);this.GA=.036;this.EE=this.v.get("intensity",.1)*b;this.Gc=c.ds(this.v.get("color","#ffffff"));this.ID=0;this.HD=15;this.fY=this.v.get("initialState");this.v0=this.v.get("startDuration");this.B0=this.v.get("stopDuration");this.nN=.75;this.WN=.5;this.mt=-2;this.Mq=4;this.LY=180;this.Vqa()};a.prototype.XW=function(){return new THREE.Sprite(this.Wv())};a.prototype.Wv= 3082function(){var b=new THREE.SpriteMaterial;b.map=this.wq();b.side=THREE.FrontSide;b.transparent=!0;b.depthTest=!1;b.needsUpdate=!0;return b};a.prototype.wq=function(){if(this.Ia)return this.Ia;var b=document.createElement("canvas");b.width=b.height=g;this.Ia=new THREE.Texture;
3082this.Ia.colorSpace=THREE.SRGBColorSpace;this.Ia.image=b;this.Ia.needsUpdate=!0;this.Vqa();return this.Ia};a.prototype.Vqa=function(){if(this.Ia){var b=this.Ia.image,d=b.getContext("2d"),e=d.createRadialGradient(.5*b.width,.5* 3083b.height,.2*b.height,.5*b.width,.5*b.height,.5*b.height);e.addColorStop(0,"rgba("+this.Gc[0]+", "+this.Gc[1]+", "+this.Gc[2]+", 1)");e.addColorStop(1,"rgba("+this.Gc[0]+", "+this.Gc[1]+", "+this.Gc[2]+", 0)");d.fillStyle=e;d.clearRect(0,0,b.width,b.height);d.fillRect(0,0,b.width,b.height);this.Ia.needsUpdate=!0}};var g=32;return a}); 3084define("ps","require lQ iw jH eB kQ kU nA".split(" "),function(a){a("lQ");var f=a("iw"),l=a("jH"),m=a("eB"),k=a("kQ"),c=a("kU"),h=a("nA"),g=new THREE.Matrix4,b=Math.PI/180;return{Vv: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("yaw",0);this.set("pitch",0);this.set("roll",0);this.set("rotationZ",0);this.set("contentWidth",100);this.set("contentHeight",100);this.set("scale",1);this.set("scaleMode", 3085null);this.set("horizontalAlign",null);this.set("verticalAlign",null);this.$g=this.Jz();this.Gh=new THREE.Matrix4;this.Td=new THREE.Matrix4;this.Qo=new THREE.Matrix4;this.kn=new THREE.Matrix4;this.eI=new THREE.Matrix4;this.$J=new THREE.Matrix4;this.lpa=new THREE.Matrix4;this.vj=new THREE.Matrix4;this.jqa=new THREE.Matrix4;this.xN=new THREE.Matrix4;this.JN=new THREE.Matrix4;this.yz=new THREE.Matrix4;this.$h=new THREE.Matrix4;this.gI=new THREE.Matrix4;this.nD=new THREE.Vector3},Ex:function(d){this.yr(d); 3086this.oga()},oga:function(){if(this.R("width","height","contentWidth","contentHeight","scaleMode","horizontalAlign","verticalAlign")){var d=k.M2(this.get("width"),this.get("height"),this.get("contentWidth"),this.get("contentHeight"),this.get("scaleMode"),this.get("horizontalAlign"),this.get("verticalAlign"));d=l.AIa(this.$g[1],d.UU,d.cV,d.Jy,d.Ly);this.$g[1]!=d&&(this.$g[1]=d,(d=this.II())&&m.Pka(d,this.$g[1]))}},II:function(){var d=this.get("meshGroup");return d?m.hl(d)[1]:null},vo:function(){return[0, 30871].map(function(d){var e=0==d?this.mqa():this.NN();d=m.create(this.$g[d],e);c.By(d,c.Xp);c.Cy(d,c.Fs);c.NG(d,f.WM);c.HU(d,1);return d}.bind(this))},Jz:function(){return[l.UK(),l.UK()]},yr:function(d){var e=!1;this.R("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.Gh.makeTranslation(.5*-this.get("composedTranslationX")*l.Fg,.5*this.get("composedTranslationY")*l.Fg,.5*this.get("composedTranslationZ")*l.Fg),e=!0);this.R("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&& 3088(this.Td.makeRotationY(-d.Ra*b),this.Td.multiply(g.makeRotationX(-this.get("composedDeltaPitch")*b)),this.Td.multiply(g.makeRotationY(this.get("composedDeltaYaw")*b)),this.Td.multiply(g.makeRotationY(d.Ra*b)),e=!0);this.R("yaw","pitch")&&(this.Qo.makeRotationY(-this.get("yaw")*b),this.Qo.multiply(g.makeRotationX(this.get("pitch")*b)),e=!0);if(this.R("distance","composedTranslationX","composedTranslationY","composedTranslationZ")){var n=0==this.get("composedTranslationX")&&0==this.get("composedTranslationY")&& 30890==this.get("composedTranslationZ")&&void 0!==this.get("distance");this.set("z",n?l.pu(this.get("distance")):l.Rr())}this.R("z")&&(this.kn.makeTranslation(0,0,-this.get("z")),e=!0);e&&(this.gI.copy(this.Gh),this.gI.multiply(this.Td),this.gI.multiply(this.Qo),this.gI.multiply(this.kn));n=!1;this.set("rendererYaw",d.Ra);this.set("rendererPitch",d.pitch);this.set("rendererRoll",d.Dg);this.set("rendererCameraFOV",d.ti);this.set("rendererWidth",d.width);this.set("rendererHeight",d.height);d.ti&&this.R("z", 3090"rendererCameraFOV")&&this.set("rendererHeightZ",Math.tan(d.ti*b*.5)*this.get("z")*2);if(d.ti&&(e||this.R("rendererYaw","rendererPitch","rendererRoll","rendererCameraFOV","rendererWidth","rendererHeight","rendererHeightZ","inVR"))){if(d.rb)this.eI.copy(this.gI),this.$J.identity();else{n=d.camera;this.eI.copy(n.matrixWorld);this.nD.setFromMatrixPosition(n.matrixWorld);this.nD.applyMatrix4(this.gI);this.nD.applyMatrix4(n.matrixWorldInverse);var q=-10,p=-10;0>this.nD.z&&(this.nD.applyMatrix4(n.projectionMatrix), 3091q=.5*this.nD.x,p=.5*this.nD.y);var r=this.get("rendererHeightZ");this.$J.makeTranslation(q*r*n.aspect,p*r,0)}n=!0}this.R("roll")&&(this.vj.makeRotationZ(this.get("roll")*b),n=!0);if(d.ti&&(e||this.R("rendererHeight","inVR","rendererHeightZ","width","height","contentWidth","contentHeight","scale","scaleMode","horizontalAlign","verticalAlign","flipHorizontally","offsetX","offsetY"))){e=d.rb?1024:d.height;n=this.get("scale")*this.get("rendererHeightZ")/e*(d.rb?2:1);var t=this.get("width");p=this.get("height"); 3092var u=this.get("offsetX");r=this.get("offsetY");var v=this.get("contentWidth"),w=this.get("contentHeight");q=(this.get("flipHorizontally")?-1:1)*n;var x=this.get("scaleMode");d=this.get("horizontalAlign")||h.Ye;e=this.get("verticalAlign")||h.qe;x=k.M2(t,p,v,w,x,d,e);v=q*t;w=n*p;this.xN.makeScale(v,w,1);t=q*(.5*t-u);p=n*(r-.5*p);this.lpa.makeTranslation(t,p,0);q*=x.width;n*=x.height;this.JN.makeScale(q,n,1);this.jqa.makeTranslation((d==h.ab?.5*-(v-q):d==h.tb?.5*(v-q):0)+t,(e==h.Ec?.5*(w-n):e==h.wc? 3093.5*-(w-n):0)+p,0);n=!0}n&&(this.$h.copy(this.eI),this.$h.multiply(this.kn),this.$h.multiply(this.$J),this.$h.multiply(this.vj),this.yz.copy(this.$h),this.yz.multiply(this.lpa),this.yz.multiply(this.xN),this.$h.multiply(this.jqa),this.$h.multiply(this.JN),d=m.hl(this.get("meshGroup")),m.Jr(d[0],this.yz),m.Jr(d[1],this.$h))}}}); 3094define("gy",["require","pw","lt"],function(a){function f(k,c){this.Rd=k;this.zc=c;this.Tb=!1;this.R7();this.U7();this.wE()}var l=a("pw"),m=a("lt");f.prototype.clear=function(){this.Sda();this.Yda();this.Rd.set("state",m.V);this.zc=this.Rd=null};f.prototype.Xe=function(k){this.Tb!=k&&(this.Tb=k,this.Ut())};f.prototype.wE=function(){this.zc.Vc(this.Rd.get("state"))};f.prototype.GP=function(){this.Ut()};f.prototype.IP=function(){this.zc.Oka(this.Rd.get("frameDuration"))};f.prototype.HP=function(){this.zc.dIa("first"== 3095this.Rd.get("finalFrame"))};f.prototype.EP=function(){this.Rd.trigger(l.cq)};f.prototype.DP=function(){this.Rd.trigger(l.Gb)};f.prototype.FP=function(){this.Rd.set("state",this.zc.getState())};f.prototype.Ut=function(){this.Rd.get("autoplay")&&this.zc.Vc(this.Tb?m.PLAYING:m.V)};f.prototype.R7=function(){this.Rd.bind(l.F("state"),this.wE,this,!0);this.Rd.bind(l.F("autoplay"),this.GP,this,!0);
3095this.Rd.bind(l.F("frameDuration"),this.IP,this,!0);this.Rd.bind(l.F("finalFrame"),this.HP,this,!0)};f.prototype.Sda= 3096function(){this.Rd.unbind(l.F("state"),this.wE,this,!0);this.Rd.unbind(l.F("autoplay"),this.GP,this,!0);this.Rd.unbind(l.F("frameDuration"),this.IP,this,!0);this.Rd.unbind(l.F("finalFrame"),this.HP,this,!0)};f.prototype.U7=function(){this.zc.bind(l.cq,this.EP,this,!0);this.zc.bind(l.Gb,this.DP,this,!0);this.zc.bind(l.ye,this.FP,this,!0)};f.prototype.Yda=function(){this.zc.unbind(l.cq,this.EP,this,!0);this.zc.unbind(l.Gb,this.DP,this,!0);this.zc.unbind(l.ye,this.FP,this,!0)};return f}); 3097define("hs","require ld pw lt iw oj cD eB gy fr kU eN bm".split(" "),function(a){var f=a("ld"),l=a("pw"),m=a("lt"),k=a("iw"),c=a("oj"),h=a("cD"),g=a("eB"),b=a("gy"),d=a("fr"),e=a("kU"),n=a("eN"),q=a("bm");return{yD:function(){this.set("visible",!1);this.set("inView",!1);this.set("blending",0);this.set("chromaColor",void 0);this.set("chromaThreshold",0);this.set("chromaSmoothing",0);this.set("premultipliedAlpha",!1);this.set("projected",!1);this.set("image",null);this.set("level",null);this.set("levelURL", 3098null);this.set("state",null);this.set("visibleOnStop",!0);this.set("side",void 0);this.set("isVideoTexture",!1);this.kZ=this.kZ.bind(this);this.nZ=this.nZ.bind(this);this.Ak=this.Xa=this.so=this.zc=null},Vi:function(){this.Wfa();this.JR();this.Q1a()},Wfa:function(){if(this.R("level")){var p=this.get("level");this.set("levelURL",p&&p.get("url"))}this.R("image","level","levelURL","projected","premultipliedAlpha")&&(this.Rpa(),this.Xa=this.get("image"),this.eb=this.get("level"),this.set("textureSource", 3099new d(this.Xa&&this.eb.get("url"))),this.set("premultipliedAlpha",this.Xa&&this.eb.get("premultipliedAlpha")),this.get("textureSource").r$a(this.get("premultipliedAlpha")),this.KNa(),this.Xa?(this.wNa(),this.zNa()):(this.trigger(l.hd),this.trigger(l.da)));this.R("textureSource","isVideoTexture")&&(p=this.get("textureSource"))&&p.wU(this.get("isVideoTexture"))},JR:function(){if(this.R("blending","chromaColor","chromaThreshold","chromaSmoothing","premultipliedAlpha","side")){var p=new h.jo;p.jB=this.get("blending"); 3100p.fu=this.get("chromaColor");p.wS=this.get("chromaThreshold");p.vS=this.get("chromaSmoothing");p.premultipliedAlpha=this.get("premultipliedAlpha");p.side=this.get("side");this.set("materialConfig",p)}},Q1a:function(){if(this.R("meshGroup","projected","visible")){var p=this.get("projected")&&this.get("visible")?k.f7:k.WM;g.hl(this.get("meshGroup")).forEach(function(r){e.NG(r,p)}.bind(this))}},tm:function(){this.R("visible","composedAlpha","image","state","visibleOnStop")&&this.set("inView",this.get("visible")&& 31010<this.get("composedAlpha")&&(this.get("visibleOnStop")||this.get("state")!=m.V));this.R("composedAlpha","meshGroup","inView")&&g.ff(this.get("meshGroup"),this.get("inView")?this.get("composedAlpha"):0);this.so&&this.so.Xe(this.get("inView"))},kZ:function(){this.Xa&&c.Ja("AnimatedImageResource",this.Xa)?this.set("visibleOnStop",this.Xa.get("visibleOnStop")):this.set("visibleOnStop",!0)},nZ:function(){this.set("levelURL",this.eb.get("url"))},eJ:function(){this.Rpa()},Rpa:function(){this.so&&(this.so.clear(), 3102this.so=null);this.zc&&(this.zc.unbind(l.ba,this.EO,this,!0),this.zc.unbind(l.ye,this.Ksa,this,!0),this.zc.clear(),this.zc=null);this.Ak&&(this.Ak.dispose(),this.Ak=null);this.get("textureSource")&&(this.aea(),this.set("textureSource",null));this.Xa&&(this.bYa(),this.Xa=null);this.eb&&(this.eYa(),this.eb=null)},wNa:function(){f.ea(this.Xa,["visibleOnStop"],this.kZ,!0)},bYa:function(){f.ca(this.Xa,["visibleOnStop"],this.kZ)},zNa:function(){f.ea(this.eb,["url"],this.nZ,!0)},eYa:function(){f.ca(this.eb, 3103["url"],this.nZ)},FO:function(){this.aea();var p=this.get("image");if(c.Ja("AnimatedImageResource",p)){this.zc=new q(this.get("textureSource").Af(),p.get("rowCount",1),p.get("colCount",1),p.get("frameDuration"),p.get("frameCount",p.get("rowCount",1)*p.get("colCount",1)),p.get("repeat"),"first"==p.get("finalFrame"));var r=this.zc.cg();this.zc.bind(l.ye,this.Ksa,this,!0);this.zc.bind(l.ba,this.EO,this,!0);this.so=new b(p,this.zc);this.set("visibleOnStop",p.get("visibleOnStop"));this.set("state",this.zc.getState())}else r= 3104this.get("textureSource").Af(),this.Ak=new n(r),this.set("visibleOnStop",!0),this.set("state",null);this.tm();this.set("contentWidth",r.width);this.set("contentHeight",r.height);this.get("textureSource").Nm(r);this.trigger(l.hd);this.trigger(l.da)},Lsa:function(){this.aea();this.trigger(l.hd);this.trigger(l.da)},Ksa:function(){this.set("state",this.zc.getState())},EO:function(){this.get("textureSource").update();this.Ga()},KNa:function(){var p=this.get("textureSource");p.bind(l.da,this.FO,this,!0); 3105p.bind(l.xc,this.Lsa,this,!0)},aea:function(){var p=this.get("textureSource");p.unbind(l.da,this.FO,this,!0);p.unbind(l.xc,this.Lsa,this,!0)},aaa:function(p){return this.Ak&&this.Ak.ni==p.source?this.Ak.info(p.x,p.y):n.info(p.source,p.x,p.y)}}}); 3106define("pt","require ld pw oj ol bh A".split(" "),function(a){function f(d){d=d.get("mapColor");return"image"==d||"transparent"==d||"any"==d}function l(d){d=d.get("mapColor");return"image"!=d&&"transparent"!=d&&"any"!=d}var m=a("ld"),k=a("pw"),c=a("oj"),h=a("ol"),g=a("bh"),b=new (a("A"));return{Kz:function(){this.set("beamEnabled",!1);this.jZ=this.jZ.bind(this);this.TX=null;this.TH={};this.Ai=[];this.Us=[];this.sw=null},u$a:function(d){this.sw!=d&&(this.Tda(),this.sw=d,this.Goa())},jp:function(d){this.NA= 3107d.Ra;this.MA=d.pitch},Tda:function(){this.sw&&m.ca(this.sw,["areas"],this.jZ)},Goa:function(){this.sw&&m.ea(this.sw,["areas"],this.jZ,!0)},GJ:function(){this.Tda();this.Goa()},IJ:function(){this.Txa([]);this.Tda()},jZ:function(){var d=this.sw.get("areas",[]);c.Ja("HotspotPanoramaOverlayImage",this.v)||c.Ja("FlatHotspotPanoramaOverlayImage",this.v)||c.Ja("QuadHotspotPanoramaOverlayImage",this.v)?this.TX=d.filter(f):this.TX=d.filter(l);
3107this.TX.forEach(function(e){b.set(e,0)})},Mm:function(d){if(d.tf== 3108k.Bl){var e=this.M$(d);if(0<e.length){d.fB(e);var n=this.jSa(e),q;for(q in n)d.ZAa(n[q],q);d.el(this.get("distance"));(n=this.$b(e,d.iG()))&&d.I1(n,this.XA(d.iG()))}e=this.kSa(d,e);this.Txa(e,d.zu(),d.iG())}else if(d.tf==k.Uf){if(e=this.M$(d),0<e.length){var p=!1;e.forEach(function(r){r.trigger(k.ma);!p&&1<r.jL(k.ma,!0).length&&(p=!0)});d.el(this.get("distance"));p&&d.ps(e)}}else d.tf==k.lz?(e=this.M$(d),0<e.length&&(p=!1,e.forEach(function(r){var t={};d.zu()&&(t=d.Gu().tDa());r.trigger(k.gb,t);!p&& 31091<r.jL(k.gb,!0).length&&(p=!0)}),this.Us=e,d.el(this.get("distance")),p&&d.ps(e))):d.tf==k.DH&&this.Us.length&&(this.Us.forEach(function(r){var t={};d.zu()&&(t=d.Gu().tDa());r.trigger(k.Eb,t)}),this.Us=[])},kSa:function(d,e){if(!d.Yia())return this.TH={},e;d=d.bta?"main":"secondary";this.TH[d]=e;e=[];for(d in this.TH)for(var n=0;n<this.TH[d].length;n++)0>e.indexOf(this.TH[d][n])&&e.push(this.TH[d][n]);return e},M$:function(d){if(!this.get("beamEnabled")||0==this.get("alpha")||d.fl())return[];var e= 3110this.mw(d.ir);return 0==e.length?[]:this.TX.filter(function(n){var q=n.get("mapColor");return"any"==q?!0:"image"==q?e.some(function(p){return this.aaa(p).Gy}.bind(this)):"transparent"==q?e.every(function(p){return!this.aaa(p).Gy}.bind(this)):q&&"#"==q[0]?e.some(function(p){return 10>h.K2(this.aaa(p).color,q)}.bind(this)):!1}.bind(this))},Txa:function(d,e,n){this.Ai.forEach(function(p){if(0>d.indexOf(p)){var r=b.get(p)-1;b.set(p,r);0==r&&(p.trigger(k.Jb,{center:n}),e&&p.trigger(k.Zp))}});var q=this.Ai; 3111this.Ai=d;this.Ai.forEach(function(p){if(0>q.indexOf(p)){var r=(b.get(p)||0)+1;b.set(p,r);1==r&&(p.trigger(k.Dc,{center:n}),e&&p.trigger(k.IC))}})},$b:function(d,e){for(var n="",q=d.length-1;0<=q&&""==n;q--){var p=d[q];if(!e||p.get("displayTooltipInTouchScreens")&&!1!==this.Ha.M.get("displayTooltipInTouchScreens"))n=p.get("toolTip","")}return n},XA:function(d){if(d){d=this.get("yaw")-this.NA;var e=this.get("pitch")-this.MA;return Math.sqrt(d*d+e*e)}return 0},jSa:function(d){var e={};!0===this.sw.get("useHandCursor")? 3112e[g.Je]=d:!1!==this.sw.get("useHandCursor")&&d.forEach(function(n){var q;(q=n.get("useHandCursor")?g.Je:n.get("cursor"))&&(e[q]?e[q].push(n):e[q]=[n])});return e}}}); 3113define("oi",["require","w","cM"],function(a){function f(){this.li=void 0;this.UI=this.HE=0;this.Ba=!0;this.OW=this.rfa=this.I$=void 0;this.Tb=!1}var l=a("w"),m=a("cM"),k=Math.PI/180,c=l.browser()==l.rh?[-.5,0]:[0,0];f.prototype.ZB=function(h){this.li!=h&&(this.li=h,this.Ba=!0)};f.prototype.YB=function(h){if(h<this.HE+c[0]||h>this.HE+c[1])this.HE=h,this.Ba=!0};f.prototype.get=function(h,g){void 0!==g||(g=!0);this.Ba&&(this.oa(),this.Ba=!1);var b=this.I$.get(h)||0;h=(this.rfa.get(h)||0)-b;g&&(180<h? 3114h-=360:-180>h&&(h+=360));return b+h*this.OW};f.prototype.uia=function(){this.Ba&&(this.oa(),this.Ba=!1);for(var h=this.I$.get("vertices"),g=this.rfa.get("vertices"),b=[],d=0;d<h.length;d++){var e=h[d].get("yaw")||0,n=(g[d].get("yaw")||0)-e;180<n?n-=360:-180>n&&(n+=360);var q=h[d].get("pitch")||0,p=(g[d].get("pitch")||0)-q;b.push(new m(e+n*this.OW,q+p*this.OW))}h=this.$O&&this.$O.length==b.length;for(d=0;d<b.length&&h;d++)h=this.$O[d].get("yaw")==b[d].get("yaw")||this.$O[d].get("pitch")==b[d].get("pitch"); 3115return h?this.$O:this.$O=b};f.prototype.il=function(){return this.get("opacity",!1)};f.prototype.$x=function(){var h=this.get("hfov")||this.get("vfov"),g=this.li[0].get("hfov")||this.li[0].get("vfov");return Math.tan(.5*h*k)/Math.tan(.5*g*k)};f.prototype.oa=function(){for(var h=this.UI,g,b=this.li.length-1,d,e;;){g=Math.min(h+1,b);d=this.xsa(h);e=this.xsa(g);if(d<=this.HE&&this.HE<=e)break;if(d>this.HE){if(0==h){g=h;break}--h}else{if(h==b){g=h;break}h+=1}}this.I$=this.li[h];this.rfa=this.li[g];h= 3116e-d;this.OW=0<h?(this.HE-d)/h:0};f.prototype.xsa=function(h){return this.li[h].get("timestamp")};return f}); 3117define("cp",["require","ld","oi"],function(a){var f=a("ld"),l=a("oi");return{wo:function(){this.set("playbackPositions",null);this.set("scaleMode",void 0);this.set("distance",void 0);this.ce=this.ce.bind(this);this.wb=new l},Po:function(){f.ea(this.v,"horizontalAlign verticalAlign scale scaleMode width height offsetX offsetY distance playbackPositions".split(" "),this.ce,!0)},Ro:function(){f.ca(this.v,"horizontalAlign verticalAlign scale scaleMode width height offsetX offsetY distance playbackPositions".split(" "), 3118this.ce)},ce:function(){this.set("horizontalAlign",this.v.get("horizontalAlign"));this.set("verticalAlign",this.v.get("verticalAlign"));this.set("scale",this.v.get("scale"));this.set("scaleMode",this.v.get("scaleMode"));this.set("width",this.v.get("width"));this.set("height",this.v.get("height"));this.set("offsetX",this.v.get("offsetX",.5*this.v.get("width")));this.set("offsetY",this.v.get("offsetY",.5*this.v.get("height")));this.set("distance",this.v.get("distance"));this.set("playbackPositions", 3119this.v.get("playbackPositions"))},wf:function(){this.R("playbackPositions","currentTime")&&(this.wb.ZB(this.get("playbackPositions")),this.wb.YB(this.get("currentTime")),this.set("yaw",this.wb.get("yaw")),this.set("pitch",this.wb.get("pitch")),this.set("roll",this.wb.get("roll")),this.set("alpha",this.wb.il()))}}}); 3120define("kn","require lQ ld pw eB c ps hs pt cp nT".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("eB"),c=a("c"),h=a("ps"),g=a("hs"),b=a("pt"),d=a("cp"),e=a("nT"),n=0;a=f.extend(c,h,d,g,b,function(q){c.call(this);this.set("tag","FlatHotspotImage");this.set("id","flat_hs_image_"+n++);this.v=q;this.Ik.push(this.v);this.ig=this.ig.bind(this)});a.prototype.Zb=function(){c.prototype.Zb.call(this);l.ea(this.v,["image.levels"],this.ig,!0)};a.prototype.ac=function(){l.ca(this.v,["image.levels"], 3121this.ig);c.prototype.ac.call(this)};a.prototype.ig=function(){this.set("image",this.v.get("image"));this.set("level",e.v5a(this.v))};a.prototype.oa=function(q){this.qF();c.prototype.oa.call(this,q);this.R("inView")&&this.v.trigger(this.get("inView")?m.jd:m.ad)};a.prototype.qF=function(){if(this.R("meshGroup","panoramaId","id")){var q=this.get("meshGroup");
3121q&&q.children.forEach(function(p){k.setAttribute(p,k.kC,this.get("panoramaId"));k.setAttribute(p,k.K5,this.get("id"))}.bind(this))}};return a}); 3122define("bF",["require","pw","V"],function(a){var f=a("pw"),l=a("V");a={Rfa:function(e){if(this.Ha){var n=this.OSa(e);n?(e=this.bsa(this).some(function(q){return n.intersectsObject(q)}),this.wea(e)):this.wea(!1)}},bsa:function(e){var n=e.get("meshGroup"),q=[];n&&n.traverse(function(p){p.geometry&&p.visible&&(Array.isArray(p.material)?p.material.some(function(r){return 0<r.opacity}):0<p.material.opacity)&&q.push(p)});e.ob().forEach(function(p){q=q.concat(this.bsa(p))}.bind(this));return q}};var m=new THREE.Frustum, 3123k=new THREE.PerspectiveCamera,c=90,h=.5,g=new THREE.Matrix4,b=Math.PI/180,d=180/Math.PI;a.OSa=function(e){e=l.getCamera(e.Eg);if(!e)return null;var n=this.Ha.M.get("focusAreaScale");if(!k.projectionMatrix.equals(e.projectionMatrix)||!k.matrixWorldInverse.equals(e.matrixWorldInverse)||c!=e.fov||h!=n){k.copy(e);var q=.5*k.fov*b;k.fov=2*Math.atan2(h*Math.sin(q),Math.cos(q))*d;k.updateProjectionMatrix();m.setFromProjectionMatrix(g.copy(k.projectionMatrix).multiply(k.matrixWorldInverse));c=e.fov;h=n}return m}; 3124a.z$=function(){this.jba=!1};a.A$=function(){this.wea(!1)};a.vea=function(e){this.rra=e};a.wea=function(e){this.jba!==e&&(this.jba=e,this.rra&&this.rra.trigger(this.jba?f.tLa:f.uLa))};return a}); 3125define("mN","require lQ ld pw jC bF oO w oY bL lR".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("jC"),c=a("bF"),h=a("oO");a("w");var g=a("oY"),b=a("bL"),d=a("lR");a=f.extend(k,c,function(e){k.call(this);this.v=e;this.Ik.push(this.v);this.GZ=this.GZ.bind(this);this.FZ=this.FZ.bind(this);this.HZ=this.HZ.bind(this);this.lq(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","Hotspot");this.set("over",!1);this.set("centerOver",!1);this.set("enabled",!0);this.set("visible", 3126!1);this.set("alpha",0);this.set("inVR",!1);this.set("overlaysEnabled",!0);this.set("enabledInVR",!0);this.set("enabledInStandard",!0);this.set("interactionEnabled",!0);this.set("centerOverDisplay",!1);this.set("rollOverDisplay",!1);this.set("loadingActive",!1);this.g8=this.h8=this.To=this.fe=this.Lf=null;this.Ai=[];this.f8=[];this.wm=null;this.vea(this.v)});a.prototype.Zb=function(){this.Lf=(new h(m.da)).Qm(this.qE.bind(this));this.fe=(new h(m.kc)).yp(this.tE.bind(this));this.To=(new h(m.hd)).Qm(this.bWa.bind(this)); 3127this.h8=(new h(m.Dc)).yp(this.VVa.bind(this));this.g8=(new h(m.Jb)).yp(this.UVa.bind(this));k.prototype.Zb.call(this);l.ea(this.v,["items","rollOverItems","maps","rollOverMaps"],this.GZ,!0);l.ea(this.v,"fadeInDuration fadeOutDuration enabledInVR enabledInStandard enabledInSurfaceSelection enabled interactionEnabled centerOverDisplay rollOverDisplay".split(" "),this.HZ,!0);l.ea(this.v,["areas"],this.FZ,!0);this.z$()};a.prototype.ac=function(){this.A$();this.qK([],this.Ai);this.Lfa([],this.f8);this.Lf.dispose(); 3128this.fe.dispose();this.To.dispose();this.h8.dispose();this.g8.dispose();l.ca(this.v,["items","rollOverItems","maps","rollOverMaps"],this.GZ);l.ca(this.v,"fadeInDuration fadeOutDuration enabledInVR enabledInStandard enabledInSurfaceSelection enabled interactionEnabled centerOverDisplay rollOverDisplay".split(" "),this.HZ);l.ca(this.v,["areas"],this.FZ);this.get("visible")&&this.v.trigger(m.ad);k.prototype.ac.call(this)};a.prototype.GZ=function(){this.set("items",this.Ha.Zx(this.v.get("items",[]))); 3129this.set("rollOverItems",this.Ha.Zx(this.v.get("rollOverItems",[])));this.set("maps",this.Ha.Zx(this.v.get("maps",[])));this.set("rollOverMaps",this.Ha.Zx(this.v.get("rollOverMaps",[])));var e=[].concat(this.get("maps"),this.get("items"),this.get("rollOverMaps"),this.get("rollOverItems"));e.forEach(function(n){n.u$a(this.v)}.bind(this));this.get("items").forEach(function(n){n.set("projected",this.v.get("projected"))}.bind(this));this.ph(e);this.Lf.Gf(e);this.fe.Gf(e);this.To.Gf(e)};a.prototype.HZ= 3130function(){this.set("fadeInDuration",this.v.get("fadeInDuration"));this.set("fadeOutDuration",this.v.get("fadeOutDuration"));this.set("enabled",this.v.get("enabled",!0));this.set("enabledInVR",this.v.get("enabledInVR"));this.set("enabledInStandard",this.v.get("enabledInStandard",!0));this.set("enabledInSurfaceSelection",this.v.get("enabledInSurfaceSelection",!0));this.set("centerOverDisplay",this.v.get("centerOverDisplay"));this.set("rollOverDisplay",this.v.get("rollOverDisplay",!1));this.set("interactionEnabled", 3131this.v.get("interactionEnabled",!0))};a.prototype.FZ=function(){var e=this.v.get("areas");this.h8.Gf(e);this.g8.Gf(e)};a.prototype.oa=function(e){this.tm(e);k.prototype.oa.call(this,e);this.he(e);this.Rfa(e)};a.prototype.he=function(e){this.set("inVR",e.rb);
3131this.set("surfaceSelection",e.PU);this.set("hotspotsEnabled",e.dG);if(this.R("items","rollOverItems","maps","rollOverMaps","over","centerOver","inVR","hotspotsEnabled","enabledInVR","enabledInStandard","surfaceSelection","enabledInSurfaceSelection", 3132"enabled","interactionEnabled","rollOverDisplay","centerOverDisplay")||this.ta&&this.ta.R("composedAlpha")){var n=e=!1,q=this.get("hotspotsEnabled")&&this.get("enabled")&&(!this.get("inVR")||this.get("enabledInVR"))&&(this.get("inVR")||this.get("enabledInStandard"))&&(!this.get("surfaceSelection")||this.get("enabledInSurfaceSelection"))&&this.ta&&0<this.ta.get("composedAlpha"),p=this.get("interactionEnabled");q&&(e=this.get("centerOver")&&!this.get("inVR"),n=this.get("over")||e,e=!this.get("rollOverDisplay")&& 3133!this.get("centerOverDisplay")||this.get("over")&&this.get("rollOverDisplay")||e&&!1!==this.get("centerOverDisplay")&&this.get("rollOverDisplay"));this.get("rollOverItems").forEach(function(w){w.set("visible",n);w.set("beamEnabled",q&&n&&p)});var r=0==this.get("rollOverItems").length;this.get("items").forEach(function(w){w.set("visible",r||!n);w.set("beamEnabled",q&&(r||!n)&&p)});this.get("rollOverMaps").forEach(function(w){w.set("visible",!1);w.set("beamEnabled",q&&n&&p)});var t=0==this.get("rollOverMaps").length; 3134this.get("maps").forEach(function(w){w.set("visible",!1);w.set("beamEnabled",q&&(t||!n)&&p)});this.set("visible",e)}if(this.R("visible")){e=this.get("alpha");var u=this.get("visible")?1:0,v=(this.get("visible")?this.get("fadeInDuration"):this.get("fadeOutDuration"))*Math.abs(e-u);this.wm=new g("linear",[new b("alpha",e,u)],Math.max(v,1));this.Ga();this.get("visible")?this.v.trigger(m.jd):this.v.trigger(m.ad)}};a.prototype.tm=function(e){this.wm&&(this.wm.Ve()?this.wm=null:(this.wm.Fb(e.Se),this.set("alpha", 3135this.wm.cb("alpha"))),this.Ga())};a.prototype.qE=function(){this.yj();this.trigger(m.da)};a.prototype.bWa=function(){this.yj();this.trigger(m.hd)};a.prototype.tE=function(){this.yj()};a.prototype.yj=function(){var e=0;this.fe.ku(function(n){var q=0,p;this.Lf.Em(n)?q=100:(p=this.fe.Em(n))&&(q=p.Tg);e+=q}.bind(this));this.trigger(new d(m.kc,e/this.fe.ld.length))};a.prototype.VVa=function(e){e.data.center?this.Lfa([e.source],[]):this.qK([e.source],[])};a.prototype.UVa=function(e){e.data.center?this.Lfa([], 3136[e.source]):this.qK([],[e.source])};a.prototype.qK=function(e,n){this.Kza(this.Ai,e,n);this.set("over",0<this.Ai.length)};a.prototype.Lfa=function(e,n){this.Kza(this.f8,e,n);this.set("centerOver",0<this.f8.length)};a.prototype.Kza=function(e,n,q){n||(n=[]);q||(q=[]);q.forEach(function(p){p=e.indexOf(p);0<=p&&e.splice(p,1)});n.forEach(function(p){0>e.indexOf(p)&&e.push(p)})};return a}); 3137define("pI",["require","ld","oi"],function(a){var f=a("ld"),l=a("oi");return{wo:function(){this.set("playbackPositions",null);this.set("scaleMode",void 0);this.set("distance",void 0);this.ce=this.ce.bind(this);this.wb=new l},Po:function(){f.ea(this.v,"horizontalAlign verticalAlign scale scaleMode distance playbackPositions".split(" "),this.ce,!0)},Ro:function(){f.ca(this.v,"horizontalAlign verticalAlign scale scaleMode distance playbackPositions".split(" "),this.ce)},ce:function(){this.set("horizontalAlign", 3138this.v.get("horizontalAlign"));this.set("verticalAlign",this.v.get("verticalAlign"));this.set("scaleMode",this.v.get("scaleMode"));this.set("distance",this.v.get("distance"));this.set("scale",this.v.get("scale"));this.set("playbackPositions",this.v.get("playbackPositions"))},wf:function(){this.R("playbackPositions","currentTime")&&(this.wb.ZB(this.get("playbackPositions")),this.wb.YB(this.get("currentTime")),this.set("yaw",this.wb.get("yaw")),this.set("pitch",this.wb.get("pitch")),this.set("roll", 3139this.wb.get("roll")),this.set("rotationX",this.wb.get("rotationX")),this.set("rotationY",this.wb.get("rotationY")),this.set("hfov",this.wb.get("hfov")),this.set("vfov",this.wb.get("vfov")),this.set("alpha",this.wb.il()))}}}); 3140define("ch","require lQ ld pw eB c oI hs pt pI nT".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("eB"),c=a("c"),h=a("oI"),g=a("hs"),b=a("pt"),d=a("pI"),e=a("nT"),n=0;a=f.extend(c,h,g,b,d,function(q){c.call(this);this.set("tag","HotspotImage");this.set("id","hs_image_"+n++);this.set("side",THREE.DoubleSide);this.set("wasInView",!1);this.v=q;this.Ik.push(this.v);this.ig=this.ig.bind(this)});a.prototype.Zb=function(){c.prototype.Zb.call(this);l.ea(this.v,["image.levels"],this.ig,!0)}; 3141a.prototype.ac=function(){l.ca(this.v,["image.levels"],this.ig);c.prototype.ac.call(this)};a.prototype.ig=function(){this.set("image",this.v.get("image"));this.set("level",e.D5a(this.v,this.get("panoramaPixelsPerDegree")))};a.prototype.oa=function(q){this.qF();c.prototype.oa.call(this,q);this.R("inView")&&(q=this.get("inView"),q!==this.get("wasInView")&&(this.set("wasInView",q),this.v.trigger(q?m.jd:m.ad)))};a.prototype.qF=function(){if(this.R("meshGroup","panoramaId","id")){var q=this.get("meshGroup");
3142q&&q.children.forEach(function(p){k.setAttribute(p,k.kC,this.get("panoramaId"));k.setAttribute(p,k.K5,this.get("id"))}.bind(this))}};return a}); 3143define("bz",["require","fq","a"],function(a){function f(k,c,h){this.eg=k||new l(0,0,0);this.Ej=c||new l(1,0,0);this.KB=h||new l(0,1,0)}var l=a("fq"),m=a("a");f.prototype.clone=function(){return new f(this.eg.clone(),this.Ej.clone(),this.KB.clone())};f.prototype.apply=function(k){k.MK(this.eg);k.MK(this.Ej);k.MK(this.KB)};f.prototype.intersection=function(k,c){var h=m.oB(k.eg,k.Ej),g=m.oB(this.eg,k.eg),b=m.oB(this.eg,this.Ej);b.Z1(m.oB(this.eg,this.KB));h=h.OF(b);if(!(0==h||c&&0>h))return c=-b.OF(g)/ 3144h,new l(k.eg.x+(k.Ej.x-k.eg.x)*c,k.eg.y+(k.Ej.y-k.eg.y)*c,k.eg.z+(k.Ej.z-k.eg.z)*c)};f.prototype.x4=function(k,c){var h=m.oB(this.eg,this.Ej),g=m.oB(this.eg,this.KB);k=m.oB(this.eg,k);var b=h.sia(),d=g.sia();return c?new l(k.OF(h)/(b*b),k.OF(g)/(d*d),0):new l(k.OF(h)/b,k.OF(g)/d,0)};return f}); 3145define("fH","require lv iE dt fq bz fB mI".split(" "),function(a){var f=a("lv"),l=a("iE"),m=a("dt"),k=a("fq"),c=a("bz"),h=a("fB"),g=a("mI"),b=Math.PI/180,d=180/Math.PI,e=new h,n=new l,q=new c,p=new k;return{get:function(r,t,u,v,w,x,y,z){r*=b;t*=b;t=new k(Math.sin(-r)*Math.cos(t),Math.sin(t),Math.cos(-r)*Math.cos(t));e.identity();e.rotateY(u*b);e.rotateZ(w*b);e.rotateX(v*b);t.apply(e);return 0<t.z?(n.JU(y),n.jIa(z),n.MG(x*b),n.project(t),t):null},tcb:function(r,t,u){e.identity();e.rotateX(-u.Kc()* 3146b);e.rotateZ(-u.dg()*b);e.rotateY(-u.Lc()*b);p.set(r,t,0);r=u.unproject(p).JDa();r.apply(e);return{Ra:r.Lc()*d,pitch:r.Kc()*d}},jeb:function(r,t,u,v,w,x,y,z,B,E,I,A,C,J){J||(J=g.$y);C||(C=f.Cm(A,E,I));A||(A=f.Kp(C,E,I));var D=.5*E/Math.tan(.5*A*b),O=D*Math.tan(.5*A*b)*2,R=D*Math.tan(.5*C*b)*2;q.eg.set(.5*+O,.5*+R,0);q.Ej.set(.5*-O,.5*+R,0);q.KB.set(.5*+O,.5*-R,0);e.identity();e.rotateZ(-B*b);e.rotateX(-y*b);e.rotateY(z*b);e.translate(0,0,D);e.rotateZ(-x*b);e.rotateX(-w*b);e.rotateY(-v*b);e.rotateY(u.Lc()* 3147b);e.rotateZ(u.dg()*b);e.rotateX(u.Kc()*b);q.apply(e);p.set(r,t,0);w=q.intersection(u.unproject(p));v={x:void 0,y:void 0,xScaled:void 0,yScaled:void 0};w&&0<w.z&&(w=q.x4(w),v.xScaled=v.x=w.x/O,v.yScaled=v.y=w.y/R);if(J!=g.$y){switch(J){case g.Sh:var U=Math.min(f.Kp(C,E,I),A);var V=Math.min(f.Cm(A,E,I),C);break;case g.As:U=Math.max(f.Kp(C,E,I),A);V=Math.max(f.Cm(A,E,I),C);break;case g.Vp:U=A;V=f.Cm(A,E,I);break;case g.vk:U=f.Kp(C,E,I),V=C}if(U!=A||V!=C)O=D*Math.tan(.5*U*b)*2,R=D*Math.tan(.5*V*b)*2, 3148q.eg.set(.5*+O,.5*+R,0),q.Ej.set(.5*-O,.5*+R,0),q.KB.set(.5*+O,.5*-R,0),q.apply(e),p.set(r,t,0),(w=q.intersection(u.unproject(p)))&&0<w.z&&(w=q.x4(w),v.xScaled=w.x/O,v.yScaled=w.y/R)}return v},Ldb:function(r,t,u,v,w,x,y){y=.5*w/Math.tan(.5*y*b);q.eg.set(.5*+w,.5*+x,y);q.Ej.set(.5*-w,.5*+x,y);q.KB.set(.5*+w,.5*-x,y);e.identity();e.rotateZ(-v*b);e.rotateX(-u*b);e.rotateY(-t*b);e.rotateY(r.Lc()*b);e.rotateZ(r.dg()*b);e.rotateX(r.Kc()*b);q.apply(e);r=new m(new k(0,0,0),new k(0,0,1));return(r=q.intersection(r))&& 31490<r.z?(r=q.x4(r),{x:r.x/w,y:r.y/x}):null}}}); 3150define("ej",["require","iw","jH","eB","kU"],function(a){var f=a("iw"),l=a("jH"),m=a("eB"),k=a("kU"),c=Math.PI/180;return{Vv: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.$g=this.Jz();this.MD=l.UK();this.kn=new THREE.Matrix4;this.eI=new THREE.Matrix4;this.$J=new THREE.Matrix4;this.kua=new THREE.Matrix4;this.vj=new THREE.Matrix4;this.lm=new THREE.Matrix4; 3151this.Hi=new THREE.Matrix4},Ex:function(h){this.yr(h)},II:function(){var h=this.get("meshGroup");return h?m.hl(h)[0]:null},vo:function(){return[0].map(function(h){var g=this.NN();h=m.create(this.$g[h],g);k.By(h,k.Xp);k.Cy(h,k.Fs);k.NG(h,f.WM);k.HU(h,1);return h}.bind(this))},Jz:function(){return[l.UK()]},yr:function(h){var g=!1,b=!1;this.set("rendererYaw",h.Ra);this.set("rendererPitch",h.pitch);this.set("rendererRoll",h.Dg);this.set("rendererCameraFOV",h.ti);this.set("rendererWidth",h.width);this.set("rendererHeight", 3152h.height);this.set("inVR",h.rb);if(this.R("distance","composedTranslationX","composedTranslationY","composedTranslationZ")){var d=0==this.get("composedTranslationX")&&0==this.get("composedTranslationY")&&0==this.get("composedTranslationZ")&&void 0!==this.get("distance");this.set("z",d?l.pu(this.get("distance")):l.Rr())}this.R("z")&&(this.kn.makeTranslation(0,0,-this.get("z")),b=!0);h.ti&&this.R("z","rendererCameraFOV")&&this.set("rendererHeightZ",Math.tan(h.ti*c*.5)*this.get("z")*2);h.camera&&this.R("rendererYaw", 3153"rendererPitch","rendererRoll","rendererCameraFOV","rendererWidth","rendererHeight","rendererHeightZ","inVR","centerX","centerY")&&(this.eI.copy(h.camera.matrixWorld),g=this.get("rendererHeightZ"),d=g*h.camera.aspect,d=(this.get("centerX")-.5*h.width)*d/h.width*.5,g=(.5*h.height-this.get("centerY"))*g/h.height*.5,this.$J.makeTranslation(d,g,0),g=!0);this.R("roll")&&(this.vj.makeRotationZ(this.get("roll")*c),g=!0);h.ti&&(b||this.R("rendererHeight","inVR","rendererHeightZ","width","height","flipHorizontally"))&& 3154(b=h.rb?512/h.height:1,h=(this.get("flipHorizontally")?-1:1)*this.get("width")*b,b*=this.get("height"),this.lm.makeScale(h,b,1),g=!0);this.R("width","height","offsetX","offsetY")&&(h=.5-this.get("offsetX")/this.get("width"),b=this.get("offsetY")/this.get("height")-.5,this.kua.makeTranslation(h,b,0),g=!0);g&&(this.Hi.copy(this.eI),this.Hi.multiply(this.kn),this.Hi.multiply(this.$J),this.Hi.multiply(this.vj),this.Hi.multiply(this.lm),this.Hi.multiply(this.kua),m.Jr(this.get("meshGroup"),this.Hi))}}}); 3155define("kr",["require","lQ","c","ej"],function(a){var f=a("lQ"),l=a("c");a=a("ej");return f.extend(l,a,function(){l.call(this);this.set("tag","Sprite")})}); 3156define("hd",["require","ol"],function(a){function f(m,k,c,h,g,b){this.$o=k;this.T=document.createElement("canvas");this.T.width=this.$o;this.T.height=this.$o;switch(m){case f.LM:this.oRa(c,h,g,b);break;case f.AV:this.pRa(c,h,g,b)}}var l=a("ol");f.prototype.De=function(){return this.$o};f.prototype.Te=function(){return this.$o};f.prototype.cg=function(){return this.T};f.prototype.oRa=function(m,k,c,h){var g=.5*this.$o,b=.5*this.$o,d=.5*this.$o,e=this.T.getContext("2d");k=l.ds(k);for(var n=e.createRadialGradient(g, 3157b,0,g,b,d),q=0;q<c.length;q++)n.addColorStop(h[q],"rgba("+k[0]+","+k[1]+","+k[2]+","+c[q]+")");e.fillStyle=n;e.globalAlpha=m;e.beginPath();e.arc(g,b,d,0,2*Math.PI,!0);e.closePath();e.fill()};f.prototype.pRa=function(m,k,c,h){var g=.5*this.$o,b=.5*this.$o,d=.5*this.$o,e=this.T.getContext("2d");e.clearRect(0,0,this.$o,this.$o);var n=l.ds(k),q=e.createRadialGradient(g,b,0,g,b,d);for(k=0;k<c.length;k++)q.addColorStop(h[k],"rgba("+n[0]+","+n[1]+","+n[2]+","+c[k]+")");e.fillStyle=q;e.globalAlpha=m;e.beginPath(); 3158for(k=0;6>k;k++)c=45*Math.PI/180+2*Math.PI*k/6,m=g+Math.cos(c)*d,c=b+Math.sin(c)*d,0==k?e.moveTo(m,c):e.lineTo(m,c);e.closePath();e.fill()};f.LM="circle";f.AV="hexagon";return f}); 3159define("nV","require lQ ld pw fH jC du kr hd fr".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("fH"),c=a("jC"),h=a("du"),g=a("kr"),b=a("hd"),d=a("fr");a=f.extend(c,function(n){c.call(this);this.v=n;this.Ik.push(this.v);this.ig=this.ig.bind(this);this.set("tag","LensFlare");this.set("translationAlpha",0);this.k8=this.WPa();this.Qf=this.RQa();this.ph(this.k8.concat([this.Qf]))});a.prototype.Zb=function(){c.prototype.Zb.call(this);this.trigger(m.hd);this.trigger(m.da);l.ea(this.v,["yaw", 3160"pitch","bleaching","bleachingDistance"],this.ig,!0)};a.prototype.ac=function(){l.ca(this.v,["yaw","pitch","bleaching","bleachingDistance"],this.ig);c.prototype.ac.call(this)};a.prototype.ig=function(){this.set("yaw",this.v.get("yaw"));this.set("pitch",this.v.get("pitch"));this.set("bleaching",this.v.get("bleaching"));this.set("bleachingDistance",this.v.get("bleachingDistance"))};a.prototype.oa=function(n){c.prototype.oa.call(this,n);this.set("rendererYaw",n.Ra);this.set("rendererPitch",n.pitch); 3161this.set("rendererRoll",n.Dg);this.set("rendererCameraFOV",n.ti);this.set("rendererWidth",n.width);this.set("rendererHeight",n.height);this.set("inVR",n.rb);
3161if(this.R("composedTranslationX","composedTranslationY","composedTranslationZ")){var q=this.get("composedTranslationX"),p=this.get("composedTranslationY"),r=this.get("composedTranslationZ");this.set("translationAlpha",Math.max(0,1-10*Math.sqrt(q*q+p*p+r*r)))}if(this.R("rendererYaw","rendererPitch","rendererRoll","rendererCameraFOV","rendererWidth", 3162"rendererHeight","inVR","yaw","pitch","translationAlpha","composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")){var t=n.Ra+this.get("composedDeltaYaw"),u=n.pitch+this.get("composedDeltaPitch"),v=n.Dg+this.get("composedDeltaRoll");q=this.get("translationAlpha");r=p=0;if(!n.rb&&(t=k.get(this.get("yaw"),this.get("pitch"),t,u,v,n.ti,n.width,n.height))){var w=.5*n.width;var x=.5*n.height;var y=t.x;var z=t.y;w=2*(w-y);x=2*(x-z);r=Math.sqrt(w*w+x*x);t=Math.min(n.width,n.height);p=Math.max(0,Math.min(.7, 31631-r/Math.sqrt(n.width*n.width,n.height*n.height)))*q;n=this.get("bleaching");r=1-Math.max(0,Math.min(1,r/(t*this.get("bleachingDistance"))));r=n*r*q}for(n=0;n<this.k8.length;n++)q=this.k8[n],q.set("alpha",p),0<p&&(q.set("centerX",y+w*e[n].position),q.set("centerY",z+x*e[n].position));this.Qf.set("alpha",r)}};a.prototype.WPa=function(){return e.map(function(n){var q=(new b(n.form,n.$G,n.opacity,n.color,n.$F,n.aG)).cg(),p=new d;p.Nm(q);q=new g;q.set("textureSource",p);q.set("width",n.size);q.set("height", 3164n.size);q.set("offsetX",.5*n.size);q.set("offsetY",.5*n.size);q.set("alpha",0);return q})};a.prototype.RQa=function(){return new h("#ffffff")};var e=[{form:b.AV,position:.1,size:52,$G:128,opacity:.8,color:"#FCFCFC",$F:[1,.5],aG:[0,.866]},{form:b.AV,position:.2,size:52,$G:128,opacity:.6,color:"#C8FCC8",$F:[1,.5],aG:[0,.866]},{form:b.LM,position:.36,size:112,$G:128,opacity:.5,color:"#C8C8FC",$F:[1,.9,.6,0],aG:[0,.2,.4,1]},{form:b.LM,position:.47,size:32,$G:128,opacity:.3,color:"#96C8AF",$F:[1,1,0], 3165aG:[0,.9,1]},{form:b.LM,position:.65,size:52,$G:128,opacity:.7,color:"#FCFCFC",$F:[.7,.7,.2,0],aG:[0,.1,.4,1]},{form:b.AV,position:.88,size:128,$G:128,opacity:.4,color:"#AF96C8",$F:[1,.5],aG:[0,.866]},{form:b.LM,position:1,size:33,$G:128,opacity:.8,color:"#C89696",$F:[.8,.8,.6,0],aG:[0,.2,.4,1]}];return a}); 3166define("bD","require lQ ld pw jZ jb fr oY bL oQ".split(" "),function(a){function f(q,p,r){q=(p-q)*(1-r);1E-5>Math.abs(q)&&(q=0);return p-q}var l=a("lQ"),m=a("ld"),k=a("pw"),c=a("jZ"),h=a("jb"),g=a("fr"),b=a("oY"),d=a("bL"),e=a("oQ");a=l.extend(c,function(q){c.call(this);this.Lb=q;this.Rq=this.Rq.bind(this);this.Oo=this.T=null;this.xx=this.Pn=this.Fda=this.bx=void 0;this.Fpa=20;this.qg=null;this.Mb=this.Lb.get("opacity",.5);this.hQ=this.Lb.get("rollOverOpacity",this.Mb);this.xVa=1;this.BVa=.66;this.set("tag", 3167"MenuButton");this.set("visible",!1);this.set("over",!1);this.set("centerDistance",void 0)});a.prototype.Zb=function(){c.prototype.Zb.call(this);m.ea(this.Lb,["label"],this.Rq,!0)};a.prototype.ac=function(){m.ca(this.Lb,["label"],this.Rq);c.prototype.ac.call(this)};a.prototype.Rq=function(){this.T=null};a.prototype.oa=function(q){this.wr(q);this.wg(q);this.oF(q);this.wf(q);this.he(q);c.prototype.oa.call(this,q)};a.prototype.wr=function(q){q.rb&&!this.Oo&&e.getType()==e.wv.xl&&this.ph([this.Oo=new c])}; 3168a.prototype.wg=function(){this.get("visible")&&(this.T||(this.get("textureSource")||this.set("textureSource",new g),this.T=new h(this.Lb,[this.Lb]),this.get("textureSource").Nm(this.T.cg()),this.set("contentWidth",this.T.De()),this.set("contentHeight",this.T.Te()),this.set("hfov",this.T.Ce()),this.set("distance",this.Lb.get("distance"))),this.T.update()&&(this.get("textureSource").update(),this.Ga()),this.R("over")&&this.T.XB(this.get("over")?0:-1))};a.prototype.oF=function(q){this.R("visible")&& 3169(this.qg=new b("linear",[new d("displayCoef",this.get("visible")?0:1,this.get("visible")?1:0,void 0)],300));this.qg&&(this.qg.Ve()?this.qg=null:this.qg.Fb(q.Se))};a.prototype.wf=function(q){if(this.get("visible")||this.qg){this.Pn=q.Ra;this.xx=Math.min(90,Math.max(-90,this.Fpa+this.Fpa-q.pitch));if(this.R("visible")&&this.get("visible"))this.set("yaw",q.Ra),this.set("pitch",q.pitch);else{for(;this.Pn+180<this.bx;)this.bx-=360;for(;this.Pn-180>this.bx;)this.bx+=360;var p=(this.Pn-this.bx)/q.Se,r=(this.xx-
3170this.Fda)/q.Se,t=Math.atan2(r,p);r=Math.sqrt(r*r+p*p);r=Math.min(r,10*n);p=Math.cos(t)*r;t=Math.sin(t)*r;this.set("yaw",f(this.get("yaw"),this.Pn+p,.02));this.set("pitch",f(this.get("pitch"),this.xx+t,.02))}this.bx=this.Pn;this.Fda=this.xx;t=this.get("yaw")-q.Ra;q=this.get("pitch")-q.pitch;this.set("centerDistance",Math.sqrt(t*t+q*q))}};a.prototype.he=function(){if(!this.get("visible")&&!this.qg)this.set("alpha",0);else if(this.R("over","centerDistance")||this.qg){var q=this.get("over")?this.hQ:this.Mb, 3171p=this.BVa,r=this.get("centerDistance")/this.get("hfov");1>r&&(p+=(1-r)*(this.xVa-p),q+=(1-r)*(this.hQ-q));this.qg&&(q*=this.qg.cb("displayCoef"),p*=this.qg.cb("displayCoef"));this.set("alpha",q);this.set("scale",p)}};a.prototype.Mm=function(q){if(q.tf==k.Bl){var p=!1;this.get("visible")&&!q.fl()&&(p=0<this.mw(q.ir).length);p&&(q.fB(this.Lb),q.AF(this.Lb),q.el(this.get("distance")));this.get("over")!=p&&(this.get("over")&&this.Lb.trigger(k.Jb),this.set("over",p),this.get("over")&&this.Lb.trigger(k.Dc))}else q.tf== 3172k.Uf&&this.get("visible")&&!q.fl()&&0<this.mw(q.ir).length&&(q.ps(this.Lb),this.Lb.trigger(k.ma),this.trigger(k.ma))};var n=Math.PI/180;return a}); 3173define("kd","require lQ ld pw jZ jb fr oY bL oQ".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("jZ"),c=a("jb"),h=a("fr"),g=a("oY"),b=a("bL"),d=a("oQ");a=f.extend(k,function(e,n){k.call(this);this.Lb=e;this.rA=n;this.Rq=this.Rq.bind(this);this.T=null;this.Fda=this.bx=void 0;this.qg=null;this.Mb=this.Lb.get("opacity",.5);this.hQ=this.Lb.get("rollOverOpacity",this.Mb);this.set("textureSource",new h);this.set("tag","MenuPanel");this.set("overIndex",-1);this.set("selectedIndex",-1);this.Fqa= 3174!1});a.prototype.Zb=function(){k.prototype.Zb.call(this);l.ea(this.Lb,["label"],this.Rq,!0);this.rA.forEach(function(e){l.ea(e,["label"],this.Rq,!0)}.bind(this))};a.prototype.ac=function(){l.ca(this.Lb,["label"],this.Rq);this.rA.forEach(function(e){l.ca(e,["label"],this.Rq)}.bind(this));k.prototype.ac.call(this)};a.prototype.Rq=function(){this.T=null};a.prototype.oa=function(e){this.wr(e);this.wg(e);this.oF(e);this.wf(e);k.prototype.oa.call(this,e)};a.prototype.fQa=function(){this.T||(this.T=new c(this.Lb, 3175this.rA),this.get("textureSource").Nm(this.T.cg()),this.set("contentWidth",this.T.De()),this.set("contentHeight",this.T.Te()),this.set("hfov",this.T.Ce()),this.set("distance",this.Lb.get("distance")))};a.prototype.wg=function(){this.T||this.fQa();this.R("selectedIndex")&&this.T.XB(this.get("selectedIndex"));this.R("overIndex")&&this.T.XB(this.get("overIndex"));this.T.update()&&(this.get("textureSource").update(),this.Ga())};a.prototype.wr=function(e){e.rb&&!this.Oo&&d.getType()==d.wv.xl&&this.ph([this.Oo= 3176new k])};a.prototype.oF=function(e){this.qg||this.Fqa||(this.qg=new g("linear",[new b("alpha",0,1,void 0),new b("scale",0,1,void 0),new b("yaw",e.Ra,this.get("yaw"),void 0),new b("pitch",e.pitch,this.get("pitch"),void 0)],300));this.qg&&(this.qg.Ve()?(this.Fqa=!0,this.qg=null):this.qg.Fb(e.Se))};a.prototype.wf=function(){if(this.qg){var e=0>this.get("overIndex")?this.Mb:this.hQ;this.set("alpha",e*this.qg.cb("alpha"));this.set("scale",this.qg.cb("scale"));this.set("yaw",this.qg.cb("yaw"));this.set("pitch", 3177this.qg.cb("pitch"))}else this.R("overIndex")&&(e=0>this.get("overIndex")?this.Mb:this.hQ,this.set("alpha",e))};a.prototype.Mm=function(e){if(e.tf==m.Bl){var n=-1;if(!e.fl()){var q=this.mw(e.ir).filter(function(p){return p.source==this.T.cg()}.bind(this));0<q.length&&(n=this.T.qia(q[0].x,q[0].y))}0<=n&&(e.fB(this.rA[n]),e.AF(this.rA[n]),e.el(this.get("distance")));0<=this.get("overIndex")!=0<=n&&(0<n?this.trigger(m.Dc):this.trigger(m.Jb));this.get("overIndex")!=n&&(0<=this.get("overIndex")&&this.rA[this.get("overIndex")].trigger(m.Jb), 3178this.set("overIndex",n),0<=this.get("overIndex")&&this.rA[this.get("overIndex")].trigger(m.Dc))}else e.tf!=m.Uf||e.fl()||(q=this.mw(e.ir).filter(function(p){return p.source==this.T.cg()}.bind(this)),0<q.length&&(n=this.T.qia(q[0].x,q[0].y),0<=n&&(q=this.rA[n],this.set("selectedIndex",n),e.ps(q),e.el(this.get("distance")),q.trigger(m.ma),this.trigger(m.ma,{item:q}))))};return a}); 3179define("iV",["require","lQ","pw","jC","kd"],function(a){var f=a("lQ"),l=a("pw"),m=a("jC"),k=a("kd");a=f.extend(m,function(g){m.call(this);this.Lb=g;this.EA=[];this.zJ=null;this.set("tag","MenuPanels");this.set("visible",!1)});a.prototype.oa=function(g){this.R("visible")&&this.get("visible")&&(this.set("yaw",g.Ra),this.set("pitch",g.pitch),this.Moa(this.Lb));m.prototype.oa.call(this,g)};
3179a.prototype.Moa=function(g){g=new k(this.Lb,g.get("children",[]));var b=this.get("yaw");this.ob().forEach(function(d){b+= 3180d.get("hfov")+h});g.set("yaw",b);g.set("pitch",this.get("pitch"));this.FNa(g);this.appendChild(g)};a.prototype.nxa=function(g){this.ob().slice(g).forEach(function(b){this.jYa(b);b.remove()}.bind(this));this.EA=this.EA.filter(function(b){return 0<=this.ob().indexOf(b)}.bind(this))};a.prototype.FNa=function(g){g.bind(l.Dc,this.Bwa,this,!0);g.bind(l.Jb,this.Awa,this,!0);g.bind(l.ma,this.zwa,this,!0)};a.prototype.jYa=function(g){g.unbind(l.Dc,this.Bwa,this,!0);g.unbind(l.Jb,this.Awa,this,!0);g.unbind(l.ma, 3181this.zwa,this,!0)};a.prototype.Bwa=function(g){0>this.EA.indexOf(g.source)&&(this.EA.push(g.source),1==this.EA.length&&this.Tpa())};a.prototype.Awa=function(g){g=this.EA.indexOf(g.source);0<=g&&(this.EA.splice(g,1),0==this.EA.length&&this.JZa())};a.prototype.zwa=function(g){var b=g.source;g=g.data.item;g.get("children",[]).length?(this.nxa(this.ob().indexOf(b)+1),this.Moa(g)):this.Xpa()};a.prototype.Xpa=function(){this.set("visible",!1);this.nxa(0);this.Tpa();this.trigger(l.oH)};a.prototype.Tpa=function(){this.zJ&& 3182(clearTimeout(this.zJ),this.zJ=null)};a.prototype.JZa=function(){this.zJ||(this.zJ=setTimeout(function(){this.zJ=null;this.Xpa()}.bind(this),c))};var c=3E3,h=1;return a}); 3183define("gw","require lQ pw jC bD iV".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("jC"),k=a("bD"),c=a("iV");a=f.extend(m,function(h){m.call(this);this.v=h;this.Ik.push(this.v);this.set("tag","Menu");this.set("visible",!1);this.Ad=new k(this.v);this.Ad.bind(l.ma,this.MOa,this,!1);this.ji=new c(this.v);this.ji.bind(l.oH,this.mXa,this,!1);this.ph([this.Ad,this.ji])});a.prototype.Zb=function(){m.prototype.Zb.call(this);this.trigger(l.hd);this.trigger(l.da)};a.prototype.oa=function(h){this.set("visible", 3184h.rb);this.R("visible")&&(this.Ad.set("visible",this.get("visible")),this.ji.set("visible",!1));m.prototype.oa.call(this,h)};a.prototype.MOa=function(){this.Ad.set("visible",!1);this.ji.set("visible",!0)};a.prototype.mXa=function(){this.Ad.set("visible",this.get("visible"))};return a}); 3185define("po","require lQ pw jZ fr oO lR".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("jZ"),k=a("fr"),c=a("oO"),h=a("lR");a=f.extend(m,function(){m.call(this);this.set("tag","CustomPlane");this.set("source",null);this.set("sourceUpdated",!1);this.set("sourceIsVideo",!1);this.fe=this.bh=null});a.prototype.Zb=function(){this.bh=(new c(l.da)).Qm(this.Qq.bind(this));this.fe=(new c(l.da)).yp(this.Vw.bind(this));m.prototype.Zb.call(this)};a.prototype.ac=function(){this.bh.dispose();this.fe.dispose(); 3186m.prototype.ac.call(this)};a.prototype.oa=function(g){if(this.R("source","sourceUpdated","sourceIsVideo")){var b=this.get("textureSource");b||this.set("textureSource",b=new k);this.R("source")&&b.Nm(this.get("source"));this.R("sourceIsVideo")&&b.wU(this.get("sourceIsVideo"));this.R("sourceUpdated")&&(b.update(),this.set("sourceUpdated",!1))}m.prototype.oa.call(this,g);this.R("meshGroup")&&(g=(g=this.get("meshGroup"))&&g.children||[],g.length&&(this.bh.Gf(g),this.fe.Gf(g)))};a.prototype.Qq=function(){this.trigger(l.hd); 3187this.trigger(l.da)};a.prototype.Vw=function(g,b){var d=0;b.ku(function(e){(e=b.Em(e))&&(d+=e.Tg)});this.trigger(new h(l.kc,d/b.ld.length))};return a}); 3188define("hz","require lQ ld pw jH jC po mq dt bz".split(" "),function(a){function f(p,r,t){this.Ef=p;this.Ef.bind(k.F("distanceToFloor"),this.oa,this,!1);this.gk=r;this.gk.bind(k.F("yaw"),this.oa,this,!1);this.gk.bind(k.F("distance"),this.oa,this,!1);this.gk.bind(k.F("enabled"),this.oa,this,!1);this.gk.bind(k.F("enabledInSurfaceSelection"),this.oa,this,!1);this.fb=null;this.We=new g;this.We.set("hfov",20);this.We.set("vfov",20);this.We.set("pitch",-90);this.We.set("source",t.cg());this.We.set("contentWidth", 3189t.De());this.We.set("contentHeight",t.Te());this.oa()}var l=a("lQ"),m=a("ld"),k=a("pw"),c=a("jH"),h=a("jC"),g=a("po"),b=a("mq"),d=a("dt"),e=a("bz");a=l.extend(h,function(p){h.call(this);this.hZ=this.hZ.bind(this);this.qt=this.qt.bind(this);this.eZ=this.eZ.bind(this);this.set("tag","SurfaceSelector");this.set("reticleVisible",!1);this.set("enabled",!1);this.ya=p;this.cW=[];this.kO=new e;this.ek=new d;this.te=new g;this.te.set("hfov",20);this.te.set("vfov",20);this.te.set("pitch",-90);this.set("reticleCoef", 31901);this.ph([this.te])});a.prototype.Zb=function(){this.DQa();h.prototype.Zb.call(this);m.ea(this.ya,["distanceToFloor"],this.hZ,!0);m.ea(this.ya,["adjacentPanoramas"],this.qt,!0);m.ea(this.Ha.Wc,["adjacentPanoramaPositionsEnabled"],this.eZ,!0);this.trigger(k.hd);this.trigger(k.da)};a.prototype.ac=function(){h.prototype.ac.call(this);m.ca(this.ya,["distanceToFloor"],this.hZ);m.ca(this.ya,["adjacentPanoramas"],this.qt);m.ca(this.Ha.Wc,["adjacentPanoramaPositionsEnabled"],this.eZ);this.Sxa([])};a.prototype.hZ= 3191function(){var p=this.ya.get("distanceToFloor");this.te.set("distance",p);p=c.pu(p);var r=c.wia(p,90),t=c.xia(p,90);this.kO.eg.set(.5*-r,-p,.5*-t);this.kO.Ej.set(.5*r,-p,.5*-t);this.kO.KB.set(.5*-r,-p,.5*t);this.wxa=p/c.Rr()};a.prototype.qt=function(){this.Sxa(this.ya.get("adjacentPanoramas",[]))};a.prototype.eZ=function(){this.qt()};a.prototype.Sxa=function(p){this.cW.forEach(function(r){r.clear()});this.cW=p.map(function(r){return new f(this.ya,r,this.xda)}.bind(this));p=[];this.Ha.Wc.get("adjacentPanoramaPositionsEnabled")&& 3192(p=p.concat(this.cW.map(function(r){return r.We})));p=p.concat([this.te]);this.ph(p)};a.prototype.oa=function(p){h.prototype.oa.call(this,p);this.set("enabled",p.PU);this.rga();this.dB(p)};a.prototype.rga=function(){this.R("enabled","reticleVisible","composedTranslationX","composedTranslationY","composedTranslationZ","composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.te.set("alpha",this.get("reticleVisible")?1:0),this.set("alpha",!this.get("enabled")||this.get("composedTranslationX")|| 3193this.get("composedTranslationY")||this.get("composedTranslationZ")||this.get("composedDeltaYaw")||this.get("composedDeltaPitch")||this.get("composedDeltaRoll")?0:1),this.Pza())};a.prototype.DQa=function(){this.TJ=new b(this.Ha.M);this.TJ.setPosition(this.get("reticleCoef"));this.te.set("source",this.TJ.cg());this.te.set("contentWidth",this.TJ.De());this.te.set("contentHeight",this.TJ.Te());this.xda=new b(this.Ha.M);this.xda.setPosition(0);this.xda.update(1)};a.prototype.dB=function(p){this.R("reticleCoef")&& 3194this.TJ.setPosition(this.get("reticleCoef"));this.te.set("sourceUpdated",this.TJ.update(p.Se))};a.prototype.Mm=function(p){if(p.bta)if(!this.get("enabled")||0==p.ir.length||p.fl()||p.wi())this.set("reticleVisible",!1);else{var r=p.ir[0];this.ek.eg.set(r.origin.x,r.origin.y,r.origin.z);this.ek.Ej.set(r.origin.x+r.direction.x,r.origin.y+r.direction.y,r.origin.z+r.direction.z);
3194if(r=this.kO.intersection(this.ek,!0)){var t=this.kO.x4(r,!0),u=2*(.5-t.x);t=2*(.5-t.y);var v=n*Math.atan2(-u,t),w=-90+n*Math.atan2(Math.sqrt(u* 3195u+t*t),1);if(-75>w||-1<w)this.set("reticleVisible",!1);else{var x={x:u*this.wxa,y:-t*this.wxa};p.zu()||p.Yia()?p.tf==k.Bl&&(this.set("reticleVisible",!0),this.te.set("alpha",Math.min(1,(w- -75)/5)),this.te.set("translationX",x.x),this.te.set("translationZ",x.y)):this.set("reticleVisible",!1);var y=.5*this.Ha.Wc.get("surfaceSelectionHorizontalAngle"),z=.5*this.Ha.Wc.get("surfaceSelectionVerticalAngle");t=this.cW.map(function(B){return{gk:B.gk,sT:B.C5a(v),vertical:B.f6a(w),distance:B.K2(x)}}).filter(function(B){return B.sT< 3196y&&B.vertical<z});0==t.length?this.set("reticleCoef",0):(t.sort(function(B,E){return B.distance-E.distance}),u=t[0].gk,this.set("reticleCoef",Math.max(0,Math.min(1,(1-t[0].sT/y)*(1-t[0].vertical/z)))),r=this.ya.get("distanceToFloor")*Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z)/-r.y,p.Yia()&&p.R2a([u]),p.el(r),p.tf==k.Uf?(p.ps([u]),this.get("blendingActive")||u.trigger(k.gq)):(p.fB([u]),p.zu()&&p.AF([u]),(r=this.Ha.M.get("displayTooltipInSurfaceSelection")&&u.get("panorama")&&u.get("panorama").get("label"))&& 3197p.I1(r,0)))}}else this.set("reticleVisible",!1)}};f.prototype.clear=function(){this.Ef.unbind(k.F("distanceToFloor"),this.oa,this,!1);this.Ef=null;this.gk.unbind(k.F("yaw"),this.oa,this,!1);this.gk.unbind(k.F("distance"),this.oa,this,!1);this.gk.unbind(k.F("enabled"),this.oa,this,!1);this.gk.unbind(k.F("enabledInSurfaceSelection"),this.oa,this,!1);this.gk=null};f.prototype.C5a=function(p){if(!this.fb)return Infinity;p=Math.abs(this.fb.Ra-p);return 180<p?360-p:p};f.prototype.f6a=function(p){return this.fb? 3198Math.abs(this.fb.pitch-p):Infinity};f.prototype.K2=function(p){if(!this.nK)return Infinity;var r=p.x-this.nK.x;p=p.y-this.nK.y;return Math.sqrt(r*r+p*p)};f.prototype.oa=function(){var p=this.gk.get("yaw"),r=this.gk.get("distance"),t=this.gk.get("enabled")&&this.gk.get("enabledInSurfaceSelection");if(void 0!==p&&void 0!==r&&t){t=this.Ef.get("distanceToFloor");var u=-90+Math.atan2(r,t)*n;this.We.set("alpha",-1>u?1:0);this.fb={Ra:p,pitch:u};u=c.pu(t)/c.Rr();this.nK={x:-Math.sin(p*q)*r/t*u,y:-Math.cos(p* 3199q)*r/t*u};this.We.set("translationX",this.nK.x);this.We.set("translationZ",this.nK.y);this.We.set("distance",t)}else this.nK=this.fb=null,this.We.set("alpha",0)};var n=180/Math.PI,q=Math.PI/180;return a}); 3200define("X","require lQ ld pw lR jC jZ hz oO nT jV oQ".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("lR"),c=a("jC"),h=a("jZ"),g=a("hz"),b=a("oO"),d=a("nT"),e=a("jV"),n=a("oQ"),q=0;a=f.extend(c,function(t){c.call(this);this.v=t;this.Ik.push(this.v);this.sE=this.sE.bind(this);this.hg=this.hg.bind(this);this.qt=this.qt.bind(this);this.lq(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","Panorama");this.set("loadingActive",!1);this.set("blendingActive",!0);this.set("currentTime", 32010);this.set("adjacentPanoramas",[]);this.set("preloadEnabled",!0);this.set("backgroundPreloadEnabled",!0);this.set("surfaceSelectionEnabled",!1);this.set("id","panorama_"+q++);this.set("ready",!1);this.t_=[];this.To=this.fe=this.Lf=null;this.ei=new p;this.Vwa=new r;this.Y_a=new g(this.v);this.No=new r;this.ph([this.ei,this.Vwa,this.Y_a,this.No])});a.prototype.Zb=function(){this.Lf=(new b(m.da)).Qm(this.Qq.bind(this));this.fe=(new b(m.kc)).yp(this.uE.bind(this));this.To=(new b(m.hd)).Qm(this.fWa.bind(this)); 3202c.prototype.Zb.call(this);this.get("blendingActive")&&this.Ha.set("globalBlendingActive",this.Ha.get("globalBlendingActive")+1);l.ea(this.v,["currentTime"],this.sE,!0);l.ea(this.v,["frames","overlays","vrMenu","flipImageHorizontally"],this.hg,!0);l.ea(this.v,["adjacentPanoramas"],this.qt,!0)};a.prototype.ac=function(){this.Lf.dispose();this.fe.dispose();this.To.dispose();this.get("blendingActive")&&this.Ha.set("globalBlendingActive",this.Ha.get("globalBlendingActive")-1);c.prototype.ac.call(this); 3203l.ca(this.v,["currentTime"],this.sE);l.ca(this.v,["frames","overlays","vrMenu","flipImageHorizontally"],this.hg);l.ca(this.v,["adjacentPanoramas"],this.qt);this.bfa()};a.prototype.hg=function(){function t(B,E,I){B=y.indexOf(B);return 0>
3203B?I:w[B].get(E,I)}function u(B){return t(B,"projected",!1)}var v=this.Ha.Zx(this.v.get("frames"));v.forEach(function(B){B.set("panoramaId",this.get("id"));B.set("flipHorizontally",this.v.get("flipImageHorizontally"))}.bind(this));var w=this.v.get("overlays"),x=this.Ha.Zx(w), 3204y=x.slice(),z=x.filter(function(B){return t(B,"projected",!1)||t(B,"required",!1)}).filter(function(B){return t(B,"enabled",!0)});this.v.get("vrMenu")&&x.push(this.Ha.Zx(this.v.get("vrMenu")));x.forEach(function(B){B.set("panoramaId",this.get("id"))}.bind(this));this.Lf.Gf(v.concat(x));this.fe.Gf(v.concat(x));this.To.Gf(v.concat(z));this.Vwa.ph(x.filter(u));this.ei.ph(v);this.No.ph(x.filter(function(B){return!u(B)}));this.set("panoramaPixelsPerDegree",d.rDa(this.v));this.Xza()};a.prototype.sE=function(){this.set("currentTime", 3205this.v.get("currentTime",0))};a.prototype.qt=function(){this.set("adjacentPanoramas",this.v.get("adjacentPanoramas",[]))};a.prototype.Qq=function(){this.yj();this.trigger(m.da)};a.prototype.fWa=function(){this.yj();this.set("ready",!0);this.trigger(m.hd)};a.prototype.uE=function(){this.yj()};a.prototype.yj=function(){var t=0;this.fe.ku(function(u){var v=0,w;this.Lf.Em(u)?v=100:(w=this.fe.Em(u))&&(v=w.Tg);t+=v}.bind(this));this.trigger(new k(m.kc,t/this.fe.ld.length))};a.prototype.oa=function(t){t.rb&& 3206!this.Oo&&n.getType()==n.wv.xl&&this.ph([this.Oo=new h].concat(this.ob()));var u=this.get("blendingActive");this.set("blendingActive",1>this.get("alpha"));u!=this.get("blendingActive")&&this.Ha.set("globalBlendingActive",this.Ha.get("globalBlendingActive")+(this.get("blendingActive")?1:-1));this.set("backgroundPreloadEnabled",!1!==this.Ha.pp().get("backgroundPreloadEnabled"));this.set("preloadEnabled",t.aU);this.R("adjacentPanoramas","loadingActive","preloadEnabled","backgroundPreloadEnabled")&&(this.get("loadingActive")&& 3207this.get("backgroundPreloadEnabled")?this.E_a():this.bfa());this.R("index")&&this.Xza();c.prototype.oa.call(this,t)};a.prototype.Mia=function(){return d.Mia(this.v,this.get("preloadEnabled"))};a.prototype.bka=function(){return d.bka(this.v,this.get("preloadEnabled"))};a.prototype.E_a=function(){this.bfa();this.t_=this.get("adjacentPanoramas").map(function(t){t=t.get("panorama");return[t,d.Vn(t,this.get("preloadEnabled"))]}.bind(this));this.t_.forEach(function(t){e.$Aa(t[0],t[1]);e.I3(t[0],1)})};a.prototype.bfa= 3208function(){this.t_.forEach(function(t){e.I3(t[0],-1);e.u9a(t[0],t[1])});this.t_=[]};a.prototype.Xza=function(){var t=this.get("index");this.ei.ob().forEach(function(u,v,w){u.set("panoramaIndex",t);u.set("frameIndex",v);u.set("frameCount",w.length)})};var p=f.extend(c,function(){c.call(this);this.lq(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("loadingActive",!1);this.set("currentTime",0);this.set("tag","Group")});p.prototype.oa=function(t){this.ob().forEach(function(u,v,w){u.set("frontFrame", 3209w[w.length-1])});c.prototype.oa.call(this,t)};var r=f.extend(c,function(){c.call(this);this.lq(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("loadingActive",!1);this.set("currentTime",0);this.set("tag","Group")});return a}); 3210define("jR",["require","lQ","fQ","eB"],function(a){var f=a("lQ"),l=a("fQ"),m=a("eB"),k=0;a=f.extend(l,function(){l.call(this);this.set("tag","PanoramaFrame");this.set("panoramaIndex",0);this.set("frameIndex",0);this.set("frameCount",1);this.set("id","frame_"+k++)});a.prototype.oa=function(c){l.prototype.oa.call(this,c);this.qF()};a.prototype.uF=function(){if(this.R("panoramaIndex","frameIndex","frameCount","meshGroup")){var c=this.get("meshGroup");if(c){var h=this.get("panoramaIndex"),g=this.get("frameIndex"), 3211b=this.get("frameCount"),d=c.children.length;c.children.forEach(function(e,n){m.X4(e,h+(n+g/b)/d)}.bind(this))}}};a.prototype.qF=function(){if(this.R("meshGroup","panoramaId","id")){var c=this.get("meshGroup");c&&c.children.forEach(function(h,g){m.setAttribute(h,m.kC,this.get("panoramaId"));m.setAttribute(h,m.J5,g);m.setAttribute(h,m.iH,this.get("id"))}.bind(this))}};return a}); 3212define("oC","require lQ ld pw iw jC jR oO nT fM kU lR".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("iw"),c=a("jC"),h=a("jR"),g=a("oO"),b=a("nT"),d=a("fM"),e=a("kU"),n=a("lR");a=f.extend(h,function(p){h.call(this);this.set("tag","ImagePanoramaFrame");this.Mwa=!0;this.v=p;this.Ik.push(this.v);this.Uk=this.bh=this.To=null;this.Oba=[];this.hg=this.hg.bind(this);this.lq(["loadingActive","currentTime","panoramaId","panoramaPixelsPerDegree"]);this.ph([this.No=new q])});a.prototype.Zb=function(){this.To= 3213new g(m.da);this.bh=new g(m.da);this.Uk=new g(m.kc);h.prototype.Zb.call(this);l.ea(this.v,["overlays"],this.hg,!0)};a.prototype.ac=function(){this.To.dispose();this.bh.dispose();this.Uk.dispose();l.ca(this.v,["overlays"],this.hg);h.prototype.ac.call(this)};a.prototype.hg=function(){this.No.ph(this.Ha.Zx(this.v.get("overlays")));this.Hza()};a.prototype.Hza=function(){this.bh.Gf([].concat(this.Oba,this.No.ob()));this.Uk.Gf([].concat(this.Oba,this.No.ob()))};a.prototype.vo=function(){var p=[],r=[],t= 3214[];
3214b.ria(this.v,this.Mwa).forEach(function(u,v){var w=d.a4a(this.v,u);b.o7a(u)?(0==v&&(p=p.concat(w),r=r.concat(w)),e.Cy(w,0==v?e.Fs:e.BV),e.By(w,0==v?e.Xp:e.T6)):(0==v&&(p=p.concat(w)),r=r.concat(w),e.Cy(w,e.Fs),e.By(w,e.Xp));e.NG(w,0==v?k.f7:k.yl);e.HU(w,v);t=t.concat(w)}.bind(this));this.To.Gf(p);this.Oba=r;this.Hza();this.bh.Qm(this.Qq.bind(this));this.To.Qm(this.KWa.bind(this));this.Uk.yp(this.uE.bind(this));this.trigger(new n(m.kc,0));return t};a.prototype.KWa=function(){this.trigger(m.hd)}; 3215a.prototype.Qq=function(){this.trigger(m.da)};a.prototype.oa=function(p){this.Mwa=p.aU;this.I1a();h.prototype.oa.call(this,p)};a.prototype.I1a=function(){var p=this.get("frontFrame");if(this.R("frontFrame")||p&&p.R("alpha"))p=p&&p!=this?1-p.get("alpha"):1,this.No.set("alpha",p)};a.prototype.uE=function(){var p=0;this.Uk.ku(function(r){var t=0,u;this.bh.Em(r)?t=100:(u=this.Uk.Em(r))&&(t=u.Tg);p+=t}.bind(this));this.trigger(new n(m.kc,p/this.Uk.ld.length))};var q=f.extend(c,function(){c.call(this); 3216this.lq(["loadingActive","panoramaId","panoramaPixelsPerDegree"]);this.set("loadingActive",!1);this.set("tag","Group")});return a}); 3217define("gU","require lQ pw jZ nu oO lR".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("jZ"),k=a("nu"),c=a("oO"),h=a("lR");a=f.extend(m,function(){m.call(this);this.set("tag","ImagePlane");this.set("url",null);this.fe=this.Lf=null});a.prototype.Zb=function(){this.Lf=(new c(l.da)).Qm(this.Qq.bind(this));this.fe=(new c(l.kc)).yp(this.Vw.bind(this));m.prototype.Zb.call(this)};a.prototype.ac=function(){this.Lf.dispose();this.fe.dispose();m.prototype.ac.call(this)};a.prototype.oa=function(g){if(this.R("url")){var b= 3218this.get("url");b=b?new k(b):null;this.set("textureSource",b)}m.prototype.oa.call(this,g);this.R("meshGroup")&&(g=(g=this.get("meshGroup"))&&g.children||[],g.length&&(this.Lf.Gf(g),this.fe.Gf(g)))};a.prototype.Qq=function(){this.trigger(l.hd);this.trigger(l.da)};a.prototype.Vw=function(g,b){var d=0;b.ku(function(e){(e=b.Em(e))&&(d+=e.Tg)});this.trigger(new h(l.kc,d/b.ld.length))};return a}); 3219define("mV","require es pw cI lt oR".split(" "),function(a){function f(b,d){this.Fd=b;this.ga=d;this.Sk=!1;this.kj=[];this.hn=this.pI=void 0;this.Le=[];this.HOa();this.n9();this.z0();this.Mi()}function l(b,d,e){this.time=b;this.cue=d;this.action=e}var m=a("es"),k=a("pw"),c=a("cI"),h=a("lt"),g=a("oR");f.prototype.clear=function(){this.DN();this.kj=[];this.U0a();this.ga=this.Fd=null};f.prototype.HOa=function(){this.ga.bind(g.Tf,this.kf,this,!0);this.ga.bind(k.ye,this.Mi,this,!0);this.ga.bind(k.Gb,this.CA, 3220this,!0)};f.prototype.U0a=function(){this.ga.unbind(g.Tf,this.kf,this,!0);this.ga.unbind(k.ye,this.Mi,this,!0);this.ga.unbind(k.Gb,this.CA,this,!0)};f.prototype.Mi=function(){var b=this.ga.getState()!=h.V;this.Sk!=b&&((this.Sk=b)?this.z0():this.DN())};f.prototype.CA=function(){this.xF()};f.prototype.kf=function(){this.xF()};f.prototype.z0=function(){this.hn=this.pI=0};f.prototype.xF=function(){if(this.ga&&this.Sk){var b=this.Le.slice(),d=this.ga.getCurrentTime(),e=d-this.pI;0>e&&(this.Le=[],this.hn= 32210);e=0<=e&&2>e;this.pI=d;var n;for(n=this.hn;n<this.kj.length&&!(this.kj[n].time>d);n++);for(;this.hn<n;this.hn++)d=this.kj[this.hn],"start"==d.action?(this.Le=m(this.Le).union([d.cue]),e&&d.cue.trigger(new c(k.Lp))):(this.Le=m(this.Le).difference([d.cue]),e&&d.cue.trigger(new c(k.Gb)));b.length==this.Le.length&&m(b).intersection(this.Le).length==this.Le.length||this.HR()}};f.prototype.DN=function(){0<this.Le.length&&(this.Le=[],this.HR())};f.prototype.HR=function(){this.Fd.trigger(new c(k.sk,{activeCues:this.Le.slice()}))}; 3222f.prototype.n9=function(){this.kj=[];var b=this.Fd.get("cues",[]);m(b).each(function(d){this.kj.push(new l(d.get("startTime",0),d,"start"));this.kj.push(new l(d.get("endTime",Number.POSITIVE_INFINITY),d,"end"))},this);this.kj.sort(function(d,e){return d.time==e.time?d.action==e.start?0:"start"==d.action?-1:1:d.time-e.time})};return f}); 3223define("mp",["require","pw","lt","cI","oR"],function(a){function f(h,g,b){this.Vd=h;this.Fd=g;this.ga=b;this.ga.setCurrentTime(this.Jf=this.Fd.get("currentTime",0));this.ga.Sf(this.af=this.Vd.get("mute",!1));this.ga.Vc(this.C=this.Fd.get("state",m.V));this.ga.setLoop(this.Hk=this.Fd.get("loop"));this.Xb=this.ga.ui();this.GNa();this.NNa();this.Dv()}var l=a("pw"),m=a("lt"),k=a("cI"),c=a("oR");f.prototype.clear=function(){this.kYa();this.qYa();this.jx();this.ga.Vc(m.V);this.Fd.set("state",m.V);this.Fd.set("currentTime", 32240);this.Fd.set("duration",void 0)};f.prototype.owa=function(){var h=this.Fd.get("state",m.V);
3224this.C!=h&&this.ga.Vc(this.C=h)};f.prototype.mwa=function(){var h=this.Fd.get("currentTime",0);this.Jf!=h&&this.ga.setCurrentTime(this.Jf=h)};f.prototype.YP=function(){var h=this.Vd.get("mute",0);this.af!=h&&this.ga.Sf(this.af=h)};f.prototype.nwa=function(){var h=this.Fd.get("loop");this.Hk!=h&&this.ga.setLoop(this.Hk=h)};f.prototype.eQ=function(){this.Fd.set("currentTime",this.Jf=this.ga.getCurrentTime())}; 3225f.prototype.cQ=function(){this.Fd.set("duration",this.Xb=this.ga.ui())};f.prototype.dQ=function(){this.Fd.set("state",this.C=this.ga.getState())};f.prototype.fQ=function(){this.Fd.trigger(new k(l.Gb))};f.prototype.GNa=function(){this.Vd.bind(l.F("mute"),this.YP,this,!0)};f.prototype.kYa=function(){this.Vd.unbind(l.F("mute"),this.YP,this,!0)};f.prototype.NNa=function(){this.Fd.bind(l.F("state"),this.owa,this,!0);this.Fd.bind(l.F("currentTime"),this.mwa,this,!0);this.Fd.bind(l.F("loop"),this.nwa,this, 3226!0)};f.prototype.qYa=function(){this.Fd.unbind(l.F("state"),this.owa,this,!0);this.Fd.unbind(l.F("currentTime"),this.mwa,this,!0);this.Fd.unbind(l.F("loop"),this.nwa,this,!0)};f.prototype.Dv=function(){this.ga.bind(c.Tf,this.eQ,this,!0);this.ga.bind(c.dj,this.cQ,this,!0);this.ga.bind(l.ye,this.dQ,this,!0);this.ga.bind(l.Gb,this.fQ,this,!0)};f.prototype.jx=function(){this.ga.unbind(c.Tf,this.eQ,this,!0);this.ga.unbind(c.dj,this.cQ,this,!0);this.ga.unbind(l.ye,this.dQ,this,!0);this.ga.unbind(l.Gb,this.fQ, 3227this,!0)};return f}); 3228define("dX","require lQ pw iw lt gU jR oO fM mV mp cg eB kU w kM oR lR cl oY bL".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("iw"),k=a("lt"),c=a("gU"),h=a("jR"),g=a("oO"),b=a("fM"),d=a("mV"),e=a("mp"),n=a("cg"),q=a("eB"),p=a("kU"),r=a("w"),t=a("kM"),u=a("oR"),v=a("lR"),w=a("cl"),x=a("oY"),y=a("bL");a=f.extend(h,function(A){h.call(this);this.v=A;this.Ik.push(this.v);this.lq(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","VideoPanoramaFrame");this.set("frameEmpty",void 0); 3229this.set("hasStableContent",void 0);this.tX=void 0;this.set("atStart",void 0);n.get(this.v)==n.Yp?this.Hga=this.v.get("sphere"):this.Hga=this.v.get("stereoSphere");this.Sk=!1;this.eb=u.kk(this.Hga);this.lda=this.Eqa=!1;this.BK=[];this.JE=[];this.Hn=this.Rk=this.Uk=this.bh=this.jh=this.ga=null;this.im=!1;this.rta=this.kA=this.lA=0});a.prototype.Zb=function(){this.bh=(new g(l.da)).Qm(this.Qq.bind(this));this.Uk=(new g(l.kc)).yp(this.uE.bind(this));this.ga=new u(this.Ha.pp(),this.Hga);this.yq=new d(this.v.sB(), 3230this.ga);this.Ma=new e(this.Ha.pp(),this.v.sB(),this.ga);this.pm=new t(this.v.sB(),this.ga);this.Dv();this.IQa();this.Eqa=this.Ha.Wc.get("displayPlayOverlay");this.lda="play_pause"==this.Ha.Wc.get("clickAction");var A=this.Ha.Bf(this.v.sB());A.appendChild(this.Rk);A.appendChild(this.Hn);h.prototype.Zb.call(this)};a.prototype.ac=function(){this.bh.dispose();this.Uk.dispose();this.jx();this.yq.clear();this.yq=null;this.Ma.clear();this.Ma=null;this.pm.clear();this.pm=null;this.ga.clear();this.jh=this.ga= 3231null;this.Mqa();h.prototype.ac.call(this)};a.prototype.IQa=function(){this.Mqa();this.Rk=this.qqa(w.kz,w.g7,w.mMa);this.Hn=this.qqa(w.CH,w.iMa,w.hMa)};a.prototype.qqa=function(A,C,J){var D=new c;D.set("url",A);D.set("contentWidth",C);D.set("contentHeight",J);D.set("hfov",10);D.set("yaw",0);D.set("pitch",0);D.set("alpha",0);return D};a.prototype.Mqa=function(){this.Rk&&(this.Rk.remove(),this.Rk=null);this.Hn&&(this.Hn.remove(),this.Hn=null)};a.prototype.vo=function(){this.BK=b.n4a(this.v,this.eb); 3232this.s2a=p.aH(q.rB(this.BK[0])[0]);this.BK.forEach(function(C){p.Cy(C,p.Fs);p.By(C,p.Xp)});this.eb.get("posterURL")?(this.JE=b.o4a(this.v,this.eb),this.JE.forEach(function(C){p.Cy(C,p.Fs);p.By(C,p.Xp);p.NG(C,m.f7)})):this.JE=[];var A=[].concat(this.BK,this.JE);this.bh.Gf(A);this.Uk.Gf(A);this.trigger(new v(l.kc,0));return A};a.prototype.oa=function(A){this.L1a(A);var C=this.ga.J2();this.set("frameEmpty",C.isEmpty());this.set("atStart",!(1<this.get("currentTime")));this.Ufa();h.prototype.oa.call(this, 3233A);this.jh&&this.jh.isEqual(C)?this.ga.getState()==k.PLAYING&&this.Ga():(this.jh=C,this.s2a.Nm(this.jh.ct),this.Ga())};a.prototype.Ufa=function(){this.get("frameEmpty")?this.set("hasStableContent",!1):this.get("currentTime")>this.tX+.2?this.set("hasStableContent",!0):0==this.get("currentTime")&&this.Gba>this.ga.ui()-.5?this.set("hasStableContent",!0):this.set("hasStableContent",!1);this.R("frameEmpty")&&!this.get("frameEmpty")&&(this.tX=this.get("currentTime"));!this.get("frameEmpty")&&0<this.get("currentTime")&& 3234(this.Gba=this.get("currentTime"))};
3234a.prototype.tm=function(){this.R("composedAlpha","meshGroup","frameEmpty","hasStableContent","atStart")&&(this.JE.length&&!this.get("hasStableContent")&&this.get("atStart")?(this.JE.forEach(function(A){q.ff(A,this.get("composedAlpha"))}.bind(this)),this.BK.forEach(function(A){q.ff(A,0)}.bind(this))):(this.JE.forEach(function(A){q.ff(A,0)}.bind(this)),this.BK.forEach(function(A){q.ff(A,this.get("composedAlpha"))}.bind(this))))};a.prototype.Qq=function(){this.trigger(l.hd); 3235this.trigger(l.da)};a.prototype.uE=function(A,C){var J=0;C.ku(function(D){(D=C.Em(D))&&(J+=D.Tg)});this.trigger(new v(l.kc,J/C.ld.length))};a.prototype.Mi=function(){this.Ga()};a.prototype.kf=function(){this.Ga()};a.prototype.Mm=function(A){if(A.tf==l.Uf&&!A.fl()&&this.lda&&(A.ps(this.v),A=Date.now(),!(500>A-this.rta))){this.rta=A;A=this.v.sB();var C=A.get("state");C==k.PLAYING?A.set("state",k.Qb):C==k.Qb&&A.set("state",k.PLAYING)}};a.prototype.L1a=function(A){if(this.lda){if(this.im!=(this.ga.getState()== 3236k.Qb))if(this.im=!this.im,this.Eqa){var C=this.Rk.get("alpha"),J=this.im?1:0;this.Zw=new x("linear",[new y("playAlpha",C,J),new y("playScale",A.rb?1.5:1,A.rb?1.5:1),new y("pauseAlpha",0,0),new y("pauseScale",1,1)],Math.abs(J-C)*z);this.Rk.Ih()}else this.Zw=new x("linear",this.im?[new y("playAlpha",0,0),new y("playScale",1,1),new y("pauseAlpha",0,2),new y("pauseScale",.5,1.5)]:[new y("playAlpha",0,2),new y("playScale",.5,1.5),new y("pauseAlpha",0,0),new y("pauseScale",1,1)],B),this.Rk.Ih(),this.Hn.Ih(); 3237this.Zw&&(this.Zw.Fb(A.Se),C=this.Zw.cb("playAlpha"),this.Rk.set("alpha",1>C?C:2-C),this.Rk.set("scale",this.Zw.cb("playScale")),C=this.Zw.cb("pauseAlpha"),this.Hn.set("alpha",1>C?C:2-C),this.Hn.set("scale",this.Zw.cb("pauseScale")),this.Ga(),this.Zw.Ve()&&(this.Zw=null));0<this.Rk.get("alpha")&&(this.get("globalBlendingActive")&&this.Rk.set("alpha",0),this.Rk.set("yaw",A.Ra),this.Rk.set("pitch",A.pitch),this.Rk.set("hfov",this.qsa(A)));0<this.Hn.get("alpha")&&(this.get("globalBlendingActive")&&this.Hn.set("alpha", 32380),this.Hn.set("yaw",A.Ra),this.Hn.set("pitch",A.pitch),this.Hn.set("hfov",this.qsa(A)))}};var z=300,B=600;a.prototype.qsa=function(A){return A.rb?15:2*Math.atan((r.pb()?Math.min(A.width,A.height)/100*20:w.g7)*Math.tan(A.Ue*E*.5)/A.width)*I};var E=Math.PI/180,I=180/Math.PI;a.prototype.Dv=function(){this.ga.bind(u.Tf,this.kf,this,!0);this.ga.bind(l.ye,this.Mi,this,!0)};a.prototype.jx=function(){this.ga.unbind(u.Tf,this.kf,this,!0);this.ga.unbind(l.ye,this.Mi,this,!0)};return a}); 3239define("bJ","require lQ ld pw lt hU jC du po gU mp oi oO nT eN lv S lR oY bL oR".split(" "),function(a){function f(I,A){for(I-=A;180<I;)I-=360;for(;-180>I;)I+=360;return I+A}var l=a("lQ"),m=a("ld"),k=a("pw"),c=a("lt");a("hU");var h=a("jC"),g=a("du"),b=a("po"),d=a("gU"),e=a("mp"),n=a("oi"),q=a("oO"),p=a("nT"),r=a("eN"),t=a("lv"),u=a("S"),v=a("lR"),w=a("oY"),x=a("bL"),y=a("oR"),z=Math.PI/180;a=l.extend(h,function(I){h.call(this);this.v=I;this.Ik.push(this.v);this.hg=this.hg.bind(this);this.IZ=this.IZ.bind(this); 3240this.lq(["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",c.V);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.re=this.zb=this.Xa= 3241this.fe=this.Lf=null;this.wb=new n;this.Kv=this.iA=this.wm=this.jh=this.ga=null});a.prototype.Zb=function(){this.Lf=(new q(k.da)).Qm(this.qE.bind(this));this.fe=(new q(k.kc)).yp(this.tE.bind(this));h.prototype.Zb.call(this);this.XPa();this.appendChild(this.re);m.ea(this.v,B,this.hg,!0);m.bu(this.v,E,this.IZ,!0)};var B="playbackPositions popupDistance popupMaxHeight popupMaxWidth image.levels.url video state".split(" "),E=["visible"];a.prototype.ac=function(){this.Lf.dispose();this.fe.dispose();m.ca(this.v, 3242B,this.hg);m.ca(this.v,E,this.IZ);this.AD();this.Rz();this.aw();h.prototype.ac.call(this)};a.prototype.hg=function(){var I=p.U5a(this.v,this.get("panoramaPixelsPerDegree"));this.set("imageURL",I&&I.get("url"));this.set("imageWidth",I&&I.get("width"));this.set("imageHeight",I&&I.get("height"));this.set("video",this.v.get("video"));this.set("state",this.v.get("state"));this.set("popupDistance",this.v.get("popupDistance"));this.set("popupMaxWidth",this.v.get("popupMaxWidth"));this.set("popupMaxHeight", 3243this.v.get("popupMaxHeight"));this.set("playbackPositions",this.v.get("playbackPositions"))};a.prototype.IZ=function(){this.set("visible",this.v.get("visible"))};a.prototype.oa=function(I){this.NA=I.Ra;this.MA=I.pitch;this.wr(I);this.M1a();this.TR(I);this.he(I);this.x1a(I);this.d1a(I);h.prototype.oa.call(this,I)};a.prototype.M1a=function(){this.R("playbackPositions","currentTime")&&(this.wb.ZB(this.get("playbackPositions")),this.wb.YB(this.get("currentTime")),this.set("sourceYaw",this.wb.get("yaw")), 3244this.set("sourcePitch",this.wb.get("pitch")),this.set("sourceRotationX",this.wb.get("rotationX")),this.set("sourceRotationY",this.wb.get("rotationY")),this.set("sourceRotationZ",this.wb.get("rotationZ")),this.set("sourceHFOV",this.wb.get("hfov")))};a.prototype.wr=function(){if(this.R("video","imageURL")){var I=[this.re];this.R("imageURL")&&(this.PN(),this.Xa&&I.push(this.Xa),this.PQ("itemVisible"));this.R("video")&&(this.RN(),this.zb&&I.push(this.zb),this.PQ("itemVisible"));this.Lf.Gf(I);this.fe.Gf(I); 3245this.ph(I)}};a.prototype.TR=function(){if(this.ga){var I=this.ga.J2();this.set("frameEmpty",!!I&&I.isEmpty());!this.jh||I&&!this.jh.isEqual(I)?(this.jh=I,this.zb.set("source",this.jh.ct),this.zb.set("sourceUpdated",!0),this.Ga()):this.ga.getState()==c.PLAYING&&this.Ga()}else this.set("frameEmpty",!1)};a.prototype.he=function(I){this.set("inVR",I.rb);this.set("hotspotsEnabled",I.dG);this.set("rendererYaw",I.Ra);this.set("rendererPitch",I.pitch);this.set("rendererRoll",I.Dg);this.set("rendererWidth", 3246I.Gr);this.set("rendererHeight",I.Fr);this.set("rendererHFOV",I.Ue);if(this.R("visible")){var A=this.get("visiblePosition"),C=this.get("visible")?1:0,J=Math.max(1,this.v.get(this.get("visible")?"showDuration":"hideDuration")*Math.abs(C-A)),D=this.v.get(this.get("visible")?"showEasing":"hideEasing");A!=C&&(this.wm=new w(D,[new x("position",A,C)],J));this.get("visible")||(this.set("actualVisible",!1),this.ga&&this.ga.Vc(c.V))}this.wm&&(this.wm.Ve()?(this.wm=null,this.get("visible")?(this.set("actualVisible", 3247!0),this.v.trigger(k.YM),this.v.get("autoplay")&&this.ga&&this.ga.Vc(c.PLAYING)):setTimeout(function(){this.v&&this.v.trigger(k.RM)}.bind(this),0)):this.wm.Fb(I.Se),this.wm&&(this.set("visiblePosition",this.wm.cb("position")),this.Ga()));A=!1;if(A=I.rb?this.R("visible","itemVisible"):this.R("rendererYaw","rendererPitch","rendererRoll","rendererWidth","rendererHeight","rendererHFOV","itemVisible","popupMaxWidth","popupMaxHeight","sourceHFOV"))this.set("targetImageScale",this.wsa(this.Xa,I)),this.set("targetVideoScale", 3248this.wsa(this.zb,I)),this.set("targetYaw",f(this.get("rendererYaw"),this.get("sourceYaw"))),this.set("targetPitch",this.get("rendererPitch")),this.set("targetRotationZ",f(I.rb?0:this.get("rendererRoll"),this.get("sourceRotationZ")));if(A||this.R("visiblePosition","targetScale","targetYaw","targetPitch","targetRoll","popupDistance","hfov")){C=this.get("visiblePosition");var O=this.get("targetYaw")*C+this.get("sourceYaw")*(1-C),R=this.get("targetPitch")*C+this.get("sourcePitch")*(1-C),U=this.get("sourceRotationX")* 3249(1-C),V=this.get("sourceRotationY")*(1-C),W=this.get("targetRotationZ")*C+this.get("sourceRotationZ")*(1-C);I=Math.min(1,2*C);var K=this.get("popupDistance"),M=this.get("sourceHFOV");A=this.get("targetImageScale")*C+(1-C);C=this.get("targetVideoScale")*C+(1-C);this.set("alpha",I);this.Xa&&this.Xa.set("scale",A);this.zb&&this.zb.set("scale",C);
3249[].concat(this.zb?[this.zb]:[],this.Xa?[this.Xa]:[]).forEach(function(S){S.set("yaw",O);S.set("pitch",R);S.set("rotationX",U);S.set("rotationY",V);S.set("rotationZ", 3250W);S.set("distance",K);S.set("hfov",M)})}};a.prototype.x1a=function(I){if(this.R("frameEmpty","state","imageURL","video")){var A="none";!this.zb||this.Xa&&(this.get("frameEmpty")||this.get("state")==c.V)?this.Xa&&(A="image"):A="video";this.set("itemVisible",A)}if(this.R("itemVisible")){"video"!=this.get("itemVisible")&&this.ga&&this.ga.Vc(c.V);A=this.Xa?this.Xa.get("alpha"):0;var C=this.zb?this.zb.get("alpha"):0,J="image"==this.get("itemVisible")?1:0,D="video"==this.get("itemVisible")?1:0,O="video"== 3251this.get("itemVisible")?1:200*Math.max(Math.abs(J-A),Math.abs(D-C));this.iA=new w("linear",[new x("imageAlpha",A,J),new x("videoAlpha",C,D)],O)}this.iA&&(this.iA.Ve()?this.iA=null:this.iA.Fb(I.Se),this.iA&&(this.Xa&&this.Xa.set("alpha",this.iA.cb("imageAlpha")),this.zb&&this.zb.set("alpha",this.iA.cb("videoAlpha")),this.Ga()))};a.prototype.d1a=function(I){this.R("gazeOver","inVR","visible","actualVisible")&&(this.Qpa(),this.get("inVR")&&this.v.get("lookAwayToHide")&&!this.get("gazeOver")&&this.get("actualVisible")&& 3252this.B_a());I.rb&&this.v.get("darkenBackground")&&this.v.get("lookAwayToHide")?(this.R("visible")&&this.get("visible")&&(this.re.set("alpha",.8),this.Kv=null),this.R("gazeOver")&&(this.Kv=new w(this.get("gazeOver")?"linear":"quad_in",[new x("alpha",this.re.get("alpha"),this.get("gazeOver")?.8:0)],this.get("gazeOver")?300:this.v.get("lookAwayToHideTime")))):(this.Kv=null,this.re.set("alpha",I.rb&&this.v.get("darkenBackground")?.8:0));this.Kv&&(this.Kv.Ve()?this.Kv=null:this.Kv.Fb(I.Se),this.Kv&&(this.re.set("alpha", 3253this.Kv.cb("alpha")),this.Ga()))};a.prototype.B_a=function(){this.Qpa();this.GY=setTimeout(function(){this.GY=null;this.v.set("visible",!1)}.bind(this),this.v.get("lookAwayToHideTime"))};a.prototype.Qpa=function(){this.GY&&(clearTimeout(this.GY),this.GY=null)};a.prototype.wsa=function(I,A){if(!I)return 1;var C=this.get("popupMaxWidth","100%"),J=u.Ap(C),D=I.get("contentWidth"),O=I.get("contentHeight"),R=this.get("popupMaxHeight","100%"),U=u.Ap(R);if(this.get("inVR")){var V=I=.5*this.get("rendererWidth"), 3254W=Math.min(A.ti,80);A=t.KF(W,I,V);var K=this.get("sourceHFOV");C=Math.min(Math.tan(A*(void 0!==J?J/100:C/I)*.5*z)/Math.tan(.5*K*z),Math.tan(W*(void 0!==U?U/100:R/V)*.5*z)/Math.tan(.5*t.KF(K,D,O)*z))}else I=this.get("rendererWidth"),V=this.get("rendererHeight"),C=D*Math.min((void 0!==J?I*J/100:C)/D,(void 0!==U?V*U/100:R)/O),A=this.get("rendererHFOV"),K=this.get("sourceHFOV"),C=Math.tan(.5*A*z)*C/I/Math.tan(.5*K*z);return C};a.prototype.PN=function(){this.AD();this.get("imageURL")&&(this.Xa=new d,this.Xa.set("url", 3255this.get("imageURL")),this.Xa.set("contentWidth",this.get("imageWidth")),this.Xa.set("contentHeight",this.get("imageHeight")),this.Xa.set("alpha",0))};a.prototype.AD=function(){this.Xa&&(this.Xa.remove(),this.Xa=null)};a.prototype.RN=function(){this.Rz();if(this.get("video")){this.zb=new b;var I=y.kk(this.get("video"));this.zb.set("contentWidth",I.get("width"));this.zb.set("contentHeight",I.get("height"));this.zb.set("alpha",0);this.zb.set("sourceIsVideo",!0);this.ga=new y(this.Ha.pp(),this.get("video")); 3256this.Ma=new e(this.Ha.pp(),this.v,this.ga);this.Dv()}};a.prototype.Rz=function(){this.zb&&(this.jx(),this.Ma.clear(),this.Ma=null,this.ga.clear(),this.jh=this.ga=null,this.zb.remove(),this.zb=null)};a.prototype.XPa=function(){this.aw();this.re=new g("#000000")};a.prototype.aw=function(){this.re&&(this.re.remove(),this.re=null)};a.prototype.qE=function(){this.trigger(k.hd);this.trigger(k.da)};a.prototype.tE=function(I,A){var C=0;A.ku(function(J){var D=0,O;this.Lf.Em(J)?D=100:(O=this.fe.Em(J))&&(D= 3257O.Tg);C+=D}.bind(this));this.trigger(new v(k.kc,C/A.ld.length))};a.prototype.Mi=function(){this.Ga()};a.prototype.kf=function(){this.Ga()};a.prototype.CA=function(){this.v.trigger(k.Gb)};a.prototype.Dv=function(){this.ga.bind(y.Tf,this.kf,this,!0);this.ga.bind(k.ye,this.Mi,this,!0);this.ga.bind(k.Gb,this.CA,this,!0)};a.prototype.jx=function(){this.ga.unbind(y.Tf,this.kf,this,!0);this.ga.unbind(k.ye,this.Mi,this,!0);this.ga.unbind(k.Gb,this.CA,this,!0)};a.prototype.Mm=function(I){I.tf==k.Bl?(!I.fl()&& 3258this.get("visible")?(I.ps(this.v),this.set("over",this.rr(I)),this.set("gazeOver",this.i0a(I))):this.set("over",!1),this.get("over")&&(I.fB(this.v),I.zu()&&I.AF(this.v),I.el(this.get("popupDistance"))),this.R("over")&&(this.v.trigger(this.get("over")?k.Dc:k.Jb),I.zu()&&this.v.trigger(this.get("over")?k.IC:k.Zp))):I.tf==k.Uf&&!I.fl()&&this.get("visible")&&(I.ps(this.v),I.el(this.get("popupDistance")),this.rr(I)?I.h7a()||this.v.trigger(k.ma):this.v.set("visible",!1))};a.prototype.rr=function(I){return this.gza(I.ir)}; 3259a.prototype.i0a=function(I){I=I.fL();return!!I&&this.gza([I])};a.prototype.gza=function(I){if(this.get("visible")){I=("video"==this.get("itemVisible")?this.zb:this.Xa).mw(I);for(var A=0;A<I.length;A++){var C=I[A];if(r.Gy(C.source,C.x,C.y))return!0}}return!1};return a});
3260define("de",["require","lQ","jC"],function(a){var f=a("lQ"),l=a("jC");a=f.extend(l,function(){l.call(this);this.Kz&&this.Kz();this.wo&&this.wo()});a.prototype.Zb=function(){l.prototype.Zb.call(this);this.Po&&this.Po();this.GJ&&this.GJ()};a.prototype.ac=function(){this.Ro&&this.Ro();this.IJ&&this.IJ();l.prototype.ac.call(this)};a.prototype.oa=function(m){this.wf&&this.wf(m);l.prototype.oa.call(this,m);this.jp&&this.jp(m)};return a}); 3261define("ko",["require","pw"],function(a){var f=a("pw");return{Kz:function(){this.set("beamEnabled",!1);this.od=!1;this.MA=this.NA=void 0},jp:function(l){this.NA=l.Ra;this.MA=l.pitch},Mm:function(l){if(l.tf==f.Bl){var m=!l.fl()&&this.rr(l);if(m){l.fB(this.v);this.v.get("useHandCursor")&&l.AF(this.v);l.el(this.get("distance"));var k=this.$b(l.iG());k&&l.I1(k,this.XA(l.iG()))}this.od!=m&&(this.od=m,this.v.trigger(this.od?f.Dc:f.Jb),l.zu()&&this.v.trigger(this.od?f.IC:f.Zp))}else l.tf==f.Uf&&!l.fl()&& 3262this.rr(l)&&(1<this.v.jL(f.ma,!0).length&&l.ps(this.v),l.el(this.get("distance")),this.v.trigger(f.ma))},rr:function(l){return this.get("beamEnabled")&&0<this.maa().mw(l.ir).length?!0:!1},$b:function(l){return!l||this.v.get("displayTooltipInTouchScreens")&&!1!==this.Ha.M.get("displayTooltipInTouchScreens")?this.v.get("toolTip",""):""},XA:function(l){if(l){l=this.get("yaw")-this.NA;var m=this.get("pitch")-this.MA;return Math.sqrt(l*l+m*m)}return 0}}}); 3263define("ca","require lQ ld pw de bF oO nT ko".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("de"),c=a("bF"),h=a("oO"),g=a("nT");a=a("ko");f=f.extend(k,a,c,function(b){k.call(this);this.v=b;this.WD=this.F$=this.Kaa=null;this.Ik.push(this.v);this.hg=this.hg.bind(this);this.lq(["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); 3264this.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.Zf=this.jt=this.fe=this.Lf=null;this.vea(this.v)});f.prototype.Zb=function(){this.Lf=(new h(m.da)).Qm(this.qE.bind(this));this.fe=(new h(m.kc)).yp(this.tE.bind(this));this.gQa();k.prototype.Zb.call(this);l.ea(this.v,"url enabled image fadeInDuration fadeOutDuration contentInteractive interactionEnabled transparent".split(" "), 3265this.hg,!0);this.z$()};f.prototype.ac=function(){this.A$();this.Lf.dispose();this.fe.dispose();l.ca(this.v,"url enabled image fadeInDuration fadeOutDuration contentInteractive interactionEnabled transparent".split(" "),this.hg);this.Iqa();this.Kqa();k.prototype.ac.call(this)};f.prototype.hg=function(){this.set("url",this.v.get("url"));this.Zf.set("url",this.get("url"));this.set("image",this.v.get("image"));this.Xa.set("image",this.get("image"));this.Xa.set("level",this.get("image")&&g.fDa(this.v, 3266this.get("panoramaPixelsPerDegree")));this.set("enabled",this.v.get("enabled"));this.set("fadeInDuration",this.v.get("fadeInDuration"));this.set("fadeOutDuration",this.v.get("fadeOutDuration"));this.set("interactionEnabled",this.v.get("interactionEnabled"));this.set("contentInteractive",this.v.get("contentInteractive"));this.set("transparent",this.v.get("transparent"));this.Ga()};f.prototype.oa=function(b){this.set("loaded",!!this.Zf&&this.Zf.get("frameLoaded"));this.set("inVR",b.rb);this.set("inScreenshot", 3267b.fG);this.set("hotspotsEnabled",b.dG);k.prototype.oa.call(this,b);this.he(b);this.Rfa(b)};f.prototype.gQa=function(){this.PN();this.rQa();this.qQa();var b=[this.Xa,this.jt,this.Zf];this.Lf.Gf(b);this.fe.Gf(b);this.ph(b)};f.prototype.he=function(){this.set("globalBlendingActiveCopy",this.get("globalBlendingActive"));if(this.R("globalBlendingActive","globalBlendingActiveCopy","url","inVR","hotspotsEnabled","enabled","interactionEnabled","contentInteractive","composedTranslationX","composedTranslationY", 3268"composedTranslationZ")){var b=!(0!=this.get("composedTranslationX")||0!=this.get("composedTranslationY")||0!=this.get("composedTranslationZ"))&&0==this.get("globalBlendingActive")&&this.get("hotspotsEnabled")&&this.get("enabled")&&!this.get("inVR")&&!!this.get("url");this.set("visible",b);this.set("beamEnabled",b&&this.get("interactionEnabled"));this.Zf.set("contentInteractive",b&&this.get("interactionEnabled")&&this.get("contentInteractive"))}this.set("frameHidden",!this.Zf.get("geometryVisible")); 3269this.R("visible","loaded","frameHidden","transparent","inScreenshot")&&(this.get("visible")||this.set("loaded",!1),this.Xa.set("alpha",!this.get("visible")||!this.get("frameHidden")&&this.get("loaded")?0:1),this.Xa.set("alpha",1),this.jt.set("alpha",!this.get("visible")||this.get("frameHidden")||!this.get("loaded")||this.get("transparent")||this.get("inScreenshot")?0:1),this.Zf.set("alpha",this.get("visible")?1:0),this.Zf.set("transparent",this.get("transparent")),this.set("inView",this.get("visible")&& 3270(this.get("loaded")||this.get("image"))),this.Ga());this.R("inView")&&this.v.trigger(this.get("inView")?m.jd:m.ad)};f.prototype.PN=function(){this.AD();this.Xa=new this.WD;this.Xa.set("image",this.get("image"));this.Xa.set("level",this.get("image")&&g.fDa(this.v,this.get("panoramaPixelsPerDegree")));this.Xa.set("visible",!0);this.Xa.set("alpha",0);this.set("imagePlane",this.Xa)};
3270f.prototype.AD=function(){this.Xa&&(this.Xa.remove(),this.Xa=null,this.set("imagePlane",null))};f.prototype.qQa=function(){this.Iqa(); 3271this.Zf=new this.F$;this.Zf.bind(m.da,this.vra,this,!0);this.Zf.set("url",this.get("url"));this.Zf.set("visible",!0);this.Zf.set("alpha",1);this.set("framePlane",this.Zf)};f.prototype.Iqa=function(){this.Zf&&(this.Zf.unbind(m.da,this.vra,this,!0),this.Zf.remove(),this.Zf=null,this.set("framePlane",null))};f.prototype.rQa=function(){this.Kqa();this.jt=new this.Kaa;this.jt.set("visible",!0);this.jt.set("alpha",1);this.set("holePlane",this.jt)};f.prototype.Kqa=function(){this.jt&&(this.jt.remove(),this.jt= 3272null,this.set("holePlane",null))};f.prototype.maa=function(){return this.jt};f.prototype.vra=function(){this.Ga()};f.prototype.qE=function(){this.trigger(m.hd);this.trigger(m.da)};f.prototype.tE=function(b,d){var e=0;d.ku(function(n){(n=d.Em(n))&&(e+=n.Tg)});this.trigger(new ProgressEvent(m.kc,e/d.ld.length))};return f}); 3273define("gf",["require","lQ","jC"],function(a){var f=a("lQ"),l=a("jC");a=f.extend(l,function(){l.call(this);this.set("tag","ComposedCSSObject");this.set("transparent",!1);this.set("cssScene",null);this.set("cssSceneOver",null);this.set("cssObject",this.k9());this.Vv&&this.Vv();this.yD&&this.yD();this.Kz&&this.Kz();this.wo&&this.wo()});a.prototype.k9=function(){var m=new THREE.CSS3DObject;m.matrixAutoUpdate=!1;return m};a.prototype.Zb=function(){l.prototype.Zb.call(this);this.Po&&this.Po();this.gP&& 3274this.gP();this.GJ&&this.GJ()};a.prototype.ac=function(){this.eJ&&this.eJ();this.IJ&&this.IJ();this.Ro&&this.Ro();var m=this.get("cssObject");m&&m.parent&&m.parent.remove(m);this.set("cssScene",null);l.prototype.ac.call(this)};a.prototype.oa=function(m){this.wf&&this.wf(m);l.prototype.oa.call(this,m);this.set("cssScene",m.AS);this.set("cssSceneOver",m.BS);if(this.R("transparent")){var k=this.get("cssObject");k&&k.parent&&k.parent.remove(k)}this.R("cssScene","cssSceneOver","transparent")&&(k=this.get("transparent")? 3275m.BS:m.AS)&&k.add(this.get("cssObject"));this.tm();this.Vi&&this.Vi(m);this.Ex&&this.Ex(m);this.uF()};a.prototype.tm=function(){this.R("composedAlpha","meshGroup")&&this.rz()};a.prototype.rz=function(){this.get("cssObject").element.style.display=0<this.get("composedAlpha")?"block":"none"};a.prototype.uF=function(){this.R("index")&&(this.get("cssObject").containerElement.style.zIndex=this.get("index"))};return a}); 3276define("ev",["require","jH","a"],function(a){var f=a("jH"),l=a("a"),m=new THREE.Matrix4,k=Math.PI/180;return{Vv:function(){this.set("vertices",void 0);this.Gh=new THREE.Matrix4;this.Td=new THREE.Matrix4;this.Qo=new THREE.Matrix4;this.kn=new THREE.Matrix4;this.Pq=new THREE.Matrix4},k9:function(){var c=new THREE.CSS3DQuad;c.matrixAutoUpdate=!1;return c},Ex:function(c){var h=!1;if(this.R("vertices","contentWidth","contentHeight")){var g=this.get("vertices");h=l.Wx(g[0].get("yaw")*k,g[0].get("pitch")* 3277k).normalize();var b=l.Wx(g[1].get("yaw")*k,g[1].get("pitch")*k).normalize(),d=l.Wx(g[2].get("yaw")*k,g[2].get("pitch")*k).normalize();g=l.Wx(g[3].get("yaw")*k,g[3].get("pitch")*k).normalize();var e=this.get("cssObject");e.vertices[0].set(h.x,h.y,-h.z);e.vertices[1].set(b.x,b.y,-b.z);e.vertices[2].set(d.x,d.y,-d.z);e.vertices[3].set(g.x,g.y,-g.z);e.contentWidth=this.get("contentWidth");e.contentHeight=this.get("contentHeight");h=!0}b=!1;this.R("composedTranslationX","composedTranslationY","composedTranslationZ")&& 3278(this.Gh.makeTranslation(.5*-this.get("composedTranslationX")*f.Fg,.5*this.get("composedTranslationY")*f.Fg,.5*this.get("composedTranslationZ")*f.Fg),b=!0);this.R("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.Td.makeRotationY(-c.Ra*k),this.Td.multiply(m.makeRotationX(-this.get("composedDeltaPitch")*k)),this.Td.multiply(m.makeRotationY(this.get("composedDeltaYaw")*k)),this.Td.multiply(m.makeRotationY(c.Ra*k)),b=!0);if(b||this.R("meshGroup"))this.Pq.copy(this.Gh),this.Pq.multiply(this.Td), 3279this.get("cssObject").matrix.copy(this.Pq),this.get("cssObject").matrixWorldNeedsUpdate=!0;this.set("cameraYaw",c.Ra);this.set("cameraPitch",c.pitch);this.set("cameraRoll",c.Dg);this.set("cameraHfov",c.Ue);this.set("cameraWidth",c.width);this.set("cameraHeight",c.height);c.camera&&(b||h||this.R("cameraYaw","cameraPitch","cameraRoll","cameraHfov","cameraWidth","cameraHeight"))&&(this.get("cssObject").project
3279Vertices(c.camera),this.set("geometryVisible",this.get("cssObject").isVisible),this.R("geometryVisible")&& 3280this.eea())}}}); 3281define("ee","require iw jH eB kU a".split(" "),function(a){var f=a("iw"),l=a("jH"),m=a("eB"),k=a("kU"),c=a("a"),h=new THREE.Matrix4,g=Math.PI/180;return{Vv:function(){this.set("distance",void 0);this.set("vertices",void 0);this.$g=null;this.Gh=new THREE.Matrix4;this.Td=new THREE.Matrix4;this.lm=new THREE.Matrix4;this.Hi=new THREE.Matrix4},Ex:function(b){this.j2a(b);this.yr(b)},II:function(){var b=this.get("meshGroup");return b?m.hl(b)[0]:null},vo:function(){this.$g||(this.$g=this.Jz());return[0].map(function(b){var d= 3282this.NN();b=m.create(this.$g[b],d);k.By(b,k.Xp);k.Cy(b,k.Fs);k.NG(b,f.WM);k.HU(b,1);return b}.bind(this))},j2a:function(){if(this.R("vertices")){var b=this.get("meshGroup");if(b)return this.$g&&this.$g.forEach(function(d){l.dispose(d)}),this.$g=this.Jz(),m.hl(b).map(function(d,e){m.Pka(d,this.$g[e])}.bind(this))}},Jz:function(){function b(w){return 0==w||isNaN(w)||!isFinite(w)}var d=this.get("vertices")||[];if(4!=d.length)return[l.$Ba(-1,1,1,1,1,1,1,-1,1,-1,-1,1)];var e=c.Wx(d[0].get("yaw")*g,d[0].get("pitch")* 3283g).normalize(),n=c.Wx(d[1].get("yaw")*g,d[1].get("pitch")*g).normalize(),q=c.Wx(d[2].get("yaw")*g,d[2].get("pitch")*g).normalize();d=c.Wx(d[3].get("yaw")*g,d[3].get("pitch")*g).normalize();var p=e.clone().Z1(q),r=d.clone().Z1(n),t=p.clone().Z1(r).normalize();r=(2*e.y*t.x/e.x-2*t.y)/(-q.y+e.y*q.x/e.x);b(r)&&(r=(2*e.z*t.x/e.x-2*t.z)/(-q.z+e.z*q.x/e.x));b(r)&&(r=(2*e.z*t.y/e.y-2*t.z)/(-q.z+e.z*q.y/e.y));var u=(2*t.x-q.x*r)/e.x;b(u)&&(u=(2*t.y-q.y*r)/e.y);b(u)&&(u=(2*t.z-q.z*r)/e.z);p=(2*n.y*t.x/n.x- 32842*t.y)/(-d.y+n.y*d.x/n.x);b(p)&&(p=(2*n.z*t.x/n.x-2*t.z)/(-d.z+n.z*d.x/n.x));b(p)&&(p=(2*n.z*t.y/n.y-2*t.z)/(-d.z+n.z*d.y/n.y));var v=(2*t.x-d.x*p)/n.x;b(v)&&(v=(2*t.y-d.y*p)/n.y);b(v)&&(v=(2*t.z-d.z*p)/n.z);e=e.BU(u);n=n.BU(v);q=q.BU(r);d=d.BU(p);return[l.$Ba(e.x,e.y,-e.z,n.x,n.y,-n.z,q.x,q.y,-q.z,d.x,d.y,-d.z)]},yr:function(b){var d=!1;this.R("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.Gh.makeTranslation(.5*-this.get("composedTranslationX")*l.Fg,.5*this.get("composedTranslationY")* 3285l.Fg,.5*this.get("composedTranslationZ")*l.Fg),d=!0);this.R("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.Td.makeRotationY(-b.Ra*g),this.Td.multiply(h.makeRotationX(-this.get("composedDeltaPitch")*g)),this.Td.multiply(h.makeRotationY(this.get("composedDeltaYaw")*g)),this.Td.multiply(h.makeRotationY(b.Ra*g)),d=!0);this.R("distance","composedTranslationX","composedTranslationY","composedTranslationZ")&&(b=0==this.ta.get("composedTranslationX")&&0==this.ta.get("composedTranslationY")&& 32860==this.ta.get("composedTranslationZ")&&void 0!==this.get("distance")?l.pu(this.get("distance")):l.Rr(),this.lm.makeScale(b,b,b),d=!0);if(d||this.R("meshGroup"))this.Hi.copy(this.Gh),this.Hi.multiply(this.Td),this.Hi.multiply(this.lm),b=m.hl(this.get("meshGroup")),m.Jr(b[0],this.Hi)}}}); 3287define("cz",["require","pw"],function(a){var f=a("pw");return{yD: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.Hc=this.ie=null;this.UX=void 0;this.A1=this.A1.bind(this);this.B1=this.B1.bind(this);this.C1=this.C1.bind(this);this.VD=this.VD.bind(this);this.Raa=this.Raa.bind(this)},Vi:function(){this.R("cssObject")&&(this.sQa(),this.get("cssObject").element.appendChild(this.ie)); 3288this.R("url")&&this.DZa(this.get("url"));this.R("contentWidth","contentHeight")&&(this.ie.style.width=this.get("contentWidth")+2+"px",this.ie.style.height=this.get("contentHeight")+2+"px");this.R("contentInteractive")&&(this.ie.style.pointerEvents=this.get("contentInteractive")?"auto":"none")},tm:function(){this.R("composedAlpha")&&(0<this.get("composedAlpha")?this.Hc&&!this.Hc.parentNode&&(this.Wza(),this.ie.appendChild(this.Hc)):this.Hc&&this.Hc.parentNode&&this.ie.removeChild(this.Hc))},gP:function(){this.trigger(f.hd); 3289this.get("frameLoaded")&&this.trigger(f.da)},eJ:function(){this.APa()},B1:function(l){l.preventDefault();l.stopImmediatePropagation()},A1:function(){this.Ha.pp().IG(null)},C1:function(l){l.preventDefault();l.stopImmediatePropagation()},VD:function(){this.set("frameLoaded",!0);this.trigger(f.da)},Raa:function(){this.VX=null;this.VD()},sQa:function(){this.Hc||(this.ie=document.createElement("div"),this.ie.style.position="absolute",this.ie.style.left=this.ie.style.top="-1px",this.get("cssObject").isCSS3DObject&& 3290(this.ie.style.transform="translate(-50%, -50%)"),this.ie.style.overflow="hidden",this.ie.style["-webkit-overflow-scrolling"]="touch",this.ie.addEventListener("mouseenter",this.A1,!0),this.ie.addEventListener("mousemove",this.B1,!0),this.ie.addEventListener("mousewheel",this.C1,!0),this.Hc=document.createElement("iframe"),this.Hc.setAttribute("allow","fullscreen; accelerometer; gyroscope; magnetometer; vr; autoplay; camera; microphone; display-capture;
3290 xr-spatial-tracking"),this.Hc.setAttribute("frameborder", 3291"0"),this.Hc.setAttribute("scrolling","auto"),this.Hc.style.width="100%",this.Hc.style.height="100%",this.Hc.addEventListener("load",this.VD,!0),0<this.get("composedAlpha")&&this.ie.appendChild(this.Hc))},APa:function(){this.Hc&&(this.Hc.src="",this.Zda(),this.Gz(),this.Hc.parentNode&&this.Hc.parentNode.removeChild(this.Hc),this.Hc=null);this.ie&&(this.ie.parentNode&&this.ie.parentNode.removeChild(this.ie),this.ie.removeEventListener("mouseenter",this.A1,!0),this.ie.removeEventListener("mousemove", 3292this.B1,!0),this.ie.removeEventListener("mousewheel",this.C1,!0),this.ie=null)},DZa:function(l){this.UX!==l&&(this.UX=l,this.set("frameLoaded",!1),this.Wza())},Wza:function(){this.UX?(this.HZa(),this.BNa(),this.Hc.src=this.UX):(this.Gz(),this.Zda(),this.Hc.src="",this.VD())},HZa:function(){this.Gz();this.VX=setTimeout(this.Raa,3E3)},Gz:function(){this.VX&&(clearTimeout(this.VX),this.VX=null)},BNa:function(){this.Zda();this.Hc.addEventListener("load",this.VD,!0)},Zda:function(){this.Hc.removeEventListener("load", 3293this.VD,!0)}}});define("kY",["require","eB","pw"],function(a){var f=a("eB"),l=a("pw");return{yD:function(){this.get("materialConfig").params.blending=THREE.NoBlending},gP:function(){this.trigger(l.hd);this.trigger(l.da)},tm:function(){this.R("meshGroup","composedAlpha")&&f.ff(this.get("meshGroup"),0<this.get("composedAlpha")?.001:0)}}}); 3294define("ni",["require","ld","oi"],function(a){var f=a("ld"),l=a("oi");return{wo:function(){this.set("playbackPositions",null);this.ce=this.ce.bind(this);this.wb=new l},Po:function(){f.ea(this.v,["playbackPositions","width","height"],this.ce,!0)},Ro:function(){f.ca(this.v,["playbackPositions","width","height"],this.ce)},ce:function(){this.set("playbackPositions",this.v.get("playbackPositions"));this.set("contentWidth",this.v.get("width"));this.set("contentHeight",this.v.get("height"))},wf:function(){this.R("playbackPositions", 3295"currentTime")&&(this.wb.ZB(this.get("playbackPositions")),this.wb.YB(this.get("currentTime")),this.set("vertices",this.wb.uia()));this.R("framePlane","holePlane","imagePlane","vertices")&&this.ob().forEach(function(m){m.set("vertices",this.get("vertices"));m.set("contentWidth",this.get("contentWidth"));m.set("contentHeight",this.get("contentHeight"))}.bind(this))}}}); 3296define("ke","require lQ ca gf c ev ee cz hs kY ni".split(" "),function(a){var f=a("lQ"),l=a("ca"),m=a("gf"),k=a("c"),c=a("ev"),h=a("ee"),g=a("cz"),b=a("hs"),d=a("kY");a=a("ni");var e=f.extend(k,h,b,function(){k.call(this);this.set("tag","QuadFrameHotspotImage")}),n=f.extend(m,c,g,function(){m.call(this);this.set("tag","QuadFrameHotspotFrame")}),q=f.extend(k,h,d,function(){k.call(this);this.set("tag","QuadFrameHotspotHole")});return f.extend(l,a,function(p){l.call(this,p);this.WD=e;this.F$=n;this.Kaa= 3297q})}); 3298define("lp",["require","ld","oi"],function(a){var f=a("ld"),l=a("oi");return{wo:function(){this.set("playbackPositions",null);this.set("distance",void 0);this.ce=this.ce.bind(this);this.wb=new l},Po:function(){f.ea(this.v,["vertices","distance","playbackPositions"],this.ce,!0)},Ro:function(){f.ca(this.v,["vertices","distance","playbackPositions"],this.ce)},ce:function(){this.set("distance",this.v.get("distance"));this.set("vertices",this.v.get("vertices"));this.set("playbackPositions",this.v.get("playbackPositions"))},wf:function(){this.R("playbackPositions", 3299"currentTime")&&(this.wb.ZB(this.get("playbackPositions")),this.wb.YB(this.get("currentTime")),this.set("vertices",this.wb.uia()),this.set("alpha",this.wb.il()))}}}); 3300define("jJ","require lQ ld pw eB c ee hs pt lp nT".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("eB"),c=a("c"),h=a("ee"),g=a("hs"),b=a("pt"),d=a("lp"),e=a("nT"),n=0;a=f.extend(c,h,d,g,b,function(q){c.call(this);this.set("tag","QuadHotspotImage");this.set("id","quad_hs_image_"+n++);this.set("side",THREE.DoubleSide);this.v=q;this.Ik.push(this.v);this.ig=this.ig.bind(this)});a.prototype.Zb=function(){c.prototype.Zb.call(this);l.ea(this.v,["image.levels"],this.ig,!0)};a.prototype.ac=function(){l.ca(this.v, 3301["image.levels"],this.ig);c.prototype.ac.call(this)};a.prototype.ig=function(){this.set("image",this.v.get("image"));this.set("level",e.X5a(this.v))};a.prototype.oa=function(q){this.qF();c.prototype.oa.call(this,q);this.R("inView")&&this.v.trigger(this.get("inView")?m.jd:m.ad)};a.prototype.qF=function(){if(this.R("meshGroup","panoramaId","id")){var q=this.get("meshGroup");
3301q&&q.children.forEach(function(p){k.setAttribute(p,k.kC,this.get("panoramaId"));k.setAttribute(p,k.K5,this.get("id"))}.bind(this))}}; 3302return a}); 3303define("jB",["require","pw","lt"],function(a){function f(c,h){this.Vd=c;this.Fd=h;this.Tb=!1;this.UZ=!0;this.t8=this.eda=!1;this.T7();this.pca()}var l=a("pw"),m=a("lt");f.prototype.clear=function(){this.yva();this.Wda()};f.prototype.Xe=function(c){this.Tb!=c&&(this.Tb=c,this.Ut())};f.prototype.Z$a=function(c){this.UZ!=c&&((this.UZ=c)&&this.yva(),this.Ut())};f.prototype.Ut=function(){if(!this.Tb||this.UZ)this.Fd.set("state",m.V);else if(this.Fd.get("autoplay")||this.t8)this.t8=!1,this.Fd.set("state",m.PLAYING)}; 3304f.prototype.pca=function(){if(!this.eda){var c=this.Fd.get("video").get("autoplayTime");void 0!==c&&this.Fd.get("video").get("autoplayTimeLimit")<(new Date).getTime()&&(c=void 0);this.Fd.set("currentTime",c);this.t8=void 0!==c}};f.prototype.yva=function(){this.eda||(this.eda=!0,this.Fd.get("state")==m.PLAYING?(this.Fd.get("video").set("autoplayTimeLimit",(new Date).getTime()+k),this.Fd.get("video").set("autoplayTime",this.Fd.get("currentTime",0))):this.Fd.get("video").set("autoplayTime",void 0))}; 3305f.prototype.T7=function(){this.Fd.get("video").bind(l.F("autoplayTime"),this.pca,this,!0)};f.prototype.Wda=function(){this.Fd.get("video").unbind(l.F("autoplayTime"),this.pca,this,!0)};var k=1E3;return f}); 3306define("eP",["require","pw","eN"],function(a){var f=a("pw"),l=a("eN");return{Kz:function(){this.set("beamEnabled",!1);this.od=!1;this.MA=this.NA=void 0},jp:function(m){this.NA=m.Ra;this.MA=m.pitch},Mm:function(m){if(m.tf==f.Bl){var k=!m.fl()&&this.rr(m)&&!this.get("blendingActive");if(k){m.fB(this.v);this.v.get("useHandCursor")&&m.AF(this.v);m.el(this.get("distance"));var c=this.$b(m.iG());c&&m.I1(c,this.XA(m.iG()))}this.od!=k&&(this.od=k,this.v.trigger(this.od?f.Dc:f.Jb),m.zu()&&this.v.trigger(this.od? 3307f.IC:f.Zp))}else m.tf==f.Uf&&!m.fl()&&this.rr(m)&&(1<this.v.jL(f.ma,!0).length&&m.ps(this.v),m.el(this.get("distance")),this.v.trigger(f.ma))},rr:function(m){if(this.get("beamEnabled")){m=this.maa().mw(m.ir);for(var k=0;k<m.length;k++){var c=m[k];if(l.Gy(c.source,c.x,c.y))return!0}}return!1},$b:function(m){return!m||this.v.get("displayTooltipInTouchScreens")&&!1!==this.Ha.M.get("displayTooltipInTouchScreens")?this.v.get("toolTip",""):""},XA:function(m){if(m){m=this.get("yaw")-this.NA;var k=this.get("pitch")- 3308this.MA;return Math.sqrt(m*m+k*k)}return 0}}}); 3309define("fm","require lQ ld pw lt oR de jB bF oO nT eP lR oY bL".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("lt"),c=a("oR"),h=a("de"),g=a("jB"),b=a("bF"),d=a("oO"),e=a("nT"),n=a("eP"),q=a("lR"),p=a("oY"),r=a("bL");a=f.extend(h,n,b,function(t){h.call(this);this.v=t;this.Iga=this.WD=null;this.Ik.push(this.v);this.hg=this.hg.bind(this);this.lq(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","VideoHotspot");this.set("enabled",!0);this.set("inVR",!1);this.set("overlaysEnabled", 3310!0);this.set("enabledInVR",!0);this.set("enabledInStandard",!0);this.set("interactionEnabled",!0);this.set("centerOverDisplay",!1);this.set("loadingActive",!1);this.set("frameEmpty",!0);this.set("state",k.V);this.set("itemVisible","none");this.set("blending",0);this.set("chromaColor",void 0);this.set("chromaThreshold",0);this.set("chromaSmoothing",0);this.zb=this.Xa=this.fe=this.Lf=null;this.Jga=!1;this.dt=[];this.vea(this.v)});a.prototype.Zb=function(){this.Lf=(new d(m.da)).Qm(this.qE.bind(this)); 3311this.fe=(new d(m.kc)).yp(this.tE.bind(this));this.Hl=new g(this.Ha.pp(),this.v);h.prototype.Zb.call(this);l.ea(this.v,"blending chromaColor chromaThreshold chromaSmoothing distance scaleMode image.levels video.levels enabled enabledInStandard enabledInVR fadeInDuration fadeOutDuration interactionEnabled state videoVisibleOnStop".split(" "),this.hg,!0);this.z$()};a.prototype.ac=function(){this.A$();this.Hl.clear();this.Lf.dispose();this.fe.dispose();l.ca(this.v,"blending chromaColor chromaThreshold chromaSmoothing distance scaleMode image.levels video.levels enabled enabledInStandard enabledInVR fadeInDuration fadeOutDuration interactionEnabled state videoVisibleOnStop".split(" "), 3312this.hg);this.AD();this.Rz();h.prototype.ac.call(this)};a.prototype.hg=function(){this.set("image",this.v.get("image"));this.set("imageLevel",e.h6a(this.v,this.get("panoramaPixelsPerDegree")));this.set("video",this.v.get("video"));this.set("videoLevel",c.kk(this.get("video")));this.set("enabled",this.v.get("enabled"));this.set("enabledInStandard",this.v.get("enabledInStandard"));this.set("enabledInVR",this.v.get("enabledInVR"));this.set("fadeInDuration",this.v.get("fadeInDuration"));this.set("fadeOutDuration", 3313this.v.get("fadeOutDuration"));this.set("interactionEnabled",this.v.get("interactionEnabled"));this.set("state",this.v.get("state"));this.set("videoVisibleOnStop",this.v.get("videoVisibleOnStop"));this.set("blending",this.v.get("blending"));this.set("chromaColor",this.v.get("chromaColor"));this.set("chromaThreshold",this.v.get("chromaThreshold"));this.set("chromaSmoothing",this.v.get("chromaSmoothing"))};a.prototype.oa=function(t){this.set("inVR",t.rb);this.set("hotspotsEnabled",t.dG);this.wr();this.JR(); 3314h.prototype.oa.call(this,t);this.Ut();this.TR(t);this.he(t);this.Rfa(t)};a.prototype.wr=function(){if(this.R("video","videoLevel","image","imageLevel")){var t=[];
3314this.R("image","imageLevel")&&(this.PN(),this.Xa&&t.push(this.Xa));this.R("video","videoLevel")&&(this.RN(),this.zb&&t.push(this.zb));this.ph(t);this.Lf.Gf(t);this.fe.Gf(t)}};a.prototype.JR=function(){this.R("video","videoLevel","image","imageLevel","blending","chromaColor","chromaThreshold","chromaSmoothing")&&this.ob().forEach(function(t){t.set("blending", 3315this.get("blending"));t.set("chromaColor",this.get("chromaColor"));t.set("chromaThreshold",this.get("chromaThreshold"));t.set("chromaSmoothing",this.get("chromaSmoothing"))}.bind(this))};a.prototype.Ut=function(){this.R("video","composedAlpha","enabledInVR","enabledInStandard","enabled","inVR")&&this.Hl.Xe(0<this.get("composedAlpha")&&this.get("hotspotsEnabled")&&this.get("enabled")&&(!this.get("inVR")||this.get("enabledInVR"))&&(this.get("inVR")||this.get("enabledInStandard")));this.R("blendingActive")&& 3316this.Hl.Z$a(this.get("blendingActive"))};a.prototype.TR=function(){this.set("frameEmpty",!this.zb||!this.zb.get("hasStableContent"))};a.prototype.he=function(t){var u=this.get("itemVisible");if(this.R("frameEmpty","state","image","video","inVR","hotspotsEnabled","enabledInVR","enabledInStandard","enabled","interactionEnabled")){var v="none";this.get("hotspotsEnabled")&&this.get("enabled")&&(!this.get("inVR")||this.get("enabledInVR"))&&(this.get("inVR")||this.get("enabledInStandard"))&&(this.zb&&(!this.Xa|| 3317!this.get("frameEmpty")&&(this.get("state")!=k.V||this.Jga&&this.get("videoVisibleOnStop")))?v="video":this.Xa&&(v="image"),this.get("state")!=k.V&&(this.Jga=!0));this.set("itemVisible",v);this.set("beamEnabled","none"!=v&&this.get("interactionEnabled"))}if(this.R("itemVisible")){v="none"!=this.get("itemVisible");var w="none"!=u;if(v&&w&&!this.get("chromaColor")&&0==this.dt.length)this.Xa&&this.Xa.set("alpha","image"==this.get("itemVisible")?1:0),this.zb&&this.zb.set("alpha","video"==this.get("itemVisible")? 33181:0);else{u=v==w?50:v?this.get("fadeInDuration"):this.get("fadeOutDuration");v!=w&&this.v.trigger(v?m.jd:m.ad);w=this.Xa?this.Xa.get("alpha"):0;var x=this.zb?this.zb.get("alpha"):0;v=[{video:x,image:w}];"video"==this.get("itemVisible")?(v.push({video:1,image:w,time:u*(1-x)}),v.push({video:1,image:0,time:50*(w-0)})):"image"==this.get("itemVisible")?(v.push({video:x,image:1,time:u*(1-w)}),v.push({video:0,image:1,time:50*(x-0)})):v.push({video:0,image:0,time:Math.max(x,w,1/u)*u});this.dt=[];for(u=1;u< 3319v.length;u++)0<v[u].time&&this.dt.push(new p("linear",[new r("imageAlpha",v[u-1].image,v[u].image),new r("videoAlpha",v[u-1].video,v[u].video)],v[u].time))}}0<this.dt.length&&(this.dt[0].Ve()?this.dt.shift():this.dt[0].Fb(t.Se),0<this.dt.length&&(this.Xa&&this.Xa.set("alpha",this.dt[0].cb("imageAlpha")),this.zb&&this.zb.set("alpha",this.dt[0].cb("videoAlpha")),this.Ga()))};a.prototype.PN=function(){this.AD();this.get("image")&&this.get("imageLevel")&&(this.Xa=new this.WD,this.Xa.set("image",this.get("image")), 3320this.Xa.set("level",this.get("imageLevel")),this.Xa.set("isVideoTexture",!0),this.Xa.set("visible",!0),this.Xa.set("alpha",0),this.Xa.set("side",THREE.DoubleSide))};a.prototype.AD=function(){this.Xa&&(this.Xa.remove(),this.Xa=null)};a.prototype.RN=function(){this.Rz();this.get("video")&&this.get("videoLevel")&&(this.zb=new this.Iga,this.zb.set("scriptObject",this.v),this.zb.set("video",this.get("video")),this.zb.set("level",this.get("videoLevel")),this.zb.set("visible",!0),this.zb.set("alpha",0), 3321this.zb.set("side",THREE.DoubleSide))};a.prototype.Rz=function(){this.zb&&(this.zb.remove(),this.zb=null)};a.prototype.qE=function(){this.trigger(m.hd);this.trigger(m.da)};a.prototype.tE=function(t,u){var v=0;u.ku(function(w){(w=u.Em(w))&&(v+=w.Tg)});this.trigger(new q(m.kc,v/u.ld.length))};a.prototype.maa=function(){return"video"==this.get("itemVisible")?this.zb:this.Xa};return a}); 3322define("ha","require pw lt cD eB mV mp fr kM oR".split(" "),function(a){var f=a("pw"),l=a("lt"),m=a("cD"),k=a("eB"),c=a("mV"),h=a("mp"),g=a("fr"),b=a("kM"),d=a("oR");return{yD: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", 3323void 0);this.eb=this.zb=null;this.Jga=!1;this.vR=this.jh=this.pm=this.Ma=this.yq=this.ga=null},eJ:function(){this.Rz()},Vi:function(e){this.k2a();this.JR();this.TR(e)},k2a:function(){this.R("scriptObject","video","level")&&(this.Rz(),this.zb=this.get("video"),this.eb=this.get("level"),this.v=this.get("scriptObject"),this.RN())},JR:function(){if(this.R("video","blending","chromaColor","chromaThreshold","chromaSmoothing","side")&&this.zb){var e=new m.jo(this.zb.Yi());e.jB=this.get("blending");e.fu= 3324this.get("chromaColor");e.wS=this.get("chromaThreshold");e.vS=this.get("chromaSmoothing");e.side=this.get("side");this.set("materialConfig",e)}},tm:function(){this.R("visible","composedAlpha","image","state")&&this.set("inView",this.get("visible")&&0<this.get("composedAlpha"));
3324this.R("composedAlpha","meshGroup","inView")&&k.ff(this.get("meshGroup"),this.get("inView")?this.get("composedAlpha"):0)},TR:function(){var e=!!this.jh&&this.jh.isEmpty(),n=this.ga&&this.ga.J2(),q=!!n&&n.isEmpty();q&&!e&&this.ga.getState()== 3325l.PLAYING&&this.v.get("loop")&&(n=this.jh,q=!1);this.set("frameEmpty",q);this.Ufa();!this.jh||n&&!this.jh.isEqual(n)?(this.jh=n,(e=this.jh.ct)&&"VIDEO"==e.tagName&&(e.width=this.get("contentWidth"),e.height=this.get("contentHeight")),this.vR.Nm(e),this.vR.update(),this.Ga()):this.ga.getState()==l.PLAYING&&this.Ga()},Ufa:function(){var e=this.ga.getCurrentTime(),n=this.ga.ui();this.get("frameEmpty")?this.set("hasStableContent",!1):e>this.tX+.1?this.set("hasStableContent",!0):0==e&&this.Gba>n-.5?this.set("hasStableContent", 3326!0):this.set("hasStableContent",!1);this.R("frameEmpty")&&!this.get("frameEmpty")&&(this.tX=e);!this.get("frameEmpty")&&0<e&&(this.Gba=e)},RN:function(){this.zb&&this.eb&&this.v&&(this.set("textureSource",this.vR=new g),this.vR.wU(!0),this.set("contentWidth",this.eb.get("width")),this.set("contentHeight",this.eb.get("height")),this.set("alpha",0),this.ga=new d(this.Ha.pp(),this.zb),this.ga.X9a(),this.yq=new c(this.v,this.ga),this.Ma=new h(this.Ha.pp(),this.v,this.ga),this.pm=new b(this.Ha.Wc.get("panorama"), 3327this.ga),this.Dv(),this.trigger(f.hd),this.trigger(f.da))},Rz:function(){this.ga&&(this.set("textureSource",this.vR=null),this.jx(),this.Ma.clear(),this.Ma=null,this.yq.clear(),this.yq=null,this.pm.clear(),this.pm=null,this.ga.clear(),this.jh=this.ga=null,this.set("frameEmpty",!0),this.set("hasStableContent",!1),this.eb=this.zb=null)},Dv:function(){this.ga.bind(d.Tf,this.kf,this,!0);this.ga.bind(f.ye,this.Mi,this,!0)},jx:function(){this.ga.unbind(d.Tf,this.kf,this,!0);this.ga.unbind(f.ye,this.Mi, 3328this,!0)},Mi:function(){this.Ga()},kf:function(){this.Ga()}}}); 3329define("oX",["require","ld","oi"],function(a){var f=a("ld"),l=a("oi");return{wo:function(){this.set("playbackPositions",null);this.set("distance",void 0);this.ce=this.ce.bind(this);this.wb=new l},Po:function(){f.ea(this.v,["playbackPositions","distance"],this.ce,!0)},Ro:function(){f.ca(this.v,["playbackPositions","distance"],this.ce)},ce:function(){this.set("distance",this.v.get("distance"));this.set("playbackPositions",this.v.get("playbackPositions"))},wf:function(){this.R("playbackPositions","currentTime")&& 3330(this.wb.ZB(this.get("playbackPositions")),this.wb.YB(this.get("currentTime")),this.set("vertices",this.wb.uia()),this.set("alpha",this.wb.il()));this.R("video","image","vertices","distance")&&this.ob().forEach(function(m){m.set("vertices",this.get("vertices"));m.set("distance",this.get("distance"))}.bind(this))}}}); 3331define("kI","require lQ fm c ee hs ha oX".split(" "),function(a){var f=a("lQ"),l=a("fm"),m=a("c"),k=a("ee"),c=a("hs"),h=a("ha");a=a("oX");var g=f.extend(m,k,c,function(){m.call(this);this.set("tag","QuadVideoHotspotImage")}),b=f.extend(m,k,h,function(){m.call(this);this.set("tag","QuadVideoHotspotVideo")});return f.extend(l,a,function(d){l.call(this,d);this.WD=g;this.Iga=b})}); 3332define("lo","require lQ ld lt kC ol w".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("lt"),k=a("kC"),c=a("ol"),h=a("w");a=f.extend(k,function(g){k.call(this);this.v=g;this.Lk=this.Lk.bind(this);this.Mk=this.Mk.bind(this);this.bn()});a.prototype.Zb=function(){k.prototype.Zb.call(this);this.v.set("state",this.v.get("startState"));l.ea(this.v,"color speed intensity size opacity maxDistance farPlaneDistance particleCount farPlaneParticleCount".split(" "),this.Lk,!0);l.ea(this.v,["state"],this.Mk, 3333!0)};a.prototype.ac=function(){l.ca(this.v,"color speed intensity size opacity maxDistance farPlaneDistance particleCount farPlaneParticleCount".split(" "),this.Lk);l.ca(this.v,["state"],this.Mk);this.v.set("state",m.V);k.prototype.ac.call(this)};a.prototype.Lk=function(){this.bn();this.HQ()};a.prototype.Mk=function(){this.q_=this.v.get("state");this.Ga()};a.prototype.bn=function(){k.prototype.bn.call(this);if(h.Df()){this.HD=this.lt=4;this.EE=2400;this.ID=1200;var g=1.5;var b=1.6}else this.lt=2, 3334this.HD=4,this.EE=4800,this.ID=2400,b=g=1;var d=this.v.get("intensity",.5);this.Gc=c.ds(this.v.get("color","#ffffff"));this.lQ=.24*this.v.get("opacity",.25)+.01;this.lQ*=2;this.GA=(d*(.37-.17)+.17)*g;g=(this.v.get("speed",.5)*(.09-.02)+.02)/this.GA*b;this.lP=.9*g;this.mE=1.1*g;this.EE=Math.round(this.v.get("particleCount",this.EE)*d);this.ID=Math.round(this.v.get("farPlaneParticleCount",this.ID)*d);this.LY=0;this.Mq=2;this.mt=-2;this.Yba=0;this.nN=.75;this.WN=.5;this.fY=this.v.get("initialState"); 3335this.v0=this.v.get("startDuration");this.B0=this.v.get("stopDuration");this.lt=this.v.get("maxDistance",this.lt);this.HD=this.v.get("farPlaneDistance",this.HD);this.cB()};a.prototype.XW=function(){var g=new THREE.MeshBasicMaterial;g.color=new THREE.Color(this.Gc[0]/255,this.Gc[1]/255,this.Gc[2]/255);g.side=THREE.FrontSide;g.transparent=!0;g.depthTest=!1;g.needsUpdate=!0;this.MD||(this.MD=new THREE.BoxGeometry(.01,.2,.01));return new THREE.Mesh(this.MD,g)};a.prototype.cB=function(){var g=this.tg&& 3336this.tg.children||[],b=new THREE.Color(this.Gc[0]/255,this.Gc[1]/255,this.Gc[2]/255);g.forEach(function(d){d.material.color=b;d.material.needsUpdate=!0})};return a}); 3337define("gL","require lQ A pw cI jC".split(" "),function(a){var f=a("lQ"),l=a("A"),m=a("pw"),k=a("cI"),c=a("jC"),h=f.extend(c,function(g,b,d,e){c.call(this);this.Vd=g;this.M=b;this.Wc=d;this.j=e;this.xP=new l;this.Cea(this);this.set("tag","Root");this.set("globalBlendingActive",0)});h.prototype.pp=function(){return this.Vd};h.prototype.Bf=function(g){return this.xP.get(g)};h.prototype.all=function(){for(var g=[],b=[this];0<b.length;){var d=b.pop();g.push(d);for(var e=d.Zd.length-1;0<=e;e--)b.push(d.Zd[e])}return g}; 3338h.prototype.update=function(g){var b=this.all(),d=b.length,e;for(e=0;e<d;e++)b[e].FPa();for(e=0;e<d;e++)b[e].set("index",e);for(e=0;e<d;e++)b[e].Ha&&b[e].oa(g);for(e=0;e<d;e++)b[e].wPa();if(this.dY){for(e=0;e<d;e++)b[e].BPa();this.update(g)}};h.prototype.Ga=function(){this.xg||this.trigger(new k(m.ba));c.prototype.Ga.call(this)};h.prototype.Zx=function(g){return Array.isArray(g)?g.map(this.Zx.bind(this)):this.xP.get(g)||h.L4a.create(g)};return h}); 3339define("go","require lQ ld lt kC w".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("lt"),k=a("kC"),c=a("w");a=f.extend(k,function(g){k.call(this);this.v=g;this.Lk=this.Lk.bind(this);this.Mk=this.Mk.bind(this);this.bn()});a.prototype.Zb=function(){k.prototype.Zb.call(this);this.v.set("state",this.v.get("startState"));l.ea(this.v,["intensity","speed"],this.Lk,!0);l.ea(this.v,["state"],this.Mk,!0)};a.prototype.ac=function(){l.ca(this.v,["intensity","speed"],this.Lk);l.ca(this.v,["state"],this.Mk); 3340this.v.set("state",m.V);k.prototype.ac.call(this)};a.prototype.Lk=function(){this.bn();this.HQ()};a.prototype.Mk=function(){this.q_=this.v.get("state");this.Ga()};a.prototype.bn=function(){k.prototype.bn.call(this);var g=this.v.get("intensity"),b=this.v.get("speed");if(c.pb()||c.browser()==c.ys){var d=1E3;var e=350;var n=1800;var q=400;var p=.8;var r=1.2}else c.Df()?(d=1500,e=500,n=2500,q=500,p=.8,r=1.2):(d=3E3,e=1E3,n=5E3,q=1E3,p=.6,r=1);this.fY=this.v.get("initialState");this.v0=this.v.get("startDuration"); 3341this.B0=this.v.get("stopDuration");this.nN=.75;this.WN=.5;this.lt=4;this.mt=-2;this.Mq=3;this.LY=35;this.HD=7;this.GA=(p+g*(r-p))/h;this.lP=this.mE=.15+1.35*b;this.EE=e+g*(d-e);this.ID=q+g*(n-q)};a.prototype.XW=function(){return new THREE.Sprite(this.Wv())};a.prototype.Wv=function(){var g=new THREE.SpriteMaterial;g.map=this.wq();g.side=THREE.FrontSide;g.transparent=!0;g.depthTest=!1;g.needsUpdate=!0;return g};a.prototype.wq=function(){if(this.Ia)return this.Ia;var g=document.createElement("canvas"); 3342g.width=g.height=h;var b=g.getContext("2d"),d=b.createRadialGradient(.5*g.width,.5*g.height,.2*g.height,.5*g.width,.5*g.height,.5*g.height);d.addColorStop(0,"rgba(255, 255, 255, 0.8)");d.addColorStop(1,"rgba(255, 255, 255, 0)");b.fillStyle=d;b.fillRect(0,0,g.width,g.height);this.Ia=new THREE.Texture;
3342this.Ia.colorSpace=THREE.SRGBColorSpace;this.Ia.image=g;this.Ia.needsUpdate=!0;return this.Ia};var h=32;return a}); 3343define("dg",["require","jH","w"],function(a){var f=a("jH"),l=a("w"),m=new THREE.Matrix4,k=Math.PI/180;return{Vv:function(){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("hfov",void 0);this.set("vfov",null);this.Gh=new THREE.Matrix4;this.Td=new THREE.Matrix4;this.Qo=new THREE.Matrix4;this.kn=new THREE.Matrix4;this.vj=new THREE.Matrix4;this.lm=new THREE.Matrix4;this.Pq=new THREE.Matrix4}, 3344k9:function(){var c=l.zd()==l.yi||l.browser()==l.ys?new THREE.CSS3DRectangle:new THREE.CSS3DObject;c.matrixAutoUpdate=!1;return c},Ex:function(c){if(this.R("contentWidth","contentHeight")){var h=this.get("cssObject");h.contentWidth=this.get("contentWidth");h.contentHeight=this.get("contentHeight");h.updateVertices()}h=!1;this.R("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.Gh.makeTranslation(.5*-this.get("composedTranslationX")*f.Fg,.5*this.get("composedTranslationY")* 3345f.Fg,.5*this.get("composedTranslationZ")*f.Fg),h=!0);this.R("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.Td.makeRotationY(-c.Ra*k),this.Td.multiply(m.makeRotationX(-this.get("composedDeltaPitch")*k)),this.Td.multiply(m.makeRotationY(this.get("composedDeltaYaw")*k)),this.Td.multiply(m.makeRotationY(c.Ra*k)),h=!0);this.R("yaw","pitch")&&(this.Qo.makeRotationY(-this.get("yaw")*k),this.Qo.multiply(m.makeRotationX(this.get("pitch")*k)),h=!0);if(this.R("flipHorizontally","hfov","vfov", 3346"composedTranslationX","composedTranslationY","composedTranslationZ")){h=this.get("contentWidth");var g=this.get("contentHeight"),b=this.get("hfov"),d=this.get("vfov");this.kn.makeTranslation(0,0,-(h/(2*Math.tan(b*k*.5))));var e=(this.get("flipHorizontally")?-1:1)*this.get("scale"),n=this.get("scale");d&&(n*=h*Math.tan(d*k*.5)/(g*Math.tan(b*k*.5)));this.lm.makeScale(e,n,1);h=!0}this.R("rotationX","rotationY","rotationZ","roll")&&(this.vj.makeRotationZ(this.get("roll")*k),this.vj.multiply(m.makeRotationY(this.get("rotationY")* 3347k)),this.vj.multiply(m.makeRotationX(this.get("rotationX")*k)),this.vj.multiply(m.makeRotationZ(this.get("rotationZ")*k)),h=!0);if(h||this.R("meshGroup"))this.Pq.copy(this.Gh),this.Pq.multiply(this.Td),this.Pq.multiply(this.Qo),this.Pq.multiply(this.kn),this.Pq.multiply(this.vj),this.Pq.multiply(this.lm),this.get("cssObject").matrix.copy(this.Pq),this.get("cssObject").matrixWorldNeedsUpdate=!0;this.set("cameraYaw",c.Ra);this.set("cameraPitch",c.pitch);this.set("cameraRoll",c.Dg);this.set("cameraHfov", 3348c.Ue);this.set("cameraWidth",c.width);this.set("cameraHeight",c.height);c.camera&&(h||this.R("cameraYaw","cameraPitch","cameraRoll","cameraHfov","cameraWidth","cameraHeight"))&&(this.get("cssObject").projectVertices(c.camera),this.set("geometryVisible",this.get("cssObject").isVisible),this.R("geometryVisible")&&this.eea())}}}); 3349define("mM",["require","ld","oi"],function(a){var f=a("ld"),l=a("oi");return{wo:function(){this.set("playbackPositions",null);this.ce=this.ce.bind(this);this.wb=new l},Po:function(){f.ea(this.v,["playbackPositions","width","height"],this.ce,!0)},Ro:function(){f.ca(this.v,["playbackPositions","width","height"],this.ce)},ce:function(){this.set("playbackPositions",this.v.get("playbackPositions"));this.set("contentWidth",this.v.get("width"));this.set("contentHeight",this.v.get("height"))},wf:function(){this.R("playbackPositions", 3350"currentTime")&&(this.wb.ZB(this.get("playbackPositions")),this.wb.YB(this.get("currentTime")),this.set("yaw",this.wb.get("yaw")),this.set("pitch",this.wb.get("pitch")),this.set("roll",this.wb.get("roll")),this.set("rotationX",this.wb.get("rotationX")),this.set("rotationY",this.wb.get("rotationY")),this.set("hfov",this.wb.get("hfov")),this.set("vfov",this.wb.get("vfov")));this.R("framePlane","holePlane","imagePlane","yaw","pitch","roll","rotationX","rotationY","hfov","vfov","contentWidth","contentHeight")&& 3351this.ob().forEach(function(m){m.set("yaw",this.get("yaw"));m.set("pitch",this.get("pitch"));
3351m.set("roll",this.get("roll"));m.set("rotationX",this.get("rotationX"));m.set("rotationY",this.get("rotationY"));m.set("hfov",this.get("hfov"));m.set("vfov",this.get("vfov"));m.set("contentWidth",this.get("contentWidth"));m.set("contentHeight",this.get("contentHeight"))}.bind(this))}}}); 3352define("nl","require lQ ca gf c dg oI cz hs kY mM".split(" "),function(a){var f=a("lQ"),l=a("ca"),m=a("gf"),k=a("c"),c=a("dg"),h=a("oI"),g=a("cz"),b=a("hs"),d=a("kY");a=a("mM");var e=f.extend(k,h,b,function(){k.call(this);this.set("tag","RectangleFrameHotspotImage")}),n=f.extend(m,c,g,function(){m.call(this);this.set("tag","RectangleFrameHotspotFrame")}),q=f.extend(k,h,d,function(){k.call(this);this.set("tag","RectangleFrameHotspotHole")});return f.extend(l,a,function(p){l.call(this,p);this.WD=e; 3353this.F$=n;this.Kaa=q})}); 3354define("oL",["require","ld","oi"],function(a){var f=a("ld"),l=a("oi");return{wo:function(){this.set("playbackPositions",null);this.set("scaleMode",void 0);this.set("distance",void 0);this.ce=this.ce.bind(this);this.wb=new l},Po:function(){f.ea(this.v,["playbackPositions","distance","scaleMode"],this.ce,!0)},Ro:function(){f.ca(this.v,["playbackPositions","distance","scaleMode"],this.ce)},ce:function(){this.set("scaleMode",this.v.get("scaleMode"));this.set("distance",this.v.get("distance"));this.set("playbackPositions", 3355this.v.get("playbackPositions"))},wf:function(){this.R("playbackPositions","currentTime")&&(this.wb.ZB(this.get("playbackPositions")),this.wb.YB(this.get("currentTime")),this.set("yaw",this.wb.get("yaw")),this.set("pitch",this.wb.get("pitch")),this.set("roll",this.wb.get("roll")),this.set("rotationX",this.wb.get("rotationX")),this.set("rotationY",this.wb.get("rotationY")),this.set("hfov",this.wb.get("hfov")),this.set("vfov",this.wb.get("vfov")),this.set("alpha",this.wb.il()));this.R("video","image", 3356"yaw","pitch","roll","rotationX","rotationY","hfov","vfov","distance","scaleMode","image","video")&&this.ob().forEach(function(m){m.set("yaw",this.get("yaw"));m.set("pitch",this.get("pitch"));m.set("roll",this.get("roll"));m.set("rotationX",this.get("rotationX"));m.set("rotationY",this.get("rotationY"));m.set("hfov",this.get("hfov"));m.set("vfov",this.get("vfov"));m.set("scaleMode",this.get("scaleMode"));m.set("distance",this.get("distance"))}.bind(this))}}}); 3357define("pz","require lQ fm c oI hs ha oL".split(" "),function(a){var f=a("lQ"),l=a("fm"),m=a("c"),k=a("oI"),c=a("hs"),h=a("ha");a=a("oL");var g=f.extend(m,k,c,function(){m.call(this);this.set("tag","RectangleVideoHotspotImage")}),b=f.extend(m,k,h,function(){m.call(this);this.set("tag","RectangleVideoHotspotVideo")});return f.extend(l,a,function(d){l.call(this,d);this.WD=g;this.Iga=b})}); 3358define("ef","require oj jC ig jk kn mN ch nV gw X oC dX bJ ke jJ kI lo gL go nl pz cg".split(" "),function(a){function f(E,I){Array.isArray(I)||(I=[I]);for(var A=0;A<I.length;A++)if(l.Ja(I[A],E))return!0;return!1}var l=a("oj"),m=a("jC"),k=a("ig"),c=a("jk"),h=a("kn"),g=a("mN"),b=a("ch"),d=a("nV"),e=a("gw"),n=a("X"),q=a("oC"),p=a("dX"),r=a("bJ"),t=a("ke"),u=a("jJ"),v=a("kI"),w=a("lo"),x=a("gL"),y=a("go"),z=a("nl"),B=a("pz");a("cg");a={};x.L4a=a;a.create=function(E){if(E instanceof m)return E;if(f(E, 3359["HDRPanorama","LivePanorama","Panorama","VideoPanorama"]))return new n(E);if(f(E,["CubicPanoramaFrame","SphericPanoramaFrame"]))return f(E,"SphericPanoramaFrame")&&E.Dm()?new p(E):new q(E);if(f(E,["DustPanoramaOverlay"]))return new c(E);if(f(E,"HotspotPanoramaOverlay"))return new g(E);if(f(E,["HotspotPanoramaOverlayImage","HotspotPanoramaOverlayMap"]))return new b(E);if(f(E,"Menu"))return new e(E);if(f(E,["CeilingCapPanoramaOverlay","TripodCapPanoramaOverlay"]))return new k(E);if(f(E,["FlatHotspotPanoramaOverlayImage", 3360"FlatHotspotPanoramaOverlayMap"]))return new h(E);if(f(E,["LensFlarePanoramaOverlay"]))return new d(E);if(f(E,["RainPanoramaOverlay"]))return new w(E);if(f(E,["SnowPanoramaOverlay"]))return new y(E);if(f(E,["PopupPanoramaOverlay"]))return new r(E);if(f(E,["QuadFramePanoramaOverlay"]))return new t(E);if(f(E,["QuadHotspotPanoramaOverlayImage","QuadHotspotPanoramaOverlayMap"]))return new u(E);if(f(E,["QuadVideoPanoramaOverlay"]))return new v(E);if(f(E,["FramePanoramaOverlay"]))return new z(E);if(f(E, 3361["VideoPanoramaOverlay"]))return new B(E);throw"Invalid script object";};return a}); 3362define("cs",["require","exports","three.mod"],function(a,f,l){return function(){function m(){}m.uDa=function(k,c,h,g,b,d){return m.h5a(k,c/g*2-1,2*-(h/b)+1,d)};
3362m.h5a=function(k,c,h,g){g||(g=new l.Ray);g.origin.setFromMatrixPosition(k.matrixWorld);g.direction.set(c,h,.5).unproject(k).sub(g.origin).normalize();return g};m.A5a=function(k,c){c||(c=new l.Ray);c.origin.set(0,0,0);c.direction.set(0,0,-1).applyQuaternion(k.quaternion);return c};m.z5a=function(k,c){c||(c=new l.Ray);c.origin.set(0,0,0).applyMatrix4(k); 3363c.direction.set(0,0,-1).applyMatrix4(k).sub(c.origin).normalize();return c};return m}()}); 3364define("mh","require lQ eB jZ mo fr oQ".split(" "),function(a){var f=a("lQ"),l=a("eB"),m=a("jZ"),k=a("mo"),c=a("fr"),h=a("oQ");a=f.extend(m,function(){m.call(this);this.T=null;this.set("tag","Reticle");this.set("changing",!1);this.set("over",!1);this.set("overProgress",void 0);this.set("visible",!0);this.set("attachToCamera",!0);this.Oo=null});a.prototype.oa=function(g){this.wr(g);this.wg(g);this.wf(g);m.prototype.oa.call(this,g)};a.prototype.wr=function(g){g.rb&&!this.Oo&&h.getType()==h.wv.xl&&this.ph([this.Oo= 3365new m])};a.prototype.wg=function(g){this.T||(this.set("textureSource",new c),this.T=new k(this.Ha.M.Bia()),this.get("textureSource").Nm(this.T.cg()),this.set("contentWidth",this.T.De()),this.set("contentHeight",this.T.Te()),this.set("hfov",6),this.set("distance",this.Ha.M.get("vrPointerDistance")));this.R("changing")&&this.T.zy(g.rb&&this.get("changing"));this.R("over","overProgress")&&this.T.OG(this.get("over"),this.get("overProgress"));this.T.update(g.Se)&&this.get("textureSource").update();this.get("changing")&& 3366this.Ga()};a.prototype.wf=function(){this.Ih()};a.prototype.tm=function(){this.R("composedAlpha","meshGroup","visible")&&this.rz()};a.prototype.rz=function(){l.ff(this.get("meshGroup"),this.get("visible")?this.get("composedAlpha"):0)};return a}); 3367define("bq","require jquery.mod es pw w pW hR".split(" "),function(a){function f(b){this.kb=b;this.nza=this.kb.Fo;this.kb.bind(k.Pb,this.Mf,this);this.xa=l("<span></span>");this.xa.css({"pointer-events":"none",position:"absolute","z-index":c.DMa,"text-align":"center",display:"none"});this.re=l("<span></span>");this.re.css({position:"absolute",left:0,top:0,right:0,bottom:0});this.xa.append(this.re);this.L0=l("<span></span>");this.L0.css({position:"relative"});this.xa.append(this.L0);this.xj=this.hY= 3368this.Yg=null;this.Xw=this.Ww=void 0;this.vw=!1;this.oza=void 0}var l=a("jquery.mod"),m=a("es"),k=a("pw");a("w");var c=a("pW"),h=a("hR"),g={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, 3369toolTipPaddingBottom: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};f.prototype.gd=function(){return this.xa};f.prototype.IG=function(b){if(!this.nza){for(;b&& 3370b.get("toolTipDisabled");)b=b.getParent();this.hide();this.Yg&&m(m(g).keys()).each(function(d){this.Yg.unbind(k.F(d),this.Ica,this)},this);if(this.Yg=b)m(m(g).keys()).each(function(d){this.Yg.bind(k.F(d),this.Ica,this)},this),this.Ica()}};f.prototype.Uab=function(b,d){this.Yg=b;this.oza=d;this.oY()||(this.vw?this.Dya():this.oR())};f.prototype.Bya=function(b,d,e){this.vw&&this.Yg.trigger(k.Jna);this.a1a(b);this.L0.html(this.MTa(d));this.Hpa=e;this.wf();this.Yg.trigger(k.CMa);this.vw=!0;this.xa.css("display", 3371"inline");(e||b.get("checkToolTipOcclusion"))&&this.s_a(b)};f.prototype.wf=function(){var b=this.Eq(),d=b.x;b=b.y;var e=this.xa.outerWidth(),n=this.xa.outerHeight();if(this.Hpa){d-=.5*this.xa.width();var q=this.Yg.get("toolTipCenteredOffsetY");b=void 0===q?b-.5*this.xa.height():0<q?b+q:b-(this.xa.height()-q)}d=Math.max(Math.min(d,this.kb.Za()-e-3),3);b=Math.max(Math.min(b,this.kb.Cb()-n-3),3);this.xa.css("left",d+"px");this.xa.css("top",b+"px")};f.prototype.Eq=function(){var b={};if(this.Hpa){var d= 3372this.Yg.gd().offset();b.x=d.left+.5*this.Yg.Za();b.y=d.top+.5*this.Yg.Cb()}else b.x=this.Ww,b.y=this.Xw+25;return b};f.prototype.hide=function(){this.tD();this.Sya();this.vw&&(this.xa.css("display","none"),this.Yg.trigger(k.Jna),this.vw=!1)};
3372f.prototype.Ica=function(){this.Yg.get("toolTip")?this.oY()||(this.vw?this.Cya():this.oR()):this.oY()?this.tD():this.vw&&this.hide()};f.prototype.Mf=function(b){this.Ww=b.pageX;this.Xw=b.pageY;this.vw&&this.Yg.get("toolTipFollowMouse")&&this.wf()};f.prototype.Cya= 3373function(){this.Bya(this.Yg,this.Yg.get("toolTip"),this.Yg.get("toolTipCentered"))};f.prototype.Dya=function(){this.Bya(this.Yg,this.oza,!0)};f.prototype.oY=function(){return null!=this.xj};f.prototype.oR=function(){var b=this.Yg&&this.Yg.get("toolTipDisplayTime");if(void 0===b||null===b)b=g.toolTipDisplayTime;this.tD();this.xj=setTimeout(function(){this.xj=null;this.nza?this.Dya():this.Cya()}.bind(this),b)};f.prototype.tD=function(){this.oY()&&(clearTimeout(this.xj),this.xj=null)};f.prototype.s_a= 3374function(b){var d=this.Eq();this.Sya();var e=function(){this.xa.css("display",this.vw&&!this.SUa(b,d.x,d.y)?"inline":"none")}.bind(this);this.hY=setInterval(e,300);e()};f.prototype.Sya=function(){this.hY&&(clearInterval(this.hY),this.hY=null)};f.prototype.a1a=function(b){function d(p){var r=b.get(p);return void 0===r?g[p]:r}var e={};e.opacity=d("toolTipOpacity");e.filter=e["-ms-filter"]="alpha(opacity="+Math.round(100*d("toolTipOpacity"))+")";e.paddingTop=d("toolTipPaddingTop")+"px";e.paddingBottom= 3375d("toolTipPaddingBottom")+"px";e.paddingLeft=d("toolTipPaddingLeft")+"px";e.paddingRight=d("toolTipPaddingRight")+"px";e["text-align"]=d("toolTipHorizontalAlign");this.xa.css(e);e={};e.opacity=d("toolTipBackgroundOpacity");e.filter=e["-ms-filter"]="alpha(opacity="+Math.round(100*d("toolTipBackgroundOpacity"))+")";e["background-color"]=d("toolTipBackgroundColor");e.border=[d("toolTipBorderSize")+"px","solid",d("toolTipBorderColor")].join(" ");var n=d("toolTipShadowColor");e["-moz-box-shadow"]=e["-webkit-box-shadow"]= 3376e["box-shadow"]=[d("toolTipShadowHorizontalLength")+"px",d("toolTipShadowVerticalLength")+"px",d("toolTipShadowBlurRadius")+"px",d("toolTipShadowSpread")+"px","rgba("+parseInt("0x"+n.substr(1,2))+", "+parseInt("0x"+n.substr(3,2))+", "+parseInt("0x"+n.substr(5,2))+", "+d("toolTipShadowOpacity")+")"].join(" ");e["-moz-border-radius"]=e["-webkit-border-radius"]=e.borderRadius=d("toolTipBorderRadius")+"px";this.re.css(e);e={};e["font-family"]=h.Tx(d("toolTipFontFamily"));n=d("toolTipFontSize");m(n).isNumber()? 3377n+="px":m(n).isString()||(n="");e["font-size"]=n;e["font-weight"]=d("toolTipFontWeight");e["font-style"]=d("toolTipFontStyle");e.color=d("toolTipFontColor");n=d("toolTipTextShadowColor");e["-moz-text-shadow"]=e["-webkit-text-shadow"]=e["text-shadow"]=[d("toolTipTextShadowHorizontalLength")+"px",d("toolTipTextShadowVerticalLength")+"px",d("toolTipTextShadowBlurRadius")+"px","rgba("+parseInt("0x"+n.substr(1,2))+", "+parseInt("0x"+n.substr(3,2))+", "+parseInt("0x"+n.substr(5,2))+", "+d("toolTipTextShadowOpacity")+ 3378")"].join(" ");var q=0==d("toolTipTextShadowVerticalLength")&&0==d("toolTipTextShadowHorizontalLength")?135:45*Math.round(4*Math.atan2("toolTipTextShadowHorizontalLength",-d("toolTipTextShadowVerticalLength"))/Math.PI);e.filter="progid:DXImageTransform.Microsoft.Shadow(color=#"+function(p){for(p=p.toString(16);2>p.length;)p="0"+p;return p}(255*d("toolTipTextShadowOpacity"))+n.substr(1,6)+",direction="+q+")";this.L0.css(e)};f.prototype.SUa=function(b,d,e){d=document.elementsFromPoint(d,e);b=b.gd()[0]; 3379e=this.kb.gd()[0];for(var n=0;n<d.length;n++){var q=d[n];if(b==q||b.contains(q))break;if(!this.xa[0].contains(q)&&e.contains(q)){var p=window.getComputedStyle(q);if("none"!=p.display&&"hidden"!=p.visibility&&.29<("CANVAS"==q.tagName?1:this.MPa(p.backgroundColor))*p.opacity)return!0}}return!1};f.prototype.MPa=function(b){if(!b)return 0;b=b.toLowerCase();var d=b.match(/rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*(\d*\.?\d*)\s*\)/);return d?parseFloat(d[1]):b.match(/transparent/)?0:1};f.prototype.MTa=function(b){b= 3380(b||"").split("\n");for(var d=0;d<b.length;d++)b[d]=this.CRa(b[d]);return b.map(function(e){return"<div>"+e+"</div>"})};f.prototype.CRa=function(b){f.zoa.nodeValue=b;(b=f.voa.innerHTML)||(b=" ");return b};f.aLa=g;f.voa=document.createElement("pre");f.zoa=document.createTextNode("");f.voa.appendChild(f.zoa);return f}); 3381define("db",["require","bq","bY","hR"],function(a){function f(h,g){this.M=h;this.rm=g;this.j_a()}var l=a("bq"),m=a("bY"),k=a("hR"),c=180/Math.PI;f.prototype.cg=function(){return this.T};f.prototype.De=function(){return this.T.width};f.prototype.Te=function(){return this.T.height};f.prototype.Ce=function(){return 2*Math.atan2(this.T.width/3*.5,600)*c};f.prototype.j_a=function(){this.T=document.createElement("canvas");
3381var h=this.rm.split("\n"),g=this.ah("toolTipBackgroundColor"),b=this.ah("toolTipBackgroundOpacity"), 3382d=this.ah("toolTipBorderRadius"),e=this.ah("toolTipBorderColor"),n=this.ah("toolTipBorderSize");this.ah("toolTipDisplayTime");var q=this.ah("toolTipFontFamily"),p=this.ah("toolTipFontSize"),r=this.ah("toolTipFontColor"),t=this.ah("toolTipFontWeight"),u=this.ah("toolTipFontStyle"),v=this.ah("toolTipPaddingBottom"),w=this.ah("toolTipPaddingLeft"),x=this.ah("toolTipPaddingTop"),y=this.ah("toolTipPaddingRight"),z=this.ah("toolTipOpacity"),B=this.ah("toolTipTextShadowBlurRadius"),E=this.ah("toolTipTextShadowColor"), 3383I=this.ah("toolTipTextShadowHorizontalLength"),A=this.ah("toolTipTextShadowVerticalLength"),C=this.ah("toolTipTextShadowOpacity");isNaN(p)&&(p=12);d=Math.round(3*d);n=Math.round(3*n);p=Math.round(3*p);v=Math.round(3*v);w=Math.round(3*w);x=Math.round(3*x);y=Math.round(3*y);B=Math.round(3*B);I=Math.round(3*I);A=Math.round(3*A);var J=new m.p7;J.fontFamily=q;J.fontSize=Math.round(p)+"px";J.fontWeight=t;J.fontStyle=u;this.T=document.createElement("canvas");var D=this.T.getContext("2d"),O=h.map(function(X){return m(X, 3384J,D)}),R=0,U=0;O.forEach(function(X){R=Math.max(X.width,R);U+=X.height});var V=1<h.length?U/h.length*.25:0;U+=(h.length-1)*V;y=n+w+R+y+n;v=n+x+U+v+n;this.T.width=this.T.height=Math.max(256,Math.max(128,Math.pow(2,Math.ceil(Math.log(Math.max(y,v))/Math.LN2))));D=this.T.getContext("2d");var W=.5*(this.T.width-y),K=.5*(this.T.height-v);D.save();D.translate(W,K);D.globalAlpha=z;D.strokeStyle=e;D.fillStyle="transparent"===g?"rgba(0,0,0,0)":this.Loa(b,g);D.lineWidth=n;D.beginPath();D.moveTo(d,0);D.lineTo(y- 3385d,0);D.quadraticCurveTo(y,0,y,d);D.lineTo(y,v-d);D.quadraticCurveTo(y,v,y-d,v);D.lineTo(d,v);D.quadraticCurveTo(0,v,0,v-d);D.lineTo(0,d);D.quadraticCurveTo(0,0,d,0);D.closePath();D.fill();0<n&&D.stroke();D.fillStyle=r;D.font=t+" "+("normal"!=u?u+" ":"")+p+(isNaN(p)?"":"px")+" "+k.Tx(q);D.shadowColor=this.Loa(C,E);D.shadowOffsetX=I;D.shadowOffsetY=A;D.shadowBlur=B;D.textBaseline="middle";D.textAlign="center";var M=n+w+.5*R,S=n+x;h.forEach(function(X,ba){D.fillText(X,Math.round(M),Math.round(S+.5*O[ba].height)); 3386S+=O[ba].height+V})};f.prototype.ah=function(h){var g=this.M.get(h);return void 0===g?l.aLa[h]:g};f.prototype.Loa=function(h,g){return"rgba("+parseInt("0x"+g.substr(1,2))+", "+parseInt("0x"+g.substr(3,2))+", "+parseInt("0x"+g.substr(5,2))+", "+h+")"};return f}); 3387define("pq","require lQ jH jZ db fr oQ".split(" "),function(a){var f=a("lQ"),l=a("jH"),m=a("jZ"),k=a("db"),c=a("fr"),h=a("oQ");a=f.extend(m,function(){m.call(this);this.T=null;this.set("tag","ToolTip");this.set("text","");this.lp=new THREE.Vector3(0,0,-l.Rr());this.Oo=null});a.prototype.oa=function(e){this.wr(e);this.wg(e);m.prototype.oa.call(this,e)};a.prototype.wr=function(e){e.rb&&!this.Oo&&h.getType()==h.wv.xl&&this.ph([this.Oo=new m])};a.prototype.wg=function(e){if(!this.T||this.R("text")){this.get("textureSource")|| 3388this.set("textureSource",new c);this.T=new k(this.Ha.M,this.get("text"));this.get("textureSource").Nm(this.T.cg());this.set("contentWidth",this.T.De());this.set("contentHeight",this.T.Te());this.set("hfov",this.T.Ce());this.set("distance",this.Ha.M.get("vrPointerDistance"));var n=this.get("matrix"),q=this.get("intersectionYaw"),p=this.get("intersectionPitch");void 0!==q&&void 0!==p?(this.set("yaw",q),this.set("pitch",p+b),this.set("distance",this.get("intersectionDistance"))):n?(this.lp.applyMatrix4(n), 33890==this.lp.x&&0==this.lp.z||this.set("yaw",g*Math.atan2(this.lp.x,-this.lp.z)),0==this.lp.y&&0==this.lp.z||this.set("pitch",g*Math.atan2(this.lp.y,Math.sqrt(this.lp.z*this.lp.z+this.lp.x*this.lp.x))+b)):(this.set("yaw",e.Ra),this.set("pitch",e.pitch+d))}};var g=180/Math.PI,b=2,d=5;return a}); 3390define("oH",["require","exports","cs","V"],function(a,f,l,m){return function(){function k(c,h){this.nf=c;this.j=h}k.prototype.update=function(){};k.prototype.clear=function(){};k.prototype.getType=function(){return this.nf};k.prototype.gDa=function(c){return this.FX=(c=c.Eg&&m.getCamera(c.Eg))?l.A5a(c,this.FX):void 0};k.dN="webxr";k.w7="gaze";k.OV="gaze_click";k.Qna="laser";k.bN="mouse";k.cN="touch";return k}()}); 3391define("fw",["require","exports","oH","bh"],function(a,f,l,m){return function(){function k(c,h,g,b,d){void 0===d&&(d=!0);this.ee=c;this.ir=h;this.FX=g;this.tf=b;this.bta=d;this.Dpa=[];this.Nk=[];this.hR={};this.Haa=[];this.$b="";this.XA=Number.MAX_VALUE}k.prototype.Gu=function(){return this.ee};k.prototype.fL=function(){return this.FX};k.prototype.zu=function(){return this.ee.getType()==l.bN};k.prototype.Yia=function(){return this.ee.getType()==l.dN};k.prototype.iG=function(){return this.ee.getType()== 3392l.cN};k.prototype.h7a=function(){return this.ee.getType()==l.w7};k.prototype.ZAa=function(c,h){this.hR[h]=(this.hR[h]||[]).concat(c)};k.prototype.cJa=function(){return k.VKa.find(this.F6a.bind(this))};k.prototype.F6a=function(c){return void 0!==this.hR[c]&&0<this.hR[c].length?!0:!1};k.prototype.B5=function(){return 0<Object.keys(this.hR).length};k.prototype.AF=function(c){this.ZAa(c,m.Je)};k.prototype.R2a=function(c){this.Haa=this.Haa.concat(c)};k.prototype.r4a=function(){return!this.cJa()&&0<this.Haa.length}; 3393k.prototype.fB=function(c){this.Nk=this.Nk.concat(c)};k.prototype.wi=function(){return 0<this.Nk.length};k.prototype.el=function(c){c&&(void 0===this.S9||this.S9>c)&&(this.S9=c)};k.prototype.xu=function(){return this.S9};k.prototype.I1=function(c,h){if(""==this.$b||this.XA>h)this.$b=c,this.XA=h};k.prototype.Iy=function(){return this.$b};k.prototype.ps=function(c){this.Dpa=void 0===c?[]:Array.isArray(c)?c:[c]};k.prototype.fl=function(){return 0<this.Dpa.length};k.VKa=[m.Uh,m.Vma,m.bz,m.Je,m.Ie];return k}()}); 3394define("cT","require lQ pw bs cs V mh pq fw oH oQ".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("bs");a("cs");a("V");var k=a("mh"),c=a("pq"),h=a("fw"),g=a("oH"),b=a("oQ");a=f.extend(g,function(d,e){g.call(this,g.w7,d);this.ek=this.C=null;this.Nk=[];this.od=this.Rv=!1;this.BO=null;this.Esa=void 0;this.OQ=null;this.swa=void 0;this.te=new k;this.j.add(this.te);this.hp="";this.$b=new c;this.$b.set("alpha",0);this.j.add(this.$b);this.pea=e?this.j.M.get("vrPointerSelectionTime"):void 0;this.Fsa=this.j.M.get("vrGazePointerHideTime"); 3395this.P0=this.P0.bind(this);this.Vl=this.Vl.bind(this);document.body.addEventListener("touchend",this.P0);document.addEventListener("keyup",this.Vl,!0);b.N.bind(l.gq,this.LAa,this,!0);this.Vfa();this.pga()});a.prototype.clear=function(){document.body.removeEventListener("touchend",this.P0);document.removeEventListener("keyup",this.Vl,!0);b.N.unbind(l.gq,this.LAa,this,!0);this.dfa();this.j.remove(this.te);this.te=null;this.j.remove(this.$b);this.$b=null};a.prototype.update=function(d){this.C=d;this.oZa(d.Hr); 3396this.cl()};a.prototype.P0=function(){this.iI()};a.prototype.Vl=function(d){d.code!=m.na.qV&&d.code!=m.na.EH||this.iI()};a.prototype.LAa=function(){this.iI()};a.prototype.iI=function(){var d=this.Dk(l.Uf);this.Yk(d);this.bF(!1);this.Efa()};a.prototype.Efa=function(){this.j.Db().trigger(l.TC,{sM:l.Uf})};a.prototype.cl=function(){var d=this.Dk(l.Bl);this.Yk(d);this.sx(d.Iy());a:{var e=this.Nk;for(var n=d.Nk,q=0;q<e.length;q++)if(0>
3396n.indexOf(e[q])){e=!1;break a}for(q=0;q<n.length;q++)if(0>e.indexOf(n[q])){e= 3397!1;break a}e=!0}e||(this.bF(!1),this.Nk=d.Nk,this.Nk.length&&this.bF(!0,d.B5()))};a.prototype.oZa=function(d){this.Rv!=d&&(this.Rv=d,this.te.set("changing",this.Rv),this.Vfa(),this.pga())};a.prototype.bF=function(d,e){this.od!=d&&(this.od=d,this.te.set("over",this.od&&e),this.Vfa(),this.pga())};a.prototype.sx=function(d){this.hp!=d&&(this.hp=d,this.$b.set("text",this.hp),this.$b.set("alpha",this.hp?1:0),this.hp&&this.$b.Ih())};a.prototype.Yk=function(d){this.j.eT().sort(function(e,n){return n.get("index")- 3398e.get("index")}).forEach(function(e){e.Mm(d)}.bind(this))};a.prototype.Dk=function(d){this.ek=this.gDa(this.C);return new h(this,this.ek?[this.ek]:[],this.ek,d)};a.prototype.pga=function(){!this.od||this.Rv||void 0===this.pea?this.dfa():this.od&&!this.OQ&&this.M_a()};a.prototype.Vfa=function(){this.od||this.Rv||void 0===this.Fsa?(this.te.set("alpha",1),this.Wya()):1!=this.te.get("alpha")||this.BO||this.y_a()};a.prototype.dfa=function(){this.OQ&&(clearInterval(this.OQ),this.OQ=null)};a.prototype.M_a= 3399function(){this.te.set("overProgress",0);this.swa=(new Date).getTime();this.OQ=setInterval(this.QWa.bind(this),100)};a.prototype.QWa=function(){var d=(new Date).getTime()-this.swa;d>=this.pea?(this.dfa(),this.iI()):this.te.set("overProgress",d/this.pea)};a.prototype.Wya=function(){this.BO&&(clearInterval(this.BO),this.BO=null)};a.prototype.y_a=function(){this.Esa=(new Date).getTime();this.BO=setInterval(this.iWa.bind(this),10)};a.prototype.iWa=function(){var d=this.Fsa-((new Date).getTime()-this.Esa); 3400this.te.set("alpha",Math.max(.01,Math.min(1,d/500)));0>=d&&this.Wya()};return a}); 3401define("lg","require lQ jH cD eB fr h ol".split(" "),function(a){var f=a("lQ"),l=a("jH"),m=a("cD"),k=a("eB"),c=a("fr"),h=a("h"),g=a("ol"),b=new THREE.Matrix4,d=Math.PI/180;a=f.extend(h,function(){h.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.Nda=this.CQ=this.Bt=this.Mda=null;new THREE.Matrix4;this.Oda=new THREE.Matrix4;this.Oda.multiply(b.makeRotationX(-90* 3402d));this.Oda.multiply(b.makeTranslation(0,.5*e,0));this.lX=this.kX=this.jX=this.bw=this.W9=null;new THREE.Matrix4;this.X9=new THREE.Matrix4;this.LN=this.iX=this.V9=null;new THREE.Matrix4;this.xD=[new THREE.Matrix4,new THREE.Matrix4,new THREE.Matrix4];this.xD[0].multiply(b.makeRotationX(-90*d));this.xD[0].multiply(b.makeTranslation(0,.5*-q,0));this.xD[1].multiply(b.makeRotationX(-90*d));this.xD[1].multiply(b.makeTranslation(0,.5*-q,.5*-n));this.xD[2].multiply(b.makeRotationX(-90*d));this.xD[2].multiply(b.makeTranslation(0, 3403.5*-q,-n))});a.prototype.oa=function(p){h.prototype.oa.call(this,p);this.rga();this.dB()};a.prototype.rga=function(){this.R("visible")&&(this.get("meshGroup").visible=this.get("visible"));this.R("dotVisible")&&k.ff([this.kX,this.iX],this.get("dotVisible")?1:0)};a.prototype.dB=function(){this.R("over","pressed")&&(this.Uza(),this.mAa())};var e=.35,n=.012,q=.1;a.prototype.vo=function(){this.iX=k.create(new THREE.SphereGeometry(2.3,32,32),this.jQa());this.kX=k.create(new THREE.SphereGeometry(2,32,32), 3404this.kQa());this.Nda=k.create(new THREE.CylinderGeometry(.003,.003,e,8),this.KQa());this.mI=[];this.mI.push(k.create(new THREE.CylinderGeometry(n,n,q,32),this.m9()));this.mI.push(k.create(new THREE.BoxGeometry(2*n,q,n),this.m9()));this.mI.push(k.create(new THREE.CylinderGeometry(n,n,q,32),this.m9()));return[this.iX,this.kX,this.Nda].concat(this.mI)};a.prototype.jQa=function(){if(null==this.V9){var p=document.createElement("canvas");p.width=p.height=256;var r=p.getContext("2d"),t=new c;t.Nm(p);this.V9= 3405m.Kr(t.texture(),new m.jo);r.fillStyle="rgba(0, 0, 0, 0.75)";r.clearRect(0,0,p.width,p.height);r.fillRect(0,0,p.width,p.height)}return this.V9};a.prototype.kQa=function(){null==this.W9&&(this.bw=document.createElement("canvas"),this.bw.width=this.bw.height=256,this.jX=this.bw.getContext("2d"),this.lX=new c,this.lX.Nm(this.bw),this.W9=m.Kr(this.lX.texture(),new m.jo),this.Uza());return this.W9};a.prototype.Uza=function(){this.jX.fillStyle=this.Q$();this.jX.clearRect(0,0,this.bw.width,this.bw.height); 3406this.jX.fillRect(0,0,this.bw.width,this.bw.height);this.lX.update()};a.prototype.KQa=function(){null==this.Mda&&(this.Bt=document.createElement("canvas"),this.Bt.width=this.Bt.height=256,this.CQ=this.Bt.getContext("2d"),this.Pda=new c,this.Pda.Nm(this.Bt),this.Mda=m.Kr(this.Pda.texture(),new m.jo),this.mAa());return[this.Mda]};a.prototype.mAa=function(){var p=g.ds(this.Q$()).join(", "),r=this.CQ.createLinearGradient(0,0,0,this.Bt.height);r.addColorStop(0,"rgba("+p+", 0)");r.addColorStop(.5,"rgba("+ 3407p+", 1)");r.addColorStop(1,"rgba("+p+", 1)");this.CQ.fillStyle=r;this.CQ.clearRect(0,0,this.Bt.width,this.Bt.height);this.CQ.fillRect(0,0,this.Bt.width,this.Bt.height);this.Pda.update()};a.prototype.m9=function(){if(null==this.LN){var p=document.createElement("canvas");p.width=p.height=256;var r=p.getContext("2d"),t=new c;t.Nm(p);this.LN=m.Kr(t.texture(),new m.jo);
3407r.fillStyle="rgba(64, 64, 64, 1)";r.clearRect(0,0,p.width,p.height);r.fillRect(0,0,p.width,p.height)}return[this.LN,this.LN,this.LN]}; 3408a.prototype.yr=function(){var p=!1,r=!1,t=!1;if(this.R("intersectionDistance")){r=(r=this.get("intersectionDistance"))?l.pu(r):l.Rr();var u=r/l.Rr();this.X9.makeTranslation(0,0,-r);this.X9.multiply(b.makeScale(u,u,u));r=!0}this.R("matrix")&&(t=r=p=!0);r&&(b.identity(),(r=this.get("matrix"))&&b.multiply(r),b.multiply(this.X9),k.Jr(this.kX,b),k.Jr(this.iX,b));p&&(b.identity(),(r=this.get("matrix"))&&b.multiply(r),b.multiply(this.Oda),k.Jr(this.Nda,b));if(t)for(r=this.get("matrix"),p=0;p<this.mI.length;p++)b.identity(), 3409r&&b.multiply(r),b.multiply(this.xD[p]),k.Jr(this.mI[p],b)};a.prototype.uF=function(){if(this.R("index","meshGroup")){var p=this.get("meshGroup");p&&p.children.forEach(function(r){k.X4(r,this.get("index"))}.bind(this))}};a.prototype.Q$=function(){return this.get("pressed")?this.Ha.M.get("vrPointerSelectionColor"):this.get("over")?this.Ha.M.get("vrPointerOverColor"):this.Ha.M.get("vrPointerColor")};return a}); 3410define("ex","require lQ pw cs lg mh pq fw oH hE oQ of".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cs"),k=a("lg"),c=a("mh"),h=a("pq"),g=a("fw"),b=a("oH"),d=a("hE"),e=a("oQ"),n=a("of"),q=new THREE.Matrix4,p=Math.PI/180;a=f.extend(b,function(r){b.call(this,b.Qna,r);this.ek=this.C=null;this.Nk=[];this.Wj=new k;this.j.add(this.Wj);this.te=new c;this.j.add(this.te);this.Tk=!1;this.hp="";this.$b=null;this.Nl=new THREE.Matrix4});a.prototype.clear=function(){this.j.remove(this.Wj);this.j.remove(this.te); 3411this.te=this.Wj=null;this.$b&&this.j.remove(this.$b);this.$b=null};a.prototype.update=function(r){this.C=r;this.te.set("changing",r.Hr);this.te.set("visible",r.Hr);var t=d.Zi();if(t&&!t.k7a()){var u=t.quaternion(),v=t.position(),w=e.mh&&e.Bc,x=n.Ra(e.mh&&e.bg);this.Nl.identity();v?(this.Nl.multiply(q.makeRotationY((x-r.Ra)*p)),this.Nl.multiply(q.makeTranslation(-w.x,-w.y,-w.z)),this.Nl.multiply(q.makeTranslation(v.x,v.y,v.z)),this.Nl.multiply(q.makeRotationFromQuaternion(u))):(this.Nl.multiply(q.makeRotationY(-r.Ra* 3412p)),t.hand()==d.ab?this.Nl.multiply(q.makeTranslation(-.2,-.4,0)):this.Nl.multiply(q.makeTranslation(.2,-.4,0)),this.Nl.multiply(q.makeRotationY(x*p)),this.Nl.multiply(q.makeRotationFromQuaternion(u)),this.Nl.multiply(q.makeTranslation(0,0,-.3)));this.Wj.set("matrix",null);this.Wj.set("matrix",this.Nl);this.Wj.set("pressed",t.pressed());this.Wj.set("visible",!0)}else this.Wj.set("visible",!1);this.cl();r=!!t&&t.pressed();this.Tk!=r&&(this.Tk&&this.iI(),this.Tk=r);this.Wj.Ih();this.te.Ih()};a.prototype.iI= 3413function(){var r=this.Dk(l.Uf);this.Yk(r);this.Wj.set("over",!0);this.Wj.set("dotVisible",!0);this.Wj.set("intersectionDistance",r.xu());d.Zi();this.Efa()};a.prototype.Efa=function(){this.j.Db().trigger(l.TC,{sM:l.Uf})};a.prototype.cl=function(){var r=this.Dk(l.Bl);this.Yk(r);this.sx(r.Iy());a:{var t=this.Nk;for(var u=r.Nk,v=0;v<t.length;v++)if(0>u.indexOf(t[v])){t=!1;break a}for(v=0;v<u.length;v++)if(0>t.indexOf(u[v])){t=!1;break a}t=!0}t||!r.B5()&&!this.Wj.get("over")||(this.Nk=r.Nk,d.Zi());this.Wj.set("over", 3414r.B5());this.Wj.set("intersectionDistance",r.xu());this.Wj.set("dotVisible",!r.r4a())};a.prototype.sx=function(r){this.hp!=r&&(this.hp&&this.j.remove(this.$b),this.hp=r)&&(this.$b=new h(this.hp),this.$b.set("text",this.hp),this.$b.set("matrix",null),this.$b.set("matrix",this.Nl),this.j.add(this.$b))};a.prototype.Yk=function(r){this.j.eT().sort(function(t,u){return u.get("index")-t.get("index")}).forEach(function(t){t.Mm(r)}.bind(this))};a.prototype.Dk=function(r){this.ek=m.z5a(this.Nl,this.ek);return new g(this, 3415[this.ek],this.gDa(this.C),r)};return a}); 3416define("jF","require lQ pw cs V fw oH bh".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cs"),k=a("V"),c=a("fw"),h=a("oH"),g=a("bh");a=f.extend(h,function(b){h.call(this,h.bN,b);this.j.M.bind(l.Pb,this.Yj,this,!0);this.j.M.bind(l.Zp,this.Lta,this,!0);this.j.M.bind(l.Jb,this.zYa,this,!0);this.j.M.bind(l.gb,this.be,this,!0);this.j.M.bind(l.Eb,this.Zj,this,!0);this.Xw=this.Ww=this.ax=this.Kn=this.nd=this.md=void 0;this.ek=this.C=null;this.hK=void 0;this.$b=""});a.prototype.clear=function(){this.j.M.unbind(l.Pb, 3417this.Yj,this,!0);this.j.M.unbind(l.Zp,this.Lta,this,!0);this.j.M.unbind(l.gb,this.be,this,!0);this.j.M.unbind(l.Eb,this.Zj,this,!0);this.vga&&(this.j.$L(g.Je),this.vga=!1);this.sx("")};a.prototype.update=function(b){this.C=b;this.cga()};a.prototype.tDa=function(){return{x:this.md,y:this.nd,pageX:this.Ww,pageY:this.
3417Xw}};a.prototype.Yj=function(b){this.md=b.x;this.nd=b.y;this.Ww=b.pageX;this.Xw=b.pageY;this.d1()};a.prototype.Lta=function(){this.Xw=this.Ww=this.nd=this.md=void 0;this.d1()};a.prototype.zYa= 3418function(){this.Xw=this.Ww=this.nd=this.md=void 0;this.d1()};a.prototype.be=function(b){this.md=this.Kn=b.x;this.nd=this.ax=b.y;this.Ww=b.pageX;this.Xw=b.pageY;this.Yk(this.Dk(l.lz))};a.prototype.Zj=function(b){this.md=b.x;this.nd=b.y;this.Ww=b.pageX;this.Xw=b.pageY;this.Yk(this.Dk(l.DH));this.rba(this.Kn,this.ax,this.md,this.nd)&&this.Yk(this.Dk(l.Uf))};a.prototype.cga=function(){this.zr||(this.zr=setTimeout(function(){this.zr=null;this.cl()}.bind(this),300))};a.prototype.d1=function(){this.zr&& 3419(clearTimeout(this.zr),this.zr=null);this.cl()};a.prototype.cl=function(){var b=this.Dk(l.Bl);this.Yk(b);this.sx(b.Iy());b=b.cJa();this.hK!=b&&(this.hK&&this.j.$L(this.hK),(this.hK=b)&&this.j.z4(this.hK))};a.prototype.sx=function(b){this.$b!=b&&(this.$b=b,this.j.M.set("toolTip",this.$b))};a.prototype.Yk=function(b){this.j.eT().sort(function(d,e){return e.get("index")-d.get("index")}).forEach(function(d){d.Mm(b)}.bind(this))};a.prototype.Dk=function(b){return new c(this,this.OX(),null,b)};a.prototype.OX= 3420function(){if(void 0!==this.md&&void 0!==this.nd&&this.C.Eg){var b=k.getCamera(this.C.Eg);if(b)return this.ek=m.uDa(b,this.md,this.nd,this.C.width,this.C.height,this.ek),[this.ek]}return[]};a.prototype.rba=function(b,d,e,n){b=e-b;d=n-d;return 5>=Math.sqrt(b*b+d*d)};return a}); 3421define("gS","require lQ pw cs V fw oH".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cs"),k=a("V"),c=a("fw"),h=a("oH");a=f.extend(h,function(b){h.call(this,h.cN,b);this.M=this.j.M;this.M.bind(l.gb,this.be,this,!0);this.M.bind(l.Eb,this.Zj,this,!0);this.M.bind(l.F("touchOverAreaScale"),this.Qca,this,!0);this.ax=this.Kn=this.nd=this.md=void 0;this.Gpa=this.C=null;this.Qca();this.CXa=Array(g.length);this.$b="";this.cl=this.cl.bind(this)});a.prototype.clear=function(){this.M.unbind(l.gb,this.be, 3422this,!0);this.M.unbind(l.Eb,this.Zj,this,!0);this.M.unbind(l.F("touchOverAreaScale"),this.Qca,this,!0);this.sx("")};a.prototype.update=function(b){this.C=b;this.cga()};a.prototype.be=function(b){this.md=this.Kn=b.x;this.nd=this.ax=b.y;this.Yk(this.Dk(l.lz))};a.prototype.Zj=function(b){this.md=b.x;this.nd=b.y;this.Yk(this.Dk(l.DH));this.rba(this.Kn,this.ax,this.md,this.nd)&&this.Yk(this.Dk(l.Uf))};a.prototype.cga=function(){this.zr||(this.zr=setTimeout(this.cl,300))};a.prototype.d1=function(){this.zr&& 3423(clearTimeout(this.zr),this.zr=null);this.cl()};a.prototype.cl=function(){this.zr=null;var b=this.Dk(l.Bl);this.Yk(b);this.sx(b.Iy())};a.prototype.sx=function(b){if(this.$b!=b&&(this.$b=b,b=this.j.M,b.set("toolTip",this.$b),!b.get("toolTipDisabled"))){var d=b.Db().$b;this.$b?d.Uab(b,this.$b):d.hide()}};a.prototype.Yk=function(b){this.j.eT().sort(function(d,e){return e.get("index")-d.get("index")}).forEach(function(d){d.Mm(b)}.bind(this))};a.prototype.Dk=function(b){var d=b==l.Bl?this.OX(.5*this.C.width, 3424.5*this.C.height,this.Epa,this.Gpa):this.OX(this.md,this.nd,g,this.CXa);return new c(this,d,null,b)};a.prototype.OX=function(b,d,e,n){var q=this.C.Eg&&k.getCamera(this.C.Eg);if(q){var p=this.C.width,r=this.C.height,t=Math.min(p,r)/100;e.forEach(function(u,v){n[v]=m.uDa(q,b+u[0]*t,d+u[1]*t,p,r,n[v])});return n}return[]};a.prototype.rba=function(b,d,e,n){b=e-b;d=n-d;return Math.sqrt(b*b+d*d)<=4*Math.round(1*Math.min(window.screen.width,window.screen.height)/100)};a.prototype.Qca=function(){this.Epa= 3425this.BSa(this.M.get("touchOverAreaScale"));this.Gpa=Array(this.Epa.length)};a.prototype.BSa=function(b){var d=[],e=Math.min(50,Math.ceil(5*b)),n=Math.min(50,Math.ceil(30*b));b=Math.min(50,Math.ceil(15*b));for(var q=-e;q<=e;q++)for(var p=-e;p<=e;p++){var r=Math.sqrt(p*p+q*q);r<=e&&d.push([p,q,r])}for(p=-n;p<-e;p++)d.push([p,0,Math.sqrt(p*p)]);for(p=e+1;p<=n;p++)d.push([p,0,Math.sqrt(p*p)]);for(q=-b;q<-e;q++)d.push([0,q,Math.sqrt(q*q)]);for(q=e+1;q<=b;q++)d.push([0,q,Math.sqrt(q*q)]);d.sort(function(t, 3426u){return t[2]-u[2]});return d.map(function(t){return[t[0],t[1]]})};var g=function(){for(var b=[],d=0;5>d;d++)for(var e=-2+4*d/4,n=0;5>n;
3426n++){var q=-2+4*n/4,p=Math.sqrt(q*q+e*e);2>=p&&b.push([q,e,p])}b.sort(function(r,t){return r[2]-t[2]});return b.map(function(r){return[r[0],r[1]]})}();return a}); 3427define("pC","require exports pw pq fw oH jH oQ three.mod".split(" "),function(a,f,l,m,k,c,h,g,b){function d(r,t){for(var u=0;u<r.length;u++)if(0>t.indexOf(r[u]))return!1;for(u=0;u<t.length;u++)if(0>r.indexOf(t[u]))return!1;return!0}a=function(r){function t(u){u=r.call(this,c.dN,u)||this;u.Hr=!1;u.RGa=new Map;u.ZL=new Map;u.BT=null;u.Lla=u.Lla.bind(u);document.body.addEventListener("touchend",u.Lla);g.N.bind(l.Uf,u.Zr,u,!0);return u}Z(t,r);t.prototype.clear=function(){g.N.unbind(l.Uf,this.Zr,this); 3428this.ZL.forEach(function(u,v,w){this.iCa(u);w.delete(v)}.bind(this))};t.prototype.update=function(u){this.state=u;this.Vbb();this.zy(u.Hr);this.CM()};t.prototype.Zr=function(u){this.BT=u=u.data.pointerState;this.OHa(u)};t.prototype.Lla=function(){var u=g.ng[0]||null;u&&this.OHa(u)};t.prototype.OHa=function(u){e.copy(u.ray).applyMatrix4(u.matrixWorld);var v=new k(this,[e],g.fL,l.Uf,this.BT==u);this.NHa(v);g.Xka(u,!1,!1,u.xu);g.PHa(u,50);this.Mbb()};t.prototype.zy=function(u){this.Hr!==u&&(this.Hr= 3429u,g.ng.forEach(function(v){g.eab(v,u)}))};t.prototype.Vbb=function(){this.ZL.forEach(function(u,v){g.ng.includes(v)||(this.iCa(u),this.ZL.delete(v))}.bind(this));g.ng.forEach(function(u){this.ZL.has(u)||this.ZL.set(u,this.l4a());g.BIa(u,!1)}.bind(this))};t.prototype.CM=function(){this.BT=this.BT||(g.ng.length?g.ng.find(function(z){return"right"==z.handedness})||g.ng[0]:null);for(var u=0;u<g.ng.length;u++){var v=g.ng[u];e.copy(v.ray).applyMatrix4(v.matrixWorld);var w=new k(this,[e],g.fL,l.Bl,this.BT== 3430v);this.NHa(w);this.ocb(w,v);var x=this.RGa.get(v),y=w.Nk;x&&d(x,y)||(this.RGa.set(v,y),x=(x=w.xu())?h.pu(x):h.Rr(),y=0<y.length,((w=w.B5())||v.TL)&&g.PHa(v,5),g.Xka(v,y,w,x))}};t.prototype.ocb=function(u,v){var w=u.Iy()||"",x=this.ZL.get(v);x&&w!==x.get("text")&&(w?(x.set("text",w),x.set("alpha",1),x.Ih(),w=(w=u.xu())?h.pu(w):h.Rr(),n.radius=w,x.set("intersectionYaw",void 0),x.set("intersectionPitch",void 0),e.copy(v.ray).applyMatrix4(v.matrixWorld),e.intersectSphere(n,q)&&(0==q.x&&0==q.z||x.set("intersectionYaw", 3431p*Math.atan2(q.x,-q.z)),0==q.y&&0==q.z||x.set("intersectionPitch",p*Math.atan2(q.y,Math.sqrt(q.z*q.z+q.x*q.x))),x.set("intersectionDistance",u.xu()))):(x.set("text",""),x.set("alpha",0)))};t.prototype.NHa=function(u){this.j.eT().sort(function(v,w){return w.get("index")-v.get("index")}).forEach(function(v){v.Mm(u)}.bind(this))};t.prototype.Mbb=function(){var u=this.j.Db();u&&u.trigger(l.TC,{sM:l.Uf})};t.prototype.l4a=function(){var u=new m;u.set("alpha",0);this.j.add(u);return u};t.prototype.iCa=function(u){this.j.remove(u)}; 3432return t}(c);var e=new b.Ray,n=new b.Sphere,q=new b.Vector3,p=180/Math.PI;return a});define("hH","require cT ex jF oH gS pC".split(" "),function(a){var f=a("cT"),l=a("ex"),m=a("jF"),k=a("oH"),c=a("gS"),h=a("pC");return{create:function(g,b){switch(g){case k.dN:return new h(b);case k.w7:return new f(b,!0);case k.OV:return new f(b,!1);case k.Qna:return new l(b);case k.bN:return new m(b);case k.cN:return new c(b)}}}}); 3433define("qb",["require","bh"],function(a){function f(m){this.Zc=m;this.cf=[]}var l=a("bh");f.prototype.push=function(m){this.cf.push(m);this.oa()};f.prototype.pop=function(m){for(var k=this.cf.length-1;0<=k;k--)if(this.cf[k]==m){this.cf.splice(k,1);this.oa();break}};f.prototype.clear=function(){0<this.cf.length&&(this.Zc.set("cursor",l.Ie),this.cf=[])};f.prototype.oa=function(){var m=0<=this.cf.indexOf(l.Uh)?l.Uh:0<=this.cf.indexOf(l.Je)?l.Je:0<this.cf.length?this.cf[this.cf.length-1]:l.Ie;this.Zc.set("cursor", 3434m)};return f}); 3435define("mB","require lQ ld pw cI e bh w hE iE kG pD eR ef gL hH oH qb pE kU lv oQ bn ox".split(" "),function(a){var f=a("lQ"),l=a("ld"),m=a("pw"),k=a("cI"),c=a("e"),h=a("bh"),g=a("w"),b=a("hE"),d=a("iE"),e=a("kG"),n=a("pD"),q=a("eR"),p=a("ef"),r=a("gL"),t=a("hH"),u=a("oH"),v=a("qb"),w=a("pE"),x=a("kU"),y=a("lv"),z=a("oQ"),B=a("bn"),E=a("ox"),I=Math.PI/180,A=f.extend(c,function(C,J,D){c.call(this);this.Qe("Renderer");this.set("toolTipDisabled",!0);this.set("cursor",h.hv);this.set("layout","absolute"); 3436this.set("interactionEnabled",!1);this.Vd=C;this.M=J;this.Wc=D;this.se=new v(J);this.ee=null;this.K$=!1;this.C=new n;this.Ha=new r(this.Vd,this.M,this.Wc,this);this.Ha.bind(m.ba,this.requestFrame,this,!0);this.tj=new q(this.M);this.C.Eg=this.tj.Cf();this.C.AS=this.tj.vqa;this.C.BS=this.tj.wqa;this.C.camera=this.tj.getCamera();this.qta=(new Date).getTime();this.jO=new e;this.Yb().append(this.jO.gd());this.M0=new x;this.M0.bind(m.da,this.VWa,this,!0);this.jua=new w;this.jua.bind(m.ba,this.AWa,this, 3437!0);this.CX=new d(this.C.width,this.C.height,this.C.Ue*I);this.bind(m.tc,this.Ic,this,!0);this.bind(m.jd,this.sj,this,!0);this.bind(m.ad,this.rj,this,!0);z.N.bind(m.ba,this.Mo,this,!0);
3437b.bind(m.ba,this.hWa,this,!0);l.ea(this.Wc,["fxaaEnabled","aaEnabled","hotspotsEnabled","preloadEnabled"],function(){this.C.dG=this.Wc.get("hotspotsEnabled");this.C.aU=this.Wc.get("preloadEnabled");this.C.dia=this.Wc.get("fxaaEnabled");this.C.hS=this.Wc.get("aaEnabled");this.requestFrame()}.bind(this),!0);l.ea(this.Wc, 3438["surfaceSelectionEnabled"],this.mga.bind(this));this.mga();this.Mo();l.ea(this.Vd,["defaultVRPointer"],this.jp.bind(this));this.jp()});A.prototype.create=function(C){return p.create(C)};A.prototype.add=function(C){this.Ha.appendChild(C);1==this.Ha.ob().length&&this.eWa()};A.prototype.remove=function(C){if(C=this.Ha.Bf(C))C.remove(),0==this.Ha.ob().length&&this.oWa()};A.prototype.Bf=function(C){return this.Ha.Bf(C)};A.prototype.eT=function(){return this.Ha.all()};A.prototype.p$a=function(C){this.K$!= 3439C&&(this.K$=C,this.jp())};A.prototype.tIa=function(C){this.C.uja=C};A.prototype.z4=function(C){this.se.push(C)};A.prototype.$L=function(C){this.se.pop(C)};A.prototype.zy=function(C){this.C.Hr=C;this.requestFrame()};A.prototype.FG=function(){this.jO.trigger();this.C.fG=!0;this.F_();var C=E.MJa(this.tj.cg());this.C.fG=!1;this.F_();return C};A.prototype.pha=function(C){this.C.fG=!0;this.F_();C=this.tj.pha(C);this.C.fG=!1;return C};A.prototype.getPixelRatio=function(){return this.tj.getPixelRatio()}; 3440A.prototype.Wr=function(){return!!this.tj&&this.tj.Wr()};A.prototype.jp=function(){var C=this.C.rb?u.dN:this.K$?u.OV:g.pb()?u.cN:u.bN;this.ee&&this.ee.getType()==C||(this.ee&&this.ee.clear(),this.ee=t.create(C,this),this.mga(),this.ee.update(this.C))};A.prototype.mga=function(){this.C.PU=this.Wc.get("surfaceSelectionEnabled")&&0<=[u.bN,u.dN,u.cN,u.OV].indexOf(this.ee&&this.ee.getType())};A.prototype.Ln=function(){this.se.clear();c.prototype.Ln.call(this)};A.prototype.Ic=function(){var C=this.Za(), 3441J=this.Cb();if(this.C.width!=C||this.C.height!=J)C&&J?(this.C.width=C,this.C.height=J,this.CX.JU(this.C.width),this.CX.jIa(this.C.height),this.requestFrame()):f.log("Invalid size values: "+C+" "+J)};A.prototype.sj=function(){this.C.enabled=!0;this.requestFrame()};A.prototype.rj=function(){this.C.enabled=!1};A.prototype.Mo=function(){this.C.rb=z.isPresenting;this.jp();this.requestFrame()};A.prototype.hWa=function(){this.jp();this.requestFrame()};A.prototype.VWa=function(){this.requestFrame()};A.prototype.AWa= 3442function(){this.requestFrame()};A.prototype.eWa=function(){this.M0.S4(this.M.Od().Ur())};A.prototype.oWa=function(){this.tj.Y4a();this.M0.S4(null)};A.prototype.EIa=function(C){this.H_!=C&&((this.H_=C)||this.requestFrame())};A.prototype.SG=function(C){this.C.Pm!=C&&(this.C.Pm=C,this.requestFrame())};A.prototype.setPosition=function(C,J,D,O){if(this.C.Ra!=C||this.C.pitch!=J||this.C.Dg!=D||this.C.Ue!=O)isNaN(C)||isNaN(J)||isNaN(D)||!O?f.log("Invalid position values: "+C+" "+J+" "+D+" "+O):(this.C.Ra= 3443C,this.C.pitch=J,this.C.Dg=D,this.C.Ue=O,this.CX.MG(this.C.Ue*I),this.requestFrame())};A.prototype.Lc=function(){return this.C.Ra};A.prototype.Kc=function(){return this.C.pitch};A.prototype.dg=function(){return this.C.Dg};A.prototype.Ce=function(){return this.C.Ue};A.prototype.gL=function(){return this.C.rb?this.C.ti:y.Kp(this.C.ti,this.C.width,this.C.height)};A.prototype.hL=function(){return this.C.ti};A.prototype.unproject=function(C){return this.CX.unproject(C)};A.prototype.requestFrame=function(){B.requestFrame(this.bk, 3444this)};A.prototype.bk=function(){if(B.e3){var C=(new Date).getTime(),J=Math.max(1,Math.min(C-this.qta,33));this.qta=C;this.trigger(new k(A.G6,{frameTime:J}));this.C.enabled&&(this.C.Se=J,this.F_())}else this.requestFrame()};A.prototype.F_=function(){0!=this.Ha.ob().length&&(this.tj.update(this.C),this.C.Gr=this.tj.j5a(),this.C.Fr=this.tj.i5a(),this.C.ti=this.tj.g5a(),this.C.nk=this.tj.getPixelRatio(),this.C.camera=this.tj.getCamera(),this.Ha.update(this.C),this.M0.update(this.C),this.jua.update(this.C), 3445this.ee.update(this.C),this.H_||this.tj.render())};A.G6="render start";A.heb=function(){return!0};return A}); 3446define("gc",["require","lQ","cI","gD","mB"],function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("mB"),c=f.extend(m,function(h){m.call(this);this.j=h;this.j.bind(k.G6,this.Vva,this,!0)});c.prototype.clear=function(){this.j.unbind(k.G6,this.Vva,this,!0);this.j=null};c.prototype.requestFrame=function(){this.j.requestFrame()};c.prototype.Vva=function(h){h=h.data.frameTime;this.trigger(new l(c.Rp,{frameTime:h}));this.trigger(new l(c.Sp,{frameTime:h}))};c.Rp="frameStart";c.Sp="positionSet";return c}); 3447define("dD",["require","w","lv"],function(a){function f(){this.wa=this.sa=0;this.Wa=90;this.gm="landscape";this.Uca=!1;this.KO=l.pb()}var l=a("w"),m=a("lv");f.prototype.oIa=function(k){this.Wa=this.SCa(k)};f.prototype.SCa=function(k){return this.KO&&"portrait"==this.gm?m.KF(k,this.wa,this.sa):k};f.prototype.H5a=function(k){return this.KO&&"portrait"==this.gm?m.Cm(k,this.sa,this.wa):k};f.prototype.Dp=function(k){this.Wa=this.KO&&this.Uca?m.KF(k,this.wa,this.sa):k};f.prototype.BEa=function(){return this.KO&& 3448this.Uca};f.prototype.Vx=function(){return this.KO&&"portrait"==this.gm};f.prototype.Ce=function(){return this.Wa};f.prototype.X1=function(k){return m.KF(k,this.wa,this.sa)};f.prototype.setSize=function(k,c){this.sa=k;this.wa=c;k=this.rTa();this.Uca=this.gm!=k;this.gm=k};f.prototype.rTa=function(){return 0===this.sa||0===this.wa?"landscape":this.sa<this.wa?"portrait":"landscape"};return f}); 3449define("ov","require lQ bs cI gD jt".split(" "),function(a){var f=a("lQ"),l=a("bs"),m=a("cI"),k=a("gD"),c=a("jt"),h=f.extend(k,function(g){k.call(this);this.j=g;this.W=!1;this.Vl=this.Vl.bind(this);this.Wc=this.j.Wc});h.prototype.clear=function(){this.Wc=this.j=null};h.prototype.qb=function(g){this.W!=g&&(this.W&&document.removeEventListener("keyup",this.Vl),(this.W=g)&&document.addEventListener("keyup",this.Vl))};h.prototype.Vl=function(g){c.sp()||this.Wc.get("gazeModeEnabled")||"translate"!=this.Wc.get("arrowKeysAction")||
3450(g.which!=l.Qh||g.shiftKey?g.which!=l.gj||g.shiftKey||this.trigger(new m(h.x6)):this.trigger(new m(h.w6)))};h.x6="moveForward";h.w6="moveBackward";return h}); 3451define("ji","require es lQ pw cI gD ov".split(" "),function(a){a("es");var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("ov");a=f.extend(k,function(g){k.call(this);this.j=g;this.xn=new c(g);this.xn.bind(c.x6,this.Yua,this,!0);this.xn.bind(c.w6,this.Xua,this,!0)});a.prototype.clear=function(){this.xn.unbind(c.x6,this.Yua,this,!0);this.xn.unbind(c.w6,this.Xua,this,!0);this.xn.clear();this.xn=null};a.prototype.UB=function(g){this.xn.qb(g)};a.prototype.rf=function(g){this.ya=g};a.prototype.end=function(){this.ya= 3452null};a.prototype.Yua=function(g){this.Dza(g);(g=this.Nxa(this.j.Lc(),this.gsa()))&&g.trigger(l.gq)};a.prototype.Xua=function(g){this.Dza(g);(g=this.Nxa(this.j.Lc()-180,this.gsa()))&&g.trigger(l.gq)};a.prototype.Dza=function(g){this.j.Db().trigger(new m(l.TC,{sM:g}))};a.prototype.gsa=function(){return this.j.Wc.get("keyboardTranslateSelectionAngle")};a.prototype.Nxa=function(g,b){var d,e;if(!this.ya)return null;void 0!==d||(d=-90);void 0!==e||(e=360);var n=g-.5*b,q=g+.5*b,p=Math.max(-90,d-.5*e),r= 3453Math.max(90,d+.5*e);b=this.ya.get("adjacentPanoramas",[]).slice();b=b.filter(function(t){if(!t.get("enabled"))return!1;t=this.Eq(t);if(!t)return!1;var u=t.Ra;for(var v=g-180,w=g+180;u<v;)u+=w-v;for(;u>w;)u-=w-v;t=t.pitch;return n<=u&&u<=q&&p<=t&&t<=r}.bind(this));if(0==b.length)return null;b.sort(function(t,u){t=this.Eq(t);u=this.Eq(u);return(g-t.Ra)*(g-t.Ra)+(d-t.pitch)*(d-t.pitch)-((g-u.Ra)*(g-u.Ra)+(d-u.pitch)*(d-u.pitch))}.bind(this));return b[0]};a.prototype.Eq=function(g){var b=g.get("yaw"); 3454g=g.get("distance");if(void 0===b||void 0===g)return null;var d=this.ya.get("distanceToFloor");return{Ra:b,pitch:-90+Math.atan2(g,d)*h}};var h=180/Math.PI;return a}); 3455define("mn","require lQ pw cI gD nO by pH y na kw gc dD ji fH".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("nO"),h=a("by"),g=a("pH"),b=a("y"),d=a("na"),e=a("kw"),n=a("gc"),q=a("dD"),p=a("ji"),r=a("fH"),t=f.extend(k,function(u,v){k.call(this);this.M=u;this.j=v;this.j.set("visible",!1);this.Sc=new q;this.vg=new n(this.j);this.me=new d(this.j);this.Sb=new g(this.M,this.j,this.Sc);this.ib=new h(this.j,this.Sc);this.Kf=new b(this.j);this.Ew=new e(this.j);this.Yd=new c(this.j); 3456this.S0=new p(this.j);this.vg.bind(n.Rp,this.xA,this,!0);this.vg.bind(n.Sp,this.yA,this,!0);this.me.bind(l.hd,this.gva,this,!0);this.me.bind(l.Vf,this.KP,this,!0);this.me.bind(l.kc,this.Ki,this,!0);this.Sb.bind(g.Ob,this.bf,this,!0);this.Sb.bind(g.H6,this.hva,this,!0);this.Sb.bind(g.y6,this.zva,this,!0);this.Sb.bind(g.e6,this.pua,this,!0);this.Sb.bind(g.f6,this.qua,this,!0);this.Sb.bind(g.yC,this.TP,this,!0);this.Sb.bind(g.wC,this.wA,this,!0);this.Sb.bind(g.xC,this.Sw,this,!0);this.Sb.bind(g.vC,this.SP, 3457this,!0);this.Sb.bind(g.Tp,this.BA,this,!0);this.ib.bind(h.Ob,this.bf,this,!0);this.ib.bind(h.uk,this.Tq,this);this.ib.bind(h.Qp,this.En,this);this.ib.bind(h.Qc,this.jf,this,!0);this.ib.bind(h.fj,this.Zq,this,!0);this.ib.bind(h.ej,this.Yq,this,!0);this.Kf.bind(b.Ob,this.bf,this,!0);this.Kf.bind(b.Jj,this.Xq,this,!0);this.Kf.bind(b.Qc,this.jf,this,!0);this.Ew.bind(e.xi,this.nva,this,!0)});t.prototype.clear=function(){this.me.clear();this.vg.clear();this.ib.clear();this.Sb.clear();this.Kf.clear();this.Ew.clear(); 3458this.Yd.clear();this.me.unbind(l.hd,this.gva,this);this.me.unbind(l.Vf,this.KP,this);this.me.unbind(l.kc,this.Ki,this);this.vg.unbind(n.Rp,this.xA,this);this.vg.unbind(n.Sp,this.yA,this);this.Sb.unbind(g.Ob,this.bf,this);this.Sb.unbind(g.H6,this.hva,this);this.Sb.unbind(g.y6,this.zva,this);this.Sb.unbind(g.e6,this.pua,this);this.Sb.unbind(g.f6,this.qua,this);this.Sb.unbind(g.yC,this.TP,this);this.Sb.unbind(g.wC,this.wA,this);this.Sb.unbind(g.xC,this.Sw,this);this.Sb.unbind(g.vC,this.SP,this);this.Sb.unbind(g.Tp, 3459this.BA,this);this.ib.unbind(h.rLa,this.bf,this);this.ib.unbind(h.uk,this.Tq,this);this.ib.unbind(h.Qp,this.En,this);this.ib.unbind(h.Qc,this.jf,this,!0);this.ib.unbind(h.fj,this.Zq,this);this.ib.unbind(h.ej,this.Yq,this);this.Kf.unbind(b.Ob,this.bf,this);this.Kf.unbind(b.Jj,this.Xq,this);this.Kf.unbind(b.Qc,this.jf,this);this.Ew.unbind(e.xi,this.nva,this);this.M=this.j=this.S0=this.Yd=this.Ew=this.Kf=this.Sb=this.ib=this.vg=this.me=null};t.prototype.N4=function(u){this.Ew.N4(u)};t.prototype.Uka= 3460function(u){this.Sb.Uka(u)};t.prototype.rf=function(u,v,w){this.j.set("visible",!0);this.Kf.e5();u.set("currentTime",w);this.Sb.start(u,v)};t.prototype.sB=function(){return this.me.ya||this.Sb.o5a()||this.Sb.bt};t.prototype.yy=function(){this.me.stop();this.Kf.end();this.ib.end();this.Sb.hide();this.Ew.stop();this.Yd.end();this.S0.end()};t.prototype.dM=function(){this.ib.resume();this.Kf.dM()};t.prototype.VL=function(){this.ib.pause();this.Kf.VL()};t.prototype.play=function(){this.ib.play();this.Yd.play(); 3461this.Kf.play()};t.prototype.pause=function(){this.ib.pause();this.Yd.pause();this.Kf.pause()};t.prototype.stop=function(){this.ib.stop();this.Yd.stop();this.Kf.stop()};t.prototype.UB=function(u){this.ib.UB(u);this.S0.UB(u)};t.prototype.getTime=function(){return this.Kf.getTime()};t.prototype.moveTo=function(u,v,w,x,y){this.ib.moveTo(u,v,w,x,y)};t.prototype.Lc=function(){return this.j?this.j.Lc():void 0};t.prototype.Kc=function(){return this.j?this.j.Kc():void 0};t.prototype.dg=function(){return this.j? 3462this.j.dg():void 0};t.prototype.Ce=function(){return this.j?this.Sc.H5a(this.j.Ce()):void 0};t.prototype.gL=function(){return this.j?this.j.gL():void 0};t.prototype.hL=function(){return this.j?this.j.hL():void 0};t.prototype.jf=function(){var u=this.Kf.mk()||this.ib.mk();this.trigger(new m(t.Qc,{state:u}))};t.prototype.pk=function(u){this.ib.pk(u)};t.prototype.tU=function(u){this.ib.tU(u)};t.prototype.VB=function(u){this.ib.VB(u)};t.prototype.uU=function(u){this.ib.uU(u)};t.prototype.Sf=function(u){this.Kf.Sf(u)}; 3463t.prototype.TG=function(u){this.ib.TG(u)};t.prototype.Aia=function(u,v){return(u=r.get(u,v,this.j.Lc(),this.j.Kc(),this.j.dg(),this.j.Ce(),this.j.Za(),this.j.Cb()))?{x:u.x,y:u.y}:null};t.prototype.P5a=function(u,v){return(u=r.tcb(u,v,this.j))?{yaw:u.Ra,pitch:u.pitch}:null};t.prototype.FG=function(){this.j.FG()};t.prototype.Nia=function(){return this.Sb.Nia()};t.prototype.hva=function(u){this.me.start(u.data.panorama)};t.prototype.Ki=function(u){this.j.zy(100>u.Tg);this.trigger(new m(t.bv,{percent:u.Tg}))}; 3464t.prototype.gva=function(u){this.Kf.end();this.S0.rf(u.data.panorama)};t.prototype.KP=function(){this.j.zy(!1);this.trigger(new m(t.pC))};t.prototype.bf=function(){this.vg.requestFrame()};t.prototype.xA=function(u){u=u.data.frameTime;this.Sc.setSize(this.j.Za(),this.j.Cb());this.Sb.uy(u);this.ib.uy(u)};t.prototype.yA=function(u){u=u.data.frameTime;this.Sb.Ld(u);this.ib.Ld(u);this.Kf.Ld(u);this.Ew.Ld(u);this.Yd.Ld(u)};t.prototype.TP=function(u){this.Ew.display(u.data.panorama);this.Kf.uL(u.data.panorama); 3465this.trigger(new m(t.yC,{panorama:u.data.panorama}))};t.prototype.zva=function(u){this.Ew.hide(u.data.panorama)};t.prototype.pua=function(u){this.Kf.start(u.data.panorama);this.Yd.start(u.data.panorama)};t.prototype.qua=function(){this.Kf.end();this.j.set("visible",!1)};t.prototype.SP=function(u){this.ib.end();this.Yd.end(u.data.nextPanorama);this.trigger(new m(t.vC,{panorama:u.data.panorama}))};t.prototype.Sw=function(u){this.ib.start(u.data.panorama,u.data.camera);this.trigger(new m(t.xC,{panorama:u.data.panorama}))}; 3466t.prototype.wA=function(u){this.trigger(new m(t.wC,{panorama:u.data.panorama}))};t.prototype.nva=function(u){this.ib.cla(u.data.yawDelta,0)};t.prototype.Tq=function(u){this.trigger(new m(t.uk,u.data))};t.prototype.En=function(u){this.trigger(new m(t.Qp,u.data))};t.prototype.BA=function(u){this.trigger(new m(t.Tp,u.data))};t.prototype.Zq=function(){this.Kf.DM();this.trigger(new m(t.fj))};t.prototype.Yq=function(){this.trigger(new m(t.ej))};t.prototype.fIa=function(u){this.Kf.PG(u)};t.prototype.TB= 3467function(u){this.Kf.TB(u)};t.prototype.Xq=function(u){this.trigger(new m(t.Jj,u.data))};t.bv="loadingProgress";t.pC="loadingEnd";t.uk="movementChange";t.Qp="positionChange";t.yC="panoramaStart";t.vC="panoramaEnd";t.xC="panoramaShow";t.wC="panoramaHide";t.Qc="playbackStateChange";t.fj="userInteractionStart";t.ej="userInteractionEnd";t.Jj="timeChange";t.Tp="transitionEnd";return t}); 3468define("pb","require lQ pw cI lt pM oj kj iX hJ mn ew mB ii jr oQ ep hf jt".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("lt"),c=a("pM"),h=a("oj"),g=a("kj"),b=a("iX"),d=a("hJ"),e=a("mn"),n=a("ew"),q=a("mB"),p=a("ii"),r=a("jr"),t=a("oQ"),u=a("ep"),v=a("hf"),w=a("jt"),x=h.define("PanoramaPlayer",b,function(){b.call(this,"panorama");b.prototype.set.call(this,"rotationEnabled",!0);b.prototype.set.call(this,"zoomEnabled",!0);b.prototype.set.call(this,"surfaceSelectionEnabled",!1);b.prototype.set.call(this, 3469"surfaceSelectionHorizontalAngle",90);b.prototype.set.call(this,"surfaceSelectionVerticalAngle",180);b.prototype.set.call(this,"adjacentPanoramaPositionsEnabled",!1);b.prototype.set.call(this,"fxaaEnabled",!1);b.prototype.set.call(this,"aaEnabled",!1);this.ffa=this.Naa=this.aA=this.EX=this.PY=this.IY=this.H8=this.FA=this.ri=this.e8=!1;this.paa=!0;this.p0=this.wY=this.un=this.TW=!1;this.Pea=w.sp();w.z2.bind(l.ba,this.kWa,this,!0);this.Aq=!1;this.BX=this.H$=this.mf=this.Xb=0;this.oda=this.qda=void 0; 3470this.kca=!0;this.Oi=k.V;this.Jo=this.Jo.bind(this);this.O=this.j=null;this.Zta={};for(var y in x.Bv)this.Zta[y]=this.EQa(y);this.rW=new g(this,"buttonToggleGyroscope",u.Nj);this.rW.bind(l.Kj,function(){this.set("gyroscopeEnabled",!0)},this);this.rW.bind(l.Dl,function(){this.set("gyroscopeEnabled",!1)},this);this.rW.set("pressed",this.get("gyroscopeEnabled")&&p.hk);(new g(this,"buttonCardboardView",u.Ke)).bind(l.ma,function(){this.set("viewMode",x.ZC)},this,!0);(new g(this,"buttonVRView",u.Ke)).bind(l.ma, 3471function(){this.set("viewMode",x.ZC)},this,!0);t.N.bind(l.ba,function(){this.Ffa("viewMode");this.trigger(x.L6)},this,!0);this.qW=new g(this,"buttonToggleGazeMode",u.Nj);this.qW.bind(l.Kj,function(){this.set("gazeModeEnabled",!0)},this);this.qW.bind(l.Dl,function(){this.set("gazeModeEnabled",!1)},this);this.qW.set("pressed",this.get("gazeModeEnabled"));this.sW=new g(this,"buttonToggleHotspots",u.Nj);this.sW.bind(l.Kj,function(){this.set("hotspotsEnabled",!0)},this);this.sW.bind(l.Dl,function(){this.set("hotspotsEnabled", 3472!1)},this);this.sW.set("pressed",this.get("hotspotsEnabled"));this.vW=new g(this,"buttonToggleSurfaceSelection",u.Nj);this.vW.bind(l.Kj,function(){this.set("surfaceSelectionEnabled",!0)},this);this.vW.bind(l.Dl,function(){this.set("surfaceSelectionEnabled",!1)},this);this.vW.set("pressed",this.get("surfaceSelectionEnabled"));this.ZOa=new g(this,"buttonScreenshot",u.Ke);this.ZOa.bind(l.ma,this.Exa,this,!0);this.Hd=f.zp(this.ih,this)});x.gLa="cameraPositionChange";x.bv="loadingProgress";x.nLa="preloadMediaShow"; 3473x.L6="viewModeChange";x.prototype.moveLeft=function(){this.Xc(n.yH)};x.prototype.moveRight=function(){this.Xc(n.zH)};x.prototype.moveUp=function(){this.Xc(n.AH)};x.prototype.moveDown=function(){this.Xc(n.xH)};x.prototype.playLeft=function(){this.Xc([n.yH,n.PLAYING])};x.prototype.playRight=function(){this.Xc([n.zH,n.PLAYING])};x.prototype.playUp=function(){this.Xc([n.AH,n.PLAYING])};x.prototype.playDown=function(){this.Xc([n.xH,n.PLAYING])};x.prototype.play=function(){this.Qk()};x.prototype.pause= 3474function(){this.br()};x.prototype.stop=function(){this.AA()};x.prototype.seek=function(y){this.XE(y)};x.prototype.setFramePlaybackPosition=function(y){this.xZa(y)};x.prototype.setFrameTransitionPosition=function(y){this.yZa(y)};x.prototype.restart=function(){this.zA()};x.prototype.zoomIn=function(){this.Xc(n.zv)};x.prototype.zoomOut=function(){this.Xc(n.Av)};x.prototype.resumeCamera=function(){this.yYa()};x.prototype.pauseCamera=function(){this.pXa()};x.prototype.moveTo=function(y,z,B,E){this.Yta(y, 3475z,B,E,!1)};x.prototype.setPosition=function(y,z,B,E){this.Yta(y,z,B,E,!0)};x.prototype.getScreenPosition=function(y,z){return this.HTa(y,z)};x.prototype.getPanoramaPosition=function(y,z){return this.sTa(y,z)};x.prototype.saveScreenshot=function(){return this.Exa()};x.prototype.get=function(y,z){switch(y){case "currentTime":return this.O&&this.O.getTime()||0;case "viewMode":return t.isPresenting?x.ZC:x.M7;case "video":y="panorama";break;case "rendererPanorama":return this.O&&this.O.sB()}if(!z)switch(y){case "mouseControlMode":z= 3476c.Sma;break;case "touchControlMode":z=c.Kna}return b.prototype.get.call(this,y,z)};x.prototype.set=function(y,z){if(this.get(y)!=z){switch(y){case "application":this.e8=!0;this.Hd();break;case "startTime":this.FA=!0;this.Hd();break;case "video":case "panorama":y="panorama";this.FA=!0;this.Hd();break;case "camera":this.H8=!0;this.Hd();break;case "viewerArea":this.ri=!0;this.Hd();break;case "displayPlaybackBar":case "hdrPanoramaDisplayPlaybackBarSteps":case "livePanoramaDisplayPlaybackBarSteps":case "buttonPlay":case "buttonPlayPause":this.Aq= 3477!0;this.Hd();break;case "mapPlayer":this.IY=!0;this.Hd();break;case "model3DPlayer":this.PY=!0;this.Hd();break;case "gazeModeEnabled":this.EX=!0;this.Hd();break;case "gyroscopeEnabled":this.aA=!0;this.Hd();break;case "gyroscopeVerticalDraggingEnabled":this.paa=!0;this.Hd();break;
3477case "viewMode":"vr"==z&&(z=x.ZC);z==x.ZC?this.get("viewerArea").set("viewMode","vr"):this.get("viewerArea").set("viewMode","standard");z=t.isPresenting?x.ZC:x.M7;break;case "hotspotsEnabled":this.Naa=!0;this.Hd();break;case "mouseControlMode":case "touchControlMode":this.TW= 3478!0;this.Hd();break;case "surfaceSelectionEnabled":this.ffa=!0,this.Hd()}b.prototype.set.call(this,y,z)}};x.prototype.Ep=function(y){this.un!=y&&((this.un=y)?document.addEventListener("keyup",this.Jo,!0):document.removeEventListener("keyup",this.Jo,!0),this.O&&this.O.UB(this.un),this.wY=!0,this.Hd())};x.prototype.kWa=function(){var y=w.sp();this.Pea!==y&&(this.p0=!0,this.Pea=y,this.Hd())};x.prototype.Jo=function(y){var z=this.get("gazeModeKeyCode");z&&!w.sp()&&y.code==z&&this.set("gazeModeEnabled", 3479!this.get("gazeModeEnabled"))};x.prototype.rha=function(){return"inherit"!=this.get("doubleClickAction")};x.prototype.Pbb=function(){this.DG([this])};x.prototype.y8=function(y){b.prototype.y8.call(this,y);y.bind(l.Al,this.HAa,this,!0)};x.prototype.Kfa=function(y){b.prototype.Kfa.call(this,y);y.unbind(l.Al,this.HAa,this,!0)};x.prototype.HAa=function(){switch(this.get("doubleClickAction")){case "toggle_fullscreen":var y=this.get("application").pj;y&&y.hk()&&y.toggle()}};x.prototype.EQa=function(y){var z= 3480x.Bv[y];y=new g(this,y,u.Ke);y.bind(l.gb,function(){this.Xc(z.movement)},this);z.stopOnRelease&&y.bind(l.Eb,function(){this.Xc(n.Vf)},this);return y};x.prototype.ih=function(){if(this.ri||this.e8)this.ri=this.e8=!1,this.p0=this.wY=this.TW=this.aA=this.EX=this.PY=this.IY=!0,this.Zv(),this.get("viewerArea")&&this.get("application")&&this.Xv(),this.aR(this.get("viewerArea"));var y=!1;if(this.j){this.IY&&(this.IY=!1,this.O.N4(this.get("mapPlayer")));this.PY&&(this.PY=!1,this.O.Uka(this.get("model3DPlayer"))); 3481this.TW&&(this.TW=!1,this.O.VB(this.get("mouseControlMode")),this.O.TG(this.get("touchControlMode")));if(this.FA||this.H8)this.BX=this.H$=this.Xb=this.mf=0,this.oda=this.qda=void 0,y=!0,this.H8=this.FA=!1,this.get("panorama")?(this.get("viewerArea").Od().dbb(),this.O.rf(this.get("panorama"),this.get("camera",new d),this.get("startTime"))):(this.O.yy(),this.kca=!0,this.Oi=k.V,this.wd(k.V));if(this.EX||this.wY||this.p0){this.wY=this.p0=this.EX=!1;var z=this.get("gazeModeEnabled");this.j.p$a(z&&this.un&& 3482!this.Pea);this.qW.set("pressed",z)}this.paa&&(this.paa=!1,this.O.uU(this.get("gyroscopeVerticalDraggingEnabled",!0)));this.aA&&(this.aA=!1,(z=this.get("gyroscopeEnabled")&&p.hk)&&p.disabled&&(z=!1,r.Cma.show(function(){p.pka(function(){this.set("gyroscopeEnabled",!0)}.bind(this))}.bind(this))),this.set("gyroscopeEnabled",z),this.O.tU(z),this.rW.set("pressed",z));this.Naa&&(this.Naa=!1,this.sW.set("pressed",this.get("hotspotsEnabled")));this.Aq&&(this.Aq=!1,y=!0);this.ffa&&(this.ffa=!1,this.vW.set("pressed", 3483this.get("surfaceSelectionEnabled")));y&&this.Gx()}};x.prototype.kK=function(){this.O.Nia()||this.set("panorama",null)};x.prototype.Xv=function(){var y=this.get("viewerArea"),z=this.get("application");this.j=new q(z,y,this);this.j.ra({left:0,top:0,bottom:0,right:0});y.Ya(this.j);this.O=new e(y,this.j);this.O.bind(e.uk,this.Tq,this);this.O.bind(e.Qp,this.Dua,this);this.O.bind(e.bv,this.Ki,this);this.O.bind(e.pC,this.rJ,this);this.O.bind(e.xC,this.Sw,this,!0);this.O.bind(e.wC,this.wA,this,!0);this.O.bind(e.yC, 3484this.TP,this,!0);this.O.bind(e.vC,this.SP,this,!0);this.O.bind(e.Qc,this.jf,this);this.O.bind(e.fj,this.Zq,this);this.O.bind(e.ej,this.Yq,this);this.O.bind(e.Jj,this.Xq,this);this.O.bind(e.Tp,this.BA,this,!0);this.get("application").bind(l.F("mute"),this.QP,this);this.get("application").get("mute",!1)&&this.O.Sf(!0);this.O.UB(this.un);t.N.bind(l.ba,this.Mo,this,!0);this.i9();this.UA(!0)};x.prototype.Zv=function(){this.j&&(this.O.unbind(e.uk,this.Tq,this),this.O.unbind(e.Qp,this.Dua,this),this.O.unbind(e.bv, 3485this.Ki,this),this.O.unbind(e.pC,this.rJ,this),this.O.unbind(e.xC,this.Sw,this,!0),this.O.unbind(e.wC,this.wA,this,!0),this.O.unbind(e.yC,this.TP,this,!0),this.O.unbind(e.vC,this.SP,this,!0),this.O.unbind(e.Qc,this.jf,this),this.O.unbind(e.fj,this.Zq,this),this.O.unbind(e.ej,this.Yq,this),this.O.unbind(e.Jj,this.Xq,this),this.O.unbind(e.Tp,this.BA,this),this.O.clear(),this.O=null,this.get("application").unbind(l.F("mute"),this.QP,this),this.j.getParent().removeChild(this.j),this.j=null,t.N.unbind(l.ba, 3486this.Mo,this,!0),this.UA(!1))};x.prototype.QP=function(){this.j&&this.O.Sf(this.get("application").get("mute",!1))};x.prototype.jf=function(y){this.Oi=y.data.state;this.yg()};x.prototype.yg=function(){this.wd(this.kca||t.isPresenting?this.Oi:k.PLAYING)};x.prototype.Zq=function(){this.trigger(new m(l.Una))};x.prototype.Yq=function(){this.trigger(new m(l.Tna))};x.prototype.TP=function(y){this.trigger(new m(x.nLa,{panorama:y.data.panorama}))};x.prototype.SP=function(){};x.prototype.Sw=function(y){this.i9(); 3487this.kP(y.data.panorama)};x.prototype.wA=function(y){this.jP(y.data.panorama)};x.prototype.Tq=function(y){for(var z in x.Bv)this.Zta[z].set("state",y.data[x.Bv[z].pressedOn]?v.Ab:v.Ie);this.kca=y.data.stopped;this.yg();this.trigger(new m(l.Uma,y.data))};x.prototype.Dua=function(y){this.i9();this.trigger(new m(x.gLa,y.data))};x.prototype.i9=function(){this.O&&(this.set("yaw",this.O.Lc()),this.set("pitch",this.O.Kc()),this.set("roll",this.O.dg()),this.set("hfov",this.O.Ce()),this.set("actualHFOV",this.O.gL()), 3488this.set("actualVFOV",this.O.hL()))};x.prototype.Ki=function(y){this.j.getParent().ra({progressPercent:y.data.percent,progressVisible:!0});this.trigger(new m(x.bv,y.data))};x.prototype.rJ=function(){this.j.getParent().set("progressVisible",!1)};x.prototype.BA=function(){this.trigger(l.t7)};x.prototype.Mo=function(){this.set("viewMode",t.isPresenting?x.ZC:x.M7);this.yg()};x.prototype.Yta=function(y,z,B,E,I){this.O&&this.O.moveTo(y,z,B,E,I)};x.prototype.Xc=function(y){this.O&&this.O.pk(y)};x.prototype.Qk= 3489function(){this.O&&this.O.play()};x.prototype.ap=function(){this.O&&this.O.stop()};x.prototype.br=function(){this.O&&this.O.pause()};x.prototype.XE=function(y){this.O&&(this.Sra()?this.O.TB(y):this.O.fIa(y))};x.prototype.xZa=function(y){this.O&&this.O.fIa(y)};x.prototype.yZa=function(y){this.O&&this.O.TB(y)};x.prototype.pXa=function(){this.O&&this.O.VL()};x.prototype.yYa=function(){this.O&&this.O.dM()};x.prototype.HTa=function(y,z){if(this.O)return this.O.Aia(y,z)};x.prototype.sTa=function(y,z){if(this.O)return this.O.P5a(y, 3490z)};x.prototype.Exa=function(){this.O&&this.O.FG()};x.prototype.qQ=function(y){this.XE(y.data.position)};x.prototype.Xq=function(y){this.mf=y.data.time;this.Xb=y.data.duration;this.H$=y.data.transitionPosition;this.BX=y.data.transitionLength;this.qda=y.data.steps;this.oda=y.data.selectedStep;this.Gx()};x.prototype.Gx=function(){var y=this.j.getParent(),z=!1;if(this.ISa()){var B=this.Sra(),E=this.uTa();B?0<this.BX&&(y.ra({playbackBarPosition:this.H$,playbackBarDuration:this.BX,playbackBarSteps:this.qda, 3491playbackBarSelectedStep:this.oda,playbackBarLiveDragging:E}),z=!0):0<this.Xb&&(y.ra({playbackBarPosition:this.mf,playbackBarDuration:this.Xb,playbackBarSteps:void 0,playbackBarSelectedStep:void 0,playbackBarLiveDragging:E}),z=!0)}y.set("playbackBarVisible",z)};x.prototype.ISa=function(){var y=this.get("panorama");return y?h.Ja("HDRPanorama",y)?this.get("hdrPanoramaDisplayPlaybackBar",this.get("displayPlaybackBar",!1)):h.Ja("LivePanorama",y)?this.get("livePanoramaDisplayPlaybackBar",this.get("displayPlaybackBar", 3492!1)):h.Ja("VideoPanorama",y)?this.get("videoPanoramaDisplayPlaybackBar",this.get("displayPlaybackBar",!0)):!1:!1};x.prototype.Sra=function(){var y=this.get("panorama");return y?h.Ja("HDRPanorama",y)?this.get("hdrPanoramaDisplayPlaybackBarSteps",!0):h.Ja("LivePanorama",y)?this.get("livePanoramaDisplayPlaybackBarSteps",!0):!1:!1};x.prototype.uTa=function(){var y=this.get("panorama");return!y||h.Ja("VideoPanorama",y)?!1:!0};x.ZC="cardboard";x.M7="standard";x.Bv={buttonMoveLeft:{movement:n.yH,pressedOn:"movingLeft", 3493stopOnRelease:!0},buttonMoveRight:{movement:n.zH,pressedOn:"movingRight",stopOnRelease:!0},buttonMoveUp:{movement:n.AH,pressedOn:"movingUp",stopOnRelease:!0},buttonMoveDown:{movement:n.xH,pressedOn:"movingDown",stopOnRelease:!0},buttonPlayLeft:{movement:[n.yH,n.PLAYING],pressedOn:"movingLeft",stopOnRelease:!1},buttonPlayRight:{movement:[n.zH,n.PLAYING],pressedOn:"movingRight",stopOnRelease:!1},buttonPlayUp:{movement:[n.AH,n.PLAYING],pressedOn:"movingUp",stopOnRelease:!1},buttonPlayDown:{movement:[n.xH, 3494n.PLAYING],pressedOn:"movingDown",stopOnRelease:!1},buttonZoomIn:{movement:n.zv,pressedOn:"zoomingIn",stopOnRelease:!0},buttonZoomOut:{movement:n.Av,pressedOn:"zoomingOut",stopOnRelease:!0}};return x}); 3495define("cK",["require","oj","dn","iK"],function(a){var f=a("oj"),l=a("dn"),m=a("iK");a=f.define("PanoramaPlayListItem",m,function(){m.call(this)});a.prototype.start=function(){m.prototype.start.call(this);var k=this.get("player");k&&(k.bind(l.sh,this.Sw,this),k.set("panorama",this.get("media")),k.set("camera",this.get("camera")))};a.prototype.stop=function(){var k=this.get("player");k&&(k.unbind(l.sh,this.Sw,this),k.get("panorama")==this.get("media")&&k.set("panorama",null));m.prototype.stop.call(this)}; 3496a.prototype.Sw=function(k){k.data.media==this.get("media")&&(this.get("player").unbind(l.sh,this.Sw,this),this.get("player").bind(l.Um,this.wA,this),this.iB())};a.prototype.wA=function(k){k.data.media==this.get("media")&&(this.get("player").unbind(l.Um,this.wA,this),this.stop(),this.end())};return a});define("lU",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PanoramaSnapshot",f,function(){f.call(this)})}); 3497define("nK",["require","lQ","cA"],function(a){var f=a("lQ"),l=a("cA");a=f.extend(l,function(m,k,c,h){l.call(this);this.Wd=m;this.sa=k;this.wa=c;this.y$=h});a.prototype.uu=function(){return[this.Wd]};a.prototype.Yi=function(){return this.Wd};a.prototype.De=function(){return this.sa};a.prototype.Te=function(){return this.wa};return a}); 3498define("pv",["require","oj","ez","gv","nK"],function(a){var f=a("oj"),l=a("ez"),m=a("gv"),k=a("nK");a=f.define("Photo",l,function(){l.call(this);this.Aa=void 0});a.prototype.lk=function(){if(void 0==this.Aa){var c=this.get("image");this.Aa=c?new k(m.Sr(c).get("url"),this.get("width"),this.get("height"),this.get("flipImageHorizontally",!1)):null}return this.Aa};a.prototype.su=function(){var c=this.KX(this.lk());
3498this.get("audios",[]).forEach(function(h){c=c.concat(h.su())}.bind(this));return c};a.prototype.KX= 3499function(c){return c?c.uu():[]};return a});define("ka",["require","ez","oj"],function(a){var f=a("ez");a=a("oj").define("PhotoAlbum",f,function(){f.call(this);this.set("loop",!1)});a.prototype.su=function(){var l=[],m=this.get("playList");m&&m.get("items",[]).forEach(function(k){(k=k.get("media"))&&(l=l.concat(k.su()))});this.get("audios",[]).forEach(function(k){l=l.concat(k.su())});return l};return a}); 3500define("gW",["require","iw","oj","jv"],function(a){var f=a("iw"),l=a("oj"),m=a("jv");return l.define("PhotoAlbumAudio",m,function(){m.call(this,f.jMa)})}); 3501define("dl",["require","lt"],function(a){function f(m,k){this.j=m;this.nq=k;this.WH=[];this.Vs=[];this.Cr=1}var l=a("lt");f.prototype.clear=function(){for(var m=0;m<this.WH.length;m++)this.WH[m].Vc(l.V);this.TNa();this.Vs=this.WH=null};f.prototype.stop=function(){for(var m=0;m<this.Vs.length;m++)this.Vs[m].Vc(l.V)};f.prototype.play=function(){for(var m=0;m<this.Vs.length;m++){var k=this.Vs[m];k.getState()!=l.PLAYING&&k.Vc(l.PLAYING)}};f.prototype.pause=function(){for(var m=0;m<this.Vs.length;m++){var k= 3502this.Vs[m];k.getState()==l.PLAYING&&k.Vc(l.Qb)}};f.prototype.start=function(){this.stop();for(var m=0;m<this.nq.length;m++){var k=this.nq[m],c=k.VF();c&&(this.WH.push(c),k.get("autoplay",!1)&&this.Vs.push(c))}for(m=0;m<this.Vs.length;m++)this.Vs[m].Vc(l.PLAYING)};f.prototype.Ld=function(){};f.prototype.TNa=function(){for(var m=0;m<this.WH.length;m++)this.WH[m].Fy(1)};return f}); 3503define("iG",["require","lQ","dl"],function(a){var f=a("lQ"),l=a("dl");return f.extend(l,function(m,k){l.call(this,m,k.get("audios",[]));this.l_=k})});define("hP",["require","lQ","dl"],function(a){var f=a("lQ"),l=a("dl");return f.extend(l,function(m,k){l.call(this,m,k.get("audios",[]));this.sf=k})}); 3504define("jL",["require","iG","hP"],function(a){function f(k){this.j=k;this.hj=[];this.Ni=[]}var l=a("iG"),m=a("hP");f.prototype.clear=function(){this.sJa();this.Ni=this.hj=null};f.prototype.sJa=function(){for(var k=0;k<this.hj.length;k++)this.hj[k].clear();for(k=0;k<this.Ni.length;k++)this.Ni[k].clear();this.hj=[];this.Ni=[]};f.prototype.pause=function(){for(var k=0;k<this.hj.length;k++)this.hj[k].pause();for(k=0;k<this.Ni.length;k++)this.Ni[k].pause()};f.prototype.play=function(){for(var k=0;k<this.hj.length;k++)this.hj[k].play(); 3505for(k=0;k<this.Ni.length;k++)this.Ni[k].play()};f.prototype.stop=function(){for(var k=0;k<this.hj.length;k++)this.hj[k].stop();for(k=0;k<this.Ni.length;k++)this.Ni[k].clear();this.Ni=[]};f.prototype.ebb=function(k){k=new l(this.j,k);this.Ni.push(k);k.start()};f.prototype.lbb=function(k){for(var c=0;c<this.Ni.length;c++)if(this.Ni[c].l_==k){this.Ni[c].clear();this.Ni.splice(c,1);break}};f.prototype.wla=function(k){k=new m(this.j,k);this.hj.push(k);k.start()};f.prototype.ibb=function(k){for(var c=0;c< 3506this.hj.length;c++)if(this.hj[c].sf==k){this.hj[c].clear();this.hj.splice(c,1);break}};f.prototype.Ld=function(k){for(var c=0;c<this.hj.length;c++)this.hj[c].Ld(k);for(c=0;c<this.Ni.length;c++)this.Ni[c].Ld(k)};return f}); 3507define("bQ",["require","lQ","mI"],function(a){function f(){this.Ba=!0;this.Qa=this.Na=.5;this.nb=1;this.Of=l.Sh;this.$m=this.an=100}a("lQ");var l=a("mI");f.prototype.getX=function(){this.Sn();return this.Na};f.prototype.getY=function(){this.Sn();return this.Qa};f.prototype.Vr=function(){this.Sn();return this.nb};f.prototype.setConfiguration=function(m,k,c){this.Of=c;this.Qa=this.Na=.5;this.nb=1;this.Ba=!0};f.prototype.setPosition=function(m,k,c){this.Na=m;this.Qa=k;this.nb=c;this.Ba=!0};f.prototype.setSize= 3508function(m,k){this.an=m;this.$m=k;this.Ba=!0};f.prototype.Sn=function(){if(this.Ba){this.Ba=!1;1>this.nb&&(this.nb=1);var m=Math.min(.5/this.nb,.5),k=Math.max(1-.5/this.nb,.5);this.Na<m?this.Na=m:this.Na>k&&(this.Na=k);m=Math.min(.5/this.nb,.5);k=Math.max(1-.5/this.nb,.5);this.Qa<m?this.Qa=m:this.Qa>k&&(this.Qa=k)}};return f}); 3509define("bI",["require"],function(){function a(f,l){this.j=f;this.pa=l;this.Qa=this.Na=.5;this.nb=1;this.K_=!1}a.prototype.start=function(){this.Qa=this.Na=.5;this.nb=1;this.K_=!0};a.prototype.clear=function(){this.pa=this.j=null};a.prototype.setPosition=function(f,l,m){this.Na=f;this.Qa=l;this.nb=m};a.prototype.pf=function(){return this.K_};a.prototype.Fb=function(){this.K_=!1};return a}); 3510define("im",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PhotoCameraPosition",f,function(l,m,k){f.call(this);void 0!=l&&this.set("x",l);void 0!=m&&this.set("y",m);void 0!=k&&this.set("zoomFactor",k)})}); 3511define("i","require lQ bI im oY bL".split(" "),function(a){var f=a("lQ"),l=a("bI"),m=a("im"),k=a("oY"),c=a("bL");a=f.extend(l,function(h,g){l.call(this,h,g);this.fa=null});a.prototype.start=function(h){var g=h.get("initialPosition",new m
3511(.5,.5,1)),b=h.get("targetPosition",new m(.5,.5,1)),d=h.get("duration",1E3);0==d?(this.Na=g.get("x"),this.Qa=g.get("y"),this.nb=g.get("zoomFactor")):this.fa=new k(h.get("easing","linear"),[new c("x",g.get("x",.5),b.get("x",.5)),new c("y",g.get("y",.5),b.get("y",.5)), 3512new c("zoom",g.get("zoomFactor",1),b.get("zoomFactor",1))],d);this.Fb(0)};a.prototype.clear=function(){this.fa=null;l.prototype.clear.call(this)};a.prototype.pf=function(){return null!=this.fa};a.prototype.Fb=function(h){this.fa&&(this.fa.Fb(h),this.pa.setPosition(this.fa.cb("x"),this.fa.cb("y"),this.fa.cb("zoom")),this.Na=this.pa.getX(),this.Qa=this.pa.getY(),this.nb=this.pa.Vr(),this.fa.Ve()&&(this.fa=null))};return a}); 3513define("cV","require lQ cI gD oj lt mI bQ bI i pw".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("oj"),c=a("lt"),h=a("mI"),g=a("bQ"),b=a("bI"),d=a("i"),e=a("pw"),n=f.extend(m,function(q,p){m.call(this);this.j=q;this.ge=p;this.j.bind(e.tc,this.Ic,this);this.C=c.V;this.jm=this.l_=this.Kb=this.Aa=null;this.pa=new g});n.prototype.clear=function(){this.end();this.pa=null;this.j.unbind(e.tc,this.Ic,this);this.j=null};n.prototype.end=function(q){if(this.Aa==q||"undefined"==typeof q)this.Dqa(), 3514this.Kb=this.l_=this.Aa=null};n.prototype.start=function(q){if(this.Aa!=q){this.end(this.Aa);var p=q.get("media"),r=q.get("camera"),t=p.get("width",100),u=p.get("height",100),v=r?r.get("scaleMode",h.Sh):h.Sh;this.Aa=q;this.Kb=r;this.l_=p;p.lk();this.W=!0;this.pa.setConfiguration(t,u,v);this.GQa(r);this.Sa()}};n.prototype.stop=function(){this.C!=c.V&&(this.C=c.V,this.jm&&(this.jm.start(this.Kb),this.Sa()))};n.prototype.play=function(){if(this.C==c.V||this.C==c.Qb)this.C=c.PLAYING,this.Sa()};n.prototype.pause= 3515function(){this.C==c.PLAYING&&(this.C=c.Qb)};n.prototype.uy=function(q){this.jm&&this.jm.pf()&&(this.C==c.PLAYING&&(this.jm.Fb(q),this.Sa()),this.mm(this.jm.Na,this.jm.Qa,this.jm.nb))};n.prototype.GQa=function(q){this.Dqa();k.Ja("MovementPhotoCamera",q)?this.jm=new d(this.j,this.pa):this.jm=new b(this.j,this.pa);this.jm.start(q)};n.prototype.Dqa=function(){this.jm&&(this.jm.clear(),this.jm=null)};n.prototype.Ic=function(){this.pa.setSize(this.j.Za(),this.j.Cb());this.Sa()};n.prototype.Sa=function(){this.trigger(new l(n.Ob))}; 3516n.prototype.mm=function(q,p,r){this.ge.setPosition(this.Aa,q,p,r)};n.Ob="request frame";return n}); 3517define("iA","require es lQ cI gD pw iw mI".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("cI"),k=a("gD"),c=a("pw");a("iw");var h=a("mI"),g=l.extend(k,function(d,e){k.call(this);this.kR=[];this.M=d;this.j=e});g.prototype.preload=function(d){this.Yz(d).preload();return this};g.prototype.ff=function(d,e){this.Yz(d).ff(e);return this};g.prototype.co=function(d,e){this.Yz(d).co(e);return this};g.prototype.setPosition=function(d,e,n,q){this.Yz(d).setPosition(e,n,q);return this};g.prototype.Ih=function(d){this.Yz(d).Ih()}; 3518g.prototype.stop=function(){this.Wqa(function(d){d.clear()});this.kR=[]};g.prototype.clear=function(){this.stop();this.j=this.M=this.kR=null};g.prototype.Ld=function(){this.Wqa(function(d){d.update()})};g.prototype.Yz=function(d){var e=this.RRa(d);e||(e=new b(d,this.j),e.bind(b.Bna,this.jVa,this),e.bind(b.una,this.iVa,this),this.kR.push(e));return e};g.prototype.Wqa=function(d){f(this.kR).each(d,this)};g.prototype.RRa=function(d){return f(this.kR).find(function(e){return e.getItem()==d})};g.prototype.jVa= 3519function(){this.Sa()};g.prototype.iVa=function(d){this.trigger(new m(g.C6,{item:d.source.getItem()}))};g.prototype.Sa=function(){this.trigger(new m(g.Ob))};g.Ob="request frame";g.C6="photo preload end";var b=l.extend(k,function(d,e){k.call(this);this.Aa=d;this.j=e;this.Of=(e=d.get("camera"))?e.get("scaleMode",h.Sh):h.Sh;this.uj=d.get("media").lk();this.uj.bind(c.da,this.Cd,this);this.uj.bind(c.xc,this.ag,this);this.ua=b.mN;this.Qa=this.Na=.5;this.nb=1;this.ro=0;this.ZH=!1;this.Lg=0;this.Ba=!1});b.prototype.getItem= 3520function(){return this.Aa};b.prototype.preload=function(){this.ua==b.mN?this.s_():this.Aza()};b.prototype.ff=function(d){this.ro!=d&&(this.ro=d,this.hf())};b.prototype.co=function(d){this.Lg!=d&&(this.Lg=d,this.hf())};b.prototype.setPosition=function(d,e,n){if(this.Na!=d||this.Qa!=e||this.nb!=n)this.Na=d,this.Qa=e,this.nb=n,this.hf()};b.prototype.Ih=function(){this.ZH||(this.ZH=!0,this.hf())};b.prototype.clear=function(){this.ua==b.VV&&this.ixa();this.ua!=b.jN&&this.ua!=b.lN&&this.ua!=b.kN||this.bB(); 3521this.uj.unbind(c.da,this.Cd);this.uj.unbind(c.xc,this.ag);this.uj=null};b.prototype.update=function(){this.Ba&&(this.Ba=!1,-1<this.Lg&&1>this.Lg&&0<this.ro?(this.ua==b.mN&&this.Nba(),this.ua==b.jN&&this.nNa(),this.ua==b.VV&&(this.ZH&&(this.j.nha(this.uj),this.ZH=!1),this.j.qs(this.uj,this.ro),this.j.H$a(this.uj,this.Lg),this.j.xU(this.uj,this.Na,this.Qa,this.nb))):(this.ua==b.VV&&this.ixa(),this.ua!=b.jN&&this.ua!=b.kN||this.bB()))};b.prototype.hf=function(){this.Ba||(this.Ba=!0,this.Ga())};b.prototype.Ga= 3522function(){this.trigger(new m(b.Bna))};b.prototype.s_=function(){this.ua=b.lN;this.j.Yn(this.uj);this.j.yEa(this.uj)&&this.Cd()};b.prototype.Nba=function(){this.ua=b.kN;this.j.Yn(this.uj);this.j.yEa(this.uj)&&this.Cd()};b.prototype.nNa=function(){this.ua=b.VV;this.j.Xga(this.uj);this.j.K$a(this.uj,this.Of)};b.prototype.ixa=function(){this.ua=b.jN;this.j.removeItem(this.uj)};b.prototype.bB=function(){this.ua=b.mN;this.j.Hj(this.uj)};b.prototype.Cd=function(){if(this.ua==b.lN||this.ua==b.kN){var d= 3523this.ua==b.lN;this.ua=b.jN;this.hf();d&&this.Aza()}};b.prototype.ag=function(){if(this.ua==b.lN||this.ua==b.kN)this.ua=b.mN};b.prototype.Aza=function(){this.trigger(new m(b.una))};b.Bna="requestUpdate";b.una="preloadEnd";b.mN="unloaded";b.lN="preloading";b.kN="loading";b.jN="loaded";b.VV="added";return g});define("nN",["require"],function(){return{ho:"blending",fq:"scroll"}}); 3524define("ck","require es lQ cI gD pw iA nN".split(" "),function(a){function f(d,e,n){this.Tn=d;this.item=e;this.transitionDuration=n;this.index=d&&e?l(d.get("playList").get("items")).indexOf(this.item):0;this.loaded=!1}var l=a("es"),m=a("lQ"),k=a("cI"),c=a("gD");a("pw");var h=a("iA"),g=a("nN");f.prototype.isEqual=function(d){return d&&d.Tn==this.Tn&&d.item==this.item};var b=m.extend(c,function(d,e,n){c.call(this);this.M=d;this.j=e;this.ge=n;this.ge.bind(h.C6,this.Gwa,this);this.FR=g.ho;this.ua=b.NH;
3525this.Xf=new f(null,null,0);this.Yv=this.Pk=this.yh=null;this.Rn=void 0;this.SA=0});b.prototype.vab=function(d){this.FR=d};b.prototype.dla=function(d){this.SA=d};b.prototype.Mla=function(d,e,n){this.Pk=null;d=new f(d,e,n);d.isEqual(this.ua==b.NH?this.Xf:this.yh)||(this.Pk=d,this.Bva())};b.prototype.clear=function(){this.ua!=b.YV&&this.ua!=b.WV||this.trigger(new k(b.Zy,{album:this.yh.Tn,item:this.yh.item}));this.ua=b.NH;this.j=this.M=this.Yv=this.Xf=this.yh=this.Pk=null;this.ge.unbind(h.C6,this.Gwa, 3526this);this.ge=null};b.prototype.Ld=function(d){this.ua!=b.NH&&(this.Rn+=d,d=this.yh.transitionDuration,d=this.Rn>=d?1:this.Rn/d,this.ua==b.WV?this.q1a(d):this.ua==b.XV?this.r1a(d):this.FR==g.ho?this.e1a(d):this.a2a(d),1>d?this.Sa():this.Uz())};b.prototype.q1a=function(d){this.ge.ff(this.yh.item,d).co(this.yh.item,0)};b.prototype.r1a=function(d){this.ge.ff(this.Xf.item,1-d).co(this.Xf.item,0)};b.prototype.e1a=function(d){this.ge.ff(this.yh.item,Math.min(1,2*d)).co(this.yh.item,0);this.ge.ff(this.Xf.item, 3527Math.min(1,2*(1-d))).co(this.Xf.item,0)};b.prototype.a2a=function(d){var e=this.Xf.Tn!=this.yh.Tn||this.Xf.index<this.yh.index;this.ge.co(this.yh.item,(e?1-d:d-1)*(1+this.SA)).ff(this.yh.item,1);this.ge.co(this.Xf.item,(e?-d:d)*(1+this.SA)).ff(this.Xf.item,1)};b.prototype.Bva=function(){this.Pk&&this.ua==b.NH&&(this.Pk.item&&!this.Pk.loaded?this.ge.preload(this.Pk.item):this.oq())};b.prototype.Gwa=function(d){this.Pk&&this.Pk.item==d.data.item&&(this.Pk.loaded=!0,this.Bva())};b.prototype.oq=function(){this.Yv&& 3528this.Yv!=this.Pk.Tn&&(this.trigger(new k(b.Op,{album:this.Yv})),this.Yv=null);this.trigger(new k(b.J6));"fade_out_fade_in"==this.M.get("transitionMode")&&null!=this.Pk.item&&null!=this.Xf.item?(this.ua=b.XV,this.yh=new f(this.Xf.Tn,null,this.Xf.transitionDuration)):(this.yh=this.Pk,this.Pk=null,this.Xf.item)?this.yh.item?this.ua=b.YV:this.Xf.item&&(this.ua=b.XV):this.ua=b.WV;if(this.ua==b.YV||this.ua==b.WV)this.ge.Ih(this.yh.item),this.trigger(new k(b.zC,{album:this.yh.Tn,item:this.yh.item}));this.Rn= 35290;this.Sa()};b.prototype.Uz=function(){this.ua!=b.YV&&this.ua!=b.XV||this.trigger(new k(b.Zy,{album:this.Xf.Tn,item:this.Xf.item}));this.Xf=this.yh;this.Yv!=this.Xf.Tn&&(this.Yv=this.Xf.Tn,this.trigger(new k(b.Pp,{album:this.Yv})));this.ua=b.NH;null==this.Pk?(this.Xf.item&&this.trigger(new k(b.AC,{album:this.Xf.Tn,item:this.Xf.item})),this.trigger(new k(b.Tp,{album:this.Xf.Tn,item:this.Xf.item}))):this.oq()};b.prototype.Sa=function(){this.trigger(new k(b.Ob))};b.NH="stopped";b.YV="blending";b.XV= 3530"fading_out";b.WV="fading_in";b.Ob="request frame";b.J6="transition begin";b.Tp="transition end";b.zC="photo added";b.Zy="photo removed";b.AC="photo displayed";b.Pp="photo album show";b.Op="photo album hide";return b}); 3531define("fX","require es lQ cI gD pw oj mI im bQ bI i oY bL".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("cI"),k=a("gD"),c=a("pw"),h=a("oj"),g=a("mI"),b=a("im"),d=a("bQ");a("bI");a("i");var e=a("oY"),n=a("bL"),q=l.extend(k,function(p,r,t){k.call(this);this.M=p;this.j=r;this.ge=t;this.Uo=this.Go=this.Aa=this.sf=this.hb=null;this.Kn=void 0;this.t0=0;this.Tk=!1;this.Lg=0;this.OY=this.Uo?-1:0;this.MY=this.Go?1:0;this.fa=null;this.hh=400;this.SA=0;this.pa=new d});q.prototype.clear=function(){this.ge= 3532this.j=this.M=this.Yv=null};q.prototype.e$a=function(p,r){this.sf=p;this.Aa=r;p=p&&p.get("playList")&&p.get("playList").get("items")||[];r=f(p).indexOf(r);this.Go=0<r?p[r-1]:null;this.Uo=r<p.length-1?p[r+1]:null;this.Lg=0;this.OY=this.Uo?-1:0;this.MY=this.Go?1:0;this.s_()};q.prototype.enable=function(){if(this.hb=this.j.getParent())this.hb.bind(c.gb,this.be,this,!0),this.hb.bind(c.Pb,this.Yj,this,!0),this.hb.bind(c.Eb,this.Zj,this,!0),this.s_()};q.prototype.disable=function(){this.hb&&(this.hb.unbind(c.gb, 3533this.be,this),this.hb.unbind(c.Pb,this.Yj,this),this.hb.unbind(c.Eb,this.Zj,this),this.hb=null)};q.prototype.uab=function(p){this.hh=p};q.prototype.dla=function(p){this.SA=p};q.prototype.s_=function(){this.hb&&(this.Go&&this.ge.preload(this.Go),this.Uo&&this.ge.preload(this.Uo))};q.prototype.gua=function(){return(new Date).getTime()};q.prototype.be=function(p){this.Tk||(this.Kn=p.x,this.t0=0,this.zda=this.gua(),this.Tk=!0,this.fa=null,this.trigger(new m(q.j6)),this.Go&&(p=this.esa(this.Go),this.ge.setPosition(this.Go, 3534p.x,p.y,p.zoom)),this.Uo&&(p=this.esa(this.Uo),this.ge.setPosition(this.Uo,p.x,p.y,p.zoom)))};q.prototype.Yj=function(p){if(this.Tk){var r=p.x-this.Kn,t=r/this.hb.Za(),u=this.gua()-this.zda;this.t0=r/u;this.zda+=u;this.Kn=p.x;this.Lg=Math.max(this.OY,Math.min(this.MY,this.Lg+t));this.Sa()}};q.prototype.Zj=function(){if(this.Tk){this.Tk=!1;if(1<this.t0){var p="quad_out";var r=this.MY}else-1>this.t0?(p="quad_out",r=this.OY):(p="quad_in_out",r=-.5>this.Lg?this.OY:.5<this.Lg?this.MY:0);this.fa=new e(p, 3535[new n("offset",this.Lg,r,1E3/this.hh)],0);this.Sa()}};q.prototype.Ld=function(p){if(this.Tk||this.fa)this.fa&&(this.fa.Fb(p),this.Lg=this.fa.cb("offset"),this.fa.Ve()?(this.fa=null,this.vRa()):this.Sa()),this.Aa&&this.ge.co(this.Aa,this.Lg*(1+this.SA)).ff(this.Aa,1),this.Go&&this.ge.co(this.Go,(this.Lg-1)*(1+this.SA)).ff(this.Go,1),this.Uo&&this.ge.co(this.Uo,(this.Lg+1)*(1+this.SA)).ff(this.Uo,1)};q.prototype.vRa=function(){this.trigger(new m(q.k6,{album:this.sf,item:0>this.Lg?this.Uo:0<this.Lg? 3536this.Go:this.Aa}))};q.prototype.Sa=function(){this.trigger(new m(q.Ob))};q.prototype.esa=function(p){var r=p&&p.get("camera"),t=p&&p.get("media");p=t&&t.get("width",100)||100;t=t&&t.get("height",100)||100;var u=r?r.get("scaleMode",g.Sh):g.Sh,v={};h.Ja("MovementPhotoCamera",r)?(r=r.get("initialPosition",new b(.5,.5,1)),v.x=r.get("x",.5),v.y=r.get("y",.5),v.zoom=r.get("zoomFactor",.5)):(v.x=.5,v.y=.5,v.zoom=1);this.pa.setConfiguration(p,t,u);this.pa.setSize(this.j.Za(),this.j.Cb());this.pa.setPosition(v.x, 3537v.y,v.zoom);v.x=this.pa.getX();v.y=this.pa.getY();v.zoom=this.pa.Vr();return v};q.Ob="request frame";q.j6="interaction begin";q.k6="interaction end";return q}); 3538define("jO","require lQ cI gD pw iA nN ck fX".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD");a("pw");a("iA");var k=a("nN"),c=a("ck"),h=a("fX"),g=f.extend(m,function(b,d,e){m.call(this);this.M=b;this.j=d;this.ge=e;this.FR=k.ho;this.hh=1E3;this.Sb=new c(this.M,this.j,this.ge);this.Sb.bind(c.Ob,this.bf,this,!0);this.Sb.bind(c.J6,this.Aua,this,!0);this.Sb.bind(c.Tp,this.Bua,this,!0);this.Sb.bind(c.zC,this.UP,this,!0);this.Sb.bind(c.Zy,this.XP,this,!0);this.Sb.bind(c.AC,this.WP,this,!0);this.Sb.bind(c.Op, 3539this.Uq,this,!0);this.Sb.bind(c.Pp,this.Lo,this,!0);this.Xl=new h(this.M,this.j,this.ge);this.Xl.bind(h.Ob,this.bf,this,!0);this.Xl.bind(h.j6,this.Ata,this,!0);this.Xl.bind(h.k6,this.Bta,this,!0)});g.prototype.U4=function(b,d){this.FR=b;this.hh=d;this.Sb.vab(b);this.Xl.uab(d);this.Sb.dla(.05);this.Xl.dla(.05)};g.prototype.display=function(b,d){this.Sb.Mla(b,d,this.hh)};g.prototype.hide=function(){this.Sb.Mla(null,null,this.hh)};g.prototype.clear=function(){this.Sb.unbind(c.Ob,this.bf,this);this.Sb.unbind(c.J6, 3540this.Aua,this);this.Sb.unbind(c.Tp,this.Bua,this);this.Sb.unbind(c.zC,this.UP,this);this.Sb.unbind(c.Zy,this.XP,this);this.Sb.unbind(c.AC,this.WP,this);this.Sb.unbind(c.Op,this.Uq,this);this.Sb.unbind(c.Pp,this.Lo,this);this.Sb.clear();this.Sb=null;this.Xl.bind(h.Ob,this.bf,this,!0);this.Xl.bind(h.j6,this.Ata,this,!0);this.Xl.bind(h.k6,this.Bta,this,!0);this.Xl.clear();this.ge=this.j=this.M=this.Xl=null};g.prototype.Ld=function(b){this.Sb.Ld(b);this.Xl.Ld(b)};g.prototype.bf=function(){this.Sa()}; 3541g.prototype.UP=function(b){this.trigger(new l(g.zC,b.data))};g.prototype.XP=function(b){this.trigger(new l(g.Zy,b.data))};g.prototype.WP=function(b){this.trigger(new l(g.AC,b.data));this.Xl.e$a(b.data.album,b.data.item)};g.prototype.Uq=function(b){this.trigger(new l(g.Op,b.data))};g.prototype.Lo=function(b){this.trigger(new l(g.Pp,b.data))};g.prototype.Aua=function(){this.Xl.disable()};g.prototype.Bua=function(b){this.FR==k.fq&&b.data.item&&this.Xl.enable();b.data.album||this.trigger(new l(g.g6))}; 3542g.prototype.Ata=function(){this.trigger(new l(g.uma))};g.prototype.Bta=function(b){this.Sb.Mla(b.data.album,b.data.item,0);this.trigger(new l(g.vma,b.data))};g.prototype.Sa=function(){this.trigger(new l(g.Ob))};g.Ob="request frame";g.zC="photo added";g.Zy="photo removed";g.AC="photo displayed";g.Pp="photo album show";g.Op="photo album hide";g.uma="manual interaction begin";g.vma="manual interaction end";g.g6="all pending photo albums hidden";return g}); 3543define("je","require es lQ z cI gD lt".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("z"),k=a("cI"),c=a("gD"),h=a("lt"),g=l.extend(c,function(){c.call(this);this.sf=null;this.C=h.V;this.oea=null});g.prototype.clear=function(){this.Sha()};g.prototype.wla=function(b){this.Sha();this.sf=b;this.C=h.PLAYING;this.oea=m.Ru(this.sf,"playList.selectedIndex",this.ZE,this);0==this.sf.get("playList").get("selectedIndex")?this.ZE():this.sf.get("playList").set("selectedIndex",0)};g.prototype.Sha=function(){this.sf&& 3544(this.C=h.V,this.oea.eC(),this.sf=this.oea=null)};
3544g.prototype.stop=function(){this.C!=h.V&&(this.C=h.V,this.sf.get("playList").set("selectedIndex",0))};g.prototype.play=function(){this.C==h.V?(this.sf.get("playList").set("selectedIndex",0),this.C=h.PLAYING,this.ZE()):this.C==h.Qb&&(this.C=h.PLAYING)};g.prototype.pause=function(){this.C==h.PLAYING&&(this.C=h.Qb)};g.prototype.next=function(){var b=this.sf.get("playList"),d=b.get("selectedIndex"),e=b.get("items").length;(d<e-1||this.sf.get("loop"))&& 3545b.set("selectedIndex",(d+1)%e)};g.prototype.cka=function(){var b=this.sf.get("playList"),d=b.get("selectedIndex"),e=b.get("items").length;(0<d||this.sf.get("loop"))&&b.set("selectedIndex",(d-1+e)%e)};g.prototype.t3=function(b){this.UZa(b)};g.prototype.itemEnd=function(b){if(this.sf){var d=f(this.sf.get("playList").get("items")).last();b!=d||this.sf.get("loop")?this.next():(this.C=h.V,this.trigger(new k(g.b6,{album:this.sf})))}};g.prototype.ZE=function(){var b=this.JTa();0<=b&&(this.C!=h.PLAYING&& 35460!=b?this.trigger(new k(g.F6)):this.trigger(new k(g.o6,{album:this.sf,item:this.sf.get("playList").get("items")[b]})))};g.prototype.JTa=function(){return this.sf?this.sf.get("playList").get("selectedIndex"):-1};g.prototype.UZa=function(b){if(this.sf){var d=this.sf.get("playList");b=f(d.get("items")).indexOf(b);d.set("selectedIndex",b)}};g.F6="play request";g.o6="item request";g.b6="album end";return g}); 3547define("dd","require es lQ pw cI gD lt hA".split(" "),function(a){a("es");var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("lt"),h=a("hA"),g=f.extend(k,function(b){k.call(this);this.M=b;this.xR=this.Aa=null;this.QE=void 0;this.qY=!1;this.C=c.V;h.bind(l.ba,this.rwa,this,!0)});g.prototype.t3=function(b){this.N9();if(this.Aa=b)b=this.Aa.get("media").get("duration",0),this.QE=0==b?void 0:Math.max(0,b-this.M.get("transitionDuration")),this.qY=!1,this.C==c.PLAYING&&this.k$()};g.prototype.clear=function(){h.unbind(l.ba, 3548this.rwa,this,!0);this.t3(null)};g.prototype.stop=function(){this.C!=c.V&&(this.N9(),this.wd(c.V))};g.prototype.play=function(){if(this.C==c.V){if(this.wd(c.PLAYING),this.Aa){this.qY=!1;var b=this.Aa.get("media").get("duration",0);this.QE=0==b?void 0:b;this.k$()}}else this.C==c.Qb&&(this.wd(c.PLAYING),this.Aa&&this.k$())};g.prototype.pause=function(){this.C==c.PLAYING&&(this.wd(c.Qb),this.Dwa())};g.prototype.k$=function(){this.qY||(this.qY=!0,this.trigger(new m(g.p6,{item:this.Aa})));this.hra()}; 3549g.prototype.rwa=function(){h.visible?this.hra():h.visible||this.Dwa()};g.prototype.hra=function(){if(void 0!==this.QE){var b=this;this.N0=(new Date).getTime()+this.QE;this.xR=setTimeout(function(){b.xR=null;b.l0a()},this.QE)}else this.N0=void 0};g.prototype.N9=function(){this.xR&&(clearTimeout(this.xR),this.xR=null)};g.prototype.Dwa=function(){void 0!==this.N0&&(this.N9(),this.QE=Math.max(1,this.N0-(new Date).getTime()),this.N0=void 0)};g.prototype.l0a=function(){var b=this.Aa;this.Aa=null;this.QE= 3550void 0;this.trigger(new m(g.n6,{item:b}))};g.prototype.wd=function(b){this.C!=b&&(this.C=b,this.trigger(new m(g.Qc,{state:this.C})))};g.Qc="playback state change";g.p6="item start";g.n6="item end";return g}); 3551define("oh","require lQ cI gD bn w".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("gD"),k=a("bn"),c=a("w"),h=f.extend(m,function(g){m.call(this);this.W=!0;this.KD=!1;this.j=g;this.Ml=c.browser()==c.ys&&c.zd()==c.z7?3:1;this.$e=this.lO=0});h.prototype.clear=function(){this.W=!1;this.j=null;this.$e=this.lO=0};h.prototype.requestFrame=function(){this.KD||(this.KD=!0,k.requestFrame(this.bk,this))};h.prototype.bk=function(g){this.W&&(this.lO++,this.$e+=g,this.lO==this.Ml?(this.lO=0,this.KD=!1,g=this.$e, 3552this.$e=0,this.trigger(new l(h.Rp,{frameTime:g})),this.trigger(new l(h.Sp,{frameTime:g})),this.j.render()):k.requestFrame(this.bk,this))};h.Rp="frameStart";h.Sp="positionSet";return h}); 3553define("gX","require lQ pw cI gD jL cV jO je dd iA oh".split(" "),function(a){var f=a("lQ");a("pw");var l=a("cI"),m=a("gD"),k=a("jL"),c=a("cV"),h=a("jO"),g=a("je"),b=a("dd"),d=a("iA"),e=a("oh"),n=f.extend(m,function(q,p){m.call(this);this.M=q;this.j=p;this.j.set("visible",!1);this.ki=new g(this.j);this.Ma=new b(this.M);this.ge=new d(this.M,this.j);this.Oa=new h(this.M,this.j,this.ge);this.ib=new c(this.j,this.ge);this.vg=new e(this.j);this.Yd=new k(this.j);this.ge.bind(d.Ob,this.bf,this,!0);this.ki.bind(g.o6, 3554this.Tua,this,!0);this.ki.bind(g.F6,this.Fva,this,!0);this.ki.bind(g.b6,this.VP,this,!0);this.Ma.bind(b.p6,this.Uua,this);this.Ma.bind(b.n6,this.Sua,this);this.Ma.bind(b.Qc,this.jf,this,!0);this.Oa.bind(h.Ob,this.bf,this,!0);this.Oa.bind(h.zC,this.UP,this,!0);this.Oa.bind(h.Zy,this.XP,this,!0);this.Oa.bind(h.AC,this.WP,this,!0);this.Oa.bind(h.Op,this.Uq,this,!0);this.Oa.bind(h.Pp,this.Lo,this,!0);this.Oa.bind(h.uma,this.qWa,this,!0);this.Oa.bind(h.vma,this.rWa,this,!0);this.Oa.bind(h.g6,this.rua, 3555this,!0);this.ib.bind(c.Ob,this.bf,this,!0);this.vg.bind(e.Rp,this.xA,this,!0);this.vg.bind(e.Sp,this.yA,this,!0)});n.prototype.clear=function(){this.ki.clear();this.Ma.clear();this.Oa.clear();this.ib.clear();this.vg.clear();this.Yd.clear();this.ge.clear();this.ge.unbind(d.Ob,this.bf,this);this.ki.unbind(g.o6,this.Tua,this);this.ki.unbind(g.b6,this.VP,this);this.ki.unbind(g.F6,this.Fva,this);this.Ma.unbind(b.p6,this.Uua,this);this.Ma.unbind(b.n6,this.Sua,this);this.Ma.unbind(b.Qc,this.jf,this);this.Oa.unbind(h.Ob, 3556this.bf,this);this.Oa.unbind(h.zC,this.UP,this);this.Oa.unbind(h.Zy,this.XP,this);this.Oa.unbind(h.AC,this.WP,this);this.Oa.unbind(h.Op,this.Uq,this);this.Oa.unbind(h.Pp,this.Lo,this);this.Oa.unbind(h.g6,this.rua,this);this.ib.unbind(c.Ob,this.bf,this);this.vg.unbind(e.Rp,this.xA,this);this.vg.unbind(e.Sp,this.yA,this);this.M=this.j=this.ge=this.Yd=this.vg=this.ib=this.Oa=this.Ma=this.ki=null};n.prototype.U4=function(q,p){this.Oa.U4(q,p)};n.prototype.aab=function(q){this.j.set("visible",!0);this.ki.wla(q)}; 3557n.prototype.yy=function(){this.ki.Sha();this.Ma.stop();this.Oa.hide();this.ib.end();this.Yd.sJa()};n.prototype.next=function(){this.ki.next()};n.prototype.cka=function(){this.ki.cka()};n.prototype.stop=function(){this.Ma.stop();this.Yd.stop();this.ki.stop();this.ib.stop()};n.prototype.play=function(){this.Ma.play();this.Yd.play();this.ki.play();this.ib.play()};n.prototype.pause=function(){this.Ma.pause();this.Yd.pause();this.ki.pause();this.ib.pause()};n.prototype.qWa=function(){this.Ma.pause();this.Yd.pause(); 3558this.ki.pause();this.ib.pause()};n.prototype.rWa=function(){this.Ma.play();this.Yd.play();this.ki.play();this.ib.play()};n.prototype.Tua=function(q){this.Oa.display(q.data.album,q.data.item)};n.prototype.Fva=function(){this.play()};n.prototype.bf=function(){this.vg.requestFrame()};n.prototype.xA=function(q){this.ib.uy(q.data.frameTime)};n.prototype.yA=function(q){q=q.data.frameTime;this.Oa.Ld(q);this.ge.Ld(q);this.Yd.Ld(q)};n.prototype.UP=function(q){this.ib.start(q.data.item)};n.prototype.XP=function(q){var p= 3559q.data.album;q=q.data.item;var r=q.get("media");this.ib.end(q);this.Yd.lbb(r);this.trigger(new l(n.B6,{photoAlbum:p,item:q}))};n.prototype.WP=function(q){var p=q.data.album;q=q.data.item;q.get("media");this.ki.t3(q);this.Ma.t3(q);this.trigger(new l(n.A6,{photoAlbum:p,item:q}))};n.prototype.Uua=function(q){q=q.data.item.get("media");this.Yd.ebb(q)};n.prototype.Sua=function(q){this.ki.itemEnd(q.data.item)};n.prototype.VP=function(q){this.Ma.stop();this.Yd.stop();this.trigger(new l(n.z6,{photoAlbum:q.data.album}))}; 3560n.prototype.Lo=function(q){q=q.data.album;this.Yd.wla(q);this.Ma.play();this.ib.play();this.trigger(new l(n.Pp,{photoAlbum:q}))};n.prototype.Uq=function(q){q=q.data.album;this.Yd.ibb(q);this.trigger(new l(n.Op,{photoAlbum:q}))};n.prototype.rua=function(){this.j.set("visible",!1)};n.prototype.jf=function(q){this.trigger(new l(n.Qc,{state:q.data.state}))};
3560n.Pp="photoAlbumShow";n.z6="photoAlbumEnd";n.Op="photoAlbumHide";n.A6="photoBegin";n.B6="photoEnd";n.Qc="playbackStateChange";return n}); 3561define("ie","require jquery.mod es mI lN ml w".split(" "),function(a){function f(g,b){this.Aa=g;this.ta=b;this.Rb=g.De();this.ec=g.Te();this.uX=g.y$;this.Tga=this.aP=0;this.ro=1;this.Lg=0;this.Ba=!0;this.o9();this.Sd=this.Gd=100;this.Qa=this.Na=.5;this.nb=1;this.vQ=!0;this.vf=1;this.fra={};this.Msa={};this.yAa=h.browser()!=h.rh}var l=a("jquery.mod"),m=a("es"),k=a("mI"),c=a("lN");a("ml");var h=a("w");f.prototype.o9=function(){this.QV=l("<div></div>");var g={position:"absolute",left:"0",top:"0",width:this.Gd+ 3562"px",height:this.Sd+"px",overflow:"hidden","-webkit-transform":"translateZ(0)"};g["-moz-transform-origin"]=g["-webkit-transform-origin"]=g["transform-origin"]="0 0 0";g["-ms-transform-origin"]="0 0";this.QV.css(g);this.B7=l(c.Af(this.Aa.Yi(),!0));g={display:"block",position:"absolute",left:"0",top:"0",width:this.Rb+"px",height:this.ec+"px"};g["-moz-transform-origin"]=g["-webkit-transform-origin"]=g["transform-origin"]="0 0 0";g["-ms-transform-origin"]="0 0";this.B7.css(g);this.QV.append(this.B7)}; 3563f.prototype.gd=function(){return this.QV};f.prototype.getItem=function(){return this.Aa};f.prototype.getX=function(){return this.Na};f.prototype.getY=function(){return this.Qa};f.prototype.Vr=function(){return this.nb};f.prototype.Za=function(){return Math.round(this.Rb*this.nb*this.vf)};f.prototype.Cb=function(){return Math.round(this.ec*this.nb*this.vf)};f.prototype.ff=function(g){this.ro!=g&&(this.ro=g,this.Ba=!0)};f.prototype.H2=function(){return this.ro};f.prototype.$B=function(g){this.Of!=g&& 3564(this.Of=g,this.Ba=!0)};f.prototype.JG=function(g,b){if(this.Gd!=g||this.Sd!=b)this.Gd=g,this.Sd=b,this.Ba=!0};f.prototype.setPosition=function(g,b,d){if(this.Na!=g||this.Qa!=b||this.nb!=d)this.Na=g,this.Qa=b,this.nb=d,this.Ba=!0};f.prototype.co=function(g){this.Lg!=g&&(this.Lg=g,this.Ba=!0)};f.prototype.g$a=function(g){this.Tga!=g&&(this.Tga=g,this.Ba=!0)};f.prototype.render=function(){if(this.Ba){this.Ba=!1;switch(this.Of){case k.NONE:this.vf=1;break;case k.Vp:this.vf=this.Gd/this.Rb;break;case k.vk:this.vf= 3565this.Sd/this.ec;break;case k.As:this.vf=this.Rb*this.Sd>this.ec*this.Gd?this.Sd/this.ec:this.Gd/this.Rb;break;default:this.vf=this.Rb*this.Sd>this.ec*this.Gd?this.Gd/this.Rb:this.Sd/this.ec}var g=this.nb*this.vf,b=.5*this.Gd-this.Na*this.Rb*g,d=.5*this.Sd-this.Qa*this.ec*g,e=this.Gd*this.Lg,n=function(p,r){return Math.round(p*Math.pow(10,r))*Math.pow(10,-r)},q={};q.width=n(this.Gd,0)+"px";q.height=n(this.Sd,0)+"px";q.transform=this.yAa?"translate3d("+n(e,2)+"px, 0px, 0px)":"translate("+n(e,2)+"px, 0px)"; 3566q["-moz-transform"]=q["-webkit-transform"]=q["-ms-transform"]=q.transform;q["z-index"]=this.Tga;0==this.ro?q.display="none":(q.display="block",1==this.ro?(q.filter=q["-ms-filter"]="",q.opacity=""):(q.filter=q["-ms-filter"]="alpha(opacity="+Math.round(100*this.ro)+")",q.opacity=this.ro));e=[];this.yAa?(e.push("translate3d("+n(b,2)+"px, "+n(d,2)+"px, 0px)"),e.push("scale3d("+g+", "+g+", "+g+")"),this.uX&&(e.push("translate3d("+this.Rb+"px, 0, 0)"),e.push("scale3d(-1, 1, 1)"))):(e.push("translate("+ 3567n(b,2)+"px, "+n(d,2)+"px)"),e.push("scale("+g+", "+g+")"),this.uX&&(e.push("translate("+this.Rb+"px, 0)"),e.push("scale(-1, 1)")));g={};g["-moz-transform"]=g["-webkit-transform"]=g["-ms-transform"]=g.transform=e.join(" ");m.isEqual(this.fra,q)||(this.fra=q,this.QV.css(q));m.isEqual(this.Msa,g)||(this.Msa=g,this.B7.css(g))}};return f}); 3568define("iz","require jquery.mod es lQ pw iw lN ie bh e".split(" "),function(a){var f=a("jquery.mod"),l=a("es"),m=a("lQ"),k=a("pw"),c=a("iw"),h=a("lN"),g=a("ie"),b=a("bh"),d=a("e");a=m.extend(d,function(){d.call(this);this.Qe("Renderer");this.set("toolTipDisabled",!0);this.set("cursor",b.hv);this.bind(k.tc,this.Ic,this,!0);this.bind(k.jd,this.sj,this,!0);this.bind(k.ad,this.rj,this,!0);this.TE=!1;this.yc=[];this.n0=this.Jx=!1;this.ida=f("<div/>");this.ida.css({position:"absolute",left:0,top:0,right:0, 3569bottom:0,overflow:"hidden","-webkit-transform":"translateZ(0)"});this.Yb().append(this.ida)});a.prototype.Yn=function(e){h.Yn(e,c.yl)};a.prototype.Hj=function(e){h.Hj(e,c.yl)};a.prototype.yEa=function(e){return h.q5(e)};a.prototype.Xga=function(e){e=new g(e,this);e.JG(this.Za(),this.Cb());e.setPosition(.5,.5,0,1);this.ida.append(e.gd());this.yc.push(e);this.Jx=!0};a.prototype.removeItem=function(e){if(e=this.Dq(e))this.yc=l.without(this.yc,e),e.gd().detach(),this.Jx=!0};a.prototype.nha=function(e){if(e= 3570this.Dq(e))this.yc=l.without(this.yc,e),this.yc.push(e),this.Jx=!0};a.prototype.K$a=function(e,n){this.Dq(e).$B(n)};a.prototype.qs=function(e,n){this.Dq(e).ff(n)};a.prototype.H$a=function(e,n){this.Dq(e).co(n)};a.prototype.xU=function(e,n,q,p){this.Dq(e).setPosition(n,q,p)};a.prototype.aT=function(e){return this.Dq(e).getX()};a.prototype.bT=function(e){return this.Dq(e).getY()};a.prototype.lDa=function(e){return this.Dq(e).Vr()};a.prototype.$S=function(e){return this.Dq(e).Za()};a.prototype.ZS=function(e){return this.Dq(e).Cb()}; 3571a.prototype.render=function(){if(this.TE){this.S1a();this.r_a();for(var e=0;e<this.yc.length;e++)this.yc[e].render()}};a.prototype.S1a=function(){if(this.n0){this.n0=!1;for(var e=this.Za(),n=this.Cb(),q=0;q<this.yc.length;q++)this.yc[q].JG(e,n)}};a.prototype.r_a=function(){if(this.Jx){this.Jx=!1;for(var e=[],n=0;n<this.yc.length;n++){var q=this.yc[n],p={};p.z3=q.aP;p.index=n;p.renderer=q;e.push(p)}e.sort(function(r,t){return r.z3==t.z3?r.index-t.index:r.z3-t.z3});for(n=0;n<e.length;n++)e[n].renderer.g$a(n+ 35721)}};a.prototype.Dq=function(e){if(this.rdb==e)return this.qdb;for(var n=null,q=0;q<this.yc.length&&!n;q++)this.yc[q].getItem()==e&&(n=this.yc[q]);return n};a.prototype.Ic=function(){this.n0=!0;this.render()};a.prototype.sj=function(){this.TE=!0;this.render()};a.prototype.rj=function(){this.TE=!1};return a}); 3573define("kH","require lQ cI oj kj iX gX nN iz ep pw".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("oj"),k=a("kj"),c=a("iX"),h=a("gX"),g=a("nN"),b=a("iz"),d=a("ep"),e=a("pw");a=m.define("PhotoAlbumPlayer",c,function(){c.call(this,"photoAlbum");this.R0=this.hda=this.ri=!1;this.O=this.j=null;this.TOa=new k(this,"buttonNext",d.Ke);this.TOa.bind(e.ma,this.wva,this);this.UOa=new k(this,"buttonPrevious",d.Ke);this.UOa.bind(e.ma,this.Pva,this);this.Hd=f.zp(this.ih,this)});a.prototype.next=function(){this.wva()}; 3574a.prototype.pause=function(){this.BE()};a.prototype.play=function(){this.CE()};a.prototype.previous=function(){this.Pva()};a.prototype.stop=function(){this.AA()};a.prototype.restart=function(){this.zA()};a.prototype.set=function(n,q){if(this.get(n)!=q){switch(n){case "photoAlbum":this.hda=!0;this.Hd();break;case "viewerArea":this.ri=!0;this.Hd();break;case "touchTransition":case "mouseTransition":case "touchTransitionDuration":case "mouseTransitionDuration":case "transitionDuration":this.R0=!0,this.Hd()}c.prototype.set.call(this, 3575n,q)}};a.prototype.ih=function(){this.ri&&(this.ri=!1,this.R0=!0,this.Zv(),this.get("viewerArea")&&this.Xv(),this.aR(this.get("viewerArea")));this.j&&this.hda&&(this.hda=!1,this.get("photoAlbum")?(this.DG(),this.O.aab(this.get("photoAlbum"))):this.O.yy());this.R0&&(this.R0=!1,this.sAa())};a.prototype.kK=function(){this.set("photoAlbum",null)};a.prototype.Xv=function(){var n=this.get("viewerArea");this.j=new b;this.j.ra({left:0,top:0,bottom:0,right:0});n.Ya(this.j);this.O=new h(n,this.j);this.sAa(); 3576this.O.bind(h.Pp,this.Lo,this);this.O.bind(h.Op,this.Uq,this);this.O.bind(h.z6,this.VP,this);this.O.bind(h.A6,this.Dva,this);this.O.bind(h.B6,this.Eva,this);this.O.bind(h.Qc,this.jf,this);this.UA(!0)};a.prototype.Zv=function(){this.j&&(this.O.unbind(h.Pp,this.Lo,this),this.O.unbind(h.Op,this.Uq,this),this.O.unbind(h.z6,this.VP,this),this.O.unbind(h.A6,this.Dva,this),this.O.unbind(h.B6,this.Eva,this),this.O.unbind(h.Qc,this.jf,this),this.O.clear(),this.j.getParent().removeChild(this.j),this.j=null, 3577this.UA(!1))};a.prototype.sAa=function(){var n=this.get("viewerArea");n&&this.O&&(n.Fo?this.O.U4(this.get("touchTransition",g.ho),this.get("touchTransitionDuration",n.get("transitionDuration",1E3))):this.O.U4(this.get("mouseTransition",g.ho),this.get("mouseTransitionDuration",n.get("transitionDuration",1E3))))};a.prototype.jf=function(n){this.wd(n.data.state)};a.prototype.Lo=function(n){this.kP(n.data.photoAlbum)};a.prototype.Uq=function(n){this.jP(n.data.photoAlbum)};a.prototype.VP=function(n){n.data.photoAlbum.trigger(new l(e.Gb))}; 3578a.prototype.Dva=function(n){n.data.item.iB()};a.prototype.Eva=function(n){n.data.item.end()};a.prototype.Ki=function(n){this.j.getParent().ra({progressPercent:n.data.percent,progressVisible:!0})};a.prototype.rJ=function(){this.j.getParent().set("progressVisible",!1)};a.prototype.wva=function(){this.O&&this.get("photoAlbum")&&this.O.next()};a.prototype.Pva=function(){this.O&&this.get("photoAlbum")&&this.O.cka()};a.prototype.Qk=function(){this.O&&this.get("photoAlbum")&&this.O.play()};a.prototype.ap= 3579function(){this.O&&this.get("photoAlbum")&&this.O.stop()};a.prototype.br=function(){this.O&&this.get("photoAlbum")&&this.O.pause()};return a}); 3580define("hq",["require","oj","dn","iK"],function(a){var f=a("oj"),l=a("dn"),m=a("iK");a=f.define("PhotoAlbumPlayListItem",m,function(){m.call(this)});a.prototype.start=function(){m.prototype.start.call(this);var k=this.get("player");k&&(k.bind(l.sh,this.Lo,this),k.set("photoAlbum",this.get("media")))};a.prototype.stop=function(){var k=this.get("player");k&&(k.unbind(l.sh,this.Lo,this),k.get("photoAlbum")==this.get("media")&&k.set("photoAlbum",null));m.prototype.stop.call(this)};a.prototype.AM=function(){var k= 3581this.get("media");if(k){var c=k.get("playList");c&&(k=c.get("selectedIndex"),c=c.get("items"),0<=k&&c&&c[k].AM())}m.prototype.AM.call(this)};a.prototype.Lo=function(){this.get("player").unbind(l.sh,this.Lo,this);this.get("player").bind(l.Um,this.Uq,this);this.iB()};a.prototype.Uq=function(k){k.data.media==this.get("media")&&(this.get("player").unbind(l.Um,this.Uq,this),this.stop(),this.end())};return a}); 3582define("me",["require","iw","oj","jv"],function(a){var f=a("iw"),l=a("oj"),m=a("jv");return l.define("PhotoAudio",m,function(){m.call(this,f.kMa)})});define("oa",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PhotoCamera",f,function(){f.call(this)})}); 3583define("fb","require es mu cI oj jV pw".split(" "),function(a){var f=a("es"),l=a("mu"),m=a("cI"),k=a("oj"),c=a("jV"),h=a("pw");a=k.define("PlayList",l,function(){l.call(this);this.Pf=-1;this.Ah=[];this.yQ=this.$j=this.Be=void 0});a.prototype.set=function(g,b){"selectedIndex"==g?this.TZa(b):"items"==g?this.FZa(b):l.prototype.set.call(this,g,b)};a.prototype.get=function(g,b){return"selectedIndex"==g?this.Pf:"items"==g?this.Ah:l.prototype.get.call(this,g,b)};a.prototype.dispose=function(){this.Be&&(this.Be.unbind(h.Lp, 3584this.ZP,this),this.Be.unbind(h.Vf,this.st,this),this.Be.unbind(h.Gb,this.st,this),this.Be=null)};a.prototype.FZa=function(g){g=g||[];if(!f.isEqual(this.Ah,g)){var b=this.Pf;this.Ah=g;g=this.Dxa(this.Pf);this.trigger(new m(h.oV,{nextSelectedIndex:g}));this.Pf=g;this.nya(this.Yz(this.Pf));this.kAa();this.trigger(new m(h.ba,{previousSelectedIndex:b}));l.prototype.set.call(this,"items",this.Ah);l.prototype.set.call(this,"selectedIndex",this.Pf)}};a.prototype.TZa=function(g){g=this.Dxa(g);if(this.Pf!= 3585g){var b=this.Pf;this.trigger(new m(h.oV,{nextSelectedIndex:g}));this.Pf=g;this.nya(this.Yz(this.Pf));this.kAa();this.trigger(new m(h.ba,{previousSelectedIndex:b}));l.prototype.set.call(this,"selectedIndex",this.Pf)}};a.prototype.Dxa=function(g){return Math.max(-1,Math.min(this.Ah.length-1,g))};a.prototype.Yz=function(g){return 0<=g?this.Ah[g]:null};a.prototype.nya=function(g){this.Be==g&&void 0===this.$j||this.$j===g||(void 0===this.$j?(this.$j=g,this.Be?this.$j&&this.Be.get("player")==this.$j.get("player")? 3586(this.Be.AM(),this.st()):this.YUa(this.Be,this.$j)?(g=this.Be,g.AM(),this.st(),g.ZJa()):(this.jta(this.Be,this.$j)?this.Be.get("media").get("modelLocations",[]).forEac
3586h(function(b){var d=!(b.get("model")!=this.$j.get("media")||!b.get("forceModelLoading"));b.set("preferred",d)}.bind(this)):this.v2a(this.Be,this.$j)&&this.Be.get("player").Pbb(),this.Be.stop()):this.st()):this.$j=g)};a.prototype.YUa=function(g,b){return this.mba(g)&&this.qba(b)&&this.ita(b,g)};a.prototype.jta=function(g,b){return this.qba(g)&& 3587this.mba(b)?this.ita(g,b)?!0:g.get("player").get("keepModel3DLoadedWithoutLocation")&&g.get("player").get("model3DPlayer")==b.get("player")?g.get("player").get("model3DPlayer").get("model")==b.get("media")?!0:!1:!1:!1};a.prototype.ita=function(g,b){return g.get("player")&&g.get("player").get("model3DPlayer")==b.get("player")&&g.get("media").get("modelLocations",[]).find(function(d){return d.get("model")==b.get("media")&&(b.get("media").get("isLoaded")||d.get("forceModelLoading"))})};a.prototype.v2a= 3588function(g,b){return this.qba(g)&&this.mba(b)&&g.get("player").get("model3DPlayer")==b.get("player")};a.prototype.qba=function(g){return g&&k.Ja("PanoramaPlayListItem",g)};a.prototype.mba=function(g){return g&&k.Ja("Model3DPlayListItem",g)};a.prototype.st=function(){this.Be&&(this.Be.unbind(h.Lp,this.ZP,this),this.Be.unbind(h.Vf,this.st,this),this.Be.unbind(h.Gb,this.st,this));this.$j?(this.jta(this.Be,this.$j)&&this.Be.get("player").bind(h.t7,this.BA,this,!0),this.Be=this.$j,this.$j=void 0,this.Be.bind(h.Lp, 3589this.ZP,this),this.Be.bind(h.Vf,this.st,this),this.Be.start()):(this.$j=this.Be=void 0,this.set("selectedIndex",-1))};a.prototype.BA=function(g){g.source.unbind(h.t7,this.BA,this);this.ZP();this.Be.YJa()};a.prototype.ZP=function(){this.Be.unbind(h.Lp,this.ZP,this);this.Be.unbind(h.Vf,this.st,this);this.Be.bind(h.Gb,this.st,this)};a.prototype.kAa=function(){this.yQ&&c.I3(this.yQ.get("media"),-1);(this.yQ=this.Ah&&0<=this.Pf?this.Ah[(this.Pf+1)%this.Ah.length]:null)&&c.I3(this.yQ.get("media"),1)};return a}); 3590define("kS",["require","oj","fb"],function(a){var f=a("oj"),l=a("fb");return f.define("PhotoPlayList",l,function(){l.call(this)})});define("lh",["require","oj","iK"],function(a){var f=a("oj"),l=a("iK");return f.define("PhotoPlayListItem",l,function(){l.call(this)})});define("eL",["require","gI","oj"],function(a){var f=a("gI");return a("oj").define("PlaybackBar",f,function(){f.call(this)})}); 3591define("nF",["require"],function(){function a(m){try{for(var k=(l.CT<<12)+l.IT&65535,c="",h=0,g=m.length;h<g;){var b=f.indexOf(m.charAt(h++))<<12|f.indexOf(m.charAt(h++))<<6|f.indexOf(m.charAt(h++))<<0;b=b-k+65536&65535;c+=String.fromCharCode(b)}return c}catch(d){if("{%"==m.substr(0,2))return""}}var f="";[[65,26],[97,26],[48,10]].forEach(function(m){for(var k=0;k<m[1];k++)f+=String.fromCharCode(m[0]+k)});f+="+/";var l={w4a:"true"};l.CT=parseInt("0")|| 35920;l.IT=parseInt("2116")||1;l.kbb="true";l.name=a("Ah3AiIAiaAitAi3Ai4AilAhkAiUAiwAilAi9AipAi2");l.AKa=a("");return l});define("iR",["require"],function(){return{ab:"left",tb:"right",Ec:"top",wc:"bottom"}}); 3593define("gd",["require","lQ","eF","W","iR"],function(a){var f=a("lQ"),l=a("eF");a("W");a("iR");a=f.extend(l,function(){l.call(this)});a.prototype.tO=function(){return 0};a.prototype.uO=function(){return 0};a.prototype.fK=function(){l.prototype.fK.call(this);this.Tz(function(m){m.Xe(!0)})};a.prototype.tx=function(){l.prototype.tx.call(this);this.Tz(function(m){m.EU(this.tO(m,this.jl()));m.FU(this.uO(m,this.jl()))})};a.prototype.dK=function(){this.Tz(function(m){m.EU(this.tO(m,1));m.FU(this.uO(m,1))}); 3594l.prototype.dK.call(this)};a.prototype.eK=function(){this.Tz(function(m){m.EU(this.tO(m,0));m.FU(this.uO(m,0))});l.prototype.eK.call(this)};return a}); 3595define("nZ",["require","lQ","gd","iR"],function(a){var f=a("lQ"),l=a("gd"),m=a("iR");a=f.extend(l,function(){l.call(this)});a.prototype.tO=function(k,c){switch(this.get("from")){case m.Ec:case m.wc:return 0;case m.ab:var h=k.Na;k=k.Za();return isNaN(k)||isNaN(h)?1E4:(-h-k)*(1-c);default:h=k.getParent();if(!h)return 0;var g=h.zf();h=k.Na;return isNaN(h)||isNaN(g)?1E4:(g-h)*(1-c)}};a.prototype.uO=function(k,c){switch(this.get("from")){case m.Ec:var h=k.Qa;k=k.Cb();return isNaN(k)||isNaN(h)?1E4:(-h- 3596k)*(1-c);case m.wc:h=k.getParent();if(!h)return 0;var g=h.yf();h=k.Qa;return isNaN(h)||isNaN(g)?1E4:(g-h)*(1-c);default:return 0}};a.prototype.eK=function(){this.Tz(function(k){k.EU(0);k.FU(0);k.Xe(!1)})};return a}); 3597define("ia",["require","lQ","gd","W","iR"],function(a){var f=a("lQ"),l=a("gd");a("W");var m=a("iR");a=f.extend(l,function(){l.call(this)});a.prototype.tO=function(k,c){switch(this.get("to")){case m.Ec:case m.wc:return 0;case m.ab:var h=k.Na;k=k.Za();return isNaN(k)||isNaN(h)?1E4:(-h-k)*c;default:h=k.getParent();if(!h)return 0;var g=h.zf();h=k.Na;return isNaN(h)||isNaN(g)?1E4:(g-h)*c}};a.prototype.uO=function(k,c){switch(this.get("to")){case m.Ec:var h=k.Qa;k=k.Cb();return isNaN(k)||isNaN(h)?1E4:(-h- 3598k)*c;case m.wc:h=k.getParent();if(!h)return 0;var g=h.yf();h=k.Qa;return isNaN(h)||isNaN(g)?1E4:(g-h)*c;default:return 0}};a.prototype.dK=function(){this.Tz(function(k){k.EU(0);k.FU(0);k.Xe(!1)})};return a}); 3599define("I","require jquery.mod lQ pw pu w gj nA cZ d oP nZ ia kJ".split(" "),function(a){function f(v){try{return window.localStorage.getItem(v)}catch(w){}}var l=a("jquery.mod"),m=a("lQ"),k=a("pw"),c=a("pu"),h=a("w"),g=a("gj"),b=a("nA"),d=a("cZ"),e=a("d"),n=a("oP"),q=a("nZ"),p=a("ia"),r=a("kJ");a=m.extend(n,function(v){n.call(this);this.Vd=v;this.ij=this.fD=this.Bz=this.rm=null;v=new q;v.set("duration",500);v.set("from","bottom");v=new p;v.set("duration",500);v.set("to","bottom");this.ra({creationPolicy:d.GC, 3600verticalAlign:b.qe,horizontalAlign:b.Ye,visible:!1,showEffect:this.Gdb,hideEffect:this.Hdb});this.lfa="";v=this.ATa();!0===v?setTimeout(function(){this.trigger(k.rH)}.bind(this),0):void 0===v&&(this.Vd.bind(k.F("cookiesPolicy"),this.kqa,this),setTimeout(function(){this.kqa()}.bind(this),0))});a.prototype.Hb=function(){n.prototype.Hb.call(this);this.ra({backgroundColor:"#1a1a1a",width:"100%",left:0,bottom:0});null==this.rm&&(this.rm=new r,this.rm.ra({content:this.lfa,fontColor:"#ffffff",fontWeight:"400", 3601fontFamily:"Open Sans, Arial, sans-serif",width:"100%"}),this.Ya(this.rm));null==this.Bz&&(this.Bz=new n,this.Ya(this.Bz),this.Bz.ra({creationPolicy:d.GC,verticalAlign:b.qe,layout:e.Gg}));null==this.fD&&(this.fD=new g,this.fD.ra({backgroundColor:"#2aabe2",fontColor:"#ffffff",fontFamily:"Open Sans, Arial, sans-serif",label:c("accept").toUpperCase(),verticalAlign:"middle"}),this.Bz.Ya(this.fD),this.fD.bind(k.ma,this.LOa,this,!0));null==this.cI&&(this.cI=new g,this.cI.ra({backgroundColor:"#1a1a1a",fontColor:"#808080", 3602fontFamily:"Open Sans, Arial, sans-serif",label:c("reject").toUpperCase(),textDecoration:"underline",verticalAlign:"middle"}),this.Bz.Ya(this.cI),this.cI.bind(k.ma,this.WOa,this,!0))};a.prototype.Ht=function(){n.prototype.Ht.apply(this,arguments);
3602var v=this.Db();v&&(v.bind(k.tc,this.um,this,!0),this.um())};a.prototype.um=function(){var v=this.Db();if(v){var w=h.pb(),x=v.Cb()>v.Za(),y=Math.min(v.Za(),v.Cb())/100;v=function(z){return Math.round(z*y)};this.ra({gap:w?v(4.63):20,paddingLeft:w?v(4.63): 360320,paddingRight:w?v(4.63):20,paddingTop:w?v(4.63):14,paddingBottom:w?v(4.63):14,layout:w&&x?e.Xh:e.Gg});this.rm&&this.rm.ra({fontSize:w?v(3.15):14,textAlign:w&&x?"center":"left"});this.Bz&&this.Bz.ra({gap:w?0:13});this.fD&&this.fD.ra({borderRadius:w?v(4.63):15,fontSize:w?v(3.15):14,height:w?v(9.26):30,paddingLeft:w?v(6):20,paddingRight:w?v(6):20});this.cI&&this.cI.ra({borderRadius:w?v(4.63):15,fontSize:w?v(3.15):14,height:w?v(9.26):30,paddingLeft:w?v(6):20,paddingRight:w?v(6):20});this.Xd()}};a.prototype.kqa= 3604function(){var v=m.toArray(this.Vd.get("cookiesPolicy"));this.uQ!=v&&(this.uQ=v,this.HYa())};a.prototype.HYa=function(){if(0==this.uQ.length)this.Bea(null);else{var v=this.uQ[0];0==m.toArray(v.get("geographicArea")).length?this.Bea(v):this.SSa(function(w){for(var x=null,y=0;y<this.uQ.length&&!x;y++){var z=this.uQ[y],B=m.toArray(z.get("geographicArea"));if(0==B.length)x=z;else for(var E=0;E<B.length&&!x;E++)0<=w.indexOf(B[E])&&(x=z)}this.Bea(x)}.bind(this))}};a.prototype.Bea=function(v){this.JJ!== 3605v&&(this.JJ&&this.JJ.unbind(k.F("url"),this.nga,this),(this.JJ=v)?(this.JJ.bind(k.F("url"),this.nga,this),this.nga(),this.set("visible",!0)):(this.trigger(k.rH),this.set("visible",!1)))};a.prototype.nga=function(){var v=l(document.createElement("div")).html(c("cookies-notice"));v.find("a").css({color:"#2aabe2",cursor:"pointer","text-decoration":"underline"}).attr({href:this.JJ.get("url"),target:"_blank"});this.lfa=v.html();this.rm&&this.rm.set("content",this.lfa)};a.prototype.LOa=function(){this.pya(!0); 3606this.set("visible",!1);this.trigger(k.rH)};a.prototype.WOa=function(){this.pya(!1);this.set("visible",!1)};var t="AT BE BG CY CZ DE DK EE EL ES FI FR HR HU IE IT LT LU LV MT NL PL PT RO SE SI SK".split(" ");a.prototype.SSa=function(v){this.FSa(function(w){var x=[w];t.indexOf(w)&&x.push("EU");v(x)})};a.prototype.FSa=function(v){var w=f("tdvp_country_code");w?v(w):this.pra||(this.pra=!0,l.get("https://geoloc.3dvista.com",function(x){this.pra=!1;x=x.country.toUpperCase();try{window.localStorage.setItem("tdvp_country_code", 3607x)}catch(y){}v(x)}.bind(this)))};var u="tdvp_accept_cookies_"+window.location.origin+window.location.pathname;a.prototype.ATa=function(){var v=f(u);if("yes"==v)return!0;if("no"==v)return!1};a.prototype.pya=function(v){try{window.localStorage.setItem(u,v?"yes":"no")}catch(w){}};return a}); 3608define("mF",["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&&-1==x.indexOf("://")?("undefined"!==typeof window?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 f(w,x){return new Promise(function(y,z){(void 0===x?k():Promise.resolve(x)).then(function(B){(window.webkitRequestFileSystem|| 3609window.requestFileSystem)(B?window.PERSISTENT:window.TEMPORARY,w,function(E){y(E)},function(E){console.log("Error getting file system access",E);z("error getting file system")})},function(B){console.log("error getting file system access",B);z("error getting file system")})})}function l(w,x){return w&&w.queryUsageAndQuota?new Promise(function(y,z){w.queryUsageAndQuota(function(B,E){console.log("UsedBytes:",B,"grantedBytes:",E,"freeBytesRequired:",x);var I=B+x;E>=I?y(I):w==navigator.webkitPersistentStorage|| 3610w==navigator.persistentStorage?(console.log("requestQuota:",I),w.requestQuota(I,function(){console.log("Granted bytes:",I);y(I)},function(A){console.log("Not granted bytes:",I,A);z("not enough free space granted")})):(console.log("Not enough temporary free space."),z("not enough free space granted"))},function(B){console.log("Query quota error:",B);B&&B.message&&(B=B.message);z("not enough free space granted: "+B)})}):Promise.reject("unknown free space")}function m(){return(navigator.storage&&navigator.storage.persist? 3611navigator.storage.persist():Promise.resolve(!1)).then(function(w){console.log("Persistence granted:",w);
3611return w?navigator.webkitPersistentStorage||navigator.persistentStorage:navigator.webkitTemporaryStorage||navigator.temporaryStorage})}function k(){return navigator.storage&&navigator.storage.persisted?navigator.storage.persisted():Promise.resolve(!1)}function c(){return v?Promise.resolve(v):Promise.reject("files uninitialized, no space was requested")}function h(w){w.length&&"/"==w[0]&&(w=w.substr(1)); 3612return w.split("/").filter(function(x){return""!=x})}function g(w){return new Promise(function(x,y){w.remove(function(){x()},function(z){y("can't remove entry"+(z&&z.message?": "+z.message:"")+".")})})}function b(w){return d(w).then(function(x){return Promise.all(x.map(function(y){return y.isDirectory?b(y):g(y)}))}).then(function(){return g(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)}, 3613function(){y("can't list directory")})})}function e(w,x,y){return new Promise(function(z,B){w.getDirectory(x,y,function(E){z(E)},function(){B("can't get directory entry: "+x)})})}function n(w,x){return new Promise(function(y,z){e(w,x,{create:!1}).then(function(B){y(B)})["catch"](function(){e(w,x,{create:!0}).then(function(B){y(B)})["catch"](function(B){console.log("Can't create directory entry: "+x,B);z("can't create directory entry: "+x)})})})}function q(w,x){return 0==x.length?w:n(w,x[0]).then(function(y){return q(y, 3614x.slice(1))})}function p(w,x){return 0==x.length?w:e(w,x[0]).then(function(y){return p(y,x.slice(1))})}function r(w,x,y){return new Promise(function(z,B){w.getFile(x,y,function(E){z(E)},function(){B("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((0>x?"":w.substr(x)).toLowerCase()){case ".bmp":return"image/bmp";case ".eot":return"application/vnd.ms-fontobject"; 3615case ".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";
3615case ".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"; 3616case ".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{o4:function(){return k()},toURL:function(w,x){return a(w).then(function(y){y= 3617new window.URL(y);var z=x?"persistent":"temporary",B=y.pathname.split("/").map(encodeURIComponent).join("/");return"filesystem:"+y.origin+"/"+z+B})},x9a:function(w){return m().then(function(x){return l(x,w)}).then(function(x){return f(x)}).then(function(x){v=x})},i9a:function(w){w=h(w);var x=w[w.length-1],y=w.slice(0,-1);return c().then(function(z){return p(z.root,y)}).then(function(z){return r(z,x,{create:!0})},function(){return Promise.resolve(null)}).then(function(z){return z&&g(z)})},nHa:function(w, 3618x){var y=h(w);return f(1024,x).then(function(z){return p(z.root,y)}).then(function(z){return b(z)},function(){return Promise.resolve()})},BKa:function(w,x,y){var z=h(w),B=z[z.length-1],E=z.slice(0,-1);return c().then(function(I){return q(I.root,E)}).then(function(I){return r(I,B,{create:!1}).then(function(A){return Promise.resolve(A)},function(){return r(I,B,{create:!0})})}).then(function(I){return t(I)}).then(function(I){I.seek(I.length);return new Promise(function(A,C){I.onwriteend=function(){A()}; 3619I.onerror=function(J){console.log("Error writing file:",w,J);C("error writing file: "+w)};I.write(new Blob([x],{type:y||u(B)}))})})}}}); 3620define("cG",["require","mF","mQ","w"],function(a){function f(b,d){this.Ct=b;this.Dz=!1;this.So=null;this.Vw=d||function(){}}function l(b){return 1048576<=b.cH}var m=a("mF"),k=a("mQ"),c=a("w").Df()?3:5;a={File:function(b,d){this.url=b;this.cH=d;this.lU=this.QK=0}};var h=a.Files=function(b,d,e,n){this.wpa=this.vOa=b;this.vt=d.slice();this.ora=[];var q=0;this.vt.sort(function(p,r){return p.cH-r.cH});this.vt.forEach(function(p){q+=p.cH});this.lza=q;this.BD=[];this.wW=void 0;this.ft=[];this.K8=!1;this.kg= 3621e||function(){};this.dO=n||function(){}};h.prototype.hu=function(){return this.sPa().then(function(){return this.tPa()}.bind(this))};h.prototype.sPa=function(){return self.caches["delete"](this.wpa)};h.prototype.tPa=function(){var b=(new window.URL(this.vOa)).pathname;return m.nHa(b,!1).then(function(){return m.nHa(b,!0)})};h.prototype.requestStorage=function(){return m.x9a(Math.round(1.1*this.lza+10485760)).then(function(){return m.o4()})};h.prototype.download=function(){this.K8=!1;this.wW=0;this.hu().then(function(){this.ZN()}.bind(this))["catch"](function(b){console.log("error cleaning storage", 3622b);m.o4().then(function(d){this.dO(!1,d)}.bind(this))}.bind(this))};h.prototype.cancelDownload=function(){this.K8=!0;this.ft.forEach(function(b){b.cancel()});this.hu()};h.prototype.ZN=function(){if(!(this.K8||this.ft.length>=c))if(0<this.vt.length){if(1==c)var b=.5<Math.random()?this.vt.shift():this.vt.pop();else if(0==this.BD.filter(l).length)b=this.vt.pop();else{if(l(this.vt[0]))return;b=this.vt.shift()}this.BD.push(b);var d=k.gB(b.url,"nc="+(new Date).getTime()),e=new f(d,function(q){b.QK=q.QK; 3623this.yj()}.bind(this));this.ft.push(e);e.fetch().then(function(q){return this.R_a(b.url,q)}.bind(this)).then(function(){this.Tqa(b,e,!0)}.bind(this))["catch"](function(q){console.log("download error",b.url,b.cH,b.QK,q);this.Tqa(b,e,!1)}.bind(this));this.ZN()}else if(0==this.ft.length){var n=5>=this.ora.length;m.o4().then(function(q){this.dO(n,q)}.bind(this))}};h.prototype.Tqa=function(b,d,e){e?(this.BD.splice(this.BD.indexOf(b),1),this.ft.splice(this.ft.indexOf(d),1),this.wW+=b.cH,this.yj(),this.ZN()): 3624(b.QK=0,b.lU+=1,this.yj(),20<=b.lU?(console.log("Error downloading file: "+b.url+" after "+b.lU+" retries."),this.cta(b.url)?(this.ora.push(b),this.ft.splice(this.ft.indexOf(d),1),this.ZN()):(this.cancelDownload(),m.o4().then(function(n){this.dO(!1,n)}.bind(this)))):(console.log("Error downloading file: "+b.url+" attempt "+b.lU+" of 20. Will retry in 2000ms."),setTimeout(function(){this.BD.splice(this.BD.indexOf(b),1);this.ft.splice(this.ft.indexOf(d),1);l(b)?this.vt.push(b):this.vt.splice(0,0,b); 3625this.ZN()}.bind(this),2E3)))};h.prototype.R_a=function(b,d){return this.T_a(b,d).then(function(){if(this.m2a(b))return this.S_a(b,d)}.bind(this))};h.prototype.S_a=function(b,d){d=d.clone();return 200!=d.status?Promise.reject("response status: "+d.status):self.cac
3625hes.open(this.wpa).then(function(e){return e.put(b,d)})};h.prototype.T_a=function(b,d){d=d.clone();if(200!=d.status)return Promise.reject("response status: "+d.status);var e=(new window.URL(b)).pathname;return e.lastIndexOf("/")==e.length- 36261?Promise.resolve():new Promise(function(n,q){function p(){x.read().then(function(y){var z=y.value,B=[];if(z){for(;10485760<=z.length+w;){var E=z.slice(0,10485760-w);v.push(E);B.push(r(v));v=[];w=0;z=z.slice(E.length,z.length)}0<z.length&&(v.push(z),w+=z.length)}var I=y.done;w&&I&&B.push(r(v));t(B).then(function(){I?n():p()})["catch"](u)})["catch"](u)}function r(y){if(0==y.length)return new Uint8Array(0);var z=0;y.forEach(function(A){z+=A.length});for(var B=new Uint8Array(z),E=0,I=0;I<y.length;E+= 3627y[I].length,I++)B.set(y[I],E);return B}function t(y){if(0==y.length)return Promise.resolve();var z=y.shift();return m.BKa(e,z).then(function(){t(y)})}function u(y){console.log("Error writing response to file system:",y);m.i9a(e).then(function(){q("Error reading response body")})}var v=[],w=0,x=d.body.getReader();p()})};var g=".bmp .gif .glb .jpeg .jpg .m3u8 .m4a .m4v .mp3 .mp4 .ogg .ogv .otf .png .svg .tif .tiff .ts .tts .webm .woff .woff2".split(" ");h.prototype.cta=function(b){b=(new window.URL(b)).pathname; 3628var d="."+b.split(".").pop().toLowerCase();return 0<=g.indexOf(d)&&0>b.indexOf("loading/")};h.prototype.m2a=function(b){var d=(new window.URL(b)).pathname;return 0<=d.indexOf("files/")||0<=d.indexOf("pdfjs/")?!0:this.cta(b)?!1:!0};h.prototype.yj=function(){var b=this.wW;this.BD.forEach(function(d){b+=d.QK});this.kg(100*b/this.lza)};f.prototype.fetch=function(){return fetch(this.Ct).then(function(b){if(this.Dz)return b.body.getReader().cancel(),Promise.reject("cancel requested before server responded."); 3629if(!b.ok)return Promise.resolve(b);var d=b.headers.get("content-length"),e=void 0,n=0;null!==d&&(e=parseInt(d,10));this.So=b.body.getReader();var q=!1,p=function(u){this.Dz?u.close():q=!0}.bind(this),r=function(u){return this.So.read().then(function(v){var w=v.value;w&&(n+=w.byteLength,u.enqueue(w));v.done&&(e=n,t(u));this.Vw({cH:e,QK:n})}.bind(this))["catch"](function(v){console.log("Error reading response",v);u.error(v)}.bind(this))}.bind(this),t=function(u){q&&(u.close(),q=!1,this.So=null)}.bind(this); 3630return new Response(new ReadableStream({start:function(u){return p(u)},pull:function(u){return r(u)},cancel:function(){t()}}))}.bind(this))};f.prototype.cancel=function(){this.Dz=!0;this.So&&this.So.cancel()};a.hu=function(b){return(new h(b,[])).hu()};return a}); 3631define("fe","require lQ jquery.mod pw gD w cG mF nd mQ lR dF".split(" "),function(a){function f(u){p=u}var l=a("lQ"),m=a("jquery.mod"),k=a("pw"),c=a("gD"),h=a("w"),g=a("cG"),b=a("mF"),d=a("nd"),e=a("mQ"),n=a("lR"),q=a("dF"),p=null;window.addEventListener("beforeinstallprompt",f);var r=l.extend(c,function(u){c.call(this);this.Vd=u;this.C="initial";this.rea=this.Kt=this.Uj=null;this.ix=!1;this.JD=null;this.m1=void 0;this.zD=p;this.BY=r.OEa();this.Jba=e.Cj("vr");this.zD||this.BY||(window.removeEventListener("beforeinstallprompt", 3632f),window.addEventListener("beforeinstallprompt",this.YVa.bind(this)));this.BY||window.addEventListener("appinstalled",this.QNa.bind(this))});r.prototype.fla=function(u){this.Kt=u;this.dn=e.Hy(this.Kt.get(TDV.PlayerSettings.BASE_DIR_URL)||e.getDirectory(this.Kt.get(TDV.PlayerSettings.SELECTED_SCRIPT_URL)));"/"!=this.dn[this.dn.length-1]&&(this.dn+="/");this.Uj=new t(this.dn);this.m1=this.exa=u.get(TDV.PlayerSettings.QUERY_STRING_PARAMETERS);this.kUa=e.parse(e.getDirectory(window.location.href)).pathname; 3633this.KRa=e.gB(e.Hy("files.json",this.dn),this.exa);u=TDV.xb.KDa();this.rea=e.gB(this.Kt.get(TDV.PlayerSettings.SERVICE_WORKER_URL),"swv="+u.MAJOR+"."+u.MINOR);this.Uj=new t(this.dn);this.Uj.bind(k.da,this.j0a,this,!0);this.Uj.load()};r.prototype.vL=function(){return this.Uj.state==t.OM};r.prototype.EBa=function(){return"can_install"==this.C&&!this.Jba};r.prototype.GBa=function(){return this.vL()&&this.m1!=this.Uj.version&&!this.Jba};r.prototype.DBa=function(){return this.Uj.state!=t.nma&&!this.Jba}; 3634r.prototype.tEa=function(){"can_install"==this.C&&(this.zD?(this.zD.userChoice.then(function(u){"accepted"!=u.outcome&&this.wd("unavailable")}.bind(this)),this.zD.prompt().then(function(){this.zD=null}.bind(this))):this.a$())};r.prototype.cancel=function(){"downloading"==this.C&&(this.JD&&(this.JD.cancelDownload(),this.JD=null),this.Uj.hu(),this.wd("unavailable"))};r.prototype.hu=function(){g.hu(this.dn);this.Uj.hu()};r.prototype.j0a=function(){this.Kt&&this.Kt.get(TDV.PlayerSettings.pV)?this.wd("unavailable"): 3635!0!==this.Vd.get("downloadEnabled")?this.wd("unavailable"):!0!==d.dLa?this.wd("unavailable"):h.browser()!=h.Sm||h.cc()==h.Uy||h.cc()==h.mH?this.wd("unavailable"):this.rea?"serviceWorker"
3635in navigator?this.vL()&&!this.GBa()?this.wd("unavailable"):navigator.onLine?this.VXa():this.wd("unavailable"):this.wd("unavailable"):this.wd("unavailable")};r.prototype.wd=function(u){this.C!=u&&(this.C=u,u=0<=["can_install","unavailable"].indexOf(this.C),this.ix!=u&&(this.ix=u)&&this.trigger(k.hd))};r.prototype.VXa= 3636function(){this.wd("registering_sw");navigator.serviceWorker.register(this.rea,{scope:this.kUa}).then(function(){this.Pxa(!0)}.bind(this))["catch"](function(){this.Pxa(!1)}.bind(this))};r.prototype.Pxa=function(u){u?h.Df()?this.wd("can_install"):this.BY&&this.Uj.state==t.Z5?(this.wd("can_install"),this.a$()):this.zD?this.wd("can_install"):(this.wd("sw_registered"),setTimeout(function(){"sw_registered"==this.C&&this.wd("can_install")}.bind(this),3E3)):this.wd("unavailable")};r.prototype.YVa=function(u){this.Kt&& 3637this.Kt.get(TDV.PlayerSettings.pV)||(this.zD=u,"sw_registered"==this.C&&this.wd("can_install"))};r.prototype.QNa=function(){this.Kt&&this.Kt.get(TDV.PlayerSettings.pV)||("sw_registered"==this.C&&this.wd("can_install"),this.a$())};r.prototype.a$=function(){this.wd("downloading");this.trigger(k.Lp);this.Cza(0);this.nVa()};r.prototype.nVa=function(){var u=e.gB(this.KRa,"nc="+(new Date).getTime());m.getJSON(u,function(v){if("downloading"==this.C){var w=[],x;for(x in v){var y=v[x].tags;if(y){Array.isArray(y)|| 3638(y=[y]);for(var z=0;z<y.length;z++)0>w.indexOf(y[z])&&w.push(y[z])}}var B=[];0<=w.indexOf("mobilevr2gen")&&(h.q3()||h.r3())?B.push("mobilevr2gen"):0<=w.indexOf("mobilevr")&&h.Df()?B.push("mobilevr"):0<=w.indexOf("mobile")&&h.pb()?B.push("mobile"):0<=w.indexOf("desktop")&&!h.pb()&&B.push("desktop");w=[];
3638for(x in v)if(!(-1<x.indexOf(".DS_Store"))){if(y=v[x].tags){var E=!1;if(Array.isArray(y)){z=0;for(var I=y.length;z<I&&!E;z++)E=0<=B.indexOf(y[z])}else E=0<=B.indexOf(y);if(!E)continue}y=e.Hy(x,this.dn); 3639w.push(new g.File(y,v[x].size))}var A=(new window.URL(window.location.pathname,window.location.href)).toString();0==w.filter(function(C){return C.url==A}).length&&w.push(new g.File(A,1024));this.JD=new g.Files(this.dn,w,this.Cza.bind(this),this.Sqa.bind(this));this.JD.requestStorage().then(function(C){this.Uj.storage=C?t.$M:t.m7;this.Uj.state=t.Z5;this.Uj.version=this.m1;this.Uj.save();this.JD.download()}.bind(this))["catch"](function(){this.Sqa(!1,void 0)}.bind(this))}}.bind(this))};r.prototype.Cza= 3640function(u){this.trigger(new n(k.kc,u))};r.prototype.Sqa=function(u,v){this.JD=null;this.wd("unavailable");u&&(this.Uj.state=t.OM,this.Uj.save());u?this.trigger(k.Gb,{success:!0}):v?this.trigger(k.Gb,{success:!1,error:r.qma}):h.Df()?this.trigger(k.Gb,{success:!1,error:r.pma}):this.BY?this.trigger(k.Gb,{success:!1,error:r.qma}):this.trigger(k.Gb,{success:!1,error:r.rma})};r.OEa=function(){return e.lg("installed",!1)};r.W8a=function(u,v){var w=new r.Q6(u);w.bind(k.da,function(){var x=!1;w.state==r.Q6.OM&& 3641(x=r.OEa()?!0:!navigator.onLine);x?b.toURL(u,w.storage==r.Q6.$M).then(function(y){v(y)}):v(u)},this,!0);w.load()};r.rma="launchFromHomeScreen";r.pma="addToBookmark";r.qma="errorDownloading";var t=l.extend(c,function(u){c.call(this);this.dn=u;this.yba="installation_state_"+u;this.oXa=e.parse(this.dn).pathname+"installation_state.json";this.state=this.storage=this.version=void 0;this.Wxa()});t.prototype.load=function(){if(this.oVa()&&this.state==t.OM)this.fza(this.storage==t.$M).then(function(){this.trigger(k.da)}.bind(this))["catch"](function(){this.fza(this.storage!= 3642t.$M).then(function(){this.storage=this.storage==t.m7?t.$M:t.m7;this.kea();this.trigger(k.da)}.bind(this))["catch"](function(){this.state=t.Z5;this.kea();this.trigger(k.da)}.bind(this))}.bind(this));else this.trigger(k.da)};t.prototype.save=function(){this.kea();this.state==t.OM&&this.CYa()};t.prototype.oVa=function(){var u=q.getItem(this.yba);if(!u)return!1;this.eSa(u);return!0};t.prototype.kea=function(){q.setItem(this.yba,this.kza())};t.prototype.fza=function(u){return new Promise(function(v,w){b.toURL(this.dn+ 3643"installation_state.json",u).then(function(x){m.ajax({type:"GET",url:x,success:function(){v()},error:function(){w()}})}.bind(this))}.bind(this))};t.prototype.CYa=function(){b.BKa(this.oXa,this.kza(),"text/json")};t.prototype.kza=function(){var u={};u.version=this.version;u.storage=this.storage;u.state=this.state;return JSON.stringify(u)};t.prototype.eSa=function(u){this.dSa(JSON.parse(u))};t.prototype.dSa=function(u){this.version=u.version;this.storage=u.storage;this.state=u.state};t.prototype.hu= 3644function(){q.removeItem(this.yba);this.Wxa()};t.prototype.Wxa=function(){this.version="";this.storage=t.yMa;this.state=t.nma};t.yMa="unkonwn";t.m7="temporary";t.$M="persistent";t.nma="not started";t.Z5="started";t.OM="completed";r.Q6=t;return r}); 3645define("bf","require lQ pw pu w fe gj gs nA d oP e dE".split(" "),function(a){function f(r){var t=new g;t.ra({label:r,backgroundColor:"#0071BC",borderRadius:2,fontColor:"#ffffff",fontWeight:"400",fontFamily:"Arial, sans-serif",fontSize:14,paddingLeft:14,paddingRight:14,height:31,verticalAlign:d.qe});return t}var l=a("lQ"),m=a("pw"),k=a("pu"),c=a("w"),h=a("fe"),g=a("gj"),b=a("gs"),d=a("nA"),e=a("d"),n=a("oP"),q=a("e"),p=a("dE");a=l.extend(n,function(r,t){n.call(this);this.Vd=r;this.ug=t;this.ug.bind(m.hd, 3646this.EUa,this,!0);this.ug.bind(m.Lp,this.BUa,this,!0);this.ug.bind(m.kc,this.DUa,this,!0);this.ug.bind(m.Gb,this.CUa,this,!0);this.ua="hidden";this.aS=void 0;this.rda=!1;this.kg=void 0;this.ij=this.Qv=this.gD=this.kD=this.hD=this.s0=this.Pa=null;this.LNa();this.ra({backgroundColor:"#000000",gap:18,height:55,width:"100%",paddingLeft:28,paddingRight:28,verticalAlign:d.qe,layout:e.Gg});this.yg()});a.prototype.EUa=function(){this.ug.EBa()||this.ug.vL()&&this.ug.DBa()?(this.ua="ready",this.rda&&this.Mya()): 3647this.ua="hidden";this.yg()};a.prototype.BUa=function(){this.ua="installing";this.yg()};a.prototype.DUa=function(r){this.kg=r.Tg;this.yg()};a.prototype.CUa=function(r){this.ua=r.data.success?"installed":"failed";this.jra=r.data.error;this.yg()};a.prototype.Mf=function(){this.Q_a()};a.prototype.BZ=function(){this.rda||(this.rda=!0,"ready"==this.ua&&this.Mya())};a.prototype.Mya=function(){this.aS=setTimeout(function(){this.aS=null;this.cXa()}.bind(this),5E3);this.yg()};a.prototype.Q_a=function(){this.oxa(); 3648this.aS&&clearTimeout(this.aS);this.aS=null};a.prototype.cXa=function(){this.oxa();"ready"==this.ua&&(this.ua="hidden",this.yg())};a.prototype.LNa=function(){this.bind(m.Pb,this.Mf,this);this.Vd.bind(m.Pb,this.BZ,this);this.Vd.bind(m.gb,this.BZ,this)};a.prototype.oxa=function(){this.unbind(m.Pb,this.Mf,this);this.Vd.unbind(m.Pb,this.BZ,this);this.Vd.unbind(m.gb,this.BZ,this)};a.prototype.Hb=function(){n.prototype.Hb.call(this);null==this.Pa&&(this.Pa=new p,this.Pa.ra({fontColor:"#ffffff",fontWeight:"400", 3649fontFamily:"Arial, sans-serif",fontSize:14,text:k("download-tour")}),this.Ya(this.Pa));null==this.hD&&(this.hD=f(k("download")),this.Ya(this.hD),this.hD.bind(m.ma,this.POa,this,!0));null==this.kD&&(this.kD=f(k("refresh-downloaded")),this.Ya(this.kD),this.kD.bind(m.ma,this.VOa,this,!0));null==this.gD&&(this.gD=f(k("delete-downloaded")),this.Ya(this.gD),this.gD.bind(m.ma,this.OOa,this,!0));null==this.s0&&(this.s0=new q,this.s0.ra({width:"100%"}),this.Ya(this.s0));null==this.Qv&&(this.Qv=new b,this.Qv.ra({backgroundColor:"#ffffff", 3650borderRadius:2,iconColor:"#000000",iconLineWidth:1,iconWidth:17,iconHeight:17,height:31,width:31}),this.Ya(this.Qv),this.Qv.bind(m.ma,this.NOa,this,!0));null==this.ij&&(this.ij=f(k("cancel")),this.Ya(this.ij),this.ij.bind(m.ma,this.zz,this,!0));c.pb()&&this.um();this.yg()};a.prototype.mq=function(){n.prototype.mq.call(this);
3650c.pb()&&this.getParent().bind(m.tc,this.um,this,!0)};a.prototype.Ln=function(){c.pb()&&this.getParent().unbind(m.tc,this.um,this,!0);n.prototype.Ln.call(this)};a.prototype.um= 3651function(){var r=this.getParent();if(r){var t=Math.min(r.Za(),r.Cb())/100,u=function(v){return Math.round(v*t)};this.ra({gap:u(3.9),height:u(11.9),paddingLeft:u(6),paddingRight:u(6)});this.Pa&&this.Pa.ra({fontSize:u(3)});[this.hD,this.ij,this.kD,this.gD].forEach(function(v){v&&v.ra({borderRadius:u(.4),fontSize:u(3),paddingLeft:u(3),paddingRight:u(3),height:u(6.7)})});this.Qv&&this.Qv.ra({borderRadius:u(.4),iconLineWidth:u(.22),iconWidth:u(3.7),iconHeight:u(3.7),height:u(6.7),width:u(6.7)})}};a.prototype.yg= 3652function(){switch(this.ua){case "ready":var r=this.ug.vL()?k("downloaded"):k("download-tour");break;case "installing":r=k("downloading");void 0!==this.kg&&(r+="..."+this.kg.toFixed(1)+"%");break;case "installed":r=k("downloaded");break;case "failed":r=this.jra==h.rma?c.pb()?k("storage-not-provided-launch-from-homescreen"):k("storage-not-provided-launch-from-desktop"):this.jra==h.pma?k("storage-not-provided-bookmark"):k("download-failed")}this.Pa&&this.Pa.set("text",r);this.hD&&this.hD.set("visible", 3653"ready"==this.ua&&!this.ug.vL()&&this.ug.EBa());this.gD&&this.gD.set("visible","ready"==this.ua&&this.ug.vL()&&this.ug.DBa());this.kD&&this.kD.set("visible","ready"==this.ua&&this.ug.GBa());this.ij&&this.ij.set("visible","installing"==this.ua);this.Qv&&this.Qv.set("visible","installing"!=this.ua);
3653this.set("visible","hidden"!=this.ua)};a.prototype.POa=function(){this.ug.tEa()};a.prototype.VOa=function(){this.ug.tEa()};a.prototype.OOa=function(){this.ug.hu();this.ua="hidden";this.yg()};a.prototype.zz= 3654function(){this.ug.cancel();this.ua="hidden";this.yg()};a.prototype.NOa=function(){"installing"==this.ua&&this.ug.cancel();this.ua="hidden";this.yg()};return a}); 3655define("nY","require lQ es pw pu w gj nA d oP ob ow dE jp jt".split(" "),function(a){function f(u,v){this.text=u;this.np=v}var l=a("lQ"),m=a("es"),k=a("pw"),c=a("pu"),h=a("w"),g=a("gj"),b=a("nA"),d=a("d"),e=a("oP"),n=a("ob"),q=a("ow"),p=a("dE"),r=a("jp"),t=a("jt");a=l.extend(e,function(){e.call(this);this.Nq=[];this.ij=this.iD=this.Pa=this.UD=this.aK=this.Dr=null;this.$H=this.$H.bind(this);this.zz=this.zz.bind(this);var u=new n;u.set("duration",500);u.set("easing","cubic_in");var v=new q;v.set("duration", 3656500);v.set("easing","cubic_out");this.ra({backgroundColor:"#000000",backgroundOpacity:.6,horizontalAlign:b.Ye,gap:5,left:0,top:0,right:0,bottom:0,hideEffect:v,showEffect:u,visible:!1})});a.prototype.Hb=function(){e.prototype.Hb.call(this);null==this.Dr&&(this.Dr=new e,this.Dr.ra({centerX:0,centerY:0,backgroundColor:"#ffffff",horizontalAlign:b.Ye,verticalAlign:b.qe,layout:d.Xh,shadow:!0,shadowColor:"#000000",shadowHorizontalLength:0,shadowVerticalLength:0,shadowOpacity:.2}),this.Ya(this.Dr));null== 3657this.Pa&&(this.Pa=new p,this.Pa.ra({fontColor:"#808080",fontWeight:"300",fontFamily:"Tahoma, Geneva, sans-serif"}),this.Dr.Ya(this.Pa));null==this.UD&&(this.UD=new r,this.UD.ra({width:"80%"}),this.Dr.Ya(this.UD));null==this.aK&&(this.aK=new e,this.aK.ra({backgroundColor:"#b3b3b3"}),this.Dr.Ya(this.aK));null==this.jj&&(this.jj=new e,this.jj.ra({horizontalAlign:b.Ye,verticalAlign:b.qe,layout:d.Gg}),this.Dr.Ya(this.jj));null==this.iD&&(this.iD=new g,this.iD.ra({backgroundColor:"#606060",fontColor:"#FFFFFF", 3658fontFamily:"Tahoma, Geneva, sans-serif",horizontalAlign:b.Ye,verticalAlign:b.qe,label:c("yes").toUpperCase(),pressedBorderColor:"#808080",rollOverBorderColor:"#808080",tabIndex:1}),this.iD.bind(k.ma,this.$H,this,!0),this.jj.Ya(this.iD));null==this.ij&&(this.ij=new g,this.ij.ra({backgroundColor:"#606060",fontColor:"#FFFFFF",fontFamily:"Tahoma, Geneva, sans-serif",horizontalAlign:b.Ye,verticalAlign:b.qe,label:c("no").toUpperCase(),pressedBorderColor:"#808080",rollOverBorderColor:"#808080",tabIndex:1}), 3659this.ij.bind(k.ma,this.zz,this,!0),this.jj.Ya(this.ij))};a.prototype.mq=function(){e.prototype.mq.call(this);this.getParent().bind(k.tc,this.um,this,!0)};a.prototype.Ln=function(){this.getParent().unbind(k.tc,this.um,this,!0);e.prototype.Ln.call(this)};a.prototype.um=function(){var u=this.getParent();if(u){var v=u.Za();u=u.Cb();if(h.pb()){var w=Math.min(v,u);v=function(x){return Math.round(x*w/100)}}else v=function(x){return Math.round(4*x)};this.Dr&&this.Dr.ra({borderRadius:v(1),width:v(80),height:v(40), 3660gap:v(4),shadowBlurRadius:v(1),shadowSpread:v(1)});this.aK&&this.aK.ra({width:v(60),minHeight:2,height:v(.25)});this.jj&&this.jj.ra({gap:v(5)});this.ij&&this.ij.ra({borderRadius:v(1),width:v(20),height:v(10),fontSize:v(4.25)});this.iD&&this.iD.ra({borderRadius:v(1),width:v(20),height:v(10),fontSize:v(4.5)});this.Pa&&this.Pa.ra({fontSize:v(5)});this.b1()}};a.prototype.show=function(u,v){this.um();var w=this.jsa(v);0<=w&&this.mxa(w);this.MXa(new f(u,v));this.ZH()};a.prototype.hide=function(u){u=this.jsa(u); 36610<=u&&this.mxa(u)};a.prototype.ZH=function(){var u=this.getParent();u&&u.ao(this,u.ob().length-1)};a.prototype.$H=function(){this.fW(!0)};a.prototype.zz=function(){this.fW(!1)};a.prototype.jsa=function(u){for(var v=0;v<this.Nq.length;v++)if(this.Nq[v].np==u)return v;return-1};a.prototype.b1=function(){if(this.Dr){t.t9a(this.$H);t.ika(this.zz);var u=this.ysa();u?(20>u.text.length?(this.UD.set("visible",!1),this.Pa.set("text",u.text),this.Pa.set("visible",!0)):(this.Pa.set("visible",!1),this.UD.set("html", 3662this.TSa(u.text)),this.UD.set("visible",!0)),this.ij.set("visible",u.np?!0:!1),this.set("visible",!0),t.b3a(this.$H),t.Wga(this.zz)):this.set("visible",!1)}};a.prototype.TSa=function(u){return"<div style=\"color:#808080; font-weight:300;
3662 font-family:'Tahoma', 'Geneva', sans-serif; font-size: "+this.Pa.get("fontSize")+'px; text-align:center;" >'+u+"</div>"};a.prototype.fW=function(u){var v=this.ysa();v&&(v=this.iTa(v.text),this.hYa(v),m(v).each(function(w){w.np&&w.np.call(this,u)},this))};a.prototype.MXa= 3663function(u){this.Nq.push(u);this.b1()};a.prototype.iTa=function(u){return m(this.Nq).filter(function(v){return v.text==u})};a.prototype.hYa=function(u){this.Nq=m(this.Nq).filter(function(v){return!m(u).contains(v)});this.b1()};a.prototype.mxa=function(u){this.Nq.splice(u,1);u==this.Nq.length&&this.b1()};a.prototype.ysa=function(){return 0<this.Nq.length?this.Nq[this.Nq.length-1]:null};return a}); 3664define("jK","require lQ pw cI gD w nJ".split(" "),function(a){function f(D){return D.map(function(O){return String.fromCharCode(O)}).join("")}function l(D){for(;D&&D!=document;){if("Button"==D.getAttribute(r))return!0;D=D.parentNode}return!1}var m=a("lQ"),k=a("pw"),c=a("cI"),h=a("gD"),g=a("w"),b=a("nJ"),d=[];a=f([99,111,110,116,101,120,116,109,101,110,117]);var e=f([109,111,117,115,101,100,111,119,110]),n=f([109,111,117,115,101,117,112]),q=f([109,111,117,115,101,108,101,97,118,101]),p=f([109,111, 3665117,115,101,101,110,116,101,114]),r=f([116,100,118,99,108,97,115,115]);document.addEventListener(a,function(D){if(!g.pb()||!l(D.target)){var O=g.zd()==g.S6?200:0;setTimeout(function(){(void 0===t||void 0===u||void 0===v||void 0===w||10>Math.abs(v-t)+Math.abs(w-u))&&d.forEach(function(R){R(D)});t=u=v=w=void 0},O)}D.preventDefault();D.stopImmediatePropagation()},!0);var t,u,v,w;document.addEventListener("mousedown",function(D){v=t=D.screenX;w=u=D.screenY},!0);document.addEventListener("mousemove",function(D){v= 3666D.screenX;w=D.screenY},!0);var x=1;m=m.extend(h,function(D,O){h.call(this);this.kb=D;this.aTa=O;this.gZ=this.gZ.bind(this);this.be=this.be.bind(this);this.xba=!1;this.uba=this.uba.bind(this);this.vba=this.vba.bind(this);this.tba=this.tba.bind(this);this.wba=this.wba.bind(this);this.xa=document.createElement("div");this.xa.style.setProperty("z-index",x,J[C]);for(var R in J[y])this.xa.style.setProperty(R,J[y][R],J[C]);d.push(this.gZ)});m.prototype.clear=function(){this.hVa()&&this.Gaa();this.xa=null;
3667d.splice(d.indexOf(this.gZ),1)};m.prototype.gZ=function(D){var O=this.aTa();if(0!=O.length){this.xa.replaceChildren();this.xba=!1;var R=0;O.forEach(function(U){var V=document.createElement("div");if(U){V.textContent=U;for(var W in J[B])V.style.setProperty(W,J[B][W],J[C]);var K=R;R++;V.addEventListener(p,function(M){this.uba(M,K)}.bind(this));V.addEventListener(q,function(M){this.vba(M,K)}.bind(this));V.addEventListener(e,function(M){this.tba(M,K)}.bind(this));V.addEventListener(n,function(M){this.wba(M, 3668K)}.bind(this))}else for(W in J[E])V.style.setProperty(W,J[E][W],J[C]);for(W in J[z])V.style.setProperty(W,J[z][W],J[C]);this.xa.appendChild(V)}.bind(this));(b.fullscreenElement()||document.body).appendChild(this.xa);this.xa.style.setProperty("display","block",J[C]);O=D.pageX;D=D.pageY;O+this.xa.clientWidth>document.body.clientWidth-5&&(O=document.body.clientWidth-this.xa.clientWidth-5);D+this.xa.clientHeight>document.body.clientHeight-5&&(D=document.body.clientHeight-this.xa.clientHeight-5);this.xa.style.setProperty("left", 3669O+"px",J[C]);this.xa.style.setProperty("top",D+"px",J[C]);this.kb.bind(k.gb,this.be,this);document.addEventListener("mousedown",this.be);this.E2a=setInterval(this.D2a.bind(this),200)}};m.prototype.hVa=function(){return!!this.xa&&!!this.xa.parentNode};m.prototype.Gaa=function(){clearInterval(this.E2a);this.xa.parentNode.removeChild(this.xa);document.removeEventListener("mousedown",this.be);this.kb.unbind(k.gb,this.be,this);this.xa.style.setProperty("display","none",J[C])};m.prototype.D2a=function(){this.xa.contains(document.elementFromPoint(this.xa.offsetLeft+ 3670.5*this.xa.clientWidth,this.xa.offsetTop+.5*this.xa.clientHeight))||this.xa.style.setProperty("z-index",x*=10,J[C])};m.prototype.be=function(){this.Gaa()};m.prototype.tba=function(D){this.xba=!0;D.preventDefault();D.stopImmediatePropagation()};m.prototype.wba=function(D,O){this.xba&&(this.Gaa(),D.preventDefault(),D.stopImmediatePropagation(),this.trigger(new c(k.gq,{index:O})))};m.prototype.uba=function(D){for(var O in J[I])D.currentTarget.style.setProperty(O,J[I][O],J[C])};m.prototype.vba=function(D){for(var O in J[A])D.currentTarget.style.setProperty(O, 3671J[A][O],J[C])};var y="0",z="1",B="2",E="3",I="4",A="5",C="6",J=function(D){return JSON.parse(D.map(function(O){return String.fromCharCode(O)}).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, 3672114,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, 367341,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, 367434,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, 367532,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 m}); 3676define("mU",["require","mQ","bh","cl"],function(a){function f(c){this.kb=c;this.Nt={};this.Nt[m.Vma]="move";this.Nt[m.VLa]="ew-resize";this.Nt[m.XLa]="ns-resize";this.Nt[m.WLa]="nesw-resize";this.Nt[m.YLa]="nwse-resize";this.Nt[m.Je]="pointer";this.Nt[m.hv]="inherit";this.Nt[m.Ie]="default";this.xh={};this.xh[m.bz]="grab.cur";this.xh[m.Uh]="grabbing.cur";this.xh[m.ena]="N.cur";this.xh[m.fna]="NE.cur";this.xh[m.Wma]="E.cur";this.xh[m.ina]="SE.cur";this.xh[m.hna]="S.cur";this.xh[m.jna]="SW.cur";this.xh[m.kna]= 3677"W.cur";this.xh[m.gna]="NW.cur";this.xh[m.Yma]="FN.cur";this.xh[m.Zma]="FNE.cur";this.xh[m.Xma]="FE.cur";this.xh[m.bna]="FSE.cur";this.xh[m.ana]="FS.cur";this.xh[m.cna]="FSW.cur";this.xh[m.dna]="FW.cur";this.xh[m.$ma]="FNW.cur";this.l8={};this.l8[m.RC]=k.RC;this.vpa={}}var l=a("mQ"),m=a("bh"),k=a("cl");f.prototype.XCa=function(c){return this.cVa(c)?this.vsa(c):this.TUa(c)?this.GSa(c):this.MUa(c)?this.nSa(c):this.vsa(m.Ie)};f.prototype.aPa=function(c){if(!(c in this.vpa)){var h=new Image;h.src=this.Rra(c); 3678this.vpa[c]=h}};f.prototype.cVa=function(c){return c in this.Nt};f.prototype.vsa=function(c){return this.Nt[c]};f.prototype.TUa=function(c){return this.xh[c]};f.prototype.GSa=function(c){this.aPa(c);
3678return"url("+this.Rra(c)+"), default"};f.prototype.Rra=function(c){return l.Hy(this.kb.get("settings").get(TDV.PlayerSettings.CURSORS_DIR_URL))+"/"+this.xh[c]};f.prototype.MUa=function(c){return c in this.l8};f.prototype.nSa=function(c){return"url("+this.l8[c]+"), auto"};return f}); 3679define("cC",["require","es"],function(a){function f(){this.ex={};this.hr=[];this.MN=0}var l=a("es");f.prototype.push=function(m,k){void 0==this.ex[k]?(this.ex[k]=[m],this.hr.push(k),this.hr.sort(function(c,h){return c-h}),this.MN++):(k=this.ex[k],l(k).contains(m)||(k.push(m),this.MN++))};f.prototype.ZCa=function(){return this.MN};f.prototype.isEmpty=function(){return 0==this.hr.length};f.prototype.SGa=function(){if(!this.isEmpty()){var m=this.hr[0],k=this.ex[m].pop();0==this.ex[m].length&&(delete this.ex[m], 3680this.hr=this.hr.slice(1));this.MN--;return k}};f.prototype.$ja=function(){if(!this.isEmpty()){var m=this.hr[this.hr.length-1],k=this.ex[m].pop();0==this.ex[m].length&&(delete this.ex[m],this.hr=this.hr.slice(0,this.hr.length-1));this.MN--;return k}};return f}); 3681define("jl","require es lQ gV cC bn lT".split(" "),function(a){function f(){this.g_=!1;this.Fwa=void 0;this.W=!0;this.MZ=this.MZ.bind(this);this.JW=new m;this.y_=new m;this.o0=new m;this.CY=new m;this.U9=new m;k.requestFrame(this.bk,this)}a("es");a("lQ");var l=a("gV"),m=a("cC"),k=a("bn"),c=a("lT");f.prototype.clear=function(){this.W=!1};f.prototype.uT=function(h){this.JW.push(h,this.LI(h));this.nx()};f.prototype.ve=function(h){this.y_.push(h,this.LI(h));this.nx()};f.prototype.hc=function(h){this.o0.push(h, 3682this.LI(h));this.nx()};f.prototype.Xd=function(h){this.CY.push(h,this.LI(h));this.nx()};f.prototype.ml=function(h){this.U9.push(h,this.LI(h));this.nx()};f.prototype.oa=function(){this.i1a();this.b2a();this.k1a()};f.prototype.i1a=function(){do{for(;!this.JW.isEmpty();)this.JW.$ja().Hb();this.y_.isEmpty()||this.y_.$ja().bb()}while(!this.y_.isEmpty()||!this.JW.isEmpty())};f.prototype.b2a=function(){for(;!this.o0.isEmpty()||!this.CY.isEmpty();)this.g1(),this.y1a()};f.prototype.g1=function(){for(;!this.o0.isEmpty();){var h= 3683this.o0.$ja();if(h.$bb()){var g=h.getParent();g?(g.hc(),g.Xd()):h.VHa(0,0,h.ru(),h.qu())}}};f.prototype.y1a=function(){for(;!this.CY.isEmpty();)this.CY.SGa().cj()};f.prototype.k1a=function(){for(;!this.U9.isEmpty();)this.U9.SGa().qh();l.process()};f.prototype.nx=function(){this.g_||(this.g_=!0,this.Fwa=(new Date).getTime()+500,c.RB(this.MZ))};f.prototype.MZ=function(){this.g_=!1;this.W&&this.oa()};f.prototype.LI=function(h){return(h=h.getParent())?this.LI(h)+1:0};f.prototype.bk=function(){this.g_&& 3684(new Date).getTime()>=this.Fwa&&this.MZ();k.requestFrame(this.bk,this)};return f}); 3685define("hV","require jquery.mod es lQ pw oP jK mU bq jl nJ w jt".split(" "),function(a){var f=a("jquery.mod"),l=a("es"),m=a("lQ"),k=a("pw"),c=a("oP"),h=a("jK"),g=a("mU"),b=a("bq"),d=a("jl"),e=a("nJ"),n=a("w"),q=a("jt");a=m.extend(c,function(p,r){this.RH=new d;c.call(this);this.Ht(this);this.Qe("Application");this.If=f(p);this.zga=r;this.If.css({overflow:"hidden","user-select":"none","-ms-user-select":"none","-moz-user-select":"none","-webkit-user-select":"none","-ms-touch-action":"none","touch-action":"none", 3686visibility:"visible","-webkit-tap-highlight-color":"rgba(255, 255, 255, 0)"});this.wx=f(document.createElement("div"));this.wx.css({position:"absolute",left:0,top:0,right:0,bottom:0,width:"auto",height:"auto",margin:0});this.If.append(this.wx);this.wx.append(this.gd());this.bza=this.wx.get(0);this.Sd=this.Gd=void 0;this.IUa=10;this.mPa=500;this.IQ=null;this.H9=new g(this);this.$b=new b(this);this.xa.append(this.$b.gd());this.RW=new h(this,this.Ora.bind(this));this.RW.bind(k.gq,this.Hh(this.Fua),this, 3687!0);this.Wta=!0;this.set("contentOpaque",!0);this.wD=null;this.GN=[];this.yI(["globalmousemove"]);this.wOa();this.v1=this.w1=0;this.DA=1;try{this.w1=window.top.innerWidth,this.v1=window.top.innerHeight,this.zaa=!0}catch(t){this.zaa=!1}this.vAa();this.pj=new e(p);this.pj.bind(k.ba,function(){this.J$(this.pj.enabled())},this);q.$a()});a.prototype.start=function(){this.pr||(this.pr=!0,this.trigger(k.ko))};a.prototype.aja=function(){return this.pr};a.prototype.vAa=function(){this.zaa&&!e.enabled()&&(this.w1= 3688window.top.innerWidth,this.v1=window.top.innerHeight)};a.prototype.clear=function(){this.IG(null);this.Xya();this.yRa();this.RH.clear();this.If&&(this.gd().remove(),this.wx.remove(),this.If=null);this.H9=null;this.pj.Qla();this.pj=null;this.RW&&(this.RW.clear(),this.RW=null)};a.prototype.S$a=function(p){this.Wta=p};a.prototype.J$=function(p){p?this.Vxa():this.xPa()};a.prototype.Fw=function(){this.iP=this.$l=this.wx.width();this.hP=this.Zl=this.wx.height()};a.prototype.IG=function(p){if(this.wD!=p){null!= 3689this.wD&&this.wD.G0a();this.wD=p;for(var r=[];null!=p;)r=[p].concat(r),p=p.getParent();p=this.GN.length-1;for(var t=!0;0<=p&&t;p--)l(r).contains(this.GN[p])?t=!1:this.GN.pop().J0a();for(p=0;p<r.length;p++)l(this.GN).contains(r[p])||r[p].K0a();this.GN=r;null!=this.wD&&this.wD.F0a();this.$b.IG(this.wD)}};a.prototype.XTa=function(p){var r=this.RD(p);this.gta(p,r.x,r.y)?p.preventDefault():this.IG(null)};a.prototype.Bsa=function(p){var r=this.Zz(p);this.gta(p,r.x,r.y)?p.preventDefault():this.IG(null)}; 3690a.prototype.Ora=function(){return[]};a.prototype.Fua=function(){};a.prototype.gta=function(p,r,t){return this.UUa(p.target)&&0<=r&&0<=t&&r<this.sa&&t<this.wa};a.prototype.UUa=function(p){if(!this.If)return!1;for(var r=this.If.get(0);p;){if(p===r)return!0;p=p.parentElement}return!1};a.prototype.wOa=function(){this.yI(["globalresize"]);this.L8=setInterval(l.bind(function(){this.Kpa()},this),this.mPa)};a.prototype.yRa=function(){this.VN(["globalresize"]);this.L8&&(clearInterval(this.L8),this.L8=null)}; 3691a.prototype.Kpa=function(){this.pj.enabled()?this.Vxa():this.vAa();var p=this.bza.clientWidth,r=this.bza.clientHeight;if(this.Gd!=p||this.Sd!=r)this.Gd=p,this.Sd=r,this.F_a()};a.prototype.Vxa=function(){if(this.zaa&&(n.zd()==n.Py&&n.browser()==n.Sm||n.zd()==n.yi)){var p=e.fullscreenElement();var r=p.clientWidth;p=p.clientHeight;
3691n.zd()!=n.Py||n.cc()==n.nH||window.screen.availWidth!=r&&window.screen.availHeight!=p||(r=window.screen.availWidth,p=window.screen.availHeight);var t=(r>p?r:p)/(this.w1>this.v1? 3692this.w1:this.v1),u=Math.round(r/t),v=Math.round(p/t);this.DA=t;r={left:Math.round(.5*(r-u))+"px",top:Math.round(.5*(p-v))+"px",right:"auto",bottom:"auto",width:u+"px",height:v+"px",transform:"scale("+[t,t].join(", ")+")",position:"absolute"}}else r={position:"absolute",left:0,top:0,right:"auto",bottom:"auto",width:document.body.clientWidth+"px",height:document.body.clientHeight+"px"},this.DA=1;this.wx.css(r)};a.prototype.xPa=function(){this.wx.css({position:"abolute",left:0,top:0,right:0,bottom:0, 3693width:"auto",height:"auto",transform:""});this.DA=1};a.prototype.F_a=function(){this.Xya();var p=this;this.IQ=setTimeout(function(){p.IQ=null;p.hc()},this.IUa)};a.prototype.Xya=function(){this.IQ&&(this.IQ=null,clearTimeout(this.IQ))};a.prototype.WTa=function(){this.Kpa()};a.prototype.V$=function(){return l(c.prototype.V$.call(this)).defaults({globaltouchmove:[{target:f(document),name:"touchmove",handler:this.Hh(this.XTa)}],globalmousemove:[{target:f(document),name:"mousemove",handler:this.Hh(this.Bsa)}, 3694{target:f(window),name:"mouseout",handler:this.Hh(this.Bsa)}],globalresize:[{target:f(window),name:"resize",handler:this.Hh(this.WTa)}]})};return a}); 3695define("gT","require jquery.mod pW cl nJ pw gD pu w".split(" "),function(a){function f(){p=TDV.xb.Tr();var v=q||p;n!=v&&(n=v,e.trigger(h.ba));v=!!q&&p!=q&&d.pb();r!=v&&(t||(t=l("<div/>"),t.css({position:"fixed","z-index":m.wLa,left:0,top:0,margin:0,padding:0,height:"100%",width:"100%","background-color":"rgba(255, 255, 255, 0.99)"}),t.html(['<div style="box-sizing:border-box; padding:0 10vmin; display:table; height:100%; width:100vw;">\n<div style="vertical-align:middle; text-align:center; display:table-cell;">','<img style="width:22vmin" src="'+ 3696k.XM+'"/>','<div style="color:#000; font-family:Arial, Helvetica, sans-serif; font-size:3.6vmin; line-height:4.3vmin; margin:5vmin 0; text-align:center;">'+b("rotate-device")+"</div>","</div>\n</div>"].join("\n")),u=t.find("img")),r&&t.detach(),(r=v)&&(c.enabled()?l(c.fullscreenElement()):l("body")).append(t));r&&u.css("transform",n==e.nMa?"translate(-11%, 0) rotate(-90deg)":"none")}var l=a("jquery.mod"),m=a("pW"),k=a("cl"),c=a("nJ"),h=a("pw"),g=a("gD"),b=a("pu"),d=a("w"),e=new g;e.Qcb=TDV.xb.X6; 3697e.nMa=TDV.xb.Y6;e.Ou=function(v){q!=v&&(q=v,f())};e.nDa=function(){return q};e.get=function(){return n};var n=void 0,q=void 0,p=void 0,r=!1,t=null,u=null;window.addEventListener("resize",function(){f();setTimeout(f,500)},!0);try{window.screen.orientation.addEventListener("change",f)}catch(v){window.addEventListener("orientationchange",f,!1)}f();return e}); 3698define("jh","require lQ es pw cI pM oj nF pu kj I bf nY ed mB ok ml w ii fe cF jV mQ oQ ep hV oP do nJ bK gT my dF".split(" "),function(a){function f(S){THREE.QKa=S.get(TDV.PlayerSettings.fma);THREE.eLa=S.get(TDV.PlayerSettings.oma);THREE.HH=S.get(TDV.PlayerSettings.HH)}var l=a("lQ"),m=a("es"),k=a("pw"),c=a("cI"),h=a("pM"),g=a("oj"),b=a("nF"),d=a("pu"),e=a("kj"),n=a("I"),q=a("bf"),p=a("nY"),r=a("ed");a("mB");var t=a("ok"),u=a("ml"),v=a("w"),w=a("ii"),x=a("fe"),y=a("cF"),z=a("jV"),B=a("mQ"),E=a("oQ"), 3699I=a("ep"),A=a("hV"),C=a("oP"),J=a("do"),D=a("nJ"),O=a("bK"),R=a("gT"),U=a("my"),V=a("dF"),W=g.define("Player",A,function(){A.apply(this,arguments);this.ug=new x(this);this.Rqa=new q(this,this.ug);this.Ws=new C;this.Ws.ra({backgroundOpacity:0,visible:!0,width:"100%",height:"100%"});this.fJ=new p;this.yK=new r;this.UW=new n(this);var S=new J;S.V4(0);this.yU(S);this.Xe(!0);this.bind(k.F("settings"),this.RWa,this,!0);this.m1=TDV.xb.KDa();R.bind(k.ba,this.CWa,this,!0);O.Ibb();this.SOa=new e(this,"buttonMute", 3700I.Ke);this.SOa.bind(k.ma,this.vva,this,!0);this.$Oa=new e(this,"buttonUnmute",I.Ke);this.$Oa.bind(k.ma,this.jwa,this,!0);this.tW=new e(this,"buttonToggleMute",I.Nj);this.tW.bind(k.Kj,this.vva,this,!0);this.tW.bind(k.Dl,this.jwa,this,!0);this.bind(k.F("mute"),this.zWa,this);this.tW.set("pressed",this.get("mute"));this.QOa=new e(this,"buttonEnterFullscreen",I.Ke);this.QOa.bind(k.ma,this.Lua,this,!0);this.ROa=new e(this,"buttonExitFullscreen",I.Ke);this.ROa.bind(k.ma,this.Mua,this,!0);this.pW=new e(this, 3701"buttonToggleFullscreen",I.Nj);this.pW.bind(k.Kj,this.Lua,this,!0);this.pW.bind(k.Dl,this.Mua,this,!0);this.pW.set("pressed",this.get("fullscreenEnabled"));this.bind(k.F("fullscreenEnabled"),this.gWa,this,!0);this.set("fullscreenEnabled",this.pj.enabled());this.set("defaultMenu",["fullscreen","mute","rotation"]);this.bind(k.ko,this.UWa,this,!0);
3701[k.gb,k.Eb,k.Gs,k.az,k.tH].forEach(function(X){this.bind(X,function(ba){this.trigger(new c(k.TC,{sM:ba}))},this,!0)}.bind(this));["keydown","keyup"].forEach(function(X){document.addEventListener(X, 3702function(ba){this.trigger(new c(k.TC,{sM:ba}))}.bind(this))}.bind(this));E.N.bind(k.ba,function(){E.isPresenting?R.Ou():R.Ou(A.prototype.get.call(this,"lockedOrientation"))},this);this.pj.bind(k.ba,function(){var X=R.nDa();R.Ou();R.Ou(X)},this)});W.mLa="orientationChange";W.prototype.logCapabilities=function(){this.vVa()};W.prototype.activateAudio=function(S){this.lNa(S)};W.prototype.J$=function(S){A.prototype.J$.apply(this,arguments);this.set("fullscreenEnabled",S)};W.prototype.yb=function(){A.prototype.yb.call(this); 3703this.h("mute",!1);this.h("fullscreenEnabled",!1)};W.prototype.Hb=function(){A.prototype.Hb.call(this);this.Rqa.getParent()!=this&&this.Ya(this.Rqa);this.Ws.getParent()!=this&&(this.Ya(this.Ws),this.Ws.Ya(this.UW),this.Ws.Ya(this.fJ),this.Ws.Ya(this.yK))};W.prototype.BYa=function(S){var X=[];this.fJ&&X.push(this.fJ);this.yK&&X.push(this.yK);this.UW&&X.push(this.UW);for(var ba=!0,da=0;da<=X.length&&ba;da++)ba=S.indexOf(X[da]),ba=S.length-(X.length-da)==ba;return ba?S:S.filter(function(ea){return 0> 3704X.indexOf(ea)}).concat(X)};W.prototype.bb=function(){this.dxa||(this.dxa=m.difference(this.CTa(),"backgroundOpacity visible includeInLayout state left right top bottom centerX centerY width height minWidth minHeight maxWidth maxHeight actualWidth actualHeight paddingLeft paddingTop paddingRight paddingBottom".split(" ")));this.uc(this.dxa,{},[this.Ws],!0,!0);A.prototype.bb.call(this);!0===this.Edb&&this.Ddb()};W.prototype.set=function(S,X){switch(S){case "children":this.Ws.set(S,this.BYa(X));return; 3705case "creationPolicy":this.Ws.set(S,X);return;case "fullscreenAvailable":case "gyroscopeAvailable":case "cardboardAvailable":case "isMobile":case "orientation":case "surfaceSelectionAvailable":case "touchEnabled":case "touchDevice":case "vrControllerAvailable":case "vrAvailable":X=this.get(S);break;case "fullscreenEnabled":X=this.pj.hk()&&X;break;case "fullscreenFallback":D.Nka(X);break;case "lockedOrientation":v.Df()&&(X=void 0);R.Ou(X);break;case "installAvailable":X=this.ug.ready();break;case "mouseWheelEnabled":this.S$a(B.lg("mousewheelenabled", 3706X));break;case "backgroundPreloadEnabled":this.UYa(X);break;case "vrPolyfillScale":E.v4=X;break;case "desktopMipmappingEnabled":t.d$a(X);break;case "mobileMipmappingEnabled":t.Q$a(X);break;case "defaultVRPointer":"gaze"==X?E.QIa(E.wna.sH):E.QIa(E.wna.SM)}A.prototype.set.call(this,S,X)};W.prototype.get=function(S,X){switch(S){case "children":case "creationPolicy":return this.Ws.get(S,X);case "touchEnabled":return this.Fo;case "touchDevice":return v.Kla();case "isMobile":return v.pb();case "orientation":return R.get(); 3707case "lockedOrientation":return R.nDa();case "gyroscopeAvailable":return w.hk;case "cardboardAvailable":case "vrAvailable":return E.EM;case "vrControllerAvailable":return E.wcb;case "fullscreenAvailable":return this.pj.hk();case "vrPolyfillScale":return E.v4;case "installAvailable":return this.ug.ready();case "surfaceSelectionAvailable":return!0;case "pageScale":return this.DA;case M:return this.zga?A.prototype.get.apply(this,arguments):!0;default:return A.prototype.get.apply(this,arguments)}};W.prototype.vva= 3708function(){this.set("mute",!0)};W.prototype.jwa=function(){this.set("mute",!1)};W.prototype.zWa=function(){this.tW.set("pressed",this.get("mute"))};W.prototype.Lua=function(){this.set("fullscreenEnabled",!0)};W.prototype.Mua=function(){this.set("fullscreenEnabled",!1)};W.prototype.gWa=function(){this.get("fullscreenEnabled")?this.pj.g2():this.pj.Mr();this.pW.set("pressed",this.get("fullscreenEnabled"));this.set("fullscreenEnabled",this.pj.enabled())};W.prototype.RWa=function(){var S=this.get("settings"); 3709S&&(y.initialize(S),z.fla(S),f(S),this.ug.fla(S))};f(new TDV.PlayerSettings);W.prototype.UYa=function(S){z.enabled(S)};W.prototype.Ora=function(){var S=[];this.lI=[];(this.get("menu")||[]).forEach(function(da){var ea=da.get("label");S.push(da.get("label"));ea&&this.lI.push(function(){da.trigger("click")})}.bind(this));var X=this.get("defaultMenu",[]);if(0<=X.indexOf("rotation")){var ba=this.Xi("PanoramaPlayer");ba.length&&(S.push(ba[0].get("mouseControlMode")==h.oC?d("change-to-drag-and-release"): 3710d("change-to-click-and-move")),this.lI.push(this.o0a.bind(this)))}0<=X.indexOf("fullscreen")&&this.pj.hk()&&(S.push(this.pj.enabled()?d("exit-fullscreen"):d("enter-fullscreen")),this.lI.push(this.m0a.bind(this)));0<=X.indexOf("mute")&&(S.push(this.get("mute")?d("unmute"):d("mute")),this.lI.push(this.n0a.bind(this)));X=[].concat(b.name?[b.name]:[],"false"!=b.w4a?b.CT?["v:"+b.CT+"."+b.IT]:["v:"+b.IT]:[]).join(" ");""!=X&&(0<S.length&&S.push(""),S.push(X),this.lI.push(this.fXa.bind(this)));return S}; 3711W.prototype.Fua=function(S){this.lI[S.data.index]()};W.prototype.o0a=function(){var S=this.Xi("PanoramaPlayer"),X=S[0].get("mouseControlMode")==h.oC?h.$u:h.oC;
3711S.forEach(function(ba){V.setItem(K,X);ba.set("mouseControlMode",X)})};W.prototype.UWa=function(){V.getItem(K)==h.$u&&this.Xi("PanoramaPlayer").forEach(function(S){S.set("mouseControlMode",h.$u)});B.Cj("mute")&&this.set("mute",B.lg("mute",this.get("mute")))};W.prototype.m0a=function(){this.pj.toggle()};W.prototype.n0a=function(){this.set("mute", 3712!this.get("mute"))};W.prototype.fXa=function(){b.AKa&&window.open(b.AKa,"_blank")};W.prototype.CWa=function(){this.trigger(W.mLa)};W.prototype.vVa=function(){l.F4a(!0);l.log("UA: "+navigator.userAgent);l.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+ 3713")");v.log();u.log();d.log();E.log()};W.prototype.lNa=function(S){O.active()?U.wait(S):(O.bma(S),O.request(this))};var K="tdvp_"+window.location.pathname+"_rotation_mode",M=[119,97,116,101,114,109,97,114,107].map(function(S){return String.fromCharCode(S)}).join("");return W});define("nX",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("PlayerMenuItem",f,function(){f.call(this)})}); 3714define("T","require lQ mu pw lt oj kP".split(" "),function(a){a("lQ");var f=a("mu"),l=a("pw"),m=a("lt"),k=a("oj"),c=a("kP");a=k.define("PopupPanoramaOverlay",f,function(){f.call(this);this.set("state",m.V);this.bind(l.F("state"),function(){this.trigger(l.ye)},this,!0);this.sd=void 0});a.prototype.show=function(){this.set("visible",!0)};a.prototype.hide=function(){this.set("visible",!1)};a.prototype.play=function(){this.set("state",m.PLAYING)};a.prototype.pause=function(){this.set("state",m.CH)};a.prototype.stop= 3715function(){this.set("state",m.V)};a.prototype.hide=a.prototype.hide;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(h,g){switch(h){case "playbackPositions":return void 0===this.sd&&(this.sd=c.V5a(this)),this.sd}return f.prototype.get.call(this,h,g)};a.prototype.set=function(h,g){var b=!1;switch(h){case "hfov":case "vfov":case "pitch":case "rotationX":case "rotationY":case "rotationZ":case "yaw":case "playbackPositions":this.sd= 3716void 0,b=!0}f.prototype.set.call(this,h,g);b&&"playbackPositions"!=h&&this.trigger(l.F("playbackPositions"))};return a});define("px",["require","B","oj"],function(a){var f=a("B");return a("oj").define("ProgressBar",f,function(){f.call(this)})}); 3717define("gP",["require","mu","pw","oj","kP"],function(a){var f=a("mu"),l=a("pw"),m=a("oj"),k=a("kP");a=m.define("QuadFramePanoramaOverlay",f,function(){f.call(this);this.sd=void 0});a.prototype.set=function(c,h){var g=!1;switch(c){case "vertices":case "playbackPositions":this.sd=void 0,g=!0}f.prototype.set.call(this,c,h);g&&"playbackPositions"!=c&&this.trigger(l.F("playbackPositions"))};a.prototype.get=function(c,h){switch(c){case "playbackPositions":return void 0===this.sd&&(this.sd=k.zia(this)), 3718this.sd}return f.prototype.get.call(this,c,h)};return a});define("bM",["require","oj","cW"],function(a){var f=a("oj"),l=a("cW");return f.define("QuadHotspotPanoramaOverlay",l,function(){l.call(this)})});define("jq",["require","oj","v"],function(a){var f=a("oj"),l=a("v");return f.define("QuadHotspotPanoramaOverlayArea",l,function(){l.apply(this,arguments)})}); 3719define("bc",["require","mu","pw","oj","kP"],function(a){var f=a("mu"),l=a("pw"),m=a("oj"),k=a("kP");a=m.define("QuadHotspotPanoramaOverlayImageBase",f,function(){f.call(this);this.sd=void 0});a.prototype.get=function(c,h){switch(c){case "playbackPositions":return void 0===this.sd&&(this.sd=k.zia(this)),this.sd}return f.prototype.get.call(this,c,h)};a.prototype.set=function(c,h){var g=!1;switch(c){case "opacity":case "distance":case "vertices":case "playbackPositions":this.sd=void 0,g=!0}f.prototype.set.call(this, 3720c,h);g&&"playbackPositions"!=c&&this.trigger(l.F("playbackPositions"))};return a});define("fL",["require","oj","bc"],function(a){var f=a("oj"),l=a("bc");return f.define("QuadHotspotPanoramaOverlayImage",l,function(){l.call(this)})});define("pF",["require","oj","bc"],function(a){var f=a("oj"),l=a("bc");return f.define("QuadHotspotPanoramaOverlayMap",l,function(){l.call(this)})}); 3721define("fg","require mu pw lt cI oj kP".split(" "),function(a){var f=a("mu"),l=a("pw"),m=a("lt"),k=a("cI"),c=a("oj"),h=a("kP");a=c.define("QuadVideoPanoramaOverlay",f,function(){f.call(this);this.sd=void 0});a.prototype.play=a.prototype.play=function(){this.set("state",m.PLAYING)};a.prototype.pause=a.prototype.pause=function(){this.set("state",m.Qb)};a.prototype.stop=a.prototype.stop=function(){this.set("state",m.V)};a.prototype.set=function(g,b){var d=!1;switch(g){case "state":var e=this.get("state")|| 3722m.V;e==m.V&&b==m.PLAYING&&this.trigger(l.ko);e!=b&&this.trigger(new k(l.ye,{oldState:e,state:b}));break;case "enabledInCardboard":this.set("enabledInVR",b);break;case "distance":case "opacity":case "playbackPositions":case "vertices":this.sd=void 0,d=!0}f.prototype.set.call(this,g,b);d&&"playbackPositions"!=g&&this.trigger(l.F("playbackPositions"))};a.prototype.get=function(g,b){switch(g){case "playbackPositions":return void 0===this.sd&&(this.sd=h.zia(this)),this.sd}return f.prototype.get.call(this, 3723g,b)};return a});define("cX",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("RadialModel3DDisplayEffect",f,function(){f.call(this)})});define("nj",["require","mu","oj"],function(a){var f=a("mu");a=a("oj").define("RainPanoramaOverlay",f,function(){f.call(this)});a.prototype.get=function(l,m){"startState"==l&&void 0===m&&(m=this.get("initialState"));return f.prototype.get.call(this,l,m)};return a}); 3724define("fx",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("RotationalCameraMovement",f,function(){f.call(this)})});define("ct",["require","nZ","oj"],function(a){var f=a("nZ");return a("oj").define("SlideInEffect",f,function(){f.call(this)})});define("iQ",["require","ia","oj"],function(a){var f=a("ia");return a("oj").define("SlideOutEffect",f,function(){f.call(this)})}); 3725define("oz",["require","mu","oj"],function(a){var f=a("mu");a=a("oj").define("SnowPanoramaOverlay",f,function(){f.call(this)});a.prototype.get=function(l,m){"startState"==l&&void 0===m&&(m=this.get("initialState"));return f.prototype.get.call(this,l,m)};return a}); 3726define("mG",["require","oj","lY"],function(a){var f=a("oj"),l=a("lY");a=f.define("SphericPanoramaFrame",l,function(){l.call(this)});a.prototype.Dm=function(){var m=this.get("sphere");return m&&f.Ja("Video360Resource",m)?!0:(m=this.get("stereoSphere"))&&f.Ja("Video360Resource",m)?!0:!1};return a});
3726define("fN",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("SphereModel3DObject",l,function(){l.call(this)})}); 3727define("pX",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("SpotLight",f,function(){f.call(this)})});define("pc",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");a=f.define("SpriteModel3DObject",l,function(){l.call(this)});a.prototype.getPixelScale=function(){return this.get("worldPixelScale")};return a}); 3728define("mb",["require","oj","jd"],function(a){var f=a("oj"),l=a("jd");return f.define("SurfaceReticleModel3DObject",l,function(){l.call(this);this.set("transparentAreaActive",!0)})}); 3729define("cY","require es lQ z oP nA W dE".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("z"),k=a("oP"),c=a("nA"),h=a("W"),g=a("dE"),b=l.extend(k,function(d){k.call(this);this.Qe("Tab");this.$ca=d;this.rm="";this.kfa=!1;this.ota=this.Pa=null;this.Ega=this.Dga=!1;this.set("childrenInteractionEnabled",!1);this.set("contentOpaque",!0)});b.prototype.yb=function(){k.prototype.yb.call(this);this.h("horizontalAlign",c.Ye);this.h("verticalAlign",c.qe);this.h("fontFamily");this.h("fontSize");this.h("fontColor"); 3730this.h("fontWeight");this.h("fontStyle");this.h("textDecoration");this.h("textShadowBlurRadius");this.h("textShadowColor");this.h("textShadowHorizontalLength");this.h("textShadowOpacity");this.h("textShadowVerticalLength")};b.prototype.RIa=function(d){this.Dga!=d&&(this.Dga=d,this.Ega=!0,this.ve())};b.prototype.Hb=function(){k.prototype.Hb.call(this);null==this.Pa&&(this.Pa=new g,this.Pa.set("horizontalAlign","center"),this.Ya(this.Pa))};b.prototype.mq=function(){k.prototype.mq.call(this);this.ota= 3731m.Ru(this.$ca,"label",this.pJ,this);this.sya(this.$ca.get("label"))};b.prototype.bea=function(){k.prototype.bea.call(this);this.ota.eC()};b.prototype.pJ=function(){var d=this.$ca.get("label");this.sya(d?d:"")};b.prototype.sya=function(d){this.rm!=d&&(this.rm=d,this.kfa=!0,this.ve())};b.prototype.bb=function(){this.kfa&&(this.kfa=!1,this.Pa.set("text",this.rm));this.Ega&&(this.Ega=!1,this.Pa.set("direction",this.Dga?h.Xh:h.Gg));this.uc(b.poa,b.OH,[this.Pa],!0,!0);k.prototype.bb.call(this)};b.poa="fontFamily fontSize fontColor fontWeight fontStyle textDecoration textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "); 3732b.OH={};f(b.poa).each(function(d){b.OH[d]=d});return b});define("nP",["require"],function(){return{VM:"normal",wH:"inverse",hma:"center"}}); 3733define("di","require es lQ bo bh pw oP nA d ik cY nP iR".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("bo"),k=a("bh"),c=a("pw"),h=a("oP"),g=a("nA"),b=a("d"),d=a("ik"),e=a("cY"),n=a("nP"),q=a("iR");a=l.extend(h,function(){h.call(this);this.Qe("TabPanel");this.Pf=-1;this.ZE=!1;this.sR=[];this.H0=!1;this.dk=[];this.bda=!1;this.rR=[];this.eh=this.Fh=null;this.aF(!1)});a.prototype.yb=function(){h.prototype.yb.call(this);this.h("pages",[]);this.h("selectedIndex",-1);this.h("tabsSize",25);this.h("tabsPosition", 3734q.Ec);this.h("tabsGap",0);this.h("tabsPadding",10);this.h("tabsAlign",n.VM);this.h("tabsBackgroundOpacity",.6);this.h("tabsBackgroundColor",["#FFFFFF","#CCCCCC"]);this.h("tabsBackgroundColorRatios",[0,.5]);this.h("tabsRollOverBackgroundOpacity",1);this.h("tabsRollOverBackgroundColor",["#FFFFFF","#CCCCCC"]);this.h("tabsRollOverBackgroundColorRatios",[0,.5]);this.h("backgroundColor","#FFFFFF");this.h("selectedTabBackgroundOpacity",1);this.h("selectedTabBackgroundColor");this.h("selectedTabBackgroundColorRatios"); 3735this.h("borderRadius",6);this.h("pagePaddingLeft",4);this.h("pagePaddingTop",4);this.h("pagePaddingRight",4);this.h("pagePaddingBottom",4);this.h("borderColor","#AAAAAA");this.h("borderSize",1);this.h("selectedTabFontSize");this.h("selectedTabFontColor");this.h("selectedTabFontWeight");this.h("selectedTabFontStyle");this.h("selectedTabTextDecoration");this.h("selectedTabTextShadowBlurRadius");this.h("selectedTabTextShadowColor");this.h("selectedTabTextShadowHorizontalLength");this.h("selectedTabTextShadowOpacity"); 3736this.h("selectedTabTextShadowVerticalLength");this.h("tabsFontFamily");this.h("tabsFontSize");this.h("tabsFontColor");this.h("tabsFontWeight");this.h("tabsFontStyle");this.h("tabsTextDecoration");this.h("tabsTextShadowBlurRadius");this.h("tabsTextShadowColor");this.h("tabsTextShadowHorizontalLength");this.h("tabsTextShadowOpacity");this.h("tabsTextShadowVerticalLength");this.h("tabsRollOverFontSize");this.h("tabsRollOverFontColor");this.h("tabsRollOverFontWeight");this.h("tabsRollOverFontStyle"); 3737this.h("tabsRollOverTextDecoration");this.h("tabsRollOverTextShadowBlurRadius");this.h("tabsRollOverTextShadowColor");this.h("tabsRollOverTextShadowHorizontalLength");this.h("tabsRollOverTextShadowOpacity");this.h("tabsRollOverTextShadowVerticalLength")};a.prototype.Hb=function(){h.prototype.Hb.call(this);
3737null==this.eh&&(this.eh=new h,this.eh.aF(!1),this.Ya(this.eh));null==this.Fh&&(this.Fh=new h,this.Fh.aF(!1),this.Ya(this.Fh))};a.prototype.set=function(p,r){"pages"==p?this.Y$a(r||[]):"selectedIndex"== 3738p?this.Qu(r):"layout"==p&&(r=b.Ecb);h.prototype.set.call(this,p,r)};a.prototype.get=function(p,r){return"pages"==p?this.dk:"selectedIndex"==p?this.BDa():h.prototype.get.call(this,p,r)};a.prototype.Qu=function(p){this.Pf!=p&&(this.Pf=p,this.Pf=Math.min(Math.max(this.Pf,-1),this.dk.length),this.ZE=!0,this.ve(),this.trigger(c.ba),this.trigger(c.F("selectedIndex")))};a.prototype.BDa=function(){return this.Pf};a.prototype.Y$a=function(p){f.isEqual(this.dk,p)||(this.dk.forEach(function(r){r.unbind(c.jd, 3739this.ywa,this);r.unbind(c.ad,this.xwa,this)}.bind(this)),this.dk=p,this.dk.forEach(function(r){r.bind(c.jd,this.ywa,this);r.bind(c.ad,this.xwa,this)}.bind(this)),this.bda=!0,this.ve())};a.prototype.b0a=function(p){this.sR=f(this.sR).union([p.source]);this.H0=!0;this.ve()};a.prototype.a0a=function(p){this.sR=f(this.sR).difference([p.source]);this.H0=!0;this.ve()};a.prototype.$_a=function(p){this.Qu(f(this.rR).indexOf(p.source))};a.prototype.ywa=function(p){this.Qu(this.dk.indexOf(p.source))};a.prototype.xwa= 3740function(p){if(this.dk.indexOf(p.source)==this.Pf){for(p=this.dk.length-1;0<=p;p--)if(this.dk[p].get("visible")){this.Qu(p);return}this.Pf=-1;this.Qu(0)}};a.prototype.bb=function(){var p=!1,r=!1,t=!1,u=!1,v=!1,w=this.B("tabsPosition"),x=this.B("tabsAlign");this.bda&&(this.rR=[],this.Fh.iHa(),this.eh.iHa(),this.dk.forEach(function(E){var I=new e(E);I.aF(!0);I.bind(c.Dc,this.b0a,this);I.bind(c.Jb,this.a0a,this);I.bind(c.gb,this.$_a,this);this.rR.push(I);this.Fh.Ya(I);E.ra({top:void 0,left:void 0,right:void 0, 3741bottom:void 0,width:"100%",height:"100%"});this.eh.Ya(E)}.bind(this)),this.Pf=Math.min(Math.max(this.Pf,0),this.dk.length-1),this.bda=!1,r=p=v=!0);this.L("tabsPosition")&&(this.S("tabsPosition"),u=r=p=!0);this.ZE&&(this.ZE=!1,t=r=v=!0);this.H0&&(this.H0=!1,t=!0);this.L("overflow")&&this.Fh.ra({contentOpaque:this.B("overflow")==d.fq,overflow:this.B("overflow")});f(["tabsAlign","tabsGap","tabsSize"]).forEach(function(E){this.L(E)&&(this.S(E),p=!0)},this);f("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(E){this.L(E)&& 3742(this.S(E),u=r=!0)},this);f("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(E){this.L(E)&& 3743(this.S(E),r=!0)},this);f(["pagePaddingLeft","pagePaddingTop","pagePaddingRight","pagePaddingBottom"]).forEach(function(E){this.L(E)&&(this.S(E),u=!0)},this);this.L("backgroundColorDirection")&&this.S("backgroundColorDirection");if(p){switch(w){case q.ab:this.Fh.ra({left:0,right:void 0});break;case q.tb:this.Fh.ra({left:void 0,right:0});break;case q.Ec:this.Fh.ra({bottom:void 0,top:0});break;case q.wc:this.Fh.ra({bottom:0,top:void 0})}switch(w){case q.ab:case q.tb:this.Fh.ra({layout:b.Xh,top:0,bottom:0, 3744height:void 0,width:this.B("tabsSize")});switch(x){case n.wH:this.Fh.set("verticalAlign",g.wc);break;case n.hma:this.Fh.set("verticalAlign",g.qe);break;default:this.Fh.set("verticalAlign",g.Ec)}break;case q.Ec:case q.wc:switch(this.Fh.ra({layout:b.Gg,left:0,right:0,height:this.B("tabsSize"),width:void 0}),x){case n.wH:this.Fh.set("horizontalAlign",g.tb);break;case n.hma:this.Fh.set("horizontalAlign",g.Ye);break;default:this.Fh.set("horizontalAlign",g.ab)}}this.Fh.set("gap",this.B("tabsGap"))}if(r)for(var y= 37450;y<this.dk.length;y++){var z=this.rR[y];w==q.wc||w==q.Ec?(z.ra({layout:b.Gg,width:void 0,paddingLeft:this.B("tabsPadding"),paddingTop:0,paddingRight:this.B("tabsPadding"),paddingBottom:0,height:"100%",backgroundColorDirection:m.s7}),z.RIa(!1)):(z.ra({layout:b.Xh,width:"100%",paddingLeft:0,paddingTop:this.B("tabsPadding"),paddingRight:0,paddingBottom:this.B("tabsPadding"),height:void 0,backgroundColorDirection:m.R6}),z.RIa(!0));w==q.wc||w==q.tb?z.set("borderTopLeftRadius",0):z.set("borderTopLeftRadius", 3746this.B("borderTopLeftRadius","borderTopRadius","borderLeftRadius","borderRadius"));w==q.wc||w==q.ab?z.set("borderTopRightRadius",0):z.set("borderTopRightRadius",this.B("borderTopRightRadius","borderTopRadius","borderRightRadius","borderRadius"));w==q.Ec||w==q.tb?z.set("borderBottomLeftRadius",0):z.set("borderBottomLeftRadius",this.B("borderBottomLeftRadius","borderBottomRadius","borderLeftRadius","borderRadius"));w==q.Ec||w==q.ab?z.set("borderBottomRightRadius",0):z.set("borderBottomRightRadius", 3747this.B("borderBottomRightRadius","borderBottomRadius","borderRightRadius","borderRadius"));w==q.tb&&z.set("borderSize",this.B("borderRightSize","borderSize"));w==q.ab&&z.set("borderSize",this.B("borderLeftSize","borderSize"));w==q.Ec&&z.set("borderSize",this.B("borderTopSize","borderSize"));w==q.wc&&z.set("borderSize",this.B("borderBottomSize","borderSize"));switch(w){case q.ab:var B=this.B("borderLeftColor","borderColor");break;case q.tb:B=this.B("borderRightColor","borderColor");break;case q.wc:B= 3748this.B("borderBottomColor","borderColor");break;default:case q.Ec:B=this.B("borderTopColor","borderColor")}z.set("borderColor",B);z.ra({fontFamily:this.B("tabsFontFamily"),shadow:this.B("shadow"),shadowHorizontalLength:this.B("shadowHorizontalLength"),shadowVerticalLength:this.B("shadowVerticalLength"),shadowBlurRadius:this.B("shadowBlurRadius"),shadowSpread:this.B("shadowSpread"),shadowColor:this.B("shadowColor")})}if(r||t)for(y=0;y<this.dk.length;y++)z=this.rR[y],t=y==this.Pf,B=f(this.sR).contains(z),
3749t?(B=this.B("selectedTabBackgroundColor","tabsBackgroundColor"),f(B).isUndefined()&&(B=this.B("backgroundColor"),B=f(B).isArray()&&0<B.length?w==q.ab||w==q.Ec?B[0]:B[B.length-1]:B),z.ra({backgroundOpacity:this.B("selectedTabBackgroundOpacity","tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:B,backgroundColorRatios:this.B("selectedTabBackgroundColorRatios","tabsBackgroundColorRatios"),cursor:k.Ie,fontSize:this.B("selectedTabFontSize","tabsFontSize"),fontColor:this.B("selectedTabFontColor", 3750"tabsFontColor"),fontWeight:this.B("selectedTabFontWeight","tabsFontWeight"),fontStyle:this.B("selectedTabFontStyle","tabsFontStyle"),textDecoration:this.B("selectedTabTextDecoration","tabsTextDecoration"),textShadowColor:this.B("selectedTabTextShadowColor","tabsTextShadowColor"),textShadowHorizontalLength:this.B("selectedTabTextShadowHorizontalLength","tabsTextShadowHorizontalLength"),textShadowVerticalLength:this.B("selectedTabTextShadowVerticalLength","tabsTextShadowVerticalLength"),textShadowBlurRadius:this.B("selectedTabTextShadowBlurRadius", 3751"tabsTextShadowBlurRadius"),textShadowOpacity:this.B("selectedTabTextShadowOpacity","tabsTextShadowOpacity")})):B?z.ra({backgroundOpacity:this.B("tabsRollOverBackgroundOpacity","tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:this.B("tabsRollOverBackgroundColor","tabsBackgroundColor"),backgroundColorRatios:this.B("tabsRollOverBackgroundColorRatios","tabsBackgroundColorRatios"),cursor:k.Je,fontSize:this.B("tabsRollOverFontSize","tabsFontSize"),fontColor:this.B("tabsRollOverFontColor","tabsFontColor"), 3752fontWeight:this.B("tabsRollOverFontWeight","tabsFontWeight"),fontStyle:this.B("tabsRollOverFontStyle","tabsFontStyle"),textDecoration:this.B("tabsRollOverTextDecoration","tabsTextDecoration"),textShadowColor:this.B("tabsRollOverTextShadowColor","tabsTextShadowColor"),textShadowHorizontalLength:this.B("tabsRollOverTextShadowHorizontalLength","tabsTextShadowHorizontalLength"),textShadowVerticalLength:this.B("tabsRollOverTextShadowVerticalLength","tabsTextShadowVerticalLength"),textShadowBlurRadius:this.B("tabsRollOverTextShadowBlurRadius", 3753"tabsTextShadowBlurRadius"),textShadowOpacity:this.B("tabsRollOverTextShadowOpacity","tabsTextShadowOpacity")}):z.ra({backgroundOpacity:this.B("tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:this.B("tabsBackgroundColor"),backgroundColorRatios:this.B("tabsBackgroundColorRatios"),fontSize:this.B("tabsFontSize"),fontColor:this.B("tabsFontColor"),fontWeight:this.B("tabsFontWeight"),fontStyle:this.B("tabsFontStyle"),textDecoration:this.B("tabsTextDecoration"),textShadowColor:this.B("tabsTextShadowColor"), 3754textShadowHorizontalLength:this.B("tabsTextShadowHorizontalLength"),textShadowVerticalLength:this.B("tabsTextShadowVerticalLength"),textShadowBlurRadius:this.B("tabsTextShadowBlurRadius"),textShadowOpacity:this.B("tabsTextShadowOpacity")}),z.ra({borderLeftSize:w==q.tb&&t?0:void 0,borderRightSize:w==q.ab&&t?0:void 0,borderBottomSize:w==q.Ec&&t?0:void 0,borderTopSize:w==q.wc&&t?0:void 0});if(u){y=this.B("tabsSize");switch(w){case q.ab:this.eh.ra({left:y-(this.B("borderLeftSize","borderSize")||0),right:0, 3755top:0,bottom:0});break;case q.tb:this.eh.ra({left:0,right:y-(this.B("borderRightSize","borderSize")||0),top:0,bottom:0});break;case q.Ec:this.eh.ra({left:0,right:0,top:y-(this.B("borderTopSize","borderSize")||0),bottom:0});break;case q.wc:this.eh.ra({left:0,right:0,top:0,bottom:y-(this.B("borderBottomSize","borderSize")||0)})}w==q.Ec&&x==n.VM||w==q.ab&&x==n.VM?this.eh.set("borderTopLeftRadius",0):this.eh.set("borderTopLeftRadius",this.B("borderTopLeftRadius","borderTopRadius","borderLeftRadius","borderRadius")); 3756w==q.Ec&&x==n.wH||w==q.tb&&x==n.VM?this.eh.set("borderTopRightRadius",0):this.eh.set("borderTopRightRadius",this.B("borderTopRightRadius","borderTopRadius","borderRightRadius","borderRadius"));w==q.wc&&x==n.VM||w==q.ab&&x==n.wH?this.eh.set("borderBottomLeftRadius",0):this.eh.set("borderBottomLeftRadius",this.B("borderBottomLeftRadius","borderBottomRadius","borderLeftRadius","borderRadius"));w==q.wc&&x==n.wH||w==q.tb&&x==n.wH?this.eh.set("borderBottomRightRadius",0):this.eh.set("borderBottomRightRadius", 3757this.B("borderBottomRightRadius","borderBottomRadius","borderRightRadius","borderRadius"));this.eh.ra({paddingLeft:this.B("pagePaddingLeft"),paddingTop:this.B("pagePaddingTop"),paddingRight:this.B("pagePaddingRight"),paddingBottom:this.B("pagePaddingBottom"),borderLeftSize:this.B("borderLeftSize","borderSize"),borderTopSize:this.B("borderTopSize","borderSize"),borderRightSize:this.B("borderRightSize","borderSize"),borderBottomSize:this.B("borderBottomSize","borderSize"),borderLeftColor:this.B("borderLeftColor", 3758"borderColor"),borderTopColor:this.B("borderTopColor","borderColor"),borderRightColor:this.B("borderRightColor","borderColor"),borderBottomColor:this.B("borderBottomColor","borderColor"),shadow:this.B("shadow"),shadowHorizontalLength:this.B("shadowHorizontalLength"),shadowVerticalLength:this.B("shadowVerticalLength"),shadowBlurRadius:this.B("shadowBlurRadius"),shadowSpread:this.B("shadowSpread"),shadowColor:this.B("shadowColor"),backgroundOpacity:this.B("backgroundOpacity"),backgroundColor:this.B("backgroundColor"), 3759backgroundColorRatios:this.B("backgroundColorRatios")});w==q.Ec||w==q.wc?this.eh.set("backgroundColorDirection",m.s7):this.eh.set("backgroundColorDirection",m.R6)}if(v)for(y=0;y<this.dk.length;y++)this.dk[y].set("visible",y==this.Pf);h.prototype.bb.call(this)};return a});define("oF",["require","di","oj"],function(a){var f=a("di");return a("oj").define("TabPanel",f,function(){f.call(this)})}); 3760define("gl",["require","lQ","oP"],function(a){var f=a("lQ"),l=a("oP");a=f.extend(l,function(){l.call(this);this.Qe("Page");this.set("label","")});a.prototype.yb=function(){l.prototype.yb.call(this);this.h("visible")};return a});define("hl",["require","gl","oj"],function(a){var f=a("gl");return a("oj").define("TabPanelPage",f,function(){f.call(this)})});define("gR",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("TargetPanoramaCameraMovement",f,function(){f.call(this)})}); 3761define("dy",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("TargetRotationalCameraDisplayMovement",f,function(){f.call(this)})});define("is",["require","mD","oj"],function(a){var f=a("mD");return a("oj").define("TiledImageResourceLevel",f,function(){f.call(this)})});define("nv",["require","oj","iB"],function(a){var f=a("oj"),l=a("iB");return f.define("TripodCapPanoramaOverlay",l,function(){l.call(this)})}); 3762define("iF","require lQ z pw nA cZ bh d iR mI hf oP nf dE es".split(" "),function(a){var f=a("lQ"),l=a("z"),m=a("pw"),k=a("nA"),c=a("cZ"),h=a("bh"),g=
3762a("d"),b=a("iR"),d=a("mI"),e=a("hf"),n=a("oP"),q=a("nf"),p=a("dE"),r=a("es"),t=f.extend(n,function(){n.call(this);this.Pa=this.df=null;this.oD=[];this.set("ariaRole","option");this.set("autoRolledOver",!0);this.set("childrenInteractionEnabled",!1);this.set("contentOpaque",!0);this.set("creationPolicy",c.GC);this.set("cursor",h.Je)});t.prototype.yb=function(){n.prototype.yb.call(this); 3763this.h("overflow","hidden");this.h("item");this.h("thumbnailUrlFunction",this.K9);this.h("sourceProperties");this.h("labelFunction",this.I9);this.h("labelFontFamily");this.h("labelFontColor");this.h("labelFontSize");this.h("labelFontStyle");this.h("labelFontWeight");this.h("labelGap");this.h("labelHorizontalAlign");this.h("labelMaxWidth");this.h("labelPosition");this.h("labelTextDecoration");this.h("labelTextShadowColor");this.h("labelTextShadowHorizontalLength");this.h("labelTextShadowVerticalLength"); 3764this.h("labelTextShadowBlurRadius");this.h("labelTextShadowOpacity");this.h("thumbnailBorderRadius");this.h("thumbnailOpacity");this.h("thumbnailBorderSize");this.h("thumbnailBorderColor");this.h("thumbnailWidth");this.h("thumbnailHeight");this.h("thumbnailMaxWidth");this.h("thumbnailMaxHeight");this.h("thumbnailShadow");this.h("thumbnailShadowHorizontalLength");this.h("thumbnailShadowVerticalLength");this.h("thumbnailShadowBlurRadius");this.h("thumbnailShadowSpread");this.h("thumbnailShadowColor"); 3765this.h("thumbnailShadowOpacity");this.A("rollOverBackgroundOpacity",e.aa,"backgroundOpacity");this.A("rollOverBackgroundColor",e.aa,"backgroundColor");this.A("rollOverBackgroundColorRatios",e.aa,"backgroundColorRatios");this.A("rollOverBackgroundColorDirection",e.aa,"backgroundColorDirection");this.A("rollOverBorderRadius",e.aa,"borderRadius");this.A("rollOverBorderTopRadius",e.aa,"borderTopRadius");this.A("rollOverBorderBottomRadius",e.aa,"borderBottomRadius");this.A("rollOverBorderLeftRadius",e.aa, 3766"borderLeftRadius");this.A("rollOverBorderRightRadius",e.aa,"borderRightRadius");this.A("rollOverBorderTopLeftRadius",e.aa,"borderTopLeftRadius");this.A("rollOverBorderTopRightRadius",e.aa,"borderTopRightRadius");this.A("rollOverBorderBottomLeftRadius",e.aa,"borderBottomLeftRadius");this.A("rollOverBorderBottomRightRadius",e.aa,"borderBottomRightRadius");this.A("rollOverBorderSize",e.aa,"borderSize");this.A("rollOverBorderLeftSize",e.aa,"borderLeftSize");this.A("rollOverBorderTopSize",e.aa,"borderTopSize"); 3767this.A("rollOverBorderRightSize",e.aa,"borderRightSize");this.A("rollOverBorderBottomSize",e.aa,"borderBottomSize");this.A("rollOverBorderColor",e.aa,"borderColor");this.A("rollOverBorderLeftColor",e.aa,"borderLeftColor");this.A("rollOverBorderTopColor",e.aa,"borderTopColor");this.A("rollOverBorderRightColor",e.aa,"borderRightColor");this.A("rollOverBorderBottomColor",e.aa,"borderBottomColor");this.A("rollOverLabelFontColor",e.aa,"labelFontColor");this.A("rollOverLabelFontSize",e.aa,"labelFontSize"); 3768this.A("rollOverLabelFontStyle",e.aa,"labelFontStyle");this.A("rollOverLabelFontWeight",e.aa,"labelFontWeight");this.A("rollOverLabelTextDecoration",e.aa,"labelTextDecoration");this.A("rollOverLabelTextShadowColor",e.aa,"labelTextShadowColor");this.A("rollOverLabelTextShadowHorizontalLength",e.aa,"labelTextShadowHorizontalLength");this.A("rollOverLabelTextShadowVerticalLength",e.aa,"labelTextShadowVerticalLength");this.A("rollOverLabelTextShadowBlurRadius",e.aa,"labelTextShadowBlurRadius");this.A("rollOverLabelTextShadowOpacity", 3769e.aa,"labelTextShadowOpacity");this.A("rollOverOpacity",e.aa,"opacity");this.A("rollOverPaddingLeft",e.aa,"paddingLeft");this.A("rollOverPaddingTop",e.aa,"paddingTop");this.A("rollOverPaddingRight",e.aa,"paddingRight");this.A("rollOverPaddingBottom",e.aa,"paddingBottom");this.A("rollOverShadow",e.aa,"shadow");this.A("rollOverThumbnailOpacity",e.aa,"thumbnailOpacity");this.A("rollOverThumbnailBorderSize",e.aa,"thumbnailBorderSize");this.A("rollOverThumbnailBorderColor",e.aa,"thumbnailBorderColor"); 3770this.A("rollOverThumbnailShadow",e.aa,"thumbnailShadow");this.A("rollOverThumbnailShadowHorizontalLength",e.aa,"thumbnailShadowHorizontalLength");this.A("rollOverThumbnailShadowVerticalLength",e.aa,"thumbnailShadowVerticalLength");this.A("rollOverThumbnailShadowBlurRadius",e.aa,"thumbnailShadowBlurRadius");this.A("rollOverThumbnailShadowSpread",e.aa,"thumbnailShadowSpread");this.A("rollOverThumbnailShadowColor",e.aa,"thumbnailShadowColor");this.A("rollOverThumbnailShadowOpacity",e.aa,"thumbnailShadowOpacity");
3771this.A("selectedBackgroundOpacity",e.ja,"backgroundOpacity");this.A("selectedBackgroundColor",e.ja,"backgroundColor");this.A("selectedBackgroundColorRatios",e.ja,"backgroundColorRatios");this.A("selectedBackgroundColorDirection",e.ja,"backgroundColorDirection");this.A("selectedBorderRadius",e.ja,"borderRadius");this.A("selectedBorderTopRadius",e.ja,"borderTopRadius");this.A("selectedBorderBottomRadius",e.ja,"borderBottomRadius");this.A("selectedBorderLeftRadius",e.ja,"borderLeftRadius");this.A("selectedBorderRightRadius", 3772e.ja,"borderRightRadius");this.A("selectedBorderTopLeftRadius",e.ja,"borderTopLeftRadius");this.A("selectedBorderTopRightRadius",e.ja,"borderTopRightRadius");this.A("selectedBorderBottomLeftRadius",e.ja,"borderBottomLeftRadius");this.A("selectedBorderBottomRightRadius",e.ja,"borderBottomRightRadius");this.A("selectedBorderSize",e.ja,"borderSize");this.A("selectedBorderLeftSize",e.ja,"borderLeftSize");this.A("selectedBorderTopSize",e.ja,"borderTopSize");this.A("selectedBorderRightSize",e.ja,"borderRightSize"); 3773this.A("selectedBorderBottomSize",e.ja,"borderBottomSize");this.A("selectedBorderColor",e.ja,"borderColor");this.A("selectedBorderLeftColor",e.ja,"borderLeftColor");this.A("selectedBorderTopColor",e.ja,"borderTopColor");this.A("selectedBorderRightColor",e.ja,"borderRightColor");this.A("selectedBorderBottomColor",e.ja,"borderBottomColor");this.A("selectedLabelFontColor",e.ja,"labelFontColor");this.A("selectedLabelFontSize",e.ja,"labelFontSize");this.A("selectedLabelFontStyle",e.ja,"labelFontStyle"); 3774this.A("selectedLabelFontWeight",e.ja,"labelFontWeight");this.A("selectedLabelTextDecoration",e.ja,"labelTextDecoration");this.A("selectedLabelTextShadowColor",e.ja,"labelTextShadowColor");this.A("selectedLabelTextShadowHorizontalLength",e.ja,"labelTextShadowHorizontalLength");this.A("selectedLabelTextShadowVerticalLength",e.ja,"labelTextShadowVerticalLength");this.A("selectedLabelTextShadowBlurRadius",e.ja,"labelTextShadowBlurRadius");this.A("selectedLabelTextShadowOpacity",e.ja,"labelTextShadowOpacity"); 3775this.A("selectedOpacity",e.ja,"opacity");this.A("selectedPaddingLeft",e.ja,"paddingLeft");this.A("selectedPaddingTop",e.ja,"paddingTop");this.A("selectedPaddingRight",e.ja,"paddingRight");this.A("selectedPaddingBottom",e.ja,"paddingBottom");this.A("selectedShadow",e.ja,"shadow");this.A("selectedThumbnailOpacity",e.ja,"thumbnailOpacity");this.A("selectedThumbnailBorderSize",e.ja,"thumbnailBorderSize");this.A("selectedThumbnailBorderColor",e.ja,"thumbnailBorderColor");this.A("selectedThumbnailShadow", 3776e.ja,"thumbnailShadow");this.A("selectedThumbnailShadowHorizontalLength",e.ja,"thumbnailShadowHorizontalLength");this.A("selectedThumbnailShadowVerticalLength",e.ja,"thumbnailShadowVerticalLength");this.A("selectedThumbnailShadowBlurRadius",e.ja,"thumbnailShadowBlurRadius");this.A("selectedThumbnailShadowSpread",e.ja,"thumbnailShadowSpread");this.A("selectedThumbnailShadowColor",e.ja,"thumbnailShadowColor");this.A("selectedThumbnailShadowOpacity",e.ja,"thumbnailShadowOpacity")};t.prototype.IU=function(u){this.XQ(u)}; 3777t.prototype.Hb=function(){n.prototype.Hb.call(this);this.df||(this.df=new q,this.Ya(this.df),this.df.set("horizontalAlign",k.Ye),this.df.set("verticalAlign",k.qe),this.df.bind(m.da,this.ofa,this));this.Pa||(this.Pa=new p,this.Ya(this.Pa))};t.prototype.K9=function(u){if(r(u).isString())return u;if(u&&u.Ila)return u.Ila};t.prototype.I9=function(u){if(u&&u.label)return u.label};t.prototype.Iv=function(){return this.Pa&&this.Pa.get("text")||n.prototype.Iv.call(this)};t.prototype.bb=function(){if(this.L("sourceProperties")|| 3778this.L("item")){for(;this.oD.length;)this.oD.pop().eC();var u=this.B("sourceProperties"),v=this.B("item");u&&v&&u.forEach(function(x){this.oD.push(l.Ru(v,x,this.Mca,this,!0))}.bind(this))}if(this.L("sourceProperties")||this.L("item")||this.L("tooltipFunction"))v=this.B("item"),u=this.B("tooltipFunction")(v),this.set("toolTip",u);if(this.L("sourceProperties")||this.L("item")||this.L("thumbnailUrlFunction"))v=this.B("item"),(u=this.B("thumbnailUrlFunction")(v))?this.df.get("url")!=u&&this.df.ra({url:u, 3779visible:!0,opacity:.5}):this.df.ra({url:void 0,visible:!1}),this.S("thumbnailUrlFunction");if(this.L("sourceProperties")||this.L("item")||this.L("labelFunction"))v=this.B("item"),u=this.B("labelFunction")(v),this.Pa.ra({text:u,visible:u?!0:!1}),this.S("labelFunction");this.S("item");this.S("sourceProperties");if(this.L("labelPosition")||this.L("listLayout")||this.L("thumbnailWidth")||this.L("thumbnailHeight")){var w=this;u=function(x,y){x=w.B(x);return void 0!==x?x:y};switch(this.B("labelPosition")){case b.ab:case b.tb:this.set("layout", 3780g.Gg);this.Pa.set("width","100%");this.df.ra({height:u("thumbnailHeight","100%"),width:u("thumbnailWidth"),scaleMode:u("thumbnailScaleMode",d.vk)});break;default:this.set("layout",g.Xh),this.Pa.set("width","100%"),this.df.ra({height:u("thumbnailHeight","100%"),width:u("thumbnailWidth","100%"),scaleMode:u("thumbnailScaleMode",d.vk)})}switch(this.B("labelPosition")){case b.ab:case b.Ec:this.ao(this.Pa,0);break;default:this.ao(this.Pa,1)}this.S("labelPosition")}this.uc(t.G7,t.ooa,[this],!0,!0);this.uc(t.I7, 3781t.roa,[this.df],!0,!0);this.uc(t.H7,t.qoa,[this.Pa],!0,!0);n.prototype.bb.call(this)};t.prototype.Mca=function(){this.cF("item")};t.prototype.$E=function(u){n.prototype.$E.call(this,u)};t.prototype.ofa=function(){this.df.set("opacity",1)};t.ooa={labelGap:"gap"};t.G7=r(t.ooa).keys();t.qoa={labelFontFamily:"fontFamily",labelFontColor:"fontColor",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelHorizontalAlign:"horizontalAlign",labelMaxWidth:"maxWidth",labelTextDecoration:"textDecoration", 3782labelTextShadowColor:"textShadowColor",labelTextShadowHorizontalLength:"textShadowHorizontalLength",labelTextShadowVerticalLength:"textShadowVerticalLength",labelTextShadowBlurRadius:"textShadowBlurRadius",labelTextShadowOpacity:"textShadowOpacity"};t.H7=r(t.qoa).keys();t.roa={thumbnailMaxWidth:"maxWidth",thumbnailMaxHeight:"maxHeight",thumbnailBorderRadius:"borderRadius",thumbnailOpacity:"opacity",thumbnailBorderSize:"borderSize",thumbnailBorderColor:"borderColor",thumbnailShadow:"shadow",thumbnailShadowHorizontalLength:"shadowHorizontalLength", 3783thumbnailShadowVerticalLength:"shadowVerticalLength",thumbnailShadowBlurRadius:"shadowBlurRadius",thumbnailShadowSpread:"shadowSpread",thumbnailShadowColor:"shadowColor",thumbnailShadowOpacity:"shadowOpacity"};t.I7=r(t.roa).keys();return t}); 3784define("bZ","require lQ cI nA pw d ik iR oP iF jt".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("nA"),k=a("pw"),c=a("d"),h=a("ik"),g=a("iR"),b=a("oP"),d=a("iF"),e=a("jt"),n=f.extend(b,function(){b.call(this);this.set("contentOpaque",!0);this.set("ariaRole","listbox")});n.prototype.yb=function(){b.prototype.yb.call(this);this.h("layout",c.cz);this.h("selectedIndex",-1);this.h("items",[]);this.h("overflow",h.fq);this.h("itemHorizontalAlign",m.Ye);this.h("itemLabelFontFamily");this.h("itemLabelPosition", 3785g.wc);this.h("itemLabelFunction");this.h("itemLabelMaxWidth");this.h("itemLabelGap");this.h("itemLabelHorizontalAlign",m.Ye);this.h("itemSourceProperties");this.h("itemThumbnailBorderRadius");this.h("itemThumbnailScaleMode");this.h("itemThumbnailWidth");this.h("itemThumbnailHeight");this.h("itemThumbnailMaxWidth");this.h("itemThumbnailMaxHeight");this.h("itemThumbnailUrlFunction");this.h("itemTooltipFunction");this.h("itemVerticalAlign",m.qe);
3785this.h("itemBackgroundOpacity");this.h("itemBackgroundColor"); 3786this.h("itemBackgroundColorRatios");this.h("itemBackgroundColorDirection");this.h("itemBorderRadius");this.h("itemBorderTopRadius");this.h("itemBorderBottomRadius");this.h("itemBorderLeftRadius");this.h("itemBorderRightRadius");this.h("itemBorderTopLeftRadius");this.h("itemBorderTopRightRadius");this.h("itemBorderBottomLeftRadius");this.h("itemBorderBottomRightRadius");this.h("itemBorderSize");this.h("itemBorderLeftSize");this.h("itemBorderTopSize");this.h("itemBorderRightSize");this.h("itemBorderBottomSize"); 3787this.h("itemBorderColor");this.h("itemBorderLeftColor");this.h("itemBorderTopColor");this.h("itemBorderRightColor");this.h("itemBorderBottomColor");this.h("itemLabelFontColor");this.h("itemLabelFontSize");this.h("itemLabelFontStyle");this.h("itemLabelFontWeight");this.h("itemLabelMaxWidth");this.h("itemLabelTextDecoration");this.h("itemLabelTextShadowColor");this.h("itemLabelTextShadowHorizontalLength");this.h("itemLabelTextShadowVerticalLength");this.h("itemLabelTextShadowBlurRadius");this.h("itemLabelTextShadowOpacity"); 3788this.h("itemOpacity");this.h("itemPaddingLeft");this.h("itemPaddingTop");this.h("itemPaddingRight");this.h("itemPaddingBottom");this.h("itemShadow");this.h("itemThumbnailOpacity");this.h("itemThumbnailBorderSize");this.h("itemThumbnailBorderColor");this.h("itemThumbnailShadow");this.h("itemThumbnailShadowHorizontalLength");this.h("itemThumbnailShadowVerticalLength");this.h("itemThumbnailShadowBlurRadius");this.h("itemThumbnailShadowSpread");this.h("itemThumbnailShadowColor");this.h("itemThumbnailShadowOpacity");
3789this.h("rollOverItemBackgroundOpacity");this.h("rollOverItemBackgroundColor");this.h("rollOverItemBackgroundColorRatios");this.h("rollOverItemBackgroundColorDirection");this.h("rollOverItemBorderRadius");this.h("rollOverItemBorderTopRadius");this.h("rollOverItemBorderBottomRadius");this.h("rollOverItemBorderLeftRadius");this.h("rollOverItemBorderRightRadius");this.h("rollOverItemBorderTopLeftRadius");this.h("rollOverItemBorderTopRightRadius");this.h("rollOverItemBorderBottomLeftRadius");this.h("rollOverItemBorderBottomRightRadius"); 3790this.h("rollOverItemBorderSize");this.h("rollOverItemBorderLeftSize");this.h("rollOverItemBorderTopSize");this.h("rollOverItemBorderRightSize");this.h("rollOverItemBorderBottomSize");this.h("rollOverItemBorderColor");this.h("rollOverItemBorderLeftColor");this.h("rollOverItemBorderTopColor");this.h("rollOverItemBorderRightColor");this.h("rollOverItemBorderBottomColor");this.h("rollOverItemLabelFontSize");this.h("rollOverItemLabelFontStyle");this.h("rollOverItemLabelFontWeight");this.h("rollOverItemLabelTextDecoration"); 3791this.h("rollOverItemLabelTextShadowColor");this.h("rollOverItemLabelTextShadowHorizontalLength");this.h("rollOverItemLabelTextShadowVerticalLength");this.h("rollOverItemLabelTextShadowBlurRadius");this.h("rollOverItemLabelTextShadowOpacity");this.h("rollOverItemOpacity");this.h("rollOverItemPaddingLeft");this.h("rollOverItemPaddingTop");this.h("rollOverItemPaddingRight");this.h("rollOverItemPaddingBottom");this.h("rollOverItemShadow");this.h("rollOverItemThumbnailOpacity");this.h("rollOverItemThumbnailBorderSize"); 3792this.h("rollOverItemThumbnailBorderColor");this.h("rollOverItemThumbnailShadow");this.h("rollOverItemThumbnailShadowHorizontalLength");this.h("rollOverItemThumbnailShadowVerticalLength");this.h("rollOverItemThumbnailShadowBlurRadius");this.h("rollOverItemThumbnailShadowSpread");this.h("rollOverItemThumbnailShadowColor");this.h("rollOverItemThumbnailShadowOpacity");
3792this.h("selectedItemBackgroundOpacity");this.h("selectedItemBackgroundColor");this.h("selectedItemBackgroundColorRatios");this.h("selectedItemBackgroundColorDirection"); 3793this.h("selectedItemBorderRadius");this.h("selectedItemBorderTopRadius");this.h("selectedItemBorderBottomRadius");this.h("selectedItemBorderLeftRadius");this.h("selectedItemBorderRightRadius");this.h("selectedItemBorderTopLeftRadius");this.h("selectedItemBorderTopRightRadius");this.h("selectedItemBorderBottomLeftRadius");this.h("selectedItemBorderBottomRightRadius");this.h("selectedItemBorderSize");this.h("selectedItemBorderLeftSize");this.h("selectedItemBorderTopSize");this.h("selectedItemBorderRightSize"); 3794this.h("selectedItemBorderBottomSize");this.h("selectedItemBorderColor");this.h("selectedItemBorderLeftColor");this.h("selectedItemBorderTopColor");this.h("selectedItemBorderRightColor");this.h("selectedItemBorderBottomColor");this.h("selectedItemLabelFontSize");this.h("selectedItemLabelFontStyle");this.h("selectedItemLabelFontWeight");this.h("selectedItemLabelTextDecoration");this.h("selectedItemLabelTextShadowColor");this.h("selectedItemLabelTextShadowHorizontalLength");this.h("selectedItemLabelTextShadowVerticalLength"); 3795this.h("selectedItemLabelTextShadowBlurRadius");this.h("selectedItemLabelTextShadowOpacity");this.h("selectedItemOpacity");this.h("selectedItemPaddingLeft");this.h("selectedItemPaddingTop");this.h("selectedItemPaddingRight");this.h("selectedItemPaddingBottom");this.h("selectedItemShadow");this.h("selectedItemThumbnailOpacity");this.h("selectedItemThumbnailBorderSize");this.h("selectedItemThumbnailBorderColor");this.h("selectedItemThumbnailShadow");this.h("selectedItemThumbnailShadowHorizontalLength"); 3796this.h("selectedItemThumbnailShadowVerticalLength");this.h("selectedItemThumbnailShadowBlurRadius");this.h("selectedItemThumbnailShadowSpread");this.h("selectedItemThumbnailShadowColor");this.h("selectedItemThumbnailShadowOpacity")};n.prototype.RO=function(q){this.ip=!0;this.set("selectedIndex",this.baa(q.source))};n.prototype.baa=function(q){for(var p=this.ob(),r=0;r<p.length;r++)if(p[r]==q)return r;return-1};n.prototype.bb=function(){this.L("layout")&&this.B("layout")!=c.cz&&this.set("layout",c.cz); 3797var q=!1;if(this.L("items")){q=!0;var p=this.B("items")||[],r=this.ob();if(r.length<p.length){for(var t=r.length;t<p.length;t++)r=new d,r.bind(k.ma,this.RO,this),this.uc(n.gN,n.WC,[r],!1,!1),this.uc(n.hN,n.XC,[r],!1,!1),this.Ya(r);r=this.ob()}if(r.length>p.length){for(t=p.length;t<r.length;t++){var u=r[t];u.unbind(k.ma,this.RO,this);this.removeChild(u)}r=this.ob()}for(t=0;t<p.length;t++)r[t].set("item",p[t]);this.S("items")}if(this.L("selectedIndex")||q){p=this.ob();q=Math.min(p.length-1,Math.max(-1, 3798this.B("selectedIndex")));this.set("selectedIndex",q);for(t=0;t<p.length;t++)p[t].IU(t==q);this.S("selectedIndex");this.ip&&(this.ip=!1,this.trigger(new l(k.ba)))}this.uc(n.gN,n.WC,this.ob(),!0,!1);this.uc(n.hN,n.XC,this.ob(),!0,!0);b.prototype.bb.call(this)};n.prototype.cj=function(){b.prototype.cj.call(this);e.P2a(this,this.ob().map(function(q){return q.je()}),this.Wl.Bxa,this.Wl.Ypa)};n.WC={layout:"listLayout",shadowHorizontalLength:"shadowHorizontalLength",shadowVerticalLength:"shadowVerticalLength", 3799shadowBlurRadius:"shadowBlurRadius",shadowSpread:"shadowSpread",shadowOpacity:"shadowOpacity",shadowColor:"shadowColor"};n.XC={itemHorizontalAlign:"horizontalAlign",itemLabelFunction:"labelFunction",itemLabelFontFamily:"labelFontFamily",itemLabelGap:"labelGap",itemLabelHorizontalAlign:"labelHorizontalAlign",itemLabelMaxWidth:"labelMaxWidth",itemLabelPosition:"labelPosition",itemSourceProperties:"sourceProperties",itemThumbnailBorderRadius:"thumbnailBorderRadius",itemThumbnailScaleMode:"thumbnailScaleMode", 3800itemThumbnailHeight:"thumbnailHeight",itemThumbnailWidth:"thumbnailWidth",itemThumbnailMaxHeight:"thumbnailMaxHeight",itemThumbnailMaxWidth:"thumbnailMaxWidth",itemThumbnailUrlFunction:"thumbnailUrlFunction",itemTooltipFunction:"tooltipFunction",itemVerticalAlign:"verticalAlign",itemBackgroun
3800dOpacity:"backgroundOpacity",itemBackgroundColor:"backgroundColor",itemBackgroundColorRatios:"backgroundColorRatios",itemBackgroundColorDirection:"backgroundColorDirection",itemBorderRadius:"borderRadius",itemBorderTopRadius:"borderTopRadius", 3801itemBorderBottomRadius:"borderBottomRadius",itemBorderLeftRadius:"borderLeftRadius",itemBorderRightRadius:"borderRightRadius",itemBorderTopLeftRadius:"borderTopLeftRadius",itemBorderTopRightRadius:"borderTopRightRadius",itemBorderBottomLeftRadius:"borderBottomLeftRadius",itemBorderBottomRightRadius:"borderBottomRightRadius",itemBorderSize:"borderSize",itemBorderLeftSize:"borderLeftSize",itemBorderTopSize:"borderTopSize",itemBorderRightSize:"borderRightSize",itemBorderBottomSize:"borderBottomSize", 3802itemBorderColor:"borderColor",itemBorderLeftColor:"borderLeftColor",itemBorderTopColor:"borderTopColor",itemBorderRightColor:"borderRightColor",itemBorderBottomColor:"borderBottomColor",itemLabelFontColor:"labelFontColor",itemLabelFontSize:"labelFontSize",itemLabelFontStyle:"labelFontStyle",itemLabelFontWeight:"labelFontWeight",itemLabelTextDecoration:"labelTextDecoration",itemLabelTextShadowColor:"labelTextShadowColor",itemLabelTextShadowHorizontalLength:"labelTextShadowHorizontalLength",itemLabelTextShadowVerticalLength:"labelTextShadowVerticalLength", 3803itemLabelTextShadowBlurRadius:"labelTextShadowBlurRadius",itemLabelTextShadowOpacity:"labelTextShadowOpacity",itemOpacity:"opacity",itemPaddingLeft:"paddingLeft",itemPaddingTop:"paddingTop",itemPaddingRight:"paddingRight",itemPaddingBottom:"paddingBottom",itemShadow:"shadow",itemThumbnailOpacity:"thumbnailOpacity",itemThumbnailBorderSize:"thumbnailBorderSize",itemThumbnailBorderColor:"thumbnailBorderColor",itemThumbnailShadow:"thumbnailShadow",itemThumbnailShadowHorizontalLength:"thumbnailShadowHorizontalLength", 3804itemThumbnailShadowVerticalLength:"thumbnailShadowVerticalLength",itemThumbnailShadowBlurRadius:"thumbnailShadowBlurRadius",itemThumbnailShadowSpread:"thumbnailShadowSpread",itemThumbnailShadowColor:"thumbnailShadowColor",itemThumbnailShadowOpacity:"thumbnailShadowOpacity",rollOverItemBackgroun
3804dOpacity:"rollOverBackgroundOpacity",rollOverItemBackgroundColor:"rollOverBackgroundColor",rollOverItemBackgroundColorRatios:"rollOverBackgroundColorRatios",rollOverItemBackgroundColorDirection:"rollOverBackgroundColorDirection", 3805rollOverItemBorderRadius:"rollOverBorderRadius",rollOverItemBorderTopRadius:"rollOverBorderTopRadius",rollOverItemBorderBottomRadius:"rollOverBorderBottomRadius",rollOverItemBorderLeftRadius:"rollOverBorderLeftRadius",rollOverItemBorderRightRadius:"rollOverBorderRightRadius",rollOverItemBorderTopLeftRadius:"rollOverBorderTopLeftRadius",rollOverItemBorderTopRightRadius:"rollOverBorderTopRightRadius",rollOverItemBorderBottomLeftRadius:"rollOverBorderBottomLeftRadius",rollOverItemBorderBottomRightRadius:"rollOverBorderBottomRightRadius", 3806rollOverItemBorderSize:"rollOverBorderSize",rollOverItemBorderLeftSize:"rollOverBorderLeftSize",rollOverItemBorderTopSize:"rollOverBorderTopSize",rollOverItemBorderRightSize:"rollOverBorderRightSize",rollOverItemBorderBottomSize:"rollOverBorderBottomSize",rollOverItemBorderColor:"rollOverBorderColor",rollOverItemBorderLeftColor:"rollOverBorderLeftColor",rollOverItemBorderTopColor:"rollOverBorderTopColor",rollOverItemBorderRightColor:"rollOverBorderRightColor",rollOverItemBorderBottomColor:"rollOverBorderBottomColor", 3807rollOverItemLabelFontColor:"rollOverLabelFontColor",rollOverItemLabelFontSize:"rollOverLabelFontSize",rollOverItemLabelFontStyle:"rollOverLabelFontStyle",rollOverItemLabelFontWeight:"rollOverLabelFontWeight",rollOverItemLabelTextDecoration:"rollOverLabelTextDecoration",rollOverItemLabelTextShadowColor:"rollOverLabelTextShadowColor",rollOverItemLabelTextShadowHorizontalLength:"rollOverLabelTextShadowHorizontalLength",rollOverItemLabelTextShadowVerticalLength:"rollOverLabelTextShadowVerticalLength", 3808rollOverItemLabelTextShadowBlurRadius:"rollOverLabelTextShadowBlurRadius",rollOverItemLabelTextShadowOpacity:"rollOverLabelTextShadowOpacity",rollOverItemOpacity:"rollOverOpacity",rollOverItemPaddingLeft:"rollOverPaddingLeft",rollOverItemPaddingTop:"rollOverPaddingTop",rollOverItemPaddingRight:"rollOverPaddingRight",rollOverItemPaddingBottom:"rollOverPaddingBottom",rollOverItemShadow:"rollOverShadow",rollOverItemThumbnailOpacity:"rollOverThumbnailOpacity",rollOverItemThumbnailBorderSize:"rollOverThumbnailBorderSize", 3809rollOverItemThumbnailBorderColor:"rollOverThumbnailBorderColor",rollOverItemThumbnailShadow:"rollOverThumbnailShadow",rollOverItemThumbnailShadowHorizontalLength:"rollOverThumbnailShadowHorizontalLength",rollOverItemThumbnailShadowVerticalLength:"rollOverThumbnailShadowVerticalLength",rollOverItemThumbnailShadowBlurRadius:"rollOverThumbnailShadowBlurRadius",rollOverItemThumbnailShadowSpread:"rollOverThumbnailShadowSpread",rollOverItemThumbnailShadowColor:"rollOverThumbnailShadowColor",rollOverItemThumbnailShadowOpacity:"rollOverThumbnailShadowOpacity",
3810selectedItemBackgroundOpacity:"selectedBackgroundOpacity",selectedItemBackgroundColor:"selectedBackgroundColor",selectedItemBackgroundColorRatios:"selectedBackgroundColorRatios",selectedItemBackgroundColorDirection:"selectedBackgroundColorDirection",selectedItemBorderRadius:"selectedBorderRadius",selectedItemBorderTopRadius:"selectedBorderTopRadius",selectedItemBorderBottomRadius:"selectedBorderBottomRadius",selectedItemBorderLeftRadius:"selectedBorderLeftRadius",selectedItemBorderRightRadius:"selectedBorderRightRadius", 3811selectedItemBorderTopLeftRadius:"selectedBorderTopLeftRadius",selectedItemBorderTopRightRadius:"selectedBorderTopRightRadius",selectedItemBorderBottomLeftRadius:"selectedBorderBottomLeftRadius",selectedItemBorderBottomRightRadius:"selectedBorderBottomRightRadius",selectedItemBorderSize:"selectedBorderSize",selectedItemBorderLeftSize:"selectedBorderLeftSize",selectedItemBorderTopSize:"selectedBorderTopSize",selectedItemBorderRightSize:"selectedBorderRightSize",selectedItemBorderBottomSize:"selectedBorderBottomSize", 3812selectedItemBorderColor:"selectedBorderColor",selectedItemBorderLeftColor:"selectedBorderLeftColor",selectedItemBorderTopColor:"selectedBorderTopColor",selectedItemBorderRightColor:"selectedBorderRightColor",selectedItemBorderBottomColor:"selectedBorderBottomColor",selectedItemLabelFontColor:"selectedLabelFontColor",selectedItemLabelFontSize:"selectedLabelFontSize",selectedItemLabelFontStyle:"selectedLabelFontStyle",selectedItemLabelFontWeight:"selectedLabelFontWeight",selectedItemLabelTextDecoration:"selectedLabelTextDecoration", 3813selectedItemLabelTextShadowColor:"selectedLabelTextShadowColor",selectedItemLabelTextShadowHorizontalLength:"selectedLabelTextShadowHorizontalLength",selectedItemLabelTextShadowVerticalLength:"selectedLabelTextShadowVerticalLength",selectedItemLabelTextShadowBlurRadius:"selectedLabelTextShadowBlurRadius",selectedItemLabelTextShadowOpacity:"selectedLabelTextShadowOpacity",selectedItemOpacity:"selectedOpacity",selectedItemPaddingLeft:"selectedPaddingLeft",selectedItemPaddingTop:"selectedPaddingTop", 3814selectedItemPaddingRight:"selectedPaddingRight",selectedItemPaddingBottom:"selectedPaddingBottom",selectedItemShadow:"selectedShadow",selectedItemThumbnailOpacity:"selectedThumbnailOpacity",selectedItemThumbnailBorderSize:"selectedThumbnailBorderSize",selectedItemThumbnailBorderColor:"selectedThumbnailBorderColor",selectedItemThumbnailShadow:"selectedThumbnailShadow",selectedItemThumbnailShadowHorizontalLength:"selectedThumbnailShadowHorizontalLength",selectedItemThumbnailShadowVerticalLength:"selectedThumbnailShadowVerticalLength", 3815selectedItemThumbnailShadowBlurRadius:"selectedThumbnailShadowBlurRadius",selectedItemThumbnailShadowSpread:"selectedThumbnailShadowSpread",selectedItemThumbnailShadowColor:"selectedThumbnailShadowColor",selectedItemThumbnailShadowOpacity:"selectedThumbnailShadowOpacity",tabIndex:"tabIndex",toolTipBackgroundColor:"toolTipBackgroundColor",toolTipBackgroundOpacity:"toolTipBackgroundOpacity",toolTipBorderRadius:"toolTipBorderRadius",toolTipBorderColor:"toolTipBorderColor",toolTipBorderSize:"toolTipBorderSize", 3816toolTipDisplayTime:"toolTipDisplayTime",toolTipFontFamily:"toolTipFontFamily",toolTipFontSize:"toolTipFontSize",toolTipFontColor:"toolTipFontColor",toolTipFontWeight:"toolTipFontWeight",toolTipFontStyle:"toolTipFontStyle",toolTipPaddingBottom:"toolTipPaddingBottom",toolTipPaddingLeft:"toolTipPaddingLeft",toolTipPaddingTop:"toolTipPaddingTop",toolTipPaddingRight:"toolTipPaddingRight",toolTipShadowBlurRadius:"toolTipShadowBlurRadius",toolTipShadowColor:"toolTipShadowColor",toolTipShadowHorizontalLength:"toolTipShadowHorizontalLength", 3817toolTipShadowOpacity:"toolTipShadowOpacity",toolTipShadowSpread:"toolTipShadowSpread",toolTipShadowVerticalLength:"toolTipShadowVerticalLength",toolTipOpacity:"toolTipOpacity",toolTipTextShadowBlurRadius:"toolTipTextShadowBlurRadius",toolTipTextShadowColor:"toolTipTextShadowColor",toolTipTextShadowHorizontalLength:"toolTipTextShadowHorizontalLength",toolTipTextShadowOpacity:"toolTipTextShadowOpacity",toolTipTextShadowVerticalLength:"toolTipTextShadowVerticalLength"};n.gN=Object.keys(n.WC);n.hN=Object.keys(n.XC); 3818return n}); 3819define("kE","require pw bZ oj kj ep bW".split(" "),function(a){var f=a("pw"),l=a("bZ"),m=a("oj"),k=a("kj"),c=a("ep"),h=a("bW");
3819a=m.define("ThumbnailGrid",l,function(){l.call(this);this.Dd=null;this.set("itemMode","normal");this.Fq=!1;this.zN=new k(this,"buttonScrollDown",c.Ke);this.zN.bind(f.ma,this.FHa,this);this.AN=new k(this,"buttonScrollLeft",c.Ke);this.AN.bind(f.ma,this.scrollLeft,this);this.BN=new k(this,"buttonScrollRight",c.Ke);this.BN.bind(f.ma,this.GHa,this);this.CN=new k(this,"buttonScrollUp", 3820c.Ke);this.CN.bind(f.ma,this.HHa,this);this.bind(f.ba,this.WWa,this)});a.prototype.cj=function(){l.prototype.cj.call(this);this.sF()};a.prototype.Fx=function(){l.prototype.Fx.call(this);this.sF()};a.prototype.sF=function(){this.zN.set("visible",!this.Fq||this.BW());this.CN.set("visible",!this.Fq||this.FW());this.AN.set("visible",!this.Fq||this.DW());this.BN.set("visible",!this.Fq||this.EW())};a.prototype.set=function(g,b){if("itemMode"==g)switch(b){case "thumbnail-only":this.set("itemLabelFunction", 3821this.zw);this.set("itemThumbnailUrlFunction",this.TO);this.set("itemTooltipFunction",this.fE);this.set("itemSourceProperties",["label","media.label","media.thumbnailUrl","media.flipImageHorizontally"]);break;case "label-only":this.set("itemLabelFunction",this.fE);this.set("itemThumbnailUrlFunction",this.zw);this.set("itemTooltipFunction",this.zw);this.set("itemSourceProperties",["label","media.label"]);break;default:this.set("itemLabelFunction",this.fE),this.set("itemThumbnailUrlFunction",this.TO), 3822this.set("itemTooltipFunction",this.zw),this.set("itemSourceProperties",["label","media.label","media.thumbnailUrl","media.flipImageHorizontally"])}else"playList"==g?(this.Dd&&this.Dd.unbind("change",this.Tw,this),(this.Dd=b)?(this.set("items",this.Dd.get("items")),this.set("selectedIndex",this.Dd.get("selectedIndex")),this.Dd.bind("change",this.Tw,this,!0)):this.set("items",[])):"hideScrollButtons"==g?(this.Fq=b,this.sF()):l.prototype.set.call(this,g,b)};a.prototype.get=function(g,b){switch(g){case "playList":return this.Dd; 3823default:return l.prototype.get.call(this,g,b)}};a.prototype.Tw=function(){this.set("items",this.Dd.get("items"));this.set("selectedIndex",this.Dd.get("selectedIndex"))};a.prototype.WWa=function(){this.Dd&&this.Dd.set("selectedIndex",this.get("selectedIndex"))};a.prototype.zw=function(){};a.prototype.fE=function(g){return g.get("label")||g.get("media").get("label")};a.prototype.TO=function(g){g=g.get("media");var b=g.get("thumbnailUrl");g.get("flipImageHorizontally")&&(b=h.VAa(b));return b};return a}); 3824define("la","require lQ z pw nA cZ bh d iR mI hf oP nf dE es".split(" "),function(a){var f=a("lQ"),l=a("z"),m=a("pw"),k=a("nA"),c=a("cZ"),h=a("bh"),g=a("d"),b=a("iR"),d=a("mI"),e=a("hf"),n=a("oP"),q=a("nf"),p=a("dE"),r=a("es"),t=f.extend(n,function(){n.call(this);this.Pa=this.df=null;this.oD=[];this.set("ariaRole","option");this.set("autoRolledOver",!0);this.set("childrenInteractionEnabled",!1);this.set("contentOpaque",!0);this.set("creationPolicy",c.GC);this.set("cursor",h.Je)});t.prototype.yb=function(){n.prototype.yb.call(this); 3825this.h("listLayout");this.h("overflow","hidden");this.h("item");this.h("thumbnailUrlFunction",this.K9);this.h("sourceProperties");this.h("labelFunction",this.I9);this.h("labelFontFamily");this.h("labelFontColor");this.h("labelFontSize");this.h("labelFontStyle");this.h("labelFontWeight");this.h("labelGap");this.h("labelHorizontalAlign");this.h("labelPosition");this.h("labelTextDecoration");this.h("labelTextShadowColor");this.h("labelTextShadowHorizontalLength");this.h("labelTextShadowVerticalLength"); 3826this.h("labelTextShadowBlurRadius");this.h("labelTextShadowOpacity");this.h("thumbnailBorderRadius");this.h("thumbnailOpacity");this.h("thumbnailBorderSize");this.h("thumbnailBorderColor");this.h("thumbnailWidth");this.h("thumbnailHeight");this.h("thumbnailMaxWidth");this.h("thumbnailMaxHeight");this.h("thumbnailShadow");this.h("thumbnailShadowHorizontalLength");this.h("thumbnailShadowVerticalLength");this.h("thumbnailShadowBlurRadius");this.h("thumbnailShadowSpread");this.h("thumbnailShadowColor"); 3827this.h("thumbnailShadowOpacity");this.A("rollOverBackgroundOpacity",e.aa,"backgroundOpacity");
3827this.A("rollOverBackgroundColor",e.aa,"backgroundColor");this.A("rollOverBackgroundColorRatios",e.aa,"backgroundColorRatios");this.A("rollOverBackgroundColorDirection",e.aa,"backgroundColorDirection");this.A("rollOverBorderRadius",e.aa,"borderRadius");this.A("rollOverBorderTopRadius",e.aa,"borderTopRadius");this.A("rollOverBorderBottomRadius",e.aa,"borderBottomRadius");this.A("rollOverBorderLeftRadius",e.aa, 3828"borderLeftRadius");this.A("rollOverBorderRightRadius",e.aa,"borderRightRadius");this.A("rollOverBorderTopLeftRadius",e.aa,"borderTopLeftRadius");this.A("rollOverBorderTopRightRadius",e.aa,"borderTopRightRadius");this.A("rollOverBorderBottomLeftRadius",e.aa,"borderBottomLeftRadius");this.A("rollOverBorderBottomRightRadius",e.aa,"borderBottomRightRadius");this.A("rollOverBorderSize",e.aa,"borderSize");this.A("rollOverBorderLeftSize",e.aa,"borderLeftSize");this.A("rollOverBorderTopSize",e.aa,"borderTopSize"); 3829this.A("rollOverBorderRightSize",e.aa,"borderRightSize");this.A("rollOverBorderBottomSize",e.aa,"borderBottomSize");this.A("rollOverBorderColor",e.aa,"borderColor");this.A("rollOverBorderLeftColor",e.aa,"borderLeftColor");this.A("rollOverBorderTopColor",e.aa,"borderTopColor");this.A("rollOverBorderRightColor",e.aa,"borderRightColor");this.A("rollOverBorderBottomColor",e.aa,"borderBottomColor");this.A("rollOverLabelFontColor",e.aa,"labelFontColor");this.A("rollOverLabelFontSize",e.aa,"labelFontSize"); 3830this.A("rollOverLabelFontStyle",e.aa,"labelFontStyle");this.A("rollOverLabelFontWeight",e.aa,"labelFontWeight");this.A("rollOverLabelTextDecoration",e.aa,"labelTextDecoration");this.A("rollOverLabelTextShadowColor",e.aa,"labelTextShadowColor");this.A("rollOverLabelTextShadowHorizontalLength",e.aa,"labelTextShadowHorizontalLength");this.A("rollOverLabelTextShadowVerticalLength",e.aa,"labelTextShadowVerticalLength");this.A("rollOverLabelTextShadowBlurRadius",e.aa,"labelTextShadowBlurRadius");this.A("rollOverLabelTextShadowOpacity", 3831e.aa,"labelTextShadowOpacity");this.A("rollOverOpacity",e.aa,"opacity");this.A("rollOverPaddingLeft",e.aa,"paddingLeft");this.A("rollOverPaddingTop",e.aa,"paddingTop");this.A("rollOverPaddingRight",e.aa,"paddingRight");this.A("rollOverPaddingBottom",e.aa,"paddingBottom");this.A("rollOverShadow",e.aa,"shadow");this.A("rollOverThumbnailOpacity",e.aa,"thumbnailOpacity");this.A("rollOverThumbnailBorderSize",e.aa,"thumbnailBorderSize");this.A("rollOverThumbnailBorderColor",e.aa,"thumbnailBorderColor"); 3832this.A("rollOverThumbnailShadow",e.aa,"thumbnailShadow");this.A("rollOverThumbnailShadowHorizontalLength",e.aa,"thumbnailShadowHorizontalLength");this.A("rollOverThumbnailShadowVerticalLength",e.aa,"thumbnailShadowVerticalLength");this.A("rollOverThumbnailShadowBlurRadius",e.aa,"thumbnailShadowBlurRadius");this.A("rollOverThumbnailShadowSpread",e.aa,"thumbnailShadowSpread");this.A("rollOverThumbnailShadowColor",e.aa,"thumbnailShadowColor");this.A("rollOverThumbnailShadowOpacity",e.aa,"thumbnailShadowOpacity"); 3833this.A("selectedBackgroundOpacity",e.ja,"backgroundOpacity");this.A("selectedBackgroundColor",e.ja,"backgroundColor");this.A("selectedBackgroundColorRatios",e.ja,"backgroundColorRatios");this.A("selectedBackgroundColorDirection",e.ja,"backgroundColorDirection");this.A("selectedBorderRadius",e.ja,"borderRadius");this.A("selectedBorderTopRadius",e.ja,"borderTopRadius");this.A("selectedBorderBottomRadius",e.ja,"borderBottomRadius");this.A("selectedBorderLeftRadius",e.ja,"borderLeftRadius");this.A("selectedBorderRightRadius", 3834e.ja,"borderRightRadius");this.A("selectedBorderTopLeftRadius",e.ja,"borderTopLeftRadius");this.A("selectedBorderTopRightRadius",e.ja,"borderTopRightRadius");this.A("selectedBorderBottomLeftRadius",e.ja,"borderBottomLeftRadius");this.A("selectedBorderBottomRightRadius",e.ja,"borderBottomRightRadius");this.A("selectedBorderSize",e.ja,"borderSize");this.A("selectedBorderLeftSize",e.ja,"borderLeftSize");this.A("selectedBorderTopSize",e.ja,"borderTopSize");this.A("selectedBorderRightSize",e.ja,"borderRightSize"); 3835this.A("selectedBorderBottomSize",e.ja,"borderBottomSize");this.A("selectedBorderColor",e.ja,"borderColor");this.A("selectedBorderLeftColor",e.ja,"borderLeftColor");this.A("selectedBorderTopColor",e.ja,"borderTopColor");this.A("selectedBorderRightColor",e.ja,"borderRightColor");this.A("selectedBorderBottomColor",e.ja,"borderBottomColor");this.A("selectedLabelFontColor",e.ja,"labelFontColor");this.A("selectedLabelFontSize",e.ja,"labelFontSize");this.A("selectedLabelFontStyle",e.ja,"labelFontStyle"); 3836this.A("selectedLabelFontWeight",e.ja,"labelFontWeight");this.A("selectedLabelTextDecoration",e.ja,"labelTextDecoration");this.A("selectedLabelTextShadowColor",e.ja,"labelTextShadowColor");this.A("selectedLabelTextShadowHorizontalLength",e.ja,"labelTextShadowHorizontalLength");this.A("selectedLabelTextShadowVerticalLength",e.ja,"labelTextShadowVerticalLength");this.A("selectedLabelTextShadowBlurRadius",e.ja,"labelTextShadowBlurRadius");this.A("selectedLabelTextShadowOpacity",e.ja,"labelTextShadowOpacity"); 3837this.A("selectedOpacity",e.ja,"opacity");this.A("selectedPaddingLeft",e.ja,"paddingLeft");this.A("selectedPaddingTop",e.ja,"paddingTop");this.A("selectedPaddingRight",e.ja,"paddingRight");this.A("selectedPaddingBottom",e.ja,"paddingBottom");this.A("selectedShadow",e.ja,"shadow");this.A("selectedThumbnailOpacity",e.ja,"thumbnailOpacity");this.A("selectedThumbnailBorderSize",e.ja,"thumbnailBorderSize");this.A("selectedThumbnailBorderColor",e.ja,"thumbnailBorderColor");this.A("selectedThumbnailShadow", 3838e.ja,"thumbnailShadow");this.A("selectedThumbnailShadowHorizontalLength",e.ja,"thumbnailShadowHorizontalLength");this.A("selectedThumbnailShadowVerticalLength",e.ja,"thumbnailShadowVerticalLength");this.A("selectedThumbnailShadowBlurRadius",e.ja,"thumbnailShadowBlurRadius");this.A("selectedThumbnailShadowSpread",e.ja,"thumbnailShadowSpread");this.A("selectedThumbnailShadowColor",e.ja,"thumbnailShadowColor");this.A("selectedThumbnailShadowOpacity",e.ja,"thumbnailShadowOpacity")};t.prototype.IU=function(u){this.XQ(u)}; 3839t.prototype.Hb=function(){n.prototype.Hb.call(this);this.df||(this.df=new q,this.Ya(this.df),this.df.set("horizontalAlign",k.Ye),this.df.set("verticalAlign",k.qe),this.df.bind(m.da,this.ofa,this));this.Pa||(this.Pa=new p,this.Ya(this.Pa))};t.prototype.K9=function(u){if(r(u).isString())return u;if(u&&u.Ila)return u.Ila};t.prototype.I9=function(u){if(u&&u.label)return u.label};t.prototype.Iv=function(){return this.Pa&&this.Pa.get("text")||n.prototype.Iv.call(this)};t.prototype.bb=function(){if(this.L("sourceProperties")|| 3840this.L("item")){for(;this.oD.length;)this.oD.pop().eC();var u=this.B("sourceProperties"),v=this.B("item");u&&v&&u.forEach(function(x){this.oD.push(l.Ru(v,x,this.Mca,this,!0))}.bind(this))}if(this.L("sourceProperties")||this.L("item")||this.L("tooltipFunction"))v=this.B("item"),u=this.B("tooltipFunction")(v),this.set("toolTip",u);if(this.L("sourceProperties")||this.L("item")||this.L("thumbnailUrlFunction"))v=this.B("item"),(u=this.B("thumbnailUrlFunction")(v))?this.df.get("url")!=u&&this.df.ra({url:u, 3841visible:!0,opacity:.5}):this.df.ra({url:void 0,visible:!1}),this.S("thumbnailUrlFunction");if(this.L("sourceProperties")||this.L("item")||this.L("labelFunction"))v=this.B("item"),u=this.B("labelFunction")(v),this.Pa.ra({text:u,visible:u?!0:!1}),this.S("labelFunction");this.S("sourceProperties");this.S("item");if(this.L("listLayout"))switch(this.B("listLayout")){case g.Xh:this.ra({width:"100%",height:void 0});break;default:this.ra({height:"100%",width:void 0})}if(this.L("labelPosition")||this.L("listLayout")|| 3842this.L("thumbnailWidth")||this.L("thumbnailHeight")){var w=this;u=function(x,y){x=w.B(x);void 0===x&&(x=y);return x};switch(this.B("labelPosition")){case b.ab:case b.tb:this.set("layout",g.Gg);this.Pa.set("width","100%");switch(this.B("listLayout")){case g.Xh:this.df.ra({height:u("thumbnailHeight"),width:u("thumbnailWidth"),scaleMode:u("thumbnailScaleMode",d.vk)});break;default:this.df.ra({height:u("thumbnailHeight","100%"),width:u("thumbnailWidth"),scaleMode:u("thumbnailScaleMode",d.vk)})}break; 3843default:switch(this.set("layout",g.Xh),this.Pa.set("width",void 0),this.B("listLayout")){case g.Xh:this.df.ra({height:u("thumbnailHeight"),width:u("thumbnailWidth","100%"),scaleMode:u("thumbnailScaleMode",d.Vp)});break;default:this.df.ra({height:u("thumbnailHeight","100%"),width:u("thumbnailWidth"),scaleMode:u("thumbnailScaleMode",d.vk)})}}switch(this.B("labelPosition")){case b.ab:case b.Ec:this.ao(this.Pa,0);break;default:this.ao(this.Pa,1)}this.S("labelPosition")}this.S("listLayout");this.uc(t.G7, 3844t.OH,[this],!0,!0);this.uc(t.I7,t.OH,[this.df],!0,!0);this.uc(t.H7,t.OH,[this.Pa],!0,!0);n.prototype.bb.call(this)};t.prototype.Mca=function(){this.cF("item")};t.prototype.$E=function(u){n.prototype.$E.call(this,u)};t.prototype.ofa=function(){this.df.set("opacity",1)};t.G7=["labelGap"];t.I7="thumbnailBorderColor thumbnailBorderRadius thumbnailBorderSize thumbnailMaxWidth thumbnailMaxHeight thumbnailOpacity thumbnailShadow thumbnailShadowHorizontalLength thumbnailShadowVerticalLength thumbnailShadowBlurRadius thumbnailShadowSpread thumbnailShadowColor thumbnailShadowOpacity".split(" "); 3845t.H7="labelFontFamily labelFontColor labelFontSize labelFontStyle labelFontWeight labelHorizontalAlign labelTextDecoration labelTextShadowColor labelTextShadowHorizontalLength labelTextShadowVerticalLength labelTextShadowBlurRadius labelTextShadowOpacity".split(" ");t.OH={labelFontFamily:"fontFamily",labelFontColor:"fontColor",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelGap:"gap",labelHorizontalAlign:"horizontalAlign",labelTextDecoration:"textDecoration", 3846labelTextShadowColor:"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", 3847thumbnailShadowVerticalLength:"shadowVerticalLength",thumbnailShadowBlurRadius:"shadowBlurRadius",thumbnailShadowSpread:"shadowSpread",thumbnailShadowColor:"shadowColor",thumbnailShadowOpacity:"shadowOpacity"};return t}); 3848define("M","require lQ cI nA pw d ik iR oP la jt".split(" "),function(a){var f=a("lQ"),l=a("cI"),m=a("nA"),k=a("pw"),c=a("d"),h=a("ik"),g=a("iR"),b=a("oP"),d=a("la"),e=a("jt"),n=f.extend(b,function(){b.call(this);this.set("ariaRole","listbox");this.set("contentOpaque",!0);this.bind(k.F("selectedIndex"),this.JYa,this);this.bind(k.tc,this.k0a,this)});n.prototype.yb=function(){b.prototype.yb.call(this);this.h("layout",c.Gg);this.h("selectedIndex",-1);this.h("items",[]);this.h("overflow",h.fq);this.h("itemHorizontalAlign", 3849m.Ye);this.h("itemLabelFontFamily");this.h("itemLabelPosition",g.wc);this.h("itemLabelFunction");this.h("itemLabelGap");this.h("itemLabelHorizontalAlign",m.Ye);this.h("itemThumbnailBorderRadius");this.h("itemThumbnailScaleMode");this.h("itemThumbnailWidth");this.h("itemThumbnailHeight");this.h("itemThumbnailMaxWidth");this.h("itemThumbnailMaxHeight");this.h("itemThumbnailUrlFunction");this.h("itemTooltipFunction");this.h("itemSourceProperties");this.h("itemVerticalAlign",m.qe);
3849this.h("itemBackgroundOpacity"); 3850this.h("itemBackgroundColor");this.h("itemBackgroundColorRatios");this.h("itemBackgroundColorDirection");this.h("itemBorderRadius");this.h("itemBorderTopRadius");this.h("itemBorderBottomRadius");this.h("itemBorderLeftRadius");this.h("itemBorderRightRadius");this.h("itemBorderTopLeftRadius");this.h("itemBorderTopRightRadius");this.h("itemBorderBottomLeftRadius");this.h("itemBorderBottomRightRadius");this.h("itemBorderSize");this.h("itemBorderLeftSize");this.h("itemBorderTopSize");this.h("itemBorderRightSize"); 3851this.h("itemBorderBottomSize");this.h("itemBorderColor");this.h("itemBorderLeftColor");this.h("itemBorderTopColor");this.h("itemBorderRightColor");this.h("itemBorderBottomColor");this.h("itemLabelFontColor");this.h("itemLabelFontSize");this.h("itemLabelFontStyle");this.h("itemLabelFontWeight");this.h("itemLabelTextDecoration");this.h("itemLabelTextShadowColor");this.h("itemLabelTextShadowHorizontalLength");this.h("itemLabelTextShadowVerticalLength");this.h("itemLabelTextShadowBlurRadius");this.h("itemLabelTextShadowOpacity"); 3852this.h("itemOpacity");this.h("itemPaddingLeft");this.h("itemPaddingTop");this.h("itemPaddingRight");this.h("itemPaddingBottom");this.h("itemShadow");this.h("itemThumbnailOpacity");this.h("itemThumbnailBorderSize");this.h("itemThumbnailBorderColor");this.h("itemThumbnailShadow");this.h("itemThumbnailShadowHorizontalLength");this.h("itemThumbnailShadowVerticalLength");this.h("itemThumbnailShadowBlurRadius");this.h("itemThumbnailShadowSpread");this.h("itemThumbnailShadowColor");this.h("itemThumbnailShadowOpacity");
3853this.h("rollOverItemBackgroundOpacity");this.h("rollOverItemBackgroundColor");this.h("rollOverItemBackgroundColorRatios");this.h("rollOverItemBackgroundColorDirection");this.h("rollOverItemBorderRadius");this.h("rollOverItemBorderTopRadius");this.h("rollOverItemBorderBottomRadius");this.h("rollOverItemBorderLeftRadius");this.h("rollOverItemBorderRightRadius");this.h("rollOverItemBorderTopLeftRadius");this.h("rollOverItemBorderTopRightRadius");this.h("rollOverItemBorderBottomLeftRadius");this.h("rollOverItemBorderBottomRightRadius"); 3854this.h("rollOverItemBorderSize");this.h("rollOverItemBorderLeftSize");this.h("rollOverItemBorderTopSize");this.h("rollOverItemBorderRightSize");this.h("rollOverItemBorderBottomSize");this.h("rollOverItemBorderColor");this.h("rollOverItemBorderLeftColor");this.h("rollOverItemBorderTopColor");this.h("rollOverItemBorderRightColor");this.h("rollOverItemBorderBottomColor");this.h("rollOverItemLabelFontSize");this.h("rollOverItemLabelFontStyle");this.h("rollOverItemLabelFontWeight");this.h("rollOverItemLabelTextDecoration"); 3855this.h("rollOverItemLabelTextShadowColor");this.h("rollOverItemLabelTextShadowHorizontalLength");this.h("rollOverItemLabelTextShadowVerticalLength");this.h("rollOverItemLabelTextShadowBlurRadius");this.h("rollOverItemLabelTextShadowOpacity");this.h("rollOverItemOpacity");this.h("rollOverItemPaddingLeft");this.h("rollOverItemPaddingTop");this.h("rollOverItemPaddingRight");this.h("rollOverItemPaddingBottom");this.h("rollOverItemShadow");this.h("rollOverItemThumbnailOpacity");this.h("rollOverItemThumbnailBorderSize"); 3856this.h("rollOverItemThumbnailBorderColor");this.h("rollOverItemThumbnailShadow");this.h("rollOverItemThumbnailShadowHorizontalLength");this.h("rollOverItemThumbnailShadowVerticalLength");this.h("rollOverItemThumbnailShadowBlurRadius");this.h("rollOverItemThumbnailShadowSpread");this.h("rollOverItemThumbnailShadowColor");this.h("rollOverItemThumbnailShadowOpacity");
3856this.h("selectedItemBackgroundOpacity");this.h("selectedItemBackgroundColor");this.h("selectedItemBackgroundColorRatios");this.h("selectedItemBackgroundColorDirection"); 3857this.h("selectedItemBorderRadius");this.h("selectedItemBorderTopRadius");this.h("selectedItemBorderBottomRadius");this.h("selectedItemBorderLeftRadius");this.h("selectedItemBorderRightRadius");this.h("selectedItemBorderTopLeftRadius");this.h("selectedItemBorderTopRightRadius");this.h("selectedItemBorderBottomLeftRadius");this.h("selectedItemBorderBottomRightRadius");this.h("selectedItemBorderSize");this.h("selectedItemBorderLeftSize");this.h("selectedItemBorderTopSize");this.h("selectedItemBorderRightSize"); 3858this.h("selectedItemBorderBottomSize");this.h("selectedItemBorderColor");this.h("selectedItemBorderLeftColor");this.h("selectedItemBorderTopColor");this.h("selectedItemBorderRightColor");this.h("selectedItemBorderBottomColor");this.h("selectedItemLabelFontSize");this.h("selectedItemLabelFontStyle");this.h("selectedItemLabelFontWeight");this.h("selectedItemLabelTextDecoration");this.h("selectedItemLabelTextShadowColor");this.h("selectedItemLabelTextShadowHorizontalLength");this.h("selectedItemLabelTextShadowVerticalLength"); 3859this.h("selectedItemLabelTextShadowBlurRadius");this.h("selectedItemLabelTextShadowOpacity");this.h("selectedItemOpacity");this.h("selectedItemPaddingLeft");this.h("selectedItemPaddingTop");this.h("selectedItemPaddingRight");this.h("selectedItemPaddingBottom");this.h("selectedItemShadow");this.h("selectedItemThumbnailOpacity");this.h("selectedItemThumbnailBorderSize");this.h("selectedItemThumbnailBorderColor");this.h("selectedItemThumbnailShadow");this.h("selectedItemThumbnailShadowHorizontalLength"); 3860this.h("selectedItemThumbnailShadowVerticalLength");this.h("selectedItemThumbnailShadowBlurRadius");this.h("selectedItemThumbnailShadowSpread");this.h("selectedItemThumbnailShadowColor");this.h("selectedItemThumbnailShadowOpacity")};n.prototype.RO=function(q){this.ip=!0;this.set("selectedIndex",this.baa(q.source))};n.prototype.JYa=function(){this.Mxa()};n.prototype.k0a=function(){setTimeout(function(){this.Mxa()}.bind(this),100)};n.prototype.Mxa=function(){var q=this.get("selectedIndex"),p=this.ob(); 38610<=q&&q<p.length&&this.scrollIntoView(p[q])};n.prototype.baa=function(q){for(var p=this.ob(),r=0;r<p.length;r++)if(p[r]==q)return r;return-1};n.prototype.bb=function(){var q=!1;if(this.L("layout")){q=!0;var p=this.B("layout");p!=c.Xh&&p!=c.Gg&&this.set("layout",c.Gg)}p=!1;if(this.L("items")){p=!0;var r=this.B("items")||[],t=this.ob();if(t.length<r.length){for(var u=t.length;u<r.length;u++)t=new d,t.bind(k.ma,this.RO,this),this.uc(n.gN,n.WC,[t],!1,!1),this.uc(n.hN,n.XC,[t],!1,!1),this.Ya(t);t=this.ob()}if(t.length> 3862r.length){for(u=r.length;u<t.length;u++){var v=t[u];v.unbind(k.ma,this.RO,this);this.removeChild(v)}t=this.ob()}for(u=0;u<r.length;u++)t[u].set("item",r[u]);this.S("items")}if(this.L("selectedIndex")||p){r=this.ob();t=Math.min(r.length-1,Math.max(-1,this.B("selectedIndex")));this.set("selectedIndex",t);for(u=0;u<r.length;u++)r[u].IU(u==t);this.S("selectedIndex");this.ip&&(this.ip=!1,this.trigger(new l(k.ba)))}if(q||p)this.B("layout")==c.Gg?e.S2a(this,this.ob().map(function(w){return w.je()})):e.aBa(this, 3863this.ob().map(function(w){return w.je()}));this.uc(n.gN,n.WC,this.ob(),!0,!1);this.uc(n.hN,n.XC,this.ob(),!0,!0);b.prototype.bb.call(this)};n.WC={layout:"listLayout",shadowHorizontalLength:"shadowHorizontalLength",shadowVerticalLength:"shadowVerticalLength",shadowBlurRadius:"shadowBlurRadius",shadowSpread:"shadowSpread",shadowOpacity:"shadowOpacity",shadowColor:"shadowColor"};n.XC={itemHorizontalAlign:"horizontalAlign",itemLabelFunction:"labelFunction",itemLabelFontFamily:"labelFontFamily",itemLabelGap:"labelGap", 3864itemLabelHorizontalAlign:"labelHorizontalAlign",itemLabelPosition:"labelPosition",itemSourceProperties:"sourceProperties",itemThumbnailBorderRadius:"thumbnailBorderRadius",itemThumbnailScaleMode:"thumbnailScaleMode",itemThumbnailHeight:"thumbnailHeight",itemThumbnailWidth:"thumbnailWidth",itemThumbnailMaxHeight:"thumbnailMaxHeight",itemThumbnailMaxWidth:"thumbnailMaxWidth",itemThumbnailUrlFunction:"thumbnailUrlFunction",itemTooltipFunction:"tooltipFunction",itemVerticalAlign:"verticalAlign",itemBackgroun
3864dOpacity:"backgroundOpacity", 3865itemBackgroundColor:"backgroundColor",itemBackgroundColorRatios:"backgroundColorRatios",itemBackgroundColorDirection:"backgroundColorDirection",itemBorderRadius:"borderRadius",itemBorderTopRadius:"borderTopRadius",itemBorderBottomRadius:"borderBottomRadius",itemBorderLeftRadius:"borderLeftRadius",itemBorderRightRadius:"borderRightRadius",itemBorderTopLeftRadius:"borderTopLeftRadius",itemBorderTopRightRadius:"borderTopRightRadius",itemBorderBottomLeftRadius:"borderBottomLeftRadius",itemBorderBottomRightRadius:"borderBottomRightRadius", 3866itemBorderSize:"borderSize",itemBorderLeftSize:"borderLeftSize",itemBorderTopSize:"borderTopSize",itemBorderRightSize:"borderRightSize",itemBorderBottomSize:"borderBottomSize",itemBorderColor:"borderColor",itemBorderLeftColor:"borderLeftColor",itemBorderTopColor:"borderTopColor",itemBorderRightColor:"borderRightColor",itemBorderBottomColor:"borderBottomColor",itemLabelFontColor:"labelFontColor",itemLabelFontSize:"labelFontSize",itemLabelFontStyle:"labelFontStyle",itemLabelFontWeight:"labelFontWeight", 3867itemLabelTextDecoration:"labelTextDecoration",itemLabelTextShadowColor:"labelTextShadowColor",itemLabelTextShadowHorizontalLength:"labelTextShadowHorizontalLength",itemLabelTextShadowVerticalLength:"labelTextShadowVerticalLength",itemLabelTextShadowBlurRadius:"labelTextShadowBlurRadius",itemLabelTextShadowOpacity:"labelTextShadowOpacity",itemOpacity:"opacity",itemPaddingLeft:"paddingLeft",itemPaddingTop:"paddingTop",itemPaddingRight:"paddingRight",itemPaddingBottom:"paddingBottom",itemShadow:"shadow", 3868itemThumbnailOpacity:"thumbnailOpacity",itemThumbnailBorderSize:"thumbnailBorderSize",itemThumbnailBorderColor:"thumbnailBorderColor",itemThumbnailShadow:"thumbnailShadow",itemThumbnailShadowHorizontalLength:"thumbnailShadowHorizontalLength",itemThumbnailShadowVerticalLength:"thumbnailShadowVerticalLength",itemThumbnailShadowBlurRadius:"thumbnailShadowBlurRadius",itemThumbnailShadowSpread:"thumbnailShadowSpread",itemThumbnailShadowColor:"thumbnailShadowColor",itemThumbnailShadowOpacity:"thumbnailShadowOpacity",
3869rollOverItemBackgroundOpacity:"rollOverBackgroundOpacity",rollOverItemBackgroundColor:"rollOverBackgroundColor",rollOverItemBackgroundColorRatios:"rollOverBackgroundColorRatios",rollOverItemBackgroundColorDirection:"rollOverBackgroundColorDirection",rollOverItemBorderRadius:"rollOverBorderRadius",rollOverItemBorderTopRadius:"rollOverBorderTopRadius",rollOverItemBorderBottomRadius:"rollOverBorderBottomRadius",rollOverItemBorderLeftRadius:"rollOverBorderLeftRadius",rollOverItemBorderRightRadius:"rollOverBorderRightRadius", 3870rollOverItemBorderTopLeftRadius:"rollOverBorderTopLeftRadius",rollOverItemBorderTopRightRadius:"rollOverBorderTopRightRadius",rollOverItemBorderBottomLeftRadius:"rollOverBorderBottomLeftRadius",rollOverItemBorderBottomRightRadius:"rollOverBorderBottomRightRadius",rollOverItemBorderSize:"rollOverBorderSize",rollOverItemBorderLeftSize:"rollOverBorderLeftSize",rollOverItemBorderTopSize:"rollOverBorderTopSize",rollOverItemBorderRightSize:"rollOverBorderRightSize",rollOverItemBorderBottomSize:"rollOverBorderBottomSize", 3871rollOverItemBorderColor:"rollOverBorderColor",rollOverItemBorderLeftColor:"rollOverBorderLeftColor",rollOverItemBorderTopColor:"rollOverBorderTopColor",rollOverItemBorderRightColor:"rollOverBorderRightColor",rollOverItemBorderBottomColor:"rollOverBorderBottomColor",rollOverItemLabelFontColor:"rollOverLabelFontColor",rollOverItemLabelFontSize:"rollOverLabelFontSize",rollOverItemLabelFontStyle:"rollOverLabelFontStyle",rollOverItemLabelFontWeight:"rollOverLabelFontWeight",rollOverItemLabelTextDecoration:"rollOverLabelTextDecoration", 3872rollOverItemLabelTextShadowColor:"rollOverLabelTextShadowColor",rollOverItemLabelTextShadowHorizontalLength:"rollOverLabelTextShadowHorizontalLength",rollOverItemLabelTextShadowVerticalLength:"rollOverLabelTextShadowVerticalLength",rollOverItemLabelTextShadowBlurRadius:"rollOverLabelTextShadowBlurRadius",rollOverItemLabelTextShadowOpacity:"rollOverLabelTextShadowOpacity",rollOverItemOpacity:"rollOverOpacity",rollOverItemPaddingLeft:"rollOverPaddingLeft",rollOverItemPaddingTop:"rollOverPaddingTop", 3873rollOverItemPaddingRight:"rollOverPaddingRight",rollOverItemPaddingBottom:"rollOverPaddingBottom",rollOverItemShadow:"rollOverShadow",rollOverItemThumbnailOpacity:"rollOverThumbnailOpacity",rollOverItemThumbnailBorderSize:"rollOverThumbnailBorderSize",rollOverItemThumbnailBorderColor:"rollOverThumbnailBorderColor",rollOverItemThumbnailShadow:"rollOverThumbnailShadow",rollOverItemThumbnailShadowHorizontalLength:"rollOverThumbnailShadowHorizontalLength",rollOverItemThumbnailShadowVerticalLength:"rollOverThumbnailShadowVerticalLength", 3874rollOverItemThumbnailShadowBlurRadius:"rollOverThumbnailShadowBlurRadius",rollOverItemThumbnailShadowSpread:"rollOverThumbnailShadowSpread",rollOverItemThumbnailShadowColor:"rollOverThumbnailShadowColor",rollOverItemThumbnailShadowOpacity:"rollOverThumbnailShadowOpacity",selectedItemBackgroun
3874dOpacity:"selectedBackgroundOpacity",selectedItemBackgroundColor:"selectedBackgroundColor",selectedItemBackgroundColorRatios:"selectedBackgroundColorRatios",selectedItemBackgroundColorDirection:"selectedBackgroundColorDirection", 3875selectedItemBorderRadius:"selectedBorderRadius",selectedItemBorderTopRadius:"selectedBorderTopRadius",selectedItemBorderBottomRadius:"selectedBorderBottomRadius",selectedItemBorderLeftRadius:"selectedBorderLeftRadius",selectedItemBorderRightRadius:"selectedBorderRightRadius",selectedItemBorderTopLeftRadius:"selectedBorderTopLeftRadius",selectedItemBorderTopRightRadius:"selectedBorderTopRightRadius",selectedItemBorderBottomLeftRadius:"selectedBorderBottomLeftRadius",selectedItemBorderBottomRightRadius:"selectedBorderBottomRightRadius", 3876selectedItemBorderSize:"selectedBorderSize",selectedItemBorderLeftSize:"selectedBorderLeftSize",selectedItemBorderTopSize:"selectedBorderTopSize",selectedItemBorderRightSize:"selectedBorderRightSize",selectedItemBorderBottomSize:"selectedBorderBottomSize",selectedItemBorderColor:"selectedBorderColor",selectedItemBorderLeftColor:"selectedBorderLeftColor",selectedItemBorderTopColor:"selectedBorderTopColor",selectedItemBorderRightColor:"selectedBorderRightColor",selectedItemBorderBottomColor:"selectedBorderBottomColor", 3877selectedItemLabelFontColor:"selectedLabelFontColor",selectedItemLabelFontSize:"selectedLabelFontSize",selectedItemLabelFontStyle:"selectedLabelFontStyle",selectedItemLabelFontWeight:"selectedLabelFontWeight",selectedItemLabelTextDecoration:"selectedLabelTextDecoration",selectedItemLabelTextShadowColor:"selectedLabelTextShadowColor",selectedItemLabelTextShadowHorizontalLength:"selectedLabelTextShadowHorizontalLength",selectedItemLabelTextShadowVerticalLength:"selectedLabelTextShadowVerticalLength", 3878selectedItemLabelTextShadowBlurRadius:"selectedLabelTextShadowBlurRadius",selectedItemLabelTextShadowOpacity:"selectedLabelTextShadowOpacity",selectedItemOpacity:"selectedOpacity",selectedItemPaddingLeft:"selectedPaddingLeft",selectedItemPaddingTop:"selectedPaddingTop",selectedItemPaddingRight:"selectedPaddingRight",selectedItemPaddingBottom:"selectedPaddingBottom",selectedItemShadow:"selectedShadow",selectedItemThumbnailOpacity:"selectedThumbnailOpacity",selectedItemThumbnailBorderSize:"selectedThumbnailBorderSize", 3879selectedItemThumbnailBorderColor:"selectedThumbnailBorderColor",selectedItemThumbnailShadow:"selectedThumbnailShadow",selectedItemThumbnailShadowHorizontalLength:"selectedThumbnailShadowHorizontalLength",selectedItemThumbnailShadowVerticalLength:"selectedThumbnailShadowVerticalLength",selectedItemThumbnailShadowBlurRadius:"selectedThumbnailShadowBlurRadius",selectedItemThumbnailShadowSpread:"selectedThumbnailShadowSpread",selectedItemThumbnailShadowColor:"selectedThumbnailShadowColor",selectedItemThumbnailShadowOpacity:"selectedThumbnailShadowOpacity", 3880tabIndex:"tabIndex",toolTipBackgroundColor:"toolTipBackgroundColor",toolTipBackgroundOpacity:"toolTipBackgroundOpacity",toolTipBorderRadius:"toolTipBorderRadius",toolTipBorderColor:"toolTipBorderColor",toolTipBorderSize:"toolTipBorderSize",toolTipDisplayTime:"toolTipDisplayTime",toolTipFontFamily:"toolTipFontFamily",toolTipFontSize:"toolTipFontSize",toolTipFontColor:"toolTipFontColor",toolTipFontWeight:"toolTipFontWeight",toolTipFontStyle:"toolTipFontStyle",toolTipPaddingBottom:"toolTipPaddingBottom", 3881toolTipPaddingLeft:"toolTipPaddingLeft",toolTipPaddingTop:"toolTipPaddingTop",toolTipPaddingRight:"toolTipPaddingRight",toolTipShadowBlurRadius:"toolTipShadowBlurRadius",toolTipShadowColor:"toolTipShadowColor",toolTipShadowHorizontalLength:"toolTipShadowHorizontalLength",toolTipShadowOpacity:"toolTipShadowOpacity",toolTipShadowSpread:"toolTipShadowSpread",toolTipShadowVerticalLength:"toolTipShadowVerticalLength",toolTipOpacity:"toolTipOpacity",toolTipTextShadowBlurRadius:"toolTipTextShadowBlurRadius", 3882toolTipTextShadowColor:"toolTipTextShadowColor",toolTipTextShadowHorizontalLength:"toolTipTextShadowHorizontalLength",toolTipTextShadowOpacity:"toolTipTextShadowOpacity",toolTipTextShadowVerticalLength:"toolTipTextShadowVerticalLength"};n.gN=Object.keys(n.WC);n.hN=Object.keys(n.XC);return n}); 3883define("hQ","require pw M oj kj ep bW".split(" "),function(a){var f=a("pw"),l=a("M"),m=a("oj"),k=a("kj"),c=a("ep"),h=a("bW");
3883a=m.define("ThumbnailList",l,function(){l.call(this);this.Dd=null;this.Fq=!1;this.zN=new k(this,"buttonScrollDown",c.Ke);this.zN.bind(f.ma,this.FHa,this);this.AN=new k(this,"buttonScrollLeft",c.Ke);this.AN.bind(f.ma,this.scrollLeft,this);this.BN=new k(this,"buttonScrollRight",c.Ke);this.BN.bind(f.ma,this.GHa,this);this.CN=new k(this,"buttonScrollUp",c.Ke);this.CN.bind(f.ma, 3884this.HHa,this);this.bind(f.ba,this.XWa,this)});a.prototype.cj=function(){l.prototype.cj.call(this);this.sF()};a.prototype.Fx=function(){l.prototype.Fx.call(this);this.sF()};a.prototype.sF=function(){this.zN.set("visible",!this.Fq||this.BW());this.CN.set("visible",!this.Fq||this.FW());this.AN.set("visible",!this.Fq||this.DW());this.BN.set("visible",!this.Fq||this.EW())};a.prototype.set=function(g,b){if("itemMode"==g)switch(b){case "thumbnail-only":this.set("itemLabelFunction",this.zw);this.set("itemThumbnailUrlFunction", 3885this.TO);this.set("itemTooltipFunction",this.fE);this.set("itemSourceProperties",["label","media.label","media.thumbnailUrl","media.flipImageHorizontally"]);break;case "label-only":this.set("itemLabelFunction",this.fE);this.set("itemThumbnailUrlFunction",this.zw);this.set("itemTooltipFunction",this.zw);this.set("itemSourceProperties",["label","media.label"]);break;default:this.set("itemLabelFunction",this.fE),this.set("itemThumbnailUrlFunction",this.TO),this.set("itemTooltipFunction",this.zw),this.set("itemSourceProperties", 3886["label","media.label","media.thumbnailUrl","media.flipImageHorizontally"])}else"playList"==g?(this.Dd&&this.Dd.unbind("change",this.Tw,this),(this.Dd=b)?(this.set("items",this.Dd.get("items")),this.Dd.bind("change",this.Tw,this)):this.set("items",[])):"hideScrollButtons"==g?(this.Fq=b,this.sF()):l.prototype.set.call(this,g,b)};a.prototype.get=function(g,b){switch(g){case "playList":return this.Dd;default:return l.prototype.get.call(this,g,b)}};a.prototype.Tw=function(){this.set("items",this.Dd.get("items")); 3887this.set("selectedIndex",this.Dd.get("selectedIndex"))};a.prototype.XWa=function(){this.Dd&&this.Dd.set("selectedIndex",this.get("selectedIndex"))};a.prototype.zw=function(){};a.prototype.fE=function(g){return g.get("label")||g.get("media").get("label")};a.prototype.TO=function(g){g=g.get("media");var b=g.get("thumbnailUrl");g.get("flipImageHorizontally")&&(b=h.VAa(b));return b};return a});define("ce",["require","e","oj"],function(a){var f=a("e");return a("oj").define("UIComponent",f,function(){f.call(this)})}); 3888define("iU",["require","oj","ez"],function(a){var f=a("oj"),l=a("ez");a=f.define("Video",l,function(){l.call(this);this.Aa=void 0});a.prototype.su=function(){this.get("video");return[]};return a});define("hv",["require","oj","fn"],function(a){var f=a("oj"),l=a("fn");return f.define("VideoPanorama",l,function(){l.call(this)})}); 3889define("kc",["require","mu","oj"],function(a){var f=a("mu");a=a("oj").define("Video360Resource",f,function(){f.call(this)});a.prototype.get=function(l,m){if(void 0===m)switch(l){case "gain":m=1}switch(l){case "levels":m=[this];break;case "subtitlesURL":case "gain":for(var k=f.prototype.get.call(this,l),c=this.get("levels"),h=0;c&&h<c.length&&void 0===k;h++){var g=c[h];g!=this&&(k=g.get(l))}return void 0!==k?k:m}return f.prototype.get.call(this,l,m)};return a}); 3890define("dL",["require","oj","mG","hv","kc"],function(a){var f=a("oj"),l=a("mG"),m=a("hv"),k=a("kc");a=f.define("Video360",m,function(){m.call(this);this.No=this.CK=this.zb=void 0});a.prototype.set=function(c,h){"video"==c?this.tOa(h):"videoStereo"==c?this.uOa(h):m.prototype.set.call(this,c,h)};a.prototype.get=function(c,h){return"video"==c?void 0!==this.zb?this.zb:h:"videoStereo"==c?void 0!==this.CK?this.CK:h:m.prototype.get.call(this,c,h)};a.prototype.tOa=function(c){this.zb!=c&&(this.zb=c,c=m.prototype.get.call(this, 3891"frames")||[],this.zb&&(0==c.length&&c.push(new l),c[0].set("sphere",this.fua(this.zb))),m.prototype.set.call(this,"frames",c.slice()))};a.prototype.uOa=function(c){this.CK!=c&&(this.CK=c,c=m.prototype.get.call(this,"frames")||[],this.CK&&(0==c.length&&c.push(new l),c[0].set("stereoSphere",this.fua(this.CK))),m.prototype.set.call(this,"frames",c.slice()))};
3891a.prototype.fua=function(c){if(Array.isArray(c)){if(0==c.length)return;if(1==c.length&&f.Ja("Video360Resource",c[0]))return c[0];var h=[];c.forEach(function(g){h= 3892h.concat(g.get("levels")||[g])});c=new k;c.set("levels",h)}return c};return a});define("bV",["require","oj","pb"],function(a){var f=a("oj"),l=a("pb");return f.define("Video360Player",l,function(){l.call(this)})}); 3893define("kA",["require","oj","dn","iK"],function(a){var f=a("oj"),l=a("dn"),m=a("iK");a=f.define("Video360PlayListItem",m,function(){m.call(this)});a.prototype.start=function(){m.prototype.start.call(this);var k=this.get("player");k&&(k.bind(l.sh,this.Fn,this),k.set("video",this.get("media")),k.set("camera",this.get("camera")),k.set("startTime",this.get("startTime")))};a.prototype.stop=function(){var k=this.get("player");k&&(k.unbind(l.sh,this.Fn,this),k.get("video")==this.get("media")&&k.set("video", 3894null));m.prototype.stop.call(this)};a.prototype.Fn=function(k){k.data.media==this.get("media")&&(this.get("player").unbind(l.sh,this.Fn,this),this.get("player").bind(l.Um,this.$q,this),this.iB())};a.prototype.$q=function(k){k.data.media==this.get("media")&&(this.get("player").unbind(l.Um,this.$q,this),this.stop(),this.end())};return a});define("pk",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("Video360ResourceLevel",f,function(){f.call(this)})}); 3895define("gg",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("VideoCue",f,function(){f.call(this)})}); 3896define("co","require mu pw lt cI oj kP".split(" "),function(a){var f=a("mu"),l=a("pw"),m=a("lt"),k=a("cI"),c=a("oj"),h=a("kP");a=c.define("VideoPanoramaOverlay",f,function(){f.call(this);this.sd=void 0});a.prototype.play=a.prototype.play=function(){this.set("state",m.PLAYING)};a.prototype.pause=a.prototype.pause=function(){this.set("state",m.Qb)};a.prototype.stop=a.prototype.stop=function(){this.set("state",m.V)};a.prototype.set=function(g,b){var d=!1;switch(g){case "state":var e=this.get("state")|| 3897m.V;e==m.V&&b==m.PLAYING&&this.trigger(l.ko);e!=b&&this.trigger(new k(l.ye,{oldState:e,state:b}));break;case "enabledInCardboard":this.set("enabledInVR",b);break;case "distance":case "hfov":case "opacity":case "pitch":case "rotationX":case "rotationY":case "roll":case "vfov":case "yaw":case "playbackPositions":this.sd=void 0,d=!0}f.prototype.set.call(this,g,b);d&&"playbackPositions"!=g&&this.trigger(l.F("playbackPositions"))};a.prototype.get=function(g,b){switch(g){case "playbackPositions":return void 0=== 3898this.sd&&(this.sd=h.yia(this)),this.sd}return f.prototype.get.call(this,g,b)};return a});define("ir",["require","oj","pR"],function(a){var f=a("oj"),l=a("pR");return f.define("VideoPlaneModel3DObject",l,function(){l.call(this)})}); 3899define("dz","require es lQ pw cI gD lt".split(" "),function(a){function f(b,d,e){this.time=b;this.cue=d;this.action=e}var l=a("es"),m=a("lQ"),k=a("pw"),c=a("cI"),h=a("gD"),g=a("lt");a=m.extend(h,function(b){h.call(this);this.j=b;this.Rc=null;this.Sk=!1;this.kj=[];this.hn=void 0;this.Le=[]});a.prototype.clear=function(){this.j=null;this.rD();this.kj=[];this.Le=[]};a.prototype.start=function(b){this.end();this.uea(b);this.n9();this.Zea();this.xF()};a.prototype.uea=function(b){this.rD();this.Rc=b;this.Rc.bind(k.F("currentTime"), 3900this.xF,this,!0);this.Rc.bind(k.F("state"),this.Zea,this,!0);this.Rc.bind(k.Gb,this.ZR,this,!0)};a.prototype.rD=function(){this.Rc&&(this.Rc.unbind(k.F("currentTime"),this.xF,this),this.Rc.unbind(k.F("state"),this.Zea,this),this.Rc.unbind(k.Gb,this.ZR,this),this.Rc=null)};a.prototype.end=function(){this.DN();this.rD();this.Sk=!1};a.prototype.Zea=function(b){b=b!=g.V;this.Sk!=b&&((this.Sk=b)?this.z0():this.DN())};a.prototype.ZR=function(){this.xF()};a.prototype.z0=function(){this.hn=this.pI=0};a.prototype.xF= 3901function(){if(this.Rc&&this.Sk){var b=this.Le.slice(),d=this.Rc.get("currentTime",0),e=d-this.pI;0>e&&(this.Le=[],this.hn=0);e=0<=e&&2>e;this.pI=d;var n;for(n=this.hn;n<this.kj.length&&!(this.kj[n].time>d);n++);for(;this.hn<n;this.hn++)d=this.kj[this.hn],"start"==d.action?(this.Le=l(this.Le).union([d.cue]),e&&d.cue.trigger(new c(k.Lp))):(this.Le=l(this.Le).difference([d.cue]),e&&d.cue.trigger(new c(k.Gb)));b.length==this.Le.length&&l(b).intersection(this.Le).length==this.Le.length||this.HR()}};a.prototype.DN= 3902function(){0<this.Le.length&&(this.Le=[],this.HR())};a.prototype.HR=function(){this.Rc.trigger(new c(k.sk,{activeCues:this.Le.slice()}))};a.prototype.n9=function(){this.kj=[];var b=this.Rc.get("cues",[]);l(b).each(function(d){this.kj.push(new f(d.get("startTime",0),d,"start"));this.kj.push(new f(d.get("endTime",Number.POSITIVE_INFINITY),d,"end"))},this);this.kj.sort(function(d,e){return d.time==e.time?d.action==e.start?0:"start"==d.action?-1:1:d.time-e.time})};return a}); 3903define("om","require lQ bn cI gD pw mI".split(" "),function(a){var f=a("lQ"),l=a("bn"),m=a("cI"),k=a("gD");a("pw");a("mI");var c=f.extend(k,function(h,g){k.call(this);this.M=h;this.j=g;this.GE=[];this.ua=c.Yh;this.Di=null;this.O9=void 0;this.mj=null;this.sm=this.hh=void 0});
3903c.prototype.display=function(h,g){this.T8();if(this.mj!=h||this.ua!=c.Yh)this.GE.push({video:h,startTime:g}),this.Cva()};c.prototype.hide=function(){this.T8();this.GE.push({video:null,startTime:void 0});this.Cva()};c.prototype.clear= 3904function(){this.ua=c.Yh;this.T8();this.ZXa();this.jxa();this.j=null};c.prototype.Ug=function(h){this.ua==c.Yh||this.ua!=c.Fl&&this.ua!=c.Rs&&this.ua!=c.Cv||(this.sm+=h,h=Math.min(1,this.sm/this.hh),this.ua==c.Fl?(this.Di.set("opacity",h),this.M.Od().iM(h)):this.ua==c.Cv?(this.Di.set("opacity",Math.min(1,2*h)),this.mj.set("opacity",Math.min(1,2*(1-h)))):this.M.Od().LG(h),this.sm<this.hh?this.Sa():this.Uz())};c.prototype.Cva=function(){0<this.GE.length&&this.ua==c.Yh&&this.oq()};c.prototype.oq=function(){this.mj&& 3905this.trigger(new m(c.BC,{video:this.mj}));if("fade_out_fade_in"==this.M.get("transitionMode","blending")&&this.mj)this.wz();else{var h=this.GE.shift();this.Di=h.video;this.O9=h.startTime;this.Di?this.Di.get("chromaColor")&&this.mj?this.w8():this.tN():this.mj&&this.wz()}};c.prototype.tN=function(){this.Joa();this.sm=0;this.hh=this.M.get("transitionDuration");this.ua=c.Fl;this.M.Od().vM();this.j.qb(!0);this.Sa()};c.prototype.w8=function(){this.Joa();this.sm=0;this.hh=2*this.M.get("transitionDuration"); 3906this.ua=c.Cv;this.Sa()};c.prototype.wz=function(){this.Di=null;this.sm=0;this.hh=this.M.get("transitionDuration");this.ua=c.Rs;this.M.Od().WG();this.mj.set("opacity",0);this.j.qb(!1);this.Sa()};c.prototype.Uz=function(){this.jxa();this.mj=this.Di;this.Di=null;this.ua==c.Rs?this.M.Od().RF():this.ua==c.Fl&&this.M.Od().$K();this.ua=c.Yh;this.mj?this.trigger(new m(c.CC,{video:this.mj})):0==this.GE.length&&this.trigger(new m(c.sma));0!=this.GE.length&&this.oq()};c.prototype.Sa=function(){l.requestFrame(this.Ug, 3907this)};c.prototype.T8=function(){this.GE=[]};c.prototype.Joa=function(){this.Di&&(this.Di.set("opacity",0),this.Di.set("zIndex",1),this.mj&&this.mj.set("zIndex",0),this.Di.set("currentTime",this.O9||0),this.j.c3a(this.Di),this.trigger(new m(c.K6,{video:this.Di,startTime:this.O9})))};c.prototype.jxa=function(){this.mj&&(this.j.qHa(this.mj),this.trigger(new m(c.xV,{video:this.mj})),this.mj=null)};c.prototype.ZXa=function(){this.Di&&(this.j.qHa(this.Di),this.trigger(new m(c.xV,{video:this.Di})),this.Di= 3908null)};c.Yh="stopped";c.Fl="blending";c.Cv="double blending";c.Rs="disolving";c.Ob="request frame";c.K6="video added";c.xV="video removed";c.CC="video show";c.BC="video hide";c.sma="all pending videos hidden";return c}); 3909define("jN","require lQ pw cI gD lt".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("cI"),k=a("gD"),c=a("lt"),h=f.extend(k,function(){k.call(this);this.Rc=null;this.af=!1;this.B9=c.V});h.prototype.start=function(g){this.end();this.uea(g)};h.prototype.end=function(){this.stop();this.rD()};h.prototype.clear=function(){this.rD()};h.prototype.play=function(){this.Rc&&this.Rc.set("state",c.PLAYING)};h.prototype.pause=function(){this.Rc&&this.Rc.set("state",c.Qb)};h.prototype.Jla=function(){this.Rc&& 3910(this.Rc.get("state")==c.PLAYING?this.pause():this.play())};h.prototype.stop=function(){this.Rc&&this.Rc.set("state",c.V)};h.prototype.Sf=function(g){this.af=g;this.Rc&&this.Rc.set("mute",this.af)};h.prototype.setTime=function(g){this.Rc&&this.Rc.set("currentTime",g)};h.prototype.getTime=function(){if(this.Rc)return this.Rc.get("currentTime")};h.prototype.uea=function(g){this.rD();this.Rc=g;this.Rc.set("mute",this.af);this.Rc.bind(l.F("state"),this.iK,this,!0);this.Rc.bind(l.F("currentTime"),this.yF, 3911this,!0);this.Rc.bind(l.Gb,this.ZR,this,!0)};h.prototype.rD=function(){this.Rc&&(this.Rc.unbind(l.F("state"),this.iK,this),this.Rc.unbind(l.F("currentTime"),this.yF,this),this.Rc.unbind(l.Gb,this.ZR,this),this.Rc=null)};h.prototype.yF=function(){this.trigger(new m(h.DC,{video:this.Rc,time:this.Rc.get("currentTime"),duration:this.Rc.get("duration")}))};h.prototype.ZR=function(){this.trigger(new m(h.QM,{video:this.Rc}))};h.prototype.iK=function(){var g=this.Rc.get("state");this.B9!=g&&(this.B9=g,this.trigger(new m(h.Qc, 3912{state:this.B9})))};h.Qc="playback state change";h.QM="video end";h.DC="video time change";return h}); 3913define("oG","require lQ lt cI gD dz om jN".split(" "),function(a){var f=a("lQ"),l=a("lt"),m=a("cI"),k=a("gD"),c=a("dz"),h=a("om"),g=a("jN"),b=f.extend(k,function(d,e){k.call(this);this.M=d;this.j=e;this.j.set("visible",!1);this.Oa=new h(this.M,this.j);this.Ma=new g(this.j);this.yq=new c(this.j);
3913this.Oa.bind(h.BC,this.$q,this,!0);this.Oa.bind(h.CC,this.Fn,this,!0);this.Oa.bind(h.K6,this.kwa,this,!0);this.Oa.bind(h.xV,this.lwa,this,!0);this.Oa.bind(h.sma,this.TVa,this,!0);this.Ma.bind(g.Qc,this.jf, 3914this,!0);this.Ma.bind(g.QM,this.CA,this,!0);this.Ma.bind(g.DC,this.gQ,this,!0)});b.prototype.clear=function(){this.Oa.clear();this.Ma.clear();this.yq.clear();this.Oa.unbind(h.BC,this.$q,this);this.Oa.unbind(h.CC,this.Fn,this);this.Oa.unbind(h.K6,this.kwa,this);this.Oa.unbind(h.xV,this.lwa,this);this.Ma.unbind(g.Qc,this.jf,this);this.Ma.unbind(g.QM,this.CA,this);this.Ma.unbind(g.DC,this.gQ,this);this.M=this.j=this.yq=this.Ma=this.Oa=null};b.prototype.W4=function(d,e){this.j.set("visible",!0);this.Oa.display(d, 3915e)};b.prototype.yy=function(){this.Oa.hide();this.Ma.end();this.yq.end()};b.prototype.play=function(){this.Ma.play()};b.prototype.stop=function(){this.Ma.stop()};b.prototype.pause=function(){this.Ma.pause()};b.prototype.Sf=function(d){this.Ma.Sf(d)};b.prototype.setTime=function(d){this.Ma.setTime(d)};b.prototype.getTime=function(){return this.Ma.getTime()};b.prototype.Jla=function(){this.Ma.Jla()};b.prototype.kwa=function(d){var e=d.data.video;this.Ma.start(e,d.data.startTime);this.yq.start(e)};b.prototype.lwa= 3916function(){};b.prototype.Fn=function(d){d=d.data.video;d.get("autoplay")&&d.get("state")!=l.PLAYING&&d.get("state")!=l.Qb&&d.set("state",l.PLAYING);this.trigger(new m(b.CC,{video:d}))};b.prototype.$q=function(d){this.trigger(new m(b.BC,{video:d.data.video}))};b.prototype.TVa=function(){this.j.set("visible",!1)};b.prototype.CA=function(d){this.trigger(new m(b.QM,{video:d.data.video}))};b.prototype.gQ=function(d){this.trigger(new m(b.DC,{video:d.data.video,time:d.data.time,duration:d.data.duration}))}; 3917b.prototype.jf=function(d){this.trigger(new m(b.Qc,{state:d.data.state}))};b.CC="videoShow";b.BC="videoHide";b.QM="videoEnd";b.DC="videoTimeChange";b.Qc="playbackStateChange";return b}); 3918define("pg","require lQ pw bh e ed".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("bh"),k=a("e"),c=a("ed");a=f.extend(k,function(h,g,b){k.call(this);this.Vd=h;this.M=g;this.ga=b;this.set("toolTipDisabled",!0);this.set("cursor",m.hv);this.bind(l.tc,this.Ic,this,!0);this.FJ=new c.pna;this.FJ.Ska(c.pna.P6);this.FJ.Xe(this.n_=!1);
3918[this.FJ.gd()].forEach(function(d,e){this.Yb().append(d);d.css({position:"absolute",left:0,top:0,right:0,bottom:0,overflow:"hidden","z-index":e})}.bind(this))});a.prototype.Vka= 3919function(h,g){this.n_!=h&&(this.n_=h,this.FJ.SHa(g),this.FJ.Xe(h))};a.prototype.Ic=function(){this.n0=!0;this.FJ.setSize(this.Za(),this.Cb())};return a}); 3920define("mO","require lQ pw bh d oP fS gE pg".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("bh"),k=a("d"),c=a("oP"),h=a("fS"),g=a("gE"),b=a("pg");a=f.extend(c,function(d,e,n){c.call(this);this.Vd=d;this.M=e;this.ga=n;this.Qe("Renderer");this.set("toolTipDisabled",!0);this.set("cursor",m.hv);this.set("layout",k.hV);this.W=!0;this.oc=this.Va=this.yd=null;this.u1=[];this.$R=[];this.bind(l.tc,this.Ic,this,!0);this.OR()});a.prototype.Hb=function(){c.prototype.Hb.call(this);null==this.yd&&(this.yd= 3921new g(this.Vd,this.M,!1),this.yd.ra({left:0,top:0,right:0,bottom:0}),this.Ya(this.yd),this.yd.K4(this.ga.get("useVideoFrameRate")?2:void 0),this.LQa(),this.eQa(),this.u1.forEach(function(d){this.nqa(d)}.bind(this)));null==this.oc&&(this.oc=new b(this.Vd,this.M,this.ga),this.oc.ra({left:0,top:0,right:0,bottom:0}),this.Ya(this.oc),this.OR())};a.prototype.c3a=function(d){this.u1.push(d);this.yd&&this.nqa(d)};a.prototype.qb=function(d){this.W!=d&&(this.W=d,this.Va&&(this.Va.J(h.Scene).enabled=d))};a.prototype.LQa= 3922function(){this.Va=this.yd.Pc("Scene");var d=this.Va.I(h.Scene);d.backgroundColor="transparent";d.outputColorSpace="srgb";d.enabled=this.W;this.yd.YAa(this.Va)};a.prototype.eQa=function(){this.Kb=this.yd.Pc("Camera");var d=this.Kb.I(h.OrthographicCamera);d.width=this.zf();d.height=this.yf();this.Kb.I(h.mb).G=this.Va;this.Va.J(h.Scene).La=this.Kb};a.prototype.Ic=function(){if(this.Kb){var d=this.Kb.J(h.OrthographicCamera);d.width=this.zf();d.height=this.yf()}};a.prototype.nqa=function(d){var e=this.yd.Pc("Video"); 3923e.I(h.mb).G=this.Va;e.I(h.Mesh).properties=d;var n=e.I(h.oz);n.properties=d;n.La=this.Kb;n=e.I(h.oo);n.properties=d;n.$la=d.get("video");n.N=d;this.$R.push(e);this.yd.K4(this.ga.get("useVideoFrameRate")&&45>this.VTa(d)?2:void 0);this.OR()};a.prototype.qHa=function(d){d=this.u1.indexOf(d);0>d||(this.u1.splice(d,1),this.yd&&this.cRa(this.$R[d]))};a.prototype.cRa=function(d){var e=this.$R.indexOf(d);0>e||(this.$R.splice(e,1),this.yd.Nd(d),this.OR())};a.prototype.Vka=function(d){this.n_=d;this.OR()}; 3924a.prototype.OR=function(){this.oc&&this.oc.Vka(this.n_&&0<this.$R.length)};a.prototype.VTa=function(d){d=d.get("video");return(d&&d.get("levels")||[]).reduce(function(e,n){return Math.max(e,n.get("framerate"))},0)||30};return a}); 3925define("lK","require lQ pw bs oj iX lt oG mO jt".split(" "),function(a){var f=a("lQ"),l=a("pw"),m=a("bs"),k=a("oj"),c=a("iX"),h=a("lt"),g=a("oG"),b=a("mO"),d=a("jt");a=k.define("VideoPlayer",c,function(){c.call(this,"video");this.xE=this.xE.bind(this);this.Aq=this.y0=this.yF=this.ri=!1;this.O=this.j=null;this.Xb=this.mf=0;this.un=!1;this.Hd=f.zp(this.ih,this)});a.prototype.seek=function(e){this.XE(e)};a.prototype.play=function(){this.CE()};a.prototype.pause=function(){this.BE()};a.prototype.stop= 3926function(){this.AA()};a.prototype.restart=function(){this.zA()};a.prototype.set=function(e,n){if(this.get(e)!=n){switch(e){case "startTime":this.y0=!0;this.Hd();break;case "video":this.yF=!0;this.Hd();break;case "viewerArea":this.ri=!0;this.Hd();break;case "displayPlaybackBar":this.Aq=!0,this.Hd()}c.prototype.set.call(this,e,n)}};a.prototype.get=function(e,n){switch(e){case "currentTime":return this.O&&this.O.getTime()||0}return c.prototype.get.call(this,e,n)};a.prototype.Ep=function(e){this.un!== 3927e&&((this.un=e)?document.addEventListener("keydown",this.xE,!0):document.removeEventListener("keydown",this.xE,!0))};a.prototype.xE=function(e){d.sp()||(e.code==m.na.EH||e.code==m.na.qV)&&this.O&&this.O.Jla()};a.prototype.ih=function(){this.ri&&(this.ri=!1,this.Zv(),this.get("viewerArea")&&this.Xv(),this.aR(this.get("viewerArea")),this.yF=!0);var e=!1;if(this.j&&(this.yF||this.y0)){var n=this.get("video"),q=this.get("startTime")||0;if(n&&!this.j.Db()){this.Hd();return}this.y0=this.yF=!1;this.Xb=this.mf= 39280;e=!0;n?(this.get("viewerArea").Od().hbb(),this.DG(),this.O.W4(n,q)):this.O.yy()}this.Aq&&(this.Aq=!1,e=!0);e&&this.Gx()};a.prototype.kK=function(){this.set("video",null)};a.prototype.Xv=function(){var e=this.get("application"),n=this.get("viewerArea");this.j=new b(e,n,this);this.j.ra({left:0,top:0,bottom:0,right:0});n.Ya(this.j);n.bind(l.ma,this.pwa,this,!0);this.O=new g(n,this.j);this.O.bind(g.CC,this.Fn,this);this.O.bind(g.BC,this.$q,this);this.O.bind(g.DC,this.gQ,this,!0);this.O.bind(g.Qc,this.jf, 3929this);e.bind(l.F("mute"),this.QP,this);this.O.Sf(e.get("mute",!1));this.UA(!0)};a.prototype.Zv=function(){if(this.j){this.O.unbind(g.CC,this.Fn,this);this.O.unbind(g.BC,this.$q,this);this.O.unbind(g.DC,this.gQ,this);this.O.unbind(g.Qc,this.jf,this);this.O.clear();this.get("application").unbind(l.F("mute"),this.QP,this);var e=this.j.getParent();e.removeChild(this.j);e.unbind(l.ma,this.pwa,this,!0);this.j=null;this.UA(!1)}};a.prototype.QP=function(){this.j&&this.O.Sf(this.get("application").get("mute", 3930!1))};a.prototype.jf=function(e){e=e.data.state;this.j&&this.j.Vka(this.get("displayPlayOverlay")&&e!=h.PLAYING,.5>this.mf);this.wd(e)};a.prototype.Fn=function(e){var n=this.get("viewerArea");(this.de=n&&n.de)&&this.de.bind(l.ma,this.qwa,this,!0);this.nda=!1;this.kP(e.data.video)};a.prototype.$q=function(e){this.de&&this.de.unbind(l.ma,this.qwa,this,!0);this.de=null;this.jP(e.data.video)};a.prototype.gQ=function(e){this.mf=e.data.time;this.Xb=e.data.duration;this.Gx()};a.prototype.pwa=function(){if(this.nda)this.nda= 3931!1;else switch(this.get("clickAction")){case "play_pause":this.get("state")!=h.PLAYING?this.O.play():this.O.pause()}};a.prototype.qwa=function(){this.nda=!0};a.prototype.qQ=function(e){this.XE(e.data.position)};a.prototype.Qk=function(){this.O.play()};a.prototype.ap=function(){this.O.stop()};a.prototype.br=function(){this.O.pause()};a.prototype.XE=function(e){this.O&&this.O.setTime(e)};a.prototype.Gx=function(){if(this.j){var e=this.j.getParent();0<this.Xb&&this.get("displayPlaybackBar")?e.ra({playbackBarPosition:this.mf, 3932playbackBarDuration:this.Xb,playbackBarVisible:!0}):e.set("playbackBarVisible",!1)}};return a}); 3933define("lu",["require","oj","dn","iK"],function(a){var f=a("oj"),l=a("dn"),m=a("iK");a=f.define("VideoPlayListItem",m,function(){m.call(this)});a.prototype.start=function(){m.prototype.start.call(this);var k=this.get("player");k&&(k.bind(l.sh,this.Fn,this),k.set("video",this.get("media")),k.set("startTime",this.get("startTime")))};a.prototype.stop=function(){var k=this.get("player");k&&(k.unbind(l.sh,this.Fn,this),k.get("video")==this.get("media")&&k.set("video",null));m.prototype.stop.call(this)}; 3934a.prototype.Fn=function(k){k.data.media==this.get("media")&&(this.get("player").unbind(l.sh,this.Fn,this),this.get("player").bind(l.Um,this.$q,this),this.iB())};a.prototype.$q=function(k){k.data.media==this.get("media")&&(this.get("player").unbind(l.Um,this.$q,this),this.stop(),this.end())};return a});define("hW",["require","mu","oj"],function(a){var f=a("mu");return a("oj").define("VideoResourceLevel",f,function(){f.call(this)})}); 3935define("eH",["require","mu","oj","ml","hW"],function(a){var f=a("mu"),l=a("oj"),m=a("ml"),k=a("hW");a=l.define("VideoResource",f,function(){f.call(this);this.lca=new k;this.lca.set("type","video/mp4");this.nca=new k;this.nca.set("type","video/ogg");this.Oga=new k;this.Oga.set("type","video/webm")});a.prototype.get=function(c,h){switch(c){case "levels":h=[];var g=this.get("mp4Url");g&&(this.lca.set("url",g),h.push(this.lca));if(g=this.get("oggUrl"))this.nca.set("url",g),h.push(this.nca);if(g=this.get("webmUrl"))this.Oga.set("url", 3936g),h.push(this.Oga);h.forEach(function(b){b.set("width",this.get("width"));b.set("height",this.get("height"))}.bind(this))}return f.prototype.get.call(this,c,h)};a.prototype.Yi=function(){var c=this.get("webmUrl"),h=this.get("oggUrl"),g=this.get("mp4Url");return g&&m.c3?g:c&&m.Iia?c:h&&m.Hia?h:g||c||h};return a});define("dH",["require","oj","ft"],function(a){var f=a("oj"),l=a("ft");return f.define("VignetteModel3DPostprocessing",l,function(){l.call(this)})}); 3937define("dW","require jquery.mod lQ pw w mQ e gV".split(" "),function(a){var f=a("jquery.mod"),l=a("lQ"),m=a("pw"),k=a("w"),c=a("mQ"),h=a("e"),g=a("gV");a=l.extend(h,function(){h.call(this);this.Qe("WebFrame");this.cP=this.FD=this.Hc=this.ie=null;this.Dca=this.Dca.bind(this);this.pZ=this.pZ.bind(this);this.bind(m.jd,this.eXa,this,!0);this.bind(m.ad,this.dXa,this,!0)});a.prototype.yb=function(){h.prototype.yb.call(this);this.h("url");this.h("backgroundColor","#ffffff");this.h("insetBorder",!1);this.h("scrollEnabled", 3938!0);this.h("unloadWhenHidden",!0)};a.prototype.eXa=function(){this.cF("url")};a.prototype.dXa=function(){this.cF("url")};a.prototype.Hb=function(){h.prototype.Hb.call(this);this.ie||(this.ie=f("<div></div>"),this.ie.css({position:"absolute",left:0,top:0,width:"100%",height:"100%"}),this.Yb().append(this.ie));this.Hc||(this.Hc=f("<iframe></iframe>"),this.Hc.css({position:"absolute",left:0,top:0}),this.Hc.attr("allowfullscreen","true"),this.Hc.attr("allow","fullscreen; accelerometer; gyroscope; magnetometer; vr; autoplay; camera; microphone; display-capture;
3938 xr-spatial-tracking"), 3939this.ie.append(this.Hc));this.FD||(this.FD=f("<div></div>"),this.FD.css({"text-shadow":"0 0 5px rgba(255,255,255,0.5)",display:"none",color:"#000000","font-weight":"300","font-family":"Tahoma, Geneva, sans-serif","font-size":k.pb()?"5vmin":"20px",position:"absolute",top:"50%",left:"50%","text-align":"center",transform:"translate(-50%, -50%)",width:"90%"}),this.ie.append(this.FD))};a.prototype.bb=function(){if(this.L("url")){var b=this.B("url");b&&this.hA?this.$xa(b):(!b||this.get("unloadWhenHidden"))&& 3940this.$xa("");this.S("url")}this.L("insetBorder")&&(this.B("insetBorder")?this.Hc.attr("frameborder","1"):this.Hc.attr("frameborder","0"),this.S("insetBorder"));this.L("scrollEnabled")&&(this.B("scrollEnabled")?(this.Hc.attr("scrolling","auto"),this.ie.css({overflow:"auto","-webkit-overflow-scrolling":"touch"})):(this.Hc.attr("scrolling","no"),this.ie.css({overflow:"hidden","-webkit-overflow-scrolling":"auto"})),this.S("scrollEnabled"));h.prototype.bb.call(this)};a.prototype.qh=function(){this.Hc&& 3941g.css(this.Hc.get(0),{width:this.sa+"px",height:this.wa+"px"});h.prototype.qh.call(this)};a.prototype.refresh=function(){this.B("url")&&this.hA&&(this.Jaa(),this.Gz(),this.Ifa(),this.Hc.attr("src",""),setTimeout(function(){this.Kya();this.kpa();this.Hc.attr("src",this.B("url"))}.bind(this),30))};a.prototype.$xa=function(b){this.Hc.attr("src")!=b&&(this.Jaa(),b?(this.Kya(),this.kpa()):(this.Gz(),this.Ifa()),this.Hc.attr("src",b))};a.prototype.Dca=function(){this.cP=null;this.XUa()&&this.o_a()};a.prototype.pZ= 3942function(){this.Jaa();this.Gz();this.Ifa()};a.prototype.kpa=function(){this.Hc.on("load",this.pZ)};a.prototype.Ifa=function(){this.Hc.off("load",this.pZ)};a.prototype.Gz=function(){this.cP&&(clearTimeout(this.cP),this.cP=null)};a.prototype.Kya=function(){this.Gz();this.cP=setTimeout(this.Dca.bind(this),3E3)};a.prototype.XUa=function(){if("https:"==window.location.protocol){var b=this.Hc.attr("src");if("https:"!=c.parse(b).protocol)return!0}return!1};a.prototype.o_a=function(){this.FD.text("A secure web page served over HTTPS can not display insecure content served over HTTP."); 3943this.FD.show()};a.prototype.Jaa=function(){this.FD.hide()};return a});define("cx",["require","dW","oj"],function(a){var f=a("dW");a=a("oj").define("WebFrame",f,function(){f.call(this)});a.prototype.refresh=function(){f.prototype.refresh.call(this)};return a});define("mm",["require","es","lQ","oP","d"],function(a){var f=a("es"),l=a("lQ"),m=a("oP");a=a("d");var k=l.extend(m,function(){m.call(this)});k.Fc={layout:a.Gg};f.defaults(k.Fc,m.Fc);k.prototype.yb=function(){this.Ao(k.Fc)};return k}); 3944define("nc","require es lQ pw cI nA d oP mm hN gs dE".split(" "),function(a){var f=a("es"),l=a("lQ"),m=a("pw"),k=a("cI"),c=a("nA"),h=a("d"),g=a("oP"),b=a("mm"),d=a("hN"),e=a("gs"),n=a("dE"),q=l.extend(d,function(){d.call(this);this.Qe("Window");this.xz=this.jI=this.yR=this.Rl=null;this.B8=new g;this.HI=null;this.Caa=this.Baa=0;this.Lea=this.zya=!1;this.Pga=this.Qga=void 0;for(var p in q.ndb)this.cF(p);this.bind(m.tc,this.A2a,this);this.bind(m.RM,this.y2a,this);this.bind(m.YM,this.B2a,this);this.bind(m.ma, 3945this.x2a,this);this.l1=0;this.Qf=new g;this.Qf.ra({visible:!1,includeInLayout:!1,layout:"absolute",height:"100%",width:"100%",backgroundOpacity:0,contentOpaque:!1});this.Qf.bind(m.tc,this.CAa,this);this.Qf.bind(m.YM,this.r2a,this);this.Qf.bind(m.RM,this.q2a,this);this.Qf.bind(m.ma,this.p2a,this);this.Qf.Ya(this)});q.prototype.set=function(p,r){switch(p){case "maxWidth":this.Qga=r;this.a1();break;case "maxHeight":this.Pga=r;this.a1();break;case "children":this.B8.set(p,r);break;case "shadow":this.zya= 3946r;this.xAa();break;default:d.prototype.set.call(this,p,r)}};q.prototype.show=function(p,r){this.a1(p);this.set("visible",!1);this.Qf.set("visible",!1);this.sOa();r&&this.D3a();r=p.get("children");p.set("children",r.concat([this.Qf]));l.defer(function(){this.Qf.set("visible",!0)}.bind(this))};q.prototype.sOa=function(){var p=this.B("modal"),r=this.B("veilShowEffect"),t=this.B("veilHideEffect");p&&r?this.Qf.set("showEffect",r):this.Qf.set("showEffect",null);p&&t?this.Qf.set("hideEffect",t):this.Qf.set("hideEffect", 3947null)};q.prototype.hide=function(){this.get("visible")&&this.trigger(m.RKa);this.l1=0;this.i0(!1);this.set("visible",!1)};q.prototype.D3a=function(){this.set("centerX",0);this.set("centerY",0)};q.prototype.get=function(p,r){return"children"==p?this.B8.get(p,r):d.prototype.get.call(this,p,r)};
3947q.joa={headerBackgroundOpacity:"backgroundOpacity",headerBackgroundColor:"backgroundColor",headerBackgroundColorRatios:"backgroundColorRatios",headerBackgroundColorDirection:"backgroundColorDirection",headerBorderSize:"borderSize", 3948headerBorderLeftSize:"borderLeftSize",headerBorderTopSize:"borderTopSize",headerBorderRightSize:"borderRightSize",headerBorderBottomSize:"borderBottomSize",headerBorderColor:"borderColor",headerBorderLeftColor:"borderLeftColor",headerBorderTopColor:"borderTopColor",headerBorderRightColor:"borderRightColor",headerBorderBottomColor:"borderBottomColor",headerHeight:"height",headerPaddingLeft:"paddingLeft",headerPaddingTop:"paddingTop",headerPaddingRight:"paddingRight",headerPaddingBottom:"paddingBottom", 3949headerVerticalAlign:"verticalAlign"};q.ioa=Object.keys(q.joa);q.E7={borderRadius:"borderTopRadius",borderTopRadius:"borderTopRadius",borderLeftRadius:"borderTopLeftRadius",borderRightRadius:"borderTopRightRadius",borderTopLeftRadius:"borderTopLeftRadius",borderTopRightRadius:"borderTopRightRadius"};q.D7="borderLeftRadius borderRightRadius borderTopLeftRadius borderTopRightRadius borderTopRadius borderRadius".split(" ");q.Boa={title:"text",titleFontFamily:"fontFamily",titleFontSize:"fontSize",titleFontColor:"fontColor", 3950titleFontWeight:"fontWeight",titleFontStyle:"fontStyle",titleHorizontalAlign:"horizontalAlign",titlePaddingLeft:"paddingLeft",titlePaddingTop:"paddingTop",titlePaddingRight:"paddingRight",titlePaddingBottom:"paddingBottom",titleTextDecoration:"textDecoration",titleTextShadowColor:"textShadowColor",titleTextShadowHorizontalLength:"textShadowHorizontalLength",titleTextShadowVerticalLength:"textShadowVerticalLength",titleTextShadowBlurRadius:"textShadowBlurRadius",titleTextShadowOpacity:"textShadowOpacity"}; 3951q.Aoa=Object.keys(q.Boa);q.doa={closeButtonBackgroundColor:"backgroundColor",closeButtonBackgroundColorDirection:"backgroundColorDirection",closeButtonBackgroundColorRatios:"backgroundColorRatios",closeButtonBackgroundOpacity:"backgroundOpacity",closeButtonBorderColor:"borderColor",closeButtonBorderRadius:"borderRadius",closeButtonBorderSize:"borderSize",closeButtonHeight:"height",closeButtonIconColor:"iconColor",closeButtonIconHeight:"iconHeight",closeButtonIconLineWidth:"iconLineWidth",closeButtonIconWidth:"iconWidth", 3952closeButtonOpacity:"opacity",closeButtonWidth:"width",closeButtonPaddingBottom:"paddingBottom",closeButtonPaddingLeft:"paddingLeft",closeButtonPaddingRight:"paddingRight",closeButtonPaddingTop:"paddingTop",closeButtonRollOverBackgroundColor:"rollOverBackgroundColor",closeButtonRollOverBackgroundColorDirection:"rollOverBackgroundColorDirection",closeButtonRollOverBackgroundColorRatios:"rollOverBackgroundColorRatios",closeButtonRollOverBackgroundOpacity:"rollOverBackgroundOpacity",closeButtonRollOverBorderColor:"rollOverBorderColor", 3953closeButtonRollOverBorderSize:"rollOverBorderSize",closeButtonRollOverIconColor:"rollOverIconColor",closeButtonRollOverIconLineWidth:"rollOverIconLineWidth",closeButtonRollOverOpacity:"rollOverOpacity",closeButtonPressedBackgroundColor:"pressedBackgroundColor",closeButtonPressedBackgroundColorDirection:"pressedBackgroundColorDirection",closeButtonPressedBackgroundColorRatios:"pressedBackgroundColorRatios",closeButtonPressedBackgroundOpacity:"pressedBackgroundOpacity",closeButtonPressedBorderColor:"pressedBorderColor", 3954closeButtonPressedBorderSize:"pressedBorderSize",closeButtonPressedIconColor:"pressedIconColor",closeButtonPressedIconLineWidth:"pressedIconLineWidth",closeButtonPressedOpacity:"pressedOpacity"};q.coa=Object.keys(q.doa);q.foa={footerBackgroundOpacity:"backgroundOpacity",footerBackgroundColor:"backgroundColor",footerBackgroundColorRatios:"backgroundColorRatios",footerBackgroundColorDirection:"backgroundColorDirection",footerBorderSize:"borderSize",footerBorderLeftSize:"borderLeftSize",footerBorderTopSize:"borderTopSize", 3955footerBorderRightSize:"borderRightSize",footerBorderBottomSize:"borderBottomSize",footerBorderColor:"borderColor",footerBorderLeftColor:"borderLeftColor",footerBorderTopColor:"borderTopColor",footerBorderRightColor:"borderRightColor",footerBorderBottomColor:"borderBottomColor",footerHeight:"height"};q.eoa=Object.keys(q.foa);q.hoa={borderRadius:"borderBottomRadius",borderBottomRadius:"borderBottomRadius",borderLeftRadius:"borderBottomLeftRadius",borderRightRadius:"borderBottomRightRadius",borderBottomLeftRadius:"borderBottomLeftRadius", 3956borderBottomRightRadius:"borderBottomRightRadius"};q.goa="borderLeftRadius borderRightRadius borderBottomLeftRadius borderBottomRightRadius borderBottomRadius borderRadius".split(" ");
3956q.$na={bodyBackgroundOpacity:"backgroundOpacity",bodyBackgroundColor:"backgroundColor",bodyBackgroundColorRatios:"backgroundColorRatios",bodyBackgroundColorDirection:"backgroundColorDirection",bodyBorderSize:"borderSize",bodyBorderLeftSize:"borderLeftSize",bodyBorderTopSize:"borderTopSize",bodyBorderRightSize:"borderRightSize", 3957bodyBorderBottomSize:"borderBottomSize",bodyBorderColor:"borderColor",bodyBorderLeftColor:"borderLeftColor",bodyBorderTopColor:"borderTopColor",bodyBorderRightColor:"borderRightColor",bodyBorderBottomColor:"borderBottomColor",bodyPaddingLeft:"paddingLeft",bodyPaddingTop:"paddingTop",bodyPaddingRight:"paddingRight",bodyPaddingBottom:"paddingBottom",overflow:"overflow",scrollBarColor:"scrollBarColor",scrollBarWidth:"scrollBarWidth",scrollBarMargin:"scrollBarMargin",scrollBarHorizontalMargin:"scrollBarHorizontalMargin", 3958scrollBarVerticalMargin:"scrollBarVerticalMargin",scrollBarOpacity:"scrollBarOpacity",gap:"gap"};q.Zna=Object.keys(q.$na);q.aoa={layout:"layout",horizontalAlign:"horizontalAlign",verticalAlign:"verticalAlign"};q.UMa=Object.keys(q.aoa);q.Doa={veilOpacity:"backgroundOpacity",veilColor:"backgroundColor",veilColorRatios:"backgroundColorRatios",veilColorDirection:"backgroundColorDirection"};q.Coa=Object.keys(q.Doa);q.Fc=function(){var p={modal:!1,visible:!1,centerX:0,centerY:0,veilShowEffect:void 0,veilHideEffect:void 0}; 3959f.defaults(p,g.Fc);for(var r=[].concat(q.ioa,q.Aoa,q.coa,q.Zna,q.eoa,q.Coa),t=0;t<r.length;t++)p[r[t]]=void 0;return p}();q.prototype.yb=function(){this.Ao(q.Fc)};q.prototype.Hb=function(){d.prototype.Hb.call(this);null==this.Rl&&(this.Rl=new b,this.Rl.set("width","100%"),this.Rl.bind(m.gb,this.hUa,this),this.Ya(this.Rl));null==this.yR&&(this.yR=new n,this.yR.set("width","100%"),this.Rl.Ya(this.yR));null==this.jI&&(this.jI=new e,this.jI.ra({horizontalAlign:c.Ye,verticalAlign:c.qe}),this.jI.bind(m.ma, 3960this.KPa,this),this.Rl.Ya(this.jI));null==this.xz&&(this.xz=this.B8,this.xz.ra({width:"100%",height:"100%"}),this.Ya(this.xz));null==this.HI&&(this.HI=new g,this.HI.set("width","100%"),this.Ya(this.HI))};q.prototype.p2a=function(){this.l1++;setTimeout(function(){0<this.l1&&this.hide()}.bind(this),100)};q.prototype.x2a=function(){this.l1--};q.prototype.KPa=function(){this.hide()};q.prototype.hUa=function(p){this.Baa=p.pageX;this.Caa=p.pageY;this.Db().bind(m.Pb,this.NAa,this,!0);this.Db().bind(m.Eb, 3961this.OAa,this,!0)};q.prototype.NAa=function(p){this.set("centerX",this.get("centerX")+(p.pageX-this.Baa));this.set("centerY",this.get("centerY")+(p.pageY-this.Caa));this.Baa=p.pageX;this.Caa=p.pageY;this.wAa()};q.prototype.OAa=function(){this.Db().unbind(m.Pb,this.NAa,this);this.Db().unbind(m.Eb,this.OAa,this)};q.prototype.CAa=function(){this.a1()};q.prototype.r2a=function(){this.set("visible",!0)};q.prototype.q2a=function(){this.Qf.unbind(m.tc,this.CAa,this);var p=this.Qf.getParent();p&&p.removeChild(this.Qf); 3962this.trigger(new k(m.oH))};q.prototype.A2a=function(){this.wAa()};q.prototype.B2a=function(){this.i0(!0)};q.prototype.y2a=function(){this.Qf.set("visible",!1)};q.prototype.i0=function(p){this.Lea=p;this.xAa()};q.prototype.xAa=function(){d.prototype.set.call(this,"shadow",this.Lea&&this.zya)};q.prototype.a1=function(p){p||(p=this.ta);void 0!==this.Qga?d.prototype.set.call(this,"maxWidth",this.Qga):p?d.prototype.set.call(this,"maxWidth",p.Za()):d.prototype.set.call(this,"maxWidth",void 0);void 0!== 3963this.Pga?d.prototype.set.call(this,"maxHeight",this.Pga):p?d.prototype.set.call(this,"maxHeight",p.Cb()):d.prototype.set.call(this,"maxHeight",void 0)};q.prototype.wAa=function(){var p=this.Qf.Za(),r=this.Za(),t=this.get("centerX");r=.5*p+t-.5*r;var u=this.Rl.Bm(),v=this.Rl.Za(),w=Math.min(v,30);p=p-u-w;u=-(u+v-w);r<u?this.set("centerX",t+(u-r)):r>p&&this.set("centerX",t-(r-p));p=this.Qf.Cb();r=this.Cb();t=this.get("centerY");r=.5*p+t-.5*r;u=this.Rl.mu();v=this.Rl.Cb();w=Math.min(v,5);p=p-u-w;u=-(u+ 3964v-w);r<u?this.set("centerY",t+(u-r)):r>p&&this.set("centerY",t-(r-p))};q.prototype.bb=function(){this.uc(q.ioa,q.joa,[this.Rl],!0,!0);this.uc(q.D7,q.E7,[this.Rl],!0,!1);0===this.get("headerHeight")?this.uc(q.D7,q.E7,[this.xz],!0,!1):this.uc(q.D7,q.E7,[this.Rl],!0,!1);this.uc(q.Aoa,q.Boa,[this.yR],!0,!0);this.uc(q.coa,q.doa,[this.jI],!0,!0);this.uc(q.Zna,q.$na,[this.xz],!0,!0);this.uc(q.UMa,q.aoa,[this.xz],!0,!1);this.uc(q.eoa,q.foa,[this.HI],!0,!0);0===this.get("footerHeight")?this.uc(q.goa,q.hoa, 3965[this.xz],!0,!1):this.uc(q.goa,q.hoa,[this.HI],!0,!1);this.B("modal")?(this.uc(q.Coa,q.Doa,[this.Qf],!0,!0),this.Qf.set("contentOpaque",!0)):(this.Qf.set("backgroundOpacity",0),this.Qf.set("contentOpaque",!1));this.ra({layout:h.Xh,horizontalAlign:c.Ye,verticalAlign:c.qe});d.prototype.bb.call(this);this.Wl.V4(0)};return q}); 3966define("et",["require","nc","oj"],function(a){var f=a("nc");a=a("oj").define("Window",f,function(){f.call(this)});a.prototype.show=a.prototype.show;a.prototype.hide=a.prototype.hide;return a}); 3967define("nD","require jquery.mod es ld pw iw cI gD bn oY bL hh mI w lQ".split(" "),function(a){function f(v){this.source=v;this.width=this.source.get("width");this.height=this.source.get("height");this.url=this.source.get("url");this.sL=this.source.get("grayscale");this.gy=new q(h.yl)}
3967var l=a("jquery.mod"),m=a("es"),k=a("ld"),c=a("pw"),h=a("iw"),g=a("cI"),b=a("gD"),d=a("bn"),e=a("oY"),n=a("bL"),q=a("hh"),p=a("mI"),r=a("w"),t=a("lQ"),u=t.extend(b,function(){b.call(this);this.oZ=this.oZ.bind(this);this.Zg= 3968null;this.Me=[];this.An=[];this.ec=this.Rb=this.Sd=this.Gd=100;this.vf=1;this.Fz=this.Ez=.5;this.Oc=1;this.Qj=this.qj=null;this.f_=!1;this.r9={};this.oI={};this.oI.low={};this.oI.hight={};r.OK()==r.KM&&(this.oI.low.transform="translateZ(0)",this.oI.hight.transform="");this.W=!1;this.bi="inherit";this.xa=l("<div/>").css({position:"absolute",left:0,top:0,right:0,bottom:0,overflow:"hidden"});this.CO=null;this.hf=t.zp(this.oa,this)});u.prototype.gd=function(){return this.xa};u.prototype.$B=function(v){this.Of!= 3969v&&(this.Of=v,this.q8(1),this.hf())};u.prototype.I4=function(v){this.bi!=v&&(this.bi=v,this.Qj&&this.Qj.css("cursor",this.bi),this.qj&&this.qj.css("cursor",this.bi))};u.prototype.v$a=function(v){this.Me!=v&&(this.Me&&k.ca(this.Me,["levels.url"],this.oZ),(this.Me=v)&&k.ea(this.Me,["levels.url"],this.oZ,!0))};u.prototype.oZ=function(){this.Q8();this.Zg=null;this.qj&&(this.qj.detach(),this.qj=null);this.Qj&&(this.Qj.detach(),this.Qj=null);this.sg&&(this.sg=null);this.Q8();this.f_=!1;m(this.An).each(function(w){w.gy.cancel(); 3970w.gy.unbind(c.da,this.sta,this)},this);var v=(this.Me&&this.Me.get("levels")||[]).filter(function(w){return w.get("url")});this.An=m(v).map(function(w){w=new f(w);w.gy.bind(c.da,this.sta,this);return w},this);(v=this.fTa())?(this.Rb=v.width,this.ec=v.height):this.ec=this.Rb=100;this.Fz=this.Ez=.5;this.q8(1);this.hf()};u.prototype.JG=function(v,w){if(this.Gd!=v||this.Sd!=w)this.Gd=v,this.Sd=w,this.hf()};u.prototype.c$a=function(v,w){if(this.zqa!=v||this.yqa!=w)this.zqa=v,this.yqa=w,this.hf()};u.prototype.qb= 3971function(v){this.W!=v&&(this.W=v,this.hf())};u.prototype.move=function(v,w){var x=this.vf*this.Oc;this.Ez+=v/(this.Rb*x);this.Fz+=w/(this.ec*x);this.J_()};u.prototype.$x=function(){return this.Oc};u.prototype.setScale=function(v){this.q8(Math.max(1,Math.min(1/this.vf,v)));this.Zg&&this.Zg.width<this.Oc*this.vf*this.Rb&&this.Zg.width<this.Rb?this.oa():this.J_()};u.prototype.DEa=function(v){if(!this.qj)return!1;var w=this.qj.offset(),x=v.pageX-w.left;v=v.pageY-w.top;return 0<=x&&0<=v&&x<this.qj.width()&& 3972v<this.qj.height()};u.prototype.oa=function(){if(this.W){this.$1a();var v=this.oTa();v&&v.gy.Kh()?(v!=this.Zg&&(this.Zg||(this.hf(),this.f_=!0),this.aRa(v),this.Zg=v),this.eya(null)):this.eya(v);this.J_()}};u.prototype.$1a=function(){switch(this.Of){case p.Vp:var v=this.Gd/this.Rb;break;case p.vk:v=this.Sd/this.ec;break;case p.As:v=this.Rb*this.Sd>this.ec*this.Gd?this.Sd/this.ec:this.Gd/this.Rb;break;case p.WKa:v=Math.min(this.zqa/this.Rb,this.yqa/this.ec);break;default:v=this.Rb*this.Sd>this.ec* 3973this.Gd?this.Gd/this.Rb:this.Sd/this.ec}this.nOa(v)};u.prototype.sta=function(){this.hf()};u.prototype.aRa=function(v){this.Qj&&(this.xea(this.Qj,1),this.qj&&this.qj.detach(),this.qj=this.Qj);this.Qj=this.uQa(v);this.xea(this.Qj,0);this.xa.append(this.Qj);this.sg=this.mQa();this.r9={}};u.prototype.oTa=function(){return this.Zg?this.rSa(this.Oc*this.vf*this.Rb):this.KTa()};u.prototype.eya=function(v){m(this.An).each(function(w){w==v?w.gy.Yi()!=w.url&&w.gy.load(w.url):w.gy.Kh()||w.gy.cancel()})};u.prototype.fTa= 3974function(){return m(this.An).reduce(function(v,w){v||(v=w);if(w.width>v.width||w.width==v.width&&!w.sL&&v.sL)v=w;return v},null)};u.prototype.KTa=function(){return m(this.An).reduce(function(v,w){v||(v=w);if(w.width<v.width||w.width==v.width&&w.sL&&!v.sL)v=w;return v},null)};u.prototype.rSa=function(v){return m(this.An).reduce(function(w,x){w||(w=x);if(x.width>=v&&w.width<v||x.width>=v&&x.width<w.width||x.width<v&&x.width>w.width||!x.sL&&w.sL)w=x;return w},null)};u.prototype.uQa=function(v){v=l(v.gy.Af(!0)); 3975v.css({position:"absolute",cursor:this.bi,"pointer-events":"none"});return v};u.prototype.mQa=function(){return new e("linear",[new n("alpha",0,1)],200)};u.prototype.J_=function(){d.requestFrame(function(v){this.E_(v,"low")},this)};u.prototype.oia=function(){return this.Rb*this.Oc*this.vf};u.prototype.nia=function(){return this.ec*this.Oc*this.vf};u.prototype.hDa=function(){var v=this.oia();return v>this.Gd?Math.max(this.Gd-v,Math.min(0,.5*this.Gd-v*this.Ez)):.5*(this.Gd-v)};u.prototype.iDa=function(){var v= 3976this.nia();return v>this.Sd?Math.max(this.Sd-v,Math.min(0,.5*this.Sd-v*this.Fz)):.5*(this.Sd-v)};u.prototype.E_=function(v,w){w=w||"low";var x=this.oia(),y=this.hDa(),z=this.nia(),B=this.iDa();this.Ez=(.5*this.Gd-y)/x;this.Fz=(.5*this.Sd-B)/z;x={left:Math.round(y)+"px",top:Math.round(B)+"px",width:Math.round(x)+"px",height:Math.round(z)+"px",display:"block"};for(var E in this.oI[w])x[E]=this.oI[w][E];this.r9!=x&&(this.qj&&this.qj.css(x),this.Qj&&this.Qj.css(x),this.r9=x);this.Q8();this.sg?(this.sg.Fb(v), 3977this.xea(this.Qj,this.sg.cb("alpha")),this.sg.Ve()&&(this.sg=null,this.qj&&this.qj.detach(),this.qj=this.Qj,this.Qj=null),this.J_()):"low"==w&&this.z_a();!this.sg&&this.f_&&(this.f_=!1,this.trigger(new g(c.da)))};u.prototype.xea=function(v,w){v.css({opacity:w,filter:"alpha(opacity="+Math.round(100*w)+")","-ms-filter":"alpha(opacity="+Math.round(100*w)+")"})};
3977u.prototype.Q8=function(){null!=this.CO&&(clearTimeout(this.CO),this.CO=null)};u.prototype.z_a=function(){var v=this;this.CO=setTimeout(function(){v.CO= 3978null;v.E_(50,"hight")},50)};u.prototype.q8=function(v){this.Oc!=v&&(this.Oc=v,this.L0a())};u.prototype.nOa=function(v){this.vf!=v&&(this.vf=v)};u.prototype.L0a=function(){this.trigger(new g(u.wV,{scale:this.Oc}))};u.wV="scaleChange";return u}); 3979define("kO","require jquery.mod pw cI nD lQ e S".split(" "),function(a){a("jquery.mod");var f=a("pw"),l=a("cI"),m=a("nD"),k=a("lQ"),c=a("e"),h=a("S"),g=k.extend(c,function(){c.call(this);this.Qe("ZoomImage");this.ax=this.Kn=void 0;this.Tk=!1;this.Nwa=void 0;this.Ssa=this.Oc;this.WR=null;this.j=new m;this.j.bind(f.da,this.LWa,this);this.j.bind(m.wV,this.MWa,this);this.Yb().append(this.j.gd());this.bind(f.tc,this.Ic,this,!0);this.bind(f.jd,this.sj,this,!0);this.bind(f.ad,this.rj,this,!0);this.bind(f.gb, 3980this.be,this,!0);this.bind(f.Pb,this.Yj,this,!0);this.bind(f.Eb,this.Zj,this,!0);this.bind(f.Gs,this.pE,this,!0);this.bind(f.uH,this.ND,this,!0)});g.prototype.set=function(b,d){switch(b){case "scale":this.j.setScale(d);d=this.j.$x();break;case "imageLeft":case "imageTop":case "imageWidth":case "imageHeight":return}c.prototype.set.call(this,b,d)};g.prototype.get=function(b,d){switch(b){case "scale":return this.j.$x();case "imageLeft":return this.j.hDa();case "imageTop":return this.j.iDa();case "imageWidth":return this.j.oia(); 3981case "imageHeight":return this.j.nia()}return c.prototype.get.call(this,b,d)};g.prototype.yb=function(){c.prototype.yb.call(this);this.h("image");this.h("scaleMode");this.h("customHeight");this.h("customWidth");this.h("imageCursor");this.h("imageLeft");this.h("imageTop");this.h("imageWidth");this.h("imageHeight")};g.prototype.bb=function(){this.L("scaleMode")&&(this.j.$B(this.B("scaleMode")),this.S("scaleMode"));this.L("image")&&(this.j.v$a(this.B("image")),this.S("image"),this.Ssa=this.Oc);if(this.L("customHeight")|| 3982this.L("customWidth"))this.S("customHeight"),this.S("customWidth"),this.Ic();this.L("imageCursor")&&(this.S("imageCursor"),this.j.I4(this.kb.H9.XCa(this.get("imageCursor"))));c.prototype.bb.call(this)};g.prototype.Ic=function(){var b=this.Za(),d=this.Cb(),e=this.get("customWidth","100%"),n=h.Ap(e);e=void 0!==n?b*n/100:e;n=this.get("customHeight","100%");var q=h.Ap(n);this.j.c$a(e,void 0!==q?d*q/100:n);this.j.JG(b,d)};g.prototype.sj=function(){this.j.qb(!0)};g.prototype.rj=function(){this.j.qb(!1)}; 3983g.prototype.be=function(b){this.Kn=b.x;this.ax=b.y;this.Tk=!0;this.Nwa=this.j.DEa(b)};g.prototype.Yj=function(b){this.Tk&&(this.xga(),this.j.move(-(b.x-this.Kn),-(b.y-this.ax)),this.Kn=b.x,this.ax=b.y)};g.prototype.Zj=function(b){this.Tk=!1;this.Nwa||this.j.DEa(b)||this.trigger(new l(g.fLa))};g.prototype.pE=function(b){this.xga();this.j.setScale((1+b.delta/20)*this.j.$x())};g.prototype.ND=function(b){this.xga();this.j.setScale(b.scale/this.Ssa)};g.prototype.LWa=function(){this.trigger(new l(f.da))}; 3984g.prototype.MWa=function(){c.prototype.set.call(this,"scale",this.j.$x());this.trigger(new l(g.wV))};g.prototype.xga=function(){this.WR?(clearTimeout(this.WR),this.WR=null):this.trigger(new l(g.fj));this.WR=setTimeout(function(){this.WR=null;this.trigger(new l(g.ej))}.bind(this),300)};g.fLa="backgroundClick";g.wV="scaleChange";g.fj="userInteractionStart";g.ej="userInteractionEnd";return g});define("oy",["require","kO","oj"],function(a){var f=a("kO");return a("oj").define("ZoomImage",f,function(){f.call(this)})}); 3985define("jG","require oj jQ iy or eC eo fc oV kh jS gz gi iq l jP kD ms pe hF iH lz hi fZ dA bG kq on kk lk nh fR r jM ei en pl nw df kp nR bb iM mz hB O cW v mf gB Y kJ bC br nQ oN jD fs mD mc jI bR cR oW jW nM lC R qe gt dv ez jv cc bj gq fy hk Z jd bN pQ qd ft ks mS iZ q dU lb mT jc eq fn qa hJ ls fl mX bU lY iY bp pO gC pb cK cM lU pv ka gW kH hq me oa im kS lh pR eL jh nX fb iK T px ea gP bM jq fL bc pF fg cX nj mj fx hb fd ct iQ oz mG fN pX pc mb oF hl fz gR dy nx cy is nv kE hQ ce iU dL bV kA kc pk gg hv co ir lK lu eH hW dH bE cx et oy".split(" "), 3986function(a){a("oj");a("jQ");a("iy");a("or");a("eC");a("eo");a("fc");a("oV");a("kh");a("jS");a("gz");a("gi");a("iq");a("l");a("jP");a("kD");a("ms");a("pe");a("hF");a("iH");a("lz");a("hi");a("fZ");a("dA");a("bG");a("kq");a("on");a("kk");a("lk");a("nh");a("fR");a("r");a("jM");a("ei");a("en");a("pl");a("nw");a("df");a("kp");a("nR");a("bb");a("iM");a("mz");a("hB");a("O");a("cW");a("v");a("mf");a("gB");a("Y");a("kJ");a("bC");a("br");a("nQ");a("oN");a("jD");a("fs");a("mD");a("mc");a("jI");a("bR");a("cR"); 3987a("oW");a("jW");a("nM");a("lC");a("R");a("qe");a("gt");a("dv");a("ez");a("jv");a("cc");a("bj");a("gq");a("fy");a("hk");a("Z");a("jd");a("bN");a("pQ");a("qd");a("ft");a("ks");a("mS");a("iZ");a("q");a("dU");a("lb");a("mT");a("jc");a("eq");a("fn");a("qa");a("hJ");a("ls");a("fl");a("mX");a("bU");a("lY");a("iY");a("bp");a("pO");a("gC");a("pb");a("cK");a("cM");a("lU");a("pv");a("ka");a("gW");a("kH");a("hq");a("me");a("oa");a("im");a("kS");a("lh");a("pR");a("eL");a("jh");a("nX");a("fb");a("iK");a("T");a("px"); 3988a("ea");a("gP");a("bM");a("jq");a("fL");a("bc");a("pF");a("fg");a("cX");a("nj");a("mj");a("fx");a("hb");a("fd");a("ct");a("iQ");a("oz");a("mG");a("fN");a("pX");a("pc");a("mb");a("oF");a("hl");a("fz");a("gR");a("dy");a("nx");a("cy");a("is");a("nv");a("kE");a("hQ");a("ce");a("iU");a("dL");a("bV");a("kA");a("kc");a("pk");a("gg");a("hv");a("co");a("ir");a("lK");a("lu");a("eH");a("hW");a("dH");a("bE");a("cx");a("et");a("oy");return!0}); 3989define("gJ","require es jquery.mod lQ oj cd jG mQ".split(" "),function(a){function f(p,r){this.type=p;this.stack=r}function l(){}var m=a("es"),k=a("jquery.mod"),c=a("lQ"),h=a("oj"),g=a("cd");a("jG");a("mQ");l.prototype.G8a=function(p,r,t,u){this.r$=[];this.PA=this.PJ(p);this.$D=void 0;this.PA.gu.kDa()?(this.zga=g.validate(p),this.$D=this.Dra(this.PA,b.TYPE),this.xQa(this.$D,this.PA,r,t,u),this.iOa(this.PA),this.gOa(this.PA,this.$D),this.jOa(this.$D,this.PA),this.COa(this.$D,this.PA)):this.qo("Invalid root class", 3990[]);return 0==this.r$.length};l.prototype.Db=function(){return this.PA.instance};l.prototype.PJ=function(p,r){r=r||[];return m(p).isArray()?this.PXa(p,r):k.isPlainObject(p)&&p["class"]?this.SXa(p,r):k.isPlainObject(p)?this.QXa(p,r):m(p).isFunction()?this.RXa(p,r):this.TXa(p,r)};l.prototype.PXa=function(p,r){for(var t=[],u=0;u<p.length;u++)r.push("Item["+u+"]"),t.push(this.PJ(p[u],r)),r.pop();return new d(r.slice(),t)};l.prototype.SXa=function(p,r){var t=p["class"],u=h.Xi(p["class"]);if(u){t={};var v= 3991{},w;for(w in p){r.push(w);var x=p[w];switch(w){case "class":break;case "scripts":var y=this.PJ(x,r);break;default:u.hasAttribute(w)?t[w]=this.PJ(x,r):u.XDa(w)||u.YDa(w)?v[w]=this.PJ(x,r):this.qo(u.WF()+" object doesn't have any attribute named "+w,r)}r.pop()}return new b(r.slice(),u,p.id,t,v,y)}
3991this.qo("Undefined class name: "+t,r.slice());return new q(r.slice(),null)};l.prototype.QXa=function(p,r){var t={},u;for(u in p)r.push(u),t[u]=this.PJ(p[u],r),r.pop();return new e(r.slice(),t)};l.prototype.RXa= 3992function(p,r){return new n(r.slice(),p)};l.prototype.TXa=function(p,r){return new q(r.slice(),p)};l.prototype.Dra=function(p,r){var t=r&&p.type!=r?[]:[p],u=0;for(p=p.ob();u<p.length;u++)t=t.concat(this.Dra(p[u],r));return t};l.prototype.xQa=function(p,r,t,u,v){r.instance=r.gu.zm(null,u,v,[t,this.zga]);r.instance.set("application",r.instance);for(t=0;t<p.length;t++){var w=p[t];w!=r&&(w.instance=w.gu.zm(r.instance,u,v))}};l.prototype.iOa=function(p){if(p.scripts)if(p.scripts.type==e.TYPE)for(var r in p.scripts.value)this.hOa(p, 3993r);else this.qo("Invalid content.",p.scripts.stack)};l.prototype.hOa=function(p,r){var t=p.instance,u=p.scripts.value[r];m(t[r]).isUndefined()?u&&u.type==n.TYPE?t[r]=function(){return u.vu().apply(t,arguments)}:this.qo("Invalid content.",u.stack):this.qo("Identifier: "+r+" is already in use",u.stack)};l.prototype.gOa=function(p,r){p=p.instance;for(var t=0;t<r.length;t++){var u=r[t],v=u.id;v&&(m(p[v]).isUndefined()?p[v]=u.instance:this.qo("Identifier: "+v+" is arleady in use",u.stack))}};l.prototype.jOa= 3994function(p,r){for(var t=0;t<p.length;t++){var u=p[t],v=u.attributes,w;for(w in v)this.fOa(u,w,r)}};l.prototype.fOa=function(p,r,t){var u=p.gu;if(u.hasAttribute(r)){try{var v=p.attributes[r].vu()}catch(w){this.qo("Invalid value for property "+r+" of "+u.WF()+" instance",p.stack)}try{v=u.eia(r)(v,t.instance),p.instance.set(r,v)}catch(w){this.qo("Invalid value for property "+r+" of "+u.WF()+" instance",p.stack)}}else this.qo(u.WF()+" object doesn't have any property named "+r,p.stack)};l.prototype.COa= 3995function(p,r){for(var t=0;t<p.length;t++){var u=p[t],v;for(v in u.TF)this.BOa(u,v,r)}};l.prototype.BOa=function(p,r,t){var u=p.gu,v=p.instance,w=u.XDa(r),x=u.YDa(r);if(w||x){p=p.TF[r];var y=p.vu();m(y).isFunction()?v.bind(r,y,t.instance,x,y,!0):"string"==typeof y?v.bind(r,function(){try{eval("var event = arguments[0];"+y)}catch(z){throw z;}},t.instance,x,y,!0):this.qo("Invalid value.",p.stack)}else this.qo(u.WF()+" object doesn't have any event named "+r,p.stack)};l.prototype.qo=function(p,r){this.r$.push("In "+ 3996r.join(" >> ")+": "+p)};f.prototype.ob=function(){return[]};f.prototype.vu=function(){};var b=c.extend(f,function(p,r,t,u,v,w){f.call(this,b.TYPE,p);this.gu=r;this.id=t;this.attributes=u;this.TF=v;this.scripts=w;this.instance=null});b.prototype.ob=function(){var p=this.gu.vDa(),r=[],t=m(this.attributes).clone();if(p)for(var u=0;u<p.length;u++){var v=p[u];void 0!=t[v]&&(r.push(t[v]),delete t[v])}return r=r.concat(m(t).values())};b.prototype.vu=function(){return this.instance};b.TYPE="instance";var d= 3997c.extend(f,function(p,r){f.call(this,d.TYPE,p);this.items=r});d.prototype.ob=function(){return this.items.slice()};d.prototype.vu=function(){for(var p=[],r=0;r<this.items.length;r++)p.push(this.items[r].vu());return p};d.TYPE="array";var e=c.extend(f,function(p,r){f.call(this,e.TYPE,p);this.value=r});e.prototype.ob=function(){return m(this.value).values()};e.prototype.vu=function(){var p={},r;for(r in this.value)p[r]=this.value[r].vu();return p};e.TYPE="dict";var n=c.extend(f,function(p,r){f.call(this, 3998n.TYPE,p);this.value=r});n.prototype.vu=function(){return this.value};n.TYPE="function";var q=c.extend(f,function(p,r){f.call(this,q.TYPE,p);this.value=r});q.prototype.vu=function(){return this.value};q.TYPE="simple";return l}); 3999define("ny","require es pw cI oj gJ w fe mQ oQ hU nF pu nJ lQ".split(" "),function(a){function f(v,w){this.uR=v;this.Xi=this.Xi.bind(this);this.zm=this.zm.bind(this);this.WK=this.WK.bind(this);this.Ja=this.Ja.bind(this);this.G2=this.G2.bind(this);g.pb()&&!g.Df()&&r.Mr();this.YW=[];v=q.name;var x=[];v&&x.push(v);0<q.CT?x.push("v:"+q.CT+"."+q.IT):x.push("v:"+q.IT);t.log(x.join(" "));this.Gp=w;d.j7a()||0<=[g.lH,g.Sy].indexOf(g.browser())?(this.Ok=new h,(w=this.Gp.get(TDV.PlayerSettings.BASE_DIR_URL))? 4000(w=d.Hy(w),"/"!=w[w.length-1]&&(w+="/")):w=d.getDirectory(this.Gp.get(TDV.PlayerSettings.SELECTED_SCRIPT_URL)),this.gka=this.Gp.get(TDV.PlayerSettings.QUERY_STRING_PARAMETERS),b.W8a(w,function(y){this.fha=y;this.nXa()}.bind(this))):window.alert(p("web-server-required"))}var l=a("es"),m=a("pw"),k=a("cI"),c=a("oj"),h=a("gJ"),g=a("w"),b=a("fe"),d=a("mQ"),e=a("oQ"),n=a("hU"),q=a("nF"),p=a("pu"),r=a("nJ"),t=a("lQ");f.prototype.nXa=function(){this.uR.trigger(new TDV.HV(m.pMa,{},[],void 0));l.defer(function(){if(!this.Ok.G8a(this.Gp.get(TDV.PlayerSettings.SCRIPT_DATA), 4001this.Gp.get(TDV.PlayerSettings.CONTAINER),this.fha,this.gka)){if("false"!=q.kbb){window.alert(this.osa());return}t.log(this.osa())}this.AOa();this.YNa(this.Gp);this.lOa();e.r4=this.Ok.Db();e.initialize(function(){this.N0a()}.bind(this))}.bind(this))};
4001f.prototype.clear=function(){this.Ok&&(this.fsa().forEach(function(v){v.instance.Qla();v.gu.XS().forEach(function(w){switch(w){case "VideoPlayer":v.instance.stop();case "MapPlayer":case "Model3DPlayer":case "PanoramaPlayer":case "PhotoAlbumPlayer":v.instance.set("viewerArea", 4002null);break;case "ZoomImage":v.instance.set("image",null);break;case "Audio":v.instance.stop();break;case "Effect":v.instance.end();break;case "Media":v.instance.q9a()}})}),n.M8a(),this.Ok.Db().clear(),u={},this.Gp=this.Ok=null)};f.prototype.a6a=function(v){return this.Ok.Db()[v]};f.prototype.Xi=function(v){if(v in u)return u[v].slice();var w=[];this.fsa().forEach(function(x){var y=x.gu.XS();l(y).contains(v)&&w.push(x.instance)});u[v]=w;return w.slice()};f.prototype.fsa=function(){return this.Ok? 4003this.Ok.$D.concat(this.YW):[]};var u={};f.prototype.zm=function(v){var w=c.Xi(v);if(!w)throw"Invalid className: "+v;u={};v=this.Ok.Db();var x={};x.gu=w;x.instance=w.zm(v,this.fha,this.gka);this.YW.push(x);this.jpa(w,x.instance);this.z0a(v,x.instance);return x.instance};f.prototype.WK=function(v){var w=this.YW.findIndex(function(x){return x.instance==v});0>w||(u={},this.YW.splice(w,1),v.Qla(),v.dispose&&v.dispose())};f.prototype.osa=function(){for(var v=this.Ok.r$,w=["Errors parsing script file:"], 4004x=0;x<v.length;x++)w.push(v[x]);return w.join("\n")};f.prototype.AOa=function(){this.Ok.$D.forEach(function(w){this.jpa(w.gu,w.instance,w.id)}.bind(this));var v=this.Ok.Db().UW;v.bind(m.rH,function(){v.Obb(m.rH);this.uR.cookiesEnabled=this.uR.V3a=!0;this.uR.trigger(new TDV.HV(m.rH,{},[],void 0))},this,!0)};f.prototype.jpa=function(v,w,x){var y=v.XS();l.union(v.iia(),v.pia()).forEach(function(z){w.bind(z,function(B){this.uR.trigger(new TDV.HV(z,B,y,x))}.bind(this),this,!0)}.bind(this))};f.prototype.z0a= 4005function(v,w){v.trigger(new k(m.KLa,{instance:w}))};f.prototype.YNa=function(v){this.Ok.Db().set("settings",v)};f.prototype.Ja=function(){return c.Ja.apply(c,arguments)};f.prototype.G2=function(v){!v||d.vB(v)||d.m3(v)||(v=d.gB(d.Hy(v,this.fha),this.gka));return v};f.prototype.lOa=function(){var v=this.Ok.Db();v.getByClassName=v.Xi=this.Xi;v.createInstance=v.zm=this.zm;v.disposeInstance=v.WK=this.WK;v.isInstanceOfClass=v.Ja=this.Ja;v.getAbsoluteURL=v.G2=this.G2};f.prototype.N0a=function(){this.Ok.Db().start()}; 4006f.Lbb=function(v){v.trigger(new TDV.HV(m.LLa,{},[],void 0))};return f});define("main",["require","jquery.mod","ny"],function(a){var f=a("jquery.mod"),l=a("ny");f(document).ready(function(){TDV.xb.bab(l)})}); 4007(function(global,factory){factory(global.THREE={})})(this,function(exports){"use strict";const REVISION="163";const MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};const TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};const CullFaceNone=0;const CullFaceBack=1;const CullFaceFront=2;const CullFaceFrontBack=3;const BasicShadowMap=0;const PCFShadowMap=1;const PCFSoftShadowMap=2;const VSMShadowMap=3;const FrontSide=0;const BackSide=1;const DoubleSide=2;const NoBlending=0;const NormalBlending=1;const AdditiveBlending=2;const SubtractiveBlending=3;const MultiplyBlending=4;const CustomBlending=5;const AddEquation=100;const SubtractEquation=101;const ReverseSubtractEquation=102;const MinEquation=103;const MaxEquation=104;const ZeroFactor=200;const OneFactor=201;const SrcColorFactor=202;const OneMinusSrcColorFactor=203;const SrcAlphaFactor=204;const OneMinusSrcAlphaFactor=205;const DstAlphaFactor=206;const OneMinusDstAlphaFactor=207;const DstColorFactor=208;const OneMinusDstColorFactor=209;const SrcAlphaSaturateFactor=210;const ConstantColorFactor=211;const OneMinusConstantColorFactor=212;const ConstantAlphaFactor=213;const OneMinusConstantAlphaFactor=214;const NeverDepth=0;const AlwaysDepth=1;const LessDepth=2;const LessEqualDepth=3;const EqualDepth=4;const GreaterEqualDepth=5;const GreaterDepth=6;const NotEqualDepth=7;const MultiplyOperation=0;const MixOperation=1;const AddOperation=2;const NoToneMapping=0;const LinearToneMapping=1;const ReinhardToneMapping=2;const CineonToneMapping=3;const ACESFilmicToneMapping=4;const CustomToneMapping=5;const AgXToneMapping=6;const NeutralToneMapping=7;const AttachedBindMode="attached";const DetachedBindMode="detached";const UVMapping=300;const CubeReflectionMapping=301;const CubeRefractionMapping=302;const EquirectangularReflectionMapping=303;const EquirectangularRefractionMapping=304;const CubeUVReflectionMapping=306;const RepeatWrapping=1000;const ClampToEdgeWrapping=1001;const MirroredRepeatWrapping=1002;const NearestFilter=1003;const NearestMipmapNearestFilter=1004;const NearestMipMapNearestFilter=1004;const NearestMipmapLinearFilter=1005;const NearestMipMapLinearFilter=1005;const LinearFilter=1006;const LinearMipmapNearestFilter=1007;const LinearMipMapNearestFilter=1007;const LinearMipmapLinearFilter=1008;const LinearMipMapLinearFilter=1008;const UnsignedByteType=1009;const ByteType=1010;const ShortType=1011;const UnsignedShortType=1012;const IntType=1013;const UnsignedIntType=1014;const FloatType=1015;const HalfFloatType=1016;const UnsignedShort4444Type=1017;const UnsignedShort5551Type=1018;const UnsignedInt248Type=1020;const UnsignedInt5999Type=35902;
4007const AlphaFormat=1021;const RGBFormat=1022;const RGBAFormat=1023;const LuminanceFormat=1024;const LuminanceAlphaFormat=1025;const DepthFormat=1026;const DepthStencilFormat=1027;const RedFormat=1028;const RedIntegerFormat=1029;const RGFormat=1030;const RGIntegerFormat=1031;const RGBAIntegerFormat=1033;const RGB_S3TC_DXT1_Format=33776;const RGBA_S3TC_DXT1_Format=33777;const RGBA_S3TC_DXT3_Format=33778;const RGBA_S3TC_DXT5_Format=33779;const RGB_PVRTC_4BPPV1_Format=35840;const RGB_PVRTC_2BPPV1_Format=35841;const RGBA_PVRTC_4BPPV1_Format=35842;const RGBA_PVRTC_2BPPV1_Format=35843;const RGB_ETC1_Format=36196;const RGB_ETC2_Format=37492;const RGBA_ETC2_EAC_Format=37496;const RGBA_ASTC_4x4_Format=37808;const RGBA_ASTC_5x4_Format=37809;const RGBA_ASTC_5x5_Format=37810;const RGBA_ASTC_6x5_Format=37811;const RGBA_ASTC_6x6_Format=37812;const RGBA_ASTC_8x5_Format=37813;const RGBA_ASTC_8x6_Format=37814;const RGBA_ASTC_8x8_Format=37815;const RGBA_ASTC_10x5_Format=37816;const RGBA_ASTC_10x6_Format=37817;const RGBA_ASTC_10x8_Format=37818;const RGBA_ASTC_10x10_Format=37819;const RGBA_ASTC_12x10_Format=37820;const RGBA_ASTC_12x12_Format=37821;const RGBA_BPTC_Format=36492;const RGB_BPTC_SIGNED_Format=36494;const RGB_BPTC_UNSIGNED_Format=36495;const RED_RGTC1_Format=36283;const SIGNED_RED_RGTC1_Format=36284;const RED_GREEN_RGTC2_Format=36285;const SIGNED_RED_GREEN_RGTC2_Format=36286;const LoopOnce=2200;const LoopRepeat=2201;const LoopPingPong=2202;const InterpolateDiscrete=2300;const InterpolateLinear=2301;const InterpolateSmooth=2302;const ZeroCurvatureEnding=2400;const ZeroSlopeEnding=2401;const WrapAroundEnding=2402;const NormalAnimationBlendMode=2500;const AdditiveAnimationBlendMode=2501;const TrianglesDrawMode=0;const TriangleStripDrawMode=1;const TriangleFanDrawMode=2;const BasicDepthPacking=3200;const RGBADepthPacking=3201;const TangentSpaceNormalMap=0;const ObjectSpaceNormalMap=1;const NoColorSpace="";const SRGBColorSpace="srgb";const LinearSRGBColorSpace="srgb-linear";const DisplayP3ColorSpace="display-p3";const LinearDisplayP3ColorSpace="display-p3-linear";const LinearTransfer="linear";const SRGBTransfer="srgb";const Rec709Primaries="rec709";const P3Primaries="p3";const ZeroStencilOp=0;const KeepStencilOp=7680;const ReplaceStencilOp=7681;const IncrementStencilOp=7682;const DecrementStencilOp=7683;const IncrementWrapStencilOp=34055;const DecrementWrapStencilOp=34056;const InvertStencilOp=5386;const NeverStencilFunc=512;const LessStencilFunc=513;const EqualStencilFunc=514;const LessEqualStencilFunc=515;const GreaterStencilFunc=516;const NotEqualStencilFunc=517;const GreaterEqualStencilFunc=518;const AlwaysStencilFunc=519;const NeverCompare=512;const LessCompare=513;const EqualCompare=514;const LessEqualCompare=515;const GreaterCompare=516;const NotEqualCompare=517;const GreaterEqualCompare=518;const AlwaysCompare=519;const StaticDrawUsage=35044;const DynamicDrawUsage=35048;const StreamDrawUsage=35040;const StaticReadUsage=35045;const DynamicReadUsage=35049;const StreamReadUsage=35041;const StaticCopyUsage=35046;const DynamicCopyUsage=35050;const StreamCopyUsage=35042;const GLSL1="100";const GLSL3="300 es";const WebGLCoordinateSystem=2000;const WebGPUCoordinateSystem=2001;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){if(this._listeners===undefined)return false;const listeners=this._listeners;return listeners[type]!==undefined&&listeners[type].indexOf(listener)!==-1}removeEventListener(type,listener){if(this._listeners===undefined)return;const listeners=this._listeners;const listenerArray=listeners[type];if(listenerArray!==undefined){const index=listenerArray.indexOf(listener);if(index!==-1){listenerArray.splice(index,1)}}}dispatchEvent(event){if(this._listeners===undefined)return;const listeners=this._listeners;const listenerArray=listeners[event.type];if(listenerArray!==undefined){event.target=this;const array=listenerArray.slice(0);for(let i=0,l=array.length;i<l;i++){array[i].call(this,event)}event.target=null}}}const _lut=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","5
40075","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];let _seed=1234567;const DEG2RAD=Math.PI/180;const RAD2DEG=180/Math.PI;function generateUUID(){const d0=Math.random()*4294967295|0;const d1=Math.random()*4294967295|0;const d2=Math.random()*4294967295|0;const d3=Math.random()*4294967295|0;const uuid=_lut[d0&255]+_lut[d0>>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:console.warn("THREE.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=Math.max(min.x,Math.min(max.x,this.x));this.y=Math.max(min.y,Math.min(max.y,this.y));return this}clampScalar(minVal,maxVal){this.x=Math.max(minVal,Math.min(maxVal,this.x));this.y=Math.max(minVal,Math.min(maxVal,this.y));return this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(Math.max(min,Math.min(max,length)))}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}
4007round(){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 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;function arrayNeedsUint32(array){for(let i=array.length-1;i>=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 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={};function warnOnce(message){if(message in _cache)return;_cache[message]=true;console.warn(message)}const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3=new Matrix3().set(0.8224621,0.177538,0,0.0331941,0.9668058,0,0.0170827,0.0723974,0.9105199);const LINEAR_DISPLAY_P3_TO_LINEAR_SRGB=new Matrix3().set(1.2249401,-0.2249404,0,-0.0420569,1.0420571,0,-0.0196376,-0.0786361,1.0982735);const COLOR_SPACES={[LinearSRGBColorSpace]:{transfer:LinearTransfer,primaries:Rec709Primaries,toReference:color=>color,fromReference:color=>color},[SRGBColorSpace]:{transfer:SRGBTransfer,primaries:Rec709Primaries,toReference:color=>color.convertSRGBToLinear(),fromReference:color=>color.convertLinearToSRGB()},[LinearDisplayP3ColorSpace]:{transfer:LinearTransfer,primaries:P3Primaries,toReference:color=>color.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:color=>color.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)},[DisplayP3ColorSpace]:{transfer:SRGBTransfer,primaries:P3Primaries,toReference:color=>color.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:color=>color.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()}};const SUPPORTED_WORKING_COLOR_SPACES=new Set([LinearSRGBColorSpace,LinearDisplayP3ColorSpace]);const ColorManagement={enabled:true,_workingColorSpace:LinearSRGBColorSpace,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(colorSpace){if(!SUPPORTED_WORKING_COLOR_SPACES.has(colorSpace)){throw new Error(`Unsupported working color space, "${colorSpace}".`)}
4007this._workingColorSpace=colorSpace},convert:function(color,sourceColorSpace,targetColorSpace){if(this.enabled===false||sourceColorSpace===targetColorSpace||!sourceColorSpace||!targetColorSpace){return color}const sourceToReference=COLOR_SPACES[sourceColorSpace].toReference;const targetFromReference=COLOR_SPACES[targetColorSpace].fromReference;return targetFromReference(sourceToReference(color))},fromWorkingColorSpace:function(color,targetColorSpace){return this.convert(color,this._workingColorSpace,targetColorSpace)},toWorkingColorSpace:function(color,sourceColorSpace){return this.convert(color,sourceColorSpace,this._workingColorSpace)},getPrimaries:function(colorSpace){return COLOR_SPACES[colorSpace].primaries},getTransfer:function(colorSpace){if(colorSpace===NoColorSpace)return LinearTransfer;return COLOR_SPACES[colorSpace].transfer}};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){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}if(canvas.width>2048||canvas.height>2048){console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",image);return canvas.toDataURL("image/jpeg",0.6)}else{return canvas.toDataURL("image/png")}}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;i<data.length;i++){data[i]=SRGBToLinear(data[i]/255)*255}context.putImageData(imageData,0,0);return canvas}else if(image.data){const data=image.data.slice(0);for(let i=0;i<data.length;i++){if(data instanceof Uint8Array||data instanceof Uint8ClampedArray){data[i]=Math.floor(SRGBToLinear(data[i]/255)*255)}else{data[i]=SRGBToLinear(data[i])}}return{data:data,width:image.width,height:image.height}}else{console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.");return image}}}let _sourceId=0;class Source{constructor(data=null){this.isSource=true;Object.defineProperty(this,"id",{value:_sourceId++});this.uuid=generateUUID();this.data=data;this.dataReady=true;this.version=0}set needsUpdate(value){if(value===true)this.version++}toJSON(meta){const isRootObject=meta===undefined||typeof meta==="string";if(!isRootObject&&meta.images[this.uuid]!==undefined){return meta.images[this.uuid]}const output={uuid:this.uuid,url:""};const data=this.data;if(data!==null){let url;if(Array.isArray(data)){url=[];for(let i=0,l=data.length;i<l;i++){if(data[i].isDataTexture){url.push(serializeImage(data[i].image))}else{url.push(serializeImage(data[i]))}}}else{url=serializeImage(data)}output.url=url}if(!isRootObject){meta.images[this.uuid]=output}return output}}function serializeImage(image){if(typeof HTMLImageElement!=="undefined"&&image instanceof HTMLImageElement||typeof HTMLCanvasElement!=="undefined"&&image instanceof HTMLCanvasElement||typeof ImageBitmap!=="undefined"&&image instanceof ImageBitmap){return ImageUtils.getDataURL(image)}else{if(image.data){return{data:Array.from(image.data),width:image.width,height:image.height,type:image.data.constructor.name}}else{console.warn("THREE.Texture: Unable to serialize Texture.");return{}}}}let _textureId=0;
4007class Texture extends EventDispatcher{constructor(image=Texture.DEFAULT_IMAGE,mapping=Texture.DEFAULT_MAPPING,wrapS=ClampToEdgeWrapping,wrapT=ClampToEdgeWrapping,magFilter=LinearFilter,minFilter=LinearMipmapLinearFilter,format=RGBAFormat,type=UnsignedByteType,anisotropy=Texture.DEFAULT_ANISOTROPY,colorSpace=NoColorSpace){super();this.isTexture=true;Object.defineProperty(this,"id",{value:_textureId++});this.uuid=generateUUID();this.name="";this.source=new Source(image);this.mipmaps=[];this.mapping=mapping;this.channel=0;this.wrapS=wrapS;this.wrapT=wrapT;this.magFilter=magFilter;this.minFilter=minFilter;this.anisotropy=anisotropy;this.format=format;this.internalFormat=null;this.type=type;this.offset=new Vector2(0,0);this.repeat=new Vector2(1,1);this.center=new Vector2(0,0);this.rotation=0;this.matrixAutoUpdate=true;this.matrix=new Matrix3;this.generateMipmaps=true;this.premultiplyAlpha=false;this.flipY=true;this.unpackAlignment=4;this.colorSpace=colorSpace;this.userData={};this.version=0;this.onUpdate=null;this.isRenderTargetTexture=false;this.pmremVersion=0}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)}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.userData=JSON.parse(JSON.stringify(source.userData));this.needsUpdate=true;return this}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.6,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}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)<epsilon&&Math.abs(m13-m31)<epsilon&&Math.abs(m23-m32)<epsilon){if(Math.abs(m12+m21)<epsilon2&&Math.abs(m13+m31)<epsilon2&&Math.abs(m23+m32)<epsilon2&&Math.abs(m11+m22+m33-3)<epsilon2){this.set(1,0,0,0);return this}angle=Math.PI;const xx=(m11+1)/2;const yy=(m22+1)/2;const zz=(m33+1)/2;const xy=(m12+m21)/4;const xz=(m13+m31)/4;const yz=(m23+m32)/4;if(xx>yy&&xx>zz){if(xx<epsilon){x=0;y=0.707106781;z=0.707106781}else{x=Math.sqrt(xx);y=xy/x;z=xz/x}}else if(yy>zz){if(yy<epsilon){x=0.707106781;y=0;z=0.707106781}else{y=Math.sqrt(yy);x=xy/y;z=yz/y}}else{if(zz<epsilon){x=0.707106781;y=0.707106781;z=0}else{z=Math.sqrt(zz);x=xz/z;y=yz/z}}this.set(x,y,z,angle);return this}let s=Math.sqrt((m32-m23)*(m32-m23)+(m13-m31)*(m13-m31)+(m21-m12)*(m21-m12));if(Math.abs(s)<0.001)s=1;this.x=(m32-m23)/s;this.y=(m13-m31)/s;this.z=(m21-m12)/s;this.w=Math.acos((m11+m22+m33-1)/2);return this}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);this.w=Math.min(this.w,v.w);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);this.w=Math.max(this.w,v.w);return this}clamp(min,max){this.x=Math.max(min.x,Math.min(max.x,this.x));this.y=Math.max(min.y,Math.min(max.y,this.y));this.z=Math.max(min.z,Math.min(max.z,this.z));this.w=Math.max(min.w,Math.min(max.w,this.w));return this}clampScalar(minVal,maxVal){this.x=Math.max(minVal,Math.min(maxVal,this.x));this.y=Math.max(minVal,Math.min(maxVal,this.y));this.z=Math.max(minVal,Math.min(maxVal,this.z));this.w=Math.max(minVal,Math.min(maxVal,this.w));return this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(Math.max(min,Math.min(max,length)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this}
4007round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);this.z=Math.trunc(this.z);this.w=Math.trunc(this.w);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;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)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(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;this.w+=(v.w-this.w)*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;this.w=v1.w+(v2.w-v1.w)*alpha;return this}equals(v){return v.x===this.x&&v.y===this.y&&v.z===this.z&&v.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];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);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();this.w=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z;yield this.w}}class RenderTarget extends EventDispatcher{constructor(width=1,height=1,options={}){super();this.isRenderTarget=true;this.width=width;this.height=height;this.depth=1;this.scissor=new Vector4(0,0,width,height);this.scissorTest=false;this.viewport=new Vector4(0,0,width,height);const image={width:width,height:height,depth:1};options=Object.assign({generateMipmaps:false,internalFormat:null,minFilter:LinearFilter,depthBuffer:true,stencilBuffer:false,depthTexture:null,samples:0,count:1},options);const texture=new Texture(image,options.mapping,options.wrapS,options.wrapT,options.magFilter,options.minFilter,options.format,options.type,options.anisotropy,options.colorSpace);texture.flipY=false;texture.generateMipmaps=options.generateMipmaps;texture.internalFormat=options.internalFormat;this.textures=[];const count=options.count;for(let i=0;i<count;i++){this.textures[i]=texture.clone();this.textures[i].isRenderTargetTexture=true}this.depthBuffer=options.depthBuffer;this.stencilBuffer=options.stencilBuffer;this.depthTexture=options.depthTexture;this.samples=options.samples}get texture(){return this.textures[0]}set texture(value){this.textures[0]=value}setSize(width,height,depth=1){if(this.width!==width||this.height!==height||this.depth!==depth){this.width=width;this.height=height;this.depth=depth;for(let i=0,il=this.textures.length;i<il;i++){this.textures[i].image.width=width;this.textures[i].image.height=height;this.textures[i].image.depth=depth}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<il;i++){this.textures[i]=source.textures[i].clone();this.textures[i].isRenderTargetTexture=true}const image=Object.assign({},source.texture.image);this.texture.source=new Source(image);this.depthBuffer=source.depthBuffer;this.stencilBuffer=source.stencilBuffer;if(source.depthTexture!==null)this.depthTexture=source.depthTexture.clone();this.samples=source.samples;return this}dispose(){this.dispatchEvent({type:"dispose"})}}class WebGLRenderTarget extends RenderTarget{constructor(width=1,height=1,options={}){super(width,height,options);
4007this.isWebGLRenderTarget=true}}class DataArrayTexture extends Texture{constructor(data=null,width=1,height=1,depth=1){super(null);this.isDataArrayTexture=true;this.image={data,width,height,depth};this.magFilter=NearestFilter;this.minFilter=NearestFilter;this.wrapR=ClampToEdgeWrapping;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}class WebGLArrayRenderTarget extends WebGLRenderTarget{constructor(width=1,height=1,depth=1,options={}){super(width,height,options);this.isWebGLArrayRenderTarget=true;this.depth=depth;this.texture=new DataArrayTexture(null,width,height,depth);this.texture.isRenderTargetTexture=true}}class Data3DTexture extends Texture{constructor(data=null,width=1,height=1,depth=1){super(null);this.isData3DTexture=true;this.image={data,width,height,depth};this.magFilter=NearestFilter;this.minFilter=NearestFilter;this.wrapR=ClampToEdgeWrapping;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}class WebGL3DRenderTarget extends WebGLRenderTarget{constructor(width=1,height=1,depth=1,options={}){super(width,height,options);this.isWebGL3DRenderTarget=true;this.depth=depth;this.texture=new Data3DTexture(null,width,height,depth);this.texture.isRenderTargetTexture=true}}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];const 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 s=1-t;const cos=x0*x1+y0*y1+z0*z1+w0*w1,dir=cos>=0?1:-1,sqrSin=1-cos*cos;if(sqrSin>Number.EPSILON){const sin=Math.sqrt(sqrSin),len=Math.atan2(sin,cos*dir);s=Math.sin(s*len)/sin;t=Math.sin(t*len)/sin}const tDir=t*dir;x0=x0*s+x1*tDir;y0=y0*s+y1*tDir;z0=z0*s+z1*tDir;w0=w0*s+w1*tDir;if(s===1-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:console.warn("THREE.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;
4007if(r<Number.EPSILON){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);const x=this._x,y=this._y,z=this._z,w=this._w;let cosHalfTheta=w*qb._w+x*qb._x+y*qb._y+z*qb._z;if(cosHalfTheta<0){this._w=-qb._w;this._x=-qb._x;this._y=-qb._y;this._z=-qb._z;cosHalfTheta=-cosHalfTheta}else{this.copy(qb)}if(cosHalfTheta>=1){this._w=w;this._x=x;this._y=y;this._z=z;return this}const sqrSinHalfTheta=1-cosHalfTheta*cosHalfTheta;if(sqrSinHalfTheta<=Number.EPSILON){const s=1-t;this._w=s*w+t*this._w;this._x=s*x+t*this._x;this._y=s*y+t*this._y;this._z=s*z+t*this._z;this.normalize();return this}const sinHalfTheta=Math.sqrt(sqrSinHalfTheta);const halfTheta=Math.atan2(sinHalfTheta,cosHalfTheta);const ratioA=Math.sin((1-t)*halfTheta)/sinHalfTheta,ratioB=Math.sin(t*halfTheta)/sinHalfTheta;this._w=w*ratioA+this._w*ratioB;this._x=x*ratioA+this._x*ratioB;this._y=y*ratioA+this._y*ratioB;this._z=z*ratioA+this._z*ratioB;this._onChangeCallback();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=Math.max(min.x,Math.min(max.x,this.x));this.y=Math.max(min.y,Math.min(max.y,this.y));this.z=Math.max(min.z,Math.min(max.z,this.z));return this}clampScalar(minVal,maxVal){this.x=Math.max(minVal,Math.min(maxVal,this.x));this.y=Math.max(minVal,Math.min(maxVal,this.y));this.z=Math.max(minVal,Math.min(maxVal,this.z));return this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(Math.max(min,Math.min(max,length)))}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}
4007round(){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 Box3{constructor(min=new Vector3(+Infinity,+Infinity,+Infinity),max=new Vector3(-Infinity,-Infinity,-Infinity)){this.isBox3=true;this.min=min;this.max=max}set(min,max){this.min.copy(min);this.max.copy(max);return this}setFromArray(array){this.makeEmpty();for(let i=0,il=array.length;i<il;i+=3){this.expandByPoint(_vector$b.fromArray(array,i))}return this}setFromBufferAttribute(attribute){this.makeEmpty();for(let i=0,il=attribute.count;i<il;i++){this.expandByPoint(_vector$b.fromBufferAttribute(attribute,i))}return this}setFromPoints(points){this.makeEmpty();for(let i=0,il=points.length;i<il;i++){this.expandByPoint(points[i])}return this}setFromCenterAndSize(center,size){const halfSize=_vector$b.copy(size).multiplyScalar(0.5);this.min.copy(center).sub(halfSize);this.max.copy(center).add(halfSize);return this}setFromObject(object,precise=false){this.makeEmpty();return this.expandByObject(object,precise)}clone(){return new this.constructor().copy(this)}copy(box){this.min.copy(box.min);this.max.copy(box.max);return this}makeEmpty(){this.min.x=this.min.y=this.min.z=+Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(target){return this.isEmpty()?target.set(0,0,0):target.addVectors(this.min,this.max).multiplyScalar(0.5)}getSize(target){return this.isEmpty()?target.set(0,0,0):target.subVectors(this.max,this.min)}expandByPoint(point){this.min.min(point);this.max.max(point);return this}expandByVector(vector){this.min.sub(vector);this.max.add(vector);return this}expandByScalar(scalar){this.min.addScalar(-scalar);this.max.addScalar(scalar);return this}expandByObject(object,precise=false){object.updateWorldMatrix(false,false);const geometry=object.geometry;if(geometry!==undefined){const positionAttribute=geometry.getAttribute("position");if(precise===true&&positionAttribute!==undefined&&object.isInstancedMesh!==true){for(let i=0,l=positionAttribute.count;i<l;i++){if(object.isMesh===true){object.getVertexPosition(i,_vector$b)}else{_vector$b.fromBufferAttribute(positionAttribute,i)}
4007_vector$b.applyMatrix4(object.matrixWorld);this.expandByPoint(_vector$b)}}else{if(object.boundingBox!==undefined){if(object.boundingBox===null){object.computeBoundingBox()}_box$4.copy(object.boundingBox)}else{if(geometry.boundingBox===null){geometry.computeBoundingBox()}_box$4.copy(geometry.boundingBox)}_box$4.applyMatrix4(object.matrixWorld);this.union(_box$4)}}const children=object.children;for(let i=0,l=children.length;i<l;i++){this.expandByObject(children[i],precise)}return this}containsPoint(point){return point.x<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?false:true}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?false:true}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$2.subVectors(triangle.a,_center);_v1$7.subVectors(triangle.b,_center);_v2$4.subVectors(triangle.c,_center);_f0.subVectors(_v1$7,_v0$2);_f1.subVectors(_v2$4,_v1$7);_f2.subVectors(_v0$2,_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$2,_v1$7,_v2$4,_extents)){return false}axes=[1,0,0,0,1,0,0,0,1];if(!satForAxes(axes,_v0$2,_v1$7,_v2$4,_extents)){return false}_triangleNormal.crossVectors(_f0,_f1);axes=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z];return satForAxes(axes,_v0$2,_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)}}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$2=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);
4007if(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;i<il;i++){maxRadiusSq=Math.max(maxRadiusSq,center.distanceToSquared(points[i]))}this.radius=Math.sqrt(maxRadiusSq);return this}copy(sphere){this.center.copy(sphere.center);this.radius=sphere.radius;return this}isEmpty(){return this.radius<0}makeEmpty(){this.center.set(0,0,0);this.radius=-1;return this}containsPoint(point){return point.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(point){return point.distanceTo(this.center)-this.radius}intersectsSphere(sphere){const radiusSum=this.radius+sphere.radius;return sphere.center.distanceToSquared(this.center)<=radiusSum*radiusSum}intersectsBox(box){return box.intersectsSphere(this)}intersectsPlane(plane){return Math.abs(plane.distanceToPoint(this.center))<=this.radius}clampPoint(point,target){const deltaLengthSq=this.center.distanceToSquared(point);target.copy(point);if(deltaLengthSq>this.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)}}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);
4007const 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){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<tmax||isNaN(tmax))tmax=tymax;if(invdirz>=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<tmax||tmax!==tmax)tmax=tzmax;if(tmax<0)return null;return this.at(tmin>=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];
4007if(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){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){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];return n41*(+n14*n23*n32-n13*n24*n32-n14*n22*n33+n12*n24*n33+n13*n22*n34-n12*n23*n34)+n42*(+n11*n23*n34-n11*n24*n33+n14*n21*n33-n13*n21*n34+n13*n24*n31-n14*n23*n31)+n43*(+n11*n24*n32-n11*n22*n34-n14*n21*n32+n12*n21*n34+n14*n22*n31-n12*n24*n31)+n44*(-n13*n22*n31-n11*n23*n32+n11*n22*n33+n13*n21*n32-n12*n21*n33+n12*n23*n31)}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;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;position.x=te[12];position.y=te[13];position.z=te[14];_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;
4007scale.z=sz;return this}makePerspective(left,right,top,bottom,near,far,coordinateSystem=WebGLCoordinateSystem){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(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){const te=this.elements;const w=1/(right-left);const h=1/(top-bottom);const p=1/(far-near);const x=(right+left)*w;const y=(top+bottom)*h;let z,zInv;if(coordinateSystem===WebGLCoordinateSystem){z=(far+near)*p;zInv=-2*p}else if(coordinateSystem===WebGPUCoordinateSystem){z=near*p;zInv=-1*p}else{throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+coordinateSystem)}te[0]=2*w;te[4]=0;te[8]=0;te[12]=-x;te[1]=0;te[5]=2*h;te[9]=0;te[13]=-y;te[2]=0;te[6]=0;te[10]=zInv;te[14]=-z;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:console.warn("THREE.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}
4007set(channel){this.mask=(1<<channel|0)>>>0}enable(channel){this.mask|=1<<channel|0}enableAll(){this.mask=4294967295|0}toggle(channel){this.mask^=1<<channel|0}disable(channel){this.mask&=~(1<<channel|0)}disableAll(){this.mask=0}test(layers){return(this.mask&layers.mask)!==0}isEnabled(channel){return(this.mask&(1<<channel|0))!==0}}let _object3DId=0;const _v1$4=new Vector3;const _q1=new Quaternion;const _m1$3=new Matrix4;const _target=new Vector3;const _position$3=new Vector3;const _scale$2=new Vector3;const _quaternion$2=new Quaternion;const _xAxis=new Vector3(1,0,0);const _yAxis=new Vector3(0,1,0);const _zAxis=new Vector3(0,0,1);const _addedEvent={type:"added"};const _removedEvent={type:"removed"};const _childaddedEvent={type:"childadded",child:null};const _childremovedEvent={type:"childremoved",child:null};class Object3D extends EventDispatcher{constructor(){super();this.isObject3D=true;Object.defineProperty(this,"id",{value:_object3DId++});this.uuid=generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=Object3D.DEFAULT_UP.clone();const position=new Vector3;const rotation=new Euler;const quaternion=new Quaternion;const scale=new Vector3(1,1,1);function onRotationChange(){quaternion.setFromEuler(rotation,false)}function onQuaternionChange(){rotation.setFromQuaternion(quaternion,undefined,false)}rotation._onChange(onRotationChange);quaternion._onChange(onQuaternionChange);Object.defineProperties(this,{position:{configurable:true,enumerable:true,value:position},rotation:{configurable:true,enumerable:true,value:rotation},quaternion:{configurable:true,enumerable:true,value:quaternion},scale:{configurable:true,enumerable:true,value:scale},modelViewMatrix:{value:new Matrix4},normalMatrix:{value:new Matrix3}});this.matrix=new Matrix4;this.matrixWorld=new Matrix4;this.matrixAutoUpdate=Object3D.DEFAULT_MATRIX_AUTO_UPDATE;this.matrixWorldAutoUpdate=Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE;this.matrixWorldNeedsUpdate=false;this.layers=new Layers;this.visible=true;this.castShadow=false;this.receiveShadow=false;this.frustumCulled=true;this.renderOrder=0;this.animations=[];this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(matrix){if(this.matrixAutoUpdate)this.updateMatrix();this.matrix.premultiply(matrix);this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(q){this.quaternion.premultiply(q);return this}setRotationFromAxisAngle(axis,angle){this.quaternion.setFromAxisAngle(axis,angle)}setRotationFromEuler(euler){this.quaternion.setFromEuler(euler,true)}setRotationFromMatrix(m){this.quaternion.setFromRotationMatrix(m)}setRotationFromQuaternion(q){this.quaternion.copy(q)}rotateOnAxis(axis,angle){_q1.setFromAxisAngle(axis,angle);this.quaternion.multiply(_q1);return this}rotateOnWorldAxis(axis,angle){_q1.setFromAxisAngle(axis,angle);this.quaternion.premultiply(_q1);return this}rotateX(angle){return this.rotateOnAxis(_xAxis,angle)}rotateY(angle){return this.rotateOnAxis(_yAxis,angle)}rotateZ(angle){return this.rotateOnAxis(_zAxis,angle)}translateOnAxis(axis,distance){_v1$4.copy(axis).applyQuaternion(this.quaternion);this.position.add(_v1$4.multiplyScalar(distance));return this}translateX(distance){return this.translateOnAxis(_xAxis,distance)}translateY(distance){return this.translateOnAxis(_yAxis,distance)}translateZ(distance){return this.translateOnAxis(_zAxis,distance)}localToWorld(vector){this.updateWorldMatrix(true,false);return vector.applyMatrix4(this.matrixWorld)}worldToLocal(vector){this.updateWorldMatrix(true,false);return vector.applyMatrix4(_m1$3.copy(this.matrixWorld).invert())}lookAt(x,y,z){if(x.isVector3){_target.copy(x)}else{_target.set(x,y,z)}const parent=this.parent;this.updateWorldMatrix(true,false);_position$3.setFromMatrixPosition(this.matrixWorld);if(this.isCamera||this.isLight){_m1$3.lookAt(_position$3,_target,this.up)}else{_m1$3.lookAt(_target,_position$3,this.up)}this.quaternion.setFromRotationMatrix(_m1$3);if(parent){_m1$3.extractRotation(parent.matrixWorld);_q1.setFromRotationMatrix(_m1$3);this.quaternion.premultiply(_q1.invert())}}add(object){if(arguments.length>1){for(let i=0;i<arguments.length;i++){this.add(arguments[i])}return this}if(object===this){console.error("THREE.Object3D.add: object can't be added as a child of itself.",object);return this}if(object&&object.isObject3D){object.removeFromParent();object.parent=this;this.children.push(object);object.dispatchEvent(_addedEvent);_childaddedEvent.child=object;this.dispatchEvent(_childaddedEvent);_childaddedEvent.child=null}else{console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",object)}return this}remove(object){if(arguments.length>1){for(let i=0;i<arguments.length;i++){this.remove(arguments[i])}return this}const index=this.children.indexOf(object);if(index!==-1){object.parent=null;this.children.splice(index,1);object.dispatchEvent(_removedEvent);_childremovedEvent.child=object;this.dispatchEvent(_childremovedEvent);_childremovedEvent.child=null}return this}removeFromParent(){const parent=this.parent;if(parent!==null){parent.remove(this)}return this}clear(){return this.remove(...this.children)}
4007attach(object){this.updateWorldMatrix(true,false);_m1$3.copy(this.matrixWorld).invert();if(object.parent!==null){object.parent.updateWorldMatrix(true,false);_m1$3.multiply(object.parent.matrixWorld)}object.applyMatrix4(_m1$3);object.removeFromParent();object.parent=this;this.children.push(object);object.updateWorldMatrix(false,true);object.dispatchEvent(_addedEvent);_childaddedEvent.child=object;this.dispatchEvent(_childaddedEvent);_childaddedEvent.child=null;return this}getObjectById(id){return this.getObjectByProperty("id",id)}getObjectByName(name){return this.getObjectByProperty("name",name)}getObjectByProperty(name,value){if(this[name]===value)return this;for(let i=0,l=this.children.length;i<l;i++){const child=this.children[i];const object=child.getObjectByProperty(name,value);if(object!==undefined){return object}}return undefined}getObjectsByProperty(name,value,result=[]){if(this[name]===value)result.push(this);const children=this.children;for(let i=0,l=children.length;i<l;i++){children[i].getObjectsByProperty(name,value,result)}return result}getWorldPosition(target){this.updateWorldMatrix(true,false);return target.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(target){this.updateWorldMatrix(true,false);this.matrixWorld.decompose(_position$3,target,_scale$2);return target}getWorldScale(target){this.updateWorldMatrix(true,false);this.matrixWorld.decompose(_position$3,_quaternion$2,target);return target}getWorldDirection(target){this.updateWorldMatrix(true,false);const e=this.matrixWorld.elements;return target.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(callback){callback(this);const children=this.children;for(let i=0,l=children.length;i<l;i++){children[i].traverse(callback)}}traverseVisible(callback){if(this.visible===false)return;callback(this);const children=this.children;for(let i=0,l=children.length;i<l;i++){children[i].traverseVisible(callback)}}traverseAncestors(callback){const parent=this.parent;if(parent!==null){callback(parent);parent.traverseAncestors(callback)}}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=true}updateMatrixWorld(force){if(this.matrixAutoUpdate)this.updateMatrix();if(this.matrixWorldNeedsUpdate||force){if(this.parent===null){this.matrixWorld.copy(this.matrix)}else{this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)}this.matrixWorldNeedsUpdate=false;force=true}const children=this.children;for(let i=0,l=children.length;i<l;i++){const child=children[i];if(child.matrixWorldAutoUpdate===true||force===true){child.updateMatrixWorld(force)}}}updateWorldMatrix(updateParents,updateChildren){const parent=this.parent;if(updateParents===true&&parent!==null&&parent.matrixWorldAutoUpdate===true){parent.updateWorldMatrix(true,false)}if(this.matrixAutoUpdate)this.updateMatrix();if(this.parent===null){this.matrixWorld.copy(this.matrix)}else{this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)}if(updateChildren===true){const children=this.children;for(let i=0,l=children.length;i<l;i++){const child=children[i];if(child.matrixWorldAutoUpdate===true){child.updateWorldMatrix(false,true)}}}}toJSON(meta){const isRootObject=meta===undefined||typeof meta==="string";const output={};if(isRootObject){meta={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}};output.metadata={version:4.6,type:"Object",generator:"Object3D.toJSON"}}const object={};object.uuid=this.uuid;object.type=this.type;if(this.name!=="")object.name=this.name;if(this.castShadow===true)object.castShadow=true;if(this.receiveShadow===true)object.receiveShadow=true;if(this.visible===false)object.visible=false;if(this.frustumCulled===false)object.frustumCulled=false;if(this.renderOrder!==0)object.renderOrder=this.renderOrder;if(Object.keys(this.userData).length>0)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.visibility=this._visibility;object.active=this._active;object.bounds=this._bounds.map(bound=>({boxInitialized:bound.boxInitialized,boxMin:bound.box.min.toArray(),boxMax:bound.box.max.toArray(),sphereInitialized:bound.sphereInitialized,sphereRadius:bound.sphere.radius,sphereCenter:bound.sphere.center.toArray()}));object.maxGeometryCount=this._maxGeometryCount;object.maxVertexCount=this._maxVertexCount;object.maxIndexCount=this._maxIndexCount;object.geometryInitialized=this._geometryInitialized;object.geometryCount=this._geometryCount;object.matricesTexture=this._matricesTexture.toJSON(meta);if(this.boundingSphere!==null){object.boundingSphere={center:object.boundingSphere.center.toArray(),radius:object.boundingSphere.radius}}if(this.boundingBox!==null){object.boundingBox={min:object.boundingBox.min.toArray(),max:object.boundingBox.max.toArray()}}}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;i<l;i++){const shape=shapes[i];serialize(meta.shapes,shape)}}else{serialize(meta.shapes,shapes)}}}if(this.isSkinnedMesh){object.bindMode=this.bindMode;object.bindMatrix=this.bindMatrix.toArray();if(this.skeleton!==undefined){serialize(meta.skeletons,this.skeleton);object.skeleton=this.skeleton.uuid}}if(this.material!==undefined){if(Array.isArray(this.material)){const uuids=[];for(let i=0,l=this.material.length;i<l;i++){uuids.push(serialize(meta.materials,this.material[i]))}object.material=uuids}else{object.material=serialize(meta.materials,this.material)}}if(this.children.length>0){object.children=[];for(let i=0;i<this.children.length;i++){object.children.push(this.children[i].toJSON(meta).object)}}if(this.animations.length>0){object.animations=[];for(let i=0;i<this.animations.length;i++){const animation=this.animations[i];object.animations.push(serialize(meta.animations,animation))}}if(isRootObject){const geometries=extractFromCache(meta.geometries);const materials=extractFromCache(meta.materials);const textures=extractFromCache(meta.textures);const images=extractFromCache(meta.images);const shapes=extractFromCache(meta.shapes);const skeletons=extractFromCache(meta.skeletons);const animations=extractFromCache(meta.animations);const nodes=extractFromCache(meta.nodes);if(geometries.length>0)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;i<source.children.length;i++){const child=source.children[i];this.add(child.clone())}}return this}}Object3D.DEFAULT_UP=new Vector3(0,1,0);Object3D.DEFAULT_MATRIX_AUTO_UPDATE=true;
4007Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=true;const _v0$1=new Vector3;const _v1$3=new Vector3;const _v2$2=new Vector3;const _v3$2=new Vector3;const _vab=new Vector3;const _vac=new Vector3;const _vbc=new Vector3;const _vap=new Vector3;const _vbp=new Vector3;const _vcp=new Vector3;class Triangle{constructor(a=new Vector3,b=new Vector3,c=new Vector3){this.a=a;this.b=b;this.c=c}static getNormal(a,b,c,target){target.subVectors(c,b);_v0$1.subVectors(a,b);target.cross(_v0$1);const targetLengthSq=target.lengthSq();if(targetLengthSq>0){return target.multiplyScalar(1/Math.sqrt(targetLengthSq))}return target.set(0,0,0)}static getBarycoord(point,a,b,c,target){_v0$1.subVectors(c,a);_v1$3.subVectors(b,a);_v2$2.subVectors(point,a);const dot00=_v0$1.dot(_v0$1);const dot01=_v0$1.dot(_v1$3);const dot02=_v0$1.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 isFrontFacing(a,b,c,direction){_v0$1.subVectors(c,b);_v1$3.subVectors(a,b);return _v0$1.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$1.subVectors(this.c,this.b);_v1$3.subVectors(this.a,this.b);return _v0$1.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)}
4007_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}
4007setHex(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.toWorkingColorSpace(this,colorSpace);return this}setRGB(r,g,b,colorSpace=ColorManagement.workingColorSpace){this.r=r;this.g=g;this.b=b;ColorManagement.toWorkingColorSpace(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.toWorkingColorSpace(this,colorSpace);return this}setStyle(style,colorSpace=SRGBColorSpace){function handleAlpha(string){if(string===undefined)return;if(parseFloat(string)<1){console.warn("THREE.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:console.warn("THREE.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{console.warn("THREE.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{console.warn("THREE.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.fromWorkingColorSpace(_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.fromWorkingColorSpace(_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+(g<b?6:0);break;case g:hue=(b-r)/delta+2;break;case b:hue=(r-g)/delta+4;break;}hue/=6}target.h=hue;target.s=saturation;target.l=lightness;return target}getRGB(target,colorSpace=ColorManagement.workingColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),colorSpace);target.r=_color.r;target.g=_color.g;target.b=_color.b;return target}
4007getStyle(colorSpace=SRGBColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),colorSpace);const r=_color.r,g=_color.g,b=_color.b;if(colorSpace!==SRGBColorSpace){return`color(${colorSpace} ${r.toFixed(3)} ${g.toFixed(3)} ${b.toFixed(3)})`}return`rgb(${Math.round(r*255)},${Math.round(g*255)},${Math.round(b*255)})`}offsetHSL(h,s,l){this.getHSL(_hslA);return this.setHSL(_hslA.h+h,_hslA.s+s,_hslA.l+l)}add(color){this.r+=color.r;this.g+=color.g;this.b+=color.b;return this}addColors(color1,color2){this.r=color1.r+color2.r;this.g=color1.g+color2.g;this.b=color1.b+color2.b;return this}addScalar(s){this.r+=s;this.g+=s;this.b+=s;return this}sub(color){this.r=Math.max(0,this.r-color.r);this.g=Math.max(0,this.g-color.g);this.b=Math.max(0,this.b-color.b);return this}multiply(color){this.r*=color.r;this.g*=color.g;this.b*=color.b;return this}multiplyScalar(s){this.r*=s;this.g*=s;this.b*=s;return this}lerp(color,alpha){this.r+=(color.r-this.r)*alpha;this.g+=(color.g-this.g)*alpha;this.b+=(color.b-this.b)*alpha;return this}lerpColors(color1,color2,alpha){this.r=color1.r+(color2.r-color1.r)*alpha;this.g=color1.g+(color2.g-color1.g)*alpha;this.b=color1.b+(color2.b-color1.b)*alpha;return this}lerpHSL(color,alpha){this.getHSL(_hslA);color.getHSL(_hslB);const h=lerp(_hslA.h,_hslB.h,alpha);const s=lerp(_hslA.s,_hslB.s,alpha);const l=lerp(_hslA.l,_hslB.l,alpha);this.setHSL(h,s,l);return this}setFromVector3(v){this.r=v.x;this.g=v.y;this.b=v.z;return this}applyMatrix3(m){const r=this.r,g=this.g,b=this.b;const e=m.elements;this.r=e[0]*r+e[3]*g+e[6]*b;this.g=e[1]*r+e[4]*g+e[7]*b;this.b=e[2]*r+e[5]*g+e[8]*b;return this}equals(c){return c.r===this.r&&c.g===this.g&&c.b===this.b}fromArray(array,offset=0){this.r=array[offset];this.g=array[offset+1];this.b=array[offset+2];return this}toArray(array=[],offset=0){array[offset]=this.r;array[offset+1]=this.g;array[offset+2]=this.b;return array}fromBufferAttribute(attribute,index){this.r=attribute.getX(index);this.g=attribute.getY(index);this.b=attribute.getZ(index);return this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r;yield this.g;yield this.b}}const _color=new Color;Color.NAMES=_colorKeywords;let _materialId=0;class Material extends EventDispatcher{constructor(){super();this.isMaterial=true;Object.defineProperty(this,"id",{value:_materialId++});this.uuid=generateUUID();this.name="";this.type="Material";this.blending=NormalBlending;this.side=FrontSide;this.vertexColors=false;this.opacity=1;this.transparent=false;this.alphaHash=false;this.blendSrc=SrcAlphaFactor;this.blendDst=OneMinusSrcAlphaFactor;this.blendEquation=AddEquation;this.blendSrcAlpha=null;this.blendDstAlpha=null;this.blendEquationAlpha=null;this.blendColor=new Color(0,0,0);this.blendAlpha=0;this.depthFunc=LessEqualDepth;this.depthTest=true;this.depthWrite=true;this.stencilWriteMask=255;this.stencilFunc=AlwaysStencilFunc;this.stencilRef=0;this.stencilFuncMask=255;this.stencilFail=KeepStencilOp;this.stencilZFail=KeepStencilOp;this.stencilZPass=KeepStencilOp;this.stencilWrite=false;this.clippingPlanes=null;this.clipIntersection=false;this.clipShadows=false;this.shadowSide=null;this.colorWrite=true;this.precision=null;this.polygonOffset=false;this.polygonOffsetFactor=0;this.polygonOffsetUnits=0;this.dithering=false;this.alphaToCoverage=false;this.premultipliedAlpha=false;this.forceSinglePass=false;this.visible=true;this.toneMapped=true;this.userData={};this.version=0;this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(value){if(this._alphaTest>0!==value>0){this.version++}this._alphaTest=value}onBuild(){}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){console.warn(`THREE.Material: parameter '${key}' has value of undefined.`);continue}const currentValue=this[key];if(currentValue===undefined){console.warn(`THREE.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}}}
4007toJSON(meta){const isRootObject=meta===undefined||typeof meta==="string";if(isRootObject){meta={textures:{},images:{}}}const data={metadata:{version:4.6,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.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}
vendor: 5,697 bytes, line 4007
4007if(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.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;
4007this.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.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&=~8388608;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)console.warn("THREE.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]}const DataUtils={toHalfFloat:toHalfFloat,fromHalfFloat:fromHalfFloat};const _vector$9=new Vector3;const _vector2$1=new Vector2;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;this.name="";this.array=array;this.itemSize=itemSize;this.count=array!==undefined?array.length/itemSize:0;this.normalized=normalized;this.usage=StaticDrawUsage;this._updateRange={offset:0,count:-1};this.updateRanges=[];this.gpuType=FloatType;this.version=0}onUploadCallback(){}set needsUpdate(value){if(value===true)this.version++}get updateRange(){warnOnce("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.");return this._updateRange}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;
4007for(let i=0,l=this.itemSize;i<l;i++){this.array[index1+i]=attribute.array[index2+i]}return this}copyArray(array){this.array.set(array);return this}applyMatrix3(m){if(this.itemSize===2){for(let i=0,l=this.count;i<l;i++){_vector2$1.fromBufferAttribute(this,i);_vector2$1.applyMatrix3(m);this.setXY(i,_vector2$1.x,_vector2$1.y)}}else if(this.itemSize===3){for(let i=0,l=this.count;i<l;i++){_vector$9.fromBufferAttribute(this,i);_vector$9.applyMatrix3(m);this.setXYZ(i,_vector$9.x,_vector$9.y,_vector$9.z)}}return this}applyMatrix4(m){for(let i=0,l=this.count;i<l;i++){_vector$9.fromBufferAttribute(this,i);_vector$9.applyMatrix4(m);this.setXYZ(i,_vector$9.x,_vector$9.y,_vector$9.z)}return this}applyNormalMatrix(m){for(let i=0,l=this.count;i<l;i++){_vector$9.fromBufferAttribute(this,i);_vector$9.applyNormalMatrix(m);this.setXYZ(i,_vector$9.x,_vector$9.y,_vector$9.z)}return this}transformDirection(m){for(let i=0,l=this.count;i<l;i++){_vector$9.fromBufferAttribute(this,i);_vector$9.transformDirection(m);this.setXYZ(i,_vector$9.x,_vector$9.y,_vector$9.z)}return this}set(value,offset=0){this.array.set(value,offset);return this}getComponent(index,component){let value=this.array[index*this.itemSize+component];if(this.normalized)value=denormalize(value,this.array);return value}setComponent(index,component,value){if(this.normalized)value=normalize(value,this.array);this.array[index*this.itemSize+component]=value;return this}getX(index){let x=this.array[index*this.itemSize];if(this.normalized)x=denormalize(x,this.array);return x}setX(index,x){if(this.normalized)x=normalize(x,this.array);this.array[index*this.itemSize]=x;return this}getY(index){let y=this.array[index*this.itemSize+1];if(this.normalized)y=denormalize(y,this.array);return y}setY(index,y){if(this.normalized)y=normalize(y,this.array);this.array[index*this.itemSize+1]=y;return this}getZ(index){let z=this.array[index*this.itemSize+2];if(this.normalized)z=denormalize(z,this.array);return z}setZ(index,z){if(this.normalized)z=normalize(z,this.array);this.array[index*this.itemSize+2]=z;return this}getW(index){let w=this.array[index*this.itemSize+3];if(this.normalized)w=denormalize(w,this.array);return w}setW(index,w){if(this.normalized)w=normalize(w,this.array);this.array[index*this.itemSize+3]=w;return this}setXY(index,x,y){index*=this.itemSize;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array)}this.array[index+0]=x;this.array[index+1]=y;return this}setXYZ(index,x,y,z){index*=this.itemSize;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array);z=normalize(z,this.array)}this.array[index+0]=x;this.array[index+1]=y;this.array[index+2]=z;return this}setXYZW(index,x,y,z,w){index*=this.itemSize;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array);z=normalize(z,this.array);w=normalize(w,this.array)}this.array[index+0]=x;this.array[index+1]=y;this.array[index+2]=z;this.array[index+3]=w;return this}onUpload(callback){this.onUploadCallback=callback;return this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const data={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};if(this.name!=="")data.name=this.name;if(this.usage!==StaticDrawUsage)data.usage=this.usage;return data}}class Int8BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Int8Array(array),itemSize,normalized)}}class Uint8BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Uint8Array(array),itemSize,normalized)}}class Uint8ClampedBufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Uint8ClampedArray(array),itemSize,normalized)}}class Int16BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Int16Array(array),itemSize,normalized)}}class Uint16BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Uint16Array(array),itemSize,normalized)}}class Int32BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Int32Array(array),itemSize,normalized)}}class Uint32BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Uint32Array(array),itemSize,normalized)}}class Float16BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Uint16Array(array),itemSize,normalized);this.isFloat16BufferAttribute=true}getX(index){let x=fromHalfFloat(this.array[index*this.itemSize]);if(this.normalized)x=denormalize(x,this.array);return x}setX(index,x){if(this.normalized)x=normalize(x,this.array);this.array[index*this.itemSize]=toHalfFloat(x);return this}getY(index){let y=fromHalfFloat(this.array[index*this.itemSize+1]);if(this.normalized)y=denormalize(y,this.array);return y}setY(index,y){if(this.normalized)y=normalize(y,this.array);this.array[index*this.itemSize+1]=toHalfFloat(y);return this}getZ(index){let z=fromHalfFloat(this.array[index*this.itemSize+2]);if(this.normalized)z=denormalize(z,this.array);return z}setZ(index,z){if(this.normalized)z=normalize(z,this.array);this.array[index*this.itemSize+2]=toHalfFloat(z);return this}getW(index){let w=fromHalfFloat(this.array[index*this.itemSize+3]);if(this.normalized)w=denormalize(w,this.array);return w}
4007setW(index,w){if(this.normalized)w=normalize(w,this.array);this.array[index*this.itemSize+3]=toHalfFloat(w);return this}setXY(index,x,y){index*=this.itemSize;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array)}this.array[index+0]=toHalfFloat(x);this.array[index+1]=toHalfFloat(y);return this}setXYZ(index,x,y,z){index*=this.itemSize;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array);z=normalize(z,this.array)}this.array[index+0]=toHalfFloat(x);this.array[index+1]=toHalfFloat(y);this.array[index+2]=toHalfFloat(z);return this}setXYZW(index,x,y,z,w){index*=this.itemSize;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array);z=normalize(z,this.array);w=normalize(w,this.array)}this.array[index+0]=toHalfFloat(x);this.array[index+1]=toHalfFloat(y);this.array[index+2]=toHalfFloat(z);this.array[index+3]=toHalfFloat(w);return this}}class Float32BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Float32Array(array),itemSize,normalized)}}let _id$2=0;const _m1$2=new Matrix4;const _obj=new Object3D;const _offset=new Vector3;const _box$2=new Box3;
4007const _boxMorphTargets=new Box3;const _vector$8=new Vector3;class BufferGeometry extends EventDispatcher{constructor(){super();this.isBufferGeometry=true;Object.defineProperty(this,"id",{value:_id$2++});this.uuid=generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=false;this.groups=[];this.boundingBox=null;this.boundingSphere=null;this.drawRange={start:0,count:Infinity};this.userData={}}getIndex(){return this.index}setIndex(index){if(Array.isArray(index)){this.index=new(arrayNeedsUint32(index)?Uint32BufferAttribute:Uint16BufferAttribute)(index,1)}else{this.index=index}return this}getAttribute(name){return this.attributes[name]}setAttribute(name,attribute){this.attributes[name]=attribute;return this}deleteAttribute(name){delete this.attributes[name];return this}hasAttribute(name){return this.attributes[name]!==undefined}addGroup(start,count,materialIndex=0){this.groups.push({start:start,count:count,materialIndex:materialIndex})}clearGroups(){this.groups=[]}setDrawRange(start,count){this.drawRange.start=start;this.drawRange.count=count}applyMatrix4(matrix){const position=this.attributes.position;if(position!==undefined){position.applyMatrix4(matrix);position.needsUpdate=true}const normal=this.attributes.normal;if(normal!==undefined){const normalMatrix=new Matrix3().getNormalMatrix(matrix);normal.applyNormalMatrix(normalMatrix);normal.needsUpdate=true}const tangent=this.attributes.tangent;if(tangent!==undefined){tangent.transformDirection(matrix);tangent.needsUpdate=true}if(this.boundingBox!==null){this.computeBoundingBox()}if(this.boundingSphere!==null){this.computeBoundingSphere()}return this}applyQuaternion(q){_m1$2.makeRotationFromQuaternion(q);this.applyMatrix4(_m1$2);return this}rotateX(angle){_m1$2.makeRotationX(angle);this.applyMatrix4(_m1$2);return this}rotateY(angle){_m1$2.makeRotationY(angle);this.applyMatrix4(_m1$2);return this}rotateZ(angle){_m1$2.makeRotationZ(angle);this.applyMatrix4(_m1$2);return this}translate(x,y,z){_m1$2.makeTranslation(x,y,z);this.applyMatrix4(_m1$2);return this}scale(x,y,z){_m1$2.makeScale(x,y,z);this.applyMatrix4(_m1$2);return this}lookAt(vector){_obj.lookAt(vector);_obj.updateMatrix();this.applyMatrix4(_obj.matrix);return this}center(){this.computeBoundingBox();this.boundingBox.getCenter(_offset).negate();this.translate(_offset.x,_offset.y,_offset.z);return this}setFromPoints(points){const position=[];for(let i=0,l=points.length;i<l;i++){const point=points[i];position.push(point.x,point.y,point.z||0)}this.setAttribute("position",new Float32BufferAttribute(position,3));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){console.error("THREE.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;i<il;i++){const morphAttribute=morphAttributesPosition[i];_box$2.setFromBufferAttribute(morphAttribute);if(this.morphTargetsRelative){_vector$8.addVectors(this.boundingBox.min,_box$2.min);this.boundingBox.expandByPoint(_vector$8);_vector$8.addVectors(this.boundingBox.max,_box$2.max);this.boundingBox.expandByPoint(_vector$8)}else{this.boundingBox.expandByPoint(_box$2.min);this.boundingBox.expandByPoint(_box$2.max)}}}}else{this.boundingBox.makeEmpty()}if(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z)){console.error("THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.",this)}}computeBoundingSphere(){if(this.boundingSphere===null){this.boundingSphere=new Sphere}const position=this.attributes.position;const morphAttributesPosition=this.morphAttributes.position;if(position&&position.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this);this.boundingSphere.set(new Vector3,Infinity);return}if(position){const center=this.boundingSphere.center;_box$2.setFromBufferAttribute(position);if(morphAttributesPosition){for(let i=0,il=morphAttributesPosition.length;i<il;i++){const morphAttribute=morphAttributesPosition[i];_boxMorphTargets.setFromBufferAttribute(morphAttribute);if(this.morphTargetsRelative){_vector$8.addVectors(_box$2.min,_boxMorphTargets.min);_box$2.expandByPoint(_vector$8);_vector$8.addVectors(_box$2.max,_boxMorphTargets.max);_box$2.expandByPoint(_vector$8)}else{_box$2.expandByPoint(_boxMorphTargets.min);_box$2.expandByPoint(_boxMorphTargets.max)}}}_box$2.getCenter(center);let maxRadiusSq=0;for(let i=0,il=position.count;i<il;i++){_vector$8.fromBufferAttribute(position,i);maxRadiusSq=Math.max(maxRadiusSq,center.distanceToSquared(_vector$8))}if(morphAttributesPosition){for(let i=0,il=morphAttributesPosition.length;i<il;i++){const morphAttribute=morphAttributesPosition[i];const morphTargetsRelative=this.morphTargetsRelative;for(let j=0,jl=morphAttribute.count;j<jl;j++){_vector$8.fromBufferAttribute(morphAttribute,j);if(morphTargetsRelative){_offset.fromBufferAttribute(position,j);_vector$8.add(_offset)}maxRadiusSq=Math.max(maxRadiusSq,center.distanceToSquared(_vector$8))}}}this.boundingSphere.radius=Math.sqrt(maxRadiusSq);if(isNaN(this.boundingSphere.radius)){console.error("THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.",this)}}}computeTangents(){const index=this.index;const attributes=this.attributes;if(index===null||attributes.position===undefined||attributes.normal===undefined||attributes.uv===undefined){console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}const positionAttribute=attributes.position;const normalAttribute=attributes.normal;const uvAttribute=attributes.uv;if(this.hasAttribute("tangent")===false){this.setAttribute("tangent",new BufferAttribute(new Float32Array(4*positionAttribute.count),4))}const tangentAttribute=this.getAttribute("tangent");const tan1=[],tan2=[];for(let i=0;i<positionAttribute.count;i++){tan1[i]=new Vector3;tan2[i]=new Vector3}const vA=new Vector3,vB=new Vector3,vC=new Vector3,uvA=new Vector2,uvB=new Vector2,uvC=new Vector2,sdir=new Vector3,tdir=new Vector3;function handleTriangle(a,b,c){vA.fromBufferAttribute(positionAttribute,a);vB.fromBufferAttribute(positionAttribute,b);vC.fromBufferAttribute(positionAttribute,c);uvA.fromBufferAttribute(uvAttribute,a);uvB.fromBufferAttribute(uvAttribute,b);uvC.fromBufferAttribute(uvAttribute,c);vB.sub(vA);vC.sub(vA);uvB.sub(uvA);uvC.sub(uvA);const r=1/(uvB.x*uvC.y-uvC.x*uvB.y);if(!isFinite(r))return;sdir.copy(vB).multiplyScalar(uvC.y).addScaledVector(vC,-uvB.y).multiplyScalar(r);tdir.copy(vC).multiplyScalar(uvB.x).addScaledVector(vB,-uvC.x).multiplyScalar(r);tan1[a].add(sdir);tan1[b].add(sdir);tan1[c].add(sdir);tan2[a].add(tdir);tan2[b].add(tdir);tan2[c].add(tdir)}let groups=this.groups;if(groups.length===0){groups=[{start:0,count:index.count}]}for(let i=0,il=groups.length;i<il;++i){const group=groups[i];const start=group.start;const count=group.count;for(let j=start,jl=start+count;j<jl;j+=3){handleTriangle(index.getX(j+0),index.getX(j+1),index.getX(j+2))}}const tmp=new Vector3,tmp2=new Vector3;
4007const n=new Vector3,n2=new Vector3;function handleVertex(v){n.fromBufferAttribute(normalAttribute,v);n2.copy(n);const t=tan1[v];tmp.copy(t);tmp.sub(n.multiplyScalar(n.dot(t))).normalize();tmp2.crossVectors(n2,t);const test=tmp2.dot(tan2[v]);const w=test<0?-1:1;tangentAttribute.setXYZW(v,tmp.x,tmp.y,tmp.z,w)}for(let i=0,il=groups.length;i<il;++i){const group=groups[i];const start=group.start;const count=group.count;for(let j=start,jl=start+count;j<jl;j+=3){handleVertex(index.getX(j+0));handleVertex(index.getX(j+1));handleVertex(index.getX(j+2))}}}computeVertexNormals(){const index=this.index;const positionAttribute=this.getAttribute("position");if(positionAttribute!==undefined){let normalAttribute=this.getAttribute("normal");if(normalAttribute===undefined){normalAttribute=new BufferAttribute(new Float32Array(positionAttribute.count*3),3);this.setAttribute("normal",normalAttribute)}else{for(let i=0,il=normalAttribute.count;i<il;i++){normalAttribute.setXYZ(i,0,0,0)}}const pA=new Vector3,pB=new Vector3,pC=new Vector3;const nA=new Vector3,nB=new Vector3,nC=new Vector3;const cb=new Vector3,ab=new Vector3;if(index){for(let i=0,il=index.count;i<il;i+=3){const vA=index.getX(i+0);const vB=index.getX(i+1);const vC=index.getX(i+2);pA.fromBufferAttribute(positionAttribute,vA);pB.fromBufferAttribute(positionAttribute,vB);pC.fromBufferAttribute(positionAttribute,vC);cb.subVectors(pC,pB);ab.subVectors(pA,pB);cb.cross(ab);nA.fromBufferAttribute(normalAttribute,vA);nB.fromBufferAttribute(normalAttribute,vB);nC.fromBufferAttribute(normalAttribute,vC);nA.add(cb);nB.add(cb);nC.add(cb);normalAttribute.setXYZ(vA,nA.x,nA.y,nA.z);normalAttribute.setXYZ(vB,nB.x,nB.y,nB.z);normalAttribute.setXYZ(vC,nC.x,nC.y,nC.z)}}else{for(let i=0,il=positionAttribute.count;i<il;i+=3){pA.fromBufferAttribute(positionAttribute,i+0);pB.fromBufferAttribute(positionAttribute,i+1);pC.fromBufferAttribute(positionAttribute,i+2);cb.subVectors(pC,pB);ab.subVectors(pA,pB);cb.cross(ab);normalAttribute.setXYZ(i+0,cb.x,cb.y,cb.z);normalAttribute.setXYZ(i+1,cb.x,cb.y,cb.z);normalAttribute.setXYZ(i+2,cb.x,cb.y,cb.z)}}this.normalizeNormals();normalAttribute.needsUpdate=true}}normalizeNormals(){const normals=this.attributes.normal;for(let i=0,il=normals.count;i<il;i++){_vector$8.fromBufferAttribute(normals,i);_vector$8.normalize();normals.setXYZ(i,_vector$8.x,_vector$8.y,_vector$8.z)}}toNonIndexed(){function convertBufferAttribute(attribute,indices){const array=attribute.array;const itemSize=attribute.itemSize;const normalized=attribute.normalized;const array2=new array.constructor(indices.length*itemSize);let index=0,index2=0;for(let i=0,l=indices.length;i<l;i++){if(attribute.isInterleavedBufferAttribute){index=indices[i]*attribute.data.stride+attribute.offset}else{index=indices[i]*itemSize}for(let j=0;j<itemSize;j++){array2[index2++]=array[index++]}}return new BufferAttribute(array2,itemSize,normalized)}if(this.index===null){console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.");return this}const geometry2=new BufferGeometry;const indices=this.index.array;const attributes=this.attributes;for(const name in attributes){const attribute=attributes[name];const newAttribute=convertBufferAttribute(attribute,indices);geometry2.setAttribute(name,newAttribute)}const morphAttributes=this.morphAttributes;for(const name in morphAttributes){const morphArray=[];const morphAttribute=morphAttributes[name];for(let i=0,il=morphAttribute.length;i<il;i++){const attribute=morphAttribute[i];const newAttribute=convertBufferAttribute(attribute,indices);morphArray.push(newAttribute)}geometry2.morphAttributes[name]=morphArray}geometry2.morphTargetsRelative=this.morphTargetsRelative;const groups=this.groups;for(let i=0,l=groups.length;i<l;i++){const group=groups[i];geometry2.addGroup(group.start,group.count,group.materialIndex)}return geometry2}toJSON(){const data={metadata:{version:4.6,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};data.uuid=this.uuid;
4007data.type=this.type;if(this.name!=="")data.name=this.name;if(Object.keys(this.userData).length>0)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;i<il;i++){const attribute=attributeArray[i];array.push(attribute.toJSON(data.data))}if(array.length>0){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={center:boundingSphere.center.toArray(),radius:boundingSphere.radius}}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(data))}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;i<l;i++){array.push(morphAttribute[i].clone(data))}this.morphAttributes[name]=array}this.morphTargetsRelative=source.morphTargetsRelative;const groups=source.groups;for(let i=0,l=groups.length;i<l;i++){const group=groups[i];this.addGroup(group.start,group.count,group.materialIndex)}const boundingBox=source.boundingBox;if(boundingBox!==null){this.boundingBox=boundingBox.clone()}const boundingSphere=source.boundingSphere;if(boundingSphere!==null){this.boundingSphere=boundingSphere.clone()}this.drawRange.start=source.drawRange.start;this.drawRange.count=source.drawRange.count;this.userData=source.userData;return this}dispose(){this.dispatchEvent({type:"dispose"})}}const _inverseMatrix$3=new Matrix4;const _ray$3=new Ray;const _sphere$6=new Sphere;const _sphereHitAt=new Vector3;const _vA$1=new Vector3;const _vB$1=new Vector3;const _vC$1=new Vector3;const _tempA=new Vector3;const _morphA=new Vector3;const _uvA$1=new Vector2;const _uvB$1=new Vector2;const _uvC$1=new Vector2;const _normalA=new Vector3;const _normalB=new Vector3;const _normalC=new Vector3;const _intersectionPoint=new Vector3;const _intersectionPointWorld=new Vector3;class Mesh extends Object3D{constructor(geometry=new BufferGeometry,material=new MeshBasicMaterial){super();this.isMesh=true;this.type="Mesh";this.geometry=geometry;this.material=material;this.updateMorphTargets()}copy(source,recursive){super.copy(source,recursive);if(source.morphTargetInfluences!==undefined){this.morphTargetInfluences=source.morphTargetInfluences.slice()}if(source.morphTargetDictionary!==undefined){this.morphTargetDictionary=Object.assign({},source.morphTargetDictionary)}this.material=Array.isArray(source.material)?source.material.slice():source.material;this.geometry=source.geometry;return this}updateMorphTargets(){const geometry=this.geometry;const morphAttributes=geometry.morphAttributes;const keys=Object.keys(morphAttributes);if(keys.length>0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;m<ml;m++){const name=morphAttribute[m].name||String(m);this.morphTargetInfluences.push(0);this.morphTargetDictionary[name]=m}}}}getVertexPosition(index,target){const geometry=this.geometry;const position=geometry.attributes.position;const morphPosition=geometry.morphAttributes.position;const morphTargetsRelative=geometry.morphTargetsRelative;target.fromBufferAttribute(position,index);const morphInfluences=this.morphTargetInfluences;if(morphPosition&&morphInfluences){_morphA.set(0,0,0);for(let i=0,il=morphPosition.length;i<il;i++){const influence=morphInfluences[i];const morphAttribute=morphPosition[i];if(influence===0)continue;_tempA.fromBufferAttribute(morphAttribute,index);if(morphTargetsRelative){_morphA.addScaledVector(_tempA,influence)}else{_morphA.addScaledVector(_tempA.sub(target),influence)}}target.add(_morphA)}return target}raycast(raycaster,intersects){const geometry=this.geometry;const material=this.material;
4007const matrixWorld=this.matrixWorld;if(material===undefined)return;if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_sphere$6.copy(geometry.boundingSphere);_sphere$6.applyMatrix4(matrixWorld);_ray$3.copy(raycaster.ray).recast(raycaster.near);if(_sphere$6.containsPoint(_ray$3.origin)===false){if(_ray$3.intersectSphere(_sphere$6,_sphereHitAt)===null)return;if(_ray$3.origin.distanceToSquared(_sphereHitAt)>(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;i<il;i++){const group=groups[i];const groupMaterial=material[group.materialIndex];const start=Math.max(group.start,drawRange.start);const end=Math.min(index.count,Math.min(group.start+group.count,drawRange.start+drawRange.count));for(let j=start,jl=end;j<jl;j+=3){const a=index.getX(j);const b=index.getX(j+1);const c=index.getX(j+2);intersection=checkGeometryIntersection(this,groupMaterial,raycaster,rayLocalSpace,uv,uv1,normal,a,b,c);if(intersection){intersection.faceIndex=Math.floor(j/3);intersection.face.materialIndex=group.materialIndex;intersects.push(intersection)}}}}else{const start=Math.max(0,drawRange.start);const end=Math.min(index.count,drawRange.start+drawRange.count);for(let i=start,il=end;i<il;i+=3){const a=index.getX(i);const b=index.getX(i+1);const c=index.getX(i+2);intersection=checkGeometryIntersection(this,material,raycaster,rayLocalSpace,uv,uv1,normal,a,b,c);if(intersection){intersection.faceIndex=Math.floor(i/3);intersects.push(intersection)}}}}else if(position!==undefined){if(Array.isArray(material)){for(let i=0,il=groups.length;i<il;i++){const group=groups[i];const groupMaterial=material[group.materialIndex];const start=Math.max(group.start,drawRange.start);const end=Math.min(position.count,Math.min(group.start+group.count,drawRange.start+drawRange.count));for(let j=start,jl=end;j<jl;j+=3){const a=j;const b=j+1;const c=j+2;intersection=checkGeometryIntersection(this,groupMaterial,raycaster,rayLocalSpace,uv,uv1,normal,a,b,c);if(intersection){intersection.faceIndex=Math.floor(j/3);intersection.face.materialIndex=group.materialIndex;intersects.push(intersection)}}}}else{const start=Math.max(0,drawRange.start);const end=Math.min(position.count,drawRange.start+drawRange.count);for(let i=start,il=end;i<il;i+=3){const a=i;const b=i+1;const c=i+2;intersection=checkGeometryIntersection(this,material,raycaster,rayLocalSpace,uv,uv1,normal,a,b,c);if(intersection){intersection.faceIndex=Math.floor(i/3);intersects.push(intersection)}}}}}}function checkIntersection(object,material,raycaster,ray,pA,pB,pC,point){let intersect;if(material.side===BackSide){intersect=ray.intersectTriangle(pC,pB,pA,true,point)}else{intersect=ray.intersectTriangle(pA,pB,pC,material.side===FrontSide,point)}if(intersect===null)return null;_intersectionPointWorld.copy(point);_intersectionPointWorld.applyMatrix4(object.matrixWorld);const distance=raycaster.ray.origin.distanceTo(_intersectionPointWorld);if(distance<raycaster.near||distance>raycaster.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(object,material,raycaster,ray,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(intersection){if(uv){_uvA$1.fromBufferAttribute(uv,a);_uvB$1.fromBufferAttribute(uv,b);_uvC$1.fromBufferAttribute(uv,c);intersection.uv=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)}if(uv1){_uvA$1.fromBufferAttribute(uv1,a);_uvB$1.fromBufferAttribute(uv1,b);_uvC$1.fromBufferAttribute(uv1,c);intersection.uv1=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)}if(normal){_normalA.fromBufferAttribute(normal,a);_normalB.fromBufferAttribute(normal,b);_normalC.fromBufferAttribute(normal,c);
4007intersection.normal=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_normalA,_normalB,_normalC,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}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;iy<gridY1;iy++){const y=iy*segmentHeight-heightHalf;for(let ix=0;ix<gridX1;ix++){const x=ix*segmentWidth-widthHalf;vector[u]=x*udir;vector[v]=y*vdir;vector[w]=depthHalf;vertices.push(vector.x,vector.y,vector.z);vector[u]=0;vector[v]=0;vector[w]=depth>0?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;iy<gridY;iy++){for(let ix=0;ix<gridX;ix++){const a=numberOfVertices+ix+gridX1*iy;const b=numberOfVertices+ix+gridX1*(iy+1);const c=numberOfVertices+(ix+1)+gridX1*(iy+1);const d=numberOfVertices+(ix+1)+gridX1*iy;indices.push(a,b,d);indices.push(b,c,d);groupCount+=6}}scope.addGroup(groupStart,groupCount,materialIndex);groupStart+=groupCount;numberOfVertices+=vertexCounter}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new BoxGeometry(data.width,data.height,data.depth,data.widthSegments,data.heightSegments,data.depthSegments)}}function cloneUniforms(src){const dst={};for(const u in src){dst[u]={};for(const p in src[u]){const property=src[u][p];if(property&&(property.isColor||property.isMatrix3||property.isMatrix4||property.isVector2||property.isVector3||property.isVector4||property.isTexture||property.isQuaternion)){if(property.isRenderTargetTexture){console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().");dst[u][p]=null}else{dst[u][p]=property.clone()}}else if(Array.isArray(property)){dst[u][p]=property.slice()}else{dst[u][p]=property}}}return dst}function mergeUniforms(uniforms){const merged={};for(let u=0;u<uniforms.length;u++){const tmp=cloneUniforms(uniforms[u]);for(const p in tmp){merged[p]=tmp[p]}}return merged}function cloneUniformsGroups(src){const dst=[];for(let u=0;u<src.length;u++){dst.push(src[u].clone())}return dst}function getUnlitUniformColorSpace(renderer){const currentRenderTarget=renderer.getRenderTarget();if(currentRenderTarget===null){return renderer.outputColorSpace}if(currentRenderTarget.isXRRenderTarget===true){return currentRenderTarget.texture.colorSpace}return ColorManagement.workingColorSpace}const UniformsUtils={clone:cloneUniforms,merge:mergeUniforms};var default_vertex="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";var default_fragment="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";class ShaderMaterial extends Material{constructor(parameters){super();this.isShaderMaterial=true;this.type="ShaderMaterial";this.defines={};this.uniforms={};this.uniformsGroups=[];this.vertexShader=default_vertex;this.fragmentShader=default_fragment;this.linewidth=1;this.wireframe=false;this.wireframeLinewidth=1;this.fog=false;this.lights=false;this.clipping=false;this.forceSinglePass=true;this.extensions={clipCullDistance:false,multiDraw:false};this.defaultAttributeValues={"color":[1,1,1],"uv":[0,0],"uv1":[0,0]};this.index0AttributeName=undefined;this.uniformsNeedUpdate=false;this.glslVersion=null;if(parameters!==undefined){this.setValues(parameters)}}copy(source){super.copy(source);this.fragmentShader=source.fragmentShader;this.vertexShader=source.vertexShader;this.uniforms=cloneUniforms(source.uniforms);this.uniformsGroups=cloneUniformsGroups(source.uniformsGroups);this.defines=Object.assign({},source.defines);this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.fog=source.fog;this.lights=source.lights;this.clipping=source.clipping;this.extensions=Object.assign({},source.extensions);this.glslVersion=source.glslVersion;return this}toJSON(meta){const data=super.toJSON(meta);data.glslVersion=this.glslVersion;data.uniforms={};for(const name in this.uniforms){const uniform=this.uniforms[name];const value=uniform.value;if(value&&value.isTexture){data.uniforms[name]={type:"t",value:value.toJSON(meta).uuid}}else if(value&&value.isColor){data.uniforms[name]={type:"c",value:value.getHex()}}else if(value&&value.isVector2){data.uniforms[name]={type:"v2",value:value.toArray()}}else if(value&&value.isVector3){data.uniforms[name]={type:"v3",value:value.toArray()}}else if(value&&value.isVector4){data.uniforms[name]={type:"v4",value:value.toArray()}}else if(value&&value.isMatrix3){data.uniforms[name]={type:"m3",value:value.toArray()}}else if(value&&value.isMatrix4){data.uniforms[name]={type:"m4",value:value.toArray()}}else{data.uniforms[name]={value:value}}}if(Object.keys(this.defines).length>0)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}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;
4007this.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.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,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace){images=images!==undefined?images:[];mapping=mapping!==undefined?mapping:CubeReflectionMapping;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}}
4007class 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,options.mapping,options.wrapS,options.wrapT,options.magFilter,options.minFilter,options.format,options.type,options.anisotropy,options.colorSpace);this.texture.isRenderTargetTexture=true;this.texture.generateMipmaps=options.generateMipmaps!==undefined?options.generateMipmaps:false;this.texture.minFilter=options.minFilter!==undefined?options.minFilter:LinearFilter}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:` 4008 4009 varying vec3 vWorldDirection; 4010 4011 vec3 transformDirection( in vec3 dir, in mat4 matrix ) { 4012 4013 return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); 4014 4015 } 4016 4017 void main() { 4018 4019 vWorldDirection = transformDirection( position, modelMatrix ); 4020 4021 #include <begin_vertex> 4022 #include <project_vertex> 4023 4024 } 4025 `,fragmentShader:` 4026 4027 uniform sampler2D tEquirect; 4028 4029 varying vec3 vWorldDirection; 4030 4031 #include <common> 4032 4033 void main() { 4034 4035 vec3 direction = normalize( vWorldDirection ); 4036 4037 vec2 sampleUV = equirectUv( direction ); 4038 4039 gl_FragColor = texture2D( tEquirect, sampleUV ); 4040 4041 } 4042 `};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,depth,stencil){const currentRenderTarget=renderer.getRenderTarget();for(let i=0;i<6;i++){renderer.setRenderTarget(this,i);renderer.clear(color,depth,stencil)}renderer.setRenderTarget(currentRenderTarget)}}const _vector1=new Vector3;const _vector2=new Vector3;const _normalMatrix=new Matrix3;class Plane{constructor(normal=new Vector3(1,0,0),constant=0){this.isPlane=true;this.normal=normal;this.constant=constant}set(normal,constant){this.normal.copy(normal);this.constant=constant;return this}setComponents(x,y,z,w){this.normal.set(x,y,z);this.constant=w;return this}setFromNormalAndCoplanarPoint(normal,point){this.normal.copy(normal);this.constant=-point.dot(this.normal);return this}setFromCoplanarPoints(a,b,c){const normal=_vector1.subVectors(c,b).cross(_vector2.subVectors(a,b)).normalize();this.setFromNormalAndCoplanarPoint(normal,a);return this}copy(plane){this.normal.copy(plane.normal);this.constant=plane.constant;return this}normalize(){const inverseNormalLength=1/this.normal.length();this.normal.multiplyScalar(inverseNormalLength);this.constant*=inverseNormalLength;return this}negate(){this.constant*=-1;this.normal.negate();return this}distanceToPoint(point){return this.normal.dot(point)+this.constant}distanceToSphere(sphere){return this.distanceToPoint(sphere.center)-sphere.radius}projectPoint(point,target){return target.copy(point).addScaledVector(this.normal,-this.distanceToPoint(point))}intersectLine(line,target){const direction=line.delta(_vector1);const denominator=this.normal.dot(direction);if(denominator===0){if(this.distanceToPoint(line.start)===0){return target.copy(line.start)}return null}const t=-(line.start.dot(this.normal)+this.constant)/denominator;if(t<0||t>1){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);
4042const 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$5=new Sphere;const _vector$7=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){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();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$5.copy(object.boundingSphere).applyMatrix4(object.matrixWorld)}else{const geometry=object.geometry;if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_sphere$5.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld)}return this.intersectsSphere(_sphere$5)}intersectsSprite(sprite){_sphere$5.center.set(0,0,0);_sphere$5.radius=0.7071067811865476;_sphere$5.applyMatrix4(sprite.matrixWorld);return this.intersectsSphere(_sphere$5)}intersectsSphere(sphere){const planes=this.planes;const center=sphere.center;
4042const negRadius=-sphere.radius;for(let i=0;i<6;i++){const distance=planes[i].distanceToPoint(center);if(distance<negRadius){return false}}return true}intersectsBox(box){const planes=this.planes;for(let i=0;i<6;i++){const plane=planes[i];_vector$7.x=plane.normal.x>0?box.max.x:box.min.x;_vector$7.y=plane.normal.y>0?box.max.y:box.min.y;_vector$7.z=plane.normal.z>0?box.max.z:box.min.z;if(plane.distanceToPoint(_vector$7)<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)}}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(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 updateRange=attribute._updateRange;const updateRanges=attribute.updateRanges;gl.bindBuffer(bufferType,buffer);if(updateRange.count===-1&&updateRanges.length===0){gl.bufferSubData(bufferType,0,array)}if(updateRanges.length!==0){for(let i=0,l=updateRanges.length;i<l;i++){const range=updateRanges[i];gl.bufferSubData(bufferType,range.start*array.BYTES_PER_ELEMENT,array,range.start,range.count)}attribute.clearUpdateRanges()}if(updateRange.count!==-1){gl.bufferSubData(bufferType,updateRange.offset*array.BYTES_PER_ELEMENT,array,updateRange.offset,updateRange.count);updateRange.count=-1}attribute.onUploadCallback()}function get(attribute){if(attribute.isInterleavedBufferAttribute)attribute=attribute.data;return buffers.get(attribute)}function remove(attribute){if(attribute.isInterleavedBufferAttribute)attribute=attribute.data;const data=buffers.get(attribute);if(data){gl.deleteBuffer(data.buffer);buffers.delete(attribute)}}function update(attribute,bufferType){if(attribute.isGLBufferAttribute){const cached=buffers.get(attribute);if(!cached||cached.version<attribute.version){buffers.set(attribute,{buffer:attribute.buffer,type:attribute.type,bytesPerElement:attribute.elementSize,version:attribute.version})}return}if(attribute.isInterleavedBufferAttribute)attribute=attribute.data;const data=buffers.get(attribute);if(data===undefined){buffers.set(attribute,createBuffer(attribute,bufferType))}else if(data.version<attribute.version){if(data.size!==attribute.array.byteLength){throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.")}updateBuffer(data.buffer,attribute,bufferType);data.version=attribute.version}}return{get:get,remove:remove,update:update}}class PlaneGeometry extends BufferGeometry{constructor(width=1,height=1,widthSegments=1,heightSegments=1){super();this.type="PlaneGeometry";this.parameters={width:width,height:height,widthSegments:widthSegments,heightSegments:heightSegments};const width_half=width/2;const height_half=height/2;const gridX=Math.floor(widthSegments);const gridY=Math.floor(heightSegments);const gridX1=gridX+1;
4042const gridY1=gridY+1;const segment_width=width/gridX;const segment_height=height/gridY;const indices=[];const vertices=[];const normals=[];const uvs=[];for(let iy=0;iy<gridY1;iy++){const y=iy*segment_height-height_half;for(let ix=0;ix<gridX1;ix++){const x=ix*segment_width-width_half;vertices.push(x,-y,0);normals.push(0,0,1);uvs.push(ix/gridX);uvs.push(1-iy/gridY)}}for(let iy=0;iy<gridY;iy++){for(let ix=0;ix<gridX;ix++){const a=ix+gridX1*iy;const b=ix+gridX1*(iy+1);const c=ix+1+gridX1*(iy+1);const d=ix+1+gridX1*iy;indices.push(a,b,d);indices.push(b,c,d)}}this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2))}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new PlaneGeometry(data.width,data.height,data.widthSegments,data.heightSegments)}}var alphahash_fragment="#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif";var alphahash_pars_fragment="#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif";var alphamap_fragment="#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif";var alphamap_pars_fragment="#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif";var alphatest_fragment="#ifdef USE_ALPHATEST\n\t#ifdef ALPHA_TO_COVERAGE\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\tif ( diffuseColor.a < alphaTest ) discard;\n\t#endif\n#endif";var alphatest_pars_fragment="#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif";var aomap_fragment="#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif";var aomap_pars_fragment="#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif";var batching_pars_vertex="#ifdef USE_BATCHING\n\tattribute float batchId;\n\tuniform highp sampler2D batchingTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif";var batching_vertex="#ifdef USE_BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( batchId );\n#endif";var begin_vertex="vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif";var beginnormal_vertex="vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif";var bsdfs="float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );
4042\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated";var iridescence_fragment="#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );
4042\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif";var bumpmap_pars_fragment="#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif";var clipping_planes_fragment="#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif";var clipping_planes_pars_fragment="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif";var clipping_planes_pars_vertex="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif";var clipping_planes_vertex="#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif";var color_fragment="#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif";var color_pars_fragment="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif";var color_pars_vertex="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif";var color_vertex="#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif";var common="#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated";var cube_uv_reflection_fragment="#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif";var defaultnormal_vertex="vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );
4042\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif";var displacementmap_pars_vertex="#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif";var displacementmap_vertex="#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif";var emissivemap_fragment="#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif";var emissivemap_pars_fragment="#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif";var colorspace_fragment="gl_FragColor = linearToOutputTexel( gl_FragColor );";var colorspace_pars_fragment="\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}";var envmap_fragment="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif";var envmap_common_pars_fragment="#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif";var envmap_pars_fragment="#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif";var envmap_pars_vertex="#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif";var envmap_vertex="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t}
4042 else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif";var fog_vertex="#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif";var fog_pars_vertex="#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif";var fog_fragment="#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif";var fog_pars_fragment="#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif";var gradientmap_pars_fragment="#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}";var lightmap_fragment="#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif";var lightmap_pars_fragment="#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif";var lights_lambert_fragment="LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;";var lights_lambert_pars_fragment="varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert";var lights_pars_begin="uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}
4042\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif";var envmap_physical_pars_fragment="#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif";var lights_toon_fragment="ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;";var lights_toon_pars_fragment="varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon";var lights_phong_fragment="BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;";var lights_phong_pars_fragment="varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot
4042( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong";var lights_physical_fragment="PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;
4042\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif";var lights_physical_pars_fragment=
vendor: 15,307 bytes, line 4042
4042"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}";
4042var lights_fragment_begin="\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif";var lights_fragment_maps="#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif";var lights_fragment_end="#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif";var logdepthbuf_fragment="#if defined( USE_LOGDEPTHBUF )\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif";var logdepthbuf_pars_fragment="#if defined( USE_LOGDEPTHBUF )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif";var logdepthbuf_pars_vertex="#ifdef USE_LOGDEPTHBUF\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif";var logdepthbuf_vertex="#ifdef USE_LOGDEPTHBUF\n\tvFragDepth = 1.0 + gl_Position.w;\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif";var map_fragment="#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif";var map_pars_fragment="#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif";var map_particle_fragment="#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif";var map_particle_pars_fragment="#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif";var metalnessmap_fragment="float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif";var metalnessmap_pars_fragment="#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif";var morphinstance_vertex="#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[MORPHTARGETS_COUNT];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif";var morphcolor_vertex="#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif";var morphnormal_vertex="#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif";var morphtarget_pars_vertex="#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t#endif\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\t#ifndef USE_INSTANCING_MORPH\n\t\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\t#endif\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif";var morphtarget_vertex="#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif";var normal_fragment_begin="float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;";var normal_fragment_maps="#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );
4042\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif";var normal_pars_fragment="#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif";var normal_pars_vertex="#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif";var normal_vertex="#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif";var normalmap_pars_fragment="#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif";var clearcoat_normal_fragment_begin="#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif";var clearcoat_normal_fragment_maps="#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif";var clearcoat_pars_fragment="#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif";var iridescence_pars_fragment="#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif";var opaque_fragment="#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );";var packing="vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}";var premultiplied_alpha_fragment="#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif";var project_vertex="vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;";var dithering_fragment="#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif";var dithering_pars_fragment="#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif";var roughnessmap_fragment="float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif";var roughnessmap_pars_fragment="#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif";
4042var shadowmap_pars_fragment="#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;
4042\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tfloat shadow = 1.0;\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\t\n\t\tfloat lightToPositionLength = length( lightToPosition );\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\n\t\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\t\tshadow = (\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t\t) * ( 1.0 / 9.0 );\n\t\t\t#else\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n#endif";
4042var shadowmap_pars_vertex="#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif";var shadowmap_vertex="#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif";var shadowmask_pars_fragment="float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}";var skinbase_vertex="#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif";var skinning_pars_vertex="#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif";var skinning_vertex="#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif";var skinnormal_vertex="#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif";var specularmap_fragment="float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif";var specularmap_pars_fragment="#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif";var tonemapping_fragment="#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif";var tonemapping_pars_fragment=
vendor: 3,567 bytes, line 4042
4042"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tfloat startCompression = 0.8 - 0.04;\n\tfloat desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min(color.r, min(color.g, color.b));\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max(color.r, max(color.g, color.b));\n\tif (peak < startCompression) return color;\n\tfloat d = 1. - startCompression;\n\tfloat newPeak = 1. - d * d / (peak + d - startCompression);\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);\n\treturn mix(color,
4042newPeak * vec3(1, 1, 1), g);\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }";var transmission_fragment="#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif";var transmission_pars_fragment="#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
vendor: 8,962 bytes, line 4042
4042\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif";var uv_pars_fragment="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif";var uv_pars_vertex="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif";var uv_vertex="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif";var worldpos_vertex="#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif";const vertex$h="varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}";const fragment$h="uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";const vertex$g="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}";const fragment$g="#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float
4042flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";const vertex$f="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}";const fragment$f="uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";const vertex$e="#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}";const fragment$e="#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}";const vertex$d="#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}";const fragment$d="#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}";const vertex$c="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}";const fragment$c="uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";const vertex$b="uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}";const fragment$b="uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}";const vertex$a="#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}";const fragment$a="uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";const vertex$9="#define LAMBERT\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}";const fragment$9="#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_lambert_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_lambert_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";const vertex$8="#define MATCAP\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}";const fragment$8="#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
4042\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";const vertex$7="#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}";const fragment$7="#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}";const vertex$6="#define PHONG\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}";const fragment$6="#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";const vertex$5="#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}";const fragment$5=
vendor: 4,192 bytes, line 4042
4042"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
4042const vertex$4="#define TOON\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}";const fragment$4="#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";const vertex$3="uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}";const fragment$3="uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}";
vendor: 9,432 bytes, line 4042
4042const vertex$2="#include <common>\n#include <batching_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}";const fragment$2="uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <logdepthbuf_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}";const vertex$1="uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}";const fragment$1="uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}";const ShaderChunk={alphahash_fragment:alphahash_fragment,alphahash_pars_fragment:alphahash_pars_fragment,alphamap_fragment:alphamap_fragment,alphamap_pars_fragment:alphamap_pars_fragment,alphatest_fragment:alphatest_fragment,alphatest_pars_fragment:alphatest_pars_fragment,aomap_fragment:aomap_fragment,aomap_pars_fragment:aomap_pars_fragment,batching_pars_vertex:batching_pars_vertex,batching_vertex:batching_vertex,begin_vertex:begin_vertex,beginnormal_vertex:beginnormal_vertex,bsdfs:bsdfs,iridescence_fragment:iridescence_fragment,bumpmap_pars_fragment:bumpmap_pars_fragment,clipping_planes_fragment:clipping_planes_fragment,clipping_planes_pars_fragment:clipping_planes_pars_fragment,clipping_planes_pars_vertex:clipping_planes_pars_vertex,clipping_planes_vertex:clipping_planes_vertex,color_fragment:color_fragment,color_pars_fragment:color_pars_fragment,color_pars_vertex:color_pars_vertex,color_vertex:color_vertex,common:common,cube_uv_reflection_fragment:cube_uv_reflection_fragment,defaultnormal_vertex:defaultnormal_vertex,displacementmap_pars_vertex:displacementmap_pars_vertex,displacementmap_vertex:displacementmap_vertex,emissivemap_fragment:emissivemap_fragment,emissivemap_pars_fragment:emissivemap_pars_fragment,colorspace_fragment:colorspace_fragment,colorspace_pars_fragment:colorspace_pars_fragment,envmap_fragment:envmap_fragment,envmap_common_pars_fragment:envmap_common_pars_fragment,envmap_pars_fragment:envmap_pars_fragment,envmap_pars_vertex:envmap_pars_vertex,envmap_physical_pars_fragment:envmap_physical_pars_fragment,envmap_vertex:envmap_vertex,fog_vertex:fog_vertex,fog_pars_vertex:fog_pars_vertex,fog_fragment:fog_fragment,fog_pars_fragment:fog_pars_fragment,gradientmap_pars_fragment:gradientmap_pars_fragment,lightmap_fragment:lightmap_fragment,lightmap_pars_fragment:lightmap_pars_fragment,lights_lambert_fragment:lights_lambert_fragment,lights_lambert_pars_fragment:lights_lambert_pars_fragment,lights_pars_begin:lights_pars_begin,lights_toon_fragment:lights_toon_fragment,lights_toon_pars_fragment:lights_toon_pars_fragment,lights_phong_fragment:lights_phong_fragment,lights_phong_pars_fragment:lights_phong_pars_fragment,lights_physical_fragment:lights_physical_fragment,lights_physical_pars_fragment:lights_physical_pars_fragment,lights_fragment_begin:lights_fragment_begin,lights_fragment_maps:lights_fragment_maps,lights_fragment_end:lights_fragment_end,logdepthbuf_fragment:logdepthbuf_fragment,logdepthbuf_pars_fragment:logdepthbuf_pars_fragment,logdepthbuf_pars_vertex:logdepthbuf_pars_vertex,logdepthbuf_vertex:logdepthbuf_vertex,map_fragment:map_fragment,map_pars_fragment:map_pars_fragment,map_particle_fragment:map_particle_fragment,map_particle_pars_fragment:map_particle_pars_fragment,metalnessmap_fragment:metalnessmap_fragment,metalnessmap_pars_fragment:metalnessmap_pars_fragment,morphinstance_vertex:morphinstance_vertex,morphcolor_vertex:morphcolor_vertex,morphnormal_vertex:morphnormal_vertex,morphtarget_pars_vertex:morphtarget_pars_vertex,morphtarget_vertex:morphtarget_vertex,normal_fragment_begin:normal_fragment_begin,normal_fragment_maps:normal_fragment_maps,normal_pars_fragment:normal_pars_fragment,normal_pars_vertex:normal_pars_vertex,normal_vertex:normal_vertex,normalmap_pars_fragment:normalmap_pars_fragment,clearcoat_normal_fragment_begin:clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps:clearcoat_normal_fragment_maps,clearcoat_pars_fragment:clearcoat_pars_fragment,iridescence_pars_fragment:iridescence_pars_fragment,opaque_fragment:opaque_fragment,packing:packing,premultiplied_alpha_fragment:premultiplied_alpha_fragment,project_vertex:project_vertex,dithering_fragment:dithering_fragment,dithering_pars_fragment:dithering_pars_fragment,roughnessmap_fragment:roughnessmap_fragment,roughnessmap_pars_fragment:roughnessmap_pars_fragment,shadowmap_pars_fragment:shadowmap_pars_fragment,shadowmap_pars_vertex:shadowmap_pars_vertex,shadowmap_vertex:shadowmap_vertex,shadowmask_pars_fragment:shadowmask_pars_fragment,skinbase_vertex:skinbase_vertex,skinning_pars_vertex:skinning_pars_vertex,skinning_vertex:skinning_vertex,skinnormal_vertex:skinnormal_vertex,specularmap_fragment:specularmap_fragment,specularmap_pars_fragment:specularmap_pars_fragment,tonemapping_fragment:tonemapping_fragment,tonemapping_pars_fragment:tonemapping_pars_fragment,transmission_fragment:transmission_fragment,transmission_pars_fragment:transmission_pars_fragment,uv_pars_fragment:uv_pars_fragment,uv_pars_vertex:uv_pars_vertex,uv_vertex:uv_vertex,worldpos_vertex:worldpos_vertex,background_vert:vertex$h,background_frag:fragment$h,backgroundCube_vert:vertex$g,backgroundCube_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1};const UniformsLib={common:{diffuse:{value:new Color(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:0.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}}
vendor: 4,144 bytes, line 4042
4042,displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:0.00025},fogNear:{value:1},fogFar:{value:2000},fogColor:{value:new Color(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color(16777215)},opacity:{value:1},center:{value:new Vector2(0.5,0.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}};const ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)},specular:{value:new Color(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matc
vendor: 4,092 bytes, line 4042
4042ap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:ShaderChunk.backgroundCube_vert,fragmentShader:ShaderChunk.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1000}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color(0)},specularColor:{value:new Color(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};const _rgb={r:0,b:0,g:0};const _e1$1=new Euler;const _m1$1=new Matrix4;function WebGLBackground(renderer,cubemaps,cubeuvmaps,state,objects,alpha,premultipliedAlpha){const clearColor=new Color(0);let clearAlpha=alpha===true?0:1;let planeMesh;let boxMesh;
4042let currentBackground=null;let currentBackgroundVersion=0;let currentTonemapping=null;function render(renderList,scene){let forceClear=false;let background=scene.isScene===true?scene.background:null;if(background&&background.isTexture){const usePMREM=scene.backgroundBlurriness>0;background=(usePMREM?cubeuvmaps:cubemaps).get(background)}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){renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil)}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}));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}));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)}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}}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);
4042if(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<maxVertexAttributes;i++){newAttributes[i]=0;enabledAttributes[i]=0;attributeDivisors[i]=0}return{geometry:null,program:null,wireframe:false,newAttributes:newAttributes,enabledAttributes:enabledAttributes,attributeDivisors:attributeDivisors,object:vao,attributes:{},index:null}}function needsUpdate(object,geometry,program,index){const cachedAttributes=currentState.attributes;const geometryAttributes=geometry.attributes;let attributesNum=0;const programAttributes=program.getAttributes();for(const name in programAttributes){const programAttribute=programAttributes[name];if(programAttribute.location>=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<il;i++){newAttributes[i]=0}}function enableAttribute(attribute){enableAttributeAndDivisor(attribute,0)}function enableAttributeAndDivisor(attribute,meshPerAttribute){const newAttributes=currentState.newAttributes;const enabledAttributes=currentState.enabledAttributes;const attributeDivisors=currentState.attributeDivisors;newAttributes[attribute]=1;if(enabledAttributes[attribute]===0){gl.enableVertexAttribArray(attribute);enabledAttributes[attribute]=1}if(attributeDivisors[attribute]!==meshPerAttribute){gl.vertexAttribDivisor(attribute,meshPerAttribute);attributeDivisors[attribute]=meshPerAttribute}}function disableUnusedAttributes(){const newAttributes=currentState.newAttributes;const enabledAttributes=currentState.enabledAttributes;for(let i=0,il=enabledAttributes.length;i<il;i++){if(enabledAttributes[i]!==newAttributes[i]){gl.disableVertexAttribArray(i);enabledAttributes[i]=0}}}function vertexAttribPointer(index,size,type,normalized,stride,offset,integer){if(integer===true){gl.vertexAttribIPointer(index,size,type,stride,offset)}else{gl.vertexAttribPointer(index,size,type,normalized,stride,offset)}}function setupVertexAttributes(object,material,program,geometry){initAttributes();const geometryAttributes=geometry.attributes;const programAttributes=program.getAttributes();const materialDefaultAttributeValues=material.defaultAttributeValues;for(const name in programAttributes){const programAttribute=programAttributes[name];if(programAttribute.location>=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;i<programAttribute.locationSize;i++){enableAttributeAndDivisor(programAttribute.location+i,data.meshPerAttribute)}if(object.isInstancedMesh!==true&&geometry._maxInstanceCount===undefined){geometry._maxInstanceCount=data.meshPerAttribute*data.count}}else{for(let i=0;i<programAttribute.locationSize;i++){enableAttribute(programAttribute.location+i)}}gl.bindBuffer(gl.ARRAY_BUFFER,buffer);for(let i=0;i<programAttribute.locationSize;i++){vertexAttribPointer(programAttribute.location+i,size/programAttribute.locationSize,type,normalized,stride*bytesPerElement,(offset+size/programAttribute.locationSize*i)*bytesPerElement,integer)}}else{if(geometryAttribute.isInstancedBufferAttribute){for(let i=0;i<programAttribute.locationSize;i++){enableAttributeAndDivisor(programAttribute.location+i,geometryAttribute.meshPerAttribute)}if(object.isInstancedMesh!==true&&geometry._maxInstanceCount===undefined){geometry._maxInstanceCount=geometryAttribute.meshPerAttribute*geometryAttribute.count}}else{for(let i=0;i<programAttribute.locationSize;i++){enableAttribute(programAttribute.location+i)}}gl.bindBuffer(gl.ARRAY_BUFFER,buffer);for(let i=0;i<programAttribute.locationSize;i++){vertexAttribPointer(programAttribute.location+i,size/programAttribute.locationSize,type,normalized,size*bytesPerElement,size/programAttribute.locationSize*i*bytesPerElement,integer)}}}else if(materialDefaultAttributeValues!==undefined){const value=materialDefaultAttributeValues[name];if(value!==undefined){switch(value.length){case 2:gl.vertexAttrib2fv(programAttribute.location,value);break;case 3:gl.vertexAttrib3fv(programAttribute.location,value);break;case 4:gl.vertexAttrib4fv(programAttribute.location,value);break;default:gl.vertexAttrib1fv(programAttribute.location,value);}}}}}disableUnusedAttributes()}function dispose(){reset();for(const geometryId in bindingStates){const programMap=bindingStates[geometryId];for(const programId in programMap){const stateMap=programMap[programId];for(const wireframe in stateMap){deleteVertexArrayObject(stateMap[wireframe].object);delete stateMap[wireframe]}delete programMap[programId]}delete bindingStates[geometryId]}}function releaseStatesOfGeometry(geometry){if(bindingStates[geometry.id]===undefined)return;const programMap=bindingStates[geometry.id];for(const programId in programMap){const stateMap=programMap[programId];for(const wireframe in stateMap){deleteVertexArrayObject(stateMap[wireframe].object);delete stateMap[wireframe]}delete programMap[programId]}delete bindingStates[geometry.id]}function releaseStatesOfProgram(program){for(const geometryId in bindingStates){const programMap=bindingStates[geometryId];if(programMap[program.id]===undefined)continue;const stateMap=programMap[program.id];for(const wireframe in stateMap){deleteVertexArrayObject(stateMap[wireframe].object);delete stateMap[wireframe]}delete programMap[program.id]}}function reset(){resetDefaultState();forceUpdate=true;if(currentState===defaultState)return;currentState=defaultState;bindVertexArrayObject(currentState.object)}function resetDefaultState(){defaultState.geometry=null;defaultState.program=null;defaultState.wireframe=false}return{setup:setup,reset:reset,resetDefaultState:resetDefaultState,dispose:dispose,releaseStatesOfGeometry:releaseStatesOfGeometry,releaseStatesOfProgram:releaseStatesOfProgram,initAttributes:initAttributes,enableAttribute:enableAttribute,disableUnusedAttributes:disableUnusedAttributes}}function WebGLBufferRenderer(gl,extensions,info){let mode;function setMode(value){mode=value}function render(start,count){gl.drawArrays(mode,start,count);info.update(count,mode,1)}function renderInstances(start,count,primcount){if(primcount===0)return;gl.drawArraysInstanced(mode,start,count,primcount);info.update(count,mode,primcount)}function renderMultiDraw(starts,counts,drawCount){if(drawCount===0)return;const extension=extensions.get("WEBGL_multi_draw");if(extension===null){for(let i=0;i<drawCount;i++){this.render(starts[i],counts[i])}}else{extension.multiDrawArraysWEBGL(mode,starts,0,counts,0,drawCount);let elementCount=0;for(let i=0;i<drawCount;i++){elementCount+=counts[i]}info.update(elementCount,mode,1)}}this.setMode=setMode;this.render=render;this.renderInstances=renderInstances;this.renderMultiDraw=renderMultiDraw}function WebGLCapabilities(gl,extensions,parameters){let maxAnisotropy;function getMaxAnisotropy(){if(maxAnisotropy!==undefined)return maxAnisotropy;if(extensions.has("EXT_texture_filter_anisotropic")===true){const extension=extensions.get("EXT_texture_filter_anisotropic");maxAnisotropy=gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else{maxAnisotropy=0}return maxAnisotropy}function getMaxPrecision(precision){if(precision==="highp"){if(gl.getShaderPrecisionFormat(gl.VERTEX_SHADER,gl.HIGH_FLOAT).precision>0&&gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER,gl.HIGH_FLOAT).precision>0){return"highp"}
4042precision="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){console.warn("THREE.WebGLRenderer:",precision,"not supported, using",maxPrecision,"instead.");precision=maxPrecision}const logarithmicDepthBuffer=parameters.logarithmicDepthBuffer===true;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 vertexTextures=maxVertexTextures>0;const maxSamples=gl.getParameter(gl.MAX_SAMPLES);return{isWebGL2:true,getMaxAnisotropy:getMaxAnisotropy,getMaxPrecision:getMaxPrecision,precision:precision,logarithmicDepthBuffer:logarithmicDepthBuffer,maxTextures:maxTextures,maxVertexTextures:maxVertexTextures,maxTextureSize:maxTextureSize,maxCubemapSize:maxCubemapSize,maxAttributes:maxAttributes,maxVertexUniforms:maxVertexUniforms,maxVaryings:maxVaryings,maxFragmentUniforms:maxFragmentUniforms,vertexTextures:vertexTextures,maxSamples:maxSamples}}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.clipSh
4042adows;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.length<flatSize){dstArray=new Float32Array(flatSize)}for(let i=0,i4=dstOffset;i!==nPlanes;++i,i4+=4){plane.copy(planes[i]).applyMatrix4(viewMatrix,viewNormalMatrix);plane.normal.toArray(dstArray,i4);dstArray[i4+3]=plane.constant}}uniform.value=dstArray;uniform.needsUpdate=true}scope.numPlanes=nPlanes;scope.numIntersection=0;return dstArray}}function WebGLCubeMaps(renderer){let cubemaps=new WeakMap;function mapTextureMapping(texture,mapping){if(mapping===EquirectangularReflectionMapping){texture.mapping=CubeReflectionMapping}else if(mapping===EquirectangularRefractionMapping){texture.mapping=CubeRefractionMapping}return texture}function get(texture){if(texture&&texture.isTexture){const mapping=texture.mapping;if(mapping===EquirectangularReflectionMapping||mapping===EquirectangularRefractionMapping){if(cubemaps.has(texture)){const cubemap=cubemaps.get(texture).texture;return mapTextureMapping(cubemap,texture.mapping)}else{const image=texture.image;if(image&&image.height>0){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}}class OrthographicCamera extends Camera{constructor(left=-1,right=1,top=1,bottom=-1,near=0.1,far=2000){super();this.isOrthographicCamera=true;this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=left;this.right=right;this.top=top;this.bottom=bottom;this.near=near;this.far=far;this.updateProjectionMatrix()}copy(source,recursive){super.copy(source,recursive);this.left=source.left;this.right=source.right;this.top=source.top;this.bottom=source.bottom;this.near=source.near;this.far=source.far;this.zoom=source.zoom;this.view=source.view===null?null:Object.assign({},source.view);return this}setViewOffset(fullWidth,fullHeight,x,y,width,height){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 dx=(this.right-this.left)/(2*this.zoom);const dy=(this.top-this.bottom)/(2*this.zoom);const cx=(this.right+this.left)/2;const cy=(this.top+this.bottom)/2;let left=cx-dx;let right=cx+dx;let top=cy+dy;let bottom=cy-dy;if(this.view!==null&&this.view.enabled){const scaleW=(this.right-this.left)/this.view.fullWidth/this.zoom;const scaleH=(this.top-this.bottom)/this.view.fullHeight/this.zoom;left+=scaleW*this.view.offsetX;right=left+scaleW*this.view.width;top-=scaleH*this.view.offsetY;bottom=top-scaleH*this.view.height}
4042this.projectionMatrix.makeOrthographic(left,right,top,bottom,this.near,this.far,this.coordinateSystem);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(meta){const data=super.toJSON(meta);data.object.zoom=this.zoom;data.object.left=this.left;data.object.right=this.right;data.object.top=this.top;data.object.bottom=this.bottom;data.object.near=this.near;data.object.far=this.far;if(this.view!==null)data.object.view=Object.assign({},this.view);return data}}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;let _oldActiveCubeFace=0;let _oldActiveMipmapLevel=0;let _oldXrEnabled=false;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();_oldActiveCubeFace=this._renderer.getActiveCubeFace();_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel();_oldXrEnabled=this._renderer.xr.enabled;this._renderer.xr.enabled=false;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;i<this._lodPlanes.length;i++){this._lodPlanes[i].dispose()}}_cleanup(outputTarget){this._renderer.setRenderTarget(_oldTarget,_oldActiveCubeFace,_oldActiveMipmapLevel);this._renderer.xr.enabled=_oldXrEnabled;outputTarget.scissorTest=false;_setViewport(outputTarget,0,0,outputTarget.width,outputTarget.height)}_fromTexture(texture,renderTarget){if(texture.mapping===CubeReflectionMapping||texture.mapping===CubeRefractionMapping){this._setSize(texture.image.length===0?16:texture.image[0].width||texture.image[0].image.width)}else{this._setSize(texture.image.width/4)}_oldTarget=this._renderer.getRenderTarget();_oldActiveCubeFace=this._renderer.getActiveCubeFace();_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel();_oldXrEnabled=this._renderer.xr.enabled;this._renderer.xr.enabled=false;const cubeUVRenderTarget=renderTarget||this._allocateTargets();this._textureToCubeUV(texture,cubeUVRenderTarget);this._applyPMREM(cubeUVRenderTarget);this._cleanup(cubeUVRenderTarget);return cubeUVRenderTarget}_allocateTargets(){const width=3*Math.max(this._cubeSize,16*7);const height=4*this._cubeSize;const params={magFilter:LinearFilter,minFilter:LinearFilter,generateMipmaps:false,type:HalfFloatType,format:RGBAFormat,colorSpace:LinearSRGBColorSpace,depthBuffer:false};const cubeUVRenderTarget=_createRenderTarget(width,height,params);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==width||this._pingPongRenderTarget.height!==height){if(this._pingPongRenderTarget!==null){this._dispose()}this._pingPongRenderTarget=_createRenderTarget(width,height,params);const{_lodMax}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=_createPlanes(_lodMax));this._blurMaterial=_getBlurShader(_lodMax,width,height)}return cubeUVRenderTarget}_compileMaterial(material){const tmpMesh=new Mesh(this._lodPlanes[0],material);this._renderer.compile(tmpMesh,_flatCamera)}_sceneToCubeUV(scene,near,far,cubeUVRenderTarget){const fov=90;const aspect=1;const cubeCamera=new PerspectiveCamera(fov,aspect,near,far);const upSign=[1,-1,1,1,1,1];const forwardSign=[1,1,1,-1,-1,-1];const renderer=this._renderer;const originalAutoClear=renderer.autoClear;const toneMapping=renderer.toneMapping;renderer.getClearColor(_clearColor);renderer.toneMapping=NoToneMapping;renderer.autoClear=false;const backgroundMaterial=new MeshBasicMaterial({name:"PMREM.Backgroun
4042d",side:BackSide,depthWrite:false,depthTest:false});const backgroundBox=new Mesh(new BoxGeometry(),backgroundMaterial);let useSolidColor=false;const background=scene.background;if(background){if(background.isColor){backgroundMaterial.color.copy(background);scene.background=null;useSolidColor=true}}else{backgroundMaterial.color.copy(_clearColor);useSolidColor=true}for(let i=0;i<6;i++){const col=i%3;if(col===0){cubeCamera.up.set(0,upSign[i],0);cubeCamera.lookAt(forwardSign[i],0,0)}else if(col===1){cubeCamera.up.set(0,0,upSign[i]);cubeCamera.lookAt(0,forwardSign[i],0)}else{cubeCamera.up.set(0,upSign[i],0);cubeCamera.lookAt(0,0,forwardSign[i])}const size=this._cubeSize;_setViewport(cubeUVRenderTarget,col*size,i>2?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;i<this._lodPlanes.length;i++){const sigma=Math.sqrt(this._sigmas[i]*this._sigmas[i]-this._sigmas[i-1]*this._sigmas[i-1]);const poleAxis=_axisDirections[(i-1)%_axisDirections.length];this._blur(cubeUVRenderTarget,i-1,i,sigma,poleAxis)}renderer.autoClear=autoClear}_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"){console.error("blur direction must be either latitudinal or longitudinal!")}const STANDARD_DEVIATIONS=3;const blurMesh=new Mesh(this._lodPlanes[lodOut],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){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<MAX_SAMPLES;++i){const x=i/sigmaPixels;const weight=Math.exp(-x*x/2);weights.push(weight);if(i===0){sum+=weight}else if(i<samples){sum+=2*weight}}for(let i=0;i<weights.length;i++){weights[i]=weights[i]/sum}blurUniforms["envMap"].value=targetIn.texture;blurUniforms["samples"].value=samples;blurUniforms["weights"].value=weights;blurUniforms["latitudinal"].value=direction==="latitudinal";if(poleAxis){blurUniforms["poleAxis"].value=poleAxis}const{_lodMax}=this;blurUniforms["dTheta"].value=radiansPerPixel;blurUniforms["mipInt"].value=_lodMax-lodIn;const outputSize=this._sizeLods[lodOut];const x=3*outputSize*(lodOut>_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)}}
4042function _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;i<totalLods;i++){const sizeLod=Math.pow(2,lod);sizeLods.push(sizeLod);let sigma=1/sizeLod;if(i>lodMax-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;face<cubeFaces;face++){const x=face%3*2/3-1;const y=face>2?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:` 4043 4044 precision mediump float; 4045 precision mediump int; 4046 4047 varying vec3 vOutputDirection; 4048 4049 uniform sampler2D envMap; 4050 uniform int samples; 4051 uniform float weights[ n ]; 4052 uniform bool latitudinal; 4053 uniform float dTheta; 4054 uniform float mipInt; 4055 uniform vec3 poleAxis; 4056 4057 #define ENVMAP_TYPE_CUBE_UV 4058 #include <cube_uv_reflection_fragment> 4059 4060 vec3 getSample( float theta, vec3 axis ) { 4061 4062 float cosTheta = cos( theta ); 4063 // Rodrigues' axis-angle rotation 4064 vec3 sampleDirection = vOutputDirection * cosTheta 4065 + cross( axis, vOutputDirection ) * sin( theta ) 4066 + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); 4067 4068 return bilinearCubeUV( envMap, sampleDirection, mipInt ); 4069 4070 } 4071 4072 void main() { 4073 4074 vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); 4075 4076 if ( all( equal( axis, vec3( 0.0 ) ) ) ) { 4077 4078 axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); 4079 4080 } 4081 4082 axis = normalize( axis ); 4083 4084 gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); 4085 gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); 4086 4087 for ( int i = 1; i < n; i++ ) { 4088 4089 if ( i >= samples ) { 4090 4091 break; 4092 4093 } 4094 4095 float theta = dTheta * float( i ); 4096 gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); 4097 gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); 4098 4099 } 4100 4101 } 4102 `,blending:NoBlending,depthTest:false,depthWrite:false});return shaderMaterial}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{"envMap":{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:` 4103 4104 precision mediump float; 4105 precision mediump int; 4106 4107 varying vec3 vOutputDirection; 4108 4109 uniform sampler2D envMap; 4110 4111 #include <common> 4112 4113 void main() { 4114 4115 vec3 outputDirection = normalize( vOutputDirection ); 4116 vec2 uv = equirectUv( outputDirection ); 4117
4118 gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); 4119 4120 } 4121 `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{"envMap":{value:null},"flipEnvMap":{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:` 4122 4123 precision mediump float; 4124 precision mediump int; 4125 4126 uniform float flipEnvMap; 4127 4128 varying vec3 vOutputDirection; 4129 4130 uniform samplerCube envMap; 4131 4132 void main() { 4133 4134 gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); 4135 4136 } 4137 `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCommonVertexShader(){return` 4138 4139 precision mediump float; 4140 precision mediump int; 4141 4142 attribute float faceIndex; 4143 4144 varying vec3 vOutputDirection; 4145 4146 // RH coordinate system; PMREM face-indexing convention 4147 vec3 getDirection( vec2 uv, float face ) { 4148 4149 uv = 2.0 * uv - 1.0; 4150 4151 vec3 direction = vec3( uv, 1.0 ); 4152 4153 if ( face == 0.0 ) { 4154 4155 direction = direction.zyx; // ( 1, v, u ) pos x 4156 4157 } else if ( face == 1.0 ) { 4158 4159 direction = direction.xzy; 4160 direction.xz *= -1.0; // ( -u, 1, -v ) pos y 4161 4162 } else if ( face == 2.0 ) { 4163 4164 direction.x *= -1.0; // ( -u, v, 1 ) pos z 4165 4166 } else if ( face == 3.0 ) { 4167 4168 direction = direction.zyx; 4169 direction.xz *= -1.0; // ( -1, v, -u ) neg x 4170 4171 } else if ( face == 4.0 ) { 4172 4173 direction = direction.xzy; 4174 direction.xy *= -1.0; // ( -u, -1, v ) neg y 4175 4176 } else if ( face == 5.0 ) { 4177 4178 direction.z *= -1.0; // ( u, v, -1 ) neg z 4179 4180 } 4181 4182 return direction; 4183 4184 } 4185 4186 void main() { 4187 4188 vOutputDirection = getDirection( uv, faceIndex ); 4189 gl_Position = vec4( position, 1.0 ); 4190 4191 } 4192 `}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;i<length;i++){if(image[i]!==undefined)count++}return count===length}function onTextureDispose(event){const texture=event.target;texture.removeEventListener("dispose",onTextureDispose);const cubemapUV=cubeUVmaps.get(texture);if(cubemapUV!==undefined){cubeUVmaps.delete(texture);cubemapUV.dispose()}}function dispose(){cubeUVmaps=new WeakMap;if(pmremGenerator!==null){pmremGenerator.dispose();pmremGenerator=null}}return{get:get,dispose:dispose}}function WebGLExtensions(gl){const extensions={};function getExtension(name){if(extensions[name]!==undefined){return extensions[name]}let extension;switch(name){case"WEBGL_depth_texture":extension=gl.getExtension("WEBGL_depth_texture")||gl.getExtension("MOZ_WEBGL_depth_texture")||gl.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":extension=gl.getExtension("EXT_texture_filter_anisotropic")||gl.getExtension("MOZ_EXT_texture_filter_anisotropic")||gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":extension=gl.getExtension("WEBGL_compressed_texture_s3tc")||gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":extension=gl.getExtension("WEBGL_compressed_texture_pvrtc")||gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:extension=gl.getExtension(name);}extensions[name]=extension;return extension}return{has:function(name){return getExtension(name)!==null},init:function(){getExtension("EXT_color_buffer_float");getExtension("WEBGL_clip_cull_distance");getExtension("OES_texture_float_linear");getExtension("EXT_color_buffer_half_float");getExtension("WEBGL_multisampled_render_to_texture");getExtension("WEBGL_render_shared_exponent")},get:function(name){const extension=getExtension(name);if(extension===null){console.warn("THREE.WebGLRenderer: "+name+" extension not supported.")}return extension}}}function WebGLGeometries(gl,attributes,info,bindingStates){const geometries={};const wireframeAttributes=new WeakMap;function onGeometryDispose(event){const geometry=event.target;if(geometry.index!==null){attributes.remove(geometry.index)}for(const name in geometry.attributes){attributes.remove(geometry.attributes[name])}for(const name in geometry.morphAttributes){const array=geometry.morphAttributes[name];for(let i=0,l=array.length;i<l;i++){attributes.remove(array[i])}}geometry.removeEventListener("dispose",onGeometryDispose);delete geometries[geometry.id];const attribute=wireframeAttributes.get(geometry);if(attribute){attributes.remove(attribute);wireframeAttributes.delete(geometry)}bindingStates.releaseStatesOfGeometry(geometry);if(geometry.isInstancedBufferGeometry===true){delete geometry._maxInstanceCount}info.memory.geometries--}function get(object,geometry){if(geometries[geometry.id]===true)return geometry;geometry.addEventListener("dispose",onGeometryDispose);geometries[geometry.id]=true;info.memory.geometries++;return geometry}function update(geometry){const geometryAttributes=geometry.attributes;for(const name in geometryAttributes){attributes.update(geometryAttributes[name],gl.ARRAY_BUFFER)}const morphAttributes=geometry.morphAttributes;for(const name in morphAttributes){const array=morphAttributes[name];for(let i=0,l=array.length;i<l;i++){attributes.update(array[i],gl.ARRAY_BUFFER)}}}function updateWireframeAttribute(geometry){const indices=[];const geometryIndex=geometry.index;const geometryPosition=geometry.attributes.position;let version=0;if(geometryIndex!==null){const array=geometryIndex.array;version=geometryIndex.version;for(let i=0,l=array.length;i<l;i+=3){const a=array[i+0];const b=array[i+1];const c=array[i+2];indices.push(a,b,b,c,c,a)}}
4192else if(geometryPosition!==undefined){const array=geometryPosition.array;version=geometryPosition.version;for(let i=0,l=array.length/3-1;i<l;i+=3){const a=i+0;const b=i+1;const c=i+2;indices.push(a,b,b,c,c,a)}}else{return}const attribute=new(arrayNeedsUint32(indices)?Uint32BufferAttribute:Uint16BufferAttribute)(indices,1);attribute.version=version;const previousAttribute=wireframeAttributes.get(geometry);if(previousAttribute)attributes.remove(previousAttribute);wireframeAttributes.set(geometry,attribute)}function getWireframeAttribute(geometry){const currentAttribute=wireframeAttributes.get(geometry);if(currentAttribute){const geometryIndex=geometry.index;if(geometryIndex!==null){if(currentAttribute.version<geometryIndex.version){updateWireframeAttribute(geometry)}}}else{updateWireframeAttribute(geometry)}return wireframeAttributes.get(geometry)}return{get:get,update:update,getWireframeAttribute:getWireframeAttribute}}function WebGLIndexedBufferRenderer(gl,extensions,info){let mode;function setMode(value){mode=value}let type,bytesPerElement;function setIndex(value){type=value.type;bytesPerElement=value.bytesPerElement}function render(start,count){gl.drawElements(mode,count,type,start*bytesPerElement);info.update(count,mode,1)}function renderInstances(start,count,primcount){if(primcount===0)return;gl.drawElementsInstanced(mode,count,type,start*bytesPerElement,primcount);info.update(count,mode,primcount)}function renderMultiDraw(starts,counts,drawCount){if(drawCount===0)return;const extension=extensions.get("WEBGL_multi_draw");if(extension===null){for(let i=0;i<drawCount;i++){this.render(starts[i]/bytesPerElement,counts[i])}}else{extension.multiDrawElementsWEBGL(mode,counts,0,type,starts,0,drawCount);let elementCount=0;for(let i=0;i<drawCount;i++){elementCount+=counts[i]}info.update(elementCount,mode,1)}}this.setMode=setMode;this.setIndex=setIndex;this.render=render;this.renderInstances=renderInstances;this.renderMultiDraw=renderMultiDraw}function WebGLInfo(gl){const memory={geometries:0,textures:0};const render={frame:0,calls:0,triangles:0,points:0,lines:0};function update(count,mode,instanceCount){render.calls++;switch(mode){case gl.TRIANGLES:render.triangles+=instanceCount*(count/3);break;case gl.LINES:render.lines+=instanceCount*(count/2);break;case gl.LINE_STRIP:render.lines+=instanceCount*(count-1);break;case gl.LINE_LOOP:render.lines+=instanceCount*count;break;case gl.POINTS:render.points+=instanceCount*count;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",mode);break;}}function reset(){render.calls=0;render.triangles=0;render.points=0;render.lines=0}return{memory:memory,render:render,programs:null,autoReset:true,reset:reset,update:update}}function WebGLMorphtargets(gl,capabilities,textures){const morphTextures=new WeakMap;const morph=new Vector4;function update(object,geometry,program){const objectInfluences=object.morphTargetInfluences;const morphAttribute=geometry.morphAttributes.position||geometry.morphAttributes.normal||geometry.morphAttributes.color;const morphTargetsCount=morphAttribute!==undefined?morphAttribute.length:0;let entry=morphTextures.get(geometry);if(entry===undefined||entry.count!==morphTargetsCount){if(entry!==undefined)entry.texture.dispose();const hasMorphPosition=geometry.morphAttributes.position!==undefined;const hasMorphNormals=geometry.morphAttributes.normal!==undefined;const hasMorphColors=geometry.morphAttributes.color!==undefined;const morphTargets=geometry.morphAttributes.position||[];const morphNormals=geometry.morphAttributes.normal||[];const morphColors=geometry.morphAttributes.color||[];let vertexDataCount=0;if(hasMorphPosition===true)vertexDataCount=1;if(hasMorphNormals===true)vertexDataCount=2;if(hasMorphColors===true)vertexDataCount=3;let width=geometry.attributes.position.count*vertexDataCount;let height=1;if(width>capabilities.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<morphTargetsCount;i++){const morphTarget=morphTargets[i];const morphNormal=morphNormals[i];const morphColor=morphColors[i];const offset=width*height*4*i;for(let j=0;j<morphTarget.count;j++){const stride=j*vertexDataStride;if(hasMorphPosition===true){morph.fromBufferAttribute(morphTarget,j);buffer[offset+stride+0]=morph.x;buffer[offset+stride+1]=morph.y;buffer[offset+stride+2]=morph.z;buffer[offset+stride+3]=0}if(hasMorphNormals===true){morph.fromBufferAttribute(morphNormal,j);buffer[offset+stride+4]=morph.x;buffer[offset+stride+5]=morph.y;buffer[offset+stride+6]=morph.z;buffer[offset+stride+7]=0}if(hasMorphColors===true){morph.fromBufferAttribute(morphColor,j);buffer[offset+stride+8]=morph.x;buffer[offset+stride+9]=morph.y;buffer[offset+stride+10]=morph.z;buffer[offset+stride+11]=morphColor.itemSize===4?morph.w:1}}}entry={count:morphTargetsCount,texture:texture,size:new Vector2(width,height)};morphTextures.set(geometry,entry);function disposeTexture(){texture.dispose();morphTextures.delete(geometry);geometry.removeEventListener("dispose",disposeTexture)}geometry.addEventListener("dispose",disposeTexture)}if(object.isInstancedMesh===true&&object.morphTexture!==null){program.getUniforms().setValue(gl,"morphTexture",object.morphTexture,textures)}else{let morphInfluencesSum=0;for(let i=0;i<objectInfluences.length;i++){morphInfluencesSum+=objectInfluences[i]}const morphBaseInfluence=geometry.morphTargetsRelative?1:1-morphInfluencesSum;program.getUniforms().setValue(gl,"morphTargetBaseInfluence",morphBaseInfluence);program.getUniforms().setValue(gl,"morphTargetInfluences",objectInfluences)}program.getUniforms().setValue(gl,"morphTargetsTexture",entry.texture,textures);program.getUniforms().setValue(gl,"morphTargetsTextureSize",entry.size)}return{update:update}}function WebGLObjects(gl,geometries,attributes,info){let updateMap=new WeakMap;function update(object){const frame=info.render.frame;
4192const geometry=object.geometry;const buffergeometry=geometries.get(object,geometry);if(updateMap.get(buffergeometry)!==frame){geometries.update(buffergeometry);updateMap.set(buffergeometry,frame)}if(object.isInstancedMesh){if(object.hasEventListener("dispose",onInstancedMeshDispose)===false){object.addEventListener("dispose",onInstancedMeshDispose)}if(updateMap.get(object)!==frame){attributes.update(object.instanceMatrix,gl.ARRAY_BUFFER);if(object.instanceColor!==null){attributes.update(object.instanceColor,gl.ARRAY_BUFFER)}updateMap.set(object,frame)}}if(object.isSkinnedMesh){const skeleton=object.skeleton;if(updateMap.get(skeleton)!==frame){skeleton.update();updateMap.set(skeleton,frame)}}return buffergeometry}function dispose(){updateMap=new WeakMap}function onInstancedMeshDispose(event){const instancedMesh=event.target;instancedMesh.removeEventListener("dispose",onInstancedMeshDispose);attributes.remove(instancedMesh.instanceMatrix);if(instancedMesh.instanceColor!==null)attributes.remove(instancedMesh.instanceColor)}return{update:update,dispose:dispose}}class DepthTexture extends Texture{constructor(width,height,type,mapping,wrapS,wrapT,magFilter,minFilter,anisotropy,format){format=format!==undefined?format:DepthFormat;if(format!==DepthFormat&&format!==DepthStencilFormat){throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat")}if(type===undefined&&format===DepthFormat)type=UnsignedIntType;if(type===undefined&&format===DepthStencilFormat)type=UnsignedInt248Type;super(null,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isDepthTexture=true;this.image={width:width,height:height};this.magFilter=magFilter!==undefined?magFilter:NearestFilter;this.minFilter=minFilter!==undefined?minFilter:NearestFilter;this.flipY=false;this.generateMipmaps=false;this.compareFunction=null}copy(source){super.copy(source);this.compareFunction=source.compareFunction;return this}toJSON(meta){const data=super.toJSON(meta);if(this.compareFunction!==null)data.compareFunction=this.compareFunction;return data}}const emptyTexture=new Texture;const emptyShadowTexture=new DepthTexture(1,1);emptyShadowTexture.compareFunction=LessEqualCompare;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;i<l;i++){if(a[i]!==b[i])return false}return true}function copyArray(a,b){for(let i=0,l=b.length;i<l;i++){a[i]=b[i]}}function allocTexUnits(textures,n){let r=arrayCacheI32[n];if(r===undefined){r=new Int32Array(n);arrayCacheI32[n]=r}for(let i=0;i!==n;++i){r[i]=textures.allocateTextureUnit()}return r}function setValueV1f(gl,v){const cache=this.cache;if(cache[0]===v)return;gl.uniform1f(this.addr,v);cache[0]=v}function setValueV2f(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y){gl.uniform2f(this.addr,v.x,v.y);cache[0]=v.x;cache[1]=v.y}}else{if(arraysEqual(cache,v))return;gl.uniform2fv(this.addr,v);copyArray(cache,v)}}function setValueV3f(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y||cache[2]!==v.z){gl.uniform3f(this.addr,v.x,v.y,v.z);cache[0]=v.x;cache[1]=v.y;cache[2]=v.z}}else if(v.r!==undefined){if(cache[0]!==v.r||cache[1]!==v.g||cache[2]!==v.b){gl.uniform3f(this.addr,v.r,v.g,v.b);cache[0]=v.r;cache[1]=v.g;cache[2]=v.b}}else{if(arraysEqual(cache,v))return;gl.uniform3fv(this.addr,v);copyArray(cache,v)}}function setValueV4f(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y||cache[2]!==v.z||cache[3]!==v.w){gl.uniform4f(this.addr,v.x,v.y,v.z,v.w);cache[0]=v.x;cache[1]=v.y;
4192cache[2]=v.z;cache[3]=v.w}}else{if(arraysEqual(cache,v))return;gl.uniform4fv(this.addr,v);copyArray(cache,v)}}function setValueM2(gl,v){const cache=this.cache;const elements=v.elements;if(elements===undefined){if(arraysEqual(cache,v))return;gl.uniformMatrix2fv(this.addr,false,v);copyArray(cache,v)}else{if(arraysEqual(cache,elements))return;mat2array.set(elements);gl.uniformMatrix2fv(this.addr,false,mat2array);copyArray(cache,elements)}}function setValueM3(gl,v){const cache=this.cache;const elements=v.elements;if(elements===undefined){if(arraysEqual(cache,v))return;gl.uniformMatrix3fv(this.addr,false,v);copyArray(cache,v)}else{if(arraysEqual(cache,elements))return;mat3array.set(elements);gl.uniformMatrix3fv(this.addr,false,mat3array);copyArray(cache,elements)}}function setValueM4(gl,v){const cache=this.cache;const elements=v.elements;if(elements===undefined){if(arraysEqual(cache,v))return;gl.uniformMatrix4fv(this.addr,false,v);copyArray(cache,v)}else{if(arraysEqual(cache,elements))return;mat4array.set(elements);gl.uniformMatrix4fv(this.addr,false,mat4array);copyArray(cache,elements)}}function setValueV1i(gl,v){const cache=this.cache;if(cache[0]===v)return;gl.uniform1i(this.addr,v);cache[0]=v}function setValueV2i(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y){gl.uniform2i(this.addr,v.x,v.y);cache[0]=v.x;cache[1]=v.y}}else{if(arraysEqual(cache,v))return;gl.uniform2iv(this.addr,v);copyArray(cache,v)}}function setValueV3i(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y||cache[2]!==v.z){gl.uniform3i(this.addr,v.x,v.y,v.z);cache[0]=v.x;cache[1]=v.y;cache[2]=v.z}}else{if(arraysEqual(cache,v))return;gl.uniform3iv(this.addr,v);copyArray(cache,v)}}function setValueV4i(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y||cache[2]!==v.z||cache[3]!==v.w){gl.uniform4i(this.addr,v.x,v.y,v.z,v.w);cache[0]=v.x;cache[1]=v.y;cache[2]=v.z;cache[3]=v.w}}else{if(arraysEqual(cache,v))return;gl.uniform4iv(this.addr,v);copyArray(cache,v)}}function setValueV1ui(gl,v){const cache=this.cache;if(cache[0]===v)return;gl.uniform1ui(this.addr,v);cache[0]=v}function setValueV2ui(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y){gl.uniform2ui(this.addr,v.x,v.y);cache[0]=v.x;cache[1]=v.y}}else{if(arraysEqual(cache,v))return;gl.uniform2uiv(this.addr,v);copyArray(cache,v)}}function setValueV3ui(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y||cache[2]!==v.z){gl.uniform3ui(this.addr,v.x,v.y,v.z);cache[0]=v.x;cache[1]=v.y;cache[2]=v.z}}else{if(arraysEqual(cache,v))return;gl.uniform3uiv(this.addr,v);copyArray(cache,v)}}function setValueV4ui(gl,v){const cache=this.cache;if(v.x!==undefined){if(cache[0]!==v.x||cache[1]!==v.y||cache[2]!==v.z||cache[3]!==v.w){gl.uniform4ui(this.addr,v.x,v.y,v.z,v.w);cache[0]=v.x;cache[1]=v.y;cache[2]=v.z;cache[3]=v.w}}else{if(arraysEqual(cache,v))return;gl.uniform4uiv(this.addr,v);copyArray(cache,v)}}function setValueT1(gl,v,textures){const cache=this.cache;const unit=textures.allocateTextureUnit();if(cache[0]!==unit){gl.uniform1i(this.addr,unit);cache[0]=unit}const emptyTexture2D=this.type===gl.SAMPLER_2D_SHADOW?emptyShadowTexture:emptyTexture;textures.setTexture2D(v||emptyTexture2D,unit)}function setValueT3D1(gl,v,textures){const cache=this.cache;const unit=textures.allocateTextureUnit();if(cache[0]!==unit){gl.uniform1i(this.addr,unit);cache[0]=unit}textures.setTexture3D(v||empty3dTexture,unit)}function setValueT6(gl,v,textures){const cache=this.cache;const unit=textures.allocateTextureUnit();if(cache[0]!==unit){gl.uniform1i(this.addr,unit);cache[0]=unit}textures.setTextureCube(v||emptyCubeTexture,unit)}function setValueT2DArray1(gl,v,textures){const cache=this.cache;const unit=textures.allocateTextureUnit();if(cache[0]!==unit){gl.uniform1i(this.addr,unit);cache[0]=unit}textures.setTexture2DArray(v||emptyArrayTexture,unit)}function getSingularSetter(type){switch(type){case 5126:return setValueV1f;case 35664:return setValueV2f;case 35665:return setValueV3f;case 35666:return setValueV4f;case 35674:return setValueM2;case 35675:return setValueM3;case 35676:return setValueM4;case 5124:case 35670:return setValueV1i;case 35667:case 35671:return setValueV2i;case 35668:case 35672:return setValueV3i;case 35669:case 35673:return setValueV4i;case 5125:return setValueV1ui;case 36294:return setValueV2ui;case 36295:return setValueV3ui;case 36296:return setValueV4ui;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1;case 35679:case 36299:case 36307:return setValueT3D1;case 35680:case 36300:case 36308:case 36293:return setValueT6;case 36289:case 36303:case 36311:case 36292:return setValueT2DArray1;}}function setValueV1fArray(gl,v){gl.uniform1fv(this.addr,v)}function setValueV2fArray(gl,v){const data=flatten(v,this.size,2);gl.uniform2fv(this.addr,data)}function setValueV3fArray(gl,v){const data=flatten(v,this.size,3);gl.uniform3fv(this.addr,data)}function setValueV4fArray(gl,v){const data=flatten(v,this.size,4);gl.uniform4fv(this.addr,data)}function setValueM2Array(gl,v){const data=flatten(v,this.size,4);gl.uniformMatrix2fv(this.addr,false,data)}function setValueM3Array(gl,v){const data=flatten(v,this.size,9);gl.uniformMatrix3fv(this.addr,false,data)}function setValueM4Array(gl,v){const data=flatten(v,this.size,16);gl.uniformMatrix4fv(this.addr,false,data)}function setValueV1iArray(gl,v){gl.uniform1iv(this.addr,v)}function setValueV2iArray(gl,v){gl.uniform2iv(this.addr,v)}function setValueV3iArray(gl,v){gl.uniform3iv(this.addr,v)}function setValueV4iArray(gl,v){gl.uniform4iv(this.addr,v)}function setValueV1uiArray(gl,v){gl.uniform1uiv(this.addr,v)}function setValueV2uiArray(gl,v){gl.uniform2uiv(this.addr,v)}function setValueV3uiArray(gl,v){gl.uniform3uiv(this.addr,v)}function setValueV4uiArray(gl,v){gl.uniform4uiv(this.addr,v)}function setValueT1Array(gl,v,textures){const cache=this.cache;const n=v.length;const units=allocTexUnits(textures,n);if(!arraysEqual(cache,units)){gl.uniform1iv(this.addr,units);copyArray(cache,units)}for(let i=0;i!==n;++i){textures.setTexture2D(v[i]||emptyTexture,units[i])}}function setValueT3DArray(gl,v,textures){const cache=this.cache;const n=v.length;const units=allocTexUnits(textures,n);if(!arraysEqual(cache,units)){gl.uniform1iv(this.addr,units);copyArray(cache,units)}for(let i=0;i!==n;++i){textures.setTexture3D(v[i]||empty3dTexture,units[i])}}function setValueT6Array(gl,v,textures){const cache=this.cache;const n=v.length;const units=allocTexUnits(textures,n);if(!arraysEqual(cache,units)){gl.uniform1iv(this.addr,units);copyArray(cache,units)}for(let i=0;i!==n;++i){textures.setTextureCube(v[i]||emptyCubeTexture,units[i])}}function setValueT2DArrayArray(gl,v,textures){const cache=this.cache;const n=v.length;const units=allocTexUnits(textures,n);if(!arraysEqual(cache,units)){gl.uniform1iv(this.addr,units);copyArray(cache,units)}for(let i=0;i!==n;++i){textures.setTexture2DArray(v[i]||emptyArrayTexture,units[i])}}function getPureArraySetter(type){switch(type){case 5126:return setValueV1fArray;case 35664:return setValueV2fArray;case 35665:return setValueV3fArray;case 35666:return setValueV4fArray;case 35674:return setValueM2Array;case 35675:return setValueM3Array;case 35676:return setValueM4Array;case 5124:case 35670:return setValueV1iArray;case 35667:case 35671:return setValueV2iArray;case 35668:case 35672:return setValueV3iArray;case 35669:case 35673:return setValueV4iArray;case 5125:return setValueV1uiArray;case 36294:return setValueV2uiArray;case 36295:return setValueV3uiArray;case 36296:return setValueV4uiArray;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1Array;case 35679:case 36299:case 36307:return setValueT3DArray;case 35680:case 36300:case 36308:case 36293:return setValueT6Array;case 36289:case 36303:case 36311:case 36292:return setValueT2DArrayArray;}}class SingleUniform{constructor(id,activeInfo,addr){this.id=id;this.addr=addr;this.cache=[];this.type=activeInfo.type;this.setValue=getSingularSetter(activeInfo.type)}}class PureArrayUniform{constructor(id,activeInfo,addr){this.id=id;this.addr=addr;this.cache=[];this.type=activeInfo.type;this.size=activeInfo.size;this.setValue=getPureArraySetter(activeInfo.type)}}class StructuredUniform{constructor(id){this.id=id;this.seq=[];this.map={}}setValue(gl,value,textures){const seq=this.seq;for(let i=0,n=seq.length;i!==n;++i){const u=seq[i];u.setValue(gl,value[u.id],textures)}}}const RePathPart=/(\w+)(\])?(\[|\.)?/g;function addUniform(container,uniformObject){container.seq.push(uniformObject);container.map[uniformObject.id]=uniformObject}function parseUniform(activeInfo,addr,container){const path=activeInfo.name,pathLength=path.length;RePathPart.lastIndex=0;while(true){const match=RePathPart.exec(path),matchEnd=RePathPart.lastIndex;let id=match[1];const idIsIndex=match[2]==="]",subscript=match[3];if(idIsIndex)id=id|0;if(subscript===undefined||subscript==="["&&matchEnd+2===pathLength){addUniform(container,subscript===undefined?new SingleUniform(id,activeInfo,addr):new PureArrayUniform(id,activeInfo,addr));break}else{const map=container.map;let next=map[id];if(next===undefined){next=new StructuredUniform(id);addUniform(container,next)}container=next}}}class WebGLUniforms{constructor(gl,program){this.seq=[];this.map={};const n=gl.getProgramParameter(program,gl.ACTIVE_UNIFORMS);for(let i=0;i<n;++i){const info=gl.getActiveUniform(program,i),addr=gl.getUniformLocation(program,info.name);parseUniform(info,addr,this)}}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<to;i++){const line=i+1;lines2.push(`${line===errorLine?">":" "} ${line}: ${lines[i]}`)}return lines2.join("\n")}function getEncodingComponents(colorSpace){const workingPrimaries=ColorManagement.getPrimaries(ColorManagement.workingColorSpace);const encodingPrimaries=ColorManagement.getPrimaries(colorSpace);let gamutMapping;if(workingPrimaries===encodingPrimaries){gamutMapping=""}else if(workingPrimaries===P3Primaries&&encodingPrimaries===Rec709Primaries){gamutMapping="LinearDisplayP3ToLinearSRGB"}else if(workingPrimaries===Rec709Primaries&&encodingPrimaries===P3Primaries){gamutMapping="LinearSRGBToLinearDisplayP3"}switch(colorSpace){case LinearSRGBColorSpace:case LinearDisplayP3ColorSpace:return[gamutMapping,"LinearTransferOETF"];case SRGBColorSpace:case DisplayP3ColorSpace:return[gamutMapping,"sRGBTransferOETF"];default:console.warn("THREE.WebGLProgram: Unsupported color space:",colorSpace);return[gamutMapping,"LinearTransferOETF"];}}function getShaderErrors(gl,shader,type){const status=gl.getShaderParameter(shader,gl.COMPILE_STATUS);const errors=gl.getShaderInfoLog(shader).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[0]}( ${components[1]}( value ) ); }`}function getToneMappingFunction(functionName,toneMapping){let toneMappingName;switch(toneMapping){case LinearToneMapping:toneMappingName="Linear";break;case ReinhardToneMapping:toneMappingName="Reinhard";break;case CineonToneMapping:toneMappingName="OptimizedCineon";break;case ACESFilmicToneMapping:toneMappingName="ACESFilmic";break;case AgXToneMapping:toneMappingName="AgX";break;case NeutralToneMapping:toneMappingName="Neutral";break;case CustomToneMapping:toneMappingName="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",toneMapping);toneMappingName="Linear";}return"vec3 "+functionName+"( vec3 color ) { return "+toneMappingName+"ToneMapping( color ); }"}function generateVertexExtensions(parameters){const chunks=[parameters.extensionCl
4192ipCullDistance?"#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<n;i++){const info=gl.getActiveAttrib(program,i);const name=info.name;let locationSize=1;if(info.type===gl.FLOAT_MAT2)locationSize=2;if(info.type===gl.FLOAT_MAT3)locationSize=3;if(info.type===gl.FLOAT_MAT4)locationSize=4;attributes[name]={type:info.type,location:gl.getAttribLocation(program,name),locationSize:locationSize}}return attributes}function filterEmptyLine(string){return string!==""}function replaceLightNums(string,parameters){const numSpotLightCoords=parameters.numSpotLightShadows+parameters.numSpotLightMaps-parameters.numSpotLightShadowsWithMaps;return string.replace(/NUM_DIR_LIGHTS/g,parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g,parameters.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,parameters.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,numSpotLightCoords).replace(/NUM_RECT_AREA_LIGHTS/g,parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g,parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,parameters.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,parameters.numPointLightShadows)}function replaceClippingPlaneNums(string,parameters){return string.replace(/NUM_CLIPPING_PLANES/g,parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,parameters.numClippingPlanes-parameters.numClipIntersection)}const includePattern=/^[ \t]*#include +<([\w\d./]+)>/gm;function resolveIncludes(string){return string.replace(includePattern,includeReplacer)}const shaderChunkMap=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function includeReplacer(match,include){let string=ShaderChunk[include];if(string===undefined){const newInclude=shaderChunkMap.get(include);if(newInclude!==undefined){string=ShaderChunk[newInclude];console.warn("THREE.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);i<parseInt(end);i++){string+=snippet.replace(/\[\s*i\s*\]/g,"[ "+i+" ]").replace(/UNROLLED_LOOP_INDEX/g,i)}return string}function generatePrecision(parameters){let precisionstring=`precision ${parameters.precision} float; 4193 precision ${parameters.precision} int; 4194 precision ${parameters.precision} sampler2D; 4195 precision ${parameters.precision} samplerCube; 4196 precision ${parameters.precision} sampler3D; 4197 precision ${parameters.precision} sampler2DArray; 4198 precision ${parameters.precision} sampler2DShadow; 4199 precision ${parameters.precision} samplerCubeShadow; 4200 precision ${parameters.precision} sampler2DArrayShadow; 4201 precision ${parameters.precision} isampler2D; 4202 precision ${parameters.precision} isampler3D; 4203 precision ${parameters.precision} isamplerCube; 4204 precision ${parameters.precision} isampler2DArray; 4205 precision ${parameters.precision} usampler2D; 4206 precision ${parameters.precision} usampler3D; 4207 precision ${parameters.precision} usamplerCube; 4208 precision ${parameters.precision} usampler2DArray; 4209 `;if(parameters.precision==="highp"){precisionstring+="\n#define HIGH_PRECISION"}else if(parameters.precision==="mediump"){precisionstring+="\n#define MEDIUM_PRECISION"}else if(parameters.precision==="lowp"){precisionstring+="\n#define LOW_PRECISION"}return precisionstring}function generateShadowMapTypeDefine(parameters){let shadowMapTypeDefine="SHADOWMAP_TYPE_BASIC";if(parameters.shadowMapType===PCFShadowMap){shadowMapTypeDefine="SHADOWMAP_TYPE_PCF"}else if(parameters.shadowMapType===PCFSoftShadowMap){shadowMapTypeDefine="SHADOWMAP_TYPE_PCF_SOFT"}else if(parameters.shadowMapType===VSMShadowMap){shadowMapTypeDefine="SHADOWMAP_TYPE_VSM"}return shadowMapTypeDefine}function generateEnvMapTypeDefine(parameters){let envMapTypeDefine="ENVMAP_TYPE_CUBE";if(parameters.envMap){switch(parameters.envMapMode){case CubeReflectionMapping:case CubeRefractionMapping:envMapTypeDefine="ENVMAP_TYPE_CUBE";break;case CubeUVReflectionMapping:envMapTypeDefine="ENVMAP_TYPE_CUBE_UV";break;}}return envMapTypeDefine}function generateEnvMapModeDefine(parameters){let envMapModeDefine="ENVMAP_MODE_REFLECTION";if(parameters.envMap){switch(parameters.envMapMode){case CubeRefractionMapping:envMapMo
vendor: 14,961 bytes, line 4209
4209deDefine="ENVMAP_MODE_REFRACTION";break;}}return envMapModeDefine}function generateEnvMapBlendingDefine(parameters){let envMapBlendingDefine="ENVMAP_BLENDING_NONE";if(parameters.envMap){switch(parameters.combine){case MultiplyOperation:envMapBlendingDefine="ENVMAP_BLENDING_MULTIPLY";break;case MixOperation:envMapBlendingDefine="ENVMAP_BLENDING_MIX";break;case AddOperation:envMapBlendingDefine="ENVMAP_BLENDING_ADD";break;}}return envMapBlendingDefine}function generateCubeUVSize(parameters){const imageHeight=parameters.envMapCubeUVHeight;if(imageHeight===null)return null;const maxMip=Math.log2(imageHeight)-2;const texelHeight=1/imageHeight;const texelWidth=1/(3*Math.max(Math.pow(2,maxMip),7*16));return{texelWidth,texelHeight,maxMip}}function WebGLProgram(renderer,cacheKey,parameters,bindingStates){const gl=renderer.getContext();const defines=parameters.defines;let vertexShader=parameters.vertexShader;let fragmentShader=parameters.fragmentShader;const shadowMapTypeDefine=generateShadowMapTypeDefine(parameters);const envMapTypeDefine=generateEnvMapTypeDefine(parameters);const envMapModeDefine=generateEnvMapModeDefine(parameters);const envMapBlendingDefine=generateEnvMapBlendingDefine(parameters);const envMapCubeUVSize=generateCubeUVSize(parameters);const customVertexExtensions=generateVertexExtensions(parameters);const customDefines=generateDefines(defines);const program=gl.createProgram();let prefixVertex,prefixFragment;let versionString=parameters.glslVersion?"#version "+parameters.glslVersion+"\n":"";if(parameters.isRawShaderMaterial){prefixVertex=["#define SHADER_TYPE "+parameters.shaderType,"#define SHADER_NAME "+parameters.shaderName,customDefines].filter(filterEmptyLine).join("\n");if(prefixVertex.length>0){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.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":"",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.useLegacyLights?"#define LEGACY_LIGHTS":"",parameters.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","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","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#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.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?"#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.useLegacyLights?"#define LEGACY_LIGHTS":"",parameters.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",parameters.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","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),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);
4209function onFirstUse(self){if(renderer.debug.checkShaderErrors){const programLog=gl.getProgramInfoLog(program).trim();const vertexLog=gl.getShaderInfoLog(glVertexShader).trim();const fragmentLog=gl.getShaderInfoLog(glFragmentShader).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");console.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!==""){console.warn("THREE.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$1=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);
4209if(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$1++;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 logarithmicDepthBuffer=capabilities.logarithmicDepthBuffer;const SUPPORTS_VERTEX_TEXTURES=capabilities.vertexTextures;let precision=capabilities.precision;const shaderIDs={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function 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){console.warn("THREE.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 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_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;
vendor: 5,068 bytes, line 4209
4209const 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,instancing:IS_INSTANCEDMESH,instancingColor:IS_INSTANCEDMESH&&object.instanceColor!==null,instancingMorph:IS_INSTANCEDMESH&&object.morphTexture!==null,supportsVertexTextures:SUPPORTS_VERTEX_TEXTURES,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:SUPPORTS_VERTEX_TEXTURES&&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,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,sizeAttenuation:material.sizeAttenuation===true,logarithmicDepthBuffer:logarithmicDepthBuffer,skinning:object.isSkinnedMesh===true,morphTargets:geometry.morphAttributes.position!==un
4209defined,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,useLegacyLights:renderer._useLegacyLights,decodeVideoTexture:HAS_MAP&&material.map.isVideoTexture===true&&ColorManagement.getTransfer(material.map.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&&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.supportsVertexTextures)_programLayers.enable(0);if(parameters.instancing)_programLayers.enable(1);if(parameters.instancingColor)_programLayers.enable(2);if(parameters.instancingMorph)_programLayers.enable(3);
4209if(parameters.matcap)_programLayers.enable(4);if(parameters.envMap)_programLayers.enable(5);if(parameters.normalMapObjectSpace)_programLayers.enable(6);if(parameters.normalMapTangentSpace)_programLayers.enable(7);if(parameters.clearcoat)_programLayers.enable(8);if(parameters.iridescence)_programLayers.enable(9);if(parameters.alphaTest)_programLayers.enable(10);if(parameters.vertexColors)_programLayers.enable(11);if(parameters.vertexAlphas)_programLayers.enable(12);if(parameters.vertexUv1s)_programLayers.enable(13);if(parameters.vertexUv2s)_programLayers.enable(14);if(parameters.vertexUv3s)_programLayers.enable(15);if(parameters.vertexTangents)_programLayers.enable(16);if(parameters.anisotropy)_programLayers.enable(17);if(parameters.alphaHash)_programLayers.enable(18);if(parameters.batching)_programLayers.enable(19);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.skinning)_programLayers.enable(4);if(parameters.morphTargets)_programLayers.enable(5);if(parameters.morphNormals)_programLayers.enable(6);if(parameters.morphColors)_programLayers.enable(7);if(parameters.premultipliedAlpha)_programLayers.enable(8);if(parameters.shadowMapEnabled)_programLayers.enable(9);if(parameters.useLegacyLights)_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.alphaToCoverage)_programLayers.enable(20);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;for(let p=0,pl=programs.length;p<pl;p++){const preexistingProgram=programs[p];if(preexistingProgram.cacheKey===cacheKey){program=preexistingProgram;++program.usedTimes;break}}if(program===undefined){program=new WebGLProgram(renderer,cacheKey,parameters,bindingStates);programs.push(program)}return program}function releaseProgram(program){if(--program.usedTimes===0){const i=programs.indexOf(program);programs[i]=programs[programs.length-1];programs.pop();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 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{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=[];
4209function 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<il;i++){const renderItem=renderItems[i];if(renderItem.id===null)break;renderItem.id=null;renderItem.object=null;renderItem.geometry=null;renderItem.material=null;renderItem.group=null}}return{opaque:opaque,transmissive:transmissive,transparent:transparent,init:init,push:push,unshift:unshift,finish:finish,sort:sort}}function WebGLRenderLists(){let lists=new WeakMap;function get(scene,renderCallDepth){const listArray=lists.get(scene);let list;if(listArray===undefined){list=new WebGLRenderList;lists.set(scene,[list])}else{if(renderCallDepth>=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={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":uniforms={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":uniforms={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,useLegacyLights){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);const scaleFactor=useLegacyLights===true?Math.PI:1;for(let i=0,l=lights.length;i<l;i++){const light=lights[i];const color=light.color;const intensity=light.intensity;const distance=light.distance;const shadowMap=light.shadow&&light.shadow.map?light.shadow.map.texture:null;if(light.isAmbientLight){r+=color.r*intensity*scaleFactor;g+=color.g*intensity*scaleFactor;b+=color.b*intensity*scaleFactor}else if(light.isLightProbe){for(let j=0;j<9;j++){state.probe[j].addScaledVector(light.sh.coefficients[j],intensity)}numLightProbes++}else if(light.isDirectionalLight){const uniforms=cache.get(light);uniforms.color.copy(light.color).multiplyScalar(light.intensity*scaleFactor);if(light.castShadow){const shadow=light.shadow;const shadowUniforms=shadowCache.get(light);shadowUniforms.shadowBias=shadow.bias;shadowUniforms.shadowNormalBias=shadow.normalBias;shadowUniforms.shadowRadius=shadow.radius;shadowUniforms.shadowMapSize=shadow.mapSize;
4209state.directionalShadow[directionalLength]=shadowUniforms;state.directionalShadowMap[directionalLength]=shadowMap;state.directionalShadowMatrix[directionalLength]=light.shadow.matrix;numDirectionalShadows++}state.directional[directionalLength]=uniforms;directionalLength++}else if(light.isSpotLight){const uniforms=cache.get(light);uniforms.position.setFromMatrixPosition(light.matrixWorld);uniforms.color.copy(color).multiplyScalar(intensity*scaleFactor);uniforms.distance=distance;uniforms.coneCos=Math.cos(light.angle);uniforms.penumbraCos=Math.cos(light.angle*(1-light.penumbra));uniforms.decay=light.decay;state.spot[spotLength]=uniforms;const shadow=light.shadow;if(light.map){state.spotLightMap[numSpotMaps]=light.map;numSpotMaps++;shadow.updateMatrices(light);if(light.castShadow)numSpotShadowsWithMaps++}state.spotLightMatrix[spotLength]=shadow.matrix;if(light.castShadow){const shadowUniforms=shadowCache.get(light);shadowUniforms.shadowBias=shadow.bias;shadowUniforms.shadowNormalBias=shadow.normalBias;shadowUniforms.shadowRadius=shadow.radius;shadowUniforms.shadowMapSize=shadow.mapSize;state.spotShadow[spotLength]=shadowUniforms;state.spotShadowMap[spotLength]=shadowMap;numSpotShadows++}spotLength++}else if(light.isRectAreaLight){const uniforms=cache.get(light);uniforms.color.copy(color).multiplyScalar(intensity);uniforms.halfWidth.set(light.width*0.5,0,0);uniforms.halfHeight.set(0,light.height*0.5,0);state.rectArea[rectAreaLength]=uniforms;rectAreaLength++}else if(light.isPointLight){const uniforms=cache.get(light);uniforms.color.copy(light.color).multiplyScalar(light.intensity*scaleFactor);uniforms.distance=light.distance;uniforms.decay=light.decay;if(light.castShadow){const shadow=light.shadow;const shadowUniforms=shadowCache.get(light);shadowUniforms.shadowBias=shadow.bias;shadowUniforms.shadowNormalBias=shadow.normalBias;shadowUniforms.shadowRadius=shadow.radius;shadowUniforms.shadowMapSize=shadow.mapSize;shadowUniforms.shadowCameraNear=shadow.camera.near;shadowUniforms.shadowCameraFar=shadow.camera.far;state.pointShadow[pointLength]=shadowUniforms;state.pointShadowMap[pointLength]=shadowMap;state.pointShadowMatrix[pointLength]=light.shadow.matrix;numPointShadows++}state.point[pointLength]=uniforms;pointLength++}else if(light.isHemisphereLight){const uniforms=cache.get(light);uniforms.skyColor.copy(light.color).multiplyScalar(intensity*scaleFactor);uniforms.groundColor.copy(light.groundColor).multiplyScalar(intensity*scaleFactor);state.hemi[hemiLength]=uniforms;hemiLength++}}if(rectAreaLength>0){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;
4209state.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<l;i++){const light=lights[i];if(light.isDirectionalLight){const uniforms=state.directional[directionalLength];uniforms.direction.setFromMatrixPosition(light.matrixWorld);vector3.setFromMatrixPosition(light.target.matrixWorld);uniforms.direction.sub(vector3);uniforms.direction.transformDirection(viewMatrix);directionalLength++}else if(light.isSpotLight){const uniforms=state.spot[spotLength];uniforms.position.setFromMatrixPosition(light.matrixWorld);uniforms.position.applyMatrix4(viewMatrix);uniforms.direction.setFromMatrixPosition(light.matrixWorld);vector3.setFromMatrixPosition(light.target.matrixWorld);uniforms.direction.sub(vector3);uniforms.direction.transformDirection(viewMatrix);spotLength++}else if(light.isRectAreaLight){const uniforms=state.rectArea[rectAreaLength];uniforms.position.setFromMatrixPosition(light.matrixWorld);uniforms.position.applyMatrix4(viewMatrix);matrix42.identity();matrix4.copy(light.matrixWorld);matrix4.premultiply(viewMatrix);matrix42.extractRotation(matrix4);uniforms.halfWidth.set(light.width*0.5,0,0);uniforms.halfHeight.set(0,light.height*0.5,0);uniforms.halfWidth.applyMatrix4(matrix42);uniforms.halfHeight.applyMatrix4(matrix42);rectAreaLength++}else if(light.isPointLight){const uniforms=state.point[pointLength];uniforms.position.setFromMatrixPosition(light.matrixWorld);uniforms.position.applyMatrix4(viewMatrix);pointLength++}else if(light.isHemisphereLight){const uniforms=state.hemi[hemiLength];uniforms.direction.setFromMatrixPosition(light.matrixWorld);uniforms.direction.transformDirection(viewMatrix);hemiLength++}}}return{setup:setup,setupView:setupView,state:state}}function WebGLRenderState(extensions){const lights=new WebGLLights(extensions);const lightsArray=[];const shadowsArray=[];function init(){lightsArray.length=0;shadowsArray.length=0}function pushLight(light){lightsArray.push(light)}function pushShadow(shadowLight){shadowsArray.push(shadowLight)}function setupLights(useLegacyLights){lights.setup(lightsArray,useLegacyLights)}function setupLightsView(camera){lights.setupView(lightsArray,camera)}const state={lightsArray:lightsArray,shadowsArray:shadowsArray,lights:lights,transmissionRenderTarget:null};return{init:init,state:state,setupLights:setupLights,setupLightsView:setupLightsView,pushLight:pushLight,pushShadow:pushShadow}}function WebGLRenderStates(extensions){let renderStates=new WeakMap;function get(scene,renderCallDepth=0){const renderStateArray=renderStates.get(scene);let renderState;if(renderStateArray===undefined){renderState=new WebGLRenderState(extensions);renderStates.set(scene,[renderState])}else{if(renderCallDepth>=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}}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}}const vertex="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}";const fragment="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>
4209\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 = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\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 = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\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( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function WebGLShadowMap(_renderer,_objects,_capabilities){let _frustum=new Frustum;const _shadowMapSize=new Vector2,_viewportSize=new Vector2,_viewport=new Vector4,_depthMaterial=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),_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;
4209let _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;const currentRenderTarget=_renderer.getRenderTarget();const activeCubeFace=_renderer.getActiveCubeFace();const activeMipmapLevel=_renderer.getActiveMipmapLevel();const _state=_renderer.state;_state.setBlending(NoBlending);_state.buffers.color.setClear(1,1,1,1);_state.buffers.depth.setTest(true);_state.setScissorTest(false);const toVSM=_previousType!==VSMShadowMap&&this.type===VSMShadowMap;const fromVSM=_previousType===VSMShadowMap&&this.type!==VSMShadowMap;for(let i=0,il=lights.length;i<il;i++){const light=lights[i];const shadow=light.shadow;if(shadow===undefined){console.warn("THREE.WebGLShadowMap:",light,"has no shadow.");continue}if(shadow.autoUpdate===false&&shadow.needsUpdate===false)continue;_shadowMapSize.copy(shadow.mapSize);const shadowFrameExtents=shadow.getFrameExtents();_shadowMapSize.multiply(shadowFrameExtents);_viewportSize.copy(shadow.mapSize);if(_shadowMapSize.x>_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||toVSM===true||fromVSM===true){const pars=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};if(shadow.map!==null){shadow.map.dispose()}shadow.map=new WebGLRenderTarget(_shadowMapSize.x,_shadowMapSize.y,pars);shadow.map.texture.name=light.name+".shadowMap";shadow.camera.updateProjectionMatrix()}_renderer.setRenderTarget(shadow.map);_renderer.clear();const viewportCount=shadow.getViewportCount();for(let vp=0;vp<viewportCount;vp++){const viewport=shadow.getViewport(vp);_viewport.set(_viewportSize.x*viewport.x,_viewportSize.y*viewport.y,_viewportSize.x*viewport.z,_viewportSize.y*viewport.w);_state.viewport(_viewport);shadow.updateMatrices(light,vp);_frustum=shadow.getFrustum();renderObject(scene,camera,shadow.camera,light,this.type)}if(shadow.isPointLightShadow!==true&&this.type===VSMShadowMap){VSMPass(shadow,camera)}shadow.needsUpdate=false}
4209_previousType=this.type;scope.needsUpdate=false;_renderer.setRenderTarget(currentRenderTarget,activeCubeFace,activeMipmapLevel)};function VSMPass(shadow,camera){const geometry=_objects.update(fullScreenMesh);if(shadowMaterialVertical.defines.VSM_SAMPLES!==shadow.blurSamples){shadowMaterialVertical.defines.VSM_SAMPLES=shadow.blurSamples;shadowMaterialHorizontal.defines.VSM_SAMPLES=shadow.blurSamples;shadowMaterialVertical.needsUpdate=true;shadowMaterialHorizontal.needsUpdate=true}if(shadow.mapPass===null){shadow.mapPass=new WebGLRenderTarget(_shadowMapSize.x,_shadowMapSize.y)}shadowMaterialVertical.uniforms.shadow_pass.value=shadow.map.texture;shadowMaterialVertical.uniforms.resolution.value=shadow.mapSize;shadowMaterialVertical.uniforms.radius.value=shadow.radius;_renderer.setRenderTarget(shadow.mapPass);_renderer.clear();_renderer.renderBufferDirect(camera,null,geometry,shadowMaterialVertical,fullScreenMesh,null);shadowMaterialHorizontal.uniforms.shadow_pass.value=shadow.mapPass.texture;shadowMaterialHorizontal.uniforms.resolution.value=shadow.mapSize;shadowMaterialHorizontal.uniforms.radius.value=shadow.radius;_renderer.setRenderTarget(shadow.map);_renderer.clear();_renderer.renderBufferDirect(camera,null,geometry,shadowMaterialHorizontal,fullScreenMesh,null)}function getDepthMaterial(object,material,light,type){let result=null;const customMaterial=light.isPointLight===true?object.customDistanceMaterial:object.customDepthMaterial;if(customMaterial!==undefined){result=customMaterial}else{result=light.isPointLight===true?_distanceMaterial:_depthMaterial;
4209if(_renderer.localClippingEnabled&&material.clipShadows===true&&Array.isArray(material.clippingPlanes)&&material.clippingPlanes.length!==0||material.displacementMap&&material.displacementScale!==0||material.alphaMap&&material.alphaTest>0||material.map&&material.alphaTest>0){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.alphaTest;result.map=material.map;
4209result.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<kl;k++){const group=groups[k];const groupMaterial=material[group.materialIndex];if(groupMaterial&&groupMaterial.visible){const depthMaterial=getDepthMaterial(object,groupMaterial,light,type);object.onBeforeShadow(_renderer,object,camera,shadowCamera,geometry,depthMaterial,group);_renderer.renderBufferDirect(shadowCamera,null,geometry,depthMaterial,object,group);object.onAfterShadow(_renderer,object,camera,shadowCamera,geometry,depthMaterial,group)}}}else if(material.visible){const depthMaterial=getDepthMaterial(object,material,light,type);object.onBeforeShadow(_renderer,object,camera,shadowCamera,geometry,depthMaterial,null);_renderer.renderBufferDirect(shadowCamera,null,geometry,depthMaterial,object,null);object.onAfterShadow(_renderer,object,camera,shadowCamera,geometry,depthMaterial,null)}}}const children=object.children;for(let i=0,l=children.length;i<l;i++){renderObject(children[i],camera,shadowCamera,light,type)}}function onMaterialDispose(event){const material=event.target;material.removeEventListener("dispose",onMaterialDispose);for(const id in _materialCache){const cache=_materialCache[id];const uuid=event.target.uuid;if(uuid in cache){const shadowMaterial=cache[uuid];shadowMaterial.dispose();delete cache[uuid]}}}}function WebGLState(gl){function ColorBuffer(){let locked=false;const color=new Vector4;let currentColorMask=null;const currentColorClear=new Vector4(0,0,0,0);return{setMask:function(colorMask){if(currentColorMask!==colorMask&&!locked){gl.colorMask(colorMask,colorMask,colorMask,colorMask);currentColorMask=colorMask}},setLocked:function(lock){locked=lock},setClear:function(r,g,b,a,premultipliedAlpha){if(premultipliedAlpha===true){r*=a;g*=a;b*=a}color.set(r,g,b,a);if(currentColorClear.equals(color)===false){gl.clearColor(r,g,b,a);currentColorClear.copy(color)}},reset:function(){locked=false;currentColorMask=null;currentColorClear.set(-1,0,0,0)}}}function DepthBuffer(){let locked=false;let currentDepthMask=null;let currentDepthFunc=null;let currentDepthClear=null;return{setTest:function(depthTest){if(depthTest){enable(gl.DEPTH_TEST)}else{disable(gl.DEPTH_TEST)}},setMask:function(depthMask){if(currentDepthMask!==depthMask&&!locked){gl.depthMask(depthMask);currentDepthMask=depthMask}},setFunc:function(depthFunc){if(currentDepthFunc!==depthFunc){switch(depthFunc){case NeverDepth:gl.depthFunc(gl.NEVER);break;case AlwaysDepth:gl.depthFunc(gl.ALWAYS);break;case LessDepth:gl.depthFunc(gl.LESS);break;case LessEqualDepth:gl.depthFunc(gl.LEQUAL);break;case EqualDepth:gl.depthFunc(gl.EQUAL);break;case GreaterEqualDepth:gl.depthFunc(gl.GEQUAL);break;case GreaterDepth:gl.depthFunc(gl.GREATER);break;case NotEqualDepth:gl.depthFunc(gl.NOTEQUAL);break;default:gl.depthFunc(gl.LEQUAL);}currentDepthFunc=depthFunc}},setLocked:function(lock){locked=lock},setClear:function(depth){if(currentDepthClear!==depth){gl.clearDepth(depth);currentDepthClear=depth}},reset:function(){locked=false;currentDepthMask=null;currentDepthFunc=null;currentDepthClear=null}}}function StencilBuffer(){let locked=false;let currentStencilMask=null;
4209let currentStencilFunc=null;let currentStencilRef=null;let currentStencilFuncMask=null;let currentStencilFail=null;let currentStencilZFail=null;let currentStencilZPass=null;let currentStencilClear=null;return{setTest:function(stencilTest){if(!locked){if(stencilTest){enable(gl.STENCIL_TEST)}else{disable(gl.STENCIL_TEST)}}},setMask:function(stencilMask){if(currentStencilMask!==stencilMask&&!locked){gl.stencilMask(stencilMask);currentStencilMask=stencilMask}},setFunc:function(stencilFunc,stencilRef,stencilMask){if(currentStencilFunc!==stencilFunc||currentStencilRef!==stencilRef||currentStencilFuncMask!==stencilMask){gl.stencilFunc(stencilFunc,stencilRef,stencilMask);currentStencilFunc=stencilFunc;currentStencilRef=stencilRef;currentStencilFuncMask=stencilMask}},setOp:function(stencilFail,stencilZFail,stencilZPass){if(currentStencilFail!==stencilFail||currentStencilZFail!==stencilZFail||currentStencilZPass!==stencilZPass){gl.stencilOp(stencilFail,stencilZFail,stencilZPass);currentStencilFail=stencilFail;currentStencilZFail=stencilZFail;currentStencilZPass=stencilZPass}},setLocked:function(lock){locked=lock},setClear:function(stencil){if(currentStencilClear!==stencil){gl.clearStencil(stencil);currentStencilClear=stencil}},reset:function(){locked=false;currentStencilMask=null;currentStencilFunc=null;currentStencilRef=null;currentStencilFuncMask=null;currentStencilFail=null;currentStencilZFail=null;currentStencilZPass=null;currentStencilClear=null}}}const colorBuffer=new ColorBuffer;const depthBuffer=new DepthBuffer;const stencilBuffer=new StencilBuffer;const uboBindings=new WeakMap;const uboProgramMap=new WeakMap;let enabledCapabilities={};let currentBoundFramebuffers={};let currentDrawbuffers=new WeakMap;let defaultDrawbuffers=[];let currentProgram=null;let currentBlendingEnabled=false;let currentBlending=null;let currentBlendEquation=null;let currentBlendSrc=null;let currentBlendDst=null;let currentBlendEquationAlpha=null;let currentBlendSrcAlpha=null;let currentBlendDstAlpha=null;let currentBlendColor=new Color(0,0,0);let currentBlendAlpha=0;let currentPremultipledAlpha=false;let currentFlipSided=null;let currentCullFace=null;let currentLineWidth=null;let currentPolygonOffsetFactor=null;let currentPolygonOffsetUnits=null;const maxTextures=gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let lineWidthAvailable=false;let version=0;const glVersion=gl.getParameter(gl.VERSION);if(glVersion.indexOf("WebGL")!==-1){version=parseFloat(/^WebGL (\d)/.exec(glVersion)[1]);lineWidthAvailable=version>=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;i<count;i++){if(type===gl.TEXTURE_3D||type===gl.TEXTURE_2D_ARRAY){gl.texImage3D(target,0,gl.RGBA,1,1,dimensions,0,gl.RGBA,gl.UNSIGNED_BYTE,data)}else{gl.texImage2D(target+i,0,gl.RGBA,1,1,0,gl.RGBA,gl.UNSIGNED_BYTE,data)}}return texture}const emptyTextures={};emptyTextures[gl.TEXTURE_2D]=createTexture(gl.TEXTURE_2D,gl.TEXTURE_2D,1);emptyTextures[gl.TEXTURE_CUBE_MAP]=createTexture(gl.TEXTURE_CUBE_MAP,gl.TEXTURE_CUBE_MAP_POSITIVE_X,6);emptyTextures[gl.TEXTURE_2D_ARRAY]=createTexture(gl.TEXTURE_2D_ARRAY,gl.TEXTURE_2D_ARRAY,1,1);emptyTextures[gl.TEXTURE_3D]=createTexture(gl.TEXTURE_3D,gl.TEXTURE_3D,1,1);colorBuffer.setClear(0,0,0,1);depthBuffer.setClear(1);stencilBuffer.setClear(0);enable(gl.DEPTH_TEST);depthBuffer.setFunc(LessEqualDepth);setFlipSided(false);setCullFace(CullFaceBack);enable(gl.CULL_FACE);setBlending(NoBlending);function enable(id){if(enabledCapabilities[id]!==true){gl.enable(id);enabledCapabilities[id]=true}}function disable(id){if(enabledCapabilities[id]!==false){gl.disable(id);enabledCapabilities[id]=false}}function bindFramebuffer(target,framebuffer){if(currentBoundFramebuffers[target]!==framebuffer){gl.bindFramebuffer(target,framebuffer);currentBoundFramebuffers[target]=framebuffer;if(target===gl.DRAW_FRAMEBUFFER){currentBoundFramebuffers[gl.FRAMEBUFFER]=framebuffer}if(target===gl.FRAMEBUFFER){currentBoundFramebuffers[gl.DRAW_FRAMEBUFFER]=framebuffer}return true}return false}function drawBuffers(renderTarget,framebuffer){let drawBuffers=defaultDrawbuffers;let needsUpdate=false;if(renderTarget){drawBuffers=currentDrawbuffers.get(framebuffer);
4209if(drawBuffers===undefined){drawBuffers=[];currentDrawbuffers.set(framebuffer,drawBuffers)}const textures=renderTarget.textures;if(drawBuffers.length!==textures.length||drawBuffers[0]!==gl.COLOR_ATTACHMENT0){for(let i=0,il=textures.length;i<il;i++){drawBuffers[i]=gl.COLOR_ATTACHMENT0+i}drawBuffers.length=textures.length;needsUpdate=true}}else{if(drawBuffers[0]!==gl.BACK){drawBuffers[0]=gl.BACK;needsUpdate=true}}if(needsUpdate){gl.drawBuffers(drawBuffers)}}function useProgram(program){if(currentProgram!==program){gl.useProgram(program);currentProgram=program;return true}return false}const equationToGL={[AddEquation]:gl.FUNC_ADD,[SubtractEquation]:gl.FUNC_SUBTRACT,[ReverseSubtractEquation]:gl.FUNC_REVERSE_SUBTRACT};equationToGL[MinEquation]=gl.MIN;equationToGL[MaxEquation]=gl.MAX;const factorToGL={[ZeroFactor]:gl.ZERO,[OneFactor]:gl.ONE,[SrcColorFactor]:gl.SRC_COLOR,[SrcAlphaFactor]:gl.SRC_ALPHA,[SrcAlphaSaturateFactor]:gl.SRC_ALPHA_SATURATE,[DstColorFactor]:gl.DST_COLOR,[DstAlphaFactor]:gl.DST_ALPHA,[OneMinusSrcColorFactor]:gl.ONE_MINUS_SRC_COLOR,[OneMinusSrcAlphaFactor]:gl.ONE_MINUS_SRC_ALPHA,[OneMinusDstColorFactor]:gl.ONE_MINUS_DST_COLOR,[OneMinusDstAlphaFactor]:gl.ONE_MINUS_DST_ALPHA,[ConstantColorFactor]:gl.CONSTANT_COLOR,[OneMinusConstantColorFactor]:gl.ONE_MINUS_CONSTANT_COLOR,[ConstantAlphaFactor]:gl.CONSTANT_ALPHA,[OneMinusConstantAlphaFactor]:gl.ONE_MINUS_CONSTANT_ALPHA};function setBlending(blending,blendEquation,blendSrc,blendDst,blendEquationAlpha,blendSrcAlpha,blendDstAlpha,blendColor,blendAlpha,premultipliedAlpha){if(blending===NoBlending){if(currentBlendingEnabled===true){disable(gl.BLEND);currentBlendingEnabled=false}return}if(currentBlendingEnabled===false){enable(gl.BLEND);currentBlendingEnabled=true}if(blending!==CustomBlending){if(blending!==currentBlending||premultipliedAlpha!==currentPremultipledAlpha){if(currentBlendEquation!==AddEquation||currentBlendEquationAlpha!==AddEquation){gl.blendEquation(gl.FUNC_ADD);currentBlendEquation=AddEquation;currentBlendEquationAlpha=AddEquation}if(premultipliedAlpha){switch(blending){case NormalBlending:gl.blendFuncSeparate(gl.ONE,gl.ONE_MINUS_SRC_ALPHA,gl.ONE,gl.ONE_MINUS_SRC_ALPHA);break;case AdditiveBlending:gl.blendFunc(gl.ONE,gl.ONE);break;case SubtractiveBlending:gl.blendFuncSeparate(gl.ZERO,gl.ONE_MINUS_SRC_COLOR,gl.ZERO,gl.ONE);break;case MultiplyBlending:gl.blendFuncSeparate(gl.ZERO,gl.SRC_COLOR,gl.ZERO,gl.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",blending);break;}}else{switch(blending){case NormalBlending:gl.blendFuncSeparate(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA,gl.ONE,gl.ONE_MINUS_SRC_ALPHA);break;case AdditiveBlending:gl.blendFunc(gl.SRC_ALPHA,gl.ONE);break;case SubtractiveBlending:gl.blendFuncSeparate(gl.ZERO,gl.ONE_MINUS_SRC_COLOR,gl.ZERO,gl.ONE);break;case MultiplyBlending:gl.blendFunc(gl.ZERO,gl.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",blending);break;}}currentBlendSrc=null;currentBlendDst=null;currentBlendSrcAlpha=null;currentBlendDstAlpha=null;currentBlendColor.set(0,0,0);currentBlendAlpha=0;currentBlending=blending;currentPremultipledAlpha=premultipliedAlpha}return}blendEquationAlpha=blendEquationAlpha||blendEquation;blendSrcAlpha=blendSrcAlpha||blendSrc;blendDstAlpha=blendDstAlpha||blendDst;if(blendEquation!==currentBlendEquation||blendEquationAlpha!==currentBlendEquationAlpha){gl.blendEquationSeparate(equationToGL[blendEquation],equationToGL[blendEquationAlpha]);currentBlendEquation=blendEquation;currentBlendEquationAlpha=blendEquationAlpha}if(blendSrc!==currentBlendSrc||blendDst!==currentBlendDst||blendSrcAlpha!==currentBlendSrcAlpha||blendDstAlpha!==currentBlendDstAlpha){gl.blendFuncSeparate(factorToGL[blendSrc],factorToGL[blendDst],factorToGL[blendSrcAlpha],factorToGL[blendDstAlpha]);currentBlendSrc=blendSrc;currentBlendDst=blendDst;currentBlendSrcAlpha=blendSrcAlpha;currentBlendDstAlpha=blendDstAlpha}if(blendColor.equals(currentBlendColor)===false||blendAlpha!==currentBlendAlpha){gl.blendColor(blendColor.r,blendColor.g,blendColor.b,blendAlpha);currentBlendColor.copy(blendColor);currentBlendAlpha=blendAlpha}currentBlending=blending;currentPremultipledAlpha=false}function setMaterial(material,frontFaceCW){material.side===DoubleSide?disable(gl.CULL_FACE):enable(gl.CULL_FACE);let flipSided=material.side===BackSide;if(frontFaceCW)flipSided=!flipSided;setFlipSided(flipSided);material.blending===NormalBlending&&material.transparent===false?setBlending(NoBlending):setBlending(material.blending,material.blendEquation,material.blendSrc,material.blendDst,material.blendEquationAlpha,material.blendSrcAlpha,material.blendDstAlpha,material.blendColor,material.blendAlpha,material.premultipliedAlpha);depthBuffer.setFunc(material.depthFunc);depthBuffer.setTest(material.depthTest);depthBuffer.setMask(material.depthWrite);colorBuffer.setMask(material.colorWrite);const stencilWrite=material.stencilWrite;stencilBuffer.setTest(stencilWrite);if(stencilWrite){stencilBuffer.setMask(material.stencilWriteMask);stencilBuffer.setFunc(material.stencilFunc,material.stencilRef,material.stencilFuncMask);stencilBuffer.setOp(material.stencilFail,material.stencilZFail,material.stencilZPass)}setPolygonOffset(material.polygonOffset,material.polygonOffsetFactor,material.polygonOffsetUnits);material.alphaToCoverage===true?enable(gl.SAMPLE_ALPHA_TO_COVERAGE):disable(gl.SAMPLE_ALPHA_TO_COVERAGE)}function setFlipSided(flipSided){if(currentFlipSided!==flipSided){if(flipSided){gl.frontFace(gl.CW)}else{gl.frontFace(gl.CCW)}currentFlipSided=flipSided}}function setCullFace(cullFace){if(cullFace!==CullFaceNone){enable(gl.CULL_FACE);if(cullFace!==currentCullFace){if(cullFace===CullFaceBack){gl.cullFace(gl.BACK)}else if(cullFace===CullFaceFront){gl.cullFace(gl.FRONT)}else{gl.cullFace(gl.FRONT_AND_BACK)}}}else{disable(gl.CULL_FACE)}currentCullFace=cullFace}function setLineWidth(width){if(width!==currentLineWidth){if(lineWidthAvailable)gl.lineWidth(width);currentLineWidth=width}}function setPolygonOffset(polygonOffset,factor,units){if(polygonOffset){enable(gl.POLYGON_OFFSET_FILL);if(currentPolygonOffsetFactor!==factor||currentPolygonOffsetUnits!==units){gl.polygonOffset(factor,units);currentPolygonOffsetFactor=factor;currentPolygonOffsetUnits=units}}else{disable(gl.POLYGON_OFFSET_FILL)}}function setScissorTest(scissorTest){if(scissorTest){enable(gl.SCISSOR_TEST)}else{disable(gl.SCISSOR_TEST)}}function activeTexture(webglSlot){if(webglSlot===undefined)webglSlot=gl.TEXTURE0+maxTextures-1;if(currentTextureSlot!==webglSlot){gl.activeTexture(webglSlot);currentTextureSlot=webglSlot}}function bindTexture(webglType,webglTexture,webglSlot){if(webglSlot===undefined){if(currentTextureSlot===null){webglSlot=gl.TEXTURE0+maxTextures-1}else{webglSlot=currentTextureSlot}}let boundTexture=currentBoundTextures[webglSlot];if(boundTexture===undefined){boundTexture={type:undefined,texture:undefined};currentBoundTextures[webglSlot]=boundTexture}if(boundTexture.type!==webglType||boundTexture.texture!==webglTexture){if(currentTextureSlot!==webglSlot){gl.activeTexture(webglSlot);currentTextureSlot=webglSlot}gl.bindTexture(webglType,webglTexture||emptyTextures[webglType]);boundTexture.type=webglType;boundTexture.texture=webglTexture}}function unbindTexture(){const boundTexture=currentBoundTextures[currentTextureSlot];if(boundTexture!==undefined&&boundTexture.type!==undefined){gl.bindTexture(boundTexture.type,null);boundTexture.type=undefined;boundTexture.texture=undefined}}function compressedTexImage2D(){try{gl.compressedTexImage2D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function compressedTexImage3D(){try{gl.compressedTexImage3D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function texSubImage2D(){try{gl.texSubImage2D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function texSubImage3D(){try{gl.texSubImage3D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function compressedTexSubImage2D(){try{gl.compressedTexSubImage2D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function compressedTexSubImage3D(){try{gl.compressedTexSubImage3D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function texStorage2D(){try{gl.texStorage2D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function texStorage3D(){try{gl.texStorage3D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function texImage2D(){try{gl.texImage2D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function texImage3D(){try{gl.texImage3D.apply(gl,arguments)}catch(error){console.error("THREE.WebGLState:",error)}}function scissor(scissor){if(currentScissor.equals(scissor)===false){gl.scissor(scissor.x,scissor.y,scissor.z,scissor.w);currentScissor.copy(scissor)}}function viewport(viewport){if(currentViewport.equals(viewport)===false){gl.viewport(viewport.x,viewport.y,viewport.z,viewport.w);currentViewport.copy(viewport)}}function updateUBOMapping(uniformsGroup,program){let mapping=uboProgramMap.get(program);if(mapping===undefined){mapping=new WeakMap;uboProgramMap.set(program,mapping)}let blockIndex=mapping.get(uniformsGroup);if(blockIndex===undefined){blockIndex=gl.getUniformBlockIndex(program,uniformsGroup.name);mapping.set(uniformsGroup,blockIndex)}}function uniformBlockBinding(uniformsGroup,program){const mapping=uboProgramMap.get(program);const blockIndex=mapping.get(uniformsGroup);if(uboBindings.get(program)!==blockIndex){gl.uniformBlockBinding(program,blockIndex,uniformsGroup.__bindingPointIndex);uboBindings.set(program,blockIndex)}}function reset(){gl.disable(gl.BLEND);gl.disable(gl.CULL_FACE);gl.disable(gl.DEPTH_TEST);gl.disable(gl.POLYGON_OFFSET_FILL);gl.disable(gl.SCISSOR_TEST);gl.disable(gl.STENCIL_TEST);gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);gl.blendEquation(gl.FUNC_ADD);gl.blendFunc(gl.ONE,gl.ZERO);gl.blendFuncSeparate(gl.ONE,gl.ZERO,gl.ONE,gl.ZERO);
4209gl.blendColor(0,0,0,0);gl.colorMask(true,true,true,true);gl.clearColor(0,0,0,0);gl.depthMask(true);gl.depthFunc(gl.LESS);gl.clearDepth(1);gl.stencilMask(4294967295);gl.stencilFunc(gl.ALWAYS,0,4294967295);gl.stencilOp(gl.KEEP,gl.KEEP,gl.KEEP);gl.clearStencil(0);gl.cullFace(gl.BACK);gl.frontFace(gl.CCW);gl.polygonOffset(0,0);gl.activeTexture(gl.TEXTURE0);gl.bindFramebuffer(gl.FRAMEBUFFER,null);gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER,null);gl.bindFramebuffer(gl.READ_FRAMEBUFFER,null);gl.useProgram(null);gl.lineWidth(1);gl.scissor(0,0,gl.canvas.width,gl.canvas.height);gl.viewport(0,0,gl.canvas.width,gl.canvas.height);enabledCapabilities={};currentTextureSlot=null;currentBoundTextures={};currentBoundFramebuffers={};currentDrawbuffers=new WeakMap;defaultDrawbuffers=[];currentProgram=null;currentBlendingEnabled=false;currentBlending=null;currentBlendEquation=null;currentBlendSrc=null;currentBlendDst=null;currentBlendEquationAlpha=null;currentBlendSrcAlpha=null;currentBlendDstAlpha=null;currentBlendColor=new Color(0,0,0);currentBlendAlpha=0;currentPremultipledAlpha=false;currentFlipSided=null;currentCullFace=null;currentLineWidth=null;currentPolygonOffsetFactor=null;currentPolygonOffsetUnits=null;currentScissor.set(0,0,gl.canvas.width,gl.canvas.height);currentViewport.set(0,0,gl.canvas.width,gl.canvas.height);colorBuffer.reset();depthBuffer.reset();stencilBuffer.reset()}return{buffers:{color:colorBuffer,depth:depthBuffer,stencil:stencilBuffer},enable:enable,disable:disable,bindFramebuffer:bindFramebuffer,drawBuffers:drawBuffers,useProgram:useProgram,setBlending:setBlending,setMaterial:setMaterial,setFlipSided:setFlipSided,setCullFace:setCullFace,setLineWidth:setLineWidth,setPolygonOffset:setPolygonOffset,setScissorTest:setScissorTest,activeTexture:activeTexture,bindTexture:bindTexture,unbindTexture:unbindTexture,compressedTexImage2D:compressedTexImage2D,compressedTexImage3D:compressedTexImage3D,texImage2D:texImage2D,texImage3D:texImage3D,updateUBOMapping:updateUBOMapping,uniformBlockBinding:uniformBlockBinding,texStorage2D:texStorage2D,texStorage3D:texStorage3D,texSubImage2D:texSubImage2D,texSubImage3D:texSubImage3D,compressedTexSubImage2D:compressedTexSubImage2D,compressedTexSubImage3D:compressedTexSubImage3D,scissor:scissor,viewport:viewport,reset:reset}}function WebGLTextures(_gl,extensions,state,properties,capabilities,utils,info){const multisampledRTTExt=extensions.has("WEBGL_multisampled_render_to_texture")?extensions.get("WEBGL_multisampled_render_to_texture"):null;const supportsInvalidateFramebuffer=typeof navigator==="undefined"?false:/OculusBrowser/g.test(navigator.userAgent);const _imageDimensions=new Vector2;const _videoTextures=new WeakMap;let _canvas;const _sources=new WeakMap;let useOffscreenCanvas=false;try{useOffscreenCanvas=typeof OffscreenCanvas!=="undefined"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch(err){}function createCanvas(width,height){return useOffscreenCanvas?new OffscreenCanvas(width,height):createElementNS("canvas")}function resizeImage(image,needsNewCanvas,maxSize){let scale=1;const dimensions=getDimensions(image);if(dimensions.width>maxSize||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);console.warn("THREE.WebGLRenderer: Texture has been resized from ("+dimensions.width+"x"+dimensions.height+") to ("+width+"x"+height+").");return canvas}else{if("data"in image){console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+dimensions.width+"x"+dimensions.height+").")}return image}}return image}function textureNeedsGenerateMipmaps(texture){return texture.generateMipmaps&&texture.minFilter!==NearestFilter&&texture.minFilter!==LinearFilter}function generateMipmap(target){_gl.generateMipmap(target)}function getInternalFormat(internalFormatName,glFormat,glType,colorSpace,forceLinearTransfer=false){if(internalFormatName!==null){if(_gl[internalFormatName]!==undefined)return _gl[internalFormatName];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+internalFormatName+"'")}let internalFormat=glFormat;
4209if(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){if(glType===_gl.UNSIGNED_INT_5_9_9_9_REV)internalFormat=_gl.RGB9_E5}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 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}
4209else 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()}if(renderTarget.isWebGLCubeRenderTarget){for(let i=0;i<6;i++){if(Array.isArray(renderTargetProperties.__webglFramebuffer[i])){for(let level=0;level<renderTargetProperties.__webglFramebuffer[i].length;
4209level++)_gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i][level])}else{_gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i])}if(renderTargetProperties.__webglDepthbuffer)_gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i])}}else{if(Array.isArray(renderTargetProperties.__webglFramebuffer)){for(let level=0;level<renderTargetProperties.__webglFramebuffer.length;level++)_gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[level])}else{_gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer)}if(renderTargetProperties.__webglDepthbuffer)_gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer);if(renderTargetProperties.__webglMultisampledFramebuffer)_gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer);if(renderTargetProperties.__webglColorRenderbuffer){for(let i=0;i<renderTargetProperties.__webglColorRenderbuffer.length;i++){if(renderTargetProperties.__webglColorRenderbuffer[i])_gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer[i])}}if(renderTargetProperties.__webglDepthRenderbuffer)_gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer)}const textures=renderTarget.textures;for(let i=0,il=textures.length;i<il;i++){const attachmentProperties=properties.get(textures[i]);if(attachmentProperties.__webglTexture){_gl.deleteTexture(attachmentProperties.__webglTexture);info.memory.textures--}properties.remove(textures[i])}properties.remove(renderTarget)}let textureUnits=0;function resetTextureUnits(){textureUnits=0}function allocateTextureUnit(){const textureUnit=textureUnits;if(textureUnit>=capabilities.maxTextures){console.warn("THREE.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.version>0&&textureProperties.__version!==texture.version){const image=texture.image;if(image===null){console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.")}else if(image.complete===false){console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}else{uploadTexture(textureProperties,texture,slot);return}}state.bindTexture(_gl.TEXTURE_2D,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}function setTexture2DArray(texture,slot){const textureProperties=properties.get(texture);if(texture.version>0&&textureProperties.__version!==texture.version){uploadTexture(textureProperties,texture,slot);return}state.bindTexture(_gl.TEXTURE_2D_ARRAY,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}function setTexture3D(texture,slot){const textureProperties=properties.get(texture);if(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.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,[
4209LinearMipmapLinearFilter]:_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)){console.warn("THREE.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 uploadTexture(textureProperties,texture,slot){let textureType=_gl.TEXTURE_2D;if(texture.isDataArrayTexture||texture.isCompressedArrayTexture)textureType=_gl.TEXTURE_2D_ARRAY;if(texture.isData3DTexture)textureType=_gl.TEXTURE_3D;const forceUpload=initTexture(textureProperties,texture);const source=texture.source;state.bindTexture(textureType,textureProperties.__webglTexture,_gl.TEXTURE0+slot);const sourceProperties=properties.get(source);if(source.version!==sourceProperties.__version||forceUpload===true){state.activeTexture(_gl.TEXTURE0+slot);const workingPrimaries=ColorManagement.getPrimaries(ColorManagement.workingColorSpace);const texturePrimaries=texture.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(texture.colorSpace);const unpackConversion=texture.colorSpace===NoColorSpace||workingPrimaries===texturePrimaries?_gl.NONE:_gl.BROWSER_DEFAULT_WEBGL;_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,texture.flipY);_gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,texture.premultiplyAlpha);_gl.pixelStorei(_gl.UNPACK_ALIGNMENT,texture.unpackAlignment);_gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,unpackConversion);let image=resizeImage(texture.image,false,capabilities.maxTextureSize);image=verifyColorSpace(texture,image);const glFormat=utils.convert(texture.format,texture.colorSpace);const glType=utils.convert(texture.type);let glInternalFormat=getInternalFormat(texture.internalFormat,glFormat,glType,texture.colorSpace,texture.isVideoTexture);setTextureParameters(textureType,texture);let mipmap;const mipmaps=texture.mipmaps;const useTexStorage=texture.isVideoTexture!==true&&glInternalFormat!==RGB_ETC1_Format;const allocateMemory=sourceProperties.__version===undefined||forceUpload===true;const dataReady=source.dataReady;const levels=getMipLevels(texture,image);if(texture.isDepthTexture){glInternalFormat=_gl.DEPTH_COMPONENT16;if(texture.type===FloatType){glInternalFormat=_gl.DEPTH_COMPONENT32F}else if(texture.type===UnsignedIntType){glInternalFormat=_gl.DEPTH_COMPONENT24}else if(texture.type===UnsignedInt248Type){glInternalFormat=_gl.DEPTH24_STENCIL8}if(allocateMemory){if(useTexStorage){state.texStorage2D(_gl.TEXTURE_2D,1,glInternalFormat,image.width,image.height)}else{state.texImage2D(_gl.TEXTURE_2D,0,glInternalFormat,image.width,image.height,0,glFormat,glType,null)}}}else if(texture.isDataTexture){if(mipmaps.length>0){if(useTexStorage&&allocateMemory){state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,mipmaps[0].width,mipmaps[0].height)}for(let i=0,il=mipmaps.length;i<il;i++){mipmap=mipmaps[i];if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_2D,i,0,0,mipmap.width,mipmap.height,glFormat,glType,mipmap.data)}}else{state.texImage2D(_gl.TEXTURE_2D,i,glInternalFormat,mipmap.width,mipmap.height,0,glFormat,glType,mipmap.data)}}texture.generateMipmaps=false}else{if(useTexStorage){if(allocateMemory){state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,image.width,image.height)}if(dataReady){state.texSubImage2D(_gl.TEXTURE_2D,0,0,0,image.width,image.height,glFormat,glType,image.data)}}else{state.texImage2D(_gl.TEXTURE_2D,0,glInternalFormat,image.width,image.height,0,glFormat,glType,image.data)}}}else if(texture.isCompressedTexture){if(texture.isCompressedArrayTexture){if(useTexStorage&&allocateMemory){state.texStorage3D(_gl.TEXTURE_2D_ARRAY,levels,glInternalFormat,mipmaps[0].width,mipmaps[0].height,image.depth)}for(let i=0,il=mipmaps.length;i<il;i++){mipmap=mipmaps[i];if(texture.format!==RGBAFormat){if(glFormat!==null){if(useTexStorage){if(dataReady){state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY,i,0,0,0,mipmap.width,mipmap.height,image.depth,glFormat,mipmap.data,0,0)}}else{state.compressedTexImage3D(_gl.TEXTURE_2D_ARRAY,i,glInternalFormat,mipmap.width,mipmap.height,image.depth,0,mipmap.data,0,0)}}else{console.warn("THREE.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;i<il;i++){mipmap=mipmaps[i];if(texture.format!==RGBAFormat){if(glFormat!==null){if(useTexStorage){if(dataReady){state.compressedTexSubImage2D(_gl.TEXTURE_2D,i,0,0,mipmap.width,mipmap.height,glFormat,mipmap.data)}}else{state.compressedTexImage2D(_gl.TEXTURE_2D,i,glInternalFormat,mipmap.width,mipmap.height,0,mipmap.data)}}else{console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()")}}else{if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_2D,i,0,0,mipmap.width,mipmap.height,glFormat,glType,mipmap.data)}}else{state.texImage2D(_gl.TEXTURE_2D,i,glInternalFormat,mipmap.width,mipmap.height,0,glFormat,glType,mipmap.data)}}}}}else if(texture.isDataArrayTexture){if(useTexStorage){if(allocateMemory){state.texStorage3D(_gl.TEXTURE_2D_ARRAY,levels,glInternalFormat,image.width,image.height,image.depth)}if(dataReady){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)}}
4209else 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<levels;i++){state.texImage2D(_gl.TEXTURE_2D,i,glInternalFormat,width,height,0,glFormat,glType,null);width>>=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;i<il;i++){mipmap=mipmaps[i];if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_2D,i,0,0,glFormat,glType,mipmap)}}else{state.texImage2D(_gl.TEXTURE_2D,i,glInternalFormat,glFormat,glType,mipmap)}}texture.generateMipmaps=false}else{if(useTexStorage){if(allocateMemory){const dimensions=getDimensions(image);state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,dimensions.width,dimensions.height)}if(dataReady){state.texSubImage2D(_gl.TEXTURE_2D,0,0,0,glFormat,glType,image)}}else{state.texImage2D(_gl.TEXTURE_2D,0,glInternalFormat,glFormat,glType,image)}}}if(textureNeedsGenerateMipmaps(texture)){generateMipmap(textureType)}sourceProperties.__version=source.version;if(texture.onUpdate)texture.onUpdate(texture)}textureProperties.__version=texture.version}function uploadCubeTexture(textureProperties,texture,slot){if(texture.image.length!==6)return;const forceUpload=initTexture(textureProperties,texture);const source=texture.source;state.bindTexture(_gl.TEXTURE_CUBE_MAP,textureProperties.__webglTexture,_gl.TEXTURE0+slot);const sourceProperties=properties.get(source);if(source.version!==sourceProperties.__version||forceUpload===true){state.activeTexture(_gl.TEXTURE0+slot);const workingPrimaries=ColorManagement.getPrimaries(ColorManagement.workingColorSpace);const texturePrimaries=texture.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(texture.colorSpace);const unpackConversion=texture.colorSpace===NoColorSpace||workingPrimaries===texturePrimaries?_gl.NONE:_gl.BROWSER_DEFAULT_WEBGL;_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,texture.flipY);_gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,texture.premultiplyAlpha);_gl.pixelStorei(_gl.UNPACK_ALIGNMENT,texture.unpackAlignment);_gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,unpackConversion);const isCompressed=texture.isCompressedTexture||texture.image[0].isCompressedTexture;const isDataTexture=texture.image[0]&&texture.image[0].isDataTexture;const cubeImage=[];for(let i=0;i<6;i++){if(!isCompressed&&!isDataTexture){cubeImage[i]=resizeImage(texture.image[i],true,capabilities.maxCubemapSize)}else{cubeImage[i]=isDataTexture?texture.image[i].image:texture.image[i]}cubeImage[i]=verifyColorSpace(texture,cubeImage[i])}const image=cubeImage[0],glFormat=utils.convert(texture.format,texture.colorSpace),glType=utils.convert(texture.type),glInternalFormat=getInternalFormat(texture.internalFormat,glFormat,glType,texture.colorSpace);const useTexStorage=texture.isVideoTexture!==true;const allocateMemory=sourceProperties.__version===undefined||forceUpload===true;const dataReady=source.dataReady;let levels=getMipLevels(texture,image);setTextureParameters(_gl.TEXTURE_CUBE_MAP,texture);let mipmaps;if(isCompressed){if(useTexStorage&&allocateMemory){state.texStorage2D(_gl.TEXTURE_CUBE_MAP,levels,glInternalFormat,image.width,image.height)}for(let i=0;i<6;i++){mipmaps=cubeImage[i].mipmaps;for(let j=0;j<mipmaps.length;j++){const mipmap=mipmaps[j];if(texture.format!==RGBAFormat){if(glFormat!==null){if(useTexStorage){if(dataReady){state.compressedTexSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,j,0,0,mipmap.width,mipmap.height,glFormat,mipmap.data)}}else{state.compressedTexImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,j,glInternalFormat,mipmap.width,mipmap.height,0,mipmap.data)}}else{console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()")}}else{if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,j,0,0,mipmap.width,mipmap.height,glFormat,glType,mipmap.data)}}else{state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,j,glInternalFormat,mipmap.width,mipmap.height,0,glFormat,glType,mipmap.data)}}}}}else{mipmaps=texture.mipmaps;if(useTexStorage&&allocateMemory){if(mipmaps.length>0)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<mipmaps.length;j++){const mipmap=mipmaps[j];const mipmapImage=mipmap.image[i].image;if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,j+1,0,0,mipmapImage.width,mipmapImage.height,glFormat,glType,mipmapImage.data)}}else{state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,j+1,glInternalFormat,mipmapImage.width,mipmapImage.height,0,glFormat,glType,mipmapImage.data)}}}else{if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,0,0,glFormat,glType,cubeImage[i])}}else{state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,glInternalFormat,glFormat,glType,cubeImage[i])}for(let j=0;j<mipmaps.length;j++){const mipmap=mipmaps[j];if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,j+1,0,0,glFormat,glType,mipmap.image[i])}}else{state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,j+1,glInternalFormat,glFormat,glType,mipmap.image[i])}}}}}if(textureNeedsGenerateMipmaps(texture)){generateMipmap(_gl.TEXTURE_CUBE_MAP)}sourceProperties.__version=source.version;if(texture.onUpdate)texture.onUpdate(texture)}textureProperties.__version=texture.version}function setupFrameBufferTexture(framebuffer,renderTarget,texture,attachment,textureTarget,level){const glFormat=utils.convert(texture.format,texture.colorSpace);const glType=utils.convert(texture.type);const glInternalFormat=getInternalFormat(texture.internalFormat,glFormat,glType,texture.colorSpace);const renderTargetProperties=properties.get(renderTarget);if(!renderTargetProperties.__hasExternalTextures){const width=Math.max(1,renderTarget.width>>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,properties.get(texture).__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,properties.get(texture).__webglTexture,level)}state.bindFramebuffer(_gl.FRAMEBUFFER,null)}function setupRenderBufferStorage(renderbuffer,renderTarget,isMultisample){_gl.bindRenderbuffer(_gl.RENDERBUFFER,renderbuffer);if(renderTarget.depthBuffer&&!renderTarget.stencilBuffer){let glInternalFormat=_gl.DEPTH_COMPONENT24;if(isMultisample||useMultisampledRTT(renderTarget)){const depthTexture=renderTarget.depthTexture;if(depthTexture&&depthTexture.isDepthTexture){if(depthTexture.type===FloatType){glInternalFormat=_gl.DEPTH_COMPONENT32F}else if(depthTexture.type===UnsignedIntType){glInternalFormat=_gl.DEPTH_COMPONENT24}}const samples=getRenderTargetSamples(renderTarget);if(useMultisampledRTT(renderTarget)){multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER,samples,glInternalFormat,renderTarget.width,renderTarget.height)}else{_gl.renderbufferStorageMultisample(_gl.RENDERBUFFER,samples,glInternalFormat,renderTarget.width,renderTarget.height)}}else{_gl.renderbufferStorage(_gl.RENDERBUFFER,glInternalFormat,renderTarget.width,renderTarget.height)}_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,_gl.DEPTH_ATTACHMENT,_gl.RENDERBUFFER,renderbuffer)}else if(renderTarget.depthBuffer&&renderTarget.stencilBuffer){const samples=getRenderTargetSamples(renderTarget);if(isMultisample&&useMultisampledRTT(renderTarget)===false){_gl.renderbufferStorageMultisample(_gl.RENDERBUFFER,samples,_gl.DEPTH24_STENCIL8,renderTarget.width,renderTarget.height)}else if(useMultisampledRTT(renderTarget)){multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER,samples,_gl.DEPTH24_STENCIL8,renderTarget.width,renderTarget.height)}else{_gl.renderbufferStorage(_gl.RENDERBUFFER,_gl.DEPTH_STENCIL,renderTarget.width,renderTarget.height)}_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,_gl.DEPTH_STENCIL_ATTACHMENT,_gl.RENDERBUFFER,renderbuffer)}else{const textures=renderTarget.textures;for(let i=0;i<textures.length;i++){const texture=textures[i];const glFormat=utils.convert(texture.format,texture.colorSpace);const glType=utils.convert(texture.type);const glInternalFormat=getInternalFormat(texture.internalFormat,glFormat,glType,texture.colorSpace);const samples=getRenderTargetSamples(renderTarget);if(isMultisample&&useMultisampledRTT(renderTarget)===false){_gl.renderbufferStorageMultisample(_gl.RENDERBUFFER,samples,glInternalFormat,renderTarget.width,renderTarget.height)}else if(useMultisampledRTT(renderTarget)){multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER,samples,glInternalFormat,renderTarget.width,renderTarget.height)}else{_gl.renderbufferStorage(_gl.RENDERBUFFER,glInternalFormat,renderTarget.width,renderTarget.height)}}}_gl.bindRenderbuffer(_gl.RENDERBUFFER,null)}function setupDepthTexture(framebuffer,renderTarget){const isCube=renderTarget&&renderTarget.isWebGLCubeRen
4209derTarget;if(isCube)throw new Error("Depth Texture with cube render targets is not supported");state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);if(!(renderTarget.depthTexture&&renderTarget.depthTexture.isDepthTexture)){throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture")}if(!properties.get(renderTarget.depthTexture).__webglTexture||renderTarget.depthTexture.image.width!==renderTarget.width||renderTarget.depthTexture.image.height!==renderTarget.height){renderTarget.depthTexture.image.width=renderTarget.width;renderTarget.depthTexture.image.height=renderTarget.height;renderTarget.depthTexture.needsUpdate=true}setTexture2D(renderTarget.depthTexture,0);const webglDepthTexture=properties.get(renderTarget.depthTexture).__webglTexture;const samples=getRenderTargetSamples(renderTarget);if(renderTarget.depthTexture.format===DepthFormat){if(useMultisampledRTT(renderTarget)){multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER,_gl.DEPTH_ATTACHMENT,_gl.TEXTURE_2D,webglDepthTexture,0,samples)}else{_gl.framebufferTexture2D(_gl.FRAMEBUFFER,_gl.DEPTH_ATTACHMENT,_gl.TEXTURE_2D,webglDepthTexture,0)}}else if(renderTarget.depthTexture.format===DepthStencilFormat){if(useMultisampledRTT(renderTarget)){multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER,_gl.DEPTH_STENCIL_ATTACHMENT,_gl.TEXTURE_2D,webglDepthTexture,0,samples)}else{_gl.framebufferTexture2D(_gl.FRAMEBUFFER,_gl.DEPTH_STENCIL_ATTACHMENT,_gl.TEXTURE_2D,webglDepthTexture,0)}}else{throw new Error("Unknown depthTexture format")}}function setupDepthRenderbuffer(renderTarget){const renderTargetProperties=properties.get(renderTarget);const isCube=renderTarget.isWebGLCubeRenderTarget===true;if(renderTarget.depthTexture&&!renderTargetProperties.__autoAllocateDepthBuffer){if(isCube)throw new Error("target.depthTexture not supported in Cube render targets");setupDepthTexture(renderTargetProperties.__webglFramebuffer,renderTarget)}else{if(isCube){renderTargetProperties.__webglDepthbuffer=[];for(let i=0;i<6;i++){state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer[i]);renderTargetProperties.__webglDepthbuffer[i]=_gl.createRenderbuffer();setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i],renderTarget,false)}}else{state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer);renderTargetProperties.__webglDepthbuffer=_gl.createRenderbuffer();setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer,renderTarget,false)}}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;level<texture.mipmaps.length;
4209level++){renderTargetProperties.__webglFramebuffer[i][level]=_gl.createFramebuffer()}}else{renderTargetProperties.__webglFramebuffer[i]=_gl.createFramebuffer()}}}else{if(texture.mipmaps&&texture.mipmaps.length>0){renderTargetProperties.__webglFramebuffer=[];for(let level=0;level<texture.mipmaps.length;level++){renderTargetProperties.__webglFramebuffer[level]=_gl.createFramebuffer()}}else{renderTargetProperties.__webglFramebuffer=_gl.createFramebuffer()}if(isMultipleRenderTargets){for(let i=0,il=textures.length;i<il;i++){const attachmentProperties=properties.get(textures[i]);if(attachmentProperties.__webglTexture===undefined){attachmentProperties.__webglTexture=_gl.createTexture();info.memory.textures++}}}if(renderTarget.samples>0&&useMultisampledRTT(renderTarget)===false){renderTargetProperties.__webglMultisampledFramebuffer=_gl.createFramebuffer();renderTargetProperties.__webglColorRenderbuffer=[];state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglMultisampledFramebuffer);for(let i=0;i<textures.length;i++){const texture=textures[i];renderTargetProperties.__webglColorRenderbuffer[i]=_gl.createRenderbuffer();_gl.bindRenderbuffer(_gl.RENDERBUFFER,renderTargetProperties.__webglColorRenderbuffer[i]);const glFormat=utils.convert(texture.format,texture.colorSpace);const glType=utils.convert(texture.type);const glInternalFormat=getInternalFormat(texture.internalFormat,glFormat,glType,texture.colorSpace,renderTarget.isXRRenderTarget===true);const samples=getRenderTargetSamples(renderTarget);_gl.renderbufferStorageMultisample(_gl.RENDERBUFFER,samples,glInternalFormat,renderTarget.width,renderTarget.height);_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,_gl.COLOR_ATTACHMENT0+i,_gl.RENDERBUFFER,renderTargetProperties.__webglColorRenderbuffer[i])}_gl.bindRenderbuffer(_gl.RENDERBUFFER,null);if(renderTarget.depthBuffer){renderTargetProperties.__webglDepthRenderbuffer=_gl.createRenderbuffer();setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer,renderTarget,true)}state.bindFramebuffer(_gl.FRAMEBUFFER,null)}}if(isCube){state.bindTexture(_gl.TEXTURE_CUBE_MAP,textureProperties.__webglTexture);setTextureParameters(_gl.TEXTURE_CUBE_MAP,texture);for(let i=0;i<6;i++){if(texture.mipmaps&&texture.mipmaps.length>0){for(let level=0;level<texture.mipmaps.length;
4209level++){setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i][level],renderTarget,texture,_gl.COLOR_ATTACHMENT0,_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,level)}}else{setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i],renderTarget,texture,_gl.COLOR_ATTACHMENT0,_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,0)}}if(textureNeedsGenerateMipmaps(texture)){generateMipmap(_gl.TEXTURE_CUBE_MAP)}state.unbindTexture()}else if(isMultipleRenderTargets){for(let i=0,il=textures.length;i<il;i++){const attachment=textures[i];const attachmentProperties=properties.get(attachment);state.bindTexture(_gl.TEXTURE_2D,attachmentProperties.__webglTexture);setTextureParameters(_gl.TEXTURE_2D,attachment);setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer,renderTarget,attachment,_gl.COLOR_ATTACHMENT0+i,_gl.TEXTURE_2D,0);if(textureNeedsGenerateMipmaps(attachment)){generateMipmap(_gl.TEXTURE_2D)}}state.unbindTexture()}else{let glTextureType=_gl.TEXTURE_2D;if(renderTarget.isWebGL3DRenderTarget||renderTarget.isWebGLArrayRenderTarget){glTextureType=renderTarget.isWebGL3DRenderTarget?_gl.TEXTURE_3D:_gl.TEXTURE_2D_ARRAY}state.bindTexture(glTextureType,textureProperties.__webglTexture);setTextureParameters(glTextureType,texture);if(texture.mipmaps&&texture.mipmaps.length>0){for(let level=0;level<texture.mipmaps.length;
4209level++){setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[level],renderTarget,texture,_gl.COLOR_ATTACHMENT0,glTextureType,level)}}else{setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer,renderTarget,texture,_gl.COLOR_ATTACHMENT0,glTextureType,0)}if(textureNeedsGenerateMipmaps(texture)){generateMipmap(glTextureType)}state.unbindTexture()}if(renderTarget.depthBuffer){setupDepthRenderbuffer(renderTarget)}}function updateRenderTargetMipmap(renderTarget){const textures=renderTarget.textures;for(let i=0,il=textures.length;i<il;i++){const texture=textures[i];if(textureNeedsGenerateMipmaps(texture)){const target=renderTarget.isWebGLCubeRenderTarget?_gl.TEXTURE_CUBE_MAP:_gl.TEXTURE_2D;const webglTexture=properties.get(texture).__webglTexture;state.bindTexture(target,webglTexture);generateMipmap(target);state.unbindTexture()}}}function updateMultisampleRenderTarget(renderTarget){if(renderTarget.samples>0&&useMultisampledRTT(renderTarget)===false){const textures=renderTarget.textures;const width=renderTarget.width;const height=renderTarget.height;let mask=_gl.COLOR_BUFFER_BIT;const invalidationArray=[];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;i<textures.length;i++){state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglMultisampledFramebuffer);_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,_gl.COLOR_ATTACHMENT0+i,_gl.RENDERBUFFER,null);state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer);_gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER,_gl.COLOR_ATTACHMENT0+i,_gl.TEXTURE_2D,null,0)}}state.bindFramebuffer(_gl.READ_FRAMEBUFFER,renderTargetProperties.__webglMultisampledFramebuffer);state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,renderTargetProperties.__webglFramebuffer);for(let i=0;i<textures.length;i++){invalidationArray.push(_gl.COLOR_ATTACHMENT0+i);if(renderTarget.depthBuffer){invalidationArray.push(depthStyle)}const ignoreDepthValues=renderTargetProperties.__ignoreDepthValues!==undefined?renderTargetProperties.__ignoreDepthValues:false;if(ignoreDepthValues===false){if(renderTarget.depthBuffer)mask|=_gl.DEPTH_BUFFER_BIT;if(renderTarget.stencilBuffer&&renderTargetProperties.__isTransmissionRenderTarget!==true)mask|=_gl.STENCIL_BUFFER_BIT}if(isMultipleRenderTargets){_gl.framebufferRenderbuffer(_gl.READ_FRAMEBUFFER,_gl.COLOR_ATTACHMENT0,_gl.RENDERBUFFER,renderTargetProperties.__webglColorRenderbuffer[i])}if(ignoreDepthValues===true){_gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER,[depthStyle]);_gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER,[depthStyle])}if(isMultipleRenderTargets){const webglTexture=properties.get(textures[i]).__webglTexture;_gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER,_gl.COLOR_ATTACHMENT0,_gl.TEXTURE_2D,webglTexture,0)}_gl.blitFramebuffer(0,0,width,height,0,0,width,height,mask,_gl.NEAREST);if(supportsInvalidateFramebuffer){_gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER,invalidationArray)}}state.bindFramebuffer(_gl.READ_FRAMEBUFFER,null);state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,null);if(isMultipleRenderTargets){for(let i=0;i<textures.length;i++){state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglMultisampledFramebuffer);_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,_gl.COLOR_ATTACHMENT0+i,_gl.RENDERBUFFER,renderTargetProperties.__webglColorRenderbuffer[i]);const webglTexture=properties.get(textures[i]).__webglTexture;state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer);_gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER,_gl.COLOR_ATTACHMENT0+i,_gl.TEXTURE_2D,webglTexture,0)}}state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,renderTargetProperties.__webglMultisampledFramebuffer)}}function getRenderTargetSamples(renderTarget){return Math.min(capabilities.maxSamples,renderTarget.samples)}function useMultisampledRTT(renderTarget){const renderTargetProperties=properties.get(renderTarget);return renderTarget.samples>0&&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);
4209texture.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){console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.")}}else{console.error("THREE.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}function WebGLUtils(gl,extensions){function convert(p,colorSpace
4209=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===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===LuminanceFormat)return gl.LUMINANCE;if(p===LuminanceAlphaFormat)return gl.LUMINANCE_ALPHA;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){extension=extensions.get("WEBGL_compressed_texture_etc1");if(extension!==null){return extension.COMPRESSED_RGB_ETC1_WEBGL}else{return null}}if(p===RGB_ETC2_Format||p===RGBA_ETC2_EAC_Format){extension=extensions.get("WEBGL_compressed_texture_etc");if(extension!==null){if(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}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}}
4209if(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===RGBA_BPTC_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}}class ArrayCamera extends PerspectiveCamera{constructor(array=[]){super();this.isArrayCamera=true;this.cameras=array}}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}}}}
4209if(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]}}const _occlusion_vertex=` 4210void main() { 4211 4212 gl_Position = vec4( position, 1.0 ); 4213 4214}`;const _occlusion_fragment=` 4215uniform sampler2DArray depthColor; 4216uniform float depthWidth; 4217uniform float depthHeight; 4218 4219void main() { 4220 4221 vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); 4222 4223 if ( coord.x >= 1.0 ) { 4224 4225 gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; 4226 4227 } else { 4228 4229 gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; 4230 4231 } 4232 4233}`;class WebXRDepthSensing{constructor(){this.texture=null;this.mesh=null;this.depthNear=0;this.depthFar=0}init(renderer,depthData,renderState){if(this.texture===null){const texture=new Texture;const texProps=renderer.properties.get(texture);texProps.__webglTexture=depthData.texture;if(depthData.depthNear!=renderState.depthNear||depthData.depthFar!=renderState.depthFar){this.depthNear=depthData.depthNear;this.depthFar=depthData.depthFar}this.texture=texture}}render(renderer,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)}renderer.render(this.mesh,cameraXR)}}reset(){this.texture=null;this.mesh=null}}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 depthSensing=new WebXRDepthSensing;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.layers.enable(1);cameraL.viewport=new Vector4;const cameraR=new PerspectiveCamera;cameraR.layers.enable(2);cameraR.viewport=new Vector4;const cameras=[cameraL,cameraR];const cameraXR=new ArrayCamera;cameraXR.layers.enable(1);cameraXR.layers.enable(2);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<controllers.length;i++){const inputSource=controllerInputSources[i];if(inputSource===null)continue;controllerInputSources[i]=null;controllers[i].disconnect(inputSource)}_currentDepthNear=null;_currentDepthFar=null;depthSensing.reset();renderer.setRenderTarget(initialRenderTarget);glBaseLayer=null;glProjLayer=null;glBinding=null;session=null;newRenderTarget=null;animation.stop();scope.isPresenting=false;renderer.setPixelRatio(currentPixelRatio);
4233renderer.setSize(currentSize.width,currentSize.height,false);scope.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(value){framebufferScaleFactor=value;if(scope.isPresenting===true){console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")}};this.setReferenceSpaceType=function(value){referenceSpaceType=value;if(scope.isPresenting===true){console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")}};this.getReferenceSpace=function(){return customReferenceSpace||referenceSpace};this.setReferenceSpace=function(space){customReferenceSpace=space};this.getBaseLayer=function(){return glProjLayer!==null?glProjLayer:glBaseLayer};this.getBinding=function(){return glBinding};this.getFrame=function(){return xrFrame};this.getSession=function(){return session};this.setSession=async function(value){session=value;if(session!==null){initialRenderTarget=renderer.getRenderTarget();session.addEventListener("select",onSessionEvent);session.addEventListener("selectstart",onSessionEvent);session.addEventListener("selectend",onSessionEvent);session.addEventListener("squeeze",onSessionEvent);session.addEventListener("squeezestart",onSessionEvent);session.addEventListener("squeezeend",onSessionEvent);session.addEventListener("end",onSessionEnd);session.addEventListener("inputsourceschange",onInputSourcesChange);if(attributes.xrCompatible!==true){await gl.makeXRCompatible()}currentPixelRatio=renderer.getPixelRatio();renderer.getSize(currentSize);if(session.renderState.layers===undefined){const layerInit={antialias:attributes.antialias,alpha:true,depth:attributes.depth,stencil:attributes.stencil,framebufferScaleFactor:framebufferScaleFactor};glBaseLayer=new XRWebGLLayer(session,gl,layerInit);session.updateRenderState({baseLayer:glBaseLayer});renderer.setPixelRatio(1);renderer.setSize(glBaseLayer.framebufferWidth,glBaseLayer.framebufferHeight,fal
4233se);newRenderTarget=new WebGLRenderTarget(glBaseLayer.framebufferWidth,glBaseLayer.framebufferHeight,{format:RGBAFormat,type:UnsignedByteType,colorSpace:renderer.outputColorSpace,stencilBuffer:attributes.stencil})}else{let depthFormat=null;let depthType=null;let glDepthFormat=null;if(attributes.depth){glDepthFormat=attributes.stencil?gl.DEPTH24_STENCIL8:gl.DEPTH_COMPONENT24;depthFormat=attributes.stencil?DepthStencilFormat:DepthFormat;depthType=attributes.stencil?UnsignedInt248Type:UnsignedIntType}const projectionlayerInit={colorFormat:gl.RGBA8,depthFormat:glDepthFormat,scaleFactor:framebufferScaleFactor};glBinding=new XRWebGLBinding(session,gl);glProjLayer=glBinding.createProjectionLayer(projectionlayerInit);session.updateRenderState({layers:[glProjLayer]});renderer.setPixelRatio(1);renderer.setSize(glProjLayer.textureWidth,glProjLayer.textureHeight,false);newRenderTarget=new WebGLRenderTarget(glProjLayer.textureWidth,glProjLayer.textureHeight,{format:RGBAFormat,type:UnsignedByteType,depthTexture:new DepthTexture(glProjLayer.textureWidth,glProjLayer.textureHeight,depthType,undefined,undefined,undefined,undefined,undefined,undefined,depthFormat),stencilBuffer:attributes.stencil,colorSpace:renderer.outputColorSpace,samples:attributes.antialias?4:0});const renderTargetProperties=renderer.properties.get(newRenderTarget);renderTargetProperties.__ignoreDepthValues=glProjLayer.ignoreDepthValues}newRenderTarget.isXRRenderTarget=true;this.setFoveation(foveation);customReferenceSpace=null;referenceSpace=await session.requestReferenceSpace(referenceSpaceType);animation.setContext(session);animation.start();scope.isPresenting=true;scope.dispatchEvent({type:"sessionstart"})}};this.getEnvironmentBlendMode=function(){if(session!==null){return session.environmentBlendMode}};function onInputSourcesChange(event){for(let i=0;i<event.removed.length;i++){const inputSource=event.removed[i];const index=controllerInputSources.indexOf(inputSource);if(index>=0){controllerInputSources[index]=null;controllers[index].disconnect(inputSource)}}for(let i=0;i<event.added.length;i++){const inputSource=event.added[i];let controllerIndex=controllerInputSources.indexOf(inputSource);if(controllerIndex===-1){for(let i=0;i<controllers.length;i++){if(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();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;if(depthSensing.texture!==null){camera.near=depthSensing.depthNear;camera.far=depthSensing.depthFar}cameraXR.near=cameraR.near=cameraL.near=camera.near;cameraXR.far=cameraR.far=cameraL.far=camera.far;if(_currentDepthNear!==cameraXR.near||_currentDepthFar!==cameraXR.far){session.updateRenderState({depthNear:cameraXR.near,depthFar:cameraXR.far});_currentDepthNear=cameraXR.near;_currentDepthFar=cameraXR.far;cameraL.near=_currentDepthNear;cameraL.far=_currentDepthFar;cameraR.near=_currentDepthNear;cameraR.far=_currentDepthFar;cameraL.updateProjectionMatrix();cameraR.updateProjectionMatrix();camera.updateProjectionMatrix()}const parent=camera.parent;const cameras=cameraXR.cameras;updateCamera(cameraXR,parent);for(let i=0;i<cameras.length;i++){updateCamera(cameras[i],parent)}if(cameras.length===2){setProjectionFromUnion(cameraXR,cameraL,cameraR)}else{cameraXR.projectionMatrix.copy(cameraL.projectionMatrix)}updateUserCamera(camera,cameraXR,parent)};function updateUserCamera(camera,cameraXR,parent){if(parent===null){camera.matrix.copy(cameraXR.matrixWorld)}else{camera.matrix.copy(parent.matrixWorld);camera.matrix.invert();camera.matrix.multiply(cameraXR.matrixWorld)}camera.matrix.decompose(camera.position,camera.quaternion,camera.scale);camera.updateMatrixWorld(true);camera.projectionMatrix.copy(cameraXR.projectionMatrix);camera.projectionMatrixInverse.copy(cameraXR.projectionMatrixInverse);
4233if(camera.isPerspectiveCamera){camera.fov=RAD2DEG*2*Math.atan(1/camera.projectionMatrix.elements[5]);camera.zoom=1}}this.getCamera=function(){return cameraXR};this.getFoveation=function(){if(glProjLayer===null&&glBaseLayer===null){return undefined}return foveation};this.setFoveation=function(value){foveation=value;if(glProjLayer!==null){glProjLayer.fixedFoveation=value}if(glBaseLayer!==null&&glBaseLayer.fixedFoveation!==undefined){glBaseLayer.fixedFoveation=value}};this.hasDepthSensing=function(){return depthSensing.texture!==null};let onAnimationFrameCallback=null;function onAnimationFrame(time,frame){pose=frame.getViewerPose(customReferenceSpace||referenceSpace);xrFrame=frame;if(pose!==null){const views=pose.views;if(glBaseLayer!==null){renderer.setRenderTargetFramebuffer(newRenderTarget,glBaseLayer.framebuffer);renderer.setRenderTarget(newRenderTarget)}let cameraXRNeedsUpdate=false;if(views.length!==cameraXR.cameras.length){cameraXR.cameras.length=0;cameraXRNeedsUpdate=true}for(let i=0;i<views.length;i++){const view=views[i];let viewport=null;if(glBaseLayer!==null){viewport=glBaseLayer.getViewport(view)}else{const glSubImage=glBinding.getViewSubImage(glProjLayer,view);viewport=glSubImage.viewport;if(i===0){renderer.setRenderTargetTextures(newRenderTarget,glSubImage.colorTexture,glProjLayer.ignoreDepthValues?undefined:glSubImage.depthStencilTexture);renderer.setRenderTarget(newRenderTarget)}}let camera=cameras[i];if(camera===undefined){camera=new PerspectiveCamera;camera.layers.enable(i);camera.viewport=new Vector4;cameras[i]=camera}camera.matrix.fromArray(view.transform.matrix);camera.matrix.decompose(camera.position,camera.quaternion,camera.scale);camera.projectionMatrix.fromArray(view.projectionMatrix);camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert();camera.viewport.set(viewport.x,viewport.y,viewport.width,viewport.height);if(i===0){cameraXR.matrix.copy(camera.matrix);cameraXR.matrix.decompose(cameraXR.position,cameraXR.quaternion,cameraXR.scale)}if(cameraXRNeedsUpdate===true){cameraXR.cameras.push(camera)}}const enabledFeatures=session.enabledFeatures;if(enabledFeatures&&enabledFeatures.includes("depth-sensing")){const depthData=glBinding.getDepthInformation(views[0]);if(depthData&&depthData.isValid&&depthData.texture){depthSensing.init(renderer,depthData,session.renderState)}}}for(let i=0;i<controllers.length;i++){const inputSource=controllerInputSources[i];const controller=controllers[i];if(inputSource!==null&&controller!==undefined){controller.update(inputSource,frame,customReferenceSpace||referenceSpace)}}depthSensing.render(renderer,cameraXR);if(onAnimationFrameCallback)onAnimationFrameCallback(time,frame);if(frame.detectedPlanes){scope.dispatchEvent({type:"planesdetected",data:frame})}xrFrame=null}const animation=new WebGLAnimation;animation.setAnimationLoop(onAnimationFrame);this.setAnimationLoop=function(callback){onAnimationFrameCallback=callback};this.dispose=function(){}}}const _e1=new Euler;const _m1=new Matrix4;function WebGLMaterials(renderer,properties){function refreshTransformUniform(map,uniform){if(map.matrixAutoUpdate===true){map.updateMatrix()}uniform.value.copy(map.matrix)}function refreshFogUniforms(uniforms,fog){fog.color.getRGB(uniforms.fogColor.value,getUnlitUniformColorSpace(renderer));if(fog.isFog){uniforms.fogNear.value=fog.near;uniforms.fogFar.value=fog.far}else if(fog.isFogExp2){uniforms.fogDensity.value=fog.density}}function refreshMaterialUniforms(uniforms,material,pixelRatio,height,transmissionRenderTarget){if(material.isMeshBasicMaterial){refreshUniformsCommon(uniforms,material)}else if(material.isMeshLambertMaterial){refreshUniformsCommon(uniforms,material)}else if(material.isMeshToonMaterial){refreshUniformsCommon(uniforms,material);refreshUniformsToon(uniforms,material)}else if(material.isMeshPhongMaterial){refreshUniformsCommon(uniforms,material);refreshUniformsPhong(uniforms,material)}else if(material.isMeshStandardMaterial){refreshUniformsCommon(uniforms,material);refreshUniformsStandard(uniforms,material);if(material.isMeshPhysicalMaterial){refreshUniformsPhysical(uniforms,material,transmissionRenderTarget)}}
4233else if(material.isMeshMatcapMaterial){refreshUniformsCommon(uniforms,material);refreshUniformsMatcap(uniforms,material)}else if(material.isMeshDepthMaterial){refreshUniformsCommon(uniforms,material)}else if(material.isMeshDistanceMaterial){refreshUniformsCommon(uniforms,material);refreshUniformsDistance(uniforms,material)}else if(material.isMeshNormalMaterial){refreshUniformsCommon(uniforms,material)}else if(material.isLineBasicMaterial){refreshUniformsLine(uniforms,material);if(material.isLineDashedMaterial){refreshUniformsDash(uniforms,material)}}else if(material.isPointsMaterial){refreshUniformsPoints(uniforms,material,pixelRatio,height)}else if(material.isSpriteMaterial){refreshUniformsSprites(uniforms,material)}else if(material.isShadowMaterial){uniforms.color.value.copy(material.color);uniforms.opacity.value=material.opacity}else if(material.isShaderMaterial){material.uniformsNeedUpdate=false}}function refreshUniformsCommon(uniforms,material){uniforms.opacity.value=material.opacity;if(material.color){uniforms.diffuse.value.copy(material.color)}if(material.emissive){uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity)}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.bumpMap){uniforms.bumpMap.value=material.bumpMap;refreshTransformUniform(material.bumpMap,uniforms.bumpMapTransform);uniforms.bumpScale.value=material.bumpScale;if(material.side===BackSide){uniforms.bumpScale.value*=-1}}if(material.normalMap){uniforms.normalMap.value=material.normalMap;refreshTransformUniform(material.normalMap,uniforms.normalMapTransform);uniforms.normalScale.value.copy(material.normalScale);if(material.side===BackSide){uniforms.normalScale.value.negate()}}if(material.displacementMap){uniforms.displacementMap.value=material.displacementMap;refreshTransformUniform(material.displacementMap,uniforms.displacementMapTransform);uniforms.displacementScale.value=material.displacementScale;uniforms.displacementBias.value=material.displacementBias}if(material.emissiveMap){uniforms.emissiveMap.value=material.emissiveMap;refreshTransformUniform(material.emissiveMap,uniforms.emissiveMapTransform)}if(material.specularMap){uniforms.specularMap.value=material.specularMap;refreshTransformUniform(material.specularMap,uniforms.specularMapTransform)}if(material.alphaTest>0){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;const scaleFactor=renderer._useLegacyLights===true?Math.PI:1;uniforms.lightMapIntensity.value=material.lightMapIntensity*scaleFactor;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;
4233uniforms.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.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;i<maxBindingPoints;i++){if(allocatedBindingPoints.indexOf(i)===-1){allocatedBindingPoints.push(i);return i}}console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.");return 0}function updateBufferData(uniformsGroup){const buffer=buffers[uniformsGroup.id];const uniforms=uniformsGroup.uniforms;const cache=uniformsGroup.__cache;gl.bindBuffer(gl.UNIFORM_BUFFER,buffer);for(let i=0,il=uniforms.length;i<il;i++){const uniformArray=Array.isArray(uniforms[i])?uniforms[i]:[uniforms[i]];for(let j=0,jl=uniformArray.length;j<jl;j++){const uniform=uniformArray[j];if(hasUniformChanged(uniform,i,j,cache)===true){const offset=uniform.__offset;const values=Array.isArray(uniform.value)?uniform.value:[uniform.value];let arrayOffset=0;for(let k=0;k<values.length;k++){const value=values[k];const info=getUniformSize(value);if(typeof value==="number"||typeof value==="boolean"){uniform.__data[0]=value;gl.bufferSubData(gl.UNIFORM_BUFFER,offset+arrayOffset,uniform.__data)}else if(value.isMatrix3){uniform.__data[0]=value.elements[0];uniform.__data[1]=value.elements[1];uniform.__data[2]=value.elements[2];uniform.__data[3]=0;uniform.__data[4]=value.elements[3];uniform.__data[5]=value.elements[4];uniform.__data[6]=value.elements[5];uniform.__data[7]=0;uniform.__data[8]=value.elements[6];uniform.__data[9]=value.elements[7];uniform.__data[10]=value.elements[8];uniform.__data[11]=0}else{value.toArray(uniform.__data,arrayOffset);arrayOffset+=info.storage/Float32Array.BYTES_PER_ELEMENT}}gl.bufferSubData(gl.UNIFORM_BUFFER,offset,uniform.__data)}}}gl.bindBuffer(gl.UNIFORM_BUFFER,null)}function hasUniformChanged(uniform,index,indexArray,cache){const value=uniform.value;const indexString=index+"_"+indexArray;if(cache[indexString]===undefined){if(typeof value==="number"||typeof value==="boolean"){cache[indexString]=value}else{cache[indexString]=value.clone()}return true}else{const cachedObject=cache[indexString];if(typeof value==="number"||typeof value==="boolean"){if(cachedObject!==value){cache[indexString]=value;return true}}else{if(cachedObject.equals(value)===false){cachedObject.copy(value);return true}}}return false}function prepareUniformsGroup(uniformsGroup){const uniforms=uniformsGroup.uniforms;let offset=0;const chunkSize=16;for(let i=0,l=uniforms.length;i<l;i++){const uniformArray=Array.isArray(uniforms[i])?uniforms[i]:[uniforms[i]];for(let j=0,jl=uniformArray.length;j<jl;j++){const uniform=uniformArray[j];const values=Array.isArray(uniform.value)?uniform.value:[uniform.value];for(let k=0,kl=values.length;k<kl;k++){const value=values[k];const info=getUniformSize(value);const chunkOffsetUniform=offset%chunkSize;if(chunkOffsetUniform!==0&&chunkSize-chunkOffsetUniform<info.boundary){offset+=chunkSize-chunkOffsetUniform}uniform.__data=new Float32Array(info.storage/Float32Array.BYTES_PER_ELEMENT);uniform.__offset=offset;offset+=info.storage}}}const chunkOffset=offset%chunkSize;if(chunkOffset>0)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){console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.")}else{console.warn("THREE.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}}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}=parameters;
4233this.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 uintClearColor=new Uint32Array(4);const intClearColor=new Int32Array(4);let currentRenderList=null;let currentRenderState=null;const renderListStack=[];const renderStateStack=[];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._outputColorSpace=SRGBColorSpace;this._useLegacyLights=false;this.toneMapping=NoToneMapping;this.toneMappingExposure=1;const _this=this;let _isContextLost=false;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 _vector2=new Vector2;const _vector3=new Vector3;const _emptyScene={background:null,fog:null,environment:null,overrideMaterial:null,isScene:true};function getTargetPixelRatio(){return _currentRenderTarget===null?_pixelRatio:1}let _gl=context;function getContext(contextName,contextAttributes){const context=canvas.getContext(contextName,contextAttributes);if(context!==null)return context;return null}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(error){console.error("THREE.WebGLRenderer: "+error.message);throw error}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();capabilities=new WebGLCapabilities(_gl,extensions,parameters);utils=new WebGLUtils(_gl,extensions);state=new WebGLState(_gl);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);
4233shadowMap=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();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){console.warn("THREE.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"}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.getCurrentViewport=function(target){return target.copy(_currentViewport)};this.getViewport=function(target){return target.copy(_viewport)};this.setViewport=function(x,y,width,height){if(x.isVector4){_viewport.set(x.x,x.y,x.z,x.w)}else{_viewport.set(x,y,width,height)}state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).round())};this.getScissor=function(target){return target.copy(_scissor)};this.setScissor=function(x,y,width,height){if(x.isVector4){_scissor.set(x.x,x.y,x.z,x.w)}else{_scissor.set(x,y,width,height)}state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).round())};this.getScissorTest=function(){return _scissorTest};this.setScissorTest=function(boolean){state.setScissorTest(_scissorTest=boolean)};this.setOpaqueSort=function(method){_opaqueSort=method};this.setTransparentSort=function(method){_transparentSort=method};this.getClearColor=function(target){return target.copy(background.getClearColor())};this.setClearColor=function(){background.setClearColor.apply(background,arguments)};this.getClearAlpha=function(){return background.getClearAlpha()};this.setClearAlpha=function(){background.setClearAlpha.apply(background,arguments)};this.clear=function(color=true,depth=true,stencil=true){let bits=0;if(color){let isIntegerFormat=false;if(_currentRenderTarget!==null){const targetFormat=_currentRenderTarget.texture.format;isIntegerFormat=targetFormat===RGBAIntegerFormat||targetFormat===RGIntegerFormat||targetFormat===RedIntegerFormat}if(isIntegerFormat){const targetType=_currentRenderTarget.texture.type;const isUnsignedType=targetType===UnsignedByteType||targetType===UnsignedIntType||targetType===UnsignedShortType||targetType===UnsignedInt248Type||targetType===UnsignedShort4444Type||targetType===UnsignedShort5551Type;const clearColor=background.getClearColor();const a=background.getClearAlpha();const r=clearColor.r;const g=clearColor.g;const b=clearColor.b;if(isUnsignedType){uintClearColor[0]=r;uintClearColor[1]=g;uintClearColor[2]=b;uintClearColor[3]=a;_gl.clearBufferuiv(_gl.COLOR,0,uintClearColor)}else{intClearColor[0]=r;intClearColor[1]=g;intClearColor[2]=b;intClearColor[3]=a;_gl.clearBufferiv(_gl.COLOR,0,intClearColor)}}else{bits|=_gl.COLOR_BUFFER_BIT}}
4233if(depth)bits|=_gl.DEPTH_BUFFER_BIT;if(stencil){bits|=_gl.STENCIL_BUFFER_BIT;this.state.buffers.stencil.setMask(4294967295)}_gl.clear(bits)};this.clearColor=function(){this.clear(true,false,false)};this.clearDepth=function(){this.clear(false,true,false)};this.clearStencil=function(){this.clear(false,false,true)};this.dispose=function(){canvas.removeEventListener("webglcontextlost",onContextLost,false);canvas.removeEventListener("webglcontextrestored",onContextRestore,false);canvas.removeEventListener("webglcontextcreationerror",onContextCreationError,false);renderLists.dispose();renderStates.dispose();properties.dispose();cubemaps.dispose();cubeuvmaps.dispose();objects.dispose();bindingStates.dispose();uniformsGroups.dispose();programCache.dispose();xr.dispose();xr.removeEventListener("sessionstart",onXRSessionStart);xr.removeEventListener("sessionend",onXRSessionEnd);animation.stop()};function onContextLost(event){event.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");_isContextLost=true}function onContextRestore(){console.log("THREE.WebGLRenderer: Context Restored.");_isContextLost=false;const infoAutoReset=info.autoReset;const shadowMapEnabled=shadowMap.enabled;const shadowMapAutoUpdate=shadowMap.autoUpdate;const shadowMapNeedsUpdate=shadowMap.needsUpdate;const shadowMapType=shadowMap.type;initGLContext();info.autoReset=infoAutoReset;shadowMap.enabled=shadowMapEnabled;shadowMap.autoUpdate=shadowMapAutoUpdate;shadowMap.needsUpdate=shadowMapNeedsUpdate;shadowMap.type=shadowMapType}function onContextCreationError(event){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",event.statusMessage)}function onMaterialDispose(event){const material=event.target;material.removeEventListener("dispose",onMaterialDispose);deallocateMaterial(material)}function deallocateMaterial(material){releaseMaterialProgramReferences(material);properties.remove(material)}function releaseMaterialProgramReferences(material){const programs=properties.get(material).programs;if(programs!==undefined){programs.forEach(function(program){programCache.releaseProgram(program)});if(material.isShaderMaterial){programCache.releaseShaderCache(material)}}}this.renderBufferDirect=function(camera,scene,geometry,material,object,group){if(scene===null)scene=_emptyScene;const frontFaceCW=object.isMesh&&object.matrixWorld.determinant()<0;const program=setProgram(camera,scene,geometry,material,object);state.setMaterial(material,frontFaceCW);let index=geometry.index;let rangeFactor=1;if(material.wireframe===true){index=geometries.getWireframeAttribute(geometry);if(index===undefined)return;rangeFactor=2}const drawRange=geometry.drawRange;const position=geometry.attributes.position;let drawStart=drawRange.start*rangeFactor;let drawEnd=(drawRange.start+drawRange.count)*rangeFactor;if(group!==null){drawStart=Math.max(drawStart,group.start*rangeFactor);drawEnd=Math.min(drawEnd,(group.start+group.count)*rangeFactor)}if(index!==null){drawStart=Math.max(drawStart,0);drawEnd=Math.min(drawEnd,index.count)}else if(position!==undefined&&position!==null){drawStart=Math.max(drawStart,0);drawEnd=Math.min(drawEnd,position.count)}const drawCount=drawEnd-drawStart;if(drawCount<0||drawCount===Infinity)return;bindingStates.setup(object,material,program,geometry,index);let attribute;let renderer=bufferRenderer;if(index!==null){attribute=attributes.get(index);renderer=indexedBufferRenderer;renderer.setIndex(attribute)}if(object.isMesh){if(material.wireframe===true){state.setLineWidth(material.wireframeLinewidth*getTargetPixelRatio());renderer.setMode(_gl.LINES)}else{renderer.setMode(_gl.TRIANGLES)}}else if(object.isLine){let lineWidth=material.linewidth;if(lineWidth===undefined)lineWidth=1;state.setLineWidth(lineWidth*getTargetPixelRatio());if(object.isLineSegments){renderer.setMode(_gl.LINES)}else if(object.isLineLoop){renderer.setMode(_gl.LINE_LOOP)}else{renderer.setMode(_gl.LINE_STRIP)}}else if(object.isPoints){renderer.setMode(_gl.POINTS)}else if(object.isSprite){renderer.setMode(_gl.TRIANGLES)}if(object.isBatchedMesh){renderer.renderMultiDraw(object._multiDrawStarts,object._multiDrawCounts,object._multiDrawCount)}else if(object.isInstancedMesh){renderer.renderInstances(drawStart,drawCount,object.count)}else if(geometry.isInstancedBufferGeometry){const maxInstanceCount=geometry._maxInstanceCount!==undefined?geometry._maxInstanceCount:Infinity;const instanceCount=Math.min(geometry.instanceCount,maxInstanceCount);renderer.renderInstances(drawStart,drawCount,instanceCount)}else{renderer.render(drawStart,drawCount)}};function prepareMaterial(material,scene,object){if(material.transparent===true&&material.side===DoubleSide&&material.forceSinglePass===false){material.side=BackSide;material.needsUpdate=true;getProgram(material,scene,object);material.side=FrontSide;material.needsUpdate=true;getProgram(material,scene,object);material.side=DoubleSide}else{getProgram(material,scene,object)}}
4233this.compile=function(scene,camera,targetScene=null){if(targetScene===null)targetScene=scene;currentRenderState=renderStates.get(targetScene);currentRenderState.init();renderStateStack.push(currentRenderState);targetScene.traverseVisible(function(object){if(object.isLight&&object.layers.test(camera.layers)){currentRenderState.pushLight(object);if(object.castShadow){currentRenderState.pushShadow(object)}}});if(scene!==targetScene){scene.traverseVisible(function(object){if(object.isLight&&object.layers.test(camera.layers)){currentRenderState.pushLight(object);if(object.castShadow){currentRenderState.pushShadow(object)}}})}currentRenderState.setupLights(_this._useLegacyLights);const materials=new Set;scene.traverse(function(object){const material=object.material;if(material){if(Array.isArray(material)){for(let i=0;i<material.length;i++){const material2=material[i];prepareMaterial(material2,targetScene,object);materials.add(material2)}}else{prepareMaterial(material,targetScene,object);materials.add(material)}}});renderStateStack.pop();currentRenderState=null;return materials};this.compileAsync=function(scene,camera,targetScene=null){const materials=this.compile(scene,camera,targetScene);return new Promise(resolve=>{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){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(_isContextLost===true)return;if(scene.matrixWorldAutoUpdate===true)scene.updateMatrixWorld();if(camera.parent===null&&camera.matrixWorldAutoUpdate===true)camera.updateMatrixWorld();if(xr.enabled===true&&xr.isPresenting===true){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();renderStateStack.push(currentRenderState);_projScreenMatrix.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse);_frustum.setFromProjectionMatrix(_projScreenMatrix);_localClippingEnabled=this.localClippingEnabled;_clippingEnabled=clipping.init(this.clippingPlanes,_localClippingEnabled);currentRenderList=renderLists.get(scene,renderListStack.length);currentRenderList.init();renderListStack.push(currentRenderList);projectObject(scene,camera,0,_this.sortObjects);currentRenderList.finish();if(_this.sortObjects===true){currentRenderList.sort(_opaqueSort,_transparentSort)}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();if(xr.enabled===false||xr.isPresenting===false||xr.hasDepthSensing()===false){background.render(currentRenderList,scene)}currentRenderState.setupLights(_this._useLegacyLights);if(camera.isArrayCamera){const cameras=camera.cameras;for(let i=0,l=cameras.length;i<l;i++){const camera2=cameras[i];renderScene(currentRenderList,scene,camera2,camera2.viewport)}}else{renderScene(currentRenderList,scene,camera)}if(_currentRenderTarget!==null){textures.updateMultisampleRenderTarget(_currentRenderTarget);textures.updateRenderTargetMipmap(_currentRenderTarget)}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]}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){_vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix)}const geometry=objects.update(object);const material=object.material;if(material.visible){currentRenderList.push(object,geometry,material,groupOrder,_vector3.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();_vector3.copy(object.boundingSphere.center)}else{if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_vector3.copy(geometry.boundingSphere.center)}
4233_vector3.applyMatrix4(object.matrixWorld).applyMatrix4(_projScreenMatrix)}if(Array.isArray(material)){const groups=geometry.groups;for(let i=0,l=groups.length;i<l;i++){const group=groups[i];const groupMaterial=material[group.materialIndex];if(groupMaterial&&groupMaterial.visible){currentRenderList.push(object,geometry,groupMaterial,groupOrder,_vector3.z,group)}}}else if(material.visible){currentRenderList.push(object,geometry,material,groupOrder,_vector3.z,null)}}}}const children=object.children;for(let i=0,l=children.length;i<l;i++){projectObject(children[i],camera,groupOrder,sortObjects)}}function renderScene(currentRenderList,scene,camera,viewport){const opaqueObjects=currentRenderList.opaque;const transmissiveObjects=currentRenderList.transmissive;const transparentObjects=currentRenderList.transparent;currentRenderState.setupLightsView(camera);if(_clippingEnabled===true)clipping.setGlobalState(_this.clippingPlanes,camera);if(transmissiveObjects.length>0)renderTransmissionPass(opaqueObjects,transmissiveObjects,scene,camera);if(viewport)state.viewport(_currentViewport.copy(viewport));if(opaqueObjects.length>0)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===null){currentRenderState.state.transmissionRenderTarget=new WebGLRenderTarget(1,1,{generateMipmaps:true,type:extensions.has("EXT_color_buffer_half_float")||extensions.has("EXT_color_buffer_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:4,stencilBuffer:stencil});const renderTargetProperties=properties.get(currentRenderState.state.transmissionRenderTarget);renderTargetProperties.__isTransmissionRenderTarget=true}const transmissionRenderTarget=currentRenderState.state.transmissionRenderTarget;_this.getDrawingBufferSize(_vector2);transmissionRenderTarget.setSize(_vector2.x,_vector2.y);const currentRenderTarget=_this.getRenderTarget();_this.setRenderTarget(transmissionRenderTarget);_this.getClearColor(_currentClearColor);_currentClearAlpha=_this.getClearAlpha();if(_currentClearAlpha<1)_this.setClearColor(16777215,0.5);_this.clear();const currentToneMapping=_this.toneMapping;_this.toneMapping=NoToneMapping;renderObjects(opaqueObjects,scene,camera);textures.updateMultisampleRenderTarget(transmissionRenderTarget);textures.updateRenderTargetMipmap(transmissionRenderTarget);let renderTargetNeedsUpdate=false;for(let i=0,l=transmissiveObjects.length;i<l;i++){const renderItem=transmissiveObjects[i];const object=renderItem.object;const geometry=renderItem.geometry;const material=renderItem.material;const group=renderItem.group;if(material.side===DoubleSide&&object.layers.test(camera.layers)){const currentSide=material.side;material.side=BackSide;material.needsUpdate=true;renderObject(object,scene,camera,geometry,material,group);material.side=currentSide;material.needsUpdate=true;renderTargetNeedsUpdate=true}}if(renderTargetNeedsUpdate===true){textures.updateMultisampleRenderTarget(transmissionRenderTarget);textures.updateRenderTargetMipmap(transmissionRenderTarget)}_this.setRenderTarget(currentRenderTarget);_this.setClearColor(_currentClearColor,_currentClearAlpha);_this.toneMapping=currentToneMapping}function renderObjects(renderList,scene,camera){const overrideMaterial=scene.isScene===true?scene.overrideMaterial:null;for(let i=0,l=renderList.length;i<l;i++){const renderItem=renderList[i];const object=renderItem.object;const geometry=renderItem.geometry;const material=overrideMaterial===null?renderItem.material:overrideMaterial;const group=renderItem.group;if(object.layers.test(camera.layers)){renderObject(object,scene,camera,geometry,material,group)}}}function renderObject(object,scene,camera,geometry,material,group){object.onBeforeRender(_this,scene,camera,geometry,material,group);object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse,object.matrixWorld);object.normalMatrix.getNormalMatrix(object.modelViewMatrix);material.onBeforeRender(_this,scene,camera,geometry,object,group);if(material.transparent===true&&material.side===DoubleSide&&material.forceSinglePass===false){material.side=BackSide;material.needsUpdate=true;_this.renderBufferDirect(camera,scene,geometry,material,object,group);material.side=FrontSide;material.needsUpdate=true;_this.renderBufferDirect(camera,scene,geometry,material,object,group);material.side=DoubleSide}else{_this.renderBufferDirect(camera,scene,geometry,material,object,group)}object.onAfterRender(_this,scene,camera,geometry,material,group)}function getProgram(material,scene,object){if(scene.isScene!==true)scene=_emptyScene;const materialProperties=properties.get(material);const lights=currentRenderState.state.lights;const shadowsArray=currentRenderState.state.shadowsArray;
4233const lightsStateVersion=lights.state.version;const parameters=programCache.getParameters(material,lights.state,shadowsArray,scene,object);const programCacheKey=programCache.getProgramCacheKey(parameters);let programs=materialProperties.programs;materialProperties.environment=material.isMeshStandardMaterial?scene.environment:null;materialProperties.fog=scene.fog;materialProperties.envMap=(material.isMeshStandardMaterial?cubeuvmaps:cubemaps).get(material.envMap||materialProperties.environment);materialProperties.envMapRotation=materialProperties.environment!==null&&material.envMap===null?scene.environmentRotation:material.envMapRotation;if(programs===undefined){material.addEventListener("dispose",onMaterialDispose);programs=new Map;materialProperties.programs=programs}let program=programs.get(programCacheKey);if(program!==undefined){if(materialProperties.currentProgram===program&&materialProperties.lightsStateVersion===lightsStateVersion){updateCommonMaterialProperties(material,parameters);return program}}else{parameters.uniforms=programCache.getUniforms(material);material.onBuild(object,parameters,_this);material.onBeforeCompile(parameters,_this);program=programCache.acquireProgram(parameters,programCacheKey);programs.set(programCacheKey,program);materialProperties.uniforms=parameters.uniforms}const uniforms=materialProperties.uniforms;if(!material.isShaderMaterial&&!material.isRawShaderMaterial||material.clipping===true){uniforms.clippingPlanes=clipping.uniform}updateCommonMaterialProperties(material,parameters);materialProperties.needsLights=materialNeedsLights(material);materialProperties.lightsStateVersion=lightsStateVersion;if(materialProperties.needsLights){uniforms.ambientLightColor.value=lights.state.ambient;uniforms.lightProbe.value=lights.state.probe;uniforms.directionalLights.value=lights.state.directional;uniforms.directionalLightShadows.value=lights.state.directionalShadow;uniforms.spotLights.value=lights.state.spot;uniforms.spotLightShadows.value=lights.state.spotShadow;uniforms.rectAreaLights.value=lights.state.rectArea;uniforms.ltc_1.value=lights.state.rectAreaLTC1;uniforms.ltc_2.value=lights.state.rectAreaLTC2;uniforms.pointLights.value=lights.state.point;uniforms.pointLightShadows.value=lights.state.pointShadow;uniforms.hemisphereLights.value=lights.state.hemi;uniforms.directionalShadowMap.value=lights.state.directionalShadowMap;uniforms.directionalShadowMatrix.value=lights.state.directionalShadowMatrix;uniforms.spotShadowMap.value=lights.state.spotShadowMap;uniforms.spotLightMatrix.value=lights.state.spotLightMatrix;uniforms.spotLightMap.value=lights.state.spotLightMap;uniforms.pointShadowMap.value=lights.state.pointShadowMap;uniforms.pointShadowMatrix.value=lights.state.pointShadowMatrix}materialProperties.currentProgram=program;materialProperties.uniformsList=null;return program}function getUniformList(materialProperties){if(materialProperties.uniformsList===null){const progUniforms=materialProperties.currentProgram.getUniforms();materialProperties.uniformsList=WebGLUniforms.seqWithValue(progUniforms.seq,materialProperties.uniforms)}return materialProperties.uniformsList}function updateCommonMaterialProperties(material,parameters){const materialProperties=properties.get(material);materialProperties.outputColorSpace=parameters.outputColorSpace;materialProperties.batching=parameters.batching;materialProperties.instancing=parameters.instancing;materialProperties.instancingColor=parameters.instancingColor;materialProperties.instancingMorph=parameters.instancingMorph;materialProperties.skinning=parameters.skinning;materialProperties.morphTargets=parameters.morphTargets;materialProperties.morphNormals=parameters.morphNormals;materialProperties.morphColors=parameters.morphColors;materialProperties.morphTargetsCount=parameters.morphTargetsCount;materialProperties.numClippingPlanes=parameters.numClippingPlanes;materialProperties.numIntersection=parameters.numClipIntersection;materialProperties.vertexAlphas=parameters.vertexAlphas;materialProperties.vertexTangents=parameters.vertexTangents;materialProperties.toneMapping=parameters.toneMapping}function setProgram(camera,scene,geometry,material,object){if(scene.isScene!==true)scene=_emptyScene;textures.resetTextureUnits();const fog=scene.fog;const environment=material.isMeshStandardMaterial?scene.environment:null;
4233const colorSpace=_currentRenderTarget===null?_this.outputColorSpace:_currentRenderTarget.isXRRenderTarget===true?_currentRenderTarget.texture.colorSpace:LinearSRGBColorSpace;const envMap=(material.isMeshStandardMaterial?cubeuvmaps:cubemaps).get(material.envMap||environment);const vertexAlphas=material.vertexColors===true&&!!geometry.attributes.color&&geometry.attributes.color.itemSize===4;const vertexTangents=!!geometry.attributes.tangent&&(!!material.normalMap||material.anisotropy>0);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.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){p_uniforms.setValue(_gl,"projectionMatrix",camera.projectionMatrix);p_uniforms.setValue(_gl,"viewMatrix",camera.matrixWorldInverse);
4233const 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(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)}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(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);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;i<l;i++){const group=groups[i];uniformsGroups.update(group,program);uniformsGroups.bind(group,program)}}return program}function markUniformsLightsNeedsUpdate(uniforms,value){uniforms.ambientLightColor.needsUpdate=value;uniforms.lightProbe.needsUpdate=value;uniforms.directionalLights.needsUpdate=value;uniforms.directionalLightShadows.needsUpdate=value;uniforms.pointLights.needsUpdate=value;uniforms.pointLightShadows.needsUpdate=value;uniforms.spotLights.needsUpdate=value;uniforms.spotLightShadows.needsUpdate=value;uniforms.rectAreaLights.needsUpdate=value;uniforms.hemisphereLights.needsUpdate=value}function materialNeedsLights(material){return material.isMeshLambertMaterial||material.isMeshToonMaterial||material.isMeshPhongMaterial||material.isMeshStandardMaterial||material.isShadowMaterial||material.isShaderMaterial&&material.lights===true}this.getActiveCubeFace=function(){return _currentActiveCubeFace};this.getActiveMipmapLevel=function(){return _currentActiveMipmapLevel};this.getRenderTarget=function(){return _currentRenderTarget};this.setRenderTargetTextures=function(renderTarget,colorTexture,depthTexture){properties.get(renderTarget.texture).__webglTexture=colorTexture;properties.get(renderTarget.depthTexture).__webglTexture=depthTexture;const renderTargetProperties=properties.get(renderTarget);renderTargetProperties.__hasExternalTextures=true;renderTargetProperties.__autoAllocateDepthBuffer=depthTexture===undefined;if(!renderTargetProperties.__autoAllocateDepthBuffer){if(extensions.has("WEBGL_multisampled_render_to_texture")===true){console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided");renderTargetProperties.__useRenderToTexture=false}}};this.setRenderTargetFramebuffer=function(renderTarget,defaultFramebuffer){const renderTargetProperties=properties.get(renderTarget);renderTargetProperties.__webglFramebuffer=defaultFramebuffer;renderTargetProperties.__useDefaultFramebuffer=defaultFramebuffer===undefined};this.setRenderTarget=function(renderTarget,activeCubeFace=0,activeMipmapLevel=0){_currentRenderTarget=renderTarget;_currentActiveCubeFace=activeCubeFace;_currentActiveMipmapLevel=activeMipmapLevel;let useDefaultFramebuffer=true;let framebuffer=null;let isCube=false;let isRenderTarget3D=false;if(renderTarget){const renderTargetProperties=properties.get(renderTarget);if(renderTargetProperties.__useDefaultFramebuffer!==undefined){state.bindFramebuffer(_gl.FRAMEBUFFER,null);useDefaultFramebuffer=false}else if(renderTargetProperties.__webglFramebuffer===undefined){textures.setupRenderTarget(renderTarget)}else if(renderTargetProperties.__hasExternalTextures){textures.rebindTextures(renderTarget,properties.get(renderTarget.texture).__webglTexture,properties.get(renderTarget.depthTexture).__webglTexture)}const texture=renderTarget.texture;if(texture.isData3DTexture||texture.isDataArrayTexture||texture.isCompressedArrayTexture){isRenderTarget3D=true}const __webglFramebuffer=properties.get(renderTarget).__webglFramebuffer;
4233if(renderTarget.isWebGLCubeRenderTarget){if(Array.isArray(__webglFramebuffer[activeCubeFace])){framebuffer=__webglFramebuffer[activeCubeFace][activeMipmapLevel]}else{framebuffer=__webglFramebuffer[activeCubeFace]}isCube=true}else if(renderTarget.samples>0&&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}const framebufferBound=state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);if(framebufferBound&&useDefaultFramebuffer){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 textureProperties=properties.get(renderTarget.texture);const layer=activeCubeFace||0;_gl.framebufferTextureLayer(_gl.FRAMEBUFFER,_gl.COLOR_ATTACHMENT0,textureProperties.__webglTexture,activeMipmapLevel||0,layer)}_currentMaterialId=-1};this.readRenderTargetPixels=function(renderTarget,x,y,width,height,buffer,activeCubeFaceIndex){if(!(renderTarget&&renderTarget.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let framebuffer=properties.get(renderTarget).__webglFramebuffer;if(renderTarget.isWebGLCubeRenderTarget&&activeCubeFaceIndex!==undefined){framebuffer=framebuffer[activeCubeFaceIndex]}if(framebuffer){state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);try{const texture=renderTarget.texture;const textureFormat=texture.format;const textureType=texture.type;if(textureFormat!==RGBAFormat&&utils.convert(textureFormat)!==_gl.getParameter(_gl.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const halfFloatSupportedByExt=textureType===HalfFloatType&&(extensions.has("EXT_color_buffer_half_float")||extensions.has("EXT_color_buffer_float"));if(textureType!==UnsignedByteType&&utils.convert(textureType)!==_gl.getParameter(_gl.IMPLEMENTATION_COLOR_READ_TYPE)&&textureType!==FloatType&&!halfFloatSupportedByExt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}if(x>=0&&x<=renderTarget.width-width&&y>=0&&y<=renderTarget.height-height){_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.copyFramebufferToTexture=function(position,texture,level=0){const levelScale=Math.pow(2,-level);const width=Math.floor(texture.image.width*levelScale);const height=Math.floor(texture.image.height*levelScale);textures.setTexture2D(texture,0);_gl.copyTexSubImage2D(_gl.TEXTURE_2D,level,0,0,position.x,position.y,width,height);state.unbindTexture()};this.copyTextureToTexture=function(position,srcTexture,dstTexture,level=0){const width=srcTexture.image.width;const height=srcTexture.image.height;const glFormat=utils.convert(dstTexture.format);const glType=utils.convert(dstTexture.type);textures.setTexture2D(dstTexture,0);_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);if(srcTexture.isDataTexture){_gl.texSubImage2D(_gl.TEXTURE_2D,level,position.x,position.y,width,height,glFormat,glType,srcTexture.image.data)}else{if(srcTexture.isCompressedTexture){_gl.compressedTexSubImage2D(_gl.TEXTURE_2D,level,position.x,position.y,srcTexture.mipmaps[0].width,srcTexture.mipmaps[0].height,glFormat,srcTexture.mipmaps[0].data)}else{_gl.texSubImage2D(_gl.TEXTURE_2D,level,position.x,position.y,glFormat,glType,srcTexture.image)}}if(level===0&&dstTexture.generateMipmaps)_gl.generateMipmap(_gl.TEXTURE_2D);state.unbindTexture()};this.copyTextureToTexture3D=function(sourceBox,position,srcTexture,dstTexture,level=0){const width=Math.round(sourceBox.max.x-sourceBox.min.x);const height=Math.round(sourceBox.max.y-sourceBox.min.y);const depth=sourceBox.max.z-sourceBox.min.z+1;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{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}_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 unpackRowLen=_gl.getParameter(_gl.UNPACK_ROW_LENGTH);const unpackImageHeight=_gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);const unpackSkipPixels=_gl.getParameter(_gl.UNPACK_SKIP_PIXELS);const unpackSkipRows=_gl.getParameter(_gl.UNPACK_SKIP_ROWS);const unpackSkipImages=_gl.getParameter(_gl.UNPACK_SKIP_IMAGES);const image=srcTexture.isCompressedTexture?srcTexture.mipmaps[level]:srcTexture.image;_gl.pixelStorei(_gl.UNPACK_ROW_LENGTH,image.width);_gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT,image.height);_gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS,sourceBox.min.x);_gl.pixelStorei(_gl.UNPACK_SKIP_ROWS,sourceBox.min.y);_gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES,sourceBox.min.z);
4233if(srcTexture.isDataTexture||srcTexture.isData3DTexture){_gl.texSubImage3D(glTarget,level,position.x,position.y,position.z,width,height,depth,glFormat,glType,image.data)}else{if(dstTexture.isCompressedArrayTexture){_gl.compressedTexSubImage3D(glTarget,level,position.x,position.y,position.z,width,height,depth,glFormat,image.data)}else{_gl.texSubImage3D(glTarget,level,position.x,position.y,position.z,width,height,depth,glFormat,glType,image)}}_gl.pixelStorei(_gl.UNPACK_ROW_LENGTH,unpackRowLen);_gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT,unpackImageHeight);_gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS,unpackSkipPixels);_gl.pixelStorei(_gl.UNPACK_SKIP_ROWS,unpackSkipRows);_gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES,unpackSkipImages);if(level===0&&dstTexture.generateMipmaps)_gl.generateMipmap(glTarget);state.unbindTexture()};this.initTexture=function(texture){if(texture.isCubeTexture){textures.setTextureCube(texture,0)}else if(texture.isData3DTexture){textures.setTexture3D(texture,0)}else if(texture.isDataArrayTexture||texture.isCompressedArrayTexture){textures.setTexture2DArray(texture,0)}else{textures.setTexture2D(texture,0)}state.unbindTexture()};this.resetState=function(){_currentActiveCubeFace=0;_currentActiveMipmapLevel=0;_currentRenderTarget=null;state.reset();bindingStates.reset()};if(typeof __THREE_DEVTOOLS__!=="undefined"){__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}}get coordinateSystem(){return WebGLCoordinateSystem}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(colorSpace){this._outputColorSpace=colorSpace;const gl=this.getContext();gl.drawingBufferColorSpace=colorSpace===DisplayP3ColorSpace?"display-p3":"srgb";gl.unpackColorSpace=ColorManagement.workingColorSpace===LinearDisplayP3ColorSpace?"display-p3":"srgb"}get useLegacyLights(){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733.");return this._useLegacyLights}set useLegacyLights(value){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733.");this._useLegacyLights=value}}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._updateRange={offset:0,count:-1};this.updateRanges=[];this.version=0;this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(value){if(value===true)this.version++}get updateRange(){warnOnce("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.");return this._updateRange}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,attribute,index2){index1*=this.stride;index2*=attribute.stride;for(let i=0,l=this.stride;i<l;i++){this.array[index1+i]=attribute.array[index2+i]}return this}set(value,offset=0){this.array.set(value,offset);return this}
4233clone(data){if(data.arrayBuffers===undefined){data.arrayBuffers={}}if(this.array.buffer._uuid===undefined){this.array.buffer._uuid=generateUUID()}if(data.arrayBuffers[this.array.buffer._uuid]===undefined){data.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer}const array=new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]);const ib=new this.constructor(array,this.stride);ib.setUsage(this.usage);return ib}onUpload(callback){this.onUploadCallback=callback;return this}toJSON(data){if(data.arrayBuffers===undefined){data.arrayBuffers={}}if(this.array.buffer._uuid===undefined){this.array.buffer._uuid=generateUUID()}if(data.arrayBuffers[this.array.buffer._uuid]===undefined){data.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))}return{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const _vector$6=new Vector3;class InterleavedBufferAttribute{constructor(interleavedBuffer,itemSize,offset,normalized=false){this.isInterleavedBufferAttribute=true;this.name="";this.data=interleavedBuffer;this.itemSize=itemSize;this.offset=offset;this.normalized=normalized}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(value){this.data.needsUpdate=value}applyMatrix4(m){for(let i=0,l=this.data.count;i<l;i++){_vector$6.fromBufferAttribute(this,i);_vector$6.applyMatrix4(m);this.setXYZ(i,_vector$6.x,_vector$6.y,_vector$6.z)}return this}applyNormalMatrix(m){for(let i=0,l=this.count;i<l;i++){_vector$6.fromBufferAttribute(this,i);_vector$6.applyNormalMatrix(m);this.setXYZ(i,_vector$6.x,_vector$6.y,_vector$6.z)}return this}transformDirection(m){for(let i=0,l=this.count;i<l;i++){_vector$6.fromBufferAttribute(this,i);_vector$6.transformDirection(m);this.setXYZ(i,_vector$6.x,_vector$6.y,_vector$6.z)}return this}getComponent(index,component){let value=this.array[index*this.data.stride+this.offset+component];if(this.normalized)value=denormalize(value,this.array);return value}setComponent(index,component,value){if(this.normalized)value=normalize(value,this.array);this.data.array[index*this.data.stride+this.offset+component]=value;return this}setX(index,x){if(this.normalized)x=normalize(x,this.array);this.data.array[index*this.data.stride+this.offset]=x;return this}setY(index,y){if(this.normalized)y=normalize(y,this.array);this.data.array[index*this.data.stride+this.offset+1]=y;return this}setZ(index,z){if(this.normalized)z=normalize(z,this.array);this.data.array[index*this.data.stride+this.offset+2]=z;return this}setW(index,w){if(this.normalized)w=normalize(w,this.array);this.data.array[index*this.data.stride+this.offset+3]=w;return this}getX(index){let x=this.data.array[index*this.data.stride+this.offset];if(this.normalized)x=denormalize(x,this.array);return x}getY(index){let y=this.data.array[index*this.data.stride+this.offset+1];if(this.normalized)y=denormalize(y,this.array);return y}getZ(index){let z=this.data.array[index*this.data.stride+this.offset+2];if(this.normalized)z=denormalize(z,this.array);return z}getW(index){let w=this.data.array[index*this.data.stride+this.offset+3];if(this.normalized)w=denormalize(w,this.array);return w}setXY(index,x,y){index=index*this.data.stride+this.offset;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array)}this.data.array[index+0]=x;this.data.array[index+1]=y;return this}setXYZ(index,x,y,z){index=index*this.data.stride+this.offset;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array);z=normalize(z,this.array)}this.data.array[index+0]=x;this.data.array[index+1]=y;this.data.array[index+2]=z;return this}setXYZW(index,x,y,z,w){index=index*this.data.stride+this.offset;if(this.normalized){x=normalize(x,this.array);y=normalize(y,this.array);z=normalize(z,this.array);w=normalize(w,this.array)}this.data.array[index+0]=x;this.data.array[index+1]=y;this.data.array[index+2]=z;this.data.array[index+3]=w;return this}clone(data){if(data===undefined){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");const array=[];for(let i=0;i<this.count;i++){const index=i*this.data.stride+this.offset;for(let j=0;j<this.itemSize;j++){array.push(this.data.array[index+j])}}return new BufferAttribute(new this.array.constructor(array),this.itemSize,this.normalized)}
4233else{if(data.interleavedBuffers===undefined){data.interleavedBuffers={}}if(data.interleavedBuffers[this.data.uuid]===undefined){data.interleavedBuffers[this.data.uuid]=this.data.clone(data)}return new InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}}toJSON(data){if(data===undefined){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");const array=[];for(let i=0;i<this.count;i++){const index=i*this.data.stride+this.offset;for(let j=0;j<this.itemSize;j++){array.push(this.data.array[index+j])}}return{itemSize:this.itemSize,type:this.array.constructor.name,array:array,normalized:this.normalized}}else{if(data.interleavedBuffers===undefined){data.interleavedBuffers={}}if(data.interleavedBuffers[this.data.uuid]===undefined){data.interleavedBuffers[this.data.uuid]=this.data.toJSON(data)}return{isInterleavedBufferAttribute:true,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}}class SpriteMaterial extends Material{constructor(parameters){super();this.isSpriteMaterial=true;this.type="SpriteMaterial";this.color=new Color(16777215);this.map=null;this.alphaMap=null;this.rotation=0;this.sizeAttenuation=true;this.transparent=true;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.alphaMap=source.alphaMap;this.rotation=source.rotation;this.sizeAttenuation=source.sizeAttenuation;this.fog=source.fog;return this}}let _geometry;const _intersectPoint=new Vector3;const _worldScale=new Vector3;const _mvPosition=new Vector3;const _alignedPosition=new Vector2;const _rotatedPosition=new Vector2;const _viewWorldMatrix=new Matrix4;const _vA=new Vector3;const _vB=new Vector3;const _vC=new Vector3;const _uvA=new Vector2;const _uvB=new Vector2;const _uvC=new Vector2;class Sprite extends Object3D{constructor(material=new SpriteMaterial){super();this.isSprite=true;this.type="Sprite";if(_geometry===undefined){_geometry=new BufferGeometry;const float32Array=new Float32Array([-0.5,-0.5,0,0,0,0.5,-0.5,0,1,0,0.5,0.5,0,1,1,-0.5,0.5,0,0,1]);const interleavedBuffer=new InterleavedBuffer(float32Array,5);_geometry.setIndex([0,1,2,0,2,3]);_geometry.setAttribute("position",new InterleavedBufferAttribute(interleavedBuffer,3,0,false));_geometry.setAttribute("uv",new InterleavedBufferAttribute(interleavedBuffer,2,3,false))}this.geometry=_geometry;this.material=material;this.center=new Vector2(0.5,0.5)}raycast(raycaster,intersects){if(raycaster.camera===null){console.error("THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.")}_worldScale.setFromMatrixScale(this.matrixWorld);_viewWorldMatrix.copy(raycaster.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse,this.matrixWorld);_mvPosition.setFromMatrixPosition(this.modelViewMatrix);if(raycaster.camera.isPerspectiveCamera&&this.material.sizeAttenuation===false){_worldScale.multiplyScalar(-_mvPosition.z)}const rotation=this.material.rotation;let sin,cos;if(rotation!==0){cos=Math.cos(rotation);sin=Math.sin(rotation)}const center=this.center;transformVertex(_vA.set(-0.5,-0.5,0),_mvPosition,center,_worldScale,sin,cos);transformVertex(_vB.set(0.5,-0.5,0),_mvPosition,center,_worldScale,sin,cos);transformVertex(_vC.set(0.5,0.5,0),_mvPosition,center,_worldScale,sin,cos);_uvA.set(0,0);_uvB.set(1,0);_uvC.set(1,1);let intersect=raycaster.ray.intersectTriangle(_vA,_vB,_vC,false,_intersectPoint);if(intersect===null){transformVertex(_vB.set(-0.5,0.5,0),_mvPosition,center,_worldScale,sin,cos);_uvB.set(0,1);intersect=raycaster.ray.intersectTriangle(_vA,_vC,_vB,false,_intersectPoint);if(intersect===null){return}}const distance=raycaster.ray.origin.distanceTo(_intersectPoint);if(distance<raycaster.near||distance>raycaster.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._currentLevel=0;this.type="LOD";Object.defineProperties(this,{levels:{enumerable:true,value:[]},isLOD:{value:true}});this.autoUpdate=true}copy(source){super.copy(source,false);const levels=source.levels;for(let i=0,l=levels.length;i<l;i++){const level=levels[i];this.addLevel(level.object.clone(),level.distance,level.hysteresis)}this.autoUpdate=source.autoUpdate;return this}addLevel(object,distance=0,hysteresis=0){distance=Math.abs(distance);const levels=this.levels;let l;for(l=0;l<levels.length;l++){if(distance<levels[l].distance){break}}levels.splice(l,0,{distance:distance,hysteresis:hysteresis,object:object});this.add(object);return this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(distance){const levels=this.levels;if(levels.length>0){let i,l;for(i=1,l=levels.length;i<l;i++){let levelDistance=levels[i].distance;if(levels[i].object.visible){levelDistance-=levelDistance*levels[i].hysteresis}if(distance<levelDistance){break}}return levels[i-1].object}return null}raycast(raycaster,intersects){const levels=this.levels;if(levels.length>0){_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<l;i++){let levelDistance=levels[i].distance;if(levels[i].object.visible){levelDistance-=levelDistance*levels[i].hysteresis}if(distance>=levelDistance){levels[i-1].object.visible=false;levels[i].object.visible=true}else{break}}this._currentLevel=i-1;for(;i<l;i++){levels[i].object.visible=false}}}toJSON(meta){const data=super.toJSON(meta);if(this.autoUpdate===false)data.object.autoUpdate=false;data.object.levels=[];const levels=this.levels;for(let i=0,l=levels.length;i<l;i++){const level=levels[i];data.object.levels.push({object:level.object.uuid,distance:level.distance,hysteresis:level.hysteresis})}return data}}const _basePosition=new Vector3;const _skinIndex=new Vector4;const _skinWeight=new Vector4;const _vector3=new Vector3;const _matrix4=new Matrix4;const _vertex=new Vector3;const _sphere$4=new Sphere;const _inverseMatrix$2=new Matrix4;const _ray$2=new Ray;class SkinnedMesh extends Mesh{constructor(geometry,material){super(geometry,material);this.isSkinnedMesh=true;this.type="SkinnedMesh";this.bindMode=AttachedBindMode;this.bindMatrix=new Matrix4;this.bindMatrixInverse=new Matrix4;this.boundingBox=null;this.boundingSphere=null}computeBoundingBox(){const geometry=this.geometry;if(this.boundingBox===null){this.boundingBox=new Box3}this.boundingBox.makeEmpty();const positionAttribute=geometry.getAttribute("position");for(let i=0;i<positionAttribute.count;i++){this.getVertexPosition(i,_vertex);this.boundingBox.expandByPoint(_vertex)}}computeBoundingSphere(){const geometry=this.geometry;if(this.boundingSphere===null){this.boundingSphere=new Sphere}this.boundingSphere.makeEmpty();const positionAttribute=geometry.getAttribute("position");for(let i=0;i<positionAttribute.count;i++){this.getVertexPosition(i,_vertex);this.boundingSphere.expandByPoint(_vertex)}}copy(source,recursive){super.copy(source,recursive);this.bindMode=source.bindMode;this.bindMatrix.copy(source.bindMatrix);this.bindMatrixInverse.copy(source.bindMatrixInverse);this.skeleton=source.skeleton;if(source.boundingBox!==null)this.boundingBox=source.boundingBox.clone();if(source.boundingSphere!==null)this.boundingSphere=source.boundingSphere.clone();return this}raycast(raycaster,intersects){const material=this.material;
4233const matrixWorld=this.matrixWorld;if(material===undefined)return;if(this.boundingSphere===null)this.computeBoundingSphere();_sphere$4.copy(this.boundingSphere);_sphere$4.applyMatrix4(matrixWorld);if(raycaster.ray.intersectsSphere(_sphere$4)===false)return;_inverseMatrix$2.copy(matrixWorld).invert();_ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2);if(this.boundingBox!==null){if(_ray$2.intersectsBox(this.boundingBox)===false)return}this._computeIntersections(raycaster,intersects,_ray$2)}getVertexPosition(index,target){super.getVertexPosition(index,target);this.applyBoneTransform(index,target);return target}bind(skeleton,bindMatrix){this.skeleton=skeleton;if(bindMatrix===undefined){this.updateMatrixWorld(true);this.skeleton.calculateInverses();bindMatrix=this.matrixWorld}this.bindMatrix.copy(bindMatrix);this.bindMatrixInverse.copy(bindMatrix).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const vector=new Vector4;const skinWeight=this.geometry.attributes.skinWeight;for(let i=0,l=skinWeight.count;i<l;i++){vector.fromBufferAttribute(skinWeight,i);const scale=1/vector.manhattanLength();if(scale!==Infinity){vector.multiplyScalar(scale)}else{vector.set(1,0,0,0)}skinWeight.setXYZW(i,vector.x,vector.y,vector.z,vector.w)}}updateMatrixWorld(force){super.updateMatrixWorld(force);if(this.bindMode===AttachedBindMode){this.bindMatrixInverse.copy(this.matrixWorld).invert()}else if(this.bindMode===DetachedBindMode){this.bindMatrixInverse.copy(this.bindMatrix).invert()}else{console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}}applyBoneTransform(index,vector){const skeleton=this.skeleton;const geometry=this.geometry;_skinIndex.fromBufferAttribute(geometry.attributes.skinIndex,index);_skinWeight.fromBufferAttribute(geometry.attributes.skinWeight,index);_basePosition.copy(vector).applyMatrix4(this.bindMatrix);vector.set(0,0,0);for(let i=0;i<4;i++){const weight=_skinWeight.getComponent(i);if(weight!==0){const boneIndex=_skinIndex.getComponent(i);_matrix4.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld,skeleton.boneInverses[boneIndex]);vector.addScaledVector(_vector3.copy(_basePosition).applyMatrix4(_matrix4),weight)}}return vector.applyMatrix4(this.bindMatrixInverse)}}class Bone extends Object3D{constructor(){super();this.isBone=true;this.type="Bone"}}class DataTexture extends Texture{constructor(data=null,width=1,height=1,format,type,mapping,wrapS,wrapT,magFilter=NearestFilter,minFilter=NearestFilter,anisotropy,colorSpace){super(null,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace);this.isDataTexture=true;this.image={data:data,width:width,height:height};this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}const _offsetMatrix=new Matrix4;const _identityMatrix$1=new Matrix4;class Skeleton{constructor(bones=[],boneInverses=[]){this.uuid=generateUUID();this.bones=bones.slice(0);this.boneInverses=boneInverses;this.boneMatrices=null;this.boneTexture=null;this.init()}init(){const bones=this.bones;const boneInverses=this.boneInverses;this.boneMatrices=new Float32Array(bones.length*16);if(boneInverses.length===0){this.calculateInverses()}else{if(bones.length!==boneInverses.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.");this.boneInverses=[];for(let i=0,il=this.bones.length;i<il;i++){this.boneInverses.push(new Matrix4)}}}}calculateInverses(){this.boneInverses.length=0;for(let i=0,il=this.bones.length;i<il;i++){const inverse=new Matrix4;if(this.bones[i]){inverse.copy(this.bones[i].matrixWorld).invert()}this.boneInverses.push(inverse)}}pose(){for(let i=0,il=this.bones.length;i<il;i++){const bone=this.bones[i];if(bone){bone.matrixWorld.copy(this.boneInverses[i]).invert()}}for(let i=0,il=this.bones.length;i<il;i++){const bone=this.bones[i];if(bone){if(bone.parent&&bone.parent.isBone){bone.matrix.copy(bone.parent.matrixWorld).invert();bone.matrix.multiply(bone.matrixWorld)}else{bone.matrix.copy(bone.matrixWorld)}bone.matrix.decompose(bone.position,bone.quaternion,bone.scale)}}}update(){const bones=this.bones;const boneInverses=this.boneInverses;const boneMatrices=this.boneMatrices;const boneTexture=this.boneTexture;for(let i=0,il=bones.length;i<il;i++){const matrix=bones[i]?bones[i].matrixWorld:_identityMatrix$1;
4233_offsetMatrix.multiplyMatrices(matrix,boneInverses[i]);_offsetMatrix.toArray(boneMatrices,i*16)}if(boneTexture!==null){boneTexture.needsUpdate=true}}clone(){return new Skeleton(this.bones,this.boneInverses)}computeBoneTexture(){let size=Math.sqrt(this.bones.length*4);size=Math.ceil(size/4)*4;size=Math.max(size,4);const boneMatrices=new Float32Array(size*size*4);boneMatrices.set(this.boneMatrices);const boneTexture=new DataTexture(boneMatrices,size,size,RGBAFormat,FloatType);boneTexture.needsUpdate=true;this.boneMatrices=boneMatrices;this.boneTexture=boneTexture;return this}getBoneByName(name){for(let i=0,il=this.bones.length;i<il;i++){const bone=this.bones[i];if(bone.name===name){return bone}}return undefined}dispose(){if(this.boneTexture!==null){this.boneTexture.dispose();this.boneTexture=null}}fromJSON(json,bones){this.uuid=json.uuid;for(let i=0,l=json.bones.length;i<l;i++){const uuid=json.bones[i];let bone=bones[uuid];if(bone===undefined){console.warn("THREE.Skeleton: No bone found with UUID:",uuid);bone=new Bone}this.bones.push(bone);this.boneInverses.push(new Matrix4().fromArray(json.boneInverses[i]))}this.init();return this}toJSON(){const data={metadata:{version:4.6,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};data.uuid=this.uuid;const bones=this.bones;const boneInverses=this.boneInverses;for(let i=0,l=bones.length;i<l;i++){const bone=bones[i];data.bones.push(bone.uuid);const boneInverse=boneInverses[i];data.boneInverses.push(boneInverse.toArray())}return data}}class InstancedBufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized,meshPerAttribute=1){super(array,itemSize,normalized);this.isInstancedBufferAttribute=true;this.meshPerAttribute=meshPerAttribute}copy(source){super.copy(source);this.meshPerAttribute=source.meshPerAttribute;return this}toJSON(){const data=super.toJSON();data.meshPerAttribute=this.meshPerAttribute;data.isInstancedBufferAttribute=true;return data}}const _instanceLocalMatrix=new Matrix4;const _instanceWorldMatrix=new Matrix4;const _instanceIntersects=[];const _box3=new Box3;
4233const _identity=new Matrix4;const _mesh$1=new Mesh;const _sphere$3=new Sphere;class InstancedMesh extends Mesh{constructor(geometry,material,count){super(geometry,material);this.isInstancedMesh=true;this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(count*16),16);this.instanceColor=null;this.morphTexture=null;this.count=count;this.boundingBox=null;this.boundingSphere=null;for(let i=0;i<count;i++){this.setMatrixAt(i,_identity)}}computeBoundingBox(){const geometry=this.geometry;const count=this.count;if(this.boundingBox===null){this.boundingBox=new Box3}if(geometry.boundingBox===null){geometry.computeBoundingBox()}this.boundingBox.makeEmpty();for(let i=0;i<count;i++){this.getMatrixAt(i,_instanceLocalMatrix);_box3.copy(geometry.boundingBox).applyMatrix4(_instanceLocalMatrix);this.boundingBox.union(_box3)}}computeBoundingSphere(){const geometry=this.geometry;const count=this.count;if(this.boundingSphere===null){this.boundingSphere=new Sphere}if(geometry.boundingSphere===null){geometry.computeBoundingSphere()}this.boundingSphere.makeEmpty();for(let i=0;i<count;i++){this.getMatrixAt(i,_instanceLocalMatrix);_sphere$3.copy(geometry.boundingSphere).applyMatrix4(_instanceLocalMatrix);this.boundingSphere.union(_sphere$3)}}copy(source,recursive){super.copy(source,recursive);this.instanceMatrix.copy(source.instanceMatrix);if(source.morphTexture!==null)this.morphTexture=source.morphTexture.clone();if(source.instanceColor!==null)this.instanceColor=source.instanceColor.clone();this.count=source.count;if(source.boundingBox!==null)this.boundingBox=source.boundingBox.clone();if(source.boundingSphere!==null)this.boundingSphere=source.boundingSphere.clone();return this}getColorAt(index,color){color.fromArray(this.instanceColor.array,index*3)}getMatrixAt(index,matrix){matrix.fromArray(this.instanceMatrix.array,index*16)}getMorphAt(index,object){const objectInfluences=object.morphTargetInfluences;const array=this.morphTexture.source.data.data;const len=objectInfluences.length+1;const dataIndex=index*len+1;for(let i=0;i<objectInfluences.length;i++){objectInfluences[i]=array[dataIndex+i]}}raycast(raycaster,intersects){const matrixWorld=this.matrixWorld;const raycastTimes=this.count;_mesh$1.geometry=this.geometry;_mesh$1.material=this.material;if(_mesh$1.material===undefined)return;if(this.boundingSphere===null)this.computeBoundingSphere();_sphere$3.copy(this.boundingSphere);_sphere$3.applyMatrix4(matrixWorld);if(raycaster.ray.intersectsSphere(_sphere$3)===false)return;for(let instanceId=0;instanceId<raycastTimes;instanceId++){this.getMatrixAt(instanceId,_instanceLocalMatrix);_instanceWorldMatrix.multiplyMatrices(matrixWorld,_instanceLocalMatrix);_mesh$1.matrixWorld=_instanceWorldMatrix;_mesh$1.raycast(raycaster,_instanceIntersects);for(let i=0,l=_instanceIntersects.length;i<l;i++){const intersect=_instanceIntersects[i];intersect.instanceId=instanceId;intersect.object=this;intersects.push(intersect)}_instanceIntersects.length=0}}setColorAt(index,color){if(this.instanceColor===null){this.instanceColor=new InstancedBufferAttribute(new Float32Array(this.instanceMatrix.count*3),3)}color.toArray(this.instanceColor.array,index*3)}setMatrixAt(index,matrix){matrix.toArray(this.instanceMatrix.array,index*16)}setMorphAt(index,object){const objectInfluences=object.morphTargetInfluences;const len=objectInfluences.length+1;if(this.morphTexture===null){this.morphTexture=new DataTexture(new Float32Array(len*this.count),len,this.count,RedFormat,FloatType)}const array=this.morphTexture.source.data.data;let morphInfluencesSum=0;for(let i=0;i<objectInfluences.length;i++){morphInfluencesSum+=objectInfluences[i]}const morphBaseInfluence=this.geometry.morphTargetsRelative?1:1-morphInfluencesSum;const dataIndex=len*index;array[dataIndex]=morphBaseInfluence;array.set(objectInfluences,dataIndex+1)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"});if(this.morphTexture!==null){this.morphTexture.dispose();this.morphTexture=null}return this}}function sortOpaque(a,b){return a.z-b.z}
4233function sortTransparent(a,b){return b.z-a.z}class MultiDrawRenderList{constructor(){this.index=0;this.pool=[];this.list=[]}push(drawRange,z){const pool=this.pool;const list=this.list;if(this.index>=pool.length){pool.push({start:-1,count:-1,z:-1})}const item=pool[this.index];list.push(item);this.index++;item.start=drawRange.start;item.count=drawRange.count;item.z=z}reset(){this.list.length=0;this.index=0}}const ID_ATTR_NAME="batchId";const _matrix$1=new Matrix4;const _invMatrixWorld=new Matrix4;const _identityMatrix=new Matrix4;const _projScreenMatrix$2=new Matrix4;const _frustum=new Frustum;const _box$1=new Box3;const _sphere$2=new Sphere;const _vector$5=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;i<vertexCount;i++){for(let c=0;c<itemSize;c++){target.setComponent(i+targetOffset,c,src.getComponent(i,c))}}}else{target.array.set(src.array,targetOffset*itemSize)}target.needsUpdate=true}class BatchedMesh extends Mesh{get maxGeometryCount(){return this._maxGeometryCount}constructor(maxGeometryCount,maxVertexCount,maxIndexCount=maxVertexCount*2,material){super(new BufferGeometry,material);this.isBatchedMesh=true;this.perObjectFrustumCulled=true;this.sortObjects=true;this.boundingBox=null;this.boundingSphere=null;this.customSort=null;this._drawRanges=[];this._reservedRanges=[];this._visibility=[];this._active=[];this._bounds=[];this._maxGeometryCount=maxGeometryCount;this._maxVertexCount=maxVertexCount;this._maxIndexCount=maxIndexCount;this._geometryInitialized=false;this._geometryCount=0;this._multiDrawCounts=new Int32Array(maxGeometryCount);this._multiDrawStarts=new Int32Array(maxGeometryCount);this._multiDrawCount=0;this._visibilityChanged=true;this._matricesTexture=null;this._initMatricesTexture()}_initMatricesTexture(){let size=Math.sqrt(this._maxGeometryCount*4);size=Math.ceil(size/4)*4;size=Math.max(size,4);const matricesArray=new Float32Array(size*size*4);const matricesTexture=new DataTexture(matricesArray,size,size,RGBAFormat,FloatType);this._matricesTexture=matricesTexture}_initializeGeometry(reference){const geometry=this.geometry;const maxVertexCount=this._maxVertexCount;const maxGeometryCount=this._maxGeometryCount;const maxIndexCount=this._maxIndexCount;if(this._geometryInitialized===false){for(const attributeName in reference.attributes){const srcAttribute=reference.getAttribute(attributeName);const{array,itemSize,normalized}=srcAttribute;const dstArray=new array.constructor(maxVertexCount*itemSize);const dstAttribute=new BufferAttribute(dstArray,itemSize,normalized);geometry.setAttribute(attributeName,dstAttribute)}if(reference.getIndex()!==null){const indexArray=maxVertexCount>65536?new Uint32Array(maxIndexCount):new Uint16Array(maxIndexCount);geometry.setIndex(new BufferAttribute(indexArray,1))}const idArray=maxGeometryCount>65536?new Uint32Array(maxVertexCount):new Uint16Array(maxVertexCount);geometry.setAttribute(ID_ATTR_NAME,new BufferAttribute(idArray,1));this._geometryInitialized=true}}_validateGeometry(geometry){if(geometry.getAttribute(ID_ATTR_NAME)){throw new Error(`BatchedMesh: Geometry cannot use attribute "${ID_ATTR_NAME}"`)}const batchGeometry=this.geometry;if(Boolean(geometry.getIndex())!==Boolean(batchGeometry.getIndex())){throw new Error("BatchedMesh: All geometries must consistently have \"index\".")}for(const attributeName in batchGeometry.attributes){if(attributeName===ID_ATTR_NAME){continue}if(!geometry.hasAttribute(attributeName)){throw new Error(`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("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}}setCustomSort(func){this.customSort=func;return this}computeBoundingBox(){if(this.boundingBox===null){this.boundingBox=new Box3}const geometryCount=this._geometryCount;const boundingBox=this.boundingBox;const active=this._active;boundingBox.makeEmpty();for(let i=0;i<geometryCount;i++){if(active[i]===false)continue;this.getMatrixAt(i,_matrix$1);this.getBoundingBoxAt(i,_box$1).applyMatrix4(_matrix$1);boundingBox.union(_box$1)}}computeBoundingSphere(){if(this.boundingSphere===null){this.boundingSphere=new Sphere}const geometryCount=this._geometryCount;const boundingSphere=this.boundingSphere;const active=this._active;boundingSphere.makeEmpty();for(let i=0;i<geometryCount;i++){if(active[i]===false)continue;this.getMatrixAt(i,_matrix$1);this.getBoundingSphereAt(i,_sphere$2).applyMatrix4(_matrix$1);boundingSphere.union(_sphere$2)}}addGeometry(geometry,vertexCount=-1,indexCount=-1){this._initializeGeometry(geometry);
4233this._validateGeometry(geometry);if(this._geometryCount>=this._maxGeometryCount){throw new Error("BatchedMesh: Maximum geometry count reached.")}const reservedRange={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let lastRange=null;const reservedRanges=this._reservedRanges;const drawRanges=this._drawRanges;const bounds=this._bounds;if(this._geometryCount!==0){lastRange=reservedRanges[reservedRanges.length-1]}if(vertexCount===-1){reservedRange.vertexCount=geometry.getAttribute("position").count}else{reservedRange.vertexCount=vertexCount}if(lastRange===null){reservedRange.vertexStart=0}else{reservedRange.vertexStart=lastRange.vertexStart+lastRange.vertexCount}const index=geometry.getIndex();const hasIndex=index!==null;if(hasIndex){if(indexCount===-1){reservedRange.indexCount=index.count}else{reservedRange.indexCount=indexCount}if(lastRange===null){reservedRange.indexStart=0}else{reservedRange.indexStart=lastRange.indexStart+lastRange.indexCount}}if(reservedRange.indexStart!==-1&&reservedRange.indexStart+reservedRange.indexCount>this._maxIndexCount||reservedRange.vertexStart+reservedRange.vertexCount>this._maxVertexCount){throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.")}const visibility=this._visibility;const active=this._active;const matricesTexture=this._matricesTexture;const matricesArray=this._matricesTexture.image.data;visibility.push(true);active.push(true);const geometryId=this._geometryCount;this._geometryCount++;_identityMatrix.toArray(matricesArray,geometryId*16);matricesTexture.needsUpdate=true;reservedRanges.push(reservedRange);drawRanges.push({start:hasIndex?reservedRange.indexStart:reservedRange.vertexStart,count:-1});bounds.push({boxInitialized:false,box:new Box3,sphereInitialized:false,sphere:new Sphere});const idAttribute=this.geometry.getAttribute(ID_ATTR_NAME);for(let i=0;i<reservedRange.vertexCount;i++){idAttribute.setX(reservedRange.vertexStart+i,geometryId)}idAttribute.needsUpdate=true;this.setGeometryAt(geometryId,geometry);return geometryId}setGeometryAt(id,geometry){if(id>=this._geometryCount){throw new Error("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 reservedRange=this._reservedRanges[id];if(hasIndex&&srcIndex.count>reservedRange.indexCount||geometry.attributes.position.count>reservedRange.vertexCount){throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.")}const vertexStart=reservedRange.vertexStart;const vertexCount=reservedRange.vertexCount;for(const attributeName in batchGeometry.attributes){if(attributeName===ID_ATTR_NAME){continue}const srcAttribute=geometry.getAttribute(attributeName);const dstAttribute=batchGeometry.getAttribute(attributeName);copyAttributeData(srcAttribute,dstAttribute,vertexStart);const itemSize=srcAttribute.itemSize;for(let i=srcAttribute.count,l=vertexCount;i<l;i++){const index=vertexStart+i;for(let c=0;c<itemSize;c++){dstAttribute.setComponent(index,c,0)}}dstAttribute.needsUpdate=true;dstAttribute.addUpdateRange(vertexStart*itemSize,vertexCount*itemSize)}if(hasIndex){const indexStart=reservedRange.indexStart;for(let i=0;i<srcIndex.count;i++){dstIndex.setX(indexStart+i,vertexStart+srcIndex.getX(i))}for(let i=srcIndex.count,l=reservedRange.indexCount;i<l;i++){dstIndex.setX(indexStart+i,vertexStart)}dstIndex.needsUpdate=true;dstIndex.addUpdateRange(indexStart,reservedRange.indexCount)}const bound=this._bounds[id];if(geometry.boundingBox!==null){bound.box.copy(geometry.boundingBox);bound.boxInitialized=true}else{bound.boxInitialized=false}if(geometry.boundingSphere!==null){bound.sphere.copy(geometry.boundingSphere);bound.sphereInitialized=true}else{bound.sphereInitialized=false}const drawRange=this._drawRanges[id];const posAttr=geometry.getAttribute("position");drawRange.count=hasIndex?srcIndex.count:posAttr.count;this._visibilityChanged=true;return id}deleteGeometry(geometryId){const active=this._active;if(geometryId>=active.length||active[geometryId]===false){return this}active[geometryId]=false;this._visibilityChanged=true;return this}getBoundingBoxAt(id,target){const active=this._active;if(active[id]===false){return null}const bound=this._bounds[id];const box=bound.box;const geometry=this.geometry;if(bound.boxInitialized===false){box.makeEmpty();const index=geometry.index;const position=geometry.attributes.position;const drawRange=this._drawRanges[id];for(let i=drawRange.start,l=drawRange.start+drawRange.count;i<l;i++){let iv=i;if(index){iv=index.getX(iv)}box.expandByPoint(_vector$5.fromBufferAttribute(position,iv))}bound.boxInitialized=true}target.copy(box);return target}getBoundingSphereAt(id,target){const active=this._active;if(active[id]===false){return null}const bound=this._bounds[id];const sphere=bound.sphere;const geometry=this.geometry;if(bound.sphereInitialized===false){sphere.makeEmpty();this.getBoundingBoxAt(id,_box$1);_box$1.getCenter(sphere.center);const index=geometry.index;const position=geometry.attributes.position;const drawRange=this._drawRanges[id];let maxRadiusSq=0;for(let i=drawRange.start,l=drawRange.start+drawRange.count;i<l;i++){let iv=i;if(index){iv=index.getX(iv)}_vector$5.fromBufferAttribute(position,iv);maxRadiusSq=Math.max(maxRadiusSq,sphere.center.distanceToSquared(_vector$5))}sphere.radius=Math.sqrt(maxRadiusSq);
4233bound.sphereInitialized=true}target.copy(sphere);return target}setMatrixAt(geometryId,matrix){const active=this._active;const matricesTexture=this._matricesTexture;const matricesArray=this._matricesTexture.image.data;const geometryCount=this._geometryCount;if(geometryId>=geometryCount||active[geometryId]===false){return this}matrix.toArray(matricesArray,geometryId*16);matricesTexture.needsUpdate=true;return this}getMatrixAt(geometryId,matrix){const active=this._active;const matricesArray=this._matricesTexture.image.data;const geometryCount=this._geometryCount;if(geometryId>=geometryCount||active[geometryId]===false){return null}return matrix.fromArray(matricesArray,geometryId*16)}setVisibleAt(geometryId,value){const visibility=this._visibility;const active=this._active;const geometryCount=this._geometryCount;if(geometryId>=geometryCount||active[geometryId]===false||visibility[geometryId]===value){return this}visibility[geometryId]=value;this._visibilityChanged=true;return this}getVisibleAt(geometryId){const visibility=this._visibility;const active=this._active;const geometryCount=this._geometryCount;if(geometryId>=geometryCount||active[geometryId]===false){return false}return visibility[geometryId]}raycast(raycaster,intersects){const visibility=this._visibility;const active=this._active;const drawRanges=this._drawRanges;const geometryCount=this._geometryCount;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;i<geometryCount;i++){if(!visibility[i]||!active[i]){continue}const drawRange=drawRanges[i];_mesh.geometry.setDrawRange(drawRange.start,drawRange.count);this.getMatrixAt(i,_mesh.matrixWorld).premultiply(matrixWorld);this.getBoundingBoxAt(i,_mesh.geometry.boundingBox);this.getBoundingSphereAt(i,_mesh.geometry.boundingSphere);_mesh.raycast(raycaster,_batchIntersects);for(let j=0,l=_batchIntersects.length;j<l;j++){const intersect=_batchIntersects[j];intersect.object=this;intersect.batchId=i;intersects.push(intersect)}_batchIntersects.length=0}_mesh.material=null;_mesh.geometry.index=null;_mesh.geometry.attributes={};_mesh.geometry.setDrawRange(0,Infinity)}copy(source){super.copy(source);this.geometry=source.geometry.clone();this.perObjectFrustumCulled=source.perObjectFrustumCulled;this.sortObjects=source.sortObjects;this.boundingBox=source.boundingBox!==null?source.boundingBox.clone():null;this.boundingSphere=source.boundingSphere!==null?source.boundingSphere.clone():null;this._drawRanges=source._drawRanges.map(range=>({...range}));this._reservedRanges=source._reservedRanges.map(range=>({...range}));this._visibility=source._visibility.slice();this._active=source._active.slice();this._bounds=source._bounds.map(bound=>({boxInitialized:bound.boxInitialized,box:bound.box.clone(),sphereInitialized:bound.sphereInitialized,sphere:bound.sphere.clone()}));this._maxGeometryCount=source._maxGeometryCount;this._maxVertexCount=source._maxVertexCount;this._maxIndexCount=source._maxIndexCount;this._geometryInitialized=source._geometryInitialized;this._geometryCount=source._geometryCount;this._multiDrawCounts=source._multiDrawCounts.slice();this._multiDrawStarts=source._multiDrawStarts.slice();this._matricesTexture=source._matricesTexture.clone();this._matricesTexture.image.data=this._matricesTexture.image.slice();return this}dispose(){this.geometry.dispose();this._matricesTexture.dispose();this._matricesTexture=null;return this}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 active=this._active;const visibility=this._visibility;const multiDrawStarts=this._multiDrawStarts;const multiDrawCounts=this._multiDrawCounts;const drawRanges=this._drawRanges;const perObjectFrustumCulled=this.perObjectFrustumCulled;if(perObjectFrustumCulled){_projScreenMatrix$2.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse).multiply(this.matrixWorld);_frustum.setFromProjectionMatrix(_projScreenMatrix$2,renderer.coordinateSystem)}let count=0;
4233if(this.sortObjects){_invMatrixWorld.copy(this.matrixWorld).invert();_vector$5.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_invMatrixWorld);for(let i=0,l=visibility.length;i<l;i++){if(visibility[i]&&active[i]){this.getMatrixAt(i,_matrix$1);this.getBoundingSphereAt(i,_sphere$2).applyMatrix4(_matrix$1);let culled=false;if(perObjectFrustumCulled){culled=!_frustum.intersectsSphere(_sphere$2)}if(!culled){const z=_vector$5.distanceTo(_sphere$2.center);_renderList.push(drawRanges[i],z)}}}const list=_renderList.list;const customSort=this.customSort;if(customSort===null){list.sort(material.transparent?sortTransparent:sortOpaque)}else{customSort.call(this,list,camera)}for(let i=0,l=list.length;i<l;i++){const item=list[i];multiDrawStarts[count]=item.start*bytesPerElement;multiDrawCounts[count]=item.count;count++}_renderList.reset()}else{for(let i=0,l=visibility.length;i<l;i++){if(visibility[i]&&active[i]){let culled=false;if(perObjectFrustumCulled){this.getMatrixAt(i,_matrix$1);this.getBoundingSphereAt(i,_sphere$2).applyMatrix4(_matrix$1);culled=!_frustum.intersectsSphere(_sphere$2)}if(!culled){const range=drawRanges[i];multiDrawStarts[count]=range.start*bytesPerElement;multiDrawCounts[count]=range.count;count++}}}}this._multiDrawCount=count;this._visibilityChanged=false}onBeforeShadow(renderer,object,camera,shadowCamera,geometry,depthMaterial){this.onBeforeRender(renderer,null,shadowCamera,geometry,depthMaterial)}}class LineBasicMaterial extends Material{constructor(parameters){super();this.isLineBasicMaterial=true;this.type="LineBasicMaterial";this.color=new Color(16777215);this.map=null;this.linewidth=1;this.linecap="round";this.linejoin="round";this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.linewidth=source.linewidth;this.linecap=source.linecap;this.linejoin=source.linejoin;this.fog=source.fog;return this}}const _start$1=new Vector3;const _end$1=new Vector3;const _inverseMatrix$1=new Matrix4;const _ray$1=new Ray;const _sphere$1=new Sphere;class Line extends Object3D{constructor(geometry=new BufferGeometry,material=new LineBasicMaterial){super();this.isLine=true;this.type="Line";this.geometry=geometry;this.material=material;this.updateMorphTargets()}copy(source,recursive){super.copy(source,recursive);this.material=Array.isArray(source.material)?source.material.slice():source.material;this.geometry=source.geometry;return this}computeLineDistances(){const geometry=this.geometry;if(geometry.index===null){const positionAttribute=geometry.attributes.position;const lineDistances=[0];for(let i=1,l=positionAttribute.count;i<l;i++){_start$1.fromBufferAttribute(positionAttribute,i-1);_end$1.fromBufferAttribute(positionAttribute,i);lineDistances[i]=lineDistances[i-1];lineDistances[i]+=_start$1.distanceTo(_end$1)}geometry.setAttribute("lineDistance",new Float32BufferAttribute(lineDistances,1))}else{console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.")}return this}raycast(raycaster,intersects){const geometry=this.geometry;const matrixWorld=this.matrixWorld;const threshold=raycaster.params.Line.threshold;const drawRange=geometry.drawRange;if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_sphere$1.copy(geometry.boundingSphere);_sphere$1.applyMatrix4(matrixWorld);_sphere$1.radius+=threshold;if(raycaster.ray.intersectsSphere(_sphere$1)===false)return;_inverseMatrix$1.copy(matrixWorld).invert();_ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1);const localThreshold=threshold/((this.scale.x+this.scale.y+this.scale.z)/3);const localThresholdSq=localThreshold*localThreshold;const vStart=new Vector3;const vEnd=new Vector3;const interSegment=new Vector3;const interRay=new Vector3;const step=this.isLineSegments?2:1;const index=geometry.index;const attributes=geometry.attributes;const positionAttribute=attributes.position;if(index!==null){const start=Math.max(0,drawRange.start);const end=Math.min(index.count,drawRange.start+drawRange.count);for(let i=start,l=end-1;i<l;i+=step){const a=index.getX(i);const b=index.getX(i+1);vStart.fromBufferAttribute(positionAttribute,a);vEnd.fromBufferAttribute(positionAttribute,b);const distSq=_ray$1.distanceSqToSegment(vStart,vEnd,interRay,interSegment);if(distSq>localThresholdSq)continue;interRay.applyMatrix4(this.matrixWorld);const distance=raycaster.ray.origin.distanceTo(interRay);if(distance<raycaster.near||distance>raycaster.far)continue;intersects.push({distance:distance,point:interSegment.clone().applyMatrix4(this.matrixWorld),index:i,face:null,faceIndex:null,object:this})}}else{const start=Math.max(0,drawRange.start);const end=Math.min(positionAttribute.count,drawRange.start+drawRange.count);for(let i=start,l=end-1;i<l;i+=step){vStart.fromBufferAttribute(positionAttribute,i);vEnd.fromBufferAttribute(positionAttribute,i+1);const distSq=_ray$1.distanceSqToSegment(vStart,vEnd,interRay,interSegment);if(distSq>localThresholdSq)continue;interRay.applyMatrix4(this.matrixWorld);const distance=raycaster.ray.origin.distanceTo(interRay);if(distance<raycaster.near||distance>raycaster.far)continue;intersects.push({distance:distance,point:interSegment.clone().applyMatrix4(this.matrixWorld),index:i,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const geometry=this.geometry;const morphAttributes=geometry.morphAttributes;const keys=Object.keys(morphAttributes);if(keys.length>0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;m<ml;m++){const name=morphAttribute[m].name||String(m);this.morphTargetInfluences.push(0);this.morphTargetDictionary[name]=m}}}}}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;i<l;i+=2){_start.fromBufferAttribute(positionAttribute,i);_end.fromBufferAttribute(positionAttribute,i+1);lineDistances[i]=i===0?0:lineDistances[i-1];lineDistances[i+1]=lineDistances[i]+_start.distanceTo(_end)}geometry.setAttribute("lineDistance",new Float32BufferAttribute(lineDistances,1))}else{console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.")}return this}}class LineLoop extends Line{constructor(geometry,material){super(geometry,material);this.isLineLoop=true;this.type="LineLoop"}}class PointsMaterial extends Material{constructor(parameters){super();this.isPointsMaterial=true;this.type="PointsMaterial";this.color=new Color(16777215);this.map=null;this.alphaMap=null;this.size=1;this.sizeAttenuation=true;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.alphaMap=source.alphaMap;this.size=source.size;this.sizeAttenuation=source.sizeAttenuation;this.fog=source.fog;return this}}const _inverseMatrix=new Matrix4;const _ray=new Ray;const _sphere=new Sphere;const _position$2=new Vector3;class Points extends Object3D{constructor(geometry=new BufferGeometry,material=new PointsMaterial){super();this.isPoints=true;this.type="Points";this.geometry=geometry;this.material=material;this.updateMorphTargets()}copy(source,recursive){super.copy(source,recursive);this.material=Array.isArray(source.material)?source.material.slice():source.material;this.geometry=source.geometry;return this}raycast(raycaster,intersects){const geometry=this.geometry;const matrixWorld=this.matrixWorld;const threshold=raycaster.params.Points.threshold;const drawRange=geometry.drawRange;if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_sphere.copy(geometry.boundingSphere);_sphere.applyMatrix4(matrixWorld);_sphere.radius+=threshold;if(raycaster.ray.intersectsSphere(_sphere)===false)return;_inverseMatrix.copy(matrixWorld).invert();
4233_ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);const localThreshold=threshold/((this.scale.x+this.scale.y+this.scale.z)/3);const localThresholdSq=localThreshold*localThreshold;const index=geometry.index;const attributes=geometry.attributes;const positionAttribute=attributes.position;if(index!==null){const start=Math.max(0,drawRange.start);const end=Math.min(index.count,drawRange.start+drawRange.count);for(let i=start,il=end;i<il;i++){const a=index.getX(i);_position$2.fromBufferAttribute(positionAttribute,a);testPoint(_position$2,a,localThresholdSq,matrixWorld,raycaster,intersects,this)}}else{const start=Math.max(0,drawRange.start);const end=Math.min(positionAttribute.count,drawRange.start+drawRange.count);for(let i=start,l=end;i<l;i++){_position$2.fromBufferAttribute(positionAttribute,i);testPoint(_position$2,i,localThresholdSq,matrixWorld,raycaster,intersects,this)}}}updateMorphTargets(){const geometry=this.geometry;const morphAttributes=geometry.morphAttributes;const keys=Object.keys(morphAttributes);if(keys.length>0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;m<ml;m++){const name=morphAttribute[m].name||String(m);this.morphTargetInfluences.push(0);this.morphTargetDictionary[name]=m}}}}}function testPoint(point,index,localThresholdSq,matrixWorld,raycaster,intersects,object){const rayPointDistanceSq=_ray.distanceSqToPoint(point);if(rayPointDistanceSq<localThresholdSq){const intersectPoint=new Vector3;_ray.closestPointToPoint(point,intersectPoint);intersectPoint.applyMatrix4(matrixWorld);const distance=raycaster.ray.origin.distanceTo(intersectPoint);if(distance<raycaster.near||distance>raycaster.far)return;intersects.push({distance:distance,distanceToRay:Math.sqrt(rayPointDistanceSq),point:intersectPoint,index:index,face:null,object:object})}}class VideoTexture extends Texture{constructor(video,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy){super(video,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isVideoTexture=true;this.minFilter=minFilter!==undefined?minFilter:LinearFilter;this.magFilter=magFilter!==undefined?magFilter:LinearFilter;this.generateMipmaps=false;const scope=this;function updateVideo(){scope.needsUpdate=true;video.requestVideoFrameCallback(updateVideo)}if("requestVideoFrameCallback"in video){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}}}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}}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 Curve{constructor(){this.type="Curve";this.arcLengthDivisions=200}getPoint(){console.warn("THREE.Curve: .getPoint() not implemented.");return null}getPointAt(u,optionalTarget){const t=this.getUtoTmapping(u);return this.getPoint(t,optionalTarget)}
4233getPoints(divisions=5){const points=[];for(let d=0;d<=divisions;d++){points.push(this.getPoint(d/divisions))}return points}getSpacedPoints(divisions=5){const points=[];for(let d=0;d<=divisions;d++){points.push(this.getPointAt(d/divisions))}return points}getLength(){const lengths=this.getLengths();return lengths[lengths.length-1]}getLengths(divisions=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===divisions+1&&!this.needsUpdate){return this.cacheArcLengths}this.needsUpdate=false;const cache=[];let current,last=this.getPoint(0);let sum=0;cache.push(0);for(let p=1;p<=divisions;p++){current=this.getPoint(p/divisions);sum+=current.distanceTo(last);cache.push(sum);last=current}this.cacheArcLengths=cache;return cache}updateArcLengths(){this.needsUpdate=true;this.getLengths()}getUtoTmapping(u,distance){const arcLengths=this.getLengths();let i=0;const il=arcLengths.length;let targetArcLength;if(distance){targetArcLength=distance}else{targetArcLength=u*arcLengths[il-1]}let low=0,high=il-1,comparison;while(low<=high){i=Math.floor(low+(high-low)/2);comparison=arcLengths[i]-targetArcLength;if(comparison<0){low=i+1}else if(comparison>0){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){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.6,type:"Curve",generator:"Curve.toJSON"}};data.arcLengthDivisions=this.arcLengthDivisions;
4233data.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)<Number.EPSILON;while(deltaAngle<0)deltaAngle+=twoPi;while(deltaAngle>twoPi)deltaAngle-=twoPi;if(deltaAngle<Number.EPSILON){if(samePoints){deltaAngle=0}else{deltaAngle=twoPi}}if(this.aClockwise===true&&!samePoints){if(deltaAngle===twoPi){deltaAngle=-twoPi}else{deltaAngle=deltaAngle-twoPi}}const angle=this.aStartAngle+t*deltaAngle;let x=this.aX+this.xRadius*Math.cos(angle);let y=this.aY+this.yRadius*Math.sin(angle);if(this.aRotation!==0){const cos=Math.cos(this.aRotation);const sin=Math.sin(this.aRotation);const tx=x-this.aX;const ty=y-this.aY;x=tx*cos-ty*sin+this.aX;y=tx*sin+ty*cos+this.aY}return point.set(x,y)}copy(source){super.copy(source);this.aX=source.aX;this.aY=source.aY;this.xRadius=source.xRadius;this.yRadius=source.yRadius;this.aStartAngle=source.aStartAngle;this.aEndAngle=source.aEndAngle;this.aClockwise=source.aClockwise;this.aRotation=source.aRotation;return this}toJSON(){const data=super.toJSON();data.aX=this.aX;data.aY=this.aY;data.xRadius=this.xRadius;data.yRadius=this.yRadius;data.aStartAngle=this.aStartAngle;data.aEndAngle=this.aEndAngle;data.aClockwise=this.aClockwise;data.aRotation=this.aRotation;return data}fromJSON(json){super.fromJSON(json);this.aX=json.aX;this.aY=json.aY;this.xRadius=json.xRadius;this.yRadius=json.yRadius;this.aStartAngle=json.aStartAngle;this.aEndAngle=json.aEndAngle;this.aClockwise=json.aClockwise;this.aRotation=json.aRotation;return this}}class ArcCurve extends EllipseCurve{constructor(aX,aY,aRadius,aStartAngle,aEndAngle,aClockwise){super(aX,aY,aRadius,aRadius,aStartAngle,aEndAngle,aClockwise);this.isArcCurve=true;this.type="ArcCurve"}}function CubicPoly(){let c0=0,c1=0,c2=0,c3=0;function init(x0,x1,t0,t1){c0=x0;c1=t0;c2=-3*x0+3*x1-2*t0-t1;c3=2*x0-2*x1+t0+t1}return{initCatmullRom:function(x0,x1,x2,x3,tension){init(x1,x2,tension*(x2-x0),tension*(x3-x1))},initNonuniformCatmullRom:function(x0,x1,x2,x3,dt0,dt1,dt2){let t1=(x1-x0)/dt0-(x2-x0)/(dt0+dt1)+(x2-x1)/dt1;let t2=(x2-x1)/dt1-(x3-x1)/(dt1+dt2)+(x3-x2)/dt2;t1*=dt1;t2*=dt1;init(x1,x2,t1,t2)},calc:function(t){const t2=t*t;const t3=t2*t;return c0+c1*t+c2*t2+c3*t3}}}const tmp=new Vector3;const px=new CubicPoly;const py=new CubicPoly;const pz=new CubicPoly;class CatmullRomCurve3 extends Curve{constructor(points=[],closed=false,curveType="centripetal",tension=0.5){super();this.isCatmullRomCurve3=true;this.type="CatmullRomCurve3";this.points=points;this.closed=closed;this.curveType=curveType;this.tension=tension}getPoint(t,optionalTarget=new Vector3){const point=optionalTarget;const points=this.points;const l=points.length;const p=(l-(this.closed?0:1))*t;let intPoint=Math.floor(p);let weight=p-intPoint;if(this.closed){intPoint+=intPoint>0?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+2<l){p3=points[(intPoint+2)%l]}else{tmp.subVectors(points[l-1],points[l-2]).add(points[l-1]);p3=tmp}if(this.curveType==="centripetal"||this.curveType==="chordal"){const pow=this.curveType==="chordal"?0.5:0.25;let dt0=Math.pow(p0.distanceToSquared(p1),pow);let dt1=Math.pow(p1.distanceToSquared(p2),pow);let dt2=Math.pow(p2.distanceToSquared(p3),pow);if(dt1<1e-4)dt1=1;if(dt0<1e-4)dt0=dt1;if(dt2<1e-4)dt2=dt1;px.initNonuniformCatmullRom(p0.x,p1.x,p2.x,p3.x,dt0,dt1,dt2);py.initNonuniformCatmullRom(p0.y,p1.y,p2.y,p3.y,dt0,dt1,dt2);pz.initNonuniformCatmullRom(p0.z,p1.z,p2.z,p3.z,dt0,dt1,dt2)}else if(this.curveType==="catmullrom"){px.initCatmullRom(p0.x,p1.x,p2.x,p3.x,this.tension);py.initCatmullRom(p0.y,p1.y,p2.y,p3.y,this.tension);pz.initCatmullRom(p0.z,p1.z,p2.z,p3.z,this.tension)}point.set(px.calc(weight),py.calc(weight),pz.calc(weight));return point}copy(source){super.copy(source);this.points=[];for(let i=0,l=source.points.length;i<l;i++){const point=source.points[i];this.points.push(point.clone())}this.closed=source.closed;this.curveType=source.curveType;this.tension=source.tension;return this}toJSON(){const data=super.toJSON();data.points=[];for(let i=0,l=this.points.length;i<l;i++){const point=this.points[i];data.points.push(point.toArray())}data.closed=this.closed;data.curveType=this.curveType;data.tension=this.tension;return data}fromJSON(json){super.fromJSON(json);this.points=[];for(let i=0,l=json.points.length;i<l;i++){const point=json.points[i];this.points.push(new Vector3().fromArray(point))}this.closed=json.closed;this.curveType=json.curveType;this.tension=json.tension;return this}}function CatmullRom(t,p0,p1,p2,p3){const v0=(p2-p0)*0.5;const v1=(p3-p1)*0.5;const t2=t*t;const t3=t*t2;return(2*p1-2*p2+v0+v1)*t3+(-3*p1+3*p2-2*v0-v1)*t2+v0*t+p1}function QuadraticBezierP0(t,p){const k=1-t;return k*k*p}function QuadraticBezierP1(t,p){return 2*(1-t)*t*p}function QuadraticBezierP2(t,p){return t*t*p}function QuadraticBezier(t,p0,p1,p2){return QuadraticBezierP0(t,p0)+QuadraticBezierP1(t,p1)+QuadraticBezierP2(t,p2)}function CubicBezierP0(t,p){const k=1-t;return k*k*k*p}function CubicBezierP1(t,p){const k=1-t;return 3*k*k*t*p}function CubicBezierP2(t,p){return 3*(1-t)*t*t*p}function CubicBezierP3(t,p){return t*t*t*p}function CubicBezier(t,p0,p1,p2,p3){return CubicBezierP0(t,p0)+CubicBezierP1(t,p1)+CubicBezierP2(t,p2)+CubicBezierP3(t,p3)}class CubicBezierCurve extends Curve{constructor(v0=new Vector2,v1=new Vector2,v2=new Vector2,v3=new Vector2){super();this.isCubicBezierCurve=true;this.type="CubicBezierCurve";this.v0=v0;this.v1=v1;this.v2=v2;this.v3=v3}getPoint(t,optionalTarget=new Vector2){const point=optionalTarget;const v0=this.v0,v1=this.v1,v2=this.v2,v3=this.v3;point.set(CubicBezier(t,v0.x,v1.x,v2.x,v3.x),CubicBezier(t,v0.y,v1.y,v2.y,v3.y));return point}copy(source){super.copy(source);this.v0.copy(source.v0);this.v1.copy(source.v1);this.v2.copy(source.v2);this.v3.copy(source.v3);return this}toJSON(){const data=super.toJSON();data.v0=this.v0.toArray();data.v1=this.v1.toArray();data.v2=this.v2.toArray();data.v3=this.v3.toArray();return data}fromJSON(json){super.fromJSON(json);this.v0.fromArray(json.v0);this.v1.fromArray(json.v1);this.v2.fromArray(json.v2);this.v3.fromArray(json.v3);return this}}class CubicBezierCurve3 extends Curve{constructor(v0=new Vector3,v1=new Vector3,v2=new Vector3,v3=new Vector3){super();this.isCubicBezierCurve3=true;this.type="CubicBezierCurve3";this.v0=v0;this.v1=v1;this.v2=v2;this.v3=v3}getPoint(t,optionalTarget=new Vector3){const point=optionalTarget;const v0=this.v0,v1=this.v1,v2=this.v2,v3=this.v3;point.set(CubicBezier(t,v0.x,v1.x,v2.x,v3.x),CubicBezier(t,v0.y,v1.y,v2.y,v3.y),CubicBezier(t,v0.z,v1.z,v2.z,v3.z));return point}copy(source){super.copy(source);this.v0.copy(source.v0);this.v1.copy(source.v1);this.v2.copy(source.v2);this.v3.copy(source.v3);return this}toJSON(){const data=super.toJSON();data.v0=this.v0.toArray();data.v1=this.v1.toArray();data.v2=this.v2.toArray();data.v3=this.v3.toArray();return data}fromJSON(json){super.fromJSON(json);this.v0.fromArray(json.v0);this.v1.fromArray(json.v1);this.v2.fromArray(json.v2);this.v3.fromArray(json.v3);return this}}class LineCurve extends Curve{constructor(v1=new Vector2,v2=new Vector2){super();this.isLineCurve=true;this.type="LineCurve";this.v1=v1;this.v2=v2}getPoint(t,optionalTarget=new Vector2){const point=optionalTarget;if(t===1){point.copy(this.v2)}else{point.copy(this.v2).sub(this.v1);point.multiplyScalar(t).add(this.v1)}return point}getPointAt(u,optionalTarget){return this.getPoint(u,optionalTarget)}getTangent(t,optionalTarget=new Vector2){return optionalTarget.subVectors(this.v2,this.v1).normalize()}getTangentAt(u,optionalTarget){return this.getTangent(u,optionalTarget)}copy(source){super.copy(source);this.v1.copy(source.v1);this.v2.copy(source.v2);return this}toJSON(){const data=super.toJSON();data.v1=this.v1.toArray();data.v2=this.v2.toArray();return data}fromJSON(json){super.fromJSON(json);this.v1.fromArray(json.v1);this.v2.fromArray(json.v2);return this}}class LineCurve3 extends Curve{constructor(v1=new Vector3,v2=new Vector3){super();this.isLineCurve3=true;this.type="LineCurve3";this.v1=v1;this.v2=v2}getPoint(t,optionalTarget=new Vector3){const point=optionalTarget;if(t===1){point.copy(this.v2)}else{point.copy(this.v2).sub(this.v1);point.multiplyScalar(t).add(this.v1)}return point}getPointAt(u,optionalTarget){return this.getPoint(u,optionalTarget)}getTangent(t,optionalTarget=new Vector3){return optionalTarget.subVectors(this.v2,this.v1).normalize()}getTangentAt(u,optionalTarget){return this.getTangent(u,optionalTarget)}copy(source){super.copy(source);this.v1.copy(source.v1);this.v2.copy(source.v2);return this}toJSON(){const data=super.toJSON();data.v1=this.v1.toArray();data.v2=this.v2.toArray();return data}fromJSON(json){super.fromJSON(json);this.v1.fromArray(json.v1);this.v2.fromArray(json.v2);return this}}class QuadraticBezierCurve extends Curve{constructor(v0=new Vector2,v1=new Vector2,v2=new Vector2){super();this.isQuadraticBezierCurve=true;this.type="QuadraticBezierCurve";this.v0=v0;this.v1=v1;this.v2=v2}getPoint(t,optionalTarget=new Vector2){const point=optionalTarget;const v0=this.v0,v1=this.v1,v2=this.v2;point.set(QuadraticBezier(t,v0.x,v1.x,v2.x),QuadraticBezier(t,v0.y,v1.y,v2.y));return point}copy(source){super.copy(source);this.v0.copy(source.v0);this.v1.copy(source.v1);this.v2.copy(source.v2);return this}toJSON(){const data=super.toJSON();data.v0=this.v0.toArray();data.v1=this.v1.toArray();data.v2=this.v2.toArray();return data}fromJSON(json){super.fromJSON(json);this.v0.fromArray(json.v0);this.v1.fromArray(json.v1);this.v2.fromArray(json.v2);return this}}class QuadraticBezierCurve3 extends Curve{constructor(v0=new Vector3,v1=new Vector3,v2=new Vector3){super();this.isQuadraticBezierCurve3=true;this.type="QuadraticBezierCurve3";this.v0=v0;this.v1=v1;this.v2=v2}getPoint(t,optionalTarget=new Vector3){const point=optionalTarget;const v0=this.v0,v1=this.v1,v2=this.v2;point.set(QuadraticBezier(t,v0.x,v1.x,v2.x),QuadraticBezier(t,v0.y,v1.y,v2.y),QuadraticBezier(t,v0.z,v1.z,v2.z));return point}copy(source){super.copy(source);this.v0.copy(source.v0);this.v1.copy(source.v1);this.v2.copy(source.v2);return this}toJSON(){const data=super.toJSON();data.v0=this.v0.toArray();data.v1=this.v1.toArray();data.v2=this.v2.toArray();return data}fromJSON(json){super.fromJSON(json);this.v0.fromArray(json.v0);this.v1.fromArray(json.v1);this.v2.fromArray(json.v2);return this}}class SplineCurve extends Curve{constructor(points=[]){super();this.isSplineCurve=true;this.type="SplineCurve";this.points=points}getPoint(t,optionalTarget=new Vector2){const point=optionalTarget;const points=this.points;const p=(points.length-1)*t;const intPoint=Math.floor(p);const weight=p-intPoint;
4233const p0=points[intPoint===0?intPoint:intPoint-1];const p1=points[intPoint];const p2=points[intPoint>points.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<l;i++){const point=source.points[i];this.points.push(point.clone())}return this}toJSON(){const data=super.toJSON();data.points=[];for(let i=0,l=this.points.length;i<l;i++){const point=this.points[i];data.points.push(point.toArray())}return data}fromJSON(json){super.fromJSON(json);this.points=[];for(let i=0,l=json.points.length;i<l;i++){const point=json.points[i];this.points.push(new Vector2().fromArray(point))}return this}}var Curves=Object.freeze({__proto__:null,ArcCurve:ArcCurve,CatmullRomCurve3:CatmullRomCurve3,CubicBezierCurve:CubicBezierCurve,CubicBezierCurve3:CubicBezierCurve3,EllipseCurve:EllipseCurve,LineCurve:LineCurve,LineCurve3:LineCurve3,QuadraticBezierCurve:QuadraticBezierCurve,QuadraticBezierCurve3:QuadraticBezierCurve3,SplineCurve:SplineCurve});class CurvePath extends Curve{constructor(){super();this.type="CurvePath";this.curves=[];this.autoClose=false}add(curve){this.curves.push(curve)}closePath(){const startPoint=this.curves[0].getPoint(0);const endPoint=this.curves[this.curves.length-1].getPoint(1);if(!startPoint.equals(endPoint)){const lineType=startPoint.isVector2===true?"LineCurve":"LineCurve3";this.curves.push(new Curves[lineType](endPoint,startPoint))}return this}getPoint(t,optionalTarget){const d=t*this.getLength();const curveLengths=this.getCurveLengths();let i=0;while(i<curveLengths.length){if(curveLengths[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;i<l;i++){sums+=this.curves[i].getLength();lengths.push(sums)}this.cacheLengths=lengths;return lengths}getSpacedPoints(divisions=40){const points=[];for(let i=0;i<=divisions;i++){points.push(this.getPoint(i/divisions))}if(this.autoClose){points.push(points[0])}return points}getPoints(divisions=12){const points=[];let last;for(let i=0,curves=this.curves;i<curves.length;i++){const curve=curves[i];const resolution=curve.isEllipseCurve?divisions*2:curve.isLineCurve||curve.isLineCurve3?1:curve.isSplineCurve?divisions*curve.points.length:divisions;const pts=curve.getPoints(resolution);for(let j=0;j<pts.length;j++){const point=pts[j];if(last&&last.equals(point))continue;points.push(point);last=point}}if(this.autoClose&&points.length>1&&!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;i<l;i++){const curve=source.curves[i];this.curves.push(curve.clone())}this.autoClose=source.autoClose;return this}toJSON(){const data=super.toJSON();data.autoClose=this.autoClose;data.curves=[];for(let i=0,l=this.curves.length;i<l;i++){const curve=this.curves[i];data.curves.push(curve.toJSON())}return data}fromJSON(json){super.fromJSON(json);this.autoClose=json.autoClose;this.curves=[];for(let i=0,l=json.curves.length;i<l;i++){const curve=json.curves[i];this.curves.push(new Curves[curve.type]().fromJSON(curve))}return this}}class Path extends CurvePath{constructor(points){super();this.type="Path";this.currentPoint=new Vector2;if(points){this.setFromPoints(points)}}setFromPoints(points){this.moveTo(points[0].x,points[0].y);for(let i=1,l=points.length;i<l;i++){this.lineTo(points[i].x,points[i].y)}return this}moveTo(x,y){this.currentPoint.set(x,y);return this}lineTo(x,y){const curve=new LineCurve(this.currentPoint.clone(),new Vector2(x,y));this.curves.push(curve);this.currentPoint.set(x,y);return this}quadraticCurveTo(aCPx,aCPy,aX,aY){const curve=new QuadraticBezierCurve(this.currentPoint.clone(),new Vector2(aCPx,aCPy),new Vector2(aX,aY));this.curves.push(curve);this.currentPoint.set(aX,aY);return this}bezierCurveTo(aCP1x,aCP1y,aCP2x,aCP2y,aX,aY){const curve=new CubicBezierCurve(this.currentPoint.clone(),new Vector2(aCP1x,aCP1y),new Vector2(aCP2x,aCP2y),new Vector2(aX,aY));this.curves.push(curve);this.currentPoint.set(aX,aY);return this}splineThru(pts){const npts=[this.currentPoint.clone()].concat(pts);const curve=new SplineCurve(npts);this.curves.push(curve);this.currentPoint.copy(pts[pts.length-1]);return this}arc(aX,aY,aRadius,aStartAngle,aEndAngle,aClockwise){const x0=this.currentPoint.x;const y0=this.currentPoint.y;this.absarc(aX+x0,aY+y0,aRadius,aStartAngle,aEndAngle,aClockwise);return this}absarc(aX,aY,aRadius,aStartAngle,aEndAngle,aClockwise){this.absellipse(aX,aY,aRadius,aRadius,aStartAngle,aEndAngle,aClockwise);return this}ellipse(aX,aY,xRadius,yRadius,aStartAngle,aEndAngle,aClockwise,aRotation){const x0=this.currentPoint.x;const y0=this.currentPoint.y;this.absellipse(aX+x0,aY+y0,xRadius,yRadius,aStartAngle,aEndAngle,aClockwise,aRotation);return this}absellipse(aX,aY,xRadius,yRadius,aStartAngle,aEndAngle,aClockwise,aRotation){const curve=new EllipseCurve(aX,aY,xRadius,yRadius,aStartAngle,aEndAngle,aClockwise,aRotation);if(this.curves.length>0){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 LatheGeometry extends BufferGeometry{constructor(points=[new Vector2(0,-0.5),new Vector2(0.5,0),new Vector2(0,0.5)],segments=12,phiStart=0,phiLength=Math.PI*2){super();this.type="LatheGeometry";
4233this.parameters={points:points,segments:segments,phiStart:phiStart,phiLength:phiLength};segments=Math.floor(segments);phiLength=clamp(phiLength,0,Math.PI*2);const indices=[];const vertices=[];const uvs=[];const initNormals=[];const normals=[];const inverseSegments=1/segments;const vertex=new Vector3;const uv=new Vector2;const normal=new Vector3;const curNormal=new Vector3;const prevNormal=new Vector3;let dx=0;let dy=0;for(let j=0;j<=points.length-1;j++){switch(j){case 0:dx=points[j+1].x-points[j].x;dy=points[j+1].y-points[j].y;normal.x=dy*1;normal.y=-dx;normal.z=dy*0;prevNormal.copy(normal);normal.normalize();initNormals.push(normal.x,normal.y,normal.z);break;case points.length-1:initNormals.push(prevNormal.x,prevNormal.y,prevNormal.z);break;default:dx=points[j+1].x-points[j].x;dy=points[j+1].y-points[j].y;normal.x=dy*1;normal.y=-dx;normal.z=dy*0;curNormal.copy(normal);normal.x+=prevNormal.x;normal.y+=prevNormal.y;normal.z+=prevNormal.z;normal.normalize();initNormals.push(normal.x,normal.y,normal.z);prevNormal.copy(curNormal);}}for(let i=0;i<=segments;i++){const phi=phiStart+i*inverseSegments*phiLength;const sin=Math.sin(phi);const cos=Math.cos(phi);for(let j=0;j<=points.length-1;j++){vertex.x=points[j].x*sin;vertex.y=points[j].y;vertex.z=points[j].x*cos;vertices.push(vertex.x,vertex.y,vertex.z);uv.x=i/segments;uv.y=j/(points.length-1);uvs.push(uv.x,uv.y);const x=initNormals[3*j+0]*sin;const y=initNormals[3*j+1];const z=initNormals[3*j+0]*cos;normals.push(x,y,z)}}for(let i=0;i<segments;i++){for(let j=0;j<points.length-1;j++){const base=j+i*points.length;const a=base;const b=base+points.length;const c=base+points.length+1;const d=base+1;indices.push(a,b,d);indices.push(c,d,b)}}this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2));this.setAttribute("normal",new Float32BufferAttribute(normals,3))}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new LatheGeometry(data.points,data.segments,data.phiStart,data.phiLength)}}class CapsuleGeometry extends LatheGeometry{constructor(radius=1,length=1,capSegments=4,radialSegments=8){const path=new Path;path.absarc(0,-length/2,radius,Math.PI*1.5,0);path.absarc(0,length/2,radius,0,Math.PI*0.5);super(path.getPoints(capSegments),radialSegments);this.type="CapsuleGeometry";this.parameters={radius:radius,length:length,capSegments:capSegments,radialSegments:radialSegments}}static fromJSON(data){return new CapsuleGeometry(data.radius,data.length,data.capSegments,data.radialSegments)}}class CircleGeometry extends BufferGeometry{constructor(radius=1,segments=32,thetaStart=0,thetaLength=Math.PI*2){super();this.type="CircleGeometry";this.parameters={radius:radius,segments:segments,thetaStart:thetaStart,thetaLength:thetaLength};segments=Math.max(3,segments);const indices=[];const vertices=[];const normals=[];const uvs=[];const vertex=new Vector3;const uv=new Vector2;vertices.push(0,0,0);normals.push(0,0,1);uvs.push(0.5,0.5);for(let s=0,i=3;s<=segments;s++,i+=3){const segment=thetaStart+s/segments*thetaLength;vertex.x=radius*Math.cos(segment);vertex.y=radius*Math.sin(segment);vertices.push(vertex.x,vertex.y,vertex.z);normals.push(0,0,1);uv.x=(vertices[i]/radius+1)/2;uv.y=(vertices[i+1]/radius+1)/2;uvs.push(uv.x,uv.y)}for(let i=1;i<=segments;i++){indices.push(i,i+1,0)}this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2))}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new CircleGeometry(data.radius,data.segments,data.thetaStart,data.thetaLength)}}class CylinderGeometry extends BufferGeometry{constructor(radiusTop=1,radiusBottom=1,height=1,radialSegments=32,heightSegments=1,openEnded=false,thetaStart=0,thetaLength=Math.PI*2){super();this.type="CylinderGeometry";this.parameters={radiusTop:radiusTop,radiusBottom:radiusBottom,height:height,radialSegments:radialSegments,heightSegments:heightSegments,openEnded:openEnded,thetaStart:thetaStart,thetaLength:thetaLength};const scope=this;radialSegments=Math.floor(radialSegments);heightSegments=Math.floor(heightSegments);const indices=[];const vertices=[];const normals=[];const uvs=[];let index=0;const indexArray=[];const halfHeight=height/2;let groupStart=0;generateTorso();if(openEnded===false){if(radiusTop>0)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;x<radialSegments;x++){for(let y=0;y<heightSegments;y++){const a=indexArray[y][x];const b=indexArray[y+1][x];const c=indexArray[y+1][x+1];const d=indexArray[y][x+1];indices.push(a,b,d);indices.push(b,c,d);groupCount+=6}}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);
4233normals.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;x<radialSegments;x++){const c=centerIndexStart+x;const i=centerIndexEnd+x;if(top===true){indices.push(i,i+1,c)}else{indices.push(i+1,i,c)}groupCount+=3}scope.addGroup(groupStart,groupCount,top===true?1:2);groupStart+=groupCount}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new CylinderGeometry(data.radiusTop,data.radiusBottom,data.height,data.radialSegments,data.heightSegments,data.openEnded,data.thetaStart,data.thetaLength)}}class ConeGeometry extends CylinderGeometry{constructor(radius=1,height=1,radialSegments=32,heightSegments=1,openEnded=false,thetaStart=0,thetaLength=Math.PI*2){super(0,radius,height,radialSegments,heightSegments,openEnded,thetaStart,thetaLength);
4233this.type="ConeGeometry";this.parameters={radius:radius,height:height,radialSegments:radialSegments,heightSegments:heightSegments,openEnded:openEnded,thetaStart:thetaStart,thetaLength:thetaLength}}static fromJSON(data){return new ConeGeometry(data.radius,data.height,data.radialSegments,data.heightSegments,data.openEnded,data.thetaStart,data.thetaLength)}}class PolyhedronGeometry extends BufferGeometry{constructor(vertices=[],indices=[],radius=1,detail=0){super();this.type="PolyhedronGeometry";this.parameters={vertices:vertices,indices:indices,radius:radius,detail:detail};const vertexBuffer=[];const uvBuffer=[];subdivide(detail);applyRadius(radius);generateUVs();this.setAttribute("position",new Float32BufferAttribute(vertexBuffer,3));this.setAttribute("normal",new Float32BufferAttribute(vertexBuffer.slice(),3));this.setAttribute("uv",new Float32BufferAttribute(uvBuffer,2));if(detail===0){this.computeVertexNormals()}else{this.normalizeNormals()}function subdivide(detail){const a=new Vector3;const b=new Vector3;const c=new Vector3;for(let i=0;i<indices.length;i+=3){getVertexByIndex(indices[i+0],a);getVertexByIndex(indices[i+1],b);getVertexByIndex(indices[i+2],c);subdivideFace(a,b,c,detail)}}function subdivideFace(a,b,c,detail){const cols=detail+1;const v=[];for(let i=0;i<=cols;i++){v[i]=[];const aj=a.clone().lerp(c,i/cols);const bj=b.clone().lerp(c,i/cols);const rows=cols-i;for(let j=0;j<=rows;j++){if(j===0&&i===cols){v[i][j]=aj}else{v[i][j]=aj.clone().lerp(bj,j/rows)}}}for(let i=0;i<cols;i++){for(let j=0;j<2*(cols-i)-1;j++){const k=Math.floor(j/2);if(j%2===0){pushVertex(v[i][k+1]);pushVertex(v[i+1][k]);pushVertex(v[i][k])}else{pushVertex(v[i][k+1]);pushVertex(v[i+1][k+1]);pushVertex(v[i+1][k])}}}}function applyRadius(radius){const vertex=new Vector3;for(let i=0;i<vertexBuffer.length;i+=3){vertex.x=vertexBuffer[i+0];vertex.y=vertexBuffer[i+1];vertex.z=vertexBuffer[i+2];vertex.normalize().multiplyScalar(radius);vertexBuffer[i+0]=vertex.x;vertexBuffer[i+1]=vertex.y;vertexBuffer[i+2]=vertex.z}}function generateUVs(){const vertex=new Vector3;for(let i=0;i<vertexBuffer.length;i+=3){vertex.x=vertexBuffer[i+0];vertex.y=vertexBuffer[i+1];vertex.z=vertexBuffer[i+2];const u=azimuth(vertex)/2/Math.PI+0.5;const v=inclination(vertex)/Math.PI+0.5;uvBuffer.push(u,1-v)}correctUVs();correctSeam()}function correctSeam(){for(let i=0;i<uvBuffer.length;i+=6){const x0=uvBuffer[i+0];const x1=uvBuffer[i+2];const x2=uvBuffer[i+4];const max=Math.max(x0,x1,x2);const min=Math.min(x0,x1,x2);if(max>0.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;i<vertexBuffer.length;i+=9,j+=6){a.set(vertexBuffer[i+0],vertexBuffer[i+1],vertexBuffer[i+2]);b.set(vertexBuffer[i+3],vertexBuffer[i+4],vertexBuffer[i+5]);c.set(vertexBuffer[i+6],vertexBuffer[i+7],vertexBuffer[i+8]);uvA.set(uvBuffer[j+0],uvBuffer[j+1]);uvB.set(uvBuffer[j+2],uvBuffer[j+3]);uvC.set(uvBuffer[j+4],uvBuffer[j+5]);centroid.copy(a).add(b).add(c).divideScalar(3);const azi=azimuth(centroid);correctUV(uvA,j+0,a,azi);correctUV(uvB,j+2,b,azi);correctUV(uvC,j+4,c,azi)}}function correctUV(uv,stride,vector,azimuth){if(azimuth<0&&uv.x===1){uvBuffer[stride]=uv.x-1}if(vector.x===0&&vector.z===0){uvBuffer[stride]=azimuth/2/Math.PI+0.5}}function azimuth(vector){return Math.atan2(vector.z,-vector.x)}function inclination(vector){return Math.atan2(-vector.y,Math.sqrt(vector.x*vector.x+vector.z*vector.z))}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new PolyhedronGeometry(data.vertices,data.indices,data.radius,data.details)}}class DodecahedronGeometry extends PolyhedronGeometry{constructor(radius=1,detail=0){const t=(1+Math.sqrt(5))/2;const r=1/t;const vertices=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-t,0,-r,t,0,r,-t,0,r,t,-r,-t,0,-r,t,0,r,-t,0,r,t,0,-t,0,-r,t,0,-r,-t,0,r,t,0,r];const indices=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,
423319,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9];super(vertices,indices,radius,detail);this.type="DodecahedronGeometry";this.parameters={radius:radius,detail:detail}}static fromJSON(data){return new DodecahedronGeometry(data.radius,data.detail)}}const _v0=new Vector3;const _v1$1=new Vector3;const _normal=new Vector3;const _triangle=new Triangle;class EdgesGeometry extends BufferGeometry{constructor(geometry=null,thresholdAngle=1){super();this.type="EdgesGeometry";this.parameters={geometry:geometry,thresholdAngle:thresholdAngle};if(geometry!==null){const precisionPoints=4;const precision=Math.pow(10,precisionPoints);const thresholdDot=Math.cos(DEG2RAD*thresholdAngle);const indexAttr=geometry.getIndex();const positionAttr=geometry.getAttribute("position");const indexCount=indexAttr?indexAttr.count:positionAttr.count;const indexArr=[0,0,0];const vertKeys=["a","b","c"];const hashes=new Array(3);const edgeData={};const vertices=[];for(let i=0;i<indexCount;i+=3){if(indexAttr){indexArr[0]=indexAttr.getX(i);indexArr[1]=indexAttr.getX(i+1);indexArr[2]=indexAttr.getX(i+2)}else{indexArr[0]=i;indexArr[1]=i+1;indexArr[2]=i+2}const{a,b,c}=_triangle;a.fromBufferAttribute(positionAttr,indexArr[0]);b.fromBufferAttribute(positionAttr,indexArr[1]);c.fromBufferAttribute(positionAttr,indexArr[2]);_triangle.getNormal(_normal);hashes[0]=`${Math.round(a.x*precision)},${Math.round(a.y*precision)},${Math.round(a.z*precision)}`;
4233hashes[1]=`${Math.round(b.x*precision)},${Math.round(b.y*precision)},${Math.round(b.z*precision)}`;hashes[2]=`${Math.round(c.x*precision)},${Math.round(c.y*precision)},${Math.round(c.z*precision)}`;if(hashes[0]===hashes[1]||hashes[1]===hashes[2]||hashes[2]===hashes[0]){continue}for(let j=0;j<3;j++){const jNext=(j+1)%3;const vecHash0=hashes[j];const vecHash1=hashes[jNext];const v0=_triangle[vertKeys[j]];const v1=_triangle[vertKeys[jNext]];const hash=`${vecHash0}_${vecHash1}`;const reverseHash=`${vecHash1}_${vecHash0}`;if(reverseHash in edgeData&&edgeData[reverseHash]){if(_normal.dot(edgeData[reverseHash].normal)<=thresholdDot){vertices.push(v0.x,v0.y,v0.z);vertices.push(v1.x,v1.y,v1.z)}edgeData[reverseHash]=null}else if(!(hash in edgeData)){edgeData[hash]={index0:indexArr[j],index1:indexArr[jNext],normal:_normal.clone()}}}}for(const key in edgeData){if(edgeData[key]){const{index0,index1}=edgeData[key];_v0.fromBufferAttribute(positionAttr,index0);_v1$1.fromBufferAttribute(positionAttr,index1);vertices.push(_v0.x,_v0.y,_v0.z);vertices.push(_v1$1.x,_v1$1.y,_v1$1.z)}}this.setAttribute("position",new Float32BufferAttribute(vertices,3))}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);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;i<l;i++){holesPts[i]=this.holes[i].getPoints(divisions)}return holesPts}extractPoints(divisions){return{shape:this.getPoints(divisions),holes:this.getPointsHoles(divisions)}}copy(source){super.copy(source);this.holes=[];for(let i=0,l=source.holes.length;i<l;i++){const hole=source.holes[i];this.holes.push(hole.clone())}return this}toJSON(){const data=super.toJSON();data.uuid=this.uuid;data.holes=[];for(let i=0,l=this.holes.length;i<l;i++){const hole=this.holes[i];data.holes.push(hole.toJSON())}return data}fromJSON(json){super.fromJSON(json);this.uuid=json.uuid;this.holes=[];for(let i=0,l=json.holes.length;i<l;i++){const hole=json.holes[i];this.holes.push(new Path().fromJSON(hole))}return this}}const Earcut={triangulate:function(data,holeIndices,dim=2){const hasHoles=holeIndices&&holeIndices.length;const outerLen=hasHoles?holeIndices[0]*dim:data.length;let outerNode=linkedList(data,0,outerLen,dim,true);const triangles=[];if(!outerNode||outerNode.next===outerNode.prev)return triangles;let minX,minY,maxX,maxY,x,y,invSize;if(hasHoles)outerNode=eliminateHoles(data,holeIndices,outerNode,dim);if(data.length>80*dim){minX=maxX=data[0];minY=maxY=data[1];for(let i=dim;i<outerLen;i+=dim){x=data[i];y=data[i+1];if(x<minX)minX=x;if(y<minY)minY=y;if(x>maxX)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 i,last;if(clockwise===signedArea(data,start,end,dim)>0){for(i=start;i<end;i+=dim)last=insertNode(i,data[i],data[i+1],last)}else{for(i=end-dim;i>=start;i-=dim)last=insertNode(i,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,prev,next;while(ear.prev!==ear.next){prev=ear.prev;next=ear.next;if(invSize?isEarHashed(ear,minX,minY,invSize):isEar(ear)){triangles.push(prev.i/dim|0);triangles.push(ear.i/dim|0);triangles.push(next.i/dim|0);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,dim);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=ax<bx?ax<cx?ax:cx:bx<cx?bx:cx,y0=ay<by?ay<cy?ay:cy:by<cy?by:cy,x1=ax>bx?ax>cx?ax:cx:bx>cx?bx:cx,y1=ay>by?ay>cy?ay:cy:by>cy?by:cy;let p=c.next;while(p!==a){if(p.x>=x0&&p.x<=x1&&p.y>=y0&&p.y<=y1&&pointInTriangle(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=ax<bx?ax<cx?ax:cx:bx<cx?bx:cx,y0=ay<by?ay<cy?ay:cy:by<cy?by:cy,x1=ax>bx?ax>cx?ax:cx:bx>cx?bx:cx,y1=ay>by?ay>cy?ay:cy:by>cy?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&&pointInTriangle(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&&pointInTriangle(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&&pointInTriangle(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&&pointInTriangle(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,dim){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/dim|0);triangles.push(p.i/dim|0);triangles.push(b.i/dim|0);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=[];let i,len,start,end,list;for(i=0,len=holeIndices.length;i<len;i++){start=holeIndices[i]*dim;end=i<len-1?holeIndices[i+1]*dim:data.length;list=linkedList(data,start,end,dim,false);
4233if(list===list.next)list.steiner=true;queue.push(getLeftmost(list))}queue.sort(compareX);for(i=0;i<queue.length;i++){outerNode=eliminateHole(queue[i],outerNode)}return outerNode}function compareX(a,b){return a.x-b.x}function eliminateHole(hole,outerNode){const bridge=findHoleBridge(hole,outerNode);if(!bridge){return outerNode}const bridgeReverse=splitPolygon(bridge,hole);filterPoints(bridgeReverse,bridgeReverse.next);return filterPoints(bridge,bridge.next)}function findHoleBridge(hole,outerNode){let p=outerNode,qx=-Infinity,m;const hx=hole.x,hy=hole.y;do{if(hy<=p.y&&hy>=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.next.x?p:p.next;if(x===hx)return m}}p=p.next}while(p!==outerNode);if(!m)return null;const stop=m,mx=m.x,my=m.y;let tanMin=Infinity,tan;p=m;do{if(hx>=p.x&&p.x>=mx&&hx!==p.x&&pointInTriangle(hy<my?hx:qx,hy,mx,my,hy<my?qx:hx,hy,p.x,p.y)){tan=Math.abs(hy-p.y)/(hx-p.x);if(locallyInside(p,hole)&&(tan<tanMin||tan===tanMin&&(p.x>m.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 i,p,q,e,tail,numMerges,pSize,qSize,inSize=1;do{p=list;list=null;tail=null;numMerges=0;while(p){numMerges++;q=p;pSize=0;for(i=0;i<inSize;i++){pSize++;q=q.nextZ;if(!q)break}qSize=inSize;while(pSize>0||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<leftmost.x||p.x===leftmost.x&&p.y<leftmost.y)leftmost=p;p=p.next}while(p!==start);return leftmost}function pointInTriangle(ax,ay,bx,by,cx,cy,px,py){return(cx-px)*(ay-py)>=(ax-px)*(cy-py)&&(ax-px)*(by-py)>=(bx-px)*(ay-py)&&(bx-px)*(cy-py)>=(cx-px)*(by-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,inside=false;const px=(a.x+b.x)/2,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=new Node(a.i,a.x,a.y),b2=new Node(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}
4233function insertNode(i,x,y,last){const p=new Node(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 Node(i,x,y){this.i=i;this.x=x;this.y=y;this.prev=null;this.next=null;this.z=0;this.prevZ=null;this.nextZ=null;this.steiner=false}function signedArea(data,start,end,dim){let sum=0;for(let i=start,j=end-dim;i<end;i+=dim){sum+=(data[j]-data[i])*(data[i+1]+data[j+1]);j=i}return sum}class ShapeUtils{static area(contour){const n=contour.length;let a=0;for(let p=n-1,q=0;q<n;p=q++){a+=contour[p].x*contour[q].y-contour[q].x*contour[p].y}return a*0.5}static isClockWise(pts){return ShapeUtils.area(pts)<0}static triangulateShape(contour,holes){const vertices=[];const holeIndices=[];const faces=[];removeDupEndPts(contour);addContour(vertices,contour);let holeIndex=contour.length;holes.forEach(removeDupEndPts);for(let i=0;i<holes.length;i++){holeIndices.push(holeIndex);holeIndex+=holes[i].length;addContour(vertices,holes[i])}const triangles=Earcut.triangulate(vertices,holeIndices);for(let i=0;i<triangles.length;i+=3){faces.push(triangles.slice(i,i+3))}return faces}}function removeDupEndPts(points){const l=points.length;if(l>2&&points[l-1].equals(points[0])){points.pop()}}function addContour(vertices,contour){for(let i=0;i<contour.length;i++){vertices.push(contour[i].x);vertices.push(contour[i].y)}}class ExtrudeGeometry extends BufferGeometry{constructor(shapes=new Shape([new Vector2(0.5,0.5),new Vector2(-0.5,0.5),new Vector2(-0.5,-0.5),new Vector2(0.5,-0.5)]),options={}){super();this.type="ExtrudeGeometry";this.parameters={shapes:shapes,options:options};shapes=Array.isArray(shapes)?shapes:[shapes];const scope=this;const verticesArray=[];const uvArray=[];for(let i=0,l=shapes.length;i<l;i++){const shape=shapes[i];addShape(shape)}this.setAttribute("position",new Float32BufferAttribute(verticesArray,3));this.setAttribute("uv",new Float32BufferAttribute(uvArray,2));this.computeVertexNormals();function addShape(shape){const placeholder=[];const curveSegments=options.curveSegments!==undefined?options.curveSegments:12;const steps=options.steps!==undefined?options.steps:1;const depth=options.depth!==undefined?options.depth:1;let bevelEnabled=options.bevelEnabled!==undefined?options.bevelEnabled:true;let bevelThickness=options.bevelThickness!==undefined?options.bevelThickness:0.2;let bevelSize=options.bevelSize!==undefined?options.bevelSize:bevelThickness-0.1;let bevelOffset=options.bevelOffset!==undefined?options.bevelOffset:0;let bevelSegments=options.bevelSegments!==undefined?options.bevelSegments:3;const extrudePath=options.extrudePath;const uvgen=options.UVGenerator!==undefined?options.UVGenerator:WorldUVGenerator;let extrudePts,extrudeByPath=false;let splineTube,binormal,normal,position2;
4233if(extrudePath){extrudePts=extrudePath.getSpacedPoints(steps);extrudeByPath=true;bevelEnabled=false;splineTube=extrudePath.computeFrenetFrames(steps,false);binormal=new Vector3;normal=new Vector3;position2=new Vector3}if(!bevelEnabled){bevelSegments=0;bevelThickness=0;bevelSize=0;bevelOffset=0}const shapePoints=shape.extractPoints(curveSegments);let vertices=shapePoints.shape;const holes=shapePoints.holes;const reverse=!ShapeUtils.isClockWise(vertices);if(reverse){vertices=vertices.reverse();for(let h=0,hl=holes.length;h<hl;h++){const ahole=holes[h];if(ShapeUtils.isClockWise(ahole)){holes[h]=ahole.reverse()}}}const faces=ShapeUtils.triangulateShape(vertices,holes);const contour=vertices;for(let h=0,hl=holes.length;h<hl;h++){const ahole=holes[h];vertices=vertices.concat(ahole)}function scalePt2(pt,vec,size){if(!vec)console.error("THREE.ExtrudeGeometry: vec does not exist");return pt.clone().addScaledVector(vec,size)}const vlen=vertices.length,flen=faces.length;function getBevelVec(inPt,inPrev,inNext){let v_trans_x,v_trans_y,shrink_by;const v_prev_x=inPt.x-inPrev.x,v_prev_y=inPt.y-inPrev.y;const v_next_x=inNext.x-inPt.x,v_next_y=inNext.y-inPt.y;const v_prev_lensq=v_prev_x*v_prev_x+v_prev_y*v_prev_y;const collinear0=v_prev_x*v_next_y-v_prev_y*v_next_x;if(Math.abs(collinear0)>Number.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<il;i++,j++,k++){if(j===il)j=0;if(k===il)k=0;contourMovements[i]=getBevelVec(contour[i],contour[j],contour[k])}const holesMovements=[];let oneHoleMovements,verticesMovements=contourMovements.concat();for(let h=0,hl=holes.length;h<hl;h++){const ahole=holes[h];oneHoleMovements=[];for(let i=0,il=ahole.length,j=il-1,k=i+1;i<il;i++,j++,k++){if(j===il)j=0;if(k===il)k=0;oneHoleMovements[i]=getBevelVec(ahole[i],ahole[j],ahole[k])}holesMovements.push(oneHoleMovements);verticesMovements=verticesMovements.concat(oneHoleMovements)}for(let b=0;b<bevelSegments;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<il;i++){const vert=scalePt2(contour[i],contourMovements[i],bs);v(vert.x,vert.y,-z)}for(let h=0,hl=holes.length;h<hl;h++){const ahole=holes[h];oneHoleMovements=holesMovements[h];for(let i=0,il=ahole.length;i<il;i++){const vert=scalePt2(ahole[i],oneHoleMovements[i],bs);v(vert.x,vert.y,-z)}}}const bs=bevelSize+bevelOffset;for(let i=0;i<vlen;i++){const vert=bevelEnabled?scalePt2(vertices[i],verticesMovements[i],bs):vertices[i];if(!extrudeByPath){v(vert.x,vert.y,0)}else{normal.copy(splineTube.normals[0]).multiplyScalar(vert.x);binormal.copy(splineTube.binormals[0]).multiplyScalar(vert.y);position2.copy(extrudePts[0]).add(normal).add(binormal);v(position2.x,position2.y,position2.z)}}for(let s=1;s<=steps;s++){for(let i=0;i<vlen;i++){const vert=bevelEnabled?scalePt2(vertices[i],verticesMovements[i],bs):vertices[i];if(!extrudeByPath){v(vert.x,vert.y,depth/steps*s)}else{normal.copy(splineTube.normals[s]).multiplyScalar(vert.x);binormal.copy(splineTube.binormals[s]).multiplyScalar(vert.y);position2.copy(extrudePts[s]).add(normal).add(binormal);v(position2.x,position2.y,position2.z)}}}for(let b=bevelSegments-1;b>=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<il;i++){const vert=scalePt2(contour[i],contourMovements[i],bs);v(vert.x,vert.y,depth+z)}for(let h=0,hl=holes.length;h<hl;h++){const ahole=holes[h];oneHoleMovements=holesMovements[h];for(let i=0,il=ahole.length;i<il;i++){const vert=scalePt2(ahole[i],oneHoleMovements[i],bs);if(!extrudeByPath){v(vert.x,vert.y,depth+z)}else{v(vert.x,vert.y+extrudePts[steps-1].y,extrudePts[steps-1].x+z)}}}}buildLidFaces();buildSideFaces();function buildLidFaces(){const start=verticesArray.length/3;if(bevelEnabled){let layer=0;let offset=vlen*layer;for(let i=0;i<flen;i++){const face=faces[i];f3(face[2]+offset,face[1]+offset,face[0]+offset)}layer=steps+bevelSegments*2;offset=vlen*layer;for(let i=0;i<flen;i++){const face=faces[i];f3(face[0]+offset,face[1]+offset,face[2]+offset)}}else{for(let i=0;i<flen;i++){const face=faces[i];f3(face[2],face[1],face[0])}for(let i=0;i<flen;i++){const face=faces[i];f3(face[0]+vlen*steps,face[1]+vlen*steps,face[2]+vlen*steps)}}scope.addGroup(start,verticesArray.length/3-start,0)}function buildSideFaces(){const start=verticesArray.length/3;let layeroffset=0;sidewalls(contour,layeroffset);layeroffset+=contour.length;for(let h=0,hl=holes.length;h<hl;h++){const ahole=holes[h];sidewalls(ahole,layeroffset);layeroffset+=ahole.length}scope.addGroup(start,verticesArray.length/3-start,1)}function sidewalls(contour,layeroffset){let i=contour.length;while(--i>=0){const j=i;let k=i-1;if(k<0)k=contour.length-1;for(let s=0,sl=steps+bevelSegments*2;s<sl;s++){const slen1=vlen*s;const slen2=vlen*(s+1);const a=layeroffset+j+slen1,b=layeroffset+k+slen1,c=layeroffset+k+slen2,d=layeroffset+j+slen2;f4(a,b,c,d)}}}function v(x,y,z){placeholder.push(x);placeholder.push(y);placeholder.push(z)}function f3(a,b,c){addVertex(a);addVertex(b);addVertex(c);const nextIndex=verticesArray.length/3;const uvs=uvgen.generateTopUV(scope,verticesArray,nextIndex-3,nextIndex-2,nextIndex-1);addUV(uvs[0]);addUV(uvs[1]);addUV(uvs[2])}function f4(a,b,c,d){addVertex(a);addVertex(b);addVertex(d);addVertex(b);addVertex(c);addVertex(d);const nextIndex=verticesArray.length/3;const uvs=uvgen.generateSideWallUV(scope,verticesArray,nextIndex-6,nextIndex-3,nextIndex-2,nextIndex-1);addUV(uvs[0]);addUV(uvs[1]);addUV(uvs[3]);addUV(uvs[1]);addUV(uvs[2]);addUV(uvs[3])}function addVertex(index){verticesArray.push(placeholder[index*3+0]);verticesArray.push(placeholder[index*3+1]);verticesArray.push(placeholder[index*3+2])}function addUV(vector2){uvArray.push(vector2.x);uvArray.push(vector2.y)}}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}toJSON(){const data=super.toJSON();const shapes=this.parameters.shapes;const options=this.parameters.options;return toJSON$1(shapes,options,data)}static fromJSON(data,shapes){const geometryShapes=[];for(let j=0,jl=data.shapes.length;j<jl;j++){const shape=shapes[data.shapes[j]];geometryShapes.push(shape)}const extrudePath=data.options.extrudePath;if(extrudePath!==undefined){data.options.extrudePath=new Curves[extrudePath.type]().fromJSON(extrudePath)}return new ExtrudeGeometry(geometryShapes,data.options)}}const WorldUVGenerator={generateTopUV:function(geometry,vertices,indexA,indexB,indexC){const a_x=vertices[indexA*3];
4233const a_y=vertices[indexA*3+1];const b_x=vertices[indexB*3];const b_y=vertices[indexB*3+1];const c_x=vertices[indexC*3];const c_y=vertices[indexC*3+1];return[new Vector2(a_x,a_y),new Vector2(b_x,b_y),new Vector2(c_x,c_y)]},generateSideWallUV:function(geometry,vertices,indexA,indexB,indexC,indexD){const a_x=vertices[indexA*3];const a_y=vertices[indexA*3+1];const a_z=vertices[indexA*3+2];const b_x=vertices[indexB*3];const b_y=vertices[indexB*3+1];const b_z=vertices[indexB*3+2];const c_x=vertices[indexC*3];const c_y=vertices[indexC*3+1];const c_z=vertices[indexC*3+2];const d_x=vertices[indexD*3];const d_y=vertices[indexD*3+1];const d_z=vertices[indexD*3+2];if(Math.abs(a_y-b_y)<Math.abs(a_x-b_x)){return[new Vector2(a_x,1-a_z),new Vector2(b_x,1-b_z),new Vector2(c_x,1-c_z),new Vector2(d_x,1-d_z)]}else{return[new Vector2(a_y,1-a_z),new Vector2(b_y,1-b_z),new Vector2(c_y,1-c_z),new Vector2(d_y,1-d_z)]}}};function toJSON$1(shapes,options,data){data.shapes=[];if(Array.isArray(shapes)){for(let i=0,l=shapes.length;i<l;i++){const shape=shapes[i];data.shapes.push(shape.uuid)}}else{data.shapes.push(shapes.uuid)}data.options=Object.assign({},options);if(options.extrudePath!==undefined)data.options.extrudePath=options.extrudePath.toJSON();return data}class IcosahedronGeometry extends PolyhedronGeometry{constructor(radius=1,detail=0){const t=(1+Math.sqrt(5))/2;const vertices=[-1,t,0,1,t,0,-1,-t,0,1,-t,0,0,-1,t,0,1,t,0,-1,-t,0,1,-t,t,0,-1,t,0,1,-t,0,-1,-t,0,1];const indices=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1];super(vertices,indices,radius,detail);this.type="IcosahedronGeometry";this.parameters={radius:radius,detail:detail}}static fromJSON(data){return new IcosahedronGeometry(data.radius,data.detail)}}class OctahedronGeometry extends PolyhedronGeometry{constructor(radius=1,detail=0){const vertices=[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1];const indices=[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2];super(vertices,indices,radius,detail);this.type="OctahedronGeometry";this.parameters={radius:radius,detail:detail}}static fromJSON(data){return new OctahedronGeometry(data.radius,data.detail)}}class RingGeometry extends BufferGeometry{constructor(innerRadius=0.5,outerRadius=1,thetaSegments=32,phiSegments=1,thetaStart=0,thetaLength=Math.PI*2){super();this.type="RingGeometry";this.parameters={innerRadius:innerRadius,outerRadius:outerRadius,thetaSegments:thetaSegments,phiSegments:phiSegments,thetaStart:thetaStart,thetaLength:thetaLength};thetaSegments=Math.max(3,thetaSegments);phiSegments=Math.max(1,phiSegments);const indices=[];const vertices=[];const normals=[];const uvs=[];let radius=innerRadius;const radiusStep=(outerRadius-innerRadius)/phiSegments;const vertex=new Vector3;const uv=new Vector2;for(let j=0;j<=phiSegments;j++){for(let i=0;i<=thetaSegments;i++){const segment=thetaStart+i/thetaSegments*thetaLength;vertex.x=radius*Math.cos(segment);vertex.y=radius*Math.sin(segment);vertices.push(vertex.x,vertex.y,vertex.z);normals.push(0,0,1);uv.x=(vertex.x/outerRadius+1)/2;uv.y=(vertex.y/outerRadius+1)/2;uvs.push(uv.x,uv.y)}radius+=radiusStep}for(let j=0;j<phiSegments;j++){const thetaSegmentLevel=j*(thetaSegments+1);for(let i=0;i<thetaSegments;i++){const segment=i+thetaSegmentLevel;const a=segment;const b=segment+thetaSegments+1;const c=segment+thetaSegments+2;const d=segment+1;indices.push(a,b,d);indices.push(b,c,d)}}this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2))}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new RingGeometry(data.innerRadius,data.outerRadius,data.thetaSegments,data.phiSegments,data.thetaStart,data.thetaLength)}}class ShapeGeometry extends BufferGeometry{constructor(shapes=new Shape([new Vector2(0,0.5),new Vector2(-0.5,-0.5),new Vector2(0.5,-0.5)]),curveSegments=12){super();this.type="ShapeGeometry";this.parameters={shapes:shapes,curveSegments:curveSegments};const indices=[];const vertices=[];const normals=[];const uvs=[];let groupStart=0;let groupCount=0;
4233if(Array.isArray(shapes)===false){addShape(shapes)}else{for(let i=0;i<shapes.length;i++){addShape(shapes[i]);this.addGroup(groupStart,groupCount,i);groupStart+=groupCount;groupCount=0}}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 addShape(shape){const indexOffset=vertices.length/3;const points=shape.extractPoints(curveSegments);let shapeVertices=points.shape;const shapeHoles=points.holes;if(ShapeUtils.isClockWise(shapeVertices)===false){shapeVertices=shapeVertices.reverse()}for(let i=0,l=shapeHoles.length;i<l;i++){const shapeHole=shapeHoles[i];if(ShapeUtils.isClockWise(shapeHole)===true){shapeHoles[i]=shapeHole.reverse()}}const faces=ShapeUtils.triangulateShape(shapeVertices,shapeHoles);for(let i=0,l=shapeHoles.length;i<l;i++){const shapeHole=shapeHoles[i];shapeVertices=shapeVertices.concat(shapeHole)}for(let i=0,l=shapeVertices.length;i<l;i++){const vertex=shapeVertices[i];vertices.push(vertex.x,vertex.y,0);normals.push(0,0,1);uvs.push(vertex.x,vertex.y)}for(let i=0,l=faces.length;i<l;i++){const face=faces[i];const a=face[0]+indexOffset;const b=face[1]+indexOffset;const c=face[2]+indexOffset;indices.push(a,b,c);groupCount+=3}}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}toJSON(){const data=super.toJSON();const shapes=this.parameters.shapes;return toJSON(shapes,data)}static fromJSON(data,shapes){const geometryShapes=[];for(let j=0,jl=data.shapes.length;j<jl;j++){const shape=shapes[data.shapes[j]];geometryShapes.push(shape)}return new ShapeGeometry(geometryShapes,data.curveSegments)}}function toJSON(shapes,data){data.shapes=[];if(Array.isArray(shapes)){for(let i=0,l=shapes.length;i<l;i++){const shape=shapes[i];data.shapes.push(shape.uuid)}}else{data.shapes.push(shapes.uuid)}return data}class SphereGeometry extends BufferGeometry{constructor(radius=1,widthSegments=32,heightSegments=16,phiStart=0,phiLength=Math.PI*2,thetaStart=0,thetaLength=Math.PI){super();this.type="SphereGeometry";this.parameters={radius:radius,widthSegments:widthSegments,heightSegments:heightSegments,phiStart:phiStart,phiLength:phiLength,thetaStart:thetaStart,thetaLength:thetaLength};widthSegments=Math.max(3,Math.floor(widthSegments));heightSegments=Math.max(2,Math.floor(heightSegments));const thetaEnd=Math.min(thetaStart+thetaLength,Math.PI);let index=0;const grid=[];const vertex=new Vector3;const normal=new Vector3;const indices=[];const vertices=[];const normals=[];const uvs=[];for(let iy=0;iy<=heightSegments;iy++){const verticesRow=[];const v=iy/heightSegments;let uOffset=0;if(iy===0&&thetaStart===0){uOffset=0.5/widthSegments}else if(iy===heightSegments&&thetaEnd===Math.PI){uOffset=-0.5/widthSegments}for(let ix=0;ix<=widthSegments;ix++){const u=ix/widthSegments;vertex.x=-radius*Math.cos(phiStart+u*phiLength)*Math.sin(thetaStart+v*thetaLength);vertex.y=radius*Math.cos(thetaStart+v*thetaLength);vertex.z=radius*Math.sin(phiStart+u*phiLength)*Math.sin(thetaStart+v*thetaLength);vertices.push(vertex.x,vertex.y,vertex.z);normal.copy(vertex).normalize();normals.push(normal.x,normal.y,normal.z);uvs.push(u+uOffset,1-v);verticesRow.push(index++)}grid.push(verticesRow)}for(let iy=0;iy<heightSegments;iy++){for(let ix=0;ix<widthSegments;ix++){const a=grid[iy][ix+1];const b=grid[iy][ix];const c=grid[iy+1][ix];const d=grid[iy+1][ix+1];if(iy!==0||thetaStart>0)indices.push(a,b,d);if(iy!==heightSegments-1||thetaEnd<Math.PI)indices.push(b,c,d)}}this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2))}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new SphereGeometry(data.radius,data.widthSegments,data.heightSegments,data.phiStart,data.phiLength,data.thetaStart,data.thetaLength)}}class TetrahedronGeometry extends PolyhedronGeometry{constructor(radius=1,detail=0){const vertices=[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1];const indices=[2,1,0,0,3,2,1,3,0,2,3,1];super(vertices,indices,radius,detail);this.type="TetrahedronGeometry";
4233this.parameters={radius:radius,detail:detail}}static fromJSON(data){return new TetrahedronGeometry(data.radius,data.detail)}}class TorusGeometry extends BufferGeometry{constructor(radius=1,tube=0.4,radialSegments=12,tubularSegments=48,arc=Math.PI*2){super();this.type="TorusGeometry";this.parameters={radius:radius,tube:tube,radialSegments:radialSegments,tubularSegments:tubularSegments,arc:arc};radialSegments=Math.floor(radialSegments);tubularSegments=Math.floor(tubularSegments);const indices=[];const vertices=[];const normals=[];const uvs=[];const center=new Vector3;const vertex=new Vector3;const normal=new Vector3;for(let j=0;j<=radialSegments;j++){for(let i=0;i<=tubularSegments;i++){const u=i/tubularSegments*arc;const v=j/radialSegments*Math.PI*2;vertex.x=(radius+tube*Math.cos(v))*Math.cos(u);vertex.y=(radius+tube*Math.cos(v))*Math.sin(u);vertex.z=tube*Math.sin(v);vertices.push(vertex.x,vertex.y,vertex.z);center.x=radius*Math.cos(u);center.y=radius*Math.sin(u);normal.subVectors(vertex,center).normalize();normals.push(normal.x,normal.y,normal.z);uvs.push(i/tubularSegments);uvs.push(j/radialSegments)}}for(let j=1;j<=radialSegments;j++){for(let i=1;i<=tubularSegments;i++){const a=(tubularSegments+1)*j+i-1;const b=(tubularSegments+1)*(j-1)+i-1;const c=(tubularSegments+1)*(j-1)+i;const d=(tubularSegments+1)*j+i;indices.push(a,b,d);indices.push(b,c,d)}}this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2))}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new TorusGeometry(data.radius,data.tube,data.radialSegments,data.tubularSegments,data.arc)}}class TorusKnotGeometry extends BufferGeometry{constructor(radius=1,tube=0.4,tubularSegments=64,radialSegments=8,p=2,q=3){super();this.type="TorusKnotGeometry";this.parameters={radius:radius,tube:tube,tubularSegments:tubularSegments,radialSegments:radialSegments,p:p,q:q};tubularSegments=Math.floor(tubularSegments);radialSegments=Math.floor(radialSegments);const indices=[];const vertices=[];const normals=[];const uvs=[];const vertex=new Vector3;const normal=new Vector3;const P1=new Vector3;const P2=new Vector3;const B=new Vector3;const T=new Vector3;const N=new Vector3;for(let i=0;i<=tubularSegments;++i){const u=i/tubularSegments*p*Math.PI*2;calculatePositionOnCurve(u,p,q,radius,P1);calculatePositionOnCurve(u+0.01,p,q,radius,P2);T.subVectors(P2,P1);N.addVectors(P2,P1);B.crossVectors(T,N);N.crossVectors(B,T);B.normalize();N.normalize();for(let j=0;j<=radialSegments;++j){const v=j/radialSegments*Math.PI*2;const cx=-tube*Math.cos(v);const cy=tube*Math.sin(v);vertex.x=P1.x+(cx*N.x+cy*B.x);vertex.y=P1.y+(cx*N.y+cy*B.y);vertex.z=P1.z+(cx*N.z+cy*B.z);vertices.push(vertex.x,vertex.y,vertex.z);normal.subVectors(vertex,P1).normalize();normals.push(normal.x,normal.y,normal.z);uvs.push(i/tubularSegments);uvs.push(j/radialSegments)}}for(let j=1;j<=tubularSegments;j++){for(let i=1;i<=radialSegments;i++){const a=(radialSegments+1)*(j-1)+(i-1);const b=(radialSegments+1)*j+(i-1);const c=(radialSegments+1)*j+i;const d=(radialSegments+1)*(j-1)+i;indices.push(a,b,d);indices.push(b,c,d)}}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 calculatePositionOnCurve(u,p,q,radius,position){const cu=Math.cos(u);const su=Math.sin(u);const quOverP=q/p*u;const cs=Math.cos(quOverP);position.x=radius*(2+cs)*0.5*cu;position.y=radius*(2+cs)*su*0.5;position.z=radius*Math.sin(quOverP)*0.5}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}static fromJSON(data){return new TorusKnotGeometry(data.radius,data.tube,data.tubularSegments,data.radialSegments,data.p,data.q)}}class TubeGeometry extends BufferGeometry{constructor(path=new QuadraticBezierCurve3(new Vector3(-1,-1,0),new Vector3(-1,1,0),new Vector3(1,1,0)),tubularSegments=64,radius=1,radialSegments=8,closed=false){super();this.type="TubeGeometry";this.parameters={path:path,tubularSegments:tubularSegments,radius:radius,radialSegments:radialSegments,closed:closed};const frames=path.computeFrenetFrames(tubularSegments,closed);this.tangents=frames.tangents;this.normals=frames.normals;this.binormals=frames.binormals;const vertex=new Vector3;const normal=new Vector3;const uv=new Vector2;let P=new Vector3;const vertices=[];const normals=[];const uvs=[];const indices=[];generateBufferData();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 generateBufferData(){for(let i=0;i<tubularSegments;i++){generateSegment(i)}generateSegment(closed===false?tubularSegments:0);generateUVs();generateIndices()}function generateSegment(i){P=path.getPointAt(i/tubularSegments,P);const N=frames.normals[i];const B=frames.binormals[i];for(let j=0;j<=radialSegments;j++){const v=j/radialSegments*Math.PI*2;const sin=Math.sin(v);const cos=-Math.cos(v);normal.x=cos*N.x+sin*B.x;normal.y=cos*N.y+sin*B.y;normal.z=cos*N.z+sin*B.z;normal.normalize();normals.push(normal.x,normal.y,normal.z);vertex.x=P.x+radius*normal.x;vertex.y=P.y+radius*normal.y;vertex.z=P.z+radius*normal.z;vertices.push(vertex.x,vertex.y,vertex.z)}}function generateIndices(){for(let j=1;j<=tubularSegments;j++){for(let i=1;i<=radialSegments;i++){const a=(radialSegments+1)*(j-1)+(i-1);const b=(radialSegments+1)*j+(i-1);const c=(radialSegments+1)*j+i;const d=(radialSegments+1)*(j-1)+i;indices.push(a,b,d);indices.push(b,c,d)}}}function generateUVs(){for(let i=0;i<=tubularSegments;i++){for(let j=0;j<=radialSegments;j++){uv.x=i/tubularSegments;uv.y=j/radialSegments;uvs.push(uv.x,uv.y)}}}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}toJSON(){const data=super.toJSON();data.path=this.parameters.path.toJSON();return data}static fromJSON(data){return new TubeGeometry(new Curves[data.path.type]().fromJSON(data.path),data.tubularSegments,data.radius,data.radialSegments,data.closed)}}class WireframeGeometry extends BufferGeometry{constructor(geometry=null){super();this.type="WireframeGeometry";this.parameters={geometry:geometry};if(geometry!==null){const vertices=[];const edges=new Set;const start=new Vector3;const end=new Vector3;if(geometry.index!==null){const position=geometry.attributes.position;const indices=geometry.index;let groups=geometry.groups;if(groups.length===0){groups=[{start:0,count:indices.count,materialIndex:0}]}for(let o=0,ol=groups.length;o<ol;++o){const group=groups[o];const groupStart=group.start;const groupCount=group.count;for(let i=groupStart,l=groupStart+groupCount;i<l;i+=3){for(let j=0;j<3;j++){const index1=indices.getX(i+j);const index2=indices.getX(i+(j+1)%3);
4233start.fromBufferAttribute(position,index1);end.fromBufferAttribute(position,index2);if(isUniqueEdge(start,end,edges)===true){vertices.push(start.x,start.y,start.z);vertices.push(end.x,end.y,end.z)}}}}}else{const position=geometry.attributes.position;for(let i=0,l=position.count/3;i<l;i++){for(let j=0;j<3;j++){const index1=3*i+j;const index2=3*i+(j+1)%3;start.fromBufferAttribute(position,index1);end.fromBufferAttribute(position,index2);if(isUniqueEdge(start,end,edges)===true){vertices.push(start.x,start.y,start.z);vertices.push(end.x,end.y,end.z)}}}}this.setAttribute("position",new Float32BufferAttribute(vertices,3))}}copy(source){super.copy(source);this.parameters=Object.assign({},source.parameters);return this}}function isUniqueEdge(start,end,edges){const hash1=`${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`;const hash2=`${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`;if(edges.has(hash1)===true||edges.has(hash2)===true){return false}else{edges.add(hash1);edges.add(hash2);return true}}var Geometries=Object.freeze({__proto__:null,BoxGeometry:BoxGeometry,CapsuleGeometry:CapsuleGeometry,CircleGeometry:CircleGeometry,ConeGeometry:ConeGeometry,CylinderGeometry:CylinderGeometry,DodecahedronGeometry:DodecahedronGeometry,EdgesGeometry:EdgesGeometry,ExtrudeGeometry:ExtrudeGeometry,IcosahedronGeometry:IcosahedronGeometry,LatheGeometry:LatheGeometry,OctahedronGeometry:OctahedronGeometry,PlaneGeometry:PlaneGeometry,PolyhedronGeometry:PolyhedronGeometry,RingGeometry:RingGeometry,ShapeGeometry:ShapeGeometry,SphereGeometry:SphereGeometry,TetrahedronGeometry:TetrahedronGeometry,TorusGeometry:TorusGeometry,TorusKnotGeometry:TorusKnotGeometry,TubeGeometry:TubeGeometry,WireframeGeometry:WireframeGeometry});class ShadowMaterial extends Material{constructor(parameters){super();this.isShadowMaterial=true;this.type="ShadowMaterial";this.color=new Color(0);this.transparent=true;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.fog=source.fog;return this}}class RawShaderMaterial extends ShaderMaterial{constructor(parameters){super(parameters);this.isRawShaderMaterial=true;this.type="RawShaderMaterial"}}class MeshStandardMaterial extends Material{constructor(parameters){super();this.isMeshStandardMaterial=true;this.defines={"STANDARD":""};this.type="MeshStandardMaterial";this.color=new Color(16777215);this.roughness=1;this.metalness=0;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.roughnessMap=null;this.metalnessMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.envMapIntensity=1;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.defines={"STANDARD":""};this.color.copy(source.color);this.roughness=source.roughness;this.metalness=source.metalness;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.roughnessMap=source.roughnessMap;this.metalnessMap=source.metalnessMap;this.alphaMap=source.alphaMap;this.envMap=source.envMap;this.envMapRotation.copy(source.envMapRotation);this.envMapIntensity=source.envMapIntensity;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 MeshPhysicalMaterial extends MeshStandardMaterial{constructor(parameters){super();this.isMeshPhysicalMaterial=true;this.defines={"STANDARD":"","PHYSICAL":""};this.type="MeshPhysicalMaterial";this.anisotropyRotation=0;this.anisotropyMap=null;this.clearcoatMap=null;this.clearcoatRoughness=0;this.clearcoatRoughnessMap=null;this.clearcoatNormalScale=new Vector2(1,1);this.clearcoatNormalMap=null;this.ior=1.5;Object.defineProperty(this,"reflectivity",{get:function(){return clamp(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(reflectivity){this.ior=(1+0.4*reflectivity)/(1-0.4*reflectivity)}});this.iridescenceMap=null;this.iridescenceIOR=1.3;this.iridescenceThicknessRange=[100,400];this.iridescenceThicknessMap=null;this.sheenColor=new Color(0);this.sheenColorMap=null;this.sheenRoughness=1;this.sheenRoughnessMap=null;this.transmissionMap=null;this.thickness=0;this.thicknessMap=null;this.attenuationDistance=Infinity;this.attenuationColor=new Color(1,1,1);this.specularIntensity=1;this.specularIntensityMap=null;this.specularColor=new Color(1,1,1);this.specularColorMap=null;this._anisotropy=0;this._clearcoat=0;this._iridescence=0;this._sheen=0;this._transmission=0;this.setValues(parameters)}get anisotropy(){return this._anisotropy}set anisotropy(value){if(this._anisotropy>0!==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 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.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 MeshMatcapMaterial extends Material{constructor(parameters){super();
4233this.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.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.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,forceClone){if(!array||!forceClone&&array.constructor===type)return array;if(typeof type.BYTES_PER_ELEMENT==="number"){return new type(array)}return Array.prototype.slice.call(array)}function isTypedArray(object){return ArrayBuffer.isView(object)&&!(object instanceof DataView)}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.apply(values,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<clip.tracks.length;++i){const track=clip.tracks[i];const valueSize=track.getValueSize();const times=[];const values=[];for(let j=0;j<track.times.length;++j){const frame=track.times[j]*fps;if(frame<startFrame||frame>=endFrame)continue;times.push(track.times[j]);for(let k=0;k<valueSize;++k){values.push(track.values[j*valueSize+k])}}if(times.length===0)continue;track.times=convertArray(times,track.times.constructor);track.values=convertArray(values,track.values.constructor);tracks.push(track)}clip.tracks=tracks;let minStartTime=Infinity;for(let i=0;i<clip.tracks.length;++i){if(minStartTime>clip.tracks[i].times[0]){minStartTime=clip.tracks[i].times[0]}}for(let i=0;i<clip.tracks.length;++i){clip.tracks[i].shift(-1*minStartTime)}clip.resetDuration();return clip}function makeClipAdditive(targetClip,referenceFrame=0,referenceClip=targetClip,fps=30){if(fps<=0)fps=30;const numTracks=referenceClip.tracks.length;const referenceTime=referenceFrame/fps;for(let i=0;i<numTracks;++i){const referenceTrack=referenceClip.tracks[i];const referenceTrackType=referenceTrack.ValueTypeName;if(referenceTrackType==="bool"||referenceTrackType==="string")continue;const targetTrack=targetClip.tracks.find(function(track){return track.name===referenceTrack.name&&track.ValueTypeName===referenceTrackType});if(targetTrack===undefined)continue;let referenceOffset=0;const referenceValueSize=referenceTrack.getValueSize();if(referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline){referenceOffset=referenceValueSize/3}let targetOffset=0;const targetValueSize=targetTrack.getValueSize();if(targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline){targetOffset=targetValueSize/3}const lastIndex=referenceTrack.times.length-1;let referenceValue;if(referenceTime<=referenceTrack.times[0]){const startIndex=referenceOffset;const endIndex=referenceValueSize-referenceOffset;referenceValue=referenceTrack.values.slice(startIndex,endIndex)}else if(referenceTime>=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<numTimes;++j){const valueStart=j*targetValueSize+targetOffset;if(referenceTrackType==="quaternion"){Quaternion.multiplyQuaternionsFlat(targetTrack.values,valueStart,referenceValue,0,targetTrack.values,valueStart)}else{const valueEnd=targetValueSize-targetOffset*2;for(let k=0;k<valueEnd;++k){targetTrack.values[valueStart+k]-=referenceValue[k]}}}}targetClip.blendMode=AdditiveAnimationBlendMode;return targetClip}const AnimationUtils={convertArray:convertArray,isTypedArray:isTypedArray,getKeyframeOrder:getKeyframeOrder,sortedArray:sortedArray,flattenJSON:flattenJSON,subclip:subclip,makeClipAdditive:makeClipAdditive};
4233class Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){this.parameterPositions=parameterPositions;this._cachedIndex=0;this.resultBuffer=resultBuffer!==undefined?resultBuffer:new sampleValues.constructor(sampleSize);this.sampleValues=sampleValues;this.valueSize=sampleSize;this.settings=null;this.DefaultSettings_={}}evaluate(t){const pp=this.parameterPositions;let i1=this._cachedIndex,t1=pp[i1],t0=pp[i1-1];validate_interval:{seek:{let right;linear_scan:{forward_scan:if(!(t<t1)){for(let giveUpAt=i1+2;;){if(t1===undefined){if(t<t0)break forward_scan;i1=pp.length;this._cachedIndex=i1;return this.copySampleValue_(i1-1)}if(i1===giveUpAt)break;t0=t1;t1=pp[++i1];if(t<t1){break seek}}right=pp.length;break linear_scan}if(!(t>=t0)){const t1global=pp[1];if(t<t1global){i1=2;t0=t1global}for(let giveUpAt=i1-2;;){if(t0===undefined){this._cachedIndex=0;return this.copySampleValue_(0)}if(i1===giveUpAt)break;t1=t0;t0=pp[--i1-1];if(t>=t0){break seek}}right=i1;i1=0;break linear_scan}break validate_interval}while(i1<right){const mid=i1+right>>>1;if(t<pp[mid]){right=mid}else{i1=mid+1}}t1=pp[i1];t0=pp[i1-1];if(t0===undefined){this._cachedIndex=0;return this.copySampleValue_(0)}if(t1===undefined){i1=pp.length;this._cachedIndex=i1;return this.copySampleValue_(i1-1)}}this._cachedIndex=i1;this.intervalChanged_(i1,t0,t1)}return this.interpolate_(i1,t0,t,t1)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(index){const result=this.resultBuffer,values=this.sampleValues,stride=this.valueSize,offset=index*stride;for(let i=0;i!==stride;++i){result[i]=values[offset+i]}return result}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}class CubicInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer);this._weightPrev=-0;this._offsetPrev=-0;this._weightNext=-0;this._offsetNext=-0;this.DefaultSettings_={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding}}intervalChanged_(i1,t0,t1){const pp=this.parameterPositions;let iPrev=i1-2,iNext=i1+1,tPrev=pp[iPrev],tNext=pp[iNext];if(tPrev===undefined){switch(this.getSettings_().endingStart){case ZeroSlopeEnding:iPrev=i1;tPrev=2*t0-t1;break;case WrapAroundEnding:iPrev=pp.length-2;tPrev=t0+pp[iPrev]-pp[iPrev+1];break;default:iPrev=i1;tPrev=t1;}}if(tNext===undefined){switch(this.getSettings_().endingEnd){case ZeroSlopeEnding:iNext=i1;tNext=2*t1-t0;break;case WrapAroundEnding:iNext=1;tNext=t1+pp[1]-pp[0];break;default:iNext=i1-1;tNext=t0;}}const halfDt=(t1-t0)*0.5,stride=this.valueSize;this._weightPrev=halfDt/(t0-tPrev);this._weightNext=halfDt/(tNext-t1);this._offsetPrev=iPrev*stride;this._offsetNext=iNext*stride}interpolate_(i1,t0,t,t1){const result=this.resultBuffer,values=this.sampleValues,stride=this.valueSize,o1=i1*stride,o0=o1-stride,oP=this._offsetPrev,oN=this._offsetNext,wP=this._weightPrev,wN=this._weightNext,p=(t-t0)/(t1-t0),pp=p*p,ppp=pp*p;const sP=-wP*ppp+2*wP*pp-wP*p;const s0=(1+wP)*ppp+(-1.5-2*wP)*pp+(-0.5+wP)*p+1;const s1=(-1-wN)*ppp+(1.5+wN)*pp+0.5*p;const sN=wN*ppp-wN*pp;for(let i=0;i!==stride;++i){result[i]=sP*values[oP+i]+s0*values[o0+i]+s1*values[o1+i]+sN*values[oN+i]}return result}}class LinearInterpolant 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,offset1=i1*stride,offset0=offset1-stride,weight1=(t-t0)/(t1-t0),weight0=1-weight1;for(let i=0;i!==stride;++i){result[i]=values[offset0+i]*weight0+values[offset1+i]*weight1}return result}}class DiscreteInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer)}interpolate_(i1){return this.copySampleValue_(i1-1)}}class KeyframeTrack{constructor(name,times,values,interpolation){if(name===undefined)throw new Error("THREE.KeyframeTrack: track name is undefined");if(times===undefined||times.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+name);this.name=name;this.times=convertArray(times,this.TimeBufferType);this.values=convertArray(values,this.ValueBufferType);this.setInterpolation(interpolation||this.DefaultInterpolation)}static toJSON(track){const trackType=track.constructor;let json;if(trackType.toJSON!==this.toJSON){json=trackType.toJSON(track)}else{json={"name":track.name,"times":convertArray(track.times,Array),"values":convertArray(track.values,Array)};const interpolation=track.getInterpolation();if(interpolation!==track.DefaultInterpolation){json.interpolation=interpolation}}json.type=track.ValueTypeName;return json}InterpolantFactoryMethodDiscrete(result){return new DiscreteInterpolant(this.times,this.values,this.getValueSize(),result)}InterpolantFactoryMethodLinear(result){return new LinearInterpolant(this.times,this.values,this.getValueSize(),result)}InterpolantFactoryMethodSmooth(result){return new CubicInterpolant(this.times,this.values,this.getValueSize(),result)}setInterpolation(interpolation){let factoryMethod;switch(interpolation){case InterpolateDiscrete:factoryMethod=this.InterpolantFactoryMethodDiscrete;break;case InterpolateLinear:factoryMethod=this.InterpolantFactoryMethodLinear;break;case InterpolateSmooth:factoryMethod=this.InterpolantFactoryMethodSmooth;break;}if(factoryMethod===undefined){const message="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===undefined){if(interpolation!==this.DefaultInterpolation){this.setInterpolation(this.DefaultInterpolation)}else{throw new Error(message)}}console.warn("THREE.KeyframeTrack:",message);return this}this.createInterpolant=factoryMethod;return this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return InterpolateDiscrete;case this.InterpolantFactoryMethodLinear:return InterpolateLinear;case this.InterpolantFactoryMethodSmooth:return InterpolateSmooth;}}getValueSize(){return this.values.length/this.times.length}shift(timeOffset){if(timeOffset!==0){const times=this.times;for(let i=0,n=times.length;i!==n;
4233++i){times[i]+=timeOffset}}return this}scale(timeScale){if(timeScale!==1){const times=this.times;for(let i=0,n=times.length;i!==n;++i){times[i]*=timeScale}}return this}trim(startTime,endTime){const times=this.times,nKeys=times.length;let from=0,to=nKeys-1;while(from!==nKeys&×[from]<startTime){++from}while(to!==-1&×[to]>endTime){--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){console.error("THREE.KeyframeTrack: Invalid value size in track.",this);valid=false}const times=this.times,values=this.values,nKeys=times.length;if(nKeys===0){console.error("THREE.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)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,i,currTime);valid=false;break}if(prevTime!==null&&prevTime>currTime){console.error("THREE.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)){console.error("THREE.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;i<lastIndex;++i){let keep=false;const time=times[i];const timeNext=times[i+1];if(time!==timeNext&&(i!==1||time!==times[0])){if(!smoothInterpolation){const offset=i*stride,offsetP=offset-stride,offsetN=offset+stride;for(let j=0;j!==stride;++j){const value=values[offset+j];if(value!==values[offsetP+j]||value!==values[offsetN+j]){keep=true;break}}}else{keep=true}}if(keep){if(i!==writeIndex){times[writeIndex]=times[i];const readOffset=i*stride,writeOffset=writeIndex*stride;for(let j=0;j!==stride;++j){values[writeOffset+j]=values[readOffset+j]}}++writeIndex}}if(lastIndex>0){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.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=undefined;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=undefined;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}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{InterpolantFactoryMethodLinear(result){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),result)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=un
4233defined;class StringKeyframeTrack extends KeyframeTrack{}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=undefined;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=undefined;class VectorKeyframeTrack extends KeyframeTrack{}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();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;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};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;i<numMorphTargets;i++){let times=[];let values=[];times.push((i+numMorphTargets-1)%numMorphTargets,i,(i+1)%numMorphTargets);values.push(0,1,0);const order=getKeyframeOrder(times);times=sortedArray(times,1,order);values=sortedArray(values,1,order);if(!noLoop&×[0]===0){times.push(numMorphTargets);values.push(values[0])}tracks.push(new NumberKeyframeTrack(".morphTargetInfluences["+morphTargetSequence[i].name+"]",times,values).scale(1/fps))}return new this(name,-1,tracks)}static findByName(objectOrClipArray,name){let clipArray=objectOrClipArray;if(!Array.isArray(objectOrClipArray)){const o=objectOrClipArray;clipArray=o.geometry&&o.geometry.animations||o.animations}for(let i=0;i<clipArray.length;i++){if(clipArray[i].name===name){return clipArray[i]}}return null}static CreateClipsFromMorphTargetSequences(morphTargets,fps,noLoop){const animationToMorphTargets={};const pattern=/^([\w-]*?)([\d]+)$/;for(let i=0,il=morphTargets.length;i<il;i++){const morphTarget=morphTargets[i];const parts=morphTarget.name.match(pattern);if(parts&&parts.length>1){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){if(!animation){console.error("THREE.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<hierarchyTracks.length;h++){const animationKeys=hierarchyTracks[h].keys;if(!animationKeys||animationKeys.length===0)continue;if(animationKeys[0].morphTargets){const morphTargetNames={};let k;for(k=0;k<animationKeys.length;k++){if(animationKeys[k].morphTargets){for(let m=0;m<animationKeys[k].morphTargets.length;m++){morphTargetNames[animationKeys[k].morphTargets[m]]=-1}}}for(const morphTargetName in morphTargetNames){const times=[];const values=[];for(let m=0;m!==animationKeys[k].morphTargets.length;++m){const animationKey=animationKeys[k];times.push(animationKey.time);values.push(animationKey.morphTarget===morphTargetName?1:0)}tracks.push(new NumberKeyframeTrack(".morphTargetInfluence["+morphTargetName+"]",times,values))}duration=morphTargetNames.length*fps}else{const boneName=".bones["+bones[h].name+"]";addNonemptyTrack(VectorKeyframeTrack,boneName+".position",animationKeys,"pos",tracks);addNonemptyTrack(QuaternionKeyframeTrack,boneName+".quaternion",animationKeys,"rot",tracks);addNonemptyTrack(VectorKeyframeTrack,boneName+".scale",animationKeys,"scl",tracks)}}if(tracks.length===0){return null}const clip=new this(clipName,duration,tracks,blendMode);return clip}resetDuration(){const tracks=this.tracks;let duration=0;for(let i=0,n=tracks.length;i!==n;++i){const track=this.tracks[i];duration=Math.max(duration,track.times[track.times.length-1])}this.duration=duration;return this}trim(){for(let i=0;i<this.tracks.length;i++){this.tracks[i].trim(0,this.duration)}return this}validate(){let valid=true;for(let i=0;i<this.tracks.length;
4233i++){valid=valid&&this.tracks[i].validate()}return valid}optimize(){for(let i=0;i<this.tracks.length;i++){this.tracks[i].optimize()}return this}clone(){const tracks=[];for(let i=0;i<this.tracks.length;i++){tracks.push(this.tracks[i].clone())}return new this.constructor(this.name,this.duration,tracks,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function getTrackTypeForValueTypeName(typeName){switch(typeName.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return NumberKeyframeTrack;case"vector":case"vector2":case"vector3":case"vector4":return VectorKeyframeTrack;case"color":return ColorKeyframeTrack;case"quaternion":return QuaternionKeyframeTrack;case"bool":case"boolean":return BooleanKeyframeTrack;case"string":return StringKeyframeTrack;}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+typeName)}function parseKeyframeTrack(json){if(json.type===undefined){throw new Error("THREE.KeyframeTrack: track type undefined, can not parse")}const trackType=getTrackTypeForValueTypeName(json.type);if(json.times===undefined){const times=[],values=[];flattenJSON(json.keys,times,values,"value");json.times=times;json.values=values}if(trackType.parse!==undefined){return trackType.parse(json)}else{return new trackType(json.name,json.times,json.values,json.interpolation)}}const Cache={enabled:false,files:{},add:function(key,file){if(this.enabled===false)return;this.files[key]=file},get:function(key){if(this.enabled===false)return;return this.files[key]},remove:function(key){delete this.files[key]},clear:function(){this.files={}}};class LoadingManager{constructor(onLoad,onProgress,onError){const scope=this;let isLoading=false;let itemsLoaded=0;let itemsTotal=0;let urlModifier=undefined;const handlers=[];this.onStart=undefined;this.onLoad=onLoad;this.onProgress=onProgress;this.onError=onError;this.itemStart=function(url){itemsTotal++;if(isLoading===false){if(scope.onStart!==undefined){scope.onStart(url,itemsLoaded,itemsTotal)}}isLoading=true};this.itemEnd=function(url){itemsLoaded++;if(scope.onProgress!==undefined){scope.onProgress(url,itemsLoaded,itemsTotal)}if(itemsLoaded===itemsTotal){isLoading=false;if(scope.onLoad!==undefined){scope.onLoad()}}};this.itemError=function(url){if(scope.onError!==undefined){scope.onError(url)}};this.resolveURL=function(url){if(urlModifier){return urlModifier(url)}return url};this.setURLModifier=function(transform){urlModifier=transform;return this};this.addHandler=function(regex,loader){handlers.push(regex,loader);return this};this.removeHandler=function(regex){const index=handlers.indexOf(regex);if(index!==-1){handlers.splice(index,2)}return this};this.getHandler=function(file){for(let i=0,l=handlers.length;i<l;i+=2){const regex=handlers[i];const loader=handlers[i+1];if(regex.global)regex.lastIndex=0;if(regex.test(file)){return loader}}return null}}}const DefaultLoadingManager=new LoadingManager;class Loader{constructor(manager){this.manager=manager!==undefined?manager:DefaultLoadingManager;this.crossOrigin="anonymous";this.withCredentials=false;this.path="";this.resourcePath="";this.requestHeader={}}load(){}loadAsync(url,onProgress){const scope=this;return new Promise(function(resolve,reject){scope.load(url,resolve,onProgress,reject)})}parse(){}setCrossOrigin(crossOrigin){this.crossOrigin=crossOrigin;return this}setWithCredentials(value){this.withCredentials=value;return this}setPath(path){this.path=path;return this}setResourcePath(resourcePath){this.resourcePath=resourcePath;return this}setRequestHeader(requestHeader){this.requestHeader=requestHeader;return this}}Loader.DEFAULT_MATERIAL_NAME="__DEFAULT";const loading={};class HttpError extends Error{constructor(message,response){super(message);this.response=response}}class FileLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){if(url===undefined)url="";if(this.path!==undefined)url=this.path+url;url=this.manager.resolveURL(url);const cached=Cache.get(url);if(cached!==undefined){this.manager.itemStart(url);setTimeout(()=>{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});
4233const req=new Request(url,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"});const mimeType=this.mimeType;const responseType=this.responseType;fetch(req).then(response=>{if(response.status===200||response.status===0){if(response.status===0){console.warn("THREE.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("Content-Length")||response.headers.get("X-File-Size");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<il;i++){const callback=callbacks[i];if(callback.onProgress)callback.onProgress(event)}controller.enqueue(value);readData()}})}}});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===undefined){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(url,data);const callbacks=loading[url];delete loading[url];for(let i=0,il=callbacks.length;i<il;i++){const callback=callbacks[i];if(callback.onLoad)callback.onLoad(data)}}).catch(err=>{const callbacks=loading[url];if(callbacks===undefined){this.manager.itemError(url);throw err}delete loading[url];for(let i=0,il=callbacks.length;i<il;i++){const callback=callbacks[i];if(callback.onError)callback.onError(err)}this.manager.itemError(url)}).finally(()=>{this.manager.itemEnd(url)});this.manager.itemStart(url)}setResponseType(value){this.responseType=value;return this}setMimeType(value){this.mimeType=value;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{console.error(e)}scope.manager.itemError(url)}},onProgress,onError)}parse(json){const animations=[];for(let i=0;i<json.length;i++){const clip=AnimationClip.parse(json[i]);animations.push(clip)}return animations}}class CompressedTextureLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const images=[];const texture=new CompressedTexture;const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setResponseType("arraybuffer");loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(scope.withCredentials);let loaded=0;function loadTexture(i){loader.load(url[i],function(buffer){const texDatas=scope.parse(buffer,true);images[i]={width:texDatas.width,height:texDatas.height,format:texDatas.format,mipmaps:texDatas.mipmaps};loaded+=1;if(loaded===6){if(texDatas.mipmapCount===1)texture.minFilter=LinearFilter;texture.image=images;texture.format=texDatas.format;texture.needsUpdate=true;if(onLoad)onLoad(texture)}},onProgress,onError)}if(Array.isArray(url)){for(let i=0,il=url.length;i<il;++i){loadTexture(i)}}else{loader.load(url,function(buffer){const texDatas=scope.parse(buffer,true);if(texDatas.isCubemap){const faces=texDatas.mipmaps.length/texDatas.mipmapCount;for(let f=0;f<faces;f++){images[f]={mipmaps:[]};for(let i=0;i<texDatas.mipmapCount;i++){images[f].mipmaps.push(texDatas.mipmaps[f*texDatas.mipmapCount+i]);images[f].format=texDatas.format;images[f].width=texDatas.width;images[f].height=texDatas.height}}texture.image=images}else{texture.image.width=texDatas.width;texture.image.height=texDatas.height;texture.mipmaps=texDatas.mipmaps}if(texDatas.mipmapCount===1){texture.minFilter=LinearFilter}texture.format=texDatas.format;texture.needsUpdate=true;if(onLoad)onLoad(texture)},onProgress,onError)}return texture}}class ImageLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){if(this.path!==undefined)url=this.path+url;url=this.manager.resolveURL(url);const scope=this;const cached=Cache.get(url);if(cached!==undefined){scope.manager.itemStart(url);setTimeout(function(){if(onLoad)onLoad(cached);scope.manager.itemEnd(url)},0);return cached}const image=createElementNS("img");function onImageLoad(){removeEventListeners();Cache.add(url,this);if(onLoad)onLoad(this);scope.manager.itemEnd(url)}function onImageError(event){removeEventListeners();if(onError)onError(event);scope.manager.itemError(url);scope.manager.itemEnd(url)}function removeEventListeners(){image.removeEventListener("load",onImageLoad,false);image.removeEventListener("error",onImageError,false)}image.addEventListener("load",onImageLoad,false);image.addEventListener("error",onImageError,false);
4233if(url.slice(0,5)!=="data:"){if(this.crossOrigin!==undefined)image.crossOrigin=this.crossOrigin}scope.manager.itemStart(url);image.src=url;return image}}class CubeTextureLoader extends Loader{constructor(manager){super(manager)}load(urls,onLoad,onProgress,onError){const texture=new CubeTexture;texture.colorSpace=SRGBColorSpace;const loader=new ImageLoader(this.manager);loader.setCrossOrigin(this.crossOrigin);loader.setPath(this.path);let loaded=0;function loadTexture(i){loader.load(urls[i],function(image){texture.images[i]=image;loaded++;if(loaded===6){texture.needsUpdate=true;if(onLoad)onLoad(texture)}},undefined,onError)}for(let i=0;i<urls.length;++i){loadTexture(i)}return texture}}class DataTextureLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const texture=new DataTexture;const loader=new FileLoader(this.manager);loader.setResponseType("arraybuffer");loader.setRequestHeader(this.requestHeader);loader.setPath(this.path);loader.setWithCredentials(scope.withCredentials);loader.load(url,function(buffer){let texData;try{texData=scope.parse(buffer)}catch(error){if(onError!==undefined){onError(error)}else{console.error(error);return}}if(texData.image!==undefined){texture.image=texData.image}else if(texData.data!==undefined){texture.image.width=texData.width;texture.image.height=texData.height;texture.image.data=texData.data}texture.wrapS=texData.wrapS!==undefined?texData.wrapS:ClampToEdgeWrapping;texture.wrapT=texData.wrapT!==undefined?texData.wrapT:ClampToEdgeWrapping;texture.magFilter=texData.magFilter!==undefined?texData.magFilter:LinearFilter;texture.minFilter=texData.minFilter!==undefined?texData.minFilter:LinearFilter;texture.anisotropy=texData.anisotropy!==undefined?texData.anisotropy:1;if(texData.colorSpace!==undefined){texture.colorSpace=texData.colorSpace}if(texData.flipY!==undefined){texture.flipY=texData.flipY}if(texData.format!==undefined){texture.format=texData.format}if(texData.type!==undefined){texture.type=texData.type}
4233if(texData.mipmaps!==undefined){texture.mipmaps=texData.mipmaps;texture.minFilter=LinearMipmapLinearFilter}if(texData.mipmapCount===1){texture.minFilter=LinearFilter}if(texData.generateMipmaps!==undefined){texture.generateMipmaps=texData.generateMipmaps}texture.needsUpdate=true;if(onLoad)onLoad(texture,texData)},onProgress,onError);return texture}}class TextureLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const texture=new Texture;const loader=new ImageLoader(this.manager);loader.setCrossOrigin(this.crossOrigin);loader.setPath(this.path);loader.load(url,function(image){texture.image=image;texture.needsUpdate=true;if(onLoad!==undefined){onLoad(texture)}},onProgress,onError);return texture}}class Light extends Object3D{constructor(color,intensity=1){super();this.isLight=true;this.type="Light";this.color=new Color(color);this.intensity=intensity}dispose(){}copy(source,recursive){super.copy(source,recursive);this.color.copy(source.color);this.intensity=source.intensity;return this}toJSON(meta){const data=super.toJSON(meta);data.object.color=this.color.getHex();data.object.intensity=this.intensity;if(this.groundColor!==undefined)data.object.groundColor=this.groundColor.getHex();if(this.distance!==undefined)data.object.distance=this.distance;if(this.angle!==undefined)data.object.angle=this.angle;if(this.decay!==undefined)data.object.decay=this.decay;if(this.penumbra!==undefined)data.object.penumbra=this.penumbra;if(this.shadow!==undefined)data.object.shadow=this.shadow.toJSON();return data}}class HemisphereLight extends Light{constructor(skyColor,groundColor,intensity){super(skyColor,intensity);this.isHemisphereLight=true;this.type="HemisphereLight";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.groundColor=new Color(groundColor)}copy(source,recursive){super.copy(source,recursive);this.groundColor.copy(source.groundColor);return this}}const _projScreenMatrix$1=new Matrix4;const _lightPositionWorld$1=new Vector3;const _lookTarget$1=new Vector3;class LightShadow{constructor(camera){this.camera=camera;this.bias=0;this.normalBias=0;this.radius=1;this.blurSamples=8;this.mapSize=new Vector2(512,512);this.map=null;this.mapPass=null;this.matrix=new Matrix4;this.autoUpdate=true;this.needsUpdate=false;this._frustum=new Frustum;this._frameExtents=new Vector2(1,1);this._viewportCount=1;this._viewports=[new Vector4(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(light){const shadowCamera=this.camera;const shadowMatrix=this.matrix;_lightPositionWorld$1.setFromMatrixPosition(light.matrixWorld);shadowCamera.position.copy(_lightPositionWorld$1);_lookTarget$1.setFromMatrixPosition(light.target.matrixWorld);shadowCamera.lookAt(_lookTarget$1);shadowCamera.updateMatrixWorld();_projScreenMatrix$1.multiplyMatrices(shadowCamera.projectionMatrix,shadowCamera.matrixWorldInverse);this._frustum.setFromProjectionMatrix(_projScreenMatrix$1);shadowMatrix.set(0.5,0,0,0.5,0,0.5,0,0.5,0,0,0.5,0.5,0,0,0,1);shadowMatrix.multiply(_projScreenMatrix$1)}getViewport(viewportIndex){return this._viewports[viewportIndex]}getFrameExtents(){return this._frameExtents}dispose(){if(this.map){this.map.dispose()}if(this.mapPass){this.mapPass.dispose()}}copy(source){this.camera=source.camera.clone();this.bias=source.bias;this.radius=source.radius;this.mapSize.copy(source.mapSize);return this}clone(){return new this.constructor().copy(this)}toJSON(){const object={};if(this.bias!==0)object.bias=this.bias;if(this.normalBias!==0)object.normalBias=this.normalBias;if(this.radius!==1)object.radius=this.radius;if(this.mapSize.x!==512||this.mapSize.y!==512)object.mapSize=this.mapSize.toArray();object.camera=this.camera.toJSON(false).object;delete object.camera.matrix;return object}}class SpotLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(50,1,0.5,500));this.isSpotLightShadow=true;this.focus=1}updateMatrices(light){const camera=this.camera;const fov=RAD2DEG*2*light.angle*this.focus;const aspect=this.mapSize.width/this.mapSize.height;
4233const far=light.distance||camera.far;if(fov!==camera.fov||aspect!==camera.aspect||far!==camera.far){camera.fov=fov;camera.aspect=aspect;camera.far=far;camera.updateProjectionMatrix()}super.updateMatrices(light)}copy(source){super.copy(source);this.focus=source.focus;return this}}class SpotLight extends Light{constructor(color,intensity,distance=0,angle=Math.PI/3,penumbra=0,decay=2){super(color,intensity);this.isSpotLight=true;this.type="SpotLight";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.target=new Object3D;this.distance=distance;this.angle=angle;this.penumbra=penumbra;this.decay=decay;this.map=null;this.shadow=new SpotLightShadow}get power(){return this.intensity*Math.PI}set power(power){this.intensity=power/Math.PI}dispose(){this.shadow.dispose()}copy(source,recursive){super.copy(source,recursive);this.distance=source.distance;this.angle=source.angle;this.penumbra=source.penumbra;this.decay=source.decay;this.target=source.target.clone();this.shadow=source.shadow.clone();return this}}const _projScreenMatrix=new Matrix4;const _lightPositionWorld=new Vector3;const _lookTarget=new Vector3;class PointLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(90,1,0.5,500));this.isPointLightShadow=true;this._frameExtents=new Vector2(4,2);this._viewportCount=6;this._viewports=[new Vector4(2,1,1,1),new Vector4(0,1,1,1),new Vector4(3,1,1,1),new Vector4(1,1,1,1),new Vector4(3,0,1,1),new Vector4(1,0,1,1)];this._cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,1,0),new Vector3(0,-1,0)];this._cubeUps=[new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,0,1),new Vector3(0,0,-1)]}updateMatrices(light,viewportIndex=0){const camera=this.camera;const shadowMatrix=this.matrix;const far=light.distance||camera.far;if(far!==camera.far){camera.far=far;camera.updateProjectionMatrix()}_lightPositionWorld.setFromMatrixPosition(light.matrixWorld);camera.position.copy(_lightPositionWorld);_lookTarget.copy(camera.position);_lookTarget.add(this._cubeDirections[viewportIndex]);camera.up.copy(this._cubeUps[viewportIndex]);camera.lookAt(_lookTarget);camera.updateMatrixWorld();shadowMatrix.makeTranslation(-_lightPositionWorld.x,-_lightPositionWorld.y,-_lightPositionWorld.z);_projScreenMatrix.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse);this._frustum.setFromProjectionMatrix(_projScreenMatrix)}}class PointLight extends Light{constructor(color,intensity,distance=0,decay=2){super(color,intensity);this.isPointLight=true;this.type="PointLight";this.distance=distance;this.decay=decay;this.shadow=new PointLightShadow}get power(){return this.intensity*4*Math.PI}set power(power){this.intensity=power/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(source,recursive){super.copy(source,recursive);this.distance=source.distance;this.decay=source.decay;this.shadow=source.shadow.clone();return this}}class DirectionalLightShadow extends LightShadow{constructor(){super(new OrthographicCamera(-5,5,5,-5,0.5,500));this.isDirectionalLightShadow=true}}class DirectionalLight extends Light{constructor(color,intensity){super(color,intensity);this.isDirectionalLight=true;this.type="DirectionalLight";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.target=new Object3D;this.shadow=new DirectionalLightShadow}dispose(){this.shadow.dispose()}copy(source){super.copy(source);this.target=source.target.clone();this.shadow=source.shadow.clone();return this}}class AmbientLight extends Light{constructor(color,intensity){super(color,intensity);this.isAmbientLight=true;this.type="AmbientLight"}}class RectAreaLight extends Light{constructor(color,intensity,width=10,height=10){super(color,intensity);this.isRectAreaLight=true;this.type="RectAreaLight";this.width=width;this.height=height}get power(){return this.intensity*this.width*this.height*Math.PI}set power(power){this.intensity=power/(this.width*this.height*Math.PI)}copy(source){super.copy(source);this.width=source.width;this.height=source.height;return this}toJSON(meta){const data=super.toJSON(meta);data.object.width=this.width;data.object.height=this.height;return data}}class SphericalHarmonics3{constructor(){this.isSphericalHarmonics3=true;this.coefficients=[];for(let i=0;i<9;i++){this.coefficients.push(new Vector3)}}set(coefficients){for(let i=0;i<9;i++){this.coefficients[i].copy(coefficients[i])}return this}zero(){for(let i=0;i<9;i++){this.coefficients[i].set(0,0,0)}return this}getAt(normal,target){const x=normal.x,y=normal.y,z=normal.z;const coeff=this.coefficients;target.copy(coeff[0]).multiplyScalar(0.282095);target.addScaledVector(coeff[1],0.488603*y);target.addScaledVector(coeff[2],0.488603*z);target.addScaledVector(coeff[3],0.488603*x);target.addScaledVector(coeff[4],1.092548*(x*y));target.addScaledVector(coeff[5],1.092548*(y*z));target.addScaledVector(coeff[6],0.315392*(3*z*z-1));target.addScaledVector(coeff[7],1.092548*(x*z));target.addScaledVector(coeff[8],0.546274*(x*x-y*y));return target}getIrradianceAt(normal,target){const x=normal.x,y=normal.y,z=normal.z;const coeff=this.coefficients;target.copy(coeff[0]).multiplyScalar(0.886227);target.addScaledVector(coeff[1],2*0.511664*y);target.addScaledVector(coeff[2],2*0.511664*z);target.addScaledVector(coeff[3],2*0.511664*x);target.addScaledVector(coeff[4],2*0.429043*x*y);target.addScaledVector(coeff[5],2*0.429043*y*z);target.addScaledVector(coeff[6],0.743125*z*z-0.247708);target.addScaledVector(coeff[7],2*0.429043*x*z);target.addScaledVector(coeff[8],0.429043*(x*x-y*y));return target}add(sh){for(let i=0;i<9;i++){this.coefficients[i].add(sh.coefficients[i])}return this}addScaledSH(sh,s){for(let i=0;i<9;i++){this.coefficients[i].addScaledVector(sh.coefficients[i],s)}return this}scale(s){for(let i=0;i<9;i++){this.coefficients[i].multiplyScalar(s)}return this}lerp(sh,alpha){for(let i=0;i<9;
4233i++){this.coefficients[i].lerp(sh.coefficients[i],alpha)}return this}equals(sh){for(let i=0;i<9;i++){if(!this.coefficients[i].equals(sh.coefficients[i])){return false}}return true}copy(sh){return this.set(sh.coefficients)}clone(){return new this.constructor().copy(this)}fromArray(array,offset=0){const coefficients=this.coefficients;for(let i=0;i<9;i++){coefficients[i].fromArray(array,offset+i*3)}return this}toArray(array=[],offset=0){const coefficients=this.coefficients;for(let i=0;i<9;i++){coefficients[i].toArray(array,offset+i*3)}return array}static getBasisAt(normal,shBasis){const x=normal.x,y=normal.y,z=normal.z;shBasis[0]=0.282095;shBasis[1]=0.488603*y;shBasis[2]=0.488603*z;shBasis[3]=0.488603*x;shBasis[4]=1.092548*x*y;shBasis[5]=1.092548*y*z;shBasis[6]=0.315392*(3*z*z-1);shBasis[7]=1.092548*x*z;shBasis[8]=0.546274*(x*x-y*y)}}class LightProbe extends Light{constructor(sh=new SphericalHarmonics3,intensity=1){super(undefined,intensity);this.isLightProbe=true;this.sh=sh}copy(source){super.copy(source);this.sh.copy(source.sh);return this}fromJSON(json){this.intensity=json.intensity;this.sh.fromArray(json.sh);return this}toJSON(meta){const data=super.toJSON(meta);data.object.sh=this.sh.toArray();return data}}class MaterialLoader extends Loader{constructor(manager){super(manager);this.textures={}}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{console.error(e)}scope.manager.itemError(url)}},onProgress,onError)}parse(json){const textures=this.textures;function getTexture(name){if(textures[name]===undefined){console.warn("THREE.MaterialLoader: Undefined texture",name)}return textures[name]}const material=MaterialLoader.createMaterialFromType(json.type);if(json.uuid!==undefined)material.uuid=json.uuid;if(json.name!==undefined)material.name=json.name;if(json.color!==undefined&&material.color!==undefined)material.color.setHex(json.color);if(json.roughness!==undefined)material.roughness=json.roughness;if(json.metalness!==undefined)material.metalness=json.metalness;if(json.sheen!==undefined)material.sheen=json.sheen;if(json.sheenColor!==undefined)material.sheenColor=new Color().setHex(json.sheenColor);if(json.sheenRoughness!==undefined)material.sheenRoughness=json.sheenRoughness;if(json.emissive!==undefined&&material.emissive!==undefined)material.emissive.setHex(json.emissive);if(json.specular!==undefined&&material.specular!==undefined)material.specular.setHex(json.specular);if(json.specularIntensity!==undefined)material.specularIntensity=json.specularIntensity;if(json.specularColor!==undefined&&material.specularColor!==undefined)material.specularColor.setHex(json.specularColor);if(json.shininess!==undefined)material.shininess=json.shininess;if(json.clearcoat!==undefined)material.clearcoat=json.clearcoat;if(json.clearcoatRoughness!==undefined)material.clearcoatRoughness=json.clearcoatRoughness;if(json.iridescence!==undefined)material.iridescence=json.iridescence;if(json.iridescenceIOR!==undefined)material.iridescenceIOR=json.iridescenceIOR;if(json.iridescenceThicknessRange!==undefined)material.iridescenceThicknessRange=json.iridescenceThicknessRange;if(json.transmission!==undefined)material.transmission=json.transmission;if(json.thickness!==undefined)material.thickness=json.thickness;if(json.attenuationDistance!==undefined)material.attenuationDistance=json.attenuationDistance;if(json.attenuationColor!==undefined&&material.attenuationColor!==undefined)material.attenuationColor.setHex(json.attenuationColor);if(json.anisotropy!==undefined)material.anisotropy=json.anisotropy;if(json.anisotropyRotation!==undefined)material.anisotropyRotation=json.anisotropyRotation;if(json.fog!==undefined)material.fog=json.fog;if(json.flatShading!==undefined)material.flatShading=json.flatShading;if(json.blending!==undefined)material.blending=json.blending;if(json.combine!==undefined)material.combine=json.combine;if(json.side!==undefined)material.side=json.side;if(json.shadowSide!==undefined)material.shadowSide=json.shadowSide;if(json.opacity!==undefined)material.opacity=json.opacity;if(json.transparent!==undefined)material.transparent=json.transparent;if(json.alphaTest!==undefined)material.alphaTest=json.alphaTest;if(json.alphaHash!==undefined)material.alphaHash=json.alphaHash;if(json.depthFunc!==undefined)material.depthFunc=json.depthFunc;if(json.depthTest!==undefined)material.depthTest=json.depthTest;if(json.depthWrite!==undefined)material.depthWrite=json.depthWrite;if(json.colorWrite!==undefined)material.colorWrite=json.colorWrite;if(json.blendSrc!==undefined)material.blendSrc=json.blendSrc;if(json.blendDst!==undefined)material.blendDst=json.blendDst;
vendor: 3,279 bytes, line 4233
4233if(json.blendEquation!==undefined)material.blendEquation=json.blendEquation;if(json.blendSrcAlpha!==undefined)material.blendSrcAlpha=json.blendSrcAlpha;if(json.blendDstAlpha!==undefined)material.blendDstAlpha=json.blendDstAlpha;if(json.blendEquationAlpha!==undefined)material.blendEquationAlpha=json.blendEquationAlpha;if(json.blendColor!==undefined&&material.blendColor!==undefined)material.blendColor.setHex(json.blendColor);if(json.blendAlpha!==undefined)material.blendAlpha=json.blendAlpha;if(json.stencilWriteMask!==undefined)material.stencilWriteMask=json.stencilWriteMask;if(json.stencilFunc!==undefined)material.stencilFunc=json.stencilFunc;if(json.stencilRef!==undefined)material.stencilRef=json.stencilRef;if(json.stencilFuncMask!==undefined)material.stencilFuncMask=json.stencilFuncMask;if(json.stencilFail!==undefined)material.stencilFail=json.stencilFail;if(json.stencilZFail!==undefined)material.stencilZFail=json.stencilZFail;if(json.stencilZPass!==undefined)material.stencilZPass=json.stencilZPass;if(json.stencilWrite!==undefined)material.stencilWrite=json.stencilWrite;if(json.wireframe!==undefined)material.wireframe=json.wireframe;if(json.wireframeLinewidth!==undefined)material.wireframeLinewidth=json.wireframeLinewidth;if(json.wireframeLinecap!==undefined)material.wireframeLinecap=json.wireframeLinecap;if(json.wireframeLinejoin!==undefined)material.wireframeLinejoin=json.wireframeLinejoin;if(json.rotation!==undefined)material.rotation=json.rotation;if(json.linewidth!==undefined)material.linewidth=json.linewidth;if(json.dashSize!==undefined)material.dashSize=json.dashSize;if(json.gapSize!==undefined)material.gapSize=json.gapSize;if(json.scale!==undefined)material.scale=json.scale;if(json.polygonOffset!==undefined)material.polygonOffset=json.polygonOffset;if(json.polygonOffsetFactor!==undefined)material.polygonOffsetFactor=json.polygonOffsetFactor;if(json.polygonOffsetUnits!==undefined)material.polygonOffsetUnits=json.polygonOffsetUnits;if(json.dithering!==undefined)material.dithering=json.dithering;if(json.alphaToCoverage!==undefined)material.alphaToCoverage=json.alphaToCoverage;if(json.premultipliedAlpha!==undefined)material.premultipliedAlpha=json.premultipliedAlpha;if(json.forceSinglePass!==undefined)material.forceSinglePass=json.forceSinglePass;if(json.visible!==undefined)material.visible=json.visible;if(json.toneMapped!==undefined)material.toneMapped=json.toneMapped;if(json.userData!==undefined)material.userData=json.userData;if(json.vertexColors!==undefined){if(typeof json.vertexColors==="number"){material.vertexColors=json.vertexColors>0?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;
4233case"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}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 decodeText(array){if(typeof TextDecoder!=="undefined"){return new TextDecoder().decode(array)}let s="";for(let i=0,il=array.length;i<il;i++){s+=String.fromCharCode(array[i])}try{return decodeURIComponent(escape(s))}catch(e){return s}}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{console.error(e)}scope.manager.itemError(url)}
4233},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;i<il;i++){const attribute=attributeArray[i];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);bufferAttribute=new BufferAttribute(typedArray,attribute.itemSize,attribute.normalized)}if(attribute.name!==undefined)bufferAttribute.name=attribute.name;array.push(bufferAttribute)}geometry.morphAttributes[key]=array}}const morphTargetsRelative=json.data.morphTargetsRelative;if(morphTargetsRelative){geometry.morphTargetsRelative=true}const groups=json.data.groups||json.data.drawcalls||json.data.offsets;if(groups!==undefined){for(let i=0,n=groups.length;i!==n;++i){const group=groups[i];geometry.addGroup(group.start,group.count,group.materialIndex)}}const boundingSphere=json.data.boundingSphere;if(boundingSphere!==undefined){const center=new Vector3;if(boundingSphere.center!==undefined){center.fromArray(boundingSphere.center)}geometry.boundingSphere=new Sphere(center,boundingSphere.radius)}if(json.name)geometry.name=json.name;if(json.userData)geometry.userData=json.userData;return geometry}}class ObjectLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const path=this.path===""?LoaderUtils.extractUrlBase(url):this.path;this.resourcePath=this.resourcePath||path;const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,function(text){let json=null;try{json=JSON.parse(text)}catch(error){if(onError!==undefined)onError(error);console.error("THREE:ObjectLoader: Can't parse "+url+".",error.message);return}const metadata=json.metadata;if(metadata===undefined||metadata.type===undefined||metadata.type.toLowerCase()==="geometry"){if(onError!==undefined)onError(new Error("THREE.ObjectLoader: Can't load "+url));console.error("THREE.ObjectLoader: Can't load "+url);return}scope.parse(json,onLoad)},onProgress,onError)}async loadAsync(url,onProgress){const scope=this;const path=this.path===""?LoaderUtils.extractUrlBase(url):this.path;this.resourcePath=this.resourcePath||path;const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);const text=await loader.loadAsync(url,onProgress);const json=JSON.parse(text);const metadata=json.metadata;if(metadata===undefined||metadata.type===undefined||metadata.type.toLowerCase()==="geometry"){throw new Error("THREE.ObjectLoader: Can't load "+url)}return await scope.parseAsync(json)}parse(json,onLoad){const animations=this.parseAnimations(json.animations);const shapes=this.parseShapes(json.shapes);const geometries=this.parseGeometries(json.geometries,shapes);const images=this.parseImages(json.images,function(){if(onLoad!==undefined)onLoad(object)});const textures=this.parseTextures(json.textures,images);const materials=this.parseMaterials(json.materials,textures);const object=this.parseObject(json.object,geometries,materials,textures,animations);const skeletons=this.parseSkeletons(json.skeletons,object);this.bindSkeletons(object,skeletons);if(onLoad!==undefined){let hasImages=false;for(const uuid in images){if(images[uuid].data instanceof HTMLImageElement){hasImages=true;break}}if(hasImages===false)onLoad(object)}return object}async parseAsync(json){const animations=this.parseAnimations(json.animations);const shapes=this.parseShapes(json.shapes);const geometries=this.parseGeometries(json.geometries,shapes);const images=await this.parseImagesAsync(json.images);const textures=this.parseTextures(json.textures,images);const materials=this.parseMaterials(json.materials,textures);const object=this.parseObject(json.object,geometries,materials,textures,animations);const skeletons=this.parseSkeletons(json.skeletons,object);this.bindSkeletons(object,skeletons);return object}parseShapes(json){const shapes={};if(json!==undefined){for(let i=0,l=json.length;i<l;i++){const shape=new Shape().fromJSON(json[i]);shapes[shape.uuid]=shape}}return shapes}parseSkeletons(json,object){const skeletons={};const bones={};object.traverse(function(child){if(child.isBone)bones[child.uuid]=child});if(json!==undefined){for(let i=0,l=json.length;i<l;i++){const skeleton=new Skeleton().fromJSON(json[i],bones);skeletons[skeleton.uuid]=skeleton}}return skeletons}parseGeometries(json,shapes){const geometries={};if(json!==undefined){const bufferGeometryLoader=new BufferGeometryLoader;for(let i=0,l=json.length;i<l;i++){let geometry;const data=json[i];switch(data.type){case"BufferGeometry":case"InstancedBufferGeometry":geometry=bufferGeometryLoader.parse(data);break;default:if(data.type in Geometries){geometry=Geometries[data.type].fromJSON(data,shapes)}else{console.warn(`THREE.ObjectLoader: Unsupported geometry type "${data.type}"`)}}geometry.uuid=data.uuid;if(data.name!==undefined)geometry.name=data.name;
4233if(data.userData!==undefined)geometry.userData=data.userData;geometries[data.uuid]=geometry}}return geometries}parseMaterials(json,textures){const cache={};const materials={};if(json!==undefined){const loader=new MaterialLoader;loader.setTextures(textures);for(let i=0,l=json.length;i<l;i++){const data=json[i];if(cache[data.uuid]===undefined){cache[data.uuid]=loader.parse(data)}materials[data.uuid]=cache[data.uuid]}}return materials}parseAnimations(json){const animations={};if(json!==undefined){for(let i=0;i<json.length;i++){const data=json[i];const clip=AnimationClip.parse(data);animations[clip.uuid]=clip}}return animations}parseImages(json,onLoad){const scope=this;const images={};let loader;function loadImage(url){scope.manager.itemStart(url);return loader.load(url,function(){scope.manager.itemEnd(url)},undefined,function(){scope.manager.itemError(url);scope.manager.itemEnd(url)})}function deserializeImage(image){if(typeof image==="string"){const url=image;const path=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(url)?url:scope.resourcePath+url;return loadImage(path)}else{if(image.data){return{data:getTypedArray(image.type,image.data),width:image.width,height:image.height}}else{return null}}}if(json!==undefined&&json.length>0){const manager=new LoadingManager(onLoad);loader=new ImageLoader(manager);loader.setCrossOrigin(this.crossOrigin);for(let i=0,il=json.length;i<il;i++){const image=json[i];const url=image.url;if(Array.isArray(url)){const imageArray=[];for(let j=0,jl=url.length;j<jl;j++){const currentUrl=url[j];const deserializedImage=deserializeImage(currentUrl);if(deserializedImage!==null){if(deserializedImage instanceof HTMLImageElement){imageArray.push(deserializedImage)}else{imageArray.push(new DataTexture(deserializedImage.data,deserializedImage.width,deserializedImage.height))}}}images[image.uuid]=new Source(imageArray)}else{const deserializedImage=deserializeImage(image.url);images[image.uuid]=new Source(deserializedImage)}}}return images}async parseImagesAsync(json){const scope=this;const images={};let loader;async function deserializeImage(image){if(typeof image==="string"){const url=image;const path=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(url)?url:scope.resourcePath+url;return await loader.loadAsync(path)}else{if(image.data){return{data:getTypedArray(image.type,image.data),width:image.width,height:image.height}}else{return null}}}if(json!==undefined&&json.length>0){loader=new ImageLoader(this.manager);loader.setCrossOrigin(this.crossOrigin);for(let i=0,il=json.length;i<il;i++){const image=json[i];const url=image.url;if(Array.isArray(url)){const imageArray=[];for(let j=0,jl=url.length;j<jl;j++){const currentUrl=url[j];const deserializedImage=await deserializeImage(currentUrl);if(deserializedImage!==null){if(deserializedImage instanceof HTMLImageElement){imageArray.push(deserializedImage)}else{imageArray.push(new DataTexture(deserializedImage.data,deserializedImage.width,deserializedImage.height))}}}images[image.uuid]=new Source(imageArray)}else{const deserializedImage=await deserializeImage(image.url);images[image.uuid]=new Source(deserializedImage)}}}return images}parseTextures(json,images){function parseConstant(value,type){if(typeof value==="number")return value;console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",value);return type[value]}const textures={};if(json!==undefined){for(let i=0,l=json.length;i<l;i++){const data=json[i];if(data.image===undefined){console.warn("THREE.ObjectLoader: No \"image\" specified for",data.uuid)}if(images[data.image]===undefined){console.warn("THREE.ObjectLoader: Undefined image",data.image)}const source=images[data.image];const image=source.data;let texture;if(Array.isArray(image)){texture=new CubeTexture;if(image.length===6)texture.needsUpdate=true}else{if(image&&image.data){texture=new DataTexture}else{texture=new Texture}if(image)texture.needsUpdate=true}texture.source=source;texture.uuid=data.uuid;if(data.name!==undefined)texture.name=data.name;if(data.mapping!==undefined)texture.mapping=parseConstant(data.mapping,TEXTURE_MAPPING);if(data.channel!==undefined)texture.channel=data.channel;if(data.offset!==undefined)texture.offset.fromArray(data.offset);if(data.repeat!==undefined)texture.repeat.fromArray(data.repeat);if(data.center!==undefined)texture.center.fromArray(data.center);
4233if(data.rotation!==undefined)texture.rotation=data.rotation;if(data.wrap!==undefined){texture.wrapS=parseConstant(data.wrap[0],TEXTURE_WRAPPING);texture.wrapT=parseConstant(data.wrap[1],TEXTURE_WRAPPING)}if(data.format!==undefined)texture.format=data.format;if(data.internalFormat!==undefined)texture.internalFormat=data.internalFormat;if(data.type!==undefined)texture.type=data.type;if(data.colorSpace!==undefined)texture.colorSpace=data.colorSpace;if(data.minFilter!==undefined)texture.minFilter=parseConstant(data.minFilter,TEXTURE_FILTER);if(data.magFilter!==undefined)texture.magFilter=parseConstant(data.magFilter,TEXTURE_FILTER);if(data.anisotropy!==undefined)texture.anisotropy=data.anisotropy;if(data.flipY!==undefined)texture.flipY=data.flipY;if(data.generateMipmaps!==undefined)texture.generateMipmaps=data.generateMipmaps;if(data.premultiplyAlpha!==undefined)texture.premultiplyAlpha=data.premultiplyAlpha;if(data.unpackAlignment!==undefined)texture.unpackAlignment=data.unpackAlignment;if(data.compareFunction!==undefined)texture.compareFunction=data.compareFunction;if(data.userData!==undefined)texture.userData=data.userData;textures[data.uuid]=texture}}return textures}parseObject(data,geometries,materials,textures,animations){let object;function getGeometry(name){if(geometries[name]===undefined){console.warn("THREE.ObjectLoader: Undefined geometry",name)}return geometries[name]}function getMaterial(name){if(name===undefined)return undefined;if(Array.isArray(name)){const array=[];for(let i=0,l=name.length;i<l;i++){const uuid=name[i];if(materials[uuid]===undefined){console.warn("THREE.ObjectLoader: Undefined material",uuid)}array.push(materials[uuid])}return array}if(materials[name]===undefined){console.warn("THREE.ObjectLoader: Undefined material",name)}return materials[name]}function getTexture(uuid){if(textures[uuid]===undefined){console.warn("THREE.ObjectLoader: Undefined texture",uuid)}return textures[uuid]}let geometry,material;switch(data.type){case"Scene":object=new Scene;if(data.background!==undefined){if(Number.isInteger(data.background)){object.background=new Color(data.background)}else{object.background=getTexture(data.background)}}if(data.environment!==undefined){object.environment=getTexture(data.environment)}if(data.fog!==undefined){if(data.fog.type==="Fog"){object.fog=new Fog(data.fog.color,data.fog.near,data.fog.far)}else if(data.fog.type==="FogExp2"){object.fog=new FogExp2(data.fog.color,data.fog.density)}if(data.fog.name!==""){object.fog.name=data.fog.name}}if(data.backgroundBlurriness!==undefined)object.backgroundBlurriness=data.backgroundBlurriness;if(data.backgroundIntensity!==undefined)object.backgroundIntensity=data.backgroundIntensity;if(data.backgroundRotation!==undefined)object.backgroundRotation.fromArray(data.backgroundRotation);if(data.environmentIntensity!==undefined)object.environmentIntensity=data.environmentIntensity;if(data.environmentRotation!==undefined)object.environmentRotation.fromArray(data.environmentRotation);break;case"PerspectiveCamera":object=new PerspectiveCamera(data.fov,data.aspect,data.near,data.far);if(data.focus!==undefined)object.focus=data.focus;if(data.zoom!==undefined)object.zoom=data.zoom;if(data.filmGauge!==undefined)object.filmGauge=data.filmGauge;if(data.filmOffset!==undefined)object.filmOffset=data.filmOffset;if(data.view!==undefined)object.view=Object.assign({},data.view);break;case"OrthographicCamera":object=new OrthographicCamera(data.left,data.right,data.top,data.bottom,data.near,data.far);if(data.zoom!==undefined)object.zoom=data.zoom;if(data.view!==undefined)object.view=Object.assign({},data.view);break;case"AmbientLight":object=new AmbientLight(data.color,data.intensity);break;case"DirectionalLight":object=new DirectionalLight(data.color,data.intensity);break;case"PointLight":object=new PointLight(data.color,data.intensity,data.distance,data.decay);break;case"RectAreaLight":object=new RectAreaLight(data.color,data.intensity,data.width,data.height);break;case"SpotLight":object=new SpotLight(data.color,data.intensity,data.distance,data.angle,data.penumbra,data.decay);break;case"HemisphereLight":object=new HemisphereLight(data.color,data.groundColor,data.intensity);break;case"LightProbe":object=new LightProbe().fromJSON(data);break;case"SkinnedMesh":geometry=getGeometry(data.geometry);material=getMaterial(data.material);object=new SkinnedMesh(geometry,material);
4233if(data.bindMode!==undefined)object.bindMode=data.bindMode;if(data.bindMatrix!==undefined)object.bindMatrix.fromArray(data.bindMatrix);if(data.skeleton!==undefined)object.skeleton=data.skeleton;break;case"Mesh":geometry=getGeometry(data.geometry);material=getMaterial(data.material);object=new Mesh(geometry,material);break;case"InstancedMesh":geometry=getGeometry(data.geometry);material=getMaterial(data.material);const count=data.count;const instanceMatrix=data.instanceMatrix;const instanceColor=data.instanceColor;object=new InstancedMesh(geometry,material,count);object.instanceMatrix=new InstancedBufferAttribute(new Float32Array(instanceMatrix.array),16);if(instanceColor!==undefined)object.instanceColor=new InstancedBufferAttribute(new Float32Array(instanceColor.array),instanceColor.itemSize);break;case"BatchedMesh":geometry=getGeometry(data.geometry);material=getMaterial(data.material);object=new BatchedMesh(data.maxGeometryCount,data.maxVertexCount,data.maxIndexCount,material);object.geometry=geometry;object.perObjectFrustumCulled=data.perObjectFrustumCulled;object.sortObjects=data.sortObjects;object._drawRanges=data.drawRanges;object._reservedRanges=data.reservedRanges;object._visibility=data.visibility;object._active=data.active;object._bounds=data.bounds.map(bound=>{const box=new Box3;box.min.fromArray(bound.boxMin);box.max.fromArray(bound.boxMax);const sphere=new Sphere;sphere.radius=bound.sphereRadius;sphere.center.fromArray(bound.sphereCenter);return{boxInitialized:bound.boxInitialized,box:box,sphereInitialized:bound.sphereInitialized,sphere:sphere}});object._maxGeometryCount=data.maxGeometryCount;object._maxVertexCount=data.maxVertexCount;object._maxIndexCount=data.maxIndexCount;object._geometryInitialized=data.geometryInitialized;object._geometryCount=data.geometryCount;object._matricesTexture=getTexture(data.matricesTexture.uuid);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.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<children.length;i++){object.add(this.parseObject(children[i],geometries,materials,textures,animations))}}if(data.animations!==undefined){const objectAnimations=data.animations;for(let i=0;i<objectAnimations.length;i++){const uuid=objectAnimations[i];object.animations.push(animations[uuid])}}if(data.type==="LOD"){if(data.autoUpdate!==undefined)object.autoUpdate=data.autoUpdate;const levels=data.levels;for(let l=0;l<levels.length;l++){const level=levels[l];const child=object.getObjectByProperty("uuid",level.object);if(child!==undefined){object.addLevel(child,level.distance,level.hysteresis)}}}return object}bindSkeletons(object,skeletons){if(Object.keys(skeletons).length===0)return;object.traverse(function(child){if(child.isSkinnedMesh===true&&child.skeleton!==undefined){const skeleton=skeletons[child.skeleton];if(skeleton===undefined){console.warn("THREE.ObjectLoader: No skeleton found with UUID:",child.skeleton)}else{child.bind(skeleton,child.bindMatrix)}}})}}const TEXTURE_MAPPING={UVMapping:UVMapping,CubeReflectionMapping:CubeReflectionMapping,CubeRefractionMapping:CubeRefractionMapping,EquirectangularReflectionMapping:EquirectangularReflectionMapping,EquirectangularRefractionMapping:EquirectangularRefractionMapping,CubeUVReflectionMapping:CubeUVReflectionMapping};const TEXTURE_WRAPPING={RepeatWrapping:RepeatWrapping,ClampToEdgeWrapping:ClampToEdgeWrapping,MirroredRepeatWrapping:MirroredRepeatWrapping};const TEXTURE_FILTER={NearestFilter:NearestFilter,NearestMipmapNearestFilter:NearestMipmapNearestFilter,NearestMipmapLinearFilter:NearestMipmapLinearFilter,LinearFilter:LinearFilter,LinearMipmapNearestFilter:LinearMipmapNearestFilter,LinearMipmapLinearFilter:LinearMipmapLinearFilter};class ImageBitmapLoader extends Loader{constructor(manager){super(manager);this.isImageBitmapLoader=true;if(typeof createImageBitmap==="undefined"){console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.")}if(typeof fetch==="undefined"){console.warn("THREE.ImageBitmapLoader: fetch() not supported.")}this.options={premultiplyAlpha:"none"}}setOptions(options){this.options=options;return this}load(url,onLoad,onProgress,onError){if(url===undefined)url="";if(this.path!==undefined)url=this.path+url;url=this.manager.resolveURL(url);const scope=this;const cached=Cache.get(url);if(cached!==undefined){scope.manager.itemStart(url);if(cached.then){cached.then(imageBitmap=>{if(onLoad)onLoad(imageBitmap);scope.manager.itemEnd(url)}).catch(e=>{if(onError)onError(e)});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;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(url,imageBitmap);if(onLoad)onLoad(imageBitmap);scope.manager.itemEnd(url);return imageBitmap}).catch(function(e){if(onError)onError(e);
4233Cache.remove(url);scope.manager.itemError(url);scope.manager.itemEnd(url)});Cache.add(url,promise);scope.manager.itemStart(url)}}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{console.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 Clock{constructor(autoStart=true){this.autoStart=autoStart;this.startTime=0;this.oldTime=0;this.elapsedTime=0;this.running=false}start(){this.startTime=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=now();diff=(newTime-this.oldTime)/1000;this.oldTime=newTime;this.elapsedTime+=diff}return diff}}function now(){return(typeof performance==="undefined"?Date:performance).now()}const _position$1=new Vector3;const _quaternion$1=new Quaternion;const _scale$1=new Vector3;const _orientation$1=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;const up=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1);_orientation$1.set(0,0,-1).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(_orientation$1.x,endTime);listener.forwardY.linearRampToValueAtTime(_orientation$1.y,endTime);listener.forwardZ.linearRampToValueAtTime(_orientation$1.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(_orientation$1.x,_orientation$1.y,_orientation$1.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;
4233this.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){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===false){console.warn("THREE.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){console.warn("THREE.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(){if(this.hasPlaybackControl===false){console.warn("THREE.Audio: this Audio has no playback control.");return}this._progress=0;if(this.source!==null){this.source.stop();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;i<l;i++){this.filters[i-1].connect(this.filters[i])}this.filters[this.filters.length-1].connect(this.getOutput())}else{this.source.connect(this.getOutput())}this._connected=true;return this}disconnect(){if(this._connected===false){return}if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let i=1,l=this.filters.length;i<l;i++){this.filters[i-1].disconnect(this.filters[i])}this.filters[this.filters.length-1].disconnect(this.getOutput())}else{this.source.disconnect(this.getOutput())}this._connected=false;return this}getFilters(){return this.filters}setFilters(value){if(!value)value=[];if(this._connected===true){this.disconnect();this.filters=value.slice();this.connect()}else{this.filters=value.slice()}return this}setDetune(value){this.detune=value;if(this.isPlaying===true&&this.source.detune!==undefined){this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,0.01)}return this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(filter){return this.setFilters(filter?[filter]:[])}setPlaybackRate(value){if(this.hasPlaybackControl===false){console.warn("THREE.Audio: this Audio has no playback control.");return}this.playbackRate=value;if(this.isPlaying===true){this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,0.01)}return this}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=false}getLoop(){if(this.hasPlaybackControl===false){console.warn("THREE.Audio: this Audio has no playback control.");return false}return this.loop}setLoop(value){if(this.hasPlaybackControl===false){console.warn("THREE.Audio: this Audio has no playback control.");return}this.loop=value;if(this.isPlaying===true){this.source.loop=this.loop}return this}setLoopStart(value){this.loopStart=value;return this}setLoopEnd(value){this.loopEnd=value;return this}getVolume(){return this.gain.gain.value}setVolume(value){this.gain.gain.setTargetAtTime(value,this.context.currentTime,0.01);return this}}const _position=new Vector3;const _quaternion=new Quaternion;const _scale=new Vector3;const _orientation=new Vector3;class PositionalAudio extends Audio{constructor(listener){super(listener);this.panner=this.context.createPanner();this.panner.panningModel="HRTF";this.panner.connect(this.gain)}connect(){super.connect();this.panner.connect(this.gain)}disconnect(){super.disconnect();this.panner.disconnect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(value){this.panner.refDistance=value;return this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(value){this.panner.rolloffFactor=value;return this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(value){this.panner.distanceModel=value;return this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(value){this.panner.maxDistance=value;return this}setDirectionalCone(coneInnerAngle,coneOuterAngle,coneOuterGain){this.panner.coneInnerAngle=coneInnerAngle;this.panner.coneOuterAngle=coneOuterAngle;this.panner.coneOuterGain=coneOuterGain;return this}updateMatrixWorld(force){super.updateMatrixWorld(force);
4233if(this.hasPlaybackControl===true&&this.isPlaying===false)return;this.matrixWorld.decompose(_position,_quaternion,_scale);_orientation.set(0,0,1).applyQuaternion(_quaternion);const panner=this.panner;if(panner.positionX){const endTime=this.context.currentTime+this.listener.timeDelta;panner.positionX.linearRampToValueAtTime(_position.x,endTime);panner.positionY.linearRampToValueAtTime(_position.y,endTime);panner.positionZ.linearRampToValueAtTime(_position.z,endTime);panner.orientationX.linearRampToValueAtTime(_orientation.x,endTime);panner.orientationY.linearRampToValueAtTime(_orientation.y,endTime);panner.orientationZ.linearRampToValueAtTime(_orientation.z,endTime)}else{panner.setPosition(_position.x,_position.y,_position.z);panner.setOrientation(_orientation.x,_orientation.y,_orientation.z)}}}class AudioAnalyser{constructor(audio,fftSize=2048){this.analyser=audio.context.createAnalyser();this.analyser.fftSize=fftSize;this.data=new Uint8Array(this.analyser.frequencyBinCount);audio.getOutput().connect(this.analyser)}getFrequencyData(){this.analyser.getByteFrequencyData(this.data);return this.data}getAverageFrequency(){let value=0;const data=this.getFrequencyData();for(let i=0;i<data.length;i++){value+=data[i]}return value/data.length}}class PropertyMixer{constructor(binding,typeName,valueSize){this.binding=binding;this.valueSize=valueSize;let mixFunction,mixFunctionAdditive,setIdentity;switch(typeName){case"quaternion":mixFunction=this._slerp;mixFunctionAdditive=this._slerpAdditive;setIdentity=this._setAdditiveIdentityQuaternion;this.buffer=new Float64Array(valueSize*6);this._workIndex=5;break;case"string":case"bool":mixFunction=this._select;mixFunctionAdditive=this._select;setIdentity=this._setAdditiveIdentityOther;this.buffer=new Array(valueSize*5);break;default:mixFunction=this._lerp;mixFunctionAdditive=this._lerpAdditive;setIdentity=this._setAdditiveIdentityNumeric;this.buffer=new Float64Array(valueSize*5);}this._mixBufferRegion=mixFunction;this._mixBufferRegionAdditive=mixFunctionAdditive;this._setIdentity=setIdentity;this._origIndex=3;this._addIndex=4;this.cumulativeWeight=0;this.cumulativeWeightAdditive=0;this.useCount=0;this.referenceCount=0}accumulate(accuIndex,weight){const buffer=this.buffer,stride=this.valueSize,offset=accuIndex*stride+stride;let currentWeight=this.cumulativeWeight;if(currentWeight===0){for(let i=0;i!==stride;++i){buffer[offset+i]=buffer[i]}currentWeight=weight}else{currentWeight+=weight;const mix=weight/currentWeight;this._mixBufferRegion(buffer,offset,0,mix,stride)}this.cumulativeWeight=currentWeight}accumulateAdditive(weight){const buffer=this.buffer,stride=this.valueSize,offset=stride*this._addIndex;if(this.cumulativeWeightAdditive===0){this._setIdentity()}this._mixBufferRegionAdditive(buffer,offset,0,weight,stride);this.cumulativeWeightAdditive+=weight}apply(accuIndex){const stride=this.valueSize,buffer=this.buffer,offset=accuIndex*stride+stride,weight=this.cumulativeWeight,weightAdditive=this.cumulativeWeightAdditive,binding=this.binding;this.cumulativeWeight=0;this.cumulativeWeightAdditive=0;if(weight<1){const originalValueOffset=stride*this._origIndex;this._mixBufferRegion(buffer,offset,originalValueOffset,1-weight,stride)}if(weightAdditive>0){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<endIndex;i++){this.buffer[i]=0}}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric();this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const startIndex=this._origIndex*this.valueSize;const targetIndex=this._addIndex*this.valueSize;
4233for(let i=0;i<this.valueSize;i++){this.buffer[targetIndex+i]=this.buffer[startIndex+i]}}_select(buffer,dstOffset,srcOffset,t,stride){if(t>=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<children.length;i++){const childNode=children[i];if(childNode.name===nodeName||childNode.uuid===nodeName){return childNode}const result=searchNodeSubtree(childNode.children);if(result)return result}return null};const subTreeNode=searchNodeSubtree(root.children);if(subTreeNode){return subTreeNode}}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(buffer,offset){buffer[offset]=this.targetObject[this.propertyName]}_getValue_array(buffer,offset){const source=this.resolvedProperty;for(let i=0,n=source.length;i!==n;++i){buffer[offset++]=source[i]}}_getValue_arrayElement(buffer,offset){buffer[offset]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(buffer,offset){this.resolvedProperty.toArray(buffer,offset)}_setValue_direct(buffer,offset){this.targetObject[this.propertyName]=buffer[offset]}_setValue_direct_setNeedsUpdate(buffer,offset){this.targetObject[this.propertyName]=buffer[offset];this.targetObject.needsUpdate=true}_setValue_direct_setMatrixWorldNeedsUpdate(buffer,offset){this.targetObject[this.propertyName]=buffer[offset];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_array(buffer,offset){const dest=this.resolvedProperty;for(let i=0,n=dest.length;i!==n;++i){dest[i]=buffer[offset++]}}_setValue_array_setNeedsUpdate(buffer,offset){const dest=this.resolvedProperty;for(let i=0,n=dest.length;i!==n;++i){dest[i]=buffer[offset++]}this.targetObject.needsUpdate=true}
4233_setValue_array_setMatrixWorldNeedsUpdate(buffer,offset){const dest=this.resolvedProperty;for(let i=0,n=dest.length;i!==n;++i){dest[i]=buffer[offset++]}this.targetObject.matrixWorldNeedsUpdate=true}_setValue_arrayElement(buffer,offset){this.resolvedProperty[this.propertyIndex]=buffer[offset]}_setValue_arrayElement_setNeedsUpdate(buffer,offset){this.resolvedProperty[this.propertyIndex]=buffer[offset];this.targetObject.needsUpdate=true}_setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer,offset){this.resolvedProperty[this.propertyIndex]=buffer[offset];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_fromArray(buffer,offset){this.resolvedProperty.fromArray(buffer,offset)}_setValue_fromArray_setNeedsUpdate(buffer,offset){this.resolvedProperty.fromArray(buffer,offset);this.targetObject.needsUpdate=true}_setValue_fromArray_setMatrixWorldNeedsUpdate(buffer,offset){this.resolvedProperty.fromArray(buffer,offset);this.targetObject.matrixWorldNeedsUpdate=true}_getValue_unbound(targetArray,offset){this.bind();this.getValue(targetArray,offset)}_setValue_unbound(sourceArray,offset){this.bind();this.setValue(sourceArray,offset)}bind(){let targetObject=this.node;const parsedPath=this.parsedPath;const objectName=parsedPath.objectName;const propertyName=parsedPath.propertyName;let propertyIndex=parsedPath.propertyIndex;if(!targetObject){targetObject=PropertyBinding.findNode(this.rootNode,parsedPath.nodeName);this.node=targetObject}this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(!targetObject){console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");return}if(objectName){let objectIndex=parsedPath.objectIndex;switch(objectName){case"materials":if(!targetObject.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!targetObject.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}targetObject=targetObject.material.materials;break;case"bones":if(!targetObject.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}targetObject=targetObject.skeleton.bones;for(let i=0;i<targetObject.length;i++){if(targetObject[i].name===objectIndex){objectIndex=i;break}}break;case"map":if("map"in targetObject){targetObject=targetObject.map;break}if(!targetObject.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!targetObject.material.map){console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);return}targetObject=targetObject.material.map;break;default:if(targetObject[objectName]===undefined){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}targetObject=targetObject[objectName];}
4233if(objectIndex!==undefined){if(targetObject[objectIndex]===undefined){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,targetObject);return}targetObject=targetObject[objectIndex]}}const nodeProperty=targetObject[propertyName];if(nodeProperty===undefined){const nodeName=parsedPath.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+nodeName+"."+propertyName+" but it wasn't found.",targetObject);return}let versioning=this.Versioning.None;this.targetObject=targetObject;if(targetObject.needsUpdate!==undefined){versioning=this.Versioning.NeedsUpdate}else if(targetObject.matrixWorldNeedsUpdate!==undefined){versioning=this.Versioning.MatrixWorldNeedsUpdate}let bindingType=this.BindingType.Direct;if(propertyIndex!==undefined){if(propertyName==="morphTargetInfluences"){if(!targetObject.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!targetObject.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}if(targetObject.morphTargetDictionary[propertyIndex]!==undefined){propertyIndex=targetObject.morphTargetDictionary[propertyIndex]}}bindingType=this.BindingType.ArrayElement;this.resolvedProperty=nodeProperty;this.propertyIndex=propertyIndex}else if(nodeProperty.fromArray!==undefined&&nodeProperty.toArray!==undefined){bindingType=this.BindingType.HasFromToArray;this.resolvedProperty=nodeProperty}else if(Array.isArray(nodeProperty)){bindingType=this.BindingType.EntireArray;this.resolvedProperty=nodeProperty}else{this.propertyName=propertyName}this.getValue=this.GetterByBindingType[bindingType];this.setValue=this.SetterByBindingTypeAndVersioning[bindingType][versioning]}unbind(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}}PropertyBinding.Composite=Composite;PropertyBinding.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};PropertyBinding.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};PropertyBinding.prototype.GetterByBindingType=[PropertyBinding.prototype._getValue_direct,PropertyBinding.prototype._getValue_array,PropertyBinding.prototype._getValue_arrayElement,PropertyBinding.prototype._getValue_toArray];PropertyBinding.prototype.SetterByBindingTypeAndVersioning=[[PropertyBinding.prototype._setValue_direct,PropertyBinding.prototype._setValue_direct_setNeedsUpdate,PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_array,PropertyBinding.prototype._setValue_array_setNeedsUpdate,PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_arrayElement,PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_fromArray,PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class AnimationObjectGroup{constructor(){this.isAnimationObjectGroup=true;this.uuid=generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;const indices={};this._indicesByUUID=indices;for(let i=0,n=arguments.length;i!==n;++i){indices[arguments[i].uuid]=i}this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};const scope=this;this.stats={objects:{get total(){return scope._objects.length},get inUse(){return this.total-scope.nCachedObjects_}},get bindingsPerObject(){return scope._bindings.length}}}add(){const objects=this._objects,indicesByUUID=this._indicesByUUID,paths=this._paths,parsedPaths=this._parsedPaths,bindings=this._bindings,nBindings=bindings.length;let knownObject=undefined,nObjects=objects.length,nCachedObjects=this.nCachedObjects_;for(let i=0,n=arguments.length;i!==n;++i){const object=arguments[i],uuid=object.uuid;let index=indicesByUUID[uuid];if(index===undefined){index=nObjects++;indicesByUUID[uuid]=index;objects.push(object);for(let j=0,m=nBindings;j!==m;++j){bindings[j].push(new PropertyBinding(object,paths[j],parsedPaths[j]))}}else if(index<nCachedObjects){knownObject=objects[index];const firstActiveIndex=--nCachedObjects,lastCachedObject=objects[firstActiveIndex];indicesByUUID[lastCachedObject.uuid]=index;objects[index]=lastCachedObject;indicesByUUID[uuid]=firstActiveIndex;objects[firstActiveIndex]=object;for(let j=0,m=nBindings;j!==m;++j){const bindingsForPath=bindings[j],lastCached=bindingsForPath[firstActiveIndex];let binding=bindingsForPath[index];bindingsForPath[index]=lastCached;if(binding===undefined){binding=new PropertyBinding(object,paths[j],parsedPaths[j])}bindingsForPath[firstActiveIndex]=binding}}else if(objects[index]!==knownObject){console.error("THREE.AnimationObjectGroup: Different objects with the same UUID "+"detected. Clean the caches or recreate your infrastru
4233cture when reloading scenes.")}}this.nCachedObjects_=nCachedObjects}remove(){const objects=this._objects,indicesByUUID=this._indicesByUUID,bindings=this._bindings,nBindings=bindings.length;let nCachedObjects=this.nCachedObjects_;for(let i=0,n=arguments.length;i!==n;++i){const object=arguments[i],uuid=object.uuid,index=indicesByUUID[uuid];if(index!==undefined&&index>=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(index<nCachedObjects){const firstActiveIndex=--nCachedObjects,lastCachedObject=objects[firstActiveIndex],lastIndex=--nObjects,lastObject=objects[lastIndex];indicesByUUID[lastCachedObject.uuid]=index;objects[index]=lastCachedObject;indicesByUUID[lastObject.uuid]=firstActiveIndex;objects[firstActiveIndex]=lastObject;objects.pop();for(let j=0,m=nBindings;j!==m;++j){const bindingsForPath=bindings[j],lastCached=bindingsForPath[firstActiveIndex],last=bindingsForPath[lastIndex];bindingsForPath[index]=lastCached;bindingsForPath[firstActiveIndex]=last;bindingsForPath.pop()}}else{const lastIndex=--nObjects,lastObject=objects[lastIndex];if(lastIndex>0){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){fadeOutAction.fadeOut(duration);this.fadeIn(duration);if(warp){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){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}
4233_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}}
4233_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<this._nActiveActions}_addInactiveAction(action,clipUuid,rootUuid){const actions=this._actions,actionsByClip=this._actionsByClip;let actionsForClip=actionsByClip[clipUuid];if(actionsForClip===undefined){actionsForClip={knownActions:[action],actionByRoot:{}};action._byClipCacheIndex=0;actionsByClip[clipUuid]=actionsForClip}else{const knownActions=actionsForClip.knownActions;action._byClipCacheIndex=knownActions.length;knownActions.push(action)}action._cacheIndex=actions.length;actions.push(action);actionsForClip.actionByRoot[rootUuid]=action}_removeInactiveAction(action){const actions=this._actions,lastInactiveAction=actions[actions.length-1],cacheIndex=action._cacheIndex;lastInactiveAction._cacheIndex=cacheIndex;actions[cacheIndex]=lastInactiveAction;actions.pop();action._cacheIndex=null;const clipUuid=action._clip.uuid,actionsByClip=this._actionsByClip,actionsForClip=actionsByClip[clipUuid],knownActionsForClip=actionsForClip.knownActions,lastKnownAction=knownActionsForClip[knownActionsForClip.length-1],byClipCacheIndex=action._byClipCacheIndex;lastKnownAction._byClipCacheIndex=byClipCacheIndex;knownActionsForClip[byClipCacheIndex]=lastKnownAction;knownActionsForClip.pop();action._byClipCacheIndex=null;const actionByRoot=actionsForClip.actionByRoot,rootUuid=(action._localRoot||this._root).uuid;delete actionByRoot[rootUuid];if(knownActionsForClip.length===0){delete actionsByClip[clipUuid]}this._removeInactiveBindingsForAction(action)}_removeInactiveBindingsForAction(action){const bindings=action._propertyBindings;for(let i=0,n=bindings.length;i!==n;++i){const binding=bindings[i];if(--binding.referenceCount===0){this._removeInactiveBinding(binding)}}}_lendAction(action){const actions=this._actions,prevIndex=action._cacheIndex,lastActiveIndex=this._nActiveActions++,firstInactiveAction=actions[lastActiveIndex];action._cacheIndex=lastActiveIndex;actions[lastActiveIndex]=action;firstInactiveAction._cacheIndex=prevIndex;actions[prevIndex]=firstInactiveAction}_takeBackAction(action){const actions=this._actions,prevIndex=action._cacheIndex,firstInactiveIndex=--this._nActiveActions,lastActiveAction=actions[firstInactiveIndex];action._cacheIndex=firstInactiveIndex;actions[firstInactiveIndex]=action;lastActiveAction._cacheIndex=prevIndex;actions[prevIndex]=lastActiveAction}_addInactiveBinding(binding,rootUuid,trackName){const bindingsByRoot=this._bindingsByRootAndName,bindings=this._bindings;let bindingByName=bindingsByRoot[rootUuid];if(bindingByName===undefined){bindingByName={};bindingsByRoot[rootUuid]=bindingByName}bindingByName[trackName]=binding;binding._cacheIndex=bindings.length;bindings.push(binding)}_removeInactiveBinding(binding){const bindings=this._bindings,propBinding=binding.binding,rootUuid=propBinding.rootNode.uuid,trackName=propBinding.path,bindingsByRoot=this._bindingsByRootAndName,bindingByName=bindingsByRoot[rootUuid],lastInactiveBinding=bindings[bindings.length-1],cacheIndex=binding._cacheIndex;lastInactiveBinding._cacheIndex=cacheIndex;bindings[cacheIndex]=lastInactiveBinding;bindings.pop();delete bindingByName[trackName];if(Object.keys(bindingByName).length===0){delete bindingsByRoot[rootUuid]}}_lendBinding(binding){const bindings=this._bindings,prevIndex=binding._cacheIndex,lastActiveIndex=this._nActiveBindings++,firstInactiveBinding=bindings[lastActiveIndex];binding._cacheIndex=lastActiveIndex;bindings[lastActiveIndex]=binding;firstInactiveBinding._cacheIndex=prevIndex;bindings[prevIndex]=firstInactiveBinding}_takeBackBinding(binding){const bindings=this._bindings,prevIndex=binding._cacheIndex,firstInactiveIndex=--this._nActiveBindings,lastActiveBinding=bindings[firstInactiveIndex];binding._cacheIndex=firstInactiveIndex;bindings[firstInactiveIndex]=binding;lastActiveBinding._cacheIndex=prevIndex;bindings[prevIndex]=lastActiveBinding}_lendControlInterpolant(){const interpolants=this._controlInterpolants,lastActiveIndex=this._nActiveControlInterpolants++;let interpolant=interpolants[lastActiveIndex];if(interpolant===undefined){interpolant=new LinearInterpolant(new Float32Array(2),new Float32Array(2),1,_controlInterpolantsResultBuffer);interpolant.__cacheIndex=lastActiveIndex;interpolants[lastActiveIndex]=interpolant}return interpolant}_takeBackControlInterpolant(interpolant){const interpolants=this._controlInterpolants,prevIndex=interpolant.__cacheIndex,firstInactiveIndex=--this._nActiveControlInterpolants,lastActiveInterpolant=interpolants[firstInactiveIndex];interpolant.__cacheIndex=firstInactiveIndex;interpolants[firstInactiveIndex]=interpolant;lastActiveInterpolant.__cacheIndex=prevIndex;interpolants[prevIndex]=lastActiveInterpolant}clipAction(clip,optionalRoot,blendMode){const root=optionalRoot||this._root,rootUuid=root.uuid;
4233let clipObject=typeof clip==="string"?AnimationClip.findByName(root,clip):clip;const clipUuid=clipObject!==null?clipObject.uuid:clip;const actionsForClip=this._actionsByClip[clipUuid];let prototypeAction=null;if(blendMode===undefined){if(clipObject!==null){blendMode=clipObject.blendMode}else{blendMode=NormalAnimationBlendMode}}if(actionsForClip!==undefined){const existingAction=actionsForClip.actionByRoot[rootUuid];if(existingAction!==undefined&&existingAction.blendMode===blendMode){return existingAction}prototypeAction=actionsForClip.knownActions[0];if(clipObject===null)clipObject=prototypeAction._clip}if(clipObject===null)return null;const newAction=new AnimationAction(this,clipObject,optionalRoot,blendMode);this._bindAction(newAction,prototypeAction);this._addInactiveAction(newAction,clipUuid,rootUuid);return newAction}existingAction(clip,optionalRoot){const root=optionalRoot||this._root,rootUuid=root.uuid,clipObject=typeof clip==="string"?AnimationClip.findByName(root,clip):clip,clipUuid=clipObject?clipObject.uuid:clip,actionsForClip=this._actionsByClip[clipUuid];if(actionsForClip!==undefined){return actionsForClip.actionByRoot[rootUuid]||null}return null}stopAllAction(){const actions=this._actions,nActions=this._nActiveActions;for(let i=nActions-1;i>=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(timeInSeconds){this.time=0;for(let i=0;i<this._actions.length;i++){this._actions[i].time=0}return this.update(timeInSeconds)}getRoot(){return this._root}uncacheClip(clip){const actions=this._actions,clipUuid=clip.uuid,actionsByClip=this._actionsByClip,actionsForClip=actionsByClip[clipUuid];if(actionsForClip!==undefined){const actionsToRemove=actionsForClip.knownActions;for(let i=0,n=actionsToRemove.length;i!==n;++i){const action=actionsToRemove[i];this._deactivateAction(action);const cacheIndex=action._cacheIndex,lastInactiveAction=actions[actions.length-1];action._cacheIndex=null;action._byClipCacheIndex=null;lastInactiveAction._cacheIndex=cacheIndex;actions[cacheIndex]=lastInactiveAction;actions.pop();this._removeInactiveBindingsForAction(action)}delete actionsByClip[clipUuid]}}uncacheRoot(root){const rootUuid=root.uuid,actionsByClip=this._actionsByClip;for(const clipUuid in actionsByClip){const actionByRoot=actionsByClip[clipUuid].actionByRoot,action=actionByRoot[rootUuid];if(action!==undefined){this._deactivateAction(action);this._removeInactiveAction(action)}}const bindingsByRoot=this._bindingsByRootAndName,bindingByName=bindingsByRoot[rootUuid];if(bindingByName!==undefined){for(const trackName in bindingByName){const binding=bindingByName[trackName];binding.restoreOriginalState();this._removeInactiveBinding(binding)}}}uncacheAction(clip,optionalRoot){const action=this.existingAction(clip,optionalRoot);if(action!==null){this._deactivateAction(action);this._removeInactiveAction(action)}}}class Uniform{constructor(value){this.value=value}clone(){return new Uniform(this.value.clone===undefined?this.value:this.value.clone())}}let _id=0;
4233class UniformsGroup extends EventDispatcher{constructor(){super();this.isUniformsGroup=true;Object.defineProperty(this,"id",{value:_id++});this.name="";this.usage=StaticDrawUsage;this.uniforms=[]}add(uniform){this.uniforms.push(uniform);return this}remove(uniform){const index=this.uniforms.indexOf(uniform);if(index!==-1)this.uniforms.splice(index,1);return this}setName(name){this.name=name;return this}setUsage(value){this.usage=value;return this}dispose(){this.dispatchEvent({type:"dispose"});return this}copy(source){this.name=source.name;this.usage=source.usage;const uniformsSource=source.uniforms;this.uniforms.length=0;for(let i=0,l=uniformsSource.length;i<l;i++){const uniforms=Array.isArray(uniformsSource[i])?uniformsSource[i]:[uniformsSource[i]];for(let j=0;j<uniforms.length;j++){this.uniforms.push(uniforms[j].clone())}}return this}clone(){return new this.constructor().copy(this)}}class InstancedInterleavedBuffer extends InterleavedBuffer{constructor(array,stride,meshPerAttribute=1){super(array,stride);this.isInstancedInterleavedBuffer=true;this.meshPerAttribute=meshPerAttribute}copy(source){super.copy(source);this.meshPerAttribute=source.meshPerAttribute;return this}clone(data){const ib=super.clone(data);ib.meshPerAttribute=this.meshPerAttribute;return ib}toJSON(data){const json=super.toJSON(data);json.isInstancedInterleavedBuffer=true;json.meshPerAttribute=this.meshPerAttribute;return json}}class GLBufferAttribute{constructor(buffer,type,itemSize,elementSize,count){this.isGLBufferAttribute=true;this.name="";this.buffer=buffer;this.type=type;this.itemSize=itemSize;this.elementSize=elementSize;this.count=count;this.version=0}set needsUpdate(value){if(value===true)this.version++}setBuffer(buffer){this.buffer=buffer;return this}setType(type,elementSize){this.type=type;this.elementSize=elementSize;return this}setItemSize(itemSize){this.itemSize=itemSize;return this}setCount(count){this.count=count;return this}}const _matrix=new Matrix4;class Raycaster{constructor(origin,direction,near=0,far=Infinity){this.ray=new Ray(origin,direction);this.near=near;this.far=far;this.camera=null;this.layers=new Layers;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(origin,direction){this.ray.set(origin,direction)}setFromCamera(coords,camera){if(camera.isPerspectiveCamera){this.ray.origin.setFromMatrixPosition(camera.matrixWorld);this.ray.direction.set(coords.x,coords.y,0.5).unproject(camera).sub(this.ray.origin).normalize();this.camera=camera}else if(camera.isOrthographicCamera){this.ray.origin.set(coords.x,coords.y,(camera.near+camera.far)/(camera.near-camera.far)).unproject(camera);this.ray.direction.set(0,0,-1).transformDirection(camera.matrixWorld);this.camera=camera}else{console.error("THREE.Raycaster: Unsupported camera type: "+camera.type)}}setFromXRController(controller){_matrix.identity().extractRotation(controller.matrixWorld);this.ray.origin.setFromMatrixPosition(controller.matrixWorld);this.ray.direction.set(0,0,-1).applyMatrix4(_matrix);return this}intersectObject(object,recursive=true,intersects=[]){intersect(object,this,intersects,recursive);intersects.sort(ascSort);return intersects}intersectObjects(objects,recursive=true,intersects=[]){for(let i=0,l=objects.length;i<l;i++){intersect(objects[i],this,intersects,recursive)}intersects.sort(ascSort);return intersects}}function ascSort(a,b){return a.distance-b.distance}function intersect(object,raycaster,intersects,recursive){if(object.layers.test(raycaster.layers)){object.raycast(raycaster,intersects)}if(recursive===true){const children=object.children;for(let i=0,l=children.length;i<l;i++){intersect(children[i],raycaster,intersects,true)}}}class Spherical{constructor(radius=1,phi=0,theta=0){this.radius=radius;this.phi=phi;this.theta=theta;return this}set(radius,phi,theta){this.radius=radius;this.phi=phi;this.theta=theta;return this}copy(other){this.radius=other.radius;this.phi=other.phi;this.theta=other.theta;return this}makeSafe(){const EPS=0.000001;this.phi=Math.max(EPS,Math.min(Math.PI-EPS,this.phi));return this}setFromVector3(v){return this.setFromCartesianCoords(v.x,v.y,v.z)}setFromCartesianCoords(x,y,z){this.radius=Math.sqrt(x*x+y*y+z*z);if(this.radius===0){this.theta=0;this.phi=0}else{this.theta=Math.atan2(x,z);this.phi=Math.acos(clamp(y/this.radius,-1,1))}return this}clone(){return new this.constructor().copy(this)}}class Cylindrical{constructor(radius=1,theta=0,y=0){this.radius=radius;this.theta=theta;this.y=y;return this}set(radius,theta,y){this.radius=radius;this.theta=theta;this.y=y;return this}
4233copy(other){this.radius=other.radius;this.theta=other.theta;this.y=other.y;return this}setFromVector3(v){return this.setFromCartesianCoords(v.x,v.y,v.z)}setFromCartesianCoords(x,y,z){this.radius=Math.sqrt(x*x+z*z);this.theta=Math.atan2(x,z);this.y=y;return this}clone(){return new this.constructor().copy(this)}}const _vector$4=new Vector2;class Box2{constructor(min=new Vector2(+Infinity,+Infinity),max=new Vector2(-Infinity,-Infinity)){this.isBox2=true;this.min=min;this.max=max}set(min,max){this.min.copy(min);this.max.copy(max);return this}setFromPoints(points){this.makeEmpty();for(let i=0,il=points.length;i<il;i++){this.expandByPoint(points[i])}return this}setFromCenterAndSize(center,size){const halfSize=_vector$4.copy(size).multiplyScalar(0.5);this.min.copy(center).sub(halfSize);this.max.copy(center).add(halfSize);return this}clone(){return new this.constructor().copy(this)}copy(box){this.min.copy(box.min);this.max.copy(box.max);return this}makeEmpty(){this.min.x=this.min.y=+Infinity;this.max.x=this.max.y=-Infinity;return this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(target){return this.isEmpty()?target.set(0,0):target.addVectors(this.min,this.max).multiplyScalar(0.5)}getSize(target){return this.isEmpty()?target.set(0,0):target.subVectors(this.max,this.min)}expandByPoint(point){this.min.min(point);this.max.max(point);return this}expandByVector(vector){this.min.sub(vector);this.max.add(vector);return this}expandByScalar(scalar){this.min.addScalar(-scalar);this.max.addScalar(scalar);return this}containsPoint(point){return point.x<this.min.x||point.x>this.max.x||point.y<this.min.y||point.y>this.max.y?false:true}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?false:true}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;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)}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;i<l;i++,j++){const p1=i/l*Math.PI*2;const p2=j/l*Math.PI*2;positions.push(Math.cos(p1),Math.sin(p1),1,Math.cos(p2),Math.sin(p2),1)}geometry.setAttribute("position",new Float32BufferAttribute(positions,3));const material=new LineBasicMaterial({fog:false,toneMapped:false});this.cone=new LineSegments(geometry,material);this.add(this.cone);this.update()}dispose(){this.cone.geometry.dispose();this.cone.material.dispose()}
4233update(){this.light.updateWorldMatrix(true,false);this.light.target.updateWorldMatrix(true,false);if(this.parent){this.parent.updateWorldMatrix(true);this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)}else{this.matrix.copy(this.light.matrixWorld)}this.matrixWorld.copy(this.light.matrixWorld);const coneLength=this.light.distance?this.light.distance:1000;const coneWidth=coneLength*Math.tan(this.light.angle);this.cone.scale.set(coneWidth,coneWidth,coneLength);_vector$3.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(_vector$3);if(this.color!==undefined){this.cone.material.color.set(this.color)}else{this.cone.material.color.copy(this.light.color)}}}const _vector$2=new Vector3;const _boneMatrix=new Matrix4;const _matrixWorldInv=new Matrix4;class SkeletonHelper extends LineSegments{constructor(object){const bones=getBoneList(object);const geometry=new BufferGeometry;const vertices=[];const colors=[];const color1=new Color(0,0,1);const color2=new Color(0,1,0);for(let i=0;i<bones.length;i++){const bone=bones[i];if(bone.parent&&bone.parent.isBone){vertices.push(0,0,0);vertices.push(0,0,0);colors.push(color1.r,color1.g,color1.b);colors.push(color2.r,color2.g,color2.b)}}geometry.setAttribute("position",new Float32BufferAttribute(vertices,3));geometry.setAttribute("color",new Float32BufferAttribute(colors,3));const material=new LineBasicMaterial({vertexColors:true,depthTest:false,depthWrite:false,toneMapped:false,transparent:true});super(geometry,material);this.isSkeletonHelper=true;this.type="SkeletonHelper";this.root=object;this.bones=bones;this.matrix=object.matrixWorld;this.matrixAutoUpdate=false}updateMatrixWorld(force){const bones=this.bones;const geometry=this.geometry;const position=geometry.getAttribute("position");_matrixWorldInv.copy(this.root.matrixWorld).invert();for(let i=0,j=0;i<bones.length;i++){const bone=bones[i];if(bone.parent&&bone.parent.isBone){_boneMatrix.multiplyMatrices(_matrixWorldInv,bone.matrixWorld);_vector$2.setFromMatrixPosition(_boneMatrix);position.setXYZ(j,_vector$2.x,_vector$2.y,_vector$2.z);_boneMatrix.multiplyMatrices(_matrixWorldInv,bone.parent.matrixWorld);_vector$2.setFromMatrixPosition(_boneMatrix);position.setXYZ(j+1,_vector$2.x,_vector$2.y,_vector$2.z);j+=2}}geometry.getAttribute("position").needsUpdate=true;super.updateMatrixWorld(force)}dispose(){this.geometry.dispose();this.material.dispose()}}function getBoneList(object){const boneList=[];if(object.isBone===true){boneList.push(object)}for(let i=0;i<object.children.length;i++){boneList.push.apply(boneList,getBoneList(object.children[i]))}return boneList}class PointLightHelper extends Mesh{constructor(light,sphereSize,color){const geometry=new SphereGeometry(sphereSize,4,2);const material=new MeshBasicMaterial({wireframe:true,fog:false,toneMapped:false});super(geometry,material);this.light=light;this.color=color;this.type="PointLightHelper";this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=false;this.update()}dispose(){this.geometry.dispose();this.material.dispose()}update(){this.light.updateWorldMatrix(true,false);if(this.color!==undefined){this.material.color.set(this.color)}else{this.material.color.copy(this.light.color)}}}const _vector$1=new Vector3;const _color1=new Color;const _color2=new Color;class HemisphereLightHelper extends Object3D{constructor(light,size,color){super();this.light=light;this.matrix=light.matrixWorld;this.matrixAutoUpdate=false;this.color=color;this.type="HemisphereLightHelper";const geometry=new OctahedronGeometry(size);geometry.rotateY(Math.PI*0.5);this.material=new MeshBasicMaterial({wireframe:true,fog:false,toneMapped:false});if(this.color===undefined)this.material.vertexColors=true;const position=geometry.getAttribute("position");const colors=new Float32Array(position.count*3);geometry.setAttribute("color",new BufferAttribute(colors,3));this.add(new Mesh(geometry,this.material));this.update()}dispose(){this.children[0].geometry.dispose();this.children[0].material.dispose()}update(){const mesh=this.children[0];if(this.color!==undefined){this.material.color.set(this.color)}else{const colors=mesh.geometry.getAttribute("color");_color1.copy(this.light.color);_color2.copy(this.light.groundColor);for(let i=0,l=colors.count;i<l;i++){const color=i<l/2?_color1:_color2;colors.setXYZ(i,color.r,color.g,color.b)}colors.needsUpdate=true}
4233this.light.updateWorldMatrix(true,false);mesh.lookAt(_vector$1.setFromMatrixPosition(this.light.matrixWorld).negate())}}class GridHelper extends LineSegments{constructor(size=10,divisions=10,color1=4473924,color2=8947848){color1=new Color(color1);color2=new Color(color2);const center=divisions/2;const step=size/divisions;const halfSize=size/2;const vertices=[],colors=[];for(let i=0,j=0,k=-halfSize;i<=divisions;i++,k+=step){vertices.push(-halfSize,0,k,halfSize,0,k);vertices.push(k,0,-halfSize,k,0,halfSize);const color=i===center?color1:color2;color.toArray(colors,j);j+=3;color.toArray(colors,j);j+=3;color.toArray(colors,j);j+=3;color.toArray(colors,j);j+=3}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="GridHelper"}dispose(){this.geometry.dispose();this.material.dispose()}}class PolarGridHelper extends LineSegments{constructor(radius=10,sectors=16,rings=8,divisions=64,color1=4473924,color2=8947848){color1=new Color(color1);color2=new Color(color2);const vertices=[];const colors=[];if(sectors>1){for(let i=0;i<sectors;i++){const v=i/sectors*(Math.PI*2);const x=Math.sin(v)*radius;const z=Math.cos(v)*radius;vertices.push(0,0,0);vertices.push(x,0,z);const color=i&1?color1:color2;colors.push(color.r,color.g,color.b);colors.push(color.r,color.g,color.b)}}for(let i=0;i<rings;i++){const color=i&1?color1:color2;const r=radius-radius/rings*i;for(let j=0;j<divisions;j++){let v=j/divisions*(Math.PI*2);let x=Math.sin(v)*r;let z=Math.cos(v)*r;vertices.push(x,0,z);colors.push(color.r,color.g,color.b);v=(j+1)/divisions*(Math.PI*2);x=Math.sin(v)*r;z=Math.cos(v)*r;vertices.push(x,0,z);colors.push(color.r,color.g,color.b)}}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="PolarGridHelper"}dispose(){this.geometry.dispose();this.material.dispose()}}const _v1=new Vector3;const _v2=new Vector3;const _v3=new Vector3;class DirectionalLightHelper extends Object3D{constructor(light,size,color){super();this.light=light;this.matrix=light.matrixWorld;this.matrixAutoUpdate=false;this.color=color;this.type="DirectionalLightHelper";if(size===undefined)size=1;let geometry=new BufferGeometry;geometry.setAttribute("position",new Float32BufferAttribute([-size,size,0,size,size,0,size,-size,0,-size,-size,0,-size,size,0],3));const material=new LineBasicMaterial({fog:false,toneMapped:false});this.lightPlane=new Line(geometry,material);this.add(this.lightPlane);geometry=new BufferGeometry;geometry.setAttribute("position",new Float32BufferAttribute([0,0,0,0,0,1],3));this.targetLine=new Line(geometry,material);this.add(this.targetLine);this.update()}dispose(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()}update(){this.light.updateWorldMatrix(true,false);this.light.target.updateWorldMatrix(true,false);_v1.setFromMatrixPosition(this.light.matrixWorld);_v2.setFromMatrixPosition(this.light.target.matrixWorld);_v3.subVectors(_v2,_v1);this.lightPlane.lookAt(_v2);if(this.color!==undefined){this.lightPlane.material.color.set(this.color);this.targetLine.material.color.set(this.color)}else{this.lightPlane.material.color.copy(this.light.color);this.targetLine.material.color.copy(this.light.color)}this.targetLine.lookAt(_v2);this.targetLine.scale.z=_v3.length()}}const _vector=new Vector3;const _camera=new Camera;class CameraHelper extends LineSegments{constructor(camera){const geometry=new BufferGeometry;const material=new LineBasicMaterial({color:16777215,vertexColors:true,toneMapped:false});const vertices=[];const colors=[];const pointMap={};addLine("n1","n2");addLine("n2","n4");addLine("n4","n3");addLine("n3","n1");addLine("f1","f2");addLine("f2","f4");addLine("f4","f3");addLine("f3","f1");addLine("n1","f1");addLine("n2","f2");addLine("n3","f3");addLine("n4","f4");addLine("p","n1");addLine("p","n2");addLine("p","n3");addLine("p","n4");addLine("u1","u2");addLine("u2","u3");addLine("u3","u1");addLine("c","t");addLine("p","c");addLine("cn1","cn2");addLine("cn3","cn4");addLine("cf1","cf2");addLine("cf3","cf4");function addLine(a,b){addPoint(a);addPoint(b)}function addPoint(id){vertices.push(0,0,0);colors.push(0,0,0);if(pointMap[id]===undefined){pointMap[id]=[]}pointMap[id].push(vertices.length/3-1)}geometry.setAttribute("position",new Float32BufferAttribute(vertices,3));geometry.setAttribute("color",new Float32BufferAttribute(colors,3));super(geometry,material);this.type="CameraHelper";this.camera=camera;if(this.camera.updateProjectionMatrix)this.camera.updateProjectionMatrix();this.matrix=camera.matrixWorld;this.matrixAutoUpdate=false;
4233this.pointMap=pointMap;this.update();const colorFrustum=new Color(16755200);const colorCone=new Color(16711680);const colorUp=new Color(43775);const colorTarget=new Color(16777215);const colorCross=new Color(3355443);this.setColors(colorFrustum,colorCone,colorUp,colorTarget,colorCross)}setColors(frustum,cone,up,target,cross){const geometry=this.geometry;const colorAttribute=geometry.getAttribute("color");colorAttribute.setXYZ(0,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(1,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(2,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(3,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(4,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(5,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(6,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(7,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(8,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(9,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(10,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(11,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(12,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(13,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(14,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(15,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(16,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(17,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(18,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(19,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(20,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(21,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(22,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(23,frustum.r,frustum.g,frustum.b);colorAttribute.setXYZ(24,cone.r,cone.g,cone.b);colorAttribute.setXYZ(25,cone.r,cone.g,cone.b);colorAttribute.setXYZ(26,cone.r,cone.g,cone.b);colorAttribute.setXYZ(27,cone.r,cone.g,cone.b);colorAttribute.setXYZ(28,cone.r,cone.g,cone.b);colorAttribute.setXYZ(29,cone.r,cone.g,cone.b);colorAttribute.setXYZ(30,cone.r,cone.g,cone.b);colorAttribute.setXYZ(31,cone.r,cone.g,cone.b);colorAttribute.setXYZ(32,up.r,up.g,up.b);colorAttribute.setXYZ(33,up.r,up.g,up.b);colorAttribute.setXYZ(34,up.r,up.g,up.b);colorAttribute.setXYZ(35,up.r,up.g,up.b);colorAttribute.setXYZ(36,up.r,up.g,up.b);colorAttribute.setXYZ(37,up.r,up.g,up.b);colorAttribute.setXYZ(38,target.r,target.g,target.b);colorAttribute.setXYZ(39,target.r,target.g,target.b);colorAttribute.setXYZ(40,cross.r,cross.g,cross.b);colorAttribute.setXYZ(41,cross.r,cross.g,cross.b);colorAttribute.setXYZ(42,cross.r,cross.g,cross.b);colorAttribute.setXYZ(43,cross.r,cross.g,cross.b);colorAttribute.setXYZ(44,cross.r,cross.g,cross.b);colorAttribute.setXYZ(45,cross.r,cross.g,cross.b);colorAttribute.setXYZ(46,cross.r,cross.g,cross.b);colorAttribute.setXYZ(47,cross.r,cross.g,cross.b);colorAttribute.setXYZ(48,cross.r,cross.g,cross.b);colorAttribute.setXYZ(49,cross.r,cross.g,cross.b);colorAttribute.needsUpdate=true}update(){const geometry=this.geometry;const pointMap=this.pointMap;const w=1,h=1;_camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);setPoint("c",pointMap,geometry,_camera,0,0,-1);setPoint("t",pointMap,geometry,_camera,0,0,1);setPoint("n1",pointMap,geometry,_camera,-w,-h,-1);setPoint("n2",pointMap,geometry,_camera,w,-h,-1);setPoint("n3",pointMap,geometry,_camera,-w,h,-1);setPoint("n4",pointMap,geometry,_camera,w,h,-1);setPoint("f1",pointMap,geometry,_camera,-w,-h,1);setPoint("f2",pointMap,geometry,_camera,w,-h,1);setPoint("f3",pointMap,geometry,_camera,-w,h,1);setPoint("f4",pointMap,geometry,_camera,w,h,1);setPoint("u1",pointMap,geometry,_camera,w*0.7,h*1.1,-1);setPoint("u2",pointMap,geometry,_camera,-w*0.7,h*1.1,-1);setPoint("u3",pointMap,geometry,_camera,0,h*2,-1);setPoint("cf1",pointMap,geometry,_camera,-w,0,1);setPoint("cf2",pointMap,geometry,_camera,w,0,1);setPoint("cf3",pointMap,geometry,_camera,0,-h,1);setPoint("cf4",pointMap,geometry,_camera,0,h,1);setPoint("cn1",pointMap,geometry,_camera,-w,0,-1);setPoint("cn2",pointMap,geometry,_camera,w,0,-1);setPoint("cn3",pointMap,geometry,_camera,0,-h,-1);setPoint("cn4",pointMap,geometry,_camera,0,h,-1);geometry.getAttribute("position").needsUpdate=true}dispose(){this.geometry.dispose();this.material.dispose()}}function setPoint(point,pointMap,geometry,camera,x,y,z){_vector.set(x,y,z).unproject(camera);const points=pointMap[point];if(points!==undefined){const position=geometry.getAttribute("position");for(let i=0,l=points.length;i<l;i++){position.setXYZ(points[i],_vector.x,_vector.y,_vector.z)}}}const _box=new Box3;
4233class BoxHelper extends LineSegments{constructor(object,color=16776960){const indices=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);const positions=new Float32Array(8*3);const geometry=new BufferGeometry;geometry.setIndex(new BufferAttribute(indices,1));geometry.setAttribute("position",new BufferAttribute(positions,3));super(geometry,new LineBasicMaterial({color:color,toneMapped:false}));this.object=object;this.type="BoxHelper";this.matrixAutoUpdate=false;this.update()}update(object){if(object!==undefined){console.warn("THREE.BoxHelper: .update() has no longer arguments.")}if(this.object!==undefined){_box.setFromObject(this.object)}if(_box.isEmpty())return;const min=_box.min;const max=_box.max;const position=this.geometry.attributes.position;const array=position.array;array[0]=max.x;array[1]=max.y;array[2]=max.z;array[3]=min.x;array[4]=max.y;array[5]=max.z;array[6]=min.x;array[7]=min.y;array[8]=max.z;array[9]=max.x;array[10]=min.y;array[11]=max.z;array[12]=max.x;array[13]=max.y;array[14]=min.z;array[15]=min.x;array[16]=max.y;array[17]=min.z;array[18]=min.x;array[19]=min.y;array[20]=min.z;array[21]=max.x;array[22]=min.y;array[23]=min.z;position.needsUpdate=true;this.geometry.computeBoundingSphere()}setFromObject(object){this.object=object;this.update();return this}copy(source,recursive){super.copy(source,recursive);this.object=source.object;return this}dispose(){this.geometry.dispose();this.material.dispose()}}class Box3Helper extends LineSegments{constructor(box,color=16776960){const indices=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);const positions=[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1];const geometry=new BufferGeometry;geometry.setIndex(new BufferAttribute(indices,1));geometry.setAttribute("position",new Float32BufferAttribute(positions,3));super(geometry,new LineBasicMaterial({color:color,toneMapped:false}));this.box=box;this.type="Box3Helper";this.geometry.computeBoundingSphere()}updateMatrixWorld(force){const box=this.box;if(box.isEmpty())return;box.getCenter(this.position);box.getSize(this.scale);this.scale.multiplyScalar(0.5);super.updateMatrixWorld(force)}dispose(){this.geometry.dispose();this.material.dispose()}}class PlaneHelper extends Line{constructor(plane,size=1,hex=16776960){const color=hex;const positions=[1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0];const geometry=new BufferGeometry;geometry.setAttribute("position",new Float32BufferAttribute(positions,3));geometry.computeBoundingSphere();super(geometry,new LineBasicMaterial({color:color,toneMapped:false}));this.type="PlaneHelper";this.plane=plane;this.size=size;const positions2=[1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0];const geometry2=new BufferGeometry;geometry2.setAttribute("position",new Float32BufferAttribute(positions2,3));geometry2.computeBoundingSphere();this.add(new Mesh(geometry2,new MeshBasicMaterial({color:color,opacity:0.2,transparent:true,depthWrite:false,toneMapped:false})))}updateMatrixWorld(force){this.position.set(0,0,0);this.scale.set(0.5*this.size,0.5*this.size,1);this.lookAt(this.plane.normal);this.translateZ(-this.plane.constant);super.updateMatrixWorld(force)}dispose(){this.geometry.dispose();this.material.dispose();this.children[0].geometry.dispose();this.children[0].material.dispose()}}const _axis=new Vector3;let _lineGeometry,_coneGeometry;class ArrowHelper extends Object3D{constructor(dir=new Vector3(0,0,1),origin=new Vector3(0,0,0),length=1,color=16776960,headLength=length*0.2,headWidth=headLength*0.2){super();this.type="ArrowHelper";if(_lineGeometry===undefined){_lineGeometry=new BufferGeometry;_lineGeometry.setAttribute("position",new Float32BufferAttribute([0,0,0,0,1,0],3));_coneGeometry=new CylinderGeometry(0,0.5,1,5,1);_coneGeometry.translate(0,-0.5,0)}this.position.copy(origin);this.line=new Line(_lineGeometry,new LineBasicMaterial({color:color,toneMapped:false}));this.line.matrixAutoUpdate=false;this.add(this.line);this.cone=new Mesh(_coneGeometry,new MeshBasicMaterial({color:color,toneMapped:false}));this.cone.matrixAutoUpdate=false;this.add(this.cone);this.setDirection(dir);this.setLength(length,headLength,headWidth)}setDirection(dir){if(dir.y>0.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;i<l;i++){const tmpPath=inSubpaths[i];const tmpShape=new Shape;tmpShape.curves=tmpPath.curves;shapes.push(tmpShape)}return shapes}function isPointInsidePolygon(inPt,inPolygon){const polyLen=inPolygon.length;let inside=false;for(let p=polyLen-1,q=0;q<polyLen;p=q++){let edgeLowPt=inPolygon[p];let edgeHighPt=inPolygon[q];let edgeDx=edgeHighPt.x-edgeLowPt.x;let edgeDy=edgeHighPt.y-edgeLowPt.y;if(Math.abs(edgeDy)>Number.EPSILON){if(edgeDy<0){edgeLowPt=inPolygon[q];edgeDx=-edgeDx;edgeHighPt=inPolygon[p];edgeDy=-edgeDy}if(inPt.y<edgeLowPt.y||inPt.y>edgeHighPt.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;i<l;i++){tmpPath=subPaths[i];tmpPoints=tmpPath.getPoints();solid=isClockWise(tmpPoints);solid=isCCW?!solid:solid;if(solid){if(!holesFirst&&newShapes[mainIdx])mainIdx++;newShapes[mainIdx]={s:new Shape,p:tmpPoints};newShapes[mainIdx].s.curves=tmpPath.curves;if(holesFirst)mainIdx++;newShapeHoles[mainIdx]=[]}else{newShapeHoles[mainIdx].push({h:tmpPath,p:tmpPoints[0]})}}if(!newShapes[0])return toShapesNoHoles(subPaths);if(newShapes.length>1){let ambiguous=false;let toChange=0;for(let sIdx=0,sLen=newShapes.length;sIdx<sLen;sIdx++){betterShapeHoles[sIdx]=[]}for(let sIdx=0,sLen=newShapes.length;sIdx<sLen;sIdx++){const sho=newShapeHoles[sIdx];for(let hIdx=0;hIdx<sho.length;hIdx++){const ho=sho[hIdx];let hole_unassigned=true;for(let s2Idx=0;s2Idx<newShapes.length;s2Idx++){if(isPointInsidePolygon(ho.p,newShapes[s2Idx].p)){if(sIdx!==s2Idx)toChange++;if(hole_unassigned){hole_unassigned=false;betterShapeHoles[s2Idx].push(ho)}else{ambiguous=true}}}if(hole_unassigned){betterShapeHoles[sIdx].push(ho)}}}if(toChange>0&&ambiguous===false){newShapeHoles=betterShapeHoles}}let tmpHoles;for(let i=0,il=newShapes.length;i<il;i++){tmpShape=newShapes[i].s;shapes.push(tmpShape);tmpHoles=newShapeHoles[i];for(let j=0,jl=tmpHoles.length;j<jl;j++){tmpShape.holes.push(tmpHoles[j].h)}}return shapes}}class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(width=1,height=1,count=1,options={}){console.warn("THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the \"count\" parameter to enable MRT.");super(width,height,{...options,count});
4233this.isWebGLMultipleRenderTargets=true}get texture(){return this.textures}}if(typeof __THREE_DEVTOOLS__!=="undefined"){__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:REVISION}}))}if(typeof window!=="undefined"){if(window.__THREE__){console.warn("WARNING: Multiple instances of Three.js being imported.")}else{window.__THREE__=REVISION}}exports.ACESFilmicToneMapping=ACESFilmicToneMapping;exports.AddEquation=AddEquation;exports.AddOperation=AddOperation;exports.AdditiveAnimationBlendMode=AdditiveAnimationBlendMode;exports.AdditiveBlending=AdditiveBlending;exports.AgXToneMapping=AgXToneMapping;exports.AlphaFormat=AlphaFormat;exports.AlwaysCompare=AlwaysCompare;exports.AlwaysDepth=AlwaysDepth;exports.AlwaysStencilFunc=AlwaysStencilFunc;exports.AmbientLight=AmbientLight;exports.AnimationAction=AnimationAction;exports.AnimationClip=AnimationClip;exports.AnimationLoader=AnimationLoader;exports.AnimationMixer=AnimationMixer;exports.AnimationObjectGroup=AnimationObjectGroup;exports.AnimationUtils=AnimationUtils;exports.ArcCurve=ArcCurve;exports.ArrayCamera=ArrayCamera;exports.ArrowHelper=ArrowHelper;exports.AttachedBindMode=AttachedBindMode;exports.Audio=Audio;exports.AudioAnalyser=AudioAnalyser;exports.AudioContext=AudioContext;exports.AudioListener=AudioListener;exports.AudioLoader=AudioLoader;exports.AxesHelper=AxesHelper;exports.BackSide=BackSide;exports.BasicDepthPacking=BasicDepthPacking;exports.BasicShadowMap=BasicShadowMap;exports.BatchedMesh=BatchedMesh;exports.Bone=Bone;exports.BooleanKeyframeTrack=BooleanKeyframeTrack;exports.Box2=Box2;exports.Box3=Box3;exports.Box3Helper=Box3Helper;exports.BoxGeometry=BoxGeometry;exports.BoxHelper=BoxHelper;exports.BufferAttribute=BufferAttribute;exports.BufferGeometry=BufferGeometry;exports.BufferGeometryLoader=BufferGeometryLoader;exports.ByteType=ByteType;exports.Cache=Cache;exports.Camera=Camera;exports.CameraHelper=CameraHelper;exports.CanvasTexture=CanvasTexture;exports.CapsuleGeometry=CapsuleGeometry;exports.CatmullRomCurve3=CatmullRomCurve3;exports.CineonToneMapping=CineonToneMapping;exports.CircleGeometry=CircleGeometry;exports.ClampToEdgeWrapping=ClampToEdgeWrapping;exports.Clock=Clock;exports.Color=Color;exports.ColorKeyframeTrack=ColorKeyframeTrack;exports.ColorManagement=ColorManagement;exports.CompressedArrayTexture=CompressedArrayTexture;exports.CompressedCubeTexture=CompressedCubeTexture;exports.CompressedTexture=CompressedTexture;exports.CompressedTextureLoader=CompressedTextureLoader;exports.ConeGeometry=ConeGeometry;exports.ConstantAlphaFactor=ConstantAlphaFactor;exports.ConstantColorFactor=ConstantColorFactor;exports.CubeCamera=CubeCamera;exports.CubeReflectionMapping=CubeReflectionMapping;exports.CubeRefractionMapping=CubeRefractionMapping;exports.CubeTexture=CubeTexture;exports.CubeTextureLoader=CubeTextureLoader;exports.CubeUVReflectionMapping=CubeUVReflectionMapping;exports.CubicBezierCurve=CubicBezierCurve;exports.CubicBezierCurve3=CubicBezierCurve3;exports.CubicInterpolant=CubicInterpolant;exports.CullFaceBack=CullFaceBack;exports.CullFaceFront=CullFaceFront;exports.CullFaceFrontBack=CullFaceFrontBack;exports.CullFaceNone=CullFaceNone;exports.Curve=Curve;exports.CurvePath=CurvePath;exports.CustomBlending=CustomBlending;exports.CustomToneMapping=CustomToneMapping;exports.CylinderGeometry=CylinderGeometry;exports.Cylindrical=Cylindrical;exports.Data3DTexture=Data3DTexture;exports.DataArrayTexture=DataArrayTexture;exports.DataTexture=DataTexture;exports.DataTextureLoader=DataTextureLoader;exports.DataUtils=DataUtils;exports.DecrementStencilOp=DecrementStencilOp;exports.DecrementWrapStencilOp=DecrementWrapStencilOp;exports.DefaultLoadingManager=DefaultLoadingManager;exports.DepthFormat=DepthFormat;exports.DepthStencilFormat=DepthStencilFormat;exports.DepthTexture=DepthTexture;exports.DetachedBindMode=DetachedBindMode;exports.DirectionalLight=DirectionalLight;exports.DirectionalLightHelper=DirectionalLightHelper;exports.DiscreteInterpolant=DiscreteInterpolant;exports.DisplayP3ColorSpace=DisplayP3ColorSpace;exports.DodecahedronGeometry=DodecahedronGeometry;exports.DoubleSide=DoubleSide;
4233exports.DstAlphaFactor=DstAlphaFactor;exports.DstColorFactor=DstColorFactor;exports.DynamicCopyUsage=DynamicCopyUsage;exports.DynamicDrawUsage=DynamicDrawUsage;exports.DynamicReadUsage=DynamicReadUsage;exports.EdgesGeometry=EdgesGeometry;exports.EllipseCurve=EllipseCurve;exports.EqualCompare=EqualCompare;exports.EqualDepth=EqualDepth;exports.EqualStencilFunc=EqualStencilFunc;exports.EquirectangularReflectionMapping=EquirectangularReflectionMapping;exports.EquirectangularRefractionMapping=EquirectangularRefractionMapping;exports.Euler=Euler;exports.EventDispatcher=EventDispatcher;exports.ExtrudeGeometry=ExtrudeGeometry;exports.FileLoader=FileLoader;exports.Float16BufferAttribute=Float16BufferAttribute;exports.Float32BufferAttribute=Float32BufferAttribute;exports.FloatType=FloatType;exports.Fog=Fog;exports.FogExp2=FogExp2;exports.FramebufferTexture=FramebufferTexture;exports.FrontSide=FrontSide;exports.Frustum=Frustum;exports.GLBufferAttribute=GLBufferAttribute;exports.GLSL1=GLSL1;exports.GLSL3=GLSL3;exports.GreaterCompare=GreaterCompare;exports.GreaterDepth=GreaterDepth;exports.GreaterEqualCompare=GreaterEqualCompare;exports.GreaterEqualDepth=GreaterEqualDepth;exports.GreaterEqualStencilFunc=GreaterEqualStencilFunc;exports.GreaterStencilFunc=GreaterStencilFunc;exports.GridHelper=GridHelper;exports.Group=Group;exports.HalfFloatType=HalfFloatType;exports.HemisphereLight=HemisphereLight;exports.HemisphereLightHelper=HemisphereLightHelper;exports.IcosahedronGeometry=IcosahedronGeometry;exports.ImageBitmapLoader=ImageBitmapLoader;exports.ImageLoader=ImageLoader;exports.ImageUtils=ImageUtils;exports.IncrementStencilOp=IncrementStencilOp;exports.IncrementWrapStencilOp=IncrementWrapStencilOp;exports.InstancedBufferAttribute=InstancedBufferAttribute;exports.InstancedBufferGeometry=InstancedBufferGeometry;exports.InstancedInterleavedBuffer=InstancedInterleavedBuffer;exports.InstancedMesh=InstancedMesh;exports.Int16BufferAttribute=Int16BufferAttribute;exports.Int32BufferAttribute=Int32BufferAttribute;exports.Int8BufferAttribute=Int8BufferAttribute;exports.IntType=IntType;exports.InterleavedBuffer=InterleavedBuffer;exports.InterleavedBufferAttribute=InterleavedBufferAttribute;exports.Interpolant=Interpolant;exports.InterpolateDiscrete=InterpolateDiscrete;exports.InterpolateLinear=InterpolateLinear;exports.InterpolateSmooth=InterpolateSmooth;exports.InvertStencilOp=InvertStencilOp;exports.KeepStencilOp=KeepStencilOp;exports.KeyframeTrack=KeyframeTrack;exports.LOD=LOD;exports.LatheGeometry=LatheGeometry;exports.Layers=Layers;exports.LessCompare=LessCompare;exports.LessDepth=LessDepth;exports.LessEqualCompare=LessEqualCompare;exports.LessEqualDepth=LessEqualDepth;exports.LessEqualStencilFunc=LessEqualStencilFunc;exports.LessStencilFunc=LessStencilFunc;exports.Light=Light;exports.LightProbe=LightProbe;exports.Line=Line;exports.Line3=Line3;exports.LineBasicMaterial=LineBasicMaterial;exports.LineCurve=LineCurve;exports.LineCurve3=LineCurve3;exports.LineDashedMaterial=LineDashedMaterial;exports.LineLoop=LineLoop;exports.LineSegments=LineSegments;exports.LinearDisplayP3ColorSpace=LinearDisplayP3ColorSpace;exports.LinearFilter=LinearFilter;exports.LinearInterpolant=LinearInterpolant;exports.LinearMipMapLinearFilter=LinearMipMapLinearFilter;exports.LinearMipMapNearestFilter=LinearMipMapNearestFilter;exports.LinearMipmapLinearFilter=LinearMipmapLinearFilter;exports.LinearMipmapNearestFilter=LinearMipmapNearestFilter;exports.LinearSRGBColorSpace=LinearSRGBColorSpace;exports.LinearToneMapping=LinearToneMapping;exports.LinearTransfer=LinearTransfer;exports.Loader=Loader;exports.LoaderUtils=LoaderUtils;exports.LoadingManager=LoadingManager;exports.LoopOnce=LoopOnce;exports.LoopPingPong=LoopPingPong;exports.LoopRepeat=LoopRepeat;exports.LuminanceAlphaFormat=LuminanceAlphaFormat;exports.LuminanceFormat=LuminanceFormat;exports.MOUSE=MOUSE;exports.Material=Material;exports.MaterialLoader=MaterialLoader;exports.MathUtils=MathUtils;exports.Matrix3=Matrix3;exports.Matrix4=Matrix4;exports.MaxEquation=MaxEquation;exports.Mesh=Mesh;exports.MeshBasicMaterial=MeshBasicMaterial;exports.MeshDepthMaterial=MeshDepthMaterial;exports.MeshDistanceMaterial=MeshDistanceMaterial;exports.MeshLambertMaterial=MeshLambertMaterial;exports.MeshMatcapMaterial=MeshMatcapMaterial;exports.MeshNormalMaterial=MeshNormalMaterial;exports.MeshPhongMaterial=MeshPhongMaterial;exports.MeshPhysicalMaterial=MeshPhysicalMaterial;exports.MeshStandardMaterial=MeshStandardMaterial;exports.MeshToonMaterial=MeshToonMaterial;exports.MinEquation=MinEquation;exports.MirroredRepeatWrapping=MirroredRepeatWrapping;exports.MixOperation=MixOperation;exports.MultiplyBlending=MultiplyBlending;exports.MultiplyOperation=MultiplyOperation;exports.NearestFilter=NearestFilter;exports.NearestMipMapLinearFilter=NearestMipMapLinearFilter;exports.NearestMipMapNearestFilter=NearestMipMapNearestFilter;exports.NearestMipmapLinearFilter=NearestMipmapLinearFilter;exports.NearestMipmapNearestFilter=NearestMipmapNearestFilter;exports.NeutralToneMapping=NeutralToneMapping;exports.NeverCompare=NeverCompare;exports.NeverDepth=NeverDepth;exports.NeverStencilFunc=NeverStencilFunc;exports.NoBlending=NoBlending;
4233exports.NoColorSpace=NoColorSpace;exports.NoToneMapping=NoToneMapping;exports.NormalAnimationBlendMode=NormalAnimationBlendMode;exports.NormalBlending=NormalBlending;exports.NotEqualCompare=NotEqualCompare;exports.NotEqualDepth=NotEqualDepth;exports.NotEqualStencilFunc=NotEqualStencilFunc;exports.NumberKeyframeTrack=NumberKeyframeTrack;exports.Object3D=Object3D;exports.ObjectLoader=ObjectLoader;exports.ObjectSpaceNormalMap=ObjectSpaceNormalMap;exports.OctahedronGeometry=OctahedronGeometry;exports.OneFactor=OneFactor;exports.OneMinusConstantAlphaFactor=OneMinusConstantAlphaFactor;exports.OneMinusConstantColorFactor=OneMinusConstantColorFactor;exports.OneMinusDstAlphaFactor=OneMinusDstAlphaFactor;exports.OneMinusDstColorFactor=OneMinusDstColorFactor;exports.OneMinusSrcAlphaFactor=OneMinusSrcAlphaFactor;exports.OneMinusSrcColorFactor=OneMinusSrcColorFactor;exports.OrthographicCamera=OrthographicCamera;exports.P3Primaries=P3Primaries;exports.PCFShadowMap=PCFShadowMap;exports.PCFSoftShadowMap=PCFSoftShadowMap;exports.PMREMGenerator=PMREMGenerator;exports.Path=Path;exports.PerspectiveCamera=PerspectiveCamera;exports.Plane=Plane;exports.PlaneGeometry=PlaneGeometry;exports.PlaneHelper=PlaneHelper;exports.PointLight=PointLight;exports.PointLightHelper=PointLightHelper;exports.Points=Points;exports.PointsMaterial=PointsMaterial;exports.PolarGridHelper=PolarGridHelper;exports.PolyhedronGeometry=PolyhedronGeometry;exports.PositionalAudio=PositionalAudio;exports.PropertyBinding=PropertyBinding;exports.PropertyMixer=PropertyMixer;exports.QuadraticBezierCurve=QuadraticBezierCurve;exports.QuadraticBezierCurve3=QuadraticBezierCurve3;exports.Quaternion=Quaternion;exports.QuaternionKeyframeTrack=QuaternionKeyframeTrack;exports.QuaternionLinearInterpolant=QuaternionLinearInterpolant;exports.RED_GREEN_RGTC2_Format=RED_GREEN_RGTC2_Format;exports.RED_RGTC1_Format=RED_RGTC1_Format;exports.REVISION=REVISION;exports.RGBADepthPacking=RGBADepthPacking;exports.RGBAFormat=RGBAFormat;exports.RGBAIntegerFormat=RGBAIntegerFormat;exports.RGBA_ASTC_10x10_Format=RGBA_ASTC_10x10_Format;exports.RGBA_ASTC_10x5_Format=RGBA_ASTC_10x5_Format;exports.RGBA_ASTC_10x6_Format=RGBA_ASTC_10x6_Format;exports.RGBA_ASTC_10x8_Format=RGBA_ASTC_10x8_Format;exports.RGBA_ASTC_12x10_Format=RGBA_ASTC_12x10_Format;exports.RGBA_ASTC_12x12_Format=RGBA_ASTC_12x12_Format;exports.RGBA_ASTC_4x4_Format=RGBA_ASTC_4x4_Format;exports.RGBA_ASTC_5x4_Format=RGBA_ASTC_5x4_Format;exports.RGBA_ASTC_5x5_Format=RGBA_ASTC_5x5_Format;exports.RGBA_ASTC_6x5_Format=RGBA_ASTC_6x5_Format;exports.RGBA_ASTC_6x6_Format=RGBA_ASTC_6x6_Format;exports.RGBA_ASTC_8x5_Format=RGBA_ASTC_8x5_Format;exports.RGBA_ASTC_8x6_Format=RGBA_ASTC_8x6_Format;exports.RGBA_ASTC_8x8_Format=RGBA_ASTC_8x8_Format;exports.RGBA_BPTC_Format=RGBA_BPTC_Format;exports.RGBA_ETC2_EAC_Format=RGBA_ETC2_EAC_Format;exports.RGBA_PVRTC_2BPPV1_Format=RGBA_PVRTC_2BPPV1_Format;exports.RGBA_PVRTC_4BPPV1_Format=RGBA_PVRTC_4BPPV1_Format;exports.RGBA_S3TC_DXT1_Format=RGBA_S3TC_DXT1_Format;exports.RGBA_S3TC_DXT3_Format=RGBA_S3TC_DXT3_Format;exports.RGBA_S3TC_DXT5_Format=RGBA_S3TC_DXT5_Format;exports.RGBFormat=RGBFormat;exports.RGB_BPTC_SIGNED_Format=RGB_BPTC_SIGNED_Format;exports.RGB_BPTC_UNSIGNED_Format=RGB_BPTC_UNSIGNED_Format;exports.RGB_ETC1_Format=RGB_ETC1_Format;exports.RGB_ETC2_Format=RGB_ETC2_Format;exports.RGB_PVRTC_2BPPV1_Format=RGB_PVRTC_2BPPV1_Format;exports.RGB_PVRTC_4BPPV1_Format=RGB_PVRTC_4BPPV1_Format;exports.RGB_S3TC_DXT1_Format=RGB_S3TC_DXT1_Format;exports.RGFormat=RGFormat;exports.RGIntegerFormat=RGIntegerFormat;exports.RawShaderMaterial=RawShaderMaterial;exports.Ray=Ray;exports.Raycaster=Raycaster;exports.Rec709Primaries=Rec709Primaries;exports.RectAreaLight=RectAreaLight;exports.RedFormat=RedFormat;exports.RedIntegerFormat=RedIntegerFormat;exports.ReinhardToneMapping=ReinhardToneMapping;exports.RenderTarget=RenderTarget;exports.RepeatWrapping=RepeatWrapping;exports.ReplaceStencilOp=ReplaceStencilOp;exports.ReverseSubtractEquation=ReverseSubtractEquation;exports.RingGeometry=RingGeometry;exports.SIGNED_RED_GREEN_RGTC2_Format=SIGNED_RED_GREEN_RGTC2_Format;
4233exports.SIGNED_RED_RGTC1_Format=SIGNED_RED_RGTC1_Format;exports.SRGBColorSpace=SRGBColorSpace;exports.SRGBTransfer=SRGBTransfer;exports.Scene=Scene;exports.ShaderChunk=ShaderChunk;exports.ShaderLib=ShaderLib;exports.ShaderMaterial=ShaderMaterial;exports.ShadowMaterial=ShadowMaterial;exports.Shape=Shape;exports.ShapeGeometry=ShapeGeometry;exports.ShapePath=ShapePath;exports.ShapeUtils=ShapeUtils;exports.ShortType=ShortType;exports.Skeleton=Skeleton;exports.SkeletonHelper=SkeletonHelper;exports.SkinnedMesh=SkinnedMesh;exports.Source=Source;exports.Sphere=Sphere;exports.SphereGeometry=SphereGeometry;exports.Spherical=Spherical;exports.SphericalHarmonics3=SphericalHarmonics3;exports.SplineCurve=SplineCurve;exports.SpotLight=SpotLight;exports.SpotLightHelper=SpotLightHelper;exports.Sprite=Sprite;exports.SpriteMaterial=SpriteMaterial;exports.SrcAlphaFactor=SrcAlphaFactor;exports.SrcAlphaSaturateFactor=SrcAlphaSaturateFactor;exports.SrcColorFactor=SrcColorFactor;exports.StaticCopyUsage=StaticCopyUsage;exports.StaticDrawUsage=StaticDrawUsage;exports.StaticReadUsage=StaticReadUsage;exports.StereoCamera=StereoCamera;exports.StreamCopyUsage=StreamCopyUsage;exports.StreamDrawUsage=StreamDrawUsage;exports.StreamReadUsage=StreamReadUsage;exports.StringKeyframeTrack=StringKeyframeTrack;exports.SubtractEquation=SubtractEquation;exports.SubtractiveBlending=SubtractiveBlending;exports.TOUCH=TOUCH;exports.TangentSpaceNormalMap=TangentSpaceNormalMap;exports.TetrahedronGeometry=TetrahedronGeometry;exports.Texture=Texture;exports.TextureLoader=TextureLoader;exports.TorusGeometry=TorusGeometry;exports.TorusKnotGeometry=TorusKnotGeometry;exports.Triangle=Triangle;exports.TriangleFanDrawMode=TriangleFanDrawMode;exports.TriangleStripDrawMode=TriangleStripDrawMode;exports.TrianglesDrawMode=TrianglesDrawMode;exports.TubeGeometry=TubeGeometry;exports.UVMapping=UVMapping;exports.Uint16BufferAttribute=Uint16BufferAttribute;exports.Uint32BufferAttribute=Uint32BufferAttribute;exports.Uint8BufferAttribute=Uint8BufferAttribute;exports.Uint8ClampedBufferAttribute=Uint8ClampedBufferAttribute;exports.Uniform=Uniform;exports.UniformsGroup=UniformsGroup;exports.UniformsLib=UniformsLib;exports.UniformsUtils=UniformsUtils;exports.UnsignedByteType=UnsignedByteType;exports.UnsignedInt248Type=UnsignedInt248Type;exports.UnsignedInt5999Type=UnsignedInt5999Type;exports.UnsignedIntType=UnsignedIntType;exports.UnsignedShort4444Type=UnsignedShort4444Type;exports.UnsignedShort5551Type=UnsignedShort5551Type;exports.UnsignedShortType=UnsignedShortType;exports.VSMShadowMap=VSMShadowMap;exports.Vector2=Vector2;exports.Vector3=Vector3;exports.Vector4=Vector4;exports.VectorKeyframeTrack=VectorKeyframeTrack;exports.VideoTexture=VideoTexture;exports.WebGL3DRenderTarget=WebGL3DRenderTarget;exports.WebGLArrayRenderTarget=WebGLArrayRenderTarget;exports.WebGLCoordinateSystem=WebGLCoordinateSystem;exports.WebGLCubeRenderTarget=WebGLCubeRenderTarget;exports.WebGLMultipleRenderTargets=WebGLMultipleRenderTargets;exports.WebGLRenderTarget=WebGLRenderTarget;exports.WebGLRenderer=WebGLRenderer;exports.WebGLUtils=WebGLUtils;
4233exports.WebGPUCoordinateSystem=WebGPUCoordinateSystem;exports.WireframeGeometry=WireframeGeometry;exports.WrapAroundEnding=WrapAroundEnding;exports.ZeroCurvatureEnding=ZeroCurvatureEnding;exports.ZeroFactor=ZeroFactor;exports.ZeroSlopeEnding=ZeroSlopeEnding;exports.ZeroStencilOp=ZeroStencilOp;exports.createCanvasElement=createCanvasElement});(function(t,e){e(t.MeshBVHLib=t.MeshBVHLib||{},t.THREE=t.THREE||{})})(this,function(exports,three){const CENTER=0;const AVERAGE=1;const SAH=2;const NOT_INTERSECTED=0;const INTERSECTED=1;const CONTAINED=2;const TRIANGLE_INTERSECT_COST=1.25;const TRAVERSAL_COST=1;const BYTES_PER_NODE=6*4+4+4;const IS_LEAFNODE_FLAG=65535;const FLOAT32_EPSILON=Math.pow(2,-24);const SKIP_GENERATION=Symbol("SKIP_GENERATION");function getVertexCount(geo){return geo.index?geo.index.count:geo.attributes.position.count}function getTriCount(geo){return getVertexCount(geo)/3}function getIndexArray(vertexCount,BufferConstructor=ArrayBuffer){if(vertexCount>65535){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;i<vertexCount;i++){index[i]=i}}}function getFullGeometryRange(geo){const triCount=getTriCount(geo);const drawRange=geo.drawRange;const start=drawRange.start/3;const end=(drawRange.start+drawRange.count)/3;const offset=Math.max(0,start);const count=Math.min(triCount,end)-offset;return[{offset:Math.floor(offset),count:Math.floor(count)}]}function getRootIndexRanges(geo){if(!geo.groups||!geo.groups.length){return getFullGeometryRange(geo)}const ranges=[];const rangeBoundaries=new Set;const drawRange=geo.drawRange;const drawRangeStart=drawRange.start/3;const drawRangeEnd=(drawRange.start+drawRange.count)/3;for(const group of geo.groups){const groupStart=group.start/3;const groupEnd=(group.start+group.count)/3;rangeBoundaries.add(Math.max(drawRangeStart,groupStart));rangeBoundaries.add(Math.min(drawRangeEnd,groupEnd))}const sortedBoundaries=Array.from(rangeBoundaries.values()).sort((a,b)=>a-b);for(let i=0;i<sortedBoundaries.length-1;i++){const start=sortedBoundaries[i];const end=sortedBoundaries[i+1];ranges.push({offset:Math.floor(start),count:Math.floor(end-start)})}return ranges}function hasGroupGaps(geometry){if(geometry.groups.length===0){return false}const vertexCount=getTriCount(geometry);const groups=getRootIndexRanges(geometry).sort((a,b)=>a.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;i<end;i+=6){const cx=triangleBounds[i+0];const hx=triangleBounds[i+1];const lx=cx-hx;const rx=cx+hx;if(lx<minx)minx=lx;
4233if(rx>maxx)maxx=rx;if(cx<cminx)cminx=cx;if(cx>cmaxx)cmaxx=cx;const cy=triangleBounds[i+2];const hy=triangleBounds[i+3];const ly=cy-hy;const ry=cy+hy;if(ly<miny)miny=ly;if(ry>maxy)maxy=ry;if(cy<cminy)cminy=cy;if(cy>cmaxy)cmaxy=cy;const cz=triangleBounds[i+4];const hz=triangleBounds[i+5];const lz=cz-hz;const rz=cz+hz;if(lz<minz)minz=lz;if(rz>maxz)maxz=rz;if(cz<cminz)cminz=cz;if(cz>cmaxz)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;tri<offset+count;tri++){const tri3=tri*3;const tri6=tri*6;let ai=tri3+0;let bi=tri3+1;let ci=tri3+2;if(index){ai=index[ai];bi=index[bi];ci=index[ci]}if(!normalized){ai=ai*stride+bufferOffset;bi=bi*stride+bufferOffset;ci=ci*stride+bufferOffset}for(let el=0;el<3;el++){let a,b,c;if(normalized){a=posAttr[getters[el]](ai);b=posAttr[getters[el]](bi);c=posAttr[getters[el]](ci)}else{a=posArr[ai+el];b=posArr[bi+el];c=posArr[ci+el]}let min=a;if(b<min)min=b;if(c<min)min=c;let max=a;if(b>max)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]=aVal<bVal?aVal:bVal;aVal=a[d3];bVal=b[d3];target[d3]=aVal>bVal?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(tMin<bounds[d]){bounds[d]=tMin}if(tMax>bounds[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_COUNT/4){const truncatedBins=[...sahBins];truncatedBins.length=count;let b=0;for(let c=cStart;c<cEnd;c+=6,b++){const bin=truncatedBins[b];bin.candidate=triangleBounds[c+2*a];bin.count=0;const{bounds,leftCacheBounds,rightCacheBounds}=bin;for(let d=0;d<3;d++){rightCacheBounds[d]=Infinity;rightCacheBounds[d+3]=-Infinity;leftCacheBounds[d]=Infinity;leftCacheBounds[d+3]=-Infinity;bounds[d]=Infinity;bounds[d+3]=-Infinity}expandByTriangleBounds(c,triangleBounds,bounds)}truncatedBins.sort(binsSort);let splitCount=count;for(let bi=0;bi<splitCount;bi++){const bin=truncatedBins[bi];while(bi+1<splitCount&&truncatedBins[bi+1].candidate===bin.candidate){truncatedBins.splice(bi+1,1);splitCount--}}for(let c=cStart;c<cEnd;c+=6){const center=triangleBounds[c+2*a];for(let bi=0;bi<splitCount;bi++){const bin=truncatedBins[bi];
4233if(center>=bin.candidate){expandByTriangleBounds(c,triangleBounds,bin.rightCacheBounds)}else{expandByTriangleBounds(c,triangleBounds,bin.leftCacheBounds);bin.count++}}}for(let bi=0;bi<splitCount;bi++){const bin=truncatedBins[bi];const leftCount=bin.count;const rightCount=count-bin.count;const leftBounds=bin.leftCacheBounds;const rightBounds=bin.rightCacheBounds;let leftProb=0;if(leftCount!==0){leftProb=computeSurfaceArea(leftBounds)/rootSurfaceArea}let rightProb=0;if(rightCount!==0){rightProb=computeSurfaceArea(rightBounds)/rootSurfaceArea}const cost=TRAVERSAL_COST+TRIANGLE_INTERSECT_COST*(leftProb*leftCount+rightProb*rightCount);if(cost<bestCost){axis=a;bestCost=cost;pos=bin.candidate}}}else{for(let i=0;i<BIN_COUNT;i++){const bin=sahBins[i];bin.count=0;bin.candidate=axisLeft+binWidth+i*binWidth;const bounds=bin.bounds;for(let d=0;d<3;d++){bounds[d]=Infinity;bounds[d+3]=-Infinity}}for(let c=cStart;c<cEnd;c+=6){const triCenter=triangleBounds[c+2*a];const relativeCenter=triCenter-axisLeft;let binIndex=~~(relativeCenter/binWidth);if(binIndex>=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<BIN_COUNT-1;i++){const bin=sahBins[i];const binCount=bin.count;const bounds=bin.bounds;const nextBin=sahBins[i+1];const rightBounds=nextBin.rightCacheBounds;if(binCount!==0){if(leftCount===0){copyBounds(bounds,leftBounds)}else{unionBounds(bounds,leftBounds,leftBounds)}}leftCount+=binCount;let leftProb=0;let rightProb=0;if(leftCount!==0){leftProb=computeSurfaceArea(leftBounds)/rootSurfaceArea}const rightCount=count-leftCount;if(rightCount!==0){rightProb=computeSurfaceArea(rightBounds)/rootSurfaceArea}const cost=TRAVERSAL_COST+TRIANGLE_INTERSECT_COST*(leftProb*leftCount+rightProb*rightCount);if(cost<bestCost){axis=a;bestCost=cost;pos=bin.candidate}}}}}else{console.warn(`MeshBVH: Invalid build strategy value ${strategy} used.`)}return{axis,pos}}function getAverage(triangleBounds,offset,count,axis){let avg=0;for(let i=offset,end=offset+count;i<end;i++){avg+=triangleBounds[i*6+axis*2]}return avg/count}class MeshBVHNode{constructor(){this.boundingData=new Float32Array(6)}}function partition(indirectBuffer,index,triangleBounds,offset,count,split){let left=offset;let right=offset+count-1;const pos=split.pos;const axisOffset=split.axis*2;while(true){while(left<=right&&triangleBounds[left*6+axisOffset]<pos){left++}while(left<=right&&triangleBounds[right*6+axisOffset]>=pos){right--}if(left<right){for(let i=0;i<3;i++){let t0=index[left*3+i];index[left*3+i]=index[right*3+i];index[right*3+i]=t0}for(let i=0;i<6;i++){let tb=triangleBounds[left*6+i];triangleBounds[left*6+i]=triangleBounds[right*6+i];triangleBounds[right*6+i]=tb}left++;right--}else{return left}}}function partition_indirect(indirectBuffer,index,triangleBounds,offset,count,split){let left=offset;let right=offset+count-1;const pos=split.pos;const axisOffset=split.axis*2;while(true){while(left<=right&&triangleBounds[left*6+axisOffset]<pos){left++}while(left<=right&&triangleBounds[right*6+axisOffset]>=pos){right--}if(left<right){let t=indirectBuffer[left];indirectBuffer[left]=indirectBuffer[right];indirectBuffer[right]=t;for(let i=0;i<6;i++){let tb=triangleBounds[left*6+i];triangleBounds[left*6+i]=triangleBounds[right*6+i];triangleBounds[right*6+i]=tb}left++;right--}else{return left}}}function IS_LEAF(n16,uint16Array){return uint16Array[n16+15]===65535}function OFFSET(n32,uint32Array){return uint32Array[n32+6]}function COUNT(n16,uint16Array){return uint16Array[n16+14]}function LEFT_NODE(n32){return n32+8}function RIGHT_NODE(n32,uint32Array){return uint32Array[n32+6]}function SPLIT_AXIS(n32,uint32Array){return uint32Array[n32+7]}function BOUNDING_DATA_INDEX(n32){return n32}let float32Array,uint32Array,uint16Array,uint8Array;const MAX_POINTER=Math.pow(2,32);function countNodes(node){if("count"in node){return 1}else{return 1+countNodes(node.left)+countNodes(node.right)}}function populateBuffer(byteOffset,node,buffer){float32Array=new Float32Array(buffer);uint32Array=new Uint32Array(buffer);uint16Array=new Uint16Array(buffer);uint8Array=new Uint8Array(buffer);return _populateBuffer(byteOffset,node)}function _populateBuffer(byteOffset,node){const stride4Offset=byteOffset/4;const stride2Offset=byteOffset/2;const isLeaf=("count"in node);const boundingData=node.boundingData;for(let i=0;i<6;i++){float32Array[stride4Offset+i]=boundingData[i]}if(isLeaf){if(node.buffer){const buffer=node.buffer;uint8Array.set(new Uint8Array(buffer),byteOffset);for(let offset=byteOffset,l=byteOffset+buffer.byteLength;offset<l;offset+=BYTES_PER_NODE){const offset2=offset/2;if(!IS_LEAF(offset2,uint16Array)){uint32Array[offset/4+6]+=stride4Offset}}return byteOffset+buffer.byteLength}else{const offset=node.offset;const count=node.count;uint32Array[stride4Offset+6]=offset;uint16Array[stride2Offset+14]=count;uint16Array[stride2Offset+15]=IS_LEAFNODE_FLAG;return byteOffset+BYTES_PER_NODE}}else{const left=node.left;const right=node.right;const splitAxis=node.splitAxis;let nextUnusedPointer;nextUnusedPointer=_populateBuffer(byteOffset+BYTES_PER_NODE,left);if(nextUnusedPointer/4>MAX_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<l;i++){indirectBuffer[i]=i}return indirectBuffer}function buildTree(bvh,triangleBounds,offset,count,options){const{maxDepth,verbose,maxLeafTris,strategy,onProgress,indirect}=options;const indirectBuffer=bvh._indirectBuffer;const geometry=bvh.geometry;const indexArray=geometry.index?geometry.index.array:null;const partionFunc=indirect?partition_indirect:partition;const totalTriangles=getTriCount(geometry);const cacheCentroidBoundingData=new Float32Array(6);let reachedMaxDepth=false;const root=new MeshBVHNode;getBounds(triangleBounds,offset,count,root.boundingData,cacheCentroidBoundingData);splitNode(root,offset,count,cacheCentroidBoundingData);return root;function triggerProgress(trianglesProcessed){if(onProgress){onProgress(trianglesProcessed/totalTriangles)}}function splitNode(node,offset,count,centroidBoundingData=null,depth=0){if(!reachedMaxDepth&&depth>=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}
4233const 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;i<l;i++){const p=points[i];const val=p[field];min=val<min?val:min;max=val>max?val:max}this.min=min;this.max=max}setFromPoints(axis,points){let min=Infinity;let max=-Infinity;for(let i=0,l=points.length;i<l;i++){const p=points[i];const val=axis.dot(p);min=val<min?val:min;max=val>max?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}}}();
4233const 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)<ZERO_EPSILON}class ExtendedTriangle extends three.Triangle{constructor(...args){super(...args);this.isExtendedTriangle=true;this.satAxes=new Array(4).fill().map(()=>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);
4233if(distSq<closestDistanceSq){closestDistanceSq=distSq;if(target1)target1.copy(point1);if(target2)target2.copy(point2)}}this.closestPointToPoint(start,point1);distSq=start.distanceToSquared(point1);if(distSq<closestDistanceSq){closestDistanceSq=distSq;if(target1)target1.copy(point1);if(target2)target2.copy(start)}this.closestPointToPoint(end,point1);distSq=end.distanceToSquared(point1);if(distSq<closestDistanceSq){closestDistanceSq=distSq;if(target1)target1.copy(point1);if(target2)target2.copy(end)}return Math.sqrt(closestDistanceSq)}}();ExtendedTriangle.prototype.intersectsTriangle=function(){const saTri2=new ExtendedTriangle;const arr1=new Array(3);const arr2=new Array(3);const cachedSatBounds=new SeparatingAxisBounds;const cachedSatBounds2=new SeparatingAxisBounds;const cachedAxis=new three.Vector3;const dir=new three.Vector3;const dir1=new three.Vector3;const dir2=new three.Vector3;const tempDir=new three.Vector3;const edge=new three.Line3;const edge1=new three.Line3;const edge2=new three.Line3;const tempPoint=new three.Vector3;function triIntersectPlane(tri,plane,targetEdge){const points=tri.points;let count=0;let startPointIntersection=-1;for(let i=0;i<3;i++){const{start,end}=edge;start.copy(points[i]);end.copy(points[(i+1)%3]);edge.delta(dir);const startIntersects=isNearZero(plane.distanceToPoint(start));if(isNearZero(plane.normal.dot(dir))&&startIntersects){targetEdge.copy(edge);count=2;break}const doesIntersect=plane.intersectLine(edge,tempPoint);if(!doesIntersect&&startIntersects){tempPoint.copy(start)}if((doesIntersect||startIntersects)&&!isNearZero(tempPoint.distanceTo(end))){if(count<=1){const point=count===1?targetEdge.start:targetEdge.end;point.copy(tempPoint);if(startIntersects){startPointIntersection=count}}else if(count>=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}
4233const 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=e1<s2;const separated2=s1<e2;if(s1!==e2&&s2!==e1&&separated1===separated2){return false}if(target){tempDir.subVectors(edge1.start,edge2.start);if(tempDir.dot(dir1)>0){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(dist<closestDistanceSq){closestDistanceSq=dist;if(target1)target1.copy(point);if(target2)target2.copy(otherVec)}const thisVec=this[field];other.closestPointToPoint(thisVec,point);dist=thisVec.distanceToSquared(point);if(dist<closestDistanceSq){closestDistanceSq=dist;if(target1)target1.copy(thisVec);if(target2)target2.copy(point)}}for(let i=0;i<3;i++){const f11=cornerFields[i];const f12=cornerFields[(i+1)%3];line1.set(this[f11],this[f12]);for(let i2=0;i2<3;i2++){const f21=cornerFields[i2];const f22=cornerFields[(i2+1)%3];line2.set(other[f21],other[f22]);closestPointsSegmentToSegment(line1,line2,point,point2);const dist=point.distanceToSquared(point2);if(dist<closestDistanceSq){closestDistanceSq=dist;if(target1)target1.copy(point);if(target2)target2.copy(point2)}}}return Math.sqrt(closestDistanceSq)}}();class OrientedBox{constructor(min,max,matrix){this.isOrientedBox=true;this.min=new three.Vector3;this.max=new three.Vector3;this.matrix=new three.Matrix4;this.invMatrix=new three.Matrix4;this.points=new Array(8).fill().map(()=>new 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<<i;const pi=points[index];axis.subVectors(minVec,pi);sb.setFromPoints(axis,points)}const alignedSatBounds=this.alignedSatBounds;alignedSatBounds[0].setFromPointsField(points,"x");alignedSatBounds[1].setFromPointsField(points,"y");alignedSatBounds[2].setFromPointsField(points,"z");this.invMatrix.copy(this.matrix).invert();this.needsUpdate=false}}();OrientedBox.prototype.intersectsBox=function(){const aabbBounds=new SeparatingAxisBounds;return function intersectsBox(box){if(this.needsUpdate){this.update()}const min=box.min;const max=box.max;const satBounds=this.satBounds;const satAxes=this.satAxes;const alignedSatBounds=this.alignedSatBounds;aabbBounds.min=min.x;aabbBounds.max=max.x;if(alignedSatBounds[0].isSeparated(aabbBounds))return false;aabbBounds.min=min.y;aabbBounds.max=max.y;if(alignedSatBounds[1].isSeparated(aabbBounds))return false;aabbBounds.min=min.z;aabbBounds.max=max.z;if(alignedSatBounds[2].isSeparated(aabbBounds))return false;for(let i=0;i<3;i++){const axis=satAxes[i];const sb=satBounds[i];aabbBounds.setFromBox(axis,box);if(sb.isSeparated(aabbBounds))return false}return true}}();OrientedBox.prototype.intersectsTriangle=function(){const saTri=new ExtendedTriangle;const pointsArr=new Array(3);const cachedSatBounds=new SeparatingAxisBounds;const cachedSatBounds2=new SeparatingAxisBounds;const cachedAxis=new three.Vector3;return function intersectsTriangle(triangle){if(this.needsUpdate){this.update()}if(!triangle.isExtendedTriangle){saTri.copy(triangle);saTri.update();triangle=saTri}
4233else if(triangle.needsUpdate){triangle.update()}const satBounds=this.satBounds;const satAxes=this.satAxes;pointsArr[0]=triangle.a;pointsArr[1]=triangle.b;pointsArr[2]=triangle.c;for(let i=0;i<3;i++){const sb=satBounds[i];const sa=satAxes[i];cachedSatBounds.setFromPoints(sa,pointsArr);if(sb.isSeparated(cachedSatBounds))return false}const triSatBounds=triangle.satBounds;const triSatAxes=triangle.satAxes;const points=this.points;for(let i=0;i<3;i++){const sb=triSatBounds[i];const sa=triSatAxes[i];cachedSatBounds.setFromPoints(sa,points);if(sb.isSeparated(cachedSatBounds))return false}for(let i=0;i<3;i++){const sa1=satAxes[i];for(let i2=0;i2<4;i2++){const sa2=triSatAxes[i2];cachedAxis.crossVectors(sa1,sa2);cachedSatBounds.setFromPoints(cachedAxis,pointsArr);cachedSatBounds2.setFromPoints(cachedAxis,points);if(cachedSatBounds.isSeparated(cachedSatBounds2))return false}}return true}}();OrientedBox.prototype.closestPointToPoint=function(){return function closestPointToPoint(point,target1){if(this.needsUpdate){this.update()}target1.copy(point).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix);return target1}}();OrientedBox.prototype.distanceToPoint=function(){const target=new three.Vector3;return function distanceToPoint(point){this.closestPointToPoint(point,target);return point.distanceTo(target)}}();OrientedBox.prototype.distanceToBox=function(){const xyzFields=["x","y","z"];const segments1=new Array(12).fill().map(()=>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(dist<closestDistanceSq){closestDistanceSq=dist;if(target1)target1.copy(p);if(target2)target2.copy(point2);if(dist<threshold2)return Math.sqrt(dist)}}let count=0;for(let i=0;i<3;i++){for(let i1=0;i1<=1;i1++){for(let i2=0;i2<=1;i2++){const nextIndex=(i+1)%3;const nextIndex2=(i+2)%3;const index=i1<<nextIndex|i2<<nextIndex2;const index2=1<<i|i1<<nextIndex|i2<<nextIndex2;const p1=points[index];const p2=points[index2];const line1=segments1[count];line1.set(p1,p2);const f1=xyzFields[i];const f2=xyzFields[nextIndex];const f3=xyzFields[nextIndex2];const line2=segments2[count];const start=line2.start;const end=line2.end;start[f1]=min[f1];start[f2]=i1?min[f2]:max[f2];start[f3]=i2?min[f3]:max[f2];end[f1]=max[f1];end[f2]=i1?min[f2]:max[f2];end[f3]=i2?min[f3]:max[f2];count++}}}for(let x=0;x<=1;x++){for(let y=0;y<=1;y++){for(let z=0;z<=1;z++){point2.x=x?max.x:min.x;point2.y=y?max.y:min.y;point2.z=z?max.z:min.z;this.closestPointToPoint(point2,point1);const dist=point2.distanceToSquared(point1);if(dist<closestDistanceSq){closestDistanceSq=dist;if(target1)target1.copy(point1);if(target2)target2.copy(point2);if(dist<threshold2)return Math.sqrt(dist)}}}}for(let i=0;i<12;i++){const l1=segments1[i];for(let i2=0;i2<12;i2++){const l2=segments2[i2];closestPointsSegmentToSegment(l1,l2,point1,point2);const dist=point1.distanceToSquared(point2);if(dist<closestDistanceSq){closestDistanceSq=dist;if(target1)target1.copy(point1);if(target2)target2.copy(point2);if(dist<threshold2)return Math.sqrt(dist)}}}return Math.sqrt(closestDistanceSq)}}();class PrimitivePool{constructor(getNewPrimitive){this._getNewPrimitive=getNewPrimitive;this._primitives=[]}getPrimitive(){const primitives=this._primitives;if(primitives.length===0){return this._getNewPrimitive()}else{return primitives.pop()}}releasePrimitive(primitive){this._primitives.push(primitive)}}class ExtendedTrianglePoolBase extends PrimitivePool{constructor(){super(()=>new 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);
4233function 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<score1){c1=right;c2=left;const temp=score1;score1=score2;score2=temp;box1=box2}}if(!box1){box1=_box1$1;arrayToBox(BOUNDING_DATA_INDEX(c1),float32Array,box1)}const isC1Leaf=IS_LEAF(c1*2,uint16Array);const c1Intersection=intersectsBoundsFunc(box1,isC1Leaf,score1,depth+1,nodeIndexByteOffset+c1);let c1StopTraversal;if(c1Intersection===CONTAINED){const offset=getLeftOffset(c1);const end=getRightEndOffset(c1);const count=end-offset;c1StopTraversal=intersectsRangeFunc(offset,count,true,depth+1,nodeIndexByteOffset+c1,box1)}else{c1StopTraversal=c1Intersection&&shapecastTraverse(c1,geometry,intersectsBoundsFunc,intersectsRangeFunc,nodeScoreFunc,nodeIndexByteOffset,depth+1)}if(c1StopTraversal)return true;box2=_box2$1;arrayToBox(BOUNDING_DATA_INDEX(c2),float32Array,box2);const isC2Leaf=IS_LEAF(c2*2,uint16Array);const c2Intersection=intersectsBoundsFunc(box2,isC2Leaf,score2,depth+1,nodeIndexByteOffset+c2);let c2StopTraversal;if(c2Intersection===CONTAINED){const offset=getLeftOffset(c2);const end=getRightEndOffset(c2);const count=end-offset;c2StopTraversal=intersectsRangeFunc(offset,count,true,depth+1,nodeIndexByteOffset+c2,box2)}else{c2StopTraversal=c2Intersection&&shapecastTraverse(c2,geometry,intersectsBoundsFunc,intersectsRangeFunc,nodeScoreFunc,nodeIndexByteOffset,depth+1)}if(c2StopTraversal)return true;return false;function getLeftOffset(nodeIndex32){const{uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;while(!IS_LEAF(nodeIndex16,uint16Array)){nodeIndex32=LEFT_NODE(nodeIndex32);nodeIndex16=nodeIndex32*2}return OFFSET(nodeIndex32,uint32Array)}function getRightEndOffset(nodeIndex32){const{uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;while(!IS_LEAF(nodeIndex16,uint16Array)){nodeIndex32=RIGHT_NODE(nodeIndex32,uint32Array);nodeIndex16=nodeIndex32*2}return OFFSET(nodeIndex32,uint32Array)+COUNT(nodeIndex16,uint16Array)}}}const temp=new three.Vector3;const temp1$2=new three.Vector3;function closestPointToPoint(bvh,point,target={},minThreshold=0,maxThreshold=Infinity){const minThresholdSq=minThreshold*minThreshold;const maxThresholdSq=maxThreshold*maxThreshold;let closestDistanceSq=Infinity;let closestDistanceTriIndex=null;bvh.shapecast({boundsTraverseOrder:box=>{temp.copy(point).clamp(box.min,box.max);return temp.distanceToSquared(point)},intersectsBounds:(box,isLeaf,score)=>{return score<closestDistanceSq&&score<maxThresholdSq},intersectsTriangle:(tri,triIndex)=>{tri.closestPointToPoint(point,temp);const distSq=point.distanceToSquared(temp);if(distSq<closestDistanceSq){temp1$2.copy(temp);closestDistanceSq=distSq;closestDistanceTriIndex=triIndex}if(distSq<minThresholdSq){return true}else{return false}}});if(closestDistanceSq===Infinity)return null;const closestDistance=Math.sqrt(closestDistanceSq);if(!target.point)target.point=temp1$2.clone();else target.point.copy(temp1$2);
4233target.distance=closestDistance,target.faceIndex=closestDistanceTriIndex;return target}const _vA=new three.Vector3;const _vB=new three.Vector3;const _vC=new three.Vector3;const _uvA=new three.Vector2;const _uvB=new three.Vector2;const _uvC=new three.Vector2;const _normalA=new three.Vector3;const _normalB=new three.Vector3;const _normalC=new three.Vector3;const _intersectionPoint=new three.Vector3;function checkIntersection(ray,pA,pB,pC,point,side){let intersect;if(side===three.BackSide){intersect=ray.intersectTriangle(pC,pB,pA,true,point)}else{intersect=ray.intersectTriangle(pA,pB,pC,side!==three.DoubleSide,point)}if(intersect===null)return null;const distance=ray.origin.distanceTo(point);return{distance:distance,point:point.clone()}}function checkBufferGeometryIntersection(ray,position,normal,uv,uv1,a,b,c,side){_vA.fromBufferAttribute(position,a);_vB.fromBufferAttribute(position,b);_vC.fromBufferAttribute(position,c);const intersection=checkIntersection(ray,_vA,_vB,_vC,_intersectionPoint,side);if(intersection){if(uv){_uvA.fromBufferAttribute(uv,a);_uvB.fromBufferAttribute(uv,b);_uvC.fromBufferAttribute(uv,c);intersection.uv=three.Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new three.Vector2)}if(uv1){_uvA.fromBufferAttribute(uv1,a);_uvB.fromBufferAttribute(uv1,b);_uvC.fromBufferAttribute(uv1,c);intersection.uv1=three.Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new three.Vector2)}if(normal){_normalA.fromBufferAttribute(normal,a);_normalB.fromBufferAttribute(normal,b);_normalC.fromBufferAttribute(normal,c);intersection.normal=three.Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_normalA,_normalB,_normalC,new three.Vector3);if(intersection.normal.dot(ray.direction)>0){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<l;i++){const group=groups[i];const{start,count}=group;if(firstVertexIndex>=start&&firstVertexIndex<start+count){materialIndex=group.materialIndex;break}}let uv=null;if(uvs){tempUV1.fromBufferAttribute(uvs,a);tempUV2.fromBufferAttribute(uvs,b);tempUV3.fromBufferAttribute(uvs,c);if(target&&target.uv)uv=target.uv;else uv=new three.Vector2;three.Triangle.getInterpolation(point,tempV1,tempV2,tempV3,tempUV1,tempUV2,tempUV3,uv)}if(target){if(!target.face)target.face={};target.face.a=a;target.face.b=b;target.face.c=c;target.face.materialIndex=materialIndex;if(!target.face.normal)target.face.normal=new three.Vector3;three.Triangle.getNormal(tempV1,tempV2,tempV3,target.face.normal);if(uv)target.uv=uv;return target}else{return{face:{a:a,b:b,c:c,materialIndex:materialIndex,normal:three.Triangle.getNormal(tempV1,tempV2,tempV3,new three.Vector3)},uv:uv}}}function intersectTris(bvh,side,ray,offset,count,intersections){const{geometry,_indirectBuffer}=bvh;for(let i=offset,end=offset+count;i<end;i++){intersectTri(geometry,side,ray,i,intersections)}}function intersectClosestTri(bvh,side,ray,offset,count){const{geometry,_indirectBuffer}=bvh;let dist=Infinity;let res=null;for(let i=offset,end=offset+count;i<end;i++){let intersection;intersection=intersectTri(geometry,side,ray,i);if(intersection&&intersection.distance<dist){res=intersection;dist=intersection.distance}}return res}function iterateOverTriangles(offset,count,bvh,intersectsTriangleFunc,contained,depth,triangle){const{geometry}=bvh;const{index}=geometry;const pos=geometry.attributes.position;for(let i=offset,l=count+offset;i<l;i++){let tri;tri=i;setTriangle(triangle,tri*3,index,pos);triangle.needsUpdate=true;if(intersectsTriangleFunc(triangle,tri,contained,depth)){return true}}return false}function refit(bvh,nodeIndices=null){if(nodeIndices&&Array.isArray(nodeIndices)){nodeIndices=new Set(nodeIndices)}const geometry=bvh.geometry;const indexArr=geometry.index?geometry.index.array:null;const posAttr=geometry.attributes.position;let buffer,uint32Array,uint16Array,float32Array;let byteOffset=0;const roots=bvh._roots;for(let i=0,l=roots.length;i<l;i++){buffer=roots[i];uint32Array=new Uint32Array(buffer);uint16Array=new Uint16Array(buffer);float32Array=new Float32Array(buffer);_traverse(0,byteOffset);byteOffset+=buffer.byteLength}function _traverse(node32Index,byteOffset,force=false){const node16Index=node32Index*2;const isLeaf=uint16Array[node16Index+15]===IS_LEAFNODE_FLAG;if(isLeaf){const offset=uint32Array[node32Index+6];const count=uint16Array[node16Index+14];let minx=Infinity;let miny=Infinity;let minz=Infinity;let maxx=-Infinity;let maxy=-Infinity;let maxz=-Infinity;for(let i=3*offset,l=3*(offset+count);i<l;i++){let index=indexArr[i];const x=posAttr.getX(index);const y=posAttr.getY(index);const z=posAttr.getZ(index);if(x<minx)minx=x;if(x>maxx)maxx=x;if(y<miny)miny=y;if(y>maxy)maxy=y;if(z<minz)minz=z;if(z>maxz)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;
4233if(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]=minLeftValue<minRightValue?minLeftValue:minRightValue;float32Array[node32Index+i+3]=maxLeftValue>maxRightValue?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<tmax||isNaN(tmax))tmax=tymax;if(invdirz>=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<tmax||tmax!==tmax)tmax=tzmax;if(tmax<0)return false;return true}function intersectTris_indirect(bvh,side,ray,offset,count,intersections){const{geometry,_indirectBuffer}=bvh;for(let i=offset,end=offset+count;i<end;i++){let vi=_indirectBuffer?_indirectBuffer[i]:i;intersectTri(geometry,side,ray,vi,intersections)}}function intersectClosestTri_indirect(bvh,side,ray,offset,count){const{geometry,_indirectBuffer}=bvh;let dist=Infinity;let res=null;for(let i=offset,end=offset+count;i<end;i++){let intersection;intersection=intersectTri(geometry,side,ray,_indirectBuffer?_indirectBuffer[i]:i);if(intersection&&intersection.distance<dist){res=intersection;dist=intersection.distance}}return res}function iterateOverTriangles_indirect(offset,count,bvh,intersectsTriangleFunc,contained,depth,triangle){const{geometry}=bvh;const{index}=geometry;const pos=geometry.attributes.position;for(let i=offset,l=count+offset;i<l;i++){let tri;tri=bvh.resolveTriangleIndex(i);setTriangle(triangle,tri*3,index,pos);triangle.needsUpdate=true;if(intersectsTriangleFunc(triangle,tri,contained,depth)){return true}}return false}function raycast(bvh,root,side,ray,intersects){BufferStack.setBuffer(bvh._roots[root]);_raycast$1(0,bvh,side,ray,intersects);BufferStack.clearBuffer()}function _raycast$1(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(bvh,side,ray,offset,count,intersects)}else{const leftIndex=LEFT_NODE(nodeIndex32);if(intersectRay(leftIndex,float32Array,ray)){_raycast$1(leftIndex,bvh,side,ray,intersects)}const rightIndex=RIGHT_NODE(nodeIndex32,uint32Array);if(intersectRay(rightIndex,float32Array,ray)){_raycast$1(rightIndex,bvh,side,ray,intersects)}}}const _xyzFields$1=["x","y","z"];function raycastFirst(bvh,root,side,ray){BufferStack.setBuffer(bvh._roots[root]);const result=_raycastFirst$1(0,bvh,side,ray);BufferStack.clearBuffer();return result}function _raycastFirst$1(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(bvh,side,ray,offset,count)}else{const splitAxis=SPLIT_AXIS(nodeIndex32,uint32Array);const xyzAxis=_xyzFields$1[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$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=>
4233obb2$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<l;i+=3){setTriangle(triangle2$1,i,thisIndex,thisPos);triangle2$1.needsUpdate=true;if(tri.intersectsTriangle(triangle2$1)){return true}}return false}});return res}else{for(let i=offset*3,l=(count+offset)*3;i<l;i+=3){setTriangle(triangle$1,i,thisIndex,thisPos);triangle$1.a.applyMatrix4(invertedMat$1);triangle$1.b.applyMatrix4(invertedMat$1);triangle$1.c.applyMatrix4(invertedMat$1);triangle$1.needsUpdate=true;for(let i2=0,l2=index.count;i2<l2;i2+=3){setTriangle(triangle2$1,i2,index,pos);triangle2$1.needsUpdate=true;if(triangle$1.intersectsTriangle(triangle2$1)){return true}}}}}else{const left=nodeIndex32+8;const right=uint32Array[nodeIndex32+6];arrayToBox(BOUNDING_DATA_INDEX(left),float32Array,boundingBox$2);const leftIntersection=cachedObb.intersectsBox(boundingBox$2)&&_intersectsGeometry$1(left,bvh,otherGeometry,geometryToBvh,cachedObb);if(leftIntersection)return true;arrayToBox(BOUNDING_DATA_INDEX(right),float32Array,boundingBox$2);const rightIntersection=cachedObb.intersectsBox(boundingBox$2)&&_intersectsGeometry$1(right,bvh,otherGeometry,geometryToBvh,cachedObb);if(rightIntersection)return true;return false}}const tempMatrix$1=new three.Matrix4;const obb$3=new OrientedBox;const obb2$2=new OrientedBox;const temp1$1=new three.Vector3;const temp2$1=new three.Vector3;const temp3$1=new three.Vector3;const temp4$1=new three.Vector3;function closestPointToGeometry(bvh,otherGeometry,geometryToBvh,target1={},target2={},minThreshold=0,maxThreshold=Infinity){if(!otherGeometry.boundingBox){otherGeometry.computeBoundingBox()}obb$3.set(otherGeometry.boundingBox.min,otherGeometry.boundingBox.max,geometryToBvh);obb$3.needsUpdate=true;const geometry=bvh.geometry;const pos=geometry.attributes.position;const index=geometry.index;const otherPos=otherGeometry.attributes.position;const otherIndex=otherGeometry.index;const triangle=ExtendedTrianglePool.getPrimitive();const triangle2=ExtendedTrianglePool.getPrimitive();let tempTarget1=temp1$1;let tempTargetDest1=temp2$1;let tempTarget2=null;let tempTargetDest2=null;if(target2){tempTarget2=temp3$1;tempTargetDest2=temp4$1}let closestDistance=Infinity;let closestDistanceTriIndex=null;let closestDistanceOtherTriIndex=null;tempMatrix$1.copy(geometryToBvh).invert();obb2$2.matrix.copy(tempMatrix$1);bvh.shapecast({boundsTraverseOrder:box=>{return obb$3.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{if(score<closestDistance&&score<maxThreshold){if(isLeaf){obb2$2.min.copy(box.min);obb2$2.max.copy(box.max);obb2$2.needsUpdate=true}return true}return false},intersectsRange:(offset,count)=>{if(otherGeometry.boundsTree){const otherBvh=otherGeometry.boundsTree;return otherBvh.shapecast({boundsTraverseOrder:box=>{return obb2$2.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{return score<closestDistance&&score<maxThreshold},intersectsRange:(otherOffset,otherCount)=>{for(let i2=otherOffset,l2=otherOffset+otherCount;i2<l2;i2++){setTriangle(triangle2,3*i2,otherIndex,otherPos);triangle2.a.applyMatrix4(geometryToBvh);triangle2.b.applyMatrix4(geometryToBvh);triangle2.c.applyMatrix4(geometryToBvh);triangle2.needsUpdate=true;for(let i=offset,l=offset+count;i<l;i++){setTriangle(triangle,3*i,index,pos);triangle.needsUpdate=true;const dist=triangle.distanceToTriangle(triangle2,tempTarget1,tempTarget2);if(dist<closestDistance){tempTargetDest1.copy(tempTarget1);if(tempTargetDest2){tempTargetDest2.copy(tempTarget2)}closestDistance=dist;closestDistanceTriIndex=i;closestDistanceOtherTriIndex=i2}if(dist<minThreshold){return true}}}}})}else{const triCount=getTriCount(otherGeometry);for(let i2=0,l2=triCount;i2<l2;i2++){setTriangle(triangle2,3*i2,otherIndex,otherPos);triangle2.a.applyMatrix4(geometryToBvh);triangle2.b.applyMatrix4(geometryToBvh);triangle2.c.applyMatrix4(geometryToBvh);triangle2.needsUpdate=true;for(let i=offset,l=offset+count;i<l;i++){setTriangle(triangle,3*i,index,pos);triangle.needsUpdate=true;const dist=triangle.distanceToTriangle(triangle2,tempTarget1,tempTarget2);if(dist<closestDistance){tempTargetDest1.copy(tempTarget1);if(tempTargetDest2){tempTargetDest2.copy(tempTarget2)}closestDistance=dist;closestDistanceTriIndex=i;closestDistanceOtherTriIndex=i2}if(dist<minThreshold){return true}}}}}});ExtendedTrianglePool.releasePrimitive(triangle);ExtendedTrianglePool.releasePrimitive(triangle2);if(closestDistance===Infinity){return null}if(!target1.point){target1.point=tempTargetDest1.clone()}else{target1.point.copy(tempTargetDest1)}
4233target1.distance=closestDistance,target1.faceIndex=closestDistanceTriIndex;if(target2){if(!target2.point)target2.point=tempTargetDest2.clone();else target2.point.copy(tempTargetDest2);target2.point.applyMatrix4(tempMatrix$1);tempTargetDest1.applyMatrix4(tempMatrix$1);target2.distance=tempTargetDest1.sub(target2.point).length();target2.faceIndex=closestDistanceOtherTriIndex}return target1}function refit_indirect(bvh,nodeIndices=null){if(nodeIndices&&Array.isArray(nodeIndices)){nodeIndices=new Set(nodeIndices)}const geometry=bvh.geometry;const indexArr=geometry.index?geometry.index.array:null;const posAttr=geometry.attributes.position;let buffer,uint32Array,uint16Array,float32Array;let byteOffset=0;const roots=bvh._roots;for(let i=0,l=roots.length;i<l;i++){buffer=roots[i];uint32Array=new Uint32Array(buffer);uint16Array=new Uint16Array(buffer);float32Array=new Float32Array(buffer);_traverse(0,byteOffset);byteOffset+=buffer.byteLength}function _traverse(node32Index,byteOffset,force=false){const node16Index=node32Index*2;const isLeaf=uint16Array[node16Index+15]===IS_LEAFNODE_FLAG;if(isLeaf){const offset=uint32Array[node32Index+6];const count=uint16Array[node16Index+14];let minx=Infinity;let miny=Infinity;let minz=Infinity;let maxx=-Infinity;let maxy=-Infinity;let maxz=-Infinity;for(let i=offset,l=offset+count;i<l;i++){const t=3*bvh.resolveTriangleIndex(i);for(let j=0;j<3;j++){let index=t+j;index=indexArr?indexArr[index]:index;const x=posAttr.getX(index);const y=posAttr.getY(index);const z=posAttr.getZ(index);if(x<minx)minx=x;if(x>maxx)maxx=x;if(y<miny)miny=y;if(y>maxy)maxy=y;if(z<minz)minz=z;if(z>maxz)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]=minLeftValue<minRightValue?minLeftValue:minRightValue;float32Array[node32Index+i+3]=maxLeftValue>maxRightValue?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=>
4233obb2$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<l;i++){setTriangle(triangle2,3*bvh.resolveTriangleIndex(i),thisIndex,thisPos);triangle2.needsUpdate=true;if(tri.intersectsTriangle(triangle2)){return true}}return false}});return res}else{for(let i=offset,l=count+offset;i<l;i++){const ti=bvh.resolveTriangleIndex(i);setTriangle(triangle,3*ti,thisIndex,thisPos);triangle.a.applyMatrix4(invertedMat);triangle.b.applyMatrix4(invertedMat);triangle.c.applyMatrix4(invertedMat);triangle.needsUpdate=true;for(let i2=0,l2=index.count;i2<l2;i2+=3){setTriangle(triangle2,i2,index,pos);triangle2.needsUpdate=true;if(triangle.intersectsTriangle(triangle2)){return true}}}}}else{const left=nodeIndex32+8;const right=uint32Array[nodeIndex32+6];arrayToBox(BOUNDING_DATA_INDEX(left),float32Array,boundingBox$1);const leftIntersection=cachedObb.intersectsBox(boundingBox$1)&&_intersectsGeometry(left,bvh,otherGeometry,geometryToBvh,cachedObb);if(leftIntersection)return true;arrayToBox(BOUNDING_DATA_INDEX(right),float32Array,boundingBox$1);const rightIntersection=cachedObb.intersectsBox(boundingBox$1)&&_intersectsGeometry(right,bvh,otherGeometry,geometryToBvh,cachedObb);if(rightIntersection)return true;return false}}const tempMatrix=new three.Matrix4;const obb$1=new OrientedBox;const obb2=new OrientedBox;const temp1=new three.Vector3;const temp2=new three.Vector3;const temp3=new three.Vector3;const temp4=new three.Vector3;function closestPointToGeometry_indirect(bvh,otherGeometry,geometryToBvh,target1={},target2={},minThreshold=0,maxThreshold=Infinity){if(!otherGeometry.boundingBox){otherGeometry.computeBoundingBox()}obb$1.set(otherGeometry.boundingBox.min,otherGeometry.boundingBox.max,geometryToBvh);obb$1.needsUpdate=true;const geometry=bvh.geometry;const pos=geometry.attributes.position;const index=geometry.index;const otherPos=otherGeometry.attributes.position;const otherIndex=otherGeometry.index;const triangle=ExtendedTrianglePool.getPrimitive();const triangle2=ExtendedTrianglePool.getPrimitive();let tempTarget1=temp1;let tempTargetDest1=temp2;let tempTarget2=null;let tempTargetDest2=null;if(target2){tempTarget2=temp3;tempTargetDest2=temp4}let closestDistance=Infinity;let closestDistanceTriIndex=null;let closestDistanceOtherTriIndex=null;tempMatrix.copy(geometryToBvh).invert();obb2.matrix.copy(tempMatrix);bvh.shapecast({boundsTraverseOrder:box=>{return obb$1.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{if(score<closestDistance&&score<maxThreshold){if(isLeaf){obb2.min.copy(box.min);obb2.max.copy(box.max);obb2.needsUpdate=true}return true}return false},intersectsRange:(offset,count)=>{if(otherGeometry.boundsTree){const otherBvh=otherGeometry.boundsTree;return otherBvh.shapecast({boundsTraverseOrder:box=>{return obb2.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{return score<closestDistance&&score<maxThreshold},intersectsRange:(otherOffset,otherCount)=>{for(let i2=otherOffset,l2=otherOffset+otherCount;i2<l2;i2++){const ti2=otherBvh.resolveTriangleIndex(i2);setTriangle(triangle2,3*ti2,otherIndex,otherPos);triangle2.a.applyMatrix4(geometryToBvh);triangle2.b.applyMatrix4(geometryToBvh);triangle2.c.applyMatrix4(geometryToBvh);triangle2.needsUpdate=true;for(let i=offset,l=offset+count;i<l;i++){const ti=bvh.resolveTriangleIndex(i);setTriangle(triangle,3*ti,index,pos);triangle.needsUpdate=true;const dist=triangle.distanceToTriangle(triangle2,tempTarget1,tempTarget2);if(dist<closestDistance){tempTargetDest1.copy(tempTarget1);if(tempTargetDest2){tempTargetDest2.copy(tempTarget2)}closestDistance=dist;closestDistanceTriIndex=i;closestDistanceOtherTriIndex=i2}if(dist<minThreshold){return true}}}}})}else{const triCount=getTriCount(otherGeometry);for(let i2=0,l2=triCount;i2<l2;i2++){setTriangle(triangle2,3*i2,otherIndex,otherPos);triangle2.a.applyMatrix4(geometryToBvh);triangle2.b.applyMatrix4(geometryToBvh);triangle2.c.applyMatrix4(geometryToBvh);triangle2.needsUpdate=true;for(let i=offset,l=offset+count;i<l;i++){const ti=bvh.resolveTriangleIndex(i);setTriangle(triangle,3*ti,index,pos);triangle.needsUpdate=true;const dist=triangle.distanceToTriangle(triangle2,tempTarget1,tempTarget2);if(dist<closestDistance){tempTargetDest1.copy(tempTarget1);if(tempTargetDest2){tempTargetDest2.copy(tempTarget2)}closestDistance=dist;closestDistanceTriIndex=i;closestDistanceOtherTriIndex=i2}if(dist<minThreshold){return true}}}}}});ExtendedTrianglePool.releasePrimitive(triangle);ExtendedTrianglePool.releasePrimitive(triangle2);if(closestDistance===Infinity){return null}if(!target1.point){target1.point=tempTargetDest1.clone()}else{target1.point.copy(tempTargetDest1)}
4233target1.distance=closestDistance,target1.faceIndex=closestDistanceTriIndex;if(target2){if(!target2.point)target2.point=tempTargetDest2.clone();else target2.point.copy(tempTargetDest2);target2.point.applyMatrix4(tempMatrix);tempTargetDest1.applyMatrix4(tempMatrix);target2.distance=tempTargetDest1.sub(target2.point).length();target2.faceIndex=closestDistanceOtherTriIndex}return target1}function isSharedArrayBufferSupported(){return typeof SharedArrayBuffer!=="undefined"}function convertToBufferType(array,BufferConstructor){if(array===null){return array}else if(array.buffer){const buffer=array.buffer;if(buffer.constructor===BufferConstructor){return array}const ArrayConstructor=array.constructor;const result=new ArrayConstructor(new BufferConstructor(buffer.byteLength));result.set(array);return result}else{if(array.constructor===BufferConstructor){return array}const result=new BufferConstructor(array.byteLength);new Uint8Array(result).set(new Uint8Array(array));return result}}const _bufferStack1=new BufferStack.constructor;const _bufferStack2=new BufferStack.constructor;const _boxPool=new PrimitivePool(()=>new 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;i<il;i++){_bufferStack1.setBuffer(roots[i]);offset2=0;const localBox=_boxPool.getPrimitive();arrayToBox(BOUNDING_DATA_INDEX(0),_bufferStack1.float32Array,localBox);localBox.applyMatrix4(invMat);for(let j=0,jl=otherRoots.length;j<jl;j++){_bufferStack2.setBuffer(otherRoots[i]);result=_traverse(0,0,matrixToLocal,invMat,intersectsRanges,offset1,offset2,0,0,localBox);_bufferStack2.clearBuffer();offset2+=otherRoots[j].length;if(result){break}}_boxPool.releasePrimitive(localBox);_bufferStack1.clearBuffer();offset1+=roots[i].length;if(result){break}}_active=false;return result}function _traverse(node1Index32,node2Index32,matrix2to1,matrix1to2,intersectsRangesFunc,node1IndexByteOffset=0,node2IndexByteOffset=0,depth1=0,depth2=0,currBox=null,reversed=false){let bufferStack1,bufferStack2;if(reversed){bufferStack1=_bufferStack2;bufferStack2=_bufferStack1}else{bufferStack1=_bufferStack1;bufferStack2=_bufferStack2}const float32Array1=bufferStack1.float32Array,uint32Array1=bufferStack1.uint32Array,uint16Array1=bufferStack1.uint16Array,float32Array2=bufferStack2.float32Array,uint32Array2=bufferStack2.uint32Array,uint16Array2=bufferStack2.uint16Array;const node1Index16=node1Index32*2;const node2Index16=node2Index32*2;const isLeaf1=IS_LEAF(node1Index16,uint16Array1);const isLeaf2=IS_LEAF(node2Index16,uint16Array2);let result=false;if(isLeaf2&&isLeaf1){if(reversed){result=intersectsRangesFunc(OFFSET(node2Index32,uint32Array2),COUNT(node2Index32*2,uint16Array2),OFFSET(node1Index32,uint32Array1),COUNT(node1Index32*2,uint16Array1),depth2,node2IndexByteOffset+node2Index32,depth1,node1IndexByteOffset+node1Index32)}else{result=intersectsRangesFunc(OFFSET(node1Index32,uint32Array1),COUNT(node1Index32*2,uint16Array1),OFFSET(node2Index32,uint32Array2),COUNT(node2Index32*2,uint16Array2),depth1,node1IndexByteOffset+node1Index32,depth2,node2IndexByteOffset+node2Index32)}}else if(isLeaf2){const newBox=_boxPool.getPrimitive();arrayToBox(BOUNDING_DATA_INDEX(node2Index32),float32Array2,newBox);newBox.applyMatrix4(matrix2to1);const cl1=LEFT_NODE(node1Index32);const cr1=RIGHT_NODE(node1Index32,uint32Array1);arrayToBox(BOUNDING_DATA_INDEX(cl1),float32Array1,_leftBox1);arrayToBox(BOUNDING_DATA_INDEX(cr1),float32Array1,_rightBox1);const intersectCl1=newBox.intersectsBox(_leftBox1);const intersectCr1=newBox.intersectsBox(_rightBox1);result=intersectCl1&&_traverse(node2Index32,cl1,matrix1to2,matrix2to1,intersectsRangesFunc,node2IndexByteOffset,node1IndexByteOffset,depth2,depth1+1,newBox,!reversed)||intersectCr1&&_traverse(node2Index32,cr1,matrix1to2,matrix2to1,intersectsRangesFunc,node2IndexByteOffset,node1IndexByteOffset,depth2,depth1+1,newBox,!reversed);_boxPool.releasePrimitive(newBox)}else{const cl2=LEFT_NODE(node2Index32);const cr2=RIGHT_NODE(node2Index32,uint32Array2);arrayToBox(BOUNDING_DATA_INDEX(cl2),float32Array2,_leftBox2);arrayToBox(BOUNDING_DATA_INDEX(cr2),float32Array2,_rightBox2);const leftIntersects=currBox.intersectsBox(_leftBox2);const rightIntersects=currBox.intersectsBox(_rightBox2);if(leftIntersects&&rightIntersects){result=_traverse(node1Index32,cl2,matrix2to1,matrix1to2,intersectsRangesFunc,node1IndexByteOffset,node2IndexByteOffset,depth1,depth2+1,currBox,reversed)||_traverse(node1Index32,cr2,matrix2to1,matrix1to2,intersectsRangesFunc,node1IndexByteOffset,node2IndexByteOffset,depth1,depth2+1,currBox,reversed)}else if(leftIntersects){if(isLeaf1){result=_traverse(node1Index32,cl2,matrix2to1,matrix1to2,intersectsRangesFunc,node1IndexByteOffset,node2IndexByteOffset,depth1,depth2+1,currBox,reversed)}else{const newBox=_boxPool.getPrimitive();newBox.copy(_leftBox2).applyMatrix4(matrix2to1);const cl1=LEFT_NODE(node1Index32);const cr1=RIGHT_NODE(node1Index32,uint32Array1);arrayToBox(BOUNDING_DATA_INDEX(cl1),float32Array1,_leftBox1);arrayToBox(BOUNDING_DATA_INDEX(cr1),float32Array1,_rightBox1);const intersectCl1=newBox.intersectsBox(_leftBox1);const intersectCr1=newBox.intersectsBox(_rightBox1);result=intersectCl1&&_traverse(cl2,cl1,matrix1to2,matrix2to1,intersectsRangesFunc,node2IndexByteOffset,node1IndexByteOffset,depth2,depth1+1,newBox,!reversed)||intersectCr1&&_traverse(cl2,cr1,matrix1to2,matrix2to1,intersectsRangesFunc,node2IndexByteOffset,node1IndexByteOffset,depth2,depth1+1,newBox,!reversed);_boxPool.releasePrimitive(newBox)}}else if(rightIntersects){if(isLeaf1){result=_traverse(node1Index32,cr2,matrix2to1,matrix1to2,intersectsRangesFunc,node1IndexByteOffset,node2IndexByteOffset,depth1,depth2+1,currBox,reversed)}else{const newBox=_boxPool.getPrimitive();newBox.copy(_rightBox2).applyMatrix4(matrix2to1);const cl1=LEFT_NODE(node1Index32);const cr1=RIGHT_NODE(node1Index32,uint32Array1);arrayToBox(BOUNDING_DATA_INDEX(cl1),float32Array1,_leftBox1);arrayToBox(BOUNDING_DATA_INDEX(cr1),float32Array1,_rightBox1);const intersectCl1=newBox.intersectsBox(_leftBox1);const intersectCr1=newBox.intersectsBox(_rightBox1);result=intersectCl1&&_traverse(cr2,cl1,matrix1to2,matrix2to1,intersectsRangesFunc,node2IndexByteOffset,node1IndexByteOffset,depth2,depth1+1,newBox,!reversed)||intersectCr1&&_traverse(cr2,cr1,matrix1to2,matrix2to1,intersectsRangesFunc,node2IndexByteOffset,node1IndexByteOffset,depth2,depth1+1,newBox,!reversed);_boxPool.releasePrimitive(newBox)}}}return result}const obb=new OrientedBox;const tempBox=new three.Box3;const DEFAULT_OPTIONS={strategy:CENTER,maxDepth:40,maxLeafTris:10,useSharedArrayBuffer:false,setBoundingBox:true,onProgress:null,indirect:false,verbose:true};class MeshBVH{static serialize(bvh,options={}){options={cloneBuffers:true,...options};const geometry=bvh.geometry;const rootData=bvh._roots;const indirectBuffer=bvh._indirectBuffer;const indexAttribute=geometry.getIndex();let result;if(options.cloneBuffers){result={roots:rootData.map(root=>root.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)}
4233else 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<l;i++){const materialSide=isArrayMaterial?materialOrSide[groups[i].materialIndex].side:side;const startCount=intersects.length;raycastFunc(this,i,materialSide,ray,intersects);if(isArrayMaterial){const materialIndex=groups[i].materialIndex;for(let j=startCount,jl=intersects.length;j<jl;j++){intersects[j].face.materialIndex=materialIndex}}}return intersects}raycastFirst(ray,materialOrSide=three.FrontSide){const roots=this._roots;const geometry=this.geometry;const isMaterial=materialOrSide.isMaterial;const isArrayMaterial=Array.isArray(materialOrSide);let closestResult=null;const groups=geometry.groups;const side=isMaterial?materialOrSide.side:materialOrSide;const raycastFirstFunc=this.indirect?raycastFirst_indirect:raycastFirst;for(let i=0,l=roots.length;i<l;i++){const materialSide=isArrayMaterial?materialOrSide[groups[i].materialIndex].side:side;const result=raycastFirstFunc(this,i,materialSide,ray);if(result!=null&&(closestResult==null||result.distance<closestResult.distance)){closestResult=result;if(isArrayMaterial){result.face.materialIndex=groups[i].materialIndex}}}return closestResult}intersectsGeometry(otherGeometry,geomToMesh){let result=false;const roots=this._roots;const intersectsGeometryFunc=this.indirect?intersectsGeometry_indirect:intersectsGeometry;for(let i=0,l=roots.length;i<l;i++){result=intersectsGeometryFunc(this,i,otherGeometry,geomToMesh);if(result){break}}return result}shapecast(callbacks){const triangle=ExtendedTrianglePool.getPrimitive();const iterateFunc=this.indirect?iterateOverTriangles_indirect:iterateOverTriangles;let{boundsTraverseOrder,intersectsBounds,intersectsRange,intersectsTriangle}=callbacks;if(intersectsRange&&intersectsTriangle){const originalIntersectsRange=intersectsRange;intersectsRange=(offset,count,contained,depth,nodeIndex)=>{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<l;i++){const root=roots[i];
4233result=shapecast(this,i,intersectsBounds,intersectsRange,boundsTraverseOrder,byteOffset);if(result){break}byteOffset+=root.byteLength}ExtendedTrianglePool.releasePrimitive(triangle);return result}bvhcast(otherBvh,matrixToLocal,callbacks){let{intersectsRanges,intersectsTriangles}=callbacks;const triangle1=ExtendedTrianglePool.getPrimitive();const indexAttr1=this.geometry.index;const positionAttr1=this.geometry.attributes.position;const assignTriangle1=this.indirect?i1=>{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;i2<l2;i2++){assignTriangle2(i2);triangle2.a.applyMatrix4(matrixToLocal);triangle2.b.applyMatrix4(matrixToLocal);triangle2.c.applyMatrix4(matrixToLocal);triangle2.needsUpdate=true;for(let i1=offset1,l1=offset1+count1;i1<l1;i1++){assignTriangle1(i1);triangle1.needsUpdate=true;if(intersectsTriangles(triangle1,triangle2,i1,i2,depth1,index1,depth2,index2)){return true}}}return false};if(intersectsRanges){const originalIntersectsRanges=intersectsRanges;intersectsRanges=function(offset1,count1,offset2,count2,depth1,index1,depth2,index2){if(!originalIntersectsRanges(offset1,count1,offset2,count2,depth1,index1,depth2,index2)){return iterateOverDoubleTriangles(offset1,count1,offset2,count2,depth1,index1,depth2,index2)}return true}}else{intersectsRanges=iterateOverDoubleTriangles}}return bvhcast(this,otherBvh,matrixToLocal,intersectsRanges)}intersectsBox(box,boxToMesh){obb.set(box.min,box.max,boxToMesh);obb.needsUpdate=true;return this.shapecast({intersectsBounds:box=>obb.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;i<boundsCount;i++){const posOffset=i*8;const indexOffset=i*indexLength;for(let j=0;j<indexLength;j++){indexArray[indexOffset+j]=posOffset+indices[j]}}geometry.setIndex(new three.BufferAttribute(indexArray,1,false));geometry.setAttribute("position",new three.BufferAttribute(positionArray,3,false));this.visible=true}}}class MeshBVHHelper extends three.Group{get color(){return this.edgeMaterial.color}get opacity(){return this.edgeMaterial.opacity}set opacity(v){this.edgeMaterial.opacity=v;this.meshMaterial.opacity=v}constructor(mesh=null,bvh=null,depth=10){if(mesh instanceof MeshBVH){depth=bvh||10;bvh=mesh;mesh=null}if(typeof bvh==="number"){depth=bvh;bvh=null}super();this.name="MeshBVHHelper";this.depth=depth;this.mesh=mesh;this.bvh=bvh;this.displayParents=false;this.displayEdges=true;this._roots=[];const edgeMaterial=new three.LineBasicMaterial({color:65416,transparent:true,opacity:0.3,depthWrite:false});const meshMaterial=new three.MeshBasicMaterial({color:65416,transparent:true,opacity:0.3,depthWrite:false});meshMaterial.color=edgeMaterial.color;this.edgeMaterial=edgeMaterial;this.meshMaterial=meshMaterial;this.update()}update(){const bvh=this.bvh||this.mesh.geometry.boundsTree;const totalRoots=bvh?bvh._roots.length:0;while(this._roots.length>totalRoots){const root=this._roots.pop();root.geometry.dispose();this.remove(root)}for(let i=0;i<totalRoots;i++){const{depth,edgeMaterial,meshMaterial,displayParents,displayEdges}=this;if(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;
4233root.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<l;i++){children[i].geometry.dispose()}}}class MeshBVHVisualizer extends MeshBVHHelper{constructor(...args){super(...args);console.warn("MeshBVHVisualizer: MeshBVHVisualizer has been deprecated. Use MeshBVHHelper, instead.")}}const _box1=new three.Box3;const _box2=new three.Box3;const _vec=new three.Vector3;function getPrimitiveSize(el){switch(typeof el){case"number":return 8;case"string":return el.length*2;case"boolean":return 4;default:return 0;}}function isTypedArray(arr){const regex=/(Uint|Int|Float)(8|16|32)Array/;return regex.test(arr.constructor.name)}function getRootExtremes(bvh,group){const result={nodeCount:0,leafNodeCount:0,depth:{min:Infinity,max:-Infinity},tris:{min:Infinity,max:-Infinity},splits:[0,0,0],surfaceAreaScore:0};bvh.traverse((depth,isLeaf,boundingData,offsetOrSplit,count)=>{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}
4233bytes+=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<l;i++){const triIndex=bvh.resolveTriangleIndex(i);let i0=3*triIndex;let i1=3*triIndex+1;let i2=3*triIndex+2;if(index){i0=index.getX(i0);i1=index.getX(i1);i2=index.getX(i2)}let isContained;_vec.fromBufferAttribute(position,i0);isContained=_box1.containsPoint(_vec);_vec.fromBufferAttribute(position,i1);isContained=isContained&&_box1.containsPoint(_vec);_vec.fromBufferAttribute(position,i2);isContained=isContained&&_box1.containsPoint(_vec);console.assert(isContained,"Leaf bounds does not fully contain triangle.");passes=passes&&isContained}}if(parent){arrayToBox(0,boundingData,_box2);const isContained=_box2.containsBox(_box1);console.assert(isContained,"Parent bounds does not fully contain child.");passes=passes&&isContained}});return passes}function getJSONStructure(bvh){const depthStack=[];bvh.traverse((depth,isLeaf,boundingData,offset,count)=>{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.distance<raycaster.near||hit.distance>raycaster.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<l;i++){const hit=convertRaycastIntersect(hits[i],this,raycaster);if(hit){intersects.push(hit)}}}}else{origMeshRaycastFunc.call(this,raycaster,intersects)}}function computeBoundsTree(options){this.boundsTree=new MeshBVH(this,options);return this.boundsTree}function disposeBoundsTree(){this.boundsTree=null}function countToStringFormat(count){switch(count){case 1:return"R";case 2:return"RG";case 3:return"RGBA";case 4:return"RGBA";}throw new Error}function countToFormat(count){switch(count){case 1:return three.RedFormat;case 2:return three.RGFormat;case 3:return three.RGBAFormat;case 4:return three.RGBAFormat;}}function countToIntFormat(count){switch(count){case 1:return three.RedIntegerFormat;case 2:return three.RGIntegerFormat;case 3:return three.RGBAIntegerFormat;case 4:return three.RGBAIntegerFormat;}}class VertexAttributeTexture extends three.DataTexture{constructor(){super();this.minFilter=three.NearestFilter;this.magFilter=three.NearestFilter;this.generateMipmaps=false;this.overrideItemSize=null;this._forcedType=null}updateFrom(attr){const overrideItemSize=this.overrideItemSize;const originalItemSize=attr.itemSize;const originalCount=attr.count;if(overrideItemSize!==null){if(originalItemSize*originalCount%overrideItemSize!==0){throw new Error("VertexAttributeTexture: overrideItemSize must divide evenly into buffer length.")}attr.itemSize=overrideItemSize;attr.count=originalCount*originalItemSize/overrideItemSize}const itemSize=attr.itemSize;const count=attr.count;const normalized=attr.normalized;const originalBufferCons=attr.array.constructor;const byteCount=originalBufferCons.BYTES_PER_ELEMENT;let targetType=this._forcedType;let finalStride=itemSize;if(targetType===null){switch(originalBufferCons){case Float32Array:targetType=three.FloatType;break;case Uint8Array:case Uint16Array:case Uint32Array:targetType=three.UnsignedIntType;break;case Int8Array:case Int16Array:case Int32Array:targetType=three.IntType;break;}}let type,format,normalizeValue,targetBufferCons;let internalFormat=countToStringFormat(itemSize);switch(targetType){case three.FloatType:normalizeValue=1;format=countToFormat(itemSize);if(normalized&&byteCount===1){targetBufferCons=originalBufferCons;internalFormat+="8";if(originalBufferCons===Uint8Array){type=three.UnsignedByteType}else{type=three.ByteType;internalFormat+="_SNORM"}}else{targetBufferCons=Float32Array;internalFormat+="32F";type=three.FloatType}break;case three.IntType:internalFormat+=byteCount*8+"I";normalizeValue=normalized?Math.pow(2,originalBufferCons.BYTES_PER_ELEMENT*8-1):1;format=countToIntFormat(itemSize);if(byteCount===1){targetBufferCons=Int8Array;type=three.ByteType}else if(byteCount===2){targetBufferCons=Int16Array;type=three.ShortType}else{targetBufferCons=Int32Array;type=three.IntType}break;case three.UnsignedIntType:internalFormat+=byteCount*8+"UI";normalizeValue=normalized?Math.pow(2,originalBufferCons.BYTES_PER_ELEMENT*8-1):1;format=countToIntFormat(itemSize);if(byteCount===1){targetBufferCons=Uint8Array;type=three.UnsignedByteType}else if(byteCount===2){targetBufferCons=Uint16Array;type=three.UnsignedShortType}else{targetBufferCons=Uint32Array;type=three.UnsignedIntType}break;}if(finalStride===3&&(format===three.RGBAFormat||format===three.RGBAIntegerFormat)){finalStride=4}const dimension=Math.ceil(Math.sqrt(count))||1;const length=finalStride*dimension*dimension;const dataArray=new targetBufferCons(length);const originalNormalized=attr.normalized;attr.normalized=false;for(let i=0;i<count;i++){const ii=finalStride*i;dataArray[ii]=attr.getX(i)/normalizeValue;if(itemSize>=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<l;i++){const i3=3*i;const v3=3*indirectBuffer[i];for(let c=0;c<3;c++){unpacked[i3+c]=indexArray?indexArray[v3+c]:v3+c}}}function bvhToTextures(bvh,boundsTexture,contentsTexture){const roots=bvh._roots;if(roots.length!==1){throw new Error("MeshBVHUniformStruct: Multi-root BVHs not supported.")}const root=roots[0];const uint16Array=new Uint16Array(root);const uint32Array=new Uint32Array(root);const float32Array=new Float32Array(root);const nodeCount=root.byteLength/BYTES_PER_NODE;const boundsDimension=2*Math.ceil(Math.sqrt(nodeCount/2));const boundsArray=new Float32Array(4*boundsDimension*boundsDimension);const contentsDimension=Math.ceil(Math.sqrt(nodeCount));const contentsArray=new Uint32Array(2*contentsDimension*contentsDimension);for(let i=0;i<nodeCount;i++){const nodeIndex32=i*BYTES_PER_NODE/4;const nodeIndex16=nodeIndex32*2;const boundsIndex=BOUNDING_DATA_INDEX(nodeIndex32);for(let b=0;b<3;b++){boundsArray[8*i+0+b]=float32Array[boundsIndex+0+b];boundsArray[8*i+4+b]=float32Array[boundsIndex+3+b]}if(IS_LEAF(nodeIndex16,uint16Array)){const count=COUNT(nodeIndex16,uint16Array);const offset=OFFSET(nodeIndex32,uint32Array);const mergedLeafCount=4294901760|count;contentsArray[i*2+0]=mergedLeafCount;contentsArray[i*2+1]=offset}else{const rightIndex=4*RIGHT_NODE(nodeIndex32,uint32Array)/BYTES_PER_NODE;const splitAxis=SPLIT_AXIS(nodeIndex32,uint32Array);contentsArray[i*2+0]=splitAxis;contentsArray[i*2+1]=rightIndex}}boundsTexture.image.data=boundsArray;
4233boundsTexture.image.width=boundsDimension;boundsTexture.image.height=boundsDimension;boundsTexture.format=three.RGBAFormat;boundsTexture.type=three.FloatType;boundsTexture.internalFormat="RGBA32F";boundsTexture.minFilter=three.NearestFilter;boundsTexture.magFilter=three.NearestFilter;boundsTexture.generateMipmaps=false;boundsTexture.needsUpdate=true;boundsTexture.dispose();contentsTexture.image.data=contentsArray;contentsTexture.image.width=contentsDimension;contentsTexture.image.height=contentsDimension;contentsTexture.format=three.RGIntegerFormat;contentsTexture.type=three.UnsignedIntType;contentsTexture.internalFormat="RG32UI";contentsTexture.minFilter=three.NearestFilter;contentsTexture.magFilter=three.NearestFilter;contentsTexture.generateMipmaps=false;contentsTexture.needsUpdate=true;contentsTexture.dispose()}const _positionVector=new three.Vector3;const _normalVector=new three.Vector3;const _tangentVector=new three.Vector3;const _tangentVector4=new three.Vector4;const _morphVector=new three.Vector3;const _temp=new three.Vector3;const _skinIndex=new three.Vector4;const _skinWeight=new three.Vector4;const _matrix=new three.Matrix4;const _boneMatrix=new three.Matrix4;function validateAttributes(attr1,attr2){if(!attr1&&!attr2){return}const sameCount=attr1.count===attr2.count;
4233const sameNormalized=attr1.normalized===attr2.normalized;const sameType=attr1.array.constructor===attr2.array.constructor;const sameItemSize=attr1.itemSize===attr2.itemSize;if(!sameCount||!sameNormalized||!sameType||!sameItemSize){throw new Error}}function createAttributeClone(attr,countOverride=null){const cons=attr.array.constructor;const normalized=attr.normalized;const itemSize=attr.itemSize;const count=countOverride===null?attr.count:countOverride;return new three.BufferAttribute(new cons(itemSize*count),itemSize,normalized)}function copyAttributeContents(attr,target,targetOffset=0){if(attr.isInterleavedBufferAttribute){const itemSize=attr.itemSize;for(let i=0,l=attr.count;i<l;i++){const io=i+targetOffset;target.setX(io,attr.getX(i));if(itemSize>=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<l;i++){targetArray[i]+=matrixArray[i]*scale}}function boneNormalTransform(mesh,index,target){const skeleton=mesh.skeleton;const geometry=mesh.geometry;const bones=skeleton.bones;const boneInverses=skeleton.boneInverses;_skinIndex.fromBufferAttribute(geometry.attributes.skinIndex,index);_skinWeight.fromBufferAttribute(geometry.attributes.skinWeight,index);_matrix.elements.fill(0);for(let i=0;i<4;i++){const weight=_skinWeight.getComponent(i);if(weight!==0){const boneIndex=_skinIndex.getComponent(i);_boneMatrix.multiplyMatrices(bones[boneIndex].matrixWorld,boneInverses[boneIndex]);addScaledMatrix(_matrix,_boneMatrix,weight)}}_matrix.multiply(mesh.bindMatrix).premultiply(mesh.bindMatrixInverse);target.transformDirection(_matrix);return target}function applyMorphTarget(morphData,morphInfluences,morphTargetsRelative,i,target){_morphVector.set(0,0,0);for(let j=0,jl=morphData.length;j<jl;j++){const influence=morphInfluences[j];const morphAttribute=morphData[j];if(influence===0)continue;_temp.fromBufferAttribute(morphAttribute,i);if(morphTargetsRelative){_morphVector.addScaledVector(_temp,influence)}else{_morphVector.addScaledVector(_temp.sub(target),influence)}}target.add(_morphVector)}function mergeBufferGeometries(geometries,options={useGroups:false,updateIndex:false,skipAttributes:[]},targetGeometry=new three.BufferGeometry){const isIndexed=geometries[0].index!==null;const{useGroups=false,updateIndex=false,skipAttributes=[]}=options;const attributesUsed=new Set(Object.keys(geometries[0].attributes));const attributes={};let offset=0;targetGeometry.clearGroups();for(let i=0;i<geometries.length;++i){const geometry=geometries[i];let attributesCount=0;
4233if(isIndexed!==(geometry.index!==null)){throw new Error("StaticGeometryGenerator: All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.")}for(const name in geometry.attributes){if(!attributesUsed.has(name)){throw new Error("StaticGeometryGenerator: All geometries must have compatible attributes; make sure \""+name+"\" attribute exists among all geometries, or in none of them.")}if(attributes[name]===undefined){attributes[name]=[]}attributes[name].push(geometry.attributes[name]);attributesCount++}if(attributesCount!==attributesUsed.size){throw new Error("StaticGeometryGenerator: Make sure all geometries have the same number of attributes.")}if(useGroups){let count;if(isIndexed){count=geometry.index.count}else if(geometry.attributes.position!==undefined){count=geometry.attributes.position.count}else{throw new Error("StaticGeometryGenerator: The geometry must have either an index or a position attribute")}targetGeometry.addGroup(offset,count,i);offset+=count}}if(isIndexed){let forceUpdateIndex=false;if(!targetGeometry.index){let indexCount=0;for(let i=0;i<geometries.length;++i){indexCount+=geometries[i].index.count}targetGeometry.setIndex(new three.BufferAttribute(new Uint32Array(indexCount),1,false));forceUpdateIndex=true}if(updateIndex||forceUpdateIndex){const targetIndex=targetGeometry.index;let targetOffset=0;let indexOffset=0;for(let i=0;i<geometries.length;++i){const geometry=geometries[i];const index=geometry.index;if(skipAttributes[i]!==true){for(let j=0;j<index.count;++j){targetIndex.setX(targetOffset,index.getX(j)+indexOffset);targetOffset++}}indexOffset+=geometry.attributes.position.count}}}for(const name in attributes){const attrList=attributes[name];if(!(name in targetGeometry.attributes)){let count=0;for(const key in attrList){count+=attrList[key].count}targetGeometry.setAttribute(name,createAttributeClone(attributes[name][0],count))}const targetAttribute=targetGeometry.attributes[name];let offset=0;for(let i=0,l=attrList.length;i<l;i++){const attr=attrList[i];if(skipAttributes[i]!==true){copyAttributeContents(attr,targetAttribute,offset)}offset+=attr.count}}return targetGeometry}function checkTypedArrayEquality(a,b){if(a===null||b===null){return a===b}if(a.length!==b.length){return false}for(let i=0,l=a.length;i<l;i++){if(a[i]!==b[i]){return false}}return true}function invertGeometry(geometry){const{index,attributes}=geometry;if(index){for(let i=0,l=index.count;i<l;i+=3){const v0=index.getX(i);const v2=index.getX(i+2);index.setX(i,v2);index.setX(i+2,v0)}}else{for(const key in attributes){const attr=attributes[key];const itemSize=attr.itemSize;for(let i=0,l=attr.count;i<l;i+=3){for(let j=0;j<itemSize;j++){const v0=attr.getComponent(i,j);const v2=attr.getComponent(i+2,j);attr.setComponent(i,j,v2);attr.setComponent(i+2,j,v0)}}}}return geometry}class GeometryDiff{constructor(mesh){this.matrixWorld=new three.Matrix4;this.geometryHash=null;this.boneMatrices=null;this.primitiveCount=-1;this.mesh=mesh;this.update()}update(){const mesh=this.mesh;const geometry=mesh.geometry;const skeleton=mesh.skeleton;const primitiveCount=(geometry.index?geometry.index.count:geometry.attributes.position.count)/3;this.matrixWorld.copy(mesh.matrixWorld);this.geometryHash=geometry.attributes.position.version;this.primitiveCount=primitiveCount;if(skeleton){if(!skeleton.boneTexture){skeleton.computeBoneTexture()}skeleton.update();const boneMatrices=skeleton.boneMatrices;
4233if(!this.boneMatrices||this.boneMatrices.length!==boneMatrices.length){this.boneMatrices=boneMatrices.slice()}else{this.boneMatrices.set(boneMatrices)}}else{this.boneMatrices=null}}didChange(){const mesh=this.mesh;const geometry=mesh.geometry;const primitiveCount=(geometry.index?geometry.index.count:geometry.attributes.position.count)/3;const identical=this.matrixWorld.equals(mesh.matrixWorld)&&this.geometryHash===geometry.attributes.position.version&&checkTypedArrayEquality(mesh.skeleton&&mesh.skeleton.boneMatrices||null,this.boneMatrices)&&this.primitiveCount===primitiveCount;return!identical}}class StaticGeometryGenerator{constructor(meshes){if(!Array.isArray(meshes)){meshes=[meshes]}const finalMeshes=[];meshes.forEach(object=>{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<l;i++){const mesh=meshes[i];const geom=_intermediateGeometry[i];const diff=_diffMap.get(mesh);if(!diff||diff.didChange(mesh)){this._convertToStaticGeometry(mesh,geom);skipAttributes.push(false);if(!diff){_diffMap.set(mesh,new GeometryDiff(mesh))}else{diff.update()}}else{skipAttributes.push(true)}}if(_intermediateGeometry.length===0){targetGeometry.setIndex(null);const attrs=targetGeometry.attributes;for(const key in attrs){targetGeometry.deleteAttribute(key)}for(const key in this.attributes){targetGeometry.setAttribute(this.attributes[key],new three.BufferAttribute(new Float32Array(0),4,false))}}else{mergeBufferGeometries(_intermediateGeometry,{useGroups,skipAttributes},targetGeometry)}for(const key in targetGeometry.attributes){targetGeometry.attributes[key].needsUpdate=true}return targetGeometry}_convertToStaticGeometry(mesh,targetGeometry=new three.BufferGeometry){const geometry=mesh.geometry;const applyWorldTransforms=this.applyWorldTransforms;const includeNormal=this.attributes.includes("normal");const includeTangent=this.attributes.includes("tangent");const attributes=geometry.attributes;const targetAttributes=targetGeometry.attributes;if(!targetGeometry.index&&geometry.index){targetGeometry.index=geometry.index.clone()}if(!targetAttributes.position){targetGeometry.setAttribute("position",createAttributeClone(attributes.position))}if(includeNormal&&!targetAttributes.normal&&attributes.normal){targetGeometry.setAttribute("normal",createAttributeClone(attributes.normal))}if(includeTangent&&!targetAttributes.tangent&&attributes.tangent){targetGeometry.setAttribute("tangent",createAttributeClone(attributes.tangent))}validateAttributes(geometry.index,targetGeometry.index);validateAttributes(attributes.position,targetAttributes.position);if(includeNormal){validateAttributes(attributes.normal,targetAttributes.normal)}if(includeTangent){validateAttributes(attributes.tangent,targetAttributes.tangent)}const position=attributes.position;const normal=includeNormal?attributes.normal:null;const tangent=includeTangent?attributes.tangent:null;const morphPosition=geometry.morphAttributes.position;const morphNormal=geometry.morphAttributes.normal;const morphTangent=geometry.morphAttributes.tangent;const morphTargetsRelative=geometry.morphTargetsRelative;const morphInfluences=mesh.morphTargetInfluences;const normalMatrix=new three.Matrix3;normalMatrix.getNormalMatrix(mesh.matrixWorld);if(geometry.index){targetGeometry.index.array.set(geometry.index.array)}for(let i=0,l=attributes.position.count;i<l;i++){_positionVector.fromBufferAttribute(position,i);if(normal){_normalVector.fromBufferAttribute(normal,i)}if(tangent){_tangentVector4.fromBufferAttribute(tangent,i);_tangentVector.fromBufferAttribute(tangent,i)}if(morphInfluences){if(morphPosition){applyMorphTarget(morphPosition,morphInfluences,morphTargetsRelative,i,_positionVector)}if(morphNormal){applyMorphTarget(morphNormal,morphInfluences,morphTargetsRelative,i,_normalVector)}if(morphTangent){applyMorphTarget(morphTangent,morphInfluences,morphTargetsRelative,i,_tangentVector)}}if(mesh.isSkinnedMesh){mesh.applyBoneTransform(i,_positionVector);if(normal){boneNormalTransform(mesh,i,_normalVector)}if(tangent){boneNormalTransform(mesh,i,_tangentVector)}}
4233if(applyWorldTransforms){_positionVector.applyMatrix4(mesh.matrixWorld)}targetAttributes.position.setXYZ(i,_positionVector.x,_positionVector.y,_positionVector.z);if(normal){if(applyWorldTransforms){_normalVector.applyNormalMatrix(normalMatrix)}targetAttributes.normal.setXYZ(i,_normalVector.x,_normalVector.y,_normalVector.z)}if(tangent){if(applyWorldTransforms){_tangentVector.transformDirection(mesh.matrixWorld)}targetAttributes.tangent.setXYZW(i,_tangentVector.x,_tangentVector.y,_tangentVector.z,_tangentVector4.w)}}for(const i in this.attributes){const key=this.attributes[i];if(key==="position"||key==="tangent"||key==="normal"||!(key in attributes)){continue}if(!targetAttributes[key]){targetGeometry.setAttribute(key,createAttributeClone(attributes[key]))}validateAttributes(attributes[key],targetAttributes[key]);copyAttributeContents(attributes[key],targetAttributes[key])}if(mesh.matrixWorld.determinant()<0){invertGeometry(targetGeometry)}return targetGeometry}}const common_functions=` 4234 4235// A stack of uint32 indices can can store the indices for 4236// a perfectly balanced tree with a depth up to 31. Lower stack 4237// depth gets higher performance. 4238// 4239// However not all trees are balanced. Best value to set this to 4240// is the trees max depth. 4241#ifndef BVH_STACK_DEPTH 4242#define BVH_STACK_DEPTH 60 4243#endif 4244 4245#ifndef INFINITY 4246#define INFINITY 1e20 4247#endif 4248 4249// Utilities 4250uvec4 uTexelFetch1D( usampler2D tex, uint index ) { 4251 4252 uint width = uint( textureSize( tex, 0 ).x ); 4253 uvec2 uv; 4254 uv.x = index % width; 4255 uv.y = index / width; 4256 4257 return texelFetch( tex, ivec2( uv ), 0 ); 4258 4259} 4260 4261ivec4 iTexelFetch1D( isampler2D tex, uint index ) { 4262 4263 uint width = uint( textureSize( tex, 0 ).x ); 4264 uvec2 uv; 4265 uv.x = index % width; 4266 uv.y = index / width; 4267 4268 return texelFetch( tex, ivec2( uv ), 0 ); 4269 4270} 4271 4272vec4 texelFetch1D( sampler2D tex, uint index ) { 4273 4274 uint width = uint( textureSize( tex, 0 ).x ); 4275 uvec2 uv; 4276 uv.x = index % width; 4277 uv.y = index / width; 4278 4279 return texelFetch( tex, ivec2( uv ), 0 ); 4280 4281} 4282 4283vec4 textureSampleBarycoord( sampler2D tex, vec3 barycoord, uvec3 faceIndices ) { 4284 4285 return 4286 barycoord.x * texelFetch1D( tex, faceIndices.x ) + 4287 barycoord.y * texelFetch1D( tex, faceIndices.y ) + 4288 barycoord.z * texelFetch1D( tex, faceIndices.z ); 4289 4290} 4291 4292void ndcToCameraRay( 4293 vec2 coord, mat4 cameraWorld, mat4 invProjectionMatrix, 4294 out vec3 rayOrigin, out vec3 rayDirection 4295) { 4296 4297 // get camera look direction and near plane for camera clipping 4298 vec4 lookDirection = cameraWorld * vec4( 0.0, 0.0, - 1.0, 0.0 ); 4299 vec4 nearVector = invProjectionMatrix * vec4( 0.0, 0.0, - 1.0, 1.0 ); 4300 float near = abs( nearVector.z / nearVector.w ); 4301 4302 // get the camera direction and position from camera matrices 4303 vec4 origin = cameraWorld * vec4( 0.0, 0.0, 0.0, 1.0 ); 4304 vec4 direction = invProjectionMatrix * vec4( coord, 0.5, 1.0 ); 4305 direction /= direction.w; 4306 direction = cameraWorld * direction - origin; 4307 4308 // slide the origin along the ray until it sits at the near clip plane position 4309 origin.xyz += direction.xyz * near / dot( direction, lookDirection ); 4310 4311 rayOrigin = origin.xyz; 4312 rayDirection = direction.xyz; 4313 4314} 4315`;const bvh_distance_functions=` 4316 4317float dot2( vec3 v ) { 4318 4319 return dot( v, v ); 4320 4321} 4322 4323// https://www.shadertoy.com/view/ttfGWl
4324vec3 closestPointToTriangle( vec3 p, vec3 v0, vec3 v1, vec3 v2, out vec3 barycoord ) { 4325 4326 vec3 v10 = v1 - v0; 4327 vec3 v21 = v2 - v1; 4328 vec3 v02 = v0 - v2; 4329 4330 vec3 p0 = p - v0; 4331 vec3 p1 = p - v1; 4332 vec3 p2 = p - v2; 4333 4334 vec3 nor = cross( v10, v02 ); 4335 4336 // method 2, in barycentric space 4337 vec3 q = cross( nor, p0 ); 4338 float d = 1.0 / dot2( nor ); 4339 float u = d * dot( q, v02 ); 4340 float v = d * dot( q, v10 ); 4341 float w = 1.0 - u - v; 4342 4343 if( u < 0.0 ) { 4344 4345 w = clamp( dot( p2, v02 ) / dot2( v02 ), 0.0, 1.0 ); 4346 u = 0.0; 4347 v = 1.0 - w; 4348 4349 } else if( v < 0.0 ) { 4350 4351 u = clamp( dot( p0, v10 ) / dot2( v10 ), 0.0, 1.0 ); 4352 v = 0.0; 4353 w = 1.0 - u; 4354 4355 } else if( w < 0.0 ) { 4356 4357 v = clamp( dot( p1, v21 ) / dot2( v21 ), 0.0, 1.0 ); 4358 w = 0.0; 4359 u = 1.0-v; 4360 4361 } 4362 4363 barycoord = vec3( u, v, w ); 4364 return u * v1 + v * v2 + w * v0; 4365 4366} 4367 4368float distanceToTriangles( 4369 // geometry info and triangle range 4370 sampler2D positionAttr, usampler2D indexAttr, uint offset, uint count, 4371 4372 // point and cut off range 4373 vec3 point, float closestDistanceSquared, 4374 4375 // outputs 4376 inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, inout float side, inout vec3 outPoint 4377) { 4378 4379 bool found = false; 4380 vec3 localBarycoord; 4381 for ( uint i = offset, l = offset + count; i < l; i ++ ) { 4382 4383 uvec3 indices = uTexelFetch1D( indexAttr, i ).xyz; 4384 vec3 a = texelFetch1D( positionAttr, indices.x ).rgb; 4385 vec3 b = texelFetch1D( positionAttr, indices.y ).rgb; 4386 vec3 c = texelFetch1D( positionAttr, indices.z ).rgb; 4387 4388 // get the closest point and barycoord 4389 vec3 closestPoint = closestPointToTriangle( point, a, b, c, localBarycoord ); 4390 vec3 delta = point - closestPoint; 4391 float sqDist = dot2( delta ); 4392 if ( sqDist < closestDistanceSquared ) { 4393 4394 // set the output results 4395 closestDistanceSquared = sqDist; 4396 faceIndices = uvec4( indices.xyz, i ); 4397 faceNormal = normalize( cross( a - b, b - c ) ); 4398 barycoord = localBarycoord; 4399 outPoint = closestPoint; 4400 side = sign( dot( faceNormal, delta ) ); 4401 4402 } 4403 4404 } 4405 4406 return closestDistanceSquared; 4407 4408} 4409 4410float distanceSqToBounds( vec3 point, vec3 boundsMin, vec3 boundsMax ) { 4411 4412 vec3 clampedPoint = clamp( point, boundsMin, boundsMax ); 4413 vec3 delta = point - clampedPoint; 4414 return dot( delta, delta ); 4415 4416} 4417 4418float distanceSqToBVHNodeBoundsPoint( vec3 point, sampler2D bvhBounds, uint currNodeIndex ) { 4419 4420 uint cni2 = currNodeIndex * 2u; 4421 vec3 boundsMin = texelFetch1D( bvhBounds, cni2 ).xyz; 4422 vec3 boundsMax = texelFetch1D( bvhBounds, cni2 + 1u ).xyz; 4423 return distanceSqToBounds( point, boundsMin, boundsMax ); 4424 4425} 4426 4427// use a macro to hide the fact that we need to expand the struct into separate fields 4428#define\ 4429 bvhClosestPointToPoint(\ 4430 bvh,\ 4431 point, faceIndices, faceNormal, barycoord, side, outPoint\ 4432 )\ 4433 _bvhClosestPointToPoint(\ 4434 bvh.position, bvh.index, bvh.bvhBounds, bvh.bvhContents,\ 4435 point, faceIndices, faceNormal, barycoord, side, outPoint\ 4436 ) 4437 4438float _bvhClosestPointToPoint( 4439 // bvh info 4440 sampler2D bvh_position, usampler2D bvh_index, sampler2D bvh_bvhBounds, usampler2D bvh_bvhContents, 4441 4442 // point to check 4443 vec3 point, 4444 4445 // output variables 4446 inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, 4447 inout float side, inout vec3 outPoint 4448 ) { 4449 4450 // stack needs to be twice as long as the deepest tree we expect because 4451 // we push both the left and right child onto the stack every traversal 4452 int ptr = 0; 4453 uint stack[ BVH_STACK_DEPTH ]; 4454 stack[ 0 ] = 0u; 4455 4456 float closestDistanceSquared = pow( 100000.0, 2.0 ); 4457 bool found = false; 4458 while ( ptr > - 1 && ptr < BVH_STACK_DEPTH ) { 4459 4460 uint currNodeIndex = stack[ ptr ]; 4461 ptr --; 4462 4463 // check if we intersect the current bounds 4464 float boundsHitDistance = distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, currNodeIndex ); 4465 if ( boundsHitDistance > closestDistanceSquared ) { 4466 4467 continue; 4468 4469 } 4470 4471 uvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy; 4472 bool isLeaf = bool( boundsInfo.x & 0xffff0000u ); 4473 if ( isLeaf ) { 4474 4475 uint count = boundsInfo.x & 0x0000ffffu; 4476 uint offset = boundsInfo.y; 4477 closestDistanceSquared = distanceToTriangles( 4478 bvh_position, bvh_index, offset, count, point, closestDistanceSquared, 4479 4480 // outputs 4481 faceIndices, faceNormal, barycoord, side, outPoint 4482 ); 4483 4484 } else { 4485 4486 uint leftIndex = currNodeIndex + 1u;
4487 uint splitAxis = boundsInfo.x & 0x0000ffffu; 4488 uint rightIndex = boundsInfo.y; 4489 bool leftToRight = distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, leftIndex ) < distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, rightIndex );//rayDirection[ splitAxis ] >= 0.0; 4490 uint c1 = leftToRight ? leftIndex : rightIndex; 4491 uint c2 = leftToRight ? rightIndex : leftIndex; 4492 4493 // set c2 in the stack so we traverse it later. We need to keep track of a pointer in 4494 // the stack while we traverse. The second pointer added is the one that will be 4495 // traversed first 4496 ptr ++; 4497 stack[ ptr ] = c2; 4498 ptr ++; 4499 stack[ ptr ] = c1; 4500 4501 } 4502 4503 } 4504 4505 return sqrt( closestDistanceSquared ); 4506 4507} 4508`;const bvh_ray_functions=` 4509 4510#ifndef TRI_INTERSECT_EPSILON 4511#define TRI_INTERSECT_EPSILON 1e-5 4512#endif 4513 4514// Raycasting 4515bool intersectsBounds( vec3 rayOrigin, vec3 rayDirection, vec3 boundsMin, vec3 boundsMax, out float dist ) { 4516 4517 // https://www.reddit.com/r/opengl/comments/8ntzz5/fast_glsl_ray_box_intersection/ 4518 // https://tavianator.com/2011/ray_box.html 4519 vec3 invDir = 1.0 / rayDirection; 4520 4521 // find intersection distances for each plane 4522 vec3 tMinPlane = invDir * ( boundsMin - rayOrigin ); 4523 vec3 tMaxPlane = invDir * ( boundsMax - rayOrigin ); 4524 4525 // get the min and max distances from each intersection 4526 vec3 tMinHit = min( tMaxPlane, tMinPlane ); 4527 vec3 tMaxHit = max( tMaxPlane, tMinPlane ); 4528 4529 // get the furthest hit distance 4530 vec2 t = max( tMinHit.xx, tMinHit.yz ); 4531 float t0 = max( t.x, t.y ); 4532 4533 // get the minimum hit distance 4534 t = min( tMaxHit.xx, tMaxHit.yz ); 4535 float t1 = min( t.x, t.y ); 4536 4537 // set distance to 0.0 if the ray starts inside the box 4538 dist = max( t0, 0.0 ); 4539 4540 return t1 >= dist; 4541 4542} 4543 4544bool intersectsTriangle( 4545 vec3 rayOrigin, vec3 rayDirection, vec3 a, vec3 b, vec3 c, 4546 out vec3 barycoord, out vec3 norm, out float dist, out float side 4547) { 4548 4549 // https://stackoverflow.com/questions/42740765/intersection-between-line-and-triangle-in-3d 4550 vec3 edge1 = b - a; 4551 vec3 edge2 = c - a; 4552 norm = cross( edge1, edge2 ); 4553 4554 float det = - dot( rayDirection, norm ); 4555 float invdet = 1.0 / det; 4556 4557 vec3 AO = rayOrigin - a; 4558 vec3 DAO = cross( AO, rayDirection ); 4559 4560 vec4 uvt; 4561 uvt.x = dot( edge2, DAO ) * invdet; 4562 uvt.y = - dot( edge1, DAO ) * invdet; 4563 uvt.z = dot( AO, norm ) * invdet; 4564 uvt.w = 1.0 - uvt.x - uvt.y; 4565 4566 // set the hit information 4567 barycoord = uvt.wxy; // arranged in A, B, C order 4568 dist = uvt.z; 4569 side = sign( det ); 4570 norm = side * normalize( norm ); 4571 4572 // add an epsilon to avoid misses between triangles 4573 uvt += vec4( TRI_INTERSECT_EPSILON ); 4574 4575 return all( greaterThanEqual( uvt, vec4( 0.0 ) ) ); 4576 4577} 4578 4579bool intersectTriangles( 4580 // geometry info and triangle range 4581 sampler2D positionAttr, usampler2D indexAttr, uint offset, uint count, 4582 4583 // ray 4584 vec3 rayOrigin, vec3 rayDirection, 4585 4586 // outputs 4587 inout float minDistance, inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, 4588 inout float side, inout float dist 4589) { 4590 4591 bool found = false; 4592 vec3 localBarycoord, localNormal; 4593 float localDist, localSide; 4594 for ( uint i = offset, l = offset + count; i < l; i ++ ) { 4595 4596 uvec3 indices = uTexelFetch1D( indexAttr, i ).xyz; 4597 vec3 a = texelFetch1D( positionAttr, indices.x ).rgb; 4598 vec3 b = texelFetch1D( positionAttr, indices.y ).rgb; 4599 vec3 c = texelFetch1D( positionAttr, indices.z ).rgb; 4600 4601 if ( 4602 intersectsTriangle( rayOrigin, rayDirection, a, b, c, localBarycoord, localNormal, localDist, localSide ) 4603 && localDist < minDistance 4604 ) { 4605 4606 found = true; 4607 minDistance = localDist; 4608 4609 faceIndices = uvec4( indices.xyz, i ); 4610 faceNormal = localNormal; 4611 4612 side = localSide; 4613 barycoord = localBarycoord; 4614 dist = localDist; 4615 4616 } 4617 4618 } 4619 4620 return found; 4621 4622} 4623 4624bool intersectsBVHNodeBounds( vec3 rayOrigin, vec3 rayDirection, sampler2D bvhBounds, uint currNodeIndex, out float dist ) { 4625 4626 uint cni2 = currNodeIndex * 2u; 4627 vec3 boundsMin = texelFetch1D( bvhBounds, cni2 ).xyz; 4628 vec3 boundsMax = texelFetch1D( bvhBounds, cni2 + 1u ).xyz; 4629 return intersectsBounds( rayOrigin, rayDirection, boundsMin, boundsMax, dist ); 4630 4631} 4632 4633// use a macro to hide the fact that we need to expand the struct into separate fields 4634#define\ 4635 bvhIntersectFirstHit(\ 4636 bvh,\ 4637 rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist\ 4638 )\ 4639 _bvhIntersectFirstHit(\ 4640 bvh.position, bvh.index, bvh.bvhBounds, bvh.bvhContents,\ 4641 rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist\ 4642 ) 4643 4644bool _bvhIntersectFirstHit( 4645 // bvh info 4646 sampler2D bvh_position, usampler2D bvh_index, sampler2D bvh_bvhBounds, usampler2D bvh_bvhContents, 4647 4648 // ray 4649 vec3 rayOrigin, vec3 rayDirection, 4650 4651 // output variables split into separate variables due to output precision 4652 inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, 4653 inout float side, inout float dist 4654) { 4655 4656 // stack needs to be twice as long as the deepest tree we expect because 4657 // we push both the left and right child onto the stack every traversal 4658 int ptr = 0; 4659 uint stack[ BVH_STACK_DEPTH ]; 4660 stack[ 0 ] = 0u; 4661 4662 float triangleDistance = INFINITY; 4663 bool found = false;
4664 while ( ptr > - 1 && ptr < BVH_STACK_DEPTH ) { 4665 4666 uint currNodeIndex = stack[ ptr ]; 4667 ptr --; 4668 4669 // check if we intersect the current bounds 4670 float boundsHitDistance; 4671 if ( 4672 ! intersectsBVHNodeBounds( rayOrigin, rayDirection, bvh_bvhBounds, currNodeIndex, boundsHitDistance ) 4673 || boundsHitDistance > triangleDistance 4674 ) { 4675 4676 continue; 4677 4678 } 4679 4680 uvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy; 4681 bool isLeaf = bool( boundsInfo.x & 0xffff0000u ); 4682 4683 if ( isLeaf ) { 4684 4685 uint count = boundsInfo.x & 0x0000ffffu; 4686 uint offset = boundsInfo.y; 4687 4688 found = intersectTriangles( 4689 bvh_position, bvh_index, offset, count, 4690 rayOrigin, rayDirection, triangleDistance, 4691 faceIndices, faceNormal, barycoord, side, dist 4692 ) || found; 4693 4694 } else { 4695 4696 uint leftIndex = currNodeIndex + 1u; 4697 uint splitAxis = boundsInfo.x & 0x0000ffffu; 4698 uint rightIndex = boundsInfo.y; 4699 4700 bool leftToRight = rayDirection[ splitAxis ] >= 0.0; 4701 uint c1 = leftToRight ? leftIndex : rightIndex; 4702 uint c2 = leftToRight ? rightIndex : leftIndex; 4703 4704 // set c2 in the stack so we traverse it later. We need to keep track of a pointer in 4705 // the stack while we traverse. The second pointer added is the one that will be 4706 // traversed first 4707 ptr ++; 4708 stack[ ptr ] = c2; 4709 4710 ptr ++; 4711 stack[ ptr ] = c1; 4712 4713 } 4714 4715 } 4716 4717 return found; 4718 4719} 4720`;const bvh_struct_definitions=` 4721struct BVH { 4722 4723 usampler2D index; 4724 sampler2D position; 4725 4726 sampler2D bvhBounds; 4727 usampler2D bvhContents; 4728 4729}; 4730`;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=` 4731 ${common_functions} 4732 ${bvh_ray_functions} 4733`;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;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarc
4733dfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;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
vendor: 12,056 bytes, line 4733
4733="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"
4733;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;i<data.length;++i){var ch=data.charCodeAt(i);result[i]=ch>96?ch-97:ch>64?ch-39:ch+4}var write=0;for(var i=0;i<data.length;++i){result[write++]=result[i]<60?wasmpack[result[i]]:(result[i]-60)*64+result[++i]}return result.buffer.slice(0,write)}function decode(fun,target,count,size,source,filter){var sbrk=instance.exports.sbrk;var count4=count+3&~3;var tp=sbrk(count4*size);var sp=sbrk(source.length);var heap=new Uint8Array(instance.exports.memory.buffer);heap.set(source,sp);var res=fun(tp,count,size,sp,source.length);if(res==0&&filter){filter(tp,count4,size)}target.set(heap.subarray(tp,tp+count*size));sbrk(tp-sbrk(0));if(res!=0){throw new Error("Malformed buffer data: "+res)}}var filters={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"};var decoders={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};var workers=[];var requestId=0;function createWorker(url){var worker={object:new Worker(url),pending:0,requests:{}};worker.object.onmessage=function(event){var data=event.data;worker.pending-=data.count;worker.requests[data.id][data.action](data.value);delete worker.requests[data.id]};return worker}function initWorkers(count){var source="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(unpack(wasm))+"]), {})"+".then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });"+"self.onmessage = workerProcess;"+decode.toString()+workerProcess.toString();var blob=new Blob([source],{type:"text/javascript"});var url=URL.createObjectURL(blob);for(var i=0;i<count;++i){workers[i]=createWorker(url)}URL.revokeObjectURL(url)}function decodeWorker(count,size,source,mode,filter){var worker=workers[0];for(var i=1;i<workers.length;++i){if(workers[i].pending<worker.pending){worker=workers[i]}}return new Promise(function(resolve,reject){var data=new Uint8Array(source);var id=requestId++;worker.pending+=count;worker.requests[id]={resolve:resolve,reject:reject};worker.object.postMessage({id:id,count:count,size:size,source:data,mode:mode,filter:filter},[data.buffer])})}function workerProcess(event){ready.then(function(){var data=event.data;try{var target=new Uint8Array(data.count*data.size);decode(instance.exports[data.mode],target,data.count,data.size,data.source,instance.exports[data.filter]);self.postMessage({id:data.id,count:data.count,action:"resolve",value:target},[target.buffer])}catch(error){self.postMessage({id:data.id,count:data.count,action:"reject",value:error})}})}return{ready:ready,supported:true,useWorkers:function(count){initWorkers(count)},decodeVertexBuffer:function(target,count,size,source,filter){decode(instance.exports.meshopt_decodeVertexBuffer,target,count,size,source,instance.exports[filters[filter]])},decodeIndexBuffer:function(target,count,size,source){decode(instance.exports.meshopt_decodeIndexBuffer,target,count,size,source)},decodeIndexSequence:function(target,count,size,source){decode(instance.exports.meshopt_decodeIndexSequence,target,count,size,source)},decodeGltfBuffer:function(target,count,size,source,mode,filter){decode(instance.exports[decoders[mode]],target,count,size,source,instance.exports[filters[filter]])},decodeGltfBufferAsync:function(count,size,source,mode,filter){if(workers.length>0){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:[];
4733this.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;i<il;i++){this.vertexNormals[i]=source.vertexNormals[i].clone()}for(let i=0,il=source.vertexColors.length;i<il;i++){this.vertexColors[i]=source.vertexColors[i].clone()}return this}}THREE.Face3=Face3});(function(t,e){e(t.THREE=t.THREE||{})})(this,function(THREE){var Box3=THREE.Box3,BufferAttribute=THREE.BufferAttribute,BufferGeometry=THREE.BufferGeometry,Color=THREE.Color,EventDispatcher=THREE.EventDispatcher,Float32BufferAttribute=THREE.Float32BufferAttribute,Matrix3=THREE.Matrix3,Matrix4=THREE.Matrix4,MathUtils=THREE.MathUtils,Object3D=THREE.Object3D,Sphere=THREE.Sphere,Vector2=THREE.Vector2,Vector3=THREE.Vector3;const _m1=new Matrix4;const _obj=new Object3D;const _offset=new Vector3;class Geometry extends EventDispatcher{constructor(){super();this.uuid=MathUtils.generateUUID();this.name="";this.type="Geometry";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.elementsNeedUpdate=false;this.verticesNeedUpdate=false;this.uvsNeedUpdate=false;this.normalsNeedUpdate=false;this.colorsNeedUpdate=false;this.lineDistancesNeedUpdate=false;this.groupsNeedUpdate=false}applyMatrix4(matrix){const normalMatrix=new Matrix3().getNormalMatrix(matrix);for(let i=0,il=this.vertices.length;i<il;i++){const vertex=this.vertices[i];vertex.applyMatrix4(matrix)}for(let i=0,il=this.faces.length;i<il;i++){const face=this.faces[i];face.normal.applyMatrix3(normalMatrix).normalize();for(let j=0,jl=face.vertexNormals.length;j<jl;j++){face.vertexNormals[j].applyMatrix3(normalMatrix).normalize()}}if(this.boundingBox!==null){this.computeBoundingBox()}if(this.boundingSphere!==null){this.computeBoundingSphere()}this.verticesNeedUpdate=true;this.normalsNeedUpdate=true;return this}rotateX(angle){_m1.makeRotationX(angle);this.applyMatrix4(_m1);return this}rotateY(angle){_m1.makeRotationY(angle);this.applyMatrix4(_m1);return this}rotateZ(angle){_m1.makeRotationZ(angle);this.applyMatrix4(_m1);return this}translate(x,y,z){_m1.makeTranslation(x,y,z);this.applyMatrix4(_m1);return this}scale(x,y,z){_m1.makeScale(x,y,z);this.applyMatrix4(_m1);return this}lookAt(vector){_obj.lookAt(vector);_obj.updateMatrix();this.applyMatrix4(_obj.matrix);return this}fromBufferGeometry(geometry){const scope=this;const index=geometry.index!==null?geometry.index:undefined;const attributes=geometry.attributes;if(attributes.position===undefined){console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.");return this}const position=attributes.position;const normal=attributes.normal;const color=attributes.color;const uv=attributes.uv;const uv2=attributes.uv2;if(uv2!==undefined)this.faceVertexUvs[1]=[];for(let i=0;i<position.count;i++){scope.vertices.push(new Vector3().fromBufferAttribute(position,i));if(color!==undefined){scope.colors.push(new Color().fromBufferAttribute(color,i))}}function addFace(a,b,c,materialIndex){const vertexColors=color===undefined?[]:[scope.colors[a].clone(),scope.colors[b].clone(),scope.colors[c].clone()];const vertexNormals=normal===undefined?[]:[new Vector3().fromBufferAttribute(normal,a),new Vector3().fromBufferAttribute(normal,b),new Vector3().fromBufferAttribute(normal,c)];const face=new Face3(a,b,c,vertexNormals,vertexColors,materialIndex);scope.faces.push(face);if(uv!==undefined){scope.faceVertexUvs[0].push([new Vector2().fromBufferAttribute(uv,a),new Vector2().fromBufferAttribute(uv,b),new Vector2().fromBufferAttribute(uv,c)])}if(uv2!==undefined){scope.faceVertexUvs[1].push([new Vector2().fromBufferAttribute(uv2,a),new Vector2().fromBufferAttribute(uv2,b),new Vector2().fromBufferAttribute(uv2,c)])}}const groups=geometry.groups;if(groups.length>0){for(let i=0;i<groups.length;i++){const group=groups[i];const start=group.start;const count=group.count;for(let j=start,jl=start+count;j<jl;j+=3){if(index!==undefined){addFace(index.getX(j),index.getX(j+1),index.getX(j+2),group.materialIndex)}else{addFace(j,j+1,j+2,group.materialIndex)}}}}else{if(index!==undefined){for(let i=0;i<index.count;i+=3){addFace(index.getX(i),index.getX(i+1),index.getX(i+2))}}else{for(let i=0;i<position.count;i+=3){addFace(i,i+1,i+2)}}}this.computeFaceNormals();if(geometry.boundingBox!==null){this.boundingBox=geometry.boundingBox.clone()}if(geometry.boundingSphere!==null){this.boundingSphere=geometry.boundingSphere.clone()}return this}center(){this.computeBoundingBox();this.boundingBox.getCenter(_offset).negate();this.translate(_offset.x,_offset.y,_offset.z);return this}normalize(){this.computeBoundingSphere();const center=this.boundingSphere.center;const radius=this.boundingSphere.radius;const s=radius===0?1:1/radius;const matrix=new Matrix4;matrix.set(s,0,0,-s*center.x,0,s,0,-s*center.y,0,0,s,-s*center.z,0,0,0,1);this.applyMatrix4(matrix);return this}
4733computeFaceNormals(){const cb=new Vector3,ab=new Vector3;for(let f=0,fl=this.faces.length;f<fl;f++){const face=this.faces[f];const vA=this.vertices[face.a];const vB=this.vertices[face.b];const vC=this.vertices[face.c];cb.subVectors(vC,vB);ab.subVectors(vA,vB);cb.cross(ab);cb.normalize();face.normal.copy(cb)}}computeVertexNormals(areaWeighted=true){const vertices=new Array(this.vertices.length);for(let v=0,vl=this.vertices.length;v<vl;v++){vertices[v]=new Vector3}if(areaWeighted){const cb=new Vector3,ab=new Vector3;for(let f=0,fl=this.faces.length;f<fl;f++){const face=this.faces[f];const vA=this.vertices[face.a];const vB=this.vertices[face.b];const vC=this.vertices[face.c];cb.subVectors(vC,vB);ab.subVectors(vA,vB);cb.cross(ab);vertices[face.a].add(cb);vertices[face.b].add(cb);vertices[face.c].add(cb)}}else{this.computeFaceNormals();for(let f=0,fl=this.faces.length;f<fl;f++){const face=this.faces[f];vertices[face.a].add(face.normal);vertices[face.b].add(face.normal);vertices[face.c].add(face.normal)}}for(let v=0,vl=this.vertices.length;v<vl;v++){vertices[v].normalize()}for(let f=0,fl=this.faces.length;f<fl;f++){const face=this.faces[f];const vertexNormals=face.vertexNormals;if(vertexNormals.length===3){vertexNormals[0].copy(vertices[face.a]);vertexNormals[1].copy(vertices[face.b]);vertexNormals[2].copy(vertices[face.c])}else{vertexNormals[0]=vertices[face.a].clone();vertexNormals[1]=vertices[face.b].clone();vertexNormals[2]=vertices[face.c].clone()}}if(this.faces.length>0){this.normalsNeedUpdate=true}}computeFlatVertexNormals(){this.computeFaceNormals();for(let f=0,fl=this.faces.length;f<fl;f++){const face=this.faces[f];const vertexNormals=face.vertexNormals;if(vertexNormals.length===3){vertexNormals[0].copy(face.normal);vertexNormals[1].copy(face.normal);vertexNormals[2].copy(face.normal)}else{vertexNormals[0]=face.normal.clone();vertexNormals[1]=face.normal.clone();vertexNormals[2]=face.normal.clone()}}if(this.faces.length>0){this.normalsNeedUpdate=true}}computeMorphNormals(){for(let f=0,fl=this.faces.length;f<fl;f++){const face=this.faces[f];
4733if(!face.__originalFaceNormal){face.__originalFaceNormal=face.normal.clone()}else{face.__originalFaceNormal.copy(face.normal)}if(!face.__originalVertexNormals)face.__originalVertexNormals=[];for(let i=0,il=face.vertexNormals.length;i<il;i++){if(!face.__originalVertexNormals[i]){face.__originalVertexNormals[i]=face.vertexNormals[i].clone()}else{face.__originalVertexNormals[i].copy(face.vertexNormals[i])}}}const tmpGeo=new Geometry;tmpGeo.faces=this.faces;for(let i=0,il=this.morphTargets.length;i<il;i++){if(!this.morphNormals[i]){this.morphNormals[i]={};this.morphNormals[i].faceNormals=[];this.morphNormals[i].vertexNormals=[];const dstNormalsFace=this.morphNormals[i].faceNormals;const dstNormalsVertex=this.morphNormals[i].vertexNormals;for(let f=0,fl=this.faces.length;f<fl;f++){const faceNormal=new Vector3;const vertexNormals={a:new Vector3,b:new Vector3,c:new Vector3};dstNormalsFace.push(faceNormal);dstNormalsVertex.push(vertexNormals)}}const morphNormals=this.morphNormals[i];tmpGeo.vertices=this.morphTargets[i].vertices;tmpGeo.computeFaceNormals();tmpGeo.computeVertexNormals();for(let f=0,fl=this.faces.length;f<fl;f++){const face=this.faces[f];const faceNormal=morphNormals.faceNormals[f];const vertexNormals=morphNormals.vertexNormals[f];faceNormal.copy(face.normal);vertexNormals.a.copy(face.vertexNormals[0]);vertexNormals.b.copy(face.vertexNormals[1]);vertexNormals.c.copy(face.vertexNormals[2])}}for(let f=0,fl=this.faces.length;f<fl;f++){const face=this.faces[f];
4733face.normal=face.__originalFaceNormal;face.vertexNormals=face.__originalVertexNormals}}computeBoundingBox(){if(this.boundingBox===null){this.boundingBox=new Box3}this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){if(this.boundingSphere===null){this.boundingSphere=new Sphere}this.boundingSphere.setFromPoints(this.vertices)}merge(geometry,matrix,materialIndexOffset=0){if(!(geometry&&geometry.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",geometry);return}let normalMatrix;const vertexOffset=this.vertices.length,vertices1=this.vertices,vertices2=geometry.vertices,faces1=this.faces,faces2=geometry.faces,colors1=this.colors,colors2=geometry.colors;if(matrix!==undefined){normalMatrix=new Matrix3().getNormalMatrix(matrix)}for(let i=0,il=vertices2.length;i<il;i++){const vertex=vertices2[i];const vertexCopy=vertex.clone();if(matrix!==undefined)vertexCopy.applyMatrix4(matrix);vertices1.push(vertexCopy)}for(let i=0,il=colors2.length;i<il;i++){colors1.push(colors2[i].clone())}for(let i=0,il=faces2.length;i<il;i++){const face=faces2[i];let normal,color;const faceVertexNormals=face.vertexNormals,faceVertexColors=face.vertexColors;const faceCopy=new Face3(face.a+vertexOffset,face.b+vertexOffset,face.c+vertexOffset);faceCopy.normal.copy(face.normal);if(normalMatrix!==undefined){faceCopy.normal.applyMatrix3(normalMatrix).normalize()}for(let j=0,jl=faceVertexNormals.length;j<jl;j++){normal=faceVertexNormals[j].clone();if(normalMatrix!==undefined){normal.applyMatrix3(normalMatrix).normalize()}faceCopy.vertexNormals.push(normal)}faceCopy.color.copy(face.color);for(let j=0,jl=faceVertexColors.length;j<jl;j++){color=faceVertexColors[j];faceCopy.vertexColors.push(color.clone())}faceCopy.materialIndex=face.materialIndex+materialIndexOffset;faces1.push(faceCopy)}for(let i=0,il=geometry.faceVertexUvs.length;i<il;i++){const faceVertexUvs2=geometry.faceVertexUvs[i];if(this.faceVertexUvs[i]===undefined)this.faceVertexUvs[i]=[];for(let j=0,jl=faceVertexUvs2.length;j<jl;j++){const uvs2=faceVertexUvs2[j],uvsCopy=[];for(let k=0,kl=uvs2.length;k<kl;k++){uvsCopy.push(uvs2[k].clone())}this.faceVertexUvs[i].push(uvsCopy)}}}mergeMesh(mesh){if(!(mesh&&mesh.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",mesh);return}if(mesh.matrixAutoUpdate)mesh.updateMatrix();this.merge(mesh.geometry,mesh.matrix)}mergeVertices(precisionPoints=4){const verticesMap={};const unique=[],changes=[];const precision=Math.pow(10,precisionPoints);for(let i=0,il=this.vertices.length;i<il;i++){const v=this.vertices[i];const key=Math.round(v.x*precision)+"_"+Math.round(v.y*precision)+"_"+Math.round(v.z*precision);if(verticesMap[key]===undefined){verticesMap[key]=i;unique.push(this.vertices[i]);changes[i]=unique.length-1}else{changes[i]=changes[verticesMap[key]]}}const faceIndicesToRemove=[];for(let i=0,il=this.faces.length;i<il;i++){const face=this.faces[i];face.a=changes[face.a];face.b=changes[face.b];face.c=changes[face.c];const indices=[face.a,face.b,face.c];for(let n=0;n<3;n++){if(indices[n]===indices[(n+1)%3]){faceIndicesToRemove.push(i);break}}}for(let i=faceIndicesToRemove.length-1;i>=0;i--){const idx=faceIndicesToRemove[i];this.faces.splice(idx,1);for(let j=0,jl=this.faceVertexUvs.length;j<jl;j++){this.faceVertexUvs[j].splice(idx,1)}}const diff=this.vertices.length-unique.length;this.vertices=unique;return diff}setFromPoints(points){this.vertices=[];for(let i=0,l=points.length;i<l;i++){const point=points[i];this.vertices.push(new Vector3(point.x,point.y,point.z||0))}return this}sortFacesByMaterialIndex(){const faces=this.faces;const length=faces.length;for(let i=0;i<length;i++){faces[i]._id=i}function materialIndexSort(a,b){return a.materialIndex-b.materialIndex}faces.sort(materialIndexSort);const uvs1=this.faceVertexUvs[0];const uvs2=this.faceVertexUvs[1];let newUvs1,newUvs2;if(uvs1&&uvs1.length===length)newUvs1=[];if(uvs2&&uvs2.length===length)newUvs2=[];for(let i=0;i<length;i++){const id=faces[i]._id;if(newUvs1)newUvs1.push(uvs1[id]);if(newUvs2)newUvs2.push(uvs2[id])}if(newUvs1)this.faceVertexUvs[0]=newUvs1;if(newUvs2)this.faceVertexUvs[1]=newUvs2}toJSON(){const data={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};data.uuid=this.uuid;
4733data.type=this.type;if(this.name!=="")data.name=this.name;if(this.parameters!==undefined){const parameters=this.parameters;for(const key in parameters){if(parameters[key]!==undefined)data[key]=parameters[key]}return data}const vertices=[];for(let i=0;i<this.vertices.length;i++){const vertex=this.vertices[i];vertices.push(vertex.x,vertex.y,vertex.z)}const faces=[];const normals=[];const normalsHash={};const colors=[];const colorsHash={};const uvs=[];const uvsHash={};for(let i=0;i<this.faces.length;i++){const face=this.faces[i];const hasMaterial=true;const hasFaceUv=false;const hasFaceVertexUv=this.faceVertexUvs[0][i]!==undefined;const hasFaceNormal=face.normal.length()>0;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<<position:value&~(1<<position)}function getNormalIndex(normal){const hash=normal.x.toString()+normal.y.toString()+normal.z.toString();if(normalsHash[hash]!==undefined){return normalsHash[hash]}normalsHash[hash]=normals.length/3;normals.push(normal.x,normal.y,normal.z);return normalsHash[hash]}function getColorIndex(color){const hash=color.r.toString()+color.g.toString()+color.b.toString();if(colorsHash[hash]!==undefined){return colorsHash[hash]}colorsHash[hash]=colors.length;colors.push(color.getHex());return colorsHash[hash]}function getUvIndex(uv){const hash=uv.x.toString()+uv.y.toString();if(uvsHash[hash]!==undefined){return uvsHash[hash]}uvsHash[hash]=uvs.length/2;uvs.push(uv.x,uv.y);return uvsHash[hash]}data.data={};data.data.vertices=vertices;data.data.normals=normals;if(colors.length>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;i<il;i++){this.vertices.push(vertices[i].clone())}const colors=source.colors;for(let i=0,il=colors.length;i<il;i++){this.colors.push(colors[i].clone())}const faces=source.faces;for(let i=0,il=faces.length;i<il;i++){this.faces.push(faces[i].clone())}for(let i=0,il=source.faceVertexUvs.length;i<il;i++){const faceVertexUvs=source.faceVertexUvs[i];if(this.faceVertexUvs[i]===undefined){this.faceVertexUvs[i]=[]}for(let j=0,jl=faceVertexUvs.length;j<jl;j++){const uvs=faceVertexUvs[j],uvsCopy=[];for(let k=0,kl=uvs.length;k<kl;k++){const uv=uvs[k];uvsCopy.push(uv.clone())}this.faceVertexUvs[i].push(uvsCopy)}}const morphTargets=source.morphTargets;for(let i=0,il=morphTargets.length;i<il;i++){const morphTarget={};morphTarget.name=morphTargets[i].name;if(morphTargets[i].vertices!==undefined){morphTarget.vertices=[];for(let j=0,jl=morphTargets[i].vertices.length;j<jl;j++){morphTarget.vertices.push(morphTargets[i].vertices[j].clone())}}if(morphTargets[i].normals!==undefined){morphTarget.normals=[];for(let j=0,jl=morphTargets[i].normals.length;j<jl;j++){morphTarget.normals.push(morphTargets[i].normals[j].clone())}}this.morphTargets.push(morphTarget)}const morphNormals=source.morphNormals;for(let i=0,il=morphNormals.length;i<il;i++){const morphNormal={};if(morphNormals[i].vertexNormals!==undefined){morphNormal.vertexNormals=[];for(let j=0,jl=morphNormals[i].vertexNormals.length;j<jl;j++){const srcVertexNormal=morphNormals[i].vertexNormals[j];const destVertexNormal={};destVertexNormal.a=srcVertexNormal.a.clone();destVertexNormal.b=srcVertexNormal.b.clone();destVertexNormal.c=srcVertexNormal.c.clone();morphNormal.vertexNormals.push(destVertexNormal)}}if(morphNormals[i].faceNormals!==undefined){morphNormal.faceNormals=[];for(let j=0,jl=morphNormals[i].faceNormals.length;j<jl;j++){morphNormal.faceNormals.push(morphNormals[i].faceNormals[j].clone())}}this.morphNormals.push(morphNormal)}const skinWeights=source.skinWeights;for(let i=0,il=skinWeights.length;i<il;i++){this.skinWeights.push(skinWeights[i].clone())}const skinIndices=source.skinIndices;for(let i=0,il=skinIndices.length;i<il;i++){this.skinIndices.push(skinIndices[i].clone())}const lineDistances=source.lineDistances;for(let i=0,il=lineDistances.length;i<il;i++){this.lineDistances.push(lineDistances[i])}const boundingBox=source.boundingBox;
4733if(boundingBox!==null){this.boundingBox=boundingBox.clone()}const boundingSphere=source.boundingSphere;if(boundingSphere!==null){this.boundingSphere=boundingSphere.clone()}this.elementsNeedUpdate=source.elementsNeedUpdate;this.verticesNeedUpdate=source.verticesNeedUpdate;this.uvsNeedUpdate=source.uvsNeedUpdate;this.normalsNeedUpdate=source.normalsNeedUpdate;this.colorsNeedUpdate=source.colorsNeedUpdate;this.lineDistancesNeedUpdate=source.lineDistancesNeedUpdate;this.groupsNeedUpdate=source.groupsNeedUpdate;return this}toBufferGeometry(){const geometry=new DirectGeometry().fromGeometry(this);const buffergeometry=new BufferGeometry;const positions=new Float32Array(geometry.vertices.length*3);buffergeometry.setAttribute("position",copyVector3sArray(new BufferAttribute(positions,3),geometry.vertices));if(geometry.normals.length>0){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;i<l;i++){const morphTarget=morphTargets[i];const attribute=new Float32BufferAttribute(morphTarget.data.length*3,3);attribute.name=morphTarget.name;array.push(copyVector3sArray(attribute,morphTarget.data))}buffergeometry.morphAttributes[name]=array}if(geometry.skinIndices.length>0){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;i<faces.length;i++){const face=faces[i];if(face.materialIndex!==materialIndex){materialIndex=face.materialIndex;
4733if(group!==undefined){group.count=i*3-group.start;groups.push(group)}group={start:i*3,materialIndex:materialIndex}}}if(group!==undefined){group.count=i*3-group.start;groups.push(group)}this.groups=groups}fromGeometry(geometry){const faces=geometry.faces;const vertices=geometry.vertices;const faceVertexUvs=geometry.faceVertexUvs;const hasFaceVertexUv=faceVertexUvs[0]&&faceVertexUvs[0].length>0;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;i<morphTargetsLength;i++){morphTargetsPosition[i]={name:morphTargets[i].name,data:[]}}this.morphTargets.position=morphTargetsPosition}const morphNormals=geometry.morphNormals;const morphNormalsLength=morphNormals.length;let morphTargetsNormal;if(morphNormalsLength>0){morphTargetsNormal=[];for(let i=0;i<morphNormalsLength;i++){morphTargetsNormal[i]={name:morphNormals[i].name,data:[]}}this.morphTargets.normal=morphTargetsNormal}const skinIndices=geometry.skinIndices;const skinWeights=geometry.skinWeights;const hasSkinIndices=skinIndices.length===vertices.length;const hasSkinWeights=skinWeights.length===vertices.length;if(vertices.length>0&&faces.length===0){console.error("THREE.DirectGeometry: Faceless geometries are not supported.")}for(let i=0;i<faces.length;i++){const face=faces[i];this.vertices.push(vertices[face.a],vertices[face.b],vertices[face.c]);const vertexNormals=face.vertexNormals;if(vertexNormals.length===3){this.normals.push(vertexNormals[0],vertexNormals[1],vertexNormals[2])}else{const normal=face.normal;this.normals.push(normal,normal,normal)}const vertexColors=face.vertexColors;if(vertexColors.length===3){this.colors.push(vertexColors[0],vertexColors[1],vertexColors[2])}else{const color=face.color;this.colors.push(color,color,color)}if(hasFaceVertexUv===true){const vertexUvs=faceVertexUvs[0][i];if(vertexUvs!==undefined){this.uvs.push(vertexUvs[0],vertexUvs[1],vertexUvs[2])}else{console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",i);this.uvs.push(new Vector2,new Vector2,new Vector2)}}if(hasFaceVertexUv2===true){const vertexUvs=faceVertexUvs[1][i];if(vertexUvs!==undefined){this.uvs2.push(vertexUvs[0],vertexUvs[1],vertexUvs[2])}else{console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",i);this.uvs2.push(new Vector2,new Vector2,new Vector2)}}for(let j=0;j<morphTargetsLength;j++){const morphTarget=morphTargets[j].vertices;morphTargetsPosition[j].data.push(morphTarget[face.a],morphTarget[face.b],morphTarget[face.c])}for(let j=0;j<morphNormalsLength;j++){const morphNormal=morphNormals[j].vertexNormals[i];morphTargetsNormal[j].data.push(morphNormal.a,morphNormal.b,morphNormal.c)}if(hasSkinIndices){this.skinIndices.push(skinIndices[face.a],skinIndices[face.b],skinIndices[face.c])}if(hasSkinWeights){this.skinWeights.push(skinWeights[face.a],skinWeights[face.b],skinWeights[face.c])}}this.computeGroups(geometry);this.verticesNeedUpdate=geometry.verticesNeedUpdate;this.normalsNeedUpdate=geometry.normalsNeedUpdate;this.colorsNeedUpdate=geometry.colorsNeedUpdate;this.uvsNeedUpdate=geometry.uvsNeedUpdate;this.groupsNeedUpdate=geometry.groupsNeedUpdate;if(geometry.boundingSphere!==null){this.boundingSphere=geometry.boundingSphere.clone()}if(geometry.boundingBox!==null){this.boundingBox=geometry.boundingBox.clone()}return this}}function copyColorsArray(bufferAttribute,colors){const array=bufferAttribute.array;let offset=0;for(let i=0,l=colors.length;i<l;i++){let color=colors[i];if(color===undefined){console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",i);color=new Color}if(bufferAttribute.normalized){array[offset++]=normalize(color.r,array);array[offset++]=normalize(color.g,array);array[offset++]=normalize(color.b,array)}else{array[offset++]=color.r;array[offset++]=color.g;array[offset++]=color.b}}return bufferAttribute}function copyVector2sArray(bufferAttribute,vectors){const array=bufferAttribute.array;let offset=0;for(let i=0,l=vectors.length;i<l;i++){let vector=vectors[i];if(vector===undefined){console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",i);vector=new Vector2}if(bufferAttribute.normalized){array[offset++]=normalize(vector.x,array);array[offset++]=normalize(vector.y,array)}else{array[offset++]=vector.x;array[offset++]=vector.y}}return bufferAttribute}function copyVector3sArray(bufferAttribute,vectors){const array=bufferAttribute.array;let offset=0;for(let i=0,l=vectors.length;i<l;i++){let vector=vectors[i];if(vector===undefined){console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",i);vector=new Vector3}if(bufferAttribute.normalized){array[offset++]=normalize(vector.x,array);array[offset++]=normalize(vector.y,array);array[offset++]=normalize(vector.z,array)}else{array[offset++]=vector.x;array[offset++]=vector.y;array[offset++]=vector.z}}return bufferAttribute}function copyVector4sArray(bufferAttribute,vectors){const array=bufferAttribute.array;let offset=0;for(let i=0,l=vectors.length;i<l;i++){let vector=vectors[i];if(vector===undefined){console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",i);vector=new Vector4}if(bufferAttribute.normalized){array[offset++]=normalize(vector.x,array);array[offset++]=normalize(vector.y,array);array[offset++]=normalize(vector.z,array);array[offset++]=normalize(vector.w,array)}else{array[offset++]=vector.x;array[offset++]=vector.y;array[offset++]=vector.z;array[offset++]=vector.w}}return this}THREE.Geometry=Geometry});(function(){var BufferAttribute=THREE.BufferAttribute,BufferGeometry=THREE.BufferGeometry,Float32BufferAttribute=THREE.Float32BufferAttribute,InstancedBufferAttribute=THREE.InstancedBufferAttribute,InterleavedBuffer=THREE.InterleavedBuffer,InterleavedBufferAttribute=THREE.InterleavedBufferAttribute,TriangleFanDrawMode=THREE.TriangleFanDrawMode,TriangleStripDrawMode=THREE.TriangleStripDrawMode,TrianglesDrawMode=THREE.TrianglesDrawMode,Vector3=THREE.Vector3;function computeMikkTSpaceTangents(geometry,MikkTSpace,negateSign=true){if(!MikkTSpace||!MikkTSpace.isReady){throw new Error("BufferGeometryUtils: Initialized MikkTSpace library required.")}if(!geometry.hasAttribute("position")||!geometry.hasAttribute("normal")||!geometry.hasAttribute("uv")){throw new Error("BufferGeometryUtils: Tangents require \"position\", \"normal\", and \"uv\" attributes.")}function getAttributeArray(attribute){if(attribute.normalized||attribute.isInterleavedBufferAttribute){const dstArray=new Float32Array(attribute.getCount()*attribute.itemSize);for(let i=0,j=0;i<attribute.getCount();i++){dstArray[j++]=attribute.getX(i);dstArray[j++]=attribute.getY(i);if(attribute.itemSize>2){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<tangents.length;i+=4){tangents[i]*=-1}}_geometry.setAttribute("tangent",new BufferAttribute(tangents,4));if(geometry!==_geometry){geometry.copy(_geometry)}return geometry}function mergeGeometries(geometries,useGroups=false){const isIndexed=geometries[0].index!==null;const attributesUsed=new Set(Object.keys(geometries[0].attributes));const morphAttributesUsed=new Set(Object.keys(geometries[0].morphAttributes));const attributes={};const morphAttributes={};const morphTargetsRelative=geometries[0].morphTargetsRelative;const mergedGeometry=new BufferGeometry;let offset=0;for(let i=0;i<geometries.length;++i){const geometry=geometries[i];let attributesCount=0;
4733if(isIndexed!==(geometry.index!==null)){console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+i+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.");return null}for(const name in geometry.attributes){if(!attributesUsed.has(name)){console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+i+". All geometries must have compatible attributes; make sure \""+name+"\" attribute exists among all geometries, or in none of them.");return null}if(attributes[name]===undefined)attributes[name]=[];attributes[name].push(geometry.attributes[name]);attributesCount++}if(attributesCount!==attributesUsed.size){console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+i+". Make sure all geometries have the same number of attributes.");return null}if(morphTargetsRelative!==geometry.morphTargetsRelative){console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+i+". .morphTargetsRelative must be consistent throughout all geometries.");return null}for(const name in geometry.morphAttributes){if(!morphAttributesUsed.has(name)){console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+i+". .morphAttributes must be consistent throughout all geometries.");return null}if(morphAttributes[name]===undefined)morphAttributes[name]=[];morphAttributes[name].push(geometry.morphAttributes[name])}if(useGroups){let count;if(isIndexed){count=geometry.index.count}else if(geometry.attributes.position!==undefined){count=geometry.attributes.position.count}else{console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+i+". The geometry must have either an index or a position attribute");return null}mergedGeometry.addGroup(offset,count,i);offset+=count}}if(isIndexed){let indexOffset=0;const mergedIndex=[];for(let i=0;i<geometries.length;++i){const index=geometries[i].index;for(let j=0;j<index.count;++j){mergedIndex.push(index.getX(j)+indexOffset)}indexOffset+=geometries[i].attributes.position.count}mergedGeometry.setIndex(mergedIndex)}for(const name in attributes){const mergedAttribute=mergeAttributes(attributes[name]);if(!mergedAttribute){console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+name+" attribute.");return null}mergedGeometry.setAttribute(name,mergedAttribute)}for(const name in morphAttributes){const numMorphTargets=morphAttributes[name][0].length;if(numMorphTargets===0)break;mergedGeometry.morphAttributes=mergedGeometry.morphAttributes||{};mergedGeometry.morphAttributes[name]=[];for(let i=0;i<numMorphTargets;++i){const morphAttributesToMerge=[];for(let j=0;j<morphAttributes[name].length;++j){morphAttributesToMerge.push(morphAttributes[name][j][i])}const mergedMorphAttribute=mergeAttributes(morphAttributesToMerge);if(!mergedMorphAttribute){console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+name+" morphAttribute.");return null}mergedGeometry.morphAttributes[name].push(mergedMorphAttribute)}}return mergedGeometry}function mergeAttributes(attributes){let TypedArray;let itemSize;let normalized;let arrayLength=0;for(let i=0;i<attributes.length;++i){const attribute=attributes[i];if(attribute.isInterleavedBufferAttribute){console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. InterleavedBufferAttributes are not supported.");return null}if(TypedArray===undefined)TypedArray=attribute.array.constructor;if(TypedArray!==attribute.array.constructor){console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.");return null}if(itemSize===undefined)itemSize=attribute.itemSize;if(itemSize!==attribute.itemSize){console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.");return null}if(normalized===undefined)normalized=attribute.normalized;if(normalized!==attribute.normalized){console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.");return null}arrayLength+=attribute.array.length}const array=new TypedArray(arrayLength);let offset=0;for(let i=0;i<attributes.length;++i){array.set(attributes[i].array,offset);offset+=attributes[i].array.length}return new BufferAttribute(array,itemSize,normalized)}function deepCloneAttribute(attribute){if(attribute.isInstancedInterleavedBufferAttribute||attribute.isInterleavedBufferAttribute){return deinterleaveAttribute(attribute)}if(attribute.isInstancedBufferAttribute){return new InstancedBufferAttribute().copy(attribute)}return new BufferAttribute().copy(attribute)}function interleaveAttributes(attributes){let TypedArray;let arrayLength=0;let stride=0;for(let i=0,l=attributes.length;i<l;++i){const attribute=attributes[i];if(TypedArray===undefined)TypedArray=attribute.array.constructor;if(TypedArray!==attribute.array.constructor){console.error("AttributeBuffers of different types cannot be interleaved");return null}arrayLength+=attribute.array.length;stride+=attribute.itemSize}const interleavedBuffer=new InterleavedBuffer(new TypedArray(arrayLength),stride);let offset=0;const res=[];const getters=["getX","getY","getZ","getW"];
4733const setters=["setX","setY","setZ","setW"];for(let j=0,l=attributes.length;j<l;j++){const attribute=attributes[j];const itemSize=attribute.itemSize;const count=attribute.count;const iba=new InterleavedBufferAttribute(interleavedBuffer,itemSize,offset,attribute.normalized);res.push(iba);offset+=itemSize;for(let c=0;c<count;c++){for(let k=0;k<itemSize;k++){iba[setters[k]](c,attribute[getters[k]](c))}}}return res}function deinterleaveAttribute(attribute){const cons=attribute.data.array.constructor;const count=attribute.count;const itemSize=attribute.itemSize;const normalized=attribute.normalized;const array=new cons(count*itemSize);let newAttribute;if(attribute.isInstancedInterleavedBufferAttribute){newAttribute=new InstancedBufferAttribute(array,itemSize,normalized,attribute.meshPerAttribute)}else{newAttribute=new BufferAttribute(array,itemSize,normalized)}for(let i=0;i<count;i++){newAttribute.setX(i,attribute.getX(i));if(itemSize>=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<l;i++){const name=attributeNames[i];const attr=geometry.attributes[name];tmpAttributes[name]=new BufferAttribute(new attr.array.constructor(attr.count*attr.itemSize),attr.itemSize,attr.normalized);const morphAttr=geometry.morphAttributes[name];if(morphAttr){tmpMorphAttributes[name]=new BufferAttribute(new morphAttr.array.constructor(morphAttr.count*morphAttr.itemSize),morphAttr.itemSize,morphAttr.normalized)}}const decimalShift=Math.log10(1/tolerance);const shiftMultiplier=Math.pow(10,decimalShift);for(let i=0;i<vertexCount;i++){const index=indices?indices.getX(i):i;let hash="";for(let j=0,l=attributeNames.length;j<l;j++){const name=attributeNames[j];const attribute=geometry.getAttribute(name);const itemSize=attribute.itemSize;for(let k=0;k<itemSize;k++){hash+=`${~~(attribute[getters[k]](index)*shiftMultiplier)},`}}if(hash in hashToIndex){newIndices.push(hashToIndex[hash])}else{for(let j=0,l=attributeNames.length;j<l;j++){const name=attributeNames[j];const attribute=geometry.getAttribute(name);const morphAttr=geometry.morphAttributes[name];const itemSize=attribute.itemSize;const newarray=tmpAttributes[name];const newMorphArrays=tmpMorphAttributes[name];for(let k=0;k<itemSize;k++){const getterFunc=getters[k];const setterFunc=setters[k];newarray[setterFunc](nextIndex,attribute[getterFunc](index));if(morphAttr){for(let m=0,ml=morphAttr.length;m<ml;m++){newMorphArrays[m][setterFunc](nextIndex,morphAttr[m][getterFunc](index))}}}}hashToIndex[hash]=nextIndex;newIndices.push(nextIndex);nextIndex++}}const result=geometry.clone();for(const name in geometry.attributes){const tmpAttribute=tmpAttributes[name];result.setAttribute(name,new BufferAttribute(tmpAttribute.array.slice(0,nextIndex*tmpAttribute.itemSize),tmpAttribute.itemSize,tmpAttribute.normalized));if(!(name in tmpMorphAttributes))continue;for(let j=0;j<tmpMorphAttributes[name].length;j++){const tmpMorphAttribute=tmpMorphAttributes[name][j];result.morphAttributes[name][j]=new BufferAttribute(tmpMorphAttribute.array.slice(0,nextIndex*tmpMorphAttribute.itemSize),tmpMorphAttribute.itemSize,tmpMorphAttribute.normalized)}}result.setIndex(newIndices);return result}function toTrianglesDrawMode(geometry,drawMode){if(drawMode===TrianglesDrawMode){console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.");return geometry}if(drawMode===TriangleFanDrawMode||drawMode===TriangleStripDrawMode){let index=geometry.getIndex();if(index===null){const indices=[];const position=geometry.getAttribute("position");
4733if(position!==undefined){for(let i=0;i<position.count;i++){indices.push(i)}geometry.setIndex(indices);index=geometry.getIndex()}else{console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.");return geometry}}const numberOfTriangles=index.count-2;const newIndices=[];if(drawMode===TriangleFanDrawMode){for(let i=1;i<=numberOfTriangles;i++){newIndices.push(index.getX(0));newIndices.push(index.getX(i));newIndices.push(index.getX(i+1))}}else{for(let i=0;i<numberOfTriangles;i++){if(i%2===0){newIndices.push(index.getX(i));newIndices.push(index.getX(i+1));newIndices.push(index.getX(i+2))}else{newIndices.push(index.getX(i+2));newIndices.push(index.getX(i+1));newIndices.push(index.getX(i))}}}if(newIndices.length/3!==numberOfTriangles){console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.")}const newGeometry=geometry.clone();newGeometry.setIndex(newIndices);newGeometry.clearGroups();return newGeometry}else{console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",drawMode);return geometry}}function computeMorphedAttributes(object){const _vA=new Vector3;const _vB=new Vector3;const _vC=new Vector3;const _tempA=new Vector3;const _tempB=new Vector3;const _tempC=new Vector3;const _morphA=new Vector3;const _morphB=new Vector3;const _morphC=new Vector3;function _calculateMorphedAttributeData(object,attribute,morphAttribute,morphTargetsRelative,a,b,c,modifiedAttributeArray){_vA.fromBufferAttribute(attribute,a);_vB.fromBufferAttribute(attribute,b);_vC.fromBufferAttribute(attribute,c);const morphInfluences=object.morphTargetInfluences;if(morphAttribute&&morphInfluences){_morphA.set(0,0,0);_morphB.set(0,0,0);_morphC.set(0,0,0);for(let i=0,il=morphAttribute.length;i<il;i++){const influence=morphInfluences[i];const morph=morphAttribute[i];if(influence===0)continue;_tempA.fromBufferAttribute(morph,a);_tempB.fromBufferAttribute(morph,b);_tempC.fromBufferAttribute(morph,c);if(morphTargetsRelative){_morphA.addScaledVector(_tempA,influence);_morphB.addScaledVector(_tempB,influence);_morphC.addScaledVector(_tempC,influence)}else{_morphA.addScaledVector(_tempA.sub(_vA),influence);_morphB.addScaledVector(_tempB.sub(_vB),influence);_morphC.addScaledVector(_tempC.sub(_vC),influence)}}_vA.add(_morphA);_vB.add(_morphB);_vC.add(_morphC)}if(object.isSkinnedMesh){object.applyBoneTransform(a,_vA);object.applyBoneTransform(b,_vB);object.applyBoneTransform(c,_vC)}modifiedAttributeArray[a*3+0]=_vA.x;modifiedAttributeArray[a*3+1]=_vA.y;modifiedAttributeArray[a*3+2]=_vA.z;modifiedAttributeArray[b*3+0]=_vB.x;modifiedAttributeArray[b*3+1]=_vB.y;modifiedAttributeArray[b*3+2]=_vB.z;modifiedAttributeArray[c*3+0]=_vC.x;modifiedAttributeArray[c*3+1]=_vC.y;modifiedAttributeArray[c*3+2]=_vC.z}const geometry=object.geometry;const material=object.material;let a,b,c;const index=geometry.index;const positionAttribute=geometry.attributes.position;const morphPosition=geometry.morphAttributes.position;const morphTargetsRelative=geometry.morphTargetsRelative;const normalAttribute=geometry.attributes.normal;const morphNormal=geometry.morphAttributes.position;const groups=geometry.groups;const drawRange=geometry.drawRange;let i,j,il,jl;let group;let start,end;const modifiedPosition=new Float32Array(positionAttribute.count*positionAttribute.itemSize);const modifiedNormal=new Float32Array(normalAttribute.count*normalAttribute.itemSize);if(index!==null){if(Array.isArray(material)){for(i=0,il=groups.length;i<il;i++){group=groups[i];start=Math.max(group.start,drawRange.start);end=Math.min(group.start+group.count,drawRange.start+drawRange.count);for(j=start,jl=end;j<jl;j+=3){a=index.getX(j);b=index.getX(j+1);c=index.getX(j+2);_calculateMorphedAttributeData(object,positionAttribute,morphPosition,morphTargetsRelative,a,b,c,modifiedPosition);_calculateMorphedAttributeData(object,normalAttribute,morphNormal,morphTargetsRelative,a,b,c,modifiedNormal)}}}else{start=Math.max(0,drawRange.start);end=Math.min(index.count,drawRange.start+drawRange.count);for(i=start,il=end;i<il;i+=3){a=index.getX(i);b=index.getX(i+1);c=index.getX(i+2);_calculateMorphedAttributeData(object,positionAttribute,morphPosition,morphTargetsRelative,a,b,c,modifiedPosition);_calculateMorphedAttributeData(object,normalAttribute,morphNormal,morphTargetsRelative,a,b,c,modifiedNormal)}}}else{if(Array.isArray(material)){for(i=0,il=groups.length;i<il;i++){group=groups[i];start=Math.max(group.start,drawRange.start);end=Math.min(group.start+group.count,drawRange.start+drawRange.count);for(j=start,jl=end;j<jl;j+=3){a=j;b=j+1;c=j+2;_calculateMorphedAttributeData(object,positionAttribute,morphPosition,morphTargetsRelative,a,b,c,modifiedPosition);_calculateMorphedAttributeData(object,normalAttribute,morphNormal,morphTargetsRelative,a,b,c,modifiedNormal)}}}else{start=Math.max(0,drawRange.start);end=Math.min(positionAttribute.count,drawRange.start+drawRange.count);for(i=start,il=end;i<il;i+=3){a=i;b=i+1;c=i+2;_calculateMorphedAttributeData(object,positionAttribute,morphPosition,morphTargetsRelative,a,b,c,modifiedPosition);_calculateMorphedAttributeData(object,normalAttribute,morphNormal,morphTargetsRelative,a,b,c,modifiedNormal)}}}const morphedPositionAttribute=new Float32BufferAttribute(modifiedPosition,3);const morphedNormalAttribute=new Float32BufferAttribute(modifiedNormal,3);return{positionAttribute:positionAttribute,normalAttribute:normalAttribute,morphedPositionAttribute:morphedPositionAttribute,morphedNormalAttribute:morphedNormalAttribute}}function mergeGroups(geometry){if(geometry.groups.length===0){console.warn("THREE.BufferGeometryUtils.mergeGroups(): No groups are defined. Nothing to merge.");return geometry}let groups=geometry.groups;groups=groups.sort((a,b)=>{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;i<positionAttribute.count;i+=3){indices.push(i,i+1,i+2)}geometry.setIndex(indices)}const index=geometry.getIndex();const newIndices=[];for(let i=0;i<groups.length;i++){const group=groups[i];const groupStart=group.start;const groupLength=groupStart+group.count;for(let j=groupStart;j<groupLength;j++){newIndices.push(index.getX(j))}}geometry.dispose();geometry.setIndex(newIndices);let start=0;for(let i=0;i<groups.length;i++){const group=groups[i];group.start=start;start+=group.count}let currentGroup=groups[0];geometry.groups=[currentGroup];for(let i=1;i<groups.length;i++){const group=groups[i];if(currentGroup.materialIndex===group.materialIndex){currentGroup.count+=group.count}else{currentGroup=group;geometry.groups.push(currentGroup)}}return geometry}function toCreasedNormals(geometry,creaseAngle=Math.PI/3){const creaseDot=Math.cos(creaseAngle);const hashMultiplier=(1+1e-10)*100;
4733const verts=[new Vector3,new Vector3,new Vector3];const tempVec1=new Vector3;const tempVec2=new Vector3;const tempNorm=new Vector3;const tempNorm2=new Vector3;function hashVertex(v){const x=~~(v.x*hashMultiplier);const y=~~(v.y*hashMultiplier);const z=~~(v.z*hashMultiplier);return`${x},${y},${z}`}const resultGeometry=geometry.toNonIndexed();const posAttr=resultGeometry.attributes.position;const vertexMap={};for(let i=0,l=posAttr.count/3;i<l;i++){const i3=3*i;const a=verts[0].fromBufferAttribute(posAttr,i3+0);const b=verts[1].fromBufferAttribute(posAttr,i3+1);const c=verts[2].fromBufferAttribute(posAttr,i3+2);tempVec1.subVectors(c,b);tempVec2.subVectors(a,b);const normal=new Vector3().crossVectors(tempVec1,tempVec2).normalize();for(let n=0;n<3;n++){const vert=verts[n];const hash=hashVertex(vert);if(!(hash in vertexMap)){vertexMap[hash]=[]}vertexMap[hash].push(normal)}}const normalArray=new Float32Array(posAttr.count*3);const normAttr=new BufferAttribute(normalArray,3,false);for(let i=0,l=posAttr.count/3;i<l;i++){const i3=3*i;const a=verts[0].fromBufferAttribute(posAttr,i3+0);const b=verts[1].fromBufferAttribute(posAttr,i3+1);const c=verts[2].fromBufferAttribute(posAttr,i3+2);tempVec1.subVectors(c,b);tempVec2.subVectors(a,b);tempNorm.crossVectors(tempVec1,tempVec2).normalize();for(let n=0;n<3;n++){const vert=verts[n];const hash=hashVertex(vert);const otherNormals=vertexMap[hash];tempNorm2.set(0,0,0);for(let k=0,lk=otherNormals.length;k<lk;k++){const otherNorm=otherNormals[k];if(tempNorm.dot(otherNorm)>creaseDot){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<this.pool;i++)if(!(this.workerStatus&1<<i))return i;return-1}_onMessage(workerId,msg){const resolve=this.workersResolve[workerId];resolve&&resolve(msg);if(this.queue.length){const{resolve,msg,transfer}=this.queue.shift();this.workersResolve[workerId]=resolve;this.workers[workerId].postMessage(msg,transfer)}else{this.workerStatus^=1<<workerId}}setWorkerCreator(workerCreator){this.workerCreator=workerCreator}setWorkerLimit(pool){this.pool=pool}postMessage(msg,transfer){return new Promise(resolve=>{const workerId=this._getIdleWorker();if(workerId!==-1){this._initWorker(workerId);this.workerStatus|=1<<workerId;this.workersResolve[workerId]=resolve;this.workers[workerId].postMessage(msg,transfer)}else{this.queue.push({resolve,msg,transfer})}})}dispose(){this.workers.forEach(worker=>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
4733=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&&i<t;)i++,this._offset++;return i<t&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+n,i)}}const Oi=new Uint8Array([0]),Ti=[171,75,84,88,32,50,48,187,13,10,26,10];function Vi(t){return"undefined"!=typeof TextEncoder?new TextEncoder().encode(t):Buffer.from(t)}function Ei(t){return"undefined"!=typeof TextDecoder?new TextDecoder().decode(t):Buffer.from(t).toString("utf8")}function Fi(t){let e=0;for(const n of t)e+=n.byteLength;const n=new Uint8Array(e);let i=0;for(const e of t)n.set(new Uint8Array(e),i),i+=e.byteLength;return n}function Pi(t){const e=new Uint8Array(t.buffer,t.byteOffset,Ti.length);if(e[0]!==Ti[0]||e[1]!==Ti[1]||e[2]!==Ti[2]||e[3]!==Ti[3]||e[4]!==Ti[4]||e[5]!==Ti[5]||e[6]!==Ti[6]||e[7]!==Ti[7]||e[8]!==Ti[8]||e[9]!==Ti[9]||e[10]!==Ti[10]||e[11]!==Ti[11])throw new Error("Missing KTX 2.0 identifier.");const n=new Si,i=17*Uint32Array.BYTES_PER_ELEMENT,s=new Ii(t,Ti.length,i,!0);n.vkFormat=s._nextUint32(),n.typeSize=s._nextUint32(),n.pixelWidth=s._nextUint32(),n.pixelHeight=s._nextUint32(),n.pixelDepth=s._nextUint32(),n.layerCount=s._nextUint32(),n.faceCount=s._nextUint32();const a=s._nextUint32();n.supercompressionScheme=s._nextUint32();const r=s._nextUint32(),o=s._nextUint32(),l=s._nextUint32(),f=s._nextUint32(),U=s._nextUint64(),c=s._nextUint64(),h=new Ii(t,Ti.length+i,3*a*8,!0);for(let e=0;e<a;e++)n.levels.push({levelData:new Uint8Array(t.buffer,t.byteOffset+h._nextUint64(),h._nextUint64()),uncompressedByteLength:h._nextUint64()});const _=new Ii(t,r,o,!0),p={vendorId:_._skip(4)._nextUint16(),descriptorType:_._nextUint16(),versionNumber:_._nextUint16(),descriptorBlockSize:_._nextUint16(),colorModel:_._nextUint8(),colorPrimaries:_._nextUint8(),transferFunction:_._nextUint8(),flags:_._nextUint8(),texelBlockDimension:[_._nextUint8(),_._nextUint8(),_._nextUint8(),_._nextUint8()],bytesPlane:[_._nextUint8(),_._nextUint8(),_._nextUint8(),_._nextUint8(),_._nextUint8(),_._nextUint8(),_._nextUint8(),_._nextUint8()],samples:[]},g=(p.descriptorBlockSize/4-6)/4;for(let t=0;t<g;
4733t++){const e={bitOffset:_._nextUint16(),bitLength:_._nextUint8(),channelType:_._nextUint8(),samplePosition:[_._nextUint8(),_._nextUint8(),_._nextUint8(),_._nextUint8()],sampleLower:-Infinity,sampleUpper:Infinity};64&e.channelType?(e.sampleLower=_._nextInt32(),e.sampleUpper=_._nextInt32()):(e.sampleLower=_._nextUint32(),e.sampleUpper=_._nextUint32()),p.samples[t]=e}n.dataFormatDescriptor.length=0,n.dataFormatDescriptor.push(p);const y=new Ii(t,l,f,!0);for(;y._offset<f;){const t=y._nextUint32(),e=y._scan(t),i=Ei(e),s=y._scan(t-e.byteLength);n.keyValue[i]=i.match(/^ktx/i)?Ei(s):s,y._offset%4&&y._skip(4-y._offset%4)}if(c<=0)return n;const x=new Ii(t,U,c,!0),u=x._nextUint16(),b=x._nextUint16(),d=x._nextUint32(),m=x._nextUint32(),w=x._nextUint32(),D=x._nextUint32(),B=[];for(let t=0;t<a;t++)B.push({imageFlags:x._nextUint32(),rgbSliceByteOffset:x._nextUint32(),rgbSliceByteLength:x._nextUint32(),alphaSliceByteOffset:x._nextUint32(),alphaSliceByteLength:x._nextUint32()});const L=U+x._offset,A=L+d,k=A+m,v=k+w,S=new Uint8Array(t.buffer,t.byteOffset+L,d),I=new Uint8Array(t.buffer,t.byteOffset+A,m),O=new Uint8Array(t.buffer,t.byteOffset+k,w),T=new Uint8Array(t.buffer,t.byteOffset+v,D);return n.globalData={endpointCount:u,selectorCount:b,imageDescs:B,endpointsData:S,selectorsData:I,tablesData:O,extendedData:T},n}function Ci(){return(Ci=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}const zi={keepWriter:!1};function Mi(t,e={}){e=Ci({},zi,e);let n=new ArrayBuffer(0);if(t.globalData){const e=new ArrayBuffer(20+5*t.globalData.imageDescs.length*4),i=new DataView(e);i.setUint16(0,t.globalData.endpointCount,!0),i.setUint16(2,t.globalData.selectorCount,!0),i.setUint32(4,t.globalData.endpointsData.byteLength,!0),i.setUint32(8,t.globalData.selectorsData.byteLength,!0),i.setUint32(12,t.globalData.tablesData.byteLength,!0),i.setUint32(16,t.globalData.extendedData.byteLength,!0);for(let e=0;e<t.globalData.imageDescs.length;e++){const n=t.globalData.imageDescs[e];i.setUint32(20+5*e*4+0,n.imageFlags,!0),i.setUint32(20+5*e*4+4,n.rgbSliceByteOffset,!0),i.setUint32(20+5*e*4+8,n.rgbSliceByteLength,!0),i.setUint32(20+5*e*4+12,n.alphaSliceByteOffset,!0),i.setUint32(20+5*e*4+16,n.alphaSliceByteLength,!0)}n=Fi([e,t.globalData.endpointsData,t.globalData.selectorsData,t.globalData.tablesData,t.globalData.extendedData])}const i=[];let s=t.keyValue;e.keepWriter||(s=Ci({},t.keyValue,{KTXwriter:"KTX-Parse v0.3.1"}));for(const t in s){const e=s[t],n=Vi(t),a="string"==typeof e?Vi(e):e,r=n.byteLength+1+a.byteLength+1,o=r%4?4-r%4:0;i.push(Fi([new Uint32Array([r]),n,Oi,a,Oi,new Uint8Array(o).fill(0)]))}const a=Fi(i);if(1!==t.dataFormatDescriptor.length||0!==t.dataFormatDescriptor[0].descriptorType)throw new Error("Only BASICFORMAT Data Format Descriptor output supported.");const r=t.dataFormatDescriptor[0],o=new ArrayBuffer(28+16*r.samples.length),l=new DataView(o),f=24+16*r.samples.length;if(l.setUint32(0,o.byteLength,!0),l.setUint16(4,r.vendorId,!0),l.setUint16(6,r.descriptorType,!0),l.setUint16(8,r.versionNumber,!0),l.setUint16(10,f,!0),l.setUint8(12,r.colorModel),l.setUint8(13,r.colorPrimaries),l.setUint8(14,r.transferFunction),l.setUint8(15,r.flags),!Array.isArray(r.texelBlockDimension))throw new Error("texelBlockDimension is now an array. For dimensionality `d`, set `d - 1`.");l.setUint8(16,r.texelBlockDimension[0]),l.setUint8(17,r.texelBlockDimension[1]),l.setUint8(18,r.texelBlockDimension[2]),l.setUint8(19,r.texelBlockDimension[3]);for(let t=0;t<8;t++)l.setUint8(20+t,r.bytesPlane[t]);for(let t=0;t<r.samples.length;t++){const e=r.samples[t],n=28+16*t;if(e.channelID)throw new Error("channelID has been renamed to channelType.");l.setUint16(n+0,e.bitOffset,!0),l.setUint8(n+2,e.bitLength),l.setUint8(n+3,e.channelType),l.setUint8(n+4,e.samplePosition[0]),l.setUint8(n+5,e.samplePosition[1]),l.setUint8(n+6,e.samplePosition[2]),l.setUint8(n+7,e.samplePosition[3]),64&e.channelType?(l.setInt32(n+8,e.sampleLower,!0),l.setInt32(n+12,e.sampleUpper,!0)):(l.setUint32(n+8,e.sampleLower,!0),l.setUint32(n+12,e.sampleUpper,!0))}const U=Ti.length+68+3*t.levels.length*8,c=U+o.byteLength;let h=n.byteLength>0?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;e<t.levels.length;e++){const n=t.levels[e];_.push(n.levelData),p.setBigUint64(24*e+0,BigInt(g),!0),p.setBigUint64(24*e+8,BigInt(n.levelData.byteLength),!0),p.setBigUint64(24*e+16,BigInt(n.uncompressedByteLength),!0),g+=n.levelData.byteLength}const y=new ArrayBuffer(68),x=new DataView(y);return x.setUint32(0,t.vkFormat,!0),x.setUint32(4,t.typeSize,!0),x.setUint32(8,t.pixelWidth,!0),x.setUint32(12,t.pixelHeight,!0),x.setUint32(16,t.pixelDepth,!0),x.setUint32(20,t.layerCount,!0),x.setUint32(24,t.faceCount,!0),x.setUint32(28,t.levels.length,!0),x.setUint32(32,t.supercompressionScheme,!0),x.setUint32(36,U,!0),x.setUint32(40,o.byteLength,!0),x.setUint32(44,c,!0),x.setUint32(48,a.byteLength,!0),x.setBigUint64(52,BigInt(n.byteLength>0?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=
4733Rt,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,RedF
4733ormat=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);
4733return 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<mipmaps.length;++i){buffers.push(mipmaps[i].data.buffer)}self.postMessage({type:"transcode",id:message.id,width,height,hasAlpha,mipmaps,format,dfdTransferFn,dfdFlags},buffers)}catch(error){console.error(error);self.postMessage({type:"error",id:message.id,error:error.message})}});break;}});function init(wasmBinary){transcoderPending=new Promise(resolve=>{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<levels;mip++){const levelInfo=ktx2File.getImageLevelInfo(mip,0,0);const mipWidth=levelInfo.origWidth;const mipHeight=levelInfo.origHeight;const dst=new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip,0,0,transcoderFormat));const status=ktx2File.transcodeImage(dst,mip,0,0,transcoderFormat,0,-1,-1);if(!status){cleanup();throw new Error("THREE.KTX2Loader: .transcodeImage failed.")}mipmaps.push({data:dst,width:mipWidth,height:mipHeight})}cleanup();return{width,height,hasAlpha,mipmaps,format:engineFormat,dfdTransferFn,dfdFlags}}const FORMAT_OPTIONS=[{if:"astcSupported",basisFormat:[BasisFormat.UASTC_4x4],transcoderFormat:[TranscoderFormat.ASTC_4x4,TranscoderFormat.ASTC_4x4],engineFormat:[EngineFormat.RGBA_ASTC_4x4_Format,EngineFormat.RGBA_ASTC_4x4_Format],priorityETC1S:Infinity,priorityUASTC:1,needsPowerOfTwo:false},{if:"bptcSupported",basisFormat:[BasisFormat.ETC1S,BasisFormat.UASTC_4x4],transcoderFormat:[TranscoderFormat.BC7_M5,TranscoderFormat.BC7_M5],engineFormat:[EngineFormat.RGBA_BPTC_Format,EngineFormat.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:false},{if:"dxtSupported",basisFormat:[BasisFormat.ETC1S,BasisFormat.UASTC_4x4],transcoderFormat:[TranscoderFormat.BC1,TranscoderFormat.BC3],engineFormat:[EngineFormat.RGB_S3TC_DXT1_Format,EngineFormat.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:false},{if:"etc2Supported",basisFormat:[BasisFormat.ETC1S,BasisFormat.UASTC_4x4],transcoderFormat:[TranscoderFormat.ETC1,TranscoderFormat.ETC2],engineFormat:[EngineFormat.RGB_ETC2_Format,EngineFormat.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:false},{if:"etc1Supported",basisFormat:[BasisFormat.ETC1S,BasisFormat.UASTC_4x4],transcoderFormat:[TranscoderFormat.ETC1],engineFormat:[EngineFormat.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:false},{if:"pvrtcSupported",basisFormat:[BasisFormat.ETC1S,BasisFormat.UASTC_4x4],transcoderFormat:[TranscoderFormat.PVRTC1_4_RGB,TranscoderFormat.PVRTC1_4_RGBA],engineFormat:[EngineFormat.RGB_PVRTC_4BPPV1_Format,EngineFormat.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:true}];const ETC1S_OPTIONS=FORMAT_OPTIONS.sort(function(a,b){return a.priorityETC1S-b.priorityETC1S});const UASTC_OPTIONS=FORMAT_OPTIONS.sort(function(a,b){return a.priorityUASTC-b.priorityUASTC});function getTranscoderFormat(basisFormat,width,height,hasAlpha){let transcoderFormat;let engineFormat;const options=basisFormat===BasisFormat.ETC1S?ETC1S_OPTIONS:UASTC_OPTIONS;for(let i=0;i<options.length;i++){const opt=options[i];if(!config[opt.if])continue;if(!opt.basisFormat.includes(basisFormat))continue;if(hasAlpha&&opt.transcoderFormat.length<2)continue;if(opt.needsPowerOfTwo&&!(isPowerOfTwo(width)&&isPowerOfTwo(height)))continue;transcoderFormat=opt.transcoderFormat[hasAlpha?1:0];engineFormat=opt.engineFormat[hasAlpha?1:0];return{transcoderFormat,engineFormat}}console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32.");transcoderFormat=TranscoderFormat.RGBA32;engineFormat=EngineFormat.RGBAFormat;return{transcoderFormat,engineFormat}}function isPowerOfTwo(value){if(value<=2)return true;return(value&value-1)===0&&value!==0}};const FORMAT_MAP={[VK_FORMAT_R32G32B32A32_SFLOAT]:RGBAFormat,[VK_FORMAT_R16G16B16A16_SFLOAT]:RGBAFormat,[VK_FORMAT_R8G8B8A8_UNORM]:RGBAFormat,[VK_FORMAT_R8G8B8A8_SRGB]:RGBAFormat,[VK_FORMAT_R32G32_SFLOAT]:RGFormat,[VK_FORMAT_R16G16_SFLOAT]:RGFormat,[VK_FORMAT_R8G8_UNORM]:RGFormat,[VK_FORMAT_R8G8_SRGB]:RGFormat,[VK_FORMAT_R32_SFLOAT]:RedFormat,[VK_FORMAT_R16_SFLOAT]:RedFormat,[VK_FORMAT_R8_SRGB]:RedFormat,[VK_FORMAT_R8_UNORM]:RedFormat};const TYPE_MAP={[VK_FORMAT_R32G32B32A32_SFLOAT]:FloatType,[VK_FORMAT_R16G16B16A16_SFLOAT]:HalfFloatType,[VK_FORMAT_R8G8B8A8_UNORM]:UnsignedByteType,[VK_FORMAT_R8G8B8A8_SRGB]:UnsignedByteType,[VK_FORMAT_R32G32_SFLOAT]:FloatType,[VK_FORMAT_R16G16_SFLOAT]:HalfFloatType,[VK_FORMAT_R8G8_UNORM]:UnsignedByteType,[VK_FORMAT_R8G8_SRGB]:UnsignedByteType,[VK_FORMAT_R32_SFLOAT]:FloatType,[VK_FORMAT_R16_SFLOAT]:HalfFloatType,[VK_FORMAT_R8_SRGB]:UnsignedByteType,[VK_FORMAT_R8_UNORM]:UnsignedByteType};const ENCODING_MAP={[VK_FORMAT_R8G8B8A8_SRGB]:sRGBEncoding,[VK_FORMAT_R8G8_SRGB]:sRGBEncoding,[VK_FORMAT_R8_SRGB]:sRGBEncoding};async function createDataTexture(container){const{vkFormat,pixelWidth,pixelHeight,pixelDepth}=container;if(FORMAT_MAP[vkFormat]===undefined){throw new Error("THREE.KTX2Loader: Unsupported vkFormat.")}const level=container.levels[0];let levelData;let view;if(container.supercompressionScheme===KHR_SUPERCOMPRESSION_NONE){levelData=level.levelData}else if(container.supercompressionScheme===KHR_SUPERCOMPRESSION_ZSTD){if(!_zstd){_zstd=new Promise(async resolve=>{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)
vendor: 3,939 bytes, line 4733
4733}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/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQ
vendor: 35,367 bytes, line 4733
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LE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACai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8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogAC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FqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMy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utAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbi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"
4733;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<geometryData.attributes.length;i++){const result=geometryData.attributes[i];const name=result.name;const array=result.array;const itemSize=result.itemSize;const attribute=new BufferAttribute(array,itemSize);if(name==="color"){this._assignVertexColorSpace(attribute,result.vertexColorSpace);attribute.normalized=array instanceof Float32Array===false}geometry.setAttribute(name,attribute)}return geometry}_assignVertexColorSpace(attribute,inputColorSpace){if(inputColorSpace!==SRGBColorSpace)return;const _color=new Color;for(let i=0,il=attribute.count;i<il;i++){_color.fromBufferAttribute(attribute,i).convertSRGBToLinear();attribute.setXYZ(i,_color.r,_color.g,_color.b)}}_loadLibrary(url,responseType){const loader=new FileLoader(this.manager);loader.setPath(this.decoderPath);loader.setResponseType(responseType);loader.setWithCredentials(this.withCredentials);return new Promise((resolve,reject)=>{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(()=>
4733{if(this.workerPool.length<this.workerLimit){const worker=new Worker(this.workerSourceURL);worker._callbacks={};worker._taskCosts={};worker._taskLoad=0;worker.postMessage({type:"init",decoderConfig:this.decoderConfig});worker.onmessage=function(e){const message=e.data;switch(message.type){case"decode":worker._callbacks[message.id].resolve(message);break;case"error":worker._callbacks[message.id].reject(message);break;default:console.error("THREE.DRACOLoader: Unexpected message, \""+message.type+"\"");}};this.workerPool.push(worker)}else{this.workerPool.sort(function(a,b){return a._taskLoad>b._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<this.workerPool.length;++i){this.workerPool[i].terminate()}this.workerPool.length=0;if(this.workerSourceURL!==""){URL.revokeObjectURL(this.workerSourceURL)}return this}}function DRACOWorker(){let decoderConfig;let decoderPending;onmessage=function(e){const message=e.data;switch(message.type){case"init":decoderConfig=message.decoderConfig;decoderPending=new Promise(function(resolve){decoderConfig.onModuleLoaded=function(draco){resolve({draco:draco})};DracoDecoderModule(decoderConfig)});break;case"decode":const buffer=message.buffer;const taskConfig=message.taskConfig;decoderPending.then(module=>{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);
4733json.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)});
4733this.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<this.pluginCallbacks.length;i++){const plugin=this.pluginCallbacks[i](parser);if(!plugin.name)console.error("THREE.GLTFLoader: Invalid plugin found: missing name");plugins[plugin.name]=plugin;extensions[plugin.name]=true}if(json.extensionsUsed){for(let i=0;i<json.extensionsUsed.length;++i){const extensionName=json.extensionsUsed[i];const extensionsRequired=json.extensionsRequired||[];switch(extensionName){case EXTENSIONS.KHR_MATERIALS_UNLIT:extensions[extensionName]=new GLTFMaterialsUnlitExtension;break;case EXTENSIONS.KHR_DRACO_MESH_COMPRESSION:extensions[extensionName]=new GLTFDracoMeshCompressionExtension(json,this.dracoLoader);break;case EXTENSIONS.KHR_TEXTURE_TRANSFORM:extensions[extensionName]=new GLTFTextureTransformExtension;break;case EXTENSIONS.KHR_MESH_QUANTIZATION:extensions[extensionName]=new GLTFMeshQuantizationExtension;break;default:if(extensionsRequired.indexOf(extensionName)>=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={}}
4733}}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<nodeLength;nodeIndex++){const nodeDef=nodeDefs[nodeIndex];if(nodeDef.extensions&&nodeDef.extensions[this.name]&&nodeDef.extensions[this.name].light!==undefined){parser._addNodeRef(this.cache,nodeDef.extensions[this.name].light)}}}_loadLight(lightIndex){const parser=this.parser;const cacheKey="light:"+lightIndex;let dependency=parser.cache.get(cacheKey);if(dependency)return dependency;const json=parser.json;const extensions=json.extensions&&json.extensions[this.name]||{};const lightDefs=extensions.lights||[];const lightDef=lightDefs[lightIndex];let lightNode;const color=new Color(16777215);if(lightDef.color!==undefined)color.setRGB(lightDef.color[0],lightDef.color[1],lightDef.color[2],LinearSRGBColorSpace);const range=lightDef.range!==undefined?lightDef.range:0;switch(lightDef.type){case"directional":lightNode=new DirectionalLight(color);lightNode.target.position.set(0,0,-1);lightNode.add(lightNode.target);break;case"point":lightNode=new PointLight(color);lightNode.distance=range;break;case"spot":lightNode=new SpotLight(color);lightNode.distance=range;lightDef.spot=lightDef.spot||{};lightDef.spot.innerConeAngle=lightDef.spot.innerConeAngle!==undefined?lightDef.spot.innerConeAngle:0;lightDef.spot.outerConeAngle=lightDef.spot.outerConeAngle!==undefined?lightDef.spot.outerConeAngle:Math.PI/4;lightNode.angle=lightDef.spot.outerConeAngle;lightNode.penumbra=1-lightDef.spot.innerConeAngle/lightDef.spot.outerConeAngle;lightNode.target.position.set(0,0,-1);lightNode.add(lightNode.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+lightDef.type);}lightNode.position.set(0,0,0);lightNode.decay=2;assignExtrasToUserData(lightNode,lightDef);if(lightDef.intensity!==undefined)lightNode.intensity=lightDef.intensity;lightNode.name=parser.createUniqueName(lightDef.name||"light_"+lightIndex);dependency=Promise.resolve(lightNode);parser.cache.add(cacheKey,dependency);return dependency}getDependency(type,index){if(type!=="light")return;return this._loadLight(index)}createNodeAttachment(nodeIndex){const self=this;const parser=this.parser;const json=parser.json;const nodeDef=json.nodes[nodeIndex];const lightDef=nodeDef.extensions&&nodeDef.extensions[this.name]||{};const lightIndex=lightDef.light;if(lightIndex===undefined)return null;return this._loadLight(lightIndex).then(function(light){return parser._getNodeRef(self.cache,lightIndex,light)})}}class GLTFMaterialsUnlitExtension{constructor(){this.name=EXTENSIONS.KHR_MATERIALS_UNLIT}getMaterialType(){return MeshBasicMaterial}extendParams(materialParams,materialDef,parser){const pending=[];materialParams.color=new Color(1,1,1);materialParams.opacity=1;const metallicRoughness=materialDef.pbrMetallicRoughness;if(metallicRoughness){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))}}return Promise.all(pending)}}class GLTFMaterialsEmissiveStrengthExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const emissiveStrength=materialDef.extensions[this.name].emissiveStrength;if(emissiveStrength!==undefined){materialParams.emissiveIntensity=emissiveStrength}return Promise.resolve()}}class GLTFMaterialsClearcoatExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_CLEARCOAT}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const pending=[];const extension=materialDef.extensions[this.name];if(extension.clearcoatFactor!==undefined){materialParams.clearcoat=extension.clearcoatFactor}if(extension.clearcoatTexture!==undefined){pending.push(parser.assignTexture(materialParams,"clearcoatMap",extension.clearcoatTexture))}if(extension.clearcoatRoughnessFactor!==undefined){materialParams.clearcoatRoughness=extension.clearcoatRoughnessFactor}if(extension.clearcoatRoughnessTexture!==undefined){pending.push(parser.assignTexture(materialParams,"clearcoatRoughnessMap",extension.clearcoatRoughnessTexture))}if(extension.clearcoatNormalTexture!==undefined){pending.push(parser.assignTexture(materialParams,"clearcoatNormalMap",extension.clearcoatNormalTexture));if(extension.clearcoatNormalTexture.scale!==undefined){const scale=extension.clearcoatNormalTexture.scale;materialParams.clearcoatNormalScale=new Vector2(scale,scale)}}return Promise.all(pending)}}class GLTFMaterialsDispersionExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_DISPERSION}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const extension=materialDef.extensions[this.name];materialParams.dispersion=extension.dispersion!==undefined?extension.dispersion:0;return Promise.resolve()}}class GLTFMaterialsIridescenceExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_IRIDESCENCE}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const pending=[];const extension=materialDef.extensions[this.name];if(extension.iridescenceFactor!==undefined){materialParams.iridescence=extension.iridescenceFactor}if(extension.iridescenceTexture!==undefined){pending.push(parser.assignTexture(materialParams,"iridescenceMap",extension.iridescenceTexture))}if(extension.iridescenceIor!==undefined){materialParams.iridescenceIOR=extension.iridescenceIor}if(materialParams.iridescenceThicknessRange===undefined){materialParams.iridescenceThicknessRange=[100,400]}if(extension.iridescenceThicknessMinimum!==undefined){materialParams.iridescenceThicknessRange[0]=extension.iridescenceThicknessMinimum}if(extension.iridescenceThicknessMaximum!==undefined){materialParams.iridescenceThicknessRange[1]=extension.iridescenceThicknessMaximum}if(extension.iridescenceThicknessTexture!==undefined){pending.push(parser.assignTexture(materialParams,"iridescenceThicknessMap",extension.iridescenceThicknessTexture))}return Promise.all(pending)}}class GLTFMaterialsSheenExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_SHEEN}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const pending=[];materialParams.sheenColor=new Color(0,0,0);materialParams.sheenRoughness=0;materialParams.sheen=1;const extension=materialDef.extensions[this.name];if(extension.sheenColorFactor!==undefined){const colorFactor=extension.sheenColorFactor;materialParams.sheenColor.setRGB(colorFactor[0],colorFactor[1],colorFactor[2],LinearSRGBColorSpace)}if(extension.sheenRoughnessFactor!==undefined){materialParams.sheenRoughness=extension.sheenRoughnessFactor}if(extension.sheenColorTexture!==undefined){pending.push(parser.assignTexture(materialParams,"sheenColorMap",extension.sheenColorTexture,SRGBColorSpace))}if(extension.sheenRoughnessTexture!==undefined){pending.push(parser.assignTexture(materialParams,"sheenRoughnessMap",extension.sheenRoughnessTexture))}return Promise.all(pending)}}class GLTFMaterialsTransmissionExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_TRANSMISSION}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const pending=[];const extension=materialDef.extensions[this.name];if(extension.transmissionFactor!==undefined){materialParams.transmission=extension.transmissionFactor}if(extension.transmissionTexture!==undefined){pending.push(parser.assignTexture(materialParams,"transmissionMap",extension.transmissionTexture))}return Promise.all(pending)}}class GLTFMaterialsVolumeExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_VOLUME}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const pending=[];const extension=materialDef.extensions[this.name];materialParams.thickness=extension.thicknessFactor!==undefined?extension.thicknessFactor:0;
4733if(extension.thicknessTexture!==undefined){pending.push(parser.assignTexture(materialParams,"thicknessMap",extension.thicknessTexture))}materialParams.attenuationDistance=extension.attenuationDistance||Infinity;const colorArray=extension.attenuationColor||[1,1,1];materialParams.attenuationColor=new Color().setRGB(colorArray[0],colorArray[1],colorArray[2],LinearSRGBColorSpace);return Promise.all(pending)}}class GLTFMaterialsIorExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_IOR}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const extension=materialDef.extensions[this.name];materialParams.ior=extension.ior!==undefined?extension.ior:1.5;return Promise.resolve()}}class GLTFMaterialsSpecularExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_SPECULAR}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const pending=[];const extension=materialDef.extensions[this.name];materialParams.specularIntensity=extension.specularFactor!==undefined?extension.specularFactor:1;if(extension.specularTexture!==undefined){pending.push(parser.assignTexture(materialParams,"specularIntensityMap",extension.specularTexture))}const colorArray=extension.specularColorFactor||[1,1,1];materialParams.specularColor=new Color().setRGB(colorArray[0],colorArray[1],colorArray[2],LinearSRGBColorSpace);if(extension.specularColorTexture!==undefined){pending.push(parser.assignTexture(materialParams,"specularColorMap",extension.specularColorTexture,SRGBColorSpace))}return Promise.all(pending)}}class GLTFMaterialsBumpExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.EXT_MATERIALS_BUMP}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const pending=[];const extension=materialDef.extensions[this.name];materialParams.bumpScale=extension.bumpFactor!==undefined?extension.bumpFactor:1;if(extension.bumpTexture!==undefined){pending.push(parser.assignTexture(materialParams,"bumpMap",extension.bumpTexture))}return Promise.all(pending)}}class GLTFMaterialsAnisotropyExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_MATERIALS_ANISOTROPY}getMaterialType(materialIndex){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name])return null;return MeshPhysicalMaterial}extendMaterialParams(materialIndex,materialParams){const parser=this.parser;const materialDef=parser.json.materials[materialIndex];if(!materialDef.extensions||!materialDef.extensions[this.name]){return Promise.resolve()}const pending=[];const extension=materialDef.extensions[this.name];if(extension.anisotropyStrength!==undefined){materialParams.anisotropy=extension.anisotropyStrength}if(extension.anisotropyRotation!==undefined){materialParams.anisotropyRotation=extension.anisotropyRotation}if(extension.anisotropyTexture!==undefined){pending.push(parser.assignTexture(materialParams,"anisotropyMap",extension.anisotropyTexture))}return Promise.all(pending)}}class GLTFTextureBasisUExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_TEXTURE_BASISU}loadTexture(textureIndex){const parser=this.parser;const json=parser.json;const textureDef=json.textures[textureIndex];if(!textureDef.extensions||!textureDef.extensions[this.name]){return null}const extension=textureDef.extensions[this.name];const loader=parser.options.ktx2Loader;if(!loader){if(json.extensionsRequired&&json.extensionsRequired.indexOf(this.name)>=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,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdj
4733FDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=";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;i<count;i++){if(attributes.TRANSLATION){p.fromBufferAttribute(attributes.TRANSLATION,i)}if(attributes.ROTATION){q.fromBufferAttribute(attributes.ROTATION,i)}if(attributes.SCALE){s.fromBufferAttribute(attributes.SCALE,i)}instancedMesh.setMatrixAt(i,m.compose(p,q,s))}for(const attributeName in attributes){if(attributeName==="_COLOR_0"){const attr=attributes[attributeName];instancedMesh.instanceColor=new InstancedBufferAttribute(attr.array,attr.itemSize,attr.normalized)}else if(attributeName!=="TRANSLATION"&&attributeName!=="ROTATION"&&attributeName!=="SCALE"){mesh.geometry.setAttribute(attributeName,attributes[attributeName])}}Object3D.prototype.copy.call(instancedMesh,mesh);this.parser.assignFinalMaterial(instancedMesh);instancedMeshes.push(instancedMesh)}if(nodeObject.isGroup){nodeObject.clear();nodeObject.add(...instancedMeshes);return nodeObject}return instancedMeshes[0]})}}const BINARY_EXTENSION_HEADER_MAGIC="glTF";const BINARY_EXTENSION_HEADER_LENGTH=12;const BINARY_EXTENSION_CHUNK_TYPES={JSON:1313821514,BIN:5130562};class GLTFBinaryExtension{constructor(data){this.name=EXTENSIONS.KHR_BINARY_GLTF;this.content=null;this.body=null;const headerView=new DataView(data,0,BINARY_EXTENSION_HEADER_LENGTH);const textDecoder=new TextDecoder;this.header={magic:textDecoder.decode(new Uint8Array(data.slice(0,4))),version:headerView.getUint32(4,true),length:headerView.getUint32(8,true)};if(this.header.magic!==BINARY_EXTENSION_HEADER_MAGIC){throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.")}else if(this.header.version<2){throw new Error("THREE.GLTFLoader: Legacy binary file detected.")}const chunkContentsLength=this.header.length-BINARY_EXTENSION_HEADER_LENGTH;const chunkView=new DataView(data,BINARY_EXTENSION_HEADER_LENGTH);let chunkIndex=0;
4733while(chunkIndex<chunkContentsLength){const chunkLength=chunkView.getUint32(chunkIndex,true);chunkIndex+=4;const chunkType=chunkView.getUint32(chunkIndex,true);chunkIndex+=4;if(chunkType===BINARY_EXTENSION_CHUNK_TYPES.JSON){const contentArray=new Uint8Array(data,BINARY_EXTENSION_HEADER_LENGTH+chunkIndex,chunkLength);this.content=textDecoder.decode(contentArray)}else if(chunkType===BINARY_EXTENSION_CHUNK_TYPES.BIN){const byteOffset=BINARY_EXTENSION_HEADER_LENGTH+chunkIndex;this.body=data.slice(byteOffset,byteOffset+chunkLength)}chunkIndex+=chunkLength}if(this.content===null){throw new Error("THREE.GLTFLoader: JSON content not found.")}}}class GLTFDracoMeshCompressionExtension{constructor(json,dracoLoader){if(!dracoLoader){throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.")}this.name=EXTENSIONS.KHR_DRACO_MESH_COMPRESSION;this.json=json;this.dracoLoader=dracoLoader;this.dracoLoader.preload()}decodePrimitive(primitive,parser){const json=this.json;const dracoLoader=this.dracoLoader;const bufferViewIndex=primitive.extensions[this.name].bufferView;const gltfAttributeMap=primitive.extensions[this.name].attributes;const threeAttributeMap={};const attributeNormalizedMap={};const attributeTypeMap={};for(const attributeName in gltfAttributeMap){const threeAttributeName=ATTRIBUTES[attributeName]||attributeName.toLowerCase();threeAttributeMap[threeAttributeName]=gltfAttributeMap[attributeName]}for(const attributeName in primitive.attributes){const threeAttributeName=ATTRIBUTES[attributeName]||attributeName.toLowerCase();if(gltfAttributeMap[attributeName]!==undefined){const accessorDef=json.accessors[primitive.attributes[attributeName]];const componentType=WEBGL_COMPONENT_TYPES[accessorDef.componentType];attributeTypeMap[threeAttributeName]=componentType.name;attributeNormalizedMap[threeAttributeName]=accessorDef.normalized===true}}return parser.getDependency("bufferView",bufferViewIndex).then(function(bufferView){return new Promise(function(resolve,reject){dracoLoader.decodeDracoFile(bufferView,function(geometry){for(const attributeName in geometry.attributes){const attribute=geometry.attributes[attributeName];const normalized=attributeNormalizedMap[attributeName];if(normalized!==undefined)attribute.normalized=normalized}resolve(geometry)},threeAttributeMap,attributeTypeMap,LinearSRGBColorSpace,reject)})})}}class GLTFTextureTransformExtension{constructor(){this.name=EXTENSIONS.KHR_TEXTURE_TRANSFORM}extendTexture(texture,transform){if((transform.texCoord===undefined||transform.texCoord===texture.channel)&&transform.offset===undefined&&transform.rotation===undefined&&transform.scale===undefined){return texture}texture=texture.clone();if(transform.texCoord!==undefined){texture.channel=transform.texCoord}if(transform.offset!==undefined){texture.offset.fromArray(transform.offset)}if(transform.rotation!==undefined){texture.rotation=transform.rotation}if(transform.scale!==undefined){texture.repeat.fromArray(transform.scale)}texture.needsUpdate=true;return texture}}class GLTFMeshQuantizationExtension{constructor(){this.name=EXTENSIONS.KHR_MESH_QUANTIZATION}}class GLTFCubicSplineInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer)}copySampleValue_(index){const result=this.resultBuffer,values=this.sampleValues,valueSize=this.valueSize,offset=index*valueSize*3+valueSize;for(let i=0;i!==valueSize;i++){result[i]=values[offset+i]}return result}interpolate_(i1,t0,t,t1){const result=this.resultBuffer;const values=this.sampleValues;const stride=this.valueSize;const stride2=stride*2;const stride3=stride*3;const td=t1-t0;const p=(t-t0)/td;const pp=p*p;const ppp=pp*p;const offset1=i1*stride3;const offset0=offset1-stride3;const s2=-2*ppp+3*pp;const s3=ppp-pp;const s0=1-s2;const s1=s3-pp+p;for(let i=0;i!==stride;i++){const p0=values[offset0+i+stride];const m0=values[offset0+i+stride2]*td;const p1=values[offset1+i+stride];const m1=values[offset1+i]*td;result[i]=s0*p0+s1*m0+s2*p1+s3*m1}return result}}const _q=new Quaternion;class GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant{interpolate_(i1,t0,t,t1){const result=super.interpolate_(i1,t0,t,t1);_q.fromArray(result).normalize().toArray(result);return result}}const WEBGL_CONSTANTS={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123};const WEBGL_COMPONENT_TYPES={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};const WEBGL_FILTERS={9728:NearestFilter,9729:LinearFilter,9984:NearestMipmapNearestFilter,9985:LinearMipmapNearestFilter,9986:NearestMipmapLinearFilter,9987:LinearMipmapLinearFilter};const WEBGL_WRAPPINGS={33071:ClampToEdgeWrapping,33648:MirroredRepeatWrapping,10497:RepeatWrapping};const WEBGL_TYPE_SIZES={"SCALAR":1,"VEC2":2,"VEC3":3,"VEC4":4,"MAT2":4,"MAT3":9,"MAT4":16};const ATTRIBUTES={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"};const PATH_PROPERTIES={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"};const INTERPOLATION={CUBICSPLINE:undefined,LINEAR:InterpolateLinear,STEP:InterpolateDiscrete};const ALPHA_MODES={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function createDefaultMaterial(cache){if(cache["DefaultMaterial"]===undefined){cache["DefaultMaterial"]=new MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:false,depthTest:true,side:FrontSide})}return cache["DefaultMaterial"]}function addUnknownExtensionsToUserData(knownExtensions,object,objectDef){for(const name in objectDef.extensions){if(knownExtensions[name]===undefined){object.userData.gltfExtensions=object.userData.gltfExtensions||{};object.userData.gltfExtensions[name]=objectDef.extensions[name]}}}function assignExtrasToUserData(object,gltfDef){if(gltfDef.extras!==undefined){if(typeof gltfDef.extras==="object"){Object.assign(object.userData,gltfDef.extras)}else{console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+gltfDef.extras)}}}function addMorphTargets(geometry,targets,parser){let hasMorphPosition=false;let hasMorphNormal=false;let hasMorphColor=false;for(let i=0,il=targets.length;i<il;i++){const target=targets[i];if(target.POSITION!==undefined)hasMorphPosition=true;if(target.NORMAL!==undefined)hasMorphNormal=true;if(target.COLOR_0!==undefined)hasMorphColor=true;if(hasMorphPosition&&hasMorphNormal&&hasMorphColor)break}if(!hasMorphPosition&&!hasMorphNormal&&!hasMorphColor)return Promise.resolve(geometry);const pendingPositionAccessors=[];const pendingNormalAccessors=[];const pendingColorAccessors=[];for(let i=0,il=targets.length;i<il;i++){const target=targets[i];if(hasMorphPosition){const pendingAccessor=target.POSITION!==undefined?parser.getDependency("accessor",target.POSITION):geometry.attributes.position;pendingPositionAccessors.push(pendingAccessor)}if(hasMorphNormal){const pendingAccessor=target.NORMAL!==undefined?parser.getDependency("accessor",target.NORMAL):geometry.attributes.normal;pendingNormalAccessors.push(pendingAccessor)}if(hasMorphColor){const pendingAccessor=target.COLOR_0!==undefined?parser.getDependency("accessor",target.COLOR_0):geometry.attributes.color;pendingColorAccessors.push(pendingAccessor)}}return Promise.all([Promise.all(pendingPositionAccessors),Promise.all(pendingNormalAccessors),Promise.all(pendingColorAccessors)]).then(function(accessors){const morphPositions=accessors[0];const morphNormals=accessors[1];const morphColors=accessors[2];if(hasMorphPosition)geometry.morphAttributes.position=morphPositions;if(hasMorphNormal)geometry.morphAttributes.normal=morphNormals;if(hasMorphColor)geometry.morphAttributes.color=morphColors;geometry.morphTargetsRelative=true;return geometry})}function updateMorphTargets(mesh,meshDef){mesh.updateMorphTargets();if(meshDef.weights!==undefined){for(let i=0,il=meshDef.weights.length;i<il;i++){mesh.morphTargetInfluences[i]=meshDef.weights[i]}}if(meshDef.extras&&Array.isArray(meshDef.extras.targetNames)){const targetNames=meshDef.extras.targetNames;if(mesh.morphTargetInfluences.length===targetNames.length){mesh.morphTargetDictionary={};for(let i=0,il=targetNames.length;i<il;i++){mesh.morphTargetDictionary[targetNames[i]]=i}}else{console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}}function createPrimitiveKey(primitiveDef){let geometryKey;const dracoExtension=primitiveDef.extensions&&primitiveDef.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION];if(dracoExtension){geometryKey="draco:"+dracoExtension.bufferView+":"+dracoExtension.indices+":"+createAttributesKey(dracoExtension.attributes)}else{geometryKey=primitiveDef.indices+":"+createAttributesKey(primitiveDef.attributes)+":"+primitiveDef.mode}if(primitiveDef.targets!==undefined){for(let i=0,il=primitiveDef.targets.length;i<il;i++){geometryKey+=":"+createAttributesKey(primitiveDef.targets[i])}}return geometryKey}function createAttributesKey(attributes){let attributesKey="";const keys=Object.keys(attributes).sort();for(let i=0,il=keys.length;i<il;i++){attributesKey+=keys[i]+":"+attributes[keys[i]]+";"}return attributesKey}function getNormalizedComponentScale(constructor){switch(constructor){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");}}function getImageURIMimeType(uri){if(uri.search(/\.jpe?g($|\?)/i)>0||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()}
4733)).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<skinLength;skinIndex++){const joints=skinDefs[skinIndex].joints;for(let i=0,il=joints.length;i<il;i++){nodeDefs[joints[i]].isBone=true}}for(let nodeIndex=0,nodeLength=nodeDefs.length;nodeIndex<nodeLength;nodeIndex++){const nodeDef=nodeDefs[nodeIndex];if(nodeDef.mesh!==undefined){this._addNodeRef(this.meshCache,nodeDef.mesh);if(nodeDef.skin!==undefined){meshDefs[nodeDef.mesh].isSkinnedMesh=true}}if(nodeDef.camera!==undefined){this._addNodeRef(this.cameraCache,nodeDef.camera)}}}_addNodeRef(cache,index){if(index===undefined)return;if(cache.refs[index]===undefined){cache.refs[index]=cache.uses[index]=0}cache.refs[index]++}_getNodeRef(cache,index,object){if(cache.refs[index]<=1)return object;const ref=object.clone();const updateMappings=(original,clone)=>{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<extensions.length;i++){const result=func(extensions[i]);if(result)return result}return null}_invokeAll(func){const extensions=Object.values(this.plugins);extensions.unshift(this);const pending=[];for(let i=0;i<extensions.length;i++){const result=func(extensions[i]);if(result)pending.push(result)}return pending}getDependency(type,index){const cacheKey=type+":"+index;let dependency=this.cache.get(cacheKey);if(!dependency){switch(type){case"scene":dependency=this.loadScene(index);break;case"node":dependency=this._invokeOne(function(ext){return ext.loadNode&&ext.loadNode(index)});break;case"mesh":dependency=this._invokeOne(function(ext){return ext.loadMesh&&ext.loadMesh(index)});break;case"accessor":dependency=this.loadAccessor(index);break;case"bufferView":dependency=this._invokeOne(function(ext){return ext.loadBufferView&&ext.loadBufferView(index)});break;case"buffer":dependency=this.loadBuffer(index);break;case"material":dependency=this._invokeOne(function(ext){return ext.loadMaterial&&ext.loadMaterial(index)});break;case"texture":dependency=this._invokeOne(function(ext){return ext.loadTexture&&ext.loadTexture(index)});break;case"skin":dependency=this.loadSkin(index);break;case"animation":dependency=this._invokeOne(function(ext){return ext.loadAnimation&&ext.loadAnimation(index)});break;case"camera":dependency=this.loadCamera(index);break;default:dependency=this._invokeOne(function(ext){return ext!=this&&ext.getDependency&&ext.getDependency(type,index)});if(!dependency){throw new Error("Unknown type: "+type)}break;}this.cache.add(cacheKey,dependency)}return dependency}getDependencies(type){let dependencies=this.cache.get(type);if(!dependencies){const parser=this;const defs=this.json[type+(type==="mesh"?"es":"s")]||[];dependencies=Promise.all(defs.map(function(def,index){return parser.getDependency(type,index)}));this.cache.add(type,dependencies)}return dependencies}loadBuffer(bufferIndex){const bufferDef=this.json.buffers[bufferIndex];const loader=this.fileLoader;if(bufferDef.type&&bufferDef.type!=="arraybuffer"){throw new Error("THREE.GLTFLoader: "+bufferDef.type+" buffer type is not supported.")}
4733if(bufferDef.uri===undefined&&bufferIndex===0){return Promise.resolve(this.extensions[EXTENSIONS.KHR_BINARY_GLTF].body)}const options=this.options;return new Promise(function(resolve,reject){loader.load(LoaderUtils.resolveURL(bufferDef.uri,options.path),resolve,undefined,function(){reject(new Error("THREE.GLTFLoader: Failed to load buffer \""+bufferDef.uri+"\"."))})})}loadBufferView(bufferViewIndex){const bufferViewDef=this.json.bufferViews[bufferViewIndex];return this.getDependency("buffer",bufferViewDef.buffer).then(function(buffer){const byteLength=bufferViewDef.byteLength||0;const byteOffset=bufferViewDef.byteOffset||0;return buffer.slice(byteOffset,byteOffset+byteLength)})}loadAccessor(accessorIndex){const parser=this;const json=this.json;const accessorDef=this.json.accessors[accessorIndex];if(accessorDef.bufferView===undefined&&accessorDef.sparse===undefined){const itemSize=WEBGL_TYPE_SIZES[accessorDef.type];const TypedArray=WEBGL_COMPONENT_TYPES[accessorDef.componentType];const normalized=accessorDef.normalized===true;const array=new TypedArray(accessorDef.count*itemSize);return Promise.resolve(new BufferAttribute(array,itemSize,normalized))}const pendingBufferViews=[];if(accessorDef.bufferView!==undefined){pendingBufferViews.push(this.getDependency("bufferView",accessorDef.bufferView))}else{pendingBufferViews.push(null)}if(accessorDef.sparse!==undefined){pendingBufferViews.push(this.getDependency("bufferView",accessorDef.sparse.indices.bufferView));pendingBufferViews.push(this.getDependency("bufferView",accessorDef.sparse.values.bufferView))}return Promise.all(pendingBufferViews).then(function(bufferViews){const bufferView=bufferViews[0];const itemSize=WEBGL_TYPE_SIZES[accessorDef.type];const TypedArray=WEBGL_COMPONENT_TYPES[accessorDef.componentType];const elementBytes=TypedArray.BYTES_PER_ELEMENT;const itemBytes=elementBytes*itemSize;const byteOffset=accessorDef.byteOffset||0;const byteStride=accessorDef.bufferView!==undefined?json.bufferViews[accessorDef.bufferView].byteStride:undefined;const normalized=accessorDef.normalized===true;let array,bufferAttribute;if(byteStride&&byteStride!==itemBytes){const ibSlice=Math.floor(byteOffset/byteStride);const ibCacheKey="InterleavedBuffer:"+accessorDef.bufferView+":"+accessorDef.componentType+":"+ibSlice+":"+accessorDef.count;let ib=parser.cache.get(ibCacheKey);if(!ib){array=new TypedArray(bufferView,ibSlice*byteStride,accessorDef.count*byteStride/elementBytes);ib=new InterleavedBuffer(array,byteStride/elementBytes);parser.cache.add(ibCacheKey,ib)}bufferAttribute=new InterleavedBufferAttribute(ib,itemSize,byteOffset%byteStride/elementBytes,normalized)}else{if(bufferView===null){array=new TypedArray(accessorDef.count*itemSize)}else{array=new TypedArray(bufferView,byteOffset,accessorDef.count*itemSize)}bufferAttribute=new BufferAttribute(array,itemSize,normalized)}if(accessorDef.sparse!==undefined){const itemSizeIndices=WEBGL_TYPE_SIZES.SCALAR;const TypedArrayIndices=WEBGL_COMPONENT_TYPES[accessorDef.sparse.indices.componentType];const byteOffsetIndices=accessorDef.sparse.indices.byteOffset||0;const byteOffsetValues=accessorDef.sparse.values.byteOffset||0;const sparseIndices=new TypedArrayIndices(bufferViews[1],byteOffsetIndices,accessorDef.sparse.count*itemSizeIndices);const sparseValues=new TypedArray(bufferViews[2],byteOffsetValues,accessorDef.sparse.count*itemSize);if(bufferView!==null){bufferAttribute=new BufferAttribute(bufferAttribute.array.slice(),bufferAttribute.itemSize,bufferAttribute.normalized)}for(let i=0,il=sparseIndices.length;i<il;i++){const index=sparseIndices[i];bufferAttribute.setX(index,sparseValues[i*itemSize]);if(itemSize>=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||"";
4733if(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=[];
4733if(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;i<il;i++){const primitive=primitives[i];const cacheKey=createPrimitiveKey(primitive);const cached=cache[cacheKey];if(cached){pending.push(cached.promise)}else{let geometryPromise;if(primitive.extensions&&primitive.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION]){geometryPromise=createDracoPrimitive(primitive)}else{geometryPromise=addPrimitiveAttributes(new BufferGeometry,primitive,parser)}cache[cacheKey]={primitive:primitive,promise:geometryPromise};pending.push(geometryPromise)}}return Promise.all(pending)}loadMesh(meshIndex){const parser=this;const json=this.json;const extensions=this.extensions;const meshDef=json.meshes[meshIndex];const primitives=meshDef.primitives;const pending=[];for(let i=0,il=primitives.length;i<il;i++){const material=primitives[i].material===undefined?createDefaultMaterial(this.cache):this.getDependency("material",primitives[i].material);
4733pending.push(material)}pending.push(parser.loadGeometries(primitives));return Promise.all(pending).then(function(results){const materials=results.slice(0,results.length-1);const geometries=results[results.length-1];const meshes=[];for(let i=0,il=geometries.length;i<il;i++){const geometry=geometries[i];const primitive=primitives[i];let mesh;const material=materials[i];if(primitive.mode===WEBGL_CONSTANTS.TRIANGLES||primitive.mode===WEBGL_CONSTANTS.TRIANGLE_STRIP||primitive.mode===WEBGL_CONSTANTS.TRIANGLE_FAN||primitive.mode===undefined){mesh=meshDef.isSkinnedMesh===true?new SkinnedMesh(geometry,material):new Mesh(geometry,material);if(mesh.isSkinnedMesh===true){mesh.normalizeSkinWeights()}if(primitive.mode===WEBGL_CONSTANTS.TRIANGLE_STRIP){mesh.geometry=toTrianglesDrawMode(mesh.geometry,TriangleStripDrawMode)}else if(primitive.mode===WEBGL_CONSTANTS.TRIANGLE_FAN){mesh.geometry=toTrianglesDrawMode(mesh.geometry,TriangleFanDrawMode)}}else if(primitive.mode===WEBGL_CONSTANTS.LINES){mesh=new LineSegments(geometry,material)}else if(primitive.mode===WEBGL_CONSTANTS.LINE_STRIP){mesh=new Line(geometry,material)}else if(primitive.mode===WEBGL_CONSTANTS.LINE_LOOP){mesh=new LineLoop(geometry,material)}else if(primitive.mode===WEBGL_CONSTANTS.POINTS){mesh=new Points(geometry,material)}else{throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+primitive.mode)}if(Object.keys(mesh.geometry.morphAttributes).length>0){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;i<il;i++){parser.associations.set(meshes[i],{meshes:meshIndex,primitives:i})}if(meshes.length===1){if(meshDef.extensions)addUnknownExtensionsToUserData(extensions,meshes[0],meshDef);return meshes[0]}const group=new Group;if(meshDef.extensions)addUnknownExtensionsToUserData(extensions,group,meshDef);parser.associations.set(group,{meshes:meshIndex});for(let i=0,il=meshes.length;i<il;i++){group.add(meshes[i])}return group})}loadCamera(cameraIndex){let camera;const cameraDef=this.json.cameras[cameraIndex];const params=cameraDef[cameraDef.type];if(!params){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}if(cameraDef.type==="perspective"){camera=new PerspectiveCamera(MathUtils.radToDeg(params.yfov),params.aspectRatio||1,params.znear||1,params.zfar||2e6)}else if(cameraDef.type==="orthographic"){camera=new OrthographicCamera(-params.xmag,params.xmag,params.ymag,-params.ymag,params.znear,params.zfar)}if(cameraDef.name)camera.name=this.createUniqueName(cameraDef.name);assignExtrasToUserData(camera,cameraDef);return Promise.resolve(camera)}loadSkin(skinIndex){const skinDef=this.json.skins[skinIndex];const pending=[];for(let i=0,il=skinDef.joints.length;i<il;i++){pending.push(this._loadNodeShallow(skinDef.joints[i]))}if(skinDef.inverseBindMatrices!==undefined){pending.push(this.getDependency("accessor",skinDef.inverseBindMatrices))}else{pending.push(null)}return Promise.all(pending).then(function(results){const inverseBindMatrices=results.pop();const jointNodes=results;const bones=[];const boneInverses=[];for(let i=0,il=jointNodes.length;i<il;i++){const jointNode=jointNodes[i];if(jointNode){bones.push(jointNode);const mat=new Matrix4;if(inverseBindMatrices!==null){mat.fromArray(inverseBindMatrices.array,i*16)}boneInverses.push(mat)}else{console.warn("THREE.GLTFLoader: Joint \"%s\" could not be found.",skinDef.joints[i])}}return new Skeleton(bones,boneInverses)})}loadAnimation(animationIndex){const json=this.json;const parser=this;const animationDef=json.animations[animationIndex];const animationName=animationDef.name?animationDef.name:"animation_"+animationIndex;const pendingNodes=[];const pendingInputAccessors=[];const pendingOutputAccessors=[];const pendingSamplers=[];const pendingTargets=[];for(let i=0,il=animationDef.channels.length;i<il;i++){const channel=animationDef.channels[i];const sampler=animationDef.samplers[channel.sampler];const target=channel.target;const name=target.node;
4733const input=animationDef.parameters!==undefined?animationDef.parameters[sampler.input]:sampler.input;const output=animationDef.parameters!==undefined?animationDef.parameters[sampler.output]:sampler.output;if(target.node===undefined)continue;pendingNodes.push(this.getDependency("node",name));pendingInputAccessors.push(this.getDependency("accessor",input));pendingOutputAccessors.push(this.getDependency("accessor",output));pendingSamplers.push(sampler);pendingTargets.push(target)}return Promise.all([Promise.all(pendingNodes),Promise.all(pendingInputAccessors),Promise.all(pendingOutputAccessors),Promise.all(pendingSamplers),Promise.all(pendingTargets)]).then(function(dependencies){const nodes=dependencies[0];const inputAccessors=dependencies[1];const outputAccessors=dependencies[2];const samplers=dependencies[3];const targets=dependencies[4];const tracks=[];for(let i=0,il=nodes.length;i<il;i++){const node=nodes[i];const inputAccessor=inputAccessors[i];const outputAccessor=outputAccessors[i];const sampler=samplers[i];const target=targets[i];if(node===undefined)continue;if(node.updateMatrix){node.updateMatrix()}const createdTracks=parser._createAnimationTracks(node,inputAccessor,outputAccessor,sampler,target);if(createdTracks){for(let k=0;k<createdTracks.length;k++){tracks.push(createdTracks[k])}}}return new AnimationClip(animationName,undefined,tracks)})}createNodeMesh(nodeIndex){const json=this.json;const parser=this;const nodeDef=json.nodes[nodeIndex];if(nodeDef.mesh===undefined)return null;return parser.getDependency("mesh",nodeDef.mesh).then(function(mesh){const node=parser._getNodeRef(parser.meshCache,nodeDef.mesh,mesh);if(nodeDef.weights!==undefined){node.traverse(function(o){if(!o.isMesh)return;for(let i=0,il=nodeDef.weights.length;i<il;i++){o.morphTargetInfluences[i]=nodeDef.weights[i]}})}return node})}loadNode(nodeIndex){const json=this.json;const parser=this;const nodeDef=json.nodes[nodeIndex];const nodePending=parser._loadNodeShallow(nodeIndex);const childPending=[];const childrenDef=nodeDef.children||[];for(let i=0,il=childrenDef.length;i<il;i++){childPending.push(parser.getDependency("node",childrenDef[i]))}const skeletonPending=nodeDef.skin===undefined?Promise.resolve(null):parser.getDependency("skin",nodeDef.skin);return Promise.all([nodePending,Promise.all(childPending),skeletonPending]).then(function(results){const node=results[0];const children=results[1];const skeleton=results[2];if(skeleton!==null){node.traverse(function(mesh){if(!mesh.isSkinnedMesh)return;mesh.bind(skeleton,_identityMatrix)})}for(let i=0,il=children.length;i<il;i++){node.add(children[i])}return node})}_loadNodeShallow(nodeIndex){const json=this.json;const extensions=this.extensions;const parser=this;if(this.nodeCache[nodeIndex]!==undefined){return this.nodeCache[nodeIndex]}const nodeDef=json.nodes[nodeIndex];const nodeName=nodeDef.name?parser.createUniqueName(nodeDef.name):"";const pending=[];const meshPromise=parser._invokeOne(function(ext){return ext.createNodeMesh&&ext.createNodeMesh(nodeIndex)});if(meshPromise){pending.push(meshPromise)}if(nodeDef.camera!==undefined){pending.push(parser.getDependency("camera",nodeDef.camera).then(function(camera){return parser._getNodeRef(parser.cameraCache,nodeDef.camera,camera)}))}parser._invokeAll(function(ext){return ext.createNodeAttachment&&ext.createNodeAttachment(nodeIndex)}).forEach(function(promise){pending.push(promise)});this.nodeCache[nodeIndex]=Promise.all(pending).then(function(objects){let node;if(nodeDef.isBone===true){node=new Bone}else if(objects.length>1){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<il;i++){node.add(objects[i])}}if(nodeDef.name){node.userData.name=nodeDef.name;node.name=nodeName}assignExtrasToUserData(node,nodeDef);if(nodeDef.extensions)addUnknownExtensionsToUserData(extensions,node,nodeDef);if(nodeDef.matrix!==undefined){const matrix=new Matrix4;matrix.fromArray(nodeDef.matrix);node.applyMatrix4(matrix)}else{if(nodeDef.translation!==undefined){node.position.fromArray(nodeDef.translation)}
4733if(nodeDef.rotation!==undefined){node.quaternion.fromArray(nodeDef.rotation)}if(nodeDef.scale!==undefined){node.scale.fromArray(nodeDef.scale)}}if(!parser.associations.has(node)){parser.associations.set(node,{})}parser.associations.get(node).nodes=nodeIndex;return node});return this.nodeCache[nodeIndex]}loadScene(sceneIndex){const extensions=this.extensions;const sceneDef=this.json.scenes[sceneIndex];const parser=this;const scene=new Group;if(sceneDef.name)scene.name=parser.createUniqueName(sceneDef.name);assignExtrasToUserData(scene,sceneDef);if(sceneDef.extensions)addUnknownExtensionsToUserData(extensions,scene,sceneDef);const nodeIds=sceneDef.nodes||[];const pending=[];for(let i=0,il=nodeIds.length;i<il;i++){pending.push(parser.getDependency("node",nodeIds[i]))}return Promise.all(pending).then(function(nodes){for(let i=0,il=nodes.length;i<il;i++){scene.add(nodes[i])}const reduceAssociations=node=>{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;
4733const outputArray=this._getArrayFromAccessor(outputAccessor);for(let j=0,jl=targetNames.length;j<jl;j++){const track=new TypedKeyframeTrack(targetNames[j]+"."+PATH_PROPERTIES[target.path],inputAccessor.array,outputArray,interpolation);if(sampler.interpolation==="CUBICSPLINE"){this._createCubicSplineTrackInterpolant(track)}tracks.push(track)}return tracks}_getArrayFromAccessor(accessor){let outputArray=accessor.array;if(accessor.normalized){const scale=getNormalizedComponentScale(outputArray.constructor);const scaled=new Float32Array(outputArray.length);for(let j=0,jl=outputArray.length;j<jl;j++){scaled[j]=outputArray[j]*scale}outputArray=scaled}return outputArray}_createCubicSplineTrackInterpolant(track){track.createInterpolant=function InterpolantFactoryMethodGLTFCubicSpline(result){const interpolantType=this instanceof QuaternionKeyframeTrack?GLTFCubicSplineQuaternionInterpolant:GLTFCubicSplineInterpolant;return new interpolantType(this.times,this.values,this.getValueSize()/3,result)};track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=true}}function computeBounds(geometry,primitiveDef,parser){const attributes=primitiveDef.attributes;const box=new Box3;if(attributes.POSITION!==undefined){const accessor=parser.json.accessors[attributes.POSITION];const min=accessor.min;const max=accessor.max;if(min!==undefined&&max!==undefined){box.set(new Vector3(min[0],min[1],min[2]),new Vector3(max[0],max[1],max[2]));if(accessor.normalized){const boxScale=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[accessor.componentType]);box.min.multiplyScalar(boxScale);box.max.multiplyScalar(boxScale)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else{return}const targets=primitiveDef.targets;if(targets!==undefined){const maxDisplacement=new Vector3;const vector=new Vector3;for(let i=0,il=targets.length;i<il;i++){const target=targets[i];if(target.POSITION!==undefined){const accessor=parser.json.accessors[target.POSITION];const min=accessor.min;const max=accessor.max;if(min!==undefined&&max!==undefined){vector.setX(Math.max(Math.abs(min[0]),Math.abs(max[0])));vector.setY(Math.max(Math.abs(min[1]),Math.abs(max[1])));vector.setZ(Math.max(Math.abs(min[2]),Math.abs(max[2])));if(accessor.normalized){const boxScale=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[accessor.componentType]);vector.multiplyScalar(boxScale)}maxDisplacement.max(vector)}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}}box.expandByVector(maxDisplacement)}geometry.boundingBox=box;const sphere=new Sphere;box.getCenter(sphere.center);sphere.radius=box.min.distanceTo(box.max)/2;geometry.boundingSphere=sphere}function addPrimitiveAttributes(geometry,primitiveDef,parser){const attributes=primitiveDef.attributes;const pending=[];function assignAttributeAccessor(accessorIndex,attributeName){return parser.getDependency("accessor",accessorIndex).then(function(accessor){geometry.setAttribute(attributeName,accessor)})}for(const gltfAttributeName in attributes){const threeAttributeName=ATTRIBUTES[gltfAttributeName]||gltfAttributeName.toLowerCase();if(threeAttributeName in geometry.attributes)continue;pending.push(assignAttributeAccessor(attributes[gltfAttributeName],threeAttributeName))}if(primitiveDef.indices!==undefined&&!geometry.index){const accessor=parser.getDependency("accessor",primitiveDef.indices).then(function(accessor){geometry.setIndex(accessor)});pending.push(accessor)}if(ColorManagement.workingColorSpace!==LinearSRGBColorSpace&&"COLOR_0"in attributes){console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ColorManagement.workingColorSpace}" not supported.`)}assignExtrasToUserData(geometry,primitiveDef);computeBounds(geometry,primitiveDef,parser);return Promise.all(pending).then(function(){return primitiveDef.targets!==undefined?addMorphTargets(geometry,primitiveDef.targets,parser):geometry})}THREE.GLTFLoader=GLTFLoader})()});(function(t,e){e(t.THREE=t.THREE||{})})(this,function(THREE){var Object3D=THREE.Object3D;var deviceMax=Number.POSITIVE_INFINITY;var deviceMin=Number.NEGATIVE_INFINITY;class CSS3DObject extends Object3D{constructor(element){super();this.containerElement=document.createElement("div");this.containerElement.style.position="absolute";this.containerElement.style.pointerEvents="none";this.containerElement.style.overflow="hidden";this.cameraElement=document.createElement("div");this.containerElement.appendChild(this.cameraElement);this.cameraElement.style.transformStyle="preserve-3d";this.cameraElement.style.position="absolute";this.cameraElement.style.pointerEvents="none";this.element=element||document.createElement("div");this.cameraElement.appendChild(this.element);this.element.style.position="absolute";this.element.style.pointerEvents="none";this.contentWidth=100;this.contentHeight=100;
4733this.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.addEventListener("removed",function(){this.traverse(function(object){if(object.containerElement instanceof Element&&object.containerElement.parentNode!==null)object.containerElement.parentNode.removeChild(object.containerElement)})})}copy(source,recursive){super.copy(source,recursive);this.element=source.element.cloneNode(true);return this}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)}projectVertices(camera){if(this.matrixWorldNeedsUpdate)this.updateMatrixWorld();projectVertices(this,camera);var pv=this.projectedVertices;this.isDrawable=true;pv=pv.filter(function(p){return p.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)<pv.length&&Math.abs(y)<pv.length&&max<deviceMax&&min>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)<pv.length&&Math.abs(y)<pv.length&&max<deviceMax&&min>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"};
4733function 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<l;i++)renderObject(object.children[i],scene,camera)}function epsilon(value){return value<1e-10&&value>-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<object.vertices.length;index++){var vertex=object.vertices[index];var projectedVertex=object.projectedVertices[index];projectedVertex.copy(vertex);projectedVertex.applyMatrix4(object.matrixWorld);projectedVertex.applyMatrix4(camera.matrixWorldInverse);var z=projectedVertex.z;projectedVertex.applyMatrix4(camera.projectionMatrix);projectedVertex.z=z}}function setArray(){var a=arguments[0];for(var i=1;i<arguments.length;i++)a[i-1]=arguments[i];return a}function copyArray(t,s){for(var i=0;i<s.length;i++)t[i]=s[i];return t}function adjugate(m,out){setArray(out,m[4]*m[8]-m[5]*m[7],m[2]*m[7]-m[1]*m[8],m[1]*m[5]-m[2]*m[4],m[5]*m[6]-m[3]*m[8],m[0]*m[8]-m[2]*m[6],m[2]*m[3]-m[0]*m[5],m[3]*m[7]-m[4]*m[6],m[1]*m[6]-m[0]*m[7],m[0]*m[4]-m[1]*m[3])}function multmm(a,b,out){for(var i=0;i!=3;++i){for(var j=0;j!=3;++j){var cij=0;for(var k=0;k!=3;++k){cij+=a[3*i+k]*b[3*k+j]}out[3*i+j]=cij}}}function multmv(m,v,out){return setArray(out,m[0]*v[0]+m[1]*v[1]+m[2]*v[2],m[3]*v[0]+m[4]*v[1]+m[5]*v[2],m[6]*v[0]+m[7]*v[1]+m[8]*v[2])}var m=new Array(9);var m2=new Array(9);var mAdj=new Array(9);var p=new Array(3);var v=new Array(3);var s=new Array(9);var d=new Array(9);var sAdj=new Array(9);var t=new Array(9);function basisToPoints(x1,y1,x2,y2,x3,y3,x4,y4,out){setArray(m,x1,x2,x3,y1,y2,y3,1,1,1);adjugate(m,mAdj);setArray(p,x4,y4,1);multmv(mAdj,p,v);setArray(m2,v[0],0,0,0,v[1],0,0,0,v[2]);return multmm(m,m2,out)}function general2DProjection(x1s,y1s,x1d,y1d,x2s,y2s,x2d,y2d,x3s,y3s,x3d,y3d,x4s,y4s,x4d,y4d,out){basisToPoints(x1s,y1s,x2s,y2s,x3s,y3s,x4s,y4s,s);basisToPoints(x1d,y1d,x2d,y2d,x3d,y3d,x4d,y4d,d);adjugate(s,sAdj);return multmm(d,sAdj,out)}function createQuadMatrix(w,h,x1,y1,x2,y2,x3,y3,x4,y4,out){general2DProjection(0,0,x1,y1,w,0,x2,y2,0,h,x3,y3,w,h,x4,y4,t);setArray(out,t[0]/t[8],t[3]/t[8],0,t[6]/t[8],t[1]/t[8],t[4]/t[8],0,t[7]/t[8],0,0,1,0,t[2]/t[8],t[5]/t[8],0,1)}});(function(){var BackSide=THREE.BackSide,BoxGeometry=THREE.BoxGeometry,Mesh=THREE.Mesh,MeshBasicMaterial=THREE.MeshBasicMaterial,MeshStandardMaterial=THREE.MeshStandardMaterial,PointLight=THREE.PointLight,Scene=THREE.Scene;class RoomEnvironment extends Scene{constructor(renderer=null){super();const geometry=new BoxGeometry;geometry.deleteAttribute("uv");const roomMaterial=new MeshStandardMaterial({side:BackSide});const boxMaterial=new MeshStandardMaterial;let intensity=5;if(renderer!==null&&renderer._useLegacyLights===false)intensity=900;const mainLight=new PointLight(16777215,intensity,28,2);mainLight.position.set(0.418,16.199,0.3);this.add(mainLight);const room=new Mesh(geometry,roomMaterial);room.position.set(-0.757,13.219,0.717);room.scale.set(31.713,28.305,28.591);this.add(room);const box1=new Mesh(geometry,boxMaterial);box1.position.set(-10.906,2.009,1.846);box1.rotation.set(0,-0.195,0);box1.scale.set(2.328,7.905,4.651);this.add(box1);const box2=new Mesh(geometry,boxMaterial);box2.position.set(-5.607,-0.754,-0.758);box2.rotation.set(0,0.994,0);box2.scale.set(1.97,1.534,3.955);this.add(box2);const box3=new Mesh(geometry,boxMaterial);box3.position.set(6.167,0.857,7.803);box3.rotation.set(0,0.561,0);box3.scale.set(3.927,6.285,3.687);this.add(box3);const box4=new Mesh(geometry,boxMaterial);box4.position.set(-2.017,0.018,6.124);box4.rotation.set(0,0.333,0);box4.scale.set(2.002,4.566,2.064);this.add(box4);const box5=new Mesh(geometry,boxMaterial);box5.position.set(2.291,-0.756,-2.621);box5.rotation.set(0,-0.286,0);box5.scale.set(1.546,1.552,1.496);this.add(box5);const box6=new Mesh(geometry,boxMaterial);box6.position.set(-2.193,-0.369,-5.547);box6.rotation.set(0,0.516,0);box6.scale.set(3.875,3.487,2.986);this.add(box6);const light1=new Mesh(geometry,createAreaLightMaterial(50));light1.position.set(-16.116,14.37,8.208);light1.scale.set(0.1,2.428,2.739);this.add(light1);const light2=new Mesh(geometry,createAreaLightMaterial(50));light2.position.set(-16.109,18.021,-8.207);light2.scale.set(0.1,2.425,2.751);this.add(light2);const light3=new Mesh(geometry,createAreaLightMaterial(17));light3.position.set(14.904,12.198,-1.832);light3.scale.set(0.15,4.265,6.331);this.add(light3);const light4=new Mesh(geometry,createAreaLightMaterial(43));light4.position.set(-0.462,8.89,14.52);light4.scale.set(4.38,5.441,0.088);this.add(light4);const light5=new Mesh(geometry,createAreaLightMaterial(20));light5.position.set(3.235,11.486,-12.541);light5.scale.set(2.5,2,0.1);this.add(light5);const light6=new Mesh(geometry,createAreaLightMaterial(100));light6.position.set(0,20,0);light6.scale.set(1,0.1,1);this.add(light6)}dispose(){const resources=new Set;this.traverse(object=>{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,Orthogra
4733phicCamera=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;i<this._lodPlanes.length;i++){this._lodPlanes[i].dispose()}}_cleanup(outputTarget){this._renderer.setRenderTarget(_oldTarget);outputTarget.scissorTest=false;_setViewport(outputTarget,0,0,outputTarget.width,outputTarget.height)}_fromTexture(texture,renderTarget){if(texture.mapping===CubeReflectionMapping||texture.mapping===CubeRefractionMapping){this._setSize(texture.image.length===0?16:texture.image[0].width||texture.image[0].image.width)}else{this._setSize(texture.image.width/4)}_oldTarget=this._renderer.getRenderTarget();const cubeUVRenderTarget=renderTarget||this._allocateTargets();this._textureToCubeUV(texture,cubeUVRenderTarget);this._applyPMREM(cubeUVRenderTarget);this._cleanup(cubeUVRenderTarget);return cubeUVRenderTarget}_allocateTargets(){const width=3*Math.max(this._cubeSize,16*7);const height=4*this._cubeSize;const params={magFilter:LinearFilter,minFilter:LinearFilter,generateMipmaps:false,type:HalfFloatType,format:RGBAFormat,encoding:LinearEncoding,depthBuffer:false};const cubeUVRenderTarget=_createRenderTarget(width,height,params);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==width){if(this._pingPongRenderTarget!==null){this._dispose()}this._pingPongRenderTarget=_createRenderTarget(width,height,params);const{_lodMax}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=_createPlanes(_lodMax));this._blurMaterial=_getBlurShader(_lodMax,width,height)}return cubeUVRenderTarget}_compileMaterial(material){const tmpMesh=new Mesh(this._lodPlanes[0],material);this._renderer.compile(tmpMesh,_flatCamera)}_sceneToCubeUV(scene,near,far,cubeUVRenderTarget){const fov=90;const aspect=1;const cubeCamera=new PerspectiveCamera(fov,aspect,near,far);const upSign=[1,-1,1,1,1,1];const forwardSign=[1,1,1,-1,-1,-1];const renderer=this._renderer;const originalAutoClear=renderer.autoClear;const toneMapping=renderer.toneMapping;renderer.getClearColor(_clearColor);renderer.toneMapping=NoToneMapping;renderer.autoClear=false;const backgroundMaterial=new MeshBasicMaterial({name:"PMREM.Backgroun
4733d",side:BackSide,depthWrite:false,depthTest:false});const backgroundBox=new Mesh(new BoxGeometry(),backgroundMaterial);let useSolidColor=false;const background=scene.background;if(background){if(background.isColor){backgroundMaterial.color.copy(background);scene.background=null;useSolidColor=true}}else{backgroundMaterial.color.copy(_clearColor);useSolidColor=true}for(let i=0;i<6;i++){const col=i%3;if(col===0){cubeCamera.up.set(0,upSign[i],0);cubeCamera.lookAt(forwardSign[i],0,0)}else if(col===1){cubeCamera.up.set(0,0,upSign[i]);cubeCamera.lookAt(0,forwardSign[i],0)}else{cubeCamera.up.set(0,upSign[i],0);cubeCamera.lookAt(0,0,forwardSign[i])}const size=this._cubeSize;_setViewport(cubeUVRenderTarget,col*size,i>2?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;i<this._lodPlanes.length;i++){const sigma=Math.sqrt(this._sigmas[i]*this._sigmas[i]-this._sigmas[i-1]*this._sigmas[i-1]);const poleAxis=_axisDirections[(i-1)%_axisDirections.length];this._blur(cubeUVRenderTarget,i-1,i,sigma,poleAxis)}renderer.autoClear=autoClear}_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"){console.error("blur direction must be either latitudinal or longitudinal!")}const STANDARD_DEVIATIONS=3;const blurMesh=new Mesh(this._lodPlanes[lodOut],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){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<MAX_SAMPLES;++i){const x=i/sigmaPixels;const weight=Math.exp(-x*x/2);weights.push(weight);if(i===0){sum+=weight}else if(i<samples){sum+=2*weight}}for(let i=0;i<weights.length;i++){weights[i]=weights[i]/sum}blurUniforms["envMap"].value=targetIn.texture;blurUniforms["samples"].value=samples;blurUniforms["weights"].value=weights;blurUniforms["latitudinal"].value=direction==="latitudinal";if(poleAxis){blurUniforms["poleAxis"].value=poleAxis}const{_lodMax}=this;blurUniforms["dTheta"].value=radiansPerPixel;blurUniforms["mipInt"].value=_lodMax-lodIn;const outputSize=this._sizeLods[lodOut];const x=3*outputSize*(lodOut>_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)}}
4733function _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;i<totalLods;i++){const sizeLod=Math.pow(2,lod);sizeLods.push(sizeLod);let sigma=1/sizeLod;if(i>lodMax-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;face<cubeFaces;face++){const x=face%3*2/3-1;const y=face>2?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:` 4734 4735 precision mediump float; 4736 precision mediump int; 4737 4738 varying vec3 vOutputDirection; 4739 4740 uniform sampler2D envMap; 4741 uniform int samples; 4742 uniform float weights[ n ]; 4743 uniform bool latitudinal; 4744 uniform float dTheta; 4745 uniform float mipInt; 4746 uniform vec3 poleAxis; 4747 4748 #define ENVMAP_TYPE_CUBE_UV 4749 #include <cube_uv_reflection_fragment> 4750 4751 vec3 getSample( float theta, vec3 axis ) { 4752 4753 float cosTheta = cos( theta ); 4754 // Rodrigues' axis-angle rotation 4755 vec3 sampleDirection = vOutputDirection * cosTheta 4756 + cross( axis, vOutputDirection ) * sin( theta ) 4757 + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); 4758 4759 return bilinearCubeUV( envMap, sampleDirection, mipInt ); 4760 4761 } 4762 4763 void main() { 4764 4765 vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); 4766 4767 if ( all( equal( axis, vec3( 0.0 ) ) ) ) { 4768 4769 axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); 4770 4771 } 4772 4773 axis = normalize( axis ); 4774 4775 gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); 4776 gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); 4777 4778 for ( int i = 1; i < n; i++ ) { 4779 4780 if ( i >= samples ) { 4781 4782 break; 4783 4784 } 4785 4786 float theta = dTheta * float( i ); 4787 gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); 4788 gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); 4789 4790 } 4791 4792 } 4793 `,blending:NoBlending,depthTest:false,depthWrite:false});return shaderMaterial}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{"envMap":{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:` 4794 4795 precision mediump float; 4796 precision mediump int; 4797 4798 varying vec3 vOutputDirection; 4799 4800 uniform sampler2D envMap; 4801 4802 #include <common> 4803 4804 void main() { 4805 4806 vec3 outputDirection = normalize( vOutputDirection ); 4807 vec2 uv = equirectUv( outputDirection ); 4808 4809 gl_FragColor = vec4( texture2D ( envMap, uv ).rgb,
48091.0 ); 4810 4811 } 4812 `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{"envMap":{value:null},"flipEnvMap":{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:` 4813 4814 precision mediump float; 4815 precision mediump int; 4816 4817 uniform float flipEnvMap; 4818 4819 varying vec3 vOutputDirection; 4820 4821 uniform samplerCube envMap; 4822 4823 void main() { 4824 4825 gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); 4826 4827 } 4828 `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCommonVertexShader(){return` 4829 4830 precision mediump float; 4831 precision mediump int; 4832 4833 attribute float faceIndex; 4834 4835 varying vec3 vOutputDirection; 4836 4837 // RH coordinate system; PMREM face-indexing convention 4838 vec3 getDirection( vec2 uv, float face ) { 4839 4840 uv = 2.0 * uv - 1.0; 4841 4842 vec3 direction = vec3( uv, 1.0 ); 4843 4844 if ( face == 0.0 ) { 4845 4846 direction = direction.zyx; // ( 1, v, u ) pos x 4847 4848 } else if ( face == 1.0 ) { 4849 4850 direction = direction.xzy; 4851 direction.xz *= -1.0; // ( -u, 1, -v ) pos y 4852 4853 } else if ( face == 2.0 ) { 4854 4855 direction.x *= -1.0; // ( -u, v, 1 ) pos z 4856 4857 } else if ( face == 3.0 ) { 4858 4859 direction = direction.zyx; 4860 direction.xz *= -1.0; // ( -1, v, -u ) neg x 4861 4862 } else if ( face == 4.0 ) { 4863 4864 direction = direction.xzy; 4865 direction.xy *= -1.0; // ( -u, -1, v ) neg y 4866 4867 } else if ( face == 5.0 ) { 4868 4869 direction.z *= -1.0; // ( u, v, -1 ) neg z 4870 4871 } 4872 4873 return direction; 4874 4875 } 4876 4877 void main() { 4878 4879 vOutputDirection = getDirection( uv, faceIndex ); 4880 gl_Position = vec4( position, 1.0 ); 4881 4882 } 4883 `}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});
4883module.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}});
4883Object.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<l;i++){const item=removedItems[i];callbacks.get(item)(item);itemSet.delete(item);callbacks.delete(item)}}}scheduleUnload(markAllUnused=true){if(!this.scheduled){this.scheduled=true;$e0d7a242557dc8e6$var$enqueueMicrotask(()=>{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=()=>
4883{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;i<l;i++)$cd531a5f1c18e9cc$var$recursivelyMarkUsed(children[i],frameCount,lruCache,renderer)}}function $cd531a5f1c18e9cc$var$recursivelyLoadTiles(tile,depthFromRenderedParent,renderer){renderer.ensureChildrenArePreprocessed(tile);const doTraverse=tile.__contentEmpty&&(!tile.__externalTileSet||$cd531a5f1c18e9cc$var$isDownloadFinished(tile.__loadingState));if(doTraverse){const children=tile.children;for(let i=0,l=children.length;i<l;i++){const child=children[i];child.__depthFromRenderedParent=depthFromRenderedParent;$cd531a5f1c18e9cc$var$recursivelyLoadTiles(child,depthFromRenderedParent,renderer)}}else renderer.requestTileContents(tile)}
4883function $cd531a5f1c18e9cc$var$traverseSet(tile,beforeCb=null,afterCb=null,parent=null,depth=0){if(beforeCb&&beforeCb(tile,parent,depth)){if(afterCb)afterCb(tile,parent,depth);return}const children=tile.children;for(let i=0,l=children.length;i<l;i++)$cd531a5f1c18e9cc$var$traverseSet(children[i],beforeCb,afterCb,tile,depth+1);if(afterCb)afterCb(tile,parent,depth)}function $cd531a5f1c18e9cc$var$determineFrustumSet(tile,renderer){renderer.ensureChildrenArePreprocessed(tile);const stats=renderer.stats;const frameCount=renderer.frameCount;const errorTarget=renderer.errorTarget;const maxDepth=renderer.maxDepth;const loadSiblings=renderer.loadSiblings;const lruCache=renderer.lruCache;const stopAtEmptyTiles=renderer.stopAtEmptyTiles;$cd531a5f1c18e9cc$var$resetFrameState(tile,frameCount);const inFrustum=renderer.tileInView(tile);if(inFrustum===false)return false;tile.__used=true;lruCache.markUsed(tile);tile.__inFrustum=true;stats.inFrustum++;if((stopAtEmptyTiles||!tile.__contentEmpty)&&!tile.__externalTileSet){renderer.calculateError(tile);const error=tile.__error;if(error<=errorTarget)return true;if(renderer.maxDepth>0&&tile.__depth+1>=maxDepth)return true}let anyChildrenUsed=false;const children=tile.children;for(let i=0,l=children.length;i<l;i++){const c=children[i];const r=$cd531a5f1c18e9cc$var$determineFrustumSet(c,renderer);anyChildrenUsed=anyChildrenUsed||r}if(anyChildrenUsed&&loadSiblings)for(let i=0,l=children.length;i<l;i++){const c=children[i];$cd531a5f1c18e9cc$var$recursivelyMarkUsed(c,frameCount,lruCache,renderer)}return true}function $cd531a5f1c18e9cc$var$markUsedSetLeaves(tile,renderer){const stats=renderer.stats;const frameCount=renderer.frameCount;if(!$cd531a5f1c18e9cc$var$isUsedThisFrame(tile,frameCount))return;stats.used++;const children=tile.children;let anyChildrenUsed=false;for(let i=0,l=children.length;i<l;i++){const c=children[i];anyChildrenUsed=anyChildrenUsed||$cd531a5f1c18e9cc$var$isUsedThisFrame(c,frameCount)}if(!anyChildrenUsed)tile.__isLeaf=true;else{let childrenWereVisible=false;let allChildrenLoaded=true;for(let i=0,l=children.length;i<l;i++){const c=children[i];$cd531a5f1c18e9cc$var$markUsedSetLeaves(c,renderer);childrenWereVisible=childrenWereVisible||c.__wasSetVisible||c.__childrenWereVisible;if($cd531a5f1c18e9cc$var$isUsedThisFrame(c,frameCount)){const childLoaded=c.__allChildrenLoaded||!c.__contentEmpty&&$cd531a5f1c18e9cc$var$isDownloadFinished(c.__loadingState)||c.__externalTileSet&&c.__loadingState===$002d29a772485791$exports.FAILED;allChildrenLoaded=allChildrenLoaded&&childLoaded}}tile.__childrenWereVisible=childrenWereVisible;tile.__allChildrenLoaded=allChildrenLoaded}}function $cd531a5f1c18e9cc$var$skipTraversal(tile,renderer){const stats=renderer.stats;const frameCount=renderer.frameCount;if(!$cd531a5f1c18e9cc$var$isUsedThisFrame(tile,frameCount))return;const parent=tile.parent;const parentDepthToParent=parent?parent.__depthFromRenderedParent:-1;tile.__depthFromRenderedParent=parentDepthToParent;const lruCache=renderer.lruCache;if(tile.__isLeaf){tile.__depthFromRenderedParent++;if(tile.__loadingState===$002d29a772485791$exports.LOADED){if(tile.__inFrustum){tile.__visible=true;stats.visible++}tile.__active=true;stats.active++}else if(!lruCache.isFull()&&(!tile.__contentEmpty||tile.__externalTileSet))renderer.requestTileContents(tile);return}const errorRequirement=(renderer.errorTarget+1)*renderer.errorThreshold;const meetsSSE=tile.__error<=errorRequirement;const includeTile=meetsSSE||tile.refine==="ADD";const hasModel=!tile.__contentEmpty;const hasContent=hasModel||tile.__externalTileSet;const loadedContent=$cd531a5f1c18e9cc$var$isDownloadFinished(tile.__loadingState)&&hasContent;const childrenWereVisible=tile.__childrenWereVisible;const children=tile.children;const allChildrenHaveContent=tile.__allChildrenLoaded;if(includeTile&&hasModel)tile.__depthFromRenderedParent++;if(includeTile&&!loadedContent&&!lruCache.isFull()&&hasContent)renderer.requestTileContents(tile);if(meetsSSE&&!allChildrenHaveContent&&!childrenWereVisible&&loadedContent||tile.refine==="ADD"&&loadedContent){if(tile.__inFrustum){tile.__visible=true;stats.visible++}tile.__active=true;stats.active++}if(tile.refine!=="ADD"&&meetsSSE&&!allChildrenHaveContent&&loadedContent)for(let i=0,l=children.length;i<l;i++){const c=children[i];if($cd531a5f1c18e9cc$var$isUsedThisFrame(c,frameCount)&&!lruCache.isFull()){c.__depthFromRenderedParent=tile.__depthFromRenderedParent+1;$cd531a5f1c18e9cc$var$recursivelyLoadTiles(c,c.__depthFromRenderedParent,renderer)}}else for(let i=0,l=children.length;i<l;i++){const c=children[i];if($cd531a5f1c18e9cc$var$isUsedThisFrame(c,frameCount))$cd531a5f1c18e9cc$var$skipTraversal(c,renderer)}}function $cd531a5f1c18e9cc$var$toggleTiles(tile,renderer){const frameCount=renderer.frameCount;const isUsed=$cd531a5f1c18e9cc$var$isUsedThisFrame(tile,frameCount);if(isUsed||tile.__usedLastFrame){let setActive=false;let setVisible=false;if(isUsed){setActive=tile.__active;if(renderer.displayActiveTiles)setVisible=tile.__active||tile.__visible;else setVisible=tile.__visible}if(!tile.__contentEmpty&&tile.__loadingState===$002d29a772485791$exports.LOADED){if(tile.__wasSetActive!==setActive)renderer.setTileActive(tile,setActive);if(tile.__wasSetVisible!==setVisible)renderer.setTileVisible(tile,setVisible)}tile.__wasSetActive=setActive;tile.__wasSetVisible=setVisible;tile.__usedLastFrame=isUsed;const children=tile.children;for(let i=0,l=children.length;i<l;i++){const c=children[i];$cd531a5f1c18e9cc$var$toggleTiles(c,renderer)}}}const $5a6f7a997885dc30$var$priorityCallback=(a,b)=>{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;
4883const 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<l;i++){const child=children[i];if("__depth"in child)break;this.preprocessNode(child,tile.__basePath,tile)}}resetFailedTiles(){const stats=this.stats;if(stats.failed===0)return;this.traverse(tile=>{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;
4883const 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;
4883const toRemove=[];this.traverse(t=>{toRemove.push(t);return false});for(let i=0,l=toRemove.length;i<l;i++)lruCache.remove(toRemove[i]);this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0};this.frameCount=0}}$5a6f7a997885dc30$exports.TilesRendererBase=$5a6f7a997885dc30$var$TilesRendererBase;var $0aa3d1def57e98b1$exports={};"use strict";Object.defineProperty($0aa3d1def57e98b1$exports,"__esModule",{value:true});$0aa3d1def57e98b1$exports.B3DMLoader=void 0;var $f5d9b5dde53306bf$exports={};"use strict";Object.defineProperty($f5d9b5dde53306bf$exports,"__esModule",{value:true});$f5d9b5dde53306bf$exports.B3DMLoaderBase=void 0;var $5bfd2e53a5ab8bef$exports={};"use strict";Object.defineProperty($5bfd2e53a5ab8bef$exports,"__esModule",{value:true});$5bfd2e53a5ab8bef$exports.FeatureTable=$5bfd2e53a5ab8bef$exports.BatchTable=void 0;var $5d480c6739d4b949$exports={};"use strict";Object.defineProperty($5d480c6739d4b949$exports,"__esModule",{value:true});$5d480c6739d4b949$exports.arrayToString=$5d480c6739d4b949$var$arrayToString;function $5d480c6739d4b949$var$arrayToString(array){const utf8decoder=new TextDecoder;return utf8decoder.decode(array)}class $5bfd2e53a5ab8bef$var$FeatureTable{constructor(buffer,start,headerLength,binLength){this.buffer=buffer;this.binOffset=start+headerLength;this.binLength=binLength;let header=null;if(headerLength!==0){const headerData=new Uint8Array(buffer,start,headerLength);header=JSON.parse((0,$5d480c6739d4b949$exports.arrayToString)(headerData))}else header={};this.header=header}getKeys(){return Object.keys(this.header)}getData(key,count,defaultComponentType=null,defaultType=null){const header=this.header;if(!(key in header))return null;const feature=header[key];if(!(feature instanceof Object))return feature;else if(Array.isArray(feature))return feature;else{const{buffer:buffer,binOffset:binOffset,binLength:binLength}=this;const byteOffset=feature.byteOffset||0;const featureType=feature.type||defaultType;const featureComponentType=feature.componentType||defaultComponentType;if("type"in feature&&defaultType&&feature.type!==defaultType)throw new Error("FeatureTable: Specified type does not match expected type.");let stride;switch(featureType){case"SCALAR":stride=1;break;case"VEC2":stride=2;break;case"VEC3":stride=3;break;case"VEC4":stride=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${key}".`);}let data;const arrayStart=binOffset+byteOffset;const arrayLength=count*stride;switch(featureComponentType){case"BYTE":data=new Int8Array(buffer,arrayStart,arrayLength);break;case"UNSIGNED_BYTE":data=new Uint8Array(buffer,arrayStart,arrayLength);break;case"SHORT":data=new Int16Array(buffer,arrayStart,arrayLength);break;case"UNSIGNED_SHORT":data=new Uint16Array(buffer,arrayStart,arrayLength);break;case"INT":data=new Int32Array(buffer,arrayStart,arrayLength);break;case"UNSIGNED_INT":data=new Uint32Array(buffer,arrayStart,arrayLength);break;case"FLOAT":data=new Float32Array(buffer,arrayStart,arrayLength);break;case"DOUBLE":data=new Float64Array(buffer,arrayStart,arrayLength);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${key}".`);}const dataEnd=arrayStart+arrayLength*data.BYTES_PER_ELEMENT;if(dataEnd>binOffset+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)})}
4883resolveExternalURL(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";
4883Object.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<POINTS_LENGTH;i++)for(let j=0;j<3;j++){const index=3*i+j;decodedPositions[index]=POSITION_QUANTIZED[index]/65535*QUANTIZED_VOLUME_SCALE[j]}translationOffset.x=QUANTIZED_VOLUME_OFFSET[0];translationOffset.y=QUANTIZED_VOLUME_OFFSET[1];translationOffset.z=QUANTIZED_VOLUME_OFFSET[2];geometry.setAttribute("position",new $5OpyM$BufferAttribute(decodedPositions,3,false))}else geometry.setAttribute("position",new $5OpyM$BufferAttribute(POSITION,3,false));if(RGB!==null){geometry.setAttribute("color",new $5OpyM$BufferAttribute(RGB,3,true));material.vertexColors=true}}["CONSTANT_RGBA","BATCH_LENGTH","RGBA","RGB565","NORMAL","NORMAL_OCT16P"].forEach(feature=>{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()}
4883else{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<INSTANCES_LENGTH;i++){averageVector.x+=POSITION[i*3+0]/INSTANCES_LENGTH;averageVector.y+=POSITION[i*3+1]/INSTANCES_LENGTH;averageVector.z+=POSITION[i*3+2]/INSTANCES_LENGTH}instanceMap.forEach((instancedMesh,mesh)=>{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<INSTANCES_LENGTH;i++){$0bc85483bdeca322$var$tempPos.set(POSITION[i*3+0]-averageVector.x,POSITION[i*3+1]-averageVector.y,POSITION[i*3+2]-averageVector.z);if(NORMAL_UP){$0bc85483bdeca322$var$tempUp.set(NORMAL_UP[i*3+0],NORMAL_UP[i*3+1],NORMAL_UP[i*3+2]);$0bc85483bdeca322$var$tempRight.set(NORMAL_RIGHT[i*3+0],NORMAL_RIGHT[i*3+1],NORMAL_RIGHT[i*3+2]);$0bc85483bdeca322$var$tempFwd.crossVectors($0bc85483bdeca322$var$tempRight,$0bc85483bdeca322$var$tempUp).normalize();$0bc85483bdeca322$var$tempMat.makeBasis($0bc85483bdeca322$var$tempRight,$0bc85483bdeca322$var$tempUp,$0bc85483bdeca322$var$tempFwd);$0bc85483bdeca322$var$tempQuat.setFromRotationMatrix($0bc85483bdeca322$var$tempMat)}
4883else $0bc85483bdeca322$var$tempQuat.set(0,0,0,1);if(SCALE)$0bc85483bdeca322$var$tempSca.setScalar(SCALE[i]);else if(SCALE_NON_UNIFORM)$0bc85483bdeca322$var$tempSca.set(SCALE_NON_UNIFORM[i*3+0],SCALE_NON_UNIFORM[i*3+1],SCALE_NON_UNIFORM[i*3+2]);else $0bc85483bdeca322$var$tempSca.set(1,1,1);$0bc85483bdeca322$var$tempMat.compose($0bc85483bdeca322$var$tempPos,$0bc85483bdeca322$var$tempQuat,$0bc85483bdeca322$var$tempSca).multiply(adjustmentTransform);for(let j=0,l=instances.length;j<l;j++){const instance=instances[j];instance.setMatrixAt(i,$0bc85483bdeca322$var$tempMat)}}model.batchTable=batchTable;model.featureTable=featureTable;model.scene.batchTable=batchTable;model.scene.featureTable=featureTable;resolve(model)},reject)})})}}$0bc85483bdeca322$exports.I3DMLoader=$0bc85483bdeca322$var$I3DMLoader;var $54879e9a7dc345e0$exports={};"use strict";Object.defineProperty($54879e9a7dc345e0$exports,"__esModule",{value:true});$54879e9a7dc345e0$exports.CMPTLoader=void 0;var $cb66a16334732244$exports={};"use strict";Object.defineProperty($cb66a16334732244$exports,"__esModule",{value:true});$cb66a16334732244$exports.CMPTLoaderBase=void 0;class $cb66a16334732244$var$CMPTLoaderBase extends $e6b785bba9ea128d$exports.LoaderBase{parse(buffer){const dataView=new DataView(buffer);const magic=(0,$9e3e194659cc5776$exports.readMagicBytes)(dataView);console.assert(magic==="cmpt","CMPTLoader: The magic bytes equal \"cmpt\".");const version=dataView.getUint32(4,true);console.assert(version===1,"CMPTLoader: The version listed in the header is \"1\".");const byteLength=dataView.getUint32(8,true);console.assert(byteLength===buffer.byteLength,"CMPTLoader: The contents buffer length listed in the header matches the file.");const tilesLength=dataView.getUint32(12,true);const tiles=[];let offset=16;for(let i=0;i<tilesLength;i++){const tileView=new DataView(buffer,offset,12);const tileMagic=(0,$9e3e194659cc5776$exports.readMagicBytes)(tileView);const tileVersion=tileView.getUint32(4,true);const byteLength=tileView.getUint32(8,true);const tileBuffer=new Uint8Array(buffer,offset,byteLength);tiles.push({type:tileMagic,buffer:tileBuffer,version:tileVersion});offset+=byteLength}return{version:version,tiles:tiles}}}$cb66a16334732244$exports.CMPTLoaderBase=$cb66a16334732244$var$CMPTLoaderBase;class $54879e9a7dc345e0$var$CMPTLoader extends $cb66a16334732244$exports.CMPTLoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager;this.adjustmentTransform=new $5OpyM$Matrix4}parse(buffer){const result=super.parse(buffer);const manager=this.manager;const adjustmentTransform=this.adjustmentTransform;const promises=[];for(const i in result.tiles){const{type:type,buffer:buffer}=result.tiles[i];switch(type){case"b3dm":{const slicedBuffer=buffer.slice();const loader=new $0aa3d1def57e98b1$exports.B3DMLoader(manager);loader.workingPath=this.workingPath;loader.fetchOptions=this.fetchOptions;loader.adjustmentTransform.copy(adjustmentTransform);const promise=loader.parse(slicedBuffer.buffer);promises.push(promise);break}case"pnts":{const slicedBuffer=buffer.slice();const loader=new $1ddd6ca16eb224df$exports.PNTSLoader(manager);loader.workingPath=this.workingPath;loader.fetchOptions=this.fetchOptions;const promise=loader.parse(slicedBuffer.buffer);promises.push(promise);break}case"i3dm":{const slicedBuffer=buffer.slice();const loader=new $0bc85483bdeca322$exports.I3DMLoader(manager);loader.workingPath=this.workingPath;loader.fetchOptions=this.fetchOptions;loader.adjustmentTransform.copy(adjustmentTransform);const promise=loader.parse(slicedBuffer.buffer);promises.push(promise);break}}}return Promise.all(promises).then(results=>{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;
4883if(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<l;i++)children[i].updateMatrixWorld()}}}}$3fcce8a4f74b2abc$exports.TilesGroup=$3fcce8a4f74b2abc$var$TilesGroup;var $c1ac95a1e8efcc86$exports={};"use strict";Object.defineProperty($c1ac95a1e8efcc86$exports,"__esModule",{value:true});$c1ac95a1e8efcc86$exports.raycastTraverse=$c1ac95a1e8efcc86$var$raycastTraverse;$c1ac95a1e8efcc86$exports.raycastTraverseFirstHit=$c1ac95a1e8efcc86$var$raycastTraverseFirstHit;const $c1ac95a1e8efcc86$var$_mat=new $5OpyM$Matrix4;const $c1ac95a1e8efcc86$var$_localRay=new $5OpyM$Ray;const $c1ac95a1e8efcc86$var$_vec=new $5OpyM$Vector3;const $c1ac95a1e8efcc86$var$_hitArray=[];function $c1ac95a1e8efcc86$var$distanceSort(a,b){return a.distance-b.distance}function $c1ac95a1e8efcc86$var$intersectTileScene(scene,raycaster,intersects){scene.traverse(c=>{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;i<l;i++){const child=children[i];if(!child.__used)continue;const boundingVolume=child.cached.boundingVolume;if(boundingVolume.intersectRay(localRay,$c1ac95a1e8efcc86$var$_vec)!==null){$c1ac95a1e8efcc86$var$_vec.applyMatrix4(group.matrixWorld);array.push({distance:$c1ac95a1e8efcc86$var$_vec.distanceToSquared(raycaster.ray.origin),tile:child})}}array.sort($c1ac95a1e8efcc86$var$distanceSort);let bestHit=null;let bestHitDistSq=Infinity;if(activeTiles.has(tile)){const hit=$c1ac95a1e8efcc86$var$intersectTileSceneFirstHist(tile.cached.scene,raycaster);if(hit){bestHit=hit;bestHitDistSq=hit.distance*hit.distance}}for(let i=0,l=array.length;i<l;i++){const data=array[i];const boundingVolumeDistSq=data.distance;const tile=data.tile;if(boundingVolumeDistSq>bestHitDistSq)break;const hit=$c1ac95a1e8efcc86$var$raycastTraverseFirstHit(renderer,tile,raycaster,localRay);if(hit){const hitDistSq=hit.distance*hit.distance;if(hitDistSq<bestHitDistSq){bestHit=hit;bestHitDistSq=hitDistSq}}}return bestHit}function $c1ac95a1e8efcc86$var$raycastTraverse(renderer,tile,raycaster,intersects,localRay=null){const{group:group,activeTiles:activeTiles}=renderer;const{scene:scene,boundingVolume:boundingVolume}=tile.cached;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)}if(!tile.__used||!boundingVolume.intersectsRay(localRay))return;if(activeTiles.has(tile))$c1ac95a1e8efcc86$var$intersectTileScene(scene,raycaster,intersects);const children=tile.children;for(let i=0,l=children.length;i<l;i++)$c1ac95a1e8efcc86$var$raycastTraverse(renderer,children[i],raycaster,intersects,localRay)}var $163be4c04da1c269$exports={};"use strict";Object.defineProperty($163be4c04da1c269$exports,"__esModule",{value:true});$163be4c04da1c269$exports.TileBoundingVolume=void 0;var $9e13f7da58b2928b$exports={};"use strict";Object.defineProperty($9e13f7da58b2928b$exports,"__esModule",{value:true});$9e13f7da58b2928b$exports.OBB=void 0;class $9e13f7da58b2928b$var$OBB{constructor(box=new $5OpyM$Box3,transform=new $5OpyM$Matrix4){this.box=box.clone();this.transform=transform.clone();this.inverseTransform=new $5OpyM$Matrix4;this.points=new Array(8).fill().map(()=>new $5OpyM$Vector3)}
4883update(){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=maxDistance<dist?dist:maxDistance}if(maxDistance<0)return false}return true}}$9e13f7da58b2928b$exports.OBB=$9e13f7da58b2928b$var$OBB;var $aa7b3b269f245cbe$exports={};"use strict";Object.defineProperty($aa7b3b269f245cbe$exports,"__esModule",{value:true});$aa7b3b269f245cbe$exports.EllipsoidRegion=void 0;var $9160f8f2e0578e98$exports={};"use strict";Object.defineProperty($9160f8f2e0578e98$exports,"__esModule",{value:true});$9160f8f2e0578e98$exports.Ellipsoid=void 0;var $1hGdn=parcelRequire("1hGdn");const $9160f8f2e0578e98$var$_spherical=new $5OpyM$Spherical;const $9160f8f2e0578e98$var$_norm=new $5OpyM$Vector3;const $9160f8f2e0578e98$var$_vec=new $5OpyM$Vector3;const $9160f8f2e0578e98$var$_vec2=new $5OpyM$Vector3;const $9160f8f2e0578e98$var$_vec3=new $5OpyM$Vector3;const $9160f8f2e0578e98$var$_vecX=new $5OpyM$Vector3;const $9160f8f2e0578e98$var$_vecY=new $5OpyM$Vector3;const $9160f8f2e0578e98$var$_vecZ=new $5OpyM$Vector3;const $9160f8f2e0578e98$var$_pos=new $5OpyM$Vector3;const $9160f8f2e0578e98$var$EPSILON12=1e-12;const $9160f8f2e0578e98$var$CENTER_EPS=0.1;class $9160f8f2e0578e98$var$Ellipsoid{constructor(x=1,y=1,z=1){this.radius=new $5OpyM$Vector3(x,y,z)}constructLatLonFrame(lat,lon,target){this.getCartographicToPosition(lat,lon,0,$9160f8f2e0578e98$var$_pos);this.getCartographicToNormal(lat,lon,$9160f8f2e0578e98$var$_vecZ);this.getNorthernTangent(lat,lon,$9160f8f2e0578e98$var$_vecY);$9160f8f2e0578e98$var$_vecX.crossVectors($9160f8f2e0578e98$var$_vecY,$9160f8f2e0578e98$var$_vecZ);return target.makeBasis($9160f8f2e0578e98$var$_vecX,$9160f8f2e0578e98$var$_vecY,$9160f8f2e0578e98$var$_vecZ).setPosition($9160f8f2e0578e98$var$_pos)}getNorthernTangent(lat,lon,target,westTarget=$9160f8f2e0578e98$var$_vec3){let multiplier=1;let latPrime=lat+1e-7;if(lat>Math.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
4883*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<l;i++){const[lat,lon]=latlon[i];if(lat>=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;i<l;i++)points[i].applyMatrix4($aa7b3b269f245cbe$var$_invMatrix);box.makeEmpty();box.setFromPoints(points)}getBoundingSphere(sphere,center){$aa7b3b269f245cbe$var$resetPool();const points=this._getPoints(true);sphere.makeEmpty();sphere.setFromPoints(points,center)}}$aa7b3b269f245cbe$exports.EllipsoidRegion=$aa7b3b269f245cbe$var$EllipsoidRegion;const $163be4c04da1c269$var$_vecX=new $5OpyM$Vector3;const $163be4c04da1c269$var$_vecY=new $5OpyM$Vector3;const $163be4c04da1c269$var$_vecZ=new $5OpyM$Vector3;const $163be4c04da1c269$var$_vec=new $5OpyM$Vector3;const $163be4c04da1c269$var$_sphereVec=new $5OpyM$Vector3;const $163be4c04da1c269$var$_obbVec=new $5OpyM$Vector3;const $163be4c04da1c269$var$_ray=new $5OpyM$Ray;class $163be4c04da1c269$var$TileBoundingVolume{constructor(){this.sphere=null;this.obb=null;this.region=null;this.regionObb=null}intersectsRay(ray){const sphere=this.sphere;const obb=this.obb||this.regionObb;if(sphere&&!ray.intersectsSphere(sphere))return false;if(obb){$163be4c04da1c269$var$_ray.copy(ray).applyMatrix4(obb.inverseTransform);if(!$163be4c04da1c269$var$_ray.intersectsBox(obb.box))return false}return true}intersectRay(ray,target=null){const sphere=this.sphere;const obb=this.obb||this.regionObb;let sphereDistSq=-Infinity;let obbDistSq=-Infinity;if(sphere){if(ray.intersectSphere(sphere,$163be4c04da1c269$var$_sphereVec))sphereDistSq=sphere.containsPoint(ray.origin)?0:ray.origin.distanceToSquared($163be4c04da1c269$var$_sphereVec)}if(obb){$163be4c04da1c269$var$_ray.copy(ray).applyMatrix4(obb.inverseTransform);if($163be4c04da1c269$var$_ray.intersectBox(obb.box,$163be4c04da1c269$var$_obbVec))obbDistSq=obb.box.containsPoint($163be4c04da1c269$var$_ray.origin)?0:$163be4c04da1c269$var$_ray.origin.distanceToSquared($163be4c04da1c269$var$_obbVec)}
4883const furthestDist=Math.max(sphereDistSq,obbDistSq);if(furthestDist===-Infinity)return null;ray.at(Math.sqrt(furthestDist),target);return target}distanceToPoint(point){const sphere=this.sphere;const obb=this.obb||this.regionObb;let sphereDistance=-Infinity;let obbDistance=-Infinity;if(sphere)sphereDistance=Math.max(sphere.distanceToPoint(point),0);if(obb){$163be4c04da1c269$var$_vec.copy(point).applyMatrix4(obb.inverseTransform);obbDistance=obb.box.distanceToPoint($163be4c04da1c269$var$_vec)}return sphereDistance>obbDistance?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=>
4883{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.length<cameras.length)cameraInfo.push({frustum:new $5OpyM$Frustum,isOrthographic:false,sseDenominator:-1,position:new $5OpyM$Vector3,invScale:-1,pixelSize:0});$06d26e8e9f5361d3$var$tempMat2.copy(group.matrixWorld).invert();$06d26e8e9f5361d3$var$tempVector.setFromMatrixScale($06d26e8e9f5361d3$var$tempMat2);const invScale=$06d26e8e9f5361d3$var$tempVector.x;if(Math.abs(Math.max($06d26e8e9f5361d3$var$tempVector.x-$06d26e8e9f5361d3$var$tempVector.y,$06d26e8e9f5361d3$var$tempVector.x-$06d26e8e9f5361d3$var$tempVector.z))>1e-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;i<l;i++){const camera=cameras[i];const info=cameraInfo[i];const frustum=info.frustum;const position=info.position;const resolution=cameraMap.get(camera);if(resolution.width===0||resolution.height===0)console.warn("TilesRenderer: resolution for camera error calculation is not set.");const projection=camera.projectionMatrix.elements;info.isOrthographic=projection[15]===1;if(info.isOrthographic){const w=2/projection[0];const h=2/projection[5];info.pixelSize=Math.max(h/resolution.height,w/resolution.width)}else info.sseDenominator=2/projection[5]/resolution.height;info.invScale=invScale;$06d26e8e9f5361d3$var$tempMat.copy(group.matrixWorld);$06d26e8e9f5361d3$var$tempMat.premultiply(camera.matrixWorldInverse);$06d26e8e9f5361d3$var$tempMat.premultiply(camera.projectionMatrix);frustum.setFromProjectionMatrix($06d26e8e9f5361d3$var$tempMat);position.set(0,0,0);position.applyMatrix4(camera.matrixWorld);position.applyMatrix4($06d26e8e9f5361d3$var$tempMat2)}
4883super.update()}preprocessNode(tile,tileSetDir,parentTile=null){super.preprocessNode(tile,tileSetDir,parentTile);const transform=new $5OpyM$Matrix4;if(tile.transform){const transformArr=tile.transform;for(let i=0;i<16;i++)transform.elements[i]=transformArr[i]}else transform.identity();if(parentTile)transform.premultiply(parentTile.cached.transform);const transformInverse=new $5OpyM$Matrix4().copy(transform).invert();const boundingVolume=new $163be4c04da1c269$exports.TileBoundingVolume;if("sphere"in tile.boundingVolume)boundingVolume.setSphereData(...tile.boundingVolume.sphere,transform);if("box"in tile.boundingVolume)boundingVolume.setObbData(tile.boundingVolume.box,transform);if("region"in tile.boundingVolume)boundingVolume.setRegionData(...tile.boundingVolume.region);tile.cached={loadIndex:0,transform:transform,transformInverse:transformInverse,active:false,inFrustum:[],boundingVolume:boundingVolume,scene:null,geometry:null,material:null}}parseTile(buffer,tile,extension){tile._loadIndex=tile._loadIndex||0;tile._loadIndex++;const uri=tile.content.uri;const uriSplits=uri.split(/[\\\/]/g);uriSplits.pop();const workingPath=uriSplits.join("/");const fetchOptions=this.fetchOptions;const manager=this.manager;const loadIndex=tile._loadIndex;let promise=null;const upAxis=this.rootTileSet.asset&&this.rootTileSet.asset.gltfUpAxis||"y";const cached=tile.cached;const cachedTransform=cached.transform;const upAdjustment=new $5OpyM$Matrix4;switch(upAxis.toLowerCase()){case"x":upAdjustment.makeRotationAxis($06d26e8e9f5361d3$var$Y_AXIS,-Math.PI/2);break;case"y":upAdjustment.makeRotationAxis($06d26e8e9f5361d3$var$X_AXIS,Math.PI/2);break;case"z":upAdjustment.identity();break;}const fileType=((0,$9e3e194659cc5776$exports.readMagicBytes)(buffer)||extension).toLowerCase();switch(fileType){case"b3dm":{const loader=new $0aa3d1def57e98b1$exports.B3DMLoader(manager);loader.workingPath=workingPath;loader.fetchOptions=fetchOptions;loader.adjustmentTransform.copy(upAdjustment);promise=loader.parse(buffer);break}case"pnts":{const loader=new $1ddd6ca16eb224df$exports.PNTSLoader(manager);loader.workingPath=workingPath;loader.fetchOptions=fetchOptions;promise=loader.parse(buffer);break}case"i3dm":{const loader=new $0bc85483bdeca322$exports.I3DMLoader(manager);loader.workingPath=workingPath;loader.fetchOptions=fetchOptions;loader.adjustmentTransform.copy(upAdjustment);promise=loader.parse(buffer);break}case"cmpt":{const loader=new $54879e9a7dc345e0$exports.CMPTLoader(manager);loader.workingPath=workingPath;loader.fetchOptions=fetchOptions;loader.adjustmentTransform.copy(upAdjustment);promise=loader.parse(buffer).then(res=>res.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;i<l;i++)geometry[i].dispose();for(let i=0,l=materials.length;i<l;i++)materials[i].dispose();for(let i=0,l=textures.length;i<l;i++){const texture=textures[i];texture.dispose()}if(parent)parent.remove(cached.scene);
4883if(this.onDisposeModel)this.onDisposeModel(cached.scene,tile);cached.scene=null;cached.materials=null;cached.textures=null;cached.geometry=null;cached.metadata=null}this.activeTiles.delete(tile);this.visibleTiles.delete(tile);tile._loadIndex++}setTileVisible(tile,visible){const scene=tile.cached.scene;const visibleTiles=this.visibleTiles;const group=this.group;if(visible){group.add(scene);visibleTiles.add(tile);scene.updateMatrixWorld(true)}else{group.remove(scene);visibleTiles.delete(tile)}if(this.onTileVisibilityChange)this.onTileVisibilityChange(scene,tile,visible)}setTileActive(tile,active){const activeTiles=this.activeTiles;if(active)activeTiles.add(tile);else activeTiles.delete(tile)}calculateError(tile){const cached=tile.cached;const inFrustum=cached.inFrustum;const cameras=this.cameras;const cameraInfo=this.cameraInfo;const boundingVolume=cached.boundingVolume;let maxError=-Infinity;let minDistance=Infinity;for(let i=0,l=cameras.length;i<l;i++){if(!inFrustum[i])continue;const info=cameraInfo[i];const invScale=info.invScale;let error;if(info.isOrthographic){const pixelSize=info.pixelSize;error=tile.geometricError/(pixelSize*invScale)}else{const distance=boundingVolume.distanceToPoint(info.position);const scaledDistance=distance*invScale;const sseDenominator=info.sseDenominator;error=tile.geometricError/(scaledDistance*sseDenominator);minDistance=Math.min(minDistance,scaledDistance)}maxError=Math.max(maxError,error)}tile.__distanceFromCamera=minDistance;tile.__error=maxError}tileInView(tile){const cached=tile.cached;const boundingVolume=cached.boundingVolume;const inFrustum=cached.inFrustum;const cameraInfo=this.cameraInfo;let inView=false;for(let i=0,l=cameraInfo.length;i<l;i++){const frustum=cameraInfo[i].frustum;if(boundingVolume.intersectsFrustum(frustum)){inView=true;inFrustum[i]=true}else inFrustum[i]=false}return inView}}$06d26e8e9f5361d3$exports.TilesRenderer=$06d26e8e9f5361d3$var$TilesRenderer;var $1cb839fa4db014d3$exports={};"use strict";Object.defineProperty($1cb839fa4db014d3$exports,"__esModule",{value:true});$1cb839fa4db014d3$exports.SphereHelper=void 0;const $1cb839fa4db014d3$var$_vector=new $5OpyM$Vector3;const $1cb839fa4db014d3$var$axes=["x","y","z"];class $1cb839fa4db014d3$var$SphereHelper extends $5OpyM$LineSegments{constructor(sphere,color=16776960,angleSteps=40){const geometry=new $5OpyM$BufferGeometry;const positions=[];for(let i=0;i<3;i++){const axis1=$1cb839fa4db014d3$var$axes[i];const axis2=$1cb839fa4db014d3$var$axes[(i+1)%3];$1cb839fa4db014d3$var$_vector.set(0,0,0);for(let a=0;a<angleSteps;a++){let angle;angle=2*Math.PI*a/(angleSteps-1);$1cb839fa4db014d3$var$_vector[axis1]=Math.sin(angle);$1cb839fa4db014d3$var$_vector[axis2]=Math.cos(angle);positions.push($1cb839fa4db014d3$var$_vector.x,$1cb839fa4db014d3$var$_vector.y,$1cb839fa4db014d3$var$_vector.z);angle=2*Math.PI*(a+1)/(angleSteps-1);$1cb839fa4db014d3$var$_vector[axis1]=Math.sin(angle);$1cb839fa4db014d3$var$_vector[axis2]=Math.cos(angle);positions.push($1cb839fa4db014d3$var$_vector.x,$1cb839fa4db014d3$var$_vector.y,$1cb839fa4db014d3$var$_vector.z)}}geometry.setAttribute("position",new $5OpyM$BufferAttribute(new Float32Array(positions),3));geometry.computeBoundingSphere();super(geometry,new $5OpyM$LineBasicMaterial({color:color,toneMapped:false}));this.sphere=sphere;this.type="SphereHelper"}updateMatrixWorld(force){const sphere=this.sphere;this.position.copy(sphere.center);this.scale.setScalar(sphere.radius);super.updateMatrixWorld(force)}}$1cb839fa4db014d3$exports.SphereHelper=$1cb839fa4db014d3$var$SphereHelper;var $3b9225051b507460$exports={};"use strict";Object.defineProperty($3b9225051b507460$exports,"__esModule",{value:true});$3b9225051b507460$exports.EllipsoidRegionLineHelper=$3b9225051b507460$exports.EllipsoidRegionHelper=void 0;const $3b9225051b507460$var$_norm=new $5OpyM$Vector3;const $3b9225051b507460$var$_norm2=new $5OpyM$Vector3;const $3b9225051b507460$var$_pos=new $5OpyM$Vector3;const $3b9225051b507460$var$_vec1=new $5OpyM$Vector3;const $3b9225051b507460$var$_vec2=new $5OpyM$Vector3;function $3b9225051b507460$var$toGroupGeometry(geometry){geometry=geometry.toNonIndexed();const{groups:groups}=geometry;const{position:position,normal:normal}=geometry.attributes;const newNorm=[];const newPos=[];for(const group of groups){const{start:start,count:count}=group;for(let i=start,l=start+count;i<l;i++){$3b9225051b507460$var$_vec1.fromBufferAttribute(position,i);$3b9225051b507460$var$_vec2.fromBufferAttribute(normal,i);newPos.push(...$3b9225051b507460$var$_vec1);newNorm.push(...$3b9225051b507460$var$_vec2)}}const newGeometry=new $5OpyM$BufferGeometry;newGeometry.setAttribute("position",new $5OpyM$BufferAttribute(new Float32Array(newPos),3));newGeometry.setAttribute("normal",new $5OpyM$BufferAttribute(new Float32Array(newNorm),3));return newGeometry}function $3b9225051b507460$var$getRegionGeometry(ellipsoidRegion){const{latStart=-Math.PI/2,latEnd=Math.PI/2,lonStart=0,lonEnd=2*Math.PI,heightStart=0,heightEnd=0}=ellipsoidRegion;const geometry=new $5OpyM$BoxGeometry(1,1,1,32,32);const{normal:normal,position:position}=geometry.attributes;const refPosition=position.clone();for(let i=0,l=position.count;i<l;i++){$3b9225051b507460$var$_pos.fromBufferAttribute(position,i);const lat=$5OpyM$MathUtils.mapLinear($3b9225051b507460$var$_pos.x,-0.5,0.5,latStart,latEnd);const lon=$5OpyM$MathUtils.mapLinear($3b9225051b507460$var$_pos.y,-0.5,0.5,lonStart,lonEnd);let height=heightStart;ellipsoidRegion.getCartographicToNormal(lat,lon,$3b9225051b507460$var$_norm);if($3b9225051b507460$var$_pos.z<0)height=heightEnd;ellipsoidRegion.getCartographicToPosition(lat,lon,height,$3b9225051b507460$var$_pos);position.setXYZ(i,...$3b9225051b507460$var$_pos)}geometry.computeVertexNormals();for(let i=0,l=refPosition.count;i<l;i++){$3b9225051b507460$var$_pos.fromBufferAttribute(refPosition,i);const lat=$5OpyM$MathUtils.mapLinear($3b9225051b507460$var$_pos.x,-0.5,0.5,latStart,latEnd);const lon=$5OpyM$MathUtils.mapLinear($3b9225051b507460$var$_pos.y,-0.5,0.5,lonStart,lonEnd);$3b9225051b507460$var$_norm.fromBufferAttribute(normal,i);ellipsoidRegion.getCartographicToNormal(lat,lon,$3b9225051b507460$var$_norm2);
4883if(Math.abs($3b9225051b507460$var$_norm.dot($3b9225051b507460$var$_norm2))>0.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;
4883activeTiles.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;
4883if(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;i<l;i++){const t=tokens[i];if(!(t in creditsCount))creditsCount[t]=0;creditsCount[t]+=add?1:-1;if(creditsCount[t]<=0)delete creditsCount[t]}}addCredits(line){this._adjustCredits(line,true)}removeCredits(line){this._adjustCredits(line,false)}toString(){const tokens=Object.keys(this.creditsCount).sort();return tokens.join(", ")}}$f462b5e10a0d334c$exports.GoogleMapsTilesCredits=$f462b5e10a0d334c$var$GoogleMapsTilesCredits;const $e41589f0d6e8ce27$var$API_ORIGIN="https://tile.googleapis.com";const $e41589f0d6e8ce27$var$TILE_URL=`${$e41589f0d6e8ce27$var$API_ORIGIN}/v1/3dtiles/root.json`;const $e41589f0d6e8ce27$var$_mat=new $5OpyM$Matrix4;const $e41589f0d6e8ce27$var$_euler=new $5OpyM$Euler;const $e41589f0d6e8ce27$var$GoogleTilesRendererMixin=base=>class 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=>
4883{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]}})});
4883Object.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={};
4883Object.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/[email protected]/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);
4883if(!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:` 4884 4885 #include <common> 4886 4887 uniform vec2 size; 4888 4889 varying vec2 vUv; 4890 varying vec2 vInvSize; 4891 4892 void main() { 4893 vUv = uv; 4894 vInvSize = 1.0 / size; 4895 4896 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 4897 }`,fragmentShader:` 4898 4899 #include <common> 4900 #include <packing> 4901 4902 uniform sampler2D tDiffuse; 4903 uniform sampler2D tDepth; 4904 4905 uniform float cameraNear; 4906 uniform float cameraFar; 4907 uniform float depthCutoff; 4908 4909 uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ]; 4910 uniform float sampleWeights[ KERNEL_RADIUS + 1 ]; 4911 4912 varying vec2 vUv; 4913 varying vec2 vInvSize; 4914 4915 float getDepth( const in vec2 screenPosition ) { 4916 #if DEPTH_PACKING == 1 4917 return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) ); 4918 #else 4919 return texture2D( tDepth, screenPosition ).x; 4920 #endif 4921 } 4922 4923 float getViewZ( const in float depth ) { 4924 #if PERSPECTIVE_CAMERA == 1 4925 return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); 4926 #else 4927 return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); 4928 #endif 4929 } 4930 4931 void main() { 4932 float depth = getDepth( vUv ); 4933 if( depth >= ( 1.0 - EPSILON ) ) { 4934 discard; 4935 } 4936 4937 float centerViewZ = -getViewZ( depth ); 4938 bool rBreak = false, lBreak = false;
4939 4940 float weightSum = sampleWeights[0]; 4941 vec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum; 4942 4943 for( int i = 1; i <= KERNEL_RADIUS; i ++ ) { 4944 4945 float sampleWeight = sampleWeights[i]; 4946 vec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize; 4947 4948 vec2 sampleUv = vUv + sampleUvOffset; 4949 float viewZ = -getViewZ( getDepth( sampleUv ) ); 4950 4951 if( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true; 4952 4953 if( ! rBreak ) { 4954 diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight; 4955 weightSum += sampleWeight; 4956 } 4957 4958 sampleUv = vUv - sampleUvOffset; 4959 viewZ = -getViewZ( getDepth( sampleUv ) ); 4960 4961 if( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true; 4962 4963 if( ! lBreak ) { 4964 diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight; 4965 weightSum += sampleWeight; 4966 } 4967 4968 } 4969 4970 gl_FragColor = diffuseSum / weightSum; 4971 }`};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<this.passes.length;i++){if(this.passes[i].enabled){return false}}return true}render(deltaTime){if(deltaTime===undefined){deltaTime=this.clock.getDelta()}const currentRenderTarget=this.renderer.getRenderTarget();let maskActive=false;for(let i=0,il=this.passes.length;i<il;i++){const pass=this.passes[i];if(pass.enabled===false)continue;pass.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(i);pass.render(this.renderer,this.writeBuffer,this.readBuffer,deltaTime,maskActive);if(pass.needsSwap){if(maskActive){const context=this.renderer.getContext();const stencil=this.renderer.state.buffers.stencil;stencil.setFunc(context.NOTEQUAL,1,4294967295);this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,deltaTime);stencil.setFunc(context.EQUAL,1,4294967295)}this.swapBuffers()}if(THREE.MaskPass!==undefined){if(pass instanceof THREE.MaskPass){maskActive=true}else if(pass instanceof THREE.ClearMaskPass){maskActive=false}}}this.renderer.setRenderTarget(currentRenderTarget)}reset(renderTarget){if(renderTarget===undefined){const size=this.renderer.getSize(new THREE.Vector2);this._pixelRatio=this.renderer.getPixelRatio();this._width=size.width;this._height=size.height;renderTarget=this.renderTarget1.clone();renderTarget.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose();this.renderTarget2.dispose();this.renderTarget1=renderTarget;this.renderTarget2=renderTarget.clone();this.writeBuffer=this.renderTarget1;this.readBuffer=this.renderTarget2}setSize(width,height){this._width=width;this._height=height;const effectiveWidth=this._width*this._pixelRatio;const effectiveHeight=this._height*this._pixelRatio;this.renderTarget1.setSize(effectiveWidth,effectiveHeight);this.renderTarget2.setSize(effectiveWidth,effectiveHeight);for(let i=0;i<this.passes.length;i++){this.passes[i].setSize(effectiveWidth,effectiveHeight)}}setPixelRatio(pixelRatio){this._pixelRatio=pixelRatio;this.setSize(this._width,this._height)}}class Pass{constructor(){this.enabled=true;this.needsSwap=true;this.clear=false;this.renderToScreen=false}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}
4971const _camera=new THREE.OrthographicCamera(-1,1,1,-1,0,1);const _geometry=new THREE.BufferGeometry;_geometry.setAttribute("position",new THREE.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3));_geometry.setAttribute("uv",new THREE.Float32BufferAttribute([0,2,0,0,2,0],2));class FullScreenQuad{constructor(material){this._mesh=new THREE.Mesh(_geometry,material)}dispose(){this._mesh.geometry.dispose()}render(renderer){renderer.render(this._mesh,_camera)}get material(){return this._mesh.material}set material(value){this._mesh.material=value}}THREE.EffectComposer=EffectComposer;THREE.FullScreenQuad=FullScreenQuad;THREE.Pass=Pass})();(function(){const BlendShader={uniforms:{"tDiffuse1":{value:null},"tDiffuse2":{value:null},"mixRatio":{value:0.5},"opacity":{value:1}},vertexShader:` 4972 4973 varying vec2 vUv; 4974 4975 void main() { 4976 4977 vUv = uv; 4978 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 4979 4980 }`,fragmentShader:` 4981 4982 uniform float opacity; 4983 uniform float mixRatio; 4984 4985 uniform sampler2D tDiffuse1; 4986 uniform sampler2D tDiffuse2; 4987 4988 varying vec2 vUv; 4989 4990 void main() { 4991 4992 vec4 texel1 = texture2D( tDiffuse1, vUv ); 4993 vec4 texel2 = texture2D( tDiffuse2, vUv ); 4994 gl_FragColor = mix( texel1, texel2, mixRatio ); 4995 gl_FragColor.a *= opacity; 4996 4997 }`};THREE.BlendShader=BlendShader})();(function(){const CopyShader={uniforms:{"tDiffuse":{value:null},"opacity":{value:1}},vertexShader:` 4998 4999 varying vec2 vUv; 5000 5001 void main() { 5002 5003 vUv = uv; 5004 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 5005 5006 }`,fragmentShader:` 5007 5008 uniform float opacity; 5009 5010 uniform sampler2D tDiffuse; 5011 5012 varying vec2 vUv; 5013 5014 void main() { 5015 5016 gl_FragColor = texture2D( tDiffuse, vUv ); 5017 gl_FragColor.a *= opacity; 5018 5019 5020 }`};THREE.CopyShader=CopyShader})();(function(){const FXAAShader={uniforms:{"tDiffuse":{value:null},"resolution":{value:new THREE.Vector2(1/1024,1/512)}},vertexShader:` 5021 5022 varying vec2 vUv; 5023 5024 void main() { 5025 5026 vUv = uv; 5027 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 5028 5029 }`,fragmentShader:` 5030 precision highp float; 5031 5032 uniform sampler2D tDiffuse; 5033 5034 uniform vec2 resolution; 5035 5036 varying vec2 vUv; 5037 5038 // FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro ([email protected]) 5039 5040 //---------------------------------------------------------------------------------- 5041 // File: es3-kepler\FXAA\assets\shaders/FXAA_DefaultES.frag 5042 // SDK Version: v3.00 5043 // Email: [email protected] 5044 // Site: http://developer.nvidia.com/ 5045 // 5046 // Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. 5047 // 5048 // Redistribution and use in source and binary forms, with or without 5049 // modification, are permitted provided that the following conditions 5050 // are met: 5051 // * Redistributions of source code must retain the above copyright 5052 // notice, this list of conditions and the following disclaimer. 5053 // * Redistributions in binary form must reproduce the above copyright 5054 // notice, this list of conditions and the following disclaimer in the 5055 // documentation and/or other materials provided with the distribution. 5056 // * Neither the name of NVIDIA CORPORATION nor the names of its 5057 // contributors may be used to endorse or promote products derived 5058 // from this software without specific prior written permission. 5059 // 5060 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY 5061 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 5062 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 5063 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 5064 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 5065 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 5066 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 5067 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 5068 // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 5069 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 5070 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 5071 // 5072 //---------------------------------------------------------------------------------- 5073 5074 #ifndef FXAA_DISCARD 5075 // 5076 // Only valid for PC OpenGL currently. 5077 // Probably will not work when FXAA_GREEN_AS_LUMA = 1. 5078 // 5079 // 1 = Use discard on pixels which don't need AA. 5080 // For APIs which enable concurrent TEX+ROP from same surface. 5081 // 0 = Return unchanged color on pixels which don't need AA. 5082 // 5083 #define FXAA_DISCARD 0 5084 #endif 5085 5086 /*--------------------------------------------------------------------------*/ 5087 #define FxaaTexTop(t, p) texture2D(t, p, -100.0) 5088 #define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), -100.0) 5089 /*--------------------------------------------------------------------------*/ 5090 5091 #define NUM_SAMPLES 5 5092 5093 // assumes colors have premultipliedAlpha, so that the calculated color contrast is scaled by alpha 5094 float contrast( vec4 a, vec4 b ) { 5095 vec4 diff = abs( a - b ); 5096 return max( max( max( diff.r, diff.g ), diff.b ), diff.a ); 5097 } 5098 5099 /*============================================================================ 5100 5101 FXAA3 QUALITY - PC 5102 5103 ============================================================================*/ 5104 5105 /*--------------------------------------------------------------------------*/ 5106 vec4 FxaaPixelShader( 5107 vec2 posM, 5108 sampler2D tex, 5109 vec2 fxaaQualityRcpFrame, 5110 float fxaaQualityEdgeThreshold, 5111 float fxaaQualityinvEdgeThreshold 5112 ) { 5113 vec4 rgbaM = FxaaTexTop(tex, posM); 5114 vec4 rgbaS = FxaaTexOff(tex, posM, vec2( 0.0, 1.0), fxaaQualityRcpFrame.xy); 5115 vec4 rgbaE = FxaaTexOff(tex, posM, vec2( 1.0, 0.0), fxaaQualityRcpFrame.xy); 5116 vec4 rgbaN = FxaaTexOff(tex, posM, vec2( 0.0,-1.0), fxaaQualityRcpFrame.xy); 5117 vec4 rgbaW = FxaaTexOff(tex, posM, vec2(-1.0, 0.0), fxaaQualityRcpFrame.xy); 5118 // . S . 5119 // W M E 5120 // . N . 5121 5122 bool earlyExit = max( max( max( 5123 contrast( rgbaM, rgbaN ), 5124 contrast( rgbaM, rgbaS ) ), 5125 contrast( rgbaM, rgbaE ) ), 5126 contrast( rgbaM, rgbaW ) ) 5127 < fxaaQualityEdgeThreshold; 5128 // . 0 . 5129 // 0 0 0 5130 // . 0 . 5131 5132 #if (FXAA_DISCARD == 1) 5133 if(earlyExit) FxaaDiscard; 5134 #else 5135 if(earlyExit) return rgbaM; 5136 #endif 5137 5138 float contrastN = contrast( rgbaM, rgbaN ); 5139 float contrastS = contrast( rgbaM, rgbaS ); 5140 float contrastE = contrast( rgbaM, rgbaE ); 5141 float contrastW = contrast( rgbaM, rgbaW ); 5142 5143 float relativeVContrast = ( contrastN + contrastS ) - ( contrastE + contrastW ); 5144 relativeVContrast *= fxaaQualityinvEdgeThreshold; 5145 5146 bool horzSpan = relativeVContrast > 0.; 5147 // . 1 . 5148 // 0 0 0 5149 // . 1 . 5150 5151 // 45 deg edge detection and corners of objects, aka V/H contrast is too similar 5152 if( abs( relativeVContrast ) < .3 ) { 5153 // locate the edge 5154 vec2 dirToEdge; 5155 dirToEdge.x = contrastE > contrastW ? 1. : -1.; 5156 dirToEdge.y = contrastS > contrastN ? 1. : -1.; 5157 // . 2 . . 1 . 5158 // 1 0 2 ~= 0 0 1 5159 // . 1 . . 0 . 5160 5161 // tap 2 pixels and see which ones are "outside" the edge, to 5162 // determine if the edge is vertical or horizontal 5163 5164 vec4 rgbaAlongH = FxaaTexOff(tex, posM, vec2( dirToEdge.x, -dirToEdge.y ), fxaaQualityRcpFrame.xy); 5165 float matchAlongH = contrast( rgbaM, rgbaAlongH ); 5166 // . 1 . 5167 // 0 0 1 5168 // . 0 H 5169 5170 vec4 rgbaAlongV = FxaaTexOff(tex, posM, vec2( -dirToEdge.x, dirToEdge.y ), fxaaQualityRcpFrame.xy); 5171 float matchAlongV = contrast( rgbaM, rgbaAlongV ); 5172 // V 1 . 5173 // 0 0 1 5174 // . 0 . 5175 5176 relativeVContrast = matchAlongV - matchAlongH; 5177 relativeVContrast *= fxaaQualityinvEdgeThreshold; 5178 5179 if( abs( relativeVContrast ) < .3 ) { // 45 deg edge 5180 // 1 1 . 5181 // 0 0 1 5182 // . 0 1 5183 5184 // do a simple blur 5185 return mix( 5186 rgbaM, 5187 (rgbaN + rgbaS + rgbaE + rgbaW) * .25, 5188 .4 5189 ); 5190 } 5191 5192 horzSpan = relativeVContrast > 0.; 5193 } 5194 5195 if(!horzSpan) rgbaN = rgbaW; 5196 if(!horzSpan) rgbaS = rgbaE; 5197 // . 0 . 1 5198 // 1 0 1 -> 0 5199 // . 0 . 1 5200 5201 bool pairN = contrast( rgbaM, rgbaN ) > contrast( rgbaM, rgbaS );
5202 if(!pairN) rgbaN = rgbaS; 5203 5204 vec2 offNP; 5205 offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; 5206 offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; 5207 5208 bool doneN = false; 5209 bool doneP = false; 5210 5211 float nDist = 0.; 5212 float pDist = 0.; 5213 5214 vec2 posN = posM; 5215 vec2 posP = posM; 5216 5217 int iterationsUsed = 0; 5218 int iterationsUsedN = 0; 5219 int iterationsUsedP = 0; 5220 for( int i = 0; i < NUM_SAMPLES; i++ ) { 5221 iterationsUsed = i; 5222 5223 float increment = float(i + 1); 5224 5225 if(!doneN) { 5226 nDist += increment; 5227 posN = posM + offNP * nDist; 5228 vec4 rgbaEndN = FxaaTexTop(tex, posN.xy); 5229 doneN = contrast( rgbaEndN, rgbaM ) > contrast( rgbaEndN, rgbaN ); 5230 iterationsUsedN = i; 5231 } 5232 5233 if(!doneP) { 5234 pDist += increment; 5235 posP = posM - offNP * pDist; 5236 vec4 rgbaEndP = FxaaTexTop(tex, posP.xy); 5237 doneP = contrast( rgbaEndP, rgbaM ) > contrast( rgbaEndP, rgbaN ); 5238 iterationsUsedP = i; 5239 } 5240 5241 if(doneN || doneP) break; 5242 } 5243 5244 5245 if ( !doneP && !doneN ) return rgbaM; // failed to find end of edge 5246 5247 float dist = min( 5248 doneN ? float( iterationsUsedN ) / float( NUM_SAMPLES - 1 ) : 1., 5249 doneP ? float( iterationsUsedP ) / float( NUM_SAMPLES - 1 ) : 1. 5250 ); 5251 5252 // hacky way of reduces blurriness of mostly diagonal edges 5253 // but reduces AA quality 5254 dist = pow(dist, .5); 5255 5256 dist = 1. - dist; 5257 5258 return mix( 5259 rgbaM, 5260 rgbaN, 5261 dist * .5 5262 ); 5263 } 5264 5265 void main() { 5266 const float edgeDetectionQuality = .2; 5267 const float invEdgeDetectionQuality = 1. / edgeDetectionQuality; 5268 5269 gl_FragColor = FxaaPixelShader( 5270 vUv, 5271 tDiffuse, 5272 resolution, 5273 edgeDetectionQuality, // [0,1] contrast needed, otherwise early discard 5274 invEdgeDetectionQuality 5275 ); 5276 5277 } 5278 `};THREE.FXAAShader=FXAAShader})();(function(){const GammaCorrectionShader={uniforms:{"tDiffuse":{value:null}},vertexShader:` 5279 5280 varying vec2 vUv; 5281 5282 void main() { 5283 5284 vUv = uv; 5285 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 5286 5287 }`,fragmentShader:` 5288 5289 uniform sampler2D tDiffuse; 5290 5291 varying vec2 vUv; 5292 5293 void main() { 5294 5295 vec4 tex = texture2D( tDiffuse, vUv ); 5296 5297 gl_FragColor = LinearTosRGB( tex ); 5298 5299 }`};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.;
5299"," 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)}
5299getSampleCount(){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;
5299this.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:` 5300 5301 varying vec2 vUv; 5302 5303 void main() { 5304 vUv = uv; 5305 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 5306 }`,fragmentShader:` 5307 5308 #include <common> 5309 5310 varying vec2 vUv; 5311 5312 #if DIFFUSE_TEXTURE == 1 5313 uniform sampler2D tDiffuse; 5314 #endif 5315 5316 uniform sampler2D tDepth; 5317 5318 #if NORMAL_TEXTURE == 1 5319 uniform sampler2D tNormal; 5320 #endif 5321 5322 uniform float cameraNear; 5323 uniform float cameraFar; 5324 uniform mat4 cameraProjectionMatrix; 5325 uniform mat4 cameraInverseProjectionMatrix; 5326 5327 uniform float scale; 5328 uniform float intensity; 5329 uniform float bias; 5330 uniform float kernelRadius; 5331 uniform float minResolution; 5332 uniform vec2 size; 5333 uniform float randomSeed; 5334 5335 // RGBA depth 5336 5337 #include <packing> 5338 5339 vec4 getDefaultColor( const in vec2 screenPosition ) { 5340 #if DIFFUSE_TEXTURE == 1 5341 return texture2D( tDiffuse, vUv ); 5342 #else 5343 return vec4( 1.0 ); 5344 #endif 5345 } 5346 5347 float getDepth( const in vec2 screenPosition ) { 5348 #if DEPTH_PACKING == 1 5349 return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) ); 5350 #else 5351 return texture2D( tDepth, screenPosition ).x; 5352 #endif 5353 } 5354 5355 float getViewZ( const in float depth ) { 5356 #if PERSPECTIVE_CAMERA == 1 5357 return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); 5358 #else 5359 return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); 5360 #endif 5361 } 5362 5363 vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) { 5364 float clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3]; 5365 vec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 ); 5366 clipPosition *= clipW; // unprojection. 5367 5368 return ( cameraInverseProjectionMatrix * clipPosition ).xyz; 5369 } 5370 5371 vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) { 5372 #if NORMAL_TEXTURE == 1 5373 return unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz ); 5374 #else 5375 return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) ); 5376 #endif 5377 } 5378 5379 float scaleDividedByCameraFar; 5380 float minResolutionMultipliedByCameraFar; 5381 5382 float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) { 5383 vec3 viewDelta = sampleViewPosition - centerViewPosition; 5384 float viewDistance = length( viewDelta ); 5385 float scaledScreenDistance = scaleDividedByCameraFar * viewDistance; 5386 5387 return max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) ); 5388 } 5389 5390 // moving costly divides into consts 5391 const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES ); 5392 const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES ); 5393 5394 float getAmbientOcclusion( const in vec3 centerViewPosition ) { 5395 // precompute some variables require in getOcclusion. 5396 scaleDividedByCameraFar = scale / cameraFar; 5397 minResolutionMultipliedByCameraFar = minResolution * cameraFar; 5398 vec3 centerViewNormal = getViewNormal( centerViewPosition, vUv ); 5399 5400 // jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/ 5401 float angle = rand( vUv + randomSeed ) * PI2; 5402 vec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;
5403 vec2 radiusStep = radius; 5404 5405 float occlusionSum = 0.0; 5406 float weightSum = 0.0; 5407 5408 for( int i = 0; i < NUM_SAMPLES; i ++ ) { 5409 vec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius; 5410 radius += radiusStep; 5411 angle += ANGLE_STEP; 5412 5413 float sampleDepth = getDepth( sampleUv ); 5414 if( sampleDepth >= ( 1.0 - EPSILON ) ) { 5415 continue; 5416 } 5417 5418 float sampleViewZ = getViewZ( sampleDepth ); 5419 vec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ ); 5420 occlusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition ); 5421 weightSum += 1.0; 5422 } 5423 5424 if( weightSum == 0.0 ) discard; 5425 5426 return occlusionSum * ( intensity / weightSum ); 5427 } 5428 5429 void main() { 5430 float centerDepth = getDepth( vUv ); 5431 if( centerDepth >= ( 1.0 - EPSILON ) ) { 5432 discard; 5433 } 5434 5435 float centerViewZ = getViewZ( centerDepth ); 5436 vec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ ); 5437 5438 float ambientOcclusion = getAmbientOcclusion( viewPosition ); 5439 5440 gl_FragColor = getDefaultColor( vUv ); 5441 gl_FragColor.xyz *= 1.0 - ambientOcclusion; 5442 }`};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
vendor: 44,306 bytes, line 5442
5442(){return"data:image/png;base64,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"}
5442getSearchTexture(){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:` 5443 5444 uniform vec2 resolution; 5445 5446 varying vec2 vUv; 5447 varying vec4 vOffset[ 3 ]; 5448 5449 void SMAAEdgeDetectionVS( vec2 texcoord ) { 5450 vOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 ); // WebGL port note: Changed sign in W component 5451 vOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 ); // WebGL port note: Changed sign in W component 5452 vOffset[ 2 ] = texcoord.xyxy + resolution.xyxy * vec4( -2.0, 0.0, 0.0, 2.0 ); // WebGL port note: Changed sign in W component 5453 } 5454 5455 void main() { 5456 5457 vUv = uv; 5458 5459 SMAAEdgeDetectionVS( vUv ); 5460 5461 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 5462 5463 }`,fragmentShader:` 5464 5465 uniform sampler2D tDiffuse; 5466 5467 varying vec2 vUv; 5468 varying vec4 vOffset[ 3 ]; 5469 5470 vec4 SMAAColorEdgeDetectionPS( vec2 texcoord, vec4 offset[3], sampler2D colorTex ) { 5471 vec2 threshold = vec2( SMAA_THRESHOLD, SMAA_THRESHOLD ); 5472 5473 // Calculate color deltas: 5474 vec4 delta; 5475 vec3 C = texture2D( colorTex, texcoord ).rgb; 5476 5477 vec3 Cleft = texture2D( colorTex, offset[0].xy ).rgb; 5478 vec3 t = abs( C - Cleft ); 5479 delta.x = max( max( t.r, t.g ), t.b ); 5480 5481 vec3 Ctop = texture2D( colorTex, offset[0].zw ).rgb; 5482 t = abs( C - Ctop ); 5483 delta.y = max( max( t.r, t.g ), t.b ); 5484 5485 // We do the usual threshold: 5486 vec2 edges = step( threshold, delta.xy ); 5487 5488 // Then discard if there is no edge: 5489 if ( dot( edges, vec2( 1.0, 1.0 ) ) == 0.0 ) 5490 discard; 5491 5492 // Calculate right and bottom deltas: 5493 vec3 Cright = texture2D( colorTex, offset[1].xy ).rgb; 5494 t = abs( C - Cright ); 5495 delta.z = max( max( t.r, t.g ), t.b ); 5496 5497 vec3 Cbottom = texture2D( colorTex, offset[1].zw ).rgb; 5498 t = abs( C - Cbottom ); 5499 delta.w = max( max( t.r, t.g ), t.b ); 5500 5501 // Calculate the maximum delta in the direct neighborhood: 5502 float maxDelta = max( max( max( delta.x, delta.y ), delta.z ), delta.w ); 5503 5504 // Calculate left-left and top-top deltas: 5505 vec3 Cleftleft = texture2D( colorTex, offset[2].xy ).rgb; 5506 t = abs( C - Cleftleft ); 5507 delta.z = max( max( t.r, t.g ), t.b ); 5508 5509 vec3 Ctoptop = texture2D( colorTex, offset[2].zw ).rgb; 5510 t = abs( C - Ctoptop ); 5511 delta.w = max( max( t.r, t.g ), t.b ); 5512 5513 // Calculate the final maximum delta: 5514 maxDelta = max( max( maxDelta, delta.z ), delta.w ); 5515 5516 // Local contrast adaptation in action: 5517 edges.xy *= step( 0.5 * maxDelta, delta.xy ); 5518 5519 return vec4( edges, 0.0, 0.0 ); 5520 } 5521 5522 void main() { 5523 5524 gl_FragColor = SMAAColorEdgeDetectionPS( vUv, vOffset, tDiffuse ); 5525 5526 }`};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:` 5527 5528 uniform vec2 resolution; 5529 5530 varying vec2 vUv; 5531 varying vec4 vOffset[ 3 ]; 5532 varying vec2 vPixcoord; 5533 5534 void SMAABlendingWeightCalculationVS( vec2 texcoord ) { 5535 vPixcoord = texcoord / resolution; 5536 5537 // We will use these offsets for the searches later on (see @PSEUDO_GATHER4):
5538 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 5539 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 5540 5541 // And these for the searches, they indicate the ends of the loops: 5542 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 ); 5543 5544 } 5545 5546 void main() { 5547 5548 vUv = uv; 5549 5550 SMAABlendingWeightCalculationVS( vUv ); 5551 5552 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 5553 5554 }`,fragmentShader:` 5555 5556 #define SMAASampleLevelZeroOffset( tex, coord, offset ) texture2D( tex, coord + float( offset ) * resolution, 0.0 ) 5557 5558 uniform sampler2D tDiffuse; 5559 uniform sampler2D tArea; 5560 uniform sampler2D tSearch; 5561 uniform vec2 resolution; 5562 5563 varying vec2 vUv; 5564 varying vec4 vOffset[3]; 5565 varying vec2 vPixcoord; 5566 5567 #if __VERSION__ == 100 5568 vec2 round( vec2 x ) { 5569 return sign( x ) * floor( abs( x ) + 0.5 ); 5570 } 5571 #endif 5572 5573 float SMAASearchLength( sampler2D searchTex, vec2 e, float bias, float scale ) { 5574 // Not required if searchTex accesses are set to point: 5575 // float2 SEARCH_TEX_PIXEL_SIZE = 1.0 / float2(66.0, 33.0); 5576 // e = float2(bias, 0.0) + 0.5 * SEARCH_TEX_PIXEL_SIZE + 5577 // e * float2(scale, 1.0) * float2(64.0, 32.0) * SEARCH_TEX_PIXEL_SIZE; 5578 e.r = bias + e.r * scale; 5579 return 255.0 * texture2D( searchTex, e, 0.0 ).r; 5580 } 5581 5582 float SMAASearchXLeft( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { 5583 /** 5584 * @PSEUDO_GATHER4 5585 * This texcoord has been offset by (-0.25, -0.125) in the vertex shader to 5586 * sample between edge, thus fetching four edges in a row. 5587 * Sampling with different offsets in each direction allows to disambiguate 5588 * which edges are active from the four fetched ones. 5589 */ 5590 vec2 e = vec2( 0.0, 1.0 ); 5591 5592 for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for 5593 e = texture2D( edgesTex, texcoord, 0.0 ).rg; 5594 texcoord -= vec2( 2.0, 0.0 ) * resolution; 5595 if ( ! ( texcoord.x > end && e.g > 0.8281 && e.r == 0.0 ) ) break; 5596 } 5597 5598 // We correct the previous (-0.25, -0.125) offset we applied: 5599 texcoord.x += 0.25 * resolution.x; 5600 5601 // The searches are bias by 1, so adjust the coords accordingly: 5602 texcoord.x += resolution.x; 5603 5604 // Disambiguate the length added by the last step: 5605 texcoord.x += 2.0 * resolution.x; // Undo last step 5606 texcoord.x -= resolution.x * SMAASearchLength(searchTex, e, 0.0, 0.5); 5607 5608 return texcoord.x; 5609 } 5610 5611 float SMAASearchXRight( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { 5612 vec2 e = vec2( 0.0, 1.0 ); 5613 5614 for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for 5615 e = texture2D( edgesTex, texcoord, 0.0 ).rg; 5616 texcoord += vec2( 2.0, 0.0 ) * resolution; 5617 if ( ! ( texcoord.x < end && e.g > 0.8281 && e.r == 0.0 ) ) break; 5618 } 5619 5620 texcoord.x -= 0.25 * resolution.x; 5621 texcoord.x -= resolution.x; 5622 texcoord.x -= 2.0 * resolution.x; 5623 texcoord.x += resolution.x * SMAASearchLength( searchTex, e, 0.5, 0.5 ); 5624 5625 return texcoord.x; 5626 } 5627 5628 float SMAASearchYUp( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { 5629 vec2 e = vec2( 1.0, 0.0 ); 5630 5631 for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for 5632 e = texture2D( edgesTex, texcoord, 0.0 ).rg; 5633 texcoord += vec2( 0.0, 2.0 ) * resolution; // WebGL port note: Changed sign 5634 if ( ! ( texcoord.y > end && e.r > 0.8281 && e.g == 0.0 ) ) break; 5635 } 5636 5637 texcoord.y -= 0.25 * resolution.y; // WebGL port note: Changed sign 5638 texcoord.y -= resolution.y; // WebGL port note: Changed sign 5639 texcoord.y -= 2.0 * resolution.y; // WebGL port note: Changed sign 5640 texcoord.y += resolution.y * SMAASearchLength( searchTex, e.gr, 0.0, 0.5 ); // WebGL port note: Changed sign 5641 5642 return texcoord.y; 5643 } 5644 5645 float SMAASearchYDown( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { 5646 vec2 e = vec2( 1.0, 0.0 ); 5647 5648 for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for 5649 e = texture2D( edgesTex, texcoord, 0.0 ).rg; 5650 texcoord -= vec2( 0.0, 2.0 ) * resolution; // WebGL port note: Changed sign 5651 if ( ! ( texcoord.y < end && e.r > 0.8281 && e.g == 0.0 ) ) break; 5652 } 5653 5654 texcoord.y += 0.25 * resolution.y; // WebGL port note: Changed sign 5655 texcoord.y += resolution.y; // WebGL port note: Changed sign 5656 texcoord.y += 2.0 * resolution.y; // WebGL port note: Changed sign 5657 texcoord.y -= resolution.y * SMAASearchLength( searchTex, e.gr, 0.5, 0.5 ); // WebGL port note: Changed sign 5658 5659 return texcoord.y; 5660 } 5661 5662 vec2 SMAAArea( sampler2D areaTex, vec2 dist, float e1, float e2, float offset ) { 5663 // Rounding prevents precision errors of bilinear filtering: 5664 vec2 texcoord = float( SMAA_AREATEX_MAX_DISTANCE ) * round( 4.0 * vec2( e
56641, e2 ) ) + dist; 5665 5666 // We do a scale and bias for mapping to texel space: 5667 texcoord = SMAA_AREATEX_PIXEL_SIZE * texcoord + ( 0.5 * SMAA_AREATEX_PIXEL_SIZE ); 5668 5669 // Move to proper place, according to the subpixel offset: 5670 texcoord.y += SMAA_AREATEX_SUBTEX_SIZE * offset; 5671 5672 return texture2D( areaTex, texcoord, 0.0 ).rg; 5673 } 5674 5675 vec4 SMAABlendingWeightCalculationPS( vec2 texcoord, vec2 pixcoord, vec4 offset[ 3 ], sampler2D edgesTex, sampler2D areaTex, sampler2D searchTex, ivec4 subsampleIndices ) { 5676 vec4 weights = vec4( 0.0, 0.0, 0.0, 0.0 ); 5677 5678 vec2 e = texture2D( edgesTex, texcoord ).rg; 5679 5680 if ( e.g > 0.0 ) { // Edge at north 5681 vec2 d; 5682 5683 // Find the distance to the left: 5684 vec2 coords; 5685 coords.x = SMAASearchXLeft( edgesTex, searchTex, offset[ 0 ].xy, offset[ 2 ].x ); 5686 coords.y = offset[ 1 ].y; // offset[1].y = texcoord.y - 0.25 * resolution.y (@CROSSING_OFFSET) 5687 d.x = coords.x; 5688 5689 // Now fetch the left crossing edges, two at a time using bilinear 5690 // filtering. Sampling at -0.25 (see @CROSSING_OFFSET) enables to 5691 // discern what value each edge has: 5692 float e1 = texture2D( edgesTex, coords, 0.0 ).r; 5693 5694 // Find the distance to the right: 5695 coords.x = SMAASearchXRight( edgesTex, searchTex, offset[ 0 ].zw, offset[ 2 ].y ); 5696 d.y = coords.x; 5697 5698 // We want the distances to be in pixel units (doing this here allow to 5699 // better interleave arithmetic and memory accesses): 5700 d = d / resolution.x - pixcoord.x; 5701 5702 // SMAAArea below needs a sqrt, as the areas texture is compressed 5703 // quadratically: 5704 vec2 sqrt_d = sqrt( abs( d ) ); 5705 5706 // Fetch the right crossing edges: 5707 coords.y -= 1.0 * resolution.y; // WebGL port note: Added 5708 float e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 1, 0 ) ).r; 5709 5710 // Ok, we know how this pattern looks like, now it is time for getting 5711 // the actual area: 5712 weights.rg = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.y ) ); 5713 } 5714 5715 if ( e.r > 0.0 ) { // Edge at west 5716 vec2 d; 5717 5718 // Find the distance to the top: 5719 vec2 coords; 5720 5721 coords.y = SMAASearchYUp( edgesTex, searchTex, offset[ 1 ].xy, offset[ 2 ].z ); 5722 coords.x = offset[ 0 ].x; // offset[1].x = texcoord.x - 0.25 * resolution.x; 5723 d.x = coords.y; 5724 5725 // Fetch the top crossing edges: 5726 float e1 = texture2D( edgesTex, coords, 0.0 ).g; 5727 5728 // Find the distance to the bottom: 5729 coords.y = SMAASearchYDown( edgesTex, searchTex, offset[ 1 ].zw, offset[ 2 ].w ); 5730 d.y = coords.y; 5731 5732 // We want the distances to be in pixel units: 5733 d = d / resolution.y - pixcoord.y; 5734 5735 // SMAAArea below needs a sqrt, as the areas texture is compressed 5736 // quadratically: 5737 vec2 sqrt_d = sqrt( abs( d ) ); 5738 5739 // Fetch the bottom crossing edges: 5740 coords.y -= 1.0 * resolution.y; // WebGL port note: Added 5741 float e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 0, 1 ) ).g; 5742 5743 // Get the area for this direction: 5744 weights.ba = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.x ) ); 5745 } 5746 5747 return weights; 5748 } 5749 5750 void main() { 5751 5752 gl_FragColor = SMAABlendingWeightCalculationPS( vUv, vPixcoord, vOffset, tDiffuse, tArea, tSearch, ivec4( 0.0 ) ); 5753 5754 }`};const SMAABlendShader={uniforms:{"tDiffuse":{value:null},"tColor":{value:null},"resolution":{value:new THREE.Vector2(1/1024,1/512)}},vertexShader:` 5755 5756 uniform vec2 resolution; 5757 5758 varying vec2 vUv; 5759 varying vec4 vOffset[ 2 ]; 5760 5761 void SMAANeighborhoodBlendingVS( vec2 texcoord ) {
5762 vOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 ); // WebGL port note: Changed sign in W component 5763 vOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 ); // WebGL port note: Changed sign in W component 5764 } 5765 5766 void main() { 5767 5768 vUv = uv; 5769 5770 SMAANeighborhoodBlendingVS( vUv ); 5771 5772 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 5773 5774 }`,fragmentShader:` 5775 5776 uniform sampler2D tDiffuse; 5777 uniform sampler2D tColor; 5778 uniform vec2 resolution; 5779 5780 varying vec2 vUv; 5781 varying vec4 vOffset[ 2 ]; 5782 5783 vec4 SMAANeighborhoodBlendingPS( vec2 texcoord, vec4 offset[ 2 ], sampler2D colorTex, sampler2D blendTex ) { 5784 // Fetch the blending weights for current pixel: 5785 vec4 a; 5786 a.xz = texture2D( blendTex, texcoord ).xz; 5787 a.y = texture2D( blendTex, offset[ 1 ].zw ).g; 5788 a.w = texture2D( blendTex, offset[ 1 ].xy ).a; 5789 5790 // Is there any blending weight with a value greater than 0.0? 5791 if ( dot(a, vec4( 1.0, 1.0, 1.0, 1.0 )) < 1e-5 ) { 5792 return texture2D( colorTex, texcoord, 0.0 ); 5793 } else { 5794 // Up to 4 lines can be crossing a pixel (one through each edge). We 5795 // favor blending by choosing the line with the maximum weight for each 5796 // direction: 5797 vec2 offset; 5798 offset.x = a.a > a.b ? a.a : -a.b; // left vs. right 5799 offset.y = a.g > a.r ? -a.g : a.r; // top vs. bottom // WebGL port note: Changed signs 5800 5801 // Then we go in the direction that has the maximum weight: 5802 if ( abs( offset.x ) > abs( offset.y )) { // horizontal vs. vertical 5803 offset.y = 0.0; 5804 } else { 5805 offset.x = 0.0; 5806 } 5807 5808 // Fetch the opposite color and lerp by hand: 5809 vec4 C = texture2D( colorTex, texcoord, 0.0 ); 5810 texcoord += sign( offset ) * resolution; 5811 vec4 Cop = texture2D( colorTex, texcoord, 0.0 ); 5812 float s = abs( offset.x ) > abs( offset.y ) ? abs( offset.x ) : abs( offset.y ); 5813 5814 // WebGL port note: Added gamma correction 5815 C.xyz = pow(C.xyz, vec3(2.2)); 5816 Cop.xyz = pow(Cop.xyz, vec3(2.2)); 5817 vec4 mixed = mix(C, Cop, s); 5818 mixed.xyz = pow(mixed.xyz, vec3(1.0 / 2.2)); 5819 5820 return mixed; 5821 } 5822 } 5823 5824 void main() { 5825 5826 gl_FragColor = SMAANeighborhoodBlendingPS( vUv, vOffset, tColor, tDiffuse ); 5827 5828 }`};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<jitterOffsets.length;i++){const jitterOffset=jitterOffsets[i];if(this.camera.setViewOffset){this.camera.setViewOffset(viewOffset.fullWidth,viewOffset.fullHeight,viewOffset.offsetX+jitterOffset[0]*0.0625,viewOffset.offsetY+jitterOffset[1]*0.0625,viewOffset.width,viewOffset.height)}let sampleWeight=baseSampleWeight;if(this.unbiased){const uniformCenteredDistribution=-0.5+(i+0.5)/jitterOffsets.length;sampleWeight+=roundingRange*uniformCenteredDistribution}this.copyUniforms["opacity"].value=sampleWeight;renderer.setClearColor(this.clearColor,this.clearAlpha);renderer.setRenderTarget(this.sampleRenderTarget);renderer.clear();renderer.render(this.scene,this.camera);renderer.setRenderTarget(this.renderToScreen?null:writeBuffer);if(i===0){renderer.setClearColor(0,0);renderer.clear()}this.fsQuad.render(renderer)}if(this.camera.setViewOffset&&originalViewOffset.enabled){this.camera.setViewOffset(originalViewOffset.fullWidth,originalViewOffset.fullHeight,originalViewOffset.offsetX,originalViewOffset.offsetY,originalViewOffset.width,originalViewOffset.height)}else if(this.camera.clearViewOffset){this.camera.clearViewOffset()}renderer.autoClear=autoClear;renderer.setClearColor(this._oldClearColor,oldClearAlpha)}}const _JitterVectors=[[[0,0]],[[4,4],[-4,-4]],[[-2,-6],[6,-2],[-6,2],[2,6]],[[1,-3],[-1,3],[5,1],[-3,-5],[-5,5],[-7,-1],[3,7],[7,-7]],[[1,1],[-1,-3],[-3,2],[4,-1],[-5,-2],[2,5],[5,3],[3,-5],[-2,6],[0,-7],[-4,-6],[-6,4],[-8,0],[7,-4],[6,7],[-7,-8]],[[-4,-7],[-7,-5],[-3,-5],[-5,-4],[-1,-4],[-2,-2],[-6,-1],[-4,0],[-7,1],[-1,2],[-6,3],[-3,3],[-7,6],[-3,6],[-5,7],[-1,7],[5,-7],[1,-6],[6,-5],[4,-4],[2,-3],[7,-2],[1,-1],[4,-1],[2,1],[6,2],[0,4],[4,4],[2,5],[7,5],[5,6],[3,7]]];THREE.SSAARenderPass=SSAARenderPass})();(function(){const UnpackDepthRGBAShader={uniforms:{"tDiffuse":{value:null},"opacity":{value:1}},vertexShader:` 5829 5830 varying vec2 vUv; 5831 5832 void main() { 5833 5834 vUv = uv; 5835 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 5836 5837 }`,fragmentShader:` 5838 5839 uniform float opacity; 5840 5841 uniform sampler2D tDiffuse; 5842 5843 varying vec2 vUv; 5844 5845 #include <packing> 5846 5847 void main() { 5848 5849 float depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) ); 5850 gl_FragColor = vec4( vec3( depth ), opacity ); 5851 5852 }`};THREE.UnpackDepthRGBAShader=UnpackDepthRGBAShader})(); 5853 5854})(); } catch (e) { console.log(e.message, e.stack); throw e; };
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.